在图中的动画中,PC1 正在向 PC2 发送数据包。 PC1 必须确定目的 IPv4 地址是否位于同一网络中。 PC1 通过对其自身的 IPv4 地址和子网掩码执行 AND 运算来确定自己的子网。 这将得出 PC1 所属的网络地址。 接下来,PC1 对数据包的目的 IPv4 地址和自己的子网掩码执行相同的 AND 运算。

如果目的网络地址和 PC1 在相同网络中,则 PC1 不使用默认网关。 相反,则 PC1 参考其 ARP 缓存,查找使用此目的 IPv4 地址的设备的 MAC 地址。 如果 MAC 地址不在缓存中,那么 PC1 将生成一个 ARP 请求来获取地址以补全数据包,并将其发送到目的地。 如果目的网络地址在另一网络中,则 PC1 会将数据包转发到其默认网关。

为了确定默认网关的 MAC 地址,PC1 将在其 ARP 表中查找默认网关的 IPv4 地址及其关联的 MAC 地址。

如果 ARP 表中不存在默认网关的 ARP 条目,则 PC1 将发送 ARP 请求。 路由器 R1 以 ARP 回复应答。 然后 PC1 可以将数据包转发到默认网关的 MAC 地址,路由器 R1 的 Fa0/0 接口。

IPv6 数据包使用一个类似的过程。 但 IPv6 地址解析不使用 ARP 进程,而是使用 ICMPv6 邻居请求和邻居通告消息。 IPv6 到 MAC 地址的映射保存在一个类似于 ARP 缓存的表中,称为邻居缓存。