《计算机网络体系结构》学习笔记之 第六章 OSI高三层协议(二)

3.服务原语时序
会话服务原语的三种时序关系:
•服务用户发起的请求和指示;
•服务用户发起的请求、指示、响应和确认;
•服务提供者发起的指示。
表6.3 会话释放阶段服务原语
服务
原语
参数
有序释放
S-RELEASE.request
S-RELEASE.indication
S-RELEASE.response
S-RELEASE.confirm
结果,
用户数据
U- 废弃
S-U-ABORT.request
S-U-ABORT.indication
用户数据
P- 废弃
S-P-ABORT.indication
原因
4.会话服务质量(QoS)
会话服务质量描述与会话服务提供者属性有关的会话连接特征。
会话QoS只与会话服务提供者有关,与会话用户行为无关。会话用户行为对会话QoS无影响。
会话QoS分类
(1)会话服务性能参数
表6.4 会话服务性能参数
阶段
性能准则
速度
精确性 / 可靠性
会话连接建立
会话连接建立延迟
会话连接建立失败概率
数据传送
吞吐量
传输延迟
残留差错率
会话连接恢复能力
传送失败概率
会话连接释放
会话连接释放延迟
会话连接释放失败概率
(2)其它会话服务特征参数
•扩充控制:
可使用重新同步、异常报告、活动中断和活动丢弃服务。
•会话连接保护:
会话服务提供者试图防止未授权的监控或对用户信息的操作,包括
A.无保护特性
B.防止被动的监控
C.防止修改、增删
D.防止被动的监控,防止修改、增删
•会话连接优先级:
规范处理各会话连接之间的相对重要性。包括:
A.各连接QoS的降级次序
B.由于收回资源而切断会话连接的次序
•优化对话传送:
会话服务请求的拼接传送。
三、会话协议
会话协议是会话实体间的通信规则,会话层协议规范是ISO8327,是面向连接的会话层协议。CCITT(现在的ITU)也参与了会话层协议规范的研制,对应ISO8327提出了CCITT x.225建议。
1.功能单元与功能子集
会话的功能是在会话连接建立时由双方约定的,而会话功能是以功能单元来表示的,由于会话层的服务种类较多,将若干个相关联的服务组成一个功能单元,每一种功能单元汇总了相关功能的要素。也就是说会话层把所有会话功能划分成单元,每个单元称为功能单元,每个功能单元提供一种可供选择的工作类型。会话层共有12个功能单元,如左侧表格所示。
表6.5 会话层12个功能单元
功能单元
会话服务
主要功能
核心功能单元 ( 非协商式 )
Kernel(non-negotiable)
会话连接
正常数据传送
有序释放
U- 废弃
P- 废弃
会话连接建立、数据传送、
会话连接释放。
协商式释放功能单元
(Negotiated Release)
有序释放
令牌出让
令牌请求
利用释放令牌拒绝会话连
接释放指示,以继续使用
该会话连接。
半双工功能单元
(Half-duplex)
令牌出让
令牌请求
持有数据令牌的一方可发
送正常数据。
全双工功能单元
(Duplex)
无附加服务
双方可同时发送正常数据。
加速数据功能单元
(Expedited data)
加速数据传送
可优先传送加速数据,加
速数据肯定比后续的正常
数据先到达对方。
特权数据功能单元
(Typed data)
特权数据传送
提供与数据令牌无关的数
据传送功能。
能力数据交换功能单元
(Capability data exchange)
能力数据传送
在活动之间提供数据传送
功能。
次同步功能单元
(Minor synchronize)
次同步点
令牌出让
令牌请求
提供次同步点插入功能。
主同步功能单元
(Major Synchronize)
主同步点
令牌出让
令牌请求
提供主同步点插入功能。
重新同步功能单元
(Resynchronize)
重新同步
提供重新设定同步点和重
新分配令牌的功能。
异常报告功能单元
(Exceptions)
P- 异常报告
U- 异常报告
服务提供者向用户报告差
错信息。
活动管理功能单元
(Activity Management)
活动开始
活动恢复
活动中断
活动丢弃
活动结束
令牌出让
令牌请求
控制出让
提供活动的开始、结束、
中断、恢复和丢弃功能。
用户可选择使用功能子集,也可自定义功能子集。
功能子集如下:
•基本组合子集BCS
可传送正常数据,进行有序释放,可使用半双工或全双工服务。包括:
核心功能单元、半双工功能单元、全双工功能单元。
•基本同步子集BSS
可传送正常数据和特权数据,进行协商或有序释放,可设置次同步点和主同步点,进行重新同步,包括:核心功能单元、协商式释放功能单元、半双工功能单元、全双工功能单元、特权数据功能单元、次同步功能单元、主同步功能单元、重新同步功能单元。
•基本活动子集BAS
可传送正常数据和特权数据,进行有序释放,可设置次同步点,进行活动管理和异常报告,包括:核心功能单元、半双工功能单元、特权数据功能单元、能力数据交换功能单元、次同步功能单元、异常报告功能单元、活动管理功能单元。
2.SPDU格式
会话层协议的数据单元SPDU格式如左图所示。
其中SI为SPDU类型标识符,共有36种不同的SPDU,LI是它后面参数字段的长度,参数字段由参数标识单元(PI单元)和参数组标识单元(PGI)组成,其中PGI单元的组成又分两种情况。
 
图6.3 SPDU格式
3.会话层数据流图
为了明确会话过程,举例说明会话的数据流图如左侧
 
•第二节表示层
一、表示层功能与模型
1.表示层功能
表示层中主要解决的就是信息以什么样的表现形式(数据表现)传送给对方。不关心处理的用户数据有什么样的意义,只考虑用什么样的传送形式传送这一问题,也就是说表示层的功能并不是信息的具体表达,而是处理信息表示中所遇到的问题,考虑如何将不同信息的表达形式转换成公共的信息传送形式。
众所周知,计算机网络中的应用层程序常使用不同的信息表示标准,即采用不同的数据类型和结构。如果不解决这种差异,各系统之间彼此就不能理解对方数据的含义,也就无法通信。OSI参考模型的下五层协议虽然确保了通信信息可靠、准确、有序、同步的传送,但并未确保信息表示的正确性,为此OSI设立表示层来解决这一问题。
OSI模型中,信息的表示涉及两个方面:语法和语义。
•语义:
数据的内容与意义,由应用层的各应用协议处理。表示层不关心数据具体的语义,只有应用实体才能知道数据的意义。例如,文件的记录组成,作业的执行方法,终端的画面控制等与意义内容有关的方面。
•语法:
数据的表示形式,由表示层处理。它解决异种计算机系统之间的信息表示形式的差异。例如,文字、图形、声音的表示,数据压缩,数据加密等与表示形式有关的方面。语义和语法的关系可以举一个例子来说明:FLOWER,语义上是花的意思,语法上我们将它看成是字符串。
2.表示层模型
表示层模型如左图所示。
 
图6.4 表示层模型
为理解表示上下文的概念,举一个例子说明。
设有两种不同类型说明的应用协议数据单元APDU-TYPE(1)、APDU-TYPE(2),它们所使用的抽象语法分别是AS(1)、AS(2)。设对等应用层已知道这些抽象语法,并且发送方表示层已知道了这些抽象语法。现在对等表示层要协商使用什么传送语法。现在我们假定共有三种可供选择的传送语法TS(a)、TS(b)、TS(c)。
于是,为了协商到底用什么样的传送语法,应用实体在请求下方的表示连接时,可在所采用的抽象语法的后面附上可供选择的几种传送语法,形成:
(1)APDU-TYPE(1)=AS(1),[TS(a)或TS(b)]
(2)APDU-TYPE(2)=AS(2),[TS(a)或TS(b)]
表示连接另一端的对等实体在协商时可能给出如下回答:
(1)APDU-TYPE(1)=AS(1),TS(a)
(2)APDU-TYPE(2)=AS(2),TS(c)
上面给出的每一对抽象语法和传送语法,就构成了一个表示上下文,共有两个表示上下文,即:
(1)表示上下文1:[AS(1),TS(a)]
(2)表示上下文2:[AS(2),TS(c)]
这两个表示上下文合在一起,就构成了己定义的上下文集DCS。
二、表示服务
表示层服务用户和表示服务提供者(即表示实体)在表示服务访问点上PSAP上相互作用,通过使用表示服务原语,表示层服务用户和表示服务提供者相互交换信息。表示层服务原语大多数与会话层中的相同,事实上这些原语中的多数是由会话层实现的,也就是说由会话层执行,表示层实现传递。
表示层提供一种公共的信息表示方法。表示层的服务规范是ISO8822。表示层向应用层提供语法变换和上下文控制服务。为了把用抽象语法表示的表示层用户数据变换为传送数据,定义了用作服务的抽象语法标记法ASN.1规定了抽象语法与传送语法对应关系的表示上下文及其控制。按功能对表示层服务分类如下:
(1)表示连接建立的功能(Facility):
用于建立表示连接,选择该连接上使用的表示功能单元,确定表示上下文的初始集,选择所需会话连接的特性等。
(2)表示连接释放的功能:
进行表示连接的正常释放,或者强制释放。强制释放是异常释放,可能会丢失数据。
(3)表示连接管理功能:
进行表示上下文的创建、增加、删除。对新创建的表示上下文应给出标识符。对表示上下文发生变化的情况,表示层应负责通知对等表示实体。
(4)信息传送的功能:
能进行全双工、半双工数据交换,能实现能力数据、特权数据等的传送。表示层未提供流量控制。
(5)会话控制功能:
按照原样向应用层提供会话服务,不涉及上下文环境变化。为了给应用层直接提供会话服务,则穿透表示层,提供令牌管理、同步控制、再同步及活动管理等服务。穿透服务是表示层的会话控制功能。因此,可以说表示服务主要是会话服务加上表示上下文等的控制而形成。次要服务是穿透功能的服务。
三、抽象语法表示法ASN.1及基本编码规则
在表示层和应用层,数据具有不同的复杂数据结构(即不同的抽象语法),需要一个统一的抽象语法描述方法。例如:同一数据结构用C和PASCAL的表示是不一样的。
ASN.1(Abstract Syntax Notation One)可灵活的定义各种数据结构。它包括一些基本类型和结构类型,它允许用户自己定义更复杂的数据结构。
1 ASN.1基本数据类型
ASN.1的基本数据类型包括5类:布尔类型、整数类型、位串类型、字节串类型和空类型。
•布尔类型
布尔类型"BOOLEAN"只有"TRUE"和"FALSE"两个取值。
•整数类型
整数类型"INTEGER"就是通常意义上的整数。
•位串类型
位串类型"BIT STRING"是由0、1组成的串,其长度不受限制。
•字节串类型
字节串类型"OCTET STRING"是由8位位组(OCTET)组成的串,其长度不受限制。它就是通常意义上的字符串。
•空类型
空类型"NULL"表示某个元素不存在或不取任何值。
2 ASN.1结构数据类型
ASN.1结构数据类型包括7类:
•顺序类型
•单一顺序类型
•集合类型
•单一集合类型
•任选类型
•任一类型
•标签类型
(1)顺序类型(SEQUENCE)
由一个或多个元素类型组成的有序列表,元素类型可为任何其它类型。它类似于PASCAL的记录。如果出现OPTIONAL或DEFAULT关键字,对应类型的值可省略。
 例:
ValidSequence ::= SEQUENCE
{
a INTEGER DEFAULT 3,
s BOOLEAN OPTIONAL,
n INTEGER,
}
Value ValidSequence ::= {
a 5,
s TRUE,
n 20
}
(2)单一顺序类型(SEQUENCE OF)
由一个或多个同一类型元素组成的有序列表,元素类型可为任何其他类型。它可被视为SEQUENCE类型的特例。它类似于PASCAL的数组。
 例:
Words ::= SEQUENCE OF VisibleString
buildWords Words ::= {"applications","elements","protocols"}
(3)集合类型(SET)
由0个或多个元素类型组成的无序集合。组成的元素必须是可区分的。
 例:
TypeSet ::= SET {
a BOOLEAN,
s INTEGER,
n BIT STRING
}
valSet TypeSet :: = {
a TRUE,
N '1001'B,
s 520
}
(4)单一集合类型(SET OF)
由0个或多个同一类型元素组成的无序集合。
 例:
Words ::= SET OF VisibleString
buildWords Words ::= {"entities","protocols","pdu"}
(5)任选类型(CHOICE)
CHOICE类型包含一个可供选择的类型列表,他的每个值都是该组成元素的一个值。它可用于描述在不同环境下可能有不同类型的、所有可能性都事先已知的数据结构。
 例:
TimeOfDay ::= CHOICE {
actual-value UTCTime,
not-available NULL
}
unixEpoch TimeOfDay ::= {actual-value "700101000000Z"}
unknowTime TimeOfDay ::= {not-available NULL}
(6)任一类型(ANY)
ANY类型表示在定义时未具体指明类型的数据结构。
 例:
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT
IDENTIFIER,
parameters ANY OPTIONAL
}
(7)标签类型(TAG)
由"标签类型"加"标签号码"表示。作为数据类型前缀,用于区分取值类型相同的类型。
 例:
Abstract-Syntax-Name ::= [APPLICATION 0] OBJECT IDENTIFIER
ASN.1定义了4种标签:
•通用类(Universal Class)
仅由ASN.1定义,分配给基本类型或结构类型。
UNIVERSAL 1 BOOLEAN
UNIVERSAL 2 INTEGER
UNIVERSAL 17 SET and SET OF
•应用类(Application Class)
用户可自由分配,但同时只能分配给一种类型。
•私用类(Private Class)
应用标准不使用这种标签。
•上下文专用类(Context Specific Class)
用户可自由分配,利用上下文关系对它进行解释。
3 ASN.1复杂数据类型
ASN.1可利用嵌套、递归的方法定义复杂的数据结构。
 例如:
PersonnelRecord ::= SET
{
nameName,
titleIA5String
numberINTEGER,
dateOfHireDate, (雇用日期)
nameOfSpouseName, (配偶姓名)
childrenSEQUENCE OF ChildInformation
}
ChildInformation ::=SET
{
nameName,
dateOfBirth Date
}
Name ::=SEQUENCE
{
givenNameIA5String,
initialIA5String,
familyNameIA5String
}
Date ::=IA5String
4 ASN.1基本编码规则
ASN.1基本编码规则(BER,Basic Encoding Rules)完成抽象语法表示与传送语法间的变换。ASN.1采用TLV方法进行编码。该方法把各种数据表示成Type、Length、Value三个字段,每个字段由字节组成。
(1)Type字段用于表示标签(Tag),各位表示如下。

•D8,D7:标签类型
Class D8D7
Universal  00
Application  01
Context-specific 10
Private  11
•D6:数据类型标志
0表示基本数据类型,1表示结构数据类型。
•D5,D1或更多位:标签号码
号码小于31时,用D5到D1;
号码大于等于31时,用更多位表示,这时D5~D1全为1,标签号码由后面扩展字节表示,扩展字节的最高位(D8)均为1,只有最后一个字节的最高位(D8)为0,表示扩展字段结束,这些字节的剩余7位拼接起来就是标签号码值。以标签[PRIVATE 42]为例子。42的二进制表示是101010,多于五位,因此要用两个八位组编码。编码后的标签的二进制格式为11111111 00101010。
(2)Length字段表示内容字段(value)的长度
长度小于127时,Length字段占一个字节;长度大于127时,第1个字节的最高位(D8)为1,其余7位为Length字段本身的长度,后续字节为内容字段(value)的长度。长度不确定时,第1个字节的最高位(D8)为1,其余位全0,内容字段使用内容结束标志(2个全0字节)。
(3)内容字段(value)
如BOOLEAN类型的FALSE为0,TRUE为非0;INTEGER类型的只用补码表示。
 

你可能感兴趣的:(职场,osi,结构,休闲,清华大学,网络体系,高三层)