Figura: UDP(User Datagram Protocol)
UDP es un protocolo estándar, y su número STD es 6. El RFC 768 - "User Datagram Protocol" describe UDP. Su status es recomendado, pero en la práctica cualquier implementación de TCP/IP que no se use exclusivamente para el encaminamiento incluye UDP.
Para IP, UDP es básicamente un interfaz de aplicación. No añade fiabilidad, control de flujo
o recuperación de errores a IP. Simplemente sirve como "multiplexor/ demultiplexor" para enviar y recibir datagramas, usando los puertos para dirigir los datagramas tal como se muestra en Figura - UDP, un demultiplexor basado en puertos. Para un estudio más detallado de los puertos, remitirse a Puertos y zócalos.
Figura: UDP, un demultiplexor basado en puertos
UDP suministra un mecanismo para que una aplicación envíe un datagrama a otra. Se considera que la capa de UDP es extremadamente delgada y en consecuencia tiene poco "overhead", pero requiere que la aplicación se responsabilice de la recuperación de errores y todo lo que ello conlleva.
El concepto de puerto ha sido analizado anteriormente en Puertos y zócalos.
Las aplicaciones que envían datagramas a un host necesitan identificar un objetivo más específico que la dirección IP, ya que los datagramas suelen dirigirse a procesos concretos y no a todo el sistema. UDP permite hacer esto al hacer uso de los puertos.
Un puerto es un número de 16 bits que identifica en un host que proceso está asociado a un datagrama. Hay dos tipos de puerto:
Nota: TCP también usa puertos con los mismos valores. Estos puertos son totalmente independientes de los de UDP. Normalmente, un servidor usará TCP o UDP, aunque hay excepciones. Por ejemplo, el DNS(ver DNS("Domain Name System")) usa tanto el puerto 53 de UDP como el 53 de TCP.
Cada datagrama UDP se envía en un sólo datagrama de IP. Aunque el datagrama IP se fragmente durante la transmisión, la implementación de IP que lo reciba lo reensamblará antes de pasárselo a la capa de UDP. Todas las implementaciones de IP deben aceptar datagramas de 576 bytes, lo que significa que si se supone un tamaño máximo de
60 bytes para la cabecera IP, queda un tamaño de 516 bytes para el datagrama UDP, aceptado por todas las implementaciones. Muchas implementaciones aceptan datagramas más grandes, pero no es algo que esté garantizado. El datagrama UDP tiene una cabecera de 16 bytes que se describe en Figura - Formato del datagrama UDP.
Figura: Formato del datagrama UDP
Donde:
La API que ofrecida UDP se describe en el en RFC 768. Proporciona:
La forma en que se implementa esto queda a elección del cada distribuidor.
Hay que ser consciente de que IP y UDP no proporcionan una entrega garantizada, control de flujo ni recuperación de errores, así que estos deberán ser implementados por la aplicación.
Aplicaciones estándar que usan UDP son: