2019年是互联网前身ARPANET诞生50周年。在ARPANET之后才产生了互联网,改变了整个世界。本文讨论前三十年的网络技术和相关研究思路的演进,以及对今天网络研究工作的思考。
关键词:互联网发展史
2019年是互联网前身“阿帕网”(ARPANET)诞生50周年,在阿帕网之后,才产生了改变了整个世界的互联网。本文将讨论互联网技术的演进,以及对今天网络研究工作的思考。
初始的创新思想:分组交换
1961年,美国麻省理工学院(MIT)的伦纳德·克兰罗克(Leonard Kleinrock)发表了第一篇分组交换(packet-switching)的论文。1964年美国兰德公司的保罗·巴兰(Paul Baran)提出了基于分组交换技术的抗毁网络(message block switching),即使在核攻击之后也能提供对核导弹的发射控制,以确保二次打击能力。1965年英国国家物理实验室(National Physical Laboratory, NPL)的唐纳德·戴维斯(Donald Davies)也提出了分组交换的概念和术语,其目标是振兴英国计算机行业和商业应用[1, 2]。
1962年,苏联的维克多·格卢什克夫(Viktor Glushkov)提出苏联计算机网(OGAS)项目,其目的是为苏联的计划经济建立全国范围的统一数据获取、计算机建模和指令性调度系统。OGAS有六个主要目标:(1)为国民经济优化的规划和管理建立统一理论数学模型;(2)建立统一的经济信息系统;(3)为规划和管理建立标准化和算法化的流程;(4)为解决经济问题建立数学模型;(5)设计并建立统一的国家计算机网络;(6)基于数学方法和计算机技术,建立专门的规划和管理系统。为了达到这些目标,苏联计划必须设计并建立统一的国家计算机网络,包括1个国家计算中心,200个地区计算中心和2万个基层计算中心[3]。
如图1所示,保罗·巴兰的文章列出了三种网络拓扑结构。
保罗·巴兰的目标是建立最具生存性的网络,唐纳德·戴维斯的目标是市场经济条件下的计算机联网,这两种条件隐含着分布式的网络拓扑结构,而传统电话网所使用的电路交换技术并不适用于分布式网络拓扑,从而产生了分组交换技术。但是维克多·格卢什克夫提出的目标是计划经济下的集中控制,因此是中心式网络拓扑,可以使用电话交换的模式。从这一方面可以解释为什么OGAS项目并没有产生分组交换的思想。
1962年,约瑟夫·利克莱德(J.C.R. Licklider)加入美国高级研究计划署(Advanced Research Project Agency, ARPA),并成为其信息处理处(Information Processing Techniques Office, IPTO)的首席执行官,他以网络概念的重要性说服了ARPA的伊凡·苏泽兰(Ivan Sutherland)、鲍勃·泰勒(Bob Taylor)和麻省理工学院研究员劳伦斯·罗伯茨(Lawrence G. Roberts)。1967年,劳伦斯·罗伯茨加入ARPA,发表了“ARPANET”计划书。ARPANET团队设计了网络控制协议(Network Control Protocol, NCP)。1969年,ARPANET的四个节点(加州大学洛杉矶分校、斯坦福研究所(SRI)、加州大学圣巴巴拉分校和犹他大学)运行成功,这标志着全世界第一个分组交换网络正式运行。表1为互联网和苏联计算机网的比较。
分组交换技术的创新依赖于新的需求。当然,如何看待无连接分组交换的革命性,人们也有不同的看法。美国计算机科学家,互联网先驱和历史学家约翰·戴(John Day)的说法是:“从传统电话的角度看,无连接分组交换无疑是一个极其巨大的创新;但从计算机的角度看,数据在缓存里,无连接分组交换只是把数据从一个缓存移到另一个缓存中,分组交换是一个非常自然的推论。”
革命性的创造:无连接分组交换
1972年,负责ARPANET的罗伯特·卡恩(Robert E. Kahn)在国际计算机通信大会(ICCC)上组织了一次非常成功的ARPANET演示,向公众首次公开展示了这种新的网络技术。同年,路易·普赞(Louis Pouzin)主持法国分组交换网络(CYCLADES)。CYCLADES是第一个不靠网络本身,而使用主机负责可靠传输数据的网络,路易·普赞提出了无连接的数据报(datagram)和端到端协议机制的概念。他认为,用户终端不应该相信网络是可靠的,同时网络也不可能是可靠的,这在当时是一个非常激进的想法。
ARPANET最初使用的协议是NCP,但这一协议并不成熟。罗伯特·卡恩在进行ARPANET卫星分组网络和地面无线分组网络项目的过程中,认为需要开发开放式架构网络模型,任何网络都可以与任何其他独立的硬件和软件配置进行通信。为此,罗伯特·卡恩设定了四个目标:(1)网络连接,任何网络都可以通过网关连接到另一个网络;(2)分权,没有中央的网络管理或控制;(3)错误恢复,丢失的数据包将被重传;(4)黑匣子设计,不必对网络进行内部更改以将其连接到其他网络。1973年温顿·瑟夫(Vinton Cerf)加入了罗伯特·卡恩的项目,他们创建了下一代传输控制协议(Transmission Control Protocol, TCP)。在该技术的早期版本中,只有一个核心协议。在TCP的开发过程中,温顿·瑟夫和罗伯特·卡恩使用了CYCLADES的概念。
分组交换的研究也形成了国际化的项目,以美国ARPANET,英国NPL和法国CYCLADES项目成员为主,成立了国际网络工作组(INWG)。1974年,INWG形成了两个主要提案,一个是以美国ARPANET为主的INWG 39,另一个是以欧洲CYCLADES和NPL为主的INWG 61。这两个方案都是基于无连接的分组交换技术。1975年,INWG形成了统一美国方案和欧洲方案的INWG 96,并正式提交给国际电报电话咨询委员会(International Telegraph and Telephone Consultative Committee, CCITT),但遭到拒绝。CCITT的主要论点是分组交换是可以接受的,但必须采用虚电路(Virtual Circuit)。1976年CCITT发布了自己的虚电路分组交换标准建议X.25。此外,国际计算机工业巨头IBM推出的系统网络架构(Systems Network Architecture, SNA)分组交换网络也是虚拟电路方案。
由于垄断的特性,传统电信界和大型商业界的运行模式就是层次结构,虽然他们看到了ARPANET分组交换的成功,但是思路仍然是电路交换,因此产生了面向连接的虚电路技术。无连接分组交换(即互联网协议(Internet Protocol, IP))和虚电路分组交换(即异步传输模式(Asynchronous Transfer Mode, ATM))的战争一直延续到20世纪末,最后互联网协议胜利了。表2为互联网和X.25、ATM等的比较。
系统化、完备化:沙漏模型
1977年,美国国防部高级研究计划署(DARPA)与BBN科技公司(BBN Technologies)、斯坦福大学和伦敦大学学院签订合同,在不同的硬件平台上开发协议的验证版本:TCP v1和TCP v2。在开发过程中,为了使网络不仅能够支持文件传输类的应用,还能够支持语音等对延时敏感但对丢包不敏感的特性,1978年温顿·瑟夫、丹尼·科恩(Danny Cohen)和约翰·普斯特尔(Jon Postel)将TCP的功能分为两个协议:TCP和IP,成为TCP v3和IP v3,然后使用TCP/IP v4进行稳定,最终形成了着名的TCP/IP的沙漏模型,如图2所示。
1978~1983年间,多个研究中心开发并实现了TCP/IP原型系统。1982年3月,美国国防部宣布TCP/IP为所有军用计算机网络的标准。1983年1月1日,APANANET从NCP到TCP/IP的迁移正式完成。1983年,美国科学基金网(NSFNET)决定使用TCP/IP协议。同年,ARPANET重组为两部分:ARPANET和纯军事用的MILNET。1984年,国际标准化组织(ISO)正式承认TCP/IP与开放式系统互联(OSI)原则相符,TCP/IP成为事实上的国际标准。1985年,TCP/IP成为UNIX操作系统的组成部分。之后,几乎所有的操作系统都逐渐支持TCP/IP协议。随着NSFNET等网络的规模扩大,1990年ARPANET结束了运行。其后1995年, 面向科研的NSFNET也逐步退役,互联网进入了蓬勃发展的商业化发展阶段。
温顿·瑟夫总结了互联网体系结构的力量:(1)不为任何特定的应用设计,仅仅做到移动数据报文;(2)可以运行在任何通信技术之上;(3)允许边缘的任何创新;(4)可扩展性强;(5)对于任何新协议、新技术、新应用开放。这一结构为1989年诞生的万维网(World Wide Web, WWW)等应用提供了保证。
学术界和工业界的有效合作
互联网的成功是学术界和工业界有效合作的成果。1969年(即ARPANET诞生的同一年),美国计算机学会(ACM)的网络研究兴趣委员会SICCOM(Special Interest Committee on Data Communications)成立,次年改名为SIGCOMM,其同名的年度会议成为网络研究的旗舰会议[4]。以SIGCOMM为代表,但不局限于SIGCOMM,20世纪60年代到80年代互联网方面重要的学术论文和学术报告有:
1. 1961年,美国麻省理工学院的伦纳德·克兰罗克完成博士论文《大型通讯网络中的信息流通》(Information Flow in Large Communication Nets)。
2. 1962年,美国保罗·巴兰完成兰德公司内部报告《论分布式通信网络》(On Distributed Communications Networks, RAND Corporation papers)。
3. 1965年,英国唐纳德·戴维斯完成英国国家物理实验室的内部报告《一种数字通信网络的建议》(Proposal for a Digital Communication Network)。
4. 1967年,美国劳伦斯·罗伯茨发表论文《多计算机网络和计算机间通信》(Multiple Computer Networks and Intercomputer Communications, SOSP’67 Proceedings of the first ACM symposium on Operating System Principles)。
5. 1974年,温顿·瑟夫和罗伯特·卡恩发表论文《一种分组网络通信协议》(A Protocol for Packet Network Intercommunication, IEEE Transaction on Communications)。
6. 1984年,美国戴维·克拉克(David Clark)发表《设计系统中的端到端论据》(End-To-End Arguments in System Design, ACM Transactions on Computer Systems (TOCS))。
7. 1988年,美国范·雅各布森(Van Jacobson)发表《拥塞避免和控制》(Congestion Avoidance and Control, Proc. SIGCOMM’88)。
8. 1988年,戴维·克拉克发表论文《DARPA互联网协议的设计理念》(The Design Philosophy of the DARPA Internet Protocols, Proc. SIGCOMM’88)。
9. 1989年,蒂姆·伯纳斯-李(Tim Berners-Lee)向欧洲粒子物理研究所(European Organization for Nuclear Research, CERN)提交报告《具有类型化链接的大型超文本数据库》(A Large Hypertext Database with Typed Links)。
10. 1990年,戴维·克拉克发表论文《新一代协议体系结构的思考》(Architectural Considerations for a New Generation of Protocols, Proc. SIGCOMM’90)。
这些学术论文和报告包括:分组交换的思想,互联网的设计哲学,互联网的体系结构,拥塞控制算法,万维网的设计,甚至是未来网络设计考虑,等等。
1985年,互联网工程任务组(Internet Engineering Task Force, IETF)成立,网关算法和数据结构工作组(Gateway Algorithms and Data Structures, GADS)成为其第一个工作组[5]。从那时起,IETF成为制定互联网协议标准的组织。20世纪60年代到80年代间,互联网最核心的RFC1标准有以下代表:
1. 1969年,网络工作组(Network Working Group)发表第一个标准:RFC1(主机软件(Host Software)),是ARPANET NCP协议的重要组成部分。
2. 1980年,IETF发布UDP标准:RFC 768 (用户数据报协议(User Datagram Protocol))。
3. 1981年,IETF发布IP标准:RFC 791 (互联网协议(IP))。
4. 1981年,IETF发布TCP标准:RFC 793(传输控制协议(TCP))。
5. 1983年,IETF发布域名系统(DNS)标准:RFC 882 (域名:概念和机制(Domain Names: Concepts and Facilities))。
第一任互联网体系结构委员会(Internet Architecture Board, IAB)主席戴维·克拉克于1992年激情洋溢地描述IETF管理变革和增长过程的方法:
● 开放的过程:让所有的声音都被听到;
● 封闭的过程:取得进步;
● 市场推进的过程:未来是商业化的;
● 规模驱动的过程:未来是互联网的天下。
戴维·克拉克发布了IETF宣言:“我们拒绝国王,拒绝总统,拒绝选举。我们相信的是粗略共识和可以运行的代码。”
互联网的设计原理
互联网的核心是体系结构,定义为“分层与协议的集合”,包括“设计原则和技术组件”。互联网的发展过程,就是对互联网体系结构不断研究和深化理解的过程。
在总结ARPANET的经验时,BBN公司克雷格·帕特里奇(Craig Partridge)指出,基本上每个人在首次构建分布式应用程序时,都会做出以下八个假设:(1)网络是可靠的;(2)延迟是零;(3)带宽是无限的;(4)网络是安全的;(5)拓扑不会变化;(6)有唯一一个的管理员;(7)传输成本是零;(8)网络是同质的。从长远来看,这一切都被证明是错误的,并且都会造成很大的麻烦和痛苦的学习经历。
他进一步总结了BBN在网络体系结构设计中的六个原则:(1)坚持自己的理想;(2)考虑运算和数据流,而不是应用;(3)接受你不能回答一些问题的现实;(4)不要囤积你的问题;(5)不要担心后向兼容性;(6)不要被实现的具体问题所困扰。
戴维·克拉克在1988年总结ARPANET的设计哲学为:(1)能够有效地多路复用现有通信技术;(2)在网络或网关失效的情况下,仍然能够通信;(3)互联网必须支持多种类型的网络通信服务;(4)互联网体系结构必须能够使用各种通信网络;(5)互联网体系结构必须允许对其资源的分布式管理;(6)互联网体系结构必须高效;(7)互联网体系结构必须允许主机容易联网;(8)互联网体系结构使用的资源必须可问责。
有趣的是,戴维·克拉克在2008年更新了他的互联网设计哲学:(1)安全性;(2)可用性和抗毁性;(3)经济活力;(4)加强管理;(5)满足社会需求;(6)可持续性;(7)支持未来的计算;(8)开拓未来的网络;(9)支持未来的应用;(10)按需定制。更有意思的是,戴维·克拉克强调这些设计哲学的排序也非常重要,当颠倒了这些优先级时,就可能设计出完全不同的网络体系结构。
从工程的角度讲,RFC 1958总结了互联网的核心思想:“目标是连通性,工具是互联网协议(IP),终端智能表现在端对端,而不在网络本身。” RFC 1958具体列出了互联网的设计原则:(1)网络协议必须适应异种机之间的互联;(2)选择某一个方法(依靠标准);(3)具有很好的扩展性;(4)性能、成本和所能实现的功能的平衡点;(5)保持简单性;(6)模块化;(7)不要等待找到完美的解决方案;(8)尽量避免选项和参数;(9)在发送时应严格,在接收时应宽容;(10)小心处理自己没有请求而收到的分组;(11)避免循环依赖性;(12)对象应该能够自我描述,必须使用由互联网数字分配机构(The Internet Assigned Numbers Authority, IANA)授权所使用的编码;(13)任何协议都应使用统一术语、注释、比特和字节顺序;(14)只有实现了几个能够运行的程序,互联网的协议才能成为标准。
经验、教训和反思
互联网的设计原理保证了TCP/IP的成功,使其成为了当今信息社会最重要的基础设施。互联网的体系结构是简单的,但不是完美的。例如TCP/IP在网络层没有流量控制,没有显式的跨自治域标识,没有准入控制,没有严格的源地址认证,等等。但正是容忍了这种不完美性,才获得了简单性,而由于简单性,带来了互联网的可扩展性和其他优点。
在20世纪80年代,有一场TCP/IP对决OSI的协议战争。对照来看,OSI模型是更加完美的,在每一层都重复性地包含寻址、流量控制和差错控制等功能,其代价是协议非常复杂,性能低,产品成熟度低。因此,TCP/IP战胜了追求完美的计算机网络体系结构OSI。一种说法是:OSI是一个美丽的梦想,TCP/IP正在实现它[6]。
20世纪90年代,还发生过一场TCP/IP与ATM的技术战争。对照来看,ATM技术是更加完美的,ATM采用面向连接的信源交换方式,可以提供固定、低延时并满足各种服务质量的通信服务。但ATM需要更大的开销,大规模虚电路的建立在原理和实现上均非常复杂。因此,TCP/IP战胜了追求完美的通信协议ATM。
从历史上看,很多公司一直都不明白“简化”的重要性,总是把这个根本的设计概念抛诸脑后,重视开发“丰富”的功能,实际上大多是冗余和复杂的。
世界上任何事情都不完美。互联网演进过程中,也有很多教训。在20世纪90年代初期,人们意识到只有40亿个地址的IPv4不敷使用。1993年第一篇正式提出网络地址映射技术(Network Address Translator, NAT)的文章《通过地址重用扩展IP互联网》(Extending the IP Internet Through Address Reuse)在Computer Communication Review发表,1994年对应的RFC文章发表《RFC 1631: IP网络地址转换器》(RFC 1631: The IP Network Address Translator (NAT))。在NAT开始部署的10年里,IETF内部对是否应该部署NAT有很大争议。NAT使用私有地址,这样就偏离了IP协议的基本模型(为任何主机之间提供端到端的可达性),违背了互联网最初的体系结构。IETF严格地基于端对端的原理,因此采用扩展全球地址空间的技术路线,启动了下一代互联网协议(IPNG)的工作,最终促成IPv6协议的标准化。但是,IETF对设计部署一个新IP协议的可行性做出了错误的判断,在所需的时间和努力方面都过于乐观[7]。
体系结构的原则应作为解决问题的指导。然而在某一个阶段,IETF把端到端的可达性模型当成绝对真理,完全排除了NAT作为解决地址问题的一种可行的手段,导致了NAT标准化的缺陷。IETF对于NAT技术的排斥,也导致在IPv6标准制定时,把IPv4/IPv6之间的翻译技术也作为非优先推荐技术。随着IPv6协议部署的扩大和人们认识的提高,IETF从2011年开始重视IPv4/IPv6翻译技术的标准化,并于2017年完成系列标准的制定。更深入地看,无状态IPv4/IPv6翻译技术在不同协议族之间,仍然可以实现在任何主机之间提供端到端地址的可达性。
TCP/IP的成功也阻碍了网络体系结构进一步的重大升级。戴维·克拉克指出了未来网络技术路线选择的两种技术路线:演进性路线和革命性路线。革命性路线的困境在于:通向未来互联网的道路必须通过IP,而为了实现未来,又必须最终取代IP。
展望未来
互联网成功的原因很多,主要包括以下几点:
1. 新的需求和无约束的创新精神,产生了无连接分组交换技术;
2. 对网络研究长期不断的经济支持,使ARPANET引领技术发展;
3. 政府赋予远见的政策导向,使互联网在美国成长和发展,导致苏联的网络计划没有成功;
4. 共享互利的学术交流,形成了学术界和工业界的合作;
5. 勇于创业的企业家,形成了互联网企业。
总结过去十年,我们认为:(1)网络技术的演进不遵循固定轨迹,充满难以预测的爆发、转折、交错,但是成功的技术一定能够符合互联网设计原则;(2)互联网发展到目前的规模,其巨大的惯性对技术演进会造成相当的阻碍,因此成功的技术一定是简单的、模块化的、多方因素平衡的(不是理论上完美的);(3)每一个十年都会出让人眼前一亮的创新技术[8]。
我们对今后十年作了预测:(1)互联网技术发展日新月异,十年是一个重要的阶段;(2)今后的十年是下一代互联网协议即IPv6普及的十年,但不能用IPv4的思维来考虑IPv6;(3)学术研究和工程标准的过程一定是开放的、国际化的。若自创一套与国际不兼容的网络技术,将不符合“构建以合作共赢为核心的新型国际关系,打造人类命运共同体”的我国基本国策。
网络作为一个既有重大学术研究问题的挑战性学科,又有大规模应用场景的工程问题,是年轻的科研工作者和工程师值得付出毕生精力努力的事业。对于年轻人,前辈们的一些话十分值得参考:
● “在学术界,我们杀死了那么多聪明的头脑……,我们花了20年的时间让我们的研究生从事电路交换的研究工作。然后,我们又浪费了20年让我们的研究生试图取代TCP/IP。我们不要取代它,而要利它,发展它。”
● “在网络界,做最有趣的研究的人没有足够的时间去写文章,而花费大量精力去充实他们出版清单的人却并不总是有有趣的事情可说。希望年轻人能多做有趣的研究,并写出来发表。”
ARPANET诞生50年来,互联网可能成为了人类历史上规模最大的人造工程。希望中国的网络研究人员和工程师能够努力工作,创造出从历史价值上可以比拟,甚至超过ARPANET的人造工程。
脚注
1 Request for Comments的简称,是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。基本的互联网通信协议都有在RFC文件内详细说明。
参考文献
[1] Clark D D. Designing an Internet [M]. The MIT Press, 2018.
[2] https://www.internetsociety.org/internet/history-internet/brief-history-internet/.
[3] Peters B. How Not to Network a Nation: The Uneasy History of the Soviet Internet[M]. The MIT Press, 2016.
[4] http://www.sigcomm.org/.
[5] https://www.ietf.org/.
[6] https://spectrum.ieee.org/tech-history/cyberspace/osi-the-internet-that-wasnt.
[7] https://www.ietfjournal.org/.
[8] https://blog.apnic.net/.
作者简介
(来源:中国计算机学会 CCCF专栏)
该文未经许可,禁止进行转载、摘编、复制及建立镜像等任何使用。如需转载,请通过向CCFvoice公众号(ID:CCFvoice)后台申请并获得授权。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。