基于Winpcap网络数据包捕获和存储技术探究.docVIP

基于Winpcap网络数据包捕获和存储技术探究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Winpcap网络数据包捕获和存储技术探究

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

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档