ARP table does not store devices responding to a broadcasted ping request

arpmac addressping

I have got a simple question, I am doing a broadcasted ping request on my local network, using a Mac with the latest Yosemite 10.10.4.

So I ping 255.255.255.255, I get responses from a bunch of devices ( all on the local 10.11.204.XX network, with 255.255.255.0 mask). But if I look into the ARP table with arp -a, I can not see any of the devices that responded to my ping request. I only can see the broadcast IP and MAC address in the table (10.11.204.255 | ff:ff:ff:ff:ff:ff).

However, if I ping individually each device, then they appear into the ARP table.
Why is this behavior ?

Then, if I leave the ping request looping, I will see after a while and only sometimes, some of the devices's IPs. This is really strange for me.

Best Answer

Your (unspecified OS) is apparently only populating it's cache based on hosts it has directly contacted. As it send a frame to FF:FF:FF:FF:FF:FF, none of the previously unknown responding nodes will be learned.