欢迎来到天天文库
浏览记录
ID:6073748
大小:31.50 KB
页数:9页
时间:2018-01-02
《基于winpcap网络数据包捕获和存储技术探究》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于Winpcap网络数据包捕获和存储技术探究 摘要:利用Winpcap网络开发包使应用程序绕过协议栈捕获并传送网络数据包,实现了数据包的循环捕获。基于Windows平台,用VC++6.0实现界面设计,并运用ADO技术与数据库连接,实现了数据包实时分析和数据的存储功能。关键词:Winpcap;数据包;协议分析;数据库中图分类号:TP391文献标识码:A文章编号文章编号:16727800(2014)001012503作者简介作者简介:李星(1987-),男,西南交通大学电气工程学院硕士研究生,研究方向为微机保护与综合自动化。0引言随着计算机网络的迅速发展,人们迫切希望网络上的信息
2、不被泄露、更改和破坏,网络服务不被中断。网络数据包捕获和分析技术是网络安全维护的基础技术和核心手段,因此,深入研究网络数据包的捕获和分析技术尤为必要。本文提出了一种可行的捕获网络数据包的设计流程,并实现了对捕获的数据包的实时分析和存储功能。1基于Winpcap数据包的捕获技术91.1网络通信模型及常规通信编程方法计算机网络通信采用OSI七层模型标准,只要遵循这个标准就可以和位于世界任何地方、同样也遵循OSI标准的其它任何系统进行连接。但实际上完全符合各层协议的商用产品很少,随着Internet在全世界的飞速发展,TCP/IP已经成为事实上的国际标准,它们的对比参考模型如图1所示。
3、图1OSI模型与TCP/IP参考模型对Windows系统,数据包捕获用到的主要方法有原始套接字、调用NDIS库函数、使用他人编写的中间层驱动、使用第三方组织提供的捕获组件或者库(如Winpcap)共4种。本文采用第4种,具体介绍如下:1.2Winpcap技术简介Winpcap是UNIX下的libpcap移植到Windows下的产物,它是一个开源项目。Winpcap工作于驱动(Driver)层,所以能以很高的效率进行网络操作。Winpcap提供了以下强大功能[1]:①获取网卡列表及信息;②捕获原始的数据包;③设置filter,只捕获自己感兴趣的数据包;④方便地把捕获的数据包输出到文
4、件和从文件输入;⑤发送原始的数据包;⑥统计网络流量。9本文使用MFC应用程序的界面设计编写程序,核心开发主要使用Winpcap完成。Winpcap的组成部分如图2所示,使用其提供的函数主要完成网络数据包的捕获等功能。图2Winpcap的组成部分Winpcap为Win32应用程序提供访问网络底层的能力,底层是基于WINPCAP包进行开发。主要用到的函数包括[2]:(1)intpcap_findalldevs();用于返回所找到的适配器列表。(2)pcap_t*pcap_open();用于打开一个网络接口进行数据包捕获。(3)voidpcap_dump();用于将包内容输出到由pca
5、p_dump_open()打开的文件中。(4)intpcap_compile();用于将过滤规则字符串编译成一个BPF内核过滤程序。(5)intpcap_setfilter();功能是设置BPF过滤规则。(6)intpcap_datalink();功能是获取数据链路层类型,如10M以太网、SLIP、IEEE802.3等。1.3数据捕获原理9以太网(Ethernet)是一种总线型网络,具有共享介质的特征,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通道的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的
6、数据包,运用这一原理就能监听所需要的信息。1.4原始数据包捕获的实现捕获流程按先后顺序如下:①捕获设备可用的接口列表;②选择接口并将其设为混杂模式捕捉;③将捕捉的数据包保存进数据库以便读取和分析;④读取数据库保存的数据包并进行分析;⑤释放接口。本软件建立在Winpcap结构的第三层模块Winpcap.dll之上,并用VC++6.0多线程技术实现。主线程用于查找和显示网络设备、设置过滤器、分析数据包。子线程用于打开选择网络接口、捕获数据包并实时存入数据库中。1.5体系结构设计总框架Winpcap提供了数据包的捕获功能,在不同的应用中需要设计不同的协议分析模块。针对不同的协议,设计相
7、应的协议分析功能,是基于Winpcap应用的关键所在。本文使用Winpcap捕获和分析网络数据包的框架如图3所示。图3网络数据包捕获和分析框架2具体设计与实现过程2.1Winpcap安装与配置9由于本程序采用Winpcap抓取数据包,所以需要Winpcap软件包以及相应开发包的支持。主要配置包括头文件目录和库文件目录,增加与Winpcap有关的预处理定义、pcap.h头文件以及添加静态链接库,然后编译并测试代码。本程序采用的开发环境是Winpcap4.1.3以及对应的开发包[3]
此文档下载收益归作者所有