ASN.1编码规则详解.doc

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ASN.1编码规则详解 1 简介 ( 注释: 本章的内容主要翻译自《ASN.1 Communication between Heterogeneous Systems》和《ASN.1 Complete》。 ? ASN.1 – Abstract Syntax Notation dot one,抽象记法1。数字1被ISO加在ASN的后边,是为了保持ASN的开放性,可以让以后功能更加强大的ASN被命名为ASN.2等,但至今也没有出现。 ? 不同体系的系统,不同编程语言之间,都存在通讯障碍。如Figure 1-1a)所示极端情况下,为了保证网络中n个异体的节点能互通,我们需要为每个节点编写(n-1)个编解码程序,即需要总数为n*(n-1)个编解码程序。在b)所示极端情况下,为了保证互通,需要为每个节点编写1个编码和1个解码程序,即总数为2n个编解码程序。 Figure 1-1 两种类型的通讯方式 对于给定的记法描述,ASN.1编译器能执行并产生如Figure 1-2图中虚线部分,这样我们以有限的代价就能完成相当多数量系统之间的互连。 Figure 1-2 语法三元组:实际语法、抽象语法和传输语法 图中实际语法(Concrete Syntax)是指诸如C、Objective Caml等这样实际编程语言,抽象语法(Abstract Syntax)指ASN.1,传输语法(Transfer Syntax)指表示层交换数据的表示方法。从抽象语法到传输语法,由ASN.1编译器按照编解码规则实现。通俗来讲,抽象语法就是协议采用ASN.1规范描述的描述文本;传输语法就是实际通讯系统间的码流。 Figure 1-3 抽象语法与传输语法 其实在早期的一些标准如ASCII,它们既定义了抽象语法(比如字母A),又定义了传输语法(0x41)。ASN.1分离了这两种概念,以便可以选择一种适合要求的编解码方法。系统可以选择编码方法以使信息传送时效率很高,或者具有很高的可靠性,等等。另一方面,定义好的编码规则也会很大地节约应用协议开发人员的时间,特别是当牵涉到的数据结构很复杂的时候。当使用ASN.1的项目较多时,这种节约更加明显,因为编解码程序可以只开发一次但很多应用程序都可以用它。 ? 我们可以看出,可以将通信编解码设计与开发工作转嫁给ASN.1编译器完成。从而不必在手工编写编解码器。一方面大量减少了缺陷引入,另一方面更是大大加快了系统开发速度(不用编写编解码器,也不同详细调试,维护代价也很小)。 Figure 1-4 转嫁编解码器工作给ASN.1编译器 讨论ASN.1就不得不先提到标准组织ISO和ITU。 1.2 ISO简介 国际标准组织(ISO – International Organization for Standardization)于1946年在美国成立,其负责制定众多领域的国际标准;但除电气、电子和电子工艺领域外,这些主要是IEC(International Electrotechnical Commission)负责。 ISO汇集了一百多个代表其自己国家的标准委员会(称之为NB – National Body),ANSI (American National Standard Institute)代表美国,AFNOR (Association Francaise de NORmalisation)代表法国,BSI(British Standard Institute)代表英联邦,等等。其它一些组织可以参加讨论,提出议案,但不能参加投票。 Figure 1-5 ISO组织结构 如Figure 1-5所示,ISO共分为172个技术委员会Technical Committee (TC)负责相应标准化领域。 所有议题都在子委员会SubCommittees中共享,Subcommittee又分为工作组Working Groups(WG)。 到1987年,著名的OSI标准就是TC97的成果,称之为“Telecommunications and Information Exchange Between Systems”。在1987年,ISO和IEC两个标准化组织一致认为都应当关注信息技术Information Technology,因此成立了一个联合技术委员会称为JTC1。JTC1的秘书处由ANSI负责。 Figure 1-6 JTC1组织结构示意图 在ASN.1标准刚刚受到关注时,基于历史原因,ASN.1主要来自于CCITT的成果,有很多提案来自CCITT。在80年代,ISO在1990年左右成为主角前,两个委员会的确有过合作。 1.3 ITU简介 国际电信联盟ITU(International Telecommunication

文档评论(0)

huayagonga + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档