Protocolo UDP características, funcionamiento y usos

Protocolo UDP, características y funcionamiento

El protocolo UDP

Como es conocido ya, la comunicación en las redes (LAN, WAN, etc.), a nivel doméstico o global, se realiza mediante una serie de protocolos, conocidos como: protocolos de internet. Sin dudas el más conocido de todos es el comúnmente nombrado protocolo TCP/IP.

TCP/IP conformado por el Protocolo de Internet (IP), responsable del direccionamiento y la fragmentación de datagramas, así cómo la descripción de la información sobre el origen y el destino y el protocolo de transporte TCP (Transmission Control Protocol), orientado a la conexión, se encarga de la transmisión de los datos, corrección de errores, retransmisión de paquetes…

Aunque proporciona seguridad en la entrega de datos, también retrasa la transmisión, razón por la cual David Patrick Reed publicó en 1980 en la RFC (Request for Comments) 768, su idea del UDP (protocolo de datagramas de usuario, User datagram protocol del ingles) como una alternativa más simple y rápida al protocolo estándar.

¿Qué es UDP (User Datagram Protocol)?

El protocolo UDP, por sus siglas en inglés (User Datagram Protocol), está basado en el modelo cliente servidor, además, punto multipunto, permite la muliplexación devido al uso de puertos es un protocolo que no está orientado a la conexión, funciona en la capa de transporte como se aprecia en la imagen a continuación. El protocolo UDP se utiliza para transmitir datagramas de forma rápida en redes IP.

capa de transporte, donde opera el protocolo udp.
capas del modelo tcp ip, y la capa de transporte donde opera udp

Es una alternativa directa al protocolo TCP, aunque ambos se diferencian básicamente en un punto: la transmisión mediante TCP tiene lugar una vez se ha producido el enlace obligatorio de 3 vías (con acuse de recibo mutuo entre el emisor y el receptor, incluida la sesión de comunicación), el protocolo UDP no utiliza este procedimiento con el fin de mantener el tiempo de transmisión lo más bajo posible.

Al igual que TCP utiliza puertos, reservados para servicios fijos (que veremos más adelante), para permitir que los datagramas se transfieran a las aplicaciones correctas en el sistema de destino.

Mediante UDP, una aplicación puede enviar información rápidamente, ya que no es necesario establecer una conexión con el receptor ni esperar una respuesta. Aunque UDP puede añadir opcionalmente una suma de verificación (obligatoria en IPv6) que permite detectar los paquetes defectuosos, no existe garantía de que los paquetes vayan a llegar completos y respetando el orden de envío, por lo que se considera inseguro.  

En que se usa el protocolo UDP

  • Aplicaciones basadas en el mejor esfuerzo (Best Effort Delivery): Encontramos ejemplos en aquellas aplicaciones que transmiten valores medidos o que ejecutan repetidamente las mismas órdenes de trabajo.
  • Aplicaciones con mecanismos propios para una transmisión fiable: La ventaja de este tipo de servicios es que: no están sujetos a patrones fijos a la hora de garantizar la integridad y exactitud de los datagramas enviados. Pueden decidir por sí mismos cómo y cuándo reaccionar ante información incorrecta o no clasificada.
  • Aplicaciones multicast: El protocolo UDP también soporta conexiones de multidifusión IP. En el caso de que una aplicación deba enviar paquetes IP de forma eficiente y rápida a varios receptores al mismo tiempo.
  • Aplicaciones en tiempo real: Se trata de protocolos que deben ser capaces de controlar en gran medida la transmisión, recepción y reproducción de flujos de datos por sí mismos (Audio, Video, Juegos Online).

Nota: Las aplicaciones en tiempo real ya utilizan como primera opción el protocolo de transporte en tiempo real (RTP), que se basa en UDP, a diferencia del protocolo básico, es capaz además de detectar la pérdida de paquetes Especificaciones del protocolo RTP podemos hallarla en la RFC 3550.

Servicios y Puertos

Al igual que TCP, UDP también tiene sus propias funciones y puertos específicos. A continuación, se presentan algunos de los más utilizados para UDP:

  • Sistema de nombres de dominio (DNS RFC 1034-1035: Puerto 53)

El protocolo DNS es uno de los protocolos más utilizados tanto en redes públicas como privadas. Su objetivo principal es traducir los nombres de dominio a una dirección IP para el enrutamiento de la red.

  • Protocolo de configuración dinámica de host (DHCP RFC 2131: Puerto 67/68)

Este protocolo se utiliza para la asignación dinámica de direcciones IP, y algunas configuraciones de red, principalmente en redes donde el volumen de equipos sea elevado y se haga muy engorrosa configuración de direcciones IP estáticas. Un ejemplo de uso práctico del DHCP, que facilita el trabajo de los administradores de la red seria en redes WIFI.

  • Protocolo de transferencia de archivos triviales (TFP RFC 1350: Puerto 69)

Este protocolo, a diferencia del habitual Protocolo de Transferencia de Archivos realizado en TCP, ofrece un método de transferencia sin el establecimiento de una sesión. Al utilizar TFTP, no hay forma de garantizar que la transferencia de archivos se haya realizado correctamente. Este protocolo se utiliza principalmente para actualizar el firmware y el software de los dispositivos.

  • Protocolo simple de gestión de red (SNMP RFC 1901-1908, 3411-3418: Puerto 161-/162)

Este protocolo es un método utilizado para la gestión de la red. Ser capaz de monitorear, configurar y controlar dispositivos de red son algunas de las capacidades del SNMP.

  • Protocolo de tiempo de red (NTP RFC 5905: Puerto 123)

El objetivo principal del NTP es sincronizar los dispositivos en Internet y se considera uno de los protocolos más ignorados. Para mantener un reloj preciso, la mayoría de los sistemas operativos modernos utilizan NTP.

Transmisión y Ensamblaje del datagrama UDP

Ya que UDP opera sin conexión, las sesiones no se establecen antes de que se lleve a cabo la comunicación. Se dice que UDP es basado en transacciones, es decir, cuando una aplicación posee datos para enviar, simplemente los envía.

Solo basta que el cliente UDP seleccione al azar un número de puerto del rango dinámico y lo utilice como puerto origen. El puerto de destino por lo general será el número de puerto bien conocido o registrado, asignado al proceso del servidor. Con ello y los datos a transmitir conforma el datagrama UDP (que veremos más adelante).

Los números de puerto de origen seleccionados al azar colaboran con la seguridad además ofrecen la posibilidad de murtiplexación. Si existe un patrón predecible para la selección del puerto de origen, un intruso puede simular el acceso a un cliente de manera más sencilla, intentando conectarse al número de puerto que tenga mayor posibilidad de estar abierto.

Ya que no se crean sesiones con UDP, tan pronto como los datos están listos para ser enviados y los puertos estén identificados, UDP puede formar el datagrama y lo envía a la capa de Red para su direccionamiento y envío como se muestra en la imagen a continuación. Cabe mencionar que estos puertos serán los mismos que se utilicen en toda la transacción.

proceso de envio y encapsulamiento del mensaje udp.
Encapsulamiento del mensaje UDP

El proceso de recepción y desencapsulado son similares lo que, en sentido inverso, como se muestra en la figura siguiente.

recepcion y desencapsulamiento del mensaje udp
Desencapsulamiento del mensaje UDP

Para la devolución de datos en  respuesta al cliente, UDP invierte los números de puerto origen y destino en el encabezado del datagrama. Y se realiza el mismo proceso de envío y recepción antes mencionado.

Envio y recepcion de datagrama protocolo UDP
Datagrama UDP, consulta y respuesta.

Muchas aplicaciones que utilizan UDP envían pequeñas cantidades de datos que pueden ocupar un segmento. Sin embargo, algunas aplicaciones enviarán cantidades mayores de datos que deben dividirse en varios segmentos o datagramas.

Qué pasa si enviamos múltiples datagramas

Cuando se envían múltiples datagramas a un destino, los mismos pueden tomar rutas distintas y llegar en el orden incorrecto. UDP no mantiene un seguimiento de los números de secuencia por lo que no puede reordenar los datagramas en el orden de la transmisión incluso se pueden perder en el trayecto como ya hemos mencionado.  Ver la figura.

envios de datagramas protocolo UDP
Envio-recepción de datagramas

Por lo tanto, UDP simplemente ensambla los datos en el orden en que se recibieron y los envía a la aplicación. Si la secuencia de los datos es importante para la aplicación, la misma deberá identificar la secuencia adecuada de datos y determinar cómo procesarlos.

Formato del Datagrama UDP

Los mensajes UDP se envían a través de la red encapsulados en datagramas IP, como se muestra en la siguiente ilustración.

Se muestra como se conforma la cabecera del protocolo UDP
Cabecera protocolo UDP

Formato Mensaje UDP

  • Puerto origen (16 bits): Número de puerto de la máquina origen.
  • Puerto destino (16 bits): Número de puerto de la máquina destino.
  • Longitud del mensaje (16 bits): Especifica la longitud medida en bytes del mensaje UDP, incluyendo la cabecera. La longitud mínima es de 8 bytes.
  • Suma de verificación (16 bits, opcional): Suma de comprobación de errores del mensaje.

Para su cálculo se utiliza una pseudo-cabecera que también incluye las direcciones IP origen y destino. Para conocer estos datos, el protocolo UDP debe interactuar con el protocolo IP.

  • Datos: Aquí viajan los datos que se envían las aplicaciones.

Longitud del mensaje (16bits): longitud total de la cabecera UDP+datos en bytes. Valor máximo: 216-1=65535, pero el campo longitud de la cabecera. IP también tiene este máximo, por lo que el mayor tamaño posible de datos UDP será: 65535-20(IP)-8(UDP) = 65507 bytes.

 

En resumen, el protocolo UDP:

  • Usa el modelo Cliente/Servidor.
  • Point to multipoint.
  • Multiplexación de aplicaciones gracias al uso de puertos.
  • Ofrece un servicio de datagramas (no orientado a conexión)
  • Permite utilizar puertos para identificar aplicaciones origen/destino de los mensajes.
  • No aporta fiabilidad.
  • No incorpora mecanismos de control de flujo y congestión.
  • Es un protocolo sin estado.
  • La aplicación tiene control sobre el tamaño de los paquetes y cuando se envían.

 

Esperamois sea de ayuda la información publicada, dejenos saber su opinión. Saludos

About the author: YGR Support

Leave a Reply

Your email address will not be published.Email address is required.