
Tenho procurado uma resposta para essa pergunta (aquela do título) e a melhor coisa que encontrei foi:
No design do protocolo DNS, o tamanho do bloco de transporte UDP (tamanho da carga útil) foi limitado a 512 bytes para otimizar o desempenho e gerar tráfego de rede mínimo.
minha pergunta é: como exatamente isso melhora o desempenho e há outros motivos para essa limitação ao usar UDP?
Responder1
A carga útil de 512 bytes garante que os pacotes DNS possam ser remontados se fragmentados em trânsito. Além disso, de modo geral, há menos chance de pacotes menores serem descartados aleatoriamente.
OPadrão IPv4especifica que cada host deve ser capaz de remontar pacotes de 576 bytes ou menos. Com um cabeçalho IPv4 (20 bytes, embora possa chegar a 60 bytes com opções) e um cabeçalho UDP de 8 bytes, um pacote DNS com carga útil de 512 bytes será menor que 576 bytes.
Como diz @RyanRies: O DNS pode usar TCP para cargas maiores e para transferências de zona e DNSSEC. Há muito mais latência quando o TCP entra em ação porque, diferentemente do UDP, há um handshake entre o cliente e o servidor antes que qualquer dado comece a fluir.
Responder2
O DNS moderno não está mais limitado a uma carga útil de 512 bytes para UDP.
ComEDNS0em uso, um tamanho de carga útil maior pode ser especificado, o que também é comumente o caso para clientes com reconhecimento de DNSSEC.
O suporte para cargas úteis maiores através do UDP tem sido uma faca de dois gumes, no entanto, é em parte a razão pela qual o uso de servidores de nomes paraataques de amplificaçãotornou-se mais popular porque você pode obter uma amplificação melhor se o invasor usar uma consulta que obtenha uma resposta grande.
Verrfc2671para obter os detalhes essenciais do EDNS0
Responder3
As operações DNS, por exemplo, consultas e operações de manutenção de zona, por padrão, usam a porta 53. Por motivos de desempenho, as consultas usam o protocolo UDP com um limite de tamanho de bloco de 512 bytes. O TCP pode ser opcionalmente negociado transação por transação para operações de consulta, mas devido à sobrecarga de desempenho incorrida com o TCP, esta é essencialmente uma capacidade teórica. Historicamente, exceder o limite de tamanho de resposta de 512 bytes era normalmente evitado a todo custo e, de fato, o limite de 13 servidores raiz IPv4 era o máximo que poderia ser retornado em uma única transação UDP de 512 bytes.
Ron Aitchison - Pro DNS e BIND 10 - 2011
Responder4
É uma coisa de QOS.
Como o UDP não tem estado, o tratamento de erros de pacotes não é possível.
Assim, ao manter os pacotes em um tamanho máximo, há uma maior probabilidade de eles chegarem ao seu destino, reduzindo o impacto da ausência de tratamento de erros.