ARP (Address Resolution Protocol) and RARP (Reverse Address Resolution Protocol) are two of the computer network protocols used for resolving link layer and IP protocol addresses. ARP resolves an IP address, given the hardware address. RARP resolves a hardware address when the corresponding IP address is provided. In reality, RARP does the opposite or the reverse of ARP, hence the name Reverse ARP. But RARP is not used anymore (has been replaced by better protocols).
What is ARP?
ARP is a computer network protocol used to convert network layer addresses to link layer addresses. RFC 826 describes the ARP. In the event of transmitting network layer traffic, determining the link layer addresses in multiple-access networks is important. ARP is used under many technologies such as IPv4, FDDI, X.25, and Frame Relay. The two most popular usages are IPv4 over IEEE 802.3 and IEEE 802.11. ARP operates as a request-reply protocol. It belongs to the family of non-routable protocols (i.e. it will not cross internetwork nodes). ARP message format is very simple and is made up of either one address resolution request or one response. But the actual size of the message is dependent on the address size of the layers above and below. Message header specifies those sizes and the address lengths of each layer. The payload is made up of the hardware/ protocol addresses of the sending and receiving nodes.
ARP is sometimes used as a protocol for simple announcements. For example, when the IP or MAC address has changed, it can inform other hosts to update their address mappings. In a situation such as the above, ARP messages are called gratuitous ARP message. These messages just update the cache of the other hosts in the network and do not actually request a reply from them. To make sure that all hosts have the current ARP information in their caches, many Operating Systems use gratuitous ARP messages at the time of startup.
What is RARP?
RARP is a networking protocol used in computer networks. RARP is described in RFC 903 published by IETF. This is an obsolete protocol and is not used anymore. A host computer used to use this protocol to ask for the IP (Internet Protocol, more specifically IPv4) address of another host, when the hardware address (Link layer) address is available to it. Example of a hardware address used was the MAC (Media Access Control) address of the host. RARP went obsolete due to the introductions of BOOTP (Bootstrap Protocol) and more recent DHCP (Dynamic Host Configuration Protocol) protocols, because both of them offer much more features than RARP. RARP operates by making sure that few server hosts keep a database containing Link Layer to respective protocol addresses mappings. RARP served only the IP address. MAC addresses of hosts were configured individually by the administrators.
What is the difference between ARP and RARP?
ARP maps IP addresses to hardware address, while RARP does the opposite (maps hardware addresses to IP addresses). In other words, input to the ARP is a logical address, while the input for RARP is a physical address. Similarly, the outputs to these two protocols are also reversed. Unlike ARP, RARP is obsolete now and it has been replaced by BOOTP and DHCP protocols.