我一直在寻找这个问题的答案(标题中的那个),我发现的最好的事情是:
In DNS Protocol design,UDP transport Block size (payload size) has
been limited to 512-Bytes to optimize performance whilst generating
minimal network traffic.
我的问题是:这是如何增强性能的,并且在使用UDP时是否有任何其他原因导致此限制?
解决方法
512字节有效负载可确保在传输中分段时可以重新组装DNS数据包.而且,一般来说,较小的数据包随机丢弃的可能性较小.
IPv4 standard指定每个主机必须能够重组576字节或更少的数据包.使用IPv4标头(20字节,尽管它可以高达60字节w /选项)和8字节UDP标头,具有512字节有效负载的DNS数据包将小于576字节.
正如@RyanRies所说:DNS可以将TCP用于更大的有效载荷以及区域传输和DNSSEC.当TCP发挥作用时,有更多的延迟,因为与UDP不同,在任何数据开始流动之前,客户端和服务器之间会有握手.