硕士学位论文-TD-SCDMA系统中ASN.1编解码的研究与应用.pdf_第1页
硕士学位论文-TD-SCDMA系统中ASN.1编解码的研究与应用.pdf_第2页
硕士学位论文-TD-SCDMA系统中ASN.1编解码的研究与应用.pdf_第3页
硕士学位论文-TD-SCDMA系统中ASN.1编解码的研究与应用.pdf_第4页
硕士学位论文-TD-SCDMA系统中ASN.1编解码的研究与应用.pdf_第5页
免费预览已结束,剩余90页可下载查看

硕士学位论文-TD-SCDMA系统中ASN.1编解码的研究与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号t p 3 9 1 2 密级公开 重庆邮电大学硕士学位论文 论文题目t d s c d m a 系统中a s n 1 编解码 英文题目 的研究与应用 e n c o d i n ga n dd e c o d i n g e n c o q l n ga n dl ) e c o d l n g i nt h et d s c d m a s y s t e m 硕士研究生王宁 指导教师李小文 学科专业计算机系统结构 论文提交日期2 9 0 9 4 论文评阅人 论文答辩日期 2 0 0 9 5 2 3 答辩委员会主席 2 0 0 9 年5 月 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研 究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得重庞邮电盔堂一或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:王于 辩醐叻罗蜘枷 学位论文版权使用授权书 本学位论文作者完全了解重废由e 电太堂有关保留、使用学位论文的规 定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查 阅和借阅。本人授权 重庆邮电太堂可以将学位论文的全部或部分内容编入 有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:互予 导师签名: 、, 签字日期:砂步年夕月朋 园 签字日期:2 刃夕年岁月挖日 , :一。 :_ | 7 ,; ;。! ; :,一 。 重庆邮电大学硕士论文 摘要 摘要 随着网络通信技术的飞速发展,a s n 1 ( a b s t r a c ts y n t a xn o t a t i o n o n e ) 语言在各个领域有着广泛的应用。它是一种用来描述结构化信息的 标记语言,适合用来描述复杂的协议,是目前电信、多媒体信息传输、 数据加密等领域描述协议的主要手段。在实际应用中由于它是一种在高 度抽象的层次上来表示数据结构信息的高级抽象描述语言,因此需要翻 译程序将其转化为相应的高级编程语言。 在3 g p p ( 3 r dg e n e r a t i o np a r t n e r s h i pp r o j e c t ) 的层三消息体系中, 一般使用a s n 1 语言来描述层三消息,再使用定义在i t u t ( i t u tf o r i t ut e l e c o m m u n i c a t i o ns t a n d a r d i z a t i o ns e c t o r ) 建议x 6 91 中的各种算法 来将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 描述文件转换成x m l ( e x t e n s i b l em a r k u p l a n g u a g e ) 描述文件供调用,相当于使用x m l 来描述协议中p d u ( p r o t o c o ld a t au n i t ) 的结构。x m l 与平台和语言无关,因此使用不同 平台、不同编程语言的各个通信端可以共享一份x m l 描述。编解码的过 程统一交给p d u 数据处理器完成,p d u 数据处理器可以解析x m l 描 述文件,并在其中存取数据,通过遍历x m l 数据结构即可完成相应的编 码和解码工作。由于p d u 数据处理器和x m l 描述文件是相互独立的, 而且在一个指定的运行平台上,p d u 数据处理器也是固定的,所以出现 a s n 1 描述文件更新时,只需要生成新的x m l 文件,摈弃了a s n 1 源 代码,不需要重新编译任何程序代码,便于维护,易于扩展。 关键词:a s n 1 ,t d s c d m a ,编解码,x m l 重庆邮电大学硕士论文 a b s t 翰c t a b s t r a c t w i t ht h ed e v e l o p m e n to fn e t w o r kc o m m u n i c a t i o n st e c h n i q u e ,a s n 1 h a sg o tw i d e l yu s e di nm a n y 丘e l d s i ti sak i n do fn o t a t i o nt h a ti su s e dt o d e s c r i b es t r u c t u r e di n f o r m a t i o na n dm a i n l yu s e dt od e f i n eap r o t o c 0 1f o r d i f f e r e n tc o m p u t e rs y s t e m s ,a p p l i c a t i o n sa n dn e t w o r k s a s n 1d e s c r i b e s d a t as t r u c t u r eo n a na b s t r a c th i g h - l e v e l t h e r e f 6 r e , t h e r eh a v et ob ea c o m p i l e rt h a t c a nc o n v e r tt h ed a t as t r u c t u r es p e c i f i e db ya s n 1t oa s p e c i f i c a t i o ni nap r o g r a m m i n gl a n g u a g e i nt h et h i r d l a y e ri n f o r m a t i o ns y s t e mo f3 g p p ,t h em e s s a g e s a r e c o m m o n l yd e s c r i b e da sa s n 1 ,t h e nt h ea s n 1d e s c r i p t i o n sa r ec o n v e r t e d t ot r a n s f b rc o d e s ,a n dt h i sc o n v e r s i o n su s et h ev a r i o u sa l g o r i t h m sd e f i n e di n t h ex 6 91o fi t u - t i nt h i sw a y ,t h ed e 行n eo fm e s s a g ec o n t e n ti ss e p a r a t e d f r o mt h et r a n s f e rs y n t a x ,i ti sh e l p f u lt of u r t h e re x t e n d g e n e r a l l y ,t h ew h o l e e n c o d i n ga n dd e c o d i n gp r o c e s sr u n sw i t h i na ni n d i v i d u a lm o d u l e ,a c c o r d i n g t ot h et r a d i t i o n a la p p l i c a t i o n d e v e l o p m e n tf l o w , f i r s to fa l l ,i tn e e dt o d e v e l o pas p e c i a l i z e dc o m p i l e f ,a n dt h ec o m p i l e rc o n v e r t st h ed e s c r i p t i o nt o a s n 1s o u r c ec o d et h a tc a nr u no nd e s 培n a t e dp l a t f o r m t h e nt h es o u r c e c o d ec a l lt h ea s n 1e n c o d i n ga n dd e c o d i n g1 i b r a r yt oe n c o d eo rd e c o d et h e t r a n s f e rm e s s a g e s b u te v e r yt i m ew h e nt h ea s n 1d e s c r i p t i o ni su p g r a d e d o rc h a n g e d ,t h es o u r c ec o d en e e dt ob eg e n e r a t e db yt h ec o m p l i e ra n d r e c o m p i l e do nt h ed e s i g n a t e dp l a t f o r m ,m e a n w h i l e ,t h es e n d e ra n dr e c e i v e r n e e dt ou p g r a d et h en e ws o u r c ec o d et oe n s u r et h en o r m a lo p e r a t i o no f e n c o d i n ga n dd e c o d i n g o b v i o u s l y t h ec o d eg e t sm o r ec o m p a c ta n dl o w e r s t h ee f n c i e n c yo fo p e r a t i o n ,o nt h eo t h e rh a n d ,m a i n t e n a n c ec o s tb e c o m e h i g h e ra n dt h ee x p a n s i b i l i t yg e t sw o r s t a c c o r d i n gt ot h ed e f i c i e n c yo ft r a d i t i o n a la p p l i c a t i o nd e v e l o p m e n t , t h i s p a p e rp r o p o s e sa n dr e a l i z e s an e wm o d e lo f a s n 1 e n c o d i n ga n d d e c o d i n gm o d u l e i nt h i sm o d e l ,a s n 1d e s c r i p t i o ni sc o n v e r t e dt ox m l d e s c r i p t i o nw h i c h i su s e dt od e s c r i b et h es t r u c t u r eo fp d u x m li s i n d e p e n d e n to fp l a t f o r ma n dl a n g u a g e ,s ot h ec o m m u n i c a t i o nt e r m i n a l st h a t u s ed i f f e r e n tp l a t f o r m sa n dp r o g r a m m i n gl a n g u a g e sf r o me a c ho t h e rc a n s h a r et h es a m ex m l d e s c r i p t i o n i nt h i sm o d e l ,t h ee n c o d i n ga n dd e c o d i n g i i 重庆邮电大学硕士论文a b s n _ a c t p r o c e s sr u n si nt h ep i ud a t ap r o c e s s o r ,t h ep r o c e s s o rc a na n a l y z et h ex m l d e s c r i p t i o na n da c c e s sd a t a ,t h e ni tt r a v e r s e st h ex m lt r e et of i n i s ht h e e n c o d i n g a n d d e c o d i n gp r o c e s s t h ep d ud a t a p r o c e s s o ra n dx m l d e s c r i p t i o ni si n d e p e n d e n to fe a c ho t h e r ,a n dw h e nt h ep r o c e s s o rr u n so nt h e d e s i g n a t e dp l a t f o r m , i ti s s t a t i o n a r y ,t h e r e f o r e , w h e n e v e rt h ea s n 1 d e s c r i p t i o nu p g r a d e s ,i to n l yn e e d st og e n e r a t en e wv e r s i o no fx m l ,a n d t h e r ei sn on e e dt or e c o m p i l ea n yt a r g e tp r o g r a m w i t ht h en e wm o d e l ,i ti s e a s yt oe x t e n da n dm a i n t e n a n c e k e yw o r d s :a s n 1 ,t d s c d m a ,e n c o d i n ga n dd e c o d i n g ,x m l i l i 重庆邮电大学硕士论文目录 目录 摘要i a b s t r a c t i i 第一章绪论1 1 1 引言1 1 2a s n 1 语言及其特点2 1 3a s n 1 在t d s c d m a 协议栈中的应用3 1 4 本文研究目标和主要工作4 1 5 本文组织结构5 第二章a s n 1 抽象语法与编码规则6 2 1a s n 1 背景知识6 2 1 1a s n 1 简介6 2 1 2a s n 1b e r d e r c e r p e r 编码规则简介7 2 2a s n 1 抽象语法8 2 2 1a s n 1 数据类型8 2 2 2a s n 1 类型定义、值定义和模块定义1 0 2 2 3 常见子类型约束1 3 2 3a s n 1b e r 编码规则1 4 2 4a s n 1p e r 编码规则1 6 2 5 小结1 8 第三章t d a s n 模块的体系结构的分析与设计19 3 1 传统a s n 1 编解码模块分析1 9 3 1 1 基于a s n 1 标准的系统开发流程19 3 1 2 基于a s n 1 传统应用模型的编解码模块分析2 0 3 2t d a s n 模块的总体设计思想2 2 3 2 1x m l 文档生成器的设计思想2 2 3 2 2a s n 1 基本类型编解码函数库的设计思想2 3 3 2 3p d u 数据处理器的设计思想2 4 3 2 4 基于t d a s n 模块的系统开发流程2 4 重庆邮电大学硕士论文 目录 3 3 传统编译器应用模型和基于t d a s n 模块的应用模型的对比2 5 3 4 小结2 6 第四章t d a s n 模块的设计和实现2 7 4 1x m l 文档生成器的详细设计与实现2 7 4 1 1p d u 的x m l 描述文件设计与实现2 7 4 1 2x m l 描述文档的编译器的设计与实现3l 4 2a s n 1 基本类型编解码库的详细设计与实现3 9 4 2 1l e n g t h 部分的设计和实现4 2 4 2 2 常见简单类型数据内容部分编解码的设计和实现4 6 4 2 3 结构类型数据的编解码设计5 5 4 2 4 编解码库门面类的设计和实现一5 6 4 3p d u 数据处理器的详细设计与实现5 7 4 3 1x m l 内容管理器的设计与实现5 7 4 3 2 通用a s n 1 数据编解码器的详细设计和实现6 2 4 4 小结6 7 第五章基于t d a s n 模块的应用6 8 5 1 概述6 8 5 。2a s n 1 编解码工具的设计6 8 5 3a s n 1 编解码工具的实现7 0 5 4 小结7 2 第六章总结和未来的工作7 4 6 1 结论7 4 6 2 展望7 5 致谢7 6 攻硕期间从事的科研工作及取得的研究成果7 7 参考文献7 8 v 重庆邮电大学硕士论文 1 1 引言 第一章绪论 随着计算机设备的快速普及与网络技术的日益发展,使得数据通讯 和数据传输在各个领域得到了广泛的应用,但是网络设备间、操作系统 间、应用软件间的数据表示却一直没有得到广泛的统一。不论是在客户 机与服务器之间或是广域网、局域网之间进行的数据传输中,不同的操 作系统对同种数据类型的解释不同,单纯的结构或文件传输就不可避免 地出现数据丢失或数据出错的问题,从而给异构系统间的通信造成了很 大的障碍。因此为了使相异设备之间的通信成为可能,用一种标准而与 具体设备无关的方式来定义对象是十分必要的,同时还需要标准的方式 来编解码,使它们用于网络传输。为此,人们需要制订相应的应用协议。 本文工作的对象一一a s n 1 语言,就是用来描述各种协议的语言。它是 一种用来描述结构化信息的标记语言,人们可以利用它来清楚简洁地表 示协议中要传递的各种信息,也能容易地实现相应的协议标准。目前, 在电信、安全信息交换以及多媒体传输等领域,a s n 1 都是描述协议的 主要手段,它己经成为国际标准,用于各种通信协议的具体表示中【2 1 。 a s n 1 是一种标记语言,它可以描述计算机系统之间和各种应用程 序之间要交换和传递的结构化信息,但它毕竟是一种高级抽象描述语言, 是在一种高度抽象的层次上来表示数据结构信息,各种应用程序一般不 容易对其进行操作和使用,这就需要对这些结构化信息进行翻译转换, 转换成相应的编程语言( 如c ,c + + ,j a v a 等) 的数据结构表示形式, 这样就可以对其进行操作,向其中写入相应的值,然后再通过相应的 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 表示的数据结构映射成相应的 开发语言表示的数据结构,这样开发人员便可使用相应的高级语言对该 数据结构进行方便的操作;最后根据相应的编解码规则编写编解码例程, 该例程调用相应的编解码器。此时就可以将应用程序和高级语言表示的 数据结构( 若干头文件) 一起进行编译,并和编解码例程进行连接。至 此,一个使用a s n 1 的应用系统开发完毕,可以与相应的其他系统进行 通信了。 如上所述,a s n 1 到编程语言的翻译器在应用a s n 1 的系统中起着 很重要的作用,是整个系统中必不可少的一个部件,它负责把用a s n 1 描述的数据结构转换成相应的编程语言表示,以便开发人员操纵这些数 据结构,- 对其进行操作。配以相应的编解码例程,就可以进行对象实例 的传输。 1 2a s n 1 语言及其特点 在网络通信著名的o s i 模型( o p e ns y s t e mi n t e r c o n n e c t i o n ,即开放 系统互连模型) 中,最高层即第七层是应用层,它为用户( 人或软件) 提供了访问网络的接口,包含用户所需要的任何功能,提供的服务包括 邮件服务、目录服务、文件访问、传输和管理等等。a s n 1 主要工作在 这一层,在抽象层次上表示结构化数据,作为描述信息和协议的标准记 法。另外,第六层是表示层,在这一层中实现的功能包括翻译、加密解 密、认证以及压缩等,a s n 1 也工作在这一层,实现表示层的翻译功能。 a s n 1 是一种高级抽象描述语言,以一种高度抽象的形式表示数据 结构信息,与具体的平台和编程语言无关,为数据类型( 如整数、实数、 比特、字符串等等) 的定义提供了一种和实现无关的机制。a s n 1 使用 2 重庆邮电大学硕士论文 了对象的概念,对象是定义为具有类型和值的信息实体,可以很容易从 一种格式翻译成另一种格式,使用相应的a s n 1 工具,就可以把用a s n 1 描述的结构化信息映射成某种编程语言的数据结构表示形式。当需要在 实际的物理网络中传输这些数据结构信息时,a s n 1 提供了相应的编解 码规则,可以利用相应的工具将这些数据结构自动转换成传输所需要的 位模式。 a s n 1 作为一种表示数据结构的语言,它提供了比普通的编程语言 丰富得多的数据结构,如子类型( s u b t y p e ) ,整数类型的范围约束 ( i n t e g e r ( 0 10 0 ) ) 、多种类型的字符串( 如p r i n t a b l e s t r i n g 、i a 5 s t r i n g 、 u t f 8 s t r i n g ) 等等;支持用同一方式以很简单的成员构建出任意复杂的 结构,并支持嵌套结构,这种嵌套结构可以扩展到任意深度以满足特殊 需要,最终所有的复杂类型都可以归为由简单类型定义而成。因而a s n 1 表示数据的能力要比普通编程语言强得多,需要描述的信息越复杂,就 越能体现出a s n 1 的优越性。 1 3a s n 1 在t d s c d m a 协议栈中的应用 通用移动通信系统( u m t s u n i v e r s a lm o b i l et e l e c o m m u n i c a t i o n s s y s t e m ) 【3 j 是第三代移动通信系统i m t - 2 0 0 0 的一种,它的网络结构由核 心网( c n ,c o r en e t w o r k ) 、u m t s 陆地无线接入网( u t r a n u m t s t e r r e s t r i a lr a d i oa c c e s sn e t w o r k ) 和用户设备( u e ,u s e re q u i p m e n t ) 3 部分组成【4 j 。c n 和u t r a n 之间的接口称为i u 接口,u t r a n 与用户设 备之间的接口:u u 接口也叫空中接口。u t r a n 由若干个通过i u 接口连 接到c n 的无线网络子系统( r n s ,r a d i on e t w o r ks u b s y s t e m ) 【5 l 组成, 每个r n s 管理一组小区的资源。其中一个r n s 包含一个r n c ( 无线网 络控制器,r a d i on e t w o r kc o n t r o l l e r ) 和一个或多个n o d eb ,而n o d eb 通过i u b 接口与r n c 相连接,r n c 之间通过i u r 接口进行信息交互,如 图1 1 所示。 在3 g p p 的层三消息体系中,一般使用a s n 1 来描述层三消息( 包括 u u 、i u b 、i u r 、i u 等接口的层三消息) 【6 】,再使用定义在i t u t 建议x 6 9 1 中的各种算法来将a s n 1 描述转化为传输编码,这样将消息内容的定义 与传输语法相分离,并有利于消息的进一步扩充。 目前在t d s c d m a 协议栈中使用的a s n 1 编解码应用方式如下: 3 绪论 i u i 瓜 州 id 、t ,、 r n cl l u u i 。 l 、 7 一l u b l u b 一1 u 胪7、i u 护 。、7、 n o d e bn o d e bn o d e bn o d e b 圭 童由 宣 图1 1i uu ui u bi u r 接口 1 首先定义客户端和服务器端之间通信协议对应的a s n 1 语法描 述; 2 然后用a s n 1 编译工具将语法描述文件编译成指定语言对应的 源代码,比如用a s n 1 的j a v a 编译工具可以将a s n 1 句法编译成j a v a 类,如果是c 语言的编译工具,则可以编译出c 语言中的h 文件和c 文 件,这些类和结构本文中称为a s n 1 源代码文件,每个协议消息对应的 类或结构实现了自我编解码,其他语言也类似; 3 最后应用程序将使用这些编译出来的类或结构来承载协议消息 数据,并调用它们的编解码方法获得标准的a s n 1 比特流,发送到目的 端。 1 4 本文研究目标和主要工作 上面介绍的a s n 1 编解码应用方式在通信协议简单,协议消息种类 少且消息结构基本不变的情况下能够良好工作。但是在t d s c d m a 系统 中,随着通信协议的持续增加导致应用系统消息结构和系统代码量随之 不断增多,开发周期和维护成本不断增长而运行效率却不断降低。协议 的频繁升级或更改使得所有相关的端系统必须把应用系统消息结构全部 重新编译,并替换,只要某一端没有完全替换就会导致通信失败,给开 发、调试带来很多不便,系统稳定性受到很大影响。系统使用时间越长, 这些弊端的负面影响也将成倍扩大。 鉴于传统应用方式表现出的上述诸多不足,本文改进并设计了一种 4 重庆邮电大学硕士论文 适用于t d s c d m a 系统的a s n 1 编解码应用模块,在本文中称为t d a s n 模块,它要达到如下目标: 1 协议的消息结构不必生成对应的应用程序源代码,减少系统代码 量; 2 提高编解码和消息结构的数据填充自动化程度,提高系统开发效 率; 3 开发的a s n 1 模块做到一次开发普遍适用,不同协议可以使用同 一套代码,提高代码复用。 本文做的工作: 1 将a s n 1 转换成x m l 文件来描述协议消息,描述内容包括协议 消息结构和a s n 1 的编解码信息,比如数据类型,是否可选,是否有扩 展标记等,用此x m l 描述代替a s n 1 的语法描述; 2 设计并实现一个通用的p d u 数据处理器,采用x m l 树形结构组 织消息内的数据,能适用于任何协议消息结构,对应用程序提供接口实 现消息数据的存储、提取和编解码; 3 设计并实现一个结构良好,代码复用率高,容易扩展和维护的基 本数据类型编解码函数库。 1 5 本文组织结构 本文的内容安排如下: 第一章介绍了本文的研究背景,提出了本文的研究目标和工作; 第二章介绍了a s n 1 的基本概念,语法规则以及b e r 、p e r 编解码 规则; 第三章首先分析了目前业界传统的编译器方式的a s n 1 应用模型, 然后针对传统方式的缺陷提出了t d a s n 模块的总体架构,介绍了总体 架构内部各个模块的设计思想,最后对比了传统模块和t d a s n 模块之 间的异同; 第四章对t d a s n 模块架构做了详细设计和实现,确定了模块接口 及核心算法。先后设计和实现了a s n 1 到x m l 的转换编译器,a s n 1 基本类型编解码库,p d u 数据处理器。 第五章介绍了如何在t d a s n 模块的基础上进行应用开发。 第六章进行了总结,并阐述了未来的进一步工作。 5 a s n 1 抽象语法与编码规则 第二章a s n 1 抽象语法与编码规则 2 1a s n 1 背景知识 2 1 1a s n 1 简介 i s o ( i n t e r n a t i o n a lo r g a n i z a t i o nf o rs t a n d a r d s ) 组织为解决不同类型 终端或开放系统之间应用数据信息的交换,推出了a s n 1 ,加在a s n 名 字的后面的“1 用来区别将来可能产生的更高版本的抽象语法记法【。 a s n 1 已经形成了一系列国际标准,被广泛应用在通信协议的描述上, 它是一种标准的对象定义语言和编码规则。它定义了线路上的位编码规 则,使得一个3 2 位的以二的补码按小端方式编码的管理站就可以明确地 与一个16 位的以二的反码按大端方式编码的c p u 上的代理进行通信哺】。 a s n 1 标准可分成两部分,一部分是抽象语法,一部分是传送语法。 数据类型的a s n 1 描述称为抽象语法,网络中对等实体之间通信时对用 户信息的描述规则称为传输语法。a s n 1 的编码规则定义了它的传送语 法,不同的编码规则定义不同的传送语法。为抽象语法指定一种编码规 则便构成一种传输语法。在表示层中,可用这种方法定义多种传输语法。 传输语法与抽象语法之间是多对多对应关系,即一种传输语法可用于多 种抽象语法的数据传输,而一种抽象语法的数据值也可用多种传输语法 来传输。每个应用层协议中的抽象语法与一个能对其进行编码的传输语 法的组合,就构成一个表示上下文( p r e s e n t a t i o nc o n t e x t ) 。表示上下文 可以在表示连接建立时协商确定,也可以在通信过程中重新定义【9 】。 在a s n 1 之前,对通信协议中传输数据的描述要说明数据在传输时 的具体位或字节的含义,就像程序员一样,在高级语言出现之前,不得 不处理位和字节的存储方式,这样在极端情况下如图2 1 ( a ) 所示,为了 保证网络中n 个异构节点能互通,我们需要为每个节点编写( n 一1 ) 个编 解码程序,即需要总数为n 拳( n 1 ) 个编解码程序。利用a s n 1 ,如图2 1 ( b ) 所示极端情况下,为了保证互通,只需要为每个节点编写1 个编解码程 序,总共n 个程序。在早期的一些标准如a s c i i ,它们既定义了抽象语 法( 比如字母a ) ,又定义了传输语法( o x 4 1 ) 。a s n 1 分离了这两种概 念,以便可以选择一种适合要求的编解码方法。系统可以选择适合应用 6 重庆邮电大学硕士论文 环境的编码方法以使信息传送时效率很高,例如可以选择编解码速度快 的,也可以选择编解码压缩比高的等。另一方面,定义良好的编码规则 也能很大地节约应用协议开发人员的时间,当牵涉到的数据结构非常复 杂时更是如此。当使用a s n 1 的项目较多时,这种节约更加明显,因为 编解码程序可以只开发一次但很多应用程序都可以用它,协议设计人员 业可以在一个较高的层次上描述和观察相关的信息及其结构,而不必过 分关心信息在传输时的实现细节。 圃 口 口 徊 图2 1 两种不同的通信模型 2 1 2a s n 1b e r d e r c e r p e r 编码规则简介 a s n 1 编码规则是异构通信设备之间能够正常通信的基础,只有通 信双方采用相同的编码规则,对方才能够准确无误的解码接收到的数据 包。所以通信双方无论采用何种编码规则,都必须严格按照编码规则的 标准来对数据进行编码,否则对方就不能够准确的解码,通信就出错。 编码规则的应用给数据的传输提供了传输语法。 目前,a s n 1 标准有许多种编码规则,但最初只有一种,即基本编 码规则b e r ( b a s ee n c o d i n gr u l e s ) 【1 0 】,它是伴随a s n 1 而出现的。b e r 编码中存在大量的选择,规则不是很严格,从而使得对协议的一致性测 试耗费了许多资源,由于编码规则中的每种选择在实际应用环境中都有 需求,因此人们迫切需要设计新的编码规则来去掉b e r 中的大量选择, 特别是对于中继系统中与数字签名相关的应用来说,显得更为重要,19 9 4 年推出的规范编码规则c e r ( c a n o n i c a le n c o d i n gr u l e s ) 【1 0 】和区别编码 规则d e r ( d i s t i n g u i s h e de n c o d i n gr u l e s ) 1 1 0 】通过对b e r 规则特殊化满 7 口, 一 l 八口一 a s n 1 抽象语法与编码规则 足了这些要求,它们是b e r 规则的子集,继承了b e r 中的大多数编码 规则,只是在数据定义中存在多重选择域的时候,c e r 对构造类型编码 采用长度非确定形式,而d e r 采用长度确定形式,它们都生成唯一可能 的编码。使用b e r 规则的编解码器能处理c e r 和d e r 的流,反之就不 能。 c e r 特别适合于消息内容长,传送数据量大的应用,例如办公文档 系统。实际上如果编码器编码时没有足够的空间可用,它可以在对数据 进行完全编码之前开始发送,因为c e r 用非确定形式处理构造类型值的 长度。 d e r 是为保障数据安全传送而设计的,特别适用于数字签名的应用, 因此,d e r 在i n t e r n e t 的电子商务领域有着广泛的应用前景。d e r 也适 用于需要传输长度均匀,短小的数据的应用。由于d e r 采用长度确定的 编码形式,所以应用需要足够的空间进行编码,但当接收方需要忽略部 分位流时,这种长度确定形式的编码又有其优点,因为每个数据片段前 都有长度域,所以很容易确定舍弃的字节数。 i t u t 的x 6 9 1 定义了a s n 1 的p e r 编码规则标准【1 1 】,它适用于所 有a s n 1 类型的值得编码解码,而且可以获得比x 6 9 0 建议描述的b e r 编码规则更紧凑的编码结果【_ 7 1 。 当收发双方都理解a s n 1 ,并且也都清楚消息传送的内部细节,这 时就应采用p e r 编码规则。由于只需要对数据值进行编码,而且编码设 计可以有很小的冗余,因此p e r 的编码结果比b e r 精简得多。同时, p e r 规则也适用于该传输语法的解码,以标识被传输的数据值。p e r 编 码有两种编码形式:即排列形式和非排列形式。在排列形式中,需要不 时加入填充比特来保持八位位组的排列。而在非排列形式中,不需要填 充比特。在排列形式和非排列形式之间不存在交互的可能性。p e r 编码 特别适用于高速传输数据的领域,诸如v o i p 、可视电话、多媒体通信等 领域。目前,这些领域有关的协议如h 3 2 3 、h 2 2 5 、h 2 4 5 、h 2 3 5 等都 是采用p e r 编码。 2 2a s n 1 抽象语法 2 2 1a s n 1 数据类型 a s n 1 的抽象语法是用来描述应用层协议p d u 及其它数据结构的文 8 重庆邮电大学硕士论文 法【1 2 儿”】。相比与高级语言中复杂的数据结构,a s n 1 中的类型主要是为 了数据的传输。严格地说,a s n 1 是一种形式语言,其精确的和形式的 记法使它在表示和含义中去掉了任何可能的二义性,它提供了用嵌套和 递归来对复杂数据结构进行统一表示的能力。a s n 1 将现有的数据类型 抽象描述成近二十种数据类型,一个类型就是一个值的集合,比如布尔 类型的值的集合是t r u e 和f a l s e 。一个给定的a s n 1 类型的值是该类 型集合里的一个元素。这些数据类型主要分为两大类:简单类型和结构 类型。简单类型是组成各种构造类型和复杂类型的基础。a s n 1 中定义 的基本类型和构造类型及其说明如表2 1 和表2 2 所示: 表2 1 常见a s n 1 基本类型 ,类型 一 | 食曳,| j ,| , 一j 。 j j麓 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 项中。 b o o l e a n布尔类型,在t r u e 和f a l s e 中取值 i n t e g e r 全部整数( 包括正数和负数) ,又可分为两类: c o n s t r a i n e di n t e g e r ,其上下界都有限制,例如: p a r a m e t e r 1i n t e g e r ( 1 4 ) ;u n c o n s t r a i n e di n t e g e r , 其上下界都没有限制,例如:p a r a m e t e r 2i n t e g e r 。 r e a l 实数,表示浮点数。 e n u m e r a t e d标识符的枚举定义变量值的一个集合,变量的 值只能在列举出来的范围内。 b i ts t r i n g 比特串,以比特为单位的串。 o c t e ts t r i n g 字节串,以字节为单位的串。 o b j e c t 标识i s o 和i t u t 定义的标准对象信息。使用的 i d e n t i f l e r ,机制是定义一棵标准树,将每个标准对象对应标 r e l a t i v e 0 i d 准树上一个节点,树上的每个节点都有一个标签 和一个代码,所以使用标签号或代码就能用弧的 列表来标识节点。 表2 2 常见a s n 1 结构类型 一“ 。 ;1 。,r “+ ,类型 。, 惫轧 ? 。,j 。j j。 。:j c h o i c e 表示选择一组数据类型中的一个,相当于c 语言 中的u n i o n 联合体; s e q u e n c e由不同类型的值组成的一个有序的结构,相当于c 9 a s n 1 抽象语法与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论