UDP (User Datagram Protocol)

UDP (Protocolo de Datagramas de Usuario) es un protocolo de la Capa de Transporte (Capa 4) no orientado a la conexión. Esto significa que no realiza ningún "Handshake" previo, no establece un canal dedicado ni garantiza que los datagramas lleguen a su destino en orden o sin pérdidas. Cada paquete viaja de forma independiente. A diferencia de TCP, aquí no hay saludos iniciales ni confirmaciones. El emisor simplemente suelta los datos en la red dirigidos a un destino. Si TCP era el "transportista responsable", UDP es el "mensajero veloz". Su filosofía es: "envía los datos lo más rápido posible y no mires atrás". UDP prioriza la velocidad y la baja latencia por encima de la recuperación de errores.

¿Cómo funciona?

UDP no establece una sesión previa. Simplemente toma los datos de la aplicación, les pone una cabecera mínima y los envía.

  • Si el receptor está apagado, los datos se pierden.

  • Si el cable se desconecta un segundo, los datos se pierden.

  • UDP no reenvía nada.

Características Principales

  • No orientado a conexión: Envía los datos directamente al destino sin negociar ni establecer ningún estado previo con el receptor (sin Handshake).

  • Sin confirmación ni fiabilidad (Best-effort): No existen los acuses de recibo (ACK). El emisor nunca sabe si el mensaje llegó correctamente y, si un paquete se pierde en el camino, UDP no solicita su retransmisión.
  • Sin control de flujo ni de congestión: El emisor transmite los datos a la máxima velocidad posible que permite su interfaz de red, independientemente de la capacidad o saturación del receptor.
  • Sin orden: Los datagramas viajan de forma independiente. Si envías el paquete A y luego el B, la red puede alterar el orden de llegada y a UDP no le importa gestionarlo.
  • Cabecera extremadamente ligera: Su cabecera ocupa tan solo 8 bytes (frente a los mínimo 20 bytes de TCP). Al no tener que gestionar conexiones ni papeleo de control, la latencia es mínima y deja más espacio real para los datos.

¿Cuándo se utiliza UDP?

Debido a su agilidad, UDP es el protocolo estándar en escenarios donde la velocidad es crítica y la pérdida puntual de algún paquete es tolerable sin afectar gravemente a la experiencia del usuario. La clave es la tolerancia a fallos vs. tiempo real:

  • Streaming de vídeo y audio en directo y VoIP: En una videollamada, si un paquete se pierde, prefieres un pequeño "pixelado" de un milisegundo que detener la imagen 2 segundos para esperar a que el paquete se reenvíe. Si se pierde un fotograma en una retransmisión en vivo, es mejor descartarlo y seguir con el flujo actual que pausar la emisión para pedirlo de nuevo.
  • Juegos online multijugador: Las posiciones de los jugadores deben actualizarse en tiempo real de forma inmediata, no dónde estaba hace medio segundo. Los paquetes viejos no sirven.
  • Consultas DNS y DHCP: Peticiones rápidas de pregunta-respuesta donde no se justifica abrir una conexión completa. Son mensajes tan cortos que es más rápido volver a preguntar si no hay respuesta que montar toda una conexión TCP.
Ejemplo:

"Imagina que UDP es como un profesor que lanza pelotas de tenis a los alumnos. No se detiene a preguntar si cada alumno la ha atrapado; simplemente sigue lanzando para que el ritmo no pare. Si alguien pierde una, no pasa nada, la siguiente llegará enseguida."

Preguntas de Reflexión:

Responde a las siguientes cuestiones para afianzar los conceptos clave de la capa de transporte:

  1. ¿Qué significa que UDP sea un protocolo no orientado a conexión?
  2. ¿Por qué se dice que UDP ofrece un servicio de entrega "best-effort" o de mejor esfuerzo?
  3. ¿Qué ventajas aporta una cabecera de solo 8 bytes frente a la de TCP?
  4. ¿Por qué es preferible utilizar UDP en lugar de TCP para una videollamada o streaming en directo?
  5. ¿Qué ocurre si un paquete UDP llega desordenado al equipo de destino?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué significa que UDP sea un protocolo no orientado a conexión?

Significa que el emisor envía los datos directamente al receptor sin establecer ningún acuerdo o saludo previo (como el Handshake de TCP). No se reserva memoria de estado ni se comprueba si el destino está activo y preparado antes de empezar a transmitir.


2. ¿Por qué se dice que UDP ofrece un servicio de entrega "best-effort" (de mejor esfuerzo)?

Porque el protocolo se limita a empaquetar la información y enviarla a la red haciendo su "mejor esfuerzo" por entregarla, pero sin asumir ninguna garantía. Si hay congestión, errores o caídas de línea, UDP no se entera ni intenta solucionar la pérdida de los paquetes.


3. ¿Qué ventajas aporta una cabecera de solo 8 bytes frente a la de TCP?

Al tener una estructura interna mucho más simple y ligera (puerto origen, puerto destino, longitud y suma de comprobación), se reduce significativamente la sobrecarga (overhead) en cada paquete, lo que se traduce en un menor uso de ancho de banda y menor latencia en las comunicaciones.


4. ¿Por qué es preferible utilizar UDP en lugar de TCP para una videollamada o streaming en directo?

En tiempo real, la velocidad y la inmediatez importan más que la perfección absoluta. Si se utilizara TCP y un paquete sufriera retraso, TCP detendría la recepción de los siguientes paquetes hasta que ese llegue y se retransmita, provocando cortes y retardos molestos (lag). Con UDP, si un paquete se pierde, la aplicación simplemente lo ignora y sigue reproduciendo el vídeo actual de forma fluida.


5. ¿Qué ocurre si un paquete UDP llega desordenado al equipo de destino?

UDP no tiene mecanismos para reordenar los datagramas. Si los paquetes llegan en un orden distinto al que fueron emitidos, la capa de transporte de UDP los entregará a la aplicación tal y como van llegando. Será la propia aplicación superior (o el usuario) la que deba gestionar ese desorden si lo considera necesario.