I am trying to learn about how ARP protocol works in LANs. So, here is the physical structure of my network:
So, when I try to ping PC3 from PC1, I expected the first packet to timeout because PC1 at first does not have the MAC address for PC3, so it should do an ARP request to get the MAC address first.
Now, when I pinged, all the packets arrived successfully!
My question is: Why is there no timeout? How did the packet arrive without knowing PC3's MAC address?
Best Answer
short answer: the first packet is not sent out before ARP completes. In order to send a packet, the sender (usually operating system) needs to fill out its IP and Ethernet header. Thus it cannot send a packet before MAC of P3 is known, i.e. ARP completes.
long answer:
The idea of what happens on the host is following.