简介
为了更好地促进互联网络的研究和发展,国际标准化组织ISO制定了网络互连的七层框架的一个参考模型,称为开放系统互连参考模型,简称OSI/RM(Open System Internetwork Reference Model)。OSI参考模型是一个具有7层协议结构的开放系统互连模型,是由国际标准化组织在20世纪80年代早期制定的一套普遍适用的规范集合,使全球范围的计算机可进行开放式通信。
OSI参考模型是一个具有七层结构的体系模型。发送和接收信息所涉及的内容和相应的设备称为实体。OSI的每一层都包含多个实体,处于同一层的实体称为对等实体。
OSI参考模型也采用了分层结构技术,把一个网络系统分成若干层,每一层都去实现不同的功能,每一层的功能都以协议形式正规描述,协议定义了某层同远方一个对等层通信所使用的一套规则和约定。每一层向相邻上层提供一套确定的服务,并且使用与之相邻的下层所提供的服务。从概念上来讲,每一层都与一个远方对等层通信,但实际上该层所产生的协议信息单元是借助于相邻下层所提供的服务传送的。因此,对等层之间的通信称为虚拟通信。
相关概念
实体与对等实体
每一层中,用于实现该层功能的活动元素被称为实体(Entity),实体既可以是软件实体(如一个进程、电子邮件系统、应用程序等)也可以是硬件实体(如终端、智能输入/输出芯片等)。软件实体可以嵌入在本地操作系统中,或者用户应用程序中。不同机器上位于同一层次、完成相同功能的实体被称为对等实体(Peer Entity)。如主机A和主机B传输层中的传输实体为对等实体。
对等层和对等协议
不同主机之间的相同层次被称为对等层(Peer)。主机A的应用层和主机B的应用层互为对等层、主机A的会话层和主机B的会话层互为对等层。
对等层之间存在协议关系。即对等实体之间互相通信需要遵守一定的规则,如通信的内容、通信的方式等。这种对等实体之间交换数据或通信时必须遵守的规则称为对等层协议(PeerProtocol)。除了物理层外,OSI模型中的其他6个对等层都存在对应的协议,如数据链路层协议、网络层协议等,对等实体利用对等协议进行通信以向高层提供服务。实际上,对等层之间的通信是虚拟通信,它们之间的通信是使用下--层提供的服务来实现的。
同一网络中不同主机的对等层,要安装运行相同的网络协议,主机间才能进行有效通信。这可以概括为“协议是水平的”。
服务与接口
在OSI分层结构模型中,每一层实体为相邻的上一层实体提供的通信功能称为服务。N层实体利用N-1层实体所提供的服务,向N+I层实体提供功能更强大的服务。这可以概括为“服务是垂直的”。例如,传输层实体利用网络层实体的服务,向应用层实体提供网页传输服务。
N层实体使用N-1层实体所提供的服务时,不需要知道N-1层实体所提供的服务是如何实现的以及N-1层实体间的协议,而只需要知道下一层可以为自己提供哪些服务(是快速昂贵通信还是慢速低廉通信),以及通过什么样的接口提供的。
在OSI模型中,各层之间的接口都有统一的规则。N层的服务访问点SAP(Service Access Point)是N层实体提供服务给N+1层的地方,SAP可以理解为下层实体之间的逻辑传输通道。每一层的SAP都有一个唯一标明它的地址。一个N层可能存在多个SAP。
数据单元
在OSI环境中,对等实体间按协议进行通信,上下层实体间按服务进行通信。这些通信都依靠3种数据单元的传输来实现。
服务数据单元
为实现N层服务所要传送的逻辑数据单元,称为N层服务数据单元(Service Data Unit,SDU),简称SDU。例如,用户需要浏览某网站的网页,该用户所在计算机的应用层实体(如浏览器生成应用层SDU,再通过下一层实体提供的服务,最后将该SDU传送到对等应用层实体(如某网站计算机上Web服务器)。
协议数据单元
对等实体之间为实现该层协议所交换的信息单元(Protocol Data Unit,PDU),称为协议数据单元。为了发送厅层的SDU,N层实体可能根据N层协议,将一个SDU划分为多个PDU。而在接收端,N层实体可能要将多个PDU恢复成一个N层的SDU。例如,用户请求网页信息被附加上HTTP(超文本传输协议)报头,变成PDU,而在网站服务器那端,如果用户申请的网页(即SDU)太长,则要被划分成多个PDU传送。
接口数据单元
在同一系统上下两层实体的交换信息中,经过SAP的信息单元(Interface Data Unit,IDU),称为接口数据单元,N层IDU由两部分组成,N层服务数据单元和一些供下一层实体用的控制信息(称为接口控制信息ICI)。
服务类型
在计算机网络协议的层次结构中,层与层之间具有服务与被服务的单向依赖关系,下层向上层提供服务,而上层调用下层的服务。因此可称任意相邻两层的下层为服务提供者,上层为服务用户。下层为上层提供的服务可分为两类:面向连接服务Connection Oriented service)和无连接服务(Conectionless Service)。
(1)面向连接服务:两个N层实体在数据交换前,必须先建立连接,即首先初始化状态信息。并且为N+1层实体的信息传输建立一个通道。在数据传输阶段,通过这些状态信息,第N层实体可以跟踪在它们之间的PDU交换及它们与更高层的SDU交换。当数据交换结束后应释放这个连接,即去除状态信息,释放建立连接时所分配的资源。
(2)无连接服务:两个N层实体通信前,不需要先建立一个连接,即不需要事先进行预定保留状态信息。同一个用户到相同目的地的信息块都独立发送,接收端无需返回确认信息。如果信息在传输中丢失,就不再重发。不可靠的无连接的服务通常被称为数据报服务。
服务原语
服务是通过一组服务原语(Primitive)来描述的,这些原语供用户和其他实体访问服务,通知服务提供者采取某些行动或报告某个对等实体的活动。服务原语被分为如下4类。
- 请求(Request):由服务用户发往服务提供者,请求它完成某项工作。指示(Indication):由服务提供者发往服务用户,指示发生了某些事件。响应(Response):由服务用户发往服务提供者,对前面发生的指示的响应。证实(Confirmation):由服务提供者发往服务用户,对前面发生的请求的证实。
层次划分原则
OSI是分层的体系结构,每一层是一个模块,用于完成某种功能,并具有自己的通信协议。ISO将整个OSI划分成七个层次,划分层次依据以下五个原则:
(1)网络中各节点具有相同的层次;
(2)网络中各节点同等层次功能相同;
(3)同一节点内相邻层通过接口通信;
(4)同一节点内底层向高层提供服务;
(5)网络中各节点同层通过协议通信。
OSI划分的七个层次由高到低依次为:Application(应用层)、Presentation(表示层)、Session(会话层)、Transport(传输层)、Network(网络层)、DataLink(数据链路层)和Physical(物理层)。其中应用层、表示层和会话层可以视为应用层,而剩余层则可视为数据流动层。
层次结构及功能
物理层
物理层是参考模型中的最底层,主要定义了系统的电气、机械、过程和功能标准。如:电压、物理数据速率、最大传输距离、物理联接器和其他的类似特性。物理层的主要功能是利用传输介质为数据链路层提供物理联接,负责数据流的物理传输工作。物理层传输的基本单位是比特流,即0和1,也就是最基本的电信号或光信号,是最基本的物理传输特征。
数据链路层
数据链路层是在通信实体间建立数据链路联接,传输的基本单位为“帧”,并为网络层提供差错控制和流量控制服务。数据链路层由MAC(介质访问控制子层)和LLC(逻辑链路控制子层)组成。介质访问控制子层的主要任务是规定如何在物理线路上传输帧。逻辑链路控制子层对在同一条网络链路上的设备之间的通信进行管理。数据链路控制子层主要负责逻辑上识别不同协议类型,并对其进行封装。也就是说数据链路控制子层会接受网络协议数据、分组的数据报并且添加更多的控制信息,从而把这个分组传送到它的目标设备。
网络层
网络层主要为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组选择最佳路径,从而实现拥塞控制、网络互联等功能。网络层是以路由器为最高节点俯瞰网络的关键层,它负责把分组从源网络传输到目标网络的路由选择工作。互联网是由多个网络组成在一起的一个集合,正是借助了网络层的路由路径选择功能,才能使得多个网络之间的联接得以畅通,信息得以共享。网络层提供的服务有面向联接和面向无联接的服务两种。面向联接的服务是可靠的联接服务,是数据在交换之前必须先建立联接,然后传输数据,结束后终止之前建立联接的服务。网络层以虚电路服务的方式实现面向联接的服务。面向无联接的服务是一种不可靠的服务,不能防止报文的丢失、重发或失序。面向无联接的服务优点在于其服务方式灵活方便,并且非常迅速。网络层以数据报服务的方式实现面向无联接的服务。
传输层
传输层是网络体系结构中高低层之间衔接的一个接口层。传输层不仅仅是一个单独的结构层,而是整个分析体系协议的核心。传输层主要为用户提供End—to—End(端到端)服务,处理数据报错误、数据包次序等传输问题。传输层是计算机通信体系结构中关键一层,它向高层屏蔽了下层数据的通信细节,使用户完全不用考虑物理层、数据链路层和网络层工作的详细情况。传输层使用网络层提供的网络联接服务,依据系统需求可以选择数据传输时使用面向联接的服务或是面向无联接的服务。
会话层
会话层的主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层在应用进程中建立、管理和终止会话。会话层还可以通过对话控制来决定使用何种通信方式,全双工通信或半双工通信。会话层通过自身协议对请求与应答进行协调。
表示层
表示层为在应用过程之间传送的信息提供表示方法的服务。表示层以下各层主要完成的是从源端到目的端可靠地的数据传送,而表示层更关心的是所传送数据的语法和语义。表示层的主要功能是处理在两个通信系统中交换信息的表示方式,主要包括数据格式变化、数据加密与解密、数据压缩与解压等。在网络带宽一定的前提下数据压缩的越小其传输速率就越快,所以表示层的数据压缩与解压被视为掌握网络传输速率的关键因素。表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。表示层为应用层所提供的服务包括:语法转换、语法选择和联接管理。
应用层
应用层是OSI模型中的最高层,是直接面向用户的一层,用户的通信内容要由应用进程解决,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,并且保证这些不同类型的应用所采用的低层通信协议是一致的。应用层中包含了若干独立的用户通用服务协议模块,为网络用户之间的通信提供专用的程序服务。需要注意的是应用层并不是应用程序,而是为应用程序提供服务。
数据封装过程
在OSI参考模型中,当一台主机需要传送用户的数据(DATA)时,数据首先通过应用层的接口进入应用层。在应用层,用户的数据被加上应用层的报头(AH),形成应用层协议数据单元,然后通过应用层与表示层的接口数据单元,递交到表示层。
表示层并不“关心”应用层的数据格式,而是把整个应用层递交的数据报看成是一个整体进行封装,即加上表示层的报头(PH),然后递交到会话层。
同样,会话层、传输层、网络层、数据链路层也都要分别给上层递交下来的数据加上自己的报头。它们是会话层报头(SH)、传输层报头(TH)、网络层报头(NH)和数据链路层报头(DH)。其中,数据链路层还要给网络层递交的数据加上数据链路层报尾(DT)形成最终的一帧数据。
当一帧数据通过物理层传送到目标主机的物理层时,该主机的物理层把它递交到数据链路层。数据链路层负责去掉数据帧的帧头部DH和尾部DT(同时还进行数据校验)。如果数据没有出错,则递交到网络层。
同样,网络层、传输层、会话层、表示层、应用层也要做类似的工作。最终,原始数据被递交到目标主机的具体应用程序中。
运作方式
数据由传送端的最上层(通常是指应用程序)产生,由上层往下层传送。每经过一层,都在前端增加一些该层专用的信息,这些信息称为报头,然后才传给下一层,可将加上报头想象为套上一层信封。因此到了最底层时,原本的数据已经套上了七层信封,而后通过网线、电话线、光纤等介质,传送到接收端。
接收端接收到数据后,从最底层向上层传送,每经过一层就拆掉一层信封(即去除该层所认识的报头),直到最上层,数据便恢复成当初从传送端最上层产生时的原貌。
如果以网络的术语来说,这种每一层将原始数据加上报头的操作,便是数据的封装,而封装前的原始数据则称为数据承载。在传送端,上层将数据传给下层,下层将上层传过来的数据当成数据承载,再将数据承载封装成新的数据,继续传给更下层去封装,直到最底层为止。
OSI参考模型与TCP/IP模型对比
层次结构
OSI参考模型与TCP/IP模型都采用了分层体系结构,将庞大而复杂的问题转化为若干个较小且易于处理的子问题。不同的是OSl参考模型划分7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP参考模型最多划分了5个层次,分别是物理层,数据链路层、网络层、传输层和应用层,将OSI参考模型中的高三层合并为一层统称应用层。有些情况甚至只有三个或四个层次。
在层次结构上,相同之处:都采用了分层体系结构;不同之处:TCP/IP参考模型比OSI参考模型更简化。
层次关系
OSI参考模型与TCP/IP模型各自层与层之间关系相似。在OSI参考模型中规定数据为协议数据单元(PDU),通常在该层的PDU前面增加一个字母的前缀,标识为哪一层数据。如会话层通过传送会话层协议数据单元(SPDU)和对等的会话层进行通信。相应的有应用层协议数据单元(APNJ)、表示层协议数据单元(PPDU)、段(Segment)、数据包(Packet)、帧(Frame)、比特流(Bit)。在网络通信中,通过传输层的PDU到对方的对等层,以实现通信。从逻辑上讲,对等层间的通信,是两个设备的同一层直接通信。而物理上,每一层都只与自己相邻的上下两层直接通信,下层通过服务访问点为上一层提供服务。当接受数据时,数据是自下而上传输;当发送数据时,数据则是自上向下传输的。在这一点上TCP/IP参考模型与OSI参考模型是一致的。只是TCP/IP参考模型相比OSI参考模型少了会话层协议数据单元(SPDU)和表示层协议数据单元(PPDU)。
在层次间关系上,相同之处:都是对等的层间通信;不同之处:TCP/IP参考模型比OSI参考模型层次更清晰简练。
功能
在功能上,大致相同,在两个模型中,传输层及以上的各层都是为了通信的进程提供点到点、与网络无关的传输服务;TCP/IP参考模型比OSI参考模型有更好的网络管理功能。
数据传输原理
把TCP/IP模型的数据传输原理分成几个步骤:
(1)当应用进程A的数据传送到应用层时,应用层为数据加上本层的控制报头后,将其组织成应用层的数据服务单元,然后向下传输到传输层。
(2)传输层收到该数据单元后,加上本层的控制报头,构成传输层的数据服务单元,该数据服务单元被称为报文(message)。
(3)传输层将报文传送到网络层时,由于网络层数据单元的长度有限制,因此,传输层的长报文将被分为若干个较短的数据段。每个数据段再加上网络层的控制报头,就构成了网络层的数据服务单元,它被称为分组。
(4)网络层的分组传送到数据链路层时,加上数据链路层的控制信息后构成数据链路层的数据服务单元,它被称为帧。
(5)数据链路层的帧传送到物理层后,物理层将以比特流的方式通过传输介质传输出去。当比特流到达目的结点主机B时,再从物理层依层上传,每层对其对应层的控制报头进行处理,将用户数据交给高层,最终将进程A的数据送给主机B的进程B,实现了数据的透明传输。
在OSI参考模型中数据的传输和TCP/IP模型原理是完全一样的,只不过OSI参考模型在前面说的第二和第三步骤中还要加上对表示层和会话层数据单元的封装。实际上,不管是OSI参考模型还是TCP/IP模型,都是数据发送方的各层相当于将各自的控制信息添加到上层传来的数据上,然后一起打包继续向前传递,而数据接收方的各层则是将接到的数据包进行解压,去掉发送方对等层添加在数据上的控制信息,然后传递给上层,最终实现数据的传输。在数据传输原理上二者是没有太大区别的,但OSI模型会话层在大多数应用中很少用到,表示层几乎是窄的。
在数据链路层与网络层之间有很多的子层插入,每个子层有不同的功能。OSI模型将“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,使它的实现是困难的。同时,寻址、流控与差错控制在每一层里都重复出现,必然降低系统效率。而TCP/IP在服务、接口与协议的区别上不清楚。一个好的软件工程应该将功能与实现方法区分开来,TCP/IP恰恰没有很好地做到这点,这就使得TCP/IP模型对于使用新技术的指导意义不够。另外,TCP/IP的丰机一网络层本身并不是实际的一层,它定义了网络层与数据链路层的接口。物理层与数据链路层的划分是必要和合理的,一个好的参考模型应该将它们区分开来,而TCP/IP参考模型却没有做到这点。
OSI参考模型的诞生
经过20世纪60年代、70年代前期的发展,人们对组网技术,组网方法和组网理论的研究日趋成熟。为了促进网络产品的开发,各大计算机公司纷纷制定了自己的网络技术标准。1974年,IBM公司首先提出了系统网络体系结构(System Network Architecture,SNA标准。1975年,DEC公司也公布了数字网络体系结构(Digital Network Architecture,DNA)标准。这些标准只在一个公司范围内有效。遵从一个标准、能够互连的网络通信产品,只是同一公司生产的同构型产品。网络市场的这种状况使得用户在投资方向上无所适从,也不利于厂商之间的公平竞争。人们迫切要求制定一套标准,各厂商遵从这个标准生产网络产品,使各种不同型号的计算机能方便地互联成网。为此,1977年国际标准化组织(ISO)的SC16分技术委员会着手制定开放系统互联参考模型(Reference Model of Open System Interconnection,OSI/RM)。1981年正式公布了这个模型,并得到了国际上的承认,被认为确立了新一代网络结构。所谓开放系统是指,只要网络产品(软件、硬件)符合OSI标准,任何型号的计算机都可以互联成网。
OSI参考模型规定了在节点间传送的分组(一个信息传送单位)格式。它将网络应用软件的共同部分分为7个层次,称为协议。从第1层到第7层依次是:物理层、链路层、网络层、传输层、会话层、表示层、应用层。每一层利用下一层的功能实现一些本层次的新功能,为上一层提供增值服务。因此,任意一层的功能都包含了它下面所有层次的功能。层与层之间留有若干接口,称为服务访问点(Service Access Point,SAP)任意一层就通过这些服务访问点来调用相邻的下一层的功能,以实现本层的新功能。同时规定,任意一层都只能调用它相邻的下一层的功能。
OSI模型适用于将不同型号的计算机互连成一个单一的网络。它极大地推动了网络标准化的进程,而这个进程又反过来促进了计算机网络的迅速发展。这一阶段是网络的标准化时期。
总结
(1)OSI参考模型和TCP/IP模型之共同点:都是基于独立的协议栈的概念;它们的功能大体相似,在两个模型中,传输层及以上的各层都是为了通信的进程提供点到点、与网络无关的传输服务;OSI参考模型,与TCP/IP模型传输层以上的层都以应用为主导。
(2)OSI参考模型与TCP/IP模型的主要差别:TCP/IP一开始就考虑到多种异构网的互联问题,并将网际协议IP作为TCP/IP的重要组成部门。但ISO最初只考虑到使用一种标准的公用数据网将各种不同的系统互联在一起。TCP/IP一开始就对面向连接和无连接并重,而OSI在开始时只强调面向连接服务。TCP/IP有较好的网络管理功能,而这方面OSI至后来才开始这个问题,两者有所不同。
(3)OSI参考模型与TCP/IP模型的相互关系:OSI模型是对发生在网络设备间的信息传输过程的一种理论化的描述,他仅仅是一种模型,并没有定义如何通过硬件和软件实现每一。层功能,但可以很有效地帮助我们理解数据传输的过程。
OSI参考模型的优点
综观整个OSI模型的设计,可以归纳出以下优点。
1、分工合作,责任明确
性质相似的工作划分在同一层,性质相异的工作则划分到不同层。如此一来,每一层所负责的工作范围,都区分得很清楚,彼此不会重叠。万一出了问题,很容易判断是哪一层没做好,就应该先改善该层的工作,不至于无从着手。
2、对等交谈
对等是指所处的层级相同,对等交谈意指同一层找同一层谈,例如:第3层找第3层谈、第4层找第4层谈...依此类推。所以某一方的第N层只与对方的第N层交谈,是否收到、解读自己所送出的信息即可,完全不必关心对方的第N-1层或第N+1层会如何做,因为那是由一方的第N-1层与第N+1层来处理。
其实,双方以对等身份交谈是常用的规则,这样的最大好处是简化了各层所负责的事情。因此,通信协议是对等个体通信时的一切约定。
3、逐层处理,层层负责
既然层次分得很清楚,处理事情时当然应该按部就班,逐层处理,决不允许越过上一层,或是越过下一层。因此,第N层收到数据后,一定先把数据进行处理,才会将数据向上传送给第N+1层,如果收到第N+1层传下来的数据,也是处理无误后才向下传给第N-1层。任何一层收到数据时,都可以相信上一层或下一层已经做完它们该做的事,层级的多少还要考虑效率与实际操作的难易,并非层数越多越好。