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 al bus de una 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 integrada en la placa base o contenida en un dispositivo de seguridad conectado por USB .
Los controladores de interfaz de red modernos ofrecen funciones avanzadas como interfaces de interrupción y DMA para 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 , 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 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 la red. interfaces.
Los controladores de red se implementaron originalmente como tarjetas de expansión que se conectaban al bus de una 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 servidores más nuevas pueden tener varias interfaces de red integradas. Las capacidades de Ethernet están integradas en el chipset de la placa base o implementadas 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 utilice algún tipo de red que no sea Ethernet. Una tendencia general en el hardware informático es la de integrar los distintos 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 zócalo 8P8C donde se conecta el cable de red. Las NIC más antiguas también proporcionaban conexiones BNC o AUI . Los controladores de red Ethernet normalmente admiten variedades de Ethernet de 10 Mbit/s , Ethernet de 100 Mbit/s y Ethernet de 1000 Mbit/s . Estos controladores se denominan 10/100/1000 , lo que significa que pueden admitir velocidades de datos de 10, 100 o 1000 Mbit/s. También están disponibles NIC de 10 Gigabit Ethernet 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 de medios, de modo que los usuarios puedan adaptar fácilmente la interfaz de red a sus necesidades.
Los LED adyacentes o integrados en el conector de red informan al usuario si la red está conectada y cuándo se produce actividad de datos.
La NIC puede incluir una 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 datos en paquetes:
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 mediante una función hash . Cada cola de recepción se asigna a una interrupción independiente ; al enrutar cada una de esas interrupciones a diferentes CPU o núcleos de CPU , el procesamiento de las solicitudes de interrupción desencadenadas por el tráfico de red recibido por una única NIC se puede distribuir mejorando el rendimiento. [10] [11]
La distribución de las interrupciones basada en hardware, descrita anteriormente, se denomina escalado del lado de recepción (RSS). [12] : 82 También existen implementaciones puramente de software, como la dirección de recepción de paquetes (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 adicionales en el rendimiento enrutando 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 memorias caché de la CPU y menos cambios de contexto necesarios .
Con las NIC de colas múltiples, se pueden lograr mejoras de rendimiento adicionales distribuyendo 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 las contiendas internas del sistema operativo. Este enfoque suele denominarse dirección de paquetes de transmisión (XPS). [10]
Algunos productos cuentan con partición de NIC ( NPAR , también conocida como partición de puertos ) que utiliza la virtualización SR-IOV para dividir una única NIC Ethernet de 10 Gigabit en varias NIC virtuales discretas con ancho de banda dedicado, que se presentan al firmware y al sistema operativo como un dispositivo PCI independiente. funciones . [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 cuales la sobrecarga de procesamiento de la pila de red se vuelve significativa. [17]
Algunas NIC ofrecen matrices de puertas programables en campo (FPGA) integradas para el procesamiento programable por el usuario del tráfico de red antes de que llegue a la computadora host, lo que permite reducir significativamente las latencias en cargas de trabajo urgentes. [18] Además, algunas NIC ofrecen pilas TCP/IP completas de baja latencia que se ejecutan en FPGA integradas en combinación con bibliotecas de espacio de usuario que interceptan las 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]