2.9 使用 mtr 探测网络

如果两个节点之间延迟很大,该如何定位中间的链路问题呢?本节内容推荐笔者经常使用的 mtr 工具。mtr 的全称是 my traceroute,它综合 ping、traceroute、nslookup 等相关功能,能实时显示网络路径中的延迟和丢包信息,让我们能更直观地进行排查网络问题。

接下来我们选取一个测试节点进行网络质量观测,并对观测结果进行解读,以供读者参考。

1. mtr 应用示例

开启命令对测试节点进行网络探测。

$ mtr -z www.iq.com

如图所示,为 mtr 的输出报告。

图: MTR 报告

2. mtr 报告分析

输出的报告中两个核心指标:

  • 丢包率(loss):如果在中间一个节点观察看到丢包率很高,这就说明这一跳上可能有问题了。
  • 延迟(latency):延迟取决于节点之间的物理距离,通常会随着跳数以及跨自治网络而增加。在上图中,经过第九跳时延迟增大至 37ms。因为 AS58453 属于移动的出海国际线路,必定存在较高的延迟率。

通过 AS 号可以获知途径的自治网络:

  • 上海移动(AS24400)
  • 广东移动(AS9808)
  • 移动出海网络 (AS58453)
  • Akamai 自治系统(AS20940)

由于测试节点使用了动态加速服务,所以中间经过了 Akamai 网络。如果未使用网络优化,中国大陆用户会先路由到 美国(AS749),兜了一个大圈才到目的地新加坡。上面网络路径也说明了一个事实:各 ISP 之间的网络路径很多情况下不是最短,而是费用最低的选择策略。

Last Updated:
Contributors: isno