当前位置: 首页 > news >正文

Internet 的域名系统:从“名字”到“地址”的翻译官

你有没有想过,当你在浏览器里敲下www.baidu.com时,电脑是怎么找到对应的网站的?
这背后,离不开一个庞大而精巧的系统——DNS(域名系统)

今天这篇博客,就结合教材内容,带你轻松了解 DNS 是什么、怎么工作,以及那个经常被误解的“域名空间”。

一、为什么需要 DNS?

在 TCP/IP 网络中,每台设备都有一个唯一的数字地址,比如202.97.135.160
计算机只认得这些数字,但我们人类显然更喜欢有意义的名称,比如www.ryjiaoyu.com

DNS 服务器扮演的就是“翻译官”的角色:
它把人类容易记的域名,翻译成计算机能懂的 IP 地址。
你在浏览器输入域名后,背后就有一台 DNS 服务器在自动完成这个翻译工作。

DNS 系统由DNS 服务器DNS 客户端两部分组成,采用 C/S(客户端/服务器)模式。
服务器通常用 UDP 的53 端口与客户端通信,接收并处理域名解析请求。

二、DNS 的设计哲学

DNS 是一个分级的、基于域的命名机制,它的核心是一个分布式、层次化的命名数据库系统。

为什么要这样设计?

  • 分布式:避免单一主机负载过重。

  • 层次化:解决线性平面结构查找速度慢的问题。

整个 DNS 服务器系统由三个部分构成:域名空间、域名服务器和解析器

三、域名空间:名称的“家谱”

“域名空间”到底指什么?

这里有个很大的误解需要澄清。
平时我们听到“买个域名空间”,其实是“域名 + 网站空间(虚拟主机)”的俗称,并不是指“域名的空间”这个字面意思。
一台服务器被划分成多个“虚拟主机”,每个虚拟主机都有独立的域名和完整的 Internet 服务器功能(支持 WWW、FTP、电子邮件等),并且由用户自行管理。

真正的“域名空间”

回到技术本身,“域名空间”是指整个 DNS 的命名结构,它呈现为一棵层次式树状结构(如教材图 10-2 所示)。

根域

树的最顶端是根域,用.表示,通常省略不写。
全世界有 13 台根服务器分布各地,由 InterNIC 管理。根服务器不保存具体网址,只持有指向第一层域(顶级域)的初始指针。

顶级域

顶级域位于根域之下,数目有限且不能轻易变动,由 InterNIC 统一管理。
它分为两类:

  • 机构域:如.com(商业机构)、.net(网络服务商)、.org(组织)、.edu(教育)、.gov(政府)、.mil(军事)、.int(国际组织)。

  • 地理域:如.us(美国)、.uk(英国)、.ca(加拿大)、.au(澳大利亚)、.jp(日本)等。

注意:

域名和主机名只能由字母 a~z、数字 0~9 和连字符-组成(Windows 下大小写等效,UNIX 则不同),斜杠/、句点.、下划线_等特殊字符不能用于表示域名和主机名。

子域

就是顶级域下面的进一步划分。以com域为例,为了区分不同组织或用途,可以在com之下创建xyz.comabc.com等二级域(子域)。子域之下还可以继续划分子域,比如mail.xyz.com就是xyz.com的一个子域,而xyz.com又是com的一个子域。这种层级嵌套的结构,使得域名空间可以无限延伸,灵活地容纳互联网上浩如烟海的主机。

主机

则是这棵树的叶子节点,是域名空间中最末端的实体。主机名通常用来标识某台具体的服务器或网络设备,比如图 10-2 中的wwwcctvmailnews等等——它们就是挂在com域下的主机或服务名称。当你在浏览器中输入www.cctv.com时,www就是cctv.com域中的一台主机,整个域名路径清晰地描述了这台主机在域名空间中的位置:根域 → 顶级域com→ 二级域cctv→ 主机www

四、域名服务器:按层级分工

域名服务器的组织也采用层次化结构:

  • 根服务器管理到各个顶级域名服务器的连接。

  • 每台域名服务器只负责管理域名空间中的一部分信息。

比如,根服务器管理顶级域,但它不直接管三级域名,不过它一定能找到所有二级域名服务器。

一个典型的解析过程是:

  1. 用户使用域名访问某台主机。

  2. 先由本地域名服务器尝试解析,如果找到匹配 IP 就直接返回。

  3. 如果没找到,本地服务器就作为“客户端”,向上一级域名服务器发出请求。

  4. 上一级服务器在自己的管理范围内查询,找到就返回,找不到就继续向上请求。

  5. 层层递归/迭代,直到找到目标 IP 地址为止。

五、解析器:两种查询模式

解析器是 DNS 中的关键角色,它完成“域名翻译成 IP”的具体工作。
这个过程称为域名解析,分为:

  • 正向解析:域名 → IP 地址。

  • 反向解析:IP 地址 → 域名。

DNS 的查询模式主要有两种:

(1)递归查询

DNS 服务器收到客户端请求后,如果在自己的缓存或区域数据库里找不到结果,就自己替客户端去问其他服务器,最后把查到的结果一次性返回给客户端。
客户端省心,服务器累一点。

(2)转寄查询(迭代查询)

服务器在本地查不到时,不替客户端去问,而是告诉客户端“你去问另一台服务器”,并给出那台服务器的 IP 地址。
客户端自己接着去下一台问,直到查到结果或者所有服务器都返回失败。
“转寄”的意思就是:我这里没有,你去别的地方找吧。

通常,DNS 服务器之间的查询多属于转寄查询

六、一些重要的 DNS 记录类型

教材中还提到了几种常见的 DNS 记录:

  • A 记录:主机名到 IP 地址的映射(名称 → 地址)。

  • CNAME 记录:主机的别名。

  • NS 记录:域名的权威域名服务器。

  • MX 记录:域的邮件交换器主机。

  • PTR 记录:IP 地址到主机名的映射(地址 → 名称,用于反向解析)。

http://www.cnnetsun.cn/news/2134031.html

相关文章:

  • 智能家居新玩法:用NET-KM20网络键鼠盒子和Home Assistant,让你的旧电脑变身家庭媒体中心遥控器
  • 告别天价VT板卡!用CAPL+RS232串口,低成本搞定车载网络测试与MCU日志抓取
  • 从APM到可观测性:inspectIT Ocelot架构解析与生产实践
  • 比较器设计12V输入过压保护电路
  • Illustrator脚本库:设计师效率提升的终极解决方案
  • 从MCU的PWM寄存器到电机转动:手把手配置STM32的SVPWM(附代码避坑指南)
  • 如何用WeChatMsg永久保存微信聊天记录:你的数字记忆保险箱
  • 别再乱调了!Simulink代码生成优化选项详解:从‘可调参数’到‘零初始化’的实战避坑指南
  • Docker AI Toolkit 2026成本暴增真相(企业级CI/CD流水线实测报告)
  • OpenCommit实战:AI自动生成Git提交信息,提升代码可维护性
  • 为Open WebUI构建安全代码执行沙箱:基于gVisor的本地LLM编程实践
  • ArcGIS制图效率翻倍秘籍:如何用‘数据框’和‘布局视图’快速搞定带示意图的复合地图?
  • OpenCV玩转光照:一行代码拯救背光人像,手机电脑都能用的修图脚本
  • 避坑指南:Plotly设置多Y轴时常见的5个错误及修复方法(附代码)
  • 前列腺 MRI-病理 3D 配准:弹性形变场 + 体素重建全流程
  • Trinity多模态AI模型配置与训练优化实战指南
  • 别再只盯着配置文件了!解决MyBatis ‘sqlSessionFactory’错误的3个隐藏原因
  • 别只盯着公有云了!聊聊华为云Stack在金融、能源行业的那些‘真香’案例
  • python mock
  • ExcelJS实战指南:3个高效场景解决你的Excel处理痛点
  • AirPodsDesktop:跨平台音频优化与蓝牙协议栈开源实现指南
  • 3个简单步骤彻底清理Windows 11:开源工具Win11Debloat让你的电脑重获新生
  • 底层硬件控制方案:DellFanManagement实现戴尔笔记本风扇精准管理
  • 为什么你的Copilot Next总在关键场景“失语”?深度拆解AST解析延迟、Context Window溢出与Token预算超限的3重根因,附可复用的诊断脚本
  • 别再只盯着CLIP了!从BLIP到InstructBLIP,手把手教你选对VLM模型做项目
  • 如何快速解决cpp-httplib在Windows旧版本中的兼容性难题:完整指南
  • 机器人视觉任务中的State-free策略解析与应用
  • 用joblib的Parallel,三行代码搞定Python‘尴尬并行’,加速你的for循环
  • 量子软件测试:核心挑战与工程实践
  • 基于事件驱动架构构建可靠AI Agent:inngest/agent-kit实战指南