3.2.3 OSI参考模型
自1974年IBM公司提出了世界上第一个网络体系结构——系统网络体系结构(SNA,Systems Network Architecture)以来,许多公司纷纷提出各自的网络体系结构。这些体系结构都采用了分层技术,但层次的划分、功能的分配与采用的技术均不相同。随着信息通信网络的形式越来越多样化,应用领域越来越广,要想让不同网络体系结构的计算机系统相互连接,必须制定一个网络体系结构的标准。
国际标准化组织(ISO)发布了著名的ISO/IEC 7498标准,制定了开放系统互连参考模型OSI/RM,简称为OSI。所谓“开放”是与垄断相对的,只要遵循OSI标准,一个系统就可以与位于世界上任何地方的、遵循同一标准的其他系统进行通信。并且OSI参考模型仅考虑与互联有关的那些部分,不考虑与互联无关的部分。但要注意OSI参考模型并不是一个标准或协议,它是一个用于了解和设计灵活的、稳健的和可互操作的网络体系结构的模型。
OSI参考模型将网络的通信功能分解为7个层次,由上至下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,如图3-6所示。
OSI参考模型详细地规定了每一层的功能,以实现开放系统环境中的互联性(Interconnection)、互操作性(Interoperation)与应用的可移植性(Portability)。下面从最上层开始,依次讨论该模型中的每一层。
(1)应用层
应用层为用户的应用进程提供多种类型的服务,使用户(不管是人还是软件)能够接入网络。它定义了应用程序请求网络服务的类型和接口,规定了从应用程序接收消息或向应用程序发送消息时采用的数据格式。应用层提供的服务包括远程登录、文件传输、邮件服务等。
图3-6 OSI参考模型的分层结构
(2)表示层
表示层关注的是两个主机所交换信息的语法和语义。它涉及主机之间交换的数据结构如何定义,以及网络上传输数据的编码方式,并对这些抽象的数据结构进行管理。主要提供不同编码格式的转换功能,由于通信的两个系统可能使用了不同的编码格式,表示层负责将发端系统的编码格式转换为面向网络的公共格式,接收后再转换到收端系统的编码格式。同时,也能够为应用程序提供特殊的数据处理功能,包括数据加密、解密、数据压缩等。
(3)会话层
会话层允许不同主机上的用户之间建立、管理会话。它定义了让发送方和接收方请求会话启动或停止以及维持会话的机制。通常包括:会话控制,如每个阶段由哪个用户来传输数据;同步,在一个长的传输过程中设置一些检查点,以便在系统崩溃之后还能够在崩溃前的点上继续执行。
(4)传输层
传输层负责将报文段进行源端到目的端(端到端)的交付,为两端主机进程之间的通信提供服务。其基本功能包括:进程级编址(端口地址),保证报文段能准确到达相应的进程;分段重组,在源端接收来自上一层的数据,分割成小的单元即数据报,并传递给网络层,在目的端将这些数据报重组;差错控制,端到端的错误检查和恢复、在重组过程中请求出错或丢失的数据重传;连接控制,在提供面向连接的服务时需要建立、管理和终止连接;流控制,保证端到端数据速率的匹配等。
(5)网络层
网络层负责将数据报从源端交付到目的端,提供了网络互联的功能。其基本功能包括:逻辑寻址,为互联网设备分配逻辑地址;路由选择,为每一个数据报选择源端到目的端的合适路径;分段重组,为适应数据链路层的处理,源端在必要时将数据报拆分为更小的数据单元,并在目的端重组等。
(6)数据链路层
数据链路层将物理传输设施转换为逻辑链路,负责将帧从同一链路的一个节点交付到另一节点,实现数据的可靠传输。基本功能包括:逻辑链路控制,同一网络中两设备间的逻辑链路创建与管理;媒质接入控制,管理共享媒质的设备接入以免冲突;组帧,将网络层来的数据报封装成帧以适应每条链路的传输能力;物理编址,为同一物理网络中的设备编址,即物理地址;差错控制,检测、重传错误或丢失的帧以保障数据传输的可靠性;流控制,控制从发送节点到接收节点数据传输的速率节奏等。
(7)物理层
物理层负责将比特从同一链路的一个节点交付到另一节点,涉及网络介质接口,传输媒体的机械、电气特性,定义了物理设备、接口为数据传输必须完成的过程和功能。基本功能包括:比特表示,比如应该用多少伏的电压表示“1”,多少伏的电压表示“0”;数据速率,每一比特持续的时间是多少;比特同步,收发双方时钟的同步;传输方式,传输过程是否在两个方向上同时进行;物理拓扑,设备如何连接形成网络,如星形、环形、总线型等。
在20世纪90年代初期,整套OSI国际标准都已经制定出来,它试图达到一种理想境界,即全世界的计算机网络都遵循这个统一的标准,使它们能够很方便地进行互联和交换数据。但在OSI出现的时候,因特网在全世界已有相当广的覆盖范围,而它并未使用OSI标准,而是使用与之竞争的TCP/IP协议。由于OSI标准的制定周期太长,使得按OSI标准生产的设备无法及时进入市场,而且OSI的层次划分不太合理,协议实现起来特别复杂,运行效率很低,因此在市场化方面OSI事与愿违地失败了。当时的市场上几乎找不到厂家生产出符合OSI标准的商用产品。而TCP/IP已经被广泛地应用于大学和科研机构了,因此TCP/IP就常被称为事实上的国际标准。虽然OSI标准在商业应用上并不成功,但其层次设计的思想、互连的相关设计一直都是许多协议制定的参考依据。