神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。
编者按:现在我们已经把随时随地上网视为理所当然,计算和网络正日益变得像水和电一样不可或缺。但是在50年前,计算和网络远不像今天这样便利,当时所有的计算机都在说不同的语言,并且彼此之间无法对话。但是大家都把这认为是理所当然,直到有个人受不了了。Mark Sullivanlong采访了当年的亲历者,请他们讲述了互联网先驱诞生的故事,原文发表在FastCompany上,标题是:50 years ago today, the internet was born in Room 3420
最近,我去加州大学洛杉矶分校(UCLA)的Boelter Hall(ARPANET首个节点设置地)参观。我爬楼梯上到三楼,去找3420室。从走廊上看,那是个相当不起眼的地方。
但是50年前的今天发生了一件大事。有个叫Charley Kline的研究生坐在ITT电传打字机终端上,把数字化的数据传给了当时正坐在加州另一头斯坦福研究所(现在的SRI International)另一台计算机旁的Bill Duvall。并是有史以来的第一次,是ARPANET的开端,这个用来搞学术的计算机组建的小型网络,是Internet的先驱。
当时,这次短暂的数据传输行为跟你在全世界任何一个地方听到的敲击声都不一样。甚至Kline和Duvall这两个人都没意识到自己所实现东西的全部意义。Kline 说:“我不记得那天晚上有什么特别难忘的东西,我当然也没有意识到当时所做的一切有什么特别。”但是他们的通信连接联系证明了概念的可行性,而那些概念最终将会使得全世界几乎所有信息都可以通过计算机分发给任何人。
如今,从智能手机到车库开门器的一切都是节点,那天Kline和Duvall测试过的网络后代的节点。他们和其他人是如何在世界范围内建立起字节交换的原始规则的呢?这是一个值得分享的故事,尤其是当事人自己讲述时。
甚至早在1969年,很多人就为Kline和Duvall在10月29日晚上所取得的突破奠定了基础,其中包括UCLA的教授Leonard Kleinrock。随着互联网诞生50周年纪念日的临近,跟Kline和Duvall一样,我也找他聊了一下。至今仍在UCLA的Kleinrock告诉我,从某种意义上来说,ARPANET是冷战的产物。1957年10月,苏联的人造卫星Sputnik 1在美国上空闪烁时,美国的科学界和政治圈都感受到了它发出的冲击波。
恢复到1969年当年荣耀的3420室。
当我在3420室(现更名为Kleinrock互联网历史中心)跟Kleinrock交谈时,他说:Sputnik的发射“让美国手足无措陷入窘境,艾森豪威尔说,‘苏联别再想超过我们。’因此,1958年1月,他在国防部内部组建了高级研究计划局(ARPA),用来支持美国大学[和]研究实验室开展STEM(科学,技术,工程和数学)研究。”
到了1960年代中期,ARPA已经为美国的大学和智库的研究人员使用大型计算机提供了资金支持。Bob Taylor是负责融资的ARPA官员,他是计算机历史上的重要人物,后来又又负责运营过施乐的PARC实验室。在ARPA,他痛苦地意识到所有这些计算机都在说不同的语言,并且彼此之间无法对话。
Taylor很讨厌这一点,也就是他得用不同的终端,以及各自的租赁线路,来连接各种不同的远程研究计算机。他的办公室里面堆满了各种电传打字机。
1969年,像这样的电传打字机终端是必不可少的计算设备。
1999年的时候,Taylor告诉《纽约时报》的John Markoff 说:“我说,嘿,伙计,该做什么很明显嘛。如果你有这三台终端,那那些应该合成一台可以去任何你想去的地方的就行。这个想法就是ARPANET的雏形。”
Taylor对网络的渴望还有一个甚至更切合实际的理由。他经常会收到来自全国各地的研究人员的请求,对方想申请经费购买更大、更好的大型计算机。Kleinrock解释说,但他知道政府资助的很多计算能力其实都被浪费掉了。比方说,当研究人员把加州SRI的系统资源用到尽时,MIT那边的另一个大型机可能正闲得无聊,那也许是在东海岸的正常的工作时间之后。
又或者是某个地方的大型机里面装有一些对其他地方很有用的软件,比方说由ARPA资助的犹他大学开发的图形软件先驱。Kleinrock说,因为没有网络,“如果我在UCLA想做图形的话,我就要去ARPA申请买那台机器来做图形。每个人都想要拥有一切。”到了1966年,ARPA对这种要求已经感到厌倦。
Leonard Kleinrock
问题是所有这些计算机都在讲不同的语言。回到五角大楼后,Taylor的计算机科学家解释说,所有这些研究计算机跑的都是不同的代码集。它们之间有没有通用的网络语言或者协议,所以没法让天各一方的计算机互联共享内容或资源。
这种情况很快就改变了。Taylor去找ARPA主任Charles Herzfeld,让后者投入一百万美元来研发新网络的,用来连接MIT、UCLA、SRI以及许多其他地方的计算机。Herzfeld设法把弹道导弹研究计划的部分资金转移到了ARPA预算上。他给争取这笔费用找到了一个说法, ARPA需要建设一个任何特定部分受破坏(比如遭遇核攻击)也能“幸免遇难”的网络,美国国防部认可了。
然后ARPA引进了Kleinrock在MIT的好伙伴Larry Roberts来管理ARPANET项目。Roberts求助于英国计算机科学家Donald Davies以及美国人Paul Baran,去利用他们发明的数据传输技术。
很快,Roberts开始让Kleinrock研究该项目的理论方面。从1962年还在MIT那时候开始,他就一直在思考数据网络的问题。
Kleinrock 说:“还在麻省理工学院读研究生的时候,我就已经下定决心要解决这个问题:我周围都是计算机,但是它们之间却无法交流,我知道,迟早它们必须要通信的。当时没人注意这个问题。他们都在学习信息论和编码论。”
Kleinrock对ARPANET 的主要贡献是所谓的排队论。那时候,通信链路还是模拟制式,得向AT&T租用。这种线路属于电路交换,这意味着要通过中心交换机在发送者和接收者(不管是互相打电话的人还是终端连接远端的大型机)之间建立起专用连接。而如果双方不说话或者没有数据在传输时,那些线路就会有大量的时间在闲置。
Leonard Kleinrock在MIT发表的论文,文中提出的一些概念为ARPANET项目提供了启发。
Kleinrock 认为,计算机之间按这种方式建立连接是非常低效的做法。而排队论为来自不同通信会话的数据包动态共享链接提供了一种方法。当一个数据包传送流暂停的时候,不相关的另一条数据流也许可以使用同一条链路。包含有一个通信会话(比方说,发送一封电子邮件)的数据包可能会使用四条不同的路由到达接收者。如果某条路由被禁用了则网络可以通过另一条路由传送数据包。
我们在3420室交谈的时候,Kleinrock向我展示了他有关这一切的论文,论文就放在一张桌子红色活页夹里面。1964年,他用出书的形式发表了他的研究成果。
在这种新型的网络里面,数据的传输并不是由中心交换机控制,而是由网络节点上的设备控制的。在1969年那时候,这些网络设备被称为IMP(internet message processors),也就是“互联网消息处理器”。每台机器都是Honeywell DDP-516计算机的加固改良版,里面包含有用来进行网络控制的专用硬件。
1969年劳动节那天,第一台IMP被交到了Kleinrock手上 。今天,它就像一块巨石一样屹立在Boelter Hall 3420室的一角,已经被复原为50年前第一次处理互联网 传输时的样子。
1969年秋天时, Charley Kline还是一位打算修完工程学学位的研究生。Kleinrock拿到政府资助,打算开发该网络后,他是转入到ARPANET项目的其中一组研究生之一。8月,Kline和项目组的其他成员正在一起埋头苦干,准备UCLA的Sigma 7大型机上用来连接IMP的软件。由于计算机和IMP之间没有标准接口,Bob Metcalfe和David Boggs直到1973年才发明出以太网,所以项目组从头开始做了一根15英尺长的连接电缆。现在,他们需要另一台用来进行通信的计算机。
Charley Kline
SRI是第二家拿到IMP的研究机构,时间是10月初。对于Bill Duvall来说,为了实现UCLA到SRI的SDS 940的第一次传输,他需要进行一段紧张的准备。他告诉我说,UCLA和SRI团队已经承诺要在10月31日之前建立起第一次成功的传输。
他回忆说:“我基本上参与了软件的设计和实现,当时的强度非常的高,每天要干15个小时。”
随着万圣节的临近,UCLA和SRI都加快了步伐。他们已经做好了在截止日期到来之前动手的准备。
Kleinrock说:“现在我们已经有了两个节点,而且我们从AT&T租来的这条线路的速度简直快如闪电,达到了50000bps。所以现在我们已经准备好,可以登录了。”
Duvall补充说:“ 我们计划在10月29日开始第一次测试。当时还是pre-alpha版。而且,我们当时还想,好吧,这样我们就有三天的测试时间来把它弄好了。”
29日那天晚上,Kline工作到很晚。SRI的Duvall也是这样。两人打算在晚上试着发送第一条ARPANET消息,这样就算其中一台计算机崩溃,也不会有任何人的工作受到影响。在3420室,Kline独自一人坐在他的终端前,那是一台跟那台计算机相连的ITT电传打字机。
用Kline和Duvall自己的话来说,这就是当晚发生的事情——以及计算机历史上最具历史意义的崩溃之一:
Kline:我登录进Sigma 7操作系统,然后运行了自己编写的程序,这让我可以告诉该程序试着把数据包发送到SRI。与此同时,SRI的Bill Duvall也执行了他的程序来接受呼入的连接。我们双方还互相通过电话联络。
一开始我们遇到了一些问题。我在代码转换方面遇到了一点问题,因为我们的系统用的是EBCDIC(扩展的二进制编码的十进制交换码),这是IBM的标准,也是Sigma 7使用的标准。但是SRI的计算机用的是ASCII(美国信息交换标准代码),后来成为了ARPANET的标准,并且几乎也是全世界的标准。
因此,在搞定了这其中的一些小问题之后,我们开始试着登录……就是通过输入“login”来完成这一步。[SRI]那个系统已经进行了智能化的编程,所以它可以识别有效的命令。如果你进入高级模式的话,输入“L”、“O”和“G”时,它就会意识到你想必是想敲“LOGIN”,然后就会为你补全“IN” 。所以我敲了个L。
我在电话里(跟SRI的Duvall通话)说:“你收到L了吗?” 他说,是的。我说我看到“L”返回并在我的终端上打印出来了。然后我又敲了个“O”,然后他说:“O收到。”接着我输入了G,然后他说:“等一下,我的系统崩溃了。”
Bill Duvall
Duvall:几个字母之后,就出现了缓冲区溢出问题。这个问题很容易检测和修复,并且基本上马上就能恢复正常工作。我之所以提这个的唯一原因是,我认为这整件事的重点不在这个,而在于这证明了ARPANET能行得通。
Kline:他那边有一点小bug,大概花了20分钟左右就弄好了,然后再次重试。他必须对某些软件进行修改。而我必须仔细检查部分软件。他给我回了电话,我们再次尝试。然后,我们重新开始,我输入了L以及O和G,但是这次我收到了“IN”。
第一次连接在美东时间晚上10:30进行。然后,Kline就能够用Duvall为他创建的SRI计算机帐户登录,并且用距离UCLA 350英里之遥的计算机的系统资源来跑程序了。麻雀虽小,但可以说ARPANET的任务已经完成。
Kline告诉我:“搞到那时候已经很晚了,所以我就回家了。”
3420室的一块牌匾解释了在那里发生的事情。
这支团队知道项目已经成功了,但是并没有仔细考虑过这一成就的重要程度,Kleinrock 说:“这不过是工程师的工作罢了。”Duvall则认为,10月29日的连接成功只是解决更大的计算机联网挑战所迈出的一步。Kleinrock 的工作重点是如何对网络内的数据包进行路由,而SRI的研究人员关心的是数据包如何构建,以及内部的数据如何组织。
Duvall 说:“我们今天看到的承载文档链接之类东西的互联网,其范式基本上就是那时候开发出来的。我们一直以来的设想是,我们会拥有一系列相互连接的工作站,以及相互连接在一起的人。当时我们称之为知识中心,因为我们是以学术为导向的。”
在Kline和Duvall首次通信成功之后的几周内,ARPA网络就扩展到了UC圣塔芭芭拉分校和犹他大学的计算机。从那时候开始,到1970、80年代的大部分时间内,ARPANET都在一直扩张,连接了越来越多的政府和学术界的计算机。然后,ARPANET所形成的概念就应用到了我们今天所熟知的Internet身上。
1969年时,加州大学洛杉矶分校(UCLA)的一篇新闻稿曾这样吹捧新的ARPANET。文章援引Kleinrock的话说:“目前为止,计算机网络还处于萌芽阶段。但是,随着它们的慢慢长大,并且变得越来越复杂,我们可能会看到‘计算机基础设施’的普及,就像现在的电力和电话设施一样,它也将会服务于千家万户和大小企业。”
现在,数据网络的范围已经远远超出了家庭和办公,甚至覆盖到最小的物联网设备,所以这一概念听起来已经有点古怪。但是, Kleinrock关于“计算机基础设施” 的声明显然很有先见之明,尤其是考虑到现代的、商业化的互联网直到几十年后才出现。尽管计算资源正变得像电力一样普及并且很容易就被视为理所当然,但这个想法在2019年的时候依然历久弥新。
也许像这样的周年纪念日就是一个很好的机会,这不仅可以让我们记住人类是如何进入这个高度互联的时代的,而且还可以让我们像Kleinrock一样,展望未来,思考网络下一步的发展方向。
译者:boxi。