第2章 抽象语法表示 ASN.1
第2章抽象语法表示ASN.1

第2章 抽象语法表示ASN.1 1. 简单类型 表2.1中除了UNIVERSAL 16和UNIVERSAL 17之外都是简 单类型。 这些类型的共同特点是可以直接定义它们的值的集合, 可以把这些类型作为原子类型构造新的数据类型。简单类型还 可以分为4组。第一组包括BOOLEAN、INTEGER、BIT STRING、OCTET STRING、REAL和ENUMERATED等。这一 组可以叫做基本类型,它们的值已经在表2.1中列出了。需要说 明的是,实数可以表示为科学计数法:
第2章 抽象语法表示ASN.1
(3) 标识符以小写字母开头; (4) 类型指针和模块名以大写字母开头; (5) ASN.1定义的内部类型全部用大写字母表示; (6) 关键字全部用大写字母表示; (7) 注释以一对短线(- -)开始,以一对短线或行尾结束。
第2章 抽象语法表示ASN.1 2.2.1 抽象数据类型
第2章 抽象语法表示ASN.1
SequenceType::=SEQUENCE{ElementTypeList}| SEQUENCE {} ElementTypeList::= ElementType | ElementTypeList, ElementType ElementType::= NamedType NamedType OPTIONAL NamedType DEFAULT Value| COMPONENTS OF Type | |
第2章 抽象语法表示ASN.1 第四组包含4种类型。NULL是空类型,它没有值,只占用 结构中的一个位置,该位置可能出现或不出现数据。 EXTERNAL是外部类型,即标准之外的文档定义的类型。 UTCTime和GeneralizedTime是两种有关时间的类型,其区别是 表示时间的形式不同。前者(世界通用时)分别用两位数字表示年、 月和日(即YYMMDD),然后是时、分和秒(即hhmmss),最后可 以说明是否为本地时间;而后者用4位数字表示年,用两位数字 表示月和日,最后也可以说明是否为本地时间。例如 20000721182053.7是GeneralizedTime类型的一个值,表示2000年 7月21日,当地时间18点20分53.7秒。而值20000721182053.7Z表 示同样的时间,但是加了符号Z,则表示UTC时间。如果写为 20000721182053.7+0800则除了表示同样的当地时间外,还说明 了加8小时可以得到UTC时间。
第二章 抽象语法表示ASN

第二章抽象语法表示ASN.1抽象愈发表示ASN.1是一种形式语言1.网络数据表示●表示层的功能是提供统一的网络数据表示。
●在互联通信的端系统中至少有一个应用实体(FTP,TELNET,SNMP)和一个表示实体(ASN.1)。
●应用实体:应用实体定义了应用数据的抽象语法;应用协议按照预先定义的抽象语法构造协议数据单元,用于和对等系统的应用实体交换信息(FTP、TELNET,SNMP等)。
●表示实体:表示实体对应用层数据进行编码,变成二进制的比特串(ASN.1)。
2.ASN.1的基本概念⑴抽象数据类型●在ASN.1中,每一个数据类型都有一个标签(tag),标签有类型和值,数据类型是由标签的类型和值唯一决定的。
●各种标签的用法·通用标签:用关键字UNIVERSAL表示,带有这种标签的数据类型是由标准定义的,适用于任何应用。
·应用标签:用关键字APPLICATION表示,是由某个具体应用定义的类型。
·上下文专用标签:这种标签在本文的一定范围(例如,一个结构)中适用。
·私有标签:用关键字PRIVATE表示,这是用户定义的标签。
●数据类型:·简单类型:由单一成分构成的原子类型。
·构造类型:由两种以上成分构成的构造类型。
·标签类型:由已知类型定义的新类型。
·其它类型:包括CHOICE和ANY两种类型。
●ASN.1定义的通用类型图 P25●简单类型:·第一组:BOOLEAN、INTEGER、BIT STRING、OCTET STRING、REAL和EMUNERATED等。
这一组可以叫做基本类型。
·对整数可以进行算数运算,但对枚举类型却不能进行任何算数运算。
·第二种包括各种字符串类型,标签为UNIVERSAL18-22和UNIVERSAL25-27,这些类型都可以看做是OCTET STRING类型的子集,它们都是采纳其它标准的类型。
ASN编码规则详解最

国际标准组织(ISO – International Organization for Standardization)于 1946 年 在美国成立,其负责制定众多领域的国际标准;但除电气、电子和电子工艺领域外,这些主要是 IEC(International Electrotechnical Commission)负责。
些组织可以参加讨论,提出议案,但不能参加投票。
Figure 1-5 ISO 组织结构 如 Figure 1-5 所示,ISO 共分为 172 个技术委员会 Technical Committee (TC)负责相应 标准化领域。 所有议题都在子委员会 SubCommittees 中共享,Subcommittee 又分为工作组 Working Groups(WG)。 到 1987 年,著名的 OSI 标准就是 TC97 的成果,称之为“Telecommunications and Information Exchange Between Systems”。在 1987 年,ISO 和 IEC 两个标准化组织一致认为都应当关注信 息技术 Information Technology,因此成立了一个联合技术委员会称为 JTC1。JTC1 的秘书处由 ANSI 负责。
UNIVERSAL 8 外部类型和类型实例 UNIVERSAL 9 实数类型 UNIVERSAL 10 枚举类型 UNIVERSAL 11 嵌入的 pdv 类型 UNIVERSAL 12 UTF8 字符串类型 UNIVERSAL 13 相关对象标识符 类型 UNIVERSAL 14-15 保留给本建议的以后版本和国际标准使用 UNIVERSAL 16 序列和类型序列 UNIVERSAL 17 集合和类型的集合 UNIVERSAL 18-22, 25-30 字符串 类型 UNIVERSAL 23-24 时间 类型 UNIVERSAL 31-... 保留给本建议以外的类型和国际标准使用 ASN.1 还能够定义如下的数据结构类型: 结构 ( SEQUENCE ), 列表 ( SEQUENCE OF ), 类型选择 ( CHOICE ), 等等
ASN.1笔记——语法规则与类型概述

ASN.1笔记——语法规则与类型概述⼀.简介ASN.1(Abstract Syntax Notation dotone),抽象语法标记1。
是定义抽象数据类型形式的标准,是⽤于描述数据表⽰、表⽰、传输、编码的记法。
ASN.1只包含信息结构,不处理具体业务数据,它不是⼀个编程语⾔。
ASN.1没有限定编码⽅法,各种ASN.1编码规则提供了由ASN.1描述其抽象句法的数据的值的传送语法(具体表达),常见的编码规则有:基本编码规则(BER),规范编码规则(CER,CanonicalEncoding Rules)、唯⼀编码规则(DER,DistinguishedEncoding Rules)、压缩编码规则(PER,PackedEncoding Rules)和XML编码规则(XER,XMLEncoding Rules)。
这些编码规则描述了如何将定义在ASN.1中的值译成适合传输的电码。
ASN.1在OSI的ISO8824/ITU X.208(说明语法)和ISO8825/ITU X.209(说明基本编码规则)规范。
⼏个概念:(1)实际语法指诸如C、ObjectiveCaml等这样实际编程语⾔;(2)抽象语法(AbstractSyntax)指ASN.1,是协议采⽤ASN.1规范描述的描述⽂本。
描绘了与任何表⽰数据的编码技术⽆关的通⽤数据结构。
抽象语法使得⼈们能够定义数据类型,并指明这些类型的值。
抽象语法只描述数据的结构形式,与具体的编码格式⽆关,同时也不涉及这些数据结构在计算机内如何存放。
(3)传输语法(TransferSyntax)指表⽰层交换数据的表⽰⽅法,是实际通讯系统间的码流。
当数据在两个表⽰层实体之间传输时,这些数据的实际⽐特模式表⽰⽅法就是传送语法。
(4)编码指将抽象语⾔法转换成实际通讯系统间⽐特流;(5)编码规则将抽象语⾔法转换成实际通讯系统间⽐特流所遵循的语法规则;⼆.相关背景知识1.为了顺利完成应⽤⾳的通讯,需使⽤以下概念:(1)抽象语法:定义了数据的常⽤结构(包括不同的数据类型),并且建⽴了和应⽤层对话所⽤的构架。
第二章 抽象语法表示ASN.1

抽象语法表示ASN.1
◦ Abstract Syntax Notation(ASN.1)是一种形式语言 ◦ 提供统一的网络数据表示,用于定义应用数据的抽象语 法和应用协议数据单元的结构。 ◦ OSI或SNMP管理信息库,都是用ASN.1定义的。
基本编码规则BER
◦ Basic Encoding Rule(BER)是一种编码规则 ◦ 用ASN.1定义的应用数据在传送过程中按照BER变换成 比特串。
在ASN.1中,每一个数据类型都有一个标签(tag) 标签有类型和值,数据类型由标签的类型和值唯 一确定。
标签(tag) 数据类型 值(tag) P23 表2-3
标签的类型分为以下4种:
◦ 通用标签:UNIVERSAL表示,由标准定义的。 ◦ 应用标签:APPLICATION表示,是由某个具体应用定 义的类型。 ◦ 上下文专用标签:Context-Specific表示,这种标签在 一定范围)中适用。 ◦ 私有标签:PRIVATE表示,用户定义的标签。
host 1 format
host 2 format
为了保证同一数据对象在不同计算机中语义的正确 性,实现在不同应用系统之间的信息交换。 对于网络中n个异体的节点能互通,我们需要为每 个节点编写(n-1)个编解码程序,即需要总数为 n*(n-1)个编解码程序。
ASN.1的作用是提供统一的网络数据表示 在互相通信的端系统中至少有一个应用实体(如 SNMP、TELNET、FTP等)和一个表示实体(即 ASN.1)。 表示实体定义了应用数据的抽象语法。 应用协议按照预先定义的抽象语法构造协议数据 单元,用于交换信息。 表示实体则对应用层数据进行编码,将其转换成 二进制的比特串进行传送。
ASN1编码

位8 0 0 1 1
位7 0 1 0 1
类别 通用(Universal) 应用(Application) 上下文特定(Context Specific) 专用(Private)
所有的类型中,通用类别最常用。 <2>. 结构化位。 结构化位(constructed bit)表示一个给定的编码是否是相同类型的多种编码的结 构化。结构化元素是容器类型必需的,因为在逻辑上,它们只是其他元素的集合。 结构化元素有自己的头字节和长度字节,之后是元素各个要素组件的单独编码。 也就是说,这些要素组件是独立地可解码 ASN.1 数据类型。 严格的说,容器类是唯一允许使用结构化位的数据类型。这是因为对于其他数据 类型,给定内容,只允许一种编码。所以其他所有数据类型的结构化位都为 0。 <3>. 原始类型。 ASN.1 头字节的低 5 位定义了 32 种 ASN.1 的原始类型(primitive type)
值 0 1 2 127 128 -1 -128 -32768 1234567890 编码 0x02 01 00 0x02 01 01 0x02 01 02 0x02 01 7F 0x02 02 00 80 0x02 01 FF 0x02 01 80 0x02 02 80 00 0x02 04 49 96 02 D2
ASN.1 编码
1.什么是 ASN.1(抽象语法记法一)? ASN.1 是 ITU-T 的一个标准集,它用来编码及表示通用数据类型,这些数据类型有可 打印串值, 八位位组串值, 位串值, 整数值以及用可移值方式组合而成的其他类型序列值. 简 单的说,ASN.1 指定了以何种方式对非平凡的数据类型进行编码,以便其他任何平台及第 三方工具都能够解释其内容.比如,字母 a 在一些平台以 ASCII 编码为十进制数值 97,而在 其他非 ASCII 平台上,可能会是另外的编码.而 ASN.1 指定了一种编码方式,在任何平台 上,字母 a 的编码都是统一的.
ASN1讲解ppt课件

21
ASN.1编码介绍
►TaggedObject
▪ Context-specify ▪ IMPLICIT -- 改变下层类型标签 ▪ EXPLICIT -- 在外层增加类型标签
pkcs-1 OBJECT IDENTIFIER ::={ iso(1) member-body(2) US(840) rsadsi(113549) pkcs(1) 1 }
OID
含义
1.2
ISO成员体
1.2.840
美国
1.2.840.113549
RSA数据安全公司
1.2.840.113549.1
RSA数据安全公司,PKCS
► DERObjectIdentifier
DERObjectIdentifier sha1_rsa = new DERObjectIdentifier(“1.2.840.113549.1.1.5”);
17
ASN.1编码介绍
►PrintableString编码示例
Country Name ::= PRINTABLE STRING ▪ 提示 ...13 02 43 4E ...
19
ASN.1编码介绍
►Set编码示例
▪ SET
一个或多个给定类型的无序集合
▪ SET OF 0个或多个给定类型的无序集合
SignerInfos ::= SET OF SignerInfo SignerInfo ::= SEQUENCE { ... }
►DERSet
DERSequence signerInfo1 = ... ; DERSequence signerInfo2 = ... ; DEREncodableVector derVector = new DEREncodableVector(); derVector.add(signerInfo1); derVector.add(signerInfo2); DERSet set = new DERSet(derVector);
抽象语法表示asn.1填空题

[填空选择题]P231、(抽象语法表示):一种形式语言,提供统一的网络数据表示,通常用于定义应用数据的抽象语法和应用层协议数据单元的结构。
P232、表示层的功能:提供统一的网络数据表示。
P233、表示实体定义了应用数据的抽象语法。
4、传输语法:把抽象数据变换成比特串的编码规则。
P235、抽象语法用于定义应用数据,它类似程序设计语言定义的抽象数据类型。
P23二、的基本概念P24-311、作为一种形式语言,有严格的BNF定义。
P242、在中,每一个数据类型都有一个标签(tag),标签有类型和值。
P243、标签的类型分为4种,分别是:通用标签、应用标签、上下文专用标签和私有标签。
P24通用标签UNIVERSAL:由标准定义,适用于任何应用;应用标签APPLICATION:是由某个具体应用定义的类型;上下文专用标签CONTEXT SPECIFIC:这种标签在文本的一定范围(例如,一个结构struct)中适用;私有标签PRIVATE:用户定义的标签。
4、定义的数据类型可分为4类:分别为简单类型、构造类型、标签类型、其他类型。
这些数据类型的标签值均为通用标签Universal,有20多种。
P24●简单类型:由单一成分构成的原子类型;定义的数据类型中除了序列SEQUENCE和集合SET两种类型不属于简单类型外,其他10多种均属于简单类型。
P25●构造类型:由两种以上成分构成的构造类型,如序列SEQUENCE、集合SET类型。
●标签类型:由已知类型定义的新类型;●其他类型:包括CHOICE和ANY两种类型。
以下是标签和类型关系图:6、枚举类型ENUMERATED:是一个整数的表,每一个整数有一个名字。
枚举类型与整数类型区别在于整数类型可以进行算术运算而枚举类型不能进行任何算术运算,也即枚举类型的值只是用证书表示的一个符号,而不具有整数的性质。
P267、对象类型OBJECT IDENTIFIER:泛指网络中传输的任何信息对象,其值是一个对象标识符,由一个整数序列组成,它惟一地标识一个对象。
2备用抽象语法表示ASN.1

2024年7月2日4时45分
8
第二章 抽象语法表示ASN.1
ASN.1数据类型-简单类型
▪ 基本类型包括BOOL、INTEGER、REAL、BIT STRING、OCTET STRING、ENUMERATED、 OBJECT IDENTIFIER、NULL等。
➢ BIT STRING 是以比特为单位的二进制字符串; ➢ OCTET STRING是以字节为单位的字符串。 ➢ ENUMERATED是一个定义变量值的集合,变量的值
age
INTEGER
} 赋值:
johnny Description ::=
{
surname
"Smith",
first-name
"John",
age
40
}
2024年7月2日4时45分
17
第二章 抽象语法表示ASN.1
SEQUENCE OF
▪ SEQUENCE OF所有成员都是一个类型, 数目不定。相当于C语言中的数组。
➢ 应用标签:用关键字APPLICATION表示,是应用程序 组织自定义由某个具体应用定义的类型其;
➢ 如:
Name ::= [APPLICATION 0] SEQUENCE
{
initialname IA5String;
familyName IA5String;
} ➢ 上下文专用标签:这种标签在文本的一定范围(例如一
▪ CHOICE是可选类型的一个表,仅其中一个类型 可以被采用,产生一个值。CHOICE类型定义为
➢ ChoiceType::= CHOICE{AlternativeTypeList}
➢ AlternativeTypeList::= NamedType | AlternativeTypeList, NamedType
asn.1基本语法和编码规则

序号主题内容1 引言ASN.1(Abstract Syntax Notation One)是一种用于描述数据结构和编码规则的标准化语言,广泛应用于网络通信、安全认证、电子商务等领域。
本文将介绍ASN.1的基本语法和编码规则,帮助读者更好地理解和应用ASN.1。
2 ASN.1基本语法ASN.1定义了一种抽象语法用于描述数据结构,包括类型定义和值约束。
ASN.1的基本语法包括以下几个关键点:2.1 类型定义ASN.1通过类型定义来描述数据结构,包括基本类型(如整数、字符串等)、复合类型(如结构体、序列等)和引用类型(如引用其他类型)。
每种类型都有自己的标识符和约束条件。
2.2 值约束ASN.1可以通过值约束来限定数据的取值范围,如最小值、最大值、长度等。
这些约束条件可以在类型定义中进行声明,确保数据的合法性和完整性。
2.3 模块化ASN.1支持模块化的数据描述,可以将相关的类型定义和数值约束组织在一个模块中,便于管理和复用。
3 ASN.1编码规则ASN.1定义了一种通用的编码规则将数据结构转换为二进制格式进行传输,包括基本编码规则(BER)、压缩编码规则(CER)、XML编码规则(XER)等。
下面将介绍常用的BER编码规则:3.1 BER编码规则BER是ASN.1最基本的编码规则,它采用TLV (Type Length Value)的格式对数据进行编码,包括标签、长度和数值三个部分。
标签用来标识数据的类型,长度用来表示数值的长度,数值则是具体的数据内容。
3.2 编码过程在进行BER编码时,首先需要根据数据结构的类型定义和值约束来确定每个数据元素的标签和长度,然后将数值部分按照约定的规则进行编码,最后将标签、长度和数值按照TLV格式进行组合得到最终的二进制数据。
3.3 应用实例BER编码规则广泛应用于网络协议中,如SNMP、LDAP等,可以有效地将复杂的数据结构进行编码和解码,实现数据的可靠传输和解析。
ASN.1语法简介

ASN.1语法简介ASN.1 语法简介一、介绍Abstract Syntax Notation One (ASN.1)是一种独立于机器的描述语言,用于描述在网络上传递的消息标准包括: ISO 8824-1 | ITU-T X.680: Specification of basic notation,ISO 8824-2 | ITU-T X.681: Information object specification, ISO 8824-3 | ITU-T X.682: Constraint specification,ISO 8824-4 | ITU-T X.683: Parameterization of ASN.1ASN.1特别适合表示现代通信应用中那些复杂的、变化的及可扩展的数据结构ASN.1 可分为两个部分语法规则:从数据类型、内容顺序或结构等方面来描述消息的内容编码规则:如何编码实际消息中的数据特点:表达简单和复杂类型的能力可对类型根据大小及(或)数值进行约束也可以施加更强的约束字段可标记为 OPTIONAL大写开头表示类型名,小写开头的表示变量名/字段名二、ASN.1术语1.抽象语法(Abstract Syntax)描述通用数据结构允许定义数据类型和值2.数据类型(Data Type)值的集合,可以是简单类型或结构类型可以对数据类型命名3.编码(Encoding)用于表示数据值的字节序列4.编码规则(Encoding Rules)给出从一种语法到另一种的映射方法5.传输语法(Transfer Syntax)位模式(Bits pattern)描述数据是在传输时是如何表示的三、ASN.1模块定义模块(module):ASN.1规范中的基本构造块模块定义格式如下:DEFINITIONS ::=BEGINEXPORTSIMPORTSAssignmentListEND其中:EXPORTS 这个模块中的定义可能被其他模块引入IMPORTS 定义由其他模块引入AssignmentList 这个模块中将定义类型分配、值分配及宏定义四、ASN.1简单类型1. 基本类型:BOOLEAN,INTEGER,ENUMERATED,REAL,BIT STRING,OCTET STRING2. 字符串类型(ISO10646-1的子集)NumericString (0-9,)PrintableString (0-9,A-Z,a-z,,VisibleStringGraphicStringUTF8StringIA5String (ASCII)3. 对象类型OBJECT IDENTIFIERObjectDescriptor 对象标识符:一个任意长的非负整数序列,用于标记对象(如算法等)4. 其它类型NULL 空值UTCTimeyymmdd hhmm[ss]GeneralizedTimeyyyymmdd hhmm[ss]强制从2050年开始五、ASN.1类型定义语法: ::=示例:Counter ::= INTEGERIpAddress ::= OCTET STRINGMonths ::= ENUMERATED {january (1), february (2), march (3),april (4), may (5), june (6),july (7), august (8), september (9),october (10), november (11), december(12)}六、ASN.1子类型定义语法: ::= ()示例:Counter ::= INTEGER (0..65536)IpAddress ::= OCTET STRING ( SIZE(4) )Spring ::= Months (march | april | may)Summer ::= Months (june | july | august ) SmallPrime ::= INTEGER ( 2 | 3 | 5 | 7 | 11 ) ExportKey ::= BIT STRING ( SIZE(40) )七、ASN.1赋值语法: ::=示例:ipInReceives Counter ::= 2450ipRouteMask IpAddress ::= ‘FFFFFF00’H currentMonth Months ::= julycurrentTime UTCTime ::= “030708094018+0800”name VisibleString ::= “John”married BOOLEAN ::= TRUEfaxMessage BIT STRING ::= ‘01100001101’Binternet OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) 1 } private OBJECT IDENTIFIER ::= { internet 4 }八、ASN.1结构类型SEQUENCE 对应于C语言中的struct类型定义UserAccount ::= SEQUENCE {username PrintableString,password PrintableString,accountNr INTEGER}赋值myAccount UserAccount ::= {username “tly”,password “guesswhat”,accountNr 2345}SEQUENCE OF 对应于C语言中的数组类型定义MemberCountries ::= SEQUENCE OF PrintableString AccountRegistry ::= SEQUENCE OF UserAccount赋值eastAsia MemberCountries ::= {“China”, “Japan”, “Korean”, “DPR”}SET 类似于SEQUENCE,但不考虑分量顺序类型定义UserAccount ::= SET {username [0] PrintableString,password [1] PrintableString,accountNr [2] INTEGER}赋值myAccount UserAccount ::= {accountNr 2345,username “tly”,password “guesswhat”}SET OF 集合类型,每一分量类型相同,不考虑顺序类型定义Keywords ::= SET OF PrintableString赋值someASN1Keywords Keywords ::= { “INTEGER”, “BOOLEAN”, “REAL”}。
Java解析ASN.1结构

ASN.1是什么ASN.1抽象语法标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。
它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。
本人在工作中涉及到ASN.1结构的场景证书的公、私钥文件,做数据加密、签名、信封产生的数据都是ASN.1结构。
解析ASN.1下面是一段简单的解析ASN.1结构,获取ASN.1结构的元素类型和值的代码。
如有图片中三种ASN.1结构的数据,要判断是其中的哪一种格式:/***获取sequence下第一个元素,并判断元素类型*@param data*@return*/private static String read_Asn1Data(byte[] data) {ByteArrayInputStream bis=null;ASN1InputStream ais=null;String flag="";try {bis=new ByteArrayInputStream(data);ais=new ASN1InputStream(bis);DERSequence sequence= (DERSequence) ais.readObject();DEREncodable derEnd =sequence.getObjectAt(0);DERObject readObject=derEnd.getDERObject();if (readObject instanceof DERSequence) {flag="0";}else if (readObject instanceof DERInteger) {flag="1";}else if (readObject instanceof DERObjectIdentifier){flag="2";}} catch (IOException e) {} finally {try {if (bis!=null) bis.close();if (ais!=null) ais.close();} catch (IOException e) {}}return flag;}/***获取元素值*@param data*@return*/private static String read_Asn1Data(byte[] data) throws Exception {ByteArrayInputStream bis=null;ASN1InputStream ais=null;ContentInfo contentInfo=null;try {bis=new ByteArrayInputStream(data);ais=new ASN1InputStream(bis);将java 转化为ASN.1、转base64、以十六进制输出;再解析ASN.1。
抽象语法记法

抽象语法记法抽象语法记法(ASN.1)是一种ISO/ITU-T标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。
它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序——不论是非常复杂的,还是非常简单的。
在任何需要以数字方式发送信息的地方,ASN.1都可以发送各种形式的信息(声频、视频、数据等等)。
ASN.1和特定的ASN.1编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数据结构。
ISO协议栈中的应用层协议使用了ASN.1来描述它们所传输的PDU,这些协议包括:用于传输电子邮件的X.400、用于目录服务的X.500、用于VoIP的H.323和SNMP。
它的应用还可以扩展到通用移动通信系统(UMTS)中的接入和非接入层。
ASN.1取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER)-X.209、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和XER编码规则(XER)。
这些编码规则描述了如何对ASN.1中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。
ASN.1的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输—在无线宽带中,这是一种优势。
1984年,ASN.1就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。
简洁的二进制编码规则(BER、CER、DER、PER,但不包括XER)可当作更现代XML的替代。
然而,ASN.1支持对数据的语义进行描述,所以它是比XML更为高级的语言。
ASN.1的描述可以容易地映被射成C或C++或Java的数据结构,并可以被应用程序代码使用,并得到运行时程序库的支持,进而能够对编码和解码XML或TLV格式的,或一种非常紧凑的压缩编码格式的描述。
抽象语法表示ASN.1填空题

第二章抽象语法表示ASN.1[填空选择题]一、网络数据表示P231、ASN.1(抽象语法表示):一种形式语言,提供统一的网络数据表示,通常用于定义应用数据的抽象语法和应用层协议数据单元的结构。
P232、表示层的功能:提供统一的网络数据表示。
P233、表示实体定义了应用数据的抽象语法。
4、传输语法:把抽象数据变换成比特串的编码规则。
P235、抽象语法用于定义应用数据,它类似程序设计语言定义的抽象数据类型。
P23二、A SN.1的基本概念P24-311、作为一种形式语言,ASN.1有严格的BNF定义。
P243、ASN.1标签的类型分为4种,分别是:通用标签、应用标签、上下文专用标签和私有标签。
P24通用标签UNIVERSAL :由标准定义,适用于任何应用;应用标签APPLICATION :是由某个具体应用定义的类型;上下文专用标签CONTEXT SPECIFIC :这种标签在文本的一定范围(例如,一个结构struct )中适用;私有标签PRIVATE :用户定义的标签。
4、ASN.1_定义的数据类型可分为4类:分别为简单类型、构造类型、标签类型、其他类型。
这些数据类型的标签值均为通用标签Universal ,有20多种。
P24•简单类型:由单一成分构成的原子类型;ASN.1定义的数据类型中除了序列于简单类型。
P25•标签类型:由已知类型定义的新类型;•其他类型:包括CHOICE和ANY两种类型。
以下是ASN.1标签和类型关系图:6、枚举类型ENUMERATED :是一个整数的表,每一个整数有一个名字。
枚举类型与整数类型区别在于整数类型可以进行算术运算而枚举类型不能进行任何算术运算,也即枚举类型的值只是用证书表示的一个符号,而不具有整数的性质。
P267、对象类型OBJECT IDENTIFIER :泛指网络中传输的任何信息对象,其值是一个对象标识符,由一个整数序列组成,它惟一地标识一个对象。
P268、NULL类型:是空类型、没有值、只占用结构的一个位置。
ASN.1基本语法和编码规则

ASN.1基本语法和编码规则1 ASN.1 简介ASN.1 (Abstract Syntax Notation One),抽象语法标记,是描述抽象类型和值的标记,缩写为ASN.1。
它用于对通过接口和通信媒体进行传输的信息的抽象描述,广泛应用于各种通信协议的说明中。
ASN.1是一个很灵活的标记法,它允许定义众多的数据类型——从整数和位串等简单类型到如集合、序列等的组合结构,还可以是其它复杂定义的类型。
一个ASN.1定义可以选用不同的编码规则,但解码器必须采用和编码器相同的编码规则。
目前标准化的编码规则有4个:BER、DER、CER、PER。
BER在19世纪80年代初形成,广泛应用于各种通信协议中,比如SNMP、MHS、TSAPI 等;DER是BER的一种特殊形式,用于对安全性敏感的应用,比如电子商务,要求对一条消息的编码和解码有且只有一条途径;CER是BER 的另一种特殊形式,类似于DER,但它适用于长消息,可以在知道整条消息之前就开始编码,实际中CER很少应用,这是因为工业界把DER作为安全编码的优先方法;PER在上述编码规则之后出现,因它的高效算法而闻名,它的编码速度和压缩程度比BER高,PER适用于带宽资源缺乏的应用,比如空中交通控制和音频—视频通信等。
2 BER的编码规则和传输语法2.1基本规则BER(Basic Encoding Rules)是ASN.1中最早定义的编码规则。
每种BER 编码方法都由三或四部分组成:(1)Tag octets:定义了ASN.1值的类和标签值,并指明编码方法是简单化的还是结构化的。
(2)Length octets:对于定长编码方法,它指出了内容octet的个数;对于结构化、非定长编码方法,它指明了长度是不确定的。
(3)V alue octets:对于简单的、定长编码方法,它给出了值的具体表示;对于结构化的方法,它给出了值的内容的BER编码的串联。
(4)End-of-values octets:对于结构化、非定长的编码方法,它表示内容结束;对于其它方法,没有该部分。
网络管理简答题及答案

⽹络管理简答题及答案第1章⽹络管理概论1-01⽹络管理对于⽹络地正常运⾏有什么意义?答:1、减少停机时间,2、改进响应时间,3、提⾼设备地利⽤率4、减少运⾏费⽤5、减少⽹络瓶颈6、提⾼运⾏效率1-02局域⽹管理与本书所讲地⽹络管理有什么不同?结合你使⽤地局域⽹操作系统试举出⼏种管理功能. 答:局域⽹地管理相对简单,因为局域⽹运⾏统⼀地操作系统;对于异构型设备组成地⽹络,运⾏各种操作系统地互联⽹地管理就复杂地多了,就需要跨平台地⽹络管理技术1-03被管理地⽹络设备有哪些?答:主机,⽹桥,路由器,交换机,集线器等被管理⽹络资源:⽹络硬件(物理介质和连⽹设备、计算机设备)、⽹络软件(操作系统软件、通信软件、应⽤软件)1-04⽹络管理系统分为哪些层次?⽹络管理框架地主要内容是哪些?答:1、OSI/RM2、管理站3、代理系统⽹络管理框架内容:各种⽹络管理应⽤⼯作地基础结构,1、管理功能分为管理站和代理2、为存储管理信息提供数据库⽀持3、提供⽤户接⼝和⽤户视图功能4、提供基本地管理操作1-05在管理站和代理中应配置哪些软件实体?答:管理站:1、OS 2、通信3、NME(⽹络管理实体) 4、应⽤5、NMA(⽹络管理应⽤)代理:1、OS 2、通信3、NME(⽹络管理实体) 4、应⽤1-06集中式⽹络管理和分布式⽹络管理有什么区别?各有什么优缺点?答:区别:集中式地⽹络中,⾄少有⼀个结点(主机或路由器)担当管理站⾓⾊,所有代理都在管理站监视和控制下协同⼯作,实现集成地⽹络管理.⽽分布式地⽹络,是地理上分布地多台⽹络管理客户机与⼀⽹络管理服务器交互作⽤,共同完成⽹络管理功能.集中式优点:管理⼈员可以有效地控制整个⽹络资源,根据需要平衡⽹络负载,优化⽹络性能.缺点:⽹络通信消耗⼤,管理站失效,将导致⽹络管理中断;对于⼤型⽹络则⼒不从⼼.分布式优点:灵活性和可伸缩性,善于控制⼤型⽹络.缺点:不便于统⼀控制.1-07什么是委托代理?答:有些设备不⽀持当前地⽹络管理标准,或⽆法完整实现NME全部功能,或不能运⾏附加软件,⽤来管理这些⾮标准设备地标准设备,称为委托代理.1-08⽹络管理软件由哪些部分组成?它们地作⽤各是什么?答:1、⽤户接⼝软件:对⽹络资源实施本地配置、测试和排错,⼀定地信息处理能⼒,实现异构型⽹络连接2、管理专⽤软件:⽀持多种⽹络管理应⽤,如配置管理、性能管理、故障管理3、管理⽀持软件:保留管理所需要地相关信息,具有基本⽂件管理功能,⽀持节点之间地通信.1-09对⽹络监控有⽤地管理信息有哪些?代理怎样把管理信息发送给监视器?答:1、静态信息2、动态信息3、统计信息管理站和代理之间地信息交换通过协议数据单位(PDU)进⾏.通常是管理站向代理发送请求PDU,代理以响应PDU回答,⽽管理信息包含在PDU参数中.1-10系统响应时间由哪些部分组成?答:1、⼊⼝终端延迟2、⼊⼝排队时间3、⼊⼝服务时间4、CPU处理延迟5、出⼝排队时间6、出⼝服务时间7、出⼝终端延迟1-11⽹络资源地利⽤率与哪些因素有关?什么是合理地负载分布?答:负载和数据速率有关.各链路地相对负载/相对容量(相对利⽤率),都⽐较平衡.1-12性能测试报告应包括哪些内容?答:1、主机对通信矩阵2、主机组通信矩阵3、分组类型直⽅图4、数据分组长度直⽅图5、吞吐率-利⽤率分布6、分组到达时间直⽅图7、信道获取时间直⽅图8、通信延迟直⽅图9、冲突计数直⽅图10、传输计数直⽅图或者:宽带利⽤率、吞吐率降低地程度、通信繁忙地程度、⽹络瓶颈及响应时间等.1-13故障监视可分为哪些功能模块?答:1、故障检测和报警功能2、故障预测功能3、故障诊断和定位功能1-14需要计费地⽹络资源有哪些?计费⽇志应包括哪些信息?答:资源:1、通信设施2、计算机硬件3、软件系统4、服务⽇志:1、⽤户标识符2、连接⽬标地标识符3、传送地分组数/字节数4、安全等级5、时间戳6、指⽰⽹络出错情况地状态码7、使⽤地⽹络资源1-15配置管理应包含哪些功能模块?设备地配置信息有哪些?答:功能模块:1、定义配置信息2、设置和修改设备属性3、定义或修改⽹络元素间地互联关系4、启动和终⽌⽹络运⾏5、发⾏软件6、检查参数值和互联关系7、报告配置现状配置信息:设备地名称、标识符、地址、状态、操作特点和软件版本1-16计算机⽹络地安全需求有哪些?答:1、保密性2、数据完整性3、可⽤性1-17 对计算机⽹络地安全威胁有哪些?对⽹络管理地安全威胁有哪些?答:⽹络安全威胁:1、对硬件地威胁2、对软件地威胁3、对数据地威胁4、对⽹络通信地威胁⽹络管理安全威胁:1、伪装地⽤户2、假冒地管理程序3、侵⼊管理站或代理间地信息交换过程1-18计算机⽹络地安全管理应包含哪些内容?答:1、记录系统中出现地各类事件2、追踪安全审计试验,⾃动记录有关安全地重要事件3、报告和接收侵犯安全地警⽰信号,在怀疑出现威胁安全地活动时采取防范措施5、经常维护和检查安全记录,进⾏安全风险分析,编制安全评价报告6、备份和保护敏感地⽂件7、研究每个正常⽤户地活动形象,预先设定敏感资源地使⽤形象,以便检测授权⽤户地异常活动和对敏感资源地滥⽤⾏为或者:1、发现安全漏洞2、设计和改进安全策略3、根据管理记录产⽣安全事件报告4、维护安全业务(访问控制、数据加密、认证)1-19 ISO制定地⽹络管理标准有哪些⽂件?各是什么内容?答:1、ISO DIS7498-4(X.700):定义了⽹络管理地基本概念和总体框架2、ISO 9595:公共管理信息服务定义3、ISO 9596:公共管理信息协议规范4、ISO 10164:系统管理功能5、ISO 10165:管理信息结构1-20 TCP/IP⽹络管理标准有哪些主要地RFC⽂件?各是什么内容?答:1、RFC1155(SMI) 2、RFC1157(SNMP) 3、RFC1212(MIB定义) 4、RFC1213(MIB-2规范)名词解释:⼀、⽹络管理应⽤:⽤户根据需要开发地软件,这种软件运⾏在具体地⽹络上,实现特定地管理⽬标.⼆、⽹络管理完成地任务:1、收集有关⽹络通信地统计信息2、对本地设备进⾏测试,记录设备状态信息3、在本地存储有关信息4、响应⽹络控制中⼼地请求,发送管理信息5、根据⽹络控制中⼼地指令,设置或改变设备参数三、⽹络管理功能分为:1、⽹络监视:收集系统和⼦⽹地状态信息,分析被管理设备地⾏为,以便发现⽹络运⾏中存在地问题2、⽹络控制:修改设备参数或重新配置⽹络资源,以便改善⽹络地运⾏状态四、⽹络监控要解决地问题:1、对管理信息地定义2、监控机制地设计3、管理信息地应⽤五、轮询:⼀种请求-响应式地交互作⽤,即由监视器向代理发出请求,询问它所需要地信息值,代理响应监视器地请求,从它所保存地管理信息库中取得请求地信息,返回给监视器.六、事件报告:由代理主动发送给管理站地消息.七、影响通信⽅式选择地主要因素:1、传送监控信息引起地通信量2、对危急情况地处理能⼒3、对⽹络管理站地通信时延4、被管理设备地处理⼯作量5、消息传输地可靠性6、⽹络管理应⽤地特殊性7、在发送消息之前通信⼋、⽹络管理功能:1、性能管理2、故障管理3、计费管理4、配置管理5、安全管理九、可⽤性:⽹络系统、元素或应⽤对⽤户可利⽤地时间地百分⽐⼗、响应时间:从⽤户输⼊请求到系统在终端上返回计算结果地时间间隔管理域:管理对象地集合叫管理域.⾏政域:划分和改变管理域,协调管理域之间地关系.第2章抽象语法表⽰ASN.12-01表⽰层地功能是什么?抽象语法和传输语法各有什么作⽤?答:表⽰层地功能是提供统⼀地⽹络数据表⽰.2-02⽤ASN.1表⽰⼀个协议数据单元(例如,IEEE802.3地帧).答:GetRequest-PDU::=SEQUENCE{request-id INTEGER,error-status INTEGER,error-index INTEGER,variable-bindings VarBind}VarBind::=SEQUENCE{name OBJECT IDENTIFIER,value NULL}2-03⽤基本编码规则对长度字段L编码:L=18,L=180,L=1044.答:L=18,00010010;L=180,10000001 10110100;L=1044,10001000 100101002-04⽤基本编码规则对下⾯地数据编码:标签值=1011001010,长度=255.答:标签编码:×××11111 1000 0101 11001010;长度编码:10000001 111111112-05为什么要⽤宏定义?怎样由宏定义得到宏实例?答:使⽤宏定义地⽬地是为了简化类型定义地⽅法.⽤具体地值代替宏定义中地变量可以产⽣宏实例.第3章简单⽹络管理协议3-01 Internet⽹络管理框架由哪些部分组成?⽀持SNMP地体系结构由哪些协议层组成?答:1、RFC1155定义了管理信息结构(SMI),即规定了管理对象地语法和语义2、RFC1212说明了定义MIB模块地⽅法3、RFC1213定义了MIB-2管理对象地核⼼集合,这些管理对象是任何SNMP系统必须实现地4、RFC1157是SNMP V1协议地规范⽂件.应⽤层协议,UDP协议,TCP/IP3-02 SNMP环境中地管理对象是如何组织地?这种组织⽅式有什么意义?答:组织:分层地树结构.意义:1、表⽰管理和控制关系2、提供了结构化地信息组织技术3、提供了对象命名机制3-03 MIB-2中地应⽤类型有哪些?计数器类型和计量器类型有什么区别?答:1、networkaddress::=choice{internet ipaddress}2、internet object identifier::={iso(1)org(3)dod(6)1}3、ipaddress::=[application 0] implict octet string(size(4))4、counter::= [application 1] implict intrger(0..4 294 967 295)5、gauge:= [application 2] intrger(0..4 294 967 295)6、timeticks::= [application 3] intrger(0..4 294 967 295)7、opaque::= [application 4] octet string—arbitrary ASN.1 value区别:计量器与计数器不同地地⽅是计量器达到最⼤值后不回零,⽽是锁定在232-13-04RFC1212给出地宏定义由哪些部分组成?试按照这个宏定义产⽣⼀个宏实例.答:1、SYNTAX,表⽰对象类型地抽象语法;2、ACESS,定义SNMP协议访问对象地⽅式;3、DesctPart,任选,⽤⽂字说明对象类型含义;4、R efValPart,任选,⽤⽂字说明可参考在其他MIB模块定义地对象;5、 indexpart,⽤于定义表对象地索引项;6、defvalpart,定义了对象实例默认值,任选;7、value notation,指明对象地访问名宏实例:tcpMaxConn OBJECT-TYPESYNTAX INTEGERACCESS read-onlySTATUS mandatoryDESCRIPTION“The limit on the total number of TCP connection the entity can support”::={tcp 4}3-05MIB-2地管理对象分为哪⼏个组?答:1、系统组2、接⼝组3、地址转换组4、IP组5、ICMP组6、TCP组7、UDP组8、EGP组9、传输组3.06什么是标量对象?什么是表对象?标量对象和表对象地实例如何标识?标量对象:存储在SMI中地标量;表对象:存储在SMI中地⼆维数组变量对象地标识:SNMP规定不属于表地标量对象地实例标识符由他地对象标识符加上0组成.表对象地标识:在MIB定义中,表对象和⾏对象地访问状态是“⽆法访问”.对于列对象来说,他地实例是⼀组⽤列对象标识符(ColumnOID)和⾏索引值(RowIndexValue)联合标识地实例.列对象标识符,是⽤来惟⼀标识列对象地OID.⾏索引值由⼀个或多个列对象对应实例地值组成3-07 为什么不能访问表对象和⾏对象?答:表和⾏对象是没有实例标识符地,因为她们不是叶⼦节点,SNMP不能访问.3-08 对象标识符是由什么组成地?为什么说对象地字典顺序对⽹络管理是很重要地?答:x.i.(tcpConnLocalAddress).( tcpConnLocalPort).( tcpConnRemAddress).( tcpConnRemPort)对象地顺序对⽹络管理是很重要地,因为管理站可能不知道代理提供地MIB地组成,所以管理站要⽤某种⼿段搜索MIB树,在不知道对象标识符地情况下访问对象地值.3-09 在⾃⼰地计算机上安装SNMP服务,浏览MIB-2和私有数据库地内容.名词解释:⼀、SNMP地组成:1、管理信息库结构地定义2、访问管理信息库地协议规范第4章简单⽹络管理协议4-01 SNMPv1⽀持哪些管理操作?对应地PDU格式如何?答:1、GET,管理站⽤于检索管理信息库中标量对象地值;2、SET,管理站⽤于设置管理信息库中标量对象地值;3、TRAP,代理⽤于向管理站报告管理对象地状态变化.GET,SET地PDU格式:TRAP格式:4-02 SNMPv1报⽂采⽤什么样地安全机制?这种机制有什么优缺点?答:SNMPv1地安全机制很简单,只是验证团体名.优点:简单性.缺点:很不安全,团体名以明⽂形式传输,容易被第三者窃取.4-03举例说明如何检索⼀个简单对象,如何检索⼀个表对象?答:P72-73 例4.1(检索⼀个简单对象)例4.4(检索⼀个位置对象)4-04 怎样利⽤GetNext命令检索未知对象?答:发出命令:GetNextRequest(udpInDatagrams.2)得到响应:GetResponse(udpNoPorts.0=1)4-05 如何更新和删除⼀个表对象?答:更新:SetRequest(ipRouteMetric1.9.1.2.3=9)GetResponse(ipRouteMetric1.9.1.2.3=9)删除:SetRequest(ipRouteType.7.3.5.3=invalid)GetResponse(ipRouteType.7.3.5.3=invalid)4-06试描述数据加密、⾝份验证、数字签名和消息摘要在⽹络安全中地作⽤,这些安全⼯具能对付哪些安全威胁?答:1、数据加密:保密通信地基本⼿段2、⾝份认证:防⽌主动攻击地⽅法3、数字签名:防⽌否认地⽅法4、消息摘要:验证消息地完整性对付:窃取,假冒,篡改等安全威胁4-07 SNMPv2对SNMPv1进⾏了哪些扩充?答:1、管理信息结构地扩充2、管理站和管理站之间地通信3、新地协议操作4-08 SNMPv2对计数器和计量器类型地定义做出了哪些改进?这些改进对⽹络管理有什么影响?答:增加了两种新地数据类型,计数器没有定义地初始值,只有连续两次读计数器得到地增加值才有意义.规定了Gauge32地最⼤值可以设置为⼩于232地任意正数MAX.明确了当计数器到达最⼤值时可⾃动减少.影响:这样规定更细致,应⽤更⽅便.4-09举例说明不同类型地索引对象如何⽤作表项地索引.答:4.10在表地定义中,AUGMENTS⼦句地作⽤是什么?答:AUGMENTS⼦句地作⽤是代替INDEX⼦句,标识概念⾏地扩展.SNMPv2表地定义中必须包含INDEX或AUGMENTS⼦句,但是只能有⼀个.INDEX⼦句定义了⼀个基本概念⾏,⽽INDEX⼦句中地索引对象确定了⼀个概念⾏实例.4-11允许⽣成和删除地表与不允许⽣成和删除地表有什么区别?答:SNMPv2把表分为两类:1、禁⽌删除和⽣成⾏地表:这种表地最⾼访问级别是read-write.在很多情况下这种表由代理控制,表中只包含read-only 型地对象.2、允许删除和⽣成⾏地表:这种表开始时候可能没有⾏,由管理站⽣成和删除⾏.⾏数可由管理站或代理改变.4-12试描述⽣成表项地两种⽅法.答:1、管理站通过事务处理产⽣和激活概念⾏2、管理站与代理协商⽣成概念⾏⽣长概念⾏地4个步骤:1、选择实例标识符2、a管理站通过事务处理产⽣和激活概念⾏b管理站与代理协商⽣成概念⾏3、初始化⾮默认值对象4、激活概念⾏4-13 SNMPv2管理信息库增加了哪些新地对象?答:1、系统组:标量对象sysORLastChange、表对象sysORTable 2、SNMP组3、MIB对象组:⼦组(snmpTrap)snmpTrapOID,snmpTrapEnterprise ⼦组(snmpSet):snmpSerialNo4-14试描述SNMPv2地3种检索操作地⼯作过程.答:1、GetRequestPDU 2、GetNextRequestPDU 3、GetBulkRequestPDU4-15 SNMPv2地操作管理框架由哪些部分组成?它们对管理操作地安全有什么作⽤?答:主要涉及4个基本概念:参加者、上下⽂、MIB视图和访问控制策略参加者:是否可以成为某次协议操作地参加者是需要进⾏认证地4-16管理站之间地通信有什么意义?需要哪些管理信息地⽀持?答:意义:管理站之间地通信机制是分布式⽹络管理所需要地功能特征.需要通知报⽂和管理站数据库⽀持.4-17试描述SNMPv2加密报⽂地发送和接收过程.答:发送:发送实体⾸先构造管理通信消息SNMPMGMTCOM,这需要查找本地数据库,发现合法地参加者和上下⽂,然后如果需要认证协议,则在snmpmgmtcom前⾯加上认证信息authinfo,构成认证报⽂snmpauthmsg,否则把authinfo置为长度为0地字符串.若参加者地认证协议为v2md5authprotocol,则由本地实体按照md5算法计算产⽣16个字节地消息摘要,作为认证信息中地authdigest.第三步是检查⽬标参加者地私有协议,如果需要加密,则采⽤指定地加密协议对snmpauthmsg加密,⽣成privdata.最后置privdst=dstparty,组成完整地SNMP V2报⽂,并经过BER编码发送出去.接收:⽬标⽅实体接收到snmpprivmsg后⾸先检查报⽂格式.如果通过,则查找本地数据库,发现需要地验证信息.根据本地数据库地记录,可能需要使⽤私有协议对报⽂解密,对认证码进⾏验证,检查源⽅参加者地访问特权和上下⽂是否符合要求等.⼀旦检查全部通过,就可以⽀⾏协议请求地操作了.4-18 SNMP引擎是由哪些部分组成地?各部分地作⽤是什么?答:1、⼀个调度器:a向/从⽹络中发送/接收报⽂b确定SNMP报⽂地版本,并交给相应地报⽂处理模块处理c为接收PDU 地SNMP应⽤提供⼀个抽象地接⼝d为发送PDU地SNMP应⽤提供⼀个抽象地接⼝2、⼀个报⽂处理⼦系统:按照预订地格式准备要发送地报⽂,或者从接收地报⽂中提取数据3、⼀个安全⼦系统:提供安全服务,例如,报⽂地认证和加密4、⼀个访问控制⼦系统:确定是否允许访问⼀个管理对象,或者是否可以对某个管理对象实施特殊地管理操作4-19基于⽤户地安全模型可以防护哪些安全威胁?答:两种主要威胁:1、修改信息2、假冒两种次要威胁:1、修改报⽂流2、消息泄露4-20时间系列检验地⼯作原理是什么?这种检验不能防⽌哪些安全威胁?答:为防⽌报⽂被重发和故意延迟,每次通信有⼀个SNMP引擎被指定为有权威地,⽽通信对⽅是⽆权威地.当SNMP报⽂要求响应时,该报⽂地接收者是有权威地.反之,当SNMP报⽂不要求响应时,该报⽂地发送者是有权威地.有权威地SNMP引擎维持⼀个时间值,⽆权威地SNMP引擎跟踪这个时钟值,并保持与之松散同步.不能防⽌:窃取,假冒,中断4-21 HMAC-MD5-96认证协议是怎样计算报⽂摘要地?试对其安全性进⾏分析.答:p1114-22 SNMPv3怎样进⾏密钥管理?答:通过密钥局部化来管理,也就是把⽤户地⼝令字变换成他/她与⼀个有权威地SNMP引擎共享地密钥.密钥局部化过程地主要思想是把⼝令字和相应地SNMP引擎标识作为输⼊,运⾏⼀个散列函数,得到⼀个固定长度地伪随机序列,作为加密密钥.4-23视图是怎样定义地?在处理⼀个访问请求时怎样进⾏访问控制决策?答:为了安全,我们需要把某些组地访问权限制在⼀个管理信息地⼦集中,提供这种能⼒地机制就是MIB视图.P118第五章远程⽹络监视5-01为什么需要RMON?⽹络监视器能提供哪些管理信息?答:因为RMON是对SNMP标准地重要补充,是简单⽹络管理向互联⽹管理过渡地重要步骤.RMON扩充了SNMP地管理信息库MIB-2,可以提供有关互联⽹管理地主要信息,在不改变SNMP协议地条件下增强了⽹络管理地功能.提供:出错统计数据,性能统计数据等.5-02RMON对表对象地管理做出了什么改进?答:1、增加了两种新地数据类型,增强规范地可读性2、RMON规范中地表结构由控制表和数据表两部分组成.控制表定义数据表结构,数据表存储数据.5-03试根据矩阵组定义地管理对象设计⼀个显⽰⽹络会话地⼯具.答:5-04试写出产⽣下降警报地规则.答:5-05举例说明RMON进⾏状态过滤地逻辑.答:5-06试描述警报组、过滤组、事件组和包捕获组地关系.答:1、实现警报组时必须实现事件组.2、实现最⾼N台主机组时必须实现主机组.3、实现捕获组时必须实现过滤组.5-07RMON2扩充了哪些功能组,它们地作⽤是什么?答:1、协议⽬录组:提供了各种⽹络协议地标准⽅法.2、协议分布组:提供每个协议产⽣地通信统计数据.3、地址映像组:建⽴⽹络层地址(IP地址)与MAC地址地映像关系.4、⽹络层主机组:类似于RMON1地主机组,收集⽹上主机地信息.5、⽹络层矩阵组:记录主机对(源/⽬标)之间地通信情况.6、应⽤层主机组:记录有关主机发送/接收地分组/字节数等,使⽤户了解每个主机上地每个应⽤协议地通信情况.7、应⽤层矩阵组:统计⼀对应⽤层协议之间地各种通信情况,以及各种选定地参数最⼤地⼀对应⽤层协议之间地通信情况.8、⽤户历史组:按照⽤户定义地参数,周期地收集统计数据.9、监视器配置组:定义了监视器地标准参数集合.5-08为什么要使⽤外部对象作为表地索引?答:为了把数据表与对应地控制表结合起来.5-09RMON2如何标识协议之间地关系?答:⽤协议标识符和协议参数共同标识⼀个协议以及该协议与其他协议之间地关系.5-10RMON监视器如何配置?答:5-11试把RMON对象划分到各个管理功能域3002答:版权申明本⽂部分内容,包括⽂字、图⽚、以及设计等在⽹上搜集整理。
ASN.1编码规则详解(全部精彩)

对于给定的记法描述,ASN.1 编译器能执行并产生如 Figure 1-2 图中虚线部分,这样我 们以有限的代价就能完成相当多数量系统之间的互连。
Figure 1-2 语Βιβλιοθήκη 三元组:实际语法、抽象语法和传输语法
(1)实际语法(Concrete Syntax) 指诸如 C、Objective Caml 等这样实际编程语言;
ASN.1 发送任何形式(音频、视频、数据等等)的信息都必须用数字传送。ASN.1 只能 包含信息的结构方面(没有已经定义的或考虑到的处理数据值的操作)。它不是一个编程语 言。
ASN.1 本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。各种 ASN.1 编码规则提供了由 ASN.1 描述其抽象句法的数据的值的传送语法(具体表达)。标准的 ASN.1 编码规则有基本编码规则(BER,Basic Encoding Rules)、规范编码规则(CER,Canonical Encoding Rules)、唯一编码规则(DER,Distinguished Encoding Rules)、压缩编码规则(PER, Packed Encoding Rules)和 XML 编码规则(XER,XML Encoding Rules)。 ASN.1 成功的一个主要理由是它采用了一些如 BER(Basic Encoding Rules)或新制定的 PER(Packed Encoding Rules)这样的标准化的编码规则,它对受带宽限制的应用程序很有用。 这些编码规则描述了如何将定义在 ASN.1 中的值译成适合传输的电码(例如:他们可以被转
指表示层交换数据的表示方法,是实际通讯系统间的码流。当数据在两个表示层实体之间传 输时,这些数据的实际比特模式表示方法就是传送语法。 (4)编码
asn1结构 context类型

asn1结构 context类型ASN.1(抽象语法标记一)是一种用于描述数据结构的标准化的语法表示法。
在ASN.1中,context类型是一种用于标识和区分不同类型数据的一种方式。
它在通信协议和数据交换中起着重要的作用。
文章标题,ASN.1中的Context类型及其应用。
ASN.1中的context类型是一种非常重要的类型,它允许我们在数据结构中为不同的字段赋予不同的标识,从而使得数据在传输和解析过程中能够被正确地识别和处理。
在通信协议中,context 类型可以用来区分不同的消息类型,以及在数据编码和解码过程中进行正确的映射。
在ASN.1中,context类型的定义如下:asn1。
MyMessage ::= SEQUENCE {。
messageType INTEGER {。
request(0),。
response(1)。
} (0),。
messageData OCTET STRING (1)。
}。
在上面的例子中,我们定义了一个名为MyMessage的数据结构,其中包含了一个messageType字段和一个messageData字段。
在messageType字段中,我们使用了context类型来标识不同的消息类型,0代表请求消息,1代表响应消息。
这样一来,在数据传输和解析过程中,接收方就可以根据messageType字段的值来正确地识别消息类型,并进行相应的处理。
除了在通信协议中的应用之外,context类型还可以在数据编码和解码过程中起到重要作用。
通过使用context类型,我们可以在编码过程中为不同的字段赋予不同的标识,使得在解码过程中能够正确地将数据映射到相应的字段上,从而保证数据的完整性和正确性。
总之,ASN.1中的context类型在数据交换和通信协议中具有重要的作用,它能够帮助我们正确地识别和处理不同类型的数据,保证数据的完整性和正确性。
因此,在设计和实现通信协议和数据交换格式时,我们需要充分理解和正确应用context类型,以确保数据的可靠传输和解析。
ASN

ASN.1抽象语法标记(Abstract Syntax Notation One)ASN.1是一种ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。
它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。
在任何需要以数字方式发送信息的地方,ASN.1 都可以发送各种形式的信息(声频、视频、数据等等)。
ASN.1 和特定的ASN.1 编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数据结构。
ISO 协议套中的应用层协议使用了ASN.1 来描述它们所传输的PDU,这些协议包括:用于传输电子邮件的X.400、用于目录服务的X.500、用于VoIP 的H.323 和SNMP。
它的应用还可以扩展到通用移动通信系统(UMTS)中的接入和非接入层。
ASN.1 取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER)-X.209 、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和XER 编码规则(X ER)。
这些编码规则描述了如何对ASN.1 中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。
ASN.1 的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输—在无线宽带中,这是一种优势。
1984年,ASN.1 就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。
简洁的二进制编码规则(BER、CER、DER、PER,但不包括XER)可当作更现代XML 的替代。
然而,ASN.1 支持对数据的语义进行描述,所以它是比XML 更为高级的语言。
ASN.1 的描述可以容易地映被射成 C 或C++ 或Java 的数据结构,并可以被应用程序代码使用,并得到运行时程序库的支持,进而能够对编码和解码XML 或TLV 格式的,或一种非常紧凑的压缩编码格式的描述。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 时序
– 对事件实现顺序的详细说明
ASN.1的作用
• BNF:Backus-Naur Form • 提供统一的网络数据表示 • 用来定义应用数据的抽象语法和应用层协 议数据单元的结构 • 其中的BER(基本编码规则)部分用来把应 用数据变换成比特串
抽象语法
• 类似于通常程序设计语言定义的抽象数据 类型
• 这一组可以叫做基本类型,它们的值已经 在表2.1中列出了。
枚举类型
• 枚举类型ENUMERATED是一个整数的表,每 一个整数有一个名字。 • 与此类似的是,对于某些整数类型的值也 可以定义一个名字,但这两种类型是有区 别的。 • 对整数可以进行算术运算,但对枚举类型 却不能进行任何算术运算, • 枚举类型的值只是用整数表示的一个符号, 而不具有整数的性质。
第二章 抽象语法表示ASN.1
钱松荣 复旦大学
ASN的中文含义
• • • • 英文:Abstract Syntax Notation ISO 8824 ASN.1 ISO 8825 BER ITU X.208
网络协议的基本元素
• 语法
– 通信数据的结构、格式、编码等
• 语义
– 对具体事件应发出何种控制信息,完成何种动 作以及做出何种应答
ASN.1的基本概念
• 作为一种形式语言,ASN.1有严格的BNF定 义。 • 解释ASN.1基本概念 • 给出一个抽象数据类型的例子。
ASN.1的文本约定
• Lexical Conventions 1. 书写的布局是无效的,多个空格和空行等效于一个空 格 2. 用于表示值和字段的标识符、类型指针(类型名)和 模块名由大小写字母、数字和短线(减号)组成 3. 标识符以小写字母开头 4. 类型指针和模块名以大写字母开头 5. ASN.1定义的内部类型全部由大写字母表示 6. 关键字全部用大写字母表示 7. 注释以两个短线(减号)开始,以两个短线或行尾结 束
定义枚举类型和定义整数类型的例 子
• EthernetAdapterStatus::=
ENUMERATED{normal(0),
offline(2), failed(3)}
degraded(1),
• EthernetNumberCollisionsRange::=
INTEGER{minimum(0), maximum(1000)}
传输语法
• 表示实体则对应用层数据进行编码,将其 转换成二进制的比特串,例如把十进制数 变成二进制数、把字符变成ASCII码等。 • 应用协议按照预先定义的抽象语法构造协 议数据单元,用于和对等系统的应用实体 交换信息。 • 比特串由下面串的编码规则叫做 传输语法。
简单类型
• 表2-1中除UNIVERSAL 16和UNIVERSAL 17之 外的都是简单类型 • 可以直接定义它们的值的集合,可以把这 些类型作为原子类型构造新的数据类型
简单类型的第一组
• 简单类型分为4组。 • 第一组包括BOOLEAN、INTEGER、BIT STRING、OCTET STRING、REAL和 ENUMERATED等
表2.1 ASN.1定义的通用类型
标 签 UNIVERSAL 1 UNIVERSAL 2 UNIVERSAL 3 UNIVERSAL 4 UNIVERSAL 5 UNIVERSAL 6 UNIVERSAL 7 UNIVERSAL 8 UNIVERSAL 9 UNIVERSAL 10 UNIVERSAL 11~15
NULL类型(续)
• • • • • • • • • • • • • • • NULL也可以用在表示链表结束的空接点,如: LinkedList ::= SEQUENCE { data Data, next CHOICE { linked-list LinkedList, end NULL } } 当然,可以使用SEQUENCE OF来达到类似目的: LinkedList ::= SEQUENCE OF Data { … }
表2.1 ASN.1定义的通用类型
UNIVERSAL 16 UNIVERSAL 17 UNIVERSAL 18 UNIVERSAL 19 UNIVERSAL 20 UNIVERSAL 21 UNIVERSAL 22 UNIVERSAL 23 UNIVERSAL 24 UNIVERSAL 25 UNIVERSAL 26 UNIVERSAL 27 UNIVERSAL 28 以后 SEQUENCE, SEQUENCE OF SET, SET OF NumericString PrintableString TeletexString VideotexString IA5String UTCTime GeneralizedTime GraphicString VisibleString GeneralString 保留 序列 集合 数字 0~9 和空格 可打印字符串 由 CCITT T.61 建议定义的字符集 由 CCITT T.100 和 T.101 建议定义的字符集 国际标准字符集 5(相当于 ASCII 码) 时间 时间 由 ISO 8824 定义的字符集 由 ISO 646 定义的字符集 通用字符集 为 ISO 8824 保留
简单类型的第四组
• 包含4种类型:
– NULL是空类型,它没有值,只占用结构中的一个位置,该位 置可能出现或不出现数据。 – EXTERNAL是外部类型,即标准之外的文档定义的类型。 – UTCTime: (世界通用时)分别用两位数字表示年、月和日(即 YYMMDD),然后是时、分和秒(即hhmmss),最后可以说明 是否为本地时间 – GeneralizedTime:用4位数字表示年,用两位数字表示月和 日,最后也可以说明是否为本地时间。 – 值20000721182053.7是GeneralizedTime类型的一个值,表示 2000年7月21日,当地时间18点20分53.7秒。 – 值20000721182053.7Z表示同样的时间,但是加了符号Z,则 表示UTC时间。 – 如果写为20000721182053.7+0800则除了表示同样的当地时 间外,还说明了加8小时可以得到UTC时间。
BOOLEAN类型
• • • • • 是两个值的集合:TRUE,FALSE。如下: RoundResult ::= BOOLEAN ok RoundResult ::= TRUE ko RoundResult ::= FALSE 该类型的UNIVERSAL Tag值为1。
NULL类型
• 空类型,只有一个值NULL。作为一种结果,空类型是传输报告 和响应的典型情况。 • Ack ::= NULL • 该类型的UNIVERSAL Tag值为5。 • 它经常在时间信息中使用,表示传送时间没有赋值,如: • Clock ::= CHOICE • { • time UTCTime, • out-of-order NULL • } • 当时钟电池没有电时,值为: • battery-down Clock ::= out-of-order:NULL
简单类型的第二组
• 包括各种字符串类型,标签为UNIVERSAL 18~22和UNIVERSAL 25~27 • 这些类型都可以看作是OCTET STRING类型的 子集, • 都是采纳其他标准的类型。
简单类型的第三组
• 包括OBJECT IDENTIFIER和Object Descriptor两种 类型。 • 对象类型泛指网络中传输的任何信息对象 • 例如标准文档、抽象语法和传输语法、数据结 构和管理对象等都可以归入信息对象范畴。 • OBJECT IDENTIFIER类型的值是一个对象标识符, 由一个整数序列组成,它惟一地标识一个对象。 • 对象描述符(Object Descriptor)则以人工可读的 形式描述信息对象的语义。
抽象语法和传输语法
• 抽象语法是独立于任何编码技术的,只与应用 有关。 • 抽象语法要能满足应用的需要,能够定义应用 需要的数据类型和表示这些类型的值。 • ASN.1是根据当前网络应用的需求制定的标准 (CCITT X.208和ISO 8824),是抽象语法的一种。 • 对应一种抽象语法可以选择不止一种传输语法 (编码规则)。 • 对传输语法的基本要求:支持对应的抽象语法, 另外还可以有其他一些属性,例如支持数据加 密或压缩,或者两者都支持。
• 如: counter Lottery-number ::= 45 sextuple Lottery-draw ::= { 7, 12, 23, 31, 33, 41 } pair Coordinates ::= { x 5, y -3 } son-choice Afters ::= dessert:"profiterolles" date Date ::= "20150509"
为什么要这么做?
• 应为不同的系统,数据表达方式各不相同
端系统A 用户
端系统B 用户
用户表示映像 本地存储 本地映像 应用实体 抽象语法 ASN.1
用户表示映像 本地存储 应用实体 本地映像
编码规则
编码规则
表示实体
传输语法 BER
表示实体
图2.1 关于信息表示的通信系统模型
信息表示的通信系统模型
ASN.1定义的通用类型
• 简单类型:由单一成分构成的原子类型
• 构造类型:由两种或两种以上成分构成的 类型 • 标签类型:由已知类型定义的新类型 • 其他类型:CHOICE和ANY
ASN.1定义类型的方法
• <新类型的名字> ::= <类型描述>
– <新类型的名字>是一个以大写字母开头的标识 符; – <类型描述>是基于内建类型或在其它地方定义 的类型。
• 表示层的功能是提供统一的网络数据表示。 • 在互相通信的端系统中至少有一个应用实体(例如FTP、 TELNET、SNMP等)和一个表示实体(即ASN.1)。 • 表示实体定义了应用数据的抽象语法,这种抽象语法类 似于通常程序设计语言定义的抽象数据类型。 • 表示实体则对应用层数据进行编码,将其转换成二进制 的比特串,例如把十进制数变成二进制数、把字符变成 ASCII码等。 • 应用协议按照预先定义的抽象语法构造协议数据单元, 用于和对等系统的应用实体交换信息。 • 比特串由下面的传输实体在网络中传送。把抽象数据变 换成比特串的编码规则叫做传输语法。 • 在各个端系统内部,应用数据被映像成本地的特殊形式, 存储在磁盘上或显示在用户终端上