ASN.1简介(1)

主要概念

 

ASN.1是通信协议中描述数据传输的正式标记,它与语言实现和物理表示无关,与应用的复杂度无关。ASN.1特别适合表示现代通信应用中那些复杂的、变化的及可扩展的数据结构。 

 

 

抽象语法标记1是定义抽象数据类型规范的正式标准。


 

这种标记提供了一些预定义的基本类型,比如:

  • 整型(INTEGER),
  • 布尔型(BOOLEAN),
  • 字符串(IA5String,UniversalString...),
  • 比特串(BIT STRING),
  • 等等。

 

 

这样可以定义复合类型,比如:

  • 结构类型(SEQUENCE),
  • 列表类型(SEQUENCE OF),
  • 选择类型(CHOICE),
  • 等等。

 

子类型化约束可以应用到任何ASN.1类型以限制其值集合。

 

不像许多其他声称可扩展的语法,ASN.1提供的扩展性解决并且支持以前部署的系统和多年后的更新版本系统间的互操作性。

 

ASN.1发送任何形式(音频、视频、数据等等)的信息都必须用数字传送。ASN.1只能包含信息的结构方面(没有处理已定义的值的操作,或计算)。因此它不是一个编程语言。

 

 

ASN.1定义可以和“有效的语法”的ABNF概念或“有效文档”的XSD相互对比。后两者完全集中在什么是有效的数据编码,而不关心附着在这些编码之上的意义,也就是,没有必要的语义关连。

 

 

ASN.1成功的一个重要理由是它关联了一些如BER(Basic Encoding Rules)或新制定的PER(Packed Encoding Rules)这样的标准化的编码规则,它对受带宽限制的应用程序很有用。这些编码规则描述了如何将定义在ASN.1中的值译成适合传输的电码(例如:他们可以被转化为可传输的字节,或反向转化),其与机器、编程语言或者在应用程序中的表示无关。ASN.1的编码方式比很多竞争者更先进,能够快速并可靠的传输可扩展信息--这是无线带宽的一个优势。由于从1982年以后ASN.1已经成为一个国际标准,所以它的编码规则是成熟的并且它有长期的可靠性和互操作性的跟踪记录。

 

一个的ASN.1源文件可以非常容易地(由预处理器)映射为C或C++或Java数据结构,可用于通过应用程序代码,和支持的运行时库提供的编码和解码的声名或者一个XML或限值的格式,或非常紧凑的压缩编码格式。

 

 

几乎所有操作系统上的工具都支持ASN.1,ASN.1支持如Java,C和C++这样流行的编程语言,和包括COBOL这样的较老的编程语言。ASN.1的广泛性的一个例子是,有很多工具已经支持超过150种不同的计算机平台。

有大量经过检验的ASN.1工具已经被长期使用。使用这些工具,不太可能有昂贵推迟将新产品带入市场,或更糟糕地召回那些没有经过充分测试的基于新代码的产品。
ASN.1编码广泛应用于工业部门满足高效率(低带宽,低交互成本)的计算机通信的需求,也运用于有XML数据编码需求的领域(例如,生物识别信息的转换)。

 

 

参考资料:

http://www.infosecurity.org.cn/article/pki/asn1/

http://www.asnlab.cn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值