简介
MTR(My traceroute)是几乎所有Linux发行版本预装的网络测试工具,此工具也有对应的Windows版本,名称为WinMTR(下载地址:https://sourceforge.net/projects/winmtr/files/WinMTR-v092.zip/?spm=a2c4g.11186623.2.14.584d4c07jpMNws)
MTR工具将ping和traceroute命令的功能并入了同一个工具中,实现更强大的功能,Linux版本的mtr命令默认发送ICMP数据包进行链路探测。可以通过“-u”参数来指定使用UDP数据包用于探测 ----来源阿里云帮助文档
用法:
mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report] [--report-wide] [--report-cycles=COUNT] [--curses] [--gtk] [--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips] [--address interface] [--filename=FILE|-F] [--ipinfo=item_no|-y item_no] [--aslookup|-z] [--psize=bytes/-s bytes] [--order fields] [--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM] [--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS] [--interval=SECONDS] HOSTNAME
命令帮助
[root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -h Usage: mtr [options] hostname -F, --filename FILE read hostname(s) from a file ## 从文件里读取探测主机 -4 use IPv4 only ## 仅用IPv4 -6 use IPv6 only ## 仅用IPv6 -u, --udp use UDP instead of ICMP echo ## 使用UDP协议替代ICMP -T, --tcp use TCP instead of ICMP echo ## 使用TCP协议代替ICMP -a, --address ADDRESS bind the outgoing socket to ADDRESS ## 绑定出网地址,对于本机多网卡有用 -f, --first-ttl NUMBER set what TTL to start ## 指定起始TTL值 -m, --max-ttl NUMBER maximum number of hops ## 最大路由数 -U, --max-unknown NUMBER maximum unknown host ## 最大不可达的主机数 -P, --port PORT target port number for TCP, SCTP, or UDP ## 指定测试的目标端口 -L, --localport LOCALPORT source port number for UDP ## 本地UDP源端口 -s, --psize PACKETSIZE set the packet size used for probing ## 指定探测包的大小 -B, --bitpattern NUMBER set bit pattern to use in payload -i, --interval SECONDS ICMP echo request interval ## ping包发送的时间间隔 -G, --gracetime SECONDS number of seconds to wait for responses ## 等待响应的时间间隔 -Q, --tos NUMBER type of service field in IP header -e, --mpls display information from ICMP extensions -Z, --timeout SECONDS seconds to keep probe sockets open -M, --mark MARK mark each sent packet -r, --report output using report mode ## 使用报告模式输出 -w, --report-wide output wide report -c, --report-cycles COUNT set the number of pings sent ## 指定发送的ping包数量 -j, --json output json -x, --xml output xml -C, --csv output comma separated values -l, --raw output raw format -p, --split split output -t, --curses use curses terminal interface --displaymode MODE select initial display mode -n, --no-dns do not resove host names ## 不解析主机名 -b, --show-ips show IP numbers and host names -o, --order FIELDS select output fields ## 显示输出字段 -y, --ipinfo NUMBER select IP information in output -z, --aslookup display AS number ## 回显的数量
-o选项的输出字段
L | Loss ratio | 丢包率 |
D | Dropped packets | 丢包数量 |
R | Received packets | 接收数量 |
S | Sent Packets | 发包数量 |
N | Newest RTT(ms) | 最新往返延迟 |
B | Min/Best RTT(ms) | 最小往返延迟 |
A | Average RTT(ms) | 平均往返延迟 |
W | Max/Worst RTT(ms) | 最大往返延迟 |
V | Standard Deviation | 标准差 |
G | Geometric Mean | 几何平均数 |
J | Current Jitter | 当前抖动 |
M | Jitter Mean/Avg. | 平均抖动 |
X | Worst Jitter | 最大抖动 |
I | Interarrival Jitter | 抖动间隔 |
Jitter:抖动,其定义延迟从来源地址将要发送到目标地址,会发生不一样的延迟,这样的延迟变动是jitter
RTT:往返延迟,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。往返延时(RTT)由三个部分决定:即链路的传播时间、末端系统的处理时间以及路由器的缓存中的排队和处理时间。其中,前面两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化。所以RTT的变化在一定程度上反映了网络拥塞程度的变化。简单来说就是发送方从发送数据开始,到收到来自接受方的确认信息所经历的时间
示例
参数解释:检测本地到www.baidu.com的连通性,发送5个包,最多经过15次路由,以报告的形式每2秒显示一次输出结果
[root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -c 5 -i 2 -n -m 15 -r www.baidu.com ## 默认输出字段LSNABWV Start: 2020-04-12T16:25:03+0800 HOST: iZ8vba689kou8r8sq4yw44Z Loss% Snt Last Avg Best Wrst StDev 1.|-- ??? 100.0 5 0.0 0.0 0.0 0.0 0.0 2.|-- 11.63.128.225 0.0% 5 52.1 52.5 52.0 54.3 1.0 3.|-- 11.63.128.114 0.0% 5 2.4 5.5 2.4 16.9 6.4 4.|-- 10.255.108.241 0.0% 5 1.4 1.6 1.2 2.4 0.4 5.|-- 116.251.124.153 0.0% 5 0.9 2.1 0.8 6.9 2.7 6.|-- 45.112.221.173 0.0% 5 6.8 6.8 6.6 7.3 0.3 7.|-- 123.56.34.13 0.0% 5 6.5 7.4 6.1 11.9 2.5 8.|-- 106.38.196.233 40.0% 5 12.6 12.6 12.6 12.7 0.0 9.|-- 36.110.244.61 0.0% 5 7.8 7.7 7.6 7.9 0.1 10.|-- ??? 100.0 5 0.0 0.0 0.0 0.0 0.0 11.|-- 220.181.17.146 0.0% 5 10.1 8.8 8.4 10.1 0.7 12.|-- ??? 100.0 5 0.0 0.0 0.0 0.0 0.0 [root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -c 5 -i 2 -n -m 15 -r -o "LSD" www.baidu.com Start: 2020-04-12T16:20:53+0800 HOST: iZ8vba689kou8r8sq4yw44Z Loss% Snt Drop 1.|-- ??? 100.0 5 5 2.|-- 11.63.128.225 0.0% 5 0 3.|-- 11.63.128.114 0.0% 5 0 4.|-- 10.255.108.241 0.0% 5 0 5.|-- 116.251.124.153 0.0% 5 0 6.|-- 45.112.221.173 0.0% 5 0 7.|-- 123.56.34.13 0.0% 5 0 8.|-- 106.38.196.233 60.0% 5 3 9.|-- 36.110.244.61 0.0% 5 0 10.|-- ??? 100.0 5 5 11.|-- 220.181.17.146 0.0% 5 0 12.|-- ??? 100.0 5 5 [root@iZ8vba689kou8r8sq4yw44Z ~]# mtr -c 5 -i 2 -n -m 3 -r -o "LSD" www.baidu.com Start: 2020-04-12T16:21:29+0800 HOST: iZ8vba689kou8r8sq4yw44Z Loss% Snt Drop 1.|-- ??? 100.0 5 5 2.|-- 11.63.128.225 0.0% 5 0 3.|-- 11.63.128.114 40.0% 5 2
默认输出结果说明:
第一列:主机名和IP地址
第二列:丢包数量
第三列:发包数量
第四列:往返延迟
第五列:平均延迟
第六列:最小延迟
第七列:最大延迟
第八列:标准差,越大说明相应节点越不稳定。
在做mtr测试的时候,应该分两个方向,即客户端<------->服务器。根据测试结果分析,是本地网络节点异常,需要调整本地网络。如果运营商节点出现问题,需要联系运营商