El Protocolo de transferencia de datos ( UDT ) basado en UDP 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 . Esta configuración suele ser desventajosa para el protocolo TCP más común .
Desarrollador (es) | Yunhong Gu |
---|---|
Lanzamiento estable | 4.11 / 23 de febrero de 2013 |
Repositorio | sourceforge |
Escrito en | C ++ |
Tipo | Protocolo (informática) |
Licencia | Licencia BSD |
Sitio web | udt |
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 admitir también la Internet básica. Por ejemplo, el protocolo ahora admite la configuración de la conexión de encuentro, que es una característica deseable para atravesar firewalls NAT utilizando 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 la transferencia de datos de alta velocidad y forma parte de muchos proyectos de investigación y productos comerciales.
Fondo
UDT fue desarrollado por Yunhong Gu [1] 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 la graduación.
El proyecto UDT comenzó en 2001, cuando las redes ópticas de bajo costo se hicieron populares y desencadenaron una mayor conciencia de los problemas de eficiencia del TCP en las redes de área amplia de alta velocidad. La primera versión de UDT, también conocida como SABUL (Biblioteca de utilidad de ancho de banda simple disponible), fue diseñada para admitir la transferencia de datos masivos para el movimiento de datos científicos a través de redes privadas. SABUL usó 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 Amsterdam , Países Bajos . Durante la prueba de 30 minutos, transmitieron aproximadamente 1,4 terabytes de datos.
Posteriormente, SABUL pasó a llamarse 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 usó UDP tanto para datos como para 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 simultáneos de UDT y TCP.
UDT3 (2006) extendió el uso del protocolo a la Internet comercial. El control de congestión también se ajustó para admitir 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 el cruce de firewall. UDT4 permitió que varias conexiones UDT se unieran al mismo puerto UDP y también admitió la configuración de la conexión de encuentro para facilitar la perforación de orificios UDP .
Actualmente se está planificando una quinta versión del protocolo. Las posibles características incluyen la capacidad de admitir múltiples sesiones independientes a través de una sola conexión.
Además, dado que la ausencia de una característica de seguridad para UDT ha sido un problema con su implementación inicial en un entorno comercial, Bernardo (2011) ha desarrollado una arquitectura de seguridad para UDT como parte de sus estudios de doctorado. Sin embargo, esta arquitectura se está mejorando para admitir UDT en varios entornos de red (es decir, redes ópticas).
Arquitectura de protocolo
UDT está construido sobre el Protocolo de datagramas de usuario (UDP), agregando mecanismos de control de congestión y control 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 parcial confiable.
Reconociendo
UDT utiliza reconocimientos 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, el número de ACK es proporcional al tiempo, en lugar del número 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 usando la técnica de par de paquetes), por lo que UDT puede sondear un ancho de banda alto rápidamente y puede ralentizarse para 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 de pérdidas.
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 tasa 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 la 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. Por lo tanto, 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 de TCP se pueden implementar utilizando esta función con menos de 100 líneas de código.
Configuración de la conexión Rendezvous
Además de la configuración tradicional de conexión cliente / servidor (también conocido como llamador / oyente, donde un oyente espera la conexión y potencialmente acepta múltiples llamadas conectadas), 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 tienen roles equivalentes (a diferencia de los roles de escucha / llamante en la configuración tradicional). Rendezvous se usa ampliamente para atravesar firewalls cuando ambos pares están detrás de firewalls.
Usa escenarios
UDT se utiliza ampliamente en la informática de alto rendimiento para admitir la transferencia de datos de alta velocidad a través de redes ópticas. Por ejemplo, GridFTP , una popular herramienta de transferencia de datos en la computación grid, tiene UDT disponible como protocolo de transferencia de datos.
En 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 con respecto a UDP. Estos escenarios incluyen aplicaciones peer-to-peer , comunicación de video y audio, y muchos otros.
Evaluación de mecanismos de seguridad viables
UDT se considera un protocolo de última generación que aborda los requisitos de infraestructura para transmitir datos en redes de alta velocidad. Sin embargo, su desarrollo crea nuevas vulnerabilidades porque, como muchos otros protocolos, se basa únicamente en los mecanismos de seguridad existentes para los protocolos actuales, como el Protocolo de control de transmisión (TCP) y UDP.
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 que se centra 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, y 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 forma fiable. 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 en 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, que es el 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 red de alta velocidad.
Trabajos derivados
El proyecto UDT ha sido una base para el proyecto SRT , que utiliza la confiabilidad de transmisión para la transmisión de video en vivo a través de Internet público.
Premios
El equipo de UDT ha ganado el prestigioso Desafío de ancho de banda en tres ocasiones durante la Conferencia anual de supercomputación ACM / IEEE , la principal conferencia mundial de informática, redes, almacenamiento y análisis de alto rendimiento. [2] [3] [4]
En SC06 (Tampa, FL), el equipo transfirió un conjunto de datos de astronomía a 8 Gbit / s de disco a disco desde Chicago, IL a Tampa, FL utilizando UDT. En SC08 (Austin, TX), 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, OR), un equipo colaborativo de NCDM, Naval Research Lab e iCAIR mostró aplicaciones de computación en la nube intensivas en datos de área amplia impulsadas por UDT.
Ver también
Literatura
- Bernardo, DV y Hoang, D. B; "Encuesta empírica: experimentación e implementación de transferencia de datos de protocolo de alta velocidad para GRID" Actas de la 25ª Conferencia Internacional de IEEE sobre redes de información avanzada y talleres de aplicación, marzo de 2011, Singapur.
- Yunhong Gu y Robert L. Grossman, UDT: Transferencia de datos basada en UDP para redes de área amplia de alta velocidad, redes informáticas (Elsevier). Volumen 51, Número 7. Mayo de 2007.
Referencias
- ^ https://scholar.google.co.in/citations?user=Iss3wgUAAAAJ&hl=en
- ^ NCDM gana el desafío de ancho de banda en SC06, HPCWire, 24 de noviembre de 2006
- ^ Los grupos de UIC ganan el premio del desafío del ancho de banda, HPCWire, 20 de noviembre de 2008
- ^ Open Cloud Testbed gana el desafío de ancho de banda en SC09, 8 de diciembre de 2009