- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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的编码为
您可能关注的文档
- 第四期冠心病教材课程.ppt
- 第四次课 第2章 节 AutoCAD2013入门 AutoCAD 2013中文版室内设计标准课件.pptx
- 第四章 光谱分析技术 知识与相关仪器分光光度计.ppt
- 第四章 MIS运行相关管理与发展趋势(相关管理信息系统原理及开发课件).ppt
- 第四章 MIS运行相关管理与发展趋势1(相关管理信息系统原理及开发课件).ppt
- 第四章 档案的编研 信息与档案相关管理 .pptx
- 第四章 节 医疗损害侵权责任法律制度 卫生法律法规第2版课件.pptx
- 第四章 节 蛋白质的折叠(Folding) 生物物理学课件.pptx
- 第四章 节 企业经营法律实务(上) 大学生创业法律实务课件.pptx
- 第四章 节 化学平衡Chemical equilibrium 物理化学课件.pptx
文档评论(0)