网络嗅探器的设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机网络课程设计报告网络嗅探器的设计与实现目录第一章设计目的、任务与要求...................................................................................................11.1设计的目的..............................................................11.2设计的任务与要求........................................................1第二章系统分析设计.....................................................................................................................12.1需求分析................................................................12.2原理分析...............................................................12.3网络中数据传送过程以及数据包结构........................................22.3.1信息传送过程..........................................................................................................22.3.2数据包的结构.........................................................................................................2第三章系统实现.............................................................................................................................43.1Winpcap技术............................................................43.2系统主要模块............................................................73.3实现界面...............................................................9第四章心得体会...........................................................................................................................104.1程序总结..............................................................104.2个人总结..............................................................10参考文献.........................................................................................................................................10附录................................................................................................................................................111第一章设计目的、任务与要求1.1设计的目的编写程序实现捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。1.2设计的任务与要求IP数据包的捕获与分析,程序能够自动的收集局域网中的IP数据包,能在程序运行时进行显示。实现在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。程序的具体要求如下:1)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。2)形成记录结果的日志文件。第二章系统分析设计2.1需求分析在通常情况下,网络通讯的Socket程序只能响应与自己硬件地址想匹配的或者是以广播形式发出的数据桢,对于其他形式的数据桢,比如已到达网络接口但却不是发给此地址的数据桢,网络接口在验证目的MAC并非自身地址之后,将不进行响应,也就是说应用程序无法收取与自己无关的数据包。所以,我们要想实现截获流经网络设备的所有数据包,都要采取一点特别的手段了:将网卡设置为混杂模式,这样以来,该主机的网卡就可以捕获所有流经其网卡的数据包和帧。利用基于Win32的捕获数据包和网络分析的Winpcap可以实现从网卡捕获以及分析IP数据包。2.2原理分析Winpcap所包含的packet.dll和Wpcap.dll:packet.dll直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加强大的函数调用。WinPcap的优势提供了一套标准的抓包接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性2能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。2.3网络中数据传送过程以及数据包结构2.3.1信息传送过程计算机网络将要传输的报文分割成一个个小的数据片段,称为“分组”,在每一个分组的数据前加上传输数据所必需的信息“报头”,就构成了网络数据传输的基本部件“数据包”。在计算机网络中,传输的信息是以数据包为基本传输单位的,数据包的内容是被分割后的信息块,在每个数据包上附加了多层包头。在一个数据包里,信息内容往往是不完整的,而在每一个数据包头部,完整地包含了传送此数据包所需的全部来源及目标的地址信息。在一个数据包最里层是被传输的数据。在数据的外面首先由处理此数据的应用程序将数据片断外包裹上应用层的协议,然后交给网络通信系统软件,网络通信系统软件根据此数据包的传输方式,为数据包裹上传输层协议,交给下一层协议。下面的网络层协议根据数据包的路由地址,为其包裹上网络层协议,并交给下一层协议。下面的链路层协议为数据包加上来源和目标物理地址的链路层协议后交给下一层协议。在物理层,由网络通信硬件系统按照通信设备的要求将数据包转换成一个个符合物理层协议的电脉冲,通过网络接口电路发送的网络传输媒介上。这一串串电脉冲沿着传输媒介到达下一个网络节点。在每一个网络节点上,节点设备将收到的电脉冲还原为数字信号,并对数字信号进行判读和分析,了解此数据包的最终目的地,并根据节点上的路由表为此数据包选择一个到达目的地的最佳路由,并对此数据包进行必要的修改和签章后再次发送到网络传输媒介上。数据包就这样通过一个个网络节点,最终到达了信息传输的目的地。在目标主机上,依据网络协议,逐层地对数据包进行签收和校验,如果数据包未出现差错,则剥除此层的协议,将数据向上层递交。通过如此逐层剥除与递交,最终在应用层由应用软件系统将一个个还原后的数据包拼接还原为原始的状态,完成了数据的传输过程。2.3.2数据包的结构捕获的网络数据包的结构如图所示:DLC数据帧头IP数据包结构UDP/TCP/ICMP/IGMP数据报结构数据其中DLC数据帧头:目的MAC(6字节)源MAC(6字节)以太网类型(2字节)3IP数据包结构:UDP数据包结构:TCP数据包结构:ICMP数据包结构:4IGMP数据包结构:第三章系统实现3.1Winpcap技术winpcap(windowspacketcapture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。Winpcap是一个Win32平台下用于抓包和分析的系统。包括一个内核级别的packetfilter,一个底层的DLL(packet.dll)和一个高级的独立于系统的DLL(Wpcap.dll)。它用于windows系统下的直接的网络编程。Winpcap特别适用于下面这几个经典领域:①网络及协议分析②网络监控③通信日志记录④Trafficgenerators⑤用户级别的桥路和路由⑥网络入侵检测系统(NIDS)⑦网络扫描⑧安全工具通过安装winpcap组件,即可在win32程序上调用winpcap所提供的函数,来截获经过网卡的所有数据包。Winpcap配置过程如下:⑴在winpcap官网()上下载安装winpcap驱动和DLL组件,如图9所示,然后进行安装。5再到下载winpcap开发包,解压到任意目录,可以看到里面包含了:Lib,Include,文档和实例程序。6⑵手动添加相关库文件。如果不添加,运行程序时会出现这样的错误:fatalerrorC1083:Cannotopenincludefile:'pcap.h':Nosuchfileordirectory。第一步,在VC6.0的菜单栏上工具选项目录下面添加将winpcap的include,lib目录添加进VC6.0的环境变量,如图12所示,最后点击确定。第二步,在工程设置连接中,导入wpcap.lib和Packet.lib库,如图13。在C/C++中,添加WPCAP,HAVE_REMOTE。7经过以上步骤,Winpcap就配置好了。3.2系统主要模块数据包的捕获和分析模块流程图如下:开始扫描网卡选择网卡并设置为混杂模式监听网卡捕获和解析IP数据包输出解析信息并存入日志8IP数据包捕获的重要代码分析:if((adhandle=pcap_open_live(d-name,/*设备名称*/65536,/*portionofthepackettocapture.*//*65536grantsthatthewholepacketwillbecapturedonalltheMACs.*/1,/*混杂模式*/1000,/*读超时为1秒*/errbuf/*errorbuffer*/))==NULL){fprintf(stderr,\nUnabletoopentheadapter.%sisnotsupportedbyLibPcap\n);/*Freethedevicelist*/pcap_freealldevs(alldevs);return-1;}printf(\n正在监听%s...\n,d-description);//Atthispoint,wedon'tneedanymorethedevicelist.Freeitpcap_freealldevs(alldevs);//开始捕获包pcap_loop(adhandle,0,ethernet_protocol_analysis,NULL);mylog.close();//关闭文件结束93.3实现界面10第四章心得体会4.1程序总结在这次课程设计中,主要犯的错误主要有以下几种:①不知道如何添加

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功