Saltar al contenido

UDP: suma de comprobación opcional

Puede que se de el caso de que halles algún problema en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes subir el código al trabajo final.

Solución:

Los paquetes UDP incluyen un campo para una suma de verificación CRC de 16 bits que el sistema operativo receptor usará para verificar la corrupción del paquete. Si la suma de comprobación está presente y falla, el paquete se descartará silenciosamente. Depende de la aplicación darse cuenta de que el paquete desapareció y tomar medidas correctivas.

Las sumas de comprobación UDP están habilitadas de forma predeterminada en todos los sistemas operativos modernos. Es posible deshabilitar las sumas de verificación UDP en IPv4, ya sea a nivel de socket o de sistema operativo. Si lo hace, reduciría la sobrecarga de la CPU al procesar cada paquete tanto en el remitente como en el receptor. Esto podría ser deseable si, por ejemplo, la aplicación estuviera calculando su propia suma de verificación por separado. Sin ninguna suma de verificación, no habría garantía de que los bytes recibidos sean los mismos bytes enviados.

La tarea de UDP es transportar datagramas, que son “paquetes de datos de red”. Para UDP, cada paquete de datos es una transmisión propia. Si envía 3 paquetes, esas son tres transmisiones independientes para UDP. Ya sea que el contenido de estos 3 paquetes de alguna manera pertenezcan juntos o si se trata de tres solicitudes individuales (piense en las solicitudes de DNS, donde cada solicitud se envía como un paquete UDP propio), UDP no lo sabe y no le importa. Todo lo que UDP garantiza es que un paquete se transmite como un todo o no se transmite en absoluto; o llega todo el paquete o se pierde todo el paquete, nunca verá llegar “la mitad de un paquete”. Entonces, si solo desea enviar un montón de paquetes de datos, use UDP.

La tarea de TCP, por otro lado, es transportar un flujo de datos. No se trata de paquetes. Se trata de un flujo de bytes que de alguna manera pasa de un host a otro. Cómo sucede esto, por ejemplo, cómo TCP divide el flujo de datos en fragmentos y envía estos fragmentos a través de la red y garantiza que no se pierdan datos y que todos los datos estén en orden, depende de TCP. Todo lo que TCP garantiza es que los bytes llegarán correctamente y en orden al otro lado, a menos que se pierda la conexión TCP, en cuyo caso el flujo finaliza abruptamente en algún punto intermedio, pero todos los datos que llegaron hasta ese punto llegaron. correctamente y en el orden correcto. Entonces, a pesar de que TCP también funciona con paquetes, la transmisión se comporta como un flujo que no tiene “unidades de datos” internas. Al enviar 80 bytes a través de TCP, puede haber un paquete con 80 bytes o 10 paquetes con 8 bytes cada uno o cualquier cosa intermedia, no puede saberlo y no tiene que saberlo.

Pero el hecho de que use UDP no significa que no le importe la corrupción de datos en los paquetes UDP. Tenga en cuenta que la corrupción no solo puede afectar sus datos, sino que también puede afectar el encabezado UDP en sí. Si solo se intercambia un bit, los paquetes UDP pueden tener un puerto de destino incorrecto. Por lo tanto, agregaron una suma de verificación que garantiza que ni el encabezado UDP ni la carga útil de datos se hayan dañado, pero lo hicieron opcional, por lo que depende de usted si desea usarlo o no. Si se utilizan, los paquetes dañados se eliminan y, por lo tanto, se comportan como paquetes perdidos. Si su código se ocupa de los paquetes perdidos, también se ocupará automáticamente de los paquetes corruptos.

Sin embargo, con IPv6, la suma de verificación se eliminó del encabezado de IP, lo que significa que ya no se detectan daños en el encabezado de IP. Pero esto se vio como un pequeño problema, ya que la mayoría de los protocolos de capa 2 tienen su propio mecanismo para detectar datos corruptos (por ejemplo, Ethernet y WiFi ya garantizan que los datos no se corrompan en su camino a través de la red) y las sumas de verificación de UDP/TCP también cubren algunos de los campos del encabezado IP, por lo que incluso sin la verificación de errores de la capa 2, el destinatario se daría cuenta si las direcciones IP en el encabezado se han dañado en el camino y descartaría el paquete. Como consecuencia, la suma de comprobación UDP ya no es opcional con IPv6.

Si conservas algún problema o forma de prosperar nuestro reseña eres capaz de añadir una interpretación y con mucho gusto lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *