DNS解析过程

我们在访问网站时先得经过域名DNS解析这一过程,可能很多人对于DNS解析时间平常并没有太在意。性能稳定、响应时间快的DNS域名解析服务与不稳定、响应过慢的DNS的域名解析时间可能相差1秒,而对于网站存在过多的域名解析请求,这个时间积累起来就非常地多了。

1. DNS

DNS是域名系统 (Domain Name System)的英文缩写。在Internet上域名与IP地址之间是一对一(或者多对一)。然而机器之间只能通过IP地址进行联系,机器之间的这种转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

2. DNS解析过程

浏览器如何通过域名去查询URL对应的IP(对应服务器地址)?

a. 浏览器缓存:浏览器会按照一定的频率缓存DNS记录
b. 操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中找
c. 路由缓存:路由器也有DNS缓存
d. ISP的DNS服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求
e. 根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)

由上面的过程可知道具体有两种情况,一种是查找缓存,一种是根服务器查找:

1)查找本地域名DNS缓存:
主机解析域名的顺序: 找缓存 -> 找本机的hosts文件 -> 找DNS服务器
查找本地域名DNS缓存

2) 根服务器查询:
如果本地缓存中没有找到你的域名对应的IP地址,就会在根服务器中查询,全球共有13台根逻辑域名服务器。这13台逻辑根域名服务器中名字分别为“A”至“M”,其中1台主根服务器(在美国),12台辅根服务器(美国9台,英国1台,瑞典1台,日本1台)。

在根域名服务器中储存了负责每个域(如COM、NET、ORG等)的解析的域名服务器的地址信息。根域名服务器会将其管辖范围内顶级域名(如.com)服务器IP告诉本地DNS服务器,这样你的域名查询请求会进入到相应的顶级域名服务器。顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名(不带任何前缀的域名,如xxx.com)服务器的IP地址告诉本地DNS服务器。如果还是没有找到,则进入到下一级域名服务器进行查找。如此重复,直到找到正确的结果为止。
根服务器查询
查找到正确的域名对应IP地址后,本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个IP地址与web服务器建立链接。于是浏览器就正常访问网站了。

baishiwen wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!