dns可以使用tcp与udp两种协议,分别在什么情况下使用

dns可以使用tcp与udp两种协议,分别在什么情况下使用
2024-12-13 00:40:07
推荐回答(4个)
回答1:

  现在就来说说DNS分别在什么情况下使用这两种协议。

  1.  如果用wireshark、sniffer或古老些的tcpdump抓包分析,会发现几乎所有的情况都是在使用UDP,使用TCP的情况非常罕见,神秘兮兮。其实当解析器发出一个request后,返回的response中的tc删节标志比特位被置1时,说明反馈报文因为超长而有删节。这是因为UDP的报文最大长度为512字节。解析器发现后,将使用TCP重发request,TCP允许报文长度超过512字节。既然TCP能将data stream分成多个segment,它就能用更多的segment来传送任意长度的数据。


  2. 另外一种情况是,当一个域的辅助域名服务器启动时,将从该域的主域名服务器primary DNS server执行区域传送。除此之外,辅域名服务器也会定时(一般时3小时)向PDS进行查询以便了解SOA的数据是否有变动。如有变动,也会执行一次区域传送。区域传送将使用TCP而不是UDP,因为传送的数据量比一个request或response多得多。

  DNS主要还是使用UDP,解析器还是服务端都必须自己处理重传和超时。DNS往往需要跨越广域网或互联网,分组丢失率和往返时间的不确定性要更大些,这对于DNS客户端来说是个考验,好的重传和超时检测就显得更重要了。

回答2:

DNS一般情况下使用UDP通讯,但有两种情况例外:
1、当客户端发出DNS查询请求,从服务器收到的响应报文中的TC(删减标志)比特被置为1时,此时意味着服务器响应长度超过512字节,而仅返回前512字节(udp报文最长为512B 而tcp无此限制)。在遇到这种情况时,客户端会使用TCP重发起原来的DNS查询请求,它将运行返回的响应超过512字节。
2、DNS的主辅名字服务器在同步时使用TCP协议。辅名字服务器一般每3小时向主名字服务器发起查询,看主服务器是否有新的记录变动,如有变动,将执行一次区域传送,区域传送使用TCP协议。

回答3:

tcp/udp是两种连接方式
跟DNS没关系
tcp是基于安全的连接,比如说网页
udp是基于快速的连接,比如游戏,
具体资料你可以去网上搜
学问很深
估计看一个月都看不完

回答4:

可靠传输基于TCP
不可靠传输基于UDP