其他分享
首页 > 其他分享> > 看懂通信协议——TLV

看懂通信协议——TLV

作者:互联网

注:上篇转载博客(https://blog.csdn.net/qq_43296898/article/details/88822938)
主要介绍了TLV编码逐步进化和完善。下面主要介绍TLV编码方式!
一、 TLV编码介绍

       TLV是指由数据的类型Tag,数据的长度Length,数据的值Value组成的结构体,几乎可以描任意数据类型,TLV的Value也可以是一个TLV结构,正因为这种嵌套的特性,可以让我们用来包装协议的实现。
                            在这里插入图片描述

以下将分别针对Tag、Length、Value进行解说:

1、 Tag 描述Value的数据类型,TLV嵌套时可以用于描述消息的类型

在这里插入图片描述
Tag由一个或多个字节组成,上图描述首字节0~7位的具体含义

① Tag首节字说明

② Tag后续字节说明

       后续字节采用每个字节的0~6位(即7bit)来存储Tag Value, 第7位用来标识是否还有后续字节。

2、Length 描述Value的长度

       描述Value部分所占字节的个数,编码格式分两类:定长方式(DefiniteForm)和不定长方式(IndefiniteForm)。

       Length所在八位组固定编码为0x80,但在Value编码结束后以两个0x00结尾。这种方式使得可以在编码没有完全结束的情况下,可以先发送部分数据给对方。
在这里插入图片描述
3、Value 描述数据的值

       由一个或多个值组成 ,值可以是一个原始数据类型(Primitive Data),也可以是一个TLV结构(Constructed Data)

       ① Primitive Data 编码
       在这里插入图片描述
       ② Constructed Data 编码
       在这里插入图片描述
原文链接:https://my.oschina.net/maxid/blog/206546?tdsourcetag=s_pctim_aiomsg

标签:编码,TLV,通信协议,Value,Length,Tag,字节
来源: https://blog.csdn.net/qq_43296898/article/details/88824963