为什么DNS使用UDP作为传输层协议?

时间:2016-10-15 19:33:29

标签: tcp dns udp protocols

为什么DNS使用UDP作为传输层协议?

3 个答案:

答案 0 :(得分:18)

  • UDP速度更快。 TCP很慢,因为它需要3路握手。 DNS服务器上的负载也是一个重要因素。 DNS服务器(因为它们使用UDP)不必保持连接。
  • DNS请求通常非常小,非常适合UDP段。
  • UDP不可靠,但可以在应用层添加可靠性。应用程序可以使用UDP,并且可以通过在应用程序层使用超时和重新发送来实现可靠性。

答案 1 :(得分:8)

UDP很便宜。 UDP本身并不可靠,但更高级别的协议 - 如DNS - 可以保持可靠性,例如通过在没有响应的情况下重复UDP数据报。

DNS的情况并非如此。 DNS本身有时会使用UDP(作为其主协议)可靠的传输控制协议TCP)。

当响应数据大小超过512个字节时,以及需要可靠传递的任务(例如区域传输)时使用最后一个。

此外,还有一些解析器实现使用TCP进行所有查询。

答案 2 :(得分:5)

来自Kurose&罗斯Computer Networking - A Top-Down Approach第6版第199页。

enter image description here

enter image description here

enter image description here

enter image description here