作者:QX封面精选 | 来源:互联网 | 2023-05-25 11:14
最近在了解DNS协议,所以在接下来几天就会把DNS协议的东西记录一下,阅读持续发表的内容,你也会更懂DNS协议的!协议基础都要求严谨,这个不像是路由器和交换机直接配置能看到效果,协议都是理论!
用UDP还是用TCP
注意到D N S名字服务器使用的熟知端口号无论对U D P还是T C P都是5 3。这意味着D N S均支持U D P和T C P访问,但我们使用t c p d u m p观察的所有例子都是采用U D P。那么这两种协议都在什么情况下采用以及采用的理由都是什么呢?
当名字解析器发出一个查询请求,并且返回响应中的TC(删减标志)比特被设置为1时,它就意味着响应的长度超过了5 1 2个字节,而仅返回前5 1 2个字节。在遇到这种情况时,名字解析器通常使用T C P重发原来的查询请求,它将允许返回的响应超过5 1 2个字节。既然T C P能将用户的数据流分为一些报文段,它就能用多个报文段来传送任意长度的用户数据。
此外,当一个域的辅助名字服务器在启动时,将从该域的主名字服务器执行区域传送。我们也说过辅助服务器将定时(通常是3小时)向主服务器进行查询以便了解主服务器数据是否发生变动。如果有变动,将执行一次区域传送。区域传送将使用T C P,因为这里传送的数据远比一个查询或响应多得多。
既然D N S主要使用U D P,无论是名字解析器还是名字服务器都必须自己处理超时和重传。此外,不像其他的使用U D P的I n t e r n e t应用(T F T P、B O O T P和S N M P),大部分操作集中在局域网上,D N S查询和响应通常经过广域网。分组丢失率和往返时间的不确定性在广域网上比局域网上更大。这样对于D N S客户程序,一个好的重传和超时程序就显得更重要了。