Trabajo de Investigación #3: "UDP - User Datagram Protocol"
Trabajo de Investigación #3: "UDP - User Datagram Protocol"
Trabajo de Investigación #3: "UDP - User Datagram Protocol"
Grupo 2
2015
Introducción1 2
UDP es un protocolo que opera sobre la capa 4 del modelo OSI (capa de transporte). Para
entender el funcionamiento del protocolo UDP es necesario conocer algunas generalidades
de dicha capa.
1 http://deredes.net/protocolos-tcpip/
2 https://www.tlm.unavarra.es/~daniel/docencia/rc_itig/rc_itig04_05/slides/clase14-UDP.pdf
Tanto el protocolo TCP como el protocolo UDP son miembros principales de la familia de
protocolos de internet, junto al protocolo IP.
Fue diseñado por David P. Reed en 1980 y se encuentra especificado en el RFC 768 de la
IETF (Internet Engineering Task Force).
Funcionamiento3 4
Los datos son agrupados en mensajes llamados datagramas (combinación de las palabras
data y telegram).
5 6
Composición del datagrama
3 https://es.wikipedia.org/wiki/User_Datagram_Protocol
4 http://ingeniatic.euitt.upm.es/index.php/tecnologias/item/644-udp-user-datagram-protocol
5 https://es.wikipedia.org/wiki/User_Datagram_Protocol
6 http://ingeniatic.euitt.upm.es/index.php/tecnologias/item/644-udp-user-datagram-protocol
Datos (cantidad variable)
Puertos 7
Como se mencionó antes, 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 usuario común no puede hacer uso de cualquier puerto, existen rangos de puertos
con funciones específicas.
● 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. Por ejemplo
el 53 se utiliza para consultas de nombres DNS.
● Los puertos 1024 a 49.151 son denominados "registrados" y pueden ser usados por
cualquier aplicación. Por ejemplo 3306 se utiliza para bases de datos MySql. Existe una
lista pública en la web del IANA (Internet Assigned Numbers Authority) donde se puede
ver qué protocolo usa cada uno de ellos.
● Los puertos 49.152 a 65.535 son puertos efímeros y son utilizados como puertos
temporales, sobre todo por los clientes al comunicarse con los servidores.
Principales características 8 9
Las características principales de este protocolo son:
● Trabaja sin conexión, es decir que no emplea ninguna sincronización entre el origen y el
destino.
7 http://www.erg.abdn.ac.uk/users/gorry/course/inet-pages/udp.html
8 https://es.wikipedia.org/wiki/User_Datagram_Protocol
9 http://datagramas.wikispaces.com/2.1+User+Datagram+Protocol+%28UDP%29
● Para proveer un servicio de intercambio de datos, utiliza el modo Best-Effort (mejor
esfuerzo, no puede garantizar una calidad de servicio determinada ni puede
garantizar que los datos lleguen a destino).
● 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.
● No es fiable. No emplea control del flujo ni ordena los paquetes.
● Provoca poca carga adicional en la red ya que es sencillo y emplea cabeceras muy
simples.
● Trabaja en conjunto con el protocolo IP, con lo cual un paquete UDP puede ser
fragmentado por dicho protocolo para ser enviado fragmentado en varios paquetes IP si
resulta necesario.
● Puesto que no hay conexión, un paquete UDP admite utilizar como dirección IP de
destino la dirección de broadcast o de multicast de IP. Esto permite enviar un mismo
paquete a varios destinos.
● Es orientado a transacciones, adecuado para protocolos de consulta-respuesta simples,
tales como el DNS (Domain Name System) o NTP (Network Time Protocol).
● Adecuado para modelar otros protocolos tales como en IP tunneling o RPC (Remote
Procedure Call) y NFS (Network File System).
● Es simple, conveniente para bootstrapping u otros fines sin una pila de protocolo
completo, como el DHCP y Trivial File Transfer Protocol.
● Es sin estado, apto para un gran número de clientes, como en aplicaciones de streaming
de medios de comunicación, por ejemplo, IPTV.
● La falta de retrasos de retransmisión lo hace adecuado para aplicaciones en tiempo real
tales como voz sobre IP, juegos online, y muchos protocolos construidos en la parte
superior del Protocolo de transmisión en tiempo real (RTSP).
● Funciona bien en la comunicación unidireccional, apto para información de difusión,
como en muchas clases de descubrimiento de servicios y la información compartida
como el tiempo de emisión o el Protocolo de información de enrutamiento (RIP
● No hay garantías. Un paquete puede no entregarse o entregarse varias veces y no
enterarse.
● Ejemplo
○ La conexión UDP sin estado en condiciones normales minimiza el tráfico de
la red, como el servidor NFS envía al cliente una cookie después de que el
cliente está autorizado a acceder al volumen compartido . Esta cookie es un
valor aleatorio guardado en el lado del servidor y es pasado junto con las
peticiones RPC desde el cliente . El servidor NFS puede ser reiniciado sin
afectar a los clientes y la cookie se mantiene intacta. Sin embargo , debido a
que UDP es sin estado , si el servidor se cae de forma inesperada , los
clientes UDP continúan saturando la red con peticiones para el servidor . Por
esta razón, TCP es el protocolo preferido cuando se conecta a un servidor
NFSv3.
10 http://digital.ni.com/public.nsf/allkb/8833FDF0900DCAE68625797B005ADCD7
11 http://datagramas.wikispaces.com/2.1+User+Datagram+Protocol+%28UDP%29
Se utiliza UDP cuando la confiabilidad no es crítica, pero sí lo es la velocidad de
transferencia, teniendo en cuenta que se pueden perder algunos paquetes. También se
utiliza UDP cuando se requiere enviar un mensaje de broadcast a cualquier computadora
que está escuchando un servidor.
Cuando se requieren enviar pocos datos y los datos se envían con frecuencia, puede no
hacerse necesario realizar una conexión que sobrecargue la transferencia. Lo mismo
sucede cuando se quieren transmitir paquetes entre varias computadoras a un servidor
central, en el cual la generación de la conexión de cada computadora con la central puede
sobrecargar demasiado la transferencia.
La simplicidad de los paquetes UDP reduce la cantidad de información necesaria para
poder ser utilizado, lo cual hace que el protocolo UDP sea la mejor opción en algunas
aplicaciones. Una computadora puede mandar paquetes UDP sin establecer una conexión
con el dispositivo que los va a recibir. La computadora completa los campos de información
en los encabezados en el paquete UDP y envía los datos junto con el encabezado a través
de la capa de red mediante el protocolo IP.
El protocolo UDP también se utiliza, por ejemplo, cuando se necesita transmitir voz o vídeo.
Implementación12
● Network Files System 13: Permite que distintos equipos conectados a una misma
red accedan a ficheros remotos. Se puede utilizar UDP para minimizar el tráfico de la
red con el servidor NFS.
● SCP 14: Comando para copiar ficheros entre ordenadores remotos.
● DNS: El protocolo DNS suele transportar las peticiones y respuestas por puerto
UDP, ya que por su estructura y tener menos niveles de seguridad es mucho más
rápido que otros.
● SNMP15: Protocolo simple de administración de red utiliza este protocolo para enviar
un grupo de mensajes entre los administradores y los agentes sin afectar el
rendimiento de la red.
12 http://www.tutorialspoint.com/data_communication_computer_network/user_datagram_protocol.htm
13 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/ch-
nfs.html
14 http://meli53.blogspot.com.ar/2015/07/comparativa-entre-el-udp-y-tcp.html
15 https://es.wikipedia.org/wiki/Simple_Network_Management_Protocol
Fuentes
Introducción
● http://deredes.net/protocolos-tcpip/
● https://www.tlm.unavarra.es/~daniel/docencia/rc_itig/rc_itig04_05/slides/clase14-
UDP.pdf
Aspectos técnicos
● https://es.wikipedia.org/wiki/User_Datagram_Protocol
● http://ingeniatic.euitt.upm.es/index.php/tecnologias/item/644-udp-user-datagram-
protocol
Principales características
● https://es.wikipedia.org/wiki/User_Datagram_Protocol
● http://datagramas.wikispaces.com/2.1+User+Datagram+Protocol+%28UDP%29
Puertos
● http://www.erg.abdn.ac.uk/users/gorry/course/inet-pages/udp.html
Implementación
● https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/
Reference_Guide/ch-nfs.html
● http://meli53.blogspot.com.ar/2015/07/comparativa-entre-el-udp-y-tcp.html
● https://es.wikipedia.org/wiki/Simple_Network_Management_Protocol