三个终端与一个得克萨斯人
1966年,华盛顿特区,五角大楼3E189室。
鲍勃·泰勒(Bob Taylor)的办公室有些拥挤。除了必要的行政办公桌和烟灰缸,房间里占据核心位置的是三台笨重的电传打字机。
这三台机器分别连接着美国当时顶尖的三台大型主机:第一台连接麻省理工学院的IBM 7094,那里运行着CTSS(兼容分时系统);第二台连接加州大学伯克利分校的SDS 940,运行着Genie项目;第三台连接加州圣莫尼卡的系统开发公司(SDC)的IBM Q-32。
泰勒是美国国防部高级研究计划局(ARPA)信息处理技术办公室(IPTO)的主任。他掌管着数百万美元的预算,负责资助美国前沿的计算机研究。但他每天的工作流程并不像个高科技管理者。
当他需要查看麻省理工的项目进度,他必须坐到第一台终端前,输入一套繁琐的登录指令。查完后,他得站起来,挪动椅子,坐到第二台终端前,输入另一套完全不同的指令去连接伯克利。如果还需要对比圣莫尼卡的数据,他得再次重复这个起立、挪动、登录的过程。
三台终端互不相通。它们讲着不同的语言,使用不同的协议,除了放在同一个房间里,它们之间没有任何物理或逻辑上的联系。
泰勒看着这三台机器。作为一名心理声学出身的管理者,他并不写代码,但他对效率有着本能的敏感。ARPA资助的这些大学和研究机构都在重复造轮子。如果麻省理工的研究员想用伯克利的图形处理程序,他们无法直接调用,只能在自己的机器上重新写一遍代码。
这是一种昂贵的浪费。
泰勒走出了办公室。他要去见他的老板,ARPA局长查尔斯·赫兹菲尔德(Charles Herzfeld)。泰勒的想法很简单:与其给每个研究机构都买更多的大型机,不如把现有的机器连起来。他需要一笔钱来建造一种“网络”。
这次谈话持续了20分钟。赫兹菲尔德没有要求泰勒提交书面报告,也没有召集专家委员会论证。他直接从弹道导弹防御项目的预算中划拨了100万美元给泰勒。
互联网的种子资金就这样到账了。这笔钱原本是用来研究如何拦截苏联核导弹的,现在它被用来解决泰勒不想频繁换椅子的问题。
恐惧的空白支票
ARPA本身就是一个恐慌的产物。
1957年10月4日,苏联成功发射了人类第一颗人造卫星“斯普特尼克1号”(Sputnik 1)。那个在太空中发出“滴滴”声的金属球击碎了美国本土的安全感。既然苏联能把卫星送上天,他们就能把核弹头投送到美国任何一个城市。

德怀特·艾森豪威尔总统的反应是成立ARPA。这个机构拥有五角大楼内罕见的特权:它不隶属于任何军种,不负责具体的作战任务,只负责花钱。它的任务只有一个——防止美国再次遭遇技术突袭。
ARPA没有实验室,没有科学家。它只有管理者和支票簿。它寻找那些太大胆、太怪异、太超前以至于正规科研机构不敢接手的项目,然后把钱砸进去。
1962年,J.C.R. 利克莱德(J.C.R. Licklider)成为IPTO的首任主任。这位心理学家在离开ARPA前,给同事们留下了一份备忘录,他在文中把这些分散的计算机群称为“星际计算机网络”。
利克莱德构想了一个未来:人类可以通过网络获取数据和程序,就像现在获取电力一样方便。在当时,这是一个荒诞的念头。计算机还是像房子一样大的稀缺资源,连同一栋楼里的机器都无法对话,更别说跨越星际。
利克莱德离职了,但他把这个荒诞的念头植入了继任者鲍勃·泰勒的脑中。1966年,当泰勒拿到那100万美元时,他决定把“星际网络”变成现实。但他缺一个总工程师。
他看中了林肯实验室的拉里·罗伯茨(Larry Roberts)。罗伯茨是当时少有的既懂硬件又懂软件,还懂通信的天才。

罗伯茨拒绝了。他在林肯实验室过得很舒服,正在研究计算机图形学,不想去华盛顿当官僚,更不想去处理“让两台电脑说话”这种枯燥的苦差事。
泰勒没有放弃。他直接找到了罗伯茨的老板——林肯实验室的主任。泰勒提醒这位主任:林肯实验室51%的经费来自ARPA。
几周后,罗伯茨坐在了华盛顿的办公室里。
被扔进垃圾桶的图纸
当罗伯茨开始设计网络架构时,他在一堆旧文件中发现了一个名字:保罗·巴兰(Paul Baran)。
几年前,供职于兰德公司(RAND)的巴兰曾思考过一个更严峻的问题:如果冷战变热,美国本土遭受核打击,军方的指挥通信系统还能存活吗?
当时的通信网络主要依赖AT&T的电话系统。这是一个中心化的网络,所有的信号都要经过几个关键的交换枢纽。这意味着苏联只要用几枚核弹摧毁这些枢纽,美国的总统就无法向发射井下达反击指令。
巴兰提出了一个激进的方案:分布式网络。
在这个网络中,没有中心枢纽。所有节点地位平等,彼此互联,构成一个网状结构。为了在这样的网络中传输数据,巴兰设计了“消息块”(Message Blocks)技术。他建议把完整的信息切碎,分成一个个小的数据包。每个数据包都标有目的地,它们在网络中像老鼠一样乱窜,自动寻找未被摧毁的路径,最后在终点重新组装。
这种设计意味着,即使网络中50%的节点被核弹抹平,剩余的节点依然能保持通信。
1960年代初,巴兰向AT&T的高级工程师们展示了这个方案。AT&T的人嘲笑了他。他们告诉巴兰,他根本不懂电信。把语音切碎再还原在物理上是不可能的,模拟信号不支持这种操作。
巴兰的相关研究成果以兰德公司技术报告的形式被归档。
直到1967年,罗伯茨在寻找连接ARPA计算机的方法时,才重新发现了巴兰的理论。与此同时,英国国家物理实验室的唐纳德·戴维斯(Donald Davies)也独立提出了类似的概念,并将其命名为“分组交换”(Packet Switching)。
罗伯茨意识到,这正是他需要的技术。ARPA并不担心核打击(至少在这个项目上不担心),但分组交换技术能解决异构计算机之间的通信效率问题。
于是,一项旨在应对核末日的军事技术,成为了连接大学实验室的基础设施。
波士顿的听诊器
1968年,罗伯茨发出招标书(RFQ),寻找能制造这种网络的承包商。
IBM和CDC(控制数据公司)看了看标书,认为罗伯茨要求的数据传输速度和误码率在技术上不可行,甚至没派人去投标。
最终中标的是一家位于波士顿的声学咨询公司——BBN(Bolt, Beranek and Newman)。这家公司之前的业务亮点是为联合国大会堂设计音响系统,以及研究如何降低潜艇噪音。
BBN为此组建了一支由弗兰克·哈特(Frank Heart)领导的团队。这群人自称“IMP Guys”。
IMP(接口消息处理机)是网络的核心设备。根据圣路易斯华盛顿大学的韦斯利·克拉克(Wesley Clark)的建议,ARPA决定不让那些昂贵的大型主机直接负责路由工作,而是制造一种专门的小型计算机来处理数据交通。这便是今天路由器的雏形。
BBN选择了霍尼韦尔516(Honeywell 516)小型机作为硬件基础。这原本是一款军用电脑,外壳坚硬,号称能抵御战场上的物理冲击。
但在软件上,BBN面临严苛限制。霍尼韦尔516只有12K的内存。哈特的团队必须在这极小的空间里塞进完整的通信协议、纠错代码和路由算法。他们用汇编语言编写每一行代码,为了节省几个字节的空间争论不休。
交付日期定在1969年9月初。直到8月,代码还在崩溃。BBN的实验室里充满了香烟烟雾和因为睡眠不足而暴躁的工程师。
"LO"
1969年8月30日,第一台IMP被空运到加州大学洛杉矶分校。
伦纳德·克兰罗克(Len Kleinrock)教授和他的研究生们早在那里等候。这台冰箱大小的机器被安置在Boelter Hall 3420房间。几天后,它成功连接了加州大学洛杉矶分校的一台Sigma 7计算机。
第二台IMP在一个月后运抵斯坦福研究所,那里有一台SDS 940计算机。
1969年10月29日晚10点30分。历史性的时刻到来了。
这不是一个剪彩仪式。现场没有记者,没有香槟。只有克兰罗克及学生查理·克莱恩(Charley Kline)在加州大学洛杉矶分校,以及比尔·杜瓦尔(Bill Duvall)在斯坦福。
两人通过电话保持语音联系。
克莱恩坐在终端前,准备远程登录斯坦福的计算机。他需要输入命令“LOGIN”。
克莱恩敲下字母“L”。
他在电话里问:“收到了吗?”
杜瓦尔回答:“收到了。”
克莱恩敲下字母“O”。
“收到了吗?”
“收到了。”
克莱恩敲下字母“G”。
系统崩溃了。
斯坦福研究所的计算机因为内存溢出停止了响应。
人类网络传输的第一条信息,不是“得救之道,就在其中”,也不是“向世界问好”,而是“LO”。
一小时后,故障排除。克莱恩成功输入了完整的LOGIN。两台相隔350英里的计算机握手成功。
到1969年底,ARPANET连接了四个节点:加州大学洛杉矶分校、斯坦福研究所、加州大学圣塔芭芭拉分校和犹他大学。
没人预料到的副作用
网络建成了,但场面一度十分冷清。
罗伯茨原本的设想是资源共享。但各大学的教授们并不买账。他们把计算机视为私有领地,不愿意让外人占用宝贵的算力。直到1971年,网络上的流量依然低得可怜。
为了证明这个网络不是废物,罗伯茨甚至不得不再次动用各种行政手段强迫研究机构接入。
转折点出现在1971年。BBN的工程师雷·汤姆林森(Ray Tomlinson)在业余时间写了一个小程序。他想在不同的计算机用户之间发送消息。为了区分“用户”和“主机”,他低头看了看键盘,选中了那个极少被使用的符号:@。

电子邮件(Email)诞生了。
这一功能并没有出现在ARPA的合同里,也没有经过任何论证。但1973年的一项调查显示,ARPANET上75%的流量是电子邮件。
五角大楼的将军们惊讶地发现,他们斥巨资建造的、原本用于连接超级计算机进行科研和指挥的网络,变成了一个巨大的电子邮局。
科学家们用它讨论技术,但更多的时候,他们用它讨论科幻小说、寻找丢失的钢笔、组织周末的聚会。第一个在网络上大范围流行的邮件列表名为“SF-LOVERS”,专门用来讨论科幻作品。
军方对此感到不安。机密的军事数据流和讨论《星际迷航》剧情的废话跑在同一条线路上。
切断脐带
随着接入节点的增加,原本的通信协议(NCP)开始捉襟见肘。它无法处理大规模的网络互联,也无法处理不可靠的无线连接。
文顿·瑟夫(Vint Cerf)和鲍勃·卡恩(Bob Kahn)提出了新的解决方案:TCP/IP协议。这一协议引入了“网关”(Gateway)的概念,允许不同类型的网络相互连接。它不要求网络绝对可靠,如果数据包丢了,重发就是。这种“尽力而为”的粗糙哲学,反而赋予了网络极强的生命力。
1983年1月1日,ARPA下达了最后通牒:所有ARPANET的主机必须在这一天切换到TCP/IP协议。不切换的,直接切断连接。

那一天被称为“标志日”。虽然有一些混乱,但切换最终完成了。
随着TCP/IP的普及,ARPANET开始分裂。军方决定将军事用途剥离,成立了独立的MILNET。剩下的部分继续供科研机构使用,保留ARPANET的名称。
但这时的ARPANET已经不再是唯一的网络了。CSNET、NSFNET等基于同样协议的网络如雨后春笋般涌现。它们相互连接,构成了一个巨大的“网际网络”(Inter-net)。
1990年,ARPANET正式退役。没有任何隆重的告别仪式。因为它的物理躯体——那些旧的电话线和霍尼韦尔小型机——早已不再重要。它的灵魂——TCP/IP协议和分组交换技术——已经渗透到了地球的每一个角落。
ARPANET开启的世界
今天,Boelter Hall 3420房间只是加州大学洛杉矶分校校园里一个普通的房间。墙上挂着一块不起眼的牌子,记录着这里曾经发生过的事情。

鲍勃·泰勒、拉里·罗伯茨、保罗·巴兰,这些人并没有因为发明互联网而成为亿万富翁。他们大多数人只是继续在技术领域工作,拿着死工资或咨询费。
当初那个为了省去从椅子上站起来的麻烦而诞生的想法,最终消解了物理距离的限制。
ARPANET所开启的数字洪流,彻底、持久地重塑了人类文明的结构。
免责提示:本文基于公开历史资料与技术文献整理,部分细节为叙事化演绎,仅供科普参考。