ARP 协议具有两项基本功能:

将 IPv4 地址解析为 MAC 地址
维护映射的缓存
 
将 IPv4 地址解析为 MAC 地址
 
要将一个帧放到 LAN 介质上,帧中必须包含目的 MAC 地址。当数据包发送到要封装入帧的数据链路层时,节点将参照其内存中的表来查找映射至目的 IPv4 地址的数据链路层。此表称为ARP 表 或ARP 缓存。ARP 表存储在设备的 RAM 中。
 
ARP 表的每个条目或每一行都有一对值:IP 地址和 MAC 地址。我们将这两个值之间的关系称为映射 - 只是表示您可以在表中查找 IP 地址并发现对应的 MAC 地址。ARP 表将缓存本地 LAN 上设备的映射。
 
起初,发送节点尝试到 ARP 表中查找映射至 IPv4 目的地址的 MAC 地址。如果此映射已经缓存在表中,节点将用找到的 MAC 地址作为帧中的目的 MAC 来封装 IPv4 数据包,然后将帧编码并放入网络介质。
 
护 ARP 表
 
ARP 表动态维护。设备收集 MAC 地址有两种方法。一种是监控本地网段中发生的通信。当节点从介质收到帧时,可将源 IP 和 MAC 地址记录为 ARP 表中的映射。当帧在网络中发送时,设备会用地址对填充 ARP 表。
 
设备获取地址对的另一种方法是广播 ARP 请求。ARP 发送第 2 层广播到以太网 LAN 中的所有设备。帧包含的 ARP 请求数据包中有目的主机的 IP 地址。接收帧的节点将 ARP 回复数据包作为单播帧发回发送方,以将 IP 地址标识为自己的响应。此响应然后用于在 ARP 表中创建新条目。
 
MAC 表中的边些动态条目都会加上时间戳,加时间戳的方式与交换机中的 MAC 表条目非常类似。如果设备在时间戳到期时没有从特定设备收到帧,此设备的条目将会从 ARP 表中删除。
 
此外,也可以在 ARP 表中输入静态映射条目,但这种情况很少见。静态 ARP 表条目也有到期时间,但必须手动删除。
 
创建帧
 
节点需要创建帧而 ARP 缓存中又没有 IP 地址到目的 MAC 地址的映射时,将如何操作?当 ARP 收到将 IPv4 地址映射到 MAC 地址的请求时,它会在其 ARP 表中查找缓存的映射。如果没有找到所需的条目,IPv4 数据包的封装就会失败,第 2 层进程将告知 ARP 需要映射。
ARP 进程然后发出 ARP 请求数据包,查找本地网络上目的设备的 MAC 地址。如果收到请求的设备具有该目的 IP 地址,就会以 ARP 回复响应。这样 ARP 表中即会创建一个映射。该 IPv4 地址的数据包现在便可封装在帧中。
 
如果没有设备响应 ARP 请求,就无法创建帧,所以会丢弃数据包。此封装失败将会报告给设备的上层。如果该设备是中间设备(如路由器),上层可能会选择以 ICMPv4 数据包中有错误来响应源主机。