域名解析时间是指在解析域名以获得相应的IP地址并将其返回给客户端的过程中所花费的时间。
当我们发起对域名的访问时,我们不能直接发起对响应站点的访问。我们需要通过DNS获取域名和ip地址的对应关系,获取解析记录后才能发起访问。
解析过程的具体流程大致如下:
客户端发起对域名的访问。
浏览器会先查询浏览器、系统缓存、本地HOSTS文件等本地信息,如果有结果会直接通知客户端,解析过程结束。
如果没有本地结果,浏览器会请求递归服务器,递归服务器会通知客户端结果,解析过程结束。
如果递归服务器没有结果,就委托递归服务器进行全局递归查询,先请求根域名服务器。
根域名服务器将域名所在的顶级域名服务器通知递归服务器,递归服务器向顶级服务器发出请求。
顶级服务器将域名所在的权威域名服务器通知递归服务器,权威域名服务器将解析记录通知递归服务器。
服务器递归地通知客户机结果,解析过程结束。
可以看出,影响域名解析耗时的因素如下:
本地缓存
如果在本地缓存中存在域名和IP地址的对应关系,则直接在本地计算机上获取结果,不需要进行全局递归查询,这样解析时间大大缩短,但是缓存对解析安全性影响很大。
递归服务器
一般来说,我们无法决定用户使用哪个DNS服务器。大多数初级用户使用当地ISP自动获取的DNS服务器,而一些用户使用第三方DNS服务器,如Open DNS或Google DNS。
不过你可以建议你的用户使用Google DNS,比电信或者网通自动获取的DNS服务器要快很多。
权威域名服务器
权威域名服务器是耗时的域名解析的关键。通常,解析服务器是单节点和单线的。如果域名距离较远,可能会因为跨域跨网造成较大的延迟。如果域名访问量大,也会造成线路拥堵。所以为了减少解析时间,建议选择性能更好、多节点多线路的权威域名服务器。