WEB开发网
开发学院操作系统windows 2008 深度剖析WinPcap之(四)——WinPcap的体系架构 阅读

深度剖析WinPcap之(四)——WinPcap的体系架构

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示:WinPcap是Win32平台下用于数据包捕获与网络分析的一个架构,它包含一个内核层数据包过滤器,深度剖析WinPcap之(四)——WinPcap的体系架构,一个底层动态链接库(packet.dll),与一个高层并独立于系统的库(wpcap.dll),第二个库导出了更强大的、更高层的捕获函数接口,并提供与 UNIX捕获

WinPcap是Win32平台下用于数据包捕获与网络分析的一个架构。它包含一个内核层数据包过滤器,一个底层动态链接库(packet.dll),与一个高层并独立于系统的库(wpcap.dll)。

1.1 WinPcap的主要组成

WinPcap的各个主要组成部分如图2-1所示。

深度剖析WinPcap之(四)——WinPcap的体系架构

图2-1 WinPcap的主要组成

首先,为了访问网络上传输的原始数据,一个捕获系统需要绕过操作系统的协议栈。这需要一部分程序运行于操作系统的内核中,来与网络接口驱动直接交互。该部分与操作系统密切相关,WinPcap的解决方案是实现一个叫做 Netgroup Packet Filter(NPF)的设备驱动程序,并对Windows 95、Windows 98、Windows ME、Windows NT 4、Windows 2000 与Windows XP等不同操作系统提供不同版本的驱动程序。这些驱动程序提供了数据包捕获与发送的基本特性,同时也提供诸如一个可编程的过滤系统与一个监控引擎之类的更高级特性。第一个特性可用于限制一个捕获会话,只捕获特定的网络数据包(比如,可以只捕获一个特定主机生成的ftp数据包)。第二个特性提供了一个强大但简单的方式,来获取网络流量的统计信息 (比如,可以获取网络负载或两个主机间所交换数据的数量)。

其次,捕获系统必须导出一个接口,使得用户层应用程序可使用内核驱动所提供的特性。WinPcap提供两个不同的库:packet.dll与wpcap.dll。第一个库提供一个底层的API,可用来直接访问驱动程序的函数,提供一个独立于微软的不同操作系统的编程接口。第二个库导出了更强大的、更高层的捕获函数接口,并提供与 UNIX捕获库libpcap的兼容性。这些函数使得数据包的捕获能独立于底层网络硬件与操作系统。

1 2 3 4 5 6  下一页

Tags:深度 剖析 WinPcap

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接