stringtranslate.com

Protocolo de transferencia de datos basado en UDP

El protocolo de transferencia de datos basado en UDP ( UDT ) es un protocolo de transferencia de datos de alto rendimiento diseñado para transferir grandes conjuntos de datos volumétricos a través de redes de área amplia de alta velocidad . Estas configuraciones suelen ser desventajosas para el protocolo TCP más común .

Las versiones iniciales se desarrollaron y probaron en redes de muy alta velocidad (1 Gbit/s, 10 Gbit/s, etc.); sin embargo, las versiones recientes del protocolo se han actualizado para que también sean compatibles con Internet. Por ejemplo, el protocolo ahora admite la configuración de conexión de encuentro, que es una característica deseable para atravesar cortafuegos NAT mediante UDP .

UDT tiene una implementación de código abierto que se puede encontrar en SourceForge . Es una de las soluciones más populares para soportar transferencias de datos a alta velocidad y forma parte de muchos proyectos de investigación y productos comerciales.

Fondo

Yunhong Gu [1] desarrolló el protocolo UDT durante sus estudios de doctorado en el Centro Nacional de Minería de Datos (NCDM) de la Universidad de Illinois en Chicago, en el laboratorio del Dr. Robert Grossman. El Dr. Gu continúa manteniendo y mejorando el protocolo después de graduarse.

El proyecto UDT comenzó en 2001, cuando las redes ópticas económicas se hicieron populares y generaron una mayor conciencia sobre los problemas de eficiencia del TCP en redes de área amplia de alta velocidad. La primera versión de UDT, también conocida como SABUL (Simple Available Bandwidth Utility Library), fue diseñada para soportar la transferencia masiva de datos para el movimiento de datos científicos en redes privadas. SABUL usaba UDP para la transferencia de datos y una conexión TCP separada para los mensajes de control.

En octubre de 2003, el NCDM logró una transferencia de 6,8 gigabits por segundo desde Chicago (Estados Unidos) a Ámsterdam (Países Bajos) . Durante la prueba de 30 minutos, transmitieron aproximadamente 1,4 terabytes de datos.

Posteriormente, SABUL pasó a denominarse UDT a partir de la versión 2.0, que se lanzó en 2004. UDT2 eliminó la conexión de control TCP en SABUL y utilizó UDP tanto para los datos como para la información de control. UDT2 también introdujo un nuevo algoritmo de control de congestión que permitió que el protocolo se ejecutara de manera "justa y amigable" con flujos UDT y TCP simultáneos.

UDT3 (2006) extendió el uso del protocolo a la Internet de consumo. El control de congestión también se ajustó para soportar un ancho de banda relativamente bajo. UDT3 también redujo significativamente el uso de recursos del sistema (CPU y memoria). Además, UDT3 permite a los usuarios definir e instalar fácilmente sus propios algoritmos de control de congestión.

UDT4 (2007) introdujo varias características nuevas para soportar mejor la alta concurrencia y la travesía del firewall. UDT4 permitió que múltiples conexiones UDT se vincularan al mismo puerto UDP y también admitió la configuración de conexión de encuentro para facilitar la perforación de orificios UDP .

Actualmente se está planificando una quinta versión del protocolo. Entre las posibles características se incluye la capacidad de admitir varias sesiones independientes en una única conexión.

Además, dado que la ausencia de una característica de seguridad para UDT ha sido un problema durante su implementación inicial en un entorno comercial, Bernardo (2011) desarrolló una arquitectura de seguridad para UDT como parte de sus estudios de doctorado. Sin embargo, esta arquitectura está siendo mejorada para soportar UDT en varios entornos de red (es decir, redes ópticas).

Arquitectura de protocolo

UDT se basa en el Protocolo de datagramas de usuario (UDP), lo que le agrega mecanismos de control de congestión y de confiabilidad. UDT es un protocolo dúplex orientado a la conexión a nivel de aplicación que admite tanto la transmisión de datos confiable como la mensajería parcialmente confiable.

Reconociendo

UDT utiliza acuses de recibo periódicos ( ACK ) para confirmar la entrega de paquetes, mientras que los ACK negativos (informes de pérdida) se utilizan para informar la pérdida de paquetes. Los ACK periódicos ayudan a reducir el tráfico de control en la ruta inversa cuando la velocidad de transferencia de datos es alta, porque en estas situaciones, la cantidad de ACK es proporcional al tiempo, en lugar de a la cantidad de paquetes de datos.

AIMD con aumento decreciente

UDT utiliza un algoritmo de control de congestión de estilo AIMD (aumento aditivo, disminución multiplicativa). El parámetro de aumento es inversamente proporcional al ancho de banda disponible (estimado mediante la técnica de pares de paquetes), por lo que UDT puede probar rápidamente un ancho de banda alto y puede reducir la velocidad para lograr una mejor estabilidad cuando se acerca al ancho de banda máximo. El factor de disminución es un número aleatorio entre 1/8 y 1/2. Esto ayuda a reducir el impacto negativo de la sincronización por pérdida.

En UDT, la transmisión de paquetes está limitada tanto por el control de velocidad como por el control de ventana. La velocidad de envío se actualiza mediante el algoritmo AIMD descrito anteriormente. La ventana de congestión, como mecanismo de control secundario, se establece de acuerdo con la velocidad de llegada de datos en el lado del receptor.

Control de congestión configurable

La implementación de UDT expone un conjunto de variables relacionadas con el control de congestión en una clase C++ y permite a los usuarios definir un conjunto de funciones de devolución de llamada para manipular estas variables. De este modo, los usuarios pueden redefinir el algoritmo de control anulando algunas o todas estas funciones de devolución de llamada. La mayoría de los algoritmos de control TCP se pueden implementar utilizando esta función con menos de 100 líneas de código.

Configuración de la conexión de encuentro

Además de la configuración tradicional de conexión cliente/servidor (también conocida como llamador/escuchador, donde un oyente espera la conexión y potencialmente acepta múltiples llamadas), UDT también admite un nuevo modo de configuración de conexión de encuentro. En este modo, ambos lados escuchan en su puerto y se conectan al par simultáneamente, es decir, ambos se conectan entre sí. Por lo tanto, ambas partes deben usar el mismo puerto para la conexión y ambas partes son equivalentes en roles (en contraste con los roles de oyente/llamador en la configuración tradicional). El encuentro se usa ampliamente para atravesar firewalls cuando ambos pares están detrás de un firewall.

Escenarios de uso

El UDT se utiliza ampliamente en informática de alto rendimiento para permitir la transferencia de datos a alta velocidad a través de redes ópticas. Por ejemplo, GridFTP , una herramienta de transferencia de datos popular en informática en red, tiene disponible el UDT como protocolo de transferencia de datos.

En el ámbito de Internet, UDT se ha utilizado en muchos productos comerciales para la transferencia rápida de archivos a través de redes de área amplia .

Dado que UDT se basa exclusivamente en UDP, también se ha utilizado en muchas situaciones en las que TCP está en desventaja respecto de UDP. Estos escenarios incluyen aplicaciones peer to peer , comunicación de audio y video, y muchas otras.

Evaluación de mecanismos de seguridad viables

El protocolo UDT se considera un protocolo de última generación que aborda los requisitos de infraestructura para la transmisión de datos en redes de alta velocidad. Sin embargo, su desarrollo genera nuevas vulnerabilidades porque, como muchos otros protocolos, depende únicamente de los mecanismos de seguridad existentes para los protocolos actuales, como el Protocolo de control de transmisión (TCP) y el UDP.

La investigación realizada por el Dr. Danilo Valeros Bernardo de la Universidad de Tecnología de Sydney , miembro de la Red de Tecnología Australiana centrada en experimentos prácticos sobre UDT utilizando sus mecanismos de seguridad propuestos y explorando el uso de otros mecanismos de seguridad existentes utilizados en TCP/UDP para UDT, obtuvo críticas interesantes en varias comunidades científicas de redes y seguridad.

Para analizar los mecanismos de seguridad, realizan una prueba formal de corrección para ayudarlos a determinar su aplicabilidad mediante el uso de la lógica de composición de protocolo (PCL). Este enfoque es modular, comprende [ aclaración necesaria ] una prueba separada de cada sección del protocolo y proporciona información sobre el entorno de red en el que cada sección puede emplearse de manera confiable. Además, la prueba es válida para una variedad de estrategias de recuperación de fallas y otras opciones de implementación y configuración. Derivan su técnica de la PCL sobre TLS y Kerberos en la literatura. Trabajan en el desarrollo y validación de su arquitectura de seguridad mediante el uso de sistemas de reescritura y autómatas.

El resultado de su trabajo, primero en la literatura, es una representación teórica y práctica más robusta de una arquitectura de seguridad de UDT, viable para trabajar con otros protocolos de redes de alta velocidad.

Obras derivadas

El proyecto UDT ha sido la base para el proyecto SRT , que utiliza la confiabilidad de la transmisión para la transmisión de video en vivo a través de Internet público.

Premios

El equipo UDT ha ganado el prestigioso Bandwidth Challenge tres veces durante la Conferencia anual de supercomputación ACM/IEEE , la conferencia más importante del mundo sobre computación de alto rendimiento, redes, almacenamiento y análisis. [2] [3] [4]

En SC06 (Tampa, Florida), el equipo transfirió un conjunto de datos astronómicos a 8 Gbit/s de disco a disco desde Chicago, Illinois a Tampa, Florida, utilizando UDT. En SC08 (Austin, Texas), el equipo demostró el uso de UDT en una transferencia de datos compleja de alta velocidad que involucra varias aplicaciones distribuidas en un sistema de 120 nodos, en cuatro centros de datos en Baltimore, Chicago (2) y San Diego. En SC09 (Portland, Oregón), un equipo colaborativo de NCDM, Naval Research Lab e iCAIR mostró aplicaciones de computación en la nube con uso intensivo de datos de área amplia impulsadas por UDT.

Véase también

Literatura

Referencias

  1. ^ "Gu Yunhong".
  2. ^ NCDM gana el desafío del ancho de banda en SC06, HPCWire, 24 de noviembre de 2006
  3. ^ Grupos de la UIC ganan el premio Bandwidth Challenge, HPCWire, 20 de noviembre de 2008
  4. ^ Open Cloud Testbed gana el desafío del ancho de banda en SC09, 8 de diciembre de 2009

Enlaces externos