Vous êtes sur la page 1sur 13

PROTOCOLO UDP

INSTITUTO TECNOLÓGICO DE INFORMÁTICA

TECNICATURA EN REDES Y TELECOMUNICACIONES

AÑO 2010

Integrantes del grupo:

Andrés De Armas
Matías Bentancur

Nombre de Archivos:

Dossier UDP.doc
Dossier User Datagram Protocol (UDP) 08/05/2010

Presentación UDP.ppt
Índice

1. Protocolo UDP (Protocolo de Datagramas de Usuario)


1.1. Introducción

Es un protocolo de la pila de protocolos de TCP/IP, perteneciente a la capa de


transporte. El mismo no es orientado a conexión y es el más simple de los protocolos de
la capa de transporte.
Su contra parte es el protocolo orientado a conexión TCP.
UDP provee a las aplicaciones una forma de enviar datagramas IP encapsulados sin
establecer una conexión.
UDP fue diseñado en 1980 y se describe en el RFC 768.
UDP transmite segmentos que consisten en una cabecera de 8 bytes seguido de los
datos.

1.2. Ubicando UDP en la pila de Protocolos TCP/IP

Instituto Tecnológico de Informática 2 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

2. Teórico respecto a su funcionalidad.

2.1. Estructura de un Segmento UDP.

2.1.1. Puerto de Origen.

Es el número de puerto relacionado con la aplicación del remitente del segmento UDP.
Este campo representa una dirección de respuesta para el destinatario.
Este campo es opcional, ya que no siempre se busca recibir una respuesta del
destinatario. Si el puerto de origen no es necesario, el valor del puerto de origen será
cero. En este caso, el destinatario no podrá responder y pasara a ser una comunicación
unidireccional.

2.1.2. Puerto de Destino.

Es la dirección de la aplicación que recibirá el mensaje.

Instituto Tecnológico de Informática 3 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

2.1.3. Longitud.

Aquí reside el valor en bytes de la longitud total del segmento UDP, incluye la cabecera
de 8 bytes mas lo datos. Lo que implica que el mínimo valor de este campo será 8 bytes,
correspondiente a la cabecera.

2.1.4. Suma de comprobación.

También llamada suma de control o suma de verificación, es utilizada para la detección


de errores. La forma de calcular el valor de este campo es la misma que el utilizado en
TCP.
Si este campo se rellena con ceros significa que el emisor no generó la suma de control.
Algunos protocolos de más alto nivel, no les interesa la calidad de datos como por
ejemplo para el envío de voz digital y este campo termina con un relleno de ceros.

2.2. Comportamiento de UDP


UDP proporciona solo las funciones básicas necesarias para la entrega extremo a
extremo de una transmisión. No ofrece controles de flujo, controles de errores ni
retransmisión. Además, no puede saber cual es el paquete dañado, una vez que se
informa de un error.
UDP puede ser usado para comunicaciones brodcast y multicast.

2.3. Protocolos de Aplicación que usan UDP.


• Domain Name System (DNS).
o Se usa para resolución de nombres de dominio.
• Internet Protocol television (IPTV).
o Para transmitir TV por IP.
• Voice over IP (VoIP) – Real-time Transport Protocol (RTP).
o Para transmitir voz sobre IP.
• Trivial File Transfer Protocol (TFTP)
o Para transmitir pequeños archivos.
• Simple Network Management Protocol (SNMP).
o Provee administración de redes.
• Routing Information Protocol (RIP).
o Intercambio de información de tablas de enrutamiento.
• Dynamic Host Configuration Protocol (DHCP).
o Para que los nodos de una red obtengan los parámetros de configuración de
red automáticamente.
• Remote Procedure Call (RPC).
o Permite la ejecución de un procedimiento en una computadora de forma
remota.

Instituto Tecnológico de Informática 4 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

2.4. Puertos UDP


Un puerto es una estructura de software que es identificado con un número. Este
número debe ser un entero de 16 bits. Lo cual permiten valores desde 0 hasta 65535.
La Internet Assigned Numbers Authority (IANA) o en español Agencia de Asignación
de Números de Internet hace una división para los números de puertos en 3 rangos.

• Puertos Permanentes (del 0 al 1023).


o Son utilizados como puertos universales para servidores.
• Puertos Registrados (del 1024 al 49151).
o Estos puertos son registrados a pedido para prevenir duplicaciones.
• Puertos Privados (del 49152 al 65535).
o Estos puertos pueden ser usados por cualquier proceso. Generalmente se
usan como puertos temporales cuando el cliente se quiere comunicar con
el servidor, el cliente se asigna un puerto de este rango para comunicarse
con un puerto generalmente permanente o registrado del servidor.

2.4.1. Algunos puertos UDP más usados.

Numero Descripción
7 ECHO
9 DISCARD
19 CHARGEN (Character Generator)
53 Consultas de nombres DNS
67 Servidor de protocolo de inicio Bootp
69 Protocolo trivial de transferencia de archivos (TFTP)
111 Llamada a procedimiento remoto (RPC).
137 Servicio de Nombres NetBIOS
138 Servicio de datagramas NetBIOS
161 Protocolo simple de administración de redes (SNMP)

• 7 - ECHO
o Es un protocolo de Internet definido en el RFC 862. Es una herramienta
muy útil para la depuración y medición. Básicamente el servicio echo lo
que hace es devolverle al emisor los datos recibidos.

• 9 – DISCARD
o Es un protocolo de Internet definido en el RFC 863. Es una herramienta
muy útil para la depuración y medición. Simplemente descarta todos los
datos que recibe sin enviar una respuesta.
• 19 – CHARGEN
o Es un protocolo de Internet definido en el RFC 864. Es una herramienta
muy útil para la depuración y medición. Cuando se recibe un datagrama,
se envía una respuesta conteniendo un número de caracteres aleatorios
entre el 0 y el 512. Los datos recibidos por este servicio son ignorados.

Instituto Tecnológico de Informática 5 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

2.5. Sockets
Un socket es la punta final de una comunicación bidireccional entre procesos a través de
una red IP.
Los sockets constituyen un mecanismo para la entrega de paquetes a una aplicación
apropiada. Se basa en una combinación de una dirección IP local y remota, junto a los
números de puertos. Cada socket es dirigido por el sistema operativo al proceso de la
aplicación que corresponda.

Una dirección de socket es una combinación de una dirección IP (la ubicación de la


computadora) y el puerto (indica a que proceso debe ser entregado). Se podría comparar
solo a nivel de ejemplo con un numero de teléfono (Dirección IP) y el numero de
interno (Numero de Puerto).

Una comunicación de tipo socket, se caracteriza por la combinación de lo siguiente:

• Un protocolo de transporte (TCP, UDP).


• Dirección local del socket (Dirección IP local y número de puerto local).
• Dirección remota del socket (Dirección IP remota y número de puerto remoto).

2.5.1. Diagrama de la comunicación con sockets

Instituto Tecnológico de Informática 6 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

2.6. Funciones y llamadas al sistema en Linux


Para que una aplicación cliente/servidor pueda lograr una comunicación por sockets
entre dos sistemas Linux es necesario utilizar funciones y llamadas al sistema
predefinidos.

2.6.1. socket()

Se inicializa una interfaz de tipo socket.

2.6.2. bind()

Esta función le asigna un nombre al socket, es decir le da al socket una dirección, IP +


Numero de puerto.

2.6.3. connect()

Esta función inicializa una conexión sobre una dirección de socket remota.

2.6.4. send(), sendto() y sendmsg()

Estas se usan para enviar mensajes a una dirección de socket.

2.6.5. recv(), recvfrom() y recvmsg()

Estas se usan para recibir mensajes a una dirección de socket.

2.6.6. close()

Esta función se usa para cerrar la conexión con un socket.

3. Archivos involucrados.
3.1. Demonio xinetd
Es el demonio súper-servidor, escucha en los puertos designados por servicios de
Internet, como FTP, POP3, Telnet y otros.
Cuando un segmento TCP o UDP llega, xinetd analiza que puerto destino tiene y
ejecuta el programa servidor apropiado para manejar la conexión.

4. Comandos utilizados.

Instituto Tecnológico de Informática 7 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

4.1. udp-sender
Este comando de usuario es usado para enviar un archivo en una comunicación de tipo
brodcast, a multiples receptores en una LAN. Esta herramienta usa comunicaciones
Ethernet de tipo multicast o brodcast para que todos los receptores reciban los mismos
datos. Con “udp-sender” enviar a 10 destinatarios no toma mucho mas tiempo que
enviarle solo a 2.

4.1.1. Opciones de udp-sender

• --file archivo
o Lee los datos para ser transmitido desde un archivo. Si no se especifica
un archivo, los datos leídos serán del “standard input”.
• --portbase numeroDePuerto
o Se especifican los puertos que se van a usar para hacer udpcast. Se usan
dos puertos, el puerto base y el puerto base +1. El puerto base por
defecto es 9000. El mismo puerto base debe ser usado para el emisor y
los receptores.
• --interface interface
o Se indica la interfaz de red por la cual se van a enviar los datos.
• --ttl tiempoDeVida
o Se configura el tiempo de vida de los de los datagramas a enviar.
• --mcast-data-address direccionIP
o Se especifica la dirección para hacer multicast de datos.
• --pointopoint
o Con el modo punto a punto, solo se permite un receptor, los datos serán
enviados directamente a un receptor en modo unicast.
• --broadcast
o Se usa el brodcast de Ethernet para enviar los datos. Por defecto se usa
multicast.

4.2. udp-receiver
Se utiliza para recibir los archivos enviados por “udp-sender”.

4.2.1. Opciones de udp-receiver

• --file archivo
o Escribe la información recibida al archivo especificado. Si se omite este
parámetro, los datos se escriben en la “standard output”.
• --portbase numeroDePuerto

Instituto Tecnológico de Informática 8 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

o Se especifican los puertos que se van a usar para hacer udpcast. Se usan
dos puertos, el puerto base y el puerto base +1. El puerto base por
defecto es 9000. El mismo puerto base debe ser usado para el emisor y
los receptores.
• --ttl tiempoDeVida
o Se especifica el tiempo de vida de los paquetes pertenecientes a la
solicitud de conexión (request).

5. Comandos alternativos.
5.1. ttcp
Este comando de usuario controla el tiempo de transmisión y recepción de datos entre
dos sistemas usando los protocolos TCP o UDP.

5.1.1. Opciones de ttcp

• -t
o Utilizando esta opción se indica que la ejecutante será un transmisor de
datos.
• -r
o Utilizando esta opción se indica que la ejecutante será un receptor de
datos.
• -u
o Se indica que el protocolo a usar será UDP. Si no se especifica se usará
TCP.
• -p numeroDePuerto
o Numero de puerto para enviar o escuchar. Por defecto es el numero
2000.
• -f formato
o Se especifica el formato que se va a usar para medir la relación
tiempo/datos.
o Los formatos disponibles son:
 ‘k’, (kilobits/seg).
 ‘K’ (kilobytes/seg).
 ‘m’ (megabits/seg).
 ‘M’ (megabytes/seg).
 ‘g’ (gigabits/seg).
 ‘G’ (gigabytes/seg).
o El formato por defecto es ‘K’ (kilobytes/seg).

5.2. echoping
Es un pequeño programa para testear la respuesta de un host remoto. Para realizar esta
prueba se pueden enviar tanto paquetes de “echo” TCP como de UDP.

Instituto Tecnológico de Informática 9 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

Simplemente muestra el tiempo transcurrido en establecer la conexión y enviar un dato.

5.2.1. Opciones de echoping

• -s nnn
o Se indica el tamaño del dato que se va a enviar.

• -n nnn
o Se indica el número de repeticiones para la prueba.

• -w nnn
o Se indica el número de segundos que se esperar entre dos pruebas. Por
defecto el tiempo es un 1 segundo.

• -t nnn
o Numero de segundos a esperar la respuesta antes de rendirse.

• -u
o Para usar paquetes de echo UDP en vez de TCP.

• -d
o Envía paquetes con destino DISCARD (puerto 9) envés de ECHO
(puerto 7).

• -c
o Envía paquetes con destino CHARGEN (puerto 19) envés de ECHO
(puerto 7).
• -f carácter
o Llena el paquete a enviar con el carácter indicado. Por defecto el carácter
es aleatorio.

5.3. netstat
Es una herramienta que imprime conexiones de red.
Para ver un detalle de las conexiones UDP que existan en el sistema se puede usar de la
siguiente manera:

netstat -sp udp

6. Archivos afectados en Linux.

6.1. /proc/net/udp
Este archivo mantiene un vuelco de la memoria de la tabla de los socket UDP.
Mucha de esta información se usa por Linux para depuración (debugging).

Instituto Tecnológico de Informática 10 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

El formato de la tabla de los socket UDP es la siguiente:

s local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid


l
1 01642C89:0201 0C642C89:03FF 0 0000000 0000000 0 000071BA 00000000 0
1 0 1 1

• sl.
o Se refiere a un número que el núcleo de linux asigna para el socket.
• local address.
o Es el par de la dirección IP local más el número de puerto local.
• remote address.
o Es el par de la dirección IP remota más el número de puerto remoto.
• st
o Indica el estado interno del socket.
• tx_queaue
o almacena datos en una cola de salida.
• rx_queue.
o almacena datos en una cola de entrada.
• tr, tm-->when y rexmits.
o Estos campos no son usados por UDP.
• uid.
o Indica un número que corresponde al identificador de usuario (UID), el
usuario que crea un socket.

7. Bibliografía
• Redes De Computadoras 3Ed - Tanenbaum, Andrew.
• Redes De Computadoras 4Ed - Tanenbaum, Andrew.
• Transmisión de Datos y Redes de Comunicación.- Behrouz Forouzan McGraw-Hill.
• RFC 768 - J. Postel - Agosto 1980.
• RFC 862 - J. Postel - Mayo 1983.
• RFC 863 - J. Postel - Mayo 1983.
• RFC 864 - J. Postel - Mayo 1983.
• proc(5) – Pagina man Linux.
• socket(7) – Pagina man Linux.
• udp-sender(1) - Pagina man Linux.
• udp-receiver(1) - Pagina man Linux.
• ttcp(1) - Pagina man Linux.
• netstat(8) - Pagina man Linux.
• http://en.wikipedia.org/wiki/User_Datagram_Protocol
• http://en.wikipedia.org/wiki/Internet_socket
• http://en.wikipedia.org/wiki/Inetd
• http://www.iana.org/assignments/port-numbers
• http://support.apple.com/kb/ts1629?viewlocale=es_ES&locale=es_ES

Instituto Tecnológico de Informática 11 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

8. Diccionario de datos.

• TCP/IP
o También conocido como la pila de protocolos de Internet. Son una serie de
protocolos de comunicación usados en Internet. Se identifica a esta familia
por sus dos protocolos principales, TCP e IP.

• TCP (Transmission Control Protocol)


o Es un protocolo de comunicación de la familia de protocolos TCP/IP
ubicado en la capa de Transporte. El mismo es orientado a conexión y es
fiable. Presta servicios relacionados al trasporte de datos.

• IP (Internet Protocol)
o Es un protocolo de comunicación de la familia de protocolos TCP/IP
ubicado en la capa de Internet. El mismo no es orientado a conexión y brinda
servicios de direccionamiento de datos.

• RFC (Request for Comments)


o son una serie de notas sobre Internet que comenzaron a publicarse en 1969.
Cada una de ellas individualmente es un documento cuyo contenido es una
propuesta oficial para un nuevo protocolo de Internet.

• Brodcast
o En redes de computadoras, broadcast se refiere a la transmisión de datos que
conceptualmente serán recibidos por todos los nodos de una red. En la
practica el alcance del broadcast esta limitado a una división lógica de la red.

• Multicast.
o Es una tecnología para hacer entrega de información a un grupo de
destinatarios simultáneamente. Se usa típicamente para la difusión
multimedia, como puede ser conferencias de audio y video.

• BOOTP (Bootstrap Protocol)


o Es un protocolo usado por un cliente de la red para obtener una dirección IP
brindada desde un servidor. Se utiliza por una computadora cuando esta
arrancando. El servidor asigna una dirección IP al cliente que solicite de un
conjunto de direcciones IP disponibles.

• NetBIOS
o Es un protocolo de redes que provee 3 servicios distintos, servicios de
nombres, servicios de sesión y servicios de distribución de datagramas. El
servicio de nombres, es usada para identificar un nodo con un nombre de
hasta 16 caracteres. El servicio de sesión es usado para establecer una
comunicación orientada a conexión entre dos nodos. El servicio de

Instituto Tecnológico de Informática 12 de 13


Dossier User Datagram Protocol (UDP) 08/05/2010

distribución de datagramas es usado para hacer difusión sobre un conjunto


de nodos de la red.

• LAN (Local Area Network)


o Se le llama LAN a una red de computadoras de pequeño porte, como puede
ser una red para una escuela.

• Ethernet
o Define estándares de cableado y de señales para la capa física del modelo
OSI. Para la capa de enlace del mismo modelo se define el formato de las
direcciones físicas MAC. Ethernet es estandarizado como IEEE 802.3.

Instituto Tecnológico de Informática 13 de 13