文档介绍:DNS 使用 UDP 协议还是 TCP 协议传输一、 DNS 报文角度来看主要是查看 DNS 报文首部中的标志字段[QR][opcode][AA][TC][RD][RA][(zone)][rcode] 当客户端发出 DNS 查询请求, 从服务器收到的响应报文中的 TC ( 删减标志) 比特被置为 1 时, 表示应答总长度超过 512 字节, 只返回前 512 个字节, 这时 DNS 就需要使用 TCP 重发原来的查询请求。因为在 UDP 的应用程序中,其应用程序被限制在 512 个字节或更小, 因此 DNS 报文穿数据流只能有 512 字节,而 TCP 能将用户的数据流分为一些报文段,因此 TCP 就能用多个报文段去传超过 512 字节的数据流或是任意长度的数据流。二、应用角度来看 DNS 的主辅名字服务器在同步时使用 TCP 协议。辅名字服务器一般每 3 小时向主名字服务器发起查询, 看主服务器是否有新的记录变动, 如有变动, 将执行一次区域传送, 区域传送使用 TCP 协议。区域传输用 TCP ,其他用 UDP 。什么是区域传输? dns 的规范规定了 2 种类型的 dns 服务器, 一个叫主 dns 服务器, 一个叫辅助 dns 服务器。在一个区中主 dns 服务器从自己本机的数据文件中读取该区的 dns 数据信息, 而辅助 dn s 服务器则从区的权威 dns 服务器中读取该区的 dns 数据信息。当一个辅助 dns 服务器启动时,它需要与主 dns 服务器通信,并加载数据信息,这就叫做区传送( zone transfer ). 通俗地讲, 就是 DNS 服务器之间传输时使用 TCP , 而客户端与 DNS 服务器之间传输时用的是 UDP 。