以太网的发展历程基本上可以被看做在一种先天缺欠的结构上修修补补的过程。为了缓解前述的冲突问题,提高网络的可扩展性,人们想到将网络分段。这种思想很简单,如果一条总线上有40 台主机,它们冲突的概率是80%,那么我就将其分割成两条总线,这样每条总线将只包含20台主机,冲突概率是40%,依此类推。
但是,我们不能简单地将总线剪断,这样会丧失连通性。我们需要的是在保持网络连通性的同时,将冲突域减小。要达到这个目的就要在网络中引入一种特殊的设备,这种设备有一个形象的名字——网桥(Bridge)。
什么是网桥?网桥是一种神奇的带有两个端口的铁盒子,被放置在总线的某一点上。一旦被放置在总线上,网桥就会将左右两边“有机”地隔离开,如图1所示。
图1 网络被网桥划分为网段A和网段B
原本完整的网络被网桥划分为网段A和网段B,均为总线型网络。当网段A中的主机A1要向主机A2发送数据时,由于主机A2并不在网段B中,网桥会将这一数据阻断在网段A中,网段B中的主机这时不会发现总线被占用,反之亦然。这就相当于将原先的大冲突域分割成了A、B两个小冲突域,有效地降低了冲突概率。与此同时,如果网段A中的主机A1要向网段B中的主机B1发送数据,由于总线并没有硬性地被剪断,网桥完全可以将数据转发到网段B,主机B1仍然可以收到来自网段A的数据,反之亦然。这就是所谓的“有机”隔离。
网桥能够做到“有机”隔离的关键在于其使用的“存储/转发(Store andForward)”算法。由于网桥同时处于网段A和网段B,所以网桥可以接收到全网数据。当网桥接收到数据时先将数据存储在内存中进行分析,如果数据的目的地址不在本网段,网桥会将该数据转发到另一网段。网桥存储/转发算法的依据是数据的MAC地址,所以网桥是工作在数据链路层的网络设备。
网桥的这种工作机制有利于广播数据在全网的扩散。我们记得,广播数据的目的MAC地址是FFFF.FFFF.FFFF,网桥会无条件地将这种数据进行转发,从而实现广播数据的全网扩散。所以你一定要记住,网桥可以有效地隔离冲突域,但无法隔离广播域。
网桥并不是仙丹,并不可包治百病。一个网桥只能将一条总线隔离成两个冲突域,从而减少冲突的发生,但并不能完全消除冲突。完美主义者们希望能够完全避免冲突,虽然当初设计以太网的时候他们并不这么想。