官方解释:DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布 式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

通俗的讲,我们更习惯于记住一个网站的名字,比如www.baidu.com,而不是记住它的ip地址,比如: 167.23.10.2。

将主机域名转换为ip地址,属于应用层协议,使用UDP传输。(DNS应用层协议,以前有个考官问过)

 

 

 过程:

1) 当用户输入域名时,浏览器先检查自己的缓存中是否有这个域名映射的ip地址,有,解析结束。

2)若没命中,则检查操作系统缓存(如Windows的hosts)中有没有解析过的结果,有,解析结束。

3)若无命中,则请求本地域名服务器解析( LDNS)。

4)若LDNS没有命中就直接跳到根域名服务器请求解析。根域名服务器返回给LDNS一个主域名服务器地址。

5) 此时LDNS再发送请求给上一步返回的gTLD( 通用顶级域), 接受请求的gTLD查找并返回这个域名对应的Name Server的地址

6) Name Server根据映射关系表找到目标ip,返回给LDNS

7) LDNS缓存这个域名和对应的ip, 把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存 中,域名解析过程至此结束

 

一、主机向本地域名服务器的查询一般都是采用递归查询。

二、本地域名服务器向根域名服务器的查询的迭代查询。

 

总结: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓 存,主域名服务器缓存。