MTR的名称来源是My TraceRoute,原来源是Matt’s TraceRoute。mtr是一个网络诊断工具,将ping和traceroute命令的功能合二为一。
命令ping着重查看到目标节点的延迟。
ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=245 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=245 ms
... ...
命令traceroute可以查看数据包经过的每一个节点(或者说每一跳(hop))的信息。
traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 192.168.1.1 1.229 ms 1.143 ms 1.055 ms 2 117.30.114.1 133.626 ms 133.606 ms 134.264 ms
... ...
12 108.170.237.45 252.366 ms 209.85.252.245 282.760 ms 209.85.240.31 282.729 ms
13 8.8.8.8 241.518 ms 241.971 ms 250.866 ms
对于数据包从源到目的地所经过的每个节点,mtr都会记住。而后向这些节点发送ICMP数据包,通过ICMP响应数据包来获取这些节点的网络信息(如延迟、丢包率等)。大多数情况下mtr检测网络信息时使用的数据包是ICMP数据包,不过也可以是TCP或者UDP数据包。