Quando eu tenho ping
um endereço IP de host na minha LAN, meu host transmite uma ARP
solicitação. Após receber uma ARP
resposta do host de destino, ele inicia uma sessão de ICMP echo
mensagens com suas respostas.
Quando o host de destino está recebendo do ARP request
meu host de origem, o host de destino está atualizando o ARP
cache com as informações incorporadas na solicitação (já que a origem MAC address
está presente no ARP request
)?
Se sim, por que o host de destino às vezes envia outro ARP request
endereço IP para o meu host de origem e descarta todas ICMP echo
as solicitações até receber um ARP reply
retorno?
Observe que esse comportamento é ocasional e, às vezes, a ICMP echo
resposta é feita antes de um ARP request
do meu host de destino, mas esse tipo de resposta ARP request
sempre ocorre em algum lugar no meio de uma sessão de ping.
Não sei se isso se deve à atualização das tabelas ARP dos hosts de sessões de ping anteriores ou se o segundo ARP request
é apenas um protocolo e o host de destino já tem as informações do host de origem MAC address
do primeiro ARP request
.
Ou será que o host de destino nem precisa do host de origem MAC address
em primeiro lugar, já que ele é sempre encapsulado em cada ICMP echo
solicitação e a resposta a cada uma dessas solicitações usa as informações recebidas sobre eles MAC addresses
e os alterna no quadro de resposta?
Edição 1: Após alguma pesquisa, descobri que o host de destino não preenche seu próprio ARP cache
passivo ARP requests
, ou seja, de solicitações de outros hosts. Ele preenche seu ARP cache
somente das ARP
respostas que recebe de suas próprias solicitações.
Edição 2: Seguindo de Edit 1
, o segundo ARP request
do host de destino antes de qualquer ICMP echo
resposta indica que a origem MAC address
não está em seu ARP cache
ou se tornou STALE
, acionando assim outro ARP request
antes de responder à ICMP echo
solicitação. (Às vezes, um STALE
endereço é primeiro verificado por meio de uma sondagem e, se o mapeamento for inválido ou a sondagem expirar, a nova sondagem ARP request
ocorre.
Assim, o segundo ARP request
ocorrendo no meio da ping
sessão, indica que a fonte MAC address
tinha se tornado STALE
no meu host de destino ARP cache
devido a alguns ARP timeout value
(configurado em 60 segundos em meus hosts), o que disparou um segundo ARP request
. Além disso, essas segundas ARP
solicitações esclarecem que, embora o host de destino não precise que a fonte MAC address
seja preenchida em seu ARP cache
e use as informações sobre ARP request
a fonte MAC address
para responder a ela, ele realmente precisa saber a fonte MAC address
para responder a uma TCMP echo
solicitação.
Ainda assim, quaisquer respostas que elaborem ou corrijam quaisquer erros nas descobertas acima são muito apreciadas.