面试官神级问题:DNS 服务器是否可以加快我们的网络访问速度?

众所周知,DNS 服务器在网络访问中起着极其重要的作用,它将 URL 域名转换为 IP 地址以供设备访问,既然 DNS 服务器可以承担将 URL 域名转换为 IP 地址的任务,那么 DNS 服务器是否可以加快我们的网络访问速度呢?

案例 1:如果服务器有多个 IP 地址
当一个网站为业务需要部署了多台服务器,并且这些服务器的 IP 地址不同时,DNS 服务器在响应 DNS 查询时会将所有这些 IP 地址返回给我们的计算机。通常,我们的电脑会选择第一个 IP 地址进行访问。换句话说,在这种情况下,我们访问网站的延迟取决于我们第一台服务器的网络延迟。
图 1:如果服务器有多个 IP 地址

如果我们运气不好,电脑恰好选择了最差的地址,我们的上网体验就会最差,好在我们要访问的网站的服务器都在同一个城市,不同服务器的访问体验应该也不错。
案例 2:如果服务器分布在不同的地方
现在情况越来越糟,有一个城市,服务器位于离我们住处数千公里的地方,这时候如果我们的电脑选择最远的服务器,可想而知网络访问体验肯定会变差。
图 2:如果服务器分布在不同的地方

案例 3:如果服务器分布在不同的运营商网络中
情况越来越糟。为了给不同的 ISP 用户提供最佳的体验,服务器设计为在每个 ISP 网络中部署一台。
图 3:如果服务器分布在不同的运营商网络中

这时候,如果我们不幸选择了和我们不在同一个 ISP 的服务器,因为不同的 ISP 经常通过几个固定接口的机房进行数据通信,这会导致我们访问服务器的流量来回循环. 这种情况通常会导致可怕的经历。
案例 4:不同的 DNS 服务器
当我们选择不同的 DNS 服务器时,我们会有怎样的体验?
假设我们住在 A 市,我们设置的 DNS 服务器是 B 市,距离数千公里,很明显,我们的每一个 HTTP 请求都会被转发到 B 市的 DNS 服务器,然后 B 市的服务器会返回服务器的 IP 地址,这显然比我们选择 A 市的 DNS 服务器要差。
图 4:不同的 DNS 服务器

案例 5:不同的 DNS 服务器会影响我们的网络下载速度吗?
答案显然是否定的。正如开头所说,DNS 服务器只负责为我们解析 URL 对应的服务器 IP 地址,我们的下载速率取决于 ISP 提供给我们的带宽,DNS 服务器对此没有影响。
总结
显然,DNS 服务器的选择会影响我们网站的访问速度;
DNS 服务器的选择不会影响我们的下载速度;
设置 DNS 时,可以尝试 ping DNS 服务器地址,选择 ping 延迟最小的 DNS 服务器作为主 DNS,可能会带来更好的体验。
评论