ping返回DUP!的问题

时间:2021-09-07

今天在一台服务器上ping一个地址,发现返回的ICMP包中如下记录:

[root@test ~]# ping 60.209.126.73
PING 60.209.126.73 (60.209.126.73) 56(84) bytes of data.
64 bytes from 60.209.126.73: icmp_seq=1 ttl=53 time=20.8 ms
64 bytes from 60.209.126.73: icmp_seq=2 ttl=53 time=21.1 ms
64 bytes from 60.209.126.73: icmp_seq=2 ttl=53 time=25.0 ms (DUP!)
64 bytes from 60.209.126.73: icmp_seq=3 ttl=53 time=20.6 ms
64 bytes from 60.209.126.73: icmp_seq=4 ttl=53 time=20.7 ms
64 bytes from 60.209.126.73: icmp_seq=5 ttl=53 time=20.6 ms
64 bytes from 60.209.126.73: icmp_seq=6 ttl=53 time=20.7 ms
 

(DUP!)是来标记重复应答的。就是响应一个echo-request时,除了第一个echo-reply以外都标记成(DUP!),windows系统上不会有这样的结果,因为微软的Ping程序不对多个回应进行解包,收到第一个包以后就丢弃后面的了,同样微软的系统默认也不回应广播地址的包,所以这种情况一般发生在linux机器上。

查了资料后发现产生这种情况有一些可能的原因:
1、对方网络使用了很多静态路由,导致产生了环路
2、对方路由器负载很高
3、有多个设备使用同个地址,比喻你ping广播地址会产生大量的这样的包


转载于:https://blog.51cto.com/2816056/1158344


【推荐】 如何实现1080P延迟低于500ms的实时超清直播传输技术
【推荐】 史上最全Windows安全工具锦集
【推荐】 LVS负载均衡的三种模式和八种算法总结
【推荐】 火爆背后的挑战:直播平台的高并发架构设计