WinPcap网络分析的体系结构.docVIP

  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网络分析的体系结构 方松茂 李 祥 (贵州大学计算机软件与理论研究所 贵阳550025) 摘要:WinPcap是一个包含了一套与libpcap兼容的捕获网络数据包的函数库,在各 种不同的网络分析工具、故障工具、安全工具和监听工具开发中被广泛使用; 首先介绍WinPcap,分析其体现结构,并通过捕获、发送网络数据包实例说明该函 数库的使用方法。 关键词: WinPcap , LibPcap, 结构体系,网络分析 WinPcap是一个包含了一套与libpcap兼容的捕获数据包的函数库。这套函数库是由加州大学和Lawrence Berkeley实验室及其投稿者联合开发的。他们在1999年3月31日推出了1.0版,提供了用户级BPF过滤;1999年8月21日推出了2.0版,将BPF过滤增加到带内核驱动模式的WinPcap及其功能 进行网络分析的应用程序依赖于一套适当的指令来捕获网络中的数据包,监听网络等等。几乎所有的Unix系统版本都含有至少是支持捕获分组的内核模块。在Windows中有一些API有自己的内核模块,然而它们都有一些局限。例如,Netmon API不是免费的,其扩展性很有限,而且它不允许发数据包。IP过滤驱动程序只在Windows2000上有效,它除了IP协议外不支持任何其他协议。它允许操作或丢弃数据包但不允许监听和产生数据包。PCAUSA[11]是一套商业化的产品,它提供一个捕获包的接口及兼容BPF的过滤器。然而,用户的接口都很底层,没有提供类似于产生过滤器的抽象函数。 WinPcap是一个在Windows操作系统下的免费的、公开的用于直接访问网络的系统。大多数网络应用程序都是通过被广泛使用的系统原函数(如套接字)来访问网络。这种方法允许在网络上进行简单的数据传送,因为OS处理底层细节(协议操作、流程重组等等),并提供一个类似于读写文件的函数接口。WinPcap包含了一个最优化的内核模式驱动——称作Netgroup Packet Filter(NPF),和一套与libpcap兼容的用户级函数库。WinPcap使Unix平台下的应用程序能方便的与Win32平台下程序联系,并且它能使一套很大的函数库只需通过简单的重新编译就立刻在Win32平台下使用。而且,由于网络监听的重要性,WinPcap还为此提供了特殊的系统调用函数。 WinPcap有以下功能: (1)捕获原始数据包,捕获包括发送到正在运行的主机上的数据包和在其它主机在共享媒介上交换的数据包。 (2)过滤器在将数据包发送给应用程序之前按用户规定对捕获的数据包进行过滤。 (3)向网络发送原始数据包。 (4)对网络通信进行统计。 WinPcap能够被各种不同的网络分析工具、发现并修理故障工具、安全工具和监听工具使用。依赖于WinPcap的典型工具有:网络和协议分析软件;网络监听软件;网络通信量记录软件;网络数据生成软件;用户机网桥和路由器;网络入侵探测系统;网络扫描软件;网络安全工具。 WinPcap可以独立于主机的协议(如TCP-IP协议)进行接收和发送数据包。这意味着WinPcap不能阻塞、过滤或处理本机上其它程序产生的数据:它仅仅能嗅探在网线上传输的数据包。因此,WinPcap不能在traffic shapers、QoS schedulers和个人防火墙这类应用程序中使用。 鉴于WinPcap的强大功能,因而受到了广泛的使用。国内外众多的网络安全软件都使用了这个函数库进行开发,并取得了良好的效果。 2.WinPcap的结构体系 首先介绍BSD捕获包体系结构(如图1)。 Berkeley Packet Filter(BPF)[2]是捕获包的内核部分,它还被看作是可以通过接口驱动与网络接口联系的设备驱动程序。BPF由以下部分构成:1. Network Tap[3]是一个用于探听网络中所有数据流的函数;2. Filter是一个过滤器,用于分析所监听到的用户感兴趣的包(用户可将过滤器设置为只接收网络中某一类数据包子集)。如果一个包符合过滤器的要求,就被复制到内核缓冲区(Kernel buffers)中(这个缓冲区被细分为两小部分,用来将捕获的数据包保存一段时间)。这些内存通常在捕获进程的一开始动态分配:第一块缓冲区(store)一般是保存网络适配器传来的数据,第二块缓冲区(hold)是将数据包复制到用户的缓冲区中。当store缓冲区满了而hold缓冲区仍是空的时,BPF会将它们两个交换。 图1. 基于BSD系统的监听程序结构 程序员主要关心Libpcap部分,因为它将应用程序与OS内核之间的相互作用隐藏起来,提供了一套与用户程序联系的函数和强大的捕获数据包的抽象接口,包括过滤器产生器、用户缓冲区管理(这对应用程

文档评论(0)

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

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

1亿VIP精品文档

相关文档