网络监测与管理第二章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

抽象语法标记ASN.1的作用 抽象语法标记ASN.1的作用
本地数据表示
实际语法表示
一个抽象类型定义(被其他类型定义所 支持)。这个抽象类型的所有可能值。
ASN.1规范
抽象类型值
抽象语法表示
ASN.1 编码规则 ASN.1 编码规则 比特模式
应用一种编码规则
比特模式
传输语法表示
ASN.1的两个根本问题 ASN.1的两个根本问题
ASN.1的数据类型 ASN.1的数据类型
构造类型
构造类型有序列和集合两种: 构造类型有序列和集合两种: - 分别用SEQUENCE和SEQUENCE OF表示不同 分别用SEQUENCE和 OF表示不同 类型和相同类型元素的序列 类型和相同类型元素的序列。 序列。 - 分别用SET和SET OF表示不同类型和相同类型元 分别用SET和 OF表示不同类型和相同类型元 素的集合 素的集合。 集合。 序列和集合的区别是前者的元素是有序的,而后 者是无序的。
表示上下文
抽象语法/ 抽象语法/传输语法组合被称为表示上下文 Context)。通常, )。通常 (Presentation Context)。通常,应用实体 间会用多个抽象语法/传输语法的组合关系。 间会用多个抽象语法/传输语法的组合关系。
抽象语法标记ASN.1 抽象语法标记ASN.1
Abstract Syntax Notation One 由ISO 8824/ITU-T X.208定义 8824/ITU- X.208定义 一种数据类型描述语言 有严格的BNF定义 有严格的BNF定义 独立于计算机架构和语言 可容易地映射成C C++或Java的数据结构 可容易地映射成C或C++或Java的数据结构 与多个标准化编码规则相关
数据类型 编码规则 基本编码规则(Basic Encoding 基本编码规则( BER) Rules ,BER)
struct Student //声明一个结构体类型 声明一个结构体类型Student 声明一个结构体类型 { int num; char name[20]; char sex; int age; float score; char address[30]; }; 学生的学号、姓名、性别、年龄、成绩、 学生的学号、姓名、性别、年龄、成绩、家庭地址 Student ::= SEQUENCE { num INTEGER , name OCTET STRING , age INTEGER, score REAL , address OCTET STRING ,
定义了数据的常用结构(包括不同的数据类型), ),独立 定义了数据的常用结构(包括不同的数据类型),独立 于任何编码技术的,只与应用有关。 于任何编码技术的,只与应用有关。
传输语法(Transfer Syntax):
提供从抽象语法表示的数据到比特序列,以及其相反操 提供从抽象语法表示的数据到比特序列, 作的方法。 作的方法。
OSI 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 OSI 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
为应用层提供统一 的网络数据表示。 的网络数据表示。
表示层的基本概念
实际语法(Concrete Syntax 抽象语法(Abstract Syntax
): 本地的,并且定义本地系统的数据表示方法。 本地的,并且定义本地系统的数据表示方法。 ) :
例如: 例如:
{3141592653589793238462643383 279,10,279,10,-30}
ASN.1的数据类型 ASN.1的数据类型
ENUMERATED: ENUMERATED:枚举类型,是一个整数的表, 但它不能进行任何算术运算,因为 ENUMERATED类型的值只是用整数表示的 ENUMERATED类型的值只是用整数表示的 一个符号,而不具有整数的性质。
表示层的作用
●为了保证同一数据对象在不同计算机中语义的正确性,实现 为了保证同一数据对象在不同计算机中语义的正确性, 在不同应用系统之间的信息交换。 在不同应用系统之间的信息交换。两个系统在传输数据前需 要协商共用的编码方式。表示层负责在两个应用系统间进行 要协商共用的编码方式。表示层负责在两个应用系统间进行 编码协商和实际信息编码。 编码协商和实际信息编码。
INTERGER:ASN.1中没有限制整数的位数, INTERGER:ASN.1中没有限制整数的位数, 即它可以是任意大小的整数。
例子: 例子:
ColorType ::=INTEGER{ red(0),blue(1),green(2)}; colorA ColorType ::=1
这里说明了一个ColorType 类型的变量colorA 这里说明了一个ColorType 类型的变量colorA ,并将值赋为 blue。 blue。
}
C语言的数据类型
基本类型 整型 字符型 实型(浮点型) 实型(浮点型) 单精度型 双精度型 空类型 数组类型 结构体类型 共用体类型 枚举类型
C数据类型
构造类型 指针类型
ASN.1的数据类型 ASN.1的数据类型
ASN.1定义的数据类型 ASN.1定义的数据类型
简单类型:由单一成份构成的原子类型。 构造类型:由两种以上成分构成的构造类 型。 标签类型:由已知类型定义的新类型。 其他类型:包括CHOICE和ANY两种类型。 其他类型:包括CHOICE和ANY两种类型。
不同计算机系统的数据表示
网络中不同类型的计算机交互通信时,采用的 “语法”不同,这种差异决定了同一数据对象在不 语法” 同计算机中被表示为不同的比特序列。
test.code test.x a 00000001 00000011 test.code test.x a 00000011 00000001 host 2 format
ASN.1的数据类型 ASN.1的数据类型
BOOLEAN:布尔型,取值为TRUE或FALSE。 BOOLEAN:布尔型,取值为TRUE或FALSE。 所有可归结为二值形式的问题回答都可以表示 为布尔型。
例子: 例子:
Employed::=BOOLEAN
ASN.1的数据类型 ASN.1的数据类型
REAL:实型,ASN.1对实数的精度也没有 REAL:实型,ASN.1对实数的精度也没有 限制,它可以表示任意的实数。每个实数 均可以表示为M 均可以表示为M*BE,用三元组(M,B,E)的形 用三元组(M,B,E)的形 式。
test.x = 258; test.code=‘a’
host 1 format
需要统一的网络数据表示格式
● 为了保证同一数据对象在不同计算机中语义的正确性,实
现在不同应用系统之间的信息交换。
● 对于网络中n个异体的节点能互通,我们需要为每个节点编 对于网络中n
写(n-1)个编解码程序,即需要总数为n*(n-1)个编解码程序。 (n-1)个编解码程序,即需要总数为n*(n-1)个编解码程序。
ASN.1的数据类型 ASN.1的数据类型
简单类型 之第三组 对象类型,包括OBJECT IDENTIFIER和 对象类型,包括OBJECT IDENTIFIER和 Object Descriptor两种类型。 Descriptor两种类型。 OBJECT IDENTIFIER类型的值是一个对象标 IDENTIFIER类型的值是一个对象标 识符。唯一标识一个对象。 Object Descriptor对象描述符:描述对象的语义。 Descriptor对象描述符:描述对象的语义。
例如: 例如:
Month ::=ENUMERATED{january(1), february(2), march(3)}
ASN.1的数据类型 ASN.1的数据类型
BIT STRING:位串类型,由零个或多个比特 位串类型,由零个或多个比特
组成的有序 组成的有序串,可以由对应的二进制或者十 有序串 六进制串表示。 六进制串表示。 例如: 例如:
Occupation ::= BIT STRING jack Occupation::=0110
ASN.1的数据类型 ASN.1的数据类型
OCTET STRING:由0个或多个八位位组组成的 STRING:由 有序串. 有序串.
ASN.1的数据类型 ASN.1的数据类型
简单类型之第二组 简单类型之第二组 NumbericString:包含数字0 NumbericString:包含数字0到9及空格。 PrintableString:包含所有大小字母、数字、标点、 PrintableString:包含所有大小字母、数字、标点、 以及空格。 IA5String:由取自IA5(5号国际字母表) IA5String:由取自IA5(5号国际字母表)的字母组成, 它和ASCII基本相同。 它和ASCII基本相同。 VisibleString:由取自IA5的图形字符组成,不含控制 VisibleString:由取自IA5的图形字符组成,不含控制 字符集。 GeneralString: GeneralString:包含所有的标准字符。
网络管理技术
西安邮电学院计算机系
第二章 抽象语法表示 ASN.1
西安邮电学院计算机系
主要内容: 主要内容:
2.1 网络数据表示 2.2 ASN.1的基本概念 ASN.1的基本概念 2.3 基本编码规则 2.4 ASN.1宏定义 ASN.1宏定义
数据的表示
数据具有语法和语义 数据具有语法和语义两个方面 语法和语义两个方面
编码规则(Encoding Rule):
提供了如何将抽象语法映射为传输语法。 提供了如何将抽象语法映射为传输语法。
抽象语法 & 传输语法
抽象语法与传输语法
抽象语法与传输语法的对应关系
一个抽象语法可以选择多个ຫໍສະໝຸດ Baidu输语法来表示; 一个抽象语法可以选择多个传输语法来表示; 一个传输语法也可以用来表示多个抽象语法。 一个传输语法也可以用来表示多个抽象语法。
ASN.1的数据类型 ASN.1的数据类型
简单类型之第三组 简单类型之第三组 OBJECT IDENTIFIER:对象标识符,从对象树派生 IDENTIFIER:对象标识符,从对象树派生 出的一些列点分数字串的形式来标识对象。对象可 以是国际标准,管理对象,甚至可以是抽象语法和 传输语法本身。对象标识符是根节点到对象节点路 径上边标识的顺序连接,它是对象的唯一标识。 例如: internet OBJECT INDETIFIER ::={iso(1)org(3)dod(6)1}
ASN.1的数据类型 ASN.1的数据类型
简单类型之第二组 简单类型之第二组 例子: 例子:
NumString::=NumericString str1 NumString::=“1234567890” NumString::=“1234567890” Surname ::=PrintableString personSurname1 Surname ::=“John” ::=“John”
ASN.1的数据类型 ASN.1的数据类型
简单类型
第一组是基本类型 第一组是基本类型 BOOLEAN,INTEGER, BOOLEAN,INTEGER, BIT STRING,OCTET STRING STRING, REAL和 REAL和ENUMERATED
ASN.1的数据类型 ASN.1的数据类型
语法:指数据的表示形式,或者说构成数 据的规则。 语义:指数据的内容及其含义。
同样的语义有不同的语法表示
数据的表示
确定要表示信息的数据类型。 对于不同类型的数据定义不同的操作。 任何类型的数据最终都将被表示成为比特序列 任何类型的数据最终都将被表示成为比特序列。 比特序列。
比特序列不能说明它自身表示哪一种 类型的数据, 类型的数据,它所代表的意义会因计 算机体系结构、 算机体系结构、程序设计语言等因素 的不同而不同。 的不同而不同。
ASN.1的数据类型 ASN.1的数据类型
简单类型 之第四组 NULL是空类型,EXTERNAL是外部类型, NULL是空类型,EXTERNAL是外部类型, UTCTime和GeneralizedTime是两种有关时间的类型, UTCTime和GeneralizedTime是两种有关时间的类型, 其区别是表示时间的形式不同。
相关文档
最新文档