分组交换:保罗·巴兰、唐纳德·戴维斯和伦纳德·克兰罗克

通过网络传输数据的方法有很多种。其中最简单的叫电路交换,是电话系统传输数据的方式:一组交换机建立起一个专用电路,让信号在通话期间来回传输,即使通话停顿很长时间,连接依然保持通畅。另一种方式是报文交换,也就是报务员所说的存储转发交换。在这一系统下,整条报文会获得一个地址标头,报文被发送到网络上,然后从一个节点传到另一个节点,直到抵达终点为止。

还有一种是效率更高的分组交换方式,这是一种特殊的存储转发交换。在这种交换中,信息会被分割为大小完全相同的小单元,这些单元被称为“包”,有相应的地址标头,描述它们应该发往什么地方。随后,这些“包”会通过网络被发送到终点,在发送过程中,它们从一个节点传到另一个节点,使用当时可用的任意连接。如果某些连接因数据过多而发生堵塞,一些“包”就会路由至其他路径。当所有“包”都到达最终节点时,它们会根据标头的指令重新组合到一起。互联网先驱之一文特·瑟夫(Vint Cerf)解释说:“这就像把一封长信分割为几十张明信片一样,每张明信片都有编号,地址也一样。每张明信片可能会通过不同的路径抵达终点,然后它们会被重新拼在一起。”54

如斯坎特伯里在加特林堡所述,最先提出分组交换网络概念完整构想的是一位名叫保罗·巴兰的工程师。巴兰两岁时,他家从波兰移民到美国,在费城落脚,他父亲在那里开了一家小杂货店。巴兰1949年从德雷塞尔大学毕业后加入了普雷斯伯·埃克特和约翰·莫奇利新创办的电脑公司,他在这家公司负责测试通用自动计算机的零部件。后来他来到洛杉矶,在加州大学洛杉矶分校读夜校,最终在兰德公司找到了一份工作。

1955年,苏联人的氢弹试验让巴兰找到了自己的毕生使命:为防范核屠杀贡献一己之力。有一天,他在兰德翻看美国空军发送的每周研究课题列表时,被一个有关建立可经受敌军打击的军用通信系统的课题所吸引。他知道,这种系统有助于防范核战争,因为如果有一方害怕自己的通信系统受到攻击,就会倾向于在局势紧张时发起先发制人的一击。一旦有了稳固的通信系统,国家就会觉得没有必要摆出蓄势待发的姿态了。

唐纳德·戴维斯(1924——2000)

保罗·巴兰(1926——2011)

伦纳德·克兰罗克(1934——)

文特·瑟夫(1943——)和鲍勃·卡恩(1938——)

巴兰提出了两大重要思想,他从1960年开始发表文章,介绍这些思想。他的第一大思想是,网络不应该建成集中式,不应该有控制所有交换和路由的主要枢纽。网络更不应该像AT&T(美国电话电报公司)的电话系统或主要航空公司的航线图一样建成简单的分布式,把控制权交给许多区域枢纽。如果敌军占领了这些枢纽中的一部分,整个系统就有可能瘫痪。控制权应该实现完全的分散。换句话说,每一个节点在交换和路由数据流时应该拥有同等地位。这将成为互联网的最根本特征,这种坚不可摧的特质会让互联网赋予个人力量,并使网络成为反抗中央控制的工具。

巴兰绘制了一个看起来像渔网一样的网络。在这个网络中,所有节点都有权路由流量,而且每个节点都与其他几个节点相连接。如果其中哪个节点被破坏,流量只要通过其他路径路由即可。巴兰解释说:“没有中央控制,每个节点都执行简单的本地路由策略。”他发现,哪怕每个节点只有三到四个连接,系统也会拥有几乎无限的恢复能力和生存能力。他说:“只需要三到四个富余连接,就能让网络的稳固性接近理论极值。”55

巴兰说:“在确定增强网络稳固性的方法之后,接下来我要解决的问题是如何让信号通过这种渔网式的网络。”56 他的第二个思想由此形成,即把数据分割为标准尺寸的小模块。可将一条信息分拆为许多个这类模块,每个模块都通过网络节点,经由不同的路径传输,等它们到达终点时再被重新组合起来。他写道:“一个通用标准化信息块的大小也许是1 024比特。多数信息块可传输任何种类的数据,其余的信息块将包含辅助信息,比如错误检测和路由数据。”

后来巴兰遭遇了一种创新常常面临的严酷现实,这就是抗拒改变的顽固官僚制度。兰德把自己的分组交换网络思想推荐给美国空军,美国空军在经过全面考量后决定建一个这样的网络。但之后国防部却认为这类项目应由国防部通信署来做,这样国防部的所有分支机构都可以使用该网络。巴兰意识到,国防部通信署既没有意愿也没有能力来完成这项任务。

于是巴兰试图说服AT&T再建一个分组交换数据网络,作为电路交换语音网络的补充。他回忆说:“他们强烈反对这一主张,想方设法阻挠这个方案的实施。”AT&T甚至禁止兰德使用他们的电路交换图,于是巴兰只好使用一份泄漏出来的图。他到AT&T曼哈顿下城的总部去过好几次。有一次,巴兰见到该公司一名高管,这名高管是个老派模拟工程师,当巴兰向他解释,自己的系统意味着数据无须全天开放的专用电路就能传输时,这位高管看上去目瞪口呆。巴兰说:“他看了看会议室里的同事,翻了个白眼,释放出他根本不相信的信号。”这名高管顿了顿说:“小伙子,电话的工作原理是这样的。”然后他以居高临下的姿态做了一番粗浅的解释。

之后巴兰仍在继续推介他看似荒谬的思想,即信息可以分割为小块,以小包形式通过网络传递。于是AT&T邀请他和其他圈外人士参加了一系列研讨会,向他们解释公司的系统如何运作。巴兰感叹说:“他们找了94个人来解释整个系统。”研讨会结束后,AT&T的高管问巴兰:“现在你知道分组交换为什么行不通了吧?”让他们备感失望的是,巴兰只说了句:“不。”AT&T又一次为“创新者困境”所阻碍。这家公司不愿考虑一种全新的数据网络,因为他们为传统电路投入得太多。57

巴兰的研究最终结集为11卷详细的工程分析报告《论分布式通信系统》(On Distributed Communications ),这部著作于1964年完成。他坚持不把该书列为机密文献,因为他意识到,如果苏联人也建一个这样的系统,就会让该系统发挥最理想的效果。鲍勃·泰勒读了这本书的部分章节,但ARPA的其他人都没有读过,所以巴兰的思想一直没能产生什么影响,直到1967年,它才在加特林堡会议上引起拉里·罗伯茨的注意。回到华盛顿后,罗伯茨把巴兰的报告翻出来,掸掉上面的灰尘,开始阅读。

罗伯茨还拿到了唐纳德·戴维斯英国研究小组撰写的论文,也就是斯坎特伯里在加特林堡简要介绍过的论文。戴维斯生于1924年,他父亲是威尔士一个煤矿职员,在戴维斯出生几个月后就去世了。小戴维斯是由母亲在朴茨茅斯抚养大的,他母亲在英国邮政总局(该机构负责运营英国电话系统)工作。戴维斯小时候经常玩电话里的电路,长大后,他在伦敦帝国学院获得数学和物理学学位。“二战”期间,他在伯明翰大学工作,作为克劳斯·富赫斯(后来被发现是苏联间谍)的助手参与研制核武器合金管。后来他又在英国国家物理实验室与艾伦·图灵合作建造自动计算引擎,也就是一台存储程序式电子计算机。

戴维斯在研究生涯中形成了两大兴趣:一是计算机分时,这是他1965年访问麻省理工学院时了解到的概念,另一个是用电话线进行数据通信。在头脑中将这些思想结合起来之后,他确立了一个目标,即寻找一种类似分时的方法,最大限度地发挥通信线路的作用。这就让他形成了高效小段信息单元的思想,这些思想与巴兰建立的概念相同。他还为它们找到了一个贴切的英语旧名词:“包”。试图说服英国邮政总局采用该系统的戴维斯也像巴兰一样吃了闭门羹。但他们都在华盛顿找到了知音。拉里·罗伯茨不仅采纳了他们的思想,而且采用了“包”这个名词。58

第三位,同时也是更具争议性的贡献者是伦纳德·克兰罗克(Leonard Kleinrock),他是一位快乐、友善,偶尔会自我推销一番的网络数据流专家,在麻省理工学院读博士时,他和拉里·罗伯茨在同一间办公室工作,两人结下了深厚的友情。克兰罗克成长在纽约一个贫穷的移民家庭。6岁时,他在一本《超人》漫画中读到不用电池制作矿石收音机的指南,触发了他对电子的兴趣。他收集了一个卫生纸筒、他父亲的剃须刀片、一些线,还有一支铅笔上的石墨,然后说服母亲带他乘坐地铁到曼哈顿下城的一家电子商店买了个可变电容器。结果他成功地组装出一台矿石收音机,他对电子的毕生热情也从此生根发芽。他回忆起这个收音机时说:“到现在我还对它充满敬畏,它还是那么神奇。”后来他开始从二手军用品店弄无线电真空管说明书,并从垃圾箱里翻找别人扔掉的收音机,像秃鹫一样从里面拆出零部件,制作自己的无线电。59

克兰罗克念不起大学,甚至连免学费的纽约市立学院也念不起,于是他白天在一家电子公司工作,晚上在大学读晚间课程。晚上授课的教师比白天授课的教师更讲求实用,克兰罗克记得,老师不是教他有关晶体管的理论,而是告诉他晶体管对热有多敏感和设计电路时如何调整理想的温度。他回忆说:“在日校你根本学不到这种实用的东西。那些老师根本不懂。”60

毕业后,他拿到了奖学金,赴麻省理工学院攻读博士。他在麻省理工学院研究排队论(queuing theory),该理论关注的问题包括如何根据各种因素来决定平均排队时间。他在自己的博士论文中推导出一些可分析信息如何流动以及交换数据网络如何出现瓶颈等问题的数学公式。克兰罗克曾与罗伯茨共用一间办公室,还是伊万·萨瑟兰的同班同学,此外,他还听过克劳德·香农和诺伯特·威纳的讲座。他这样回忆当年的麻省理工学院:“这里确实是培养知识精英的沃土。”61

有一天,克兰罗克在麻省理工学院的计算机实验室里待到很晚,疲惫的他在操作一台名为TX–2的大型实验计算机时听到陌生的“扑嘶”声。他回忆说:“听到这种声音我感到非常担心。我旁边有一个空位,原来放在那里的一个计算机部件被搬出去修理了,我抬起头来看那个位置,发现有两只眼睛在看我!”原来那是拉里·罗伯茨在跟他搞恶作剧。62

活跃的克兰罗克和矜持的罗伯茨虽然性格不同,但却是好朋友(两人成为好友也许正是因为性格不同)。他们喜欢一起去拉斯韦加斯的赌场,设法凭智慧战胜庄家。罗伯茨琢磨出一套通过追踪高低牌来猜牌的二十一点算牌术,他把算牌术教给克兰罗克。罗伯茨回忆说:“有一次我和妻子在希尔顿玩牌时被赶了出去,当时赌场经理通过天花板监视我们,结果对我们产生了怀疑,因为我为一手牌买了保险,而一般人是不会买保险的,除非知道高牌已经不剩多少了。”他们还捣鼓过一个把戏。两人曾试图用晶体管和示波器制作的计数器来计算轮盘上球的运动轨迹。这个计数器可以测量球的速度,预测球最终滚向轮盘的哪一侧,这样就能提高下注的胜算概率。为了收集必要的数据,罗伯茨把一只手裹在纱布里,在里面藏了一个记录仪。发现情况有些不对劲的赌台管理员盯着他们问:“你想不想让我打断你另一只手?”于是他和克兰罗克知趣地离开了。63

克兰罗克在1961年撰写的麻省理工学院博士论文开题报告中提出要探索预测网状网络中流量阻塞的数学基础。在这篇论文以及相关论文中,他描述了一种存储转发网络(每个节点都能存储信息的通信网),而不是纯粹的分组交换网络(即信息可以分拆为大小完全相同的微小单元)。他讨论了“信息在网络中传递时发生的平均延迟”问题,还分析了如何通过建立一个可分割信息的优先结构来解决问题。但他没有使用“包”这个名词,也没有介绍与之接近的概念。64

克兰罗克外向合群,乐于与人合作,但他从来都不像利克莱德那样淡泊名利。后来,他在博士论文和一篇介绍论文写作计划的文章中(两篇文章都是在巴兰开始在兰德建立分组交换理论之后写的)称自己“建立了分组交换的基本原理和分组网络的数学理论,也就是互联网的基础技术”,此举令他疏远了许多互联网的其他开发者。65 他从20世纪90年代中期开始为“现代数据网络之父”的名头而积极活动。66 1996年,他在接受采访时称:“我的博士论文阐述了分组交换的基本原理。”67

他的举动引发了许多其他互联网先驱者的抗议,他们公开攻击克兰罗克,说他只是简单提到把信息分解为较小的单元,远没有达到提出分组交换的层次。鲍勃·泰勒说:“克兰罗克满嘴谎言。他把自己和分组交换这项发明扯上关系,这是典型的、无可救药的自我标榜,从第一天开始就是这样。”68 而克兰罗克反驳说:“泰勒心怀不满是因为他从来没有得到他所期望的认可。”69

发明“包”这个术语的英国学者唐纳德·戴维斯是个温和、含蓄的人,他从不炫耀自己的成就,有人甚至说他过于谦虚。但他却在临终前写了一篇论文(这篇文章在他去世后发表),出人意料地以激烈的语气攻击克兰罗克。戴维斯在经过详尽分析后写道:“从克兰罗克1964年之前直至1964年所做的研究来看,他根本没有资格说自己首创了分组交换理论。他书中有一段谈到分时排队原理,如果能继续推导,直至得出结论的话,也许会把他引向分组交换,但事实却并非如此……我没有发现任何显示他理解分组交换原理的证据。”70 管理BBN公司网络控制中心的工程师亚历克斯·麦肯齐(Alex McKenzie)后来说得更加直接:“克兰罗克自称分组概念是他提出的,这完全就是胡说八道。1964年的那本书中,整本书没有任何一处提出、分析或间接提及分组交换思想。”他称克兰罗克的说法“荒唐可笑”。71

对克兰罗克的反击异常猛烈,于是凯蒂·哈夫纳(Katie Hafner)2001年以此为主题在《纽约时报》上发表了一篇报道。在这篇报道中,哈夫纳描述了克兰罗克对发明优先权的主张是如何撼动互联网先驱群体中常有的那种平等态度的。名副其实的分组交换之父保罗·巴兰站出来说:“互联网其实是上千人共同努力的成果。”他有意指出,多数参与互联网开发的人都没有去邀功,他还补充道:“只有这个小案例似乎是例外。”在这里他以轻蔑的态度暗指克兰罗克。72

有意思的是,20世纪90年代中期之前,克兰罗克一直都把创立分组交换思想的功劳归于他人。在1978年11月发表的一篇论文中,他把巴兰和戴维斯称作分组交换思想的先驱,他写道:“20世纪60年代初,保罗·巴兰在兰德公司撰写的一系列论文中阐述了数字网络的部分属性……1968年,英国国家物理实验室的唐纳德·戴维斯开始撰写有关分组交换网络的论文。”73 在1979年一篇描述分布式网络发展的论文中,克兰罗克也是既没有提及也没有援引他本人从20世纪60年代早期开始的研究。直到1990年,他仍然宣称巴兰是创立分组交换思想的第一人:“我可以说他(巴兰)最早提出了分组交换思想。”74 然而,当克兰罗克1979年的论文于2002年重印时,他却写了一个新的引言称:“我建立了分组交换的基本原理,1961年,我发表了第一篇相关论文。”75

公平地说,不管克兰罗克有没有自称在20世纪60年代初的研究中建立分组交换理论,他都应该作为互联网先驱而获得充分尊重。他是网络数据流领域一位重要的早期理论家,也是阿帕网建立过程中一位重要的领导者,这些都是毋庸置疑的事实。他是最早计算出对节点间传递的信息进行分割会产生何种效应的学者之一。此外,罗伯茨还发现他的理论研究很有价值,并把他招募到阿帕网项目实施团队中。推动创新的是这样一些人,他们既掌握着出色的理论,又有机会加入能够实施理论的团队。

克兰罗克引发的争议很有意思,因为它显示出(这里我们用一个互联网领域本身的隐喻),互联网的多数创建者都更青睐一种完全分布式的荣誉系统。他们会本能地隔离和绕开任何要凌驾于其他节点之上的节点。互联网是在创造性协作和分布式决策思潮中诞生的,其创始人希望能保护这种遗产。这种精神深深植根在他们的个性——以及互联网本身的基因之中。

《创新者:一群技术狂人和鬼才程序员如何改变世界》