【今日问与答】MTR测试中间某点丢包100%,那么最后一跳的包是怎么收到的,不是中间已经全部丢失了嘛

IT民工金鱼哥
运维领域新星创作者
2022-02-20 18:01:00

MTR测试中间某点丢包100%,那么最后一跳的包是怎么收到的,不是中间已经全部丢失了嘛?
例如下图,中间已经出现多个100%丢包的点,但是最后一跳还是收到了8个包,loss记录为0%
这是什么原因呢,求解答!

auto-orient,1


答:

mtr 是ping和traceroute 两个工具集合,,如果你用过 tracert 应该会知道,有些段是禁ping的,那这时候就显示 * 或者 ? 之类,,
禁止ping,你自然就丢包了,这些丢包是由于icmp的保护机制造成的,并不代表真的丢包
只是人家有相关策略而已。

每字段的解释:
第一列:host显示的是IP地址和本机域名,这点和tracert很像;
第二列:loss%就是对应IP行的丢包率了(需要注意的是有些丢包是由于icmp的保护机制造成的,并不代表真的丢包);
第三列:snt 每秒发送数据包的数量,默认值是10,窝这里通过参数 -c来指定发送15个包;
第四列:Last显示的最近一次的返回时延;
第五列:Avg是平均值 这个应该是发送ping包的平均时延;
第六列:Best是最好或者说时延最短的;
第七列:Wrst是最差或者说时延最常的;
第八列:StDev是标准偏差,统计学名词,一种量度数据分布的分散程度标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少。


回:

那禁ping指的是这些点不回包,但是还会继续把包往后面传递是嘛?不然完全限制ICMP包的话,起点发送的包到这里就全部结束了吧


答:

我没回答你是完全限制啊。你看看你的最终目的地,就相当于当了某节点,有路由转发出去了,只是这节点人家禁止你ping过来,所以没回包,但你的最终目的包,有路由的话,就会继续转发出去。
所以日常我们是可以用 tracert 来辅助排查哪一段出了问题。

你可以查一下 tracert 的机制,,这个无论在 win 还是linux上都一样,都是网络层面的工具而已。


回:

恩恩,看了下tracertoute的原理,是通过接收ICMP-超时包,然后不断增加ttl值来实现探测到目的地址的链路详情的。
应该是中间这些节点限制了不返回ICMP-超时包给请求主机,但是正如您所说,应该不是完全限制ICMP报文,是可以通过路由转发出去的,也就是当ttl值增加后(暂时还没有验证出traceroute未接收到ICMP超时包是凭借什么判断继续增加ttl值的),到达这些点时ttl还不为0,可以通过路由继续向后传递。
谢谢解答!!


答:

嗯嗯,是也是 一个保护机制,不想把自己节点的IP地址暴露出去 

...全文
1151 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-网络与通信 发布问题, 以便更快地解决您的疑问

16,207

社区成员

发帖
与我相关
我的任务
社区描述
面向想学习云原生运维的朋友提供交流学习园地,社区管理员 互联网老辛 将长期面向社区组织技术交流及直播活动。 欢迎各位加入极客运维之家联盟,本社区诚邀各位踊跃投稿。
运维开发云计算python 个人社区 北京·海淀区
社区管理员
  • 互联网老辛
  • 我是沐风晓月
  • IT民工金鱼哥
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧