8CV1 • El Protocolo de datagramas de usuario (UDP) es un estándar TCP/IP que está definido en RFC 768, "User Datagram Protocol (UDP)". Algunos programas utilizan UDP en lugar de TCP para el transporte de datos rápido, compacto y no confiable entre hosts TCP/IP. UDP proporciona un servicio de datagramas sin conexión que ofrece entrega de mejor esfuerzo, lo que significa que UDP no garantiza la entrega ni comprueba la secuencia de los datagramas Concepto de protocolos no orientados a la conexión y sin calidad de servicio. • El concepto de protocolo no orientado a la conexión es aquel protocolo que transmite los datos al receptor directamente con el primer “paquete” que envía; es decir que no se toma el trabajo de cerciorase si el receptor esta o no disponible, como es el caso de los protocolos orientados a la conexión. Multiplexación y demultiplexación sin conexión • Cuando se crea un socket UDP de este modo, la capa de transporte asigna automáticamente un numero de puerto al socket. En particular, la capa de transporte asigna un numero de puerto comprendido en el rango de 1024 a 65535 que actualmente no esté siendo utilizado en ese host por ningún otro puerto UDP. En este caso, la aplicación asigna un numero de puerto especifico por ejemplo el 19157, Si el desarrollador de la aplicación que escribe el código estuviera implementando el lado del servidor de un “protocolo bien conocido”, entonces tendría que asignar el correspondiente numero de puerto bien conocido. al socket UDP. Encabezado del protocolo • Port fuente (2 bytes) • El numero de puerto o port UDP usado por el proceso en el host fuente que ha originado el datagrama de usuario. • Port destino (2 bytes) • El numero de puerto o port UDP usado por el proceso en el host destino que esta para recibir el datagrama de usuario • Longitud (2 bytes) • La longitud total de octetos del datagrama incluyendo el encabezamiento y el campo de datos • Checksum (2 bytes) • Para detección de errores este campo no es obligatorio y una aplicación pude prescindir de el para logra mayor rapidez, en este caso los 16 bits del campo son ceros. • Campo de datos • El datagrama total puede tener una longitud de 65.536 (216) octetos proveniente de tener 16 bits disponibles en el campo de longitud para numerar los bytes del datagrama. A esa cantidad indicada en dicho campo se deben de restar los 8 bytes de la cabecera. Aplicaciones más comunes de UDP • Las aplicaciones mas comunes del UDP son aquellas en las cuales, como ya se menciono anteriormente, se necesita rapidez y no tanto confiabilidad: por ejemplo, en aplicaciones cliente-servidor que emplea el mecanismo de requerimiento respuesta. Aplicaciones que emplean UDP y los puertos utilizados Servicios Puertos Descripción echo 7 Envió del mismo datagrama hacia la fuente
discard 9 Descarta un datagrama de usuario recibido
daytime 13 Devuelve la fecha y hora actual
quote 17 Cadena de caracteres conteniendo la cuota del dia
nameserver 53 Servicios DNS cliente
TFTP 69 Forma elemental de transferir archivos NTP 123 Para implementar el protocolo de la hora red
SNMP 161 Para monitoreo y administración de red
Verificación del error por parte de UDP
• La única verificación de error que implementa UDP es a través del campo
checksum (suma de verificación), el cual como se indico anteriormente no es obligatorio. Formato del Pseudo-Encabezamiento utilizado en el calculo de la suma de verificación del UDP en el receptor esta información se extrae del datagrama
0 8 16 31
DIRECCION IP DE LA FUENTE
DIRECCION IP DEL DESTINO
CERO PROTOCOLO LONGITUD DE UDP
PUERTOS • 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 efímeros y son utilizados como puertos temporales, sobre todo por los clientes al comunicarse con los servidores. Interfaz de Programación de Aplicaciones UDP • La interfaz de aplicación que ofrece UDP se describe en el RFC 768. Dicha interfaz proporciona: • La creación de nuevos puertos de recepción. • La recepción de operaciones que devuelven los bytes de datos y un indicador de puerto fuente y una dirección fuente IP. • El envío de operaciones que tienen como parámetros los datos, los puertos fuente y destino y las direcciones. Ver todos los puertos UDP