BER编码
BRE(basic enconding rules)是asn.1最早定义的编码规则
ASN.1采用数据类型和值,BER定义了值得编码传输格式,即传输语法
只有具体值才可以被传输,值也会属于不同数据类型,传输语法就是要为属于不同数据类型得值制定一套标准编码格式
BRE得任务:
将ASN.1定义得数据类型 得值编码成字节串
日常学习就用TLV来书写吧
- Value:是传输值得本身
- Tag:控制信息,用于表明传输得值属于那种数据类型
- Length:控制信息,表明值所占八位组(字节)得个数
TLV每个域都是一个八位组(字符串)
每一个V本身又可以是1个和多个TLV组,即V可以递归多个TLV组BER传输语法是基于三元组得(为了避免不同系统上得混淆,没用采用Byte为单位)
BER比特序列传输顺序:
八位组得最高有效位在最左边,最低有效位在最右边,传输顺序自最低有效位开始,到最高有效位结束
BER-Tag
Tag分为0-30和31以上两种格式
当标签号大于31,会将标签号全部置1,作为转义符,实际得标签号表示在后继得八位组,最左边一位,1表示不是最后一个,0表示为最后一个
有1表示后面还有八元组。第一位101表示5小于30就前面用10000表示。