Ping
對本地網路中不存在的主機的 Arp 請求
我想知道為什麼我得到以下結果:
如果我嘗試訪問本地網路上不存在的主機,例如使用命令 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 秒分群。