欢迎来到通信人在线![用户登录] [免费注册]

抽象语法记法(ASN.1)及其标准介绍

浏览:8249  来源:通信人在线  日期:2017-08-29

通信设备需要相互传输数据,但是设备可能是由不同厂家生产的,其硬件体系结构、程序语言的语法定义和程序功能实现一般是不相同的。例如,在一台设备中,整形数据类型是16位表示,而在另一台则可能用32位表示。这些差异导致了同一数据对象在不同的设备上被表示为不同的符号串。为了解决以上问题,ISO组织推出了抽象语法表符号1ASN.1Abstract Syntax Notation One)。ASN.1通过定义若干简单类型和复合类型,使得各个设备对其间交换消息的数据类型有了一致的认识。系统的消息发送方采用编码规则(BERPER)将ASN.1描述的消息编码成二进制字节流;消息接受方对收到的字节流进行解码,再转化为符合其自身语法的消息格式。这样,经过ASN.1处理的消息独立于应用环境,就不会因为系统终端的区别而产生歧义。基于H.323协议的视频会议系统的信令消息就是采用ASN.1来表示的。

80年代初,当时的国际电报电话咨询委员会(CCITT)将应用于E-mail MHS协议的基本记法和解码格式进行了标准化,形成了X.409方案,这是ASN.1的前身。该标准后来被ISO组织采用并将其分为抽象语法记法和传输语法,形成了ISO/IEC 8824ISO/IEC 8825两个系列标准,且版本在不断更新之中(目前是2015年版本)。CCITT1989年相应地发布了X.208ASN.1)和X.209BER)取代了X.409。但后来由国际电信联盟(ITU)在1994年颁布的数据结构基本描述X.680Specification of basic notation)、信息对象描述X.681Information object specification)、约束描述X.682Constraint specification)和规范的参数化X.683Parameters of ASN.1 specification)等系列标准代替了X.208X.209也被ITU1994年的X.690~ X.696所代替。X.680系列和X.690系列又分别于1997年、2002年和2015年更新了版本。ITU-TX.680系列和X.690系列分别与ISO8824系列和8825系列相对应;我国从1996年开始也陆续颁布了相应的国家标准。

欲进一步了解我国关于ASN.1的相关标准索引的请进入

根据标准X.680ASN.1定义的数据结构类型分为简单类型和复合类型。基本类型是ASN.1描述数据结构的基础;复合类型是通过基本类型的组合而形成的较复杂的类型。

基本类型包括BOOLINTEGERREALBIT STRINGOCTET STRINGENUMERATEDOBJECT IDENTIFIERNULL等。这些类型的注释详见下表1ASN.1里定义的每个基本对象都有一个对应的数字标识Tag,在进行二进制编码的时候需要使用该标志。ASN.1定义的部分基本数据类型,其各字段的含义、标识Tag详见下表2

1:基本类型的注释

2ASN.1定义的基本数据类型

复合类型有SEQENCESETCHOICESEQUENCE OFSET OF等。其中SEQUENCESET类型可表示一组不同数据类型的集合,相当于C语言中的struct结构体;CHOICE类型是表示选择一组数据类型中的一个,相当于C语言中的union联合体;SEQUENCE OF SET OF类型定义了同一数据类型元素的集合,相当于C语言中的数组。两者的差别是:SEQUENCE OF内各项元素是有序的,而SET OF结构中各项元素的顺序是任意的。

ASN.1 取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER)、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和 XER 编码规则(XER)。这些编码规则(分别由X.690系列所规范)描述了如何对 ASN.1 中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。ASN.1的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输--在无线宽带中,这是一种优势。1984年,ASN.1就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。

简洁的二进制编码规则(BERCERDERPER,但不包括 XER)可当作更现代XML的替代。然而,ASN.1支持对数据的语义进行描述,所以它是比XML更为高级的语言。

 


附录
联合国儿童基金会助学
© 2004-2024 通信人在线 版权所有 备案号:粤ICP备06113876号 网站技术:做网站