当两台计算机同时传输到全双工交换机中的第三台计算机时,会发生什么情况?


14

请考虑以下情形:

我有2台PC(PC1和PC2),它们希望在全双工以太网交换机中同时传输到PC3。让我们考虑所有端口都在同一个VLAN中,那么交换机内部发生了什么?谁先传送到PC3?

在使用CSMA / CD之前,我已经读过书,但是只有在半双工模式下运行的早期以太网版本中才使用了CSMA / CD,并且交换机的每个端口都是一个冲突域,如果2台机器试图同时传输,算法被执行以给每台计算机一个随机的时间来传输和解决冲突问题。但是,在全双工交换机中,我读到消除了冲突的可能性,因此,如果2台PC尝试同时发送,交换机内部会发生什么?交换机是否执行算法来选择谁先发送?

Answers:


14

交换机会将来自两个发送系统的传入数据帧完全加载到其缓冲区中。我不确定如何确定哪个帧将在队列中首先进行后续转发。但这可能是基于帧开始的初始接收时间。然后,交换机会处理传输缓冲区队列,将帧一一发送到目标端口/段。

框架“相互运行”没有问题。真正的问题是最终端口/网段能否足够快地接受帧。(当然,交换机能否足够快地处理其缓冲区/队列。)


9
是的,存在直通和无碎片切换。主要用于高速交易环境。已知DST MAC后,直通将开始传输。无分片确保该帧不是冲突分片,因此在传输之前它需要接收64个字节。
Daniel Dib 2013年

2
是的,我认为某些人将其称为直通转发,而不是存储转发。在直通方法中,交换机可以在收到并查找目标MAC后立即开始转发,但是存在混合方法,它需要等待更长的时间,例如,能够查看IP以检查出站ACL 。(Ethertype字段将告诉它框架中是否存在IP地址)。
Gerben 2013年

1
^^^这个。这就是NE摇摆的原因。
Craig Constantine

4
由于没有人提及,因此切入的缺点是出现了帧错误的奇怪情况。尽管直通确实会稍微减少初始帧上的等待时间(帧越大,影响越大),但无论帧是否有效,它都会转发帧,因为这样做不会收到完整的帧并且无法验证FCS 。存储和转发交换机将接收完整帧,并能够在转发前检查FCS,从而允许它们丢弃无效帧。
YLearn

2
大多数交换器仅是存储转发式的,直通交换是在几年前卷土重来的,因为它很容易卖给金融界。在10G上进行存储和转发会导致1.2us的延迟,即235m。切入和切入的速度也不能不同。
ytti 2013年

6

非常有趣的问题,不幸的是,没有一个正确的答案,因为确切的解决方案因硬件而异。

但是,在231-232页的“ 计算机网络-系统附录”中明确讨论了此问题。

设计解决方案的主旨是“阳光开关”,即您具有图表输入--batcher--trap--selector == banyan === outputs,并且有一个将选择器连接到批处理程序的延迟框。我引用:

当在同一周期内将超过1个(榕树大小的)数据包发送给单个输出时,它们将通过延迟盒重新循环,并在下一个周期重新提交给交换机。

并进一步:

陷阱网络将识别那些能够通过榕树离开交换机的数据包(每个输出端口最多可以输出1个数据包),并将其余的数据包标记为再循环。


3

两台计算机发送到第三台计算机之间总是会有一些差异,除非您在交换机上做任何特殊的事情,否则它将以FIFO为基础进行传输,因此无论先到达的帧都是先传输的。


1
由于PC [23]是独立连接的,因此没有任何硬件可以阻止框架同时精确到达硬件正在运行的“瞬间”(频率)。我想这取决于交换机ASIC设计者来决定在这种情况下可以这样做,但我想它将以循环方式读取端口的帧。
ytti 2013年

2
好一点,我的意思是,两帧恰好同时到达的机会非常低。正如您所提到的,它很可能取决于ASIC设计,而且我敢肯定,除非您与客户团队进行一系列合作,否则它不会在任何地方记录。
David Rothera 2013年

假设其他所有条件均相等,则中断第一个获胜者。
generalnetworkerror 2013年

0

交换机在进入交换机时一次转发一个数据包,因此不会发生冲突。然后,PC3将处理来自PC1和PC2的数据包,将其CPU时间分开。窗口和缓冲将控制通信流。

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.