网站大量收购闲置独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 抽象语法表示ASN.1;图2.1 关于信息表示的通信系统模型 ; 应用实体:FTP、TELNET、SNMP等 表示实体(ASN.1):定义了应用数据的抽象语法。 传输语法:把抽象数据变换成比特串的编码规则 应用协议按照预先定义的抽象语法构造协议数据单元,用于和对等系统的应用实体交换信息。表示实体则对应用层数据进行编码,将其转换成二进制的比特串。比特串由下面的传输实体在网络中传送。;2.2 ASN.1的基本概念 ;ASN.1的基本语法规则: (1) ASN.1使用巴科斯范式(BNF): 在双引号中的字(word)代表着这些字符本身。而double_quote用来代表双引号。 在双引号外的字(有可能有下划线)代表着语法部分。 尖括号( )内包含的为必选项。 方括号([ ] )内包含的为可选项。 大括号({ } )内包含的为可重复0至无数次的项。 竖线(| )表示在其左右两边任选一项,相当于OR的意思。 ::=是“被定义为”的意思。 ;BNF来定义的Java语言中的For语句的实例: FOR_STATEMENT::= for( ( variable_declaration | (expression ; ) | ; ) [expression ] ; [expression ] )statement ;(2) 在ASN.1中,符号的定义没有先后次序,只要能够找到该符号的定义即可。 (3)所有的标识符、参考、关键字都要以一个字母开头,后接字母(大、小写都可以)、数字或者连字符“-”(但不能以连字符“-”结尾,也不能连续出现两个连字符),不能出现下划线“_”。 ;;2.2.1 抽象数据类型   在ASN.1中,每一个数据类型都有一个标签(Tag),标签有类型和值(见表2.1),数据类型是由标签的类型和值惟一决定的,这种机制在数据编码时有用。标签的类型分为以下4种:   ● 通用标签:用关键字UNIVERSAL表示,带有这种标签的数据类型是由标准定义的,适用于任何应用;   ● 应用标签:用关键字APPLICATION表示,是由某个具体应用定义的类型;   ● 上下文专用标签:这种标签在文本的一定范围(例如一个结构)中适用; ;  ● 私有标签:用关键字PRIVATE表示,这是用户定义的标签。   ASN.1定义的数据类型有20多种,标签类型都是UNIVERSAL,如表2.1所示。这些数据类型可分为4大类。   ● 简单类型:由单一成分构成??原子类型;   ● 构造类型:由两种以上成分构成的构造类型;   ● 标签类型:由已知类型定义的新类型;   ● 其他类型:包括CHOICE和ANY两种类型。 ;表2.1 ASN.1定义的通用类型 ;表2.1 ASN.1定义的通用类型 ; 类型定义 新类型的名字::= 类型描述 例如: Married ::= BOOLEAN Age ::= INTEGER Picture ::= BIT STRING Form ::= SEQUENCE { name PrintableString, age Age, married Married, marriage-certificate PictureOPTIONAL };值定义: 新的值的名字该值的类型 ::=值描述 其中: 新的值的名字是以小写字母开头的标识符; 该值的类型可以是一个类型的名字,也可以是类型描述; 值描述是基于整数、字符串、标识符的组合。 例如: counter Lottery-number ::= 45 sextuple Lottery-draw ::= { 7, 12, 23, 31, 33, 41 };  1. 简单类型   表2.1中除了UNIVERSAL 16和UNIVERSAL 17之外都是简单类型。 这些类型的共同特点是可以直接定义它们的值的集合,可以把这些类型作为原子类型构造新的数据类型。简单类型还可以分为4组。第一组包括BOOLEAN、INTEGER、BIT STRING、OCTET STRING、REAL和ENUMERATED等。这一组可以叫做基本类型,它们的值已经在表2.1中列出了。需要说明的是,实数可以表示为科学计数法: ;  枚举类型ENUMERATED是一个整数的表,每一个整数有一个名字。与此类似的是,对于某些整数类型的值也可以定义一个名字,但这两种类型是有区别的。对整数可以进行算术运算,但对枚举类型却不能进行任何算术运算。 EthernetAdapterStatus::=ENUMERATED{normal(0),degraded(1), offline(2),failed(3)} EthernetNumberCollisionsRange::=INTEGER{min

您可能关注的文档

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档