Why DNS uses UDP as the transport layer protocol?
答案摘自[1],根据CCBY-SA许可证进行再现。
UDP
是廉价的。 UDP
本身不可靠,但更高级别的协议(如DNS)可以通过在没有响应的情况下重复UDP
数据报来保持可靠性。
但这并不适用于DNS
。 DNS
本身有时除了使用UDP
(作为其主要协议)之外还使用可靠的传输控制协议(TCP
)。
当响应数据大小超过512
字节且需要可靠传递(例如区域传输)的任务时,使用后者。
此外,还有一些解析器实现会对所有查询使用TCP
。