- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 二次函数与圆综合练习题.doc
- 晶体学中的极射赤面投影和吴里夫网.ppt
- 二次函数在给定区间上的最值问题.doc
- 吴中区小学数学教师解题基本功竞赛试卷三.doc
- 基于Python的Abaqus二次开发实例讲解.pdf
- 集体荣誉感---主题班会.ppt
- 怎样观课评课(精).ppt
- 中国传统服饰(-申精).ppt
- 大自然的启示作文.doc
- 截水沟技术交底.docx
- 强化网络信息安全边界防护措施.docx
- 广东志高空调股份有限公司2024年招聘3人高频100题难、易错点模拟试题附带答案完整题库含答案(轻巧.docx
- 2022年云南省西双版纳自治州公开招聘综合应急救援人员精选提分卷二含答案.docx
- 广东德赛集团有限公司2024年应届高校毕业生招聘重点基础提升模拟试题附带答案大全附下载答案.docx
- 2023年吉林省通化市公开招聘综合应急救援人员冲刺一卷含答案.docx
- 广州万宝集团有限公司2023-2024年招聘80人历年高频考题难、易错点模拟试题附带答案题库(完整版.docx
- 2024年事物的正确答案不止一个教案.pdf
- 广东联塑科技实业有限公司内部使用招聘(高频重点提升专题训练)共100题附带答案通关秘籍题库带答案(培.docx
- 广东联塑科技实业有限公司内部使用招聘(高频重点提升专题训练)共100题附带答案通关秘籍题库带答案(培.docx
- 广博控股集团有限公司历年定向招聘历年高频难、易错点模拟试题附带答案完整版各版本.docx
文档评论(0)