1.3.2 OSI参考模型
世界上第一个网络体系结构是1974年由IBM公司提出的SNA,以后其他公司也相继提出了自己的体系结构,如Digital公司的DNA和美国国防部的TCP/IP等,多种网络体系结构并存。其结果是若采用IBM的结构,只能选用IBM的产品,而且只能与同种结构的网络互连。
为了实现不同厂家生产的计算机系统之间、不同的网络之间的数据通信,就必须遵循相同的网络体系结构,否则计算机网络的规模就无法扩大。为此,国际标准化组织(ISO)于1977年成立了一个委员会,在现有网络的基础上,提出了不局限于具体机型、操作系统和公司规范的网络体系结构,称为开放系统互连模型(Open System Interconnection,OSI),一般称为ISO/OSI参考模型。该模型并没有提供一个可以具体实现的方法,只是描述了一些概念,用来协调通信标准的制定。因此,OSI参考模型并不是具体的标准,而是一个在制定标准时所使用的概念性框架。这也是“参考”二字的含义。
ISO将整个通信功能划分为7个层次,如图1-10所示,从低到高分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。层次划分的原则如下。
(1)网络中各结点都有相应的层次。
(2)同等层具有相同的功能。
(3)相邻层之间通过接口通信。
(4)每一层使用下层提供的服务,并向其上层提供服务。
(5)按照协议实现对等层之间的通信。
图1-10 OSI参考模型的结构及原理
OSI参考模型的7个层次由高到低的具体内容如下。
第7层(应用层)是OSI的最高一层。应用层确定不同计算机进程(运行中的程序)之间通信的性质,以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为进程的用户代理,来完成一些进行信息交换所必需的功能。
第6层(表示层)主要用于处理两个通信系统中交换信息的表示方式。它包括数据格式交换、数据加密与解密、数据压缩与恢复等功能。
第5层(会话层)又被称为会晤层,负责在应用之间建立并维护通信会话,如建立、管理和拆除会话进程。这一层的服务包括设置连接方式是单工、全双工还是半双工,虽然在传输层中也有类似的功能。
第4层(传输层)也叫作运输层,负责常规数据的面向连接方式和无连接方式的传送。本层也可以提供全双工或半双工、流量控制和错误恢复服务(单工、半双工、全双工、面向连接和无连接等概念,在本书的第2章中会有详细介绍)。
第3层(网络层)通过寻址来建立两个结点之间的连接,通过互连网络来路由和中继数据。
第2层(数据链路层)将数据分帧,并进行流量、差错等控制。本层指定拓扑结构并提供硬件寻址机制。
第1层(物理层)处于OSI参考模型的最底层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便传送二进制比特流。
总体上,OSI参考模型的低三层可看作是传输控制层,负责有关通信子网的工作,解决网络中的通信问题;高三层为应用控制层,负责有关资源子网的工作,解决应用进程的通信问题;传输层为通信子网和资源子网的接口,起到连接传输和应用的作用。最高层为应用层,面向用户提供应用的服务;最低层为物理层,连接通信介质实现数据传输。层与层之间的联系是通过各层之间的“接口”来进行的,上层通过接口向下层请求服务,下层通过接口向上层提供服务。因此,有时候用术语“协议栈”来表示网络中各层协议的总和,它形象地反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。
两个计算机通过网络进行通信时,除了物理层之外,其余各对等层之间均不存在直接的通信关系,而是通过各对等层的协议来进行通信,如两个对等的网络层使用网络层协议通信。只有两个物理层之间才通过媒体进行真正的数据通信,如图1-11所示。
图1-11 OSI参考模型的协议管理
对于各层中传输的数据单位,在传输层的数据叫段(Segment),网络层叫包(Package),数据链路层叫帧(Frame)。这些单位统称为协议数据单元(PDU)。
虽然OSI参考模型制定的理想目标,是让全世界的计算机网络都遵循这个统一的标准,然后所有的计算机应能很方便地进行互连和交换数据了。然而到了20世纪90年代初,虽然整套的OSI国际标准都已经制定出来了,但此时Internet已覆盖了全世界相当大的范围,因此没有什么厂家愿意转去生产出符合OSI标准的产品。最终,OSI只获得了一定的研究上的成果,但市场化方面却遭受了失败。
OSI标准市场化失败的原因是多方面的。比如,标准的制定者们缺乏实际经验,制定的协议实现起来过于复杂,运行效率低,而且层次的划分合理性不够,一些功能在多个层次中重复出现。同时,标准制定的时间太久,失去了先机。
尽管如此,OSI标准仍然是一种非常好的计算机网络体系结构模型,特别适合用于网络的学习。OSI参考模型定义了开放系统的层次结构、层次之间的相互关系以及各层所包括的可能的任务,作为一个框架来协调和组织各层所提供的服务,人们可以很容易地讨论和学习协议的规范细节。OSI每层利用紧邻的下层服务,让人更容易记住各层的功能。OSI参考模型的层间的标准接口方便了工程模块化,有利于创建良好的互连环境。总体上,OSI参考模型体现出的分层等思想,降低了计算机网络体系结构的复杂度,使网络应用设计中的程序更容易修改,产品开发的速度更快。从这些方面讲,OSI是一个定义良好的协议规范集,在计算机网络教学、研究活动中是不可缺少的。