Before DHCP, there were other protocols to assign an IP address to a host. First, there was RARP (Reverse ARP), later came BOOTP (Bootstrap Protocol).
RARP is an old protocol and we don’t use it anymore to assign IP addresses to hosts. It has been replaced by BOOTP and later by DHCP.
So, what exactly is RARP? You probably know ARP. We use ARP to figure out the MAC address of a remote IP address that you want to reach. RARP uses the same packets but for a different reason. We use RARP to figure out what our own IP address is.
RARP was used by old diskless workstations. These old hosts don’t have a disk so there is nothing to store an IP address on. They do have a hardcoded MAC address though. When the workstation starts, it broadcasts a RARP request with its own MAC address.
On the same network as the hosts, we have a RARP server listening to the RARP requests. This server has a table that contains a combination of MAC and IP addresses. When it receives a RARP request, it checks its table to find the matching IP address for the MAC address in the RARP request packet. The RARP server then replies with a RARP reply to the host. When the host receives the RARP reply, it knows its IP address.
Here’s what this process looks like. The host does a RARP request:
And the RARP server replies with the RARP reply:
RARP is a simple protocol and has some disadvantages: