摘要
本文设计与实现了一个基于Linux下Libpcap库函数的网路数据包合同剖析程序。程序的主要功能包括网路数据包捕获和常用网路合同剖析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议剖析模块组成。其中数据捕获模块和合同剖析模块是本程序最关键、最主要的模块。
本文的主要内容如下:首先介绍了网路数据包合同剖析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结布光和层次图,描述了程序的工作流程,对实现程序的关键技术作出了剖析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,探讨了怎样借助Libpcap函数库实现网路数据包捕获模块。之后对合同剖析流程进行了详尽的讲解,剖析了常用网路合同。最后进行了程序的测试与运行:测试了程序能够根据预期的疗效正确执行,印证了预期结果。
关键词:Libpcap;Linux;数据包捕获;应用层;合同辨识
TheDesignandDevelopmentofNetworkPacketProtocolAnalyzingProgram
Abstract
ThethesisisanattempttointroduceanimplementationofnetworkprotocolanalyzingprogramwhichisbasedonLibpcap,afamousnetworkpacketcapturelibraryonLinux.IthasarichfeaturesetwhichincludescapturingnetworkpacketsandanalyzingpopularnetworkprotocolsonInternet.Theprogramismadeupofaninput/outputmodule,arulesmatchingmodule,apacketcapturingmoduleandaprotocolanalyzingmodule.Andthelasttwomodulesarekeymodules.
Theresearchworkwasdescribedasfollowed.firstly,weintroducethebackgroundandconceptsaboutnetworkprotocolanalyzingprograms;andwemakeanintegrateddesignontheprogram,definefunctionsofit,figureoutitsstructureandhierarchicalgraphs,describetheworkflowofit,andanalyzethekeytechniquesusedinit;Secondly,afterelaboratingonthebackgroundofpacketcaptureandtheLibpcaplibrary,westateaapproachtoimplementapacketcapturemodulewithLibpcap;Thirdly,weexplaintheworkflowaboutprotocolanalysis,andanalyzecommonnetworkprotocols;Finally,wetestourprogramtoseewhetheritworksasexpected,fortunately,itdoes.
Keywords:Libpcap;Linux;Networkpacketcapturing;Applicationlayer;Protocolidentification
网路数据包合同剖析程序的功能剖析
对于网路数据包合同剖析程序进行功能剖析的第一步是要确立程序所要实现的目标网络编程与分层协议设计:基于linux平台实现嵌入式linux论坛,也就是程序最终要解决的问题。本程序所要实现的目标就是在共享式以太网中捕获按照过滤规则设置的流经本地网卡的数据包,但是对数据包中的信息进行剖析。
网路数据包合同剖析程序必须完成对常用合同的辨识和剖析:要求起码实现TCP/IP合同簇几个基本合同的剖析(ARP、RARP、TCP、UDP),以及应用层的常用合同剖析。为了降低设计的复杂度,程序采用字符界面。对网路数据包的捕获、规则过滤和对数据包的剖析是本程序的主要功能。
网路数据包的合同剖析程序的层次图
1、数据输入模块。该模块主要功能是接收用户输入用于捕获数据包的信息。其中包括选择用于捕获的网路插口和须要过滤的内容。
2、数据捕获模块。该模块的主要功能是捕获流经本地网卡的所有数据。其原理是通过把网卡设置为混杂模式网络编程与分层协议设计:基于linux平台实现,致使网卡对所有流经它的数据包都交给下层程序处理。
3、规则匹配模块node.js安装linux,该模块的主要功能是按照用户的需求对须要捕获的数据包进行过滤设置。由于不是所有经过本地网卡的数据报都对我们剖析网路有用,但是假如将所有经过网卡的数据捕获会降低系统的开支。为此我们设置了一个规则匹配模块,当所捕获的信息与我们设置的规则相符时我们就把它交给数据处理模块,否则就遗弃。
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.1Libpcap安装8
3.2.2Libpcap中基本的数据结构和函数8
3.3数据捕获模块的实现11
4合同剖析模块的实现11
4.1网路合同剖析的总体流程12
4.2对TCP/IP模型中各层合同的剖析14
4.2.1以太网首部的剖析与提取14
4.2.2IP首部的剖析与提取15
4.2.3TCP/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