地址解析协议(Address Resolution Protocol,ARP)可以实现IP地址映射成为物理地址。
1.ARP操作
ARP使用映射表工作。映射表是指地址解析协议高速缓存(ARP Cache),提供IP地址和物理地址的映射。在局域网上,ARP根据目的IP地址在映射表中查找对应的物理地址。如ARP找到对应的物理地址,就把该物理地址返回给发送端。如在ARP Cache中没有对应的物理地址,则ARP模块向网络广播一个ARP请求分组。该请求分组包括发送端的物理地址与IP地址,以及接收端的IP地址。
网络上所有主机和路由器都会接收和处理ARP请求分组,但只有目的接收端才能识别出ARP请求分组的目的IP地址,并发回ARP应答分组给发送端。ARP应答分组包含接收端IP地址和物理地址。ARP应答分组用单播形式直接发回发送端,使用请求分组提供物理地址。
发送端接收到ARP应答分组后,将所获物理地址放入ARP Cache中,以后若再有发送到该IP目的地址的分组,则直接通过ARP Cache将目的IP地址映射为物理地址。如图4-10所示。
图4-10 ARP操作过程
a)ARP请求用广播发送 b)ARP应答用单播发送
主机A(IP地址:131.128.64.3)有一个IP分组要交付给主机B(IP地址:131.128.98.7),但A不知道B的物理地址,所以A在网络上广播一个ARP请求分组以查找B的物理地址。网络上所有主机都可接收该ARP请求,但只有B可识别出分组的目的IP地址。主机B使用单播形式,发送ARP应答分组到主机A,主机A接收到ARP应答分组后,就可获得主机B的物理地址,然后才把IP分组传递给数据链路层进行实际交付。
2.ARP分组格式
ARP分组格式如图4-11所示。
图4-11 ARP分组格式
硬件类型(Hardware Type):16bit,用于定义发送端使用的硬件接口(网络访问层)的类型。ARP可以应用于各种网络上。对于以太网,该字段值是1。
协议类型(Protocol Type):16bit,用于定义发送端使用的协议的类型。ARP可用于任何高层协议。对于IPv4协议,该字段值是0x0800。
硬件长度(Hardware Length,HLen):8bit,用于定义物理地址的长度,以字节为计算单位。对于以太网,该字段值是6。
协议长度(Protocol Length.PLen):8bit,用于定于协议地址的长度,以字节为计算单位。对于IPv4协议,该字段值是4。
操作(Operation):16bit,用于定义当前的操作类型。
Operation=l,表示这个是ARP请求。(www.xing528.com)
Operation=2,表示这个是ARP应答。
Operation=3,表示这个是RARP请求。
Operation=4,表示这个是RARP应答。
发送端硬件地址(Sender Hardware Address):长度可变,用于定义发送端的物理地址。对于以太网,该字段长6B。
发送端协议地址(Sender Protocol Address):长度可变,用于定义发送端的协议地址。对于IPv4协议,该字段长4B。
目标硬件地址(Target Hardware Address):长度可变,用于定义接收端的物理地址。对于以太网,该字段长6B;对于ARP请求报文,该字段是全“0”,表示是未知值。
目标协议地址(Target Protocol Address):长度可变,用于定义接收端的协议地址。对于IPv4协议,该字段长4B。
ARP分组直接封装在数据链路帧中,如图4-12所示。
图4-12 ARP分组的封装
严格地说,ARP分组不使用IP服务器,因ARP消息不会离开逻辑网络,且不需要进行路由选择。对于ARP请求分组,目的地址字段是全“1”的广播地址(0xFFFFFFFFFFFF),因发送端不知道接收端的物理地址,ARP请求分组必须在网络上广播。
类型字段表示此帧携带的数据的类型。对于ARP分组,该字段的值为0x0806;对于RARP分组,该字段的值为0x8035。
3.代理ARP
代理ARP(代理地址解析协议),通常在路由器上使用,用来产生子网效应。路由器上运行代理ARP,可将一个子网地址映射成为多个物理地址。图4-13给出了一个代理ARP的实例。
图4-13 代理ARP
在路由器上运行了代理ARP后,该路由器就代表了连接在这个子网上的所有主机。当该路由器收到ARP请求时,如请求的目标IP地址与子网中某个主机(或路由器)的IP地址匹配,则路由器发送ARP应答,提供自己的物理地址作为目标硬件地址。以后当该路由器收到真正的IP分组时,就把IP分组转发给子网中相应的主机或路由器。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。