La capa de transporte en Internet : UDP a fondo. Volumen III

Escrito por Sergio De Luz
Redes
2

Ha llegado el turno de explicaros el protocolo UDP, uno de los protocolos principales de internet.

Lo primero que debemos saber es que UDP hace lo mínimo que un protocolo de transporte debe hacer. A parte de la multiplexación y demultiplexación obligatoria y de un mecanismo de comprobación de errores, no añade ninguna característica más a IP.

Si en nuestra aplicación decidimos usar UDP, es la aplicación casi directamente la que se comunica con IP. Puedes ver un programa cliente/servidor en Java hecho por nosotros aquí: Taller de Prácticas : Cliente y Servidor UDP en Java

UDP coge los mensajes del proceso y asocia los campos a números de puerto origen y destino, para poder hacer la multiplexación y demultiplexación como ya hablamos anteriormente. La capa de red encapsula el segmento en la capa de transporte en un datagrama IP y luego hace lo máximo posible para entregar el segmento al host receptor (pero no garantiza su entrega).

Con UDP no tenemos una fase de establecimiento de la conexión, como podéis ver en el programa de Java de antes, por esto decimos que UDP es un protocolo sin conexión.

DNS trabaja en UDP por su rapidez de no tener que hacer ningún proceso de conexión.

Tenemos varias razones para usar UDP en lugar de TCP, te las explicamos a continuación:

Sin establecimiento de la conexión: UDP inicia la transmisión sin llevar a cabo un proceso de conexión, así podemos evitar estos retardos. DNS usa UDP por este motivo (DNS sería mucho más lento si se ejecutara por TCP).

Sin información de estado: TCP mantiene información sobre el estado de la conexión en los sistemas terminales, en este estado podemos encontrar información sobre buffers de recepción y envío, parámetros de control de congestión, números de secuencia y reconocimiento, toda esta información es necesaria para garantizar un servicio fiable de transferencia de datos y control de congestión (TCP). UDP no mantiene información de estado y no controla estos datos. Por esta razón, un servidor puede soportar más clientes activos cuando la aplicación se ejecuta mediante UDP.

Cabecera más pequeña: en UDP tendremos poca sobrecarga debido a la cabeceras, ya que TCP contienen 20bytes de cabecera y UDP tan sólo 8bytes.

Control sobre qué datos se envían y cuando: con UDP, hace que sea muy rápido pasar todos los paquetes a UDP para su posterior empaquetamiento, a continuación, entrega el segmento a la capa de red de forma inmediata. Por el contrario TCP dispone del mecanismo de control de congestión que regula el flujo del emisor TCP. También reenviará todos los paquetes que no hayan llegado o que no lo hayan hecho correctamente. Por esta razón, las aplicaciones en tiempo real, suelen requerir una velocidad velocidad mínima, pero no permiten un retardo excesivo, pero sin embargo pueden tolerar una pérdida de datos, por este motivo se utiliza normalmente UDP.

Hoy en día, las webs de vídeos como Youtube o Vimeo, utilizan TCP ya que algunas organizaciones bloquean el tráfico UDP por cuestiones de seguridad. También se usa TCP para no colapsar el servidor ya que TCP provee control de congestión.

Próximamente TCP a Fondo