Tracepath Traceroute MTR

Last Updated on 2024-11-07 by likun.gong

最近工作配合排查了好几次网络问题,于是经常用到了 tracepath、traceroute 和 mtr,三个工具都是跟踪并查找网络线路的,但是又各有差异,这里简单记录一下。

tracepath 利用 UDP 协议,通过回来的数据包探测网络线路,并且在执行时不需要 root 权限,在权限不够的情况下,使用 tracepath 是一个很好的选择。

traceroute 则是利用 ICMP 协议来探测网络线路,同时可以通过参数指定使用 TCP、UDP协议来探测,可以看下述例子。

解读:

  1. * * * 表示没有返回数据包,这在一些商业设备中很常见,它们屏蔽了来自 traceroute 的探测
  2. ip 后边的 ms 则是源到这个点的 RTT,每次 traceroute 会发送 3 个数据包来验证

mtr 是 My Traceroute 缩写,它是 traceroute 和 ping 的结合体,除了能看到网络经过的各个点,它还可以显示到目的地的路线中不断更新的延迟和丢包信息,可以实时看到路径上发生的情况,协助排除网络问题。

解读:

  1. Loss% 可以实时看到我们到每一跳的丢包率
  2. Snt 是发送的数据包总数,Avg 表示平均 RTT,Last 是最后一次 RTT,Best 是最佳 RTT,Wrst 则是最差的
  3. 中间的点出现了丢包,但是到最终的目的地丢包率是 0,说明我们访问是没有丢包的,这里有可能是我们发送的 ICMP 包超过了网络设备的限制,从而被丢包

总结:

mtr 默认使用 ICMP 协议来探测线路,也可以通过参数指定使用 TCP、UDP 协议来探测,对比 traceroute 和 tracepath 的功能更强大,并且展示的信息更多,更有利于发现网络问题,排查时可以优先考虑使用 mtr。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注