美文网首页
【ping】用ping、mtr命令命令查看丢包

【ping】用ping、mtr命令命令查看丢包

作者: Bogon | 来源:发表于2022-08-02 06:34 被阅读0次

两端之间的网络丢包

前面提到的是两端机器内部的网络丢包,除此之外,两端之间那么长的一条链路都属于外部网络,这中间有各种路由器和交换机还有光缆啥的,丢包也是很经常发生的。

这些丢包行为发生在中间链路的某些个机器上,我们当然是没权限去登录这些机器。但我们可以通过一些命令观察整个链路的连通情况。

ping命令查看丢包

比如我们知道目的地的域名是 baidu.com。想知道你的机器到baidu服务器之间,有没有产生丢包行为。可以使用ping命令。

ping查看丢包

倒数第二行里有个100% packet loss,意思是丢包率100%

但这样其实你只能知道你的机器和目的机器之间有没有丢包。

那如果你想知道你和目的机器之间的这条链路,哪个节点丢包了,有没有办法呢?

有。

mtr命令

mtr命令可以查看到你的机器和目的机器之间的每个节点的丢包情况。

像下面这样执行命令。

mtr_icmp

其中-r是指report,以报告的形式打印结果。

可以看到Host那一列,出现的都是链路中间每一跳的机器,Loss的那一列就是指这一跳对应的丢包率。

需要注意的是,中间有一些是host是???,那个是因为mtr默认用的是ICMP包,有些节点限制了ICMP包,导致不能正常展示。

我们可以在mtr命令里加个-u,也就是使用udp包,就能看到部分???对应的IP。

mtr_udp

ICMP包和UDP包的结果拼在一起看,就是比较完整的链路图了。

还有个小细节,Loss那一列,我们在icmp的场景下,关注最后一行,如果是0%,那不管前面loss是100%还是80%都无所谓,那些都是节点限制导致的虚报

但如果最后一行是20%,再往前几行都是20%左右,那说明丢包就是从最接近的那一行开始产生的,长时间是这样,那很可能这一跳出了点问题。如果是公司内网的话,你可以带着这条线索去找对应的网络同事。如果是外网的话,那耐心点等等吧,别人家的开发会比你更着急。

参考

使用ping命令丢包或不通时的链路测试方法

https://help.aliyun.com/document_detail/40573.html

Diagnosing Network Issues with MTR

https://www.linode.com/docs/guides/diagnosing-network-issues-with-mtr

mtr命令详解

https://www.cnblogs.com/my-show-time/p/15062134.html

用了TCP协议,就一定不会丢包吗?

https://mp.weixin.qq.com/s/8cXYXAHZCJMPSaaMpDqYtQ

TCP粘包 数据包:我只是犯了每个数据包都会犯的错

https://mp.weixin.qq.com/s/0-YBxU1cSbDdzcZEZjmQYA

漫画图解HTTP知识点

https://mp.weixin.qq.com/s/wNRoDoW_VEqiq8JelePj2g

相关文章

网友评论

      本文标题:【ping】用ping、mtr命令命令查看丢包

      本文链接:https://www.haomeiwen.com/subject/sfpdwrtx.html