网络数据包的协议分析程序的设计开发毕业设计论文.doc
《网络数据包的协议分析程序的设计开发毕业设计论文.doc》由会员分享,可在线阅读,更多相关《网络数据包的协议分析程序的设计开发毕业设计论文.doc(35页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)网络数据包的协议分析程序的设计开发论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期:网络数据包的协议分析程序的设计开发摘 要本文设计与实现了一个基于Linux下Libpcap库函数的网络数据包协议分析程序。程序的主要功能包括网络数据包捕获和常用网络协议分析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议分析模块组成。其中数据捕获模块和协议分析模块是本程序最关键、最主要的模块。本文的主要内容如下:首先介绍了网络数据包协议分析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结构图和层次图,描述了程序的工作流程,对实现程序
2、的关键技术做出了分析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,阐述了如何利用Libpcap函数库实现网络数据包捕获模块。然后对协议分析流程进行了详细的讲解,分析了常用网络协议。最后进行了程序的测试与运行:测试了程序能否按照预期的效果正确执行,印证了预期结果。关键词:Libpcap;Linux;数据包捕获;应用层;协议识别The Design and Development of Network Packet Protocol Analyzing ProgramAbstractThe thesis is an attempt to introduce an implementa
3、tion 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 ma
4、tching 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
5、, 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 L
6、ibpcap; 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 目 录论文总页数:23页1
7、引言11.1课题背景11.2网络数据包协议分析程序简介21.3国内外研究现状22网络数据包协议分析程序的总体设计32.1网络数据包协议分析程序的功能分析32.2系统的组成结构和工作流程32.2.1系统的结构框图32.2.2系统的结构和功能42.2.3程序的工作流程52.3系统实现的关键技术分析63网络数据包捕获模块的实现73.1网络数据包捕获简介73.2基于Libpcap的网络数据包捕获的实现83.2.1Libpcap安装83.2.2Libpcap中基本的数据结构和函数83.3数据捕获模块的实现114协议分析模块的实现114.1网络协议分析的总体流程124.2对TCP/IP模型中各层协议的分析
8、144.2.1以太网首部的分析与提取144.2.2IP首部的分析与提取154.2.3TCP/UDP首部的分析与提取164.2.4应用层协议的识别与分析185程序运行与测试205.1测试环境205.1.1硬件环境205.1.2程序运行环境205.2测试步骤205.3测试结果评价20结 论20参考文献21致 谢22声 明231 引言1.1 课题背景随着计算机网络的不断发展,全球信息化已成为当今社会发展的趋势。但由于计算机网络自身所特具有的特点,比如联结形式多样性和网络的开放性、互连性等特征,所以导致网络易受黑客还有一些病毒的攻击。所以网上信息的安全和保密是一个至关重要的问题。对于军用的自动化指挥网
9、络和银行等传输敏感数据的计算机网络系统而言,其网上信息的安全和保密尤为重要。因此,网络必须有足够强的安全措施,否则该网络将是个无用、甚至会危及国家安全的网络。在计算机网络的世界里,存在着很多潜在的威胁,因此网络的安全措施应能全方位地应对各种不同的威胁,这样才可以真正的做到网络服务于社会,体现网络的先进性。计算机网络所面临的威胁大体可分为两种:一是对网络中信息的威胁;二是对网络中设备的威胁。影响计算机网络的因素很多,有些因素可能是有意的,也可能是无意的;可能是人为的,也可能是非人为的;可能是外来黑客对网络系统资源的非法使有,归结起来,针对网络安全的威胁主要有三种:(1)人为的无意失误:如操作员安
10、全配置不当造成的安全漏洞,用户安全意识不强,用户口令选择不慎,用户将自己的帐号随意转借他人或与别人共享等都会对网络安全带来威胁。(2)人为的恶意攻击:这是计算机网络所面临的最大威胁,敌手的攻击和计算机犯罪就属于这一类。此类攻击又可以分为以下两种:一种是主动攻击,它以各种方式有选择地破坏信息的有效性和完整性;另一类是被动攻击,它是在不影响网络正常工作的情况下,进行截获、窃取、破译以获得重要机密信息。这两种攻击均可对计算机网络造成极大的危害,并导致机密数据的泄漏。(3)网络软件的漏洞和“后门”:网络软件不可能是百分之百的无缺陷和无漏洞的,然而,这些漏洞和缺陷恰恰是黑客进行攻击的首选目标,曾经出现过
11、黑客攻入网络内部的事件,这些事件的大部分就是因为安全措施不完善所招致的苦果。另外,软件的“后门”都是软件公司的设计编程人员为了自便而设置的,一般不为外人所知,但一旦“后门”洞开,其造成的后果将不堪设想。为了及早发现并制止网络上的各种攻击,我们需要通过对网络上的数据进行分析来发现并找出问题,提前预防。这也是本论文的一个重要目的。网络安全管理员运用网络封包截获技术,抓取网络中有用的数据包,然后通过对数据包内容进行分析,确定哪些是有害的或者含有攻击企图的包,以此来达到对网络攻击的预防。同时许多防火墙也是基于包过滤技术的。本文将介绍网络数据包协议分析程序的工作原理以及它的实现。1.2 网络数据包协议分
12、析程序简介网络数据包协议分析程序是一种用于收集网络中有用数据的程序,这些数据可以是用户的帐号和密码,也可以是一些商用机密数据等。它是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。网络数据包协议分析程序的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用网络数据包协议分析程序来作出精确的问题判断。在合理的网络中,网络数据包协议分析程序的存在对系统管理员是至关重要的,系统管理员通过网络数据包协议分析程序可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间
13、的异常通讯,有些甚至牵涉到各种的协议,借助于网络数据包协议分析程序系统管理员可以方便的确定出多少的通讯量属于哪个网络协议、占主要通讯协议的主机是哪一台、大多数通讯目的地是哪台主机、报文发送占用多少时间、或着相互主机的报文传送间隔时间等等,这些信息为管理员判断网络问题、管理网络区域提供了非常宝贵的信息。1.3 国内外研究现状现在国内外已经有很多成熟并且功能强大的网络数据包协议分析软件。比较著名的网络数据包协议分析软件有:开源软件:Wireshark、TcpDump。商用软件:EtherPeek下面对这几种软件进行简要的介绍:Wireshark: Wireshark是一个开放源码的网络分析系统,也
14、是是目前最好的开放源码的网络协议分析器,支持Linux和Windows平台。Wireshark起初由Gerald Combs开发,随后由一个松散的Wireshark团队组织进行维护开发。它目前所提供的强大的协议分析功能完全可以媲美商业的网络分析系统,自从1998年发布最早的0.2版本至今,大量的志愿者为Wireshark添加新的协议解析器,如今Wireshark已经支持五百多种协议解析。很难想象如此多的人开发的代码可以很好的融入系统中;并且在系统中加入一个新的协议解析器很简单,一个不了解系统的结构的新手也可以根据留出的接口进行自己的协议开发。这都归功于Wireshark良好的设计结构。事实上由
15、于网络上各种协议种类繁多,各种新的协议层出不穷。一个好的协议分析器必需有很好的可扩展性和结构。这样才能适应网络发展的需要不断加入新的协议解析器。TcpDump:顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。用尽量简单的话来定义TcpDump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。TcpDump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的
16、工具之一。EtherPeek:这个工具软件开始只是一个网络分析器型的数据包监测软件,经过这些年的发展已经成为一个真正的网络管理工具并具有网站监视和分析等新的功能,被美国联邦调查局用来追踪逃犯、贩卖毒品的人、电脑黑客和一些被怀疑为外国间谍的人。是一个直观,功能强大的以太网网络和协议分析器。支持Macintosh和Windows平台。EtherPeek把查找和修复多平台上的复杂网络任务变得简单化。EtherPeek采用工业标准,非常容易使用,提供解码、过滤和诊断网络的功能。以友好图形界面出名,EtherPeek提供非常详细且多样化的网络使用信息,网络结点的会话和数据包内容。在有问题的局域网络中使用
17、EtherPeek执行一个自定的诊断测试,监控网络的通信和事件,跟踪非法的网络活动,测试和调试网络软硬件。2 网络数据包协议分析程序的总体设计2.1 网络数据包协议分析程序的功能分析对于网络数据包协议分析程序进行功能分析的第一步是要确立程序所要实现的目标,也就是程序最终要解决的问题。本程序所要实现的目标就是在共享式以太网中捕获根据过滤规则设置的流经本地网卡的数据包,并且对数据包中的信息进行分析。网络数据包协议分析程序必须完成对常用协议的识别和分析:要求至少实现TCP/IP协议簇几个基本协议的分析(ARP、RARP、TCP、UDP),以及应用层的常用协议分析。为了减少设计的复杂度,程序采用字符界
18、面。对网络数据包的捕获、规则过滤和对数据包的分析是本程序的主要功能。2.2 系统的组成结构和工作流程2.2.1 系统的结构框图基于以上分析,本文设计了网络数据包协议分析程序,图2-1是程序的结构框图。Fedora Core Linux 4数据包捕获应用程序接口数据包处理图2-1网络数据包协议分析程序结构框图下面对该程序的整体结构进行一下描述:该程序的运行环境是Fedora Core 4 linux。Fedora Core是linux的一个发行版,他的前身是Redhat linux。本程序通过调用安装在linux上的Libpcap函数库抓取经过本地网卡的数据包,从而完成数据包的捕获。然后将捕获后
19、的数据包交给上层的数据处理模块,进行协议分析。最后将分析后的数据显示在用户界面上。2.2.2 系统的结构和功能网络数据包的协议分析程序是一个基于Libpcap开发库,应用与共享以太网的网络分析程序如图2-2所示,系统主要包括4大模块:网络数据报协议分析程序输入数据捕获规则匹配数据处理协议分析输出图2-2网络数据包的协议分析程序的层次图1、数据输入模块。该模块主要功能是接收用户输入用于捕获数据包的信息。其中包括选择用于捕获的网络接口和需要过滤的内容。2、数据捕获模块。该模块的主要功能是捕获流经本地网卡的所有数据。其原理是通过把网卡设置为混杂模式,使得网卡对所有流经它的数据包都交给上层程序处理。3
20、、规则匹配模块,该模块的主要功能是根据用户的需求对需要捕获的数据包进行过滤设置。因为不是所有经过本地网卡的数据报都对我们分析网络有用,而且如果将所有经过网卡的数据捕获会增加系统的开销。因此我们设置了一个规则匹配模块,当所捕获的信息与我们设置的规则相符时我们就把它交给数据处理模块,否则就丢弃。4、数据处理模块。该模块的主要功能是对捕获的数据进行分析显示处理。主要是调用协议分析模块和显示模块。41 协议分析模块。该模块的主要功能是对捕获的数据包进行协议分析。把数据包捕获下来后,我们需要对其分析才能知道网络中存在的安全问题。该模块主要是对TCP/IP各层的协议进行分析。42 显示模块。该模块的主要功
21、能是将分析的结果显示给用户。对数据包进行协议分析后要把结果显示给用户本程序才结束。因为数据包中包含的信息太多,如果全部显示给用户有所不便,所以我们挑选其中比较重要的信息输出给用户。2.2.3 程序的工作流程图2-3为本程序的流程图,下面其进行简要的叙述:1、程序开始时首先查找计算机上所有可用的网卡,并让用户选择用于捕获数据包的网卡。2、用户输入用于捕获数据包的网卡和过滤规则。只过滤用户所关心的信息。3、程序判断该网卡所在的网络是否为以太网,不是则中止,是则继续。因为本程序只能在共享以太网中进行数据捕获。4、编译用户设置的过滤规则。5、开始进行捕获,并分析数据,将数据显示给用户。当用户停止时就结
22、束程序,否则继续捕获。查找所有可用的网卡是否是以太网编译并且设置过滤规则开始捕获数据并分析显示结果结束程序用户中止吗?选择用于捕获的网卡和过滤规则开始NYNY图2-3 网络数据包的协议分析程序的流程图2.3 系统实现的关键技术分析前面给出了网络数据包协议分析程序的总体结构、功能模块和工作流程。要实现程序预定的功能,就必须解决实现程序的关键技术。网络数据包协议分析程序要实现的关键技术包括:数据包捕获技术、对TCP/IP各层基本协议进行分析的技术、协议识别技术。1、数据包捕获技术:本程序要对网络中的数据进行分析,首先就要将网络中的数据包捕获下来。因此实现数据包捕获是本程序设计的基础也是首先要解决的
23、技术问题。要实现共享以太网中的数据捕获,各个平台有不同的技术。在Linux有一个专门为程序员编写数据包捕获程序而开发的库:Libpcap。Libpcap是用户态的数据包截获API,具有独立性和可移植性,支持BPF过滤机制等。通过调用Libpcap库函数可以轻易的实现共享以太网中数据包的截获,而且实时性相当的强,因为Libpcap是处于用户态所以减少了系统的开销。Libpcap是一个基于BPF的开放源码的捕包函数库。现有的大部分Linux捕包系统都是基于这套函数库或者是在它基础上做一些针对性的改进。2、对TCP/IP各层基本协议分析的技术:要对TCP/IP各层的基本协议进行分析,主要是要对所要分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 数据包 协议 分析 程序 设计 开发 毕业设计 论文
链接地址:https://www.31ppt.com/p-3991471.html