Un procesador de red es un circuito integrado que tiene un conjunto de características específicamente dirigido al dominio de la aplicación de red .
Los procesadores de red son típicamente dispositivos programables por software y tendrían características genéricas similares a las unidades de procesamiento central de propósito general que se usan comúnmente en muchos tipos diferentes de equipos y productos.
Historia del desarrollo
En las redes de telecomunicaciones modernas , la información (voz, video, datos) se transfiere como paquetes de datos (denominada conmutación de paquetes ), lo que contrasta con las redes de telecomunicaciones más antiguas que transportaban información como señales analógicas , como en la red telefónica pública conmutada (PSTN) o analógica. Redes de TV / Radio . El procesamiento de estos paquetes ha dado como resultado la creación de circuitos integrados (IC) que están optimizados para lidiar con esta forma 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 se han convertido 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 lo tanto, permiten que un solo diseño de circuito integrado de hardware realice una serie de funciones diferentes, donde se instala el software adecuado .
Los procesadores de red se utilizan en la fabricación de muchos tipos diferentes de equipos de red, tales como:
Funciones genéricas
En el rol genérico como procesador de paquetes, una serie de características o funciones optimizadas suelen estar presentes en un procesador de red, que incluyen:
- Coincidencia de patrones: la capacidad de encontrar patrones específicos de bits o bytes dentro de los paquetes en un flujo de paquetes.
- Búsqueda de claves: la capacidad de realizar rápidamente una búsqueda en la base de datos utilizando una clave (generalmente una dirección en un paquete) para encontrar un resultado, generalmente 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 a medida que se procesa.
- Gestión de colas : a medida que los paquetes se reciben, procesan y programan 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 en un sistema.
- Asignación rápida y recirculación de búferes de paquetes.
Paradigmas arquitectónicos
Para hacer frente a altas velocidades de datos, se utilizan comúnmente varios paradigmas arquitectónicos:
- Canalización de procesadores: cada etapa de la canalización consta de un procesador que realiza una de las funciones enumeradas anteriormente.
- Procesamiento en paralelo con varios procesadores, que a menudo incluyen subprocesos múltiples .
- Motores microcodificados especializados para realizar de manera más eficiente las tareas en cuestión.
- Con la llegada 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 red L2 - L3 y que solía ser ejecutado 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 (" inmobiliaria ") se dedica al gestor de tráfico integrado. [1] Los procesadores de red modernos también están equipados con redes de interconexión en chip de baja latencia y alto rendimiento optimizadas para el intercambio de pequeños mensajes entre núcleos (pocas palabras de datos). Estas redes se pueden utilizar como una instalación alternativa para la comunicación entre núcleos eficiente, además del uso estándar de memoria compartida. [2]
Aplicaciones
Utilizando la función genérica del procesador de red, un programa de software implementa una aplicación que ejecuta el procesador de red, lo que da como resultado que el equipo físico realice una tarea o proporcione un servicio. Algunos de los tipos de aplicaciones que se implementan normalmente como software que se ejecuta en procesadores de red son: [3]
- Discriminación y reenvío de paquetes o tramas , es decir, la operación básica de un enrutador o conmutador .
- Aplicación de la calidad de servicio (QoS): identifica diferentes tipos o clases de paquetes y brinda un trato 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 o flujo de paquetes específico atraviese el equipo de red.
- Cifrado de flujos de datos: los motores de cifrado basados en hardware integrados permiten que el procesador cifre los flujos de datos individuales.
- Procesamiento de descarga de TCP
Ver también
- Procesador de contenido
- Procesador multinúcleo
- Procesador basado en el conocimiento
- Redes activas
- Ingeniería Informática
- Internet
- Lista de empresas de procesadores de red desaparecidas
- Foro de procesamiento de red
- Teoría de las colas
- Red en un chip
Referencias
- ^ Giladi, Ran (2008). Procesadores de red: arquitectura, programación e implementación . Sistemas sobre silicio. Morgan Kaufmann. ISBN 978-0-12-370891-5.
- ^ Buono, Daniele; Mencagli, Gabriele (21 a 25 de julio de 2014). Mecanismos en tiempo de ejecución para un paralelismo detallado en procesadores de red: la experiencia TILEPro64 (PDF) . 2014 Conferencia internacional sobre simulación informática de alto rendimiento (HPCS 2014). Bolonia, Italia. págs. 55–64. doi : 10.1109 / HPCSim.2014.6903669 . ISBN 978-1-4799-5313-4. Archivado (PDF) desde el original el 27 de marzo de 2019. URL alternativa
- ^ Comer, Douglas E. (2005). Diseño de sistemas de red con procesadores de red: versión Intel 2XXX . Addison-Wesley. ISBN 978-0-13-187286-8.