51CTO下载-局域网监控系统研究

51CTO下载-局域网监控系统研究

ID:40517551

大小:379.00 KB

页数:5页

时间:2019-08-04

51CTO下载-局域网监控系统研究_第1页
51CTO下载-局域网监控系统研究_第2页
51CTO下载-局域网监控系统研究_第3页
51CTO下载-局域网监控系统研究_第4页
51CTO下载-局域网监控系统研究_第5页
资源描述:

《51CTO下载-局域网监控系统研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、局域网监控系统研究用VC++实现基Winpcap的网络数据包捕获与分析1,数据包的捕获原理在正常的情况下,一个网络接口应该只响应以下两种数据帧:(1)与自己硬件地址相匹配的数据帧。(2)发向所有机器的广播数据帧。其实在一个实际的系统中,数据的收发由网卡完成,网卡接收到传输来的数据帧,网卡内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断是否接收。而对于合法的网卡来说应该只接收以下数据帧有以下4种模式:①广播方式。②组播方式。③单播方式。④混杂模式。数据包捕获作为一种网络通讯程序

2、,也是通过对网卡的编程来实现网络通讯。因此,网络数据包捕获的基本原理是让网卡接收一切它所能接收的数据。2,基于winpcap库的网络数据包捕捉方法WinPcap是应用于Win32平台的数据包捕获与网络分析的一种体系结构,为Win32应用程序提供访问网络底层的能力,其主要思想来源于Unix系统BSD包捕获构架.WinPcap基本体系结构如图1所示,由3个模块组成:(1)NPF包过滤器,数据包监听设备驱动程序,是架构的核心,它工作在内核级,主要功能是过滤数据包。它直接从数据链路层取得网络数据包,不加修改地传给运行在

3、用户层的应用程序,也允许用户发送原始数据包。(2)Packet.dll是低级的动态连接库,运行在用户级,把应用程序和数据包监听设备驱动程序隔离开来,使得程序可以不加修改地在不同的Windows系统上运行。通过Packet.dll提供的能来直接访问BPF驱动程序的包驱动API,利用“raw”模式发送和接收包。不同Windows系上的Packet.dll并不相同,但由于它提供了一套相同的调用接口,这样使得高级系统无关库不依赖于特定的Windows平台。(3)Wpcap.dll是高级系统无关库,也工作在用户级,它和应

4、用程序编译在一起,并使用低级动态连接库Pack2et.dll提供的服务,向应用程序提供完善的监听接口。WinPcap通过这3个模块提供了以下的各项功能:①捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;②在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;③在网络上发送原始的数据报④收集网络通信过程中的统计信息3基于WinPcap函数库的VC++设计3.1设备数据定义LADAPTERlpadapter//描述一个网络适配器;LPPACKETlppacketr//描述一

5、组网络数据报的结构。3.2捕获过程WinPcap可以捕获到以太帧,按照以下步骤可以使用WinPcap捕获数据帧:(1)查找设备,BOOLEANPacketGetAdapterNames((char*)AdapterName,&AdapterLength)函数值为TRUE则可以得到网络适配器列表及描述,否则返回为FALSE,意为查找失败。(2)打开适配器,如果调用成功返回一个类型为lpadapter指针的包捕获捕捉描述字lpadapter=PacketOpenAdapter(AdapterList)。(3)设置网

6、络接口接收到数据报的过滤规则为混杂模式BOOLEANPacketSetHwFilter(lpadapter,NDIS_PACKET_TYPE_PROMISCUOUS)(4)开始捕获数据包。pthis->lppacketr=PacketAllocate-Packet()//如果运行成功,返回一个_PACKET结构的指针,否则返回NULL。成功返回的结果将会传送到PacketReceivePacket()函数,接收来自驱动的网络数据报。PacketSetBuff(lpadapter,500*1024)//设置捕获数

7、据报的内核级缓冲区大小PacketInitPacket(pthis->lppacketr,(char*)recvbuf,sizeof(recvbuf))//初始化一个LPACKET结构PacketReceivePacket(pthis->lpada-pter,pthis->lppacketr,TRUE)//从NPF驱动程序读取网络数据报及统计信息(5)//关闭参数中提供的网络适配器,释放相关的ADAPTER结构。Packet-CloseAdapter(LPADAPTERlpadapter)4数据包分析利用win

8、pcap库捕捉的数据帧其实是经过传输层,网络层和数据链路层的封装而成的以太网数据帧,因此可以对数据作进一步的分析。4.1以太网的数据分析以太网数据帧有报头和数据区组成,在以太网的报头中包含目的地址端及源地址,各6个字节,帧的报文部分包含的是数据的种类,2各字节。最后放置的是错去校验和修正码,通常抓到的数据是已经去掉了同步码和帧分节符。报头的部分的定义如图2所示。在具体的变成实现中,可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。