开篇
前面的知识不再赘述了
- 抽象语法
数据类型在系统中物理上不存在,系统不会也不需要为抽象语法分配内存
不同系统之间进行信息交换,各方可以约定使用的抽象与法定义数据类型 - 实际语法
C语言这类计算机语言描述数据类型的语法,内存中真实存在
ASN.1以一种独立于计算机架构和语言的方式来描述数据结构
为使各个系统间交换的信息具有相同的语义,应用层采用了相互继承的抽象语法
ASH.1简介
ASH.1标准分为两个部分
- 抽象语法
数据类型的ASH.1描述 - 传输语法
抽象语法在传输时的编码规则
编码规则:提供从抽象语法表示的数据到比特序列,以及其反向操作的方法
其所作都是在表示层
表示层负责在两个应用系统之间进行编码协商
发送发对内部的数据进行编码,使之形成适合于传输的比特序列
接收方进行解码,转化成原始数据
AQ:一个应用实体如何知道对等实体采用怎样的抽象语法和传输语法?
- 抽象语法/传输语法组合被称为表示上下文(Presentation Context)。通常,应用实体会用多个抽象语法/传输语法的组合关系
表示上下文可以用整数标识,对于应用层的数据,表示层根据上下文标识,决定传输时应该采用的传输语法。 - 传输语法与抽象语法是多对多的关系
ASH.1已应用到信息处理系统和通信领域:
- 应用层网络协议的开发
- 视频会议系统
- 雷达系统
- SNMP(重点)
- X.509
- CSTA
- 3G/4G
- …
ASH.1在SNMP中
- 定于 SNMP PDU格式
- 定义管理信息(MIB)
ASH.1使数据的表示方法有一种统一的形式
可以轻易的映射到C++/java等编程语言的数据结构,被应用程序代码使用,得到运行时程序库的支持
例子:
ASH.1本身只定义了表示信息的抽象句法,但是没有限定其编码方法。标准的ASH.1编码方式有:
编码规则描述了,如何对ASH.1中定义的抽象化数据进行编码,以便于传输,而不管计算机、编程语言如何表示等因素
SNMP使用BER编码规则
来源:CSDN
作者:眯眯眼:)
链接:https://blog.csdn.net/qq_43430273/article/details/104906352