An IP address is considered public if the IP number is valid and falls outside any of the IP address ranges reserved for private uses by Internet standards group. Public IP addresses are used by servers (including those for Web sites and DNS servers), network routers or any computer connected directly to the Internet via a modem.
Each public IP is assigned to a range or block of addresses. The Internet Assigned Numbers Authority (IANA) controls ownership of these IP ranges and assigns each block to organizations such as Internet Service Providers (ISPs) who in turn allocate individual IP address to customers.
Address Resolution Protocol (ARP) is a protocol for mapping an Internet Protocol address (IP address) to a physical machine address that is recognized in the local network. For example, in IP Version 4, the most common level of IP in use today, an address is 32 bits long.
In an Ethernet local area network, however, addresses for attached devices are 48 bits long. (The physical machine address is also known as a Media Access Control or MAC address.) A table, usually called the ARP cache is used to maintain a correlation between each MAC address and its corresponding IP address. ARP provides the protocol rules for making this correlation and providing address conversion in both directions.
How ARP Works
When an incoming packet destined for a host machine on a particular local area network arrives at a gateway, the gateway asks the ARP program to find a physical host or MAC address that matches the IP address. The ARP program looks in the ARP cache and, if it finds the address, provides it so that the packet can be converted to the right packet length and format and sent to the machine.
If no entry is found for the IP address, ARP broadcasts a request packet in a special format to all the machines on the LAN to see if one machine knows that it has that IP address associated with it. A machine that recognizes the IP address as its own returns a reply so indicating. ARP updates the ARP cache for future reference and then sends the packet to the MAC address that replied.
Since protocol details differ for each type of local area network, there are separate ARP Requests for Comments (RFC) for Ethernet, ATM, Fiber Distributed-Data Interface, HIPPI, and other protocols.
There is a Reverse ARP (RARP) for host machines that don’t know their IP address. RARP enables them to request their IP address from the gateway’s ARP cache.
The most widely used network layer protocol in the world—by far—is the TCP/IP Internet Protocol. It’s no surprise then, that the most important address resolution protocol is the TCP/IP protocol bearing the same name as the technique itself: the Address Resolution Protocol (ARP).
ARP is a full-featured dynamic resolution protocol used to match IP addresses to underlying data link layer addresses. Originally developed for Ethernet, it has now been generalized to allow IP to operate over a wide variety of layer two technologies.
In this section I describe the operation and features of ARP. I begin with an overview of the protocol, and a discussion of its defining standards and history. I briefly outline how addresses are specified in ARP and its general operation, as well as describing the message format used for ARP messages.
I then turn to the important matter of caching in ARP and how that is used to improve performance. I conclude with a discussion of proxying in ARP, which is needed to support special network connectivity situations.