physically machines only know each other thanks to their mac adresses
they also know their ip address by that's software
arp protocol is the way machines ask other machines "I'm looking for ip address n.n.n.n, are you there?"
The reply is "yes I'm here. Btw this is my mac adress, remember it"
Then machines store the couples (mac adress<->ip addresses),
because without mac adress packets aren't reaching their target
packets received are filtered at hardware level thanks to mac address
packets received are filtered at software level thanks to ip address
icmp (if I remember well) is protocol that assumes couples ma/ip are set and used to transfert the real things, that is ip packets with data inside, eventually cut in several packets. I would say a normal ip packet is a subset of imcp packet, but I may be wrong. you have to read some rfc's to have a clear view of all this stuff. look for rfcNNNN.txt text files (norms, standards) in rfc repositories on internet (often barely a directory you can explore through ftp).
so yes, you need arp.
This post has been edited by openxdkman: Apr 4 2008, 11:12 AM