NDIS(网络驱动程序接口规范)是一种Windows规范,用于说明通信协议程序(如TCP / IP)和网络设备驱动程序应如何相互通信。NDIS指定以下接口:
1.通过从称为帧(有时是数据包或数据报)的格式化单元构造或提取数据来发送和接收数据的程序。该程序通常称为协议栈,是分层的,通常对应于开放系统互连(OSI)参考模型的第3层和第4层(网络寻址和传输层)。例如TCP / IP和Internetwork Packet Exchange。
2.该程序通常称为设备驱动程序,它直接与网络接口卡(NIC)或其他适配器硬件交互,后者以电子信号的形式在通信线路上发送或接收数据。驱动程序和NIC在OSI的第2层级别的媒体访问控制(MAC地址)子层上进行交互,这称为数据链路控制。(将信号放在线路上是OSI的第1层或物理层。)MAC驱动程序的示例是以太网,光纤分布式数据接口和令牌环。
3.一种称为协议管理器的程序,它通过在操作系统启动时或者在某些情况下,当新设备添加到计算机时告诉每个协议栈程序和MAC驱动程序每个计算机的位置,从而协助协议栈程序和MAC驱动程序。这叫做bind。名为PROTOCOL.INI的系统文件标识哪些协议栈使用哪些MAC驱动程序以及每个MAC驱动程序的位置。协议栈可以绑定到多个MAC驱动程序,其中计算机连接到多个网络。并且单个MAC驱动程序可以绑定到计算机中的多个协议栈。
NDIS由Microsoft和3Com开发。使用NDIS,Windows软件开发人员可以为任何硬件制造商的通信适配器开发与MAC驱动程序一起使用的协议栈。出于同样的原因,任何适配器制造商都可以编写可以与任何协议栈程序通信的MAC驱动程序软件。
Novell为其NetWare局域网操作系统提供了一个类似的接口,称为开放数据链路接口(ODI)。