个性化阅读
专注于IT技术分析

为什么DNS使用UDP而不使用TCP?

DNS是应用程序层协议。所有应用程序层协议都使用UDP和TCP这两种传输层协议之一。 TCP是可靠的, 而UDP是不可靠的。 DNS应该是可靠的, 但它使用UDP, 为什么呢?

下列有关传输层上的TCP和UDP的有趣事实证明了上述观点。

1)

UDP快得多。 TCP很慢, 因为它需要3次握手。 DNS服务器上的负载也是一个重要因素。 DNS服务器(因为它们使用UDP)无需保持连接。

2)

DNS请求通常很小, 并且非常适合UDP段。

2)

UDP不可靠, 但是可以在应用程序层上增加可靠性。应用程序可以使用UDP, 并且可以通过使用超时来使其可靠并在应用程序层重新发送。

实际上, DNS主要使用端口号53上的用户数据报协议(UDP)来处理请求。 DNS查询由来自客户端的单个UDP请求和来自服务器的单个UDP响应组成。当答案的长度超过512字节且客户端和服务器均支持EDNS时, 将使用较大的UDP数据包。否则, 将使用传输控制协议(TCP)再次发送查询。 TCP还用于诸如区域传输之类的任务。一些解析器实现将TCP用于所有查询。

https://zh.wikipedia.org/wiki/Domain_Name_System#DNS_protocol_transport

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

赞(0) 打赏
未经允许不得转载:srcmini » 为什么DNS使用UDP而不使用TCP?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏