首页 理论教育ARP与RARP技术解析

ARP与RARP技术解析

【摘要】:本局域网上的所有主机上运行的ARP 进程都会收到此ARP 请求分组。ARP 请求者收到响应后,将获得的这对物理地址和IP 地址的映射关系写入自己的ARP缓存中,以免重复请求。RARP 是ARP 的逆过程,即实现由硬件地址得到IP 地址的过程。但相比之下,RARP 的实现比ARP 更为复杂,同时,由于现在的DHCP 协议已经包含了RARP 的功能,这里不再描述。

ARP(Address Resolution Protocol)即地址解析协议,主要功能是根据IP 地址获取物理地址(硬件地址)。网络层使用的是IP 地址,但是在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。当一台机器(主机或路由器)需要根据已知的IP 地址,得到其对应的硬件地址(例如,数据报在网络层向下交付到数据链路层的数据包装)时,便需要用到此协议。

ARP 会在主机的ARP 高速缓存中维持一个从IP 地址到硬件地址的映射表,并制订数据处理过程保证这个映射表随着主机的增加或减少而动态更新。ARP 高速缓存的映射表中最终会有本局域网中所有主机和路由器的IP 地址到硬件地址的映射。若某刻在其内未找到某个IP 地址对应的物理地址,则启动ARP 数据处理过程获取相关数据,并写入映射表中。ARP的数据处理过程描述如下:

首先源主机以广播的方式发送一个ARP 请求,其中包括自己的硬件地址和IP 地址,以及想要解析的目标IP 地址。

本局域网上的所有主机上运行的ARP 进程都会收到此ARP 请求分组。

当目的主机收到此ARP 请求后,会将自己的物理地址通过ARP 响应回送给请求者。为了减少通信量,目的主机同时将源主机的地址映射关系写入自己的ARP 缓存中。

ARP 请求者收到响应后,将获得的这对物理地址和IP 地址的映射关系写入自己的ARP缓存中,以免重复请求。

需要说明的是,ARP 是解决同一个局域网上主机或路由器IP 地址与硬件地址的映射问题。如果所要找的主机与源主机不在同一个局域网上,如图6.15所示,则情况概述如下:

(www.chuimin.cn)

图6.15 ARP 请求

①发送方是主机(如H1),要将数据报发送到另一个网络上的一台主机(如H2 或H3)。这时,H1 发送ARP 请求,找到网1 上的一个路由器R1 的硬件地址。剩下的工作由路由器R1来完成。

②发送方是路由器(如R1),要将数据报发送到与R1 相连的同一个网络(网2)上的主机(如H2),这时R1 发送ARP 请求(在网2 上广播),即能找到目的主机H2 的硬件地址。

③发送方是路由器(如R1),要将数据报发送到与R1 不相连的另一个网络(网3)上的主机(如H3),这时R1 发送ARP 请求,找到连接在同一个网(网2)上的一个路由器R2 的硬件地址,剩下的工作由路由器R2 来完成。

在许多情况下需要多次使用ARP,达到根据IP 地址获取物理地址的目的。

RARP 是ARP 的逆过程,即实现由硬件地址得到IP 地址的过程。RARP 能够使只知道自己硬件地址的主机通过协议找出其IP 地址。但相比之下,RARP 的实现比ARP 更为复杂,同时,由于现在的DHCP 协议已经包含了RARP 的功能,这里不再描述。