2.2.2 TCP/IP和OSI
TCP/IP和OSI协议的设计虽然具有相同的目标,但是走的是两条完全不同的道路。1972年,罗伯特·卡恩(Robert E. Kahn)开始设计开发开放互联模型,1973年,NCP协议的开发者文顿·瑟夫(Vinton Cerf)加入。1974年,二人在IEEE期刊上发表了一篇题为《关于分组交换的网络通信协议》的论文,正式提出TCP/IP,用以实现计算机网络之间的互联。1975年,两个网络之间的TCP/IP通信在美国斯坦福大学和英国伦敦大学学院之间进行了测试。1977年11月,3个网络之间的TCP/IP测试在美国、英国和挪威之间进行。在1978年到1983年间,其他一些TCP/IP原型在多个研究中心之间被开发出来。1983年,美国国防部高级研究计划局(DARPA)决定淘汰NCP协议,转而使用TCP/IP。同年,TCP/IP被UNIX 4.2 BSD系统采用。随着UNIX的发展和应用,TCP/IP逐步成为UNIX机器的标准网络协议。
相较于TCP/IP,OSI发展的起点更高。国际标准化组织(ISO)于1977年成立了专门的机构来研究不同体系结构的计算机网络之间的互联问题。他们提出了著名的开放系统互联基本参考模型(Open Systems Interconnection Reference Model,OSI/RM),简称为OSI。OSI试图设计一套全球计算机网络都能够遵循的统一标准,实现任意两台计算机之间可以方便地互联和数据交换。OSI在1983年形成了著名的OSI 7498国际标准,并在该标准中定义了大家所熟知的7层协议的体系结构。
OSI受到国际社会的广泛支持,学术界、工业界甚至一些国家及地区的政府机构都对这一标准表示支持。在当时看来,OSI必将成为全球通用的网络协议,是所有计算机设备都要支持的。然而现实却出乎意料,OSI没有如想象中那样被广泛地应用,原因是:在OSI标准制定过程中,基于TCP/IP的网络协议抢先在各种设备上被使用并且取得了空前的成功。20世纪90年代初期,OSI国际标准虽然已经制定出来了,但是众多计算机厂商却仍然使用TCP/IP。因此,OSI虽然在理论上取得了进步和共识,但是在市场化方面却败给了更加简单的TCP/IP。
对比TCP/IP的成功和OSI的失败,原因主要可以归纳为以下几方面。
(1)TCP/IP在NCP的基础上进行设计,且在先期进行了充分的测试;OSI制定标准的组织以专家学者为主,缺乏实际经验。
(2)TCP/IP公开、免费,所有计算机厂商和科研院校都可以使用,在被开源的BSD系统采用后,随着操作系统的发展演化而被逐步推广;相对于TCP/IP来讲,OSI起步晚,且制定周期过长,按OSI标准生成的设备无法及时抢占市场。
(3)TCP/IP简单易实现,OSI试图达到理想境界,实现起来过于复杂,而且运行效率很低。
所以,在与OSI角逐的过程中,TCP/IP取胜的关键在于公开、高效且易于实现。这些特征对于未来网络协议的设计和推广同样具有重要的参考价值。