在实际应用中经常会遇到这样的问题:已经知道了一个机器(主机或路由器)的IP地址,需要找出其相应的物理地址;反过来,已经知道了物理地址,需要找出相应的IP地址。地址解析协议(ARP)和逆地址解析协议(RARP)就是用来解决这样的问题。ARP的作用如图4-11所示。
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个ARP高速缓存(ARP Cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。
图4-11 ARP作用
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。主机A自动运行ARP按以下步骤找出主机B的硬件地址。
1)ARP进程在本局域网上广播发送一个ARP请求分组。图4-12a是主机A广播发送ARP请求分组的示意图。ARP请求分组的主要内容是表明:“我的IP地址是209.0.0.5,硬件地址是00-00-C0-15-AD-18。我想知道IP地址为209.0.0.6的主机的硬件地址。”
2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
3)主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。其余的所有主机都不理睬这个ARP请求分组,见图4-12b。ARP响应分组的主要内容是表明:“我的IP地址是209.0.0.6,我的硬件地址是08-00-2B-00-EE-0A。”请注意:虽然ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。
4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。(www.xing528.com)
图4-12 地址解析协议ARP的工作原理
a)主机A广播发送ARP请求分组 b)主机B向A发送ARP响应分组
需要注意的是:ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
RARP的作用与ARP作用恰好相反,如图4-13所示。其在过去曾起到重要作用,但现在的DHCP已经包含了RARP的所有功能。因此现在已经没有人再使用单独的RARP。
图4-13 RARP的作用
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。