非对齐压缩编码规则UPER介绍
通信系统不断发展,通信系统中协议结构的可选项、元素类型和扩展项等也变得越来越复杂,为了适应复杂数据结构传输的需要,ITU-T定义了一种标记语言,即ASN.1,用来定义传送数据的语法。
ASN.1组成:语法规则+编码规则
1、语法规则:从数据类型、内容顺序或结构等方面来描述消息的内容。
数据类型: 基本类型+复合类型
1)基本类型: BOOL, INTEGER,REAL,BIT,STRING,OCTET STRING,ENUMERATED,OBJECT INTEGER等
2)复合类型:基本类型组合而形成的较复杂类型
2、编码规则:如何编码实际消息中的数据。
ASN.1编码规则:BER(basic encoding rules) + PER(packed encoding rules)
1)BER,编码实现采用嵌套方式,数据结构如下:
Tag+ length + contents (tag+ length + contents (…))

Tag:标识类型
Length:数据字段的长度(单位:字节)
Contents:数据字段的内容
2)PER:对齐方式(aligned PER)+非对齐方式(unaligned PER,UPER)
编码实现采用嵌套方式,数据结构如下:
Preamble+Length+Contents(Preamble+Length+Contents(…))

Preamble:导言,表示数据类型的ASN.1句法是否含扩展标记。或SEQUENCE/SET中的可选项、缺省项是否参与编码
Length:数据字段的长度(单位:字节/比特)
Contents:数据字段的内容
3、对比分析
1 ) BER相比PER,占用空间大

2)UPER相比aligned PER,各个数据项的编码之间没有填充的比特,比aligned PER更精简,但这种编码的结果没有从字节的边界处开始,实现起来不方便,而且也将占用更多的CPU时间。