I have a scenario as depicted below.
Here two host machines are connected via a hub:

Ok, so host-1 wants to ping host-2 and i have setup wireshark on a 3rd host connected to the same hub. Now surprisingly for a single ping command to work, i see 6 packets, while there should be 4. Here it is what i see from wireshark:

Now what is beyond my understanding is that why the packet 5 & 6 are generated while isn't on ARP reply destination already knows the sender mac already.
Or is there something wrong with my understanding, please help.
gratuitous ARP. What's target mac in the 5th request? @OliverSalzburg Receiving node must honor information received in ARP packet and insert it into its own table, as specified in RFC 826: tools.ietf.org/html/rfc826 – wmz Sep 21 '12 at 11:20