Un controlador de interfaz de red ( NIC , también conocido como tarjeta de interfaz de red , [3] adaptador de red , adaptador LAN e interfaz de red física [4] ) es un componente de hardware de computadora que conecta una computadora a una red de computadoras . [5]
Los primeros controladores de interfaz de red se implementaban comúnmente en tarjetas de expansión que se conectaban a un bus de computadora . El bajo costo y la ubicuidad del estándar Ethernet significa que la mayoría de las computadoras más nuevas tienen una interfaz de red incorporada en la placa base o contenida en un dispositivo USB conectado .
Los controladores de interfaz de red modernos ofrecen características avanzadas como interfaces de interrupción y DMA a los procesadores host, soporte para múltiples colas de recepción y transmisión, partición en múltiples interfaces lógicas y procesamiento de tráfico de red en el controlador, como el motor de descarga TCP .
El controlador de red implementa los circuitos electrónicos necesarios para comunicarse utilizando una capa física específica y un estándar de capa de enlace de datos como Ethernet o Wi-Fi . [a] Esto proporciona una base para una pila de protocolos de red completa , lo que permite la comunicación entre computadoras en la misma red de área local (LAN) y comunicaciones de red a gran escala a través de protocolos enrutables, como el Protocolo de Internet (IP).
La NIC permite que las computadoras se comuniquen a través de una red informática, ya sea mediante cables o de forma inalámbrica. La NIC es un dispositivo de capa física y de capa de enlace de datos, ya que proporciona acceso físico a un medio de red y, para redes IEEE 802 y similares, proporciona un sistema de direccionamiento de bajo nivel mediante el uso de direcciones MAC que se asignan de forma exclusiva a las interfaces de red.
Los controladores de red se implementaron originalmente como tarjetas de expansión que se conectaban a un bus de computadora. El bajo costo y la ubicuidad del estándar Ethernet significa que la mayoría de las computadoras nuevas tienen un controlador de interfaz de red integrado en la placa base. Las placas base de servidor más nuevas pueden tener múltiples interfaces de red integradas. Las capacidades de Ethernet están integradas en el chipset de la placa base o se implementan a través de un chip Ethernet dedicado de bajo costo. Por lo general, ya no se requiere una tarjeta de red separada a menos que se necesiten conexiones de red independientes adicionales o se use algún tipo de red que no sea Ethernet. Una tendencia general en el hardware de computadoras es integrar los diversos componentes de los sistemas en un chip , y esto también se aplica a las tarjetas de interfaz de red.
Un controlador de red Ethernet normalmente tiene un conector 8P8C donde se conecta el cable de red. Las NIC más antiguas también suministraban conexiones BNC o AUI . Los controladores de red Ethernet normalmente admiten variedades Ethernet de 10 Mbit/s , Ethernet de 100 Mbit/s y Ethernet de 1000 Mbit/s . Dichos controladores se designan como 10/100/1000 , lo que significa que pueden admitir velocidades de datos de 10, 100 o 1000 Mbit/s. Las NIC Ethernet de 10 Gigabit también están disponibles y, a partir de noviembre de 2014 [actualizar], están comenzando a estar disponibles en las placas base de las computadoras . [6] [7]
Los diseños modulares como SFP y SFP+ son muy populares, especialmente para la comunicación por fibra óptica . Estos definen un receptáculo estándar para transceptores dependientes del medio, de modo que los usuarios puedan adaptar fácilmente la interfaz de red a sus necesidades.
Los LED adyacentes o integrados al conector de red informan al usuario si la red está conectada y cuándo hay actividad de datos.
La NIC puede incluir ROM para almacenar su dirección MAC asignada de fábrica . [8]
La NIC puede utilizar una o más de las siguientes técnicas para indicar la disponibilidad de paquetes para transferir:
Las NIC pueden utilizar una o más de las siguientes técnicas para transferir paquetes de datos:
Las NIC multicola proporcionan múltiples colas de transmisión y recepción , lo que permite que los paquetes recibidos por la NIC se asignen a una de sus colas de recepción. La NIC puede distribuir el tráfico entrante entre las colas de recepción utilizando una función hash . Cada cola de recepción se asigna a una interrupción separada ; al enrutar cada una de esas interrupciones a diferentes CPU o núcleos de CPU , el procesamiento de las solicitudes de interrupción activadas por el tráfico de red recibido por una única NIC se puede distribuir, mejorando el rendimiento. [10] [11]
La distribución basada en hardware de las interrupciones, descrita anteriormente, se conoce como escalamiento del lado de recepción (RSS). [12] : 82 También existen implementaciones puramente de software, como la dirección de paquetes de recepción (RPS), la dirección de flujo de recepción (RFS), [10] e Intel Flow Director . [12] : 98, 99 [13] [14] [15] Se pueden lograr mejoras de rendimiento adicionales al enrutar las solicitudes de interrupción a las CPU o núcleos que ejecutan las aplicaciones que son los destinos finales de los paquetes de red que generaron las interrupciones. Esta técnica mejora la localidad de referencia y da como resultado un mayor rendimiento general, una latencia reducida y una mejor utilización del hardware debido a la mayor utilización de las cachés de la CPU y menos cambios de contexto necesarios .
Con NIC de cola múltiple, se pueden lograr mejoras de rendimiento adicionales al distribuir el tráfico saliente entre diferentes colas de transmisión. Al asignar diferentes colas de transmisión a diferentes CPU o núcleos de CPU, se pueden evitar conflictos internos en el sistema operativo. Este enfoque se conoce generalmente como direccionamiento de paquetes de transmisión (XPS). [10]
Algunos productos cuentan con particionamiento de NIC ( NPAR , también conocido como particionamiento de puertos ) que utiliza la virtualización SR-IOV para dividir una única NIC Ethernet de 10 Gigabit en múltiples NIC virtuales discretas con ancho de banda dedicado, que se presentan al firmware y al sistema operativo como funciones de dispositivo PCI independientes . [3] [16]
Algunas NIC proporcionan un motor de descarga TCP para descargar el procesamiento de toda la pila TCP/IP al controlador de red. Se utiliza principalmente con interfaces de red de alta velocidad, como Gigabit Ethernet y 10 Gigabit Ethernet, para las que la sobrecarga de procesamiento de la pila de red se vuelve significativa. [17]
Algunas NIC ofrecen matrices de puertas programables en campo (FPGAs) integradas para el procesamiento programable por el usuario del tráfico de red antes de que llegue al ordenador anfitrión, lo que permite latencias significativamente reducidas en cargas de trabajo sensibles al tiempo. [18] Además, algunas NIC ofrecen pilas TCP/IP completas de baja latencia que se ejecutan en FPGAs integradas en combinación con bibliotecas de espacio de usuario que interceptan operaciones de red que normalmente realiza el núcleo del sistema operativo ; la pila de red OpenOnload de código abierto de Solarflare que se ejecuta en Linux es un ejemplo. Este tipo de funcionalidad suele denominarse redes a nivel de usuario . [19] [20] [21]