下面我将从简单到详细地解释这个过程。
你在浏览器输入网址后,你的电脑会询问DNS服务器:“www.google.com
的IP地址是什么?”,DNS服务器查找到对应的IP地址后返回给你的电脑,浏览器就能通过这个IP地址连接到目标网站了。
整个过程涉及多个步骤和角色,但通常瞬间完成,其核心流程如下图所示:
flowchart TD A[浏览器缓存] -->|未找到| B[操作系统缓存<br>(本地Hosts文件)] B -->|未找到| C[操作系统将请求发往<br>递归解析器(ISP DNS)] subgraph S [递归解析器全球查询] direction LR C1[根域名服务器] -->|返回顶级域名服务器地址| C2[.com顶级域名服务器] C2 -->|返回权威域名服务器地址| C3[google.com权威域名服务器] C3 -->|返回www.google.com<br>的真实IP地址| C4[获取IP地址] end C -->|发起迭代查询| S S -->|返回IP| D[递归解析器] D -->|返回IP并缓存| E[操作系统<br>缓存结果] E -->|返回IP| F[浏览器<br>访问该IP建立连接]
我们来详细解释图中的每一步:
第1步:检查浏览器缓存
当你打开浏览器输入网址并按下回车时,浏览器首先会检查自己的缓存里是否曾经记录过这个域名对应的IP地址,如果有,就直接使用,查询结束。
第2步:检查操作系统缓存和Hosts文件
如果浏览器缓存没有,请求就会来到你的操作系统(Windows, macOS, Linux),系统会先检查自己的本地DNS缓存,以及一个叫做hosts
的特殊文件(你可以手动在这个文件里设置域名和IP的映射关系),如果这里找到了,也就结束了。
第3步:询问递归DNS解析器(Resolver)
如果本地都没有记录,你的电脑就会把查询请求发送给递归DNS服务器,这个服务器通常是由你的互联网服务提供商(ISP)(如中国电信、中国移动)自动分配给你的,你也可以手动设置为公共DNS服务器(如114.114.114.114
、8.8.8.8
等)。
这个递归解析器的任务就是替你完成整个复杂的查询过程,“递归”地追问到底,直到拿到最终答案为止。
第4步:递归解析器的迭代查询之旅
递归解析器为了找到答案,会开始一个“迭代查询”的过程,它会从DNS体系的根开始一层一层向下问:
1、询问根域名服务器(Root DNS Server):全球只有13组(并非13台机器,而是13个集群,实际服务器数量非常多),根服务器不直接提供具体地址,但它会查看域名(如www.google.com
)的后缀(.com
),然后告诉递归解析器:“我不知道www.google.com
的地址,但我知道.com
顶级域名服务器在哪里,你去问它吧。”
2、询问顶级域名服务器(TLD DNS Server):递归解析器接着去问.com
的顶级域名服务器,顶级域名服务器管理所有以.com
结尾的域名,它查看下一级(google.com
),然后回复递归解析器:“我不知道www
的地址,但我知道google.com
这个域的权威域名服务器的地址,你去问它。”
3、询问权威域名服务器(Authoritative DNS Server):递归解析器最后去问管理google.com
这个域的权威域名服务器(这个服务器的地址通常是由域名注册商为域名配置的),权威服务器终于知道答案了,它会说:“www.google.com
的IP地址是142.251.42.206
”,并把结果返回给递归解析器。
第5步:返回结果并缓存
递归解析器终于拿到了IP地址,它非常高兴,它会把这个结果在自己的缓存里保存一段时间(遵循返回结果中的TTL值),以便下次有其他用户问同样问题时能快速回复。
它把这个IP地址返回给你的操作系统,操作系统也会缓存这个结果,最后再返回给你的浏览器。
第6步:建立连接
浏览器终于拿到了www.google.com
的IP地址,它就可以通过IP地址向目标服务器发起HTTP请求,开始下载网页内容,网页就在你面前加载出来了。
你可以使用一些网络命令来手动查看DNS转换IP的结果:
1、Ping 命令:
ping www.google.com
输出的第一行就会显示解析出来的IP地址。
2、nslookup 命令(所有系统都适用):
nslookup www.google.com
它会直接显示负责解析的DNS服务器和得到的IP地址。
3、dig 命令(Linux/macOS上更强大):
dig www.google.com
它会显示非常详细的DNS解析信息,包括答案记录、TTL、权威服务器等。
角色 | 作用 | 类比 |
递归DNS解析器 | 代表用户完成整个查询过程的“跑腿小哥” | 快递小哥 |
根域名服务器 | 指引你去找到对应顶级域(如.com )的“总问讯处” | 全球电话总机 |
顶级域名服务器 | 管理特定顶级域(如.com ,.org ,.cn )的“分区域问讯处” | 某个国家的电话问讯处 |
权威域名服务器 | 掌握某个特定域名(如google.com )最终IP地址的“最终信息源” | 你要找的那家公司的总机 |
DNS转换IP的本质就是一个分布式的、层级式的全球查询过程,目的是通过易于记忆的域名找到难以记忆的IP地址。
文章摘自:https://idc.huochengrm.cn/dns/13961.html
评论
謇芷云
回复浏览器输入网址后,DNS服务器将域名转换为IP地址,过程涉及多个步骤和角色查询完成解析流程包括检查缓存、询问递归解器以及迭代查询到权威域名的真实 IP 地址等最终获取到目标网站的访问连接通过 Ping 命令或网络工具手动查看 DNS 解析结果的过程简单高效整个过程的本质是分布式的全球查找以找到难以记忆的 ip 链接用户与网站建立联系
夏侯安民
回复DNS通过查询域名解析记录,将域名转换为对应的IP地址。