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


12

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

计算机A希望与计算机D进行通信,因此它发出了针对计算机D的MAC地址的ARP请求。该ARP将是一条广播消息(FF:FF:FF:FF:FF:FF作为ARP数据包中的目标MAC)。

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


2
除了答案外,当链接建立时,我现在知道的所有操作系统都会发布免费的ARP。
AbraCadaver,

@AbraCadaver没什么关系。免费ARP应该只存在现有的ARP缓存条目,而不创建新的ARP缓存条目。这是为了在IP移动或更换NIC时强制淘汰过时的条目,而不是预加载高速缓存。
Barmar

@Barmar:否。网桥/交换机看到帧,记录源MAC和端口。这就是它的工作原理。
AbraCadaver,

@AbraCadaver与免费ARP的处理方式有什么关系?
Barmar

@Barmar:交换机未处理免费ARP。它看到带有源MAC的以太网帧进入特定端口,就这样...
AbraCadaver

Answers:


24

ARP请求当然会通过。

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

因为这是一条广播消息,所以必须将其传递到所有(连接的)端口。这就是所有开关所关心的。它不知道它确实是发往计算机D的。


好吧,以太网是一种协议。但是,简单的交换机只是关注某些协议(例如以太网),而不关注其他协议(例如Internet协议版本4或传输控制协议)。
TOOGAM'8

2
ARP请求询问:“ 192.168.0.1在哪里?” 交换机对此一无所知。
迈克尔·汉普顿

11

ARP请求只是一条消息,上面写着:“ 无论您在IP那里,您在哪里!您的MAC地址是什么?” 即使ARP处理发现第2层地址,它也本质上是第3层请求,因为它被发送到IP地址。交换机不在第3层上运行。

在您给出的示例中,您知道了开关所不具备的一些知识;ARP请求中的IP地址属于计算机D。目标MAC地址是广播,这是交换机知道或关心的全部。如果交换机看到广播的MAC,则它将简单明了地广播该数据包。

是的,那里有第3层交换机,而学徒们会指出ARP从技术上讲不是第3层协议,但是对于本示例,这都不重要。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.