计算机网络:应用层 - 域名系统 DNS

计算机网络:应用层 - 域名系统 DNS


互联网中的每台设备都有一个唯一的IP地址,但这些地址通常是复杂的数字组合,例如 172.217.160.142,难以记忆和识别。域名系统将这些复杂的IP地址与易于记忆的文字名称(域名)对应起来,例如 google.com。这样,用户只需要记住域名,就可以访问相应的网站或服务,大大降低了记忆负担。

而DNS就是用域将域名转化为IP地址。

域名结构

任何一个连接在互联网上的主机,都有一个唯一的层次结构的名字,即域名 。

互联网采用层次树状结构的命名方法。

域名由若干标号序列组成,各标号之间用点.隔开,分别为不同级别的域名。

域名遵循如下规则:

  • 域名中的标号都由英文字母和数字组成,每一个标号不超过 63 个字符,不区分大小写
  • 标号中除连字符-外不能使用其他的标点符号
  • 级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边
  • 由多个标号组成的完整域名总共不超过 255 个字符

域名是多层次的,如图:

域名中的每一个层次叫做域 (domain) 。最高层次的域可以划分子域,每一个子域还可继续划分子域,这样就形成了顶级域、二级域、三级域,等等。

域名树的叶子节点就是一台计算机的名称了。此处区分一下名称与域名,比如mail.cctv.com是一个域名,而mail这是这个域名对应主机的名称。

顶级域名 TLD又分为三类:

  • 国家顶级域名 nTLD:如cn表示中国,us表示美国,uk表示英国
  • 通用顶级域名 gTLD:最常见的有七个:
    • com:公司企业
    • net:网络服务机构
    • org:非盈利性组织
    • int:国际组织
    • edu:美国教育机构
    • gov:美国政府部门
    • mil:美国军事部门
  • 反向域 arpa:用于反向域名解析,即把IP地址反向解析为域名

在国家顶级域名下注册的二级域名,由国家自行确定,我国划分为如下两类:

  • 行政区域名:共34个,用于我国各个省份和自治区,直辖市等
  • 类别域名:常见的有七个:
    • ac:科研机构
    • com:工,商,金融等企业
    • edu:教育机构
    • gov:政府部门
    • net:提高网络服务的机构
    • mil:军事机构
    • org:非盈利性组织

你会发现,gov在一级域名中表示美国政府,在cn下的二级域名中,表示中国政府。还有com,org等等。也就是说,名称相同的域,等级未必相同。


域名服务器

域名系统由分布在世界各地的域名服务器来实现。

域名系统不是以域为管理单位,而是以区 (zone)为管理单位。每个域根据自己的情况来划分区,每个区有自己的权限域名服务器,来保存该区中所有IP地址到域名的映射。

如图所示:

对于图a,域abc.com只设置一个区abc.com,此时区和域都是abc.com。

对于图b,域abc.com划分了两个区,分别是abc.com和y.abc,com。

域名服务器也是分层次的:

最顶端有一个根域名服务器,随后是顶级域名服务器,权限域名服务器。而刚刚案例中abc.com和y.abc.com都有自己的权限域名服务器。因为一个权限域名服务器管辖一个区,一个域内可以有多个权限域名服务器,也可以有多个区。

  • 根域名服务器:最高层次的域名服务器,也是最重要的。根域名服务器知道所有顶级域名服务器的地址。
  • 顶级域名服务器:管理在该顶级域名下注册的二级域名。
  • 权限域名服务器:在一个域内部负责一个分区,知道自己分区中所有域名到IP地址映射关系。
  • 本地域名服务器:其不属于域名层次结构中,用户查询域名时,一般会(不全是)先通过本地域名服务器,然后本地域名服务器发起请求查询域名,被查询到的域名会被缓存在本地域名服务器中,如果下次查询时,有对应条目的缓存,就不会继续查询,而是直接返回结果了。

域名解析

域名解析分为两种:迭代查询与递归查询。

迭代查询

某主机想要查询y.abc.com的地址:

首先查询本地域名服务器,如果该服务器缓存了对应条目,则直接返回结果。否则查询根域名服务器。

根域名服务器知道所有顶级域名服务器的地址,y.abc.com的顶级域名是com,于是把com的顶级域名服务器的地址给本地域名服务器。本地域名服务器再去顶级域名服务器中查询。

顶级域名服务器知道所有在自己下面注册的域名的地址,这一步有可能直接就得到域名对应的地址了,也有可能会得到该域名的权限域名服务器的地址。本地域名服务器再去权限域名服务器中查询。

权限域名服务器知道所有在自己下面注册的域名的地址,此时y.abc.com的地址就可以被解析出来了,返回IP地址给本地域名服务器。但是也有可能这个地址归属于同一个域的另外一个权限域名服务器,此时返回目的权限域名服务器的地址给本地域名服务器。随后本地域名服务器再去对应的权限域名服务器查询。

当本地域名服务器查询到结果后,缓存一份在自己的数据库中,然后将其交给查询该域名的主机。


递归查询

与刚刚同样的查询:

同样的,首先查询本地域名服务器,如果该服务器缓存了对应条目,则直接返回结果。否则查询根域名服务器。

根域名服务器知道所有顶级域名服务器的地址,y.abc.com的顶级域名是com,于是根域名服务器自己到com的顶级域名服务器中查询。

顶级域名服务器知道所有在自己下面注册的域名的地址,这一步有可能直接就得到域名对应的地址了,也有可能会得到该域名的权限域名服务器的地址。于是顶级域名服务器自己到权限域名服务器中查询。

权限域名服务器知道所有在自己下面注册的域名的地址,此时y.abc.com的地址就可以被解析出来了,返回IP地址给顶级域名服务器。

但是也有可能这个地址归属于同一个域的另外一个权限域名服务器,于是权限域名服务器自己到另外一个权限域名服务器中查询。

当最后一个权限域名服务器查询完毕,此时返回给顶级域名服务器,再返回给根域名服务器,再返回给本地域名服务器。

当本地域名服务器查询到结果后,缓存一份在自己的数据库中,然后将其交给查询该域名的主机。


相关推荐
时空无限3 分钟前
ubuntu 26.04 sudo 连不上主机卡住然后失败问题处理
linux·服务器·ubuntu
吹什么轩15 分钟前
constexpr 完全指南:从 const 的两种含义,到编译期计算的四次演进
java·前端·javascript
外收内放35 分钟前
ENSP学习记录(4)
服务器·学习·智能路由器
Bruce_Liuxiaowei1 小时前
前端校验登录态,等于没校验——一次应急广播终端高危漏洞的发现与报送
运维·前端·安全
Meta Luo1 小时前
AI 时代,Web 自动化测试该怎么做?
前端·人工智能·playwright 替代工具·无代码自动化测试工具·低代码 ui 自动化测试·web 回归测试工具
去伪存真1 小时前
AI Agent 性能评估指标与自动化测试落地方案
前端·agent
凯基迪科技1 小时前
瑞萨R5F100解密 R8C/RL78 MCU 固件读取与保护机制详解
服务器·网络·单片机
MaAidan1 小时前
用 Agent 排查线上问题:SLS 日志分析 + DB/Redis 数据验证,一条链路搞清楚
前端·bootstrap·html
墨林陌2 小时前
AI 热点日报(2026-11-03):美团发布 1.6 万亿参数国产大模型,四大厂商共推 AI 训练退出标准
前端
Moment2 小时前
DeepSeek 发布新模型,直接把 Agent 联网搜索的门槛打下来了!
前端·后端