¿Cuándo utiliza el DNS TCP en lugar de UDP? ¿Por qué?

La mayoría de las solicitudes y respuestas DNS son de tamaño pequeño (menos de 512 bytes), por lo que utilizarán UDP, un protocolo de mejor esfuerzo. Si bien es menos confiable que TCP, es más rápido y adecuado para pequeñas cantidades de datos. UDP también consume menos recursos, sin embargo, este razonamiento puede descartarse en la actualidad, ya que tiene un impacto insignificante en nuestra tecnología.

Algunas transacciones de DNS, como transferencias de zona o consultas con extensiones adicionales pueden generar paquetes de más de 512 bytes de tamaño, por lo que utilizarán TCP en su lugar. ¿Por qué? TCP establece una conexión y proporciona confiabilidad. Esta es una ventaja para grandes cantidades de datos, ya que en general reducirá la pérdida y la necesidad de reenviar paquetes. Esto conduce a un mayor grado de eficiencia.

Un segundo caso de DNS que se ejecuta sobre TCP es si una aplicación lo exige. Por ejemplo, si un cliente no recibe una respuesta a una consulta UDP DNS dentro de un período de tiempo determinado, el cliente puede reenviar la consulta a través de TCP. La implementación específica de esto puede ser decidida por los desarrolladores.

¡Espero que esto responda tu pregunta! Se puede obtener una mayor comprensión leyendo los RFC relevantes.

Tiene que ver con los requisitos establecidos en la transferencia de datos.

UDP se usa cuando necesita una traducción de un nombre de dominio. El cliente envía una pregunta que el servidor DNS responde con IP (si la tiene en su registro). Todo hecho con paquetes simples de datagramas. No se preocupe si un paquete se pierde o se daña, el cliente puede solicitarlo nuevamente.

Cuando los servidores DNS necesitan sincronizar la información en sus registros, puede haber muchos datos y es importante que se transfieran correctamente o todos los clientes que atiende el servidor DNS pueden recibir esa información defectuosa hasta la próxima transferencia de zona DNS a DNS. Es por eso que los servidores que realizan “transferencia de zona” necesitan las capacidades de corrección de fallas del Protocolo de Control de Transmisión. TCP garantizará que la información se transfiera y reciba sin fallas y en el orden correcto.

Dns usa udp por defecto. El tamaño máximo de paquete predeterminado es 512 bytes, pero durante una década (más o menos) dns usa edns0 para indicar el tamaño máximo de paquete de hasta 4KB.

Cuando el tamaño de la respuesta excede el tamaño máximo del paquete, el servidor truncará la respuesta y establecerá el bit TC en el encabezado.

El bit tc le dice al cliente que vuelva a intentarlo con tcp.

Tenga en cuenta: ¡DNS necesita TCP! Tcp se está volviendo más importante con DNSSEC.

Cabe señalar que la mayoría de los sitios no permiten transferencias de zona ahora, ya que se abusa de ellos fácilmente, por lo que, en efecto, y algunas excepciones, DNS ya no usa TCP.

DNS utiliza tanto TCP como UDP.

DNS utiliza TCP para la transferencia de zona y UDP para consultas de nombre, ya sea regular (primario) o inverso. UDP puede usarse para intercambiar información pequeña, mientras que TCP debe usarse para intercambiar información de más de 512 bytes.

Para solicitudes normales, prácticamente nunca. Sería demasiado lento y torpe.

Hay excepciones, como se señaló (respuesta mayor a 512 Bytes, también DNSSEC (usando TLS) y algunos casos de IPv6).

Tanto TCP como UDP utilizarán el puerto 53 para DNS.

DNS usa udp a menos que la solicitud o respuesta sea demasiado grande. El solucionador generalmente puede optar por usar tcp también. Intente buscar DNS rfc si desea saber cómo se supone que funciona.

La mayoría de las implementaciones de DNS que he visto se basan en UDP / IP. Rápido chapuzón para obtener información. Para TCP / IPver4.0 se requiere un protocolo de enlace de tres vías y esto agrega más tiempo al inicio y al borrado de la sesión de socket ().