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

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

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 1.3.2.3 网络监视 WinPcap提供一个内核层的可编程模块,能够对网络流量计算简单的统计信息,深度剖析WinPcap之(四)——WinPcap的体系架构(8),该模块背后的思想如图2-4所示:统计信息不需要复制数据包到应用程序就能被收集,从监视引擎获取统计结果简化了接收与显示,转储到磁盘

1.3.2.3 网络监视

WinPcap提供一个内核层的可编程模块,能够对网络流量计算简单的统计信息。该模块背后的思想如图2-4所示:统计信息不需要复制数据包到应用程序就能被收集,从监视引擎获取统计结果简化了接收与显示。这允许避免捕获的大部分工作耗费在内存与CPU时钟上。

监视引擎由一个分类器与紧接分类器的一个计数器所组成。数据包使用NPF的过滤引擎被分类,这提供了一种配置方式来选择一个网络流量的子集。经过过滤器的数据到计数器,计数器保存一些变量,如数据包的数目与过滤器接收到字节的数量,并根据网络所接收的数据包的数据来更新这些变量。这些变量在固定时间间隔时传递给用户层应用程序,用户可以配置时间间隔的周期。该模式下在内核与用户空间中没分配缓冲区。

1.3.2.4 转储到磁盘

WinPcap提供转储到磁盘的能力,可以在内核模式下把网络数据直接存储到磁盘。

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

图2-6 数据包捕获与内核层转储

在传统的系统中,图2-6中黑色箭头所表示的就是把数据包存储到磁盘的流程。每个数据包被复制几次,正常情况下,分配4个缓冲区:一个是捕获驱动程序的,一个是应用程序保持所捕获的数据,一个是应用程序写文件所用的stdio函数(或类似)使用的,最后一个是文件系统的。

当NPF的内核层网络流量记录特性(traffic logging feature)激活时,捕获驱动程序直接访问文件系统,这样红色虚线箭头所表示的就是把数据包直接存储到磁盘的流程。只有两个缓冲区与一次复制是必须的,系统调用的数目彻底减少,因此性能显著的更好。

当前,转储到磁盘的功能采用广泛使用的libpcap格式。为了选择存入磁盘的数据包,也提供了在网络流量转储过程前就被过滤的特性。

上一页  3 4 5 6 7 8 

Tags:深度 剖析 WinPcap

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