User Datagram Protocol (UDP) is a connectionless transport layer protocol defined in RFC 768 that enables fast, low-overhead delivery of independent messages between applications without requiring connection setup or reliability guarantees at the transport layer. DNS and DHCP depend on UDP for efficient operation—DNS uses UDP port 53 for typical queries and responses to minimize latency and server state, while DHCP requires UDP to allow clients without addresses to broadcast configuration requests. Operationally, UDP failures manifest quietly as timeouts and retries rather than explicit errors, and network issues such as packet loss, firewall blocking, or fragmentation often appear only as slow name resolution or intermittent lookup failures, requiring operators to monitor interface counters and logs for visibility.
Cómo funciona el UDP
UDP envuelve los datos de la aplicación en un pequeño datagrama y se los entrega a IP. No hay establecimiento de conexión, ni acuse de recibo, ni retransmisión en la capa de transporte.
- La aplicación crea un mensaje: la aplicación, como un resolutor DNS, crea una solicitud completa que cabe en un datagrama.
- UDP añade una cabecera: UDP antepone una cabecera de 8 bytes que contiene el puerto de origen, el puerto de destino, la longitud y la suma de comprobación.
- IP entrega el datagrama: el datagrama viaja como un paquete IP. Cada datagrama se enruta de forma independiente y puede perderse, duplicarse o reordenarse.
- El receptor pasa los datos a la aplicación: el host receptor utiliza el puerto de destino, por ejemplo el 53 para el DNS, para entregar la carga útil al servicio adecuado.
- La aplicación gestiona la pérdida: si no llega ninguna respuesta, la aplicación decide qué hacer, normalmente un tiempo de espera seguido de un nuevo intento, posiblemente a otro servidor.
El UDP no ofrece control de congestión, ordenación ni entrega garantizada. El DNS recurre al TCP cuando una respuesta se trunca o cuando una transferencia, como una transferencia de zona, requiere una entrega fiable. El DHCP utiliza el UDP porque un cliente sin dirección no puede mantener una conexión TCP.
Problemas habituales con UDP
Una regla que solo permite el puerto TCP 53 permite que las transferencias de zona funcionen, mientras que las búsquedas normales agotan el tiempo de espera. Los clientes experimentan fallos intermitentes en la resolución y las capturas de paquetes muestran que las consultas se envían sin obtener respuesta.
Las respuestas que superan el tamaño de la carga útil de UDP que anuncia el cliente se truncan y el cliente debe volver a intentarlo a través de TCP. Si el puerto 53 de TCP está bloqueado, las respuestas de gran tamaño, como los registros firmados con DNSSEC, fallan, mientras que las de menor tamaño se procesan correctamente.
Los datagramas UDP de gran tamaño que superan la MTU de la ruta se fragmentan, y muchos cortafuegos y dispositivos intermedios descartan los fragmentos. El síntoma es que solo algunas consultas agotan el tiempo de espera, a menudo aquellas con respuestas de gran tamaño.
Los cortafuegos y los dispositivos NAT realizan un seguimiento de los flujos UDP con temporizadores de inactividad cortos. Una respuesta lenta del servidor puede llegar después de que caduque la asignación y ser descartada, por lo que el cliente detecta un tiempo de espera agotado.
UDP no proporciona información sobre la entrega, por lo que la congestión o una cola de interfaz llena solo se manifiestan a través de los reintentos de la aplicación y la latencia. Los ingenieros deben comprobar los contadores de paquetes perdidos de la interfaz y los registros del servidor, en lugar de esperar que se produzcan errores de transporte.