没有合适的资源?快使用搜索试试~ 我知道了~
首页ASN.1编码规则详解(最全最经典).doc
资源详情
资源评论
资源推荐

编码规则详解
简介
&注释:
本章的内容主要翻译自《》和
《》。
简介
,抽象记法 。数字 被 加在 的后边,
是为了保持 的开放性,可以让以后功能更加强大的 被命名为 等,但至今
也没有出现。
是定义抽象数据类型规格形式的标准。是用于描述数据的表示、编码、传输、
解码的灵活的记法。它提供了一套正式、无歧义和精确的规则,以描述独立于特定计算机
硬件的对象结构。
是通信协议中描述数据传输的正式标记(),它与语言实现和物理表示
无关,与应用的复杂度无关。 特别适合表示现代通信应用中那些复杂的、变化的及
可扩展的数据结构。
发送任何形式(音频、视频、数据等等)的信息都必须用数字传送。 只
能包含信息的结构方面(没有已经定义的或考虑到的处理数据值的操作)。它不是一个编
程语言。
本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。各种
编码规则提供了由 描述其抽象句法的数据的值的传送语法(具体表达)。标准的
编 码 规 则 有 基 本 编 码 规 则 ( , ) 、 规 范 编 码 规 则
( , ) 、 唯 一 编 码 规 则 ( , !
)、压缩编码规则( ","#)和 $%& 编码规则($,$%&
)。
成功 的一个主要理由是它采用了一些如 或新 制定 的
""#这样的标准化的编码规则,它对受带宽限制的应用程序很有用 。

这些编码规则描述了如何将定义在 中的值译成适合传输的电码(例如'他们可以被转
化为可传输的字节,或反向转化),其与机器、编程语言或者在应用程序中的表示无关 。
的编码方式比很多竞争者更先进,能够快速并可靠的传输可扩展信息--这是无线
带宽的一个优势。由于从 () 年以后 已经成为一个国际标准,所以它的编码规则是
成熟的并且它有长期的可靠性和互用性的跟踪记录。一个的 源文件可以非常容易地
(由预处理器)映射为 或 **或 +, 数据结构,可用于通过应用程序代码,和支持的运
行时库提供的编码和解码的申述或者一个 $%& 或限值的格式,或非常紧凑的压缩编码格
式。
几乎所有操作系统上的工具都支持 , 支持如 -,, 和 **这样流行的编
程语言,和包括 & 这样的较老的编程语言。 的广泛性的一个例子是,有很多
工具已经支持超过 ./ 种不同的计算机平台。有大量经过检验的 工具已经被长期使
用。
是一种01231标准,描述了一种对数据进行表示、编码、传输和解码的数
据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些
数据的具体指代,也不用去管到底是什么样的应用程序—不论是非常复杂的,还是非常简
单的。
在任何需要以数字方式发送信息的地方,都可以发送各种形式的信息(声频、
视频、数据等等)。和特定的编码规则推进了结构化数据的传输,尤其是网
络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数
据结构。
协议套中的应用层协议使用了来描述它们所传输的" 2,这些协议包括:
用于传输电子邮件的$4//、用于目录服务的$.//、用于5"的677和%"。它的
应用还可以扩展到通用移动通信系统(2%1)中的接入和非接入层。
简洁的二进制编码规则(、、 、",但不包括$)可当作更现代
$%&的替代。然而,支持对数据的语义进行描述,所以它是比$%&更为高级的语
言。
的描述可以容易地映被射成或**或+,的数据结构,并可以被应用程序代码
使用,并得到运行时程序库的支持,进而能够对编码和解码 $%&或1&5格式的,或一种
非常紧凑的压缩编码格式的描述。
同时, 是一种用于描述结构化客体的结构和内容的语言。

抽象语法定义:
是描述在网络上传输信息格式的标准方法。它有两部分:一部分描述信息内数
据,数据类型及序列格式;另一部分描述如何将各部分组成消息。它原来是作为 $4/( 的
一部分而开发的,后来才自己独立成为一个标准。 在 的 ))4012$/)
(说明语法)和 )).012$/((说明基本编码规则)规范。
例如:
Report ::= SEQUENCE {
author OCTET STRING,
title OCTET STRING,
body OCTET STRING,
biblio Bibliography
}
在这个例子中,898是由名字类型的信息组成的,而 :2 表示消息是许多
数据单元构成的,前三个数据单元的类型是 111;,而最后一个数据类型则下面
的 语法表示它的意义:
Bibliography ::= SEQUENCE {
author OCTET STRING
title OCTET STRING
publisher OCTET STRING
year OCTET STRING
}
提供了一些基本的预定义数据类型:
25&/保留给编码规则使用
25&布尔类型
25&整型
25&7二进制字符串类型
25&4八进制字符串类型
25&.空类型

25&<对象标识符类型
25&=对象描述符类型
25&)外部类型和类型实例
25&(实数类型
25&/枚举类型
25&嵌入的9,类型
25&21>)字符串类型
25&7相关对象标识符类型
25&43.保留给本建议的以后版本和国际标准使用
25&<序列和类型序列
25&=集合和类型的集合
25&)3?.37/字符串类型
25&734时间类型
25&73保留给本建议以外的类型和国际标准使用
还能够定义如下的数据结构类型:
结构:2?
列表:2>?
类型选择6?
等等
不同体系的系统,不同编程语言之间,都存在通讯障碍。如 >3)所示极端情
况下,为了保证网络中 个异体的节点能互通,我们需要为每个节点编写3个编解码程
序,即需要总数为 @3个编解码程序。在 )所示极端情况下,为了保证互通,需要为
每个节点编写 个编码和 个解码程序,即总数为 个编解码程序。
两种类型的通讯方式

对于给定的记法描述, 编译器能执行并产生如 图中虚线部分,这样我
们以有限的代价就能完成相当多数量系统之间的互连。
语法三元组:实际语法、抽象语法和传输语法
(1)实际语法()
指诸如 、 等这样实际编程语言;
(2)抽象语法()
指 ,是协议采用 规范描述的描述文本。描绘了与任何表示数据的编码技术
无关的通用数据结构。抽象语法使得人们能够定义数据类型,并指明这些类型的值。抽象语法
只描述数据的结构形式,与具体的编码格式无关,同时也不涉及这些数据结构在计算机内如何
存放。
(3)传输语法(!")
指表示层交换数据的表示方法,是实际通讯系统间的码流。当数据在两个表示层实体之间
传输时,这些数据的实际比特模式表示方法就是传送语法。
(4)编码
指用来表示数据值的完整的八位组序列。
(5)编码规则
从一个语法到另一个语法的映射规约。具体地说,编码规则从算法上定义了任何一组由抽
象语法定义的数据值在传送语法中的表示。
剩余63页未读,继续阅读














enaking
- 粉丝: 13
- 资源: 9
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0