![关于以太网(CSMA/CD)网络中网桥工作的问题](https://linux22.com/image/519163/%E5%85%B3%E4%BA%8E%E4%BB%A5%E5%A4%AA%E7%BD%91%EF%BC%88CSMA%2FCD%EF%BC%89%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%BD%91%E6%A1%A5%E5%B7%A5%E4%BD%9C%E7%9A%84%E9%97%AE%E9%A2%98.png)
网桥和 CSMA/CD 网络
假设两个 LAN 段 A 和 B 通过网桥相互连接。在稳定状态下(当网桥已获知两个段上的计算机的位置时),网桥会在必要时将帧从一个段转发到另一个段。这里有并行的概念,这意味着在网桥获知所有计算机的位置后,两个段可以同时使用。
假设在网段 A 上,网段 A 的计算机之间正在进行通信,并且网段 A 不空闲,同时网段 B 上的计算机感知到介质并发现介质空闲,并将帧发送到网段 A 上的另一台计算机。现在会发生什么?网桥将接收该帧,现在如果网桥在网段 A 上转发此帧,那么显然会导致冲突,问题是,网桥是否会将此帧存储在其内存中并感知到网段 A 变为空闲状态,以便可以传输该帧?
第二个问题,假设 A 段上的计算机 comp1 向 B 段上的另一台计算机 comp2 发送数据,Comp1 感知介质并发现介质空闲并发送数据,但与此同时 comp2 感知介质并发现介质空闲并向 comp1 发送数据。comp1 的帧和 comp2 的帧同时到达网桥,网桥会做什么?这两个帧会在网桥内发生冲突吗?或者网桥将存储这两个帧,哪个帧会先存储?如果存储,哪个帧会先转发?
答案1
过去 10 年左右创建的任何网桥都足够智能,只在安全的情况下重新传输数据包。所以是的,它确实会缓冲来自段 A 的数据包,以便传输到段 B。此缓冲区的大小因设备而异。
Q1:来自段 B 的数据包将被存储,直到可以在段 A 上安全传输为止。
Q2:桥接器将近乎并行地中继数据包。两个数据包都在每个物理接口的 NIC 缓冲区中接收,然后中继到桥接层。没有冲突。最坏的情况是缓冲区溢出,数据包由于缓冲区空间不足而被丢弃,这是桥接器的主要故障,因此系统经过精心设计,不会发生这种情况。如果它们是同一个 TCP 会话的一部分,这可能会导致无序事件,但这超出了您的问题范围。
答案2
阅读802.1D当桥接端口接收到要转发的数据包时,它会遵循标准规则。这意味着它不会将数据包传输到转发端口,直到该端口上的介质空闲。