最近要开发一个小工具,学习一些网络检测定位的东西遇到了一个问题。我在第12跳上有一个IP地址。当我向其IP发送TTL为11的icmp请求数据包时,第11跳的数据包丢失为0%。
但是,如果我ping第11跳的IP地址,或使用TTL 11构建我的icmp请求数据包来trace第11跳,则数据包丢失会超过20%。
不太明白为什么。是路由器对reply包和time exceed包处理有区别吗?还是路由器向下一跳传递和回复源IP是两个不相关的东西。
还是需要像pathping一样,取得目的ip路由路径后用ping来统计丢包时延?不能一直对目的ip做trace来统计丢包时延?
抱歉,由于某种原因我无法粘贴我的输出,但是我的输出看起来像这样。
trace 123.123.123.124
IP TTL Loss
xxx.xxx.xxx.xxx 1 0%
xxx.xxx.xxx.xxx 2 0%
xxx.xxx.xxx.xxx 3 0%
xxx.xxx.xxx.xxx 4 0%
xxx.xxx.xxx.xxx 5 0%
xxx.xxx.xxx.xxx 6 0%
xxx.xxx.xxx.xxx 7 0%
xxx.xxx.xxx.xxx 8 0%
xxx.xxx.xxx.xxx 9 0%
xxx.xxx.xxx.xxx 10 0%
123.123.123.123 11 0%
123.123.123.124 12 20%
trace 123.123.123.123
IP TTL Loss
xxx.xxx.xxx.xxx 1 0%
xxx.xxx.xxx.xxx 2 0%
xxx.xxx.xxx.xxx 3 0%
xxx.xxx.xxx.xxx 4 0%
xxx.xxx.xxx.xxx 5 0%
xxx.xxx.xxx.xxx 6 0%
xxx.xxx.xxx.xxx 7 0%
xxx.xxx.xxx.xxx 8 0%
xxx.xxx.xxx.xxx 9 0%
xxx.xxx.xxx.xxx 10 0%
123.123.123.123 11 20%
ping 123.123.123.123 loss 20%