Escolar Documentos
Profissional Documentos
Cultura Documentos
El protocolo UDP
El grupo de protocolos de Internet también maneja un protocolo de transporte sin
conexiones, el UDP (User Data Protocol, protocolo de datos de usuario). El UDP ofrece a las
aplicaciones un mecanismo para enviar datagramas IP en bruto encapsulados sin tener que
establecer una conexión.
Muchas aplicaciones cliente-servidor que tienen una solicitud y una respuesta usan el UDP en
lugar de tomarse la molestia de establecer y luego liberar una conexión. El UDP se describe
en el RFC 768. Un segmento UDP consiste en una cabecera de 8 bytes seguida de los datos.
La cabecera se muestra a continuación. Los dos puertos sirven para lo mismo que en el TCP:
para identificar los puntos terminales de las máquinas origen y destino. El campo de longitud
UDP incluye la cabecera de 8 bytes y los datos. La suma de comprobación UDP incluye la
misma pseudocabecera de formato, la cabecera UDP, y los datos, rellenados con una
cantidad par de bytes de ser necesario.
UDP no admite numeración de los datagramas, factor que, sumado a que tampoco utiliza
señales de confirmación de entrega, hace que la garantía de que un paquete llegue a su
destino sea mucho menor que si se usa TCP. Esto también origina que los datagramas
pueden llegar duplicados y/o desordenados a su destino. Por estos motivos el control de
envío de datagramas, si existe, debe ser implementado por las aplicaciones que usan UDP
como medio de transporte de datos, al igual que el reeensamble de los mensajes entrantes.
Es por ello un protocolo del tipo best-effort (máximo esfuerzo), porque hace lo que puede
para transmitir los datagramas hacia la aplicación, pero no puede garantizar que la aplicación
los reciba.
Cuando una aplicación envía datos a través de UDP, éstos llegan al otro extremo como una
unidad. Por ejemplo, si una aplicación escribe 5 veces en el puerto UDP, la aplicación al otro
extremo hará 5 lecturas del puerto UDP. Además, el tamaño de cada escritura será igual que
el tamaño de las lecturas.
Descripción técnica[editar]
User Datagram Protocol (UDP) es un protocolo mínimo de nivel de transporte orientado a
mensajes documentado en el RFC 768 de la IETF.
En la familia de protocolos de Internet UDP proporciona una sencilla interfaz entre la capa
de red y la capa de aplicación. UDP no otorga garantías para la entrega de sus mensajes
(por lo que realmente no se debería encontrar en la capa 4) y el origen UDP no retiene
estados de los mensajes UDP que han sido enviados a la red. UDP sólo
añade multiplexado de aplicación y suma de verificación de la cabecera y la carga útil.
Cualquier tipo de garantías para la transmisión de la información deben ser implementadas
en capas superiores.
Bits 0 - 15 16 - 31
64 Datos
La cabecera UDP consta de 4 campos de los cuales 2 son opcionales (con fondo rojo en la
tabla). Los campos de los puertos origen y destino son campos de 16 bits que identifican el
proceso de emisión y recepción. Ya que UDP carece de un servidor de estado y el origen
UDP no solicita respuestas, el puerto origen es opcional. En caso de no ser utilizado, el
puerto origen debe ser puesto a cero. A los campos del puerto destino le sigue un campo
obligatorio que indica el tamaño en bytes del datagrama UDP incluidos los datos. El valor
mínimo es de 8 bytes. El campo de la cabecera restante es una suma de comprobación de
16 bits que abarca una pseudo-cabecera IP (con las IP origen y destino, el protocolo y la
longitud del paquete UDP), la cabecera UDP, los datos y 0's hasta completar un múltiplo
de 16. El checksum también es opcional en IPv4, aunque generalmente se utiliza en la
práctica (en IPv6 su uso es obligatorio). A continuación se muestra los campos para el
cálculo del checksum en IPv4, marcada en rojo la pseudo-cabecera IP.
Bits 0–7 8 – 15 16 – 23 24 – 31
0 Dirección Origen
32 Dirección Destino
160 Datos
El protocolo UDP se utiliza por ejemplo cuando se necesita transmitir voz o vídeo y resulta
más importante transmitir con velocidad que garantizar el hecho de que lleguen
absolutamente todos los bytes.
Puertos[editar]
Véase también: Anexo:Números de puertos de red
UDP utiliza puertos para permitir la comunicación entre aplicaciones. El campo de puerto
tiene una longitud de 16 bits, por lo que el rango de valores válidos va de 0 a 65.535. El
puerto 0 está reservado, pero es un valor permitido como puerto origen si el proceso
emisor no espera recibir mensajes como respuesta.
Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo
Unix enlazar con uno de estos puertos requiere acceso como superusuario.
Los puertos 1024 a 49.151 son puertos registrados.
Los puertos 49.152 a 65.535 son puertos dinámicos y son utilizados como puertos
temporales, sobre todo por los clientes al comunicarse con los servidores.
Uso en aplicaciones[editar]
La mayoría de las aplicaciones claves de Internet utilizan el protocolo UDP, incluyendo: el
Sistema de Nombres de Dominio , donde las consultas deben ser rápidas y solo contaran
de una sola solicitud, luego de un paquete único de respuesta, el Protocolo de
Administración de Red, el Protocolo de Información de Enrutamiento (RIP) y el Protocolo
de Configuración dinámica de host.
Principales características[editar]
Las características principales de este protocolo son:
1. Trabaja sin conexión, es decir que no emplea ninguna sincronización entre el
origen y el destino.
2. Trabaja con paquetes o datagramas enteros, no con bytes individuales como TCP.
Una aplicación que emplea el protocolo UDP intercambia información en forma de
bloques de bytes, de forma que por cada bloque de bytes enviado de la capa de
aplicación a la capa de transporte, se envía un paquete UDP.
3. No es fiable. No emplea control del flujo ni ordena los paquetes.
4. Su gran ventaja es que provoca poca carga adicional en la red ya que es sencillo y
emplea cabeceras muy simples.
Longitud: este campo especifica la longitud total del segmento, con el encabezado
incluido. Sin embargo, el encabezado tiene una longitud de 4 x 16 bits (que es 8 x 8 bits),
por lo tanto la longitud del campo es necesariamente superior o igual a 8 bytes.
Algunas aplicaciones, tales como los juegos en línea o VoIP, pueden tolerar la
pérdida de algunos datos. Si estas aplicaciones utilizaran TCP,
experimentarían largas demoras, ya que TCP detecta la pérdida de datos y los
retransmite. Estas demoras serían más perjudiciales para la aplicación que las
pequeñas pérdidas de datos. Algunas aplicaciones, como DNS, simplemente
vuelven a intentar la solicitud si no reciben una respuesta y, por lo tanto, no
necesitan el TCP para garantizar la entrega del mensaje.
de la cabecera UDP,
de los datos del usuario
y de la conocida como pseudocabecera (que contiene información sobre la
cabecera IP).
La suma de comprobación es opcional en IPv4, pero la mayoría de las aplicaciones la
utilizan por defecto. Si no se realiza la suma, se le da a este campo el valor cero. Si se
utiliza UDP con IPv6, la suma de comprobación es obligatoria.
¿Por qué debe definirse un protocolo de estas características? Es necesario recordar que por debajo
del UDP está utilizando el protocolo IP, que también es un protocolo no orientado a la conexión. Por
lo tanto, se pensó en definir un protocolo del nivel de transporte que permitiera que la aplicación
explotara este tipo de características y que fuera tan simple y sencillo como fuera posible.
Puertos
bien-conocidos
efímeros
Nota: TCP también usa números de puerto con los mismos valores.
Estos puertos son bastante independientes. Normalmente, un servidor
usará TCP o UDP, pero hay excepciones. Por ejemplo, los servidores
de Nombres de Dominio (ver Sistema de Nombre de Dominio (DNS))
usan ambos, puerto UDP 53 y puerto TCP 53.
donde:
puerto de origen
puerto destino
longitud
2.1. Características
Datagramas UDP
La PDU del protocolo UDP recibe el nombre de datagrama.
Características generales
Cada datagrama se envía de forma independiente del resto.
UDP no ofrece ningún mecanismo que permita garantizar al remitente que todos
los datos hayan llegado al destino.
Los datagramas se envían sin que en el datagrama esté identificado su orden, por
lo que no se puede identificar en el destino ni el orden de los datagramas ni si
alguno ha llegado duplicado.
No hay mecanismos que eviten congestiones.
No dispone de ningún mecanismo de fragmentación incluido en el protocolo, sino
que es la propia aplicación la que debe dividir su información en fragmentos de
tamaño adecuado para que sean encapsulados mediante datagramas UDP.
En el encabezado del datagrama se envía una suma de comprobación (checksum)
que permite averiguar en el destino si ha habido errores en la transmisión desde el
origen.
Servicios adicionales
Cualquier otra funcionalidad que se precise deberá implementarla la aplicación que haga
uso del protocolo UDP, ya que el protocolo no lo hace, como por ejemplo la reordenación
de datagramas, identificación de duplicados, solicitud de retransmisión de los datagramas
que no hayan llegado, etc. Sin embargo, si es necesaria una elevada fiabilidad o control
de flujo para evitar congestiones, es más conveniente usar TCP que UDP.