当交换机知道 MAC 地址但发送 PC 不知道目标 MAC 的 MAC 地址时,交换机如何工作

当交换机知道 MAC 地址但发送 PC 不知道目标 MAC 的 MAC 地址时,交换机如何工作

4 台 PC 连接到一个交换机,该交换机知道它们的 MAC 地址(所有 4 台 PC)。计算机 A 和计算机 D 之前从未通信过,因此它们都没有使用彼此的 MAC 地址更新其 ARP 表。

计算机 A 想要与计算机 D 通信,因此它向计算机 D 发送 ARP 请求以获取其 MAC 地址。此 ARP 将是一个广播消息(ARP 数据包中的目标 MAC 为 FF:FF:FF:FF:FF:FF)。

我想了解交换机将如何处理它,因为它已经知道计算机 D 的 MAC,但计算机 A 不知道。交换机会让计算机 D 响应 ARP 消息(广播)还是丢弃该 ARP 请求并直接将计算机 A 的数据包路由到计算机 D(因为交换机已经知道计算机 D 的 MAC)?

答案1

ARP 请求当然会通过。

交换机不知道 ARP。它只知道以太网(即以太网帧上的 MAC 地址),不知道其上的协议。(某些交换机提供 IGMP 侦听等高级功能,但这与此无关。)

由于这是一条广播消息,因此必须将其传送到所有(已连接的)端口。这才是交换机所关心的。它无法知道该消息是否真正发往计算机 D。

答案2

ARP 请求只是一条消息,表示“您位于 IP任何!你的 MAC 地址是什么?”尽管 ARP 处理的是第 2 层地址的发现,但它本质上是第 3 层请求,因为它被发送到 IP 地址。交换机不在第 3 层运行。

在您给出的示例中,您知道交换机不知道的事情;ARP 请求中的 IP 地址属于计算机 D。目标 MAC 地址是广播,而交换机只知道或关心这一点。如果交换机看到广播 MAC,那么它将直接广播该数据包。

是的,那里有第 3 层交换机,并且学者们会指出 ARP 在技术上不是第 3 层协议,但对于这个例子来说,这些都不重要。

相关内容