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