后一页
前一页
回目录
回首页
第二章 所有电脑生来都是平等的


  “人文电脑”

  近、现代西方的人文思想大都建立在一个基本命题之上:“所有人生来都是平等的”。
  也许是巧合,也许是因为有的时候技术需要会和人文理想保持某种神秘的一致性。从最初的ARPANET到今天的互联网,我们都可以看到一个同样的命题:“所有电脑生来都是平等的”。
  这一“平等思想”不仅和古希腊的精英政治理论大相径庭,甚至也和最初的电脑网络原理相去甚远。

  “智者”

  古希腊哲学家柏拉图写过一本《理想国》。在他看来,人是按照不同的等级划分的。因此,平等和民主都是不可能实现的空话。一个国家,应该由社会中最优秀的精英来统治;而“理想”国家的权杖,更应该交给最有智慧的“哲学王”。
  就象草原上的羊群,要有带头羊;就象战场上的军队,要有指挥将领。如果从使用者的角度,我们也很容易把所有网络都看成是由中央控制,然后发散到四方的系统。这样的网络安全可靠,容易管理,并且“令行禁止”。最初的电脑网络也确实是按照这种原理设计的。
  如果我们追溯今天复杂的网络系统的原理,甚至可以把目光投到1940年的9月10日-13日。那是一次在达特茅茨学院召开的美国数学协会的会议。贝尔实验室的GeorgeStibitz打算在这里演示他们的“复杂计算机”(Complex Calculator)。
  然而,这台后来被称为“贝尔实验室模型1号”(Bell Labs MODEL 1)的机器,离会场实在太远了。要想从纽约用卡车把这个庞然大物运过来,确实不是一件易事。最后想出来的“权益之计”就是在会场外的过道里安放一个电传(Teletype)终端,让与会者通过这台电传机来转达自己的指令。就这样,用一种间接的方式,可以使用远在370公里以外的计算机(还不是电脑)。
  尽管按照今天的标准,这远远不能算是电脑网络。而且,这次实验甚至比1946年美国宾西法尼亚州诞生第一台电子管电脑还早了6年。但是,不少探讨电脑网络历史的书仍然要首先提到这台“模型1号”,因为这次实验向人们提示了远距离控制计算机的可能性。
  10年以后,东西方正在酝酿一场冷战。美国军队开始担心俄国熊的飞机绕道北极前来空袭。为此,1951年,麻省理工学院成立了著名的林肯实验室,专门研究防范苏联轰炸的措施。而他们的主要研究项目就是“远距离预警”(DEW:Distant Early Warning)。
  历史的巧合有时候的确让人忍俊不禁。这个最初的“远距离预警”系统,正是那种由中央控制的网络结构,而且它的名字也叫“智者”(SAGE)。当然,这个“智者”还远不是真正的“哲学家”,而只是一个“半自动基础环境”(Semi-Automatic GroundEnvironment)。
  按照专家们的设计,这个“智者”必须完成三个任务:第一,采集从各个雷达站搜集来的信号;第二,通过计算判断出是否有敌机来犯;第三,将防御武器对准来犯的敌机。
  毫无疑问,“智者”是第一个真正实时的人机交互作用的电脑网络系统,它能接收网络上各个节点传送过来的数据,能够按照键入的指令来处理这些数据。
  由于在运行的过程中需要人的干预,所以被称作是“半自动”的系统。1952年,“智者”系统投入使用,成为当时远距离访问的电脑网络的一个典型。
  从此,“智者”一类的网络就不断涌现。到了60年代,已经开始广泛应用于军队、机场和银行等系统中。这类网络的共同特点就是在中心有一台大型电脑,用来存储和处理数据,其它电脑作为终端通过一定的方式(比如,电缆或者电话线)
  连通这个数据中心。每个网络都是为某种特殊用途专门设计的,并且只允许系统授权的用户进行访问。
  银行系统就是这样,每一个银行的分行都有一台电脑和中心银行相连,在中心银行则有一台大型的电脑在那里存储和整理数据,并且不断对各个分行提供信息和发出指令。如果不是银行系统授权的人,就不可能使用银行的电脑。直到现在,我们仍然能够在机场、银行和商场等地到处看到这种类型的电脑网络为我们服务。
  在电脑网络理论中,通常把这种将数据从线路的一端直接传送到另一端的方式称为“线路交换”(Circuit Switching)。而这种由强大的网络服务器管理的网络则通常被称为中央控制式网络(Centralized Networks)。
  我们平常理解的电子通信也都是这样:在一个中央控制的系统之中,信号从出发点直接到达目的地。比如打电话,拨通了电话之后,信号从打电话的人那里直接传给接电话的人,并不需要中间有任何环节来接收和转换这些信号,通话期间,整条线路也要被独占(线路交换)。发电报和传真也同样是这个道理。这种通信方式当然是最直接的,也是最容易管理的──只要在中央一级进行监控就行。
  但是,这种方式也有一个致命的缺点,如果切断了从出发点到目的地中的任何一处,都会使通信中断。
  本世纪60年代,当世界上已经有若干国家拥有原子弹和氢弹的时候,美国的中央控制式网络已经达到相对发达的程度,美国军队的联系也开始依赖于电子通信。那些极为注重高新技术开发的国防高级研究计划署的官员们,开始从另一个角度来考虑可能的核战争会给美国、尤其是给美国军队的通信带来什么样的影响。
  在他们当时考虑的诸多问题中,有一个问题显得格外突出,这就是:“如何在受到核战争袭击之后,保持军队中各个网络之间的联系。”
  时势造英雄。为了解决这个对美国生死攸关的问题,人们期待着具有洞见的网络专家和崭新的网络理论。

  保罗·巴伦

  保罗·巴伦(Paul Baran)1926年生于波兰,两岁的时候,全家移居到了美国的波士顿。父亲到一家鞋厂做工。不久,他们又举家迁往费城,开了一家小杂货铺维持生计。
  一次,小巴伦问母亲,家里算不算是有钱人。母亲微笑着回答说:“我们是穷人。”后来,他又用同样的问题问父亲,而父亲却说:“我们是有钱人。”这一回答是巴伦有生以来遇到的第一个难解之谜,同时也使他幼小的心灵开始懂得,同一个问题可能会有不同的答案。
  也许,巴伦遇到第二个较大的难题是在Drexel技术学院。学校对计算的要求极为严格,不管你是否已经真正理解题意,只要在一次考试中出现两次计算错误,就算不及格。许多很优秀的人在这个政策上栽了跟斗。然而学校却坚持认为,准确而快速的计算是成为科学家的前提。幸好,巴伦靠他的实力过了关,于1949年获得了这里的电器工程学士学位。
  当时的工作不那么容易找。经过几次波折,他后来结了婚,和妻子一起搬到了洛山矶。在那里,他为一家飞机公司工作,同时参加了加州大学洛山矶分校的夜校。1959年,巴伦获得了该校的工程硕士学位。
  随后,巴伦参加了兰德公司的研究工作,同时继续在加州大学洛山矶分校攻读博士学位。他的导师也极力鼓励他。可是仁慈的“上帝”却对此有不同的安排。
  一边工作一边读书本来就是一个苦差事。而有的时候事情会比读书本身更糟。
  一次,巴伦照例开车赶到洛山矶分校上课,居然转遍了所有地方还是找不到一个停车的地方。
  “正是在那次偶然的事件,使我得出结论:一定是上帝的意愿,不让我继续读学位了。要不然,他怎么会让所有停车位都占满了车?”
  这样,巴伦一心一意地投入到兰德公司的研究项目上去。
  对于巴伦来说,也许最重要的就是对“指令”与“控制”理论的研究了。因为,这是军队指挥系统的生命线。用巴伦的定义,“指令”就是“让他们按你的意愿做某件事”;而“控制”则正相反,是“让他们按你的意愿不做某件事”。
  但是,如果敌人的一颗原子弹把“指令与控制系统”的中心破坏了,全国的军队就会立即瘫痪。
  早在60年代初,美国空军就与军方的思想库“兰德公司”(RAND)签有协议,研究如何在战争中保护他们的通信系统。巴伦感兴趣的也正是这一点。
  (模拟化还是数字化)
  1962年,就在美国国防高级研究计划署成立“指令与控制研究室(CCR)”的同一年,保罗·巴伦为兰德公司写了11份报告,讨论了我们今天称为“包交换”(PacketSwitching)以及“存储和转发”(Store and Forward)的工作原理。在这11篇报告中,影响最大的是1964年3月发表的“论分布式通信网络”(“On DistributedCommunications Networks”,IEEE Trans.Comm.Systems,March 1964)。在这篇报告中,他概括了“亢余联结”的原理,举出了多种可能的网络模型。

  两点之间不一定直线最短

  与传统的中央控制的网络理论完全不同,巴伦的设想听起来就有点异想天开。他提出,要在每一台电脑或者每一个网络之间建立一种接口,使网络之间可以相互连接。并且,这种连接完全不需要中央控制,只是通过各个网络之间的接口直接相连。
  因此,在这种方式下,网络通信不象由中央控制那样简单地把数据直接传送到目的地,而是在网络的不同站点之间像接力赛一样地传送。每一个网站并没有整个网络的“地图”,更不受中央的控制。网站收到数据之后,只是按当时最可能的路线把信转走。这虽然不一定是最近的路线,但往往是最有效的。
  用网络理论专门一点的话来说,传统的网络是“中央控制式网络”;而巴伦提出的网络模型则是“分布式的网络”(Distributed Networks)。
  比如,要在北京、上海、天津、重庆和广州的网络之间建立一种联系。一般的做法是在北京建立一个网络的中心控制,由北京来控制整个网络的运行。IBM公司1975年建立的SNA网络就是这样的系统。
  就象我们平时打电话有时会听到杂音,数据在网络中传送的时候也可能会遇到干扰。电话中即使有杂音,还仍然能大致听明白对方的意思;而如果在网络通信中遇到干扰,则会引起数据的丢失。在由中心控制的网络里,可以很好地控制这类差错。
  但是,按照巴伦的设想,在分布式网络中,每一个节点都可以相互连接。并不需要通过北京的控制。从表面上看,如果某一个节点出了差错,不由中央的指令来控制修复,而是由各个节点自行修复的话,修复的时间也许会更长一些,并且不那么及时。但是,无论如何,对于分布式网络来说,单个节点的重要性大大降低了。一条线不通,完全可以走另一条线。
  况且,如果是中央控制的网络,从广州往重庆发一封信,仍然需要绕道北京来经过“批准”。而分布式网络倒反而更直接了当些。即使广州通往重庆的线路出了毛病,也只需绕道上海,而不必到北京来。这样,看起来效率最低的网络,却变成效率最高的网络了。
  还有,中央控制网络中的线路如果正在使用,会象打电话那样“占线”。而在分布式网络里,根本不会有占线的问题。“条条大路通罗马”,这里则是条条线路都能够送信到家。在整个通信的过程中,分布式网络只关心效果──最终把数据送到目的地,而不关心过程──从哪条路线把数据送到。
  最为重要的是,中央控制式网络并不适合打仗。如果发生战争,只要破坏了北京的中央控制,整个网络就瘫痪了。分布式网络则把这几个网站直接连接起来,不必经过北京。就象一个打不死的“变形金刚”,不管破坏了那里,它都会自行修复。如果要从天津给广州发一封信,这封信可能通过北京,也可能通过上海到达广州。如果北京、上海都“占线”,或者已经被破坏,这封信也仍然可以通过重庆发往广州。
  因此,巴伦在他的报告中提出,要建立一种没有明显中央管理和控制的通信系统。在这种通信系统中,每一个点都可以和另一个点建立联系。这样,破坏网络中的任何一个点都不至于破坏整个网络。
  更加令人不可思议的是,在巴伦的分布式网络理论中,不仅通信的线路不是中央控制下的固定线路;而且每一次传送的数据也被规定了一定的长度。超过这个长度的数据就被分开来再传。因此,同一个数据有可能要被分成不同的部分才能传送。这听起来似乎比分布式的线路更加不合常理。
  在这样的网络里,每个网站的工作就是接收和转送。就象寄明信片。它规定了每一封信允许的长度,超过这个长度的信被分成不同的“块”(block)。同一封信,从同一个节点发出,到达同一个目的地却很可能要被拆散,并且也可能要走不同的路线。。
  因此,每一个“块”都不仅有“块”的内容,而且还必须做上标记:来自哪里、传往哪里。这些“块”在网络中一站一站地传递,每一站都有记录,直至到达目的地。如果某个“块”没有送达,最初的电脑还会重新发出这个“块”。送达目的地后,收到“数据块”的电脑将收到的所有“块”“合而为一”,确认无误后再将收到信件的信息反馈回去,这样,最初发出数据的电脑就不用再往外寄了巴伦的想法由于适合战争的需要,所以正对军方的胃口,因而受到了重视。同时,这一思想也体现了数据共享网络的基本特点,直到现在仍然是互联网最核心的设计思想。
  当然,巴伦之所以能够提出这一革命性的理论,不仅和他本人的才智有关,而且,当时的网络理论也到了突破的阶段。在许多时候,天才是在时代的需要中产生的。因此,不是“英雄造时势”,而是“时势造英雄”。从当时不同的人在不同的条件下得出同样的结论,也可以证明这一点。

  英雄所见略同

  尽管“分布式网络”的想法有悖于常识,也有悖于传统的网络理论,然而却符合科学。因此在当时提出这一理论的不仅仅是巴伦一个人。
  如果追踪朔源的话,首先提出这一思想的应该是美国麻省理工学院的LeonardKleinrock。早在1961年7月,Kleinrock就发表了第一篇有关这方面理论的文章,题目是:“大型通信网络中的信息流”(Information Flow in Large Communication Nets,RLEQuarterly Progress Report,July 1961)。这比巴伦的报告至少早了半年多。而第一本关于分布式网络理论的书也是由L.Kleinrock在1964年完成的,这本书的题目就是:《通信网络:随机的信息流动与延迟》(Communication Nets:Stochastic Message Flow andDelay,Mcgraw-Hill,New York,1964)。
  更加引人注目的是,就在巴伦提出“分布式网络”理论之后不久,1965年的秋天,远在大西洋另一端的英国,41岁的物理学家D.W.戴维斯(Donald Watts Davies,见右图)也在考虑建立一个崭新的网络理论。
  戴维斯出生于一个工人阶级的家庭。父亲是英国的威尔士一家煤矿的职工,在戴维斯很小的时候就去世了。母亲带着一家人搬到朴次茅斯,自己在邮局做收款员。戴维斯从小就对物理感兴趣。据他自己回忆,在他还不到14岁的时候,母亲把一位先生忘在邮局里的书带回了家。这是一本关于电话系统的结构和设计方法的技术书。他居然津津有味地读了好几个小时。
  中学还没有毕业,戴维斯就获得了几所大学的奖学金。为此,他所在的中学专门给全校放了半天假以资庆祝。经过几年的努力,戴维斯在伦敦大学获得了物理学和数学的学位。1947年,他加入了英国国家物理实验室(National Physical Laboratory)。在那里,他对建造当时英国速度最快的电脑做出了重要贡献。
  1954年,戴维斯获得了去美国做一年研究的资助,其中,他在麻省理工学院还工作了一段时间。然后,又回到了英国国家物理实验室。
  如果不是因为戴维斯根本不认识巴伦,如果不是因为戴维斯事先完全不知道巴伦的工作的话,完全有理由认为他是在抄袭巴伦的思想。因为,他们提出的原理简直如出一辙。不仅基本的理论框架完全一样,甚至连数据被分成的每个“块”的大小,以及数据传送的速度也被设计得一模一样。
  也许,他们二人的理论的最大区别只在于名字。在巴伦那里,数据被分成了“块”。巴伦还给这种把数据拆开来传送的方法,起了一个非常饶口的名字:
  “分布式可适应信件块交换”(distributed adaptive message block switching)。而戴维斯起的名字却真正是经过深思熟虑的。他可以从很多名字中选一个,比如,“块”、“单元”、“部分”、“节”或者“框”(block,unit,section,segment,frame)等等。但是,最后他还是用了“包”(packet)这个词。他甚至专门为此请教了两个语言学家!后来,戴维斯回忆道:
  “我当时认为,给分成小块传送的数据起一个新名字很重要。因为,这样可以更加方便地进行讨论。我最后选中了“包”,用这个词来指小的数据包。”直到现在,大家一直沿用戴维斯起的名字,并且把这种数据传送方式称作“包交换”(packet switching,不少专业书都按意思译为“分组交换”)。
  也许在巴伦和戴维斯之间还有一个小小的不同。尽管两人得出的结论是完全一样的,但是两人的出发点却根本不同。巴伦的目的是要为美国的军队建立一个用来打仗的网,而戴维斯的目的则是要建立一个更加有效率的网络,使更多的人能够利用网络来进行交流。
  又经过半年多的思考,戴维斯确认自己的理论是正确的。于是,1966年春,他在伦敦的一次公开讲座上描述了把数据拆成一个一个的小“包”(packet)传送的可能性。
  讲座结束后,从听众中走出一个人,来到戴维斯的面前,告诉他,自己在英国国防部工作,他的美国同行正在做着与戴维斯一样的工作,并且得出的结论也完全一样。在美国主持这项工作的就是保罗·巴伦。
  几年以后,当戴维斯第一次见到巴伦的时候,风趣地对巴伦说:“噢,也许是你先得出结论。不过,是我给起的名字。”
  这真是“无巧不成网”。三部分不同的人,在三个不同的地方,在互相完全不知底细的情况下竟然得出了完全相同的结论──远距离网络通信必须通过“包交换”来实现。而且,他们的工作几乎是在同时进行的:Leonard Kleinrock领导的麻省理工学院的工作是在1961年至1967年;P.巴伦领导的兰德公司的工作是在1962年至1965年;而D.W.戴维斯领导的英国国家物理实验室的工作则是在1964年至1967年。
  这可以说是偶然,也可以说是巧合。但是,更加根本的原因还是在于“包交换”理论的正确。否则的话,三部分人同时犯同样的错误的可能性几乎是不存在的。而这样一个正确的理论当然需要在实践中获得验证,同时也需要拿到实践中去应用。
  有了“包交换”的理论,下面的工作就是要按照这一理论,实际建造一个网。


后一页
前一页
回目录
回首页