《OSI七层模型详解(共27页).docx》由会员分享,可在线阅读,更多相关《OSI七层模型详解(共27页).docx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一层 物理层 O S I 模型的最低层或第一层,该层包括物理连网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的桌面P C 上插入网络接口卡,你就建立了计算机连网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。网络物理问题,如电线断开,将影响物理层。 (一)物理层的主要功能 为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成.一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是 不管有多少物理媒体参与,都要在通信
2、的两个数据终端设备间连接起来,形成一条通路. 传输数据.物理层要形成适合数据传输需要的实体,为数据传送服务.一是要保证数据能在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞.传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要.第二层 数据链路层数据链路(Data Link Layer)可以粗略地理解为数据通道。要为终端设备间的数据通信提供传输媒体及其连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数据通信.每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来
3、的数据收发关系就叫作数据链路.而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,拆除,对数据的检错,但是并不纠正错误。 (一)链路层的主要功能数据链路层是OSI参考模型的第二层,该层解决两个相邻结点之间的通信问题,实现两个相邻结点链路上无差错的协议数据单元传输。数据链路层传输的协议数据单元称为数据帧。 所谓链路就是数据传输中任何两个相邻结点间的点到点的物理线路。数据帧通常是由网卡(NIC)产生:上一层的协议数据单元(数据包)传递到NIC后,NIC通过添加头部和尾部将数据打包(封装成帧)
4、,如图3-2-6所示;然后数据帧沿着链路再传送至目的结点。 数据帧首部和尾部含有对等数据链路进程需要使用的协议信息。头部的信息包括发送结点和接收结点的地址(MAC地址)以及错误校验信息等。 数据链路层不关心数据包中包含什么信息,而仅是将其传递到网络中的下一结点。数据链路层的主要功能概括如下: (1) 数据链路的管理 和物理层相似,数据链路层要负责建立、维持和释放数据链路的连接。 在局域网中,数据链路层又被划分为逻辑链路控制子层和介质访问控制子层。 (2) 帧同步 帧同步要解决的问题是接收方如何能从收到的比特流中准确地区分出一帧的开始和结束。一般可采用以下方法(目前普遍使用的是后两种): 字节计
5、数法 采用一个特定的字符(例如:SOH)来表示一帧的开始,并以一个专门的字段(Count)来表示帧内的字节数。 字符填充法 采用一些特定的字符来表示一帧的开始和结束。 比特填充法 采用一串特定的比特组合来表示一帧的开始和结束。 违法编码法 采用“违法”的编码来表示一帧的开始和结束。 (3) 差错控制 差错控制是指在数据通信过程中发现能检测或纠正差错,并将差错限制在尽可能小的允许范围内。差错检测可通过差错控制编码来实现的;而差错纠正则通过差错控制方法来实现。详见“差错控制技术”一节中的相关介绍。 (4) 流量控制 如果发送结点的发送能力大于接收结点的接收能力,将导致接收方来不及接收。流量控制所要
6、解决的就是控制发送方的速率,使其不超过接收方所能承受的能力。 第三层 网络层 O S I 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。 网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B 的最佳路径。由于网络层处理路由,而路由器因为即连接网络各段,并智能指导数据传送,属于网络层。在网络中,“路由”是基于编址方案、使用模式以及可达性来指引数据的发送。 网络层在提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从
7、而向提供最基本的端到端的数据传送服务。网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括路由选择、和网际互连等。 第四层 传输层传输层是OSI中最重要, 最关键的一层,是唯一负责总体的数据传输和数据控制的一层.传输层提供端到端的交换数据的机制.传输层对等高三层提供可靠的传输服务,对网络层提供可靠的目的地站点信息。 传输层也称为运输层.传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层.因为它是源端到目的端对数据传送进行控制从低到高的最后一层. (一)传输层端口的概念传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提
8、供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。 网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。 计算机网络中的资源子网是通信的发起者和接收者,其中的每个设备称为端点;通信子网提供网络中的通信服务,其中的设备称为结点。OSI参考模型中用于通信控制的是下面四层,但它们的控制对象不一样。(二)传输层的基本功能传输层提供了主机应用程序进程之间的端到端的服务,基本功能如下 (1) 分割与重组数据 (2) 按端口号寻址 (3) 连接管理 (4) 差错控制和流量控制 传输层要向会话层提供通信服
9、务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。(三)传输层在OSI中的地位和作用传输层是整个协议层次结构的核心,是惟一负责总体数据传输和控制的一层。 在OSI七层模型中传输层是负责数据通信的最高层,又是面向网络通信的低三层和面向信息处理的高三层之间的中间层。因为网络层不一定保证服务的可靠,而用户也不能直接对通信子网加以控制,因此在网络层之上,加一层即传输层以改善传输质量。 传输层利用网络层提供的服务,并通过传输层地址提供给高层用户传输数据的通信端口,使系统间高层资源的共享不必考虑数据通信方面和不可靠的数据传输方面的问题。它的主要功能是:对一个进行的对话或连接提供可靠的传输服
10、务,在通向网络的单一物理连接上实现该连接的复用,在单一连接上提供端到端的序号与流量控制、差错控制及恢复等服务。第五层 会话层(一)会话层简介设置会话层的目的是管理用户应用进程之间的对话过程,即提供进程间的会话服务。所谓对话(dialogue)即是指本地系统的会话实体与远地对等的会话实体之间交换数据的过程。会话层的主要功能如下:l会话连接的管理。l对话管理。对传送的报文划分成对话单元(dialogue unit),在适当的时候中断对话,并在预定的同步点上恢复对话。l同步管理。在传送的数据流中插入适当的同步点,一旦出现差错,对等的会话服务用户在商定的同步点上恢复对话。l活动管理。将报文流分成活动(
11、activity)逻辑单元,对用户应用的交互活动过程进行结构化管理,即每一个活动独立于其前、后到达的活动。l异常情况的处理。在会话期间报告来自下面网络的异常情况,保证在会话连接释放之前所有的数据单元都被应用进程所接收。(二) 会话层服务的功能单元会话层服务是定义在ISO 8326这一文件中,在1984年完成了最后的标准版本,相应的ITU-T建议书为X.215。ISO 8326规定了会话服务三个阶段(连接建立、数据传送和连接释放)的目的,以及服务描述和服务原语等,共规定了21种服务和58条面向连接的服务原语。要想全面实现会话层服务是十分复杂的,而且也无此必要,因为几乎没有一个应用会用到所有的服务
12、。因此ISO 8326将若干相关联的服务组成一个功能单元(function unit),每一个功能单元则提供一种可供选择的工作类型。所需要的功能单元在会话连接建立时协商。目前共定义了12个功能单元,最重要的一个功能单元是核心功能单元,它是最小的功能单元,在任何具体实现中都包含这个核心单元,它包括的服务有:会话连接、正常数据传送、有序释放连接、用户终止连接和提供者终止连接等。单独的核心功能单元对于微型计算机是有用的。为了方便用户从12个功能单元中选择一些合适的功能单元来用,会话服务还定义了3个功能单元子集,作为对特定的具体实现的建议。每个子集包括核心功能以及若干功能单元。这3个子集是:l基本组合
13、子集BCS(Basic Combined Subset)。l基本同步子集BSS(Basic Synchronization Subset)。l基本活动子集BAS(Basic Activity Subset)。它是在BCS的基础上增加了活动的管理、用户和服务提供者发出的异常报告等服务,以保证可靠的报文传输,适合于电子邮件方面的应用。表5-1给出了会话层的3个子集和功能单元的关系,表中的表示某个子集具有这个功能单元。序号功能单元基本组合子集BCS基本同步子集BSS基本活动子集BAS1核心(不可协商)2半双工3全双工4特权数据5异常报告6协商释放7次同步8主同步9重新同步10加速数据11活动管理12
14、能力数据交换表5-1 会话层的子集和功能单元的关系在上表中,加速数据功能单元不包含在3个子集之中。值得注意的是,以上划分的三个子集并不能作为会话协商的单位,在建立会话连接时必须单独对各个功能单元进行协商。会话层和传输层有着显著区别:传输协议负责产生和维持在两个端点之间的逻辑连接。会话协议则在上述基本的连接服务的基础上,用增值的办法提供一个用户接口。传输层的服务很简单,就是要提供一个可靠的传输数据的服务。但传输协议是很复杂的,因为要在各种不利的条件下保证传输服务是可靠的。会话层则相反,当发送出一个会话协议数据单元SPDU时,传输层可以保证将它送到对等用户,因此会话协议是非常简单的。然而会话层定义
15、的为数据交换用的各种服务却非常丰富而复杂,可供应用层根据需要从中进行选择。对某个特定的应用来说,某些会话服务就可能不被应用层所选用。(三) 对话管理与对话同步在任一种双工方式下进行的数据交换过程,即构成一个对话过程,对数据交换过程(对话过程)的控制称为对话管理。为使对话过程能有条不紊地可靠进行,要求对话双方有同步的措施加以保障,即所谓的对话同步。对话同步是会话服务的重要内容,会话服务提供者允许会话用户在传送的数据中自由设置同步点,并对同步点赋予同步序号,用于识别同步点和实现同步。在会话数据流中插入同步点是为了从错误中恢复,虽然传输层能够从通信错误和子网崩溃中恢复,但不能代替会话层的恢复机制。主
16、次同步点也是有所区别的。第一个区别是它们对数据交换过程的影响不同。第二个区别是对退回过程的影响不同。对话管理和对话同步都是通过使用各种“权标”(token)来完成。权标代表了某种服务的使用权,类似于局域网中使用的令牌,它被动态地分配给某一方的服务用户,以便允许该用户使用会话层的某种服务,它是会话连接上的一种属性。权标的引入是由于会话层内存在着较多的用户交互,要控制和协调这些交互,并保证交互动作的逻辑顺序的正确和避免在数据交换中产生混乱,就需要用权标进行统一管理。会话层共设置了4种权标 l 数据权标:在单工或半双工方式下使一个服务用户拥有的数据发送权标记。l 释放权标:使一个服务用户拥有释放会话
17、连接权的标记。l 次同步权标:使一个服务用户拥有使用次同步权的标记,用于控制在对话单元中次同步点的插入。l 主同步/活动权标:使一个服务用于使用主同步权或对话活动权的标记,它用于控制活动的开始与结束,以及控制在一个对话活动中主同步点的插入。建立会话连接时可以就会话中使用哪些权标以及权标的最初持有者进行协商,权标的拥有权可以在两个会话用户之间易手。权标管理功能提供的服务允许一个用户主动交出权标或是向另一个用户索取权标。图9-3就是利用数据权标进行双向交替数据传送的例子。 我们知道,网络层和传输层提供两种数据传送功能:正常数据传送和加速数据传送。由于会话数据流具有结构性,所以会话层又增加了特权数据
18、传送功能和能力数据传送功能。正常数据可以采用全双工或半双工方式传送。如果采用半双工方式,则只有持有权标的一方可以发送数据,另一方想发送数据时,可以向对方请求权标(如图9-3所示)。特权数据的发送不需要权标,在图9-3中用户B没有权标也可发送特权数据。这样,特权数据流和正常数据流的混合形成了全双工/半双工的混合操作方式。特权数据流的真正目的是为高层控制报文和网络管理提供途径。所谓能力数据,也用作控制目的,不过是为了会话层本身的控制,例如在会话期间改变会话的功能和参数,与特权数据不同的是它必须完全得到对方的确认。能力数据只能在活动之外(或两个活动之间的间隔内)发出,发送能力数据必须同时持有数据权标
19、、次同步权标和主同步/活动权标。(四) 活动管理活动是为了保持进程之间的同步,将所传送的数据流分成不同的逻辑工作块,供会话服务用户识别。在一个会话连接上,某一时刻只能存在一个活动,一个活动可以跨越几个会话连接,即一个活动可以在某个会话连接上中断,而在之后的某一时刻在同一个或在后续某一个连接上恢复,也可以在一个会话连接期间允许有多个顺序的活动。每一个活动由许多对话单元组成。活动与对话单元及同步点等概念的关系如图9-4所示。由图看出,从用户发出会话连接请求开始,到收到连接释放确认为止,是一个会话连接的持续时间。在这期间的数据交换过程可以分成若干个对话活动来完成,而每个活动又由若干个对话单元所组成。
20、 活动管理功能是主同步点的一个扩展,它为会话用户提供了可以将整个对话分解成若干离散的活动的方法。每一个活动可以看作是会话用户之间传送数据的一个特定阶段,完成一个活动相当于交换了一个应用协议数据单元APDU,将它作为一个活动来标识则由会话实体来完成。一次会话过程可能比较长,例如在两台计算机之间一次传送多个文件,用户希望知道什么时候一个文件结束,下一个文件开始。为此可以把一个文件的传送组织成一个活动,一个活动就是会话过程中相对独立的一部分。一个活动也可以暂时被中断,成为挂起的活动,例如当一个较长的文件传送时,中途因为紧急情况需要暂时停止,等一会儿再继续传送完成,这时可挂起当前的活动,然后开始一个新
21、的活动,当新的活动结束后再恢复原来被挂起的活动。活动与同步点有密切关系,一个新的活动开始,同步点序号置为1(主同步点),在一个活动内可以设置其他的主同步点或次同步点。因此,一旦一个活动开始,它不可能退回到上一个活动而重新同步。因为会话的双方都必须对一个活动什么时候开始,什么时候结束,都要有一个共同的认识,若两者同时开始设置一个活动就会造成冲突,因此谁能设置活动就必须对权标的控制。活动权标与数据权标不同,但是和主同步权标是同一个。(五)会话服务原语1、会话连接建立原语会话连接的建立过程涉及连接属性的协商,接收方必须应答,表示同意或不同意发送方的建议。四种形式的连接原语(S_CONNECT)具有同
22、样的参数集合,有些参数是可选的,有些参数是必要的,所有参数列于中,以下将解释这些参数的意义和用法。连接标识由用户选择。主叫方、被叫方和响应者地址就是与会话用户相关联的服务访问点。执行结果表示被叫方对连接请求的反应,可能是下面三个结果之一:接受、会话服务用户拒绝、会话服务提供者拒绝。服务质量是一个参数表,包括残留差错率、时延、吞吐量、优先级和可靠性等,与传输层的QoS类似。会话需求是一个功能单元表。连接的发起者在请求原语中列出一个功能单元表,连接的接受者将在响应原语中列出另一个功能单元表,只有两个表的交集才是协商确定的功能单元,可以在将要建立的会话连接中使用。初始同步点序号是在0到区间中的一个整
23、数,这是一个条件参数,仅当使用同步服务时才有意义。类似地,权标的初始分配也是条件参数,当选用了权标控制功能时必须协商谁是权标的最初持有者。这个参数的值在请求/指示原语中可能是“连接请求方”、“连接接受方”或者“由接受方选择”。如果是前两种值,则返回的响应/确认原语中这个参数为空;如果是第三个值,则返回的原语中这个参数可取“连接请求方”或“连接接受方”。用户数据也作为会话连接原语的任选参数,可以携带诸如上层应用实体标题等特别信息。2、置次同步点原语发送用户可以用S_SYNC_MINOR服务原语在数据流中插入次同步点,该原语的参数包括类型、序号和用户数据三个。次同步点的序号由原语中的序号参数指定。
24、次同步点可以是要求确认的或非确认的,由类型参数指明。用户数据参数部分是任选的。不一定每一个次同步点都要确认,否则网络信息流量将会增加很多,所以在多数情况下类型参数的值为非确认的。如果在正常数据流中插入要求确认的次同步点,就形成了要求确认的数据传送服务,可以作为正常数据传送服务的补充功能。主同步点原语与次同步点原语类似,但不包含类型参数,因为主同步点必须是要确认的。3、再同步原语会话用户使用再同步原语把对话过程退回到一个预定的状态,该原语的参数为:再同步类型、同步点序号、权标分配和同步数据。再同步类型可取以下三个值之一:“放弃”(abandon)就是撤消当前的对话,这时其他参数的值就没有意义了;
25、“重启动”(restart)和“设置”(set)都是退回到以前的某个同步点上,但两者有所不同,重启动不能早于最后一次被确认的主同步点,而设置可以适用于任何有效的同步点。再同步请求原语中的权标分配参数可取以下三个值之一:请求方、接受方或由接受方选择,类似于连接请求原语中对应的参数。如果两个用户同时发出再同步请求,其后果将会破坏系统的一致性,所以会话标准中有一些规则来避免这种危险。4、有序释放原语有序释放S_RELEASE原语是核心功能之一,用户可随时用这种原语释放会话连接而不致丢失数据。在有序释放的响应和证实原语中包含结果参数,这个参数的值只有两个值,yes或no,接收方拒绝释放连接的原因只能是
26、请求方没有释放权标。5、异常情况的报告原语对于异常情况的报告有两种处理方法。有时在会话协议实体内产生了不可预料的差错(例如,由于某个协议有差错使得某个用户服务不能完成),这时可由会话协议实体向两个会话用户发出S_P_EXCEPTION_REPORT.indication指示服务原语。另一种情况是会话用户发现的异常情况,例如,用户发现缺乏存储空间或者出现了序号错误的数据。这时用户发出S_U_EXCEPTION_REPORT.request原语,对等用户收到S_U_EXCEPTION_REPORT.indication原语。在这两种情况下,两个会话用户将在双方均同意的先前同步点上继续其对话。(六)
27、会话协议在会话协议的标准中一共定义了36种会话协议数据单元,造成如此多的SPDU的原因在于会话服务的复杂性(有58条服务原语)。而会话协议基本上是直接把会话服务原语映射为会话协议数据单元,用相对简单的传输接口来交换这些原语。通常的协议参数都具有三个特征:类型、长度和值,而且大多数协议的参数长度是固定的,类型由固定的字段表示,因而协议数据单元的格式就很规整而简明。但是在会话协议中,参数的多少变化很大,任选项很多,因此会话协议数据单元的格式就显得比较复杂。为了统一,SPDU的编码规则只有一条,即用类型长度值三个字段的级联形式构成一个参数,这三个字段的组合称为参数单元,其中类型就是参数标识符(PI)
28、。整个SPDU的第一个字段是SPDU标识符,第二个字段是SPDU头部的长度,其次是参数部分,最后是数据。这样,具有一个参数单元的SPDU格式如图9-5所示,图中长度字段下面的箭头表示长度统计的范围。另外,一个SPDU可以有多个参数,具有多个参数或没有参数的SPDU格式可仿照图9-5构造。 有关的参数可以组成参数组,参数组由参数组标识符(PGI)、参数组长度和一个或多个参数单元组成。(a)和(b)分别是具有一个参数组(含两个参数单元)和两个参数组的SPDU的例子。连接标识符就是参数组的例子,它由三部分组成:主叫方的参照标识符(最大64字节)、公共参照数(比如时间,最大64字节)和附加的参照信息(
29、最大4字节)。这三个部分分别用一个参数单元表示,组成一个参数组。全双工时正常数据传送的三个阶段:第一阶段是建立会话连接。源会话实体收到会话用户发来的S_CONNECT.request原语后,便形成连接SPDU(以CN表示)发送给目标会话实体。当目标方收到该CN后形成S_CONNECT.indication原语传递给目标会话用户。如果同意建立这条会话连接,则目标会话实体收到S_CONNECT.response原语,并向源会话实体发送连接接受SPDU(以AC表示)。这样,当源和目标双方的会话实体交换了CN和AC会话协议数据单元之后,便能建立起一条会话连接。第二阶段进行正常数据传送。在全双工通信方式
30、中,源和目标会话实体可以同时向对方发送数据SPDU(以DT表示)。每当会话实体收到会话用户发来的S_DATA.request原语后,便可发送一个DT。当会话用户数据太长时,可将它分为几段,形成几个DT。对等会话实体收到DT后应向会话用户传递S_DATA.indication原语。与传输层不同的是在数据传送阶段没有设置本层的流量控制机制,但它可利用传输层内的流控机制来间接地控制本层的会话协议数据单元的流量。 第三阶段是释放会话连接。当会话实体收到会话用户发来的S_RELEASE.request原语后,应采用有序方式来释放会话连接,它将向目标会话实体发送结束SPDU(以FN表示)。目标会话用户收到
31、S_RELEASE.request后,发出S_RELEASE.response。目标会话实体将发送断开连接SPDU(以DN表示)。以上通过S_RELEASE原语的交互表示了会话连接有序释放的情况。如果在数据传送过程中出现异常情况,任一方会话实体也可不经协商而突然释放连接(对应的服务原语为S_U_ABORT),另一方不能拒绝,这时可能造成数据的丢失。第六层 表示层(一) 表示层简介OSI/RM中表示层的作用,就是要处理应用数据以什么样的表示形式来进行传送,才能达到任意应用系统之间的信息沟通。这就是表示服务的重要性。具体来说,表示层的作用是对源端内部的数据结构进行编码,形成适合于传送的比特流,到了
32、目的端再进行解码,转换成用户所要求的格式(必须保持数据的意义不变)。至于数据比特流的传送,则由表示层的下面五层提供可靠、透明、按序的数据传送。另外,随着通信网的发展,表示服务也从一开始单纯地进行数据格式的转换,演变成为处理数据的转换、压缩和加密等。需要说明的是,并不是在所有情况下都必须要有表示服务,而且目前在大多数网络系统中不单独存在表示层。表示服务往往与会话服务一起,作为应用层的增值服务的形式,融合在网络应用的软件系统中。 (二) 表示层的概念与功能各个不同的端系统可能有不同的数据表示:不同的机器字长、不同的浮点数格式以及不同的字符编码等。同一个信息在不同的端系统中会表现为不同的内部形式,显
33、然这些不同的内部数据表示不能直接用于开放系统之间的交换。开放系统之间必须有一种共同的语言作为信息交换的工具。下面我们来说明端系统之间的信息交流工具应该具有什么特点。首先,开放系统之间的交流工具应该与任何实际的系统无关,即具有抽象性。其次,这种交流工具应有很强的表达能力,即使不能应付所有的应用要求,至少也要能适用于绝大多数的应用。最后,这种交流语言要能方便地转变成各种具体形式,既能适合于本地存储所需的形式,又能方便地变换成适合于通信线路传输的字节流形式以发送给远端的机器。表示层要解决的中心问题,就是确定端系统之间的信息交流工具。 为了使各个端系统之间交换的信息具有相同的语义,应用层采用了相互承认
34、的抽象语法。抽象语法是应用实体和表示实体之间交接的数据的表现形式。 表示层的主要功能(1)传送语法协商。根据应用层的要求协商选择合适的表示上下文,即确定传送语法。(2)语法转换。将抽象语法转换成传送语法,并在对方实现相反的转换。(3)服务映射。把应用层服务,如对话管理(权标管理)、同步控制等请求原语映射到相应的会话服务原语。例如,在两个应用实体之间建立表示连接,选择表示服务功能单元(类似于会话服务功能单元),包含几种表示服务和若干条服务原语;确定已定义表示上下文的初始集;选择所需的会话连接特性等。应用实体可利用表示连接传送多种类型的数据,表示层可提供正常数据、加速数据和能力数据的传送,但不提供
35、流量控制机制。(4)其他功能:l 表示层管理。表示层协议涉及到该层的一些管理活动,如激活连接和差错控制、表示上下文管理等。l 数据压缩。源端表示实体对所传送的数据按某种规则进行压缩,由接收端的对等表示实体进行解压恢复,从而达到节省通信费用、提高传送效率的目的。l 数据加密。源端表示实体采用某种加密算法对所传送的数据进行加密,来提高数据的安全性,接收端的表示实体收到数据后再进行解密。(三) 语法转换我们知道,网络中互相通信的计算机系统是有差异的,各自采用的语法会有所不同。某一具体计算机所采用的语法称为局部语法。局部语法的差异决定了同一数据对象在不同的计算机上被表示为不同的比特串,比如高位字节在前
36、或者低位字节在前。当需要把数据从一台计算机传送到另一台计算机时,如果双方之间存在局部语法上的差异,那么为了保证数据语义的正确性,就存在语法转换的必要性。语法转换工作可以由发送方完成,也可以由接收方完成或者由双方协作完成。当语法转换只由某一方完成时,只需要完成一次转换。这种工作方式所带来的问题是执行转换的一方必须精确地知道对方的局部语法,并且还要有进行这种转换的能力。但是由于在网络中各种系统结构、语言及应用的多样性,也即局部语法的种类很多,那么要求任何一台计算机记住所有可能遇到的局部语法并实现转换,显然是不现实的。为此,在OSI/RM的表示层中,采用通信双方经过表示协议的协调,各自完成一次语法转
37、换的方法。这就需要一种标准的语法,即传送语法。发送方把符合自己的局部语法的比特串转换为符合传送语法的比特串,接收方再把符合传送语法的比特串转换为符合自己局部语法的比特串。这样,考虑的问题就是如何来描述局部语法。不同的计算机系统可以有自己特有的局部语法及其描述方法,例如巴科斯范式BNF、语法图等。OSI也提出了一种标准的描述方法,即“抽象语法表示法1”ASN.1(Abstract Syntax Notation One),简称抽象语法。它具有类似于面向对象程序设计语言中所提供的类型的机制,可以定义任何复杂结构的数据类型,而不同的数据类型之间还可以有继承关系。OSI/RM应用层就是用这种抽象语法来
38、描述本地应用系统中的局部语法数据的类型的。ASN.1的设计思想是:定义各种应用所需的全部数据结构类型,将其放在一个库中,当某个应用想发送一个数据结构时,可将此数据结构及对应的ASN.1名字传递给表示层。表示层根据ASN.1定义即可知道字段的类型和长度,并知道如何将其编码进行传送。接收端的表示层收到数据结构后,检查其ASN.1的标识即可知道数据结构的类型和长度等,并按照数据结构的描述信息,把接收到的外部格式转换为内部格式,送交应用进程。关于抽象语法,需要说明的有两点。第一,抽象语法是对数据一般结构形式的描述,与现有的高级程序设计语言中的类型说明相似。也就是说,抽象语法是数据描述规范中所采用的、独
39、立于该数据编码技术的规则,同时也不涉及这些数据结构在计算机内如何存储。ASN.1的内容实际上就是规定了各种数据类型及数据对象的一种记法以及相应的语义。第二点,在OSI标准的描述中,认为应用实体交给表示实体的是一个由ASN.1所定义的抽象数据对象,而表示实体所实现的是从这一抽象数据对象到传送语法的转换或者是其逆转换,可参见前面图9-9。这是因为OSI协议的实现者是一些抽象的协议实体,这些协议实体所能处理的只是由ASN.1所描述的抽象数据对象,而“如何将符合ASN.1定义的数据对象表示为符合具体的局部语法的对象”这个问题已经超出了OSI标准化的范围。因此,在OSI标准中,把对等应用实体之间和应用实
40、体与表示实体之间所传送的数据对象,都看成是由ASN.1描述的抽象数据对象。一般地说,一个信息是通过数据类型和数据值来表示的。由于抽象语法只描述了数据所具有的结构和表示形式,并不涉及数据值的表示,所以OSI在ASN.1基础上规定了传送语法,并且定义了一套从ASN.1数据对象到传送语法的编码规则,以便与标准传送语法配合。这称为ASN.1基本编码规则BER(Basic Encoding Rule)。在通常情况下,确定了编码规则也就确定了解码规则。ASN.1和BER是为了分别表示传送信息的抽象语法和传送语法而开发的一种手段,两者共同构成了OSI的表示层标准。ASN.1和BER的区别在于,ASN.1是用
41、来定义各种应用协议数据单元APDU的数据类型的工具,是表示服务的一部分。而BER则是用于描述各APDU类型所代表的数据值,它是表示协议的一部分。另外,还应注意的是对应一种抽象语法不止有一种编码规则。例如有时需要加密,有时需要压缩,有时两者都需要,而有时两者都不需要,这些选择可以在表示层内部进行协商,由通信的两个表示实体取得一致。(四)表示上下文表示上下文用来描述抽象语法之间与传送语法之间的映射关系,或者说一个抽象语法和一种所商定的传送语法的组合就是一个表示上下文。假设在某个应用中使用的数据类型为字符串并记为X,这样,如果表示实体在与对等表示实体协商后按ISO 646(即ASC码)对X进行编码,
42、便构成了X/ISO 646表示上下文;如果双方协商后确定按EBCDIC码对X进行编码,又构成X/EBCDIC表示上下文。在开放系统之间通信时,目的系统必须知道所接收的数据属于哪一个上下文,方能进行正确的解码。当通信中没有指定表示上下文时,表示实体就使用系统缺省的表示上下文。表示上下文可在建立表示连接时,由双方协商确定,也允许在通信过程中重新定义。对于同一种数据结构类型(抽象语法相同),在不同的时间可能使用不同的传送语法(编码表示不同)。例如有时需要使用加密算法,有时需要使用压缩算法,或者使用其他的冗余编码。所以,在一个表示连接上可以由多个表示上下文。但是,任何时刻只能有一个表示上下文处于活动状
43、态,应用实体可以选择哪个表示上下文处于活动状态。在通信过程中,这种选择和激活表示上下文的控制情况,由表示实体负责通知接收端对等实体,这就是表示层的表示上下文服务功能。在任何时刻,可以通过传送语法的协商来定义多个表示上下文,这些表示上下文就构成了已定义的表示上下文集DCS(Defined Context Set)。我们采用以下的例子来说明由协商确定表示上下文的过程。例如,源端的表示层连接请求中需要对一组应用协议数据单元APDU-type(1)、APDU-type(2)和APDU-type(3)确定抽象语法(AS)和对应的传送语法(TS)。假设表示层已知道了这些抽象语法,但是,表示层的两个对等实体
44、还要协商用什么样的传送语法。如果共有四种传送语法TS(a)、TS(b)、TS(c)和TS(d)可供选用。于是,源端的应用实体对每一种AS建议了几种TS,希望接收端对等实体至少能支持其中的一种,可表示为如下的形式:(1)APDU-type(1) = AS(1), TS(a), TS(b), TS(c)(2)APDU-type(2) = AS(2), TS(a), TS(d)(3)APDU-type(3) = AS(3), TS(b), TS(c), TS(d)接收端对等实体对这个请求的响应可能是:(1)APDU-type(1) = AS(1), TS(a)(2)APDU-type(2) = AS
45、(2), TS(d)(3)APDU-type(3) = AS(3), TS(d)这样协商就取得了一致,连接成功地建立。当然也可能接收端认为信息不可读而拒绝建立连接。以上的三个表示上下文合在一起,就构成了已定义的上下文集。DCS是可变的,表示层随时可能增减表示上下文以适应应用层不断变化的要求,表示层提供的这种服务称为上下文管理服务。(五) 表示服务原语和协议表示层提供的上下文管理服务是通过一种特别的原语P_ALTER_CONTEXT实现的,而其他服务原语都与会话服务原语类似,且名称也相似,这里限于篇幅不再介绍。为了了解表示层的特点,我们详细地讨论P_ALTER_CONTEXT原语。P_ALTER
46、_CONTEXT服务是应答式服务,用户利用这种服务协商改变已定义的表示上下文集DCS,即可以创建、增加或删除表示上下文。除了连接建立阶段,用户之间的协商只能通过这种原语交互进行。P_ALTER_CONTEXT原语和参数列于表6-4中。P_ALTER_CONTEXT原语参数request表示上下文增加表,表示上下文删除表,用户数据,表示上下文增加结果表(仅用于指示原语)indicationresponse表示上下文增加结果表,表示上下文删除结果表,用户数据confirm表6-4 P_ALTER_CONTEXT原语及参数DCS的每一项由一个表示上下文标识符PCI(Presentation Cont
47、ext Identification)和一个抽象语法名组成。由于PCI要有唯一性,而两个端系统都可能指定PCI,所以为了避免混淆,规定连接的发起端使用奇数号,而接受端使用偶数号。原语中的参数“表示上下文增加表”、“表示上下文删除表”都是由标识符对(PCI,抽象语法名)组成的表,指出发起端期望增减的表示上下文。由响应原语返回的“表示上下文增加/删除结果表”则指明响应端对发起端的每一个提议接受还是拒绝,再拒绝的情况下还要指明是服务用户拒绝还是服务提供者拒绝以及拒绝的原因。与会话层协议一样,表示层协议也分为一些功能单元。核心单元用于建立表示连接、传送数据和释放连接,它总是必备的。另外一个功能单元是上下文管理单元,用于增减已定义的上下文集。还有一个功能单元是上下文恢复单元,当会话连接重新同步时,这个功能单元可以存储上下文信息以备以后恢复。应用层与表示层之间交互服务原语的方法与下面几层的情况是相似的。例如,在表示连接建立后,在传送数据阶段的P_DATA服务原语的交互情况如图9-11所示。当表示层收到应用层的P_DATA.request原语后,要向对等表示实体发出相应的表
限制150内