(计算机网络)DNS解析流程及两种途径
在计算机网络中,DNS(Domain Name System)用于 将域名解析为 IP 地址。一个完整的解析过程涉及 递归查询、迭代查询,以及多个关键角色(LDNS、本地域名服务器;根服务器;顶级域名服务器;权威服务器)。
1. DNS 中的关键角色
1.1 本地域名服务器(LDNS, Local DNS Server)
-
由运营商(电信、联通、移动)或企业网络提供,离用户最近。
-
当客户端发起域名解析请求时,第一步就是问 LDNS。
-
LDNS 会查缓存,有结果就直接返回,否则去找根服务器继续解析。
1.2 根域名服务器(Root DNS Server)
-
DNS 系统的起点,全球一共 13 组(A–M),分布在世界各地。
-
作用:告诉你 顶级域名服务器的地址(如
.com、.cn)。 -
不存放最终 IP,只起导航作用。
1.3 顶级域名服务器(TLD DNS Server)
-
按域名后缀分类,例如:
-
.com、.net、.org→ 通用顶级域名 -
.cn、.jp→ 国家顶级域名
-
-
作用:告诉你具体 权威服务器的地址。
1.4 权威域名服务器(Authoritative DNS Server)
-
存放最终的域名 → IP 映射关系。
-
网站管理员在这里配置解析记录:
-
A 记录:域名 → IPv4 地址
-
AAAA 记录:域名 → IPv6 地址
-
CNAME 记录:域名别名映射
-
-
作用:返回最终 IP 地址。
2. 递归查询(Recursive Query)
定义
-
客户端向 DNS 服务器发出请求,要求它 必须返回最终结果。
-
中间查询由该服务器自己完成,客户端只需等待结果。
特点
-
对客户端友好,只发一次请求。
-
服务器压力较大。
示例
-
电脑问 LDNS:“
www.example.com的 IP 是多少?” -
LDNS 自己去问根、TLD、权威服务器,最终把结果返回给客户端。
3. 迭代查询(Iterative Query)
定义
-
客户端向 DNS 服务器请求,服务器 只返回自己知道的最优答案,如果不知道,就告诉客户端“去问谁”。
-
客户端需要多次询问,直到得到结果。
特点
-
服务器压力小。
-
客户端需要多次发请求。
示例
-
客户端问根服务器:“
www.example.com的 IP 是多少?”-
根服务器答:“我不知道,但
.com服务器可能知道。”
-
-
客户端问
.com服务器。-
.com服务器答:“去问 example.com 的权威服务器。”
-
-
客户端问权威服务器,最终拿到 IP。
4. DNS 解析流程
以访问 www.csdn.com 为例:
-
客户端 → LDNS:递归查询,LDNS 必须返回最终 IP。
-
LDNS → 根服务器:迭代查询,根告诉 LDNS 去找
.com服务器。 -
LDNS → 顶级域名服务器 (TLD):迭代查询,TLD 告诉 LDNS 去找
csdn.com的权威服务器。 -
LDNS → 权威服务器:迭代查询,权威服务器返回 IP(如 93.184.216.34)。
-
LDNS → 客户端:把结果返回客户端,并缓存以供下次查询。
说也就是说,DNS解析的时候,既要有客户端的递归,也要有服务端的迭代。
5. 递归 vs 迭代 对比
| 方式 | 谁来完成查询 | 客户端请求次数 | 服务器压力 | 使用场景 |
|---|---|---|---|---|
| 递归查询 | DNS 服务器 | 一次 | 高 | 客户端 → LDNS |
| 迭代查询 | 客户端(或 LDNS) | 多次 | 低 | LDNS → 根/TLD/权威 |
更多推荐
所有评论(0)