CN103414538A - 一种分布式环境下网络数据通信的数据包分拣方法 - Google Patents

一种分布式环境下网络数据通信的数据包分拣方法 Download PDF

Info

Publication number
CN103414538A
CN103414538A CN2013103376178A CN201310337617A CN103414538A CN 103414538 A CN103414538 A CN 103414538A CN 2013103376178 A CN2013103376178 A CN 2013103376178A CN 201310337617 A CN201310337617 A CN 201310337617A CN 103414538 A CN103414538 A CN 103414538A
Authority
CN
China
Prior art keywords
packet
data
inclusion
json
communication
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.)
Granted
Application number
CN2013103376178A
Other languages
English (en)
Other versions
CN103414538B (zh
Inventor
熊梦
唐皓
杨松
莫展鹏
季统凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201310337617.8A priority Critical patent/CN103414538B/zh
Publication of CN103414538A publication Critical patent/CN103414538A/zh
Application granted granted Critical
Publication of CN103414538B publication Critical patent/CN103414538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明一种分布式环境下网络数据通信的数据包分拣方法。本发明首先将待通信的数据利用“Json写对象”表示成Json形式的通信字符串;然后在开始部分和结尾部分分别添加上自定义的包头和包尾信息;接着在包头信息后面添加一个固定字节大小的包体长度信息字段形成最终的通信数据包;将通信数据包通过网络控制进行传递转发,最终到达目的节点;在进行数据包解析过程中,首先判断数据包是否完整;对于完整的数据包,接着读取包体数据长度信息;再读取该长度的通信字符串;最后采用“Json读对象”将其解析成具体的业务逻辑数据。本发明提高了分布式网络节点大量数据通信时的数据处理速度与可靠性,可应用于云计算各个节点之间的数据通信中。

Description

一种分布式环境下网络数据通信的数据包分拣方法
技术领域
本发明涉及网络数据通信技术领域,特别是一种分布式环境下网络数据通信的数据包分拣方法。
背景技术
分布式环境下尤其是云计算体系架构中,节点之间的网络数据通信非常频繁,并且通信的数据上也有一定的字典性(即一个关键字对应一个值,如“instanceId:i-AD3486EF”),如何在保证数据完整的同时提供高效的数据包分拣方法已变得越来越重要。而如今越来越多的开源云计算解决方案中各个节点的网络数据通信机制封装透明的提供给用户使用,这种方式使用简单,但同时会带来以下问题:
一是可控性差,不能满足于商业云平台通信需求。商业云平台如果采用开源的透明的网络数据通信方式实现节点间通信已满足不了自主可控的要求;
二是通信数据包量大、质低,现有云平台采用的开源云计算解决方案的网络数据通信形式,节点之间每一次功能需求都必须创建一个到多个数据包,而无法实现将多个功能的相关参数信息共用到一个通信数据包中;
三是数据包分拣不够高效;
四是数据完整性不能保证,采用开源的云计算解决方案网络通信方式不能自己控制数据包的完整性。
为了实现商业云平台充分自主可控,同时满足各个节点之间频繁而快速的网络数据通信需求,需要一种高效的数据包分拣方法。
发明内容
本发明解决的技术问题在于提供了一种分布式环境下网络数据通信的数据包分拣方法,解决云计算解决方案中为了实现节点之间频繁的功能要求需要发送大量单一功能数据包且在数据包分拣过程中存在的高消耗低效率的问题。
本发明解决上述技术问题的技术方案是:包括如下步骤:
步骤1:通信数据发送端利用“Json写对象”将通信数据表示成Json数据格式的通信字符串,即包体;
步骤2:在包体的开始部分和结尾部分分别添加上自定义的包头信息和包尾信息;
步骤3:在包头信息后面添加一个固定字节大小的包体长度信息字段形成最终的通信数据包;
步骤4:将通信数据包通过网络控制进行传递转发,最终到达目的节点;
步骤5:在进行数据包解析过程中,首先利用自定义的包头信息和包尾信息判断数据包是否完整;
步骤6:对于完整的数据包,接着读取包头信息后面的包体数据长度信息;
步骤7:使用得到的包体长度值直接读取该大小的通信字符串;
步骤8:最后采用“Json读对象”将读取到的通信字符串解析成具体的业务逻辑数据,并进行相关的业务逻辑处理。
在所述的步骤5进行数据包完整性判断后,直接读取包头包尾中间的包体部分,以便进行数据包中包体部分的完整性校验。
所述的“Json写对象”是指在在具体代码实现上采用了C++版Json的Json::FastWriter对象,利用该对象将通信数据快速高效的表示成Json格式的字符串;所述的“Json读对象”是指在具体代码实现上采用了C++版Json的Json::Reader对象,利用该对象将包体Json格式的数据字符串快速高效的读取出来。
所述的包头信息和包尾信息是两个特定的自定义字符串,包头信息为“GTSTART”,包尾为“GTEND”;利用自定义的包头包尾信息判断数据包是否完整是指对于获取到的数据包,判断包头是否为自定义标识“GTSTART”,包尾是否为“GTEND”。
所述的包体长度信息字段是指使用4个字节来确定封包过程中包体的数据量大小;
所述包体长度信息是指从固定4个字节里读取到的发包方设置的包体大小值,所述发包方是指在网络数据通信中发送数据包的一方;
所述的包体完整性校验是指直接读取包头,然后计算包体得大小与设定的4字节包头大小值进行比较,用以验证数据包包体是否完整。
所述的网络控制是指在特定环境下通信数据包根据网络socket文件描述符进行路由选择的过程;所述网络socket文件描述符是指网络通信中节点间建立连接后用于数据传送的一种网络标识。
本发明采用Json格式字符串,充分利用Json在数据处理方面的优势,达到云计算解决方案环境下的高效分拣。本发明采用自定义数据包格式,实现数据包和包体两重完整性的保障,尤其是4个字节包体大小的字段来充分保证了数据包的完整性。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图;
图2为本发明的一个具体实例示意图。
具体实施方式
如图1所示,本发明包括如下步骤:
步骤1:通信数据发送端利用“Json写对象”将通信数据表示成Json数据格式的通信字符串,即包体;
步骤2:在包体的开始部分和结尾部分分别添加上自定义的包头信息和包尾信息;
步骤3:在包头信息后面添加一个固定字节大小的包体长度信息字段形成最终的通信数据包;
步骤4:将通信数据包通过网络控制进行传递转发,最终到达目的节点;
步骤5:在进行数据包解析过程中,首先利用自定义的包头信息和包尾信息判断数据包是否完整;
步骤6:对于完整的数据包,接着读取包头信息后面的包体数据长度信息;
步骤7:使用得到的包体长度值直接读取该大小的通信字符串;
步骤8:最后采用“Json读对象”将读取到的通信字符串解析成具体的业务逻辑数据,并进行相关的业务逻辑处理。
在所述的步骤5进行数据包完整性判断后,直接读取包头包尾中间的包体部分,以便进行数据包中包体部分的完整性校验。
所述的“Json写对象”是指在在具体代码实现上采用了C++版Json的Json::FastWriter对象,利用该对象将通信数据快速高效的表示成Json格式的字符串;所述的“Json读对象”是指在具体代码实现上采用了C++版Json的Json::Reader对象,利用该对象将包体Json格式的数据字符串快速高效的读取出来。
所述的包头信息和包尾信息是两个特定的自定义字符串,包头信息为“GTSTART”,包尾为“GTEND”;利用自定义的包头包尾信息判断数据包是否完整是指对于获取到的数据包,判断包头是否为自定义标识“GTSTART”,包尾是否为“GTEND”。
所述的包体长度信息字段是指使用4个字节来确定封包过程中包体的数据量大小;所述包体长度信息是指从固定4个字节里读取到的发包方设置的包体大小值,所述发包方是指在网络数据通信中发送数据包的一方;
所述的包体完整性校验是指直接读取包头,然后计算包体得大小与设定的4字节包头大小值进行比较,用以验证数据包包体是否完整。
所述的网络控制是指在特定环境下通信数据包根据网络socket文件描述符进行路由选择的过程;所述网络socket文件描述符是指网络通信中节点间建立连接后用于数据传送的一种网络标识。
如图2所示,以下是针对本发明数据包中4个字节的包体长度值进行的相应处理,主要包括发送端的4字节值设置、数据包的包头包尾设置和接收端的解包、利用4字节值进行包体完整性校验的过程。
数据发送前处理(代码片段):
Figure BDA00003618915200051
Figure BDA00003618915200061
在通信字符串data的前面后后面分别加上了包头信息“GTSTART”和包尾信息“GTEND”,并且将包体的字符长度写进包头后面的4个字节字段内。
接收端解析处理代码:
Figure BDA00003618915200062
首先获取数据包中4个字节包体长度值size,然后从包体开始处读取连续的size个通信字符串,即包体。
接收端检验代码:
Figure BDA00003618915200063
Figure BDA00003618915200071
以上函数根据4字节包体长度值读取包尾字符串,然后与预先定义的标识“GTEND”比较是否一致,用以确认数据包的完整性。
更多的有关利用Json实现封包解包的过程通过定义一个数据包操作类gtPacketHandler来封装所有的相关操作,如下所示:
Figure BDA00003618915200072
Figure BDA00003618915200081
在具体实现中,一个数据包的包体数据可能包括有多个功能操作相关的数据参数信息,例如创建虚拟机时同时创建2台,那么将这2台虚拟机相关的参数信息按Json数组的格式封装在一起存放在同一个包体内。

Claims (11)

1.一种分布式环境下网络数据通信的数据包分拣方法,其特征在于:包括如下步骤:
步骤1:通信数据发送端利用“Json写对象”将通信数据表示成Json数据格式的通信字符串,即包体;
步骤2:在包体的开始部分和结尾部分分别添加上自定义的包头信息和包尾信息;
步骤3:在包头信息后面添加一个固定字节大小的包体长度信息字段形成最终的通信数据包;
步骤4:将通信数据包通过网络控制进行传递转发,最终到达目的节点;
步骤5:在进行数据包解析过程中,首先利用自定义的包头信息和包尾信息判断数据包是否完整;
步骤6:对于完整的数据包,接着读取包头信息后面的包体数据长度信息;
步骤7:使用得到的包体长度值直接读取该大小的通信字符串;
步骤8:最后采用“Json读对象”将读取到的通信字符串解析成具体的业务逻辑数据,并进行相关的业务逻辑处理。
2.根据权利要求1所述的数据包分拣方法,其特征在于:在所述的步骤5进行数据包完整性判断后,直接读取包头包尾中间的包体部分,以便进行数据包中包体部分的完整性校验。
3.根据权利要求1所述的数据包分拣方法,其特征在于:所述的“Json写对象”是指在在具体代码实现上采用了C++版Json的Json::FastWriter对象,利用该对象将通信数据快速高效的表示成Json格式的字符串;所述的“Json读对象”是指在具体代码实现上采用了C++版Json的Json::Reader对象,利用该对象将包体Json格式的数据字符串快速高效的读取出来。
4.根据权利要求2所述的数据包分拣方法,其特征在于:所述的“Json写对象”是指在在具体代码实现上采用了C++版Json的Json::FastWriter对象,利用该对象将通信数据快速高效的表示成Json格式的字符串;所述的“Json读对象”是指在具体代码实现上采用了C++版Json的Json::Reader对象,利用该对象将包体Json格式的数据字符串快速高效的读取出来。
5.根据权利要求1至4任一项所述的数据包分拣方法,其特征在于:所述的包头信息和包尾信息是两个特定的自定义字符串,包头信息为“GTSTART”,包尾为“GTEND”;利用自定义的包头包尾信息判断数据包是否完整是指对于获取到的数据包,判断包头是否为自定义标识“GTSTART”,包尾是否为“GTEND”。
6.根据权利要求1至4任一项所述的一数据包分拣方法,其特征在于:所述的包体长度信息字段是指使用4个字节来确定封包过程中包体的数据量大小;
所述包体长度信息是指从固定4个字节里读取到的发包方设置的包体大小值,所述发包方是指在网络数据通信中发送数据包的一方;
所述的包体完整性校验是指直接读取包头,然后计算包体得大小与设定的4字节包头大小值进行比较,用以验证数据包包体是否完整。
7.根据权利要求5所述的一数据包分拣方法,其特征在于:所述的包体长度信息字段是指使用4个字节来确定封包过程中包体的数据量大小;
所述包体长度信息是指从固定4个字节里读取到的发包方设置的包体大小值,所述发包方是指在网络数据通信中发送数据包的一方;
所述的包体完整性校验是指直接读取包头,然后计算包体得大小与设定的4字节包头大小值进行比较,用以验证数据包包体是否完整。
8.根据权利要求1至4任一项所述的数据包分拣方法,其特征在于:所述的网络控制是指在特定环境下通信数据包根据网络socket文件描述符进行路由选择的过程;所述网络socket文件描述符是指网络通信中节点间建立连接后用于数据传送的一种网络标识。
9.根据权利要求5所述的数据包分拣方法,其特征在于:所述的网络控制是指在特定环境下通信数据包根据网络socket文件描述符进行路由选择的过程;所述网络socket文件描述符是指网络通信中节点间建立连接后用于数据传送的一种网络标识。
10.根据权利要求6所述的数据包分拣方法,其特征在于:所述的网络控制是指在特定环境下通信数据包根据网络socket文件描述符进行路由选择的过程;所述网络socket文件描述符是指网络通信中节点间建立连接后用于数据传送的一种网络标识。
11.根据权利要求7所述的数据包分拣方法,其特征在于:所述的网络控制是指在特定环境下通信数据包根据网络socket文件描述符进行路由选择的过程;所述网络socket文件描述符是指网络通信中节点间建立连接后用于数据传送的一种网络标识。
CN201310337617.8A 2013-08-05 2013-08-05 一种分布式环境下网络数据通信的数据包分拣方法 Active CN103414538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310337617.8A CN103414538B (zh) 2013-08-05 2013-08-05 一种分布式环境下网络数据通信的数据包分拣方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310337617.8A CN103414538B (zh) 2013-08-05 2013-08-05 一种分布式环境下网络数据通信的数据包分拣方法

Publications (2)

Publication Number Publication Date
CN103414538A true CN103414538A (zh) 2013-11-27
CN103414538B CN103414538B (zh) 2017-09-29

Family

ID=49607525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310337617.8A Active CN103414538B (zh) 2013-08-05 2013-08-05 一种分布式环境下网络数据通信的数据包分拣方法

Country Status (1)

Country Link
CN (1) CN103414538B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537305A (zh) * 2014-12-31 2015-04-22 北京奇虎科技有限公司 网站漏洞检测方法和系统
CN105610901A (zh) * 2015-12-15 2016-05-25 深圳市航盛电子股份有限公司 一种网络数据包传输及分析方法
CN107135167A (zh) * 2017-04-19 2017-09-05 畅捷通信息技术股份有限公司 数据传输方法、数据传输装置和服务器
CN107171956A (zh) * 2017-07-30 2017-09-15 长沙曙通信息科技有限公司 一种广域专网数据包传输优化实现方法
CN108683603A (zh) * 2018-05-14 2018-10-19 广州经传多赢投资咨询有限公司 一种基于实时流压缩技术的高效二进制传输协议
CN108881124A (zh) * 2017-05-15 2018-11-23 武汉斗鱼网络科技有限公司 在模块间实现高性能通信的方法、系统、存储介质及设备
CN109525370A (zh) * 2018-11-29 2019-03-26 苏州德姆斯信息技术有限公司 基于zigbee的数据包发送方法
WO2019105463A1 (zh) * 2017-11-30 2019-06-06 南京德朔实业有限公司 电动工具系统及数据处理方法
CN109995473A (zh) * 2018-12-17 2019-07-09 芜湖智久机器人有限公司 Tcp通讯数据包及其封装方法、校验系统、校验方法
CN110738023A (zh) * 2019-10-17 2020-01-31 深圳旗鱼体育传播有限公司 一种将json天气数据转换为jpeg图片的系统及方法
CN113438226A (zh) * 2021-06-23 2021-09-24 上海星融汽车科技有限公司 基于混合传输协议的报文生成、解析方法、设备及系统
CN114785867A (zh) * 2022-04-25 2022-07-22 北京兴竹同智信息技术股份有限公司 一种绿通车道管理中业务数据的交互方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577255A (zh) * 2009-09-30 2012-07-11 阿尔卡特朗讯公司 云计算中企业的第2层无缝站点扩展
CN103078921A (zh) * 2012-12-28 2013-05-01 Tcl集团股份有限公司 一种发送、接收消息的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577255A (zh) * 2009-09-30 2012-07-11 阿尔卡特朗讯公司 云计算中企业的第2层无缝站点扩展
CN103078921A (zh) * 2012-12-28 2013-05-01 Tcl集团股份有限公司 一种发送、接收消息的方法及装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537305B (zh) * 2014-12-31 2017-12-15 北京奇安信科技有限公司 网站漏洞检测方法和系统
CN104537305A (zh) * 2014-12-31 2015-04-22 北京奇虎科技有限公司 网站漏洞检测方法和系统
CN105610901A (zh) * 2015-12-15 2016-05-25 深圳市航盛电子股份有限公司 一种网络数据包传输及分析方法
CN107135167A (zh) * 2017-04-19 2017-09-05 畅捷通信息技术股份有限公司 数据传输方法、数据传输装置和服务器
CN108881124B (zh) * 2017-05-15 2021-02-02 武汉斗鱼网络科技有限公司 在模块间实现高性能通信的方法、系统、存储介质及设备
CN108881124A (zh) * 2017-05-15 2018-11-23 武汉斗鱼网络科技有限公司 在模块间实现高性能通信的方法、系统、存储介质及设备
CN107171956A (zh) * 2017-07-30 2017-09-15 长沙曙通信息科技有限公司 一种广域专网数据包传输优化实现方法
WO2019105463A1 (zh) * 2017-11-30 2019-06-06 南京德朔实业有限公司 电动工具系统及数据处理方法
US11126424B2 (en) 2017-11-30 2021-09-21 Nanjing Chervon Industry Co., Ltd. Power tool system and data processing method
CN108683603A (zh) * 2018-05-14 2018-10-19 广州经传多赢投资咨询有限公司 一种基于实时流压缩技术的高效二进制传输协议
CN109525370A (zh) * 2018-11-29 2019-03-26 苏州德姆斯信息技术有限公司 基于zigbee的数据包发送方法
CN109525370B (zh) * 2018-11-29 2020-07-17 苏州德姆斯信息技术有限公司 基于zigbee的数据包发送方法
CN109995473A (zh) * 2018-12-17 2019-07-09 芜湖智久机器人有限公司 Tcp通讯数据包及其封装方法、校验系统、校验方法
CN110738023A (zh) * 2019-10-17 2020-01-31 深圳旗鱼体育传播有限公司 一种将json天气数据转换为jpeg图片的系统及方法
CN113438226A (zh) * 2021-06-23 2021-09-24 上海星融汽车科技有限公司 基于混合传输协议的报文生成、解析方法、设备及系统
CN113438226B (zh) * 2021-06-23 2022-08-12 上海星融汽车科技有限公司 基于混合传输协议的报文生成、解析方法、设备及系统
CN114785867A (zh) * 2022-04-25 2022-07-22 北京兴竹同智信息技术股份有限公司 一种绿通车道管理中业务数据的交互方法

Also Published As

Publication number Publication date
CN103414538B (zh) 2017-09-29

Similar Documents

Publication Publication Date Title
CN103414538A (zh) 一种分布式环境下网络数据通信的数据包分拣方法
CN105706043B (zh) 推进式链接的列表吞吐量
CN105579987B (zh) 通用pci express端口
CN103347013B (zh) 一种增强可编程能力的OpenFlow网络系统和方法
CN105337991A (zh) 一种一体化的报文流查找与更新方法
CN101771627B (zh) 互联网实时深度包解析和控制节点设备和方法
CN103004158B (zh) 具有可编程内核的网络设备
CN101291546B (zh) 核心路由器交换结构协处理器
CN103391256B (zh) 一种基于Linux系统的基站用户面数据处理优化方法
CN104753931A (zh) 一种基于正则表达式的深度报文检测方法
CN104144156B (zh) 报文处理方法和装置
CN110506411A (zh) 基于逻辑端口标识符管理虚拟交换机中的网络流量
CN106656801A (zh) 业务流的转发路径的重定向方法、装置和业务流转发系统
CN104283891B (zh) 将业务功能节点接入业务链网络的方法和装置
WO2016107122A1 (zh) RapidIO报文和以太网报文之间的转换方法和设备
TW200417202A (en) Network system, spanning tree configuration method and configuration program, and spanning tree configuration node
CN109922002A (zh) 基于SFC的业务数据转发方法以及Overlay系统
CN103209169B (zh) 一种基于fpga的网络流量过滤系统与方法
CN106657149A (zh) 通讯协议转换方法与装置
CN107181698A (zh) 单队列多流业务整形的系统和方法
CN106610789A (zh) 一种数据处理方法、装置及系统
CN105591872B (zh) 一种实现多数据中心互联的方法和装置
CN104158770A (zh) 一种交换机数据包切分与重组的方法与装置
CN101388848B (zh) 网络处理器结合通用处理器的流量识别方法
CN105518610B (zh) 处理操作请求的存储系统、方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: G-Cloud Technology Co., Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Patentee before: G-Cloud Technology Co., Ltd.