深度剖析WinPcap之(四)——WinPcap的体系架构
2009-09-11 00:00:00 来源:WEB开发网NDIS支持三种类型的网络驱动程序:
1) 网络接口卡或NIC驱动程序
NIC 驱动直接管理网络接口卡(network interface cards,NIC)。NIC驱动程序在其下面直接与硬件打交道,在其上面提供一个接口,允许高层(驱动)在网络上发送数据包,处理中断,复位网卡,停止 NIC,请求与设置驱动的操作特性。NIC驱动即可为微端口( miniports),也可为遗留的全NIC驱动。
微端口驱动程序
微端口驱动程序仅实现特定的硬件操作来管理NIC,包括发送与接收NIC上的数据。对所有底层NIC驱动程序通用的操作,诸如同步管理,是由DICS提供的 。微端口不直接调用操作系统的例行程序;它们与操作系统的接口是NDIS.
微端口不保持绑定的跟踪。它仅把数据包向上传递给NIDIS,并由NDIS确定这些数据包传递给合适的协议。
全NIC驱动程序
全NIC驱动程序被编制为即执行特定硬件操作,也执行所有同步与排队这些通常由NDIS完成的操作。全NIC驱动程序,例如,需要维护它们自己的绑定信息以标识所接收的数据。
2) 中间层驱动程序
中间层驱动程序是一个上层驱动程序(诸如协议驱动程序)与微端口驱动程序之间的接口。对上层驱动程序而言,一个中间层驱动程序看起来像一个微端口驱动程序。对一个微端口驱动程序而言,一个中间层驱动程序看起来像一个协议驱动程序。一个中间层协议驱动程序可以位于另一个中间层驱动程序的顶部,尽管这样的分层对系统性能有负面影响。开发中间层驱动程序的典型原因,是在一个已有的遗留协议驱动程序与一个微端口驱动程序之间介质转换任务,而该微端口驱动程把NIC作为一种对协议驱动程序而言是未知的新介质类型来管理。例如,一个中间层驱动程序能够从LAN协议转换到ATM协议。一个中间层驱动程序不能与用户层的应用程序通信,只能与其它NDIS驱动程序进行通信。
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接