El Protocolo de Datagramas de Usuario (UDP) fue introducido en 1980 y es uno de los protocolos de red más antiguos que existen. Es un simple protocolo de capa de transporte OSI para aplicaciones de red cliente/servidor, se basa en el Protocolo de Internet (IP) y es la principal alternativa a TCP.
Una breve explicación de UDP podría explicar que es un protocolo poco fiable en comparación con TCP. Si bien esto es cierto, ya que no hay ninguna comprobación o corrección de errores en las transmisiones de datos, también es cierto que existen aplicaciones para este protocolo que TCP no puede igualar.
UDP (a veces conocido como UDP/IP) se utiliza a menudo en aplicaciones de videoconferencia o juegos de ordenador que se hacen específicamente para el rendimiento en tiempo real. Para lograr un mayor rendimiento, el protocolo permite que los paquetes individuales se eliminen (sin reintentos) y que los paquetes UDP se reciban en un orden diferente al que se enviaron, según lo dictado por la aplicación.
Este método de transmisión, en comparación con TCP, permite una menor sobrecarga de datos y retrasos. Dado que los paquetes se envían sin importar qué, y no hay ningún tipo de comprobación de errores, el resultado es que se utiliza menos ancho de banda.
¿Es UDP mejor que TCP?
La respuesta a esta pregunta depende del contexto, ya que UDP permite un mejor rendimiento, pero posiblemente peor calidad, que TCP.
Un buen ejemplo de cuándo se puede preferir UDP sobre TCP es cuando se trata de una aplicación que funciona mejor con menos latencia, como juegos en línea, videoconferencias o transmisiones de voz. Los paquetes pueden perderse, pero con menos retrasos generales para disminuir la calidad, no se percibe realmente mucha pérdida de calidad.
Con los juegos en línea, el tráfico UDP permite que el juego continúe incluso si la conexión se pierde momentáneamente, o si algunos de los paquetes se caen por cualquier razón. Si se corrigieran los errores, la conexión sufriría una pérdida de tiempo, ya que los paquetes están intentando volver a entrar en el punto en el que quedaron para compensar los errores, pero eso es innecesario en los videojuegos en vivo. Lo mismo ocurre con el streaming en directo.
Sin embargo, la razón por la que UDP no es tan bueno cuando se trata de transferencias de archivos es que usted necesita el archivo completo para poder utilizarlo correctamente. Sin embargo, no se necesitan todos y cada uno de los paquetes de un videojuego o de un videojuego para poder disfrutarlo.
Tanto TCP como UDP en la capa 4 del modelo OSI y trabajan con servicios como TFTP, RTSP y DNS.
Datagramas UDP
El tráfico UDP funciona a través de lo que se denomina datagramas, con cada datagrama consistente en una sola unidad de mensaje. Los detalles del encabezado se almacenan en los primeros ocho bytes, pero el resto es lo que contiene el mensaje real.
Cada parte de un encabezado de datagrama UDP, listado aquí, es de dos bytes:
- Número de puerto de origen
- Número de puerto de destino
- Tamaño del datagrama
- Suma de comprobación
Los números de puerto UDP permiten a diferentes aplicaciones mantener sus propios canales de datos, similares a TCP. Las cabeceras de los puertos UDP tienen una longitud de dos bytes; por lo tanto, los números de puerto UDP válidos van de 0 a 65535.
El tamaño del datagrama UDP es un recuento del número total de bytes contenidos en la cabecera y en las secciones de datos. Dado que la longitud del encabezado es un tamaño fijo, este campo rastrea efectivamente la longitud de la porción de datos de tamaño variable (a veces llamada carga útil).
El tamaño de los datagramas varía dependiendo del entorno operativo, pero tienen un máximo de 65535 bytes.
Las sumas de comprobación UDP protegen los datos de los mensajes contra la manipulación. El valor de la suma de comprobación representa una codificación de los datos del datagrama calculados primero por el emisor y después por el receptor. Si un datagrama individual es alterado o corrompido durante la transmisión, el protocolo UDP detecta un desajuste en el cálculo de la suma de comprobación.
En UDP, la suma de comprobación es opcional, a diferencia de TCP, donde las sumas de comprobación son obligatorias.