一种协议传输的粘包、拼包的方法技术

技术编号:18662612 阅读:52 留言:0更新日期:2018-08-11 16:26
本发明专利技术公开了一种协议传输的粘包、拼包的方法,本发明专利技术主要基于Apache MINA高性能和高伸缩性网络应用程序的框架下,针对现今快速发展的物联网领域里,设备与设备、设备与平台、平台与平台之间的TCP传输控制协议通讯方式的网络数据通信,以指定通讯协议规则的方式对传输中的数据包的粘包、拼包等操作进行严密处理,解决了物联网行业内按一定通讯协议进行数据包传输过程中对数据包粘包、拼包方案进行整合,在高效同时低资源消耗的前提下,实现了较为严密的数据包粘包、拼包处理。

A method of packet transmission and packet binding for protocol transmission

The invention discloses a method for sticking and collapsing protocol transmission. The method is mainly based on the framework of Apache MINA high-performance and high-scalability network application program, and aims at the communication mode of TCP transmission control protocol between equipment and equipment, equipment and platform, platform and platform in the rapidly developing field of Internet of Things. Network data communication, in order to specify the communication protocol rules for the transmission of data packets, such as packet sticking, packet sorting and other operations to deal with rigorously, to solve the Internet of Things industry according to a certain communication protocol for packet transmission in the process of packet sticking, packet sorting scheme integration, in high efficiency and low resource consumption premise A more compact data packet binding and packet processing is implemented.

【技术实现步骤摘要】
一种协议传输的粘包、拼包的方法
本专利技术涉及数据处理
,具体为一种协议传输的粘包、拼包的方法。
技术介绍
在现今物联网领域中关于按指定协议规则对数据包进行网络传输过程中,行业内对TCP通讯方式发送数据包,粘包以及拼包的技术略显臃肿和低效率性,不完全应跟进今后物联网发展步伐,以及今后物联网的多变性。
技术实现思路
本专利技术的目的在于提供一种协议传输的粘包、拼包的方法,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种协议传输的粘包、拼包的方法,包括以下步骤:A、首先介绍一下整个方案需要基于分布式部署架构下运行;B、在此指定完善的通讯协议,以通用的标示位作为消息单一消息边界,按定制的算法捕获消息边界标示位,构建完整报文;C、对数据进行初次处理;D、针对于上述的异或校验进行说明;E、在基于严密消息接收处理的同时,定制基本数据模型去格式化接收到的完整报文。优选的,所述步骤C中数据进行初次处理时制定相应的处理拼包和粘包的逻辑算法,包括如下步骤:a、首先定义好全局buffer,然后对接收到的数据容量进行判断;b、若接收到的数据量为空就结束了此次处理,否则往下进行;c、得到原始数据可能是上次没有传完的参与数据,通过7E标示位以及全局buffer里的数据将两次接收到报文进行粘包处理,得到完整报文;d、若得到新的报文数据也通过获取数据中的边界标示符,得到新的报文;e、若新的报文能一次接受完,即存储在全局buffer中等待下一次数据上报进行粘包处理;f、若接收完整即可对数据进行转义操作,紧接着对异或校验码进行验证,校验成功继续,校验失败证明数据有误,进行丢弃;得到校验成功数据后根据协议判定数据是否需要解密和解压,最终得到原始数据。优选的,所述步骤D中在协议层面对需要接收的数据,进行数据校验位的制定,在接收时基于定制的校验方式对相应的校验位进行验证,实现过程如下:在出去标示位的前提先,校验码计算以消息头开始,同后一字节进行异或运算,直到校验码前一个字节,占用一个字节。与现有技术相比,本专利技术的有益效果是:本专利技术主要基于ApacheMINA高性能和高伸缩性网络应用程序的框架下,针对现今快速发展的物联网领域里,设备与设备、设备与平台、平台与平台之间的TCP传输控制协议通讯方式的网络数据通信,以指定通讯协议规则的方式对传输中的数据包的粘包、拼包等操作进行严密处理,解决了物联网行业内按一定通讯协议进行数据包传输过程中对数据包粘包、拼包方案进行整合,在高效同时低资源消耗的前提下,实现了较为严密的数据包粘包、拼包处理。附图说明图1为本专利技术分布式部署架构图;图2为本专利技术拼包和粘包的逻辑算法图;图3为本专利技术数据传世协议图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1-3,本专利技术提供一种技术方案:一种协议传输的粘包、拼包的方法,其特征在于:包括以下步骤:A、首先介绍一下整个方案需要基于分布式部署架构下运行;由于在物联网行业设备接入本来就是需要庞大的流量支撑,所以必然需要负载均衡,在这种环境下把我们处理粘包和拼包的方案进行融入到具体的每个服务中,在这样的前提下进行实施,图土1所示;B、在此指定完善的通讯协议,以通用的标示位作为消息单一消息边界,按定制的算法捕获消息边界标示位,构建完整报文;在每一次长连接时,对于粘包或半包的处理也是基于报文消息边界标识符对其进行报文拼接构建;采用0x7e表示为边界标示位,若校验码、消息头以及消息体中出现0x7e,则要进行转义处理,转义规则定义如下:0x7e<——>0x7d后紧跟一个0x02;0x7d<——>0x7d后紧跟一个0x01。转义处理过程如下:发送消息时:消息封装——>计算并填充校验码——>转义;接收消息时:转义还原——>验证校验码——>解析消息。示例:发送一包内容为0x300x7e0x080x7d0x55的数据包,则经过封装如下:0x7e0x307d0x020x080x7d0x010x550x7e。而针对于整个数据包的数据构造的顺序如下图,首先按照协议构建原始数据,然后根据具体需求对原始数据压缩,之后也更不同情况对消息体加密,接下来采用异或的方式生成校验,最后以之前介绍过的方式进行转义操作。C、对数据进行初次处理:对于不同协议、不同设备,在不同时刻下向我们的系统进行数据接入,每次接入为一次长连接,也属于一次会话,每次会话分配不同的内存进行处理,在不同会话里以相同逻辑的PARSER解码器,对数据进行初次处理。D、针对于上述的异或校验进行说明;E、在基于严密消息接收处理的同时,定制基本数据模型去格式化接收到的完整报文;基于这种可拓展且简洁的基类数据模型以此应对今后在多变的数据传输协议。如上面部分所述,得到原始数据后采用统一的数据模型(GpsMessage)进行接收。原始数据的二进制流,以GpsMessage中的类型为byte[]的成员变量所接收。同时GpsMessage也提供存储原始数据里的流水号、imei(设备唯一识别码)、消息ID、消息体属性、校验码等。而这个是最初的二进制流格式化成java数据模型。而具体的解析需要根据具体的规则进行二次处理,以此满足多元化数据协议。本专利技术中,步骤C中数据进行初次处理时制定相应的处理拼包和粘包的逻辑算法,包括如下步骤:a、首先定义好全局buffer,然后对接收到的数据容量进行判断;b、若接收到的数据量为空就结束了此次处理,否则往下进行;c、得到原始数据可能是上次没有传完的参与数据,通过7E标示位以及全局buffer里的数据将两次接收到报文进行粘包处理,得到完整报文;d、若得到新的报文数据也通过获取数据中的边界标示符,得到新的报文;e、若新的报文能一次接受完,即存储在全局buffer中等待下一次数据上报进行粘包处理;f、若接收完整即可对数据进行转义操作,紧接着对异或校验码进行验证,校验成功继续,校验失败证明数据有误,进行丢弃;得到校验成功数据后根据协议判定数据是否需要解密和解压,最终得到原始数据。本专利技术中,步骤D中在协议层面对需要接收的数据,进行数据校验位的制定,在接收时基于定制的校验方式对相应的校验位进行验证,实现过程如下:在出去标示位的前提先,校验码计算以消息头开始,同后一字节进行异或运算,直到校验码前一个字节,占用一个字节。本专利技术主要基于ApacheMINA高性能和高伸缩性网络应用程序的框架下,针对现今快速发展的物联网领域里,设备与设备、设备与平台、平台与平台之间的TCP传输控制协议通讯方式的网络数据通信,以指定通讯协议规则的方式对传输中的数据包的粘包、拼包等操作进行严密处理,解决了物联网行业内按一定通讯协议进行数据包传输过程中对数据包粘包、拼包方案进行整合,在高效同时低资源消耗的前提下,实现了较为严密的数据包粘包、拼包处理。尽管已经示出和描述了本专利技术的实施例,对于本领域的普通技术人员本文档来自技高网...

【技术保护点】
1.一种协议传输的粘包、拼包的方法,其特征在于:包括以下步骤:A、首先介绍一下整个方案需要基于分布式部署架构下运行;B、在此指定完善的通讯协议,以通用的标示位作为消息单一消息边界,按定制的算法捕获消息边界标示位,构建完整报文;C、对数据进行初次处理;D、针对于上述的异或校验进行说明;E、在基于严密消息接收处理的同时,定制基本数据模型去格式化接收到的完整报文。

【技术特征摘要】
1.一种协议传输的粘包、拼包的方法,其特征在于:包括以下步骤:A、首先介绍一下整个方案需要基于分布式部署架构下运行;B、在此指定完善的通讯协议,以通用的标示位作为消息单一消息边界,按定制的算法捕获消息边界标示位,构建完整报文;C、对数据进行初次处理;D、针对于上述的异或校验进行说明;E、在基于严密消息接收处理的同时,定制基本数据模型去格式化接收到的完整报文。2.根据权利要求1所述的一种协议传输的粘包、拼包的方法,其特征在于:所述步骤C中数据进行初次处理时制定相应的处理拼包和粘包的逻辑算法,包括如下步骤:a、首先定义好全局buffer,然后对接收到的数据容量进行判断;b、若接收到的数据量为空就结束了此次处理,否则往下进行;c、得到原始数据可能是上次没有传完的参与数据,通过7E标示位以及全局b...

【专利技术属性】
技术研发人员:廖剑锋张皓罗洪张震张明波钟伟黄川李金红秦伟巨鹏
申请(专利权)人:吉旗成都科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1