[大家好,首先,这个问题是我自己从 Stack Exchange 迁移到这里的,因为网络相关的问题不应该在那里问。所以请不要标记为重复。我是这两个问题的所有者。]
在下图中(单击下面的 URL。对于该问题仅考虑第一个图)假设交换机有 2 个接口 E0(左)和 E1(右)并且 Fred 连接到 Hub 的 P0,Wilma 连接到 Hub 的 P1 并切换到 Hub 的端口 P3,假设交换机的 MAC 地址表为空。
现在假设 Fred 正在向 Wilma 发送一个帧,该帧也在 E0 接口上。根据我的理解,Fred 首先将其发送到 Hub 的 Port0,然后 Hub 应该同时将其刷新到 P1 和 P3 端口。由于 MAC 表和 Wilma 一样为空,Barney 和 Betty 也应该会收到该帧,并且它们会将其丢弃。当 Wilma 通过 Hub 的 P1 端口向 Fred 发送回复时,它将再次刷新到 P0 和 P1,现在 MAC 表将根据 E0 使用 Wilma 进行更新。因此下次以后,任何发送给 Wilma 的内容都将被交换机过滤。
但实际上,帧本身在第一次被丢弃在交换机的 E1 接口上。然后 Wilma 通过 Hub 的 P1 端口回复 Fred,说我收到了帧。甚至在 Wilma 回复之前,交换机就决定过滤该帧,因为它在端口 E0 上收到了该帧,并且它知道 Wilma 的 MAC 也位于 E0 之外。
所以让我感到困惑的是交换机如何智能地知道 Wilma 也在 E0 接口上。因为 MAC 地址表一开始是空的。[伙计们,请不要认为这是因为 Wilma 向 Hub 的 P1 端口发送了回复消息,该消息将被转发到交换机 1 的 E0,并且 MAC 表已更新。因为我在 cisco 数据包跟踪器上验证了这一点,所以在 Wilma 回复之前,E1 上的帧就被丢弃了]。
提前为冗长的文字致歉。这只是为了方便读者理解。仅考虑网站中的第一个图表。[切换过滤决策]:http://www.ciscotests.org/ccna.php?part=3&page=2
答案1
我能想到的解释是,交换机将记录每个接口通过它的所有帧的 MAC 地址,而不仅仅是那些成功传送流量的帧的 MAC 地址。
Fred 第一次与 Wilma 通话时,由于集线器的作用,该信息也被发送到 E0,此时交换机将该 MAC 放入其 CAM 中。因此,此时交换机知道 Wilma 的 MAC 在 E0“后面”。