OSI模型缘何失败?

曾几何时,ISO制定的开放系统互连(OSI,Open System Interconnection)模型被视为网络互连的“救星”,许多专家舍此不谈,许多网络教材也根据它来编写。然而,今天OSI已静悄悄消失,TCP/IP却如日中天。OSI为什么没有象人们所期望的那样获得迅速发展,最后取代TCP/IP呢?本文分析其中的一些原因,抛砖引玉,就教于专家。

OSI失败的原因可以归纳为以下几个方面。

一、标准发布的时间不对

标准发布的时间与标准能否取得成功有着非常密切的关系。美国麻省理工学院(MIT)专家David Clark有一个关于标准的“双象模型”,如下图所示。

图中显示了人们围绕一个主题所采取的行动。当该主题刚刚被发现时,会引起研究热潮,人们以科研论文、学术会议等形式开展活动。一个时期以后,研究逐渐趋冷,一些大公司发现该主题,然后投入大量资金。标准的制定的最佳时间是在“双象”之间的峰谷。如果标准制定过早,研究尚未结束,人们对它所知甚少,制定的标准必定不佳。如果标准制定太迟,就会有许多公司以各种形式进行投资,制定的标准会被忽视。如果“双象”之间的距离非常短,制定标准就会受到很大压力。

OSI标准的制定压力就非常大。OSI提出时,TCP/IP协议已经在全球范围的学术研究领域得到广泛应用。虽然尚未普及,但学术市场已经非常大,因此许多厂商争先恐后提供TCP/IP产品。OSI提出时,这些厂商不会浪费资金再投入另一套协议栈,因而每家厂商都期望别的公司先行一步,结果是你等我、我等你,谁也不会行动起来,于是OSI只好束之高阁,而不会有什么动静了。

二、采用的技术不佳

OSI失败的第二个原因是模型和协议存在缺陷。OSI给人的印象是七层模型的层数和每层的功能都十分合适,但事实上远非如此。会话层在大部分应用中用得极少,表示层则基本上是空的。事实上英国提交给ISO的建议标准就是五层,而不是七层。另一方面,数据链路层和网络层的功能如此众多,以至于不得不划分为若干子层,每个子层具有不同的功能。

尽管很少有人公开承认,但OSI七层模型的真正原因是起源于IBM的七层模型SNA(System Network Architecture)。当时,IBM在计算机业界占有绝对的统治地位,以致于电话公司、计算机公司甚至政府机构中的每个人都生怕IBM利用自己的市场影响迫使大家采用SNA,并按自己的意愿随时进行修改。OSI采用一个类似IBM的参考模型和协议栈,原因是希望受控于中立机构ISO,而不是受控于单个公司。

OSI模型及其服务、协议都非常复杂,打印出来的标准文本码起来几达一米之厚。它们比较难于实现,实际操作效率也低。

除了复杂费解之外,OSI的另一个问题是它的某些功能,例如寻址、流控和差错控制等,反复出现于很多层。事实上,为了提高效率,差错控制应该在高层进行,因此在低层中一再进行差错控制既无必要,效率也很差。

在OSI模型中,将某一功能放入哪一层有时不太容易确定。虚拟终端处理曾经被放在表示层,后来挪到应用层本质上不过是因为标准委员会无法确定表示层的准确功能。数据安全和加密分歧更大,最后只好哪一层也不放。因为类似的原因,网络管理未在OSI模型中出现。

OSI模型最严重的问题可能是,它是基于通信的,而不是基于计算机的。通信与计算机的关系在OSI中很少提及,一些功能非常难于用计算机和软件方法实现。例如,如果说服务原语CONNECT.request可设想为调用一个库函数connect的话,那么CONNECT.indication则难于用程序实现(也许可以将它设计为获取中断,但是大部分高级语言处理中断比较困难)。

三、难于实现

OSI模型及协议庞大而复杂,因此实现起来也是巨大、笨重而且缓慢。每一个试图实现的人都被搞得焦头乱额。人们很快就OSI与低质量联系在一起。

与此相比较,TCP/IP的第一次实现是作为Berkeley UNIX的一部分,它速度快、质量好,而且免费。它很快就得到广泛使用,从而很快就扩大了用户群,也就迅速得到完善和改进,于是进一步扩大了用户群。它是良性循环,而OSI则落入了消极的负反馈。

四、策略有误

由于实现上的历史原因,人们(特别是学术界的人士)通常认为TCP/IP是UNIX的一部分,甚至不觉得UNIX是TCP/IP之母。而OSI则不同,人们觉得它是欧洲各国政府部门、欧洲共同体以及美国政府的产物。这实际上并不完全正确,但是由政府官僚来推动技术人员开发计算机网络这种念头使得人们如鲠在喉,让人实在不愿意接受。

事实上,TCP/IP也并非尽善尽美。TCP/IP模型层次不清晰,对服务、接口和协议区别不严密,在低层(物理层和数据链路层)几乎没做什么工作,而且TCP/IP模型并不通用,不能描述TCP/IP之外的协议栈。

因此,至今仍有一些机构在支持OSI,特别是欧洲一些国家的PTT。同时,OSI模型被认为非常适合讨论计算机网络、非常适合计算机网络的教学,所以大部分网络教材仍按OSI七层模型或基于OSI的混合模型来进行组织。

X

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注