泰勒知道自己的技术背景不足以指导阿帕网的具体设计,不过他已经物色到了一个人选,这就是麻省理工学院林肯实验室的计算机科学家拉里·罗伯斯(Larry Roberts)。比立克里德小22岁的罗伯斯在林肯实验室参与了麦克项目的分时系统研究。他和萨瑟兰是同学,两人在林肯实验室同一年博士答辩和毕业。罗伯斯是立克里德的星际网络社团中的一员,在阅读了立克里德关于互联网的设想后,他认定了计算机联网是未来的发展方向,并将其作为自己的研究领域。为了试验联网的可行性,1965年他和同事成功地完成了一个将美国东西两岸两台计算机连接在一起进行每秒2400比特传输速度的通信传输实验。泰勒刚好负责给该项目提供资金,所以他知道罗伯斯是个非常合适的人选。
不过泰勒一开始没能请动罗伯斯离开林肯实验室来华盛顿担任阿帕网的项目经理。因为罗伯斯对在林肯实验室的理论研究非常投入,不希望转向具体项目操作。在几次说服无果的情况下,泰勒不得不动用赫茨菲尔德来施加压力。因为林肯实验室51%的研究经费来自计划署,所以这一施压果然奏效,不久罗伯斯便走马上任。
罗伯斯上任后需要解决的阿帕网设计的第一个问题就是采用什么样的数据传输协议。当时的电信领域使用的都是预先分配好传输信道的电路交换技术(Circuit Switching),也就是在通信双方之间建立起一条临时的信道,通信完毕后信道取消。电路交换技术固然有传输稳定的好处,但是对信道资源浪费严重,比如电话所使用的信道在双方通话过程中是一直占用的,但通话时双方的语音对话是间歇性的,所以从整体传输效率来看,很多时间里传输信道都处于空置状态。
在传输效率方面有优势的是分组交换(Packet Switching)技术。一个典型的使用分组交换技术的计算机将要传输的数据分割成统一标准大小的数据包(Packet),然后给每个数据包加上发送地址和目的地地址等传送信息后发送出去。在传输过程中这些数据包被装载到一个个帧(Frame)上,然后这些帧被传送到最近的路由器上。路由器查看每一个数据包的目的地址,然后根据自己保存的路由表来将数据包传递给下一个离目的地最近的路由器,直至到达目的地计算机为止。在此期间目的地计算机不断接受传递过来的数据包,给它们排序,将没有收到的数据包信息反馈给发送方的计算机,直到收到完整的信息为止。因为分组交换技术是将信息分割打包发送,所以只有在发送时才占用信道,这样一来在信道使用效率上是电路交换技术的3~100倍。
采用动态分配模式的分组交换并不是新发明,当时世界各国的邮件和电报在递送时使用的都是与分组交换类似的动态分配技术。不过如果将分组交换技术应用在计算机网络通信上,对计算机和传输信道的速度要求比较高,如果收发信息双方的计算机和路由器的计算速度不快的话,就无法及时动态地发送和传递信息,也就无法利用分组交换带来的高效率。前面我们提到的20世纪50年代的计算机技术还比较原始,难以达到进行有效的分组交换的程度。但是到了60年代,随着晶体管技术的成熟和计算机运算速度的提高,已经可以用计算机来实现有效的分组交换技术数据传输,这就是最早系统地提出使用分组交换来进行数据和语音信息传递的两位专家—美国人保罗·巴兰(Paul Baran)和英国人唐纳德·戴维斯(Donald Davies)都来自计算机领域,而不是通信领域的原因。
1962年在兰德公司工作的巴兰负责研究如果苏联对美国进行核打击的话,一旦后者的部分电话通信网络遭受损坏,剩余的系统如何通过自动调整而继续传输语音的通信问题。最初他认为只要使一个通信节点与其他多个节点连接,从而使任何两点之间的通信可以通过不同路径实现,通信网络就可以在受损后进行自我调整。可是当他在整理自己的这一思想并撰写著作时发现,其实最关键的技术还不是实现这种冗余性网络,而是将信息分割开来发散到网络中,并通过不同的通道到达目的地。这样,即便部分信息由于一部分网络通道中断丢失,其他信息还有可能到达,而丢失的信息可以通过现存的通道重发,这样整体传输效率就能得到提高,同时信息的保密性也得到加强。他给这一技术所支持的网络起了一个“分布式自适应消息块网络”的拗口名字。
巴兰设想的分组交换数字通信网络系统由遍布美国的无线电基站基础设施组成。当用户的讲话被分割成20毫秒语音长度的数据块后,每一个数据块都可以通过无线电接力传播直到被对方接收到为止。一旦部分基站受到毁灭性打击,其他基站仍然可以维持语音的传输。他把这一想法写成了颇为详尽的名为《关于分布式通信》(On Distributed Communications)的11卷书。兰德公司对巴兰的这一新技术非常重视,很快申报给美国空军,希望立项实施。但是当时美国政府正在将研究项目的审批权归拢到一个统一的机构,兰德公司和巴兰本人都对这一新机构实施这一技术的有效性表示怀疑,所以没有继续申请。不过巴兰的这一创新思想就此传播开并传到大洋彼岸的英国。
1964—1965年前后,在英国国家物理实验室工作的戴维斯在研究分时系统过程中发现,很多家庭用户需要通过长途电话线拨号来使用远程的分时计算机。当用户与远程计算机连接时,使用的是电路交换技术,所以整个信道都将被占据,信道的资源被完全浪费掉,用户还需要支付昂贵的长途电话费,如果允许信道共享的话,就可以将整个信道充分利用起来。于是他尝试将不同用户的传输信息分割成标准大小的信息片,然后通过现有的信道网络传输,每个用户不再单独占用信道。他给这种传输方式命名为“分组交换”。与巴兰不同的时,戴维斯在设计分组交换技术时,设想的是如何将其尽快商业化普及给大众,从而可以借此让英国的计算机和网络技术超越美国。但是英国政府尤其是垄断电信业务的国家邮政总局对戴维斯的提议并不感兴趣,也没有提供资助。戴维斯只好在国家物理实验室内部通过有限的资金来尝试这一新技术,结果在阿帕网研制成功之前成功地实现了计算机和各种外围设备的网络互连,形成了相当于后来局域网的创新成就。如果英国政府能够在当时采用戴维斯的创新,或许互联网的历史将从英国开始,而不是美国。不过尽管戴维斯的发明在国家物理实验室取得了成功,英国邮政总局还是在阿帕网成功运行后采用了罗伯斯离开计划署创立的Telenet公司所提供的网络技术[18]。
罗伯斯在选择阿帕网的传输技术时并没有沿袭计划署传统的招标方式,而是先后与众多不同领域的专家进行了交流。他把跟信息技术处理办公室有计算机技术开发项目并且对阿帕网的想法感兴趣的一些项目负责人召集在一起,以会谈的形式共同讨论网络的设计问题。斯坦福研究所的埃尔默·夏皮罗(Elmer Shapiro)负责会议的召集工作。兰德公司的巴兰被罗伯斯招聘到计划署来担任阿帕网设计的咨询。小组的成员在每次会议中将他们关注的阿帕网的设计要点提出来,比如罗伯斯在麻省理工学院的同窗,加州大学洛杉矶分校的教授莱昂纳多·克兰洛克(Leonard Kleinrock)坚持在每个路由中加入测量网络性能的软件功能,这样可以随时监测网络性能。后来参加小组的这些成员来自的大学或者是研究所成为阿帕网最初的节点,它们分别是加大圣塔芭芭拉分校、斯坦福研究所、犹他大学和加州大学洛杉矶分校。
经过两年多的酝酿和设计,阿帕网双层结构分组交换的初始设计方案出炉。第一层结构是入网的大型计算机之间的双向数据通信的逻辑连接。而这一逻辑连接是通过第二层的实际物理连接实现的。阿帕网为每一台大型机设计配置了一台专门负责联网用的小型计算机IMP(Interface Message Processors)。这些小型机通过从美国电话电报公司租用的传输速度为50千比特每秒的通信线路与其他小型机相连,然后使用调制解调器将来自主机的信息处理为数据包,传输给接收方的小型机;再由接收方将数据包合并转为完整的信息,传递给与其相连的目的地主机[2]。
1968年6月,罗伯斯把设计好的阿帕网方案提交给赫茨菲尔德后收到了220万美元的项目经费。因为阿帕网是一项全新的项目,没有一家公司对此熟悉,所以在研制IMP这一项目上,罗伯斯没有像信息处理技术办公室以前授予项目合同那样,通过内部介绍选定合作方,而是通过公开招标的方式寻求合作方。罗伯斯向140多个项目商发出了研制阿帕网所需的IMP的邀请。出人意料的是尽管IBM等大计算机公司都希望承包这一项目,最后实施合同却给了波士顿的BBN公司。
BBN公司是麻省理工学院的两个教授和他们的学生三人在1948年为了给联合国大厦设计声学系统而创建的一个声学咨询公司,它以专门招收麻省理工学院的辍学生而出名。该公司在完成了联合国大厦项目后,开始专门负责给各种建筑工程,尤其是大礼堂、音乐厅等建筑提供声学设计咨询。后来因为立克里德的应邀加入和他的坚持,公司购买了一台计算机。有了计算机后,BBN的服务扩展到音频分析等服务,并且在计算机应用方面发展得越来越有特色,比如用计算机模拟公路和机场的噪声以及设计降噪系统等。随着公司规模的扩大和在计算机应用前沿方面的发展,BBN甚至有了“波士顿的第三所大学”(其他两所为哈佛大学和麻省理工学院)之称。因为与麻省理工学院有着很深的渊源,而且起初参与阿帕网设计的不少研究人员在BBN工作过,所以罗伯斯把研制IMP的合同给了BBN公司。
除了BBN公司负责研发IMP的软硬件外,加州大学洛杉矶分校的克兰洛克也获得了计划署的阿帕网合同,负责筹建网络测量中心来进行阿帕网各种数据传输实验和收集运行数据进行测度与分析。1961年,克兰洛克在麻省理工学院读博士时通过计算机里面的排队理论研究了信息交换技术对信息传递的影响[19],1964年又根据自己的研究成果出版了后来成为分组交换理论经典的著作[20]。1963年他从麻省理工毕业后来到了加州大学洛杉矶分校任教,继续从事信息交换研究,所以由他来负责分析分组交换的性能再合适不过。
克兰洛克获得了合同后,立刻引起了加州大学洛杉矶分校计算机系里几个研究生斯蒂芬·克罗克(Steve Crocker)、文特·瑟夫(Vint Cerf)和约翰·普斯特尔(Jon Postel)的注意。克罗克和瑟夫是高中同学。克罗克从加州大学洛杉矶分校毕业后,先是去麻省理工学院攻读人工智能研究生学位,后来因为对网络的兴趣又回到加州大学洛杉矶分校。瑟夫从斯坦福大学毕业后在IBM工作了几年,从事大型机操作系统的编程工作,后来他发现自己的基础需要提高,于是在克罗克的介绍下,来到加州大学洛杉矶分校读研究生。在读研究生期间,瑟夫和克罗克曾经在洛杉矶的一家公司实习,并试图通过这家公司从罗伯斯那里申请阿帕网的项目,但是没有成功。克兰洛克的合同显然让他们又有了加入阿帕网项目的机会。于是克罗克和瑟夫他们几个研究生开始在克兰洛克的网络实验室以助研的身份参与进了阿帕网的许多建设工作,尤其是主机之间的网络传输协议的制订工作[3],形成了后来制订各种网络传输协议和标准的网络工作小组(Network Working Group)。(www.daowen.com)
计划署在成立之初就有一个很好的传统,这就是每年都将分布在全国各地的各个项目的主要负责人召集在一起,进行小聚。每次小聚,大家都要简单介绍一下自己负责项目的进展和新的发现,通过这种非正式的交流,项目负责人之间不但可以相互学习,而且能够产生彼此合作的默契。1968年春天的一次聚会上有人提出也定期召集计划署项目所在院校的研究生进行类似的经验交流。这一建议获得了大家的支持,于是1968年7月第一次计划署的研究生聚会在伊利诺伊大学召开。克罗克和瑟夫都参加了这次聚会,认识了不少志同道合的朋友,并且和其他参与阿帕网项目的研究生就主机之间的资源共享方式等各种问题进行了讨论,大家畅谈了对阿帕网的未来设想。回来后他们便开始为阿帕网设想各种发展机制和传输模式,并且成立了一个非正式的讨论小组,也就是网络工作小组。网络工作小组形成后,克罗克开始起草主机与IMP以及主机与主机之间的传输标准等技术细节,并将起草的文档发给所有阿帕网的项目人员,让大家提意见。因为克罗克他们不知道其他人是否也在研究这些东西,所以他将起草的传输标准文档称为“征求意见书”(Request For Comment,RFC),通过这一委婉的名字来表示这只是一些非正式的建议。
克罗克在1969年4月编写了第一份征求意见书来描述主机在网络中的功能,然后分发给了当时阿帕网的研究人员,这种形式很快被接纳并成为传统。每一份意见书都有一个编号,普斯特尔负责这些意见书的整理和保存工作。罗伯斯正巧没有找到合适的公司来开发这些网络协议,于是他干脆让克罗克以这种方式来正式负责网络协议的起草,然后通过整个网络用户群征求意见,最后由克罗克他们来实施。后来阿帕网和互联网协议的创建都是使用这一沟通方式来生成的。罗伯斯将网络工作小组的工作内容集中成两点。这就是开发主机需要的协议及协议软件与分享网络使用经验和实验结果。克罗克他们自然成为最活跃的成员。就这样克罗克负责网络协议的编写,瑟夫负责程序编写,而普斯特尔则负责文档的整理和保存等工作[21],这三个来自加州大学洛杉矶分校阿帕网团队的研究生成为阿帕网发展的骨干力量。
BBN公司获得了IMP项目后,将IMP项目的设计任务交给了以稳健著称的年轻计算机专家弗兰克·赫特(Frank Heart)。赫特的IMP研发小组的4个人都曾经在林肯实验室工作过,所以对实时系统的研发有丰富的经验。BBN管理层还将精通电话线路传输错误校验理论的麻省理工学院计算机系教授罗伯特·卡恩(Robert Kahn)安排到该小组来帮助研究如何控制网络传输质量。卡恩当时在BBN做访问研究,他在BBN获得合同之前就与罗伯斯接触过,参与了阿帕网的传输协议设计工作。
在硬件设计方面,赫特小组选择了BBN在波士顿的邻居——霍尼韦尔公司生产的DDP-516计算机作为阿帕网的IMP路由计算机。DDP-516有24千比特的内存。改装后的DDP-516最多能与本地4台大型机通过并行口连接,并能够跟多达6台的远程IMP进行通信,也就是说每台IMP可以最多有6个相邻的节点。尽管一开始在具体实施过程中遇到了硬件上的困难,但赫特小组的成员通过夜以继日的摸索和调试如期完成了实验测试。1969年9月几个小组成员将测试好的IMP空运到了加州大学洛杉矶分校,安装在了克拉洛克和网络测量中心内,并与BBN的计算机成功地进行了传输测试,使得加州大学洛杉矶分校成为阿帕网的第一个节点。1969年10月1日第二台IMP被运到斯坦福研究所,在这里有计划署资助的道格拉斯·恩格尔巴特(Douglas Engelbart)的智力放大(Augmentation of Human Intellect)项目,于是斯坦福研究所成为第二个节点,并实现了加州大学洛杉矶分校和斯坦福研究所的网络互联。1969年10月29号包含4个节点的阿帕网开始试运行。这4个节点分别是加州大学洛杉矶分校、斯坦福研究所、加州大学圣塔巴巴拉分校和犹他大学[4]。11月21号,加州大学洛杉矶分校和斯坦福研究所之间建立起了永久性连接。12月5号所有4个节点之间都建立起了永久性连接。
阿帕网的最初4个节点(见图2-1)成功连接之后,罗伯斯开始计划将阿帕网扩展成15个节点的大型网络,将信息处理技术办公室的所有计算机项目单位都连接起来。因为网络结构开始变得复杂,又要保证传输速度和质量,罗伯斯聘请了网络分析公司(Network Analysis Corporation,NAC)来设计新的阿帕网的拓扑结构。网络分析公司的创立人是霍华德·弗兰克(Howard Frank),他是克兰洛克在加州大学伯克利分校的同事,后者将其介绍给罗伯斯。于是网络分析公司和加州大学洛杉矶分校克兰洛克的团队开始合作负责网络架构和测度的研究。为了让所有阿帕网用户有一个可以查阅阿帕网各种信息和入网的科研人员目录的地方,罗伯斯给了斯坦福研究所(SRI)负责该服务的合同。前面这些分工再加上克罗克他们的网络工作小组的努力使得阿帕网开始迅速有机地发展起来。
图2-1 阿帕网最早的4个节点
1969年阿帕网运行之后新的节点陆续增加。麻省理工学院、哈佛大学、BBN公司和系统开发公司(前文提到的为赛奇项目设立的软件公司)在1970年加入阿帕网。斯坦福研究所、林肯实验室、卡内基梅隆大学、伊利诺伊大学、美国航空航天局、兰德公司等在1971年也陆续加入。不过阿帕网并没有像泰勒和罗伯斯他们预期的那样,成为计划署的研究项目人员共享计算机资源的新工具。事实上,通过网络来共享计算机资源并不是一件容易的事情,阿帕网创立之初在协议制订方面并不完善,一开始只有主机与IMP之间的通信协议,而IMP提供的是网络和网络层面以下的(物理层和数据链层)连接服务,还没有完整的协议让主机与主机之间的应用程序可以进行对话。这一状态一直延续到1970年12月,克罗克负责的网络工作小组终于完成了主机之间的通信协议“网络控制程序”(Network Control Program,NCP),使得各种应用层的协议以及相应的网络应用程序可以在此之上开发。最先开发出来的是文件传输(FTP)和远程登录(Telnet)两种协议及服务。文件传输协议使得阿帕网上的一台计算机可以方便地下载另一台计算机上的文件,而远程登录协议可以使一台计算机像一台终端一样,通过阿帕网登录到另一台计算机上,来使用远程计算机提供的各种服务。
尽管有了上述服务,阿帕网上真正大量使用远程资源进行项目的情形还是很少。这里面有技术因素,也有管理模式的问题。从管理模式来看,因为每个项目的计算资源都隶属于一个研究机构,所以如果不是该研究机构的研究人员需要通过网络使用这一资源,不但需要申请许可,而且需要支付使用费用,所以对其他项目人员来说很麻烦。从技术角度来看,当初的资源共享是针对大型机而言的。因为大型机造价昂贵,所以如果能够让不同的项目通过网络共享一台大型机,将会节省很多成本。但是从20世纪70年代开始,随着集成电路技术的成熟,计算机的购买成本持续下降。很多计算能力堪比大型机的小型机甚至工作站开始出现,很多研究机构陆续配备了这类计算机,这越发使得通过阿帕网远程使用计算资源变得没有必要。所以通过阿帕网来实现网络资源共享的想法已经过时,我们要等到40年后比个人计算机的运算能力强大成千上万倍的云计算的出现,才使得这种模式重新变得有吸引力。尽管如此,阿帕网此时已经出现了一个新的应用,而这一应用不但使阿帕网吸引了越来越多的用户,而且为其最终扩展成互联网提供了最基本的动力,这就是电子邮件。
在20世纪60年代末的大型机时代,每个大型机都通过分时系统被几十个或上百个用户使用。每个用户在机器上都有一个个人文件可以储存个人消息。所以一个使用者可以给在同一计算机的另一个使用者发送消息,也可以接收消息,这些消息被添加到个人文件中,这一应用可以看作电子邮件的雏形。但是这些消息只能在同一台计算机的内部相互传递。阿帕网的出现使得消息跨计算机传递成为可能。因为有着地利的关系,最初的电子邮件是BBN公司的雷·汤姆林森(Ray Tomlinson)发明的。1971年秋,汤姆林森负责为PDP-10计算机编写具有分页和虚拟内存功能的操作系统程序TENEX。在这之前他曾经为一个网络系统开发过文件传输程序。当他在改进这个分时系统的个人消息交换程序时突然想到如果将他以前开发的网络文件传输程序稍加改进,就可以并入到现在的个人消息交换程序里,这样就可以让两个在不同主机上的用户互相交换消息。当然这里面还有最后一点小的障碍,就是如何让计算机分辨消息是来自不同的主机。他的解决方案是在用户名后面加上主机的名字。然后他选择了@符号来分开这两部分信息。根据他后来的回忆,之所以选定这个符号是因为这个符号在英文里有“在某地”的意思,这样就可以提醒使用者,这个消息是发往或来自另一台主机,不是本地。有了这个想法之后,他立即动手实践,正好他手头上有两台PDP-10计算机。虽然这两台机器肩并肩地摆在同一房间,它们却是通过阿帕网互相连接,于是第一个电子邮件(或者说跨主机的个人消息传递)产生了。汤姆林森的电子邮件程序的成功应用使在阿帕网上使用TENEX操作系统的计算机实现了电子邮件的交换。
接下来1972年网络工作小组在编写文件传输协议以取代远程登录协议的文件传输功能时,有人提议将电子邮件功能添加到文件传输协议(FTP)中,这样可以让运行文件传输服务的计算机提供电子邮件的交换功能。这一提议在1973年的网络工作小组会议中被通过。因为网络传输协议是实施在独立于操作系统的应用程序中,所以阿帕网上的所有计算机在实施了新协议后都实现了利用电子邮件进行通信。包括罗伯斯在内的很多阿帕网的用户为电子邮件编写了邮件阅读程序。1975年在BBN工作的约翰·维托(John Vittal)编写的第一个包含邮件整理、回复和抄送功能的程序MSG,成为当时最流行的电子邮件应用程序。电子邮件成为阿帕网的科研工作者们进行合作和交流的主要工具,网络管理员用电子邮件发送各种信息给用户。这一切验证了当初立克里德提出的计算机的最大作用是帮助人们相互沟通的预见。
为了给还没有加入阿帕网仅通过终端连接到阿帕网的用户提供电子邮件服务,罗伯斯通过计划署出资在南加州大学和BBN公司分别设立了一些电子邮件服务器,供这类用户使用。为了推广电子邮件的使用,罗伯斯要求所有信息处理办公室计算机项目的负责人都通过电子邮件与他联系。而罗伯斯本人则通过电子邮件与计划署署长斯蒂芬·吕卡西克(Stephen Lukasik)联系商讨信息处理办公室的预算问题。不久计划署其他办公室的主任发现信息处理办公室的预算要求似乎总是很快得到批准,于是他们也开始通过电子邮件与吕卡西克联系。就这样电子邮件的使用很快从阿帕网扩散到了美国军方。电子邮件的普及无疑加快了管理层的信息收集和决策速度,同时也提高了效率,节省了不必要的等待时间。电子邮件的使用量在罗伯斯等人的推广下很快超过了其他应用程序的使用量的总和。后来的阿帕网使用报告中指出电子邮件是最彻底和最成功的阿帕网应用。
从阿帕网开始运行到协议不断完善后的1971年,阿帕网已经进入到了一个技术相对成熟的阶段。联网的主机从最初的4个发展到了1971年4月份的23个,并且不断飞速增加。但真正使用阿帕网来进行各种计算资源分享的网络行动还不多。罗伯斯认为这是因为绝大多数人还没有意识到分组交换技术的成熟和阿帕网的潜力,于是他建议利用与通信相关的大型国际会议召开的机会,设立一个展台,来展示阿帕网的各种用途。卡恩和克罗克先后推荐了一些相关的会议,最后罗伯斯决定将展台设在1972年10月在华盛顿特区举行的国际计算机通信会议(ICCC)上。在与会议组织人协商后,卡恩和克罗克他们在会议场地搭建了一个阿帕网的临时节点,然后通过这个节点向会众展示阿帕网的各种用途。最令人瞩目的是大会期间阿帕网的演示人员通过会议场地的终端登录到BBN服务器上获得一个源程序,然后传送到加州大学洛杉矶分校的服务器上进行编译和运行,再将运行所得到的结果在会议场地的打印机上打印出来。先后有1000多人参观了他们的各种用途演示。这次会议不但说服了通信和计算机界一部分仍然对以分组交换为技术核心的网络传输技术可行性持怀疑态度的科研人员,而且有力地宣传了阿帕网,电子邮件作为阿帕网的重要应用也从这次会议开始广为传播。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。