CN109995473A - Tcp通讯数据包及其封装方法、校验系统、校验方法 - Google Patents
Tcp通讯数据包及其封装方法、校验系统、校验方法 Download PDFInfo
- Publication number
- CN109995473A CN109995473A CN201811541192.1A CN201811541192A CN109995473A CN 109995473 A CN109995473 A CN 109995473A CN 201811541192 A CN201811541192 A CN 201811541192A CN 109995473 A CN109995473 A CN 109995473A
- Authority
- CN
- China
- Prior art keywords
- byte
- data
- packet
- tcp communication
- check
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0014—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明涉及工业通讯技术领域,具体地说是一种TCP通讯数据包及其封装方法、校验系统、校验方法,其封装方法包括对有效数据经Json实例化后进行ASCII编码,并附上长度字节数组、异或校验字节数组、包头字节、起始符字节、包尾字节,其校验方法包括对长度字节数组、异或校验字节数组、包头字节、起始符字节、包尾字节进行检验;本发明和现有技术相比,在工业通讯场景中,可以实现兼容,并且传输数据的准确性、有效性可以接近于100%。可以保证数据协议的兼容性、准确性、有效性。
Description
技术领域
本发明涉及工业通讯技术领域,具体地说是一种TCP通讯数据包及其封装方法、校验系统、校验方法。
背景技术
目前,在工业控制TCP通讯中,由于通讯协议的经常修改,所以为保证不同版本的通讯协议的兼容性,采用一种兼容性强的数据包的封装格式显得尤重要。而通信数据又经常会出现粘包、少包的情况,因此亟需一种有效而兼容性强的数据包的校验方法来解决该问题,从而保证通信数据的兼容性、准确性、有效性。
现有技术中使用socket技术实现TCP通讯时,将有效数据先采用json格式进行首次封包处理得到有效字符串数据,由于json序列化与反序列化的特性,可以实现传输协议数据的兼容性。然后再将该有效字符串数据进行ASCII编码转换成相应的字节数组。再将相应的字节数组按照指定的封装校验格式进行封装校验,将粘包、少包而导致的无效数据,进行清理,从而保证传输数据的准确性、有效性。
但由于有效数据采用json格式字符串,所以导致传输的数据量增加,这对于需要大数据量的传输会带来很大的带宽负载压力。所以此封装校验方法适用于不需要大数据量传输、对数据协议兼容性要求高的数据通讯场景。
因此,现有技术还有待发展。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种TCP通讯数据包及其封装方法、校验系统、校验方法。旨在解决现有技术传输效率低、传输数据的兼容性、准确性、有效性不足的问题。
为了达到上述目的,本发明采取了以下技术方案:
本发明提供一种TCP通讯数据包的封装方法,其特征在于,包括以下步骤:
1)对TCP通讯中的有效数据进行json实例化,得到有效字符串;
2)对所述有效字符串进行ASCII编码,得到有效数据字节数组;
3)对所述有效数据字节数组的长度数值进行ASCII编码,得到长度字节数组;
4)对所述有效数据字节数组中的数据进行异或校验,并对异或校验所得值进行ASCII编码,得到校验字节数组;
5)生成完整数据包,所述数据包包括:有效数据字节数组、长度字节数组、校验字节数组;
其中,所述步骤3)可以与步骤4)同时进行,或者步骤3)在步骤4)之后进行。
本发明还提供一种TCP通讯数据包,其特征在于,所述完整数据包中还包括包头字节、包尾字节、起始符字节,所述有效数据字节数组位于所述起始符字节与所述包尾字节之间。
进一步的,所述完整数据包中包括依次排列的包头字节、校验字节数组、长度字节数组、起始符字节、有效数据字节数组、包尾字节。
进一步的,所述包头字节、包尾字节、起始符字节中的数据与所述字节数组中的任一数据均不相同。
进一步的,所述包头字节、包尾字节、起始符字节均为ASCII控制字符,其中包头字节对应代表数据包的开始、起始符字节对应代表所述有效数据字节数组的开始、包尾字节对应代表数据包的结束。
本发明还提供包括上述的数据包或包括上述的一种TCP通讯数据包的封装方法所封装的数据包,还包括:
数据接收模块,所述数据接收模块接收所述数据包,且对所述完整数据包进行解码识别,并判断相应的所述数据包是否满足预设条件,若满足预设条件则进行存储,若不满足,则进行剔除;
存储模块,所述存储模块存储所述数据接收模块接收的满足预设条件的所述数据包。
本发明还提供一种TCP通讯数据包的校验方法,包括权利要求6所述的校验系统,其特征在于,还包括以下步骤:
1)TCP通讯中的数据接收模块接收所述完整数据包;
2)所述数据接收模块对所述完整数据包进行解码识别,并判断相应的所述完整数据包是否满足预设条件;
3)若满足预设条件,则所述数据接收模块判定相应的所述完整数据包为有效数据包,将所述有效数据包保存至本地后转至步骤1);否则判定为无效数据包,予以剔除后转至步骤1)。
进一步的,所述步骤2)中所述的预设条件包括需同时满足的以下条件:
1)所述完整数据包中包括包头字节、起始符字节、包尾字节;
2)所述完整数据包中所述长度字节数组所表示的值与所述有效数据字节数组的实际长度相等;
3)所述完整数据包中所述校验字节数组所标识的值与接收到的所述有效数据字节数组经异或校验后所得的值相等。
本发明与现有技术相比,在工业通讯场景中,可以实现兼容,并且传输数据的准确性、有效性可以接近于100%。可以保证数据协议的兼容性、准确性、有效性。
附图说明
图1为本发明提供的方法流程图;
图2为本发明提供的TCP通讯数据包的封装方法流程图;
图3为本发明提供的TCP通讯数据包的校验方法流程图。
具体实施方式
以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
如图1~2所示,本发明提供一种TCP通讯数据包的封装方法,包括以下步骤:
1)对TCP通讯中的实体类有效数据Data:{ID=1,Station=1,Point=1}进行json实例化,得到有效字符串:{"ID":1,"Station":1,"Point":2};
2)对所述有效字符串进行ASCII编码,得到字节数组为:
[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];
3)对所述有效数据字节数组的长度数值进行ASCII编码,得到长度字节数组为:[0x33,0x30];
4)对所述有效数据字节数组中的数据进行异或校验,并对异或校验所得值进行ASCII编码,得到校验字节数组为:[0x32,0x31];
5)生成完整数据包为:
[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];
其中,所述步骤3)可以与步骤4)同时进行,或者步骤3)在步骤4)之后进行。
其中,完整数据包中包括依次排列的包头字节、校验字节数组、长度字节数组、起始符字节、有效数据字节数组、包尾字节,包头字节为ASCII编码中意义为标题开始的0x01,起始符字节为ASCII编码中意义为本文开始的0x02,包尾字节为ASCII编码中意义为传输结束的0x04。
实施例2
如图3所示,本发明还提供一种上述完整数据包的校验系统,包括:
数据接收模块,所述数据接收模块接收所述数据包,且对所述完整数据包进行解码识别,并判断相应的所述数据包是否满足预设条件,若满足预设条件则进行存储,若不满足,则进行剔除;
存储模块,所述存储模块存储所述数据接收模块接收的满足预设条件的所述数据包。
本发明还提供一种上述完整数据包校验方法,包括上述的校验系统,其特征在于,还包括以下步骤:
1)TCP通讯中的数据接收模块接收所述完整数据包;
2)所述数据接收模块对所述完整数据包进行解码识别,并判断相应的所述完整数据包是否满足预设条件;
3)若满足预设条件,则所述数据接收模块判定相应的所述完整数据包为有效数据包,将所述有效数据包保存至本地后转至步骤1);否则判定为无效数据包,予以剔除后转至步骤1)。
进一步的,所述步骤2)中所述的预设条件包括需同时满足的以下条件:
1)所述完整数据包中包括包头字节0x01、起始符字节0x02、包尾字节0x04;
2)所述完整数据包中所述长度字节数组[0x33,0x30]所表示的值为30,接收到的有效数据字节数组的实际长度等于30;
3)所述完整数据包中所述校验字节数组为[0x32,0x31]所表示的值为21,接收到的有效数据字节数组经异或校验后所得的值等于21。
Claims (8)
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)所述完整数据包中所述校验字节数组所标识的值与接收到的所述有效数据字节数组经异或校验后所得的值相等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811541192.1A CN109995473A (zh) | 2018-12-17 | 2018-12-17 | Tcp通讯数据包及其封装方法、校验系统、校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811541192.1A CN109995473A (zh) | 2018-12-17 | 2018-12-17 | Tcp通讯数据包及其封装方法、校验系统、校验方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109995473A true CN109995473A (zh) | 2019-07-09 |
Family
ID=67129048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811541192.1A Withdrawn CN109995473A (zh) | 2018-12-17 | 2018-12-17 | Tcp通讯数据包及其封装方法、校验系统、校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995473A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597644A (zh) * | 2019-09-10 | 2019-12-20 | 深圳市元征科技股份有限公司 | 数据流传输方法、传输装置、电子设备及存储介质 |
CN110995686A (zh) * | 2019-11-26 | 2020-04-10 | 珠海泰芯半导体有限公司 | 一种软件通信协议的校验方法 |
CN117114032A (zh) * | 2023-07-20 | 2023-11-24 | 深圳市飞易通科技有限公司 | 一种扫码数据传输方法、装置及存储介质 |
CN117315808A (zh) * | 2023-11-28 | 2023-12-29 | 成都博瑞科传科技有限公司 | 基于数据完整性校验的水质便携式巡检仪及采集方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414538A (zh) * | 2013-08-05 | 2013-11-27 | 国云科技股份有限公司 | 一种分布式环境下网络数据通信的数据包分拣方法 |
US20140109177A1 (en) * | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
CN105491111A (zh) * | 2015-11-24 | 2016-04-13 | 镇江恒驰科技有限公司 | 一种基于wcf的物联网通信方法 |
-
2018
- 2018-12-17 CN CN201811541192.1A patent/CN109995473A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140109177A1 (en) * | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
CN103414538A (zh) * | 2013-08-05 | 2013-11-27 | 国云科技股份有限公司 | 一种分布式环境下网络数据通信的数据包分拣方法 |
CN105491111A (zh) * | 2015-11-24 | 2016-04-13 | 镇江恒驰科技有限公司 | 一种基于wcf的物联网通信方法 |
Non-Patent Citations (3)
Title |
---|
《计算机与信息科学十万个为什么》丛书编辑委员会: "《计算机与信息科学十万个为什么 5 计算机网络与数据通信》", 31 January 1998, 清华大学出版社 * |
冀哲: "智能家庭网关在智能家居业务中的功能", 《信息通信技术》 * |
吴晓葵: "《计算机网络基础》", 31 August 2008, 北京理工大学出版社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597644A (zh) * | 2019-09-10 | 2019-12-20 | 深圳市元征科技股份有限公司 | 数据流传输方法、传输装置、电子设备及存储介质 |
CN110995686A (zh) * | 2019-11-26 | 2020-04-10 | 珠海泰芯半导体有限公司 | 一种软件通信协议的校验方法 |
CN117114032A (zh) * | 2023-07-20 | 2023-11-24 | 深圳市飞易通科技有限公司 | 一种扫码数据传输方法、装置及存储介质 |
CN117315808A (zh) * | 2023-11-28 | 2023-12-29 | 成都博瑞科传科技有限公司 | 基于数据完整性校验的水质便携式巡检仪及采集方法 |
CN117315808B (zh) * | 2023-11-28 | 2024-02-13 | 成都博瑞科传科技有限公司 | 基于数据完整性校验的水质便携式巡检仪及采集方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109995473A (zh) | Tcp通讯数据包及其封装方法、校验系统、校验方法 | |
CN101662418B (zh) | 一种传输文件的检测方法及终端 | |
US8255567B2 (en) | Efficient IP datagram reassembly | |
CN109257737B (zh) | 一种北斗长报文发送设备及方法 | |
CN107872422A (zh) | 一种数据传输方法、装置及电子设备 | |
TWI315141B (en) | Packet transmission method and apparatus | |
CN103415001B (zh) | 报文转发装置、系统及方法 | |
CN105050055B (zh) | 基于wifi接入点名称编码的数据采集方法 | |
FR2804816A1 (fr) | Transport d'unites de protocole d'objet electronique portable par protocole pour peripheriques de micro- ordinateur | |
CN106453160A (zh) | 一种北斗数据传输方法及系统 | |
CN106452688A (zh) | 一种北斗数据缺报重传方法及系统 | |
CN101753586A (zh) | 发送数据的方法、接收数据的处理方法和装置 | |
CN105847101A (zh) | 一种基于车辆总线的数据传输方法 | |
KR20190086711A (ko) | 네트워크 관리 정보의 송수신 방법, 송수신 장치, 송신기 및 수신기 | |
CN104486396A (zh) | 一种跨平台的网络数据的传输方法 | |
CN106162528A (zh) | LoRa信号与蓝牙信号转换模块、转换方法及信号发送装置 | |
CN106656679A (zh) | 可用带宽测量方法和装置 | |
CN110213756A (zh) | 一种数据传输方法、装置及其相关设备 | |
CN112787902B (zh) | 报文封装方法及装置、报文解封装方法及装置 | |
CN107135515A (zh) | 基站网络侧传输路径的通信性能测试方法及装置 | |
CN105187332B (zh) | 基于Zigbee网络的多源数据传输方法 | |
CN108712200A (zh) | 一种小卫星智能无线星务系统及控制方法 | |
EP1648133A1 (en) | A method for encapsulating data stream | |
CN108988977A (zh) | 一种灵活以太网协议中传递业务流的方法、装置和系统 | |
CN104009982B (zh) | 基于超短波电台的文件分组群发装置及文件分组群发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190709 |