基于TCPIP的协议分析器设计毕业论文.docx
- 文档编号:26376238
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:57
- 大小:938.67KB
基于TCPIP的协议分析器设计毕业论文.docx
《基于TCPIP的协议分析器设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于TCPIP的协议分析器设计毕业论文.docx(57页珍藏版)》请在冰豆网上搜索。
基于TCPIP的协议分析器设计毕业论文
毕业设计论文
基于TCP/IP的协议分析器设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
【摘要】网络分析技术作为一种积极的安全监测技术,能实时监测网络中发生的一些事件,也更加有效地保障被监测网络的安全性。
基于TCP/IP的分析技术也是具有入侵监测能力网络系统的核心技术之一。
所以,研究以捕获数据包为基础的网络分析方法在当今是非常必要的。
本课题针对10Mbps以太网,设计一个具有实时性的网络数据包捕获和统计分析系统。
本系统使用具有数据包捕获功能的winpcap开源包,对流经本机的网络数据包进行嗅探和统计分析。
在循环捕获网络上的数据包的同时,对数据包进行分析与归类。
本系统以TCP/IP体系结构为根本,对数据包实现由下至上的层层解析,最终实现对HTTP协议报文的读取,FTP文件传输协议的命令读取,也可以实现以UDP协议或TCP协议为基础的QQ数据包的判断。
本论文首先介绍了捕获网络数据包的工具,其次是重点介绍了winpcap开源库的相关知识、捕获数据包的理论过程以及数据包的分析过程等。
【关键词】winpcap开源包,TCP/IP协议,数据包捕获,协议分析
DesignaprotocolanalyzerbasedonTCP/IPprotocol
Abstract
Networkanalysistechnologyasapositivesafetymonitoringtechnology,itcanoccurinthereal-timemonitoringofnetworkeventsandmoreeffectiveprotectionofthesecurityofthenetworktobemonitored.Thenetworkanalysistechnologyisalsooneofthecoretechnologiesfornetworkintrusiondetectionsystems.Therefore,thestudytocapturethepacket-basednetworkmonitoringisnecessaryintodays.
Thetopicdesignsareal-timenetworkpacketcaptureandstatisticalanalysissystemfor10MbpsEthernet.Thesystemuseswinpcapcomeswithnetworkpacketcapturemechanismformonitoringandstatisticalanalysisofdatapacketsflowingthroughthelocalcomputer.Intheloopcapturingdatapacketsatthesametime,synchronizationisachievedontheanalysisofdatapacketsclassified.ItismainlydonetotheTCP/IPprotocolstack-basednetworkpacketcapture.ThesystemisbasedontheTCP/IParchitectureandanalysispacketsfromthebottomlayers.Ultimately,thesystemcanreadtheHTTPprotocolpackets,theFTPfiletransferprotocolcommandanditcanalsoimplementthejudgmentsoftheQQdatapacketsbasedonUDPorTCPprotocol.
Thispaperintroducesanetworkpacketcapturetoolfirstly.Andthepaperfocusesonthewinpcapknowledge,theprincipleofpacketcaptureandanalysisofdatapacketsmechanismsecondly.
Keyword:
winpcapopen-sourcepacket,TCP/IPprotocol,packetcapture,protocolanalysis
第一章绪论
1.1.课题背景
计算机网络的迅速发展,给我们的生产、生活、工作与学习到来了巨大的改变。
人们对互联网的依赖越来越大,世界以互联网作为桥梁,正在走向融合。
我们在通过互联网获取信息,共享网络资源的同时也增长了见识。
但是,随着网络技术的不断发展更新,相关的网络问题也凸显出来。
具有互联性与开放性的网络容易受到病毒、黑客、恶意插件等的攻击,因此,网络安全、网络性能、网络软件质量等问题越来越受到人们的关注。
管理不善或是技术匮乏都有可能导致网络安全受到威胁。
为了提高网络的安全性,需要对网络有一定的了解,正是由于这种原因,网络分析技术逐渐发展成熟。
网络分析是一把双刃剑。
网络系统管理人员与安全监测人员可以用它处理网络故障和监测网络安全的工作,但是,它也可以被网络入侵者非法使用。
当然,网络分析作为一种技术,我们可以正确使用它以达到好的目的。
1.2.研究现状
从TCP/IP协议诞生至今,有很多的研究者专门研究以TCP/IP协议为基础的各种网络协议。
最原始的,应该是TCP/IP协议的层次结构分析,包括各层所使用的网络协议,各层次之间的联系以及数据包在协议栈中的传输过程。
为了能更加直观地理解在以TCP/IP协议为基础的网络协议指引下,数据包在以太网的传送过程,包括数据包所携带的信息以及数据包在各层次结构间的捕获交接过程,许多研究者研究并开发了具有实际教学意义和商业潜力的协议分析器,如网络嗅探器,也就是数据包抓取分析器。
协议分析器的实现重点在于数据捕获和数据包解析两个方面[1],它是在网络上使用的一种监听技术,可以完成对数据包的捕获、解包和分析的功能,管理者可以用它来分析和管理网络。
而TCP/IP协议簇的开放性导致其在安全上存在一定的漏洞。
所以在1980年,JamesAnderson先生首先肯定网络入侵可以被检测,并对此作了详细的说明;他将具有入侵性质的网络行为分为三种,分别是外部渗透行为、内部渗透行为和不法行为,并且他还提出可以利用审计跟踪的方法抓根源,也从此揭开了入侵检测的研究序幕[2]。
同时,网络研究者也研究设计了包过滤控制技术,而这种数据包过滤技术也大大提高局域网的安全性。
包过滤控制技术是利用路由器的监视功能,对网络上流动的IP包进行过滤,并拒绝发送不透明的包[3];而且,各种开发语言与软件的诞生也为协议的分析研究提供了方便,最常用的有pcap开源库,由VanJacobson先生开发。
使用winpcap程序库的函数,可以得到在自己所属网络上传送的全部数据包[4];winpcap是在Windows平台上访问网络数据链路层的开源库,其允许应用程序绕开网络协议栈来捕获与发送网络数据包,并具备其他有用的特性,诸如内核空间的数据包过滤、网络统计引擎等。
1.3.本文研究内容
本课题研究设计以TCP/IP为基础的协议分析器。
并说明是如何实现数据包捕获的,并对数据包进行解包和分析。
大多主机上都有设置防火墙,用以阻止非法行为,还有一些常用的杀毒软件中都包含了安全诊断技术和网络故障排除技术。
这些技术的完成都要首先实现对网络数据包的分析。
winpcap开源包的优点在于它有强大的捕获网络数据包的功能,它能够利用底层驱动实现对本机数据链路层的访问,并可监测所有数据包的传输,而且,winpcap可以实时处理这些数据包,只需系统有下达相关的要求即可。
在对TCP/IP协议体系有了一定掌握的前提下,以及对网络数据包的捕获和分析的原理、方法及手段进行理解后,本设计选择利用winpcap开源包的工作机理和其内部结构,借助C语言编程实现网络协议分析的基本功能,对几种常见的网络协议进行分析,并对提高网络的安全性提出改进方案。
1.4.论文结构
本论文在结构上分为五个章节:
第一章阐述了本次设计所选课题的研究背景、研究现状以及本文的研究内容等。
第二章介绍了网络分析的基本原理,包括网卡的设置,并对比说明了在不同的以太网环境下实现的网络数据包的捕获。
而且,这章还介绍了用于网络开发的函数库,并深入介绍winpcap的相关知识,其中特别阐述了winpcap开源包的主要功能模块、主要函数等。
第三章介绍了TCP/IP协议簇的体系结构,一些主要的数据报格式,并在此基础上论述了数据包的捕获过程。
本章节的重点在于阐述了以winpcap开源包为基础的协议解析的原理,包括数据包捕获的实现、数据包过滤规则的设置、数据包的逐层分析等等。
第四章介绍了程序的运行环境,说明了winpcap开源包的安装和使用方法,并展示了程序的运行效果。
也阐述了程序性能方面可实现的改进。
第五章主要对本文前几章所阐述的内容进行总结,并指出本系统程序的不足之处和可以进一步完善的功能等。
第二章网络数据捕获及winpcap的相关知识
2.1网络数据捕获
2.11网卡的工作模式
正常情况下,接收数据的主机网卡会根据数据包中所包含的目的物理地址进行判断,若检验出是自己的物理地址,则接收该数据包,上层的处理程序会继续对数据包进行处理,否则丢弃该数据包;如果检验出目的物理地址为广播地址,那么这种数据包全部接收。
作为局域网最通用的通信协议标准,以太网使用总线型结构,且这个总线是被共享的,其他节点则通过与总线连接来获取资源;各个节点是采用具有冲突检测的CSMA/CD(载波侦听多路访问/冲突检测)方法,并采用竞争机制和总线拓扑结构[5];以太网的各个节点是通过计算机上的网卡来实现这个功能的,一般情况下,网卡有四种工作模式[6];具体的如表2-1所示。
表2-1网卡的工作模式
网卡模式
说明
广播模式
网卡能够接收网络中所有以0xff-ff-ff-ff-ff-ff作为目的物理地址的广播帧。
组播模式
网卡能够接收组播数据。
一般情况下,组播帧不能够被组外的主机接收,只可以被组内的其他主机同时接收;工作在组播模式下的网卡可以接收所有的组播帧。
直播模式
只有数据的目的地址为本机MAC地址时才能被接收。
混杂模式
网卡能够接收所有流过本机网卡的数据包,不管该数据是传给谁的。
网卡的缺省模是广播模式或直播模式下。
当网卡工作在混杂模式下时,不做任何判断,直接将接收到的所有数据包直接交给上层处理程序。
网络分析中,捕获数据包程序需要把网卡设置为混杂模式。
2.12共享式的网络数据捕获
从上面介绍的网卡模式可知,主机的网卡一般只接收发给自己的数据包,所以在网络通信中,主机中的套接字程序只会对那些与本机的硬件地址相匹配的数据帧,还有那些在以太网中广播的数据帧产生响应[7];如果网卡在混杂模式下工作,那么本机就会对流经本机的每个数据报文产生中断,以响应数据包。
使用集线器连接各个网络节点是共享网络的特点。
每个主机都独立地连接到集线器上,如果主机或线路发生问题,也只会影响本机的线路,不会影响其他计算机的运作。
这种工作环境下,到达集线器的数据包都会被集线器推向所有与之相连接的每个端口,也就是说,与集线器相连接的每一个主机都会收到集线器推送的所有的数据报[8];现在,如果将一台主机的网卡模式设置为混杂模式,那么不管数据包是不是发给本机的,该主机都可以捕获到所有流经其所在网络的数据包,从而实现数据包的解包分析。
2.13交换式的网络数据捕获
交换环境下的以太网其实就是使用交换机来连接各网络结点的网络。
在交换式环境下,交换机可以很好地解决集线器显现的安全问题。
交换机拥有自己的地址缓冲区,它可以通过地址映射表来决定把数据包发送到哪个端口[9];与集线器把一个数据报转发到各个端口的工作方式相比,这种做法既提高网络的性能,也提高了网络的安全性。
因为交换机不会将发给其他结点的数据包发给正在捕获数据包的主机,所以这种环境下的以太网只能监听到发给本机的数据包。
即使说主机的网卡工作在混杂模式,其结果也是一样。
当然,可以使用具有特殊功能的交换机来实现数据包的捕获;设置这种交换机可以实现把所有的数据包都转发到某一指定端口上,那么在这个端口上,主机就可以实现数据包的捕获。
2.2网络开发工具
2.21网络开发现有的函数库
本机上大多数的应用程序是通过操作系统自带的驱动程序访问网络的,如套接字驱动程序[6];通常,安全检测程序都需要对网络中的通信细节(如连接通信双方的网络地址或端口号,服务类型等)进行相应的检查、控制和处理。
同时,这些安全程序还会增加对数据包的捕获以及对数据包的分析处理功能。
这样一来,不仅使网络安全程序的开发过程简化,而且也提高了程序的性能与稳定性。
而且,这种类似封装的函数库又有利于程序代码的移植与重用。
目前,以C语言为编程语言的常用的网络数据开发函数库有[10]:
●UNIX平台下的数据包捕获函数库libpcap;
●Windows平台下的数据包捕获函数库winpcap;
●网络数据包构造可发送函数库libnet;
●网络入侵检测函数库libnids;
●通用网络安全函数库libdnet。
2.22数据包的捕获工具
设计网络安全程序时,都必须对数据包进行捕获。
本开发包的捕获引擎有三个主要组成部分:
最底层是在不同操作系统中具有差异性的设备驱动程序,高层的则是与用户程序相连接的接口,第三部分是实现数据包的过滤[11];一般情况下,捕获数据包时,首先要打开网卡,然后将捕获到时的数据包传送到设备驱动层,由设备驱动程序传送给数据链路层。
最后,根据数据包的封装过程,依次在协议栈中由下至上层层传送,最终将数据传递给相应的应用程序。
在捕获数据包的工具中,还提供了一个数据包过滤机制用于限制数据包的捕获,可以由管理者决定只捕获一些特定的网络数据包。
网络数据包捕获函数库winpcap便是如此,本次设计主要调用winpcap开源库。
2.3winpcap的相关知识
2.31winpcap简介
winpcap是众多网络分析工具所使用的软件库,如wireshark网络分析器是以winpcap作为捕获数据包的依据,这样,wireshark就主要负责协议分析与图形界面显示相关的工作,其他性能问题由winpcap函数库来负责,其中winpcap提供的主要功能有:
1)捕获原始数据。
对于介质共享式的网络上的主机,无论数据包是被发送到运行winpcap的机器上,还是被发送到其他主机上进行交换,它都可以被捕获;
2)在数据包传送给上层处理程序之前,可根据用户指定的或是自定义的规则将不需要数据包过滤掉;
3)将原始的数据包从接口处发送到网络上;
4)收集网路通信过程中统计信息,如网络流量、网络状态等。
2.32winpcap的各功能模块
winpcap有一个核心的包过滤驱动程序NPF,一个底层的动态链接库packet.dll和一个高层的并独立于系统的动态链接库wpcap.dll组成。
本系统与winpcap的依赖关系如图2-1所示。
图2-1程序与winpcap的依赖关系
1.NPF模块
在winpcap中,与操作系统密切相关的是名为NPF(NetgroupPacketFilter)的设备驱动程序。
NPF能够执行许多操作,包括数据包捕获、数据包发送、网络统计及数据包转储到磁盘等,其中,最重要的功能是执行数据包的捕获。
在一个捕获过程中,NPF驱动程序利用网络接口卡捕获数据包,然后将捕获到的数据包完整无缺地传送给上层处理程序进行处理。
数据包的捕获过程依赖于下列两个组件[6]:
1)数据包过滤器
数据包过滤器决定是否将到来的数据包接收并复制到一个应用程序中。
数据包过滤器实际上是一段代码,它的返回值为一个布尔型的函数。
对于一个数据包而言,如果该函数的返回值为TRUE,则把数据包复制到应用层中,如果返回值是FALTE,则将数据包丢弃。
NPF驱动采用的过滤系统来源于BSDPacketFilter,而且这个数据包过滤器拥有强大的功能,因为它不仅要决定数据包是否应该被保存,而且还得决定要保存的字节数。
2)环形缓冲区
为避免数据包的丢失,NPF使用一个环形缓冲区用来保存捕获到的数据包。
每一个保存在缓冲区的数据包都带有一个数据包头,它包括如时间戳、数据包大小等消息。
为了使配置更具灵活性,在运行的时候,内核与用户控件缓冲区的设置也能够被改变,而packet.dll与wpcap.dll库则提供了实现该功能的接口函数。
当一个新的数据包到来时,如果缓冲区已满,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 TCPIP 协议 分析器 设计 毕业论文