本文目录:
- 1、如何使用WinMTR对网络进行测试
- 2、如何用WinMTR分析/排查网络延迟与掉包
- 3、网络丢包&网络延迟排查
如何使用WinMTR对网络进行测试
验证数据包丢失
在分析WinMTR/MTR输出结果时,您需要查看两件事情:丢包和延迟。首先,我们来讨论丢包。如果您在任何一个节点看到有掉包,这可能表示这个 特定的路由节点有问题。然而,有些服务提供商会限制WINMTR/MTR工具发送的ICMP传输。这会对数据包丢失造成错觉,但事实上并未丢包。要确认您 看到的数据包丢失是否是由于服务提供商限制造成的,您可以查看随后的一跳路由节点。如果该跳显示丢失0%,那么您可以肯定 是ICMP限制,实际未丢包。 看下面的例子:
在这种情况下,从第一跳到第二跳的丢包可能是由于第二跳路由ICMP限制导致的。因为剩余的8个路由节点都没有丢包。这种情况下,采取掉包最少的节点作为它实际的丢包率。
再考虑一个例子:
在这种情况下,你会看到第三跳和第四跳之间有60%的丢包。您可以假设这是由于路由设备限制导致的丢包。然而,您可以看到最后一跳是显示40%的丢包。但产生不同的丢包结果时,始终采用最后一跳的丢包率。
有些丢包可能产生在路由返回的时候。数据包可以正确无误地到达目的地,但未正常返回。这也会计算在丢包率中,但您从WinMTR/MTR结果报告中很难分辨。因此,在任何时候您都需要同时收集两个方向的WinMTR/MTR结果报告。
如何用WinMTR分析/排查网络延迟与掉包
影响网速延迟/掉包的问题错综复杂,不能一概而论。数据包在网络中传递过程中也会经过多个节点到达目的地,其中数据包通过何种协议或选择何种路径去 往目的地都有关系(好比你开车去往目的地有多条路可到达,选择哪条线路,多少红灯,车辆拥堵都会影响到达目的地速度),数据包传递也是如此,整个过程不是 谁或某个机构能完全控制的,即使相同地点在不同时间也会有不同的延时与丢包,今天ping反应情况是120ms,明天可能会340ms,所以数据在特定时 间和环境才有参考价值。还有些其他因素诸如网页代码不优,被病毒攻击造成服务器负担等也会影响客户端访问速度。
WinMTR/MTR
WinMTR/MTR这款工具是非常有用的工具,反应当时主机网络的延迟,跳点,丢包等情况。
我们重点关心的是数据包在我们线路上的情况,如果你一直认为网速慢和我们有关,请使用该工具提取数据报表附于工单提交向我们反应,我们工程师来分析是否在可控范围内作出优化线路等调整。
安装WinMTR/MTR
Windows系统
下载WinMTR/MTR
Debian和Ubuntu系统
确认所需安装包已经安装,随后安装WinMTR/MTR
apt-get update
apt-get upgrade
apt-get install mtr-tiny
CentOS和Fedora系统
确认所需安装包已经安装,随后安装WinMTR/MTR
yum update
yum install mtr
Windows版本使用方法
解压文件
在 host输入: 51hosting.com (请用你要测试的网站的域名或者ip地址替换51hosting.com)
点start后等5分钟
选择Export to TEXT
把导出报告提交工单附件中
WinMTR测试结果名词解释
Copy Text to clipboard - 将结果以文本形式复制到剪贴板
Copy HTML to clipboard - 将结果以HTML形式复制到剪贴板
Export TEXT - 将结果以文本形式导出
Export HTML - 将结果以HTML形式导出
Options - 设置
Hostname:到目的服务器要经过的每个节点主机IP或名称 。
Nr:经过节点的数量;以上图洛杉矶美国机房为例子:一共要经过12个节点,其中第一个是当地宽带商的网关。
Loss%:ping 数据包回复失败的百分比;由此可判断那个节点(线路)出现故障,是服务器所在机房还是国际路由干路。
Sent:已经传送的数据包数量 。
Recv:成功接收的数据包数量 。
Best:回应时间的最小值 。
Avrg:平均回应时间 。
Worst:回应时间的最大值。
Last:最后一个数据包的回应时间。
举例说明
WinMTR的使用方法如下: 双击WinMTR.exe运行,打开后,我们可以看到Host一栏的文本框,在Host文本框内输入您要追踪的IP或者域名,再按 Start ,此时就可以看到如下图所示的 tracert 与 Ping 的结果,图例如下:
测试结束后,我们可以将结果导出:
Hostname:到目的服务器要经过的每个节点主机IP或名称 。
Nr:经过节点的数量;以上图洛杉矶美国KT机房为例子:一共要经过12个节点,其中第一个是当地宽带商的网关。
Loss%:ping 数据包回复失败的百分比;由此可判断那个节点(线路)出现故障,是服务器所在机房还是国际路由干路。 (其中图中倒数第2跳显示100%丢失,那是正常的因为有些节点禁ping后是无法取得数据的。
Sent:已经传送的数据包数量
Recv:成功接收的数据包数量
Best:回应时间的最小值
Avrg:平均回应时间
Worst:回应时间的最大值
Last:最后一个数据包的回应时间
不同的网络情况,MTR都会返回不同的结果。您需要对MTR结果做一个正确的分析。
网络丢包&网络延迟排查
网络问题往往都是比较复杂的,并且通常定位问题后也无能为力,只能推动相关运营商解决;
常见网络丢包的原因:
ICMP是一个网络层的协议,用来测试网络的连通性,因为ICMP非传输层,所以不需要端口号, ping 、 traceroute 、 mtr 都使用的是ICMP协议, 这也是 ping 命令不能指定端口号的原因;ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6;
ICMP协议可以用来:
ICMP协议的实现,是内嵌在IP包里的,IP包头部有固定的20个字节,如果IP包头里面协议字段设置为ICMP,则IP包的包体里是ICMP包体;
ICMP包体可以简单理解为 type 加 content , 有2个字节用于标识是什么类型的ICMP包,剩下的字节存储内容;ICMP的具体使用,举例如下:
ping命令会先发送一个 ICMP Echo Request给对端,对端接收到之后, 会返回一个ICMP Echo Reply,若没有返回,就是超时了,会认为指定的网络地址不存在。
ping能验证网络的连通性,并会统计响应时间和TTL(IP包中的Time To Live,生存周期),也可以用于查看网络丢包率;
traceroute也是基于ICMP协议实现的。可用于打印执行主机到目标主机之前经历多少路由器。
mtr 命令实际是集成了 traceroute 、 ping 的功能;
mtr 底层首先利用 traceroute 计算出所有的路由器节点,然后针对每个路由器节点发送 ping 命令,最后对数据做了汇总和展示;
如何分析MTR报告?
tcpdump本身是排查tcp/ip 网络问题的大杀器;
tcpdump可以单独使用,但结合 wireshark.app 等可视化软件来使用会更加直观;
tcpdump使用本身较为复杂,可以参考相关官方文档;
这里举例说明如何使用tcpdump抓取ICMP包:
ICMP协议
网络丢包分析
网络排查工具mtr使用
【mtr网络分析】的内容来源于互联网,如引用不当,请联系我们修改。
网友留言: