OSI模型和TCP/IP长达十几年的竞争,现在已经很少提及了。在今天的中国,各种“标准”、“理论”陆续出台,我们能否在实践检验之前就宣布它的成功、宣称它代表未来的发展趋势?不了解历史的人,很容易重复历史。本文不止是为了答复某些网友的质疑,更希望能够引发对未来互联网体系结构研究及相关社会问题的思考。(本文只是作者本人的“偏见”,希望某些读者不要被“误导”了。)
一、OSI的概要和现状
OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型,不仅包括一系列抽象的术语或概念,也包括具体的协议。在国内、国外所有关于计算机网络的教科书中,如果不提OSI参考模型,就仿佛没有了“理论”指导,相信绝大多数学过计算机网络的人,都学过或多少听说过。
在八十年代末、九十年代初,OSI的确有一统天下的架势,主流的学术期刊无数的文章都给人们描绘了一个伟大的未来:“OSI模型及其协议将会统领整个世界,从而把所有其他技术和标准都排除出局 [Tanenbaum《计算机网络》第四版,清华大学出版社,pp39]”。人们将从IBM的SNA技术、APARNET的TCP/IP技术、Digital的DECnet技术的奴役中解放出来,投入到OSI协议统一的天国。
然而,在90年代中后期,在我开始学习网络的时候,TCP/IP和OSI模型的竞争以互联网的成功和OSI的失败而结束了。我们今天广泛使用的互联网是基于TCP/IP模型,它却是一个四层(有人也说是五层)模型。今天,无论在工程界还是学术界,我们只用OSI参考模型所定义的某些术语或概念进行交流,却很少厂商或个人实现或使用OSI的协议,几乎根本看不到了。
但是直到今天,有没有人怀疑过,我们是不是被“忽悠”了?这个人人都敬若神明、却又看不到的OSI究竟是何方神圣设计的?
二、OSI七层模型的诞生和消亡
很多人质疑过OSI参考模型。在国内广泛使用的《计算机网络》教材中,Tanenbaum先生就总结了一些教训“糟糕的时机、糟糕的技术、糟糕的实现、糟糕的政策”[pp39],想必很多学生都读过。然而有关OSI参考模型制定的故事,未必有很多人知道。以下来自William Stalling先生教材的参考资源网站[http://williamstallings.com/Extras/OSI.html。],William Stalling是美国至少两本优秀教材的作者。这个故事在[http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_5-2/book_review.html][ http://www.groklaw.net/articlebasic.php?story=20050219170121955]中得到了验证。
OSI的大部分设计工作实际上只是Honeywell Information System公司的一个小组完成的,小组的技术负责人是Charlie Bachman。在70年代中期,这个小组主要是为了开发一些原型系统而成立的,主要关注数据库系统的设计。70年代中,为了支持数据库系统的访问,需要一个结构化的分布式通信系统体系结构。于是这个小组研究了现有的一些解决方案,其中包括IBM公司的SNA(System Network Architecture)、ARPANET(Internet的前身)的协议、以及为标准化的数据库正在研究中的一些表示服务(presentation services)的相关概念,在1977年提出了一个七层的体系结构模型,他们内部称之为分布式系统体系结构(DSA)。
与此同时,1977年英国标准化协会向国际标准化组织(ISO)提议,为了定义分布处理之间的通信基础设施,需要一个标准的体系结构。结果,ISO就开放系统互联(OSI)问题成立了一个专委会(TC 97, Subcomittee 16),指定由美国国家标准协会(ANSI)开发一个标准草案,在专委会第一次正式会议之前提交。
Bachman 参加了ANSI早期的会议,并提交了他的七层模型,这个模型就成了提交ISO专委会的唯一的一份草案。1978年3月,在ISO的OSI专委会在华盛顿召开的会议上,与会专家很快达成了共识,认为这个分层的体系结构能够满足开放式系统的大多数需求,而且具有可扩展的能力,能够满足新的需求。于是,1978年发布了这个临时版本,1979年稍作细化之后,成了最终的版本。所以,OSI模型和1977年DSA模型基本相同。
以下故事来源于普度大学著名教授Douglas E. Comer先生的个人主页上的一篇文章“How the 7-layer reference model was invented”
(http://www.cs.purdue.edu/homes/dec/essay.network.layers.html)。
Douglas E. Comer先生在网络界的盛名不需我多说,可能很多人都读过他写的《Internetworking With TCP/IP Volume 1: Principles Protocols, and Architecture》。
“研究人员开始回顾OSI七层参考模型的起源,琢磨这个笨重的、模糊不清的模型为什么如此的持久力,总是挥之不去。他们发现了一个令人吃惊的事实。我们早就知道,这个模型是一个小组的工作,但是我们不知道,那个群人在一天夜里聚在酒吧里取笑美国的流行文化。他们在餐巾纸上胡乱写下迪斯尼电影上白雪公主和七个小矮人中的七个小矮人的名字,有人开玩笑说,“7”对网络分层来讲是一个很好的数字。第二天上午在标准化委员会的会议上,工作组传看着餐巾纸,一致同意了他们前天夜里他们喝醉以后的重大发现。那天结束时,他们对七个层次重新命名(听起来更加科学),于是基本模型诞生了。以下罗列了七层的名字和一些解释:
层次 小矮人的名字 OSI分层的名字 解释
1 Sleepy Physical(物理层) ….
2 Sneezy Link (链路层) …..
3 Happy Network(网络层) …..
4 Doc Transport(传输层) ……
5 Dopey Session(会话层) …..
6 Bashful Presentation(表示层) ……
7 Grumpy Application (应用层) …..
这个故事的教训:如果你是一个标准委员会的工程师,就不要和你的同事去喝酒——深夜里一个拙劣的笑话,有可能成为工业界几十年都挥之不去的梦魇。”
Douglas E. Comer来清华演讲时,我还没有看到这篇文章,没有向他求证故事的真假,自认为有很多调侃的成份。但是美国这些学者对OSI的态度却不需要过多求证了,OSI是一批没有网络设计和开发经验的人设计的,也基本可以得到证实。
“伟大”的OSI参考模型的思想在酒吧里诞生以后,确实“忽悠”了很多组织和研究者,其中包括美国联邦政府。1990年美国通过国家标准和技术协会发布了联邦信息处理标准(FIPS) 标准 FIPS 146-1,也就是GOSIP(Government Open Systems Interconnection Profile )。GOSIP定义了OSI协议的子集,要求联邦政府机构的信息系统都要遵循GOSIP协议进行通讯,并要求向政府部门供货的设备厂商的必须能够证明他们的设备能够与GOSIP兼容。然而,就像Douglas E. Comer先生在清华的演讲中提到的,联邦政府后来又允许已有的设备、紧急的项目采用TCP/IP协议或其他的协议,于是几乎所有的项目都声称自己是紧急的。到1995年,联邦政府又发布了POSIT(Profiles for Open Systems Internetworking Technologies) FIPS PUB 146-2(http://www.itl.nist.gov/fipspubs/fip146-2.htm),在第3条中声明“This change modifies FIPS 146-1 by removing the requirement that Federal agencies specify GOSIP protocols when they acquire networking products and services and communications systems and services.”从此,除了少数军方应用使用X.500的邮件系统以外,OSI已经名存实亡了。 |