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=1、icmp_seq=2、icmp_seq=3)都成功返回了。ping seq 对于诊断数据包丢失至关重要。如果您注意到缺少序列号,则表明存在连接问题,即某些数据包未到达目的地或未返回。如果 icmp seq 数字顺序混乱,可能表明网络拥塞或延迟,因为数据包完成往返所需的时间超过了一秒的默认间隔。理解 icmp_seq meaning 是故障排除的关键。
生存时间 (TTL)
生存时间 (TTL) 字段充当数据包的跳数计数器。每次数据包经过一个路由器(一个“跳”)时,TTL 值就会减一。如果计数器在数据包到达目的地之前达到零,则数据包将被丢弃。此机制可防止数据包在网络中无休止地循环。
时间 (Time)
time 字段测量往返时间——数据包从您的机器传输到目标主机以及回显应答返回所花费的时间。此值通常以毫秒 (ms) 为单位,是网络延迟的主要指标。