ARP maps IP addresses to hardware addresses. TCP/IP uses ARP to collect and distribute the information for mapping tables.
ARP is not directly available to users or applications. When an application sends an internet packet, IP requests the appropriate address mapping. If the mapping is not in the mapping table, an ARP broadcast packet is sent to all the hosts on the local network requesting the physical hardware address for the host.
Proxy ARP allows an assigned substitute ARP agent (typically a router) to respond to ARP requests on behalf of certain hosts which reside on the outside of a network. A proxy ARP agent must be defined beforehand for the ARP hosts which will have their -P (Public) flag set.