有线通信
1970年代,虽然盛行着电视这种又落后又简陋的媒体,但还不至于苍白得完全没有现代通讯系统的色彩。 的确,当时美国国防部高级研究计划署开发的最先进的阿帕网(The Advanced Research Projects Agency Network,世界上第一个运营的封包交换网络,全球互联网的始祖),其调制解调器速度也仅为50 Kbps,且体积足有冰箱般巨大;至于流传甚广的贝尔103型调制解调器,其传输速度也只有可怜的每秒300比特。幸好随着计算机总量的增加,长途数字通信已经相当普及了。终端机也可以通过相对较短的几根简单线路或者更复杂的多点系统,与大型计算机或微型计算机连接。
这些都是陈芝麻烂谷子了。七十年代真正的新鲜玩意儿是局域网(the local area network ,LAN)。它是怎么实现将所有计算机连接起来的呢?
局域网的亮点在于,它可以连接不止两个计算机系统。因此,一根简单的单线双向传输线是不够用的。理论上说,星型、环型、总线拓扑架构都可以将成千上万台计算机连成局域网。星型总线拓扑架构将每台计算机与好几个中心节点连接,这显然可以胜任这一要求。总线拓扑结构则是由唯一一根长电缆组成,计算机沿着电缆排布。而在环型拓扑结构里,一根电缆将一台台计算机串起来,最后首尾相接,形成完整的环型结构。
Pic: 拓扑结构(Topology)
而在实际操作上,事情远没有理论简单。令牌环网(Token Ring),是一种使用星型拓扑结构的局域网技术。但这从线缆的连接方式上是看不出来的,因为所有计算机都被连接到中央监控系统了(类似于今天以太网的交换机)。但是这些线路确实组成了一个环型结构。令牌环网使用了一个复杂的令牌传递系统,以此决定是哪一台计算机、在什么时候可以发送数据封包。在环型结构中流通着一个令牌,持有令牌的计算机就要负责发出信息。令牌总线使用了物理总线拓扑结构,但同时也有一个令牌传递方案,用来判决每台计算机对总线的访问权限。由于其复杂性,令牌网络在很多种故障类型面前都显得弱不禁风。但这种网络形式确实具有“运行效果可以预测”的优势,网络的运行效果可以事先精确地计算得知这一点,在某些应用层面具有重要意义。
Pic: 令牌环网(Token Ring)
但在局域网标准化战争中笑到最后却是以太网。游说标准化组织中的官员,同时倡导自己智能、简洁、低实施成本的设计,是以太网的杀手锏。以太网坚持不懈地发掘、吸收更高速率的网络传输协议,并将它们的技术优势据为己用,令这场网络标准化之争日益失去悬念。几十年后,以太网终于一统江湖。
如果你曾经留意过你家电脑屁股后面突出的网线,好奇过以太网是从哪里开始、跑了多远、怎么运作的,不必再抓耳挠腮了。且听我慢慢道来。
施乐PARC为您呈现
以太网是由鲍勃·麦特考菲(Bob Metcalfe)和其他施乐公司(Xerox) 帕罗奥图研究中心(Palo Alto Research Center, PARC)的员工在1970年代中期发明的。PARC的实验用以太网网速达3Mbps,“这个数据传输速度比计算机访问主记忆体要慢,但已经够用了”。由于可观的网速,数据封包不会在以太网接口被延迟。“以太网”这个名字来自“光以太”,一个曾经被认为是电磁波传递介质的虚构概念(正如声波的传递介质是空气)。
通过在粗同轴电缆中以广播方式发送数据包,以太网把网线布线当作广播用的“光以太”。计算机通过贯穿熔覆和外导体的小孔与内导体接触并相连,与以太网电缆建立起连接。同轴电缆不允许延伸旁路,其两端配备了终端电阻,可以校正电缆的电气性能,因此信号可以沿着电缆一直传输而不会被反射。所有计算机都能看到所有途经的数据包,但以太网接口会忽略不是发送到本地计算机或本地播散地址的数据包,因此软件只需处理发送至本机的数据包就可以了。
Pic: 同轴电缆(coaxial line)
其他的局域网技术都采用了分散式的机制来分配与共享通信介质的访问,这当中当然不包括以太网。PARC研发的分布式控制机制实在太高明了,令我想形容为“简直是精神病人操控的精神病院才能想得出来”,虽然这显然有失公允。不过我相信大型机和微机生产商们应该都会觉得我的比喻还不算太离谱。
以太网的介质访问控制程序(mediaaccess control ,MAC)叫“带有碰撞检测的载波侦听多路访问”(CSMA/CD)。这一程序是建立在ALOHA网络之上的。ALOHA网络是1970年代早期搭建在几个夏威夷小岛之间的电台网络,几个发射站的远距离无线发射机都使用相同的频律。每个发射站都能随心所欲地传输信息。显然,当两个发射站同时发射时,会发生干涉效应,双方发射的信息都会丢失。
Pic: ALOHAnet
为了解决这个问题,网络的中央位置在正确接收到数据包后要进行一次确认。如果发送方没有收到来自中央位置的确认信息,就隔一段时间后再次发送相同的数据包。当两个发射站同时发射产生了数据碰撞时,这个重发制度能保证双方的数据最终都能发射出去。
以太网在ALOHA网络的基础上作了若干改进。首先是“载波感测”。以太网站先检查“以太”是否空载,如果检测到信号了就排队等候自己的发送机会。其次是“多路访问”和“碰撞检测”。在共享介质中发射数据前,以太网发射站通过比较准备发送的数据和目前正在电缆中传输的数据,以免产生干涉效应。如果两者相同,就必然会产生数据碰撞。这种情况下,发送就失败了。为了确保发送干涉信息的源头也能知晓发生了数据碰撞,发射站在检测到碰撞后,要发一个是32比特的倍数的拥塞信号。
Pic: CSMA/CD
现在双方都知道它们的数据发送失败了,因此它们要通过一个“指数型延迟存取程序”来重新发送数据。一方面,为了不浪费宝贵的带宽,重新发送自然是越快越好;另一方面,若双方都马上重发,必然会再次引起数据碰撞,重发就没意义了。因此,每个以太网发射站都事先通过“某个整数*传输512比特数据所需的时间”求得一个最大延迟时间。当一个数据封包被成功发送后,最大延迟时间就被设定为1。数据碰撞发生时,就将最大延迟时间翻倍,直至涨到1024。之后,以太网系统会在最大延迟时间值内,随机选择一个数作为实际延迟时间。
比方说,发生第一次数据碰撞后,最大延迟时间变成2,可选的实际延迟时间就成了0和1。显然,有50%的可能性两个发射站都选择0或者都选择1,导致另一次数据碰撞。如果这样,最大延迟时间就变成了4,这两个发射站第三次发生数据碰撞的几率降到了25%。如果人品太差连续发生了16次数据碰撞,以太网系统就认命了,乖乖放弃这个数据包。
数据碰撞对网络运行效果造成的冲击一度令人们充满恐惧、不安和怀疑。但实际上,数据碰撞很快就能被检测到,且发生碰撞的数据传输马上就中断了,所以整个过程都不会浪费太多时间。CSMA/CD制式的以太网在不超负荷的情况下,运行效果其实是相当好的:鲍勃·麦特考菲和大卫·博格斯(David Boggs)在1976年发布的描述实验用3Mbps以太网的文件里指出,即使256台计算机都在不断地发送大于等于500字节的数据包,仍有超过95%的网络容量在成功地传输着数据。可见这系统实在高明。
标准化之路
直到1970年代末期,以太网的所有权都属于施乐。但比起控制着一块小蛋糕,施乐更愿意在一块大蛋糕里切上一块。所以施乐与数字设备(Digital)和英特尔(Intel)合作,合体后的DIX(三公司名称缩写)大财团创造了(或者至少说是共同投资了)10Mbps的以太网规格。之后还迅速修复了部分bug,推出了DIX以太网规格的2.0版本。
美国电机与电子工程协会(Instituteof Electrical and Electronics Engineers , IEEE)随后也加入了这场游戏。最终,为免帮某些厂商卖广告的嫌疑,IEEE在尽力避免使用“以太网”这一名称的前提下,推出了如今被当作以太网官方标准的802.3标准。(除了在以太网这名字的范畴有所出入之外,DIX2.0和IEEE802.3是完全兼容的。)
pic: IEEE
尽管实际效果在刚开始时尚算可以,但工程师们不得不承认,整栋大厦的用户只能用同一根电缆连接的效率实在有限。简单地从粗同轴电缆上产生旁路是不可能的,这样数据信号会受到不良影响。解决方案是使用中继器。它们能重复产生信号,并实现了连接两个以上的以太网电缆或以太网段。
还有另一个麻烦,足足9.5毫米粗的同轴电缆用起来也不甚方便。譬如说,我就好几次见过电信公司的家伙在布线时为了令穿墙而过的电缆弯折往下走而不得不出动到大锤,还委实耗费了好一会儿功夫。此外还有人跟我说过,他喜欢将一整段笔直的同轴电缆放在车子里:“如果条子在你的车里翻到一根棒球棒,会告你私藏武器;而一根同轴电缆在干架时跟球棒一样好使,但条子从来不会因为一根电缆我麻烦。”
尽管在威吓流氓这种歪门邪道上的效果差些,但说到正儿八经的用途,细同轴电缆可比粗同轴电缆好用多了。细同轴电缆只有粗同轴电缆一半粗,跟电视天线电缆很像。若一台新的计算机想接入粗同轴电缆连接成的局域网,必须像吸血鬼一样吸附在网线的小孔上。细同轴电缆则摆脱了这种形式。细同轴电缆末端是BNC接头,计算机可以通过T型接头与之连接。但细同轴电缆构成的以太网段也有一大缺点,一旦电缆在任何位置出现受损情况,就整个局域网都无法运行了。新电脑接入网络时自然会出现这种情况。而且由于电缆必须穿过每一台计算机,全网中断的意外更是时有发生。所以必须寻求更好的网络架建方法。
1980年代末出台了一种新的规格,这种规格将以太网架建在非屏蔽双绞线电缆上:用地球人的话来说就是架建在电话线上。以太网使用的非屏蔽绞线电缆(UTP),由四对细同轴电缆绞接而成。这种电缆可以用单一铜线或细铜线束构成(前者电气性能更好,后者更容易加工)。UTP电缆配备了如今很常见的RJ45型塑料卡标式连接器。架建在UTP上的10Mbps和100Mbps以太网则只需用到双绞线:一根发送数据,一根接收数据。
Pic: UTP双绞线 (UTP with two twisted pairs)
搭建这种规格的局域网多了一个比以往稍显复杂的问题,即每一根UTP电缆都是自身的以太网段。因此,为了在两台以上的计算机之间搭建局域网,必须使用多端口中继器(它更常见的名字是集线器)。简单来说,中继器将正常情况下收到的信号,和数据碰撞时产生的拥塞信号重复发送到所有的端口。在以太网络环境里,复杂的规则制约了集线器的拓扑结构和使用范围。考虑到如今应该没人再对如何使用集线器搭建一个规模巨大的以太网感兴趣了,具体细节姑且不表。
搭建局域网麻烦不少,到现在还一直纠缠着我们。计算机用1号和2号插脚(插脚是指在计算机和其它通讯设备中信号接口的接口处分叉的接触处,插脚是阳性连接器的一部分,用来插进阴性连接器)发送信号,3号和6号插脚接收信号。但对于集线器和交换机而言,情况有所不同。这句话的意思是一台计算机通过普通电缆和集线器连接,但需要连接两台计算机或两台集线器的话,就必须动用到交叉线缆,一头把1、2号插脚相连,另一头把3、6号插脚相连(反之亦然)。好玩的是,由苹果公司领导的开发联盟开发的火线接口(IEEE 1394,別名火线FireWire接口,一种高速传送接口)干脆只允许使用交叉线缆,结果这样一刀切反而降低了对用户造成的不便。
Pic: 火线(FireWire)
无论如何,解决了以上种种复杂难题后,最终的硕果是一套高速而灵活的系统——这套系统快得目前仍在被使用。不过,我们需要更高的网速。
追求速度:快速以太网
尽管现在看来难以置信,但在1980年代初,10Mbps的以太网已经是非常非常快的网速了。但不妨静心想想:有哪项超过30年的技术现在的电脑还在用?300波特(每秒钟发送300个bit数据)的调制解调器?读写周期500ns的储存器?菊瓣字轮式打印机?唯有10Mbps以太网。到了今天,10Mbps仍不算慢得完全没法用的网速,它依然是我们电脑上10/100/1000Mbps以太网接口的组成部分。
到了1990年代初期,以太网不再像十年前那样觉得自己快得无可匹敌了。不妨看看1977年迪吉多(Digital Equipment Corporation, DEC)发布的计算机VAX-11/780。780配有一些2MB的RAM,主频为5MHZ。它几乎每秒能处理一百万条机器语言指令,1757条dhrystones指令(dhrystones是1984年开发的一个CPU性能基准程序,这一名字是对更古老的性能基准程序Whetstone的发挥)。目前流行的英特尔i7计算机可能有3GHz的主频和3GB大的RAM,每秒能执行1700万条dhrystones指令。如果网速增长得跟处理器速度一样快,今天的i7至少会有10GBps的网络接口,也许还会有100Gbps的。
Pic: VAX11-780
但事实是网速的增长并没有这么夸张。幸好,到了1990年代,有一种新的局域网技术,足足比常规以太网快10倍:光纤分布式数据接口(FiberDistributed Data Interface, FDDI)。
FDDI使用的是一种速度高达100Mbps的环型拓扑结构。当主环在某处发生问题整体崩溃时,FDDI还有另一个支持自动线路备份的后备环。一个FDDI网络至少可以横跨200公里。所以FDDI可以充当非常高效的跨局域网大容量网络主干。尽管以太网和FDDI在很多方面不同,实现双方数据封包格式互相转化还是可以的,所以以太网和FDDI可以通过网桥实现连接。
网桥连接在多个局域网段上,可以获悉哪个地址在哪个网段被使用了。之后在必要时,网桥将源网段的数据包重发送到终网段。这意味着,不同于中继器,本地的信息传输(也包括数据碰撞!)会保留在本地。所以网桥将网络分割为独立的冲突域,但所有的数据封包依然在整个网络里到处跑,所以使用了网桥的网络依然是个单一的广播域。
路由器可以将网络划分为多个广播域。路由器在整个网络模型的网络层运行,比以太网高了一级。这意味着路由器在收到数据封包时就会去除以太网的数据头信息,加上低一层的数据头信息(以太网层或者其他层的),然后发送给下一方。
FDDI在连接以太网段和服务器时能发挥作用,但它和细同轴电缆以太网一样有“牵一发而动全身”的问题,而且成本相当昂贵。随后有人开发了CDDI,即改用铜线的FDDI,但这货基本上一无是处。因此IEEE后来又开发了快速以太网,即100Mbps版本的以太网。
10Mbps以太网使用了“曼切斯特编码技术”传输数据。曼切斯特编码技术将每一比特的数据转换为一电缆上一个个或低或高的电压。0被编码为“低电压-高电压”的跳变波形,而1则是“高电压-低电压”的跳变波形。这种做法基本上把传输的数据量翻倍了,但可以避免数据中出现长串0或1的麻烦:传输介质基本上无法长期维持低电压或高电压的状态,这样信号看起来就跟直流电压一样毫无变动。这还会引起连锁反应。计算机也会发懵:“我刚刚看到那一长串零到底有几个?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成为了大众市场的产品。
全部0条评论
快来发表一下你的评论吧 !