Ping

對本地網路中不存在的主機的 Arp 請求

  • July 23, 2015

我想知道為什麼我得到以下結果:

如果我嘗試訪問本地網路上不存在的主機,例如使用命令 ping,我會看到我的電腦tcpdump arp每秒發送一個who-has請求的命令,但我Destination Host Unreachable每三秒連續收到三條消息。

你能解釋一下為什麼嗎?

http://linux-ip.net/html/ether-arp.html

如果請求的目標 IP 不存在 ARP 記憶體條目,核心將生成 mcast_solicit ARP 請求,直到收到答复。在此發現期間,ARP 記憶體條目將以不完整的狀態列出。如果在指定數量的 ARP 請求後查找未成功,則 ARP 記憶體條目將被列為失敗狀態。如果查找成功,核心將響應輸入 ARP 記憶體並重置確認和更新計時器。


您可以在 eg 中找到 mcast_solicit 的值/proc/sys/net/ipv4/neigh/eth0/mcast_solicit。我不確定重新傳輸 arp 請求之前的超時是否可調,但根據經驗它是 1 秒。

由於需要 3 次重試才能得出主機不可達的結論,因此 ping 數據包排隊等待 3 秒,然後由於狀態為“不可達”,它們都被一起拒絕。然後故事又開始了,解釋了錯誤消息的 3 秒分群。

引用自:https://serverfault.com/questions/707789