跳到主要内容

DNS 的工作原理

· 阅读需 3 分钟
素明诚
Full stack development

1.浏览器缓存检查:

首先,浏览器会查看自己的缓存。如果你之前访问过 www.sumingcheng.cn,浏览器可能已经保存了它的 IP 地址。如果找到了,就会直接使用这个 IP 地址去访问,整个过程在这里结束!

2.操作系统缓存检查:

如果浏览器没有相关缓存,它会查询操作系统的 DNS 缓存。操作系统每次成功解析域名后都会将结果暂时存储。如果操作系统缓存中有该域名的 IP 地址,查询过程在此结束,浏览器会用这个地址去访问网站。

3.本地 DNS 服务器查询:

如果上述两个缓存都没有结果,浏览器会发出一个系统调用,请求操作系统查询配置好的 DNS 服务器。这个服务器通常是由你的网络服务提供商 (ISP) 设置的,但也可能是其他公共 DNS 服务器,如 Google DNS (8.8.8.8)。

4.真正的 DNS 查询开始:

a.请求根服务器:

本地 DNS 服务器首先会查询一个 DNS 根服务器。虽然根服务器不知道 www.sumingcheng.cn 的 IP 地址,但它知道哪些服务器负责 .cn 域名,因此它会返回一个 .cn 的顶级域名 (TLD) 服务器的地址。

b.查询.cnTLD 服务器:

本地 DNS 服务器随后会向 .cn TLD 服务器发送查询请求。这个服务器会告诉本地 DNS 服务器哪个权威 DNS 服务器负责 sumingcheng.cn 这个域名。

c.查询权威 DNS 服务器:

然后,本地 DNS 服务器会向 sumingcheng.cn 的权威 DNS 服务器发出请求。这个权威服务器包含了 www.sumingcheng.cn 的确切 IP 地址,并将这个地址返回给本地 DNS 服务器。

5.结果返回给用户:

权威 DNS 服务器的答案随后被返回给本地 DNS 服务器。本地 DNS 服务器将这个答案传递给用户的操作系统,操作系统再把这个 IP 地址传递给浏览器。现在,浏览器可以使用这个 IP 地址与 www.sumingcheng.cn 的服务器建立连接。

6.结果被缓存:

为了加速未来的 DNS 查询,该 IP 地址会在多个级别被缓存:浏览器、操作系统、以及本地 DNS 服务器。

整个过程结束