ARP和代理ARP进程都是在一台主机知道了自己的IP地址和子网掩码后发生的。RARP、BOOTP和DHCP则代表了一类协议的发展,这类协议用来帮助主机动态地学习自己的IP地址。
主机通过使用RARP来尝试找到自己的IP地址。因此RARP也使用同样的ARP消息,只不过在ARP请求中列出的目标MAC地址是主机自己的MAC地址,而目标IP地址则是0.0.0.0。之后由工程师预先配置好的RARP服务器来接收这些请求,并在自己配置的地址表中执行查找,这台RARP服务器必须与客户端位于相同的子网。如果RARP服务器中配置了这个ARP请求中列出的目标MAC地址,RARP服务器就会把配置的IP地址填入源IP地址字段中,并发送ARP应答。
BOOTP本来是定义为RARP特性的一部分,用来增强IP地址的分配行为。BOOTP使用一套完全不同的消息,这些消息定义在RFC951中,封装在IP和UDP头部中。在正确配置了路由器后,路由器可以将BOOTP包转发到其他子网——这样工程师可以在网络中心的位置部署BOOTP服务器。BOOTP还支持分配很多其他琐碎的信息,包括子网掩码、默认网关、DNS地址和名称、启动(或镜像)服务器的IP地址等。但BOOTP并没有减少RARP的配置量,仍需要工程师预先在服务器上配置每个客户端的MAC地址和IP地址。