Address Resolution Protocol
Although the IP address is always used by the upper layers to identify a destination station, the actual transmission of the packet (or packets) is accomplished across the network interface and requires use of the Media Access Control (MAC) or other Data Link Layer address. Even packets that are indirectly routed can be forwarded from router to router across an intervening subnetwork, as long as the routers use MAC addresses to communicate. However, given only an IP address, how does a station learn the MAC address of a destination station on the same LAN? The solution is the Address Resolution Protocol (ARP). Originally specified for mapping IP to Ethernet addresses, ARP is documented in STD 37/RFC 826.
When a station (Host A, in this case) needs to transmit a packet to another station on the local network, it begins by looking up the IP address in its ARP table. The ARP table stores pairings between MAC addresses (called the hardware address) and IP addresses (called the protocol or software address). If the entry is found, the packet is passed to the Network Interface Layer (an Ethernet card in this case) for transmission across the medium. If no entry is found for the desired IP address, an ARP packet is generated so the MAC address can be determined.
The steps of the ARP process, as shown on the visual, are discussed below.
- The TCP process within Host A passes a segment of data down to the IP process, along with the instruction to send that data to Host B’s IP address (184.108.40.206). Host A constructs the packet and determines that it can be directly routed since both hosts share the same NETID (220.127.116.11).
- Host A consults its ARP table and finds no mapping for Host B’s MAC address (initially).
- Host A generates an ARP Request message containing its own IP and MAC addresses, and the target IP address (18.104.22.168) that must be mapped to a MAC address. The ARP message is placed into an Ethernet frame that contains the broadcast address (i.e., it will be processed by all stations on the LAN). It is the responsibility of the MAC protocol to identify the contents of this frame as an ARP message. Each LAN station receiving the packet checks to see if its IP address matches the address being queried, but only the station finding a match responds.
- Host B recognizes the query for its MAC address and generates an ARP Reply message containing that station’s IP and MAC addresses, and places it in an Ethernet frame addressed to Host A. Host B might store the ARP Request sender’s IP and MAC addresses (Host A) in its ARP table. This eliminates the need for Host B to issue an ARP query when it needs Host A’s MAC address. Router 1 sees the initial ARP Request message, but ignores it because the requested IP address is not its own.
- Host A places the address mapping from the ARP Reply in its ARP table for future use.
- Host A then puts the original IP packet into an Ethernet frame addressed to the newly discovered MAC address and sends it to Host B.
Entries in ARP tables are timestamped so that old information can be periodically purged from the table. In this way, a network administrator can remove stations, add stations, change IP addresses, or move LAN adapters from station to station with no need to manually update address tables.
The ARP Family
Most contemporary computer network architectures use hierarchical addresses in their Network Layer protocol to organize large numbers of end systems and simplify data delivery. Most use a variety of physical and data link technologies to interconnect systems. These data link technologies invariably have some address format of their own. To successfully transmit data from one machine to another, all levels of addressing must be satisfied. A family of address resolution protocols has been devised to facilitate the mapping and correlation between Network Layer and Data Link Layer addresses in various environments.
- Address Resolution Protocol (ARP): Allows a sender to learn a local recipient’s MAC address given its IP address.
- Reverse Address Resolution Protocol (RARP): Allows a station (typically a diskless workstation) to learn its own IP address from an appropriately equipped address server, knowing only its own MAC address. RARP has been displaced by DHCP.
- Inverse Address Resolution Protocol (InARP): Allows a sender to learn a receiver’s Layer 3 (Network Layer) address(es) associated with a virtual circuit identifier. InARP is commonly used in frame relay and ATM WANs.
|<mp3>http://podcast.hill-vt.com/podsnacks/2007q3/arp.mp3%7Cdownload</mp3> | Address Resolution Protocol (ARP)|