- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
抽象语法表示ASN
显然,应用标签和字节串标签都编码了,因此它是构造类型。为了减少编码中的冗余信息,可使用隐含标签,重新定义如下: Password::=[APPLICATION 27] IMPLICIT OCTET STRING 则相应的编码为0101B 简单类型 5B 06 53 65 73 61 6D 65 从第一个字节看出它变为简单类型了,因为只有一种类型信息。 2.3.2 字段扩充 有两种字段需要扩充,一是当标签值大于30时类型字节需要扩充,二是当值部分大于一个字节的表示范围时长度字节需要扩充。对标签值的扩充方法如下:我们用5位表示0~30的编码,当标签值大于等于31时这5位置全1,作为转义符,实际的标签值编码表示在后续字节中。后续字节的左边第一位表示是否为最后一个扩充字节,只有最后一个扩充字节的左边第一位置0,其余扩充字节的左边第一位置1。这样,每个扩充字节只用了7位表示标签值的编码,可表示为下面的形式: ×××00000 ×××11110 ×××11111 用后续字节表示标签值 … 表示标签值0~30 例如,标签值10110010101111001可编码为 ×××11111 对长度字节的扩充方法是:小于127的数用长度字节的右边7位表示,最左边的一位置0。大于等于127的数用后续若干字节表示,原来的长度字节第一位置1,其余7位指明后续用于表示长度的字节数,即采用下面的形式: 1××××××× … 表示0~126 指明后续用于表示长度的字节数 例如,25510可表示为 11111111 值得注意的是,长度字节可表示的最大值为126,而不是127,值127是为以后扩充保留的。 按照以上规则,可以把图2.2表示的个人记录编码为图2.4所示的比特串。 图2.4 个人记录的编码 2.4 ASN.1宏定义 2.4.1 模块定义 模块(module)是ASN.1的基本构造单位,类似于C语言中的结构,是由一组类型定义和值定义组成的。比如,一个企业可以定义一个模块,一个协议可以定义一个模块,一个协议中的某个功能也可以定义成一个模块。模块定义的基本形式为: 2.4 ASN.1宏定义 模块定义的基本形式为:moduleIdentifier DEFINITIONS ::= BEGIN EXPORTS --定义本模块中可以被其它模块引用的内容 IMPORTS --定义本模块中引用其它模块中的内容 AssignmentList END --模块定义的所有类型、值和宏定义 模块名或模块标识符的第一字母要大写 RFC1156-MIB DEFINITIONS ::= BEGIN END IMPORTS mgmt, NetworkAddress, IpAddress,Counter, Gauge, TimeTicks FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212; mib OBJECT IDENTIFIER ::= {mgmt 1} system OBJECT IDENTIFIER ::= { mib 1 } interfaces OBJECT IDENTIFIER ::= { mib 2 } at OBJECT IDENTIFIER ::= { mib 3 } ip OBJECT IDENTIFIER ::= { mib 4 } icmp OBJECT IDENTIFIER ::= { mib 5 } tcp OBJECT IDENTIFIER ::= { mib 6 } udp
原创力文档


文档评论(0)