这个过程叫做DNS解析,下面我将详细解释它是如何工作的。
要明白域名是分层级的,像一个倒置的树:
根域名 最高级,用一个点. 表示。
顶级域 如.com,.org,.net,.cn 等。
二级域 你注册的域名部分,如google。
子域名 你自己创建的部分,如www,mail。
所以www.google.com. 的完整形式实际上是www.google.com.(最后有一个点,代表根,通常省略)。
当你浏览器里输入www.example.com 并按下回车时,会发生一系列复杂的查询过程,这个过程通常是递归的,意味着你的计算机会委托一个专门的服务器(递归解析器)去完成所有复杂的查询工作,它自己只等待最终结果。
整个过程可以概括为下图所示的8个步骤:
flowchart TD
A[用户在浏览器输入<br>www.example.com] --> B[浏览器检查缓存]
B -- 缓存未命中 --> C[操作系统检查缓存/Hosts文件]
C -- 缓存未命中 --> D[向递归解析器<br>ISP DNS Server发送查询]
D --> E[递归解析器检查缓存]
E -- 缓存未命中 --> F[向根域名服务器查询]
F -- 返回 .com TLD服务器地址 --> E
E -- 继续查询 --> G[向 .com TLD服务器查询]
G -- 返回 example.com 权威服务器地址 --> E
E -- 继续查询 --> H[向 example.com 权威服务器查询]
H -- 返回 www.example.com 的IP地址 --> E
E -- 缓存结果 --> I[递归解析器将IP地址<br>返回给客户端]
I --> J[浏览器向该IP地址<br>发起HTTP连接]下面我们来详细说明图中的每一个阶段:
1、浏览器缓存检查
* 浏览器首先会检查自己的缓存里是否已经有www.example.com 对应的IP地址,如果有,直接使用,整个过程结束。
2、操作系统缓存和 Hosts 文件检查
* 如果浏览器缓存没有,操作系统会检查其本地缓存(如 Windows 的 DNS 客户端服务缓存,或 macOS/Linux 的nscd 缓存)。
* 操作系统会检查hosts 文件(位于C:\Windows\System32\drivers\etc\hosts 或/etc/hosts),这个文件可以手动设置主机名到IP的映射,优先级很高。
3、向递归解析器发送查询
* 如果本地都没有记录,你的计算机会将查询请求发送到递归解析器,这个解析器通常由你的网络服务提供商(ISP)自动分配,你也可以手动设置为公共DNS,如114.114.114.114(国内)或8.8.8.8(Google)。
4、递归解析器的工作(迭代查询)
* 递归解析器收到任务后,它会代表你的电脑,从一个根开始,一层一层地问下去,直到拿到最终答案,这个过程对你是透明的。
查询根域名服务器 递归解析器首先去问13组根域名服务器之一:“请问www.example.com 的IP是什么?” 根服务器不直接知道答案,但它会说:“我不知道www.example.com,但我知道.com 的顶级域服务器在哪里,你去问它吧”,并返回.com 顶级域服务器的地址列表。
查询顶级域服务器 递归解析器接着去问.com 的TLD服务器:“请问www.example.com 的IP是什么?” TLD服务器回答:“我不知道www,但我知道example.com 的权威域名服务器在哪里,你去问它吧”,并返回example.com 的权威服务器地址列表。
查询权威域名服务器 递归解析器去问example.com 的权威域名服务器:“请问www.example.com 的IP是什么?” 这次,权威服务器知道答案,因为它负责管理example.com 这个域的所有记录,它会返回www.example.com 对应的IP地址,例如93.184.216.34。
5、返回结果并缓存
* 递归解析器终于拿到了IP地址,它首先会把这个结果在自己的缓存里保存一段时间(根据记录的TTL值决定),以便下次有其他用户查询相同域名时能快速响应。
* 它将最终的IP地址(93.184.216.34)返回给你的操作系统,操作系统也会缓存这个结果,最后再传递给浏览器。
6、建立连接
* 浏览器拿到了93.184.216.34 这个IP地址,现在它就可以向这个地址的80(HTTP)或443(HTTPS)端口发起TCP连接,开始加载网页了。
递归解析器 你的电脑的“DNS代理”,负责替你完成所有繁琐的查询步骤,你通常直接与之通信。
根域名服务器 全球只有13组(但每个组都有很多镜像服务器),它们是DNS查询的起点,知道所有顶级域服务器的位置。
TLD服务器 负责管理像.com,.net 这样的顶级域名,知道每个顶级域下所有权威服务器的位置。
权威域名服务器 是域名记录的“最终来源”,它持有你所查询域名的真实映射记录(A记录、CNAME记录等)。
除了最常用的A记录(将域名映射到 IPv4 地址)和AAAA记录(映射到 IPv6 地址)外,DNS 还有其他重要记录:
CNAME记录 别名记录,将一个域名指向另一个域名。www.example.com 是一个 CNAME,指向example.com。
MX记录 邮件交换记录,指定负责接收邮件的服务器。
NS记录 指定该域名由哪台权威服务器来解析。
希望这个详细的解释能帮助你完全理解 DNS 是如何将主机名映射到 IP 地址的!
文章摘自:https://idc.huochengrm.cn/dns/19875.html
评论
信霁
回复DNS通过查询域名解析记录,将主机名映射到对应的IP地址,实现网络访问。
学晨菲
回复DNS解析是将域名转换为IP地址的过程,涉及递归查询,包括检查缓存、查询根域名服务器、顶级域服务器和权威域名服务器,最终返回IP地址以建立连接。
尹思天
回复DNS解析是将域名转换为IP地址的过程,通过递归查询从根域名服务器到顶级域名服务器再到权威域名服务器,最终获取到对应域名的IP地址。
池西华
回复DNS通过查询域名解析系统,将主机名与对应的IP地址进行映射,实现网络中设备的名称与地址的转换,确保用户可以通过易记的主机名访问网络资源。