El modelo de interconexión abierta de internet OSI (siglas en inglés de Open System Interconnection) es el modelo sobre el cual se basan los protocolos para el funcionamiento de una red. Es válido aclarar que el modelo OSI no establece una arquitectura para una red. Por el contrario, este se establece como una serie de estándares para la interconexión.
Esto permite que sistemas de diversas procedencias puedan conectarse entre sí sin ningún tipo de problema. Uno de estos protocolos es el Protocolo de Datagramas de Usuario UDP (siglas en inglés de User Datagram Protocol). Si quieres conocer las características de este protocolo y su funcionamiento, te invito a continuar leyendo, ya comenzamos.
Tabla de contenidos
- Funcionamiento de UDP
- Características del protocolo UDP
- Uso del protocolo UDP
- UDP vs TCP
- Artículos relacionados que te podrían resultar interesantes:
Funcionamiento de UDP
El Protocolo de Datagramas de Usuario es un protocolo empleado para el intercambio de datagramas en una red. Este protocolo está contenido en la capa cuatro o de transporte del modelo OSI. Las características del protocolo UDP están contenidas en la RFC 768. Esta RFC contiene una descripción de los diversos aspectos y especificaciones para la implementación del dicho protocolo.
El protocolo UDP establece una interfaz bastante sencilla para la comunicación entre la capa de red y la capa de aplicación en el modelo OSI. Analizando detalladamente el funcionamiento del protocolo se puede considerar errónea su inclusión en la capa de transporte del modelo OSI. Esto se debe a que este protocolo no garantiza que se entreguen todos los mensajes enviados. Además, el emisor de los mensajes mediante UDP no tiene ninguna información sobre el estado de los mensajes que ha sido enviados.
El protocolo UDP realiza la combinación de dos señales de la capa de aplicación y las envía mediante una sola vía de comunicación. Esta técnica es conocida como multiplexado. Como ventaja principal es que permite establecer varias comunicaciones simultáneas.
Además, el protocolo agrega una “suma de verificación” o “checksum” de la cabecera de los paquetes y de los datos contenidos en el datagrama. Mediante este mecanismo es posible conocer si hay errores en los datos. El emisor de datos realiza una suma binaria del contenido de la cabecera del datagrama y este valor se envía de conjunto con el paquete a la red. Una vez recibido, el receptor realiza el mismo procedimiento de suma y la compara con el valor suministrado, si coinciden es que el paquete no contiene errores. El mismo proceso se realiza para la información útil del datagrama.
Características del protocolo UDP
La principal característica de este protocolo es que trabaja en modo sin conexión. Esto significa que en el uso del protocolo UDP no existe ningún tipo de sincronización entre el emisor y el receptor de los datos. UDP nunca preguntará el estado de los mensajes enviados ni comprobará si estos fueron recibidos por el emisor.
Por otro lado, UDP no intercambia información a través de bytes individuales, sino que envía la información en paquetes o datagramas completos. Una aplicación que utilice el protocolo UDP, enviará la información en bloques de bytes. De esta manera, el protocolo, por cada bloque de bytes transmitidos por la capa de aplicación, enviara un datagrama o paquete UDP a la capa de red.
Este protocolo tiene como desventaja su poca fiabilidad en cuanto a la garantía de la entrega de mensajes. Esto se debe a que no implementa ningún control al flujo de mensajes y nunca tendrá conocimiento del estado en que se encuentran los mismos. Además, se envían los paquetes por diferentes vías o caminos en la red, provocando que estos no lleguen ordenados al destinatario.
No obstante, lo anteriormente descrito implica la principal ventaja y fortaleza de este protocolo. Ya que no se realizan comprobaciones constantes sobre el estado de los paquetes enviados, este no sobrecarga la red de transmisión. Además, su propia sencillez establece cabeceras de los datos pequeñas y muy simples.
Descripción de la cabecera UDP
Un datagrama está conformado por una cabecera, que contiene información necesaria para la circulación del paquete por la red, y la información útil del paquete. El protocolo empleado para la transmisión de los datos establece las características e información de la cabecera.
En el caso del protocolo UDP, la cabecera posee cuatro campos, siendo dos de estos opcionales. Los campos de esta cabecera son:
- Puerto origen y destino: Estos son dos campos de 16 bits que establece un identificativo para el proceso de emisión y recepción de los mensajes. Como el protocolo UDP no posee un servicio de comprobación del estado de los paquetes enviados, la inclusión del puerto de origen en la cabecera es opcional. En caso de que no se vaya a incluir este campo, su valor debe ser puesto en 0 en la cabecera.
- Longitud del mensaje: Este campo es de uso obligatoria. Aquí se escribe el tamaño del datagrama UDP que va a ser enviado, incluyendo los datos, . El valor mínimo establecido para el datagrama es de 8 bytes.
- Suma de verificación: Este campo no es obligatorio. Aquí se incluye una especie de cabecera IP. En esta pseudo-cabecera se escriben las direcciones IP de origen y destino del datagrama. Además, tenemos el protocolo con el cual se está enviando el mismo y la longitud del paquete. Una vez que se han escrito estos valores, es necesario escribir valor de bits 0 hasta que el tamaño de esta pseudo-cabecera sea un múltiplo de 16. Es necesario aclarar que este campo es no obligatorio cuando se emplea IPv4, aunque generalmente se utiliza. No obstante, en la versión 6 del protocolo IP, el empleo de este campo es de uso obligatorio.
Puertos empleados por UDP
Para la transmisión de mensajes mediante el protocolo UDP es necesario utilizar puertos que permitan la comunicación entre las aplicaciones. Ya que el campo de puerto en la cabecera tiene un valor de 16 bits, el rango de valores disponibles para esto está entre 0 y 63535.
El puerto 0 es un puerto reservado. No obstante, el emisor puede utilizar este puerto, siempre y cuando solo sea empleado para el envío de mensajes. Los puertos comprendidos entre el 1 y el 1023 son puertos llamados como “puertos bien conocidos”. En algunos sistemas operativos del tipo Unix, para tener acceso a alguno de estos puertos es necesario contar con privilegios de superusuario.
Los puertos en el rango de 1024 al 49151 son puertos registrados. Los restantes puertos son puertos dinámicos y empleados como puertos temporales en la comunicación de las aplicaciones.
Uso del protocolo UDP
La mayoría de las aplicaciones claves de internet utilizan el protocolo UDP en la transmisión de datos . Este protocolo se emplea, por ejemplo, en los servidores de nombres de dominio DNS, ya que las consultas a estos servidores rápidas. Estos servidores son de gran importancia ya que contienen las direcciones necesarias para llegar a los diferentes clientes conectados a internet.
UDP vs TCP
El protocolo UDP no es un protocolo fiable, ya que la información añadida para la comunicación es mínima. Este es empleado mayormente en tareas de control y transmisión de videos y audio en una red. Este protocolo no añade latencia a una red, ya que no se establece ningún estado de conexión ni se realiza seguimiento a la información transmitida.
De esta manera, un servidor que emplee el protocolo UDP puede tener más clientes activos simultáneamente que uno que emplee TCP. A manera de resumen, con este protocolo se da más importancia a la velocidad de transmisión que a la integridad de los datos transmitidos.
Por otro lado, el protocolo TCP proporciona fiabilidad sobre los datos transmitidos. No obstante, esta fiabilidad posee un coste importante en cuanto al rendimiento. Este protocolo garantiza que no exista pérdida o duplicados de paquetes y el orden en que estos llegan al destino sea el correcto.
Esto se logra añadiendo mucha más información en la cabecera de los paquetes. Y, dado que los paquetes a enviar tienen un tamaño máximo, si la información sobre el paquete es grande, el tamaño de la información útil se reduce. Esto provoca que sean necesarios muchos más paquetes para enviar un archivo completo.
Por todo esto, cuando es más importante la velocidad de trasmisión que la integridad física de los datos, se emplea UDP. En cambio, si se quiere asegurar la integridad de los datos y que estos lleguen al destino, se emplea el protocolo TCP.