ARP stands for address resolution protocol. It is used to transform an IP address to its corresponding physical network address.
It is at the lower levels of networking protocol (layer 2of OSI model) and it is usually run in the device drivers of the network OS.
ARP is generally seen on Ethernet networks and on physical networks. The original design and implementation of ARP was documented by the RFC 826.
To setup ARP on an Ethernet network, the hardware present will be given a physical MAC address, which will always be unique (6 bytes), this is essential to ensure delivery of the messages efficiently. The sending devices will thus have to first find out the MAC address through the IP address ( These IP-to-MAC address mappings are derived from an ARP cache maintained on each device).
If an IP address is not given the device will have to get a new mapping before it is able to send messages to a target. To get a new mapping the sending device will use the local subnet to send an ARP request broadcast message. The IP address to which the message was sent will respond by the host offering a reply which will allow the sending device to update its cache and continue to send messages to the intended target.