0%

DNS解析简要笔记

DNS域名解析包括两种查询方式,一种是递归查询,另一种是迭代查询。客户端在查询IP地址时,向本地域名服务器进行递归查询;若本地域名服务器的数据库有相应数据,则直接返回相应数据;若无相应数据,则本地域名服务器从向根域名服务器开始,进行迭代查询,直至获得最终结果。

递归查询

DNS服务器若不能直接响应解析请求,它将继续请求其它的DNS服务器,直到获得最终的查询结果。查询结果可以是域名主机的IP地址,或者是域名无法解析。无论哪种结果,DNS服务器都会将结果返回给客户端。

举个栗子

当本地域名服务器接收了客户端的查询请求后,本地域名服务器将以客户端的身份向其它DNS服务器查询结果,最后本地域名服务器将最终结果反馈给客户端。客户端只需要等待最终结果,不需要理会查询过程和中间结果。

迭代查询

如果DNS服务器查找不到相应记录,则会向客户端返回一个可能知道结果的域名服务器IP地址,由客户端继续向该可能知道结果的域名服务器发送查询请求,该域名服务器可能会返回给客户端另一个域名服务器IP地址,或返回最终查询结果。

举个栗子

本地域名服务器向根域名服务器发送查询请求,根域名服务器并没有相应记录,只向本地服务器返回一个顶级域名服务器IP地址,引导本地域名服务器向该顶级域名服务器进行查询······直至最后,本地域名服务器获得最终结果。

DNS传输层协议

DNS域名服务器使用53号端口,且同时支持UDP和TCP协议。DNS在进行区域传输(即主服务器与用作冗余备份的从服务器进行数据同步)的时候,因为传送的数据量大,所以使用TCP协议;DNS在进行域名解析的时候,因为数据传送量小,所以使用UDP协议,不需要经过TCP的三次握手,响应速度更快,服务器负载更低。


参考资料

36 张图详解 DNS :网络世界的导航

DNS(域名解析协议)详解

DNS用的是TCP协议还是UDP协议