DNS缓存

394 阅读2分钟

什么是DNS

全称 Domain Name System ,即域名系统。

万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串

。DNS协议运行在UDP协议之上,使用端口号53。

DNS解析

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

www.baidu.com (域名) - DNS解析 -> 110.242.68.3(IP地址)

DNS缓存

有dns的地方,就有缓存。浏览器、操作系统、Local DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。

image.png

DNS查找过程

  1. 首先搜索==浏览器==自身的DNS缓存,如果存在,则域名解析到此完成。
  2. 如果浏览器自身的缓存里面没有找到对应的条目,那么会尝试读取操作系统的==hosts文件==看是否存在对应的映射关系,如果存在,则域名解析到此完成。
  3. 如果本地hosts文件不存在映射关系,主机 m.n.com 向它的本地 DNS 服务器(==ISP服务器==,或者自己手动设置的DNS服务器)发送一个 DNS 查询报文,其中包含期待被转换的主机名 a.b.com;
  4. 本地 DNS 服务器将该报文转发到根 DNS 服务器;
  5. 该根 DNS 服务器注意到 com 前缀,便向本地 DNS 服务器返回 com 对应的顶级域 DNS 服务器(TLD)的 IP 地址列表。

意思就是,我不知道 a.b.com 的 IP,不过这些 TLD 服务器可能知道,你去问他们吧;

  1. 本地 DNS 服务器则向其中一台 TLD 服务器发送查询报文;

  2. 该 TLD 服务器注意到 b.com 前缀,便向本地 DNS 服务器返回权威 DNS 服务器的 IP 地址。

意思就是,我不知道 a.b.com 的 IP,不过这些权威服务器可能知道,你去问他们吧;

  1. 本地 DNS 服务器又向其中一台权威服务器发送查询报文;

终于,该权威服务器返回了 a.b.com 的 IP 地址;

本地 DNS 服务器将 a.b.com 跟 IP 地址的映射返回给主机 m.n.com,m.n.com 就可以用该 IP 向 a.b.com 发送请求啦。

参考: segmentfault.com/a/119000001…

juejin.cn/post/699034…