将 IPv4 地址解析为 MAC 地址

要将一个帧放到 LAN 介质上,帧中必须包含目的 MAC 地址。 当数据包发送到要封装入帧的数据链路层时,节点将参照其内存中的表来查找映射至目的 IPv4 地址的数据链路层地址。 此表称为 ARP 表或 ARP 缓存。 ARP 表存储在设备的 RAM 中。

ARP 表中的每一条(或每行)将一个 IP 地址与一个 MAC 地址绑定。 我们将这两个值之间的关系称为映射 - 只是表示您可以在表中查找 IP 地址并发现对应的 MAC 地址。 ARP 表将临时保存(缓存)本地 LAN 上设备的映射。

起初,发送节点尝试查找映射至 IPv4 目的地址的 MAC 地址。 如果在表中找到此映射,节点将用找到的 MAC 地址作为帧中的目的 MAC 来封装 IPv4 数据包, 然后将帧编码并放入网络介质。

维护 ARP 表

ARP 表动态维护。 设备收集 MAC 地址有两种方法。 一种是监控本地网段中发生的通信。 当节点从介质收到帧时,可将源 IP 和 MAC 地址记录为 ARP 表中的映射。 当帧在网络中发送时,设备会用地址对填充 ARP 表。

设备获取地址对的另一种方法是发送 ARP 请求,如图所示。 ARP 请求是发送到以太网 LAN 中所有设备的第 2 层广播。 ARP 请求包含目的主机的 IP 地址和广播 MAC 地址 FFFF.FFFF.FFFF。 因为这是一个广播,所以以太网 LAN 中的所有节点都将收到该请求并查看其内容。 IP 地址与 ARP 请求中的 IP 地址匹配的节点将作出回复。 此回复将是一个单播帧,包含与所请求 IP 地址 相对应的 MAC 地址。 此响应然后用于在发送节点的 ARP 表中创建新条目。

ARP 表中的这些条目都会加上时间戳,其方式与对交换机中的 MAC 表条目加时间戳的方式非常类似。 如果设备在时间戳到期时没有从特定设备收到帧,此设备的条目将会从 ARP 表中删除。

此外,也可以在 ARP 表中输入静态映射条目,但这种情况很少见。 静态 ARP 表条目没有到期时间,必须手动删除。