ASN.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,愿借一方之地,呈心得与资料于此。不以真名示人,概因有不得已之原因,不便相告。唯所引之材料,所述之内容,均来源正当,无任何不当之处。 所撰之文,或为翻译,或为转载,或为自攒,皆以学习交流为目的。欲用之于它途,某无权阻君之意,亦无责作任何承诺。所有版权均归原作者所有,某不持有任何权利,亦不承担相关之责任。凡欲引用、转载,敬请注明原文出处。 ASN.1,全称为Abstract Syntax Notation One,是一种在不同体系和编程语言间进行通信的标准表示法,由ISO(国际标准化组织)和ITU(国际电信联盟)共同制定。它的核心价值在于提供了一种抽象语法来描述数据结构,使得在多种环境下的系统间交换数据变得可能。ASN.1的应用广泛,尤其在通信行业中扮演着重要角色,尽管在国内的资料相对较少。 ASN.1的引入旨在解决不同系统间通信时的编解码问题。在没有统一标准的情况下,系统间的通信需要为每一对不同的系统编写专门的编解码器,这既耗费资源又容易出错。ASN.1通过编译器将抽象语法(ASN.1定义的数据结构)转化为传输语法(适应实际通信的数据表示),极大地简化了这一过程。如图1-2所示,ASN.1编译器能够生成必要的编解码规则,以有限的成本实现大量系统的互连。 ASN.1的核心概念包括: 1. 抽象语法(Abstract Syntax):这是ASN.1定义的数据模型,用于描述协议的逻辑结构。 2. 实际语法(Concrete Syntax):这是编程语言中实际使用的数据表示,如C或Objective Caml。 3. 传输语法(Transfer Syntax):用于在网络中传输数据的具体编码格式,如BER(Basic Encoding Rules)、PER(Packed Encoding Rules)等。 ASN.1的优势在于它分离了数据结构的定义(抽象语法)和实际编码(传输语法)。这使得开发者可以根据需求选择合适的编码规则,例如高效传输或高可靠性。同时,由于编解码工作由ASN.1编译器处理,这显著减少了手动编码的错误,加速了系统的开发速度,降低了维护成本。 ASN.1在众多领域得到应用,包括网络协议(如X.509证书、GSM/UMTS移动通信系统、 Diameter认证协议)、数据存储(如ASN.1 BER编码用于ASN.1数据库)、以及在分布式系统和软件工程中的接口定义。在某些标准中,如ASCII,ASN.1之前的做法是同时定义抽象语法和传输语法,但ASN.1的出现使得这样的分离成为可能,允许更灵活的选择和定制。 ISO作为制定ASN.1标准的组织之一,成立于1946年,负责制定覆盖众多行业的国际标准。在通信相关的标准制定中,ISO通常会与IEC(国际电工委员会)合作,共同推动全球技术标准的发展。 ASN.1是一种强大的工具,它简化了不同系统间的数据交换,提高了通信的效率和可靠性,并且通过编译器自动化处理编解码,降低了开发和维护的复杂性。在通信和信息技术领域,掌握ASN.1的知识对于理解和实现跨平台的系统集成至关重要。
剩余63页未读,继续阅读
- susuyaqiu2012-11-16我应该是在Mitola的介绍认知无线电的论文中看到了ASN,但是当时不知是什么东西。非常感谢LZ提供的宝贵资源~!
- huaqianzkh2015-04-21这 个文档总结了一下ASN的相关知识,给分有点高呀。。。
- 粉丝: 0
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助