- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ASN探索
ASN.1探索 - 1 简介
--
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction. - Albert Einstein
ASN.1应用领域已是颇广,然国内资料却不易见。ASN.1发端于通讯行业,一方面,国内各厂商即使有所研究和收获,也是敝竹自珍,不肯轻易示 人;另一方面,一二学者、教授或有涉猎,然多束之高阁,未能系统性推行于世。
我等不才,因机缘于六年前接触ASN.1,愿借一方之地,呈心得与资料于此。不以真名示人,概因有不得已之原因,不便相告。唯所引之材料,所述之内 容,均来源正当,无任何不当之处。
所撰之文,或为翻译,或为转载,或为自攒,皆以学习交流为目的。欲用之于它途,某无权阻君之意,亦无责作任何承诺。所有版权均归原作者所有,某不持 有任何权利,亦不承担相关之责任。凡欲引用、转载,敬请注明原文出处。
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?Hansen Kevin 即日
--
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 (A
文档评论(0)