问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ARP协议详解:基本原理与实现机制

创作时间:
作者:
@小白创作中心

ARP协议详解:基本原理与实现机制

引用
1
来源
1.
https://info.support.huawei.com/hedex/api/pages/EDOC1100331917/AZM1014P/05/resources/dc/dc_fd_ARP_0004.html

ARP(Address Resolution Protocol)协议是计算机网络中的基础知识,用于将IP地址解析为MAC地址。本文将详细介绍ARP的基本原理,包括其报文格式、地址解析过程、老化机制以及动态ARP和静态ARP的区别。

ARP报文格式

ARP请求和应答的报文格式如图1所示。

图1 ARP请求和应答报文格式

主要字段解释如下:

  • Hardware Type:硬件地址的类型。对于以太网,该类型的值为“1”。
  • Protocol Type:映射的协议地址类型。对于IP地址,该值为0x0800。
  • Hardware Length:硬件地址长度。对于ARP请求或应答来说,该值为6。
  • Protocol Length:协议地址长度。对于ARP请求或应答来说,该值为4。
  • OP:操作类型。1表示ARP请求,2表示ARP应答。
  • Ethernet Address of sender:发送方MAC地址。
  • IP Address of sender:发送方IP地址。
  • Ethernet Address of destination:接收方MAC地址。
  • IP Address of destination:接收方IP地址。

ARP地址解析过程

ARP通过以下两个步骤完成地址解析过程。

图2 ARP请求过程

如图2所示,HOSTA和HOSTB在同一网段,HOSTA要向HOSTB发送信息。

首先,HOSTA查看自己的ARP表,确定其中是否包含有HOSTB对应的ARP表项。如果找到了HOSTB对应的MAC地址,则HOSTA直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给HOSTB。

如果HOSTA在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为HOSTA的IP地址和MAC地址,目标IP地址为HOSTB的IP地址,目标MAC地址为全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即HOSTB)会对该请求进行处理。

图3 ARP响应过程

HOSTB比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即HOSTA)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给HOSTA,其中包含了自己的MAC地址。如图3所示,HOSTB向HOSTA发出一个包含其MAC地址的ARP响应报文。

HOSTA收到ARP响应报文后,将HOSTB的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

ARP老化机制

为了提高网络效率并减少错误,ARP协议采用了多种老化机制:

高速缓存

每台主机上都维护着一个高速缓存,存放最近获得的IP地址到MAC地址的映射关系。发送方在每次发送报文时,都先在缓存中查找目标IP地址所对应的MAC地址。如果ARP缓存中有对应的MAC地址,主机就不会再发送ARP请求报文,而是直接将报文发至这个MAC地址。如果ARP缓存中没有对应的MAC地址时,主机才会发送广播的ARP请求报文。

动态ARP表项的老化超时时间

当HOSTA收到HOSTB的ARP回应时,在HOSTA的缓存中会形成HOSTB的IP地址和MAC地址的映射关系。但是,如果HOSTB发生故障或者更换了网卡时,HOSTA没有得到关于HOSTB的任何通告,于是HOSTA仍会继续将报文发送给HOSTB。造成地址解析出现错误的原因就是HOSTA中的映射表的信息没有得到及时的更新。

为了减少地址解析过程中所出现的错误,ARP高速缓存中的表项一般都会设定一个定时器。当达到定时器的动态ARP表项的老化超时时间,设备进行老化探测,如果探测失败,删除该表项;否则,保留该表项。

动态ARP表项的老化探测次数

除了设置定时器中动态ARP表项的老化超时时间,还可以通过设置动态的探测次数来减少地址的解析错误。在将一条动态ARP表项老化之前,系统先进行探测,如果超过设置的探测次数后探测的目标主机仍没有应答,则此ARP表项将被删除。

动态ARP表项的老化探测模式

ARP表项老化之前,接口会发送ARP老化探测报文。老化探测报文可以是单播报文,也可以是广播报文。缺省情况下,接口以广播模式发送ARP老化探测报文。

当对端设备的IP地址不变化而MAC地址频繁更新时,建议使用广播模式发送ARP老化探测报文。

当对端设备MAC地址不变,当前网络带宽资源特别紧缺,且ARP表项的老化时间设置的比较小时,建议使用单播模式发送ARP老化探测报文。

当其他厂商设备与华为设备互联时,其他厂商设备接收到目的MAC地址为广播地址的ARP老化探测报文后,若ARP表项中已存在华为设备的IP地址与MAC地址映射,则丢弃该广播ARP老化探测报文。华为设备由于收不到该探测报文的应答报文,而删除对应的ARP表项,导致网络侧过来的流量不通。这种特殊情况下华为设备需要配置成以单播方式发送ARP老化探测报文,其他厂商设备需要配置成可以响应该单播探测报文。

二层拓扑探测功能

二层拓扑探测功能,是指当二层接口的状态由Down变为Up时,二层接口所属VLAN对应的所有ARP表项的老化超时时间变为0,使设备重新发送ARP探测报文,更新二层接口所属VLAN对应的所有ARP表项。

动态ARP与静态ARP

  • 动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口Down时会删除相应的动态ARP表项。
  • 静态ARP是指IP地址和MAC地址之间有固定的映射关系,由网络管理员手动配置生成,在设备上不能动态调整此映射关系。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号