当帧不是注定要发送给它时,PC 是否应该填充他的 ARP 表?

网络工程 ARP gns3
2022-02-07 22:23:50

我在 GNS3 中制作了这个拓扑:

在此处输入图像描述

我清除了交换机 MAC 表。这样,当PC1发送ARP请求知道谁拥有IP 192.168.1.20(PC2的IP)时,该请求通过switch1的所有端口广播,也通过switch2广播。我使用wireshark 来验证这一点,我看到ARP 请求到达PC3。

在此处输入图像描述

但是,PC3 的 ARP 表是空的。为什么不在他的表中为 PC1 添加一个新条目?

在此处输入图像描述

这是预期的行为吗?

2个回答

是的,这是预期的行为。

即使 PC3 看到来自 PC1 的 ARP请求,它也不会使用 PC1 的 IP 到 MAC 映射填充它的 ARP 缓存。

虽然这似乎不是将地址分配给主机信息的最有效方法,但您需要记住 ARP 协议是在 1982 年开发的[1],甚至在那时作者就提出了以下非常相关的观点:

工作站通常不会相互交谈(因此一个表中有 100 个无用的条目);他们将主要与大型机、文件服务器或网桥进行通信,但仅与少数其他工作站(例如,用于交互式对话)进行通信。本文中描述的协议根据需要分发信息,并且每次启动机器时(可能)仅分发一次。

在今天的 PC 上,为机器所在的本地子网填充整个 ARP 表将是一种微不足道的资源使用,但对于 1982 年的联网机器来说可能并非如此。

[1] RFC826 - 以太网地址解析协议 - https://www.rfc-editor.org/rfc/rfc826

ARP 回复是单播的,因此交换机不会将其转发到 PC 3。

无偿 ARP 被广播,因此所有节点都能听到。