Android 平台ping包 对方ip返回 +1 duplicates (重复回应包)

遇到的问题是:

  • 同一个程序在MTK的设备上ping包时出现重复包的问题,导致程序出错,经过那么久的使用从来没出现这样的问题,奇怪的是在同事那边MTK设备测试出现同样的问题;

  • 但是我这边在高通的设备上运行时不会出现这个问题;

  • MTK出现问题在在上午,到下午重启再去测试又是正常的了 --- 很大的可能是网络环境有问题~

关于这个问题比较好奇查看了下相关的资料。

  • DUPLICATE AND DAMAGED PACKETS

  • The ping utility will report duplicate and damaged packets. Duplicate packets should never occur when pinging a unicast address, and seem to be caused by inappropriate link-level retransmissions. Duplicates may occur in many situations and are rarely (if ever) a good sign, although the presence of low levels of duplicates may not always be cause for alarm. Duplicates are expected when pinging a broadcast or multicast address, since they are not really duplicates but replies from different hosts to the same request.

  • Damaged packets are obviously serious cause for alarm and often indicate broken hardware somewhere in the ping packet’s path (in the network or in the hosts).


  • 大概意思:重复和损坏的数据包

  • Ping将报告重复和损坏的数据包。当使用单播地址时,不应该出现重复的数据包,而且出现重复数据包似乎时是由不适当的链路重传引起的。

  • 重复可能在很多情况下发生,而且很少(如果有的话)是一个好的现象,尽管低水平的重复现象不总会造成警报。

  • 当在ping一个广播或多播地址时会出现重复包,因为他们不是真正的重复,而是来自不同主机对相同请求的是响应。

  • 损坏包显然时可以引起严重的恐慌,通常指出在ping包的路径下哪部分硬件坏掉了(网络或主机)。

也有一些大佬说是可能原因有以下几点:

  1. 网络中存在环路路由(static route); --- 数据包不断在这个网络传输,始终到达不了目的地,导致掉线或者网络瘫痪;

  2. 双机HA; --- 这个我自己也没看懂,网络太深奥了,好的博客给懂得人看,呐~,传送带

  3. 两台虚拟机使用了相同的MAC地址;

  4. ICMP REDIRECT; --- 不懂,先贴出来

  5. /etc/tcp里面的配置手动改过,改错了,广播地址改成了你所要ping的ip地址;

(DUP!) 这个东西是DUPLICATE的一个缩写,也就是ping包的时候收到多个重复值回应,通常发生在linux环境下比较多,windows环境对ping的reply只接到一个,第后续的重复回应会被废弃。

发生这种情况通常是主宿机的IP冲突,或者网关有重复的路由设置,也或者路由器堵塞比较厉害,也可能还有其他原因。

推荐解决办法是更改主机的IP网段,然鹅,这里的大佬比较厉害,只好我在程序中做了规避处理。

最后,什么锅都由写程序的背吧!祝大家背锅愉快!

posted @ 2018-07-05 15:06  #Skye  阅读(2031)  评论(0编辑  收藏  举报