Eu (e um colega) acabamos de observar e testar que, quando uma máquina Linux é executada ping, após o último ping, ela inicia uma solicitação ARP unicast para a máquina que iniciou o ping ICMP. Ao efetuar ping em uma máquina Windows, a máquina Windows não emite uma solicitação ARP no final.
Alguém sabe qual é o objetivo dessa solicitação de ARP unicast e por que ela ocorre no Linux e não no Windows?
O rastreamento do Wireshark (com 10.20.30.45 sendo uma caixa do Linux):
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
Atualização: eu pesquisei um pouco mais sobre solicitações de ARP unicast , e a única referência útil que encontrei está na RFC 4436, que trata de "Detectando anexos de rede" (de 2006). Essa técnica usa ARPs unicast para permitir que um host determine se ele está reconectado a uma rede conhecida anteriormente. Mas não vejo como isso se aplica a uma solicitação ARP como resultado de um ping. Então o mistério permanece ...