If you're seeing this message, it means we're having trouble loading external resources on our website.

Si estás detrás de un filtro de páginas web, por favor asegúrate de que los dominios *.kastatic.org y *.kasandbox.org estén desbloqueados.

Contenido principal

Protocolo 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 16 bits, por lo que la longitud puede ser tan grande como este número binario:
1,111,111,111,110,000
En decimal, eso es (2161) o 65,535. Entonces la longitud máxima de un segmento UDP es 65,535 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:
  1. Calcula la suma de control basada en los datos del segmento.
  2. Almacena esa suma de control en el campo.
Al recibir el segmento, el recipiente:
  1. Calcula la suma de control basada en el segmento recibido.
  2. 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:
Hola
01001000011011110110110001100001
Esa codificación produce los siguientes 4 bytes:
01001000 01101111 01101100 01100001
A continuación, el remitente segmenta los bytes en 2 números binarios (de 16 bits cada uno):
01001000011011110110110001100001
Para calcular la suma de control, el remitente suma los números binarios de 16-bits:
0100100001101111+01101100011000011011010011010000
La computadora ahora puede enviar un segmento UDP con el "Hola" codificado como datos y 1011010011010000 como la suma de control.
El segmento UDP completo podría verse como sigue:
CampoValor
Número puerto orígen00010101 00001001
Número puerto destino0001010 100001001
Longitud00000000 00000100
Suma de control10110100 11010000
Datos01001000 01101111 01101100 01100001
¿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...
Mola
01001101011011110110110001100001
...y luego segmentada en números de 16 bits:
01001101011011110110110001100001
Ahora veamos qué suma de control calcularía el destinatario:
0100110101101111+01101100011000011011100111010000
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: 1011010011010000
  • Calculada: 1011100111010000
¿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?

  • Avatar sneak peak purple style para el usuario J.
    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.
    (3 votos)
    Avatar Default Khan Academy avatar para el usuario
¿Sabes inglés? Haz clic aquí para ver más discusiones en el sitio en inglés de Khan Academy.