什么是反向地址解析协议 (RARP)?
反向地址解析协议 (RARP) 是一种网络特定的标准协议。它在 RFC 903 中进行了描述。某些网络主机,例如无盘工作站,在启动时不知道自己的 IP 地址。为了确定自己的 IP 地址,它们使用类似于 ARP 的机制,但现在主机的硬件地址是已知参数,而 IP 地址是被查询的参数。
反向地址解析的执行方式与 ARP 地址解析相同。ARP 使用的相同数据包格式也用于 RARP。
唯一的例外是操作码字段,它现在采用以下值:
- 3 用于 RARP 请求
- 4 用于 RARP 响应
帧的物理报头现在将指示 RARP 作为更高级别的协议(十六进制 8035),而不是以太网类型字段中的 ARP(十六进制 0806)或 IP(十六进制 0800)。
当具有本地磁盘的框架引导时,它通常从磁盘文件中读取的配置文档中获取其 IP 地址。但是,没有磁盘的系统(包括 X 终端或无盘工作站)需要其他方法来获取其 IP 地址。
RARP 的功能是让无盘框架从接口卡读取其特定的硬件地址,并发送 RARP 请求,要求有人回复无盘系统的 IP 地址。
RARP 数据包的格式几乎与 ARP 数据包相同。唯一的区别在于,对于 RARP 请求或响应,帧类型为 0X8035,对于 RARP 请求,op 字段的值为 3,对于 RARP 响应,op 字段的值为 4。
RARP 的问题包括它使用链路层广播,阻止大多数路由器转发 RARP 请求,以及返回的信息最少,仅包括系统的 IP 地址。虽然 RARP 的概念很简单,但 RARP 服务器的实现是依赖于系统的。
一些差异源于 RARP 本身的一些概念:
- ARP 仅假设每个主机都知道其自身硬件地址和协议地址之间的映射。RARP 要求网络中一个或多个服务器主机维护硬件地址和协议地址之间映射的数据库,以便它们能够回复来自客户端主机的请求。
- 由于该数据库的大小,服务器功能的一部分通常在适配器微代码之外实现,并在微代码中可选地使用一个小缓存。然后,微代码部分仅负责接收和传输 RARP 帧,RARP 映射本身由在主机上作为普通进程运行的服务器软件处理。
- 此数据库的性质还需要一些软件手动创建和更新数据库。
- 如果网络中有多个 RARP 服务器,则 RARP 请求仅使用响应其广播 RARP 请求收到的第一个 RARP 响应,并丢弃其他响应。
广告