抽象语法记法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
抽象语法记法
抽象语法记法(ASN.1)是一种ISO/ITU-T标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。
它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序——不论是非常复杂的,还是非常简单的。
在任何需要以数字方式发送信息的地方,ASN.1都可以发送各种形式的信息(声频、视频、数据等等)。
ASN.1和特定的ASN.1编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数据结构。
ISO协议栈中的应用层协议使用了ASN.1来描述它们所传输的PDU,这些协议包括:用于传输电子邮件的X.400、用于目录服务的X.500、用于VoIP的H.323和SNMP。
它的应用还可以扩展到通用移动通信系统(UMTS)中的接入和非接入层。
ASN.1取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER)-X.209、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和XER编码规则(XER)。
这些编码规则描述了如何对ASN.1中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。
ASN.1的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输—在无线宽带中,这是一种优势。
1984年,ASN.1就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。
简洁的二进制编码规则(BER、CER、DER、PER,但不包括XER)可当作更现代XML的替代。
然而,ASN.1支持对数据的语义进行描述,所以它是比XML更为高级的语言。
ASN.1的描述可以容易地映被射成C或C++或Java的数据结构,并可以被应用程序代码使用,并得到运行时程序库的支持,进而能够对编码和解码XML或TLV格式的,或一种非常紧凑的压缩编码格式的描述。
ASN.1提供了一些基本的预定义数据类型:UNIVERSAL0保留给编码规则使用;UNIVERSAL1布尔类型;UNIVERSAL2整型;UNIVERSAL3二进制字符串类型;UNIVERSAL4八进制字符串类型;UNIVERSAL5空类型;UNIVERSAL6对象标识符类型;UNIVERSAL7对象描述符类型;UNIVERSAL8外部类型和类型实例;UNIVERSAL9实数类型;UNIVERSAL10枚举类型;UNIVERSAL11嵌入的pdv类型;UNIVERSAL12UTF8字符串类型;UNIVERSAL13相关对象标识符类型;UNIVERSAL14-15保留给本建议的以后版本和国际标准使用;UNIVERSAL16序列和类型序列;UNIVERSAL17集合和类型的集合;UNIVERSAL18-22,25-30字符串类型;UNIVERSAL23-24时间类型;UNIVERSAL31-...保留给本建议以外的类型和国际标准使用。
ASN.1还能够定义如下的数据结构类型:结构(SEQUENCE),列表(SEQUENCEOF),类型选择(CHOICE)。