【计算机网络】深入浅出DNS:网络世界的地址簿与导航系统 - 教程
2025-11-23 21:39 tlnshuju 阅读(0) 评论(0) 收藏 举报前言
TCP/IP 网络协议栈中使用 IP 地址和端口号来确定网络上的一台主机的一个代码。但是IP 地址不方便记忆。于是人们发明了一种叫主机名的东西,是一个字符串,并且使用 hosts 文件来描述主机名和 IP 地址的关系。
最初,凭借互连网信息中心(SRI-NIC)来管理这个 hosts 文档的。
- 如果一个新计算机要接入网络,或者某个计算机 IP 变更,都需要到信息中心申请变更 hosts 文件。
- 其他计算机也需要定期下载更新新版本的 hosts 文件才能正确上网。
但是产生了 DNS 系统就是这样就太麻烦了,于。(域名服务器)
一个组织的系统管理机构,维护系统内的每个主机的 IP 和主机名的对应关系。
如果新计算机接入网络,将这个信息注册到数据库中;
后面用户输入域名的时候,会自动查询 DNS 服务器,由 DNS 服务器检索数据库, 得到对应的 IP 地址。
域名(如:www.google.com):就像一个人的名字。我们记名字很容易,但很难记住他家的具体经纬度坐标。
IP地址(如:142.251.42.206):就像这个人的“经纬度坐标”或“电话号码”。这是计算机在网络上定位另一台计算机的唯一方式。
DNS的作用就是:当你在浏览器里输入一个名字(域名)时,它帮你查到这个名字对应的电话号码(IP地址),这样你的浏览器才能打电话(建立连接)给正确的服务器。
本文章就是和大家简单介绍一下 DNS 技术。
1. 前置
域名分析:
我们以一个完整的域名:
mail.server.example.com.为例根域:这是域名系统中的最高层级。在我们输入的时候通常是被忽略的。其中上面域名中最后末尾的
.就是根域。顶级域:这是域名框架中的紧接着根域的分支。它通常分为两类:
- 通用顶级域(gTLD):如 .com(商业机构),.org(非营利组织),.net(网络机构),以及新的如 .app, .io, .ai 等
- 国家及地区顶级域(ccTLD):如 .cn(中国),.us(美国),.jp(日本)等。
同时:管理 .com 的TLD服务器就知道所有以 .com 结尾的二级域名(如 example.com)的权威服务器在哪里。
其中上面的域名中的.com就是一个顶级域二级域:这是我们自己/公司自行注册的部分了。我们拥有对这个域名的控制权,可以自主创建下一级的子域名,并设置对应的DNS记录。
整个域名所有权的核心。就是这一级
其中上面的域名中的
example就是一个二级域。子域名:这是由二级域名的所有者自由创建的,无需额外注册,也无需付费。
我们可以把 example.com 这个一个大区域划分成多个区域,用于不同的服务。(其中上面的
.server就是二级域下的一个子域名)www.example.com -> 网站
mail.example.com -> 邮件服务器
server.example.com -> 某台特定服务器
子域名可以有多级,比如 mail.server1.ny.example.com。
小结:
域名之间的层级关系,大家能够用类比:文件系统的目录树
想象一下电脑档案路径,比如:C:\Users\YourName\Documents\example.docx
这个路径是从大到小,从左到右组织的:
C: -> 盘符(最顶层)
Users -> 文件夹
YourName -> 子文件夹
Documents -> 子文件夹
example.docx -> 具体的文件
域名体系的组织方式与此高度相似,只是方向相反:从右到左,从小范围到大范围。
树状图:
理解域名:
我们应该如何理解域名呢?
一个域名就是一块“数字领土”。当你注册了 example.com,你就相当于在互联网世界里拥有了一块叫 example.com 的领地。
管辖权通过:在这块领土内,你拥有绝对的管理权。你能够:
划分区域:创建子域名,就像在领地上划分区域。例如:“办公区”(office.example.com)、“生活区”(home.example.com)、“仓库区”(storage.example.com)。
制定规则:设置 DNS 记录,就像制定访问的规则。比如:当我们在 DNS 中设置了一个 www.example.com 的对应 ip 地址。那么就是告诉 DNS 当有人需要来到 www 的区域上的时候,请去往对应的 ip……
层次性:这种领土是层层嵌套的。
.com 是一个顶级领土(比如一个“商业国家”)。
example 是你在这个商业国家里注册的一块私人领地。
www 是你私人领地上盖的一栋具体建筑。
小结:
- “域”的本质是一个管理边界,它界定了一块你拥有控制权的命名空间。
2. DNS 查询过程
前置:DNS 服务器:
DNS一个单一的服务器就是不,而是一个全球分布的层级架构,主要分为四层:
根域名服务器:全球只有13组(注意是组,每组都有很多台镜像服务器),它们知道所有顶级域(如 .com, .net, .cn)的信息。
顶级域(TLD)域名服务器:负责管理特定的顶级域。比如 .com TLD服务器知道所有以 .com 结尾的域名的授权信息。
权威域名服务器:是域名真正的主人管理的服务器。它存储着该域名下所有子域名(如 www, mail)和其IP地址的最终映射关系。
本地DNS服务器:通常由你的网络运营商(如电信、联通)提供,或者是你自己设置的。它是你电脑发起 DNS 查询的“第一站”和“代理”。
下面我们来讲解 DNS 的查询过程:
浏览器缓存:我们在浏览器输入 www.example.com 后,浏览器第一会检查自己的缓存里有没有该域名的IP地址。假如有(并且没过期),直接使用,解析结束。
操作系统缓存:假如浏览器缓存没有,浏览器会去询问操作系统的缓存。在Windows里是 hosts 文件,在Mac/Linux里也是 /etc/hosts 文件以及系统自身的 DNS 缓存。
询问本地 DNS 服务器:如果前两步都没找到,你的电脑就会把查询请求发送给本地DNS服务器(这个地址通常在连接网络时自动获取)。
本地DNS服务器的查询(递归查询):(先查本地 DNS 的缓存)我们的电脑对本地 DNS 服务器说:“帮我找到 www.example.com 的IP”。接下来,本地DNS服务器就开始替你去奔波了:
询问根域名服务器:本地 DNS 服务器最初去问 13 个根服务器之一:“你知道 www.example.com 在哪吗?” 根服务器不会直接给出答案,但它会回复说:“我不知道 www.example.com 的IP,但我可以告诉你 .com 顶级域服务器的地址,你去问它吧。”
询问顶级域(TLD)服务器通过:本地DNS服务器拿着根服务器给的地址,去问 .com TLD服务器:“你知道 www.example.com 在哪吗?” TLD服务器同样不会给出最终答案,但它会回复:“我不知道 www.example.com 的IP,但我能够告诉你 example.com 这个域的权威域名服务器的地址,你去问它吧。”
询问权威域名服务器:本地 DNS 服务器最后拿着 TLD 服务器给的地址,去问 example.com 的权威服务器:“请告诉我 www.example.com 的IP地址” 这次,权威服务器终于给出了最终的答案:“www.example.com 的IP是 93.184.216.34。”
返回结果并缓存:本地DNS服务器终于拿到了IP地址,这下它会做两件事情:
首先,把该结果缓存起来(根据TTL值设定有效期,缓存在 DNS 本地服务器上),下次再有人问同样的问题,它就可以直接回答,不用再跑一圈了。
然后,把IP地址 93.184.216.34 返回给你的电脑。
操作系统缓存并返回:你的操作系统收到IP后,也把它放进自己的缓存里,随后交给浏览器。
浏览器发起连接:浏览器终于拿到了 www.example.com 的IP地址,现在它可以与目标服务器建立TCP连接,发起 HTTP 请求,然后获取网页内容了。
整个流程如下图:

- 加入缓存的流程图:
浙公网安备 33010602011771号