Articulo de referencia

Procesamiento de paquetes

En las redes de comunicaciones digitales , el procesamiento de paquetes se refiere a la amplia variedad de algoritmos que se aplican a un paquete de datos o información a medida...

En las redes de comunicaciones digitales , el procesamiento de paquetes se refiere a la amplia variedad de algoritmos que se aplican a un paquete de datos o información a medida que se desplaza a través de los distintos elementos de una red de comunicaciones. Con el aumento del rendimiento de las interfaces de red, surge la necesidad correspondiente de un procesamiento de paquetes más rápido. [ 1 ]

Existen dos grandes clases de algoritmos de procesamiento de paquetes que se ajustan a la subdivisión estandarizada de la red en plano de control y plano de datos . Los algoritmos se aplican a:

  • Información de control contenida en un paquete que se utiliza para transferir el paquete de forma segura y eficiente desde el origen hasta el destino.

o

  • El contenido de datos (frecuentemente llamado carga útil) del paquete que se utiliza para proporcionar alguna transformación específica del contenido o para realizar una acción basada en el contenido.

En cualquier dispositivo con capacidad de red (por ejemplo, enrutador , conmutador , elemento de red o terminal como una computadora o un teléfono inteligente), es el subsistema de procesamiento de paquetes el que gestiona el recorrido de la red multicapa o pila de protocolos desde las capas inferiores, físicas y de red hasta la capa de aplicación .

Historia

La historia del procesamiento de paquetes es la historia de Internet y la conmutación de paquetes . Los hitos del procesamiento de paquetes incluyen:

Las referencias históricas y la cronología se pueden encontrar en la sección de Recursos Externos a continuación.

Modelos de comunicación

Para que las redes tengan éxito, es necesario contar con un estándar unificador que defina la arquitectura de los sistemas de red. El requisito fundamental de dicho estándar es proporcionar un marco que permita a los fabricantes de hardware y software de todo el mundo desarrollar tecnologías de red que funcionen conjuntamente y aprovechar sus capacidades de inversión acumuladas para impulsar el desarrollo de las redes.

En la década de 1970, dos organizaciones, la Organización Internacional de Normalización [ 2 ] (ISO) y el Comité Consultivo Internacional de Telégrafos y Teléfonos [ 3 ] (CCITT, ahora llamado Unión Internacional de Telecomunicaciones (UIT-T)) iniciaron proyectos con el objetivo de desarrollar estándares internacionales de redes. En 1983, estos esfuerzos se fusionaron y en 1984 el estándar, llamado Modelo de Referencia Básico para la Interconexión de Sistemas Abiertos , [ 4 ] fue publicado por ISO y como estándar X.200 [ 5 ] por la UIT-T.

El modelo OSI es un modelo de 7 capas [ 6 ] que describe el funcionamiento de un sistema operativo de red . Un modelo por capas ofrece numerosas ventajas [ 7 ], entre ellas la posibilidad de modificar una capa sin afectar a las demás y su utilidad para comprender el funcionamiento de un sistema operativo de red. Siempre que se mantenga la interconexión entre las capas, los proveedores pueden mejorar la implementación de una capa individual sin afectar a las demás.

Paralelamente al desarrollo del modelo OSI, la Agencia de Proyectos de Investigación Avanzada de Defensa de los Estados Unidos [ 8 ] ( DARPA ) implementó una red de investigación . El protocolo de interconexión desarrollado para dar soporte a la red, denominada ARPAnet , [ 9 ] se llamaba TCP o Programa de Control de Transmisión. A medida que avanzaban la investigación y el desarrollo y crecía el tamaño de la red, se determinó que el diseño de interconexión utilizado se estaba volviendo difícil de manejar y no seguía exactamente el enfoque por capas del modelo OSI. Esto llevó a la división del TCP original y a la creación de la arquitectura TCP/IP [ 10 ] , donde TCP significa Protocolo de Control de Transmisión e IP significa Protocolo de Internet.

Llegada del procesamiento de paquetes

Las redes de paquetes [ 11 ] surgieron a principios de la década de 1960 como resultado de la necesidad de hacer que las redes de comunicaciones fueran más confiables. Se puede considerar como la implementación del modelo de capas utilizando una estructura de paquetes.

Las primeras redes comerciales estaban compuestas por circuitos analógicos dedicados a las comunicaciones de voz. El concepto de conmutación de paquetes se introdujo para crear una red de comunicaciones que siguiera funcionando a pesar de las fallas en los equipos. En este cambio de paradigma, las redes se conciben como conjuntos de sistemas que transmiten datos en pequeños paquetes que viajan desde el origen hasta el destino a través de diversas rutas. Las funciones iniciales de procesamiento de paquetes permitían el enrutamiento de los paquetes a través de la red, la detección y corrección de errores de transmisión y otras funciones de gestión de la red .

La conmutación de paquetes con sus funciones de procesamiento de paquetes de soporte tiene varias ventajas prácticas sobre las redes de conmutación de circuitos tradicionales: [ 12 ]

  • Un entorno totalmente digital que admite múltiples tipos de datos (como voz, datos y vídeo) no solo enriqueció la vida de los usuarios, [ 13 ] [ 14 ] sino que aumentó significativamente la eficiencia de los proveedores de red que anteriormente tenían que implementar diferentes redes para admitir diferentes tipos de datos.
  • Mayor utilización del ancho de banda, con múltiples "circuitos lógicos" que utilizan los mismos enlaces físicos.
  • Supervivencia de las comunicaciones gracias a las múltiples rutas a través de la red desde cualquier origen a cualquier destino.
  • Se pueden introducir servicios de información de valor añadido utilizando funciones de procesamiento de paquetes para proporcionar el procesamiento necesario.

Estructura del paquete

Un paquete de red es el componente fundamental de las redes de conmutación de paquetes. [ 15 ] Cuando un elemento, como un archivo, un mensaje de correo electrónico, una transmisión de voz o de vídeo, se transmite a través de la red, se divide en fragmentos llamados paquetes que pueden moverse de forma más eficiente a través de la red que un único bloque grande de datos. Numerosos estándares [ 16 ] cubren la estructura de los paquetes, pero normalmente estos se componen de tres elementos:

  • Encabezado : contiene información sobre el paquete, incluyendo origen, destino, longitud y número de paquete.
  • Carga útil (o cuerpo): contiene los datos que componen el paquete.
  • Tráiler : indica el final del paquete y con frecuencia incluye información sobre detección y corrección de errores.

En una red de conmutación de paquetes , el ordenador emisor empaqueta el elemento original y cada paquete se enruta a través de la red hasta su destino. Algunas redes utilizan paquetes de longitud fija, normalmente de 1024 bits, mientras que otras utilizan paquetes de longitud variable e incluyen la longitud del paquete en la cabecera.

Los paquetes individuales pueden seguir rutas diferentes hacia el destino y llegar allí desordenados. El ordenador de destino verifica la exactitud de los datos de cada paquete (utilizando la información del pie de página), reconstruye el elemento original utilizando la información del número de paquete en la cabecera y lo presenta a la aplicación o usuario receptor.

Este ejemplo básico incluye las tres funciones más fundamentales del procesamiento de paquetes: paquetización, enrutamiento y ensamblaje. Las funciones de procesamiento de paquetes varían desde las más simples hasta las más complejas. Por ejemplo, la función de enrutamiento es en realidad un proceso de varios pasos [ 17 ] que involucra diversos algoritmos de optimización y consultas en tablas. Una función de enrutamiento básica en Internet se ve así:

1. Compruebe si la dirección de destino pertenece a este equipo. Si es así, procese el paquete. Si no:
a. Compruebe si el reenvío de IP está configurado en 'Sí'. Si no, el paquete se destruye. Si sí, entonces
i. Compruebe si una red conectada a este equipo posee la dirección de destino. Si es así, enrute el paquete a la red apropiada. Si no, entonces
1. Compruebe si existe alguna ruta hacia la red de destino. Si la hay, envíe el paquete a la puerta de enlace del siguiente salto. Si no, destruya el paquete.

Las funciones de enrutamiento más avanzadas incluyen el balanceo de carga de red [ 18 ] y algoritmos de ruta más rápida [ 19 ] . Estos ejemplos ilustran la variedad de algoritmos de procesamiento de paquetes posibles y cómo pueden introducir retrasos significativos [ 20 ] en la transmisión de un elemento. Los diseñadores de equipos de red suelen utilizar una combinación de aceleradores de hardware y software para minimizar la latencia en la red.

Arquitectura de equipos de red

Los equipos basados ​​en IP se pueden dividir en tres elementos básicos: plano de datos, plano de control y plano de gestión. [ 21 ]

Plano de datos

El plano de datos es un subsistema de un nodo de red que recibe y envía paquetes desde una interfaz, los procesa según lo requiera el protocolo aplicable y los entrega, descarta o reenvía según corresponda.

Plano de control

El plano de control mantiene información que puede utilizarse para modificar los datos del plano de datos. Mantener esta información requiere gestionar protocolos de señalización complejos. Implementar estos protocolos en el plano de datos resultaría en un rendimiento de reenvío deficiente. Una forma común de gestionar estos protocolos es permitir que el plano de datos detecte los paquetes de señalización entrantes y los reenvíe localmente al plano de control. Los protocolos de señalización del plano de control pueden actualizar la información del plano de datos e inyectar los paquetes de señalización salientes en dicho plano. Esta arquitectura funciona porque el tráfico de señalización representa una parte muy pequeña del tráfico global.

Plan de gestión

El plano de gestión proporciona una interfaz administrativa para el sistema general. Contiene procesos que dan soporte a las acciones de administración operativa, gestión o configuración/aprovisionamiento, tales como:

  • Instalaciones para apoyar la recopilación y agregación de estadísticas,
  • Apoyo para la implementación de protocolos de gestión,
  • Interfaz de línea de comandos, interfaces gráficas de configuración de usuario a través de páginas web o gestión tradicional mediante SNMP ( Protocolo simple de administración de red ).

También se pueden incluir soluciones más sofisticadas basadas en XML ( Lenguaje de Marcado Extensible ).

Ejemplos

La lista de aplicaciones de procesamiento de paquetes [ 22 ] se divide generalmente en dos categorías. A continuación se presentan algunos ejemplos seleccionados para ilustrar la variedad que se utiliza hoy en día.

Aplicaciones de control

  • Reenvío , la operación básica de un enrutador
  • Cifrado/Descifrado : protección de la información en la carga útil mediante algoritmos criptográficos.
  • Calidad de servicio (QoS) , que trata los paquetes de manera diferente, como proporcionar servicios priorizados o especializados según la clase del paquete.

Aplicaciones de datos

Arquitecturas de procesamiento de paquetes

La conmutación de paquetes [ 24 ] también introduce ciertas limitaciones arquitectónicas. El procesamiento de paquetes durante la transmisión de información genera retrasos que pueden ser perjudiciales para la aplicación. Por ejemplo, en aplicaciones de voz y video, la conversión necesaria de analógico a digital y viceversa en el destino, junto con los retrasos introducidos por la red, pueden causar interrupciones notables que resultan molestas para los usuarios. La latencia es una medida del tiempo de retardo que experimenta un sistema complejo.

Se han desarrollado múltiples enfoques arquitectónicos para el procesamiento de paquetes [ 25 ] para abordar los requisitos de rendimiento y funcionalidad de una red específica y para abordar el problema de la latencia.

Arquitectura de un solo hilo (sistema operativo estándar)

Una pila de red estándar utiliza servicios proporcionados por el sistema operativo (SO) que se ejecuta en un único procesador ( de un solo hilo ). Si bien las arquitecturas de un solo hilo son las más sencillas de implementar, están sujetas a sobrecargas asociadas con el rendimiento de las funciones del SO, como las interrupciones, la gestión de hilos, los temporizadores y los bloqueos. Estas sobrecargas de procesamiento del SO se imponen a cada paquete que pasa por el sistema, lo que resulta en una penalización en el rendimiento.

Arquitectura multihilo (sistema operativo multiprocesador)

Se pueden realizar mejoras de rendimiento en la pila de red de un sistema operativo adaptando el software de procesamiento de la pila de protocolos para que admita múltiples procesadores ( multihilo ), ya sea mediante el uso de plataformas de multiprocesamiento simétrico (SMP) o arquitectura de procesador multinúcleo . Se obtienen aumentos de rendimiento para un número reducido de procesadores, [ 26 ] pero no se escalan linealmente con un mayor número de procesadores (o núcleos), y un procesador con, por ejemplo, ocho núcleos puede no procesar paquetes significativamente más rápido que uno con dos núcleos.

Arquitectura de ruta rápida (omisión del sistema operativo)

En una implementación de ruta rápida , el plano de datos se divide en dos capas. La capa inferior, generalmente denominada ruta rápida, procesa la mayoría de los paquetes entrantes fuera del entorno del sistema operativo y sin incurrir en la sobrecarga del sistema operativo que degrada el rendimiento general. Solo los paquetes que requieren un procesamiento complejo se reenvían a la pila de red del sistema operativo (la capa superior del plano de datos), que realiza las funciones necesarias de gestión, señalización y control. Cuando se requieren algoritmos complejos, como enrutamiento o seguridad, la pila de red del sistema operativo reenvía el paquete a componentes de software específicos en el plano de control.

Un procesador multinúcleo puede proporcionar una mejora adicional del rendimiento a una implementación de ruta rápida. [ 27 ] Para maximizar el rendimiento general del sistema, se pueden dedicar varios núcleos a ejecutar la ruta rápida, mientras que solo se requiere un núcleo para ejecutar el sistema operativo, la pila de red del sistema operativo y el plano de control de la aplicación.

La única restricción al configurar la plataforma es que, dado que los núcleos que ejecutan la ruta rápida se ejecutan fuera del sistema operativo, deben dedicarse exclusivamente a dicha ruta y no compartirse con otro software. El sistema también puede reconfigurarse dinámicamente según cambien los patrones de tráfico. La división del plano de datos en dos capas añade complejidad, ya que ambas deben contener la misma información para garantizar la coherencia del sistema.

Tecnologías de procesamiento de paquetes

Para crear plataformas especializadas de procesamiento de paquetes, se han desarrollado e implementado diversas tecnologías. Estas tecnologías, que abarcan tanto hardware como software, se han diseñado con el objetivo de maximizar la velocidad y el rendimiento, minimizando al mismo tiempo la latencia.

procesadores de red

Una unidad de procesamiento de red (NPU) es similar en muchos aspectos a los procesadores de propósito general (GPP) que impulsan la mayoría de las computadoras, pero con su arquitectura interna y funciones adaptadas a operaciones centradas en la red. Las NPU suelen tener funciones específicas de red, como la búsqueda de direcciones, la coincidencia de patrones y la gestión de colas, integradas en su microcódigo . Las operaciones de procesamiento de paquetes de nivel superior, como la seguridad o la detección de intrusiones, a menudo están integradas en las arquitecturas de las NPU. [ 28 ] Algunos ejemplos de procesadores de red serían:

Procesadores multinúcleo

Un procesador multinúcleo es un único paquete de semiconductores que cuenta con dos o más núcleos, cada uno de los cuales representa una unidad de procesamiento individual, capaz de ejecutar código en paralelo. Las CPU de propósito general, como el Intel Xeon [ 29 ], ahora admiten hasta ocho núcleos. Algunos procesadores multinúcleo integran capacidades dedicadas de procesamiento de paquetes para proporcionar un SoC (Sistema en Chip) completo. Generalmente integran interfaces Ethernet , motores criptográficos , motores de coincidencia de patrones , colas de hardware para QoS y, en ocasiones, funciones más sofisticadas mediante micronúcleos. Todas estas características de hardware permiten descargar el procesamiento de paquetes de software. Ejemplos recientes de estos paquetes multinúcleo especializados, como el Cavium OCTEON II, pueden admitir desde dos hasta 32 núcleos.

Aceleradores de hardware

Para acciones claramente definibles y repetitivas, la creación de un acelerador dedicado integrado directamente en una solución de hardware semiconductor acelera las operaciones en comparación con el software que se ejecuta en un procesador de propósito general. [ 30 ] Las implementaciones iniciales utilizaron FPGA (matriz de puertas programables en campo) o ASIC (circuito integrado de aplicación específica), pero ahora funciones específicas como el cifrado y la compresión están integradas tanto en GPP como en NPU como aceleradores de hardware internos. Los ejemplos actuales de procesadores multinúcleo con aceleradores de hardware específicos para redes incluyen el Cavium CN63xx con aceleración para seguridad, TCP/IP, QoS y coincidencia de patrones HFA [ 31 ] y la familia de procesadores XFS de Netlogic Microsystems con motores de aceleración de redes y seguridad. [ 32 ]

Inspección profunda de paquetes

La capacidad de tomar decisiones basadas en el contenido de paquetes individuales permite una amplia variedad de nuevas aplicaciones, como la función de reglas de política y tarificación (PCRF) y la calidad de servicio. Los sistemas de procesamiento de paquetes separan tipos de tráfico específicos mediante tecnologías de inspección profunda de paquetes (DPI) [ 33 ] . Las tecnologías DPI utilizan algoritmos de coincidencia de patrones para analizar la carga útil de datos e identificar el contenido de cada paquete que fluye a través de un dispositivo de red. Las coincidencias de patrones exitosas se notifican a la aplicación de control para que tome las medidas pertinentes.

Software de procesamiento de paquetes

El software del sistema operativo contendrá ciertas pilas de red estándar que funcionarán tanto en entornos de un solo núcleo como de múltiples núcleos. [ 34 ] Para poder implementar arquitecturas de derivación del sistema operativo (ruta rápida) se requiere el uso de software especializado de procesamiento de paquetes como 6WINDGate de 6WIND . Este tipo de software proporciona un conjunto de protocolos de red que se pueden distribuir entre múltiples módulos, procesadores o núcleos y escalar adecuadamente.

Referencias

  1. D. Cerović, V. Del Piccolo, A. Amamou, K. Haddadou y G. Pujolle, Procesamiento rápido de paquetes: una revisión , en IEEE Communications Surveys & Tutorials, vol. 20, n.º 4, págs. 3645-3676, cuarto trimestre de 2018. doi: 10.1109/COMST.2018.2851072
  2. Organización Internacional de Normalización
  3. Unión Internacional de Telecomunicaciones)
  4. ISO/IEC 10731:1994. Tecnología de la información - Interconexión de sistemas abiertos - Modelo de referencia básico - Convenciones para la definición de servicios OSI.
  5. ITU-T X.200-199407, X.200  : Tecnología de la información - Interconexión de sistemas abiertos - Modelo de referencia básico: El modelo básico
  6. Preguntas frecuentes sobre tecnología. El modelo OSI: qué es, por qué es importante y por qué no lo es.
  7. Apuntes sobre redes informáticas. Ventajas del modelo de 7 capas OSI.
  8. "DARPA - Agencia de Proyectos de Investigación Avanzada de Defensa" . Archivado del original el 15 de enero de 2020. Consultado el 5 de enero de 2012 .
  9. Internet vivo. ARPANET: la primera Internet
  10. W3 Schools, Tutorial de TCP/IP archivado el 24/07/2013 en Wayback Machine
  11. Sheldon, Tom. Paquetes y redes de procesamiento de paquetes . Linktionary, 2001.
  12. Copeland, Lee. Estudio rápido: Redes de conmutación de paquetes frente a redes de conmutación de circuitos . Computerworld, marzo de 2000.
  13. Negroponte, N. Ser digital. Vintage, enero de 1996.
  14. Reding, Viviane. Convergencia digital: una forma de vida completamente nueva . Exposición sobre estilo de vida digital, mayo de 2006.
  15. Peterson, L. y Davie, B. Redes de computadoras (5.ª edición): Un enfoque de sistemas. Morgon Kaufmann, marzo de 2011.
  16. RFC Sourcebook. IP, Protocolo de Internet. Archivado el 14 de mayo de 2011 en Wayback Machine.
  17. Streenstrup, M. Enrutamiento en redes de comunicaciones. Prentice Hall, abril de 1995.
  18. Anderson, P. y James, L. Rendimiento superior, características variables - Análisis: Balanceadores de carga . NetworkWorldFusion, junio de 1999.
  19. Murthy, S. Enrutamiento en redes de conmutación de paquetes mediante algoritmos de búsqueda de rutas . UC Santa Cruz, 1996.
  20. Universidad de Maryland. Introducción, tasa y latencia . 2009
  21. Guía del marco de comunicaciones de Nokia. ¿Qué son los aviones? Febrero de 2010.
  22. Vin, H. Aplicaciones de procesamiento de paquetes: una visión general . Universidad de Texas, otoño de 2003.
  23. Reddy, M. Transcodificación y conversión de vídeo: ¡vídeo en 31 sabores! Archivado el 21/04/2012 en Wayback Machine . Vela, septiembre de 2011.
  24. Elhanany, I. y Hamdi, M. Arquitecturas de conmutación de paquetes de alto rendimiento. Springer, noviembre de 2011.
  25. Selissen, M. Necesidades de procesamiento de paquetes equilibradas entre arquitectura y red . EE Times, agosto de 2002.
  26. Foong, A., Fung, J. y Newell, D. Escalado SMP mejorado en Linux: afinidad de procesador dirigida por el usuario . Intel Software Network, octubre de 2008.
  27. Innovación de CDC. 6WIND proporciona una aceleración de 10x en las funciones de procesamiento de paquetes en las nuevas plataformas multinúcleo de Intel® . Marzo de 2010.
  28. NetLogic Microsystems. Procesadores avanzados basados ​​en conocimiento algorítmico .
  29. Procesamiento de paquetes con procesadores multinúcleo Intel® .2008.
  30. Cheerla, R. Comparación de arquitecturas para sistemas de optimización WAN de alto rendimiento . Infineta, Cardinal Directions, marzo de 2011.
  31. Cavium. Procesadores multinúcleo OCTEON II CN63XX para aplicaciones de Internet MIPS64
  32. NetLogic Microsystems. Soluciones de procesadores multinúcleo
  33. dpacket.org Introducción a la inspección/procesamiento profundo de paquetes .
  34. Foro de procesamiento de paquetes multinúcleo
  • Historia viva. “ Historia de Internet ”
  • Howe, Walt. (2010) “ Una breve historia de Internet ”
  • Sociedad de Internet. “ Historias de Internet ”
  • Historia viva. “ Historia de la conmutación de paquetes ”
  • Roberts, Dr. Lawrence G. (noviembre de 1978). “ La evolución de la conmutación de paquetes ”
  • Marshall, Dave. “ Historia de Internet – Cronología. ”
  • Rami Rosen, " Aceleración de red con DPDK ", artículo en lwn.net, julio de 2017.
  • Rami Rosen, " Redes en el espacio de usuario con DPDK ", artículo en Linux Journal, abril de 2018.