stringtranslate.com

Protocolo de transferencia de datos basado en UDP

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 . 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, se han actualizado versiones recientes del protocolo para admitir también el Internet básico. Por ejemplo, el protocolo ahora admite la configuración de 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 admitir 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 graduarse.

El proyecto UDT comenzó en 2001, cuando las redes ópticas económicas se hicieron populares y generaron una mayor conciencia de los problemas de eficiencia de TCP en redes de área amplia de alta velocidad. La primera versión de UDT, también conocida como SABUL (Biblioteca de utilidades de ancho de banda disponible simple), fue diseñada para admitir la transferencia masiva de datos para el movimiento de datos científicos a través de redes privadas. SABUL utilizó 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 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 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 al mercado de Internet. El control de congestión se ajustó para admitir también 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 múltiples conexiones UDT se unieran al mismo puerto UDP y también admitió la configuración de conexión de encuentro para facilitar la perforación UDP .

Actualmente se encuentra en etapa de planificación una quinta versión del protocolo. Las posibles características incluyen la capacidad de admitir múltiples sesiones independientes a través de una única 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 está siendo mejorada para soportar UDT en diversos entornos de red (es decir, redes ópticas).

Arquitectura de protocolo

UDT se basa en 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 transmisión de datos confiable y mensajería confiable parcial.

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 estilo AIMD (aumento aditivo, disminución multiplicativa). El parámetro de aumento es inversamente proporcional al ancho de banda disponible (estimado utilizando la técnica de pares de paquetes), por lo que UDT puede sondear un ancho de banda alto rápidamente y puede reducir la velocidad 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 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 de encuentro

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 llamantes conectados), 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 oyente/llamante en la configuración tradicional). Rendezvous se usa ampliamente para atravesar firewalls cuando ambos pares están detrás de firewalls.

Usar escenarios

UDT se utiliza ampliamente en 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 computación grid, tiene UDT disponible como protocolo de transferencia de datos.

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

Debido a 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 vídeo 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 Tecnológica de Sydney , miembro de la Red Tecnológica 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, llevan a cabo una prueba formal de corrección para ayudarlos a determinar su aplicabilidad mediante el uso de lógica de composición de protocolos (PCL). Este enfoque es modular y comprende [ se necesita aclaración ] una prueba separada de cada sección del protocolo y proporciona información sobre el entorno de red en el que se puede emplear cada sección 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. Su técnica deriva del 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, que es el primero en la literatura, es una representación teórica y práctica más sólida 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 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ública.

Premios

El equipo de la UDT ganó 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, redes, almacenamiento y análisis de alto rendimiento. [2] [3] [4]

En SC06 (Tampa, FL), el equipo transfirió un conjunto de datos astronómicos 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 presentaron aplicaciones de computación en la nube con uso intensivo de datos de área amplia impulsadas por UDT.

Ver también

Literatura

Referencias

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

enlaces externos