假设我有交换机S,我已经连接了 4 台主机(A、B、C和D)。现在假设主机A和B都想同时向同一主机D发送一系列数据。所以这里,A和B是发送节点,D是接收节点。
让我们说从主机发送的帧一到达交换机小号和交换机查找MAC地址表,发现主机d,在一些特定的端口,比如X。并将帧转发到端口X。如果同时,主机B也向交换机发送了一个帧,S和交换机查找其 MAC 地址表,发现主机D在端口X并将帧转发到端口X ......不会有碰撞?!
以太网交换机将如何处理这种情况?
假设我有交换机S,我已经连接了 4 台主机(A、B、C和D)。现在假设主机A和B都想同时向同一主机D发送一系列数据。所以这里,A和B是发送节点,D是接收节点。
让我们说从主机发送的帧一到达交换机小号和交换机查找MAC地址表,发现主机d,在一些特定的端口,比如X。并将帧转发到端口X。如果同时,主机B也向交换机发送了一个帧,S和交换机查找其 MAC 地址表,发现主机D在端口X并将帧转发到端口X ......不会有碰撞?!
以太网交换机将如何处理这种情况?
交换机缓冲帧 - 这与不能缓冲任何内容的中继集线器形成对比。
正如@jcbermu 所指出的,来自A和B 的两个帧都首先存储在各自端口的接收缓冲区中。
然后将其在完整性接收到的第一帧被传输到端口d的发送缓冲器和发送到d。第二个完成的帧也被传输到端口D的传输缓冲区,但由于端口当前正在传输它只是排队并在A的帧完成后发送出去。
交换机通常使用先到先得的原则。当优先级和 QoS 发挥作用时,交换机为每个端口使用多个传输缓冲区,通常首先传输较高优先级的帧(取决于实现)。
当某个目标端口的总入口流量快于端口可以传输的时间超过很短的时间(微突发)时,队列缓冲区会迅速溢出,交换机会丢弃数据包。
在以太网网络中,冲突是必须的。以太网使用 CSMA/CD 来避免冲突。具体可参考CSMA/CD专题。