8.1 会话层
会话层的任务主要是在传输连接的基础上提供增值服务,对端用户之间的对话进行协调和管理。
会话层服务主要有两大功能:一个是增强传输数据的结构性;另一个是对两个会话用户之间的数据流进行控制,这种控制不是以前讲过的流量控制,而是对数据流方向的控制。
会话服务采用不同的方法为传输数据流加上需要的结构,第一种方法和同步点的使用有关。会话服务用户之间的交互作用叫做对话( Dialogue ),用户可以用主同步点把数据流分成一个一个的对话单位。在数据流中插入主同步点表示前一个对话单位的结束和下一个对话单位的开始。在对话单位中还可以再插入次同步点,主次同步点统一编号。
会话层的主次同步点都是为了出错时重新取得同步,但是又有所区别。主次同步点的第一个差别是它们对数据交换过程的影响不同。主次同步点的第二个差别是对回退过程的影响不同。发送方决不会退回到最近确认过的主同步点之前,而对次同步点就没有这个限制,后退一个不行,就再后退一个,直到重新取得同步。
第二种方法涉及到活动( Activity )的概念。活动是对话单位的进一步扩展,由一个或多个连接的对话单位组成,以标志活动开始的主同步点打头,以标志活动完成的主同步点结尾。在概念上,活动代表工作的逻辑单位,每一个活动完全独立于在它之前或之后的其他活动。活动的特点是可以被中断,以后还可以恢复。
三种对话方式:单方向对话、双向交替对话和双向同时对话。
OSI 会话层使用了四种令牌来控制对话,这四种命令牌是:数据令牌、次同步令牌、主同步 / 活动令牌、释放令牌。
建立会话连接时可以就会话中使用哪些令牌以及令牌的最初持有者进行协商。令牌管理功能提供的服务允许一个用户主动交出令牌或是向另一处用户索取令牌。
网络层和传输层仅提供两种数据传送功能:正常数据传送和加急数据传送。由于会话数据流具有结构性,所以会话层又增加了特权数据传送功能和能力数据传送功能。特权数据的发送不需要令牌,对话双方没有令牌也可以发送特权数据。特权数据流的真正目的是为高层控制报文和网络管理提供带外数据流。所谓能力数据,也可用作控制目的,不过是为了会话层本身的控制。与特权数据不同的是它必须完全得到对方的确认。能力数据只能在活动之外(或两个活动之间的间隔中)发出,发送能力数据必须同时持有数据令牌、次同步令牌和主同步 / 活动令牌。
对于一个具体的实现,不必实现 OSI 全部的 12 个会话服务功能,这 12 众目功能单元可组合成三个服务子集:其中 一个子集是基本组合子集 BCS ( Basic Combined Subset ),除核心功能之外还有半双工或全双工操作,适合简单应用。第二个子集是基本同步子集 BSS ( Basic Synchronization Subset ),适合于 FTAM (文件传输、访问和管理)应用。最后一个子集是基本活动子集 BAS ( Basic Activity Subset ),它使用有关活动管理的功能单元,以保证可靠的报文传输,适合于电子邮件方面的应用。
8.2 表示层
包含在 X.409 文件中的表示语法由 ISO 改编为 ASN.1 (抽象方法描述语法 Abstract Syntax Notation.1 )标准(即 ISO 2488 ),与之相配套的基本编码规则 BER ( Basic Encoding Rule )包含在 ISO 8825 文件中。 ASN.1 用一种抽象的方法描述数据,能描述各种复杂的数据结构(这一点更象 PASCAL )。这种对信息的抽象描述叫做抽象语法。抽象语法形成了各种端系统之间的共同语言。 BER 则负责把抽象语法表示的信息变成适合于传输的比特流。 BER 确定的一组规则叫做传送语法。
用简单类型构造复杂数据结构的手段是序列和集合。 ASN.1 不仅提供了表示抽象数据结构的手段,而且给出了表示抽象数据类型的方法。
编码规则:基本编码规则 BER 中有各种方法,用来把 ASN.1 的抽象值编码为字节串,这个字节串就叫做抽象值的传送语法。编码的基本原则是类型—长度—值三段式结构,简称 TLV ( Type — Length — Valune )结构。
任何编码的第一个字节都是起标识类型的作用如( P175 图 8.10 ),其中前两位用于标识 4 种标签(通用、应用、上下文专用和用户专用)。(见 P175~P177 例子)
标签值表示(图 8.10 )的扩充方法:用 5 位表示 0~30 的编码,当标签数值大于或等于 31 ( 2 5 )时,这 5 位置全 1 ,作为转义符,实际的数值编码表示在后续字节中。后续字节的左边第 1 位表示是否为最后一个扩充字节,只有最后一个扩充字节的左边第 1 位置 0 ,其他扩充字节左边第 1 位置 1 .如标签值 10110010101111001 编码为: XXX 11111 1 0000101 1 1001010 0 1111001
对于长度字节的扩充方法是:小于 127 的数用长度字节的右边 7 位表示,最左边的 1 位置 0 ;长度大于 127 的娄用后续的若干字节(最多 126 个)表示,原来长度字节第 1 位置 1 ,其他 7 位表示后续的用于表示长度的字节数。例如十进制 255 可表示为 1000 0001 1111 1111 .注意,对长度字节数的限制是 126 ,而不是 127 ,这意味着打头的字节最大为 1111 1110 ,而不是 11111111 ,这个值是为以后的扩充保留的。
表示层提供两类服务:第一类服务与会话有关,另一类服务与信息的表示有关。
8.3 应用层
应用服务单元:应用服务单元 ASE ( Application Service Element )就是各种应用都需要的功能成分,是应用层的基本构件。把所有的 ASE 组织到一起,形成一个应用子层,叫做公共应用服务元素 CASE ( Common Application Service Element )。
三种比较实用的应用层协议:虚拟终端协议、文件传输协议和电子邮件协议。
最主要的服务元素有四种:联系控制服务元素 ACSE ,可靠传输服务元素 TRSE ,远程操作服务元素 ROSE 以及提交、并发和恢复 CCR . ISO 定义的 ROSE 是比 RPC (远程过程调用)更通用的机制,主要用于网络管理、报文处理系统和目录服务。
提交、并发恢复 CCR : CCR 服务元素提供了分布式事务处理或处置( Transaction )的能力。在分布式环境中,对数据库进行更新操作的同时要保持和维护数据的完整性和一致性,使之不受系统和通讯设备失效的影响,这时就必须使用 CCR 。
CCR 处置操作的特点:原子性、一致性、隔离性、持久性。
在有并发操作的情况下,两阶段提交实在是必要的,是恢复机制的组成部分。例如:银行转账就是这种情况,一方从账面减去一定金额;另一方必须在账面加上同样的金额。
CCR 服务可以按照主从次序嵌套为树结构,叫做原子作用树。
虚拟终端协议:
如果一个用户希望通过网络访问各种不同类型的主机,他就需要利用虚拟终端协议 VTP ( Virtual Terminal Protocol )。
通常把终端分为四大类,分别制定各自的标准:滚动式终端、页面式终端、表格式终端、图形式终端。
基本类虚拟终端 BCVT ( Basic Class Virtual Ternimal )的特点: BCVT 是面向字符的终端; BCVT 的信息结构是用面向对象的方法定义的。 BCVT 的对象有显示对象、设备对象和控制对象。 BCVT 服务还提供了提交控制机制,这种机制允许一边的服务用户控制对另一边用户提交数据的时机。 BCVT 提供的另外一个功能是中断功能,该功能使得 VT 用户在数据传输阶段能中止中一方操作。
在一个 VT 环境中的所有对象构成了可由通信双方共享的概念通信区 CCA ( Conceptual Communication Area )。
BCVT 服务支持两种操作方式:同步方式和异步方式。
BCVT 标准定义的提交控制有三种:无提交控制、简单提交控制、隔离提交控制。
文件传输协议
ISO 8571 文件规定的文件传送、访问和管理标准 FTAM ( File Transfer ,Access,and Management )。主要由三部分组成:虚拟文件的定义、文件服务定义和文件协议规范。
从四个方面描述文件的结构:文件存取结构、表示结构、传输结构、标识结构。
虚拟文件可以用两类属性描述:一类是文件属性,另一类是活动属性。
FTAM 把文件属性分为三组:核心属性、存储属性、安全属性。
作用于文件上的操作在 ISO 文件中叫做作用( action )。有些作用可施加于整个文件,这些作用与文件管理有关;有些作用只施加于文件的组成成分,这些作用与文件的存取有关。
电子邮件协议
CCITT 的 X.400 系列建议提出的报文处理系统 MHS ( Message Handing System )使得 OSI 通信系统的用户之间的消息交换有了统一的标准。
MHS 的功能模型包含了报文自理系统的主要功能元素。报文传输系统 MTS ( Message Transfer System )由一些互连的报文传输代理 MTA ( Message Transfer Agent )组成。 MTA 接受用户代理 UA(User Agent) 提交的报文,把它传送给目的端 MTA .报文在网络中经过多次存储—转发,最后由目的端的 MTA 投递给 UA 或者被存放在目的端的报文 MS ( Message Store )。在一般情况下, UA 置于用户个人计算机终端上, MTA 置于通讯公司的大型机器上。
MHS 服务分成四类:报文传输服务、个人间报文通信服务、报文存储服务和物理投递服务。
习题:
试说明会话层中的会话、活动、对话单元和主、次同步点之间的关系。
答: P158~159 图 8.1 和图 8.2
三种对话模式各适应于哪些场合?
答:三种对模式即单方向对话、双向交替对话和双向同时对话。单方向对话适合于不需要特别管理数据流的网络,数据只在一个方向流动。双向同时对话也适用于不需要特别管理数据流的网络,但在对话前需要双方协商好,即双工操作。双向交替对话的应用范围最广,即所有的请求 / 应答系统都是采用双向交替对话模式。
抽象语法与传送语法的关系如何?为什么要使用两种不同的语法?
答:抽象语法的作用是描述要交换的信息,而传送语法则是把抽象语法表示的信息转换成适合于传输的比特流。只有两种不同的语法互相配合使用才能既清楚地表达信息又能够进行合理地传输。
用 ASN.1 基本编码规则对以下三种情况进行编码,高设长度字段 L 为
18 字节;(小于 127 )则编码: 00010010
180 字节;(大于 127 )则编码: 10000001 00110100
1048 字节。(大于 127 )则编码: 10000010 00000000 00011000
应用服务元素可以分为哪几种?每种应用服务元素的作用是什么?
答:最主要的服务元素有四种:联系控制服务元素 ACSE ,可靠传输服务元素 TRSE ,远程操作服务元素 ROSE 以及提交、并发和恢复 CCR。
ACSE 是管理应用联系的功能模块,任何应用都必须使用它。 RTSE 提供可靠的数据舆当传输一个很长的文件时,这种服务元素是必要的。 ISO 定义的 ROSE 是比 RPC (远程过程调用)更通用的机制,主要用于网络管理、报文处理系统和目录服务。提交、并发和恢复 CCR 适用于分布式环境。
电子邮件和文件传送有什么区别?电子邮件系统由哪些部分组成? MHS 可提供哪些服务?
答:电子邮件系统由报文传输系统 MTS 、报文传输代理 MTA 、报文库 MS 、用户代理 UA 和用户终端组成。 MHS 服务分成四类:报文传输服务、个人间报文通信服务、报文存储服务和物理投递服务。