The ARP protocol plays a key role among Internet layer protocols relating to TCP/IP, since it enables the physical address of a network interface card corresponding to an IP address to be known. That is why it is called Address Resolution Protocol.
Every machine connected to the network has a 48 bit identification number. This is a unique number which is fixed in the factory when the card is manufactured. However, communication over the Internet does not directly use this number (since the computers' addresses would need to be changed each time a network interface card is changed) but uses a logical address allocated by the system: the IP address.
So that the physical addresses can be linked the logical addresses, the ARP protocol interrogates the network machines to find out their physical address, then creates a lookup table between the logical and physical addresses in a cache memory.
When one machine needs to communicate with another, it consults the lookup table. If the requested address is not found in the table, the ARP protocol issues a request over the network. All machines on the network will compare this logical address to theirs. If one of them identifies with this address, the machine will respond to ARP which will store the address pair in the lookup table and communication will then be able to take place...
RARP (Reverse Address Resolution Protocol) is much less used. It is a type of reverse directory of logical and physical addresses.
In reality, the RARP protocol is essentially used for work stations without hard disks that want to know their physical address...
The RARP protocol allows a work station to find out its IP address from a lookup table between MAC addresses (physical address) and IP addresses hosted by a gateway located on the same local area network (LAN).
To do so, the administrator must define the gateway parameters (router) with the lookup table for MAC/IP addresses. Unlike ARP this protocol is static. So, the lookup table must always be up to date to enable the connection of new network interface cards.
RARP suffers from many limitations. A lot of administration time is required to maintain the important tables on the servers. This is even truer for a large network. This creates human resource problems, necessary for the maintenance of the lookup tables and the capacities of the hardware hosting the server part of the RARP protocol. Indeed, RARP allows several servers to respond to requests, although it does not allow for mechanisms guaranteeing that all servers are able to respond, or even that they respond in an identical way. So, in this type of architecture, we cannot be confident that an RARP server knows whether a MAC address can be linked to an IP address because other ARP servers may have a different response. Another limitation of RARP is that a server can only serve one LAN.
In order to get round the first two problems of administration, the RARP protocol can be replaced by the DRARP protocol, which is a dynamic version. Another approach consists of using a DHCP server, which allows dynamic resolution of the addresses. In addition, DHCP is compatible with the BOOTP protocol and like this protocol is routable which enables it to serve several LANs. It only works with IP.
The main documentation on ARP and RARP protocols is put together from RFCs: