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 mueve a través de los diversos elementos de red de una red de comunicaciones. Con el mayor rendimiento de las interfaces de red, existe la correspondiente necesidad de un procesamiento de paquetes más rápido. [1]
Hay dos amplias clases de algoritmos de procesamiento de paquetes que se alinean con la subdivisión de red estandarizada del plano de control y el plano de datos . Los algoritmos se aplican a:
- Controlar la información contenida en un paquete que se utiliza para transferir el paquete de forma segura y eficiente desde el origen al destino
- o
- El contenido de datos (frecuentemente llamado carga útil) del paquete que se usa para proporcionar alguna transformación específica de contenido o tomar una acción basada en contenido.
Dentro de cualquier red dispositivo activado (por ejemplo, encaminador , conmutador , elemento de red o un terminal tal como un ordenador o un teléfono inteligente) es el subsistema de procesamiento de paquetes que gestiona el recorrido de la red de múltiples capas o pila de protocolos de la parte inferior, físicas y de red capas todos el camino hasta la capa de aplicación .
Historia
El historial del procesamiento de paquetes es el historial de Internet y la conmutación de paquetes . Los hitos del procesamiento de paquetes incluyen:
- 1962-1968: primeras investigaciones sobre la conmutación de paquetes
- 1969: Primeros dos nodos de ARPANET conectados; 15 sitios conectados a finales de 1971 con el correo electrónico como una nueva aplicación
- 1973: Conexiones de voz por conmutación de paquetes a través de ARPANET con protocolo de voz en red . Protocolo de transferencia de archivos (FTP) especificado
- 1974: Protocolo de control de transmisión (TCP) especificado
- 1979: VoIP - NVP que se ejecuta en las primeras versiones de IP
- 1981: IP y TCP estandarizados
- 1982: TCP / IP estandarizado
- 1991: World Wide Web (WWW) publicado por CERN , escrito por Tim Berners-Lee
- 1998: IPv6 publicado por primera vez
Las referencias históricas y el cronograma se pueden encontrar en la sección Recursos externos a continuación.
Modelos de comunicaciones
Para que las redes tengan éxito es necesario tener un estándar unificador que defina la arquitectura de los sistemas de redes. El requisito fundamental para tal estándar es proporcionar un marco que permita a los fabricantes de hardware y software de todo el mundo desarrollar tecnologías de redes que trabajarán juntas y aprovechar sus capacidades de inversión acumulada para hacer avanzar el estado 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 Telegráfico y Telefónico [3] (CCITT, ahora llamado Unión Internacional de Telecomunicaciones (UIT-T) iniciaron proyectos con el objetivo de En 1983, estos esfuerzos se fusionaron y en 1984 el estándar, denominado 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 el UIT-T.
El modelo OSI es un modelo de 7 capas [6] que describe cómo funciona un sistema operativo de red. Un modelo en capas tiene muchos beneficios [7], incluida la capacidad de cambiar una capa sin afectar a las demás y como modelo para comprender cómo funciona un sistema operativo de red. Siempre que se mantenga la interconexión entre capas, los proveedores pueden mejorar la implementación de una capa individual sin afectar a otras capas.
Paralelamente al desarrollo del modelo OSI, la Agencia de Proyectos de Investigación Avanzada de Defensa de los Estados Unidos estaba implementando una red de investigación [8] ( DARPA ). El protocolo de internetworking desarrollado para soportar la red, llamado ARPAnet , [9] se llamó TCP o Programa de Control de Transmisión. A medida que avanzaba la investigación y el desarrollo y crecía el tamaño de la red, se determinó que el diseño de interconexión de redes que se estaba utilizando se estaba volviendo difícil de manejar y no seguía exactamente el enfoque en capas del modelo OSI. Esto llevó a la división del TCP original y la creación de la arquitectura TCP / IP [10] - TCP ahora significa Protocolo de Control de Transmisión e IP significa Protocolo de Internet.
Advenimiento del procesamiento de paquetes
Las redes de paquetes [11] surgieron como resultado de la necesidad a principios de la década de 1960 de hacer las redes de comunicaciones más confiables. Puede verse como la implementación del modelo en capas utilizando una estructura de paquetes.
Las primeras redes comerciales estaban compuestas por circuitos analógicos dedicados utilizados para comunicaciones de voz. El concepto de conmutación de paquetes se introdujo para crear una red de comunicaciones que continuaría funcionando a pesar de las fallas de los equipos en toda la red. En este cambio de paradigma, las redes se ven como conjuntos de sistemas que transmiten datos en pequeños paquetes que se abren camino desde el origen hasta el destino por cualquier número de rutas. Las funciones de procesamiento de paquetes iniciales apoyaron el enrutamiento de paquetes a través de la red, la detección y corrección de errores de transmisión y otras funciones de administración de la red .
La conmutación de paquetes con sus funciones de procesamiento de paquetes de soporte tiene varios beneficios prácticos sobre las redes tradicionales de conmutación de circuitos: [12]
- Un entorno totalmente digital que admite múltiples tipos de datos (como voz, datos y video) no solo enriqueció la vida de los usuarios, [13] [14] aumentó significativamente la eficiencia de los proveedores de red que anteriormente tenían que implementar diferentes redes para soportar diferentes tipos de datos.
- Mayor utilización del ancho de banda, con múltiples 'circuitos lógicos' usando los mismos enlaces físicos
- Capacidad de supervivencia de las comunicaciones debido a múltiples rutas a través de la red desde cualquier origen a cualquier destino
- Se pueden introducir servicios de información de valor agregado utilizando funciones de procesamiento de paquetes para proporcionar el procesamiento necesario
Estructura del paquete
Un paquete de red es el bloque de construcción fundamental para las redes de conmutación de paquetes. [15] Cuando un elemento como un archivo, mensaje de correo electrónico, flujo de voz o video se transmite a través de la red, se divide en fragmentos llamados paquetes que se pueden mover de manera más eficiente a través de la red que un gran bloque de datos. Numerosos estándares [16] cubren la estructura de los paquetes, pero normalmente los paquetes se componen de tres elementos:
- Encabezado : contiene información sobre el paquete, incluido el origen, el destino, la longitud y el 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 de detección y corrección de errores.
En una red de conmutación de paquetes , la computadora host emisora empaqueta el artículo original y cada paquete se enruta a través de la red a 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 el encabezado.
Los paquetes individuales pueden tomar diferentes rutas hacia el destino y llegar al destino fuera de orden. La computadora de destino verifica la exactitud de los datos en cada paquete (usando la información en el tráiler), vuelve a ensamblar el artículo original usando la información del número de paquete en el encabezado y presenta el artículo a la aplicación o usuario receptor.
Este ejemplo básico incluye las tres funciones de procesamiento de paquetes más fundamentales: paquetización, enrutamiento y ensamblaje. Las funciones de procesamiento de paquetes van desde las más simples hasta las más complejas. Como ejemplo, la función de enrutamiento es en realidad un proceso de varios pasos [17] que implica varios algoritmos de optimización y búsquedas de tablas. Una función de enrutamiento básica en Internet se parece a:
- 1. Compruebe si el destino es una dirección "propiedad" de esta computadora. Si es así, procese el paquete. Si no:
- una. Compruebe si el reenvío de IP está configurado en 'Sí'. Si no, el paquete se destruye. Si es así, entonces
- I. Verifique si una red conectada a esta computadora posee la dirección de destino. Si es así, enrute el paquete a la red apropiada. Si no, entonces
- 1. Verifique si hay alguna ruta a la red de destino. En caso afirmativo, enrute el paquete a la puerta de enlace del siguiente salto. Si no, destruye el paquete.
- I. Verifique si una red conectada a esta computadora posee la dirección de destino. Si es así, enrute el paquete a la red apropiada. Si no, entonces
- una. Compruebe si el reenvío de IP está configurado en 'Sí'. Si no, el paquete se destruye. Si es así, entonces
Las funciones de enrutamiento más avanzadas incluyen equilibrio de carga de red [18] y algoritmos de enrutamiento más rápidos. [19] Estos ejemplos ilustran la gama 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 utilizan con frecuencia 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 se puede utilizar para cambiar los datos utilizados por el plano de datos. El mantenimiento de esta información requiere el manejo de protocolos de señalización complejos. La implementación de estos protocolos en el plano de datos conduciría a un rendimiento de reenvío deficiente. Una forma común de administrar estos protocolos es dejar 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 paquetes de señalización salientes en el plano de datos. Esta arquitectura funciona porque el tráfico de señalización es una parte muy pequeña del tráfico global.
Plano de gestión
El plano de gestión proporciona una interfaz administrativa en el sistema general. Contiene procesos que respaldan la administración operativa, la gestión o las acciones de configuración / aprovisionamiento, tales como:
- Instalaciones para apoyar la recopilación y agregación de estadísticas.
- Soporte 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 SNMP ( Simple Network Management Protocol ).
También se pueden incluir soluciones más sofisticadas basadas en XML ( eXtensible Markup Language ).
Ejemplos de
La lista de aplicaciones de procesamiento de paquetes [22] generalmente se divide en dos categorías. Los siguientes son algunos ejemplos seleccionados para ilustrar la variedad en uso hoy.
Aplicaciones de control
- Reenvío , el funcionamiento básico de un enrutador
- Cifrado / Descifrado , la protección de la información en la carga útil mediante algoritmos criptográficos
- Calidad de servicio (QOS) , tratar los paquetes de manera diferente, como proporcionar servicios priorizados o especializados según la clase del paquete.
Aplicaciones de datos
- Transcodificación , la transformación de una codificación de video particular a la codificación particular utilizada por el destino.
- Transrating & Transizing, [23] transformando un tamaño y densidad de imagen apropiados para el dispositivo de destino
- Reconocimiento de imagen o voz , la detección de un patrón en particular (imagen o voz) que coincide con los de una base de datos con alguna acción de seguimiento que se realiza cuando se produce una coincidencia
- Las aplicaciones avanzadas incluyen áreas como seguridad ( monitoreo de llamadas y prevención de fugas de datos ), publicidad dirigida , servicios por niveles , cumplimiento de derechos de autor y estadísticas de uso de la red. Estas, y muchas otras aplicaciones de reconocimiento de contenido, se basan en la capacidad de discernir la inteligencia específica contenida en las cargas útiles de los paquetes mediante tecnologías de inspección profunda de paquetes (DPI).
Arquitecturas de procesamiento de paquetes
La conmutación de paquetes [24] también introduce algunos compromisos arquitectónicos. La realización de funciones de procesamiento de paquetes en la transmisión de información introduce retrasos que pueden ser perjudiciales para la aplicación que se está realizando. Por ejemplo, en las 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 brechas notables que perturban a los usuarios. La latencia es una medida del retraso de tiempo experimentado por 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 subproceso (sistema operativo estándar)
Una pila de red estándar utiliza servicios proporcionados por el sistema operativo (SO) que se ejecuta en un solo procesador (un solo subproceso ). Si bien las arquitecturas de un solo subproceso son las más sencillas de implementar, están sujetas a gastos generales asociados con el desempeño de las funciones del sistema operativo, como las apropiaciones, la administración de subprocesos, los temporizadores y el bloqueo. Estos gastos generales de procesamiento del sistema operativo se imponen a cada paquete que pasa por el sistema, lo que resulta en una penalización del rendimiento.
Arquitectura multiproceso (sistema operativo multiprocesamiento)
Se pueden realizar mejoras de rendimiento en una pila de red del sistema operativo adaptando el software de procesamiento de la pila de protocolos para admitir varios procesadores ( multiproceso ), 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 pequeño número de procesadores, [26] pero no se puede escalar linealmente en 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 (by-pass del sistema operativo)
En una implementación de ruta rápida , el plano de datos se divide en dos capas. La capa inferior, normalmente denominada ruta rápida, procesa la mayoría de los paquetes entrantes fuera del entorno del sistema operativo y sin incurrir en ninguna de las sobrecargas del sistema operativo que degradan el rendimiento general. Solo los paquetes que requieren un procesamiento complejo se envían a la pila de redes 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 redes del sistema operativo envía el paquete a componentes de software dedicados en el plano de control.
Un procesador multinúcleo puede proporcionar una mejora de rendimiento adicional 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 redes 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 estar dedicados exclusivamente a la ruta rápida y no compartirse con otro software. El sistema también se puede reconfigurar dinámicamente a medida que cambian los patrones de tráfico. La división del plano de datos en dos capas también agrega complejidad, ya que las dos capas deben tener la misma información para garantizar la coherencia del sistema.
Tecnologías de procesamiento de paquetes
Para crear plataformas de procesamiento de paquetes especializadas, se han desarrollado e implementado una variedad de tecnologías. Estas tecnologías, que abarcan una amplia gama de hardware y software, se han diseñado con el objetivo de maximizar la velocidad y el rendimiento al tiempo que se minimiza la latencia.
Procesadores de red
Una unidad de procesador de red (NPU) es similar en muchos aspectos a los procesadores de propósito general (GPP) que alimentan 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 la 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 alto nivel, como la seguridad o la detección de intrusiones, a menudo se integran en arquitecturas NPU. [28] Los ejemplos de procesadores de red incluirían:
- Intel - familia IXP2xxx
- Netronome : familias NFP-6xxx / 4xxx / 32xx
- PMC Sierra - familia Winpath
- EZChip : familia NP-x
Procesadores multinúcleo
Un procesador multinúcleo es un paquete de semiconductores único que tiene 2 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 Intel Xeon [29] ahora admiten hasta 8 núcleos. Algunos procesadores multinúcleo integran capacidades de procesamiento de paquetes dedicadas para proporcionar un SoC (System on Chip) completo. Por lo general se integran Ethernet interfaces, cripto-motores , coincidencia de patrones motores, hardware colas de QoS y funciones veces más sofisticados que utilizan micro-núcleos. Todas estas características de hardware pueden descargar el procesamiento de paquetes de software. Los ejemplos recientes de estos paquetes multinúcleo especializados, como el Cavium OCTEON II, pueden admitir desde 2 hasta 32 núcleos.
- Tilera - Familia de procesadores TILE-Gx
- Cavium Networks - Familias de procesadores multinúcleo OCTEON y OCTEON II
- Freescale - Plataformas de procesamiento QorIQ
- Microsistemas NetLogic : familias de procesadores XLP, XLR y XLS
Aceleradores de hardware
Para acciones repetitivas y claramente definibles, la creación de un acelerador dedicado integrado directamente en una solución de hardware de semiconductores acelerará las operaciones en comparación con el software que se ejecuta en un procesador de propósito general. [30] Las implementaciones iniciales utilizaban FPGA (matriz de puertas programables en campo) o ASIC (Circuito integrado específico de la aplicación), 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 de red incluyen Cavium CN63xx con aceleración para seguridad, coincidencia de patrones TCP / IP, QOS y 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
Ser capaz de tomar decisiones basadas en el contenido de paquetes individuales permite una amplia variedad de nuevas aplicaciones, como Policy Charging and Rules Functions ( PCRF ) y Quality of Service. Los sistemas de procesamiento de paquetes separan tipos de tráfico específicos mediante el uso de tecnologías de inspección profunda de paquetes (DPI) [33] . Las tecnologías DPI utilizan algoritmos de coincidencia de patrones para mirar dentro de la carga útil de datos para identificar el contenido de todos y cada uno de los paquetes que fluyen a través de un dispositivo de red. Las coincidencias de patrones satisfactorias se informan a la aplicación de control para que se tomen las medidas necesarias.
Software de procesamiento de paquetes
El software del sistema operativo contendrá ciertas pilas de red estándar que funcionarán en entornos de uno y varios núcleos. [34] Para poder implementar arquitecturas de by-pass (ruta rápida) del sistema operativo se requiere el uso de software de procesamiento de paquetes especializado, como 6WINDGate de 6WIND . Este tipo de software proporciona un conjunto de protocolos de red que se pueden distribuir en múltiples blades, procesadores o núcleos y escalar adecuadamente.
Referencias
- ^ D. Cerović, V. Del Piccolo, A. Amamou, K. Haddadou y G. Pujolle, Procesamiento rápido de paquetes: una encuesta , en IEEE Communications Surveys & Tutorials, vol. 20, no. 4, págs. 3645-3676, cuarto trimestre de 2018. doi: 10.1109 / COMST.2018.2851072
- ^ Organización internacional de estandarización
- ^ Unión Internacional de Telecomunicaciones)
- ^ ISO / IEC 10731: 1994. Tecnología de la información - Interconexión de sistemas abiertos - Modelo básico de referencia - Convenios para la definición de servicios OSI
- ^ UIT-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
- ^ Tech-FAQ. El modelo OSI: qué es; Por qué es importante; Por qué no importa
- ^ Notas sobre redes informáticas. Ventajas del modelo OSI de 7 capas
- ^ "DARPA - Agencia de proyectos de investigación avanzada de defensa" . Archivado desde el original el 15 de enero de 2020 . Consultado el 5 de enero de 2012 .
- ^ Living Internet. ARPANET - El primer Internet
- ^ Escuelas W3, Tutorial de TCP / IP
- ^ Sheldon, Tom. Paquetes y redes de procesamiento de paquetes . Linktionary, 2001.
- ^ Copeland, Lee. QuickStudy: Redes conmutadas por paquetes frente a redes conmutadas por circuitos . Computerworld, marzo de 2000.
- ^ Negroponte, N. Ser digital. Vintage, enero de 1996.
- ^ Enrojecimiento, Viviane. Convergencia digital: una forma de vida completamente nueva . Exposición Digital Lifestyle, mayo de 2006.
- ^ Peterson, L. y Davie, B. Redes informáticas (5ª edición): un enfoque de sistemas. Morgon Kaufmann, marzo de 2011.
- ^ Libro de consulta de RFC. IP, Protocolo de Internet.
- ^ Streenstrup, M. Enrutamiento en redes de comunicaciones. Prentice Hall, abril de 1995.
- ^ Anderson, P. y James, L. El rendimiento aumenta, las características varían - Revisión: Balanceadores de carga . NetworkWorldFusion, junio de 1999.
- ^ Murthy, S. Enrutamiento en redes conmutadas por paquetes mediante algoritmos de búsqueda de rutas . UC Santa Cruz, 1996.
- ^ U. de Maryland. Introducción, tasa y latencia . 2009
- ^ Guía del marco de comunicaciones de Nokia. ¿Qué son los aviones? . Febrero de 2010.
- ^ Vin, H. Aplicaciones de procesamiento de paquetes: una descripción general . Univ. of Texas, otoño de 2003.
- ^ Reddy, M. Transcodificación y transformación de video: video en 31 sabores. . Vela, septiembre de 2011.
- ^ Elhanany, I. y Hamdi, M. Arquitecturas de conmutación de paquetes de alto rendimiento. Springer, noviembre de 2011.
- ^ Selissen, M. Necesidades de procesamiento de paquetes equilibradas entre arquitectura, red . EE Times, agosto de 2002.
- ^ Foong, A., Fung, J. y Newell, D. Escalado SMP de Linux mejorado: afinidad del procesador dirigido por el usuario . Intel Software Network, octubre de 2008.
- ^ Innovación CDC. 6WIND proporciona una aceleración 10 veces mayor de las funciones de procesamiento de paquetes en las nuevas plataformas Intel® multinúcleo . Marzo de 2010.
- ^ Microsistemas NetLogic. Procesadores algorítmicos avanzados basados en el conocimiento .
- ^ Intel. Procesamiento de paquetes con procesadores Intel® multinúcleo . 2008.
- ^ Cheerla, R. Comparación de arquitectura para sistemas de optimización WAN de alto rendimiento . Infineta, Cardinal Directions, marzo de 2011.
- ^ Cavium. Procesadores de aplicaciones de Internet MIPS64 multinúcleo OCTEON II CN63XX
- ^ Microsistemas NetLogic. Soluciones de procesador multinúcleo
- ^ dpacket.org Introducción a la inspección / procesamiento profundo de paquetes .
- ^ Foro de procesamiento de paquetes multinúcleo
enlaces externos
- Historia viva. " Historial de Internet "
- Howe, Walt. (2010) " Una breve historia de Internet "
- Sociedad de Internet. " Historias de Internet "
- Historia viva. " Historial de cambio 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 " Userspace Networking with DPDK ", artículo en Linux Journal, abril de 2018.