When host A pings to host B, and before ARP entry for host B is resolved, what happens to the ICMP Echo requests issued my host A? In general does IP wait for ARP retries * ARP timeout time before sending Request timeout error message? I want to know whether ICMP Echo Requests are sent even before ARP is resolved or whether they are memorised and later sent when the ARP is resolved.
Any pointers on this welcomed!!
To send the ICMP ping packet, or any unicast packet for that matter, to the destination, the source must know the destination MAC address. There are only two places this can come from: either the address is already cached in the ARP cache so it is simply read from there, or it is not cached in the cache so the ARP request/reply mechanism is invoked to find it from the network. Either way, the packet cannot be sent until the MAC address is obtained. So I suppose you could say that the ping packet is 'stored' until ARP has done it's thing, but that's not entirely accurate. Rather it's the intention to send the packet that gets stored, the packet itself isn't created until all the information needed is to hand, and that includes the MAC address