ARP和RARP的知识

ARPRARP的知识

联网设备逻辑上的通信使用网络层的地址,但是由于物理设备实际无法理解IP地址,所以需要使用ARP协议通过IP地址找到设备硬件地址,然后物理设备可以使用硬件地址传输数据。(以太网中,在数据链路层,传输的是数据帧,是不包含IP地址的)。

ARP可能的实现方式包括直接映射,也就是将IP地址的一部分或者全部经过某种变换映射成一个硬件地址,显然这种方式不够灵活,导致两层耦合过高。动态地址解析提供了IP到硬件地址映射的灵活性。

因为ARP采用的动态地址解析涉及广播,然后获取硬件地址。对于经常通信的设备来说,如果每次发送数据都要先广播获取硬件地址,显然效率比较低。ARP解决的方法就是使用了高速缓存,进一步的优化包括交叉解析,也就是不仅源设备缓存目标设备的硬件地址,同时目标设备在响应源设备的ARP请求时,也缓存源设备的硬件地址到IP的映射。甚至ARP广播时,所有收到包的物理设备都缓存发送请求的设备的硬件地址到IP地址的映射。

ARP高速缓存包括静态的高速缓存表项与动态的高速缓存表项。静态的ARP高速缓存表项是人工加入的,永久保存在高速缓存中。动态ARP高速缓存表项,是通过ARP解析后得到的硬件地址和IP地址对,它们保存一段时间后会失效。

考虑同一IP网段的物理设备由路由器连接,那么它们属于不同物理网段,但是属于同一IP网络。不同物理网段的设备AB无法通信,而路由器也不会转发请求(因为他们属于同一IP网段),这是就需要使用代理ARP。也就是可以由路由器代表B来响应AARP请求,同时物理设备向B发送ARP请求,然后将得到的结果通过APR响应返回给A

RARP做的事情也ARP相反,也就是知道自己的硬件地址,想得到自己的IP地址。早期的无盘工作站,没地方存储IP地址(硬件地址是固化在硬件中的),又要使用IP网络,只能通过查询来获取自己的IP地址,这时候RARP就派上用场了。RARP是基于ARP的,实际使用的报文格式就是ARP的报文格式,使用了不同的操作码来告知这是一个RARP报文。RARP请求会被RARP服务器监听(也就是需要在网络中配置RARP服务器来监听RARP请求),RARP服务器通过查询自己的记录,返回IP地址。

尽管现在很多设备都有自己的存储空间来存储一个IP地址,但是如果能够实现动态IP地址分配,那么就可以提供高度灵活的主机配置,给管理带来很大的好处,同时还可以有效利用IP地址。但这个不是由RARP来完成的,而是由能力更强的协议BOOTPDHCP来完成的。

 

笔记:《TCP/IP指南(卷一)—底层核心协议》

猜你喜欢

转载自jerkhuman.iteye.com/blog/966890