NDIS

NDIS(NetworkDriverInterfaceSpecification)是网络驱动程序接口规范的简称。它横跨传输层、网络层和数据 链路层,定义了网卡或网卡驱动程序与上层协议驱动程序之间的通信接口规范,屏蔽了底层物理硬件的不同,使上层的协议驱动程序可以和底层任何型号的网卡通 信。

NDIS的主要目的就 是为NIC(网络接口卡,Netwok Interface Cards)制定出标准的API接口。MAC(介质访问控制,Media Access Controller)设备驱动封装了所有的NIC硬件 实现,这样一来所有的使用相同介质的NIC就可以通过通用的编程接口被访问。 NDIS同时也提供一个函数库(又时也称作wrapper),这个库中的函数可以被MAC驱动调用,也可以被高层的协议(例如TCP/IP)驱动调用。这 些wrapper函数使得MAC驱动和协议驱动的开发变得更加容易。

NDIS支持三种类型的网络驱动:

(1) 网络接口卡或NIC驱动(Network interface card or NIC drivers)。

NIC驱动直接管理着网络接口卡(NIC)。NIC驱动接下边与硬件连接,从上边表现为一个接口,该接口允许高层发送数据包到网络上,处理中断,重 置NIC,停止NIC,查询和设置驱动的运行特征。NIC驱动可以是小端口(miniport)或完全的NIC驱动(full NIC driver)。

Miniport驱动仅仅实现了管理NIC的必要操作,包括在NIC上发送和接收数据。对于所有最底层的NIC驱动的操作由NDIS提供,例如同步 (synchronization)。小端口(miniport)不直接调用操作系统函数,它们对于操作系统的接口是NDIS。小端口仅仅是向上传递数据 包给NDIS并且NDIS确保这些数据包被传递给正确的协议。

完全NIC驱动(Full NIC driver)完成硬件细节的操作和所有由NDIS完成的同步和查询操作。例如,完全NIC驱动维持接收到的数据的绑定信息。

(2) 中间层驱动(Intermediate drivers)

中间层驱动位于高层驱动(例如协议驱动)和小端口之间。对于高层驱动,中间层驱动看起来像是小端口;对于小端口,中间层驱动看起来像协议驱动。一个 中间层协议驱动可以位于另一个中间层驱动之上,尽管这种分层可能对系统性能带来负面影响。开发中间层驱动的一个关键原因是在现存的遗留协议驱动 (legacy protocol driver)和小端口之间形成媒体的转化。例如,中间层驱动可以将LAN协议转换成ATM协议。中间层驱动不能与用户模式的应用程序通信,但可以与其他 的NDIS驱动通信。

(3) 传输驱动或协议驱动(Transport drivers or protocol drivers)

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

最新文章

  1. js 获取根目录 获取参数
  2. ASP.NET MVC3入门教程之ajax交互
  3. sessionId在fragment里无法保存的问题
  4. hdu 1281 二分图匹配
  5. UIScrollView,UIView转换UIImage代码(整个view截图, 不只是可视区域)
  6. Lambda表达式转SQL语句类库
  7. 【JavaScript】深入分析JavaScript的关系运算和if语句
  8. Petya勒索病毒疫苗出现,分分钟让电脑对病毒免疫
  9. 大家好,我是ZCDHJ
  10. 我的第一次Pascal程序
  11. JDBC控制事务
  12. PostgreSql 使用dblink跨库
  13. JSR-303 数据校验学习
  14. quartus 一种管脚分配方法
  15. java操作elasticsearch实现聚合查询
  16. Codeforces Round #542 Div. 1
  17. JSP基础知识➣Cookie和Session(五)
  18. spring aop 之annotation
  19. TouchSlide 插件参数
  20. C# mysql 插入数据,中文乱码

热门文章

  1. eXtremeDB相关问题解答(3)
  2. Linux Unix shell 编程指南学习笔记(第二部分)
  3. php intval函数
  4. 配置Lotus Domino集群视频详解
  5. Dubbo学习总结(1)——Dubbo入门基础与实例讲解
  6. Android屏幕分辨率获取方法--源码剖析
  7. zookeeper提供了什么
  8. [PWA] Deal with caches in PWA
  9. Node.js安装+环境配置【Windows版】
  10. 洛谷P3403跳楼机(最短路构造/同余最短路)