天天看点

TCP/IP卷一 阅读笔记 RARP逆地址解析协议作用格式方式tcpdump命令实例超时RARP服务器习题

作用

通过MAC地址获取IP地址,通常用于无盘系统地启动。

通常IP地址被存储在文件中,所以无盘系统无法正常获取IP地址,而是靠RARP协议通过网络获取IP地址。

格式

在以太网中,RARP请求格式如下:

TCP/IP卷一 阅读笔记 RARP逆地址解析协议作用格式方式tcpdump命令实例超时RARP服务器习题

RAPR请求格式同ARP一致,只是某些位的内容需要变化。

帧类型:0x8035

操作字段op:请求为3,应答为4

方式

当一个主机需要将MAC地址映射为IP地址时,会以广播的形式,向网络上的所有主机发送RAPR请求,这点同ARP请求一样。但是不一样的是请求的响应。RAP请求只会有一个主机响应,而RARP请求则会被当前网络中的所有主机响应。所以,源主机可能会受到多条回复,此时,会以第一次收到的响应为准。

tcpdump命令实例

TCP/IP卷一 阅读笔记 RARP逆地址解析协议作用格式方式tcpdump命令实例超时RARP服务器习题

第一行

第一行是发送者发送的数据。其中

8:0:20:3:f6:42

表示源主机MAC地址,而

ff:ff:ff:ff:ff:ff

表示广播,该消息会发送给当前网路上的所有主机。 rarp表示该数据帧的数据类型为RARP,60表示消息长度为60。 后面的rarp表示rarp请求。

who-is 8:0:20:3:f6:42 tell 8:0:20:3:f6:42

,按照英足字面意思理解就是,告诉

8:0:20:3:f6:42

谁是

8:0:20:3:f6:42

,也就是说,

8:0:20:3:f6:42

的IP地址是多少。

第二行

开头同第一行相同,但是数据长度却是42,小于以太网帧长度。

这是因为tcpdump命够获取到这些数据是通过BSD分组过滤器在驱动程序处接收来的。而BSD会

rarpd(逆地址解析协议程序)

将带有以太网帧数据头和数据内容的数据返回给tcpdump命令。此时,驱动程序还未像数据中添加空白的填充字符。

rarp reply表示该条消息是rarp应答。

8:0:20:3:f6:42 at sun

表示

8:0:20:3:f6:42

的IP地址是 sun,次处使用主机名代替了IP地址。

第三行

此例中的rarp操作时发送在无盘操作系统启动时,当主机获取到自己的IP地址后,就会通过TFTP请求,来请求读取配置文件,该条消息就是做的该操作。

超时

rarp请求可能会超时,由于rarp请求的作用是请求IP地址,而IP地址在网络通信中是不能省略地,所以,rarp请求会被不断地发送,直到获得结果。

但是此过程中,超时时间会在不断变化,每次超时后,超时时间都会增加一个固定值,直至超时时间超过某个阈值后,又会变化为最小的超时时间,如此循环。

RARP服务器

RARP服务器的作用就是为无盘系统系统提供从MAC地址到IP地址的映射。

但是,与ARP协议不同,MAC到IP的映射关系一般存储在磁盘上的文件中,所以RARP协议需要读取文件。但是内核一般是不会读取文件的,所以RARP服务器不能像ARP协服务器一样作为内核的一部分,在内核中实现,而是需要通过用户空间的应用程序来完成。

此时,就需要系统级别的支持,支持用户空间的进程接收和发送特定的以太网帧数据,所以RARP服务器的运行对系统拥有依赖性。

与RAP请求不同,ARP请求只会有一个应答,而RARP请求则不同,如果网络中存在多个个服务器,则RARP请求就会被回复多次,不仅会导致网络中的流量增减,还可能会产生同时回复的网络冲突问题。

习题

如何防止一个有多个RAPR服务器的网络上防止他们之间的响应冲突

为服务器分级,有主服务器和从服务器。主服务器用于回复RARP响应,当主服务器宕机时,RAPR请求会重复发送,而此时再由次RAPR服务器回复。

也就是,主服务器回复首次接收到的RARP请求,而次RARP服务器回复重复的RAPR请求。

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

理论上时不需要的,因为有OP字段描述了该条消息的类型。

但实际上时有的。

继续阅读