通常情况下,链路测试流程如下图所示。
如果您使用Linux系统,您可以通过安装mtr软件包来使用mtr。对于Windows系统,您可以选择使用WinMTR。有关以上两种工具的安装及使用说明,请参考如下介绍。
sudoyuminstallmtrCentOS6/7/8sudoyuminstallmtrUbuntu/Debiansudoaptinstallmtr使用介绍命令格式
mtr[-hvrctglspni46][-help][-version][-report][-report-cycles=COUNT][-curses][-gtk][-raw][-split][-no-dns][-addressinterface][-psize=bytes/-sbytes][-interval=SECONDS]HOSTNAME[PACKETSIZE]参数说明
常见的可选参数说明如下表所示,您也可以通过manmtr命令查看更多参数说明。
可选参数
参数说明
-r或-report
以报告模式显示输出。
-p或-split
将每次链路跟踪的结果分别列出来。
-s或-psize
指定ping数据包的大小。
-n或-no-dns
不对IP地址做域名反解析。
-a或-address
设置发送数据包的IP地址。
该参数用于主机存在多个IP地址的场景。
-4
只使用IPv4协议。
-6
只使用IPv6协议。
运行mtr命令后,系统默认进入交互模式。在此模式下,您可以输入以下参数,以快速控制mtr工具的行为或切换显示视图。
参数
?或h
显示帮助菜单。
d
切换显示模式。
n
启用或禁用DNS域名解析。
u
使用ICMP或UDP数据包进行探测。
以执行mtr目标IP地址命令为例,返回结果如下:
默认配置下,返回结果列表中各数据项的说明如下。
Host
节点IP地址和域名。您可以按n键切换显示。
Loss%
节点丢包率。
Snt
已发送数据包数。默认值是10,可以通过参数-c指定。
Last
最近一次的探测延迟值。
Avg
探测延迟的平均值。
Best
探测延迟的最小值。
Wrst
探测延迟的最大值。
StDev
标准偏差。该值越大说明相应节点越不稳定。
下载WinMTR后无需安装,直接解压运行即可,操作方法非常简单,操作步骤如下。
以测试目标服务器域名为例,返回示例如下:
默认配置下,返回结果中各数据项的说明如下:
Hostname
节点IP地址和域名。
Nr
节点编号。
Sent
已发送的数据包数量。
Recv
已成功接收的数据包数量。
节点延迟的最小值。
节点延迟的平均值。
Worst
节点延迟的最大值。
节点延迟的最后一次值。
由于mtr命令有更高的准确性,本文以mtr命令测试结果为例,对链路测试结果的分析进行简要说明。后续的说明,均以如下链路测试结果示例图为基础进行阐述。
通常情况下,从客户端到目标服务器的整个链路显著包含以下几个网络区域。关于网络区域的说明及对应区域的异常处理建议,请参阅以下内容。
如果中间链路某些部分启用了链路负载均衡,则mtr命令只会对首尾节点进行编号和探测统计。中间节点只会显示相应的IP地址或域名信息。
要对网络链路连通性或网络性能进行分析,可以基于Loss%(丢包率)、Avg(平均值)和StDev(标准偏差)以及延迟指标来进行综合分析判断,以下介绍基于以上指标分析链路连通性的基本思路。
任一节点的Loss%(丢包率)如果不为零,则说明这一跳网络可能存在问题。导致相应节点丢包的原因通常有如下两种:
由于链路抖动或其他因素的影响,节点的Best和Wrst值可能相差很大。而Avg(平均值)统计了自链路测试以来所有探测的平均值,所以能更好地反映出相应节点的网络质量。而StDev(标准偏差值)越高,则说明数据包在相应节点的延时值越不相同(越离散)。所以标准偏差值可用于协助判断Avg是否真实反映了相应节点的网络质量。例如,如果标准偏差很大,说明数据包的延迟是不确定的。可能某些数据包延迟很小(例如25ms),而另一些延迟却很大(例如350ms),但最终得到的平均延迟反而可能是正常的。所以此时Avg并不能很好的反映出实际的网络质量情况。
综上,建议分析标准如下:
结合上述链路测试结果示例图及分析思路,可以得出如下结论。
基于以上几条分析结论,可以判断实例中的网络链路正常。如果实际业务网络中确实存在网络波动,可以结合反向链路测试结果一并进行分析。
对网络结果分析的思路较为灵活,以上仅为指标分析的一些常见方法。在实际的网络结果分析中,您需要结合自身的实际情况进行综合评估,以便得出准确的结论。如果单向网络链路测试无法提供明确的结论,您可以结合反向链路测试进行更深入的问题分析与定位。
常见的链路异常场景将以在Linux操作系统上执行mtr命令为例进行说明。具体结果应以您实际操作系统和工具的返回结果为准。
如下图所示,数据包在第4跳之后未能收到任何反馈,Loss%、Last、Avg、Best等指标均未显示任何统计数据。这通常是由于相应节点的中断所致。建议结合反向链路测试进行进一步确认。该场景需联系相应节点所属的运营商进行处理。