概述
OSI/RM”是英文“Open Systems Interconnection Reference Model”的缩写。
OSI/RM参考模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI参考模型共分为7个层次,从低到高依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
数据单元
在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参考模型中,当一台主机需要传送用户的数据(DATA)时,数据首先通过应用层的接口进入应用层。在应用层,用户的数据被加上应用层的报头(AH),形成应用层协议数据单元,然后通过应用层与表示层的接口数据单元,递交到表示层。
表示层并不“关心”应用层的数据格式,而是把整个应用层递交的数据报看成是一个整体进行封装,即加上表示层的报头(PH),然后递交到会话层。
同样,会话层、传输层、网络层、数据链路层也都要分别给上层递交下来的数据加上自己的报头。它们是会话层报头(SH)、传输层报头(TH)、网络层报头(NH)和数据链路层报头(DH)。其中,数据链路层还要给网络层递交的数据加上数据链路层报尾(DT)形成最终的一帧数据。
当一帧数据通过物理层传送到目标主机的物理层时,该主机的物理层把它递交到数据链路层。数据链路层负责去掉数据帧的帧头部DH和尾部DT(同时还进行数据校验)。如果数据没有出错,则递交到网络层。
同样,网络层、传输层、会话层、表示层、应用层也要做类似的工作。最终,原始数据被递交到目标主机的具体应用程序中。
数据传输原理
把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参考模型却没有做到这点。
最后
以上就是开心鱼为你收集整理的(9)OSI/RM参考模型的数据单元处理的全部内容,希望文章能够帮你解决(9)OSI/RM参考模型的数据单元处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复