Especificación de la interfaz del controlador de red: Network Driver Interface Specification
La Especificación de interfaz de controlador de red ( NDIS ) es una interfaz de programación de aplicaciones (API) para controladores de interfaz de red (NIC).
Especificación
Fue desarrollado conjuntamente por Microsoft y 3Com Corporation y se utiliza principalmente en Microsoft Windows . Sin embargo, los proyectos de contenedor de controlador NDISwrapper y Project Evil de código abierto permiten que muchas NIC compatibles con NDIS se utilicen con Linux , FreeBSD y NetBSD . magnussoft ZETA , un derivado de BeOS , admite varios controladores NDIS.
El NDIS forma la subcapa de control de enlace lógico (LLC), que es la subcapa superior de la capa de enlace de datos OSI (capa 2). Por lo tanto, el NDIS actúa como interfaz entre la subcapa de control de acceso a medios (MAC), que es la subcapa inferior de la capa de enlace de datos, y la capa de red (capa 3).
El NDIS es una biblioteca de funciones a la que a menudo se hace referencia como un " contenedor " que oculta la complejidad subyacente del hardware NIC y sirve como interfaz estándar para controladores de protocolo de red de nivel 3 y controladores MAC de nivel de hardware.
Las versiones de NDIS compatibles con varias versiones de Windows son las siguientes:
- NDIS 2.0: MS-DOS , Windows para trabajo en grupo 3.1 , OS / 2
- NDIS 3.0: Windows para trabajo en grupo 3.11
- NDIS 3.1: Windows 95
- NDIS 4.0: Windows 95 OSR2, NT 4.0 , Windows CE 3.0
- NDIS 4.1: Windows 98
- NDIS 5.0: Windows 98 SE , Me , 2000
- NDIS 5.1: Windows XP , Server 2003 , Windows CE 4.x, 5.0, 6.0
- NDIS 5.2: Windows Server 2003 SP2
- NDIS 6.0: Windows Vista
- NDIS 6.1: Windows Vista SP1, Server 2008 , Windows Embedded Compact 7 , Windows Embedded Compact 2013
- NDIS 6.20: Windows 7 , Server 2008 R2
- NDIS 6.30: Windows 8 , Windows Server 2012
- NDIS 6.40: Windows 8.1 , Windows Server 2012 R2
- NDIS 6.50: Windows 10 , versión 1507
- NDIS 6.60: Windows 10, versión 1607 y Windows Server 2016
- NDIS 6.70: Windows 10, versión 1703
- NDIS 6.80: Windows 10, versión 1709
- NDIS 6.81: Windows 10, versión 1803
- NDIS 6.82: Windows 10, versión 1809 y Windows Server 2019
- NDIS 6.83: Windows 10, versión 1903
El tráfico aceptado por la NIC está controlado por un controlador de minipuerto NDIS, mientras que los controladores de protocolo NDIS implementan varios protocolos, como TCP / IP . Un solo minipuerto puede estar asociado con uno o más protocolos. Esto significa que el tráfico que ingresa al minipuerto puede ser recibido en paralelo por varios controladores de protocolo. Por ejemplo, Winpcap agrega un segundo controlador de protocolo en el minipuerto seleccionado para capturar los paquetes entrantes. Además, es posible simular varias NIC virtuales mediante la implementación de controladores de minipuerto virtuales que envían y reciben tráfico desde una única NIC física. Un ejemplo del uso del controlador de minipuerto virtual es agregar NIC virtuales, cada una con una LAN virtual diferente . Debido a que las implementaciones no pueden asumir que otros controladores recibieron los mismos búferes, se deben tratar los búferes entrantes como de solo lectura y un controlador que cambia el contenido del paquete debe asignar sus propios búferes.
Los controladores de minipuerto NDIS también pueden utilizar las interfaces del modelo de controlador de Windows para controlar el hardware de red.
Otro tipo de controlador es el controlador intermedio NDIS. Los controladores intermedios se encuentran entre las capas MAC e IP y pueden controlar todo el tráfico que acepta la NIC. En la práctica, los controladores intermedios implementan interfaces de protocolo y de minipuerto. El controlador de minipuerto y el controlador de protocolo se comunican realmente con las interfaces de protocolo y de minipuerto correspondientes que residen en el controlador intermedio. Este diseño permite agregar varios controladores intermedios encadenados entre el minipuerto y los controladores de protocolo. Por lo tanto, los proveedores de controladores no pueden asumir que la interfaz a la que envían tráfico está implementada por el último controlador de la cadena. Para escribir aplicaciones usando NDIS, se pueden usar ejemplos que acompañan al Kit de controladores de Windows de Microsoft (WDK). La muestra "PassThru" es un buen punto de partida para los conductores intermedios, ya que implementa todos los detalles necesarios requeridos en este tipo de conductor, pero simplemente pasa el tráfico al siguiente conductor de la cadena.
Ver también
- Interfaz abierta de enlace de datos (ODI)
- Interfaz de controlador uniforme (UDI)
- Interfaz de dispositivo de red universal (UNDI)
- Controlador de paquetes PC / TCP