您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页TCP通讯数据包及其封装方法、校验系统、校验方法[发明专利]

TCP通讯数据包及其封装方法、校验系统、校验方法[发明专利]

来源:五一七教育网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 109995473 A(43)申请公布日 2019.07.09

(21)申请号 201811541192.1(22)申请日 2018.12.17

(71)申请人 芜湖智久机器人有限公司

地址 241000 安徽省芜湖市芜湖县安徽新

芜经济开发区东区自建厂房B11幢(72)发明人 梁锦 

(74)专利代理机构 芜湖众汇知识产权代理事务

所(普通合伙) 34128

代理人 曹宏筠(51)Int.Cl.

H04L 1/00(2006.01)H04L 29/06(2006.01)

权利要求书2页 说明书4页 附图2页

(54)发明名称

TCP通讯数据包及其封装方法、校验系统、校验方法(57)摘要

本发明涉及工业通讯技术领域,具体地说是一种TCP通讯数据包及其封装方法、校验系统、校验方法,其封装方法包括对有效数据经Json实例化后进行ASCII编码,并附上长度字节数组、异或校验字节数组、包头字节、起始符字节、包尾字节,其校验方法包括对长度字节数组、异或校验字节数组、包头字节、起始符字节、包尾字节进行检验;本发明和现有技术相比,在工业通讯场景中,可以实现兼容,并且传输数据的准确性、有效性可以接近于100%。可以保证数据协议的兼容性、准确性、有效性。CN 109995473 ACN 109995473 A

权 利 要 求 书

1/2页

1.一种TCP通讯数据包的封装方法,其特征在于,包括以下步骤:1)对TCP通讯中的有效数据进行json实例化,得到有效字符串;2)对所述有效字符串进行ASCII编码,得到有效数据字节数组;3)对所述有效数据字节数组的长度数值进行ASCII编码,得到长度字节数组;4)对所述有效数据字节数组中的数据进行异或校验,并对异或校验所得值进行ASCII编码,得到校验字节数组;

5)生成完整数据包,所述数据包包括:有效数据字节数组、长度字节数组、校验字节数组;

其中,所述步骤3)可以与步骤4)同时进行,或者步骤3)在步骤4)之后进行。2.一种TCP通讯数据包,其特征在于,所述完整数据包中还包括包头字节、包尾字节、起始符字节,所述有效数据字节数组位于所述起始符字节与所述包尾字节之间。

3.根据权利要求2所述的一种TCP通讯数据包,其特征在于,所述完整数据包中包括依次排列的包头字节、校验字节数组、长度字节数组、起始符字节、有效数据字节数组、包尾字节。

4.根据权利要求2或3所述的一种TCP通讯数据包,其特征在于,所述包头字节、包尾字节、起始符字节中的数据与所述有效数据字节数组中的任一数据均不相同。

5.根据权利要求2或3所述的一种TCP通讯数据包,其特征在于,所述包头字节、包尾字节、起始符字节均为ASCII控制字符,其中包头字节对应代表数据包的开始、起始符字节对应代表所述有效数据字节数组的开始、包尾字节对应代表数据包的结束。

6.一种TCP通讯数据包的校验系统,其特征在于,包括权利要求2-5任一项所述的数据包或包括权利要求1所述的一种TCP通讯数据包的封装方法封装的数据包,还包括:

数据接收模块,所述数据接收模块接收所述数据包,且对所述完整数据包进行解码识别,并判断相应的所述数据包是否满足预设条件,若满足预设条件则进行存储,若不满足,则进行剔除;

存储模块,所述存储模块存储所述数据接收模块接收的满足预设条件的所述数据包。7.一种TCP通讯数据包的校验方法,包括权利要求6所述的检验系统,其特征在于,还包括以下步骤:

1)TCP通讯中的数据接收模块接收所述完整数据包;2)所述数据接收模块对所述完整数据包进行解码识别,并判断相应的所述完整数据包是否满足预设条件;

3)若满足预设条件,则所述数据接收模块判定相应的所述完整数据包为有效数据包,将所述有效数据包保存至本地后转至步骤1);否则判定为无效数据包,予以剔除后转至步骤1)。

8.根据权利要求7所述的一种TCP通讯数据包的校验方法,其特征在于,所述步骤2)中所述的预设条件包括需同时满足的以下条件:

1)所述完整数据包中包括包头字节、起始符字节、包尾字节;

2)所述完整数据包中所述长度字节数组所表示的值与所述有效数据字节数组的实际长度相等;

3)所述完整数据包中所述校验字节数组所标识的值与接收到的所述有效数据字节数

2

CN 109995473 A

权 利 要 求 书

2/2页

组经异或校验后所得的值相等。

3

CN 109995473 A

说 明 书

TCP通讯数据包及其封装方法、校验系统、校验方法

1/4页

技术领域

[0001]本发明涉及工业通讯技术领域,具体地说是一种TCP通讯数据包及其封装方法、校验系统、校验方法。背景技术

[0002]目前,在工业控制TCP通讯中,由于通讯协议的经常修改,所以为保证不同版本的通讯协议的兼容性,采用一种兼容性强的数据包的封装格式显得尤重要。而通信数据又经常会出现粘包、少包的情况,因此亟需一种有效而兼容性强的数据包的校验方法来解决该问题,从而保证通信数据的兼容性、准确性、有效性。[0003]现有技术中使用socket技术实现TCP通讯时,将有效数据先采用json格式进行首次封包处理得到有效字符串数据,由于json序列化与反序列化的特性,可以实现传输协议数据的兼容性。然后再将该有效字符串数据进行ASCII编码转换成相应的字节数组。再将相应的字节数组按照指定的封装校验格式进行封装校验,将粘包、少包而导致的无效数据,进行清理,从而保证传输数据的准确性、有效性。[0004]但由于有效数据采用json格式字符串,所以导致传输的数据量增加,这对于需要大数据量的传输会带来很大的带宽负载压力。所以此封装校验方法适用于不需要大数据量传输、对数据协议兼容性要求高的数据通讯场景。[0005]因此,现有技术还有待发展。发明内容

[0006]鉴于上述现有技术的不足之处,本发明的目的在于提供一种TCP通讯数据包及其封装方法、校验系统、校验方法。旨在解决现有技术传输效率低、传输数据的兼容性、准确性、有效性不足的问题。

[0007]为了达到上述目的,本发明采取了以下技术方案:[0008]本发明提供一种TCP通讯数据包的封装方法,其特征在于,包括以下步骤:[0009]1)对TCP通讯中的有效数据进行json实例化,得到有效字符串;[0010]2)对所述有效字符串进行ASCII编码,得到有效数据字节数组;[0011]3)对所述有效数据字节数组的长度数值进行ASCII编码,得到长度字节数组;[0012]4)对所述有效数据字节数组中的数据进行异或校验,并对异或校验所得值进行ASCII编码,得到校验字节数组;[0013]5)生成完整数据包,所述数据包包括:有效数据字节数组、长度字节数组、校验字节数组;

[0014]其中,所述步骤3)可以与步骤4)同时进行,或者步骤3)在步骤4)之后进行。[0015]本发明还提供一种TCP通讯数据包,其特征在于,所述完整数据包中还包括包头字节、包尾字节、起始符字节,所述有效数据字节数组位于所述起始符字节与所述包尾字节之间。

4

CN 109995473 A[0016]

说 明 书

2/4页

进一步的,所述完整数据包中包括依次排列的包头字节、校验字节数组、长度字节

数组、起始符字节、有效数据字节数组、包尾字节。[0017]进一步的,所述包头字节、包尾字节、起始符字节中的数据与所述字节数组中的任一数据均不相同。[0018]进一步的,所述包头字节、包尾字节、起始符字节均为ASCII控制字符,其中包头字节对应代表数据包的开始、起始符字节对应代表所述有效数据字节数组的开始、包尾字节对应代表数据包的结束。

[0019]本发明还提供包括上述的数据包或包括上述的一种TCP通讯数据包的封装方法所封装的数据包,还包括:[0020]数据接收模块,所述数据接收模块接收所述数据包,且对所述完整数据包进行解码识别,并判断相应的所述数据包是否满足预设条件,若满足预设条件则进行存储,若不满足,则进行剔除;[0021]存储模块,所述存储模块存储所述数据接收模块接收的满足预设条件的所述数据包。

[0022]本发明还提供一种TCP通讯数据包的校验方法,包括权利要求6所述的校验系统,其特征在于,还包括以下步骤:

[0023]1)TCP通讯中的数据接收模块接收所述完整数据包;[0024]2)所述数据接收模块对所述完整数据包进行解码识别,并判断相应的所述完整数据包是否满足预设条件;

[0025]3)若满足预设条件,则所述数据接收模块判定相应的所述完整数据包为有效数据包,将所述有效数据包保存至本地后转至步骤1);否则判定为无效数据包,予以剔除后转至步骤1)。

[0026]进一步的,所述步骤2)中所述的预设条件包括需同时满足的以下条件:[0027]1)所述完整数据包中包括包头字节、起始符字节、包尾字节;

[0028]2)所述完整数据包中所述长度字节数组所表示的值与所述有效数据字节数组的实际长度相等;

[0029]3)所述完整数据包中所述校验字节数组所标识的值与接收到的所述有效数据字节数组经异或校验后所得的值相等。[0030]本发明与现有技术相比,在工业通讯场景中,可以实现兼容,并且传输数据的准确性、有效性可以接近于100%。可以保证数据协议的兼容性、准确性、有效性。附图说明

[0031]图1为本发明提供的方法流程图;

[0032]图2为本发明提供的TCP通讯数据包的封装方法流程图;[0033]图3为本发明提供的TCP通讯数据包的校验方法流程图。

具体实施方式

[0034]以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

5

CN 109995473 A[0035]

说 明 书

3/4页

实施例1

[0036]如图1~2所示,本发明提供一种TCP通讯数据包的封装方法,包括以下步骤:[0037]1)对TCP通讯中的实体类有效数据Data:{ID=1,Station=1,Point=1}进行json实例化,得到有效字符串:{\"ID\":1,\"Station\":1,\"Point\":2};[0038]2)对所述有效字符串进行ASCII编码,得到字节数组为:

[0039][0x7b,0x22,0x49,0x44,0x22,0x3a,0x31,0x2c,0x22,0x53,0x74,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x31,0x2c,0x22,0x50,0x6f,0x69,0x6e,0x74,0x22,0x3a,0x32,0x7d];

[0040]3)对所述有效数据字节数组的长度数值进行ASCII编码,得到长度字节数组为:[0x33,0x30];

[0041]4)对所述有效数据字节数组中的数据进行异或校验,并对异或校验所得值进行ASCII编码,得到校验字节数组为:[0x32,0x31];[0042]5)生成完整数据包为:

[0043][0x01,0x32,0x31,0x33,0x30,0x02,0x7b,0x22,0x49,0x44,0x22,0x3a,0x31,0x2c,0x22,0x53,0x74,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x31,0x2c,0x22,0x50,0x6f,0x69,0x6e,0x74,0x22,0x3a,0x32,0x7d,0x04];[0044]其中,所述步骤3)可以与步骤4)同时进行,或者步骤3)在步骤4)之后进行。[0045]其中,完整数据包中包括依次排列的包头字节、校验字节数组、长度字节数组、起始符字节、有效数据字节数组、包尾字节,包头字节为ASCII编码中意义为标题开始的0x01,起始符字节为ASCII编码中意义为本文开始的0x02,包尾字节为ASCII编码中意义为传输结束的0x04。

[0046]实施例2

[0047]如图3所示,本发明还提供一种上述完整数据包的校验系统,包括:[0048]数据接收模块,所述数据接收模块接收所述数据包,且对所述完整数据包进行解码识别,并判断相应的所述数据包是否满足预设条件,若满足预设条件则进行存储,若不满足,则进行剔除;[0049]存储模块,所述存储模块存储所述数据接收模块接收的满足预设条件的所述数据包。

[0050]本发明还提供一种上述完整数据包校验方法,包括上述的校验系统,其特征在于,还包括以下步骤:

[0051]1)TCP通讯中的数据接收模块接收所述完整数据包;[0052]2)所述数据接收模块对所述完整数据包进行解码识别,并判断相应的所述完整数据包是否满足预设条件;

[0053]3)若满足预设条件,则所述数据接收模块判定相应的所述完整数据包为有效数据包,将所述有效数据包保存至本地后转至步骤1);否则判定为无效数据包,予以剔除后转至步骤1)。

[0054]进一步的,所述步骤2)中所述的预设条件包括需同时满足的以下条件:[0055]1)所述完整数据包中包括包头字节0x01、起始符字节0x02、包尾字节0x04;[0056]2)所述完整数据包中所述长度字节数组[0x33,0x30]所表示的值为30,接收到的

6

CN 109995473 A

说 明 书

4/4页

有效数据字节数组的实际长度等于30;

[0057]3)所述完整数据包中所述校验字节数组为[0x32,0x31]所表示的值为21,接收到的有效数据字节数组经异或校验后所得的值等于21。

7

CN 109995473 A

说 明 书 附 图

1/2页

图1

图2

8

CN 109995473 A

说 明 书 附 图

2/2页

图3

9

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务