{$cfg_webname}
主页 > 计算机 > Linux >

基于Linux网络数据包的协议分析程序的设计开发

来源:wenku163.com  资料编号:WK1632404 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9AWK1632404
资料介绍

摘  要
本文设计与实现了一个基于Linux下Libpcap库函数的网络数据包协议分析程序。程序的主要功能包括网络数据包捕获和常用网络协议分析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议分析模块组成。其中数据捕获模块和协议分析模块是本程序最关键、最主要的模块。
本文的主要内容如下:首先介绍了网络数据包协议分析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结构图和层次图,描述了程序的工作流程,对实现程序的关键技术做出了分析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,阐述了如何利用Libpcap函数库实现网络数据包捕获模块。然后对协议分析流程进行了详细的讲解,分析了常用网络协议。最后进行了程序的测试与运行:测试了程序能否按照预期的效果正确执行,印证了预期结果。

关键词:Libpcap;Linux;数据包捕获;应用层;协议识别

The Design and Development of Network Packet Protocol Analyzing Program
Abstract
The thesis is an attempt to introduce an implementation of network protocol analyzing program which is based on Libpcap, a famous network packet capture library on Linux. It has a rich feature set which includes capturing network packets and analyzing popular network protocols on Internet. The program is made up of an input/output module, a rules matching module, a packet capturing module and a protocol analyzing module. And the last two modules are key modules.
The research work was described as followed. firstly, we introduce the background and concepts about network protocol analyzing programs; and we make an integrated design on the program, define functions of it, figure out its structure and hierarchical graphs, describe the workflow of it, and analyze the key techniques used in it; Secondly, after elaborating on the background of packet capture and the Libpcap library, we state a approach to implement a packet capture module with Libpcap; Thirdly, we explain the workflow about protocol analysis, and analyze common network protocols; Finally, we test our program to see whether it works as expected, fortunately, it does.

Key words: Libpcap; Linux; Network packet capturing; Application layer; Protocol identification

网络数据包协议分析程序的功能分析
对于网络数据包协议分析程序进行功能分析的第一步是要确立程序所要实现的目标,也就是程序最终要解决的问题。本程序所要实现的目标就是在共享式以太网中捕获根据过滤规则设置的流经本地网卡的数据包,并且对数据包中的信息进行分析。
网络数据包协议分析程序必须完成对常用协议的识别和分析:要求至少实现TCP/IP协议簇几个基本协议的分析(ARP、RARP、TCP、UDP),以及应用层的常用协议分析。为了减少设计的复杂度,程序采用字符界面。对网络数据包的捕获、规则过滤和对数据包的分析是本程序的主要功能。

网络数据包的协议分析程序的层次图
1、数据输入模块。该模块主要功能是接收用户输入用于捕获数据包的信息。其中包括选择用于捕获的网络接口和需要过滤的内容。
2、数据捕获模块。该模块的主要功能是捕获流经本地网卡的所有数据。其原理是通过把网卡设置为混杂模式,使得网卡对所有流经它的数据包都交给上层程序处理。
3、规则匹配模块,该模块的主要功能是根据用户的需求对需要捕获的数据包进行过滤设置。因为不是所有经过本地网卡的数据报都对我们分析网络有用,而且如果将所有经过网卡的数据捕获会增加系统的开销。因此我们设置了一个规则匹配模块,当所捕获的信息与我们设置的规则相符时我们就把它交给数据处理模块,否则就丢弃。
4、数据处理模块。该模块的主要功能是对捕获的数据进行分析显示处理。主要是调用协议分析模块和显示模块。

协议分析模块。该模块的主要功能是对捕获的数据包进行协议分析。把数据包捕获下来后,我们需要对其分析才能知道网络中存在的安全问题。该模块主要是对TCP/IP各层的协议进行分析。

显示模块。该模块的主要功能是将分析的结果显示给用户。对数据包进行协议分析后要把结果显示给用户本程序才结束。因为数据包中包含的信息太多,如果全部显示给用户有所不便,所以我们挑选其中比较重要的信息输出给用户。
 

基于Linux网络数据包的协议分析程序的设计开发
基于Linux网络数据包的协议分析程序的设计开发
基于Linux网络数据包的协议分析程序的设计开发
基于Linux网络数据包的协议分析程序的设计开发



目  录   15000字
1    引言    1
1.1    课题背景    1
1.2    网络数据包协议分析程序简介    2
1.3    国内外研究现状    2
2    网络数据包协议分析程序的总体设计    3
2.1    网络数据包协议分析程序的功能分析    3
2.2    系统的组成结构和工作流程    3
2.2.1    系统的结构框图    3
2.2.2    系统的结构和功能    4
2.2.3    程序的工作流程    5
2.3    系统实现的关键技术分析    6
3    网络数据包捕获模块的实现    7
3.1    网络数据包捕获简介    7
3.2    基于LIBPCAP的网络数据包捕获的实现    8
3.2.1    Libpcap安装    8
3.2.2    Libpcap中基本的数据结构和函数    8
3.3    数据捕获模块的实现    11
4    协议分析模块的实现    11
4.1    网络协议分析的总体流程    12
4.2    对TCP/IP模型中各层协议的分析    14
4.2.1    以太网首部的分析与提取    14
4.2.2    IP首部的分析与提取    15
4.2.3    TCP/UDP首部的分析与提取    16
4.2.4    应用层协议的识别与分析    18
5    程序运行与测试    20
5.1    测试环境    20
5.1.1    硬件环境    20
5.1.2    程序运行环境    20
5.2    测试步骤    20
5.3    测试结果评价    20
结    论    20
参考文献    21
致    谢    22
声    明    23
 

推荐资料