基于WinPcap的网络分析研究与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于WinPcap的网络分析研究与实现
摘要近几年,我国经济发展迅速,各个领域的事业都趋于完善。在网络信息技术的不断发展下,通过对WinPcap的应用,真正实现了Windows下网络数据包的捕获技术,下文将详细阐述IP、Tcp等等协议的解析过程。网络数据的储存通过msspl来实现,进而建立系统硬件运行环境。对局域网,通过测试实现了全局监控。
关键词信息技术;网络分析;分析与研究;运行环境;数据包;源代码
1 应用环境
网络监控系统承载介质中,硬件与软件监控系统共同构成网络监控。网络监控系统标准功能是对局域网中的违规行为进行记录与监控。在国外一些发达国家,有两款软件Ethereal与Sniffer,后者主要任务就是给网管及时提供网络监视情况与数据包捕以及故障分析等内容,这样能方便网管对现场进行迅速的故障处理以及诊断能力。与此同时,还能使用户得到更好的网络管理以及故障分析功能。前者作为一种可以捕获数据包,并且将这个数据包的信息显示出来,这样的一款网络数据包分析软件,在通用许可证的保障范围内,其数据包分析软件用户能免费得到。除此之外,还可以得到其源代码,并且也能够根据自身的需要来将其源代码进行修改。现阶段,Wireshark是全球应用最多的一种网络数据包分析软件[1]。
2 Win Pcap研究
抓包的过程,是通过用户级的程序接口来完成的。在这些接口中,用户程序能够利用内核驱动提供的高级特性。作为WinPcap所提供的2个库,PACKET 提供一个底层api,应用这个库能够访问驱动的函数。这些函数能够实现来抓包时,网络硬件与操作系统独立。NDIS作为一种管理网络适配器的驱动程序和协议驱动之间的规范。其还是一个可以让协议驱动发生与接收数据包并且不用看特定的适配器或者特定的Win32操作系统的封装。捕获数据包是通过NPF来实现的。在进行数据包的捕获时,数据包的监控任务是一个网络接口,进而应用程序才能够完整抹除这部分数据包。Bpf是一种虚拟的处理器,其能够编写一个用户过滤程序,过滤系统的基础就是这里。
2.1 NDIS驱动器接口标准
在传输层还有网络层以及数据链路层之间,是NDIS。其规范了网卡驱动与应用层协议驱动的通信接口。这与物理层没有关联。这样一来,就使上层协议驱动程序与底层任意类型的网卡进行通信。在进行网络驱动开发时,就不用研究操作系统的内核以及其他的驱动程序接口的相关事宜。将NDIS函数调用起来就可以,如此一来使操作系统的烦琐通信分离在网络驱动程序中,变得更加容易编写起来。除此之外,通过对NDIS的应用,使其封装性能够只应用在一层驱动的设
计上,极大程度地降低了设计的烦琐性,更容易开拓驱动程序。
2.2 BPF研究
Bpf是通过Filler以及Network tap组成的。Filler 对监听到的数据包中用户感兴趣的进行分析,本质上它就是一个数据包的过滤器,根据不同的用户需求可以设置过滤的条件,设置成仅对特定协议的数据包接收。需要探听网络中所有数据流则用Network Tap 函数。当一个数据包被网卡驱动接收到以后,链路层的驱动程序就会把数据包转给协议栈程序进行处理,如果这时有进程调用BPF 网络端口监听程序的话,则BPF 首先被链路层的驱动程序所调用,BPF会首先把一份数据复制到缓冲区中进行判断是否接收,首先根据事先定义的过滤规则进行判断,如果不符合规则的从中断返回,然后还需要判断这个数据包是否是发给本机的,如果是的话,链路层的驱动程序转给协议栈程序,然后返回,否则从中断返回,继续接收数据包,重复进行数据包的过滤工作。
3 系统设计
3.1 系统逻辑结构
通过对实际工程进行分析可知,整个系统有三个模块,分别是抓包、协议分析以及数据存储模块。第一个是整个局域網监控系统中,最为基础的一个组成部分。在整个系统的设计上,首先要考虑的就是怎样从网络中抓包,实现方式多种多样,可以根据操作系统以及环境的不同,进而选择不一样的方式去实现。此系统,通过对WinPcap函数库进行应用,进而从网络中抓包。
3.2 捕获模块
对于网卡混杂模式的应用,目的在于能够截取网络数据包。但是根据实际工程的原因,大多数情况下,都必须过滤掉网络上的一些特殊的数据包。所以,在进行捕获时,要对不同的数据包进行核查,只有符合过滤条件才能被过滤掉。这样一来,降低了系统效率,我们不可能对每一个数据包都进行过滤,即使这样做了,也可能会丢失以及分析处理不当,导致的数据包出现种种问题。但是,文章中所提到的这个系统,是通过对WinPcap进行应用,进行实现对数据包的捕获,不仅仅能够提升监听效率,还能够减少开发程序,极大程度提升了系统的移植性。
3.3 WinPcap 过滤规则及捕获数据包
WinPcap 过滤器是基于描述性而指定的语法规则,过滤规则是一个包含过滤表达式的ASCII 码字符串。捕获数据包步骤图如图1所示。
4 结束语
根据上文的分析与研究可知。在网络中对数据包进行抓取以及分析工作时,可以应用以太网的广播机制或者是网卡应用的混杂工作模式。这样一来,还能够
有效的优化网络提供数据支持。
参考文献
[1] 郭凯.基于WinPcap的数据包捕获系统的设计与实现[D].西安:西安电子科技大学,2013.