计算机网络计算机网络学习网络技术

说一说DNS解析过程

2019-03-03  本文已影响3人  北国雪WRG

DNS提供的服务简单来说就是查询域名对应的IP

各种DNS服务器

  1. 根DNS:13个根"服务器",大部分在老美家。你可能会问:全球的服务13台服务器就解决了?岂不是比双十一淘宝厉害好几个档次。实际上,这里应该说是13个服务器群,每一个根服务器是一个冗余的服务器网络,只不过对外表现是一个服务器。阿里还是很厉害的。
  2. 顶级DNS服务器:顶级的意思是顶级域名,比如教育的edu,非盈利组织的org,国内的cn,hk等等,每个顶级服务器(群),负责对应后缀的请求。并且他们记录了自己旗下的权威DNS。
  3. 权威DNS:一个干实际事情的DNS服务器,顶级DNS只是分配任务,权威DNS像字典一样提供查询功能。
  4. 本地DNS服务器:学校或者单位一般都有自己的DNS服务器,这些服务器缓存了大量IP地址和域名,来提高相应速度。
  5. hosts文件:这只是操作系统中的一个文件,缓存域名和ip地址的关系。Linux和windows以及mac都有这个文件。
  6. 浏览器缓存:浏览器会缓存访问过的域名和IP地址,来提供速度,毕竟他们之间的映射关系很稳定。

举个例子

说了一堆,来举个例子吧!
我们在浏览器中敲www.baidu.com会发生啥呢?

有下面两种查询方式:

递归查询

  1. 浏览器查询缓存,是否有百度的ip,如果有结束
  2. hosts文件中是否有百度的ip地址,如果有结束
  3. 如果本地DNS有百度的ip地址,如果有,本地DNS将其返回给请求主机,然后结束
  4. 根服务器根据com后缀,将请求转发给顶级域名服务器
  5. 顶级域名服务器查询自己的权威DNS服务器
  6. 权威DNS域名服务器查询到百度的IP,将结果返回给顶级,顶级返回给根,根返回给本地,本地返回给请求主机,结束。
图文序号不对应

迭代查询

  1. 浏览器查询缓存,是否有百度的ip,如果有结束
  2. hosts文件中是否有百度的ip地址,如果有结束
  3. 如果本地DNS有百度的ip地址,如果有,本地DNS将其返回给请求主机,然后结束
    (前三步不变)
  4. 根服务器根据com后缀,将顶级服务器IP告诉给本地服务器
  5. 本地服务器访问顶级DNS,顶级DNS将权威DNS返回给本地
  6. 本地服务器访问权威DNS,权威DNS将百度IP返回给本地
  7. 本地将百度IP返回给请求主机
图文序号不对应

补充

DNS是基于UDP的服务

上一篇 下一篇

猜你喜欢

热点阅读