asn.1的ber编码.docx_第1页
asn.1的ber编码.docx_第2页
asn.1的ber编码.docx_第3页
asn.1的ber编码.docx_第4页
全文预览已结束

下载本文档

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

文档简介

asn.1的ber编码ASN.1即抽象语法符号,用来定义应用程序数据和表示wiki协议/wiki数据单元的抽象语言。 优点是独立于机器、语言及应用程序的内部表示。适用于描述现代通信中复杂的、变化的、可扩展的数据结构。比如wiki3G/wiki和VowikiIP/wiki均采用了 ASN.1。 ASN.1分两大部分:语法规则和编码规则。 语法规则 1. ASN.1定义示例 Age := INTEGER (0.120)User := SEQUENCE name IA5String (SIZE(1.128), age Age DEFAULT 18, address IA5String OPTIONAL, . 2. 简单类型 基本类型字符串类型对象类型其它类型 3. 构造类型 SEQUENCE,对应于C语言中的structSEQUENCE OF,对应于数组 SET,类似于SEQUENCE,但不考虑分量顺序 SET OF,集合类型,每一分量类型相同,不考虑顺序 4. 类型定义 语法: typereference := Type示例: 1) Counter := INTEGER 2) UserAccount := SEQUENCE username PrintableString, password PrintableString, account INTEGER 5. 赋值 语法: valuereference Type := Value示例: 1) current Counter := 1234 2) myAccount UserAccount := username “tly”, password “guesswhat”, account 2345编码规则 1. BER 1) 三种情况及其格式: a.简单类型(Primitive),定长;Identifier | Length | Content b.构造类型(Constructed),定长;Identifier | Length | I | L | C | I | L | C | .c.构造类型(Constructed),不定长;Identifier | Length | I | L | C | I | L | C | EOC|2) Identifier编码 格式: 8 7 6 5 4 3 2 1 Class | P/C | Tag number分两种情况:a.Tag number = 313) Length及Content编码分三种情况: a.短形(L = 128),定长c.不定长,仅用于构造类型4) 示例 a.INTEGER 49 0000 0010 0000 0001 0011 0001b.UserAccount := SEQUENCE username IA5String, account INTEGER myAccount UserAccount := username “john”, account 129 0011 0000 0000 10100001 0110 0000 00110100 1010 0110 11110110 1000 0110 11100000 0010 0000 00100000 0000 1000 0001 2. DER 为确保编码的唯一性,出现了CER和DER两种编码方案,它们均为BER子集。其中DER只使用定长编码,CER基于不定长编码。3. PER 在PER中,tag从不传送,length和value如果双方都知道,也不需传送。因此,其编码更精简,效率更高。1) 格式 preamble | length | contents preamble:只出现在ENUMERATED、SEQUENCE、SET、CHOICE四种数据结构的编码中。用来记录结构中有无扩展项(extension)、选择项(optional)或缺省项(default); length: 对STRING、SEQUENCE OF、SET OF等数据类型进行编码时,需对其长度按对齐方式进行编码; contents:若数据是基本结构类型,如:BOOLEAN、INTERGER、REAL、BITSTRING等,即可直接进行编码;若数据是复合结构类型,如SEQUENCE、SET、CHOICE、SEQUENCE OF 等,则属嵌套编码,此时contents中也包含有preamble、length、contents三个部分。2) 示例 a. cug-Index INTEGER(1.256)的值为10时,PER编码为(pad)00001001b. error CHOICE systemErr NULL, operationErr NULL, 若error值为systemErr,则PER编码为00。 4. XER 即XML Encoding Rules,主要应用于网站开发,本文不作介绍。 8 7 6 5 4 3 2 1 + Length + Content -|Class |X | Tag | | Class: 0 0 Universal0 1 Application 1 0 Context-speciatic:指Type不需传送,双方约定 IMPLICIT1 1 prviate X : 0 - primitive -指定:content without a Structure 只有 1个Length 1个Content1 - contructed -指定:content with addition structure (如squence,squence of , implicit squence ,implicit squence of ) (Type , Length ,Content )任意个嵌套T-L-CTag: ASN.1中Tag可能超过5个Bits,但是MMS中不会出现Length: 指Content的长度。可以任意长度, 例子: 1.单个OCTET STRING (ASN.1 key word ) Type (= OCTET STRING), Length (= 5 Octets) and Content (= 24 65 4F EF F3 hex)T L C - - -04 05 24 65 4F EF F3 2.有上下文中的2IMPLICIT OCTET STRING (多2IMPLICIT )T L C - - -82 05 24 65 4F EF F3- 1 0 0 0 0 0 1 0 05 24 65 4F EF F3- -1 0 : Context-speciatic 0 0 0 1 0: 02 primitive , value = 2 3.有上下文中的2 OCTET STRIN

温馨提示

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

评论

0/150

提交评论