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

第二章 抽象语法表示.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 抽象语法表示

;抽象语法表示ASN.1 Abstract Syntax Notation(ASN.1)是一种形式语言 提供统一的网络数据表示,用于定义应用数据的抽象语法和应用协议数据单元的结构。 OSI或SNMP管理信息库,都是用ASN.1定义的。 基本编码规则BER Basic Encoding Rule(BER)是一种编码规则 用ASN.1定义的应用数据在传送过程中按照BER变换成比特串。;表示层的功能是提供统一的网络数据表示 在互相通信的端系统中至少有一个应用实体(如SNMP、TELNET、FTP等)和一个表示实体(即ASN.1)。 表示实体定义了应用数据的抽象语法。 应用协议按照预先定义的抽象语法构造协议数据单元,用于交换信息。 表示实体则对应用层数据进行编码,将其转换成二进制的比特串进行传送。;图2-1 关于信息表示的通信系统模型;抽象语法独立于任何编码技术。 抽象语法要满足应用的需要,能够定义应用需要的数据类型和表示这些类型的值。 ASN.1是根据当前网络应用的需求制定的标准。 同等表示实体之间通信时对用户信息的描述和编码规则称为传输语法。 传输语法与抽象语法之间是多-多对应关系。 对传输语法的要求是支持对应的抽象语法。;ASN.1是由原CCITT和ISO共同开发的标准语言,可在系统间进行数据的传输。 在ASN.1中定义所需的数据结构类型,并将它们组成库。 表示层可以实现从通信线路上所用的外部数据格式到接收计算机所用的内部数据格式的转换。;当一个应用想发送一个数据结构时,可以将数据结构与其对应的ASN.1标识一起传给表示层。 以ASN.1定义作为索引,表示层便知道数据结构的域的类型及大小,从而对它们编码传输。 在另一端,接收表示层查看此数据结构的ASN.1 标识,从而了解数据结构的域的类型及大小。 抽象语法与一个能对其进行编码的传输语法的组合,就构成一个表示上下文。 表示上下文可以在连接建立时协商确定,也可以在通信过程中重新定义。;ASN.1的文本约定 (1)多个空格和空行等效于一个空格。 (2)用于表示值和字段的标识符、类型指针和模块名由大小写字母、数字和短线组成。 (3)标识符以小写字母开头。 (4)类型指针和模块名以大写字母开头。 (5)ASN.1定义的内部类型全部用大写字母表示。 (6)关键字全部用大写字母表示。 (7)注释以一对短线(--)开始,以一对短线或行尾结束。;在ASN.1中,每一个数据类型都有一个标签(tag) 标签有类型和值,数据类型由标签的类型和值唯一确定。 标签的类型分为以下4种: 通用标签:UNIVERSAL表示,由标准定义的。 应用标签:APPLICATION表示,是由某个具体应用定义的类型。 上下文专用标签:Context-Specific表示,这种标签在一定范围)中适用。 私有标签:PRIVATE表示,用户定义的标签。;ANSI.1定义的数据类型有20多种,标签类型都是UNIVERSAL,如表2-3所示。 可分为4大类。 简单类型:由单一成分构成的原子类型,包括INTEGER,BOOLEAN,... 构造类型:由两种以上成分构成的构造类型,包括SEQUENCE,SEQUENCE OF,... 标签类型:由已知类型定义的新类型。 其他类型:包括CHOICE和ANY两种类型。;;;1.简单类型 (1)INTEGER。 例2.1 Number ::=INTEGER (2)BOOLEAN。 例2.2 Married ::=BOOLEAN (3)REAL,实数类型,对精度没有限制,可以表示为科学计数法:M×BE,其中尾数M和指数E可以取任何正或负整数值,基数B可以取2或10。 (4)ENUMERATED,枚举类型,实际上是一组个数有限的整数值。可以给每个整型值赋予不同的意义。;例2.3 Week ::=ENUMERATED { Monday (1), Tuesday (2), Wednesday (3), Thursday (4), Friday (5), Saturday (6), Sunday (7) };例2.4 对于SNMP的MIB中,在获取响应信息中的错误状态如下所示。 ErrorStatus::= ENUMERATED { noError (0), tooBig (1),

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档