Qué es UDP, cómo funciona y cuándo se usa

Autor: Publicado

En breve: UDP es un protocolo de red que envía pequeñas cantidades de datos sin establecer previamente una conexión. Por sí solo, no confirma su recepción, no retransmite los paquetes perdidos ni garantiza el orden de entrega. Resulta útil cuando disponer de datos actualizados y reducir la latencia importa más que recuperar cada fragmento perdido, por ejemplo, en llamadas de voz y juegos online.

¿Cómo funciona UDP y qué es un datagrama?

UDP, siglas de User Datagram Protocol, es un protocolo de la capa de transporte: define cómo se transmiten los datos entre aplicaciones a través de la red. Funciona sobre IP, el protocolo responsable del direccionamiento y del envío de paquetes entre dispositivos. IP permite llegar al host adecuado, mientras que UDP utiliza números de puerto para dirigir los datos al servicio o la aplicación correspondiente.

Cada mensaje UDP es un datagrama. Contiene los datos de la aplicación y una cabecera con información como el puerto de origen, el puerto de destino y la longitud del mensaje. La cabecera UDP ocupa 8 bytes; para transmitir el mensaje por la red también hacen falta las cabeceras de otras capas, incluida IP.

El emisor envía el datagrama a una dirección IP y un número de puerto determinados. UDP no realiza previamente una negociación de conexión con el receptor, conocida como handshake. Sin embargo, esto no impide que una aplicación que utiliza UDP tenga inicio de sesión, sesiones o su propia fase de negociación de la comunicación.

UDP conserva los límites de los mensajes: dos datagramas enviados no se convierten en un único flujo de bytes. No obstante, el receptor puede recibirlos en orden inverso, recibir un duplicado o no recibir ninguno.

¿Qué no garantiza UDP?

Que una aplicación envíe un datagrama correctamente no demuestra que el receptor lo haya recibido. Un paquete puede perderse, entre otras razones, por congestión de la red, por la actuación de un cortafuegos o porque no hay ningún programa escuchando en ese puerto. UDP, por sí solo, no resuelve esa situación.

El protocolo tampoco proporciona control de flujo, es decir, no ajusta el ritmo de envío a la capacidad del receptor, ni controla la congestión de la red. Si una aplicación necesita estas funciones, debe recurrir a mecanismos adicionales. Enviar cada vez más datos sin reaccionar a las pérdidas puede empeorar la comunicación en lugar de acelerarla.

UDP no cifra los datos ni verifica la identidad del emisor. La confidencialidad y la autenticación pueden proporcionarlas protocolos que funcionan sobre él, como DTLS o QUIC. Por tanto, la ausencia de estas funciones en UDP no significa que todos los servicios que lo utilizan transmitan información sin protección.

UDP frente a TCP: ¿cuándo importa la diferencia?

TCP, siglas de Transmission Control Protocol, es otro protocolo de transporte de uso habitual. Establece una conexión y ofrece a la aplicación un flujo ordenado de bytes, retransmitiendo automáticamente los datos perdidos. Si la comunicación no puede continuar, puede terminar con un error: TCP tampoco garantiza el éxito de toda una operación de negocio, como el registro de un pedido.

CaracterísticaUDPTCP
Establecimiento de conexiónNo lo realiza el propio protocoloObligatorio
Forma de transmitir los datosDatagramas independientesFlujo de bytes
Retransmisión de datos perdidosSin retransmisión automáticaIntegrada
Orden de los datosNo garantizadoSe conserva en el flujo
Control de congestiónNo incluido en UDPIntegrado

Afirmar que «UDP es más rápido que TCP» es una simplificación. UDP tiene una cabecera más pequeña y no espera confirmaciones, pero la latencia real también depende de la red y del diseño de la aplicación. Cuando el programa debe confirmar la recepción y retransmitir cada mensaje por su cuenta, parte de esa ventaja puede desaparecer.

Imagina un juego en el que el cliente recibe periódicamente la posición de un adversario. Si se pierde una actualización, una más reciente puede ser más útil que retransmitir la anterior. En cambio, la información sobre la compra de un objeto requiere confirmación y protección para evitar que la operación se ejecute dos veces; UDP, por sí solo, no proporciona esas garantías.

¿Dónde se utiliza UDP en la práctica?

UDP se utiliza en muchos servicios, aunque los detalles dependen del programa y de las condiciones de la red:

HTTP/3 demuestra que «funciona sobre UDP» no significa que «pueda perder contenido de una página sin consecuencias». Una capa situada por encima de UDP puede proporcionar las garantías que este no ofrece.

¿Cómo comprobar si una aplicación necesita UDP?

Si configuras un router o un cortafuegos, consulta en la documentación de la aplicación el protocolo, el puerto y la dirección del tráfico necesarios. Un puerto TCP y un puerto UDP con el mismo número son puntos de comunicación independientes: permitir TCP no desbloquea automáticamente UDP.

No habilites ambos protocolos «por si acaso». Una conexión saliente normal no suele requerir una redirección manual de puertos, mientras que ofrecer acceso a un servidor desde una red doméstica sí puede requerirla. Empieza por determinar si el programa solo se conecta a un servicio o si debe recibir tráfico de internet: de ello depende la configuración adecuada.

Consulta también: ¿Qué es GitLab?

Lee también

Descubre cómo PHP-FPM atiende peticiones PHP, en qué se diferencia de un servidor web y cómo ajustar sus procesos al tráfico y los recursos.
Conoce BIND, el software abierto de servidor DNS: sus funciones, cómo gestiona dominios y cuándo conviene instalarlo por tu cuenta.
Descubre qué son el registro REGON de Polonia y su número, en qué se diferencian de NIP y KRS y cómo verificar los datos de una empresa.