已阅读5页,还剩62页未读, 继续免费阅读
(通信与信息系统专业论文)现代电信协议asn1编解码实现机制的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 厂摘要 7 随着计算机与通信技术的不断结合以及网络的广泛应用,人们对信息系统之间互 通互连的要求日趋迫切。由于在各种应用系统中,相互交换的信息实体具有复杂和多 样化的数据类型,而数据结构的表示、编码、传送和解码的关键之一就是要有一个相 当灵活和标准的描述数据结构的方法,这就是抽象语法记法( a s n 1 ) 的出台背景。 a s n 1 作为一种0 s i 应用层上使用的半形式语言,主要用于描述开放系统中两个 对等实体间为了完成某种特定的消息处理任务而相互交换数据的结构。在0 s i 中,这 种数据结构被称为协议数据单元( a p d u ) 。由于一个数据结构在不同的机器上通常有 着不同的表示方式,如有的机器,整数占2 个字节,而有的则是4 个字节,或字节中 比特的存储顺序有的是从高到底排列,而有的则相反。通过a s n 1 ,a p d u 的表示可以 不必关心具体机器的细节。因此,为了便于系统间的互联,方便对应用协议的描述, 规则通常非常繁杂,而且通常协议消息所转换成的c 代码文件相当庞大。因此,如何 将a s n 1 编解码模块做到占用资源小,效率高,同时又能可靠运行,是每个通信协议 协议栈的开发人员都要考虑的问题。 目前,国内外有很多厂商采用编译器的方式将a s n 1 句法定义的消息格式转换为 对应的c 结构文件和对a s n 1 基本数据类型编解码函数的调用函数,然而,根据实 践结果,这种方法有一定的缺陷,主要表现为生成的目标代码量过大,且代码运行效 率不高。 本文在参考国内外一些公司的设计方案的基础上,提出了一种更为有效的实现机 制,并对这种方案进行了详细的描述。该方案不需要使用编译器,且克服了传统方法 的缺陷。本文另对这两种方案作了专门比较,列出了相关数据。 关键词:a s n j 、p e r 、b e r 、h 3 2 3 协议栈、接口文f 乜a s n 1 实时库 vv vv f老, 十 华中科技大学硕士学位论文 a b s t r a c t w i t ht h e d e v e l o p m e n t o f i n t e g r a t i o n o f c o m p u t e r a n dc o m m u n i c a t i o n t e c h n o l o g y ,a n dt h eb r o a d e ra p p l i c a t i o no ft h en e t w o r k ,t h er e q u i r e m e n to f t h ec o m m u n i c a t i o nb e t w e e nh e 七e r o q e n e o u ss y s t e m sb e c o m em o r ea n dm o r ee x i g e n t t h ei n f o r m a t i o ne n t i t i e sb e t w e e nv a r i o u sa p p l i c a t i o ns y s t e m su s u a l l yh a v e d i f f e r e n ta n dc o m p l i c a t e dd a t at y p e s ,s ot h eh i n g eo ft h ee x p r e s s i o n ,c o d i n g , t r a n s f e r r i n g a n dd e c o d i n go ft h e d a t as t r u c t u r e si st h ep r e s e n c eo faf l e x i b l e a n ds t a n d a r dm e t h o dt od e s c r i b et h ed a t as t r u c t u r e s t h i si st h eb a c k g r o u n d o ft h ea b s t r a c t s y n t a xn o t a t i o no n e ( a s n 1 ) a s n 1i sas e m i f o r m a t t e dl a n g u a g eu s e db y0 s ia p p l i c a t i o nl a y e r i t s m a i np u r p o s ei st od e s c r i b et h ed a t at y p eb e t w e e nt h ee q u a le n t i t i e so ft h e o p e ns y s t e m t h ed a t as t r u c t u r eo ft h eo s ii sn a m e da s “a p d u ”a l t h o u g ht h e d a t as t r u c t u r e si su s u a l l yd e f i n e di nd i f f e r e n tw a y si nd i f f e r e n tm a c h i n e s , b yu s i n ga s n 1 ,u s e rn e e d n tk n o wt h ed e t a i l so ft h ea c t u a lm a c h i n e s ,a n d t h ee x p r e s s i o no ft h ea p d uc a nb ei n d e p e n d e n tb e t w e e nd i f f e r e n ts y s t e m s a tp r e s e n t ,m a n yt e l e c o m m u n i c a t i o np r o t o c o l su s ea s n 1n o t a t i o nt od e f i n e t h e i rm e s s a g ed e f i n i t i o n ,w h e r e a st h ee n c o d i n ga n dd e c o d i n gr u e so fa s n 1 a r em u l 七i f a r i o u s ,a n dt h ec o r r e s p o n d i n gcl a n g u a g ef i l e sa r ev e r yl a r g e s o t h er e s e a r c hf a c u l t vo ft h ep r o t o c o ls t a c kn e e d st or e s e a r c ht h em e c h a n 册 o ft h ei m p l e m e n t a t i o no ft h ea s n 1m o d u l e ,i n c l u d i n gt h ee f f i c i e n c y ,t h e 1l e s i z e ,a n dt h er e l i a b i l i t yo ft h em o d u l e t h et r a d i t i o n a li m p l e m e n t a t i o nw a yo ft h ea s n 1m o d u l ei st ou s eac o m p i l e r t ot r a n s l a t et h ea s n 1n o t a t i o nf i l ei n t ocs t r u c t u r ef i l e sa n dt h ec a l l i n g f u n c t i o n so ft h ea s n 1r u n t i m el i b r a r y h o w e v e r ,t h e r ea r es o m e d i s a d v a n 七a g e o u sf a c t o r si nt h em e c h a n i s m b yd o i n gs o ,t h ec o r r e s p o n d i n a s o u r c ec o d ei sv e r yl a r g e ,a n dt h ee f f i c e n c yi sn o ts a t i s f a c t o r y t h i sp a p e rs u m m a r i z e sab e t t e ri m p l e m e n t a ti o nw a y ,w h i c hisb a s e do ns o n c o m p a n i e s d e s i g nm e t h o d t h ew a yn e e d n tt h ec o m p i l e r ,a n do v e r c o m e st h e d i s a d v a n t a g eo ft h et r a d i o n a lw a y l a t e r ,t h ep a p e rc o m p a r e st h et w ow a y so n t h e i re f f i c i e n c i e sa n ds i z e s ,a n d1 i s t st h er e l e v a n td a t a k e yw o r d s :a s n 1 、p e r 、b e r 、h 3 2 3p r o t o c o ls t a c k 、i n t e r f a c ef i l e 、 a s n 1r u n t i m el i b r a r y _一 i i 一 , 华中科技大学硕士学位论文 1 绪论 1 1 背景知识 1 1 1a s n 1 的起源 a s n 1 的起源有着其应用背景。由于在网络通信中,大多数实际网络都采用了多 个制造商的设备,这些设备所采用的局部语法( l o c a ls y n t a x ) ,如硬件体系结构、程 序语言定义以及具体程序的编制等,都是不一样的,另外,这些设备所采用的操作系 统,编译系统也有差异。这些差异就决定了同一数据对象在不同的计算机上被表示为 不同的符号串。 例如,以t e s t 这个结构为例,同样的值在m a c h i n ex 和m a c h i n ey 会存储为不 同的格式。如图i - 1 所示。 t o 虬o o d e t p t z l a i t o e t d o d bl a l i 旦翌g 望望墅墅! lll 罔伽t x 商 r o a c h i n exm a t h i n ey 图i - 1 不同机器类型数据格式表示的差异 因此,为了使多个制造商设备之间能够实现互通,就必须要引入传送语法 ( t r a n s f e rs y n t a x ) ,它是一种标准的,与具体的网络环境无关的语法格式。对于传 送语法的要求有以下三点:( 1 ) 必须能够定义各种复杂的类型;( 2 ) 必须能够精确说明 这些类型的值;( 3 ) 还需要提供一种以上的编码规则,这种编码规则能够确定会话层 用何种比特模式来表示应用层的数据的值。【1 1 i t u t 组织制定的a s n 1 ( a b s t r a c ts y n t a xn o t a t i o no n e ) 标准,符合以上三点 要求。a s n 1 定义的编码规则( 如:b e r 、p e r ) 就相当于从局部语法到传送语法之间的 转换规则。 a s n 1 标准的前身是c c i t t 在1 9 8 4 年定义的x 4 0 9 协议一“消息处理系统( m h s ) 表示层传送语法和表示”,该协议的目的为定义“消息处理系统的应用层、信息通讯 业务中的文件交互协议使用的表示层传送语法。” 19 8 5 年c c i t t 和i s o 采用了术语“a s n 1 ”( 抽象语法表示) 和“b e r ”( 基本编 码规则) ,其对应的两个标准也以i s 0 8 8 2 4 和i s 0 8 8 2 5 出版。1 9 8 9 年,c c i t t 出版了 两份标准分别是x 2 0 8 ( 描述a s n 1 的基本概念) 和x 2 0 9 ( b e r 编码规则) 以代替x 4 0 9 建议。1 9 9 5 年末,a s n 1 标准新的版本被i s o 投票通过采纳。口1 19 9 7 年5 月,i t u t 考虑到对a s n 1 众多的修订,提议了新的版本,以使a s n 1 细化的工作变得更加容易。1 9 9 9 年7 月,i t u t 在x 2 0 8 协议的基础上提出了x 6 8 0 、 吣 等器巍 华中科技大学硕士学位论文 x 6 8 1 、x 6 8 3 协议及其增补,用来陈述a s n 1 语法模型。在x 2 0 9 的基础上提出了 x 6 9 0 协议( b e r 编码规则) 。另外,还提出了x 69 1 协议( p e r 编码规则) 。 1 9 9 9 年1 0 月和1 1 月,a s n 1 工作组讨论了在a s n 1 中支持x m l 的编码规则( 即 x e r ) ,以及编码控制表示等。对a s n 1 使用范围的扩展正在进一步的讨论中。 1 1 2a s n 1 在现代电信领域的应用 a s n 1 首先在多媒体通信领域获得了广泛的应用,目前,在音频视频和多媒体 系统( i t u th 2 0 0 系列) ;窄带可视电话系统及终端设备( i t u th 3 2 0 建议) ;互联 网上实时多媒体通信( i t u th 2 2 5 ,h 2 4 5 ,h 3 23 建议) ;互联网传真( i t u tt 3 8 建议) :视频会议应用的t 1 2 0 协议;m h e g ( 多媒体和超媒体编码专家组) 等。 a s n 1 在其它领域的应用也不少,如简单网络管理协议s n m p ;电子邮件系统 ( x 4 0 0 ) ;电子数据交换协议( e d i ) ;电子商务的s e t 标准等。 需要说明的是,在上述的这些协议和标准中,其消息格式都是用a s n 1 句法描述 的,并指明了采用何种编码规则。在协议的具体实现时,必须在发送方设置一个a s n 1 编码器,将发送方所要传送的消息经a s n 1 编码后再发送出去,然后在接收方设置一 个a s n 1 解码器,将接收到的经a s n 1 编码的消息解码为符合接收方局部语法的消息 格式。由于a s n 1 已经成为国际化的标准,这样,经a s n 1 处理的信息独立于任何应 用环境,不会因为应用环境不同引起- i i 的解释。1 3 1 1 3 a s n 1 的特点 由上面可以看出,a s n 1 属于表示层的概念,是用来描述应用层p d u 及其它数据 结构的文法。a s n 1 吸收了许多高级程序语言的说明功能和结构,具有很强的说明能 力。严格的说,a s n 1 是一种形式语言,其精确的和形式的记法使得其在表示和含义 中去掉了任何可能的二义性。它提供了用嵌套和递归来对复杂数据结构进行统一表示 的能力。 表示层也有其它的表示法,如s g m l 标准通用标识性语言) 也是一种很通用的表 示法,例如:h t m l 就是s g m l 的一种应用“”。s g m l 是一种很直观的表示法,读者可以 很直接从用s g m l 写的文件中了解其全部内容及表达方式,但编码效率低。而a s n 1 句法的编码效率高,当然,编码结果是二进制比特流,并不直观。 1 2a s n 1 的概念介绍 i t u t 专门讲述a s n 1 的协议族为x 6 8 0 一x 6 9 9 ,此外还不包括较老的x 2 0 8 , x 2 0 9 和x 4 0 9 ) ,内容相当丰富,也非常复杂。 本节和下节将分别介绍a z n 1 句法定义中的数据类型,语句定义和一些名词说 明,下节将介绍a s n 1 的一些编码规则。 2 华中科技大学硕士学位论文 1 2 1 数据类型 a s n 1 定义了很多数据结构类型,包括简单类型和复合类型,这些数据类型和有 关词的解释在x 2 0 8 x 6 8 0 中有详述。【3 】 4 j 【5 】 6 1 ( 1 ) 简单类型( b a s i ct y p e ) : 简单类型是构成复合类型以及更复杂的数据类型基础。a s n 1 定义的简单类型 包括n u l l 、b o o l 、i n t e g e r 、r e a l 、b i t s t r i n g 、o c t e ts t r i n ge n u m e r a t e do b j e c t i d e n t i f i e r 等。这些类型与c 语言中的数据类型也是很相似的,可以和它们一一 对应起来。对这些类型的说明如下: n u l l :无值符号 b o o l :布尔量 i n t e g e r :整数值的集合 r e a l :实数值的集合 b i ts t r i n g :以比特为单位的二进制字符串 o c t e ts t r i n g :以字节为单位的字符串 e u m e r a t e d :定义变量值的一个集合,变量的值只在列举出来的范围内 o b j e c ti d e n t i f i e r :标识i s o 和i t u t 定义的标准对象信息 其中需要注意的是:n u l l 类型一般只出现在c h o i c e 项中或s e q u e n c e 和s e t 项 的o p t i o n a l 项中。n u l l 项本身并没有任何意义,不需要编码。但它仍然算一项,譬 如,在c h o i c e 类型中的n u l l 项仍然要分配索引号。 另外,需要指出的是o b j e c ti d e n t i f i e r 是一个比较特殊的类型,它用来表示 i s o 和i t u t 定义的标准对象信息。原则上,每一个正式标准中定义的对象都能够被 唯一的标识。使用的机制是定义一棵标准树,将每个标准的每个对象放在树上一个唯 一的位置。树上的每个弧都有一个标签和一个代码,所以使用标签号或代码就能用弧 的列表来标识节点。 广、 i t u - t ( 0 ) i s o ( 1 ) j o i n t i s o i t u t ( 2 ) 弋 图1 - 2a s n 1 对象命名树 华中科技大学硕士学位论文 例如,在h 3 2 3 协议的消息中,经常要用到p r o t o c o l i d e n t i f i e r 参数就是o b j e c t i d e n t i f i e r 类型。如h 2 2 5v 2 的p r o t o c o l i d e n t i f i e rf 1 2 1 值为: i t u t ( 0 ) r e c o m m e n d a t i o n ( 0 ) h ( 8 ) 2 2 5v e r s i o n ( 0 ) 2 ) ,最后编码结果为0 x 0 6 0 0 0 8 9 1 4 a 0 0 0 2 。 其编码规则可参考x 6 9 0 的b e r 编码规则中的细节。( 注:o b j e c ti d e n t i f i e r 的编 码规则在x 6 9 1 中没有,而是直接应用x 6 9 0 中的规则,这是p e r 编码沿用b e r 编码 的唯一类型) 。 每种简单类型的编码规则通常也分很多种情况,特别是b i ts t r i n g 、o c t e t s t r i n g 、i n t e g e r 这三种类型,关于它们的编码细节可参考i t u tx 6 9 1 协议。 ( 2 ) 复合类型( c o m p o u n dt y p e ) : 复合类型包括s e q u e n c e ,c h o i c e ,s e t ,s e q u e n c eo f ,s e to f 等。其中: s e q u e n c e ,s e t :一个有序类型列表。相当于c 语言中的结构体或p a s c a l 语言中的记录。 c h o i c e :从一个特定类型序列中创建一个联合。相当于c 语言中的联合体。 s e q u e n c eo f ,s e to f :一种类型的一维列表,相当于c 语言中的一维数组。 s e q u e n c eo f 和s e to f 的差别是:s e q u e n c eo f 内各项的顺序是重要的,而s e t o f 则表明其内各项的顺序可以任意的。s e q u e n c e 和s e t 的区别也是这样。 1 2 2 语句定义 a s n 1 句法定义中的语句可以分为赋值语句和说明语句两大类。本文以h 3 2 3 协议中的消息为例,对其进行说明。【8 】 9 1 ( 1 ) 赋值语句: 赋值语句一方面用来标识元素的数据类型,另一方面也可以对元素的值初始 化。 i 类型赋值( t y p e a s s i g n m e n t ) :1 ”1 这类赋值形如: g a e k e e p e r i d e n t i i e r:b m p s t r i n g ( s i z e ( 1 1 2 8 ) ) 或 i c v := s e q u e n c e ( a l g o r i t h m o i d o b j e c ti d e n t i f i e r , i c vb i ts t r i n g 前者表示标识g a t e k e e p e r l d e n t i f i e r 的类型为b m p s t r i n g ,s i z e o f ( 1 1 2 8 ) 是参数类型,表示字符串的长度范围为( 1 1 2 8 ) 。后者是个结构,说明i c v 的类型 是s e q u e n c e ,包含两个变量,类型分别为o b j e c ti d e n t i f i e r 和b i ts t r i n g 。 i i 值赋值( v a l u e a s s i g n m e n t ) : 该类语句可以对元素的值进行初始化定义,也可以将值的范围加以约束。 华中科技大学硕士学位论文 但另外需要注意,这些值一般是用来改善程序的可读性的,它们从不直接进行编码。 u p p e r b o u n d i n t e g e r := 1 2 i n t e r v a l := i n t e g e r ( 0 u p p e r b o u n d ) i i i 值序列类型赋值( v a l u e s e t t y p e a s s i g n m e n t ) 这类赋值形如: p r i m e n u m b e r si n t e g e r := 2 i 3 15 1 7 1 1 1 1 1 3 ) i v 参数化赋值 它又包括参数化类型赋值,参数化值赋值,参数化值序列类型赋值,参数化对象 类赋值,参数化对象赋值,参数化对象序列赋值。 ( 2 ) 说明语句: 说明语句用来说明元素的类型。如下面c h o i c e 结构中的三个结识被说明为n u l l 类型。”1 n o t r e g i s 七e r e dn u l l , s e c u r i t y d e n i a l n u l l , u n d e f i n e d r e a s o nn u l l , 1 1 2 3 名词解释5 ”“1 a 元素 e l e m e n t ) :a s n 1 句法定义的组成单元。这些单元可以由简单类型或复合类 型构成。元素由a s n 1 句法定义,而不必考虑其编码细节。 b 比特段( b i t f i e l d ) :由一些有序的比特组成,其长度并不需要是整数个字节,它 也不需要从字节的边界处开始。 注意:比特段( b i tf i e l d ) 与上面所提到的比特串( b i ts t r i n g ) 是不同的概念, 前者是指编码结果的一种格式,后者是指a s n 1 定义的一种简单数据类型。 c 字节对齐段( o c t e t a l i g n e d b i t f i e l d ) :所谓字节对齐比特段是指该比特段必须 从某个字节的边界处开始,但本身并不需要是整数个字节的长度。 d 扩展标记 e x t e n s i o nm a r k ) :即为a s n 1 句法定义中的省略号( e l l i p s i s ) ,它可 包含在所有类型之中,形成扩展序列的一部分。存在扩展标记即表明预期扩展内容存 在。需要指明的是,a s n 1 句法定义中有无省略号,其编码结果不同。 e 扩展序列( e x t e n s i o ns e r i e s ) :是a s n 1 类型的一个序列。它可按如下方式排序, 即该序列的每个后续元素是通过给该序列的的末尾添加内容得到。 f 扩展附加项( e x t e n s i o na d d i t i o n ) :扩展序列中的元素。所有的扩展附加项都跟在 扩展标记后面,它们按一定的逻辑顺序排列。 华中科技大学硕士学位论文 g 扩展根部( e x t e n s i o nr o o t ) :是扩展序列中的第一类型,它携带扩展标记 ( e l l i p s i s ) ,不带任何添加内容。只有扩展根部才能成为扩展序列的第一类型。例如, 图i - 3 中由扩展根部扩展出了两个扩展类型: 。八。 13 ex t cns i on 一 2 “de x t e ns i o n 图i - 3a s n 1 句法类型的扩展 需要指出的是,在p e r 编码中,一个数据类型有没有扩展标记,以及扩展根部 和扩展附加项所包含的元素数目的多少,都会涉及到编码的结果。因此,在设计p e r 编解码模块时,这是应该予以重点考虑的。 h 可选项( 。p t i o n a le l e m e n t ) :是指在s e q u e n c e 类型所包含的元素中,后面加有 o p t i o n a l 标记的那些元素。顾名思义,在网络通信时,该项可以不包含在s e q u e n c e 类型中。另外,是否包含该项,也会影响到p e r 编解码的结果。因此,必须事先说明。 i 必选项( c o m m a n de l e m e n t ) :是指在s e q u e n c e 类型所包含的元素中,后面没有 o p t i o n a l 标记的那些元素。因此,在具体编码时,必选项是必须要包含在s e q u e n c e 类型中的,否则,会造成p e r 编解码的紊乱。 例如:图1 4 为h 3 2 3 消息中的c o n n e c t 信令的a s n 1 句法定义。m 1 华中科技大学硕士学位论文 c o n n e c t u u i e := s n q o k n c e ( p r o t o c o l l d e n t i f i e r h 2 4 5 a d d r e s s d e s t i n a t i o n l n f o c o n f e r e n c e l d r + c a l l i d e n t i f i e r e x t e n s i o n h 2 4 5 s e c u r i t y m o d e m a r k c q k s c r y p t o t o k e n s f a s t s t a r t f a s t c a p 1 p r o t o c o l l d e n t i f i e r , t r a n s p o r t a d d r e s so p t i o n a l 嗽o o i n t t y p e , c o n f e r e n c e i d e n t i f i e r , c a l i d e n t i f i e r , h 2 4 5 s e c u r i t yo p t i c n a l , s h j 3 c eo fc l e a r t o k e no p t i o n a l , s 日:肌粥eo fc r y p t o h 3 2 3 t o k e no p t i ( i x m l s 匿旺l j c eo fc c i z ts t r i n go p t i c k a l , f a s t c a po p t i c n a l 图1 - 4c o n n e c t 消息的a s n 1 句法定义 e x t e n s i o n r o o t l e x t e n s i o n a d d i t i o n 如图1 4 所示,p r o t o c 0 1 i d e n t i f i e r 、d e s t i o n a t i o n i n f o 、 c o n f e r e n c e i d 、 c a l i i d e n t i f i e r 是必选项。h 2 4 5 a d d r e s s 、h 2 4 5 s e c u r i t y m o d e 、t o k e n s 、c r y p t o t o k e n s 、 f a s t s t a r t 、f a s t c a p 为必选项。 j 子类型( s u b t y p e ) :是指某种类型,它的值是另外一些数据类型( 父类型p a r e n t t y p e ) 的子集,实际上就是将父类型的值加以限制。为了尽可能的压缩编码,p e r 依 赖了很多a s n 1 规范中的子类型约束。主要有:”删 单一数值和数值范围约束,应用于i n t e g e r 类型如 t 1 := i n t e g e r ( 4 0 i5 0 ) t 2 := i n t e g e r ( 2 0 3 0 ) 以类型包含做为约束,用于i n t e g e r 和字符串类型( 约束中引用的类型只包含 p e r 一可见约束l t 3 := i n t e g e r ( t 2 ) c l := i a 5 s t r i n g ( f o r m ( a “z ”) ) c 2 :i a 5 s t r i n g ( c l i f r o m ( a “z ”) ) 大小约束 t 5 := b i ts t r i n g ( s i z e ( 1 4 ) ls i z e ( 1 0 1 5 ) ) 字母表约束 t 6 :n u m e r i c s t r i n g ( f r o m ( 1 “9 ”) ) p e r 可视约束的组合序列 t 8 := i n t e g e r ( t 1l t 2 ) 7 华中科技大学硕士学位论文 w i t hc o m p o n e n t s 约束,应用于c h a r a c t e rs t r i n g 和e m b e d d e dp d v 另外,需要注意的是,如果一个类型后跟几个约束,某种约束的p e r 一不可见性 对其它约束的p e r 一可见性没有影响。如果约束是可扩展的,有效的约束仅通过约束 的根部计算出来的。 h 3 2 3 协议主要用到了前四种约束方式,当一种类型说明带有约束时,则把该类 型说明在语法树上对应的结点结构中的l o w e r c o n s t r a i n t ,u p p e r c o n s t r a i n t 和 p e r m i t t e d a l p h a b e t 相应项上置成约束值。 k 分块法( f r a g m e n t a t i o n ) :口1 分块法是指当长度段( 包括各种类型的长度段) 的上下界没有限制,或数据类型 ( 如i n t e g e r 、o c t e ts t r i n g 、b i ts t r i n g ) 的上界 6 4 k 时,对长度段应采用的编码 方式。共分6 种情况。令r a n g e = 上界一下界+ 1 ,有: a ) 若r a n g e = 1 2 7 ,则长度段编码为1 个字节的字节对齐比特段,后跟数据 的编码。该字节的最高位( 第8 位) 为0 ,第7 位到第1 位为n 的值的编码。 即:o x x x x x x x + 数据的编码。 b ) 若1 2 7 r a n g e 1 6 k ,则长度段编码为2 个字节的字节对齐比特段,后跟数 据的编码。这2 个字节中的第一个字节的最高两位( 第8 、7 位) 分别是1 和0 ,从 第一个字节的第6 位到第二个字节的最后1 位( 最低位) 即为n 的编码。 即:1 0 x x x x x xx x x x x x x x + 数据的编码。 c ) 若1 6 k :r a n g e :3 2 k ,则长度段编码为i i 0 0 0 0 0 1 的字节对齐比特段, 后跟16 k 个数据项的编码。再对剩下的数据项按上述的几条规则进行编码。 d ) 若3 2 k = r a n g e = 4 8 k ,则长度段编码为1 i 0 0 0 0 1 0 的字节对齐比特段, 后跟3 2 k 个数据项的编码。再对剩下的数据项按上述的几条规则进行编码。 e ) 若4 8 k = r a n g e 6 4 k ,则长度段编码为i i 0 0 0 1 0 0 的字节对齐比特段,后跟6 4 k 个数据项的编码。再对剩下的数据项按上述的几条规则进行编码。 下面举例说明: 假设a 类型有1 4 4 k + 1 个数据项,则对其编码应为: 1 10 0 0 l o o l6 4 k 项数据l1 1 0 0 0 1 0l6 4 k 项数据1i i 0 0 0 0 0 1| 1 6 k 项数j0 0 0 0 0 0 0 1l 1 项数据的编码 l 的编码l 0 j 的编码j 据的编码lli 图l 一5 分块法编码结果 关于分块法的细节可以参考x 6 9 1 协议的i 0 9 节。另外,要注意的是若某数据 类型的长度为1 6 k 的整数倍时,编码的方法与上例相同,但编码的最后一个字节必须 为一个全0 字节,以标识长度段编码的结束。嘲m 1 a s n 1 的概念很多,上面列举的仅仅是在设计p e r 编解码模块时的一些重点。考 虑到篇幅的简洁,在此不再赘述。对此有兴趣的读者可以参考i t u tx 6 8 0 和x 6 8 3 华中科技大学硕士学位论文 协议。 通信协议的制定者通过a s n 1 的数据类型以及其它标记,可以定义出具有任意复 杂结构的数据结构,且不同的数据结构之间可以有继承关系。在网络协议的具体实现 中,这些数据类型的编解码的操作则要深入到a s n 1 自带的那些数据类型中去进行。 1 3a s n 1 的编码规则及其比较 a s n 1 定义的编码规则也有很多种,这些编码规则都风格迥异。本节列举了a s n 1 各种编码方式及其应用。在这些编码方式中,目前用得最多,影响也最大的是 b e r ( b a s i ce n c o d i n gr u l e s ) 和p e r ( p a c k e de n c o d i n gr u l e s ) 这两种方案。它们分 别在i t u t 的x 2 0 9 ,x 6 9 0 和x 6 9 1 中有详述。 需要指出的是,不管网络协议采用的是哪种编码规则,在具体实现编解码模块的 时候都必须严格按照相应协议来实行,否则即使是一个字节甚至比特的差错,也将使 得网络无法实现互通。 表1 1 列出了a s n 1 的一些编码规则及其应用领域。”5 】” 表i - ia s n 1 编码规则列表 编码规则相关协应用领域注释 议 l b e rx 6 9 0 s n m p , i | ( b a s i ce n c o d i n gr u l e s ) p e rx 6 9 l 多媒体通信的信令编码结果在 ( p a c k e te n c o d i n gr u l e s )p d u 编码所有编码方 式中最为精 简,但编码规 则非常复杂 c e rx 6 9 0b e r 的派生类 ( c a n o n i c a le n c o d i n gr u l e s )型,编码风格 与b e r 相近, 比b e r 更严格 d e rx 6 9 0b e r 的派生类 ( d i s t i n g u i s h e de n c o d i n g型,编码风格 r u l e s )与b e r 相近, 比b e r 更严格 l w e r用于在相近结构的是b e r 的一种 ( l i g h tw e i g h te n c o d i n g计算机间更快更高可选方式 r u l e s )效地传递数据。 9 华中科技大学硕士学位论文 x e r对x m l 的编码提供了比目 ( x m le n c o d i n gr u l e s )前网络上默 认的编码压 缩率更高的 编码方式 o e r其编码复杂 ( o c t e te n c o d i n gr u l e s )程度和编码 结果的大小 都介于b e r 和 p e r 之间 b a c n e t适用于传送专用网 络的数据传输( 如 建筑自动化和控制 网络等) s e r 主要用于信令领 ( s i g n a l i n ge n c o d i n gr u l e )域,如七号信令 由表i - 1 可以看出,在网络通信,移动通信,生物工程,工业控制等诸多领域, a s n 1 都获得了很广泛的应用。下面将介绍其中最广泛的两种编码方式:b e r 和p e r 。 由于篇幅所限,对这两种编码的细节不加以详细讨论。 1 3 1b e r 编码介绍 b e r 编码规定:每个传输的数据值,不管是简单类型还是复合类型,都由t l v z 元组形式表示的对称递归格式构成。如图3 所示。其中,t 是标识 类型的八位数组( t a g ) ,l 即数据字段的长度( l e n g t h ) ,以字节为单位。c 即数据字段 的内容( c o n t e n t ) 。n 0 1 i c ( 内容) ft ( 类型)l ( 长度) l t l l i c l t ll | cl i l一、 i8765432 、 i 类别 p c 标记编号 图i - 6b e r 的t l c 编码 1 0 华中科技大学硕士学位论丈 如图i - 6 所示,每个数据项的第一个字节都是t ( 类型) 字段。该字段又可分为3 部分。其中比特8 7 代表类别,规定用o o ,0 1 ,1 0 ,1 1 分别代表通用类,应用类,上下 文类和专用类。比特6 代表p c 比特,该项为0 表示为简单类型,该项为1 表示为复 合类型。比特5 1 表示型的编号,如b o o l e a n 为1 ,i n t e g e r 为2 ,b i t s t r i n g 为3 , o c t e ts t r i n g 为4 ,n u l l 为5 ,s e q u e n c e 和s e q u e n c eo f 为1 6 ,s e t 和s e to f 为1 7 等等。若标记编号是大于3 1 的数,则低5 位为i i i i i ,真正的值在后一个或后n 个 字节中。【5 】【8 1 l 字段标识数据占据了多少字节。若长度小于1 2 8 字节,则直接用1 个字节编码。 该字节最高位为0 。长度大于1 28 个字节的数据的长度段则包括了多个字节,其中第 一个字节的最高位为1 ,低7 位为长度段所占用的字节数。 c 字段的内容则依赖于当前数据的类型,这些类型的编码都是根据x 6 9 0 的规定 来的。每种数据类型都有自己的编码规则,在此不再一一赘述。f l 0 j 【l ” 需要指出的是这种t l c 结构是可以嵌套的,在c 字段中又可以包含其他数据的 t l c 字段。譬如,若s e q u e c e 类型中包含了另一个s e q u e n c e 类型,则编码时后者的 编码将嵌入到前者里去,这种嵌套还可以一层一层的进行。 1 3 2 p e r 编码及其与b e r 编码的对比 由于b e r 的编码包含了过多的冗余信息,使得网络传输负荷过大。i t u t 在9 0 年代初又制定了p e r 编码。【5 1 f 9 l ”1 【“1 p e r 的编码原则就是用尽可能简单的规则得到最简洁的编码。当然p e r 的编码规 则也更加复杂,而且其风格和b e r 迥异。除了o b j e c ti d e n t i f i e r 等少数类型沿用了 b e r 的编码方法外,p e r 各个数据类型的编码与b e r 都精简得多,冗余信息极少。譬 如:b o o l e a n 类型的编码在p e r 中仅需要i b i t ,而在b e r 中t l c 三个字段就至少要 2 4 b i t 。但p e r 的使用必须有一个前提,那就是网络通信的收发双方都清楚正在使用 的用a s n 1 句法描述的数据结构,当然这只需要通信双方遵循统一的通信协议就行 了。 p e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网天津市电力公司高校毕业生提前批招聘笔试参考题库浓缩500题附答案详解(综合题)
- 2026国网广东省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题含答案详解
- 2026秋季国家管网集团华南公司(广东省管网公司)高校毕业生招聘笔试参考题库(浓缩500题)附答案详解(培优a卷)
- 2026国网湖北省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题有完整答案详解
- 2026秋季国家管网集团华中公司高校毕业生招聘考试参考试题(浓缩500题)带答案详解(突破训练)
- 2025国网山西电力校园招聘(提前批)笔试模拟试题浓缩500题及答案详解(网校专用)
- 2026国网四川省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题含答案详解(a卷)
- 2026秋季国家管网集团油气调控中心高校毕业生招聘14人考试参考题库(浓缩500题)及参考答案详解(综合卷)
- 2026国家管网集团高校毕业生招聘考试参考题库(浓缩500题)含答案详解ab卷
- 国家管网集团2026届高校毕业生招聘考试参考试题(浓缩500题)带答案详解(培优a卷)
- 高校实验室安全基础(华东理工大学)学习通网课章节测试答案
- 建筑垃圾现场分拣作业流程方案
- 2022利达消防LD6901 消防控制室图形显示装置(Linux)使用说明书
- 8.2 守护正义(课件)- 2025-2026学年八年级道德与法治上册(统编版2024)
- 储能电池产品售后服务与维保方案
- 胃肠镜检查课件
- (2025年标准)金矿出售转让协议书
- 8 回忆鲁迅先生(课件)语文统编版2024八年级上册
- 新疆电网面试题目及答案
- 2025年药品及制药行业当前市场规模及未来五到十年发展趋势报告
- 审计专硕复试题及答案
评论
0/150
提交评论