通讯网络中进行ASN.1编解码(BER)的方法.doc_第1页
通讯网络中进行ASN.1编解码(BER)的方法.doc_第2页
通讯网络中进行ASN.1编解码(BER)的方法.doc_第3页
通讯网络中进行ASN.1编解码(BER)的方法.doc_第4页
通讯网络中进行ASN.1编解码(BER)的方法.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

通讯网络中进行ASN.1编解码(BER)的方法说 明 书 摘 要本发明公开了一种通讯网络中进行Asn.1编解码(BER)的一种方法。其包含了:使用语法和词法分析工具,产生能够读取Asn.1语法并生成用于记录ASN.1数据的结构和记录ASN.1结构信息的文件的工具。根据结构文件中的数据信息进行编解码调度的模块。针对不同的数据类型(元编码的数据类型)进行编解码的模块。本方法的使用能够大幅降低程序的开发及维护的工作量以及难度权 利 要 求 书1 应用数据结构的生成。其特征在于:使用语法和词法分析工具分析标准的ASN1语法,生成用于给应用使用的结构。参数,参数类型,SET SEQUENCE类型定义为结构体,包含子参数是否填写的标志和子参数字符串(OCTET STRING ,BIT STRING等)类型定义为包含字符串长度的结构体。SET OF, SEQUENCE OF类型定义为结构体。包含数组使用个数和结构数数组。CHOICE类型定义为联合体,包含选择的参数标志和子参数。2 应用数据结构信息树的生成,其特征在于:使用语法和词法分析工具分析标准的ASN1语法,生成结构的详细信息,包括:a) 变量类型,b) 变量名称,c) 变量的存储地址(偏移地址),d) 变量占用字节数,e) 变量数量,f) 变量在ASN1中的标签g) 变量在ASN1中的类型(0:universal 1:Application 2:Context 3:Private)h) 结构编码或元编码(0:PRIMITIVE 1:CONSTRUCTED)i) 原标签j) 可选或必选k) 显式或隐式标签l) 指向结构的指针m) 赋值范围等。3 编解码的调度,其特征在于:通过遍历结构信息树获取权利要求1,权利要求2的描述的参数详细信息,根据信息进行相应的编解码调度,拼接编码的字节串及将解码的值填入结构相应地址。4 原编码数据类型的编解码,其特征在于:根据权利要求3的调度进行编解码。说 明 书通讯网络中进行ASN.1编解码(BER)的方法技术领域:本发明涉及移动网络通讯系统,特别是涉及一种移动网络通讯系统中实现信息传递的编解码的方法。背景技术:Abstract Syntax Notation One (ASN.1抽象语法标记)是一种独立于机器的描述语言,用于描述在网络上传递的消息,特别是的广泛应用于移动网络通讯系统中的各种协议的传输。例如RANAP,MAP,H.248等。ASN.1的编码方式比很多竞争者更先进,能够快速并可靠的传输可扩展信息这是无线带宽的一个优势。由于从1982年以后ASN.1已经成为一个国际标准,所以它的编码规则是成熟的并且它有长期的可靠性和互用性的跟踪记录。然而,Asn1编解码是一个很费时费工的工作,使用不针对某一结构的统一的编解码方式,成为现今许多公司的趋势。发明内容:本发明的目的就是利用词法语法分析工具,提供一种不针对某一特定结构数据的统一的编解码的方法。适用于所有的Asn.1所描述的数据类型的编解码。据有简单,灵活,快捷,易读,扩展性好等特点。为了达到上述目的,本发明用于统一的编解码方式包括四部分:应用数据结构的生成,数据信息结构树的生成,编解码的调度,原编码数据类型的编解码应用数据结构的生成:使用词法语法分析工具(例如:Lex &Yacc)产生的分析工具,分析标准Asn.1语法表述,分析出Asn.1语法表述中的消息,消息的操作码,消息中的参数,参数数据类型,参数的属性信息等。生成可以让应用层使用的结构。编码时由应用层填写相应的数据参数的值,经过编解码模块的编码生成标准Asn.1的码流,用于传输。而解码时,根据获得的标准Asn.1的码流,经过编解码模块的解码,将值信息填入结构中,以备应用层使用。数据信息结构树的生成:使用词法语法分析工具(例如:Lex &Yacc)产生的分析工具,分析标准Asn.1语法表述,分析出Asn.1语法表述中的消息中每个参数的属性:可选/必选,显式/隐式,应用上下文,取值范围,数据类型,结构/原编码,存储地址(偏移地址),标签类型,子参数指针等。将这些信息写入编解码模块的全局的树形结构中。用于在编解码的过程中通过遍历树获取参数信息。编解码的调度:根据获得的参数的信息(是否填写,标签类型,结构,数据类型等)进行相应的编解码调度。原编码数据类型的编解码。根据调度模块的调用进行编解码。附图说明:图一. 是词法语法分析工具的原理图图二. 是Asn.1编解码的工作原理图图三. 是Asn1数据类型定义示意图图四. 是消息的结构信息存储方式示意图图五. 是消息的结构信息存储内容的示意图图六. 是编码的流程图图七. 是解码的流程图具体实施方式:图一展示了词法语法分析工具工作原理,将包含了正则表达式的词法规则作为其输入的程序,并且为每一个表达式被匹配是定义一种动作。用于通知词法规则。词法规则指定Asn.1格式的语法作为它的输入,并根据该语法规则的分析过程,记录Asn.1语法中的属性,并产生特定格式的输出文件,即(图三)格式的数据结构和(图四,图五)格式的结构信息数据。图二展示编解码的工作原理。词法语法分析工具分析Asn.1语法,产生相应数据结构和结构信息数据,应用向编解码模块传入编解码的数据,编解码的调度模块从结构信息数据中获得消息的详细信息。根据这些信息进行编解码。(编码产生的是Asn.1码流,解码产生的是结构化的消息数据)图三展示了对应于Asn.1数据类型的结构的格式:1 对于Sequence,Set,Choice类型定义为结构的格式,包括:a) 用于表示可选子参数是否被选用的标志位,一个参数占一个Bitb) 子参数。2 对于 SequenceOf ,SetOf类型定义为包含数组的结构,包括a) 用于表示选用的数组个数的标志位,填写最大值要求小于数组的最大维b) 子参数的数组。3 OCTET STRING,NUMBER STRING,PRINT STRING等字符串类型定义为结构,包括:a) 使用的字节数。b) 字符串的值。4 BIT STRING字符串类型定义为结构,包括a) 使用的字节数。b) 未使用的比特数c) 字符串的值其他的类型定义为编成语言的对应类型图四展示了结构信息存储的方式,以一种树形结构的方式存储结构信息,根节点作为消息的主结构。包含消息的所有参数,其参数可以为元编码类型,也可为结构编码类型。结构编码类型应指向它的子结构。图五展示了结构信息存储的内容,内容包括:变量类型,变量名称,变量的存储地址(偏移地址),变量占用字节数,变量数量,有标签值的标签,标签类(0:universal 1:Application 2:Context 3:Private),结构编码或元编码(0:PRIMITIVE 1:CONSTRUCTED),标签,可选或必选,显式或隐式标签,指向结构的指针,赋值范围指向结构的指针(对于元编码类型指针为NULL)图六展示了编码的流程,应用对结构进行赋值,将结构的地址,操作码,传入编解码模块,编解码模块的调度模块根据操作码获取结构的信息,将结构信息指针m指向结构信息的第一个参数,结构指针p指向指针m指示的结构的第一个参数的存储地指,判断该参数是否赋值(使用标志位为)若未赋值,则指向结构信息的下一参数,指针p指向指针指示的结构下一参数的存储地址,进行下一参数的编码。若赋值 (使用标志位为)则根据m的值判断参数的标签类型是元编码类型还是结构编码类型。若为结构编码,则指针m指向m子结构。递归调用编码函数,进行新的结构的编码。若为元编码则根据m的信息获取p地址的值,进行元编码。直至参数为结构中的最后一个参数。图七展示了解码的流程,应用层将Asn.1码流和操作码传入编解码模块,编解码模块的调度模块根据操作码获取结构的信息,结构信息指针m指向结构信息的第一个参数,结构指针p指向m指示的结构的首地址,码流指针k指向码流的首地址,解出k的标签和长度,查找标签在结构中m指示的地址(解出的标签等于m结构信息的标签),结构指针p指向结构信息指针m指示的地址,判断m指示的编码类型是元编码还是结构编码,若结构编码,则获取结构的子码流(k地址到解出的长度之间的码流)。结构信息指针m指向m的子结构。递归调用解码程序进行解码。若为元编码,则解出码流的值,填入结构指针p的地址中,同时填写参数使用标记。码流指针k=k+解码的长度,判断k是否是码流的结尾,若不是则,结构信息指针m指向下一参数,重新进行解码操作,直至码流结束。说 明 书 附 图元编码码流传送结构数据(编码)标准的ASN1语法描述数据结构Asn.1分析工具产生应用层ASN1编解码调度模块元编码数据类型的编解码模块结构数据的信息元编码数据类型和值消息码流(编码)结构数据(解码)图二使用结构结构信息数据传送Asn.1码流(解码)图一SEQUENCE参数选用标志参数列表SEQUENCEOF参数使用个数参数数组SET参数选用标志参数列表SET OF参数使用个数参数数组CHOICE参数选用标志参数列表OCTET STRING字符串使用字节数字符串数组BIT STRING字符串使用字节数未使用Bit数字符串数组图三其他类型编程语言中的对应数据类型其他类型字符串类型字符串使用字节数字符串数组消息Head参数1参数2参数3参数4参数2.1参数2.2参数4.1参数4.2参数4.2.2参数5参数4.2.1参数2.2图四消息参数1参数类型起始地址NULL参数2参数类型起始地址参数 2的结构参数3参数类型起始地址NULL参数4参数类型起始地址参数 4的结构参数5参数类型起始地址NULL参数2参数2.1参数类型起始地址NULL参数2.2参数类型起始地址NULL参数2.3参数类型起始地址NULL参数4参数4.1参数类型起始地址NULL参数4.2参数类型起始地址参数4.2的结构参数4.2参数4.2.1参数类型起始地址NULL参数4.2.2参数类型起始地址NULL图五根据m的信息对p值进行编码根据m的信息判断元编码或结构编码元编码m指向下一个参数m指向结构信息的第一个参数的获取结构参数的信息m指向下一个参数图六Y结束是否是最后一个参数递归方式根据m指示的参数的存储地获取

温馨提示

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

评论

0/150

提交评论