Procesador de red

Intel FWIXP422BB

Un procesador de red es un circuito integrado que tiene un conjunto de características específicamente dirigidas al dominio de aplicaciones de red .

Los procesadores de red suelen ser dispositivos programables por software y tienen características genéricas similares a las unidades centrales de procesamiento de propósito general que se utilizan comúnmente en muchos tipos diferentes de equipos y productos.

Historia del desarrollo

En las redes de telecomunicaciones modernas , la información (voz, vídeo, datos) se transfiere como paquetes de datos (denominado conmutación de paquetes ), lo que contrasta con las redes de telecomunicaciones más antiguas que transportaban la información como señales analógicas , como en la red telefónica pública conmutada (PSTN) o las redes de radio y televisión analógicas . El procesamiento de estos paquetes ha dado lugar a la creación de circuitos integrados (CI) que están optimizados para tratar este tipo de paquetes de datos. Los procesadores de red tienen características o arquitecturas específicas que se proporcionan para mejorar y optimizar el procesamiento de paquetes dentro de estas redes.

Los procesadores de red han evolucionado hasta convertirse en circuitos integrados con funciones específicas. Esta evolución ha dado lugar a la creación de circuitos integrados más complejos y flexibles. Los circuitos más nuevos son programables y, por tanto, permiten que un único diseño de circuito integrado de hardware lleve a cabo varias funciones diferentes, siempre que se instale el software adecuado.

Los procesadores de red se utilizan en la fabricación de muchos tipos diferentes de equipos de red, como:

Tablas de coincidencias reconfigurables

Las tablas de correspondencia reconfigurables [1] [2] se introdujeron en 2013 para permitir que los conmutadores funcionen a altas velocidades y, al mismo tiempo, mantener la flexibilidad en lo que respecta a los protocolos de red que se ejecutan en ellos o el procesamiento que se les hace. P4 [3] se utiliza para programar los chips. La empresa Barefoot Networks se basó en estos procesadores y luego fue adquirida por Intel en 2019.

Descripción del oleoducto RMP

Una canalización RMT se basa en tres etapas principales: el analizador programable, [2] las tablas Match-Action y el desparser programable. El analizador lee el paquete en fragmentos y procesa estos fragmentos para averiguar qué protocolos se utilizan en el paquete ( Ethernet , VLAN , IPv4 ...) y extrae ciertos campos del paquete en el vector de encabezado de paquete (PHV). Ciertos campos en el PHV pueden reservarse para usos especiales, como encabezados actuales o longitud total del paquete. Los protocolos son típicamente programables, y también lo son los campos a extraer. Las tablas Match-Action son una serie de unidades que leen un PHV de entrada, hacen coincidir ciertos campos en él utilizando una barra cruzada y memoria CAM , el resultado es una instrucción amplia que opera en uno o más campos del PHV y datos para respaldar esta instrucción. El PHV de salida luego se envía a la siguiente etapa MA o al desparser. El analizador sintáctico toma el PHV, así como el paquete original y sus metadatos (para completar los bits faltantes que no se extrajeron en el PHV) y luego genera el paquete modificado como fragmentos. Por lo general, es programable, al igual que el analizador sintáctico, y puede reutilizar algunos de los archivos de configuración.

FlexNIC [4] intenta aplicar este modelo a los controladores de interfaz de red, permitiendo a los servidores enviar y recibir paquetes a altas velocidades mientras mantienen la flexibilidad del protocolo y sin aumentar la sobrecarga de la CPU.

Funciones genéricas

En el rol genérico de procesador de paquetes, un procesador de red suele tener una serie de características o funciones optimizadas, entre las que se incluyen:

  • Coincidencia de patrones: la capacidad de encontrar patrones específicos de bits o bytes dentro de paquetes en un flujo de paquetes.
  • Búsqueda de clave: la capacidad de realizar rápidamente una búsqueda en una base de datos utilizando una clave (normalmente una dirección en un paquete) para encontrar un resultado, normalmente información de enrutamiento .
  • Cálculo
  • Manipulación de campos de bits de datos: la capacidad de cambiar ciertos campos de datos contenidos en el paquete mientras se procesa.
  • Gestión de colas : a medida que se reciben, procesan y programan los paquetes para su envío, se almacenan en colas.
  • Procesamiento de control: las microoperaciones de procesamiento de un paquete se controlan a un nivel macro que implica comunicación y orquestación con otros nodos de un sistema.
  • Asignación rápida y recirculación de buffers de paquetes.

Paradigmas arquitectónicos

Para hacer frente a altas velocidades de datos, se utilizan comúnmente varios paradigmas arquitectónicos:

  • Tubería de procesadores: cada etapa de la tubería que consta de un procesador que realiza una de las funciones enumeradas anteriormente.
  • Procesamiento paralelo con múltiples procesadores, que a menudo incluye subprocesos múltiples .
  • Motores microcodificados especializados para realizar de forma más eficiente las tareas en cuestión.
  • Con el advenimiento de las arquitecturas multinúcleo , los procesadores de red se pueden utilizar para el procesamiento de capas superiores ( L4-L7 ).

Además, la gestión del tráfico, que es un elemento crítico en el procesamiento de redes L2 - L3 y que solía ser ejecutada por una variedad de coprocesadores, se ha convertido en una parte integral de la arquitectura del procesador de red, y una parte sustancial de su área de silicio ("bienes raíces") está dedicada al administrador de tráfico integrado. [5] Los procesadores de red modernos también están equipados con redes de interconexión en chip de alto rendimiento y baja latencia optimizadas para el intercambio de pequeños mensajes entre núcleos (pocas palabras de datos). Dichas redes se pueden utilizar como una instalación alternativa para la comunicación eficiente entre núcleos además del uso estándar de memoria compartida. [6]

Aplicaciones

Utilizando la función genérica del procesador de red, un programa de software implementa una aplicación que el procesador de red ejecuta, lo que hace que el equipo físico realice una tarea o preste un servicio. Algunos de los tipos de aplicaciones que normalmente se implementan como software que se ejecuta en procesadores de red son: [7]

  • Discriminación y reenvío de paquetes o tramas , es decir, el funcionamiento básico de un enrutador o conmutador .
  • Aplicación de la calidad de servicio (QoS): identificar diferentes tipos o clases de paquetes y brindar un tratamiento preferencial para algunos tipos o clases de paquetes a expensas de otros tipos o clases de paquetes.
  • Funciones de control de acceso: determinar si se debe permitir que un paquete específico o un flujo de paquetes atraviese el equipo de red.
  • Cifrado de flujos de datos: los motores de cifrado integrados basados ​​en hardware permiten que el procesador cifre flujos de datos individuales.
  • Procesamiento de descarga TCP

Véase también

Referencias

  1. ^ Bosshart, Pat; Gibb, Glen; Kim, Hun-Seok; Varghese, George; McKeown, Nick; Izzard, Martin; Mujica, Fernando; Horowitz, Mark (1 de agosto de 2013). "Metamorfosis de reenvío: procesamiento rápido y programable de acciones de coincidencia en hardware para SDN". {{cite journal}}: Requiere citar revista |journal=( ayuda )
  2. ^ ab Gibb, Glen; Varghese, George; Horowitz, Mark; McKeown, Nick (octubre de 2013). "Principios de diseño para analizadores de paquetes". Arquitecturas para sistemas de redes y comunicaciones . págs. 13–24. doi :10.1109/ANCS.2013.6665172. ISBN 978-1-4799-1641-2.S2CID12282067  .
  3. ^ "P4: Programación de procesadores de paquetes independientes del protocolo | acm sigcomm". www.sigcomm.org . Consultado el 26 de marzo de 2022 .
  4. ^ Kaufmann, Antoine; Peter, Simon; Sharma, Naveen Kr.; Anderson, Thomas; Krishnamurthy, Arvind (25 de marzo de 2016). "Procesamiento de paquetes de alto rendimiento con FlexNIC". Actas de la vigésimo primera conferencia internacional sobre soporte arquitectónico para lenguajes de programación y sistemas operativos . ASPLOS '16. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 67–81. doi : 10.1145/2872362.2872367 . ISBN . 978-1-4503-4091-5.S2CID 9625891  .
  5. ^ Giladi, Ran (2008). Procesadores de red: arquitectura, programación e implementación. Sistemas sobre silicio. Morgan Kaufmann. ISBN 978-0-12-370891-5.
  6. ^ Buono, Daniele; Mencagli, Gabriele (21–25 de julio de 2014). Mecanismos de ejecución en tiempo real para paralelismo de grano fino en procesadores de red: la experiencia con TILEPro64 (PDF) . 2014 International Conference on High Performance Computing Simulation (HPCS 2014). Bolonia, Italia. pp. 55–64. doi :10.1109/HPCSim.2014.6903669. ISBN 978-1-4799-5313-4. Archivado (PDF) del original el 27 de marzo de 2019.URL alternativa
  7. ^ Comer, Douglas E. (2005). Diseño de sistemas de red mediante procesadores de red: versión Intel 2XXX . Addison-Wesley. ISBN 978-0-13-187286-8.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Procesador_de_red&oldid=1245161787"