UDP: qué es, protocolo sin conexión y cómo funciona

Autor: IT Sectr Publicado: 2026-03-06 Tiempo de lectura: 8 min

UDP (User Datagram Protocol) es un protocolo de transmisión de datos sin conexión que funciona sobre IP y proporciona una latencia mínima al enviar datagramas. A diferencia de TCP, UDP no garantiza la entrega, el orden de los paquetes ni la protección contra la duplicación. Según IETF RFC 768 (2024), UDP maneja más del 40% del tráfico mundial de Internet debido a las videollamadas, el streaming y las consultas DNS.

Puntos clave

  • UDP es un protocolo sin conexión que envía datagramas sin confirmación de entrega
  • Latencia mínima se logra gracias a la ausencia de handshake, control de congestión y retransmisiones
  • Se usa en videollamadas, juegos en línea, DNS, DHCP y streaming
  • El datagrama UDP tiene un encabezado de solo 8 bytes frente a los 20–60 bytes de TCP
  • La pérdida de paquetes se compensa a nivel de aplicación mediante FEC, retransmisión o redundancia de datos

¿Qué es UDP?

UDP (User Datagram Protocol) es uno de los protocolos clave de la capa de transporte del modelo TCP/IP, diseñado por David Reed en 1980. Proporciona un mecanismo mínimo de transmisión de datos: la aplicación envía un datagrama y el protocolo no rastrea si llegó al destinatario.

El encabezado UDP consta de solo cuatro campos: puerto de origen, puerto de destino, longitud y suma de verificación. Cada campo ocupa 2 bytes, por lo que el tamaño total del encabezado es de 8 bytes. En comparación, un encabezado TCP sin opciones ocupa 20 bytes, y con opciones — hasta 60 bytes.

El protocolo no admite fragmentación en su propio nivel — si un datagrama supera la MTU (Maximum Transmission Unit), se fragmenta a nivel IP. Si se pierde un fragmento, se descarta todo el datagrama, ya que UDP no puede solicitar la retransmisión de fragmentos individuales. Los desarrolladores deben controlar el tamaño del datagrama — para redes móviles, la MTU suele ser de 1400 bytes, por lo que el tamaño máximo no debe superar este valor.

Cómo funciona UDP

Una aplicación que usa UDP crea un socket con el tipo SOCK_DGRAM, especifica el puerto y la dirección IP de destino y envía un datagrama. El protocolo agrega un encabezado mínimo y pasa el paquete a la capa IP. El receptor escucha en su puerto y extrae los datos de los datagramas entrantes.

UDP no realiza control de congestión — la aplicación puede enviar datagramas a la velocidad máxima que admita la red. Esto puede provocar congestión del canal, pero en escenarios en tiempo real, tal agresividad está justificada: para una videollamada, es más importante un flujo de datos con posibles pérdidas que detener la transmisión.

python
import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(b'Hello, UDP!', ('192.168.1.100', 8888))
sock.close()

En este ejemplo, se crea un socket SOCK_DGRAM para UDP. El método sendto envía un datagrama sin establecer conexión — solo necesita conocer la IP y el puerto del destinatario. El método recvfrom en el lado del servidor devuelve tanto los datos como la dirección del remitente para la respuesta. Los sockets UDP en plataformas móviles se configuran de manera similar, pero requieren permisos adicionales: en iOS, se debe agregar NSAppTransportSecurity para conexiones UDP no cifradas, y en Android, el permiso INTERNET en el manifiesto.

Ventajas y desventajas de UDP

Elegir UDP está justificado en escenarios donde la velocidad es más crítica que la confiabilidad. El protocolo no pierde tiempo en el establecimiento de conexión, confirmaciones y retransmisiones — esto proporciona una latencia mínima, pero requiere que el desarrollador maneje las pérdidas de forma independiente.

VentajasDesventajas
Baja latencia — sin handshakeSin garantía de entrega
Encabezado más pequeño — 8 bytesSin control de congestión
Soporte de broadcast y multicastPosibles duplicados de paquetes
Independencia de datagramas — sin colasTamaño de datagrama limitado por MTU

En aplicaciones móviles, UDP se usa a través de frameworks como WebRTC, que agregan control de pérdidas, bitrate adaptativo y jitter buffer sobre UDP. Esto proporciona los beneficios de velocidad sin los inconvenientes del protocolo básico.

Otro aspecto importante de UDP es la ausencia de control de congestión. En TCP, los algoritmos Slow Start y Congestion Avoidance reducen la velocidad de transmisión ante la pérdida de paquetes para evitar la sobrecarga de la red. UDP carece de tales mecanismos, por lo que los desarrolladores deben implementar sus propias estrategias de control de velocidad — por ejemplo, bitrate adaptativo en videollamadas o rate limiting en servidores de juegos para evitar la congestión excesiva de la red.

Dónde se usa UDP

UDP es indispensable en escenarios donde la tolerancia a la latencia es más importante que la tolerancia a la pérdida de paquetes. Exploremos las principales áreas de aplicación del protocolo en el desarrollo móvil y web.

Streaming de audio y video

Los protocolos RTP y RTSP, que funcionan sobre UDP, se utilizan para transmitir flujos de audio y video en tiempo real. WebRTC — el estándar para videollamadas en navegadores y aplicaciones móviles — usa UDP como transporte principal para datos multimedia y TCP para la señalización. Perder un paquete en un video de 30 fps es imperceptible para el usuario, a diferencia de la demora de una retransmisión, que causa un congelamiento notable de la imagen.

Juegos en línea

Los shooters multijugador y los MOBA requieren una latencia inferior a 50 ms para una sincronización adecuada. UDP transmite las posiciones de los jugadores, disparos y eventos más rápido que TCP, y la pérdida de paquetes simplemente se ignora — la siguiente actualización llegará en 16–33 ms. Los motores de juegos populares, incluidos Unity y Unreal Engine, usan UDP a través de sus propias capas de transporte con confiabilidad adicional para eventos críticos mediante confirmaciones a nivel de aplicación.

DNS y DHCP

Las consultas DNS usan UDP en el puerto 53 porque cada consulta es un único datagrama pequeño (normalmente hasta 512 bytes). Si no llega ninguna respuesta, el cliente simplemente reintenta la consulta después de un tiempo de espera, lo que es más rápido que establecer una conexión TCP con su handshake de tres vías. DHCP también funciona sobre UDP, ya que el cliente aún no tiene una dirección IP y no puede establecer una conexión TCP, mientras que los paquetes UDP de difusión permiten encontrar un servidor DHCP en la red local.

Comparación UDP vs TCP

La elección entre UDP y TCP es un equilibrio entre velocidad y confiabilidad. Cada protocolo es óptimo para su clase de tareas, y comprender sus diferencias ayuda a tomar las decisiones arquitectónicas correctas al diseñar la comunicación en red en aplicaciones móviles.

CriterioUDPTCP
Establecimiento de conexiónNo requeridoHandshake de tres vías
Encabezado8 bytes20–60 bytes
Garantía de entregaNoSí, con confirmación
OrdenamientoNo
Control de congestiónNoSí (AIMD, Slow Start)
Casos de usoStreaming, juegos, DNSWeb, email, archivos, API

Los proyectos móviles a menudo usan un enfoque híbrido: TCP para solicitudes confiables (autenticación, carga de datos) y UDP para flujos multimedia. QUIC — un protocolo moderno de Google que funciona sobre UDP — combina la velocidad de UDP con la confiabilidad de TCP y ya se usa en HTTP/3.

Ejemplo de código UDP

Veamos un servidor UDP simple en Python que recibe mensajes de clientes y envía una respuesta. El servidor escucha en el puerto 8888 y procesa los datagramas entrantes en un bucle infinito.

python
import socket

server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server.bind(('0.0.0.0', 8888))
print('Servidor UDP iniciado en el puerto 8888')

while True:
    data, addr = server.recvfrom(1024)
    print(f'Recibido de {addr}: {data.decode()}')
    server.sendto(b'OK', addr)

El servidor crea un socket UDP, se vincula al puerto 8888 y espera datagramas entrantes. recvfrom devuelve los datos y la dirección del cliente, lo que permite responder a través de sendto. A diferencia de TCP, el servidor no mantiene el estado de la conexión — cada datagrama se procesa de forma independiente. Esto hace que los servidores UDP sean escalables: un solo servidor puede manejar millones de clientes sin asignar memoria para cada conexión individual, lo cual es importante para servidores DNS y sistemas de emparejamiento de juegos.

En el desarrollo móvil, UDP se usa a menudo a través de bibliotecas de alto nivel. Por ejemplo, CocoaAsyncSocket para iOS proporciona sockets UDP con delegados y GCD para el manejo asíncrono de eventos. En Android, la clase DatagramSocket es parte de la biblioteca estándar java.net y no requiere dependencias adicionales. Para Flutter, existe el paquete udp, que proporciona una interfaz simple para enviar y recibir datagramas sin configurar sockets nativos.

Es importante tener en cuenta que muchas redes móviles y firewalls corporativos bloquean el tráfico UDP, especialmente en puertos superiores a 1024. Si su aplicación usa UDP, debe proporcionar un respaldo a TCP o verificar la disponibilidad del protocolo a través de servidores STUN, como lo hace WebRTC. En iOS, el framework del sistema Network.framework con NWConnection admite tanto TCP como UDP, eligiendo automáticamente el protocolo óptimo según la disponibilidad. Para aplicaciones en tiempo real, también se recomienda implementar bitrate adaptativo, que reduce la calidad del flujo ante la pérdida de paquetes, garantizando una reproducción continua incluso en canales inestables con altas tasas de error.

Preguntas frecuentes

¿En qué se diferencia UDP de TCP?

UDP no establece una conexión ni garantiza la entrega de paquetes, lo que lo hace más rápido que TCP. El encabezado UDP es de 8 bytes frente a los 20–60 bytes de TCP. UDP es adecuado para streaming y juegos, mientras que TCP es para solicitudes web y transferencias de archivos.

¿Qué es un datagrama en UDP?

Un datagrama es un paquete de datos independiente con un encabezado UDP (puerto de origen, puerto de destino, longitud, suma de verificación). Cada datagrama se procesa de forma independiente, sin relación con los anteriores. El tamaño del datagrama está limitado por la MTU de la red y, según la especificación, hasta 65507 bytes.

¿Cómo se garantiza la confiabilidad al usar UDP?

UDP no proporciona confiabilidad a nivel de transporte — la implementa la aplicación. Los desarrolladores agregan números de secuencia, sumas de verificación, solicitudes de retransmisión y corrección de errores. FEC (Forward Error Correction) permite recuperar paquetes perdidos sin retransmisión.

¿Cuándo no se debe usar UDP?

UDP no es adecuado para escenarios donde la integridad de los datos es crítica: transferencias de archivos, transacciones bancarias, API REST. En estos casos, TCP garantiza que cada byte llegue en el orden correcto. Tampoco se recomienda UDP en canales inestables con altas tasas de pérdida.

¿Qué es QUIC y cómo se relaciona con UDP?

QUIC es un protocolo de transporte que funciona sobre UDP, desarrollado por Google y estandarizado por IETF como RFC 9000. Combina la velocidad de UDP con la confiabilidad de TCP, admite multiplexación sin bloqueo de cabeza de línea y tiene cifrado incorporado. HTTP/3 usa QUIC como su capa de transporte.

Resumen

  • UDP es un protocolo sin conexión con latencia mínima y un encabezado de 8 bytes
  • No garantiza la entrega, el orden de los paquetes ni la protección contra duplicación
  • Se usa en videollamadas, juegos en línea, DNS, DHCP y streaming
  • Elegir UDP o TCP depende del equilibrio entre velocidad y confiabilidad para cada escenario
  • La pérdida de paquetes se compensa a nivel de aplicación mediante FEC, retransmisión o redundancia
  • QUIC sobre UDP combina la velocidad de UDP con la confiabilidad de TCP en el protocolo HTTP/3
  • Los desarrolladores deben controlar el tamaño del datagrama y prever un respaldo a TCP cuando UDP esté bloqueado o filtrado en la red

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también