Contenido principal
Principios de ciencias de la computación avanzados (AP Computer Science Principles)
Curso: Principios de ciencias de la computación avanzados (AP Computer Science Principles) > Unidad 2
Lección 5: Transporte de paquetesProtocolo de datagrama de usuario (UDP)
El Protocolo de datagrama de usuario (UDP) es un protocolo ligero de transporte de datos que funciona sobre IP.
UDP proporciona un mecanismo para detectar datos corruptos en paquetes, pero no intenta resolver otros problemas que surgen con paquetes, como cuando se pierden o llegan fuera de orden. Por eso, a veces UDP es conocido como el protocolo de datos no confiable .
UDP es simple pero rápido, al menos en comparación con otros protocolos que funcionan sobre IP. A menudo se usa para aplicaciones sensibles al tiempo (como "streaming" de vídeo en tiempo real) donde la velocidad es más importante que la precisión.
Formato de paquetes
Al enviar paquetes con UDP sobre IP, la porción de datos de cada paquete IP está formateada como un segmento UDP.
Cada segmento UDP contiene un encabezado de 8 bytes y datos de longitud variable.
Números de puerto
Los primeros cuatro bytes del encabezado UDP almacenan los números de puerto para el origen y el destino.
Un dispositivo en red puede recibir mensajes en diferentes puertos virtuales, similar a cómo un puerto marítimo puede recibir barcos en diferentes muelles. Los diferentes puertos virtuales ayudan a distinguir diferentes tipos de tráfico de red.
A continuación un listado de algunos puertos en uso por UDP en mi portátil:
Cada renglón empieza con el nombre del proceso que está usando el puerto virtual y termina con el protocolo y número de puerto.
🔍 ¿Qué tipo de tráfico de red manejan esos procesos? Si buscas en la web el nombre del proceso más el número de puerto, probablemente puedes averiguarlo. Incluso podrías probarlo en la computadora que estás usando en este momento.
Longitud de segmento
Los siguientes dos bytes del encabezado de UDP almacenan la longitud (en bytes) del segmento (incluyendo el encabezado).
Dos bytes son bits, por lo que la longitud puede ser tan grande como este número binario:
En decimal, eso es o . Entonces la longitud máxima de un segmento UDP es bytes.
Suma de control (checksum)
Los dos últimos bytes del encabezado de UDP son la suma de control, un campo usado por el remitente y el receptor para detectar corrupción de datos.
Antes de enviar el segmento, el remitente:
- Calcula la suma de control basada en los datos del segmento.
- Almacena esa suma de control en el campo.
Al recibir el segmento, el recipiente:
- Calcula la suma de control basada en el segmento recibido.
- Compara las sumas de control entre sí. Si las sumas de control no son iguales, sabe que los datos están corruptos.
Para entender cómo una suma de control puede detectar corrupción de los datos, sigamos el proceso de calcular una suma de control para una cadena muy corta de datos: "Hola".
Primero, el remitente codificaría "Hola" en binario de alguna manera. La siguiente codificación usa la codificación ASCII/UTF-8:
Esa codificación produce los siguientes bytes:
A continuación, el remitente segmenta los bytes en números binarios (de bits cada uno):
Para calcular la suma de control, el remitente suma los números binarios de -bits:
La computadora ahora puede enviar un segmento UDP con el "Hola" codificado como datos y como la suma de control.
El segmento UDP completo podría verse como sigue:
Campo | Valor |
---|---|
Número puerto orígen | |
Número puerto destino | |
Longitud | |
Suma de control | |
Datos |
¿Qué pasaría si los datos se corrompen de "Hola" a "Mola" en el camino?
Primero veamos cómo se verían los datos corruptos en binario.
"Mola" codificada en binario...
...y luego segmentada en números de bits:
Ahora veamos qué suma de control calcularía el destinatario:
El destinatario ahora puede comparar programáticamente la suma de control que recibió en el segmento UDP con la suma de control que acaba de calcular:
Recibida
:Calculada
:
¿Ves la diferencia?
Cuando el destinatario descubre que las dos sumas de control son diferentes, sabe que los datos se corrompieron de alguna manera en el camino. Desafortunadamente, el destinatario no puede usar la suma de control calculada para reconstruir los datos originales, por lo que es probable que simplemente descarte el paquete por completo.
El proceso actual para calcular la suma de control UDP incluye algunos pasos más que los mostrados aquí, pero este es el proceso general de cómo podemos usar sumas de control para detectar corrupción de datos.
🙋🏽🙋🏻♀️🙋🏿♂️¿TIenes alguna pregunta sobre este tema? ¡Nos encantaría responderte; tan solo pregunta en el área de preguntas más abajo!
¿Quieres unirte a la conversación?
- Nota: El UDP, consta de, que cada paquete IP en los datos tiene un segmento UDP, que tiene el numero de origen y de dirección, su longitud y una suma de chequeo (Checksum), esta es que se hace la suma del paquete a enviar se comparan sus valores al llegar y si no coinciden, el paquete esta corrupto.(1 voto)