网络嗅探器的设计与实现_第1页
网络嗅探器的设计与实现_第2页
网络嗅探器的设计与实现_第3页
网络嗅探器的设计与实现_第4页
网络嗅探器的设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计 算 机 网 络 课 程 设 计 报 告网络嗅探器的设计与实现目录第一章 设计目的、任务与要求 .11.1 设计的目的 .11.2 设计的任务与要求 .1第二章 系统分析设计 .12.1 需求分析 .12.2 原理分析 .12.3 网络中数据传送过程以及数据包结构 .22.3.1 信息传送过程 .22.3.2 数据包的结构 .2第三章 系统实现 .43.1 Winpcap 技术 .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.1 Winpcap 技术winpcap(windows packet capture)是 windows 平台下一个免费,公共的网络访问系统。开发 winpcap 这个项目的目的在于为 win32 应用程序提供访问网络底层的能力。Winpcap 是一个 Win32 平台下用于抓包和分析的系统。包括一个内核级别的 packet filter,一个底层的 DLL(packet.dll)和一个高级的独立于系统的 DLL(Wpcap.dll) 。它用于 windows 系统下的直接的网络编程。Winpcap 特别适用于下面这几个经典领域: 网络及协议分析 网络监控 通信日志记录 Traffic generators 用户级别的桥路和路由 网络入侵检测系统(NIDS) 网络扫描 安全工具通过安装 winpcap 组件,即可在 win32 程序上调用 winpcap 所提供的函数,来截获经过网卡的所有数据包。Winpcap 配置过程如下:在 winpcap 官网(/install/default.htm)上下载安装 winpcap 驱动和 DLL 组件,如图 9 所示,然后进行安装。5再到 /devel.htm.下载 winpcap 开发包,解压到任意目录,可以看到里面包含了:Lib,Include,文档和实例程序。6手动添加相关库文件。如果不添加,运行程序时会出现这样的错误:fatal error C1083: Cannot open include file: pcap.h: No such file or directory。第一步,在 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, /* portion of the packet to capture.*/* 65536 grants that the whole packet will be captured on allthe MACs.*/1, /* 混杂模式*/1000, /* 读超时为 1 秒*/errbuf /* error buffer*/) = NULL)fprintf(stderr, “nUnable to open the adapter. %s is not supported by LibPcapn“);/* Free the device list */pcap_freealldevs(alldevs);return -1;printf(“n 正在监听%s.n“, d-descrip

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论