ping
100%

故障排除 · 第 2 课

ping

了解如何运行有界的 ping 测试,以及如何解读应答、丢包、RTT、TTL 和局限性。

ping 发送 ICMP 回显请求并报告观察到的应答。它测试到某个地址的一条控制消息路径,并不能证明 TCP、UDP、DNS、身份认证或应用程序正常工作。

运行有界测试

在常见 iputils 实现中,发送三次 IPv4 请求,并为每个数据包设置两秒超时:

$ ping -4 -c 3 -W 2 example.com

使用 -6 选择 IPv6。请记录解析出的地址,因为一个主机名可以返回多个地址,而重复运行时可能选择不同地址。

-c 3 要求什么?

序列与丢包

icmp_seq 标识本次运行中的各次请求。缺失的应答会计入观察到的丢包,而乱序应答可能反映时延变化。小样本的噪声很大;应比较多个有界时间段,并结合应用程序自身的错误率。

丢包可能发生在任一方向,ICMP 速率限制也可能让 ping 丢包率与应用程序丢包率不同。

缺少某个 icmp_seq 应答可能表示什么?

往返时间

time 字段是从发送请求到收到应答的往返时间,单位为毫秒。它包含去程时延、远端处理时间和返程时延。没有同步的端点测量,就无法用它得知单向延迟。

报告的 time=23.7 ms 测量了什么?

TTL 或 Hop Limit

显示的 IPv4 TTL 或 IPv6 Hop Limit 是收到应答时的剩余值。如果不知道发送方的初始值和返回路由,就不能通过减法得到准确跳数。数值变化可能表示响应方、初始值或返回路径发生变化。

IPv4 回显应答中显示的 TTL 是什么?

测试正确的层级

如果 ping 成功但服务失败,应测试实际端口、TLS、协议和请求。如果 ping 失败,应先检查名称解析、ip route get、邻居状态、防火墙策略和抓包,再断言主机已停机。

ping 成功无法证明什么?

课程已完成

你已完成 ping

现在,你可以把 ping 用作一项有明确边界的 ICMP 测量。

  • 选择地址族并记录解析出的地址。

  • 限制次数和等待时间,以便重复测试。

  • 解读丢包时不要假定方向或原因。

  • 把 RTT 视为双向时间,把 TTL 视为剩余值。

  • 单独测试实际应用程序。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 故障排除