遇到的問題是:
-
同一個程序在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包的路徑下哪部分硬件壞掉了(網絡或主機)。
也有一些大佬說是可能原因有以下幾點:
-
網絡中存在環路路由(static route); --- 數據包不斷在這個網絡傳輸,始終到達不了目的地,導致掉線或者網絡癱瘓;
-
雙機HA; --- 這個我自己也沒看懂,網絡太深奧了,好的博客給懂得人看,吶~,傳送帶
-
兩台虛擬機使用了相同的MAC地址;
-
ICMP REDIRECT; --- 不懂,先貼出來
-
/etc/tcp里面的配置手動改過,改錯了,廣播地址改成了你所要ping的ip地址;
(DUP!) 這個東西是DUPLICATE的一個縮寫,也就是ping包的時候收到多個重復值回應,通常發生在linux環境下比較多,windows環境對ping的reply只接到一個,第后續的重復回應會被廢棄。
發生這種情況通常是主宿機的IP沖突,或者網關有重復的路由設置,也或者路由器堵塞比較厲害,也可能還有其他原因。
推薦解決辦法是更改主機的IP網段,然鵝,這里的大佬比較厲害,只好我在程序中做了規避處理。
最后,什么鍋都由寫程序的背吧!祝大家背鍋愉快!
