第2章 抽象语法表示ASN.1 计算机网络相关管理 .pptVIP

第2章 抽象语法表示ASN.1 计算机网络相关管理 .ppt

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

  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) 个人记录;(b) 个人记录的抽象语法;(c) 个人记录的一个值 2.3 基本编码规则 2.3.1 简单编码   基本编码规则(Basic Encoding Rule)把ASN.1表示的抽象类型值编码为字节串,这种字节串的结构为类型-长度-值,简称TLV(Type-Length-Value),而且值部分还可以递归地再编码为TLV结构,这样就具有了表达复杂结构的能力。 图2.3 传输语法的第一个字节   编码的第一个字节表示ASN.1类型或用户定义的类型,其结构如图2.3所示。前两位用于区分4种标签;第三位用于区分简单类型和构造类型;其余5位表示标签的值,如果标签的值大于30,则这5位为全1,标签值表示在后续字节中。关于标签值字段扩充的方法稍后说明,这里先介绍几个简单编码例,其中的数值都是十六进制数。   例2.1 布尔类型有两个值FALSE和TRUE,都用一个字节表示,FALSE是00,TRUE是FF。布尔类型是简单类型,标签为UNIVERSAL 1,因此FALSE编码为 01 01 00   而TRUE编码为 01 01 FF 其中第二个字节指明值部分的长度为1个字节。   例2.2 十进制数256的编码为 02 02 01 00   最后两个字节表示十进制值256。   例2.3 比特串10101的值在传输时要占用一个字节,5个比特靠左存放,右边3位未用,因此在比特串编码时要用一个字节说明未使用的比特数。于是对10101的编码为

文档评论(0)

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

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

1亿VIP精品文档

相关文档