网络协议模型

一个动画讲清楚 DNS 解析流程

个人其它平台技术视频:

  • 小红书ID:码农有道
  • B站ID:码农有道
  • 知乎ID:砖一块一块搬

注:本文对应视频详解版已同步更新在小红书、B站,统一搜索码农有道就能找到。

在我们每天上网的过程中,有一个看不见但却始终在背后工作的系统,它决定了你能否顺利打开网页、访问视频、加载应用。这个系统就是 DNS。

要理解 DNS,我们得先从网络通信的基础说起。在网络世界中,每一台计算机以及其他联网设备,都需要一个“身份标识”,这个标识就是 IP 地址。IP 地址是网络中用于唯一标识设备的一组 32 位二进制数(IPv4),它相当于设备在互联网中的“地址”。当你访问一个网站、发送一条消息,或者加载一个视频时,本质上都是数据在这些 IP 地址之间传递。

问题在于,IP 地址虽然对计算机来说非常高效,但对人类来说却并不友好。比如一串类似 192.168.1.10 或者更复杂的公网 IP 数字,我们很难记住,更不用说在日常生活中频繁使用了。而人类更习惯的是“名字”,比如我们会说baidu、google、Yahoo,而不是去记它们背后的数字地址。

图片

正是基于这种差异,DNS(Domain Name System,域名系统)被设计出来。它的作用非常直观:把人类容易记住的“域名”,转换成计算机能够理解的 IP 地址。换句话说,当你在浏览器中输入一个网址时,DNS 就负责把这个“名字”翻译成对应的“数字地址”,然后让你的设备能够准确找到目标服务器。

举个简单的例子,如果你想访问 Yahoo 网站,你只需要在浏览器里输入 yahoo.com。你完全可以直接输入它对应的 IP 地址来访问网站,但现实中几乎没有人会这么做。一方面是因为 IP 地址难以记忆,另一方面是因为互联网中网站数量庞大,如果每个网站都用数字去记,几乎是不可能完成的任务。因此,我们只需要记住“名字”,剩下的工作交给 DNS 去处理。

当你在浏览器中输入 yahoo.com 的那一刻,DNS 的解析过程就开始了。首先,系统会检查本地缓存,看看是否之前已经访问过这个域名。如果缓存中没有对应记录,请求就会被发送到解析器服务器,这通常是你的互联网服务提供商(ISP)提供的 DNS 服务。

图片

解析器服务器收到请求后,会先查看自己的缓存。如果仍然找不到结果,它就会继续向上查询,进入 DNS 的核心层级结构。

图片

第一站是根服务器。根服务器位于 DNS 系统的最顶层,全球一共有 13 组根服务器,这些服务器分布在世界各地,由多个不同组织共同维护。它们本身并不知道每一个域名的具体 IP 地址,但它们非常关键的一点是:它们知道“应该去哪里继续查”。

图片

当根服务器收到类似 yahoo.com 的查询时,它不会直接给出答案,而是告诉解析器下一步应该去找负责 .com 这一类域名的服务器,也就是顶级域(TLD)服务器。

图片

于是,解析器会转向 .com 顶级域服务器继续查询。顶级域服务器负责管理类似 .com、.net、.org 这样的域名后缀。而 yahoo.com 属于 .com 体系,图片

但 TLD 服务器同样不会直接返回 IP 地址,它只负责告诉你下一步应该找谁。

图片

这个“下一步”,就是权威名称服务器。图片

权威名称服务器才是真正保存域名与 IP 地址对应关系的地方。它就像电话簿里真正记录“名字和号码对应关系”的那一页。当解析器向它发起查询请求时,它会返回 yahoo.com 对应的真实 IP 地址。

图片

到这一步,整个 DNS 查询过程就完成了。解析器拿到 IP 地址后,会把结果返回给你的计算机。此时,你的设备终于知道应该去哪里访问 Yahoo 的服务器,并开始建立连接,加载网页内容。

不过,这个过程并不会每次都从头开始执行。为了提高效率,解析器通常会将查询结果缓存下来。这样,当下一次再有人访问 yahoo.com 时,就可以直接从缓存中获取 IP 地址,而不需要再经历根服务器、顶级域服务器和权威服务器这一整套流程。

图片

如果把 DNS 的工作方式类比到现实生活中,它其实很像电话簿。你想联系一个人,并不需要记住他的电话号码,只需要知道他的名字,然后通过电话簿查询,就能找到对应的联系方式。DNS 所做的事情,本质上就是这件事在互联网世界中的翻译与放大。

从你输入一个网址,到网页出现在屏幕上,中间其实经历了一整套复杂的解析链路。但对于用户来说,这一切都是无感的。DNS 把复杂性隐藏在背后,让互联网回到了“只需要记名字”的简单体验。

这就是 DNS,一个看似不起眼,却支撑着整个互联网正常运转的基础系统。

推荐阅读:

完全整理 | 365篇高质技术文章目录整理

一张图弄清楚缓存架构设计中的经典问题及解决方案

一张图总结系统设计中的33个黄金法则

主宰这个世界的10大算法

彻底理解cookie、session、token

https://mp.weixin.qq.com/s/MDvuJwog0TC3sU-aWXYRzA?scene=1