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

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

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 3) 传输层驱动程序或协议驱动程序.一个协议驱动程序实现一个网络协议栈,诸如 IPX/SPX 或TCP/IP,深度剖析WinPcap之(四)——WinPcap的体系架构(5),它在一个或多个网络接口卡上提供服务,一个协议驱动程序对其上面应用程序层的客户提供服务,在一个捕获过程中,驱动程序利用一个

3) 传输层驱动程序或协议驱动程序.

一个协议驱动程序实现一个网络协议栈,诸如 IPX/SPX 或TCP/IP,它在一个或多个网络接口卡上提供服务。一个协议驱动程序对其上面应用程序层的客户提供服务,同时与一个或多个NIC驱动程序或其下面的中间层NDIS驱动程序连接。

NPF作为一个协议驱动程序实现。从性能的角度这可能并不是最好的选择,但是其允许与MAC层具有合理的独立,同时也能完全访问原始流量。

NPF在NDIS栈中的位置如图2-5所示。

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

图2-5 NDIS中的NPF

正常情况下与操作系统的交互为异步。这意味着驱动提供了一个回调函数集,在一些操作需要NPF处理时被系统调用。NPF为应用程序的所有I/O操作:open、 close、 read、write、 ioctl等导出对应的回调函数。

同样与NDIS的交互也是异步的。如一个新数据包到来的事件就通过一个回调函数(此时为Packet_tap())通知NPF。此外,NDIS与NIC驱动程序的交互总是依靠非阻塞函数发生:当NPF调用一个NDIS函数,该调用立即返回;当处理结束后,NDIS调用一个特定的NPF回调函数(也叫完成函数)来通告该函数已经完成。驱动程序为任何底层的操作,如发送数据包,对NIC设置或请求参数等,导出一个回调函数。

1.3.2 NPF的主要功能

NPF能够执行许多操作:捕获、监视、转储到磁盘、数据包发送。下面将简短的描述这些操作。

1.3.2.1 数据包捕获

NPF最重要的操作是数据包的捕获。在一个捕获过程中,驱动程序利用一个网络接口嗅探数据包,并把它们完整无缺的递送给用户层应用程序。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:深度 剖析 WinPcap

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