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

深入理解 DNS 与 ICMP:网络世界的地址解析与连通性探测

文章目录

  • 引言
  • 一、DNS:域名与 IP 的 “翻译系统”
    • 1. 诞生背景:从 hosts 文件的局限到 DNS 的崛起
    • 2. 域名的分层结构:从根域到二级域
    • 3. 域名解析过程:从域名到 IP 的 “寻路逻辑”
    • 4. 实战:用 dig 工具解析 DNS 过程
  • 二、ICMP:网络连通性的 “诊断协议”
    • 1. 核心功能:不止于 “ping”
    • 2. ping 命令:连通性探测的 “标配工具”
    • 3. traceroute 命令:追踪路由的 “透视镜”
  • 三、总结:DNS 与 ICMP 的网络价值

引言

在网络通信的版图中,DNS(域名系统) 是 “域名到 IP 的翻译官”,让我们得以通过易记的域名访问互联网;ICMP(互联网控制消息协议) 则是 “网络诊断师”,为我们探测网络连通性、排查故障提供支撑。今天,我们就来深度剖析这两个网络关键组件。

一、DNS:域名与 IP 的 “翻译系统”

1. 诞生背景:从 hosts 文件的局限到 DNS 的崛起

早期 TCP/IP 网络中,人们依靠 hosts 文件 维护主机名与 IP 的映射(如172.20.2.1 host-a)。但随着网络规模扩张,hosts 文件暴露出两大短板:

  • 维护成本高:新主机接入或 IP 变更时,需手动更新所有主机的 hosts 文件;
  • 同步效率低:其他主机需定期下载更新包才能正常解析域名。

为解决这些痛点,DNS 系统应运而生 —— 它是一个分布式数据库,统一管理全网主机名与 IP 的对应关系。如今,计算机仍保留 hosts 文件(可通过cat /etc/hosts在 Linux 中查看),且域名解析时会优先查询 hosts 文件

2. 域名的分层结构:从根域到二级域

域名采用分层结构标识主机及所属机构,以 www.baidu.com 为例:

  • 一级域名(顶级域).com 代表企业域名,同类的还有 .net(网络服务商)、.org(非营利组织)、.cn(国家域)等;
  • 二级域名baidu 是企业自定义的标识,由企业自主管理;
  • www:仅为习惯用法,用于暗示主机支持 HTTP 协议,并非域名必需组成部分。

域名结构呈 “树状”,顶端是根服务器,下一层是顶级域(如 .com),再下一层是二级域(如 baidu.com),以此类推,这种结构支撑了分布式的域名解析流程。

3. 域名解析过程:从域名到 IP 的 “寻路逻辑”

当我们在浏览器输入 www.baidu.com 时,域名解析大致遵循以下流程:

  1. 浏览器先查本地缓存,无结果则查操作系统缓存
  2. 若仍无结果,向本地 DNS 服务器发起查询;
  3. 本地 DNS 服务器查自身缓存,无结果则向根服务器查询;
  4. 根服务器返回 .com 顶级域的权威服务器地址;
  5. 本地 DNS 服务器向 .com 权威服务器查询,得到 baidu.com 的权威服务器地址;
  6. baidu.com 权威服务器查询,最终获取 www.baidu.com 的 IP 地址。

这一过程是 “递归 + 迭代” 的结合,既保证了解析效率,又实现了分布式管理。

4. 实战:用 dig 工具解析 DNS 过程

在 Linux 中,我们可通过 dig 工具(需先安装 bind-utilsyum install bind-utils)直观分析域名解析。以 www.baidu.com 为例,执行 dig www.baidu.com,关键结果解释如下:

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> www.baidu.com
;; global options: +cmd
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41628
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:
;www.baidu.com.			IN	A;; ANSWER SECTION:
www.baidu.com.		1907	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	40	IN	A	115.239.210.27
www.a.shifen.com.	40	IN	A	115.239.211.112;; SERVER: 192.168.2.136#53(192.168.2.136)
;; WHEN: Wed Sep 20 08:05:25 CST 2023
;; MSG SIZE  rcvd: 90
  • status: NOERROR:表示查询成功;
  • QUESTION SECTION:声明要查询的域名是 www.baidu.com,类型为 A 记录(IP 地址);
  • ANSWER SECTIONwww.baidu.com 先解析为 www.a.shifen.com(CNAME 记录),再解析为两个 IP 地址;
  • SERVER:提供解析服务的 DNS 服务器地址。

此外,Windows 可通过 ipconfig /displaydns 查看系统 DNS 缓存,浏览器也有自身缓存机制,这些缓存能大幅提升解析效率。

二、ICMP:网络连通性的 “诊断协议”

1. 核心功能:不止于 “ping”

ICMP 是网络层协议,基于 IP 工作但不具备传输功能,主要作用包括:

  • 确认 IP 数据包是否成功到达目标地址(如 ping 命令);
  • 通知数据包传输过程中丢包的原因(如 “目标不可达”);
  • 辅助网络诊断(如 traceroute 追踪路由)。

2. ping 命令:连通性探测的 “标配工具”

ping 基于ICMP Echo Request/Reply实现:主机 A 发送 ICMP Echo Request 包到主机 B,若 B 可达则返回 ICMP Echo Reply 包。

ping www.baidu.com 为例,输出解析如下:

正在 Ping www.a.shifen.com [61.135.169.121] 具有 32 字节的数据:
来自 61.135.169.121 的回复: 字节=32 时间=61ms TTL=52
来自 61.135.169.121 的回复: 字节=32 时间=86ms TTL=52
...
Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):最短 = 44ms,最长 = 86ms,平均 = 60ms
  • TTL(Time To Live):IP 包的 “生存时间”,每经过一个路由器减 1,可大致判断网络跳数;
  • 时间:数据包往返延迟,反映网络通信速度;
  • 注意:ping网络层协议,不涉及传输层 “端口”,面试中若被问 “ping 的端口是多少”,切记 ICMP 根本不关注端口!

3. traceroute 命令:追踪路由的 “透视镜”

traceroute(Linux)或 tracert(Windows)基于 ICMP 实现,可打印出数据包从本机到目标主机经过的所有路由器

traceroute www.baidu.com 为例,部分输出如下:

traceroute to www.baidu.com (61.135.169.121), 30 hops max, 60 byte packets1  192.168.1.1 (192.168.1.1)  1.234 ms  1.567 ms  1.890 ms2  10.0.0.1 (10.0.0.1)  5.678 ms  6.123 ms  6.456 ms...8  221.183.9.9 (221.183.9.9)  56.789 ms  57.123 ms  57.456 ms9  61.135.169.121 (61.135.169.121)  61.234 ms  61.567 ms  61.890 ms

每一行对应一个路由器(或网关),其后的时间是数据包到该节点的往返延迟。通过 traceroute,我们能清晰掌握数据包的 “路由路径”,快速定位网络故障点。

三、总结:DNS 与 ICMP 的网络价值

  • DNS 破解了 “IP 难记” 的痛点,通过分布式解析系统让互联网访问更便捷;
  • ICMP 是网络故障排查的 “利器”,pingtraceroute 让我们能高效判断主机可达性、分析路由延迟。

掌握这两个知识点,无论是日常上网还是网络运维,都能让你对 “网络通信” 的理解更透彻。下次遇到域名解析失败或网络不通的问题,不妨用 digpingtraceroute 亲自诊断一番!

http://www.dtcms.com/a/564510.html

相关文章:

  • MCU中的RC电路(Resistor-Capacitor Circuit)
  • Flink SQL 调优
  • CISP-PTE认证考试靶场
  • RDPWD!MCSAttachUserRequest函数分析之RDPWD!Domain结构中的ChannelList和UserAttachmentList
  • 细数Java中List的10个坑
  • 泉州手机网站开发怎么看一个网站是什么程序做的
  • PyTorch图像分割训练全流程解析
  • 无人机 - 关于无人机电池
  • 音视频播放的核心处理流程
  • 基于EasyExcel实现Excel导出功能
  • 【SpringBoot】31 核心功能 - 单元测试 - JUnit5 单元测试中的断言机制——验证你的代码是否按预期执行了
  • kafka问题解决
  • Parasoft C/C++test如何在CCS3环境下进行F2812项目的单元测试
  • CCID工具,Jenkins、GitLab CICD、Arbess一文全方位对比分析
  • 公司网页设计的设计过程南昌网站排名优化报价
  • 如何查询网站空间寻甸马铃薯建设网站
  • Node.js 中的中间件机制与 Express 应用
  • 【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划
  • 仿生机器鹰无人机技术解析
  • 2025无人机在电力交通中的应用实践
  • Qt实时绘制飞行轨迹/移动轨迹实时显示/带旋转角度/平滑移动/效果一级棒/地面站软件开发/无人机管理平台
  • 八股已死、场景当立(场景篇-负载均衡篇)
  • Go语言设计模式:备忘录模式详解
  • 基于YOLOv10的无人机智能巡检系统:电力线路悬挂物检测实战
  • 定制开发开源AI智能名片S2B2C商城小程序中的羊群效应应用研究
  • seo搜索引擎优化网站店铺位置怎么免费注册定位
  • 一个专门做恐怖片的网站做化工行业网站
  • 物联网 “神经” 之以太网:温湿度传感器的工业级 “高速干道”​
  • Biotin-PEG-OH,生物素-聚乙二醇-羟基,应用领域
  • 物联网“神经”之LoRa:温湿度传感器的广域“节能使者”