抽象语法表示ASN.1填空题
- 格式:doc
- 大小:61.13 KB
- 文档页数:18
一、概述在计算机编程领域中,openssl asn1parse是一个用于解析和处理ASN.1格式数据的命令行工具。
ASN.1(抽象语法标记一)是一种用于描述数据结构的标准,通常用于在计算机网络协议中定义数据格式。
openssl asn1parse命令可以帮助程序员解析和分析ASN.1格式的数据,以便更好地理解和处理这些数据。
二、使用语法在使用openssl asn1parse命令时,可以使用以下语法:openssl asn1parse [options] [inputfile]其中,options表示可用的选项,inputfile表示要解析的ASN.1格式数据文件。
三、常用选项1. -in filename:指定要解析的ASN.1格式数据文件的文件名。
2. -inform DER|PEM:指定输入数据的格式,可以是DER或PEM格式。
3. -noout:使命令不产生任何输出。
4. -offset number:从指定的偏移量开始解析数据。
5. -length number:指定要解析的数据的长度。
6. -strparse number:解析字符串类型的数据。
7. -dump:以十六进制格式打印数据。
8. -i:以简洁的格式打印数据。
四、示例下面是一个使用openssl asn1parse命令的示例:假设有一个名为example.der的文件,包含了一个ASN.1格式的数据。
要解析这个数据,可以使用以下命令:openssl asn1parse -in example.der -i这条命令将解析example.der文件中的ASN.1格式数据,并以简洁的格式打印出来。
五、注意事项在使用openssl asn1parse命令时,需要注意以下几点:1. 确保输入数据的格式正确。
如果输入数据的格式不正确,可能会导致解析错误或输出结果不符合预期。
2. 了解ASN.1格式的基本结构和规则。
这有助于更好地理解和分析解析结果。
IEC62056 技术文档ASN.1语法(补充)深圳市航天泰瑞捷电子有限公司修订记录范围:本文就IEC62056系列标准中涉及的ASN.1语法进行补充说明,便于协助开发工程师阅读、理解DLMS/COSEM通信协议。
目录1 概述 (1)2 ASN.1 语法 (1)3 编码规则 (3)ASN.1语法补充1概述理解 DLMS/COSEM 应用层协议,需要首先了解:ASN.1、BER、A-XDR。
抽象语法记法ASN.1是用来描述应用层数据帧的。
DLMS 协议不同于其他一些简单通讯协议的地方就在于此。
他不是用一些表格,及一些固定的帧格式来描述的,而是用一种抽象语法语言来描述。
这样做的好处是,极大的提高了协议的抽象性和通用性,有利于程序移植。
编码规则BER 和A-XDR 是用来实现ASN.1 语法的。
2ASN.1 语法ASN.1 语法描述的数据帧:Name ::= [tag] IMPLICIT/EXPLICIT Data type{null-data [0] IMPLICIT NULL,item1 [1] IMPLICIT/EXPLICIT Data type A1 OPTIONALitem2 [2] IMPLICIT/EXPLICIT Data type A2 OPTIONALitem3 [3] Data type…}语法详细解释:1)Name 是这个数据帧的名字。
2)tag 包含类和一个数字。
类有四种:Universal(该数据帧在所有应用中的含义唯一)Application(该数据帧的含义与具体应用有关)Private(该数据帧属于某厂商的自定义范围)Context-specific(该数据帧与上下文有关,在不同上下文环境中可能有不同的含义)。
Tag 中的数字是这个数据帧的标号。
3)IMPLICIT/EXPLICIT 描述子数据帧与父数据帧的关系。
当前数据帧为子数据帧,可能派生于某一数据帧(父数据帧)。
一、单项选择题(本大题共20小题,每小题2分,共40分)2012.014.基本编码规则把ASN.1表示的抽象类型值编码为( )A.字节串B.字符串C.数值D.逻辑值5.在ASN.1宏定义中,ASN.1中的模块类似C语言中的( )A.变量B.数据类型C.结构D.关键字2011.116.下面属于ASN.1定义的简单类型的是( )A.OBJECT IDENTIFIER类型B.构造类型C.标签类型D.CHOICE类型7.ASN.1定义的数据类型有20多种,其标签值类型都是( )A.UNIVERSALB.APPLICATIONC.PRIV A TED.PUBLIC8.关于抽象语法和传输语法,下面描述正确的是( )A.抽象语法可以支持数据加密或压缩B.对应一种抽象语法可以选择不止一种传输语法C.对应一种抽象语法只能选择一种传输语法D.传输语法是独立于任何编码技术的,只与应用有关9.表示不同类型元素集合的构造类型是( )A.SEQUENCEB.SEQUENCE OFC.SETD.SET OF2011.01 2010.10 ----no2010.013.十进制数256的编码为()A.02 02 01 00B.02 01 01 00C.01 02 01 00D.02 02 11 114.以下对ASN.1的数据类型描述正确的是()A.每个数据类型(包括CHOICE和ANY)都有标签B.分别用SEQUENCE和SEQUENCE OF表示相同类型和不同类型元素的序列C.分别用SET和SET OF表示不同类型和相同类型元素的集合D.隐含标签的语义是在一个基本类型上加上新标签,从而导出一个新类型p282009.104.若“2007年8月15日,当地时间21点57分43.5秒”用GeneralizedTime类型可表示为第1 页共7 页( ) A.070815215743.5 B.070815215743.5ZC.20070815215743.5D.20070815215743.5Z2009.013.在ASN.1的数据类型分类中由已知类型定义的新类型是( )A.简单类型B.构造类型C.标签类型D.其它类型2008.105.计算机网络管理中提供统一的网络数据表示的形式语言是( )A.ASN.1B.JavaC.C语言D.ASP11.以下对ASN.1的数据类型描述正确的是( )A.每个数据类型(包括CHOICE和ANY)都有标签。
网络管理考试题型(样题)一、选择题1、在网络管理系统中,为了对非标准设备进行管理,通常使用哪个设备进行管理?( )A.ManagerB.ProxyC.ProbeD.Monitor支持SNMP协议,而是通过下列哪项进行的?() 2、在网络管理中,非标准设备不直接...A.委托代理设备B.管理站设备C.网络管理协议设备D.专用管理设备3、网络管理软件包括管理专用软件、管理支持软件和( )A.用户专用软件B.用户支持软件C.用户管理软件D.用户接口软件4、以下信息保存在管理信息库的动态数据库中的是 ( )。
A.网络连接的状态B.路由器的端口数C.吞吐率D.事件传感器5、监视器向代理发出请求,询问它所需要的信息值,代理响应监视器的请求,从它所保存的管理信息库中取出请求的值,返回给监视器,这种通信机制叫做( )。
A.轮询B.事件报告C.请求D.响应6、下面属于网络控制功能的是( )A.性能管理B.故障管理C.计费管理D.配置管理7、下列功能中属于故障管理的是( )A.访问控制功能B.计费处理方法C.工作负载监视功能D.运行日志控制功能8、在网络管理中,非标准设备不直接...支持SNMP协议,而是通过下列哪项进行的?( )A.委托代理设备 B.管理站设备C.网络管理协议设备D.专用管理设备9、计算机网络管理中提供统一的网络数据表示的形式语言是( ) )A.ASN.1B.JavaC.C语言D.ASP这些技术的是10、SNMP中,SMI提供了几种标准化技术表示管理信息,以下不属于...( )A.定义了MIB的层次结构B.提供了定义管理对象的语法结构C.定义了规范文件D.规定了对象值的编码方法11、在Internet网络管理的体系结构中,SNMP协议定义在( )A.网络接口层B.网际层C.传输层D.应用层12、SNMP协议支持的服务原语中,提供扫描MIB树和连续检索数据方法的原语是( )A.GetB.SetC.GetNextD.Trap13、委托代理和管理站之间按 SNMP 通信,而与被管理设备之间按 专用的协议通信。
[填空选择题]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:泛指网络中传输的任何信息对象,其值是一个对象标识符,由一个整数序列组成,它惟一地标识一个对象。
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基本语法和编码规则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/RM 2、管理站3、代理系统网络管理框架内容:各种网络管理应用工作的基础结构,1、管理功能分为管理站和代理;2、为存储管理信息提供数据库支持3、提供用户接口和用户视图功能;4、提供基本的管理操作1-05在管理站和代理中应配置哪些软件实体?答:管理站:1、OS ;2、通信;3、NME(网络管理实体);4、应用5、NMA(网络管理应用)代理:1、OS ;2、通信;3、NME(网络管理实体);4、应用1-06集中式网络管理和分布式网络管理有什么区别?各有什么优缺点?答:区别:集中式的网络中,至少有一个结点(主机或路由器)担当管理站角色,所有代理都在管理站监视和控制下协同工作,实现集成的网络管理。
而分布式的网络,是地理上分布的多台网络管理客户机与一网络管理服务器交互作用,共同完成网络管理功能。
集中式优点:管理人员可以有效的控制整个网络资源,根据需要平衡网络负载,优化网络性能。
缺点:网络通信消耗大,管理站失效,将导致网络管理中断;对于大型网络则力不从心。
分布式优点:灵活性和可伸缩性,善于控制大型网络。
缺点:不便于统一控制。
第三章管理信息库MIB-2[填空选择题]一、SNMP的基本概念P39-440、网关是一台用于解释地址的计算机。
C类IP地址的子网掩码255.255.255.01、如上图所示:TCP/IP协议栈中网络访问层对应OSI/RM中的网络层;与OSI分层的原则不同,TCP/IP协议簇允许同层协议实体之间的相互作用,从而实现复杂的控制功能,也允许上层过程直接调用不相邻的下层过程。
P396、管理信息库MIB:网络管理信息存储在管理信息库MIB中。
10、陷入(Trap)制导的轮询:为了使管理站能够及时而有效地对被管理设备进行监控,同时又不过分增加网络的通信负载,必须使用陷入(Trap)制导的轮询。
管理站启动时或每隔一定时间,用Get操作轮询一遍所有代理,以便得到某些关键的信息或基本的性能统计参数。
一旦得到了这些基本数据,管理站就停止轮询,而由代理进程负责在必要时向管理站报告异常事件。
这些情况都是由陷入操作传送给管理站的。
得到异常事件的报告后,管理站可以明了怎样定义管理对象和怎样访问管理对象。
(2)RFC 1212说明了定义MIB模块的方法;14、SNMP实体及作用:向管理应用程序提供服务,作用是把管理应用程序的服务调用变成对应的SNMP协议数据单元,并利用UDP数据报发送出去。
P4311、团体(Community)关系:每个代理进程管理若干管理对象,并且与某些管理站建立团体(Community)关系。
P4312、团体名:作为团体的全局标识符,是一种简单的身份认证手段。
一般来说,代理进程不接受没有通过团体名验证的报文,这样可以防止假冒的管理命令。
P43,但对于不支持可以管理若干台不支持TCP/IP的设备,并代表这些设备接收管理站的查询。
实际上委托代14、不支持TCP/IP的设备有:某些网桥、调制解调器、个人计算机和可编程控制器等。
P43二、MIB结构P44-481、MIB 结构:SNMP环境中的所有管理对象组织成分层的树结构,如图所示:P44internet下面的4个结点需要解释:P46●●●●●SNMP定义的管理对象全部在ISO(1)节点下。
第二章抽象语法表示ASN.1[填空选择题]1:一种形式语言,提供统一的网络数据表示,通常用于定义应用数据的抽象语法和应用层协议数据单元的结构。
P235、抽象语法用于定义应用数据,它类似程序设计语言定义的抽象数据类型。
P23二、ASN.1的基本概念P24-31●应用标签APPLICATION:是由某个具体应用定义的类型;●上下文专用标签CONTEXT SPECIFIC:这种标签在文本的一定围(例如,一个结构struct)中适用;●私有标签PRIVATE:用户定义的标签。
和集合SET两种类型不属于简单类型外,其他10多种均属于简单类型。
P25包括CHOICE和ANY两种类型。
以下是ASN.1标签和类型关系图:6、枚举类型ENUMERATED:是一个整数的表,每一个整数有一个名字。
枚举类型与整数类型区别在于整数类型可以进行算术运算而枚举类型不能进行任何算术运算,也即枚举类型的值只是用证书表示的一个符号,而不具有整数的性质。
P267、对象类型OBJECT IDENTIFIER:泛指网络中传输的任何信息对象,其值是一个对象标识符,由一个整数序列组成,它惟一地标识一个对象。
P268、NULL类型:是空类型、没有值、只占用结构的一个位置。
P269、时间类型:有GeneralizedTime类型和UTC类型两种:P261)GeneralizedTime时间类型格式:如值20000721182053.7,表示2007年7月21日,当地时间18点20分53.7秒;2)UTC时间类型格式:如值20000721182053.7Z,表示同样的时间。
10、构造类型:有序列和集合两种,序列和集合的区别是:序列是有序的,而集合是无序的。
P261)序列:用SEQUENCE表示不同类型元素的序列,用SEQUENCE OF表示相同类型元素的序列。
2)集合:用SET表示不同类型的集合,用SET OF表示相同类型元素的集合。
11、标签类型:指应用或用户加在某个类型上的标签,也即由已知类型定义的新类型。
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关于Unix操作系统的描述中,正确的是(AD)A 是一种典型的网络操作系统B 第一个版本采用C语言编写C采用分布式、单用户的系统结构D很多公司开发了自己的Unix版本E与Linux操作系统采用相同的内核解析:UNIX操作系统,是一个多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。
Unix从第三版内核开始使用C语言。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
选项B错误,第一版采用的是汇编语言书写的内核。
选项C错误,Unix是多用户操作系统。
选项E错误,Linux没有使用Unix 内核。
故选择AD选项。
2关于IEEE 802系列标准的描述中,错误的是(BCDE)A IEEE 802.1主要定义局域网体系结构B IEEE 802.2主要定义MAC子层功能C IEEE 802.11主要定义千兆以太网D IEEE 802.15主要定义无线局域网E IEEE 802.16主要定义个人区域网解析:IEEE 802.1主要定义局域网体系结构,IEEE 802.2主要定义逻辑链路层控制子层功能,IEEE 802.11主要定义无线局域网功能,IEEE 802.15主要定义近距离个人无线网络。
IEEE 802.16主要定义宽带无线网络。
故选择BCDE选项。
3 关于Ethernet物理地址的描述中,正确的是(AC)A地址长度为48位B又称为IPv6地址C需要保证地址的唯一性D后2字节由RAC负责分配E前4字节由网卡生产商分配解析:Ethernet物理地址又称硬件地址、MAC地址,采用48位地址长度,并且每块Ethernet网卡的地址是唯一的。
RAC为每个网卡生产商分配物理地址的前3个字节,即公司标识(Company-ID),也称机构唯一标识符(OUI)。
后面3个字节由生产网卡的厂商自行分配。
第二章抽象语法表示ASN.1[填空选择题]1:一种形式语言,提供统一的网络数据表示,通常用于定义应用数据的抽象语法和应用层协议数据单元的结构。
P232、表示层的功能:提供统一的网络数据表示。
P235、抽象语法用于定义应用数据,它类似程序设计语言定义的抽象数据类型。
P23二、ASN.1的基本概念P24-311、作为一种形式语言,ASN.1有严格的BNF定义。
P24P24●通用标签UNIVERSAL:由标准定义,适用于任何应用;●应用标签APPLICATION:是由某个具体应用定义的类型;●上下文专用标签CONTEXT SPECIFIC:这种标签在文本的一定范围(例如,一个结构struct)中适用;●私有标签PRIVATE:用户定义的标签。
4型。
这些数据类型的标签值均为通用标签Universal,有20多种。
P24●由单一成分构成的原子类型;ASN.1定义的数据类型中除了序列SEQUENCE和集合SET两种类型不属于简单类型外,其他10多种均属于简单类型。
P25●标签类型:由已知类型定义的新类型;包括CHOICE和ANY两种类型。
以下是ASN.1标签和类型关系图:6、枚举类型ENUMERATED:是一个整数的表,每一个整数有一个名字。
枚举类型与整数类型区别在于整数类型可以进行算术运算而枚举类型不能进行任何算术运算,也即枚举类型的值只是用证书表示的一个符号,而不具有整数的性质。
P267、对象类型OBJECT IDENTIFIER:泛指网络中传输的任何信息对象,其值是一个对象标识符,由一个整数序列组成,它惟一地标识一个对象。
P268、NULL类型:是空类型、没有值、只占用结构的一个位置。
P269、时间类型:有GeneralizedTime类型和UTC类型两种:P261)GeneralizedTime时间类型格式:如值20000721182053.7,表示2007年7月21日,当地时间18点20分53.7秒;2)UTC时间类型格式:如值20000721182053.7Z,表示同样的时间。
1011指应用或用户加在某个类型上的标签,也即由已知类型定义的新类型。
P27 12、在一个结构(序列或集合)类型中,可用上下文专用标签如[1]、[2]、[3]类似来区分类型相同的元素。
例如,Parentage::=SET{ P28SubjectName[1]IMPLICIT IA5String,MotherName[2]IMPLICIT IA5String OPTIONAL,FatherName[3]IMLICIT IA5String OPTIONAL }在结构类型Parentage中,为这三个元素SubjectName、MotherName、FatherName13、关键字IMPLICIT(隐含)和EXPLICIT(明示):标签类型可以是隐含的或明示的,两者区别:P281)隐含标签的语义是用新标签替换老标签,编码时只编码新标签。
2)明示标签类型是把基类型作为惟一元素的构造类型,在编码时,新老标签都要编码。
14、其他类型而且类型也是未定的。
(从而得知在ASN.1中,并不是每个数据类型(包括CHOICE和ANY)都有标签)当这种类型的变量被赋值时,它们的类型和标签才确定,可以说标签是运行时间确定的。
P281)CHOICE是可选类型的一个表,仅其中一个类型可以被采用,产生一个值,这些成分类型是已知的,但是在定义时尚未确定。
2)ANY类型:表示任意类型的任意值,与CHOICE类型不同之处在于实际出现的类型也是未知的,15、子类型:是由限制父类型的值集合而导出的类型,所以子类型的值集合是父类型的子集。
产生子类型的方法有单个值、包含子类型、值区间、可用字符、限制大小和内部子类型6种方法。
其中P28-30。
2。
3)限制大小方法可对5种类型(比特串类型、字节串类型、字符串类型、序列和集合类型)限制其规模大小(如限制比特串、字节串、字符串的长度,限制序列或集合的元素个数)。
4)内部子类型方法可用于序列、集合和CHOICE类型。
三、基本编码规则P32-34value可递归地再编码为TLV 结构,如图所示:P321)第一个字节(8位)为类型TYPE,用来表示ASN.1类型或用户定义的类型。
这个字节的前两位用来区分4种标签(00为通用标签、01为应用标签,10位上下文专用标签、115位用来表示标签值,2)第二个字节(8位)为长度length,是指描述值部分value所占用的字节个数。
3) 第三个字节(8位)为值value,表示该数据本身大小,也即数据大小的二进制表示。
2、编码实例:P32-34(1)布尔类型有两个值FALSE和TRUE,FALSE编码为01 01 00;TRUE编码为01 01 FF(2)十进制数256的编码为02 02 01 00(3)NULL类型编码:05 00(4,比特串10101可编码为03 02 03 A8(5)序列类型SEQUENCE{madeofwood BOOLEAN,length INTEGER}的值{ madeof-wood TRUE,length 62}编码为为30 06 01 01 FF 02 01 3E(6)Password::=[APPLICATION 27]OCTET STRING的值“Sesame”编码为7B 08 04 06 53 65 73 61 6D 65(7)Password::=[APPLICATION 27]IMPLICIT OCTET STRING的值“Sesame”编码为5B 06 53 65 73 61 6D 65四、ASN.1宏定义P35-381、ASN.1提供了宏定义设施,可用于扩充语法,定义新的类型和值。
P352、ASN.1中的模块类似C语言中的结构,用于定义一个抽象数据类型。
P353、宏表示:ASN.1提供的一种表示机制,用于定义宏。
P36456部分组成。
P377、宏定义的主要作用:宏定义可以看做是类型的类型,或者说是超类型,也可以把宏定看做是类型的模板。
P37[简答题:第二章抽象与法表示ASN.1]1、什么是ASN.1?P23抽象语法表示ASN.1是一种形式语言,它提供统一的网络数据表示,通常用于定义应用无论是OSI的管理信息2、表示层的功能是什么?抽象语法和传输语法各有什么作用?P23答:表示层的功能:提供统一的网络数据表示。
抽象语法是一种形式语言,提供统一的网络数据表示,通常用于定义应用数据的抽象语法和应用层协议数据单元的结构。
传输语法是一种编码规则,作用是把抽象数据变换成比特串在网络中传送。
3、产生子类型的方法P28-301)单个值:这种方法就是列出子类型可取的各个值。
2)包含子类型:使用关键字INCLUDES说明被定义的类型包含已有类型的所有值。
3)值区间:这种方法只能应用于整数和实数类型,指出子类型可取值的区间。
4)可用字符:这种方法只能用于字符串类型,限制可使用的字符集。
5)限制大小:可以对5种类型限制其规模大小,例如限制比特串、字节串或字符串的长度,限制构成序列或集合的元素(同类型)个数等。
6)内部子类型:这种方法可用于序列、集合和CHOICE类型。
这是一种很复杂的子类型关系4、简述ASN.1的基本编码规则P32用来表示ASN.1类型或用户定义的类型。
这个字节的5(2007年1月)答:一是当标签值大于30时类型字节需要扩充,二是当值部分大于一个字节的表示范围时长度字节需要扩充。
对标签值的扩充方法为:用5位表示0~30的编码,当标签值大于等于30时,这5位为全1,作为转义符,实际的标签值编码表示在后续字节中,后续字节的左边第一位表示是否为最后一个扩充字节,只有最后一个扩充自己的左边第一位置0,其余扩充字节左边第一位置1。
对长度字节的扩充方为:小于127的数用长度字节的右边7位表示,最左边的一位置0,大于等于127的数用后续若干字节表示,原来的长度字节第一位置1,其余7位知名后续用于求长度的字节数。
6、宏定义有哪些部分组成?这些部分都由什么范式说明?宏定义的主要用处是什么?P37宏定义由3个部分组成:(2)类型表示(TYPE NOTATION)(3)值表示(VALUE NOTATION)(4)支持产生式。
这三个部分都由Backs-Naur范式说明。
宏定义的主要作用是:宏定义可以看做是类型的类型,或者说是超类型,也可以把宏定看做是类型的模板,可以用这种模板制造出形式相似,语义相关的多种数据类型。
7、为什么要用宏定义?怎样用宏定义得到宏实例?P37ASN.1宏提供了创建“模板”的功能,这也是引入ASN.1宏的原因。
ASN.1宏使得ASN.1语言具有良好的扩充性。
当用一个具体的值代替宏定义中的变量或参数时就产生了宏实例,它表示一个实际的ASN.1类型(称为返回的类型),并且规定了该类型可取的值的集合(称为返回的值)。
可见宏定义可以看做是类型的类型,或者说是超类型。
[综合题:第二章抽象语法表示ASN.1](2009年1月、2008年1月)(1)布尔类型的两个值FALSE (0x00),TRUE (0xFF);(2)比特串10101;(3)NULL类型;(4)序列类型SEQUENCE{madeofwood BOOLEAN,length INTEGER}的值{ madeof-wood TRUE,length 62};(5)Password::=[APPLICATION 27]OCTET STRING的值“Sesame”;(6)Password::=[APPLICATION 48]INTEGER的值为十进制256;相应的类型及标签为:BOOLEAN:UNIVERSAL 1;INTEGER:UNIVERSAL 2;OCTETSTRING:UNIVERSAL 4;NULL:UNIVERSAL 5;“Sesame”的ASCII值(十六进制)为:53 65 73 61 6D 65。
答: 1) FALSE编码:01 01 00, TRUE编码为:01 01 FF2) 比特串10101编码为:03 02 03 A83)NULL类型编码:05 004)可编码为30 06 01 01 FF 02 01 3E按照序列的结构可展开如下:Seq Len Val30 06 Bool Len Val01 01 FFInt Len Val02 01 3E5)编码为:7B 08 04 06 53 65 73 61 6D 65展开后为:App Len Val7B 08 Oct Len Val04 06 53 65 73 61 6D 65S e s a m e6)可编码为7F 30 05 02 02 01 00 00[分析]对于integer 256 数值可编码为02 02 01 00 00(与本题第二问题)但[APPLICATION 48]是属于应用标签并且标签值为48(因为48>30,需要对标签值需要扩充,所以第一字节类型TYPE编码位7F 30 ),展开后为:App Len Val7F 30 05 Int Len Val02 02 01 00 00即对应的二进制表示形式为:01111111 00110000 00000101 00000010 00000010 00000001 00000000 000000002、用基本编码规则对长度字段L编码:L = 18,L = 180,L = 1044。