08
junio
2020

Protocolo UDP

Protocolo UDP

Protocolo UDP

UDP o Protocolo de Datagrama de Usuario (User Datagram Protocol) es un protocolo que permite la transmisión de datos sin conexión previa; de esta manera, es posible enviar información de una forma muy rápida, sin necesidad de confirmar la conexión, y esperar la respuesta de que los paquetes fueron recibidos correctamente.

El Protocolo UDP pertenece a la familia de protocolos de Internet de la Capa 4 de Transporte del Modelo de Referencia OSI. Proporciona una sencilla interfaz entre la Capa de Red y las superiores (Sesión, Presentación y Aplicación), no otorga garantías para la entrega de sus mensajes, y no retiene el estado de los paquetes que han sido enviados a la red.

UDP permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros, y tampoco se sabe si han llegado todos correctamente, ya que no hay confirmación de entrega o recepción.

El Protocolo UDP proporciona muy pocos servicios de recuperación de errores, ofreciendo en su lugar una manera directa y rápida de enviar y recibir datagramas a través de una red; es empleado fundamentalmente para la comunicación entre sistemas, en los que la velocidad es más importante que la fiabilidad en la transmisión de la información.

Se utiliza UDP para enviar paquetes de datos desde un emisor a un receptor, sin importar que este último los reciba todos completamente. Cada paquete es enviado directa e individualmente sin establecerse ni reconocerse un canal de datos fiable.

En pos de la velocidad de envío, no existe un orden inherente en la transmisión de los paquetes de datos, pues todos se envían a través de la red de forma independiente entre sí. De igual modo, no es posible solicitar los paquetes de datos que faltan una vez que se pierden en tránsito.

En un flujo continuo muy rápido de información, como la transmisión en directo de televisión por Internet, por ejemplo, se utiliza el protocolo UDP, pues la pérdida de algunos paquetes en tránsito, aunque causa cierta distorsión de imagen o audio, no afecta considerablemente la reproducción del video.


Características

Para comprender a fondo cómo funciona la transmisión de paquetes del Protocolo UDP, resulta útil analizar detenidamente cuáles son sus propiedades fundamentales:

  • Funciona sin conexión: el protocolo UDP se caracteriza porque permite el envío de paquetes a través de la red sin que se haya establecido previamente una conexión entre el emisor y el receptor. Los datagramas respectivos se envían a la dirección IP especificando el puerto de destino, sin que sea necesario una confirmación de llegada como respuesta.
  • Utiliza puertos: para permitir que los datagramas se transfieran a las aplicaciones correctas, elegidas en el dispositivo de destino. Los puertos quedan definidos mediante un número conforme a un rango de valores válidos.
  • Permite una comunicación sin retardos: es el adecuado para una transmisión de datos rápida debido a que no hay que llevar a cabo una configuración de la conexión, lo que resulta también del hecho de que la pérdida de un paquete individual afecta exclusivamente a la calidad de la transmisión, y no la transmisión en sí.
  • No ofrece garantía de seguridad de los datos: la ausencia de acuse de recibo mutuo entre el emisor y el receptor garantiza que la velocidad de transmisión sea excelente; no obstante, no puede asegurar la integridad de los datagramas; tampoco puede garantizar el orden de los paquetes enviados; por ello, los servicios que utilizan UDP deben aplicar sus propias medidas de corrección y protección.

El Protocolo UDP no proporciona una entrega de datos fiable, sin embargo, existen aplicaciones, por ejemplo, interesadas en transmitir información en modo multicast o broadcast (a un grupo o a todos los usuarios de la red) sin esperar una respuesta, de manera que UDP es ideal para esta función.

Datagrama UDP

El datagrama UDP consta de una cabecera de 64 bits (8 bytes), y un cuerpo para encapsular los datos de longitud variable.

La cabecera consta de 4 campos de 16 bits cada uno, y de los cuales 2 son opcionales:

  • Puerto de origen: es el número de puerto relacionado con la aplicación del emisor del segmento UDP. Este campo representa una dirección de respuesta para el destinatario, por lo tanto, es opcional, y si no se especifica, se completa con 0, y el destinatario no podrá responder (lo cual no es estrictamente necesario, en particular para mensajes unidireccionales).
  • Puerto de destino: este campo contiene el puerto correspondiente a la aplicación del equipo receptor al que se envía.
  • Longitud: indica el tamaño completo en byte del datagrama UDP, incluyendo la cabecera. La longitud mínima de un datagrama UDP es de 8 bytes (64 bits: 16 por cada campo de la cabecera y 0 en el cuerpo), y la máxima de 65.535 bytes.
  • Suma de comprobación: es una suma de comprobación realizada de manera tal que permita controlar la integridad del segmento, protegiendo tanto la cabecera como los datos; es opcional, aunque en la práctica se utiliza.

El cuerpo de datagrama UDP se emplea para el transporte de los datos que se intercambian entre las aplicaciones.


Aplicaciones sobre UDP

Existen fundamentalmente tres tipos de aplicaciones que son muy adecuadas para emplear el protocolo UDP:

  • Aplicaciones que pueden tolerar cierta pérdida de datos, pero requieren retrasos cortos o que no haya retrasos.

  •  Aplicaciones con transacciones de solicitud y respuesta simples.

  • Comunicaciones unidireccionales donde no se requiere confiabilidad o donde la aplicación la pueda administrar.

Muchas aplicaciones de video y multimedia, como VoIP (Voice over IP o Voz sobre IP) e IPTV (IP Television o Televisión por IP) utilizan UDP, ya que pueden tolerar cierta pérdida de datos con un efecto mínimo o imperceptible. Los mecanismos de confiabilidad de otros protocolos, presentan cierto grado de demora que se puede percibir en la calidad de sonido o video que se recibe.

Otro tipo de aplicaciones adecuadas para UDP son las que utilizan transacciones de solicitud y respuesta simples, lo que significa que envían una solicitud, y puede o no recibir respuesta; incluso, en caso negativo, pueden volver a intentar la solicitud. Algunas de ellas son: DNS (Domain Name System o Sistema de Nombres de Dominio), DHCP (Dynamic Host Configuration Protocol o Protocolo de Configuración Dinámica de Host), y SNMP (Simple Network Management Protocol o Protocolo Simple de Gesión de Red), entre otras

Algunas aplicaciones, además, se ocupan de la confiabilidad por sí mismas, por lo que no necesitan de mecanismos de seguridad adicionales de otros protocolos, y emplean por tanto UDP. TFTP (Trivial File Transfer Protocol o Protocolo de Transferencia Trivial de Archivos) es un ejemplo de este tipo de aplicaciones, pues presenta mecanismos propios para el control del flujo, la detección de errores, los acuses de recibo y la recuperación de errores. Este protocolo se utiliza principalmente para actualizar el firmware y el software de los dispositivos.

En todos los casos anteriores, la baja sobrecarga de transporte del Protocolo UDP, lo hacen deseable para ser empleado por dichas aplicaciones.


UDP vs TCP

En una referencia al Modelo OSI, tanto el Protocolo de Control de Transmisión (TCP) como el Protocolo de Datagrama de Usuario (UDP), pertenecen a la Capa 4 de Transporte; ambos cumplen funciones diferentes, y trabajan mejor para tareas específicas y en algunos casos combinadas, para explotar óptimamente los puntos fuertes de cada uno.

Algunas de las principales diferencias entre TCP y UDP pueden resumirse como:

  • El protocolo TCP está orientado a la conexión, lo que significa que verifica la correcta transmisión de datos entre el emisor y el receptor, mientras que UDP es un protocolo sin previa conexión, que se traduce en el hecho de no chequear que los datos realmente lleguen a su destino correctamente.

  • TCP es altamente confiable para transferir datos, ya que analiza el acuse de recibo de la información enviada, y reenvía los paquetes perdidos. UDP no gestiona la pérdida de paquetes, por tanto, no solicita su retransmisión, por lo que se considera en este sentido un protocolo poco fiable.

  • TCP es más lento para el envío de información que UDP, ya que TCP establece la conexión antes de transmitir los datos y garantiza la entrega adecuada de los paquetes; UDP por su parte, simplemente envía los datos de manera directa y rápida.

  • El tamaño de cabecera de los paquetes de datos TCP es de 20 bytes, mientras que el UDP es de solo 8 bytes; lo que responde a la necesidad del primero de incluir más información en los paquetes, para poder comprobar y subsanar posibles errores después de la transmisión.

  • Tanto TCP como UDP pueden comprobar si hay errores, pero sólo TCP puede corregir el error ya que tiene control de congestión y de flujo.

En resumen, tanto TCP como UDP tienen ventajas y desventajas: UDP es más rápido y simple, por tanto, generalmente se utiliza para el envío de datos que no permiten retrasos; mientras TCP por otro lado, es robusto y fiable, garantizando la entrega de paquetes y la seguridad de la comunicación.

En función de las necesidades de las aplicaciones, se recomienda el uso de uno u otro, incluso combinados, para explotar al máximo sus potencialidades en la transmisión de datos.

La tecnología ViPNet usa los paquetes udp para enviar los datos cifrados y además para enmascarar las direcciones IP. Eso nos diferencia de otras tecnologías estándares del mercado que usan el protocolo iPSec para cifrar y permite que trabajemos sin contratiempos a través del equipamiento de red que hace la denominada Traducción de las Direcciones (NAT). 

¿Te interesó el artículo? Si deseas conocer más, contáctanos.

Contáctenos