Address Resolution Protocol is a means for a network application or device to determine the Ethernet address of another device. Also known by the acronym ARP, it attempts to match an Internet Protocol (IP) address with a hardware address. ARP is used by each device on a local network the first time it communicates with another device on the same network.
Applications and network devices communicate on a high level using packets on the network layer of the protocol stack. These packets are directed to IP addresses. When each packet is sent over the local area network (LAN) using the data link layer, the receiver's Ethernet address must also be known. IP addresses can be assigned dynamically and change over time, while Ethernet addresses generally remain the same. An application or device needs a way to determine the hardware address currently associated with a given IP address.
Address Resolution Protocol defines a standard method for discovering these addresses. ARP was documented by the Internet Engineering Task Force (IETF) in 1982 as Request For Comments (RFC) 826. When a system is ready to send an IP packet, it consults its cache of recently resolved addresses. If the destination IP address is not in the cache, it broadcasts a message to the entire LAN using ARP. This message requests the device with the destination IP address to respond with its Ethernet hardware address.
This Address Resolution Protocol request packet includes the requester's IP and hardware addresses, as well as the IP address sought. Every device on the LAN listens for an ARP request packet containing its IP address. If one is heard, the matching device composes an ARP response packet containing its Ethernet hardware address. This response packet is then sent directly to the requester, which stores the addresses in its ARP cache for later reuse. The responder may also store the addresses in its cache, since it is likely to communicate further with the requester.
IP Version 4 (IPv4) and Ethernet addresses are the most common types of addresses resolved by Address Resolution Protocol. The request packet does support other types through the Protocol Type and Address Length fields, however. IP Version 6 (IPv6) addresses are resolved with Neighbor Discovery Protocol (NDP) instead of ARP.
Reverse Address Resolution Protocol (RARP) requests an IP address for the requester's hardware address. A RARP server responds to one of these requests by allocating a new IP address and associating it with the requester's hardware address. Reverse ARP is considered obsolete—its functionality is incorporated in the Dynamic Host Configuration Protocol (DHCP). Inverse Address Resolution Protocol requests the existing IP address associated with the given hardware address. In this case, the hardware address can be that of any node on the same LAN.