2. ping

ping 命令是最基本的网络工具之一,用于测试远程主机在 IP 网络上是否可达。它通过向目标主机发送 ICMP(Internet 控制消息协议)“回显请求”数据包并等待 ICMP“回显应答”来工作。当请求数据包发送并收到响应时,即视为 ping 成功。

让我们看看一个典型的 ping 命令的实际操作:

pete@icebox:~$ ping -c 3 www.google.com
PING www.google.com (74.125.239.112) 56(84) bytes of data.
64 bytes from nuq05s01-in-f16.1e100.net (74.125.239.112): icmp_seq=1 ttl=128 time=29.0 ms
64 bytes from nuq05s01-in-f16.1e100.net (74.125.239.112): icmp_seq=2 ttl=128 time=23.7 ms
64 bytes from nuq05s01-in-f16.1e100.net (74.125.239.112): icmp_seq=3 ttl=128 time=15.1 ms

在这个例子中,我们使用 ping 来检查到 www.google.com 的连接性。-c 3 选项告诉 ping 精确发送三个回显请求数据包然后停止。默认情况下,ping 每秒发送一个数据包。

理解 Ping 输出

ping icmp_seq 命令的输出提供了有价值的诊断信息。让我们分解关键组成部分。

ICMP 序列 (icmp_seq)

icmp_seq 字段显示每个 ICMP 数据包的序列号。在我们的例子中,我们发送了三个数据包,输出显示所有三个(icmp_seq=1icmp_seq=2icmp_seq=3)都成功返回了。ping seq 对于诊断数据包丢失至关重要。如果您注意到缺少序列号,则表明存在连接问题,即某些数据包未到达目的地或未返回。如果 icmp seq 数字顺序混乱,可能表明网络拥塞或延迟,因为数据包完成往返所需的时间超过了一秒的默认间隔。理解 icmp_seq meaning 是故障排除的关键。

生存时间 (TTL)

生存时间 (TTL) 字段充当数据包的跳数计数器。每次数据包经过一个路由器(一个“跳”)时,TTL 值就会减一。如果计数器在数据包到达目的地之前达到零,则数据包将被丢弃。此机制可防止数据包在网络中无休止地循环。

时间 (Time)

time 字段测量往返时间——数据包从您的机器传输到目标主机以及回显应答返回所花费的时间。此值通常以毫秒 (ms) 为单位,是网络延迟的主要指标。

登录以保存您的学习进度

登录

练习

实践对于掌握网络诊断至关重要。这些动手实验将帮助您巩固对 ping 命令的理解:

  1. 在 Linux 中使用 ping 和 arp 探索网络层交互 - 使用 pingarp 探索网络层和数据链路层交互,并观察默认网关如何处理远程流量。
  2. 在 Linux 中探索 IP 地址类型和可达性 - 利用 pingip a 测试本地 TCP/IP 堆栈,验证公共互联网连接性,并探索网络可达性。
  3. 在 Linux 中模拟网络层连接性 - 学习使用 ip addr 分配静态 IP 地址,并在同一子网和不同子网上使用 ping 测试连接性。

这些实验将帮助您在现实场景中应用网络可达性和 ping 命令的概念,增强您对 Linux 网络诊断的信心。

测验

往返时间的度量单位是什么?请用英语回答,注意区分大小写。