网络管理与维护(2.2.1)ASH.1的基本概念(BNF 标签 数据类型)

BNF

BNF(Back Naur form)巴科斯范式,用来描述给定语言的语法规则,即定义一种计算机语言。
几乎每一种新编程语言都会用BNF描述语法规则
ASH.1也采用BNF

  • BNF基本格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • BNF表示数字
    在这里插入图片描述

ASH.1中的基本类型符号、值符号都有对应的产生式推出
最终符号形式可能不止一种

在这里插入图片描述

ASH.1的符号与命名

在这里插入图片描述
注意:类型和值等的命名中,应该遵循一下规则:

  • 名字中由大小写字母、数字、和连字符‘-’组成
  • 不能出现以连字符‘-’结尾,不能出现两个连字符(–),不能出现下划线

右边都是错的
在这里插入图片描述
在这里插入图片描述

书写规则

  • 多个空格是一个空格,但是在定义符号::=中不能有分隔符,否则不能正常处理
  • 带小数点的小数形式不能在ASH.1直接表示,实数定义为:尾数,基数,指数
  • 注释以两个连字符“–”开始,结束于结尾或该行中的另一个双连字符

ASH.1是一种数据类型描述语言,类型是可以编码传输的值的非空集合。值是类型的一个实例(ASH.1中的类型主要是为了数据的传输。)
ASH.1描述数据时使用的方法是分别定义数据的类型和值,通过对类型与值的限制,最终实现数据的完整描述

  • 数据类型定义:说明类型的名称和格式

在这里插入图片描述
这里的定义并没有产生新的ASN.1类型,仅仅是为已有的ASH.1类型定义了一个新的新型类型引用。
想到与typedef为已有类型定义别名

  • 值定义;规定讲什么样的具体值赋给某一个类型的变量
    在这里插入图片描述
    在这里插入图片描述

标签

ASH.1为了让接收方知道自己的每个数据类型。要对数据类型进行编号
解决办法:
发送方为每个数据类型增加传输标识,称为标签(tag),每个数据类型都被分配tag
ASH.1中,每个类型的tag都是唯一的,是类型的标识符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
标签类别分为四种

  1. 通用类
  2. 应用类
  3. 上下文专用类
  4. 私有类

注意:以上标签类实际上都提供了不同的tag空间,在一个上下文中,如果class不同,则num相同的tag也是不同的.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • P/C指示位: 在标签中用于指明该类型是简单类型还是构造类型
  • 标签号:是一个正整数,用来区分同一个类型(class)中的不同类型

数据类型

  1. 简单类型:由单一成分构成的原子结构
  2. 构造类型:由两种以上成分构成的构造类型
  3. 标签类型:由已知类型定义的新类型
  4. 其他类型:包括CHOICE和ANY
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
总体概括
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43430273/article/details/104907034