一、标签
1.B1
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | 描述 |
---|---|---|---|---|---|---|---|---|
x | x | 1 | x | x | x | x | x | 复合TLV |
x | x | x | 1 | 1 | 1 | 1 | 1 | 多字节标签 |
2.B2(存在条件:B1 & 0x1F == 0x1F)
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | 描述 |
---|---|---|---|---|---|---|---|---|
1 | x | x | x | x | x | x | x | 后面跟随标签第3字节 |
3.B3(存在条件:B2 & 0x80 == 0x80)
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | 描述 |
---|---|---|---|---|---|---|---|---|
1 | x | x | x | x | x | x | x | 后面跟随标签第4字节 |
4.B4(存在条件:B3 & 0x80 == 0x80)
取值任意
二、长度
1.B1
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | 描述 |
---|---|---|---|---|---|---|---|---|
0 | x | x | x | x | x | x | x | b7-b1表示长度 |
1 | x | x | x | x | x | x | x | b7-b1表示后面长度域字节数 |
2.单字节长度计算
长度 = B1
3.多字节长度计算
长度 = 大端排列的n个后续字节转换为整数。
例如 长度域为0x820120,那么长度 = 0x01*256 + 0x20 = 288。
三、数据
通过前面的长度域,得到数据域的范围。如果是复合TLV,那么数据域应由1个或多个TLV格式的数据拼接而成。
参考
文档信息
- 本文作者:itlgl
- 本文链接:https://itlgl.com/note/2021/01/09/issues-46/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)