3.2 OSI模型

学习任务

(1)掌握OSI模型及各层功能。

(2)理解数据在通信终端中的封装与拆封过程。

早期网络体系结构多种多样,网络产品互不兼容,缺乏统一标准,影响了计算机网络的发展。开放式系统互连参考模型OSI/RM(Open System Interconnection/Reference Model),简称OSI参考模型,是ISO于1984年为了解决网络之间的兼容性问题,实现网络设备间的相互通信而提出的标准框架。OSI参考模型的出现,使世界范围内的计算机都能够按照统一的标准进行通信,极大地推动了网络技术的发展。

3.2.1 OSI模型

知识点

(1)OSI模型。

(2)物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

OSI模型采用层次结构,将整个网络的通信功能划分为7个层次,如图3-1所示,由下向上分别是物理层(Physical Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)和应用层(Application Layer),每一层都负责完成某些特定的通信任务。

img

图3-1 OSI参考模型及其功能

(1)物理层

物理层处于OSI模型的最底层,向下直接与物理信道相连接,其功能是利用物理介质,为上一层提供物理连接,在终端设备之间透明传输比特流,即“0”和“1”组成的比特流,对上层数据链路层来说屏蔽了物理传输介质的差异。所以,物理层协议关心的典型问题是,使用什么样的物理信号来表示数据“1”和“0”;一比特的持续时间多长;是否可以同时在两个方向上进行数据传输;初始的物理连接如何建立及完成通信后如何终止;物理层与传输介质的连接接口(插头和插座)有多少引脚及各引脚的功能和动作时序等。物理层协议定义了通信传输介质的物理特性,主要包括机械特性、电气特性、功能特性和规程特性。

①机械特性:规定了物理连接时所需接线器的形状和尺寸、引脚数量和排列方式等。例如,EIA RS-232C标准规定的D型25针接口——DB-25,其简化版本为D型9针——DB-9。

②电气特性:规定了物理连接上的导线的电压、电流范围等电气连接及有关电路特性。例如,EIA RS-232C最大传输速率为19.2Kbit/s,最大传输距离不超过15m。

③功能特性:规定了某条线路上出现某一电平的电压表示何种意义。

④规程特性:指明不同功能的各种可能事件的出现顺序

物理层传输的单位是比特,只负责传输比特流,并不知道比特流的具体含义。常见的物理层传输介质有同轴电缆、双绞线、光纤、电磁波等。

(2)数据链路层

数据链路层的主要功能是如何在不可靠的物理线路上,进行数据的可靠传输。数据链路层完成的是网络中两个相邻节点之间可靠的数据通信。为了保证可靠的数据通信,发送端把数据封装成帧(Frame),在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。数据链路层关注的主要问题是拓扑结构、物理地址、寻址、数据帧有序传输和流量控制等。数据链路层的功能主要包括以下6项内容:

1)链路管理。当网络双方需要通信时,必须建立一条数据链路,在保证数据链路安全的条件下进行传输。通信过程中,维持数据链路状态,通信结束后释放数据链路,即建立、维持与释放数据链路。

2)帧同步。在数据链路层,数据以帧为单位进行传输。发送端要将比特流编组成帧,接收端需要识别帧开始与结束的位置,也就是帧同步。关于数据成帧的格式,请查阅单元5“5.2.2以太网帧”。

3)寻址。数据链路层协议应该能标识介质上的所有节点,而且能够根据数据帧中携带的目的物理地址找到目标节点,以便将数据发送到正确目的地。

4)流量控制。为了确保数据的正常收发,防止数据过快发送引起接收端的缓冲区溢出及网络拥塞,必须控制发送端发送数据的速率。数据链路层控制的是相邻两个节点之间数据链路上的流量,如停止等待协议。

5)差错控制。由于物理层无法辨别和处理比特流传输时可能出现的错误。所以,在数据链路层需要进行以帧为单位的差错控制。为保证帧可靠的传输,在帧中带有校验字段,当接收端收到帧时,按照选定的差错控制方法进行校验,当发现差错时进行差错处理。常用的方法有帧校验序列(FCS,Frame Check Sequence)。

6)接入控制,多个终端设备可能同时需要发送数据,此时需要数据链路层协调各设备对资源的使用,即共享介质环境中的介质访问控制,当多个节点共享通信链路时,确定在某一时间内由哪个节点发送数据。

提示

(1)在物理线路上,必须有通信协议来控制数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

(2)物理地址也称硬件地址,又称MAC地址,是由48位二进制组成的,在世界范围内是唯一的。形象地说,MAC地址就如同身份证号码,具有唯一性。

(3)网络层

在网络层,数据的传送单位是数据包(Packet,也称分组),网络层的主要功能是,选择合适的路由并转发数据包,使数据包能够从发送端到达接收端。网络层是实现不同网络的源节点与目标节点之间的数据包传输,而数据链路层只是负责同一个网络中的相邻节点之间的链路管理及帧的传输。因此,当两个节点连接在同一个网络中时,并不需要网络层,只有当两个节点分布在不同的网络中时,才会涉及网络层的功能。网络层的功能包括以下内容:

1)编址。网络层为每个网络节点分配一个网络地址,网络地址的分配为网络层的路由转发提供了基础。数据链路层中的物理地址是指在同一网络内部寻址的问题,当数据包从一个网络到另一个网络时,就需要使用网络地址。在网络层数据包首部包含了源节点和目标节点的网络地址。

2)路由选择。网络层一个重要的功能是,确定从源地址与目的地传送数据应如何选择路由。路由选择是根据一定的原则和算法在通信网络中选出一条通向目的地的最佳路径。实现网络层路由选择的设备是路由器。

3)流量控制和拥塞控制。数据链路层的流量控制是相邻2个节点之间的流量控制;而网络层的流量控制就是数据包从源节点到目标节点过程的流量控制。流量控制的作用是控制拥塞,避免死锁。在通信网络中由于出现过量的数据包而引起网络性能下降的现象称为拥塞。拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,利用这些信息并加以控制,以避免由于拥塞出现数据包丢失,以及严重拥塞而产生网络“死锁”的现象。为了防止出现拥塞和死锁,需要进行流量控制,通常可采用滑动窗口、预约缓冲区、许可证和包丢弃4种方法。

(4)传输层

传输层位于OSI模型的第四层,是最重要和最关键的一层,传输的数据单位是报文段(Segment),主要功能是完成网络中不同主机上的应用进程之间可靠的数据传输,即端到端可靠传输。传输层的功能包括以下内容:

1)为端到端连接提供可靠的传输服务;

2)为端到端提供流量控制、差错控制、重传等管理服务。

(5)会话层

会话层如同它的名字一样,具有建立、管理和终止会话的功能。传送的数据单位为会话协议数据单元(Session Protocol Data Unit)。会话协议的主要目的是提供一个面向用户的连接服务,并对会话活动提供有效的组织和同步所必需的手段,对数据传送提供控制和管理。会话也可以进行差错恢复的处理。例如,网络上常常使用的下载工具软件,支持断点续传功能,就是使用了会话层的这个功能,即可以从上次中断的地方继续下载。

(6)表示层

表示层负责一个系统应用层发出的信息能够被另外一个系统的应用层识别,最关键的是所传送信息的语法与语义。传送的数据单位为表示协议数据单元(Presentation Protocol Data Unit)。表示层按照双方约定的格式对数据进行编码和解码,从而保证使用相同表示层协议的各方能够正确地识别和理解信息。表示层还负责数据的加密和解密、压缩和解压等工作。

表示层服务的典型例子就是数据编码问题。表示层充当应用程序和网络之间的“翻译官”角色。

(7)应用层

应用层是OSI模型的最高层,直接为用户提供服务。传送的数据单位为应用协议数据单元(Application Protocol Data Unit)。它为用户应用程序和网络之间提供接口,直接与用户应用程序打交道。应用程序负责对软件提供网络服务,常用的网络服务包括文件服务、电子邮件服务、打印服务、网络管理服务、安全服务、虚拟终端服务等。

提示

OSI层次模型的低三层可看作是传输控制层,负责有关通信子网的工作,解决网络中的通信问题;高三层为应用控制层,负责有关资源子网的工作,解决应用进程的通信问题;传输层是通信子网和资源子网的接口,起到连接传输和应用的作用。

总之,OSI模型是在其协议开发之前设计出来的,这意味着OSI模型不是基于某个特定的协议集而设计的,因而它更具有通用性。实际上,OSI在协议实现方面存在某些不足。由于OSI设计得过于复杂,这也是其从未真正流行使用的原因所在。虽然OSI模型和协议并未获得巨大成功,但是OSI模型的贡献仍然是巨大的,OSI的相关概念科学严谨,被广泛应用于TCP/IP中。故OSI模型对讨论计算机网络仍十分有用,是概念上的重要参考模型,在计算机网络的发展过程中仍然起到了非常重要的指导作用,它促进了计算机网络标准化发展。

课堂同步

多选题:以下关于OSI模型的描述中,错误的是(  )。

A.OSI模型定义了一个开放系统层次结构

B.OSI模型定义了各层所包括的可能服务

C.OSI模型定义了各层接口的实现方法

D.物理层完成了比特流的传输

E.数据链路层用于保证端到端的帧可靠传输

F.网络层为分组通过通信子网选择合适的传输路径

G.应用层处于OSI模型的最高层,为用户提供服务

H.不同节点的对等层具有相同的功能和协议

I.上一层为下一层提供所需的服务

img

3.2.2 OSI模型中的数据通信过程

知识点

(1)封装。

(2)拆封。

img

为了能够将数据正确地从一台主机传送到另一台主机,就需要含有控制信息,当传送到下层时,控制信息被加入数据中,完成封装过程。封装是指网络节点将要传送的数据用每一层对应的特定协议打包后传送,多数是在原有数据之前加上协议首部来实现的,也有些协议还需要在数据之后加上协议尾部。例如,如图3-2所示,主机A发送数据到应用层,应用层协议需要在数据前面加上协议首部H7,封装成新的应用协议数据单元,然后再传输到表示层,表示层协议继续将协议首部H6加在应用协议数据单元中,封装成表示协议数据单元,继续向下发送,以此类推。

拆封是封装的逆过程,就是将原来增加协议首部去掉,将原始的数据发送给目标应用程序。如图3-2所示,数据到达接收端主机B的数据链路层,就要去掉帧头H2和帧尾T2,继续传送给网络层。发送端每一层都要对上一层传输来的数据进行封装,并传输给下一层;而接收端每一层都要对本层封装的数据进行拆封,并传输给上一层。

在OSI模型中,数据发送和接收流程如下:数据从发送端的应用层开始逐层封装、流向低层,直至到达物理层后成为“0”和“1”组成的比特流,然后再转换为电信号或光信号等形式,在通信介质上传输至接收端,在接收端则由物理层开始逐层拆封、流向高层,直至到达应用层,还原为发送端所发送的数据信息。例如,当主机A要发送数据给主机B时,其实际传输路线是从主机A的应用层开始逐层进行封装,自上而下传输到物理层,再通过传输介质以电信号或光信号传输到主机B端的物理层,然后逐层拆封,再自下而上,最后到达接收端主机B。

从用户来看,通信是在主机A和主机B之间进行的。但实际上,信息并不是从主机A的应用层直接传送至主机B的应用层,而是发送端的逐层封装,自上而下到传输介质;然后,接收端逐层拆封,直至应用程序。即在OSI模型中,终端主机的每一层都与另一方的对等层进行通信,但是这种通信并不是直接进行的,而是通过下一层为其提供的服务来间接实现对等层的通信。所以,协议是水平的(对等层之间的通信由该层协议负责管理,每一层使用自己的协议,只处理本层事情,与其他层无关),服务是垂直的(每一层利用下一层提供的服务与对等层通信)。

img

图3-2 OSI模型中数据通信过程

综上所述,OSI参考模型的层次划分原则是,网络中各节点都具有相同的层次,不同节点的同等层具有相同的功能,同一节点内相邻层之间通过接口通信,每一层使用下层提供的服务,并向上层提供服务,不同节点的同等层按照协议实现对等层之间的通信。

OSI模型是一个开放式系统互联的分层结构,同时也是一种抽象结构,而不是具体实现的描述;网络中各节点都具有相同的层次,不同端的相同层具有相同的功能。从目前来看,OSI模型并不很成功。由于该模型过于追求全面和完美,复杂而不实用,且缺乏市场经验和商业驱动,最终没能投入使用。而TCP/IP参考模型,从一开始就追求实用,反而成为今天事实上的工业标准。

提示

OSI模型是一个“理想模型”,TCP/IP模型才是事实上的网络通信标准,即“实用模型”。

课堂同步

请简述当你使用浏览器浏览校园网主页时,数据在OSI模型中的通信过程。