¿Qué es un controlador de interfaz?
Un controlador de interfaz es un pequeño programa de computadora, o un conjunto de programas, que actúa como enlace entre el software de la computadora y el hardware de una tarjeta de interfaz de red (NIC). Los fabricantes y programadores de NIC utilizan una interfaz de programación de aplicaciones (API) específica conocida como la especificación de interfaz de controlador de red (NDIS). Establece todas las reglas necesarias para que un programa de computadora, como un sistema operativo, interactúe con una NIC. En realidad, hay varios tipos de controladores de interfaz descritos en el NDIS, pero, en esencia, el trabajo principal del NDIS es lograr que un par de capas del modelo de interconexión de sistemas abiertos (OSI) cooperen entre sí.
El modelo OSI está compuesto por siete capas, algunas de las cuales tienen múltiples subcapas. La primera capa es la capa física, que se ocupa de las especificaciones físicas de una NIC, como un dongle de bus serie universal (USB), una tarjeta Ethernet, una tarjeta adaptadora inalámbrica, etc. La segunda y tercera capas del modelo OSI es donde ocurre toda la magia NDIS. La segunda capa es la capa de enlace de datos y consta de dos subcapas, la superior denominada control de enlace lógico (LLC) y la inferior denominada control de acceso a medios (MAC). Un controlador de dispositivo maneja la subcapa MAC, mientras que el controlador de interfaz maneja la subcapa LLC, proporcionando una interfaz entre esta y la tercera capa del modelo OSI, la capa de red.
Trabajando como intermediario, un NDIS esencialmente envuelve toda la complejidad confusa del hardware de una NIC y proporciona un conjunto de funciones para su interacción con los protocolos de red necesarios para la comunicación. Un programador simplemente tiene que seguir las reglas establecidas en el NDIS para crear los controladores de interfaz reales. En el nivel de hardware inferior, estos controladores se conocen como controladores de minipuerto, mientras que los controladores de nivel superior se escriben utilizando la API NDIS para manejar protocolos de red centrales como el protocolo de Internet (IP), la seguridad del protocolo de Internet (IPsec), el protocolo de mensajes de control de Internet (ICMP), e intercambio de paquetes entre redes (IPX), entre otros.
Cuando la comunicación de red se produce a través de una NIC, los bits de datos son recibidos primero por el dispositivo físico y luego, a través de la arquitectura del modelo OSI, los datos se mueven desde el hardware hacia las diferentes capas del modelo OSI hasta que se presentan en un formato más Fácilmente comprensible por el usuario. Por lo tanto, cada capa del modelo proporciona servicios para sus vecinos. Los datos salen de la primera capa, la capa física, y golpean el MAC de la subcapa inferior en la segunda capa, donde el controlador del dispositivo lo pasa a la LLC. Los controladores de protocolo de la LLC luego lo mueven a la capa de red.
Otro tipo de controlador de interfaz es el controlador intermedio, que actúa como una especie de carcasa, que contiene interfaces para controladores de minipuerto y controladores de protocolo de red. Estos controladores intermedios se pueden encadenar y proporcionar la capacidad para que el controlador de interfaz controle el tráfico que recibe la NIC. Los controladores intermedios son útiles para diversas necesidades, como el filtrado de datos, el equilibrio de carga, el monitoreo del tráfico de red y la recopilación de información estadística. También funcionan bien como traductores entre conductores de transporte más antiguos y un conductor de minipuerto que habla con un formato de medios que el conductor más viejo no puede entender.
El NDIS fue diseñado originalmente por Microsoft®, trabajando en conjunto con 3Com®, por lo que muchos fabricantes de hardware escriben sus controladores para admitir primero los sistemas operativos Microsoft®. Como resultado, el NDIS se limita a arquitecturas de hardware informático basadas en la familia Intel® 80386 de procesadores de 32 bits o de 64 bits. El movimiento de software libre también ha desarrollado un programa, llamado NDISWrapper, que es capaz de cargar controladores de interfaz desarrollados originalmente para Microsoft® Windows® para su uso con sistemas operativos gratuitos similares a Unix® como Linux®. Los usuarios de los derivados gratuitos de Berkley Software Distributions (BSD), como FreeBSD® y NetBSD®, también encontraron la capacidad de utilizar controladores de interfaz de Windows® mediante el uso de software desarrollado por un proyecto conocido como Project Evil. Las limitaciones de hardware x86 de NDIS llevaron a otro proyecto, desarrollado por Apple y Novell®, llamado interfaz abierta de enlace de datos (ODI), que proporcionó muchas de las mismas reglas y funcionalidades que un NDIS pero con un enfoque en Apple® Macintosh &; y sistemas Novell NetWare®.