Si DNS usa UDP, ¿cómo se garantiza que la dirección del host será correcta?

En primer lugar, tenga en cuenta que UDP tiene una suma de verificación, Protocolo de datagramas de usuario: Computación de suma de verificación. No evita por completo la corrupción de datos, pero reduce en gran medida la posibilidad.

Dicho esto, en el DNS tradicional, no se garantiza que la respuesta sea correcta. Ni siquiera tiene garantizado que su pregunta sea correcta. Véase, por ejemplo, Bitsquatting: secuestro de DNS sin explotación (aunque yo diría que podría argumentar sobre la fraseología “sin explotación”). En resumen, un poco voltearse en cualquiera de los diferentes puntos de movimiento en la memoria de su sistema puede hacer que su resolución de DNS intente buscar un nombre diferente al previsto.

Desafortunadamente, incluso DNSSEC no puede resolver ese problema en particular, ya que se está utilizando un nombre incorrecto incluso antes de que el solucionador de DNS lo supiera.

Entonces, ¿cómo te sientes al usar la memoria que no es ECC ahora?

Si le preocupa que el uso de UDP haga que se pierda la consulta o la respuesta, entonces ese es un caso en el que la aplicación / pila maneja la no confiabilidad de UDP de una manera aceptable. Simplemente volviendo a intentarlo. Este es un lenguaje común en las redes que utiliza consultas cortas y genera respuestas breves.
La “garantía” proporcionada por TCP no es que la comunicación tendrá éxito (una garantía imposible de mantener), sino que si hay una falla, la aplicación lo sabrá. Para aplicaciones simples como una búsqueda de DNS, la sobrecarga de usar TCP en un protocolo que casi siempre tiene éxito inmediatamente de todos modos no es una buena compensación.

Como notó David Lawrence, UDP tiene una suma de verificación. Por lo tanto, cualquier bit invertido probablemente se detectará cuando el host calcule la suma de verificación y descubra que no coincide. El paquete se descarta en la capa de transporte y la aplicación DHCP devolverá un “no se pudo resolver el nombre de host” o envió otra iteración de la consulta.

Creo que está cuestionando la naturaleza poco confiable de UDP. La naturaleza poco confiable de UDP significa que no se garantiza la entrega de datos al terminal final. No significa que los datos se editarán en la capa UDP.