第2章 抽象语法表示ASN.1 计算机网络管理 教学课件.pptVIP

第2章 抽象语法表示ASN.1 计算机网络管理 教学课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 抽象语法表示ASN.1 计算机网络管理 教学课件

ASN.1 抽象语法表示 一种形式语言 提供统一的网络数据表示 通常用于定义应用数据的抽象语法和应用层协议数据单元的结构 使用基本编码规则BER转换成比特串 ASN.1定义例 student-record StudentRecord ::= SET { name OCTET STRING, student-class CHOICE {UnderGraduate, Graduate } } ? UnderGraduate ::= SEQUENCE { math-grade StudyGrade, physical-grade StudyGrade } ? Graduate ::= SEQUENCE { pass-at BOOLEAN, pass-ar BOOLEAN, degree-paper StudyGrade } 第一组:基本类型 包括BOOLEAN/INTEGER/BIT STRING/OCTET STRING/REAL/ENUMERATED 下面是定义枚举类型和定义整数类型的例子: EthernetAdapterStatus::=ENUMERATED{normal(0), degraded(1), offline(2),failed(3)} EthernetNumberCollisionsRange::=INTEGER{minimum(0), maximum(1000)} 符号::=表示产生式,读做“定义为”   4. 可用字符   这种方法只能用于字符串类型,限制可使用的字符集。下面是两个限制可用字符的例子: TouchToneButtons::=IA5String(FROM(0|1|2|3|4| 5|6|8|9|*|#)) DigitString::=IA5String(FROM(0|1|2|3|4| 5|6|8|9))   5. 限制大小   可以对5种类型限制其规模大小,例如限制比特串、字节串或字符串的长度,限制构成序列或集合的元素(同类型)个数等。例如X.25公共数据网的地址由5~14个数字组成,这个规定可用下面的定义表示:   It1DataNumber::=DigitString(SIZE(5..14))   下面的定义说明一个参数表包含最多12个参数:   ParameterList::=SET SIZE(0..12) OF Parameter   6. 内部子类型   这种方法可用于序列、集合和CHOICE类型。这是一种很复杂的子类型关系,下面用例子说明。假定有一种协议数据单元: PDU::=SET{alpha[0] INTEGER, beta [1] IA5String OPTIONAL, gamma[2] SEQUENCE OF Parameter,    delta[3] BOOLEAN}   下面定义的子类型测试协议数据单元要求布尔值必须是FALSE,整数值必须是负的:  TestPDU::=PDU(WITH COMPONENTS{....delta(FALSE),alpha(MIN.. 0)})   另外一个测试子类型要求beta参数必须出现,其值为5或12个字符组成的串:   FurtherTestPDU::=TestPDU(WITH COMPONENTS{....beta(SIZE 5|12) PRESENT}) 2.2.3 数据结构示例   下面是取自CCITT X.208的一个数据结构示例。 图2.2(a)是关于个人记录的非形式描述,其中包括姓名、头衔、雇员编号、雇佣日期、配偶姓名和子女数等6项信息,而且对每个子女也要给出姓名和出生日期。   图2.2(b)是用ASN.1描述个人记录的抽象语法。 雇员编号的定义为 EmployeeNumber::=[APPLICATION 2]IMPLICIT INTEGER Date类型被说明为字符串类型,注释YYYYMMDD提示了日期的书写格式 Name是序列类型,由3个元素组成,各个元素的名字分别为givenName、initial和 familyName ChildInformation是集合类型,其中的第一个元素没有名字,只有类型。第二个元素的名字为dateOfBirth,其类型为Date。Date类型还出现在PersonnelRecord的定义中,在这两个地方被分别赋予上下文专用的标签[0]和[1] 图2.2 ASN.1表示的抽象语法 (a) 个人记录;(

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档