DNS 查询何时使用 TCP 而不是 UDP?

DNS 查询何时使用 TCP 而不是 UDP?

可能重复:
名称服务器是否必须通过 TCP 来回答查询?

我知道 DNS 对其大多数查询都使用 UDP,但是在什么情况下它会使用 TCP?

答案1

当请求或响应的大小大于单个数据包时(例如具有许多记录的响应或许多 IPv6 响应或大多数 DNSSEC 响应),DNS 使用 TCP。

最大大小最初为 512 字节,但 DNS 协议有一个扩展,允许客户端指示它们可以处理最多 4096 字节的 UDP 响应。

DNSSEC 响应通常大于最大 UDP 大小。

传输请求通常大于最大 UDP 大小,因此也将通过 TCP 完成。

答案2

当响应数据大小超过 512 字节时,或者执行区域传输等任务时,使用传输控制协议 (TCP)。

https://en.wikipedia.org/wiki/Domain_Name_System#DNS_transport_protocols

相关内容