开放系统互联(Open System Interconnection,OSI)是由ISO发起的,其任务是制定国际计算机通信标准,特别是促进不兼容系统间的互联。OSI模型将计算机通信协议划分为七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
1. OSI模型
随着网络技术的进步和各种网络产品的不断涌现,亟需解决不同系统互联的问题。1977年国际标准化组织ISO专门设立了一个委员会,提出了异种机系统互联的标准框架,即开放系统互联参考模型(OSI/RM)该模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。1至4层被认为是低层,这些层与数据移动密切相关。5至7层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。各层间不能把各自的工作内容绝对分别开来,又要密切合作。
OSI模型和TCP/IP模型有一个常见的对应方法,通常将IP层认为是OSI的网络层协议,TCP认为是OSI的传输层协议。这样就将OSI模型和常用的通信协议进行了关联。
OSI是Open System Interconnection 的缩写,意为开放式系统互联参考模型。在OSI出现之前,
计算机网络中存在众多的
体系结构,为了解决不同体系结构的网络的互联问题,国际标准化组织ISO于1981年制定了
开放系统互连参考模型(Open System Interconnection Reference Model,
OSI/RM)。这个模型把网络通信的工作分为7层,它们由低到高分别是
物理层(Physical Layer),
数据链路层(Data Link Layer),网络层(Network Layer),
传输层(Transport Layer),
会话层(Session Layer),
表示层(Presentation Layer)和
应用层(Application Layer)。
第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第五层到第七层为OSI参考模型的高三层,具体负责端到端的数据通信;第四层负责高低层的连接。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。物理接口之间的转接,以及
中继器与中继器之间的连接就只需在
物理层中进行即可;而
路由器与路由器之间的连接则只需经过网络层以下的三层即可。总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。
OSI 标准制定过程中采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的
体系结构办法。在OSI中,采用了三级抽象,即体系结构,服务定义,协议规格说明。
为方便记忆可以将七层从高到低视为:All People Seem To Need Data Processing。每一个大写字母与七层名称头一个字母相对应。
2. OSI分层原则
网络中各结点都有相同的层次
不同结点相同层次具有相同的功能
同一结点相邻层间通过接口通信
每一层可以使用下层提供的服务,并向上层提供服务
3. OSIOSI/RM分层
对等层通信的实质:
对等层实体之间虚拟通信;下层向上层提供服务;实际通信在最底层完成;发送方数据由最高层逐渐向下层传递,到接收方数据由最低层逐渐向高层传递。
协议数据单元PDU:OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。
而
传输层及以下各层的PDU另外还有各自特定的名称:
4. OSI七层结构
4.1物理层
物理层是OSI分层结构体系中最重要、最基础的一层,它建立在传输媒介基础上,起建立、维护和取消物理连接作用,实现设备之间的物理接口。物理层之接收和发送一串比特(bit)流,不考虑信息的意义和信息结构。
物理层包括对连接到网络上的设备描述其各种机械的、电气的、功能的规定。具体地讲,机械特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE(数据终端设备)和DCE(数据通信设备)之间各个线路的功能;过程特性定义了利用信号线进行bit流传输的一组操作规程,是指在物理连接的建立、维护、交换信息时,DTE和DCE双方在各电路上的动作系列。物理层的数据单位是位。
物理层要形成适合数据传输需要的实体,为数据传送服务:
1)保证数据按位传输的正确性;
2)向数据链路层提供一个透明的位传输;
3)提供足够的
带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞。传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或
异步传输的需要。
完成物理层的一些管理工作,如在数据终端设备、数据通信和交换设备等设备之间完成对数据链路的建立、保持和拆除操作。
物理层的典型设备:光纤、同轴电缆、双绞线、
中继器和
集线器。
4.2 数据链路层
在
物理层提供比特流服务的基础上,将比特信息封装成数据帧Frame,起到在物理层上建立、撤销、标识逻辑链接和链路复用以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址。建立相邻结点之间的
数据链路,通过
差错控制提供
数据帧(Frame)在信道上无差错的传输,同时为其上面的网络层提供有效的服务。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的
成帧、
流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、
帧中继等。
链路层是为网络层提供
数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能:
4.3网络层
网络层也称通信子网层,是高层协议之间的界面层,用于控制通信子网的操作,是通信子网与资源子网的接口。在计算机网络中进行通信的两个计算机之间可能会经过很多个
数据链路,也可能还要经过很多
通信子网。网络层的任务就是选择合适的网间
路由和交换结点,确保数据及时传送。网络层将解封装
数据链路层收到的帧,提取
数据包,包中封装有网络层包头,其中含有
逻辑地址信息源站点和目的站点地址的网络地址。
如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“
帧”。IP是第3层问题的一部分,此外还有一些
路由协议和
地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现
拥塞控制、网际互连、信息包顺序控制及网络记账等功能。
在网络层交换的数据单元的单位是分割和重新组合
数据包(packet)。
网络层协议的代表包括:IP、IPX、OSPF等。
网络层主要功能是基于网络层地址(IP地址)进行不同网络系统间的路径选择。
网络层为建立网络连接和为上层提供服务,应具备以下主要功能:
4.4传输层
传输层建立在网络层和会话层之间,实质上它是网络体系结构中高低层之间衔接的一个接口层。用一个寻址机制来标识一个特定的应用程序(端口号)。传输层不仅是一个单独的结构层,它还是整个分层体系协议的核心,没有传输层整个分层协议就没有意义。
传输层的
数据单元是由数据组织成的
数据段(segment)这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的
数据包和其它在传输过程中可能发生的危险。
传输层获得下层提供的服务包括:
传输层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务,所谓透明的传输是指在通信过程中
传输层对上层屏蔽了通信传输系统的具体细节。
传输层协议的代表包括:TCP、UDP、SPX等。
传输层的主要功能是从会话层接收数据,根据需要把数据切成较小的数据片,并把数据传送给网络层,确保数据片正确到达网络层,从而实现两层数据的透明传送。
传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。
传输层也称为
运输层。传输层只存在于端开放系统中,是介于低三层
通信子网系统和高三层之间的一层,但是很重要的一层。因为它是源端到目的端对数据传送进行控制从低到高的最后一层。
有一个既存事实,即世界上各种通信子网在性能上存在着很大差异。例如电话交换网、分组交换网、公用数据交换网、局域网等通信子网都可互连,但它们提供的吞吐量、传输速率、数据延迟通信费用各不相同。对于会话层来说,却要求有一性能恒定的界面。
传输层就承担了这一功能。它采用分流/合流、复用/介复用技术来调节上述通信子网的差异,使会话层感受不到。
此外传输层还要具备差错恢复、
流量控制等功能,以此对会话层屏蔽
通信子网在这些方面的细节与差异。传输层面对的
数据对象已不是
网络地址和
主机地址,而是和会话层的界面端口。上述功能的最终目的是为会话提供可靠的、无误的数据传输。传输层的服务一般要经历传输连接建立阶段、
数据传送阶段、传输连接释放阶段3个阶段才算完成一个完整的服务过程。而在数据传送阶段又分为一般数据传送和加速数据传送两种。
传输层服务分成5种类型。基本可以满足对传送质量、
传送速度、传送费用的各种不同需要。
4.5会话层
这一层也可以称为会晤层或对话层,在
会话层及以上的高层次中,
数据传送的单位不再另外命名,统称为
报文。会话层不参与具体的传输,它提供包括访问验证和
会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用
校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层、
表示层、应用层构成开放系统的高3层,面对应用进程提供
分布处理,对话管理,信息表示,恢复最后的差错等。会话层同样要担负应用进程服务要求,而
运输层不能完成的那部分工作,给运输层功能差距以弥补。主要的功能是对话管理,
数据流同步和重新同步。要完成这些功能,需要由大量的服务单元功能组合,已经制定的功能单元已有几十种。
这个阶段是在两个会话用户之间实现有组织的,同步的数据传输。用户
数据单元为SSDU,而协议数据单元为SPDU。会话用户之间的
数据传送过程是将SSDU转变成SPDU进行的。
4.6表示层
表示层向上对应用层提供服务,向下接收来自会话层的服务。表示层是为在应用过程之间传送的信息提供表示方法的服务,它关心的只是发出信息的语法与语义。表示层要完成某些特定的功能,主要有不同数据编码格式的转换,提供数据压缩、解压缩服务,对数据进行加密、解密。例如图像格式的显示,就是由位于表示层的协议来支持。
表示层为应用层提供服务包括语法选择、语法转换等。语法选择是提供一种初始语法和以后修改这种选择的手段。语法转换涉及代码转换和字符集的转换、数据格式的修改以及对数据结构操作的适配。
4.7应用层
网络应用层是通信用户之间的窗口,为用户提供网络管理、文件传输、事务处理等服务。其中包含了若干个独立的、用户通用的服务协议模块。网络应用层是OSI的最高层,为网络用户之间的通信提供专用的程序。应用层的内容主要取决于用户的各自需要,这一层设计的主要问题是分布数据库、分布计算技术、网络操作系统和分布操作系统、远程文件传输、电子邮件、终端电话及远程作业登录与控制等。至2011年应用层在国际上没有完整的标准,是一个范围很广的研究领域。在OSI的7个层次中,应用层是最复杂的,所包含的应用层协议也最多,有些还在研究和开发之中。
应用层为操作系统或网络应用程序提供访问
网络服务的接口。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP、DNS等。
4.8 OSI总结
通过 OSI 层,信息可以从一台计算机的软件应用程序传输到另一台的应用程序上。例如,计算机 A 上的应用程序要将信息发送到计算机 B 的应用程序,则计算机 A 中的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到
表示层(第六层),表示层将数据转送到
会话层(第五层),如此继续,直至
物理层(第一层)。在物理层,数据被放置在
物理网络媒介中并被发送至计算机 B 。计算机 B 的物理层接收来自物理媒介的数据,然后将信息向上发送至
数据链路层(第二层),数据链路层再转送给网络层,依次继续直到信息到达计算机 B 的应用层。最后,计算机 B 的应用层再将信息传送给应用程序接收端,从而完成通信过程。
OSI 的七层运用各种各样的控制信息来和其他计算机系统的对应层进行通信。这些控制信息包含特殊的请求和说明,它们在对应的 OSI 层间进行交换。每一层数据的头和尾是两个携带控制信息的基本形式。
对于从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控制信息称为尾。然而,在对来自上一层数据增加协议头和协议尾,对一个 OSI 层来说并不是必需的。
当数据在各层间传送时,每一层都可以在数据上增加头和尾,而这些数据已经包含了上一层增加的头和尾。协议头包含了有关层与层间的通信信息。头、尾以及数据是相关联的概念,它们取决于分析信息单元的协议层。例如,
传输层头包含了只有传输层可以看到的信息,传输层下面的其他层只将此头作为数据的一部分传递。对于网络层,一个信息单元由第三层的头和数据组成。对于
数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看作是数据。换句话说,在给定的某一 OSI 层,信息单元的数据部分包含来自于所有上层的头和尾以及数据,这称之为封装。
例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B ,数据首先传送至应用层。 计算机 A 的应用层通过在数据上添加协议头来和计算机 B 的应用层通信。所形成的信息单元包含协议头、数据、可能还有协议尾,被发送至
表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在
物理层,整个信息单元通过
网络介质传输。
计算机 B 中的物理层收到信息单元并将其传送至
数据链路层;然后 B 中的数据链路层读取计算机 A 的数据链路层添加的协议头中的控制信息;然后去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至上一层。应用层执行完这些动作后,数据就被传送至计算机 B 中的应用程序,这些数据和计算机 A 的应用程序所发送的完全相同 。
一个 OSI 层与另一层之间的通信是利用第二层提供的服务完成的。相邻层提供的服务帮助一 OSI 层与另一计算机系统的对应层进行通信。一个 OSI 模型的特定层通常是与另外三个 OSI 层联系:与之直接相邻的上一层和下一层,还有目标联网计算机系统的对应层。例如,计算机 A 的
数据链路层应与其网络层,
物理层以及计算机 B 的数据链路层进行通信。