CN1933479A - 通信***中传输数据的方法及其*** - Google Patents
通信***中传输数据的方法及其*** Download PDFInfo
- Publication number
- CN1933479A CN1933479A CN 200510037395 CN200510037395A CN1933479A CN 1933479 A CN1933479 A CN 1933479A CN 200510037395 CN200510037395 CN 200510037395 CN 200510037395 A CN200510037395 A CN 200510037395A CN 1933479 A CN1933479 A CN 1933479A
- Authority
- CN
- China
- Prior art keywords
- data
- length
- type
- value
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Communication Control (AREA)
Abstract
本发明涉及通信方法,公开了一种通信***中传输数据的方法及其***,使得增强了TLV编码方式的效率。本发明中,收发数据时根据数据的类型判断是否为固定长度,如果是固定长度则以“类型+值”的方式进行编解码,如果是可变长度则以“类型+长度+值”的方式进行编解码。
Description
技术领域
本发明涉及通信技术,特别涉及通信***中的编码技术。
背景技术
在无线通讯***中,参与通信的双方或者多方需要按照一个事先约定好的操作流程来发送和接收数据;同时需要按照一个事先约定好的方式来解读接收到的数据。我们把这些事先预定好的操作流程和数据解读方式统称为协议。协议详细规定了操作流程中每一个步骤的执行顺序,同时还规定了所传数据每个比特、每个字节的含义。因此只有采用相同协议的实体之间才能进行有效的数据传输。
TLV是一种在协议中常用的数据编码方式,它其实是三个英文单词的首字母缩写:Type(数据的类型)、Length(数据的长度)、Value(数据的值)。
Type是为了能够让机器或程序识别该数据的含义,知道该数据区别与其它数据的功能或作用而进行的编号,也就是说,Type表示的是数据的含义。
Length表示的是该数据的长度。由于每个数据都是由一系列二进制位构成,数据的长度其实也就是该数据所占二进制位的个数。在传输和处理数据时都是以8个二进制数的整倍数即字节来进行的,因此长度的单位定义为字节。
Value表示的是数据的值,也就是数据的内容。
可见,TLV编码其实就是一种通过三元组(Type、Length、Value)来描述数据本身所要传递的信息的编码方式。TLV编码的定义方法通常使用表格的方式,如表1所示。
类型(Type) | 长度(Length) | 值(Value) | 含义 |
101102103104105 | 不确定1111 | “韦尔-史密斯”“男”“180”“30”“75” | 姓名(字符串)性别身高(cm)年龄(年)体重(kg) |
类型为101的数据表示该数据的含义是以字符串表示的姓名,长度不确定,值为“韦尔-史密斯”;类型为102的数据表示该数据的含义是性别,长度为1,值为“男”;类型为103的数据表示该数据的含义是以cm为单位的身高,长度为1,值为“180”......依此类推,可以获知在表格中所定义的所有TLV编码。
目前,如果通信双方是通过TLV编码来传输数据,那么,数据的发送方与接收方必须分别保存一个TLV定义表。接下来,具体介绍通信双方传输数据的过程。
首先,数据发送方确定将要发送的数据,并将该数据按照TLV的定义表进行编码后发送。比如说,发送方将要发送姓名、年龄以及性别,那么,按照表1进行TLV编码后的示意图如图1所示,将该编码后的数据发送。
然后,数据接收方接收该数据。
最后,接收方将接收到的编码数据与保存的TLV定义表进行对照,完成TLV解码,获得发送方发送的数据信息,完成一个TLV流程。比如说,接收方接收到的数据如图1所示。由于接收方同样保存了如表1所示的TLV定义表,因此,接收方读取到接收数据的第一个字节值为101时,可以通过查询表1得知101的含义是代表姓名,是一个长度不确定的字符串。然后读取接收数据的第二个字节6,知道后续的六个字节是名字的具体取值;然后继续读取接收数据的第九个字节104,通过查询表1可以获知104的含义是代表年龄,长度由第十个字节表示,长度为1,即第十一个字节表示年龄的取值为“30”;然后继续读取到第十二个字节的值为102,通过查询查表1得知102表示的是性别,其长度由第十三个字节表示,长度为1,即第十四个字节表示姓名的取值为“男”。所以,接收方可以正确获得发送方发送的数据信息:
姓名:韦尔-史密斯
年龄:30
性别:男
在实际应用中,上述方案存在以下问题:采用TLV编码方式的效率比较低。并且,经过TLV编码的数据中存在不必要的字节,在传输中浪费了空口资源。
造成这种情况的主要原因在于,当接收方接收到经过TLV编码的数据后,是通过读取长度域的字节值获取所传数据的长度。但实际上,由于接收方同样保存有TLV定义表,因此,当所传数据的长度是固定长度的时候,通过读取类型值并查询TLV定义表后,同样可以获取所传数据的长度,因而并不需要另外使用一个专门的长度域来指示数据的长度。可见,只有当所传数据的长度是不确定的时候,才需要使用长度域来告诉接收方当前该数据的实际长度。
但在现有技术中,无论所传数据的长度是否固定,都需要长度域的字节来定义该数据的长度,使得在编码时的效率比较低并且在传输过程中存在不必要的字节,浪费了空口资源。
发明内容
有鉴于此,本发明的主要目的在于提供一种通信***中传输数据的方法,使得能够提高TLV编码方式的效率。
为实现上述目的,本发明提供了一种通信***中传输数据的方法,包含以下步骤:
发送方根据待发数据的类型判断该待发数据是否应为固定长度,如果是则使用“类型+值”的方式对该待发数据进行编码以得到第一编码数据,否则采用“类型+长度+值”的方式对该待发数据进行编码以得到第二编码数据;
接收方读取所收第一编码数据或第二编码数据的类型后,根据读取的类型判断该第一编码数据或第二编码数据是否应为固定长度,如果是则根据预先设定的该类型的长度读取该第一编码数据的值,否则先读取该第二编码数据的长度,再根据所读取的长度读取该第二编码数据的值。
其中,所述接收方根据所读取的第一编码数据或第二编码数据类型查寻类型长度和值的定义表,从查寻结果获知所读取的第一编码数据或第二编码数据类型是否为固定长度,以及为固定长度时的具体数据长度。
此外在所述方法中,所述类型长度和值的定义表至少部分地包含类型和长度两个字段,该定义表中定义了每一类需要待发数据的类型代码及相应的数据长度。
此外在所述方法中,所述待发数据及编码数据的类型所对应的数据长度由传输该数据的协议预先规定。
此外在所述方法中,所述待发数据是固定长度或可变长度的。
本发明还提供了一种通信***中传输数据的***,发送方包含:
存储模块,其中保存有待发数据的类型和长度的定义;
编码模块,用于根据待发数据的类型从发送方的存储模块中查找对应的长度,如果查到的是固定长度则采用“类型+值”的方式对该待发数据进行编码,如果查到的是可变长度则采用“类型+长度+值”的方式对该待发数据进行编码;
发送模块,用于将经所述编码模块编码后的编码数据发送到接收方;
接收方包含:
存储模块,其中保存有编码数据的类型和长度的定义;
解码模块,用于根据所读取的编码数据的类型从接收方的存储模块查找对应的长度,如果查到的是固定长度则根据查找到的长度读取该编码数据的值,如果查到的是可变长度则先读取该编码数据的长度,再根据所读取的长度读取该编码数据的值;
接收模块,用于接收来自发送方的编码数据供所述解码模块读取。
通过比较可以发现,本发明的技术方案与现有技术的主要区别在于,收发数据时根据数据的类型判断是否为固定长度,如果是固定长度则以“类型+值”(TV)的方式进行编解码,如果是可变长度则以“类型+长度+值”(TLV)的方式进行编解码。
这种技术方案上的区别,带来了较为明显的有益效果,即有效地提高了TLV编码方式的效率,对于空口资源非常宝贵的无线通信***尤其具有重要的意义。这是因为对固定长度的数据类型使用TV方式进行编解码后,可以省掉指示数据长度的字节,所以编码的效率提高了。如果传输的数据中固定长度的数据类型较多,会节省下相当可观的带宽。
附图说明
图1是根据现有技术中数据进行TLV编码后的示意图;
图2是根据本发明的一较佳实施方式的通信***中传输数据的方法中,对可变长度数据进行TLV编码示意图;
图3是根据本发明的一较佳实施方式的通信***中传输数据的方法中,对固定长度数据进行TV编码示意图;
图4是根据本发明的一较佳实施方式的通信***中传输数据的方法中,对固定长度数据和可变长度数据编码合并后的数据示意图;
图5是根据本发明的一较佳实施方式的通信***中传输数据的方法流程示意图;
图6是根据本发明的一较佳实施方式的通信***中传输数据的***结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
总的来说,本发明的原理在于,在发送端判断需要发送的数据是否为固定长度,如果是,则使用TV编码发送,否则使用TLV编码发送。在接收端根据数据的类型判断是否为固定长度,如果是,则从TLV表查询其长度,否则,通过读取长度域的值获取数据的长度。由于对固定长度的数据使用TV方式编解码,因此节省了指示数据长度的字节,从而有效提高了TLV编码方式的效率,对空口资源宝贵的无线通信***有重要意义。
如图5所示为本发明的第一实施方式的通信***中传输数据的方法。需要指出的是,在本实施方式中,需要传输的数据含固定长度的以及可变长度的。
首先,在步骤510,发送方根据待发数据的类型判断该数据是否应为固定长度。如果是,则执行步骤520,使用“类型+值”的方式对该数据进行编码,否则,执行步骤530,采用“类型+长度+值”的方式对该数据进行编码。
由此,本实施方式在对待发数据进行编码前,先将其分为两类:固定长度的待发数据和可变长度的待发数据,对固定长度的待发数据省略长度域,而对可变长度的待发数据,通过长度域指示数据的实际长度。本领域一般技术人员能够理解,这样做能够有效节省数据用于指示固定长度的数据的数据长度的字节,提高编码效率。
举例来说,发送端待发数据为:
-姓名:韦尔-史密斯
-年龄:30
-性别:男
首先对待发数据进行分类,其中,
可变长度类:姓名
固定长度类:年龄、性别
然后对两类数据分别采用TLV编码和TV编码,编码结果如图2和图3所示,合并后如图4所示。
此后,如图5所示,进入步骤540,发送方将编码后的数据发送给接收方。
接着,在步骤550,接收方先读取所收编码数据的第一个字节的值,得到数据的类型域。本实施例中,第一个字节的值为101。
此后,在步骤560,接收方根据读取的类型101,查询本地保存的TLV定义表,判断该数据是否应为固定长度,换句话说,根据查寻结果获知所读取的数据类型是否为固定长度,并且获知该数据为固定长度时的具体数据长度。如果是固定长度,则执行步骤570,否则,执行步骤580。
需要指出的是,在本实施例中,TLV定义表至少部分地包含类型(Type)和长度(Length)两个字段,其中定义了每一类需要传输的数据的类型代码及相应的数据长度。在本实施例中,通过查询本地保存的TLV定义表,可以知道类型101的数据是一个长度不确定的字符串,即,需要通过读取长度域来获知具体长度,因此将执行步骤580。
在步骤580,先读取类型域后的一个字节的值,获取该数据的实际长度,再根据该长度读取该数据的具体取值。具体的说,读取图4中第二个字节的值6,也就是说,后续6个字节是字符串,读取后续6个字节后便完成了对姓名信息的解密。
然后再读取第九个字节的值104,通过查询本地保存的TLV表,判定该数据为固定长度。则执行步骤560,通过查表知道该数据是一个表示年龄的固定长度的数据,其长度为1。在这种情况下根据该长度读取该数据的具体取值。也就是说,直接读取第十个字节的值作为年龄域的值。类似的方式可以获得表示性别的值,在此不做赘述。至此接收端完成了对TLV编码数据的解码操作,正确地获得了发送端发送的信息。
由此可见,本发明对固定长度的数据类型使用TV方式进行编解码,节省了指示数据长度的字节,因此提高了编码效率。本领域一般技术人员能够理解,如果传输的数据中固定长度的数据类型较多,会节省下相当可观的带宽。
本发明中,数据类型所对应的数据长度由传输该数据的协议预先规定。
下面结合附图6,对本发明的一较佳实施方式的通信***中传输数据的***进行说明。
如图6所示,在该***中包含两个部分:发送方与接收方。
在发送方中包含存储模块、编码模块以及发送模块。其中,存储模块用于保存待发数据的类型和长度的定义;编码模块用于根据待发数据的类型从发送方的存储模块中查找对应的长度,如果查到的是固定长度则采用“类型+值”的方式对该待发数据进行编码,如果查到的是可变长度则采用“类型+长度+值”的方式对该待发数据进行编码;发送模块用于将经过编码模块编码后的编码数据发送到接收方。
在接收方中包含存储模块、解码模块以及接收模块。其中,存储模块用于保存编码数据的类型和长度的定义;解码模块用于根据所读取的编码数据的类型从接收方的存储模块中查找对应的长度,如果查到的是固定长度则根据查找到的长度读取该编码数据的值,如果查到的是可变长度则先读取该编码数据的长度,再根据所读取的长度读取该编码数据的值;接收模块用于接收来自发送方的编码数据供所述解码模块读取。
接下来,简单描述一下各模块间的动态工作过程。
发送方的编码模块接收到待发数据后,先根据待发数据的类型从发送方的存储模块中查找对应的长度,再根据查找到的对应长度情况对该待发数据进行编码。比如说,在发送方的存储模块中,与该待发数据的类型相对应的长度是固定长度,则采用“类型+值”的方式对该待发数据进行编码,如果在发送方的存储模块中,与该待发数据的类型相对应的长度是可变长度,则采用“类型+长度+值”的方式对该待发数据进行编码。
发送方的编码模块对该待发数据进行编码后,通过发送方的发送模块,将该编码数据发送给接收方。
接收方的接收模块接收到该编码数据后供接收方的解码模块读取。该解码模块先根据所读取到的编码数据的类型从接收方的存储模块查找对应的长度,再根据查找到的对应长度情况对该编码数据进行解码。比如说,在接收方的存储模块中,与该编码数据的类型相对应的长度是固定长度,则根据查找到的长度读取该编码数据的值,如果在接收方的存储模块中,与该编码数据的类型相对应的长度是可变长度,则先读取该编码数据的长度,再根据所读取的长度读取该编码数据的值。
接收方的解码模块对编码数据进行解码后,将解码后的数据发送出去。
上述仅为本发明的较佳实施方式,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (6)
1.一种通信***中传输数据的方法,其特征在于,包含以下步骤:
发送方根据待发数据的类型判断该待发数据是否应为固定长度,如果是则使用“类型+值”的方式对该待发数据进行编码以得到第一编码数据,否则采用“类型+长度+值”的方式对该待发数据进行编码以得到第二编码数据;
接收方读取所收第一编码数据或第二编码数据的类型后,根据读取的类型判断该第一编码数据或第二编码数据是否应为固定长度,如果是则根据预先设定的该类型的长度读取该第一编码数据的值,否则先读取该第二编码数据的长度,再根据所读取的长度读取该第二编码数据的值。
2.根据权利要求1所述的通信***中传输数据的方法,其特征在于,所述接收方根据所读取的第一编码数据或第二编码数据类型查寻类型长度和值的定义表,从查寻结果获知所读取的第一编码数据或第二编码数据类型是否为固定长度,以及为固定长度时的具体数据长度。
3.根据权利要求2所述的通信***中传输数据的方法,其特征在于,所述类型长度和值的定义表至少部分地包含类型和长度两个字段,该定义表中定义了每一类编码数据的类型代码及相应的数据长度。
4.根据权利要求1所述的通信***中传输数据的方法,其特征在于,所述待发数据和编码数据的类型所对应的数据长度由传输该数据的协议预先规定。
5.根据权利要求1所述的通信***中传输数据的方法,其特征在于,所述待发数据是固定长度或可变长度的。
6.一种通信***中传输数据的***,其特征在于,发送方包含:
存储模块,其中保存有待发数据的类型和长度的定义;
编码模块,用于根据待发数据的类型从发送方的存储模块中查找对应的长度,如果查到的是固定长度则采用“类型+值”的方式对该待发数据进行编码,如果查到的是可变长度则采用“类型+长度+值”的方式对该待发数据进行编码;
发送模块,用于将经所述编码模块编码后的编码数据发送到接收方;
接收方包含:
存储模块,其中保存有编码数据的类型和长度的定义;
解码模块,用于根据所读取的编码数据的类型从接收方的存储模块中查找对应的长度,如果查到的是固定长度则根据查找到的长度读取该编码数据的值,如果查到的是可变长度则先读取该编码数据的长度,再根据所读取的长度读取该编码数据的值;
接收模块,用于接收来自发送方的编码数据供所述解码模块读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510037395 CN1933479A (zh) | 2005-09-16 | 2005-09-16 | 通信***中传输数据的方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510037395 CN1933479A (zh) | 2005-09-16 | 2005-09-16 | 通信***中传输数据的方法及其*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1933479A true CN1933479A (zh) | 2007-03-21 |
Family
ID=37879095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510037395 Pending CN1933479A (zh) | 2005-09-16 | 2005-09-16 | 通信***中传输数据的方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1933479A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179580B (zh) * | 2007-12-12 | 2010-08-11 | 北京北方烽火科技有限公司 | 一种用于实现WiMAX***消息编解码的方法 |
CN102843345A (zh) * | 2011-06-24 | 2012-12-26 | 中怡(苏州)科技有限公司 | 远程沟通方法及其计算机程序产品 |
CN103297183A (zh) * | 2012-03-05 | 2013-09-11 | 腾讯科技(深圳)有限公司 | 数据通信方法及装置 |
CN106254392A (zh) * | 2016-09-28 | 2016-12-21 | 天津轻工职业技术学院 | 基于动态可自定义的exTLV 报文传输协议的通信方法 |
CN107315623A (zh) * | 2017-06-21 | 2017-11-03 | 广州华多网络科技有限公司 | 一种上报统计数据的方法和装置 |
CN107995206A (zh) * | 2017-12-13 | 2018-05-04 | 大唐融合通信股份有限公司 | 用于工业大数据的tlv通信协议格式的实现装置及方法 |
-
2005
- 2005-09-16 CN CN 200510037395 patent/CN1933479A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179580B (zh) * | 2007-12-12 | 2010-08-11 | 北京北方烽火科技有限公司 | 一种用于实现WiMAX***消息编解码的方法 |
CN102843345A (zh) * | 2011-06-24 | 2012-12-26 | 中怡(苏州)科技有限公司 | 远程沟通方法及其计算机程序产品 |
US9065789B2 (en) | 2011-06-24 | 2015-06-23 | Sernet (Suzhou) Technologies Corporation | Remote communication method |
CN102843345B (zh) * | 2011-06-24 | 2015-07-22 | 中磊电子(苏州)有限公司 | 远程沟通方法及其计算机程序产品 |
CN103297183A (zh) * | 2012-03-05 | 2013-09-11 | 腾讯科技(深圳)有限公司 | 数据通信方法及装置 |
CN103297183B (zh) * | 2012-03-05 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 数据通信方法及装置 |
CN106254392A (zh) * | 2016-09-28 | 2016-12-21 | 天津轻工职业技术学院 | 基于动态可自定义的exTLV 报文传输协议的通信方法 |
CN107315623A (zh) * | 2017-06-21 | 2017-11-03 | 广州华多网络科技有限公司 | 一种上报统计数据的方法和装置 |
CN107315623B (zh) * | 2017-06-21 | 2020-08-11 | 广州华多网络科技有限公司 | 一种上报统计数据的方法和装置 |
CN107995206A (zh) * | 2017-12-13 | 2018-05-04 | 大唐融合通信股份有限公司 | 用于工业大数据的tlv通信协议格式的实现装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1154287C (zh) | 用于选择性重发协议的序列号码范围扩展方法和*** | |
CN1933479A (zh) | 通信***中传输数据的方法及其*** | |
CN103475448B (zh) | 用于确定传输块大小的方法和使用其的信号传送方法 | |
CN1174588C (zh) | 分组接收装置和分组传输方法 | |
EP1933466A3 (en) | Turbo-coding with staged data transmission and processing | |
CN1335002A (zh) | 在冗余度增量通信***中可以对数据块进行合并的信令方法 | |
CN1237722C (zh) | 通信***中收缩编码码元的方法和装置 | |
CN1478256A (zh) | 压缩数据包的方法 | |
CN101044710A (zh) | 对无线通信***中的上行链路短长度数据进行格式化和编码的方法 | |
CN1459179A (zh) | 用于网络协议的报头压缩方法 | |
CN101034953A (zh) | 应用低密度奇偶校验码进行数据传输的方法 | |
CN1529944A (zh) | 在无线分组通信网络上传输实时数据的方法 | |
CN103036641B (zh) | 数据交换方法、***及反序列化方法 | |
WO2023088021A1 (zh) | 一种基于预设规则的数据压缩方法、装置、设备和介质 | |
CN1422471A (zh) | 错误校正解码方法 | |
CN1252187A (zh) | 用于编码数据序列的一种方法和一种设备 | |
CN1748369A (zh) | 用于文本数据压缩的方法和设备 | |
CN1747568A (zh) | 基站中多用户反馈信息的分类组合传送方法 | |
CN117240409A (zh) | 一种用于智能手机与智能穿戴设备的数据处理方法 | |
CN1645750A (zh) | 一种变长码的编码和解码方法 | |
CN1881866A (zh) | 数据传输错误监测与纠正的方法及其架构 | |
CN1845535A (zh) | 一种消息匹配的方法及*** | |
CN1551512A (zh) | Cdma接收机及判定传输格式组合指示符候选者的方法 | |
WO2018171764A1 (zh) | 一种构造极化码序列的方法及装置 | |
CN1541475A (zh) | 利用周期重复序列压缩通过udp传输snmp消息的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20070321 |