网桥连接在多个局域网段上,可以获悉哪个地址在哪个网段被使用了。之后在必要时,网桥将源网段的数据包重发送到终网段。这意味着,不同于中继器,本地的信息传输(也包括数据碰撞!)会保留在本地。所以网桥将网络分割为独立的冲突域,但所有的数据封包依然在整个网络里到处跑,所以使用了网桥的网络依然是个单一的广播域。
路由器可以将网络划分为多个广播域。路由器在整个网络模型的网络层运行,比以太网高了一级。这意味着路由器在收到数据封包时就会去除以太网的数据头信息,加上低一层的数据头信息(以太网层或者其他层的),然后发送给下一方。
FDDI在连接以太网段和服务器时能发挥作用,但它和细同轴电缆以太网一样有“牵一发而动全身”的问题,而且成本相当昂贵。随后有人开发了CDDI,即改用铜线的FDDI,但这货基本上一无是处。因此IEEE后来又开发了快速以太网,即100Mbps版本的以太网。
10Mbps以太网使用了“曼切斯特编码技术”传输数据。曼切斯特编码技术将每一比特的数据转换为一电缆上一个个或低或高的电压。0被编码为“低电压-高电压”的跳变波形,而1则是“高电压-低电压”的跳变波形。这种做法基本上把传输的数据量翻倍了,但可以避免数据中出现长串0或1的麻烦:传输介质基本上无法长期维持低电压或高电压的状态,这样信号看起来就跟直流电压一样毫无变动。
Pic:曼切斯特编码技术
这还会引起连锁反应。计算机也会发懵:“我刚刚看到那一长串零到底有几个?93比特还是94比特?”曼切斯特编码技术通过在每一比特数据之间插入一个高电压或低电压,避免了以上两种问题。无论同轴电缆还是第三等级UTP线缆,都足以应付这些额外所需的带宽。
对100Mbps以太网而言,实现曼切斯特编码技术自然不成问题。但对UTP来说,以这样的速度传输数据就力不从心了。所以,100BASE-TX以太网从CDDI处借鉴了一种名为4B/5B MLT-3的编码技术。这种技术将4比特的数据转化为5比特。这样的话,就能保证每个5比特的数据块里肯定有2个跳变波形。这种做法也产生了一些特殊信号,例如说没有数据供发送时产生的空白信号。
多阶传输-3型编码技术则是在做“-1, 0, +1, 0”的循环。如果在一个4B/5B数据块里一比特的数据是1,那么就跳变到下一个值。如果该比特的数据是0,那么信号在这一比特里就维持在之前的电位。这种做法限制了数据频率的峰值,使之与UTP线缆的局限性相匹配。但是,UTP线缆必须符合要求更严格的CAT-5型规格,而不仅仅是专供10BASE-T以太网使用的CAT-3型规格。除了100BASE-TX规格以外,还有很多CAT-5型UTP可用的快速以太网线缆规格,但只有100BASE-TX成为了大众市场的产品。
从网桥到交换机
快速以太网和普通以太网使用相同的CDMA/CD(带有碰撞检测的载波侦听多路访问技术)。但由于线缆长度和中继器数量的限制,数据碰撞被检测到的速度不能跟网速一样,一下子提高10倍。很快,10Mbps、100Mbps的集线器都相继问世了。他们分别实现了10Mbps系统之间的连接和100Mbps系统之间的连接。当然,要是能实现这两种计算机之间的互通就更好了,所以10Mbps和100Mbps系统之间通常都会通过网桥连接。
下一步要做的就是在所有的网络端口之间搭建网桥了。这些多端口网桥叫交换式集线器或以太网交换机。通过交换机,如果在端口1的计算机要向端口3的计算机发送数据、同时端口2计算机要向端口4计算机发送数据,这种情况下不会产生数据碰撞。因为数据封包只会通过直达目标地址的端口直接传输。
交换机通过观察流经自己的数据封包源地址得悉地址与端口与地址的对应关系。如果数据包没有标明目的地址,交换机就像广播数据一样,将之一股脑地扔到所有的端口去。
Pic:以太网交换机
集线器和交换机有同一个局限,即以太网网络必须是无路由循环的。如果将交换机A的端口1和交换机B的端口1相连,并且将交换机B的端口2和交换机A的端口2相连,马上就会造成灾难性的后果:数据包在网络里死循环,溢出的广播数据肆虐泛滥,直至网络崩溃。所以在网络中建立后备连接时很有用的。当主连接崩溃时,网络传输依然可以在后备连接里进行。
通过制定侦测以太网中路由循环、清除死循环连接的网络传输协议,交换机的死循环问题总算是解决了。这中做法令实际生效的网络拓扑结构比较接近数学家所谓的“树”:任意两个节点之间只有少于等于一条通路。如果任意两点之间有且只有一条通路,则构成了一棵生成树。即没有网络节点是孤立的。如果有一个活动链接失效了,就再执行一次生成树协议(spanningtree protocol,STP),以生成一棵全新的生成树,保证网络继续运行。
生成树算法由拉迪亚.珀尔曼(Radia Perlman)于1985年在迪吉多所创。她用一首打油诗令生成树算法流芳千古:
《算法小诗》
我遍寻未见
比一棵树更动人的图
拥有无路由循环连通性的树
令数据包可以遍历每个局域网的树
首先 必须选定根节点
凭ID选定根节点
然后 探寻源自根节点的最小代价通路
之后 在树上安排通路
我们就这样打造出一棵网络树
最后由网桥支撑起的一棵生成树
拉迪亚.珀尔曼
更上一层楼:10千兆位以太网
快速以太网在1995年被标准化,但仅仅过了3年,以太网的下一轮迭代又来临了:10千兆位以太网。一如既往,网速有飙升至原来的10倍。同样一如既往的是,为了力争好表现,新一代以太网也从借鉴了别处的技术。这次的外来和尚是光纤通道(这显然是英国血统的玩意儿)。这种技术原来主要用于储存网络。尽管被广泛地应用在不同类型和长度的纤维上,但10千兆位以太网主要坚守着光线通道的血统。
但对于1000BASE-T网络家族而言,IEEE又要参照着对100BASE-T2和 100BASE-T4的处理方式,对100BASE-TX这种同样不受快速以太网标准管束的新网络类型出台新一代的标准。因为一方面而言,UTP线缆要求已经再次升级到CAT-5e版了,另一方面100BASE-T使用了四对绞线——同一时间,两个走向。
这要求进行一些类似拨号上网调制解调器所做的高级数字信号处理,只是快了大概一万倍。每对绞线通过4D-PAM5一次发送2比特的数据。4D指四个数据符(2比特),PAM5表示分5个层级的脉冲幅度调制。传送信号的速度和快速以太网一样,达到每秒12.5亿个数据符。还有一个复杂的位加扰系统,专门用来确保潜在干涉效应之类的特性都已经被优化。
CSMA/CD机制取决于一个特定条件:数据封包头一个比特的数据在碰撞域内到处游走时,发射站还没发出该数据封包最后一个比特的数据,所以发送方和接收方都会产生“我们在同时传送”的错觉。但随着比特率的提高,数据传输的时间大大缩短,快速以太网碰撞域的物理范围也因此缩小了。而对于10千兆位以太网,碰撞域更进一步缩小到了大约20米——小得令CSMA/CD机制根本没法正常运行。为了避免这种麻烦,10千兆位以太网添加了“载波扩展”功能,通过添加冗余数据将数据封包增大到512字节,这样总长达200多米的线缆依然能使用CSMA/CD机制。