首页 > 其他 > 详细

DNS分别在什么情况下使用UDP和TCP?

时间:2014-11-30 06:13:50      阅读:382      评论:0      收藏:0      [点我收藏+]

看到一个题目问的是:DNS分别在什么情况下使用UDP和TCP?

仔细查了一下发现可查询的资料很少,大部分都把DNS所用协议归为UDP了其实不然,DNS同时占用UDP和TCP端口53,这种单个应用协议同时使用两种传输协议的情况在TCP/IP情况下是很少见的,DNS在使用TCP主要是在两种情况下,第一是其实当解析器发出一个request后,返回的response中的tc删节标志比特位被置1时,说明反馈报文因为超长而有删节。这是因为UDP的报文最大长度为512字节。解析器发现后,将使用TCP重发request,TCP允许报文长度超过512字节。既然TCP能将data stream分成多个segment,它就能用更多的segment来传送任意长度的数据。第二种情况是当一个域的辅助域名服务器启动时,将从该域的主域名服务器primary DNS server执行区域传送。除此之外,辅域名服务器也会定时(一般时3小时)向PDS进行查询以便了解SOA的数据是否有变动。如有变动,也会执行一次区域传送。区域传送将使用TCP而不是UDP,因为传送的数据量比一个request或response多得多。

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

TCP和UDP实在是有太多的东西值得去学,还有太多不懂,继续!

DNS分别在什么情况下使用UDP和TCP?

原文:http://www.cnblogs.com/coderchuanyu/p/4132348.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!