【为什么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
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- 为什么不推荐在Python中使用import*()
- 为什么C将数组参数视为指针()
- 如何使用Python的网站拦截器(用法图解)
- Web爬网/爬虫–合法还是非法的()
- Python Web将冠状病毒数据收集到MS Excel中
- 网站信息检索|向量空间模型详细介绍
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)
- Alibaba中间件技术系列「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(中)
- 字节跳动 iOS Heimdallr 卡死卡顿监控方案与优化之路