逆地址解析协议

逆地址解析协议(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)