【计算机网络】DNS/ICMP协议/ping指令

DNS 系统

DNS 系统诞生的背景

TCP/IP 中使用 IP 地址和端口号来确定网络上唯一的一台主机的一个程序. 但是 IP 地址不方便记忆. 于是人们发明了一种叫域名 的东西, 是一个字符串, 并且使用 hosts 文件 来描述域名和 IP 地址的关系。最初, 通过互连网信息中心 (SRI-NIC) 来管理这个 hosts 文件的.如果一个新计算机要接入网络, 或者某个计算机 IP 变更, 都需要到信息中心申请变更 hosts 文件.其他计算机也需要定期下载更新版本的 hosts 文件才能正确上网.这样就太麻烦了, 于是产生了DNS系统: 一个组织的系统管理机构, 维护系统内的每个主机的 IP 和域名的对应关系。至今, 我们的计算机上仍然保留了 hosts 文件(Linux 系统下在 /etc/hosts). 在域名解析的过程中仍然会优先查找 hosts 文件的内容.

域名简介

DNS 是一个**全球分布式数据库,**域名按层级组织,从右向左读(根 → 顶级域 → 二级域 → 子域):

复制代码
www.google.com.
 ↑      ↑     ↑   ↑
子域  二级域 顶级域 根(省略)
层级 示例 说明
根域 .(点) 全球 13 组根服务器(实际上有上百台物理机器),所有 DNS 查询的起点
顶级域(TLD) .com.org.cn.uk 通用 TLD(如 .com)和国家 TLD(如 .cn)
二级域 googlebaidu 域名所有者可自由注册的部分
子域 wwwmail 二级域持有者自行划分

DNS 查询简介

以你在浏览器 url 输入框输入 www.baidu.com 为例:

  1. 用户电脑递归解析器 (通常是 ISP 提供的 DNS 服务器,如 202.96.128.86 或公共 DNS 如 8.8.8.8)发出请求:"www.baidu.com 的 IP 是多少?"

  2. 递归解析器 从根服务器开始查:

    • 问根服务器:www.baidu.com 在哪?

      根不直接回答,但告诉你:去找 .com TLD 服务器,它的地址是 X.X.X.X。

    • .com TLD 服务器:www.baidu.com 在哪?

      .com 告诉你:去找 baidu.com 的权威服务器,它的地址是 Y.Y.Y.Y。

    • baidu.com 权威服务器:www.baidu.com 的 IP 是什么?

      权威服务器给出最终答案:www.baidu.com = 1.2.3.4

  3. 递归解析器把结果 1.2.3.4 返回给用户电脑。

  4. 用户电脑的浏览器用这个 IP 地址访问百度服务器。

ICMP 协议

**ICMP 协议是一个网络层协议。**一个新搭建好的网络, 往往需要先进行一个简单的测试, 来验证网络是否畅通; 但是 IP 协议并不提供可靠传输. 如果丢包了, IP 协议并不能通知传输层是否丢包以及丢包的原因。ICMP 正是提供这种功能的协议; ICMP 主要功能包括:

  • 确认 IP 包是否成功到达目标地址.
  • 通知在发送过程中 IP 包被丢弃的原因.
  • ICMP 也是基于 IP 协议工作的. 但是它并不是传输层的功能, 因此人们仍然把它归结为网络层协议;
  • ICMP 只能搭配 IPv4 使用. 如果是 IPv6 的情况下, 需要用 ICMPv6;

ICMP的报文格式 (选学)

字段 长度 说明
类型 1 字节 消息类型(如 8=请求,0=应答,3=不可达,11=超时)
代码 1 字节 同一类型下的细分(如"网络不可达"vs"主机不可达")
校验和 2 字节 覆盖整个 ICMP 报文的校验
数据部分 可变 不同消息类型携带不同内容

ICMP 没有端口号

这是很多初学者容易搞混的点。端口号(如 80、443)是 TCP/UDP 的概念,而 ICMP 位于网络层,不需要端口号 。它通过 类型(Type)代码(Code) 来区分不同的消息。

ping 指令

ICMP和 ping 指令 是网络故障排查中最常用的一对搭档。简单来说:ICMP 是协议,ping 是使用这个协议的工具。ping 本质上就是发送 ICMP Echo 请求(Type=8),并等待 Echo 应答(Type=0)。

ping 输出示例(以 Linux/Windows 为例)

复制代码
$ ping www.baidu.com
PING www.baidu.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38: icmp_seq=1 ttl=52 time=12.3 ms
64 bytes from 14.215.177.38: icmp_seq=2 ttl=52 time=12.1 ms
64 bytes from 14.215.177.38: icmp_seq=3 ttl=52 time=12.4 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 12.1/12.2/12.4/0.1 ms

输出字段含义

字段 含义
icmp_seq 请求序号,用于检查丢包
ttl 生存时间(每跳减1),用于估算经过了多少路由器
time 往返时间(RTT,Round-Trip Time),单位毫秒
0% packet loss 丢包率,0% 表示网络稳定
rtt min/avg/max/mdev 最小/平均/最大/标准差(抖动)
相关推荐
ylscode3 小时前
PureLogs 信息窃取恶意软件惊现高危变种:借道 MsBuild.exe 进程空心化实施无痕攻击
网络·安全·安全威胁分析
IPHWT 零软网络3 小时前
MX60E-A信创级智能语音网关技术实现与架构分析
网络·网络安全·国产自研·技术实现·智能语音网关·政企通信·信创技术
IT大白鼠3 小时前
RSTP协议原理与配置详解:快速生成树技术的深度解析
网络·网络协议
C+++Python5 小时前
BIO、NIO、AIO 区别
网络·nio
VOOHU-沃虎5 小时前
沃虎——网络变压器与RJ45集成连接器选型实战:从百兆到10G、从非PoE到4PPoE
网络
2301_773643626 小时前
华为云存储实验
网络·mysql·华为云
ylscode6 小时前
Windows 内核惊现高危提权漏洞 CVE-2026-40369:沙箱隔离失效,SYSTEM 权限唾手可得
网络·安全·安全威胁分析
jieyu11196 小时前
Wireshark使用指南【超全面】
网络·wireshark
weixin_520649876 小时前
通信【报文】
网络
志栋智能7 小时前
小步快跑:从单一场景开启超自动化巡检之旅
运维·网络·人工智能·自动化