基于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介绍 1、WinPcap简介 大多数Unix操作系统提供了一套允许应用程序直接与网络相互联系的系统调用。这些指令对于那些需要通过网络捕获连续的包数据而不用内核进行过多的干预的包捕获应用程序非常有用。在Windows环境下,WinPcap就是这样一类工具。 WinPcap是一个在Windows操作系统下的免费、公开的用于直接访问网络的开发工具包(编程API)。大多数Windows网络应用程序都是通过Winsock API(Windows套接口)这类高级编程接口访问网络的。这种方法允许在网络上进行简单的数据传送,因为操作系统的TCP/IP协议栈实现软件会处理底层细节(协议操作、流程重组等等),并提供一个类似于读写文件的函数接口。 然而,有时候“简便方法”并不能满足实际需要。有些程序希望绕过TCP/IP协议栈,直接处理底层网络中的通信数据,它们需要对网络进行底层进行直接访问,即在没有类似协议栈(TCP/IP协议栈)的实体介入条件下对网络进行原始访问。 基于Winsock API编程,应用程序是通过调用操作系统提供的编程接口访问TCP/IP协议栈实现网络通信的。基于WinPcap编程,网络程序实际上是绕开操作系统的TCP/IP协议栈直接通过底层网络发送数据,因此,网络程序可以实现一些更低级、更灵活的功能。 2、WinPcap的目的和用途 开发WinPcap的目的是为Win32应用程序提供一种直接访问底层网络的能力。通过WinPcap,网络应用程序可以实现如下功能: 捕获原始数据包,包括发送到本主机以及在共享网络上的数据包。 数据过滤。在将数据包发送给应用程序之前按照用户的规定对捕获的数据包进行过滤。 发送原始数据包。向网络发送原始数据包。 数据包统计。对网络通信进行统计。 上述功能都通过一个设备驱动(这个驱动程序安装在Win32内核的网络部分)和一组动态连接库(DLL)获得。所有这些功能部件都通过一个强大的编程接口来实现,应用程序能易于开发并且能移植到各种操作系统中。 3、基于WinPcap可以开发的网络应用程序 基于WinPcap可以开发很多网络应用程序,典型的包括: 网络和协议分析软件 网络监听软件 网络通信量记录软件 网络数据生成软件 用户机网桥和路由器 网络入侵探测系统 网络扫描软件 网络安全工具 4、WinPcap的局限性 WinPcap可以独立于主机的协议(如TCP/IP协议)进行接收和发送数据包。这意味着WinPcap不能阻塞、过滤或处理本机上其它程序产生的数据。它仅仅能嗅探在网线上传输的数据包。因此,WinPcap不能在traffic shapers(即流量整形,它是是一种主动调整流量输出速率的措施。一个典型应用是基于下游网络结点的tp 指标来控制本地流量的输出。)、QoS schedulers和个人防火墙这类应用程序中使用。 5、WinPcap的开发和运行环境 目前,winpcap主要的开发和运行环境是windows NT/2000/XP。由于winpcap的用户中只有很小一部分使用windows 95/98/Me,并且微软也已经放弃了对win9x的开发和支持。实际上,winpcap中的面向9x系统的概念和NT系统的非常相似,只是在某些实现上有点差异,比如说9x只支持ANSI编码,而NT系统则提倡使用Unicode编码。 简单来讲,WinPcap典型的开发和运行环境是windows NT/2000/XP。当然,早期的WinPcap也支持windows 95/98/Me,但是,我们不推荐在windows 95/98/Me下开发和运行基于WinPcap的网络应用。 二、WinPcap的体系结构分析 1、WinPcap的组成与结构 如图2.1,WinPcap由一个数据包监听设备驱动程序(NPF)、一个底层的动态连接库(packet.dll)和一个高层的不依赖于操作系统的静态库(wpcap.dll)共三个部分构成。这里,NPF在操作系统的内核级,packet.dll、wpcap.dll在用户级。 1)数据包监听设备驱动程序 技术实现上,为了实现抓包,系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包(raw packet)。这就要求WinPcap的一部分运行在操作系统核心内部,直接与网络接口驱动交互。由于这个部分是系统依赖(system dependent)的,在Winpcap的解决方案中它被视为是一个设备驱动,称作NPF(Netgroup Packet Filter)。Winpcap开发小组针对Windows95,Windows98,WindowsME,Windows NT 4,Windows2000和WindowsXP提供了不同版本的驱动(在Windows95/9

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档