欢迎来到天天文库
浏览记录
ID:42267145
大小:1.86 MB
页数:108页
时间:2019-09-09
《ASN.1编码规则详解(最全最经典) (1)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、ASN.1编码规则详解1简介注释:本章的内容主要翻译自《ASN.1CommunicationbetweenHeterogeneousSystems》和《ASN.1Complete》。1.1ASN.1简介ASN.1(AbstractSyntaxNotationdotone),抽象记法1。数字1被ISO加在ASN的后边,是为了保持ASN的开放性,可以让以后功能更加强大的ASN被命名为ASN.2等,但至今也没有出现。ASN.1是定义抽象数据类型规格形式的标准。是用于描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则,以描述独立
2、于特定计算机硬件的对象结构。ASN.1是通信协议中描述数据传输的正式标记(notation),它与语言实现和物理表示无关,与应用的复杂度无关。ASN.1特别适合表示现代通信应用中那些复杂的、变化的及可扩展的数据结构。ASN.1发送任何形式(音频、视频、数据等等)的信息都必须用数字传送。ASN.1只能包含信息的结构方面(没有已经定义的或考虑到的处理数据值的操作)。它不是一个编程语言。ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。各种ASN.1编码规则提供了由ASN.1描述其抽象句法的数据的值的传送语法(具体表达)。标准的ASN.1编码
3、规则有基本编码规则(BER,BasicEncodingRules)、规范编码规则(CER,CanonicalEncodingRules)、唯一编码规则(DER,DistinguishedEncodingRules)、压缩编码规则(PER,PackedEncodingRules)和XML编码规则(XER,XMLEncodingRules)。ASN.1成功的一个主要理由是它采用了一些如BER(BasicEncodingRules)或新制定的PER(PackedEncodingRules)这样的标准化的编码规则,它对受带宽限制的应用程序很有用。这些编码规则描述
4、了如何将定义在ASN.1中的值译成适合传输的电码(例如:他们可以被转化为可传输的字节,或反向转化),其与机器、编程语言或者在应用程序中的表示无关。ASN.1的编码方式比很多竞争者更先进,能够快速并可靠的传输可扩展信息--这是无线带宽的一个优势。由于从1982年以后ASN.1已经成为一个国际标准,所以它的编码规则是成熟的并且它有长期的可靠性和互用性的跟踪记录。一个的ASN.1源文件可以非常容易地(由预处理器)映射为C或C++或Java数据结构,可用于通过应用程序代码,和支持的运行时库提供的编码和解码的申述或者一个XML或限值的格式,或非常紧凑的压缩编码格式
5、。几乎所有操作系统上的工具都支持ASN.1,ASN.1支持如java,c和c++这样流行的编程语言,和包括COBOL这样的较老的编程语言。ASN.1的广泛性的一个例子是,有很多工具已经支持超过150种不同的计算机平台。有大量经过检验的ASN.1工具已经被长期使用。ASN.1是一种ISO/ITU-T标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序—不论是非常复杂的,还是非常简单的。在任何需要以数字方式发送信息的地方,ASN.1都
6、可以发送各种形式的信息(声频、视频、数据等等)。ASN.1和特定的ASN.1编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数据结构。ISO协议套中的应用层协议使用了ASN.1来描述它们所传输的PDU,这些协议包括:用于传输电子邮件的X.400、用于目录服务的X.500、用于VoIP的H.323和SNMP。它的应用还可以扩展到通用移动通信系统(UMTS)中的接入和非接入层。简洁的二进制编码规则(BER、CER、DER、PER,但不包括XER)可当作更现代XML的替代。然而,ASN.1支持
7、对数据的语义进行描述,所以它是比XML更为高级的语言。ASN.1的描述可以容易地映被射成C或C++或Java的数据结构,并可以被应用程序代码使用,并得到运行时程序库的支持,进而能够对编码和解码XML或TLV格式的,或一种非常紧凑的压缩编码格式的描述。同时,ASN.1是一种用于描述结构化客体的结构和内容的语言。抽象语法定义:ASN.1是描述在网络上传输信息格式的标准方法。它有两部分:一部分描述信息内数据,数据类型及序列格式;另一部分描述如何将各部分组成消息。它原来是作为X.409的一部分而开发的,后来才自己独立成为一个标准。ASN.1在OSI的ISO882
8、4/ITUX.208(说明语法)和ISO8825/ITUX.209(说明基本编码
此文档下载收益归作者所有