逆地址解析协议

逆地址解析协议(Reverse Address Resolution Protocol,RARP),是一種網路協議互联网工程任务组(IETF)在RFC903中描述了RARP[1]。RARP使用与ARP相同的报头结构,作用与ARP相反。RARP用于将MAC地址转换为IP地址。其因為較限於IP地址的運用以及其他的一些缺點,因此漸為更新的BOOTPDHCP所取代。

报文格式

类似于ARP的报文格式主要差别在于帧类型代码为0x8035(ARP为0x0806),操作码为3请求(ARP为1),4应答(ARP为2)。

工作原理

  1. 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
  2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
  3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;
  4. 如果不存在,RARP服务器对此不做任何的响应;
  5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

RARP服务器

RARP在原理上很简单但是实现比较复杂,由于RARP的请求是在硬件层上的广播这因此这不能通过路由转发,因此在每个网络都要实现一个RARP服务器。另外在同一网络中不同主机可能会同时进行RARP请求,增大了冲突的概率。

参考文献

  1. ^ RFC 903, A Reverse Address Resolution Protocol, R. Finlayson, T. Mann, J. Mogul, M. Theimer (June 1984)