DNS(Domain Name System)把域名映射到 IP 地址,也保存邮件服务器等其他记录。它不是一台存放全世界域名的中央服务器,而是一套分层、分布式的名称系统。

一次递归查询

浏览器需要解析 www.berkeley.edu 时,设备上的存根解析器(stub resolver)通常把问题交给递归解析器。若答案不在缓存里,递归解析器会逐级查询:

  1. 根服务器指出 .edu 顶级域的名称服务器。
  2. .edu 服务器指出 berkeley.edu 的权威名称服务器。
  3. 权威服务器返回该域名对应的记录。

这像寄信时逐级查找地址:根目录只告诉你下一层由谁管理,不必知道每个具体住址。递归解析器拿到结果后返回给客户端,并可按记录的 TTL 缓存一段时间,减少后续查询。

记录与传输

DNS 记录包含名称、类型、值和缓存时长等信息。常见的 A 记录指向 IPv4 地址,AAAA 记录指向 IPv6 地址,MX 记录描述邮件服务器。

常规 DNS 查询通常使用 UDP 53 端口;响应过大、区域传送或其他需要可靠字节流的情形会使用 TCP。UDP 查询丢失时,解析器可以重试;并非所有 DNS 通信都只使用 UDP。