深度剖析WinPcap之(四)——WinPcap的体系架构
2009-09-11 00:00:00 来源:WEB开发网核心提示: 图2-3 从NIC到应用程序的路径1.2.2 数据包捕获驱动 数据包捕获组件通常对其它的软件模块(如协议栈)是透明的,并不对标准的系统行为带来影响,深度剖析WinPcap之(四)——WinPcap的体系架构(3),它们仅仅在系统中插入一个钩子——通常使用一个回调函数 ta
图2-3 从NIC到应用程序的路径
1.2.2 数据包捕获驱动
数据包捕获组件通常对其它的软件模块(如协议栈)是透明的,并不对标准的系统行为带来影响。它们仅仅在系统中插入一个钩子——通常使用一个回调函数 tap()——只要一个新的数据包从网络上到来,它们就能够被告知。tap()函数所作的第一步就是对数据包执行过滤。在Win32平台下数据包捕获组件通常作为一个网络协议驱动程序被实现。
1.2.3 用户层的接口支持
必须导出一个接口,使得用户层应用程序可使用数据包捕获组件所提供的功能,一般通过给用户提供易于使用的库来实现。WinPcap提供packet.dll与wpcap.dll两个库,这些库使得应用程序对数据包捕获功能的使用能独立于底层网络硬件与操作系统。
1.3 WinPcap驱动内部说明
WinPcap的结构如图2-4所示,NPF是WinPcap的组件,用来处理网络上传输的数据包,并对用户层导出数据包捕获、发送与分析的能力。下面将描述NPF与操作系统与其基础结构体的交互。
图2-4 NPF的结构
1.3.1 NPF与NDIS
网络驱动程序接口规范(NDIS)标准,定义了网络适配器(或者,更好的说法是管理网络适配器的驱动程序)与协议驱动程序(如TCP/IP就为一个实现实例)之间的通信。NDIS的主要目的是扮演一个包装层,允许协议驱动程序不依赖特定适配器或特定Win32操作系统来发送和接收网络(LAN或WAN)上的数据包。
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接