ARP协议(Address Resolution Protocol),即地址解析协议,是以太网中用于描述目标IP地址和目标主机MAC地址对应映射。
在局域网(LAN)中,当一台主机或三层网络设备(如路由器、三层交换机)需要向另一台设备发送数据时,它需要知道对方的 IP地址(网络层地址)。然而,仅知道IP地址是不够的,因为数据最终要通过物理网络(如以太网)传输,而物理网络依赖的是 MAC地址(数据链路层地址)。
那为什么需要ARP?
1)IP报文必须封装成数据帧
2)IP地址 → MAC地址的映射需求
3)ARP的作用
所以,ARP协议是局域网通信的关键机制,它解决了 “已知IP地址,如何找到对应的MAC地址” 的问题,确保数据能够正确封装并送达目标设备。没有ARP,基于IP的通信将无法在物理网络中完成。
ARP协议按功能、通信方式、协议版本、应用场景分类如下图:

1)按功能分类
| 类型 | 描述 |
|---|---|
2)按通信方式分类
| 类型 | 描述 |
|---|---|
3)按协议版本分类
| 类型 | 描述 |
|---|---|
4)按应用场景分类
| 类型 | 描述 |
|---|---|
ARP请求和应答的报文格式如下图所示:

报文的长度是42字节,前14字节的内容表示以太网首部,后28字节的内容表示ARP请求或应答报文的内容。
报文中相关字段的解释如下表:
| 字段 | 长度 | 含义 |
|---|---|---|
如下图:发送方主机已知目标IP地址,但未知MAC地址,这时发送方主机发送ARP请求广播-->接收方主机回复ARP响应单播-->发送方主机更新ARP缓存。

1)ARP请求广播
2)ARP响应单播
3)更新ARP缓存
【下面通过WIRESHARK软件抓包分析arp地址解析过程】:
如下图,主机PC1有IP数据报文发送给另一台主机PC2,它需要知道接收方的逻辑(IP)地址。但是IP地址必须封装成帧才能通过物理网络。这就意味着发送方必须有接收方的物理(MAC)地址,因此需要完成逻辑地址到物理地址的映射。而ARP协议可以接收来自IP协议的逻辑地址,将其映射为相应的物理地址,然后把物理地址递交给数据链路层。

上图中,我们从PC1发送一个Ping包到PC2:
1)PC1发送数据前会先检查自己的ARP缓存表,若有对应IP地址的MAC信息则直接封装到帧里进行发送,若没有则会通过ARP进行获取。
2)PC1会发送ARP Request报文来请求获取PC2的MAC地址。由于帧内没有目的MAC地址是不可以进行传输的,所以ARP报文内的目的MAC地址为全F。

3)ARP Request目的MAC地址为FF-FF-FF-FF-FF-FF(广播数据帧),所以交换机收到后会直接对该帧进行泛洪(广播)操作,并且学习该IP的MAC地址以及端口号到交换机自己的MAC缓存表。
4)所有主机都接受到该ARP Request报文后,都会检查该帧的目的IP地址与自身的IP地址是否匹配,不匹配就直接丢弃,PC2发现与自己IP地址匹配,就会先把PC1的IP与MAC地址信息记录到自己的ARP缓存表之中,然后PC2就会发送ARP Reply报文来进行响应。

5)交换机收到单播数据帧以后,会对该帧进行转发操作,并且学习PC2的MAC地址和端口号到自己的MAC缓存表。
6)PC1收到PC2的ARP Reply报文后会检查目的IP与自己IP地址字段是否相同,如果匹配就将回应报文的源IP地址与MAC地址学习到自己的ARP缓存表之中,然后就可以传输信息进行通信。
1)ARP缓存的目的
① 减少广播风暴:如果每次通信都发送ARP广播请求,会极大增加网络负担,影响设备性能。
② 提高效率:缓存IP-MAC映射,避免重复查询,加速通信。
2)ARP缓存的工作方式
① 查询缓存:发送数据前,先检查本地ARP缓存表:
② 动态更新:新学习的ARP条目会被缓存,但不会永久存储。
3)ARP缓存的老化机制
为了保证缓存的有效性,动态ARP条目会定时老化,主要涉及以下参数:
| 参数 | 作用 |
|---|---|
4)老化探测流程
① 表项超时:当ARP缓存条目达到老化时间后,设备会发送探测报文(ARP请求)。
② 探测方式:
③ 结果处理:
5)特殊情况处理
接口Down时:设备会立即删除相关ARP表项,避免使用无效缓存。
MAC地址不变时:可配置始终使用单播探测,减少广播流量。
通过ARP老化机制,网络设备能够在减少广播流量的同时,保持IP-MAC映射的准确性,确保高效、可靠的通信。
1)ARP表项显示"Incomplete"的原因及处理机制
当执行 display arp 命令时,若 MAC ADDRESS 字段显示 Incomplete,表示该ARP表项是 临时表项(假表项),尚未成功解析目标MAC地址。

① 为什么会出现"Incomplete"表项?
当设备收到一个IP报文,但 ARP缓存中没有对应的MAC地址 时,会触发 ARP Miss 事件。
此时,设备会:
生成临时ARP表项(标记为 Incomplete),发送ARP请求,尝试解析目标MAC地址。
② 临时ARP表项的处理流程
| 阶段 | 行为 | 结果 |
|---|---|---|
③ 常见场景
2)交换机ARP流量过大的原因与处理
当交换机出现ARP流量过大时,通常由以下原因导致:网络环路(未启用STP引发广播风暴)、ARP攻击或扫描(病毒或探测工具)、IP地址冲突(重复IP触发免费ARP)以及设备频繁上下线(无线漫游或网络不稳定)。
快速排查时,可通过命令行检查(如display arp查看异常条目、display interface定位高流量端口),并结合抓包分析(过滤ARP报文,关注重复请求或异常响应)。解决方案包括:针对网络环路启用STP/MSTP,防御ARP攻击配置DAI,检查DHCP配置解决IP冲突,优化网络连接以稳定设备状态。
为预防此类问题,建议启用端口安全(MAC绑定)、设置ARP速率限制,并定期监控ARP表。若异常持续,应使用专业工具(如Wireshark)深入分析流量。