我(和一位同事)刚刚注意到并进行了测试,当对Linux计算机执行ping操作时,在最后一次ping之后,它将向启动ICMP ping的计算机发起单播 ARP请求。ping Windows机器时,Windows机器最后不会发出ARP请求。
有人知道此单播ARP请求的目的是什么,为什么会在Linux而不是Windows上发生?
Wireshark跟踪(Linux盒为10.20.30.45):
No.Time Source Destination Prot Info
19 10.905277 10.20.30.14 10.20.30.45 ICMP Echo (ping) request
20 10.905339 10.20.30.45 10.20.30.14 ICMP Echo (ping) reply
21 11.904141 10.20.30.14 10.20.30.45 ICMP Echo (ping) request
22 11.904173 10.20.30.45 10.20.30.14 ICMP Echo (ping) reply
23 12.904104 10.20.30.14 10.20.30.45 ICMP Echo (ping) request
24 12.904137 10.20.30.45 10.20.30.14 ICMP Echo (ping) reply
25 13.904078 10.20.30.14 10.20.30.45 ICMP Echo (ping) request
26 13.904111 10.20.30.45 10.20.30.14 ICMP Echo (ping) reply
27 15.901799 D-Link_c5:e7:ea D-Link_33:cb:92 ARP Who has 10.20.30.14? Tell 10.20.30.45
28 15.901855 D-Link_33:cb:92 D-Link_c5:e7:ea ARP 10.20.30.14 is at 00:05:5d:33:cb:92
更新:我只是在Google上搜索了更多有关单播ARP请求的信息,而我发现的唯一有用的参考是RFC 4436中有关“检测网络附件”(从2006年开始)的信息。此技术使用单播ARP允许主机确定是否将其重新连接到先前已知的网络。但是由于执行ping操作,我看不到这如何应用于ARP请求。所以这个谜仍然存在...