TCP/IP详解卷一:RARP:逆地址解析协议

258 阅读3分钟

引言

具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,如X终端或无盘工作站使用RARP 请求(在网络上广播)来请求某个响应无盘机的 ip地址(在RARP中)。

RARP的分组格式

  • RARP请求或应答的帧类型代码为0x8035,而且RARP请求的op为3,应答op为4
  • 对应于ARP,RARP请求以广播方式传送,而RARP应答一般是单播(unicast)传送的

RARP举例

图片.png

RARP服务器的设计

作为用户进程的RARP服务器

RARP服务器的复杂性:

  • 服务器一般要为多个主机(网络上所有的无盘系统)提供硬件地址到IP地址的映射。该映射包含在一个磁盘文件中(在Unix系统中一般位于/etc/ethers目录中)。由于内核一般不读取和分析磁盘文件,因此RARP服务器的功能就由用户进程来提供,而不是作为内核的TCP/IP实现的一部分。
  • RARP请求是作为一个特殊类型的以太网数据帧来传送的(帧类型字段值为0x8035,如图2-1所示)。这说明RARP服务器必须能够发送和接收这种类型的以太网数据帧。由于发送和接收这些数据帧与系统有关,因此RARP服务器的实现是与系统捆绑在一起的。

每个网络有多个RARP服务器

  • 通常在一个网络上(例如一根电缆)要提供多个RARP服务器。
  • 可能发生的情况是每个RARP服务器同时应答,这样会增加以太网发生冲突的概率

习题

RARP需要不同的帧类型字段吗?ARP和RARP都使用相同的值0x0806吗?

RARP 帧类型代码为0x8035

单独的帧类型并不是绝对的要求,因为图4.3中的op字段对于ARP请求、ARP应答、RARP请求和RARP应答这四种操作都有不同的值。但是,RARP服务器的实现(与内核的ARP服务器分离)由于具有不同的帧类型字段而变得更加容易。

在一个有多个RARP服务器的网络上,如何防止它们的响应发生冲突?

  • 每个RARP服务器可以在发送响应之前延迟一小段随机时间。
  • 作为改进,可以将一个RARP服务器指定为主服务器,将其他RARP服务器指定为辅助服务器。 主服务器可以无延迟地响应,而辅助服务器则具有随机延迟。
  • 作为又一改进,具有主要和次要对象,可以对次要对象进行编程,使其仅响应在短时间内接收到的重复请求。 假定重复请求的原因是主服务器已关闭。