Checksum UDP paso a paso

Suma en complemento a 1 de palabras de 16 bits: el acarreo que sale por la izquierda vuelve a sumarse por la derecha; al final se invierten todos los bits. Después lo comprueba el receptor, también con un canal que cambia bits.

Palabras del segmento

De 2 a 6 palabras de 16 bits, en hexadecimal (B53D) o binario (16 cifras). Un bit también se cambia con un clic a la derecha.

Escenarios

Canal con errores

En las pestañas del receptor, haz clic en un bit de una palabra recibida para cambiarlo. O bien:

Practicar

Un segmento nuevo con las respuestas ocultas: calcula el checksum en hexadecimal y pulsa «Comprobar». La pista muestra la suma sin complementar.

Vista

Sumas parciales (hexadecimal)

Supuestos del modelo
  • Las palabras se suman de dos en dos en complemento a 1: el acarreo que sale por la izquierda (el bit 17) no se pierde; da la vuelta y se suma al bit de menor peso (acarreo circular). Después se invierten todos los bits: ese es el checksum que viaja en la cabecera (Kurose y Ross §3.3.2; RFC 768 y RFC 1071).
  • Aquí se suman las palabras sin pseudocabecera, como en el ejemplo del libro. El checksum UDP real se calcula sobre la pseudocabecera (IP origen, IP destino, 0, protocolo 17, longitud UDP) más el segmento completo, con el campo checksum a 0: eso lo haréis en el laboratorio.
  • Con un número impar de bytes se añade al final un byte 00 de relleno para completar la última palabra. Entra en la suma, pero no se transmite: el receptor lo vuelve a añadir.
  • El receptor puede comprobarlo de dos formas equivalentes: sumar todas las palabras con el checksum recibido incluido (1111111111111111 = FFFF si no se detecta error), o guardar el checksum recibido, poner el campo a 0, recalcular y comparar.
  • Detecta cualquier error de un bit, pero no todos los de varios bits: un 0 → 1 en una palabra y un 1 → 0 en la misma columna de otra se compensan. Por eso la capa de enlace añade un CRC, más potente (Tema 5).
  • En IPv4 el campo es opcional: 0 significa «no calculado» (si el checksum calculado es 0000, se envía FFFF). En IPv6 es obligatorio. Cuando detecta un error, UDP descarta el segmento o lo pasa a la aplicación con una advertencia; el emisor no se entera.

Sobre esta visualización

Calculadora animada del checksum de UDP (Kurose y Ross §3.3.2, RFC 768 y RFC 1071) sin pseudocabecera. Entre 2 y 6 palabras de 16 bits, editables en hexadecimal o en binario o bit a bit, se suman de dos en dos en complemento a 1, columna a columna o suma a suma, con los acarreos internos visibles; el acarreo que sale por la izquierda (el bit 17) da la vuelta y se suma al bit de menor peso, y al final se invierten todos los bits para obtener el checksum. Un interruptor añade un byte de relleno a 0 cuando el número de bytes es impar, que entra en la suma pero no se transmite. El receptor comprueba el segmento de dos formas equivalentes: sumando todas las palabras con el checksum incluido (sin error sale FFFF) o poniendo el campo a 0, recalculando y comparando. Un canal con errores permite voltear bits de las palabras recibidas: un error de un bit se detecta siempre, mientras que dos bits que se compensan en la misma columna pasan sin detectar, por lo que la capa de enlace añade un CRC. Incluye el ejemplo del libro, palabras aleatorias y un modo de práctica en el que se escribe el checksum en hexadecimal.

Conceptos: checksum UDP, suma en complemento a 1, acarreo circular, complemento a 1, palabras de 16 bits, byte de relleno, verificación en el receptor, detección de errores extremo a extremo, errores no detectados, CRC.

Fórmulas:

Arquitectura de Redes I, Sesión 3.1 · Enrique de la Hoz, Universidad de Alcalá · Licencia CC BY-SA 4.0 · Original y catálogo en GitHub · DOI 10.5281/zenodo.23285664