DNS
1. 它是分层的树状结构
互联网太大了,不可能把全世界所有的域名和 IP 对应关系都存在一台服务器上(不仅查得慢,一旦死机全网瘫痪)。因此,DNS 采用了分布式的树状层次结构:
- 根域名服务器 (Root DNS): 最高级别的老大哥,全球只有 13 组(注意是组,不是台)。它不直接告诉你最终 IP,但它知道该去问谁。
- 顶级域名服务器 (TLD DNS): 负责管理某个顶级域名,比如
.com、.cn、.edu。 - 权限域名服务器 (Authoritative DNS): 负责一个具体区域的解析,比如你学校官网的域名就是由你们学校的权限服务器管理的。
- 本地域名服务器 (Local DNS): 也就是你电脑网络设置里的那个 DNS(通常由你的宽带运营商比如电信、联通提供)。它是你上网查域名的**“第一代理人”**。
2. 核心考点:两种查询方式(必考!)
当你输入一个网址,你的电脑向“本地域名服务器”求助后,本地域名服务器去互联网上找 IP 的过程,分为两种截然不同的方式。记住这两个词:递归和 迭代 。
- 递归查询 (Recursive) —— “大包大揽”
- 逻辑: 客户机问本地域名服务器,本地域名服务器不知道,就去问根服务器;根服务器不知道,根服务器亲自去帮着问顶级域名服务器……直到找到结果,再原路一层层返回来。
- 特点: 对于查询者来说最省事,交给你了你就得给我最终结果。但这会导致 根服务器的压力极大 ,所以互联网中极少全链路使用递归。
- 迭代查询 (Iterative) —— “踢皮球”
- 逻辑: 本地域名服务器问根服务器,根说:“我不知道,但我给你指条明路,你去问管理
.com的那个顶级服务器吧。” 于是,本地域名服务器自己跑去问顶级服务器;顶级服务器又说:“你去问权限服务器吧。” 本地域名服务器再跑去问权限服务器,最后拿到 IP。 - 特点: 绝大多数 DNS 查询的实际工作模式。根服务器和顶级服务器只负责指路,跑腿的活儿全由本地域名服务器干。
- 逻辑: 本地域名服务器问根服务器,根说:“我不知道,但我给你指条明路,你去问管理
3. 使用的协议与端口
- 协议: 绝大多数情况下,DNS 查询为了追求速度,使用的是无连接的 UDP 协议。
- 端口: 53 。