【技术实现步骤摘要】
数据重组方法、系统、装置及计算机可读存储介质
本专利技术涉及数据处理
,特别是涉及一种数据重组方法、系统、装置及计算机可读存储介质。
技术介绍
当采用TCP/IP协议进行数据传输时,IP链路层有MTU(MaximumTransmissionUnit,最大传输单元)的限制,若IP链路层请求传输的数据的长度超过MTU上限时,IP链路层的发送端会对数据进行自动分片。IP链路层的接收端需要将分片数据聚齐后再进行重组处理,如果传输过程中某一分片数据出错或者丢失,则所有分片数据均需要重传,大量数据重传会加重网络拥堵率,加大信息延时,影响数据传输的实时性。因此,当与其传送的数据较大时,用户需进行人为分片以将交付给IP链路层的数据的长度限制在MTU限制范围内,避免IP链路层自动分片。GAL(GeneralApplicationLayer,通用应用层)协议就是为了制定发送端分片规则及接收端重组规则而设计的。请参照表1和表2,其中,表1为现有技术中GAL协议的格式表,表2为现有技术中的组内位置的数值定义表。表1表2可见,现有技术GAL协议定义中,组内位置只定义了第一个数据包的标识、依次传输的数据包的标识及最后一个包的标识,在使用时,接收端在接收到第一个数据包的标识和最后一个包的标识后即认为数据完整,若中间数据包丢失了接收端也无法获知,可见,该传输过程对数据的完整性无法保证。此外,考虑到网络堵塞问题,接收端某个时刻接收到的多个数据可能不是一个周期的,从而更无法保证了数据的完整性。 >
技术实现思路
本专利技术的目的是提供一种数据重组方法、系统、装置及计算机可读存储介质,可以避免不同周期的GAL数据包进行重组,且能够保证本周期的GAL数据包按照顺序被完整的接收,保证了接收的数据的完整性,提高了数据重组的正确性。为解决上述技术问题,本专利技术提供了一种数据重组方法,包括:S11:确定当前通用应用层GAL数据包,所述当前GAL数据包包括数据本体、GAL数据包的总包数、所述当前GAL数据包的包序号及周期号;S12:基于用于存储接收到的GAL数据包的存储模块的当前存储情况、所述当前GAL数据包的包序号及周期号判断所述当前GAL数据包的所处周期及在所处周期中的接收顺序是否均正确,若是,进入S13;S13:基于所述总包数及包序号判断所述当前GAL数据包是否为当前周期的最后一个GAL数据包,若是,进入S14,否则,返回S11;S14:对当前周期所有接收到的GAL数据包中的数据本体进行重组。优选地,所述数据本体设置于多个信息包中,所述当前GAL数据包还包括信息包的数量和长度;S11之后,还包括:基于所述信息包的数量和长度计算所述当前GAL数据包中所有信息包中数据的总长度;判断所述总长度是否不大于GAL数据包限制的长度阈值,若是,进入S12。优选地,还包括:若所述总长度大于GAL数据包限制的长度阈值,则判定本次数据重组失败,并发出第一警报。优选地,当前周期中所有GAL数据包的包序号分别为1、2…N,N为所述总包数;S13包括:判断所述当前GAL数据包的包序号是否等于所述总包数,若是,进入S14,否则,返回S11。优选地,所述存储模块为消息缓存队列。优选地,还包括:若基于用于存储接收到的GAL数据包的存储模块的当前存储情况、所述当前GAL数据包的包序号及周期号判断所述当前GAL数据包的所处周期及在所处周期中的接收顺序不全正确,判定本次数据重组失败,且发出第二警报。优选地,S12包括:S121:判断所述存储模块中是否为空,若是,进入S122,否则,进入S123;S122:基于所述当前GAL数据包的包序号及周期号判断所述当前GAL数据包是否为当前周期的第一个GAL数据包,若是,进入S125;S123:判断所述存储模块中最新存储的GAL数据包是否是自身所在周期的最后一个GAL数据包,若是,返回S122,否则,进入S124;S124:判断所述当前GAL数据包是否与所述最新存储的GAL数据包处于同一周期且所述当前GAL数据包为所述最新存储的GAL数据包的下一个GAL数据包,若是,进入S125;S125:将所述当前GAL数据包存储至所述存储模块。为解决上述技术问题,本专利技术还提供了一种数据重组系统,包括:接收单元,用于确定当前通用应用层GAL数据包,所述当前GAL数据包包括数据本体、GAL数据包的总包数、所述当前GAL数据包的包序号及周期号;第一判断单元,用于基于用于存储接收到的GAL数据包的存储模块的当前存储情况、所述当前GAL数据包的包序号及周期号判断所述当前GAL数据包的所处周期及在所处周期中的接收顺序是否均正确,若是,触发第二判断单元;所述第二判断单元,用于基于所述总包数及包序号判断所述当前GAL数据包是否为当前周期的最后一个GAL数据包,若是,触发重组单元,否则,触发所述接收单元;所述重组单元,用于对当前周期所有接收到的GAL数据包中的数据本体进行重组。为解决上述技术问题,本专利技术还提供了一种数据重组装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述所述数据重组方法的步骤。为解决上述技术问题,本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述数据重组方法的步骤。本专利技术提供了一种数据重组方法,对GAL协议进行了更改,使得当前GAL数据包中除了包括数据本体还包括GAL数据包的总包数、当前GAL数据包的包序号及周期号,在后续校验时,基于用于存储接收到的GAL数据包的存储模块的当前存储情况、当前GAL数据包的包序号及周期号便能够判断当前GAL数据包的所在周期及在所在周期中的接收顺序是否正确,在基于总包数和包序号判定数据接收完毕时,对所有接收到的GAL数据包中的数据本体进行重组。可见,通过该种方式可以避免不同周期的GAL数据包进行重组,且能够保证本周期的GAL数据包按照顺序被完整的接收,保证了接收的数据的完整性,提高了数据重组的正确性。本专利技术还提供了一种数据重组系统、装置及计算机可读存储介质,具有与上述数据重组方法相同的有益效果。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种数据重组方法的过程流程图;图2为本专利技术提供的另一种数据重组方法的过程流程图;图3为本专利技术提供的一种数据重组系统的结构示意图;图4为本专利技术提供的一种数据重组装置的结构示意图。具体实施方式本专利技术的核心是提供一种数据本文档来自技高网...
【技术保护点】
1.一种数据重组方法,其特征在于,包括:/nS11:确定当前通用应用层GAL数据包,所述当前GAL数据包包括数据本体、GAL数据包的总包数、所述当前GAL数据包的包序号及周期号;/nS12:基于用于存储接收到的GAL数据包的存储模块的当前存储情况、所述当前GAL数据包的包序号及周期号判断所述当前GAL数据包的所处周期及在所处周期中的接收顺序是否均正确,若是,进入S13;/nS13:基于所述总包数及包序号判断所述当前GAL数据包是否为当前周期的最后一个GAL数据包,若是,进入S14,否则,返回S11;/nS14:对当前周期所有接收到的GAL数据包中的数据本体进行重组。/n
【技术特征摘要】
1.一种数据重组方法,其特征在于,包括:
S11:确定当前通用应用层GAL数据包,所述当前GAL数据包包括数据本体、GAL数据包的总包数、所述当前GAL数据包的包序号及周期号;
S12:基于用于存储接收到的GAL数据包的存储模块的当前存储情况、所述当前GAL数据包的包序号及周期号判断所述当前GAL数据包的所处周期及在所处周期中的接收顺序是否均正确,若是,进入S13;
S13:基于所述总包数及包序号判断所述当前GAL数据包是否为当前周期的最后一个GAL数据包,若是,进入S14,否则,返回S11;
S14:对当前周期所有接收到的GAL数据包中的数据本体进行重组。
2.如权利要求1所述的数据重组方法,其特征在于,所述数据本体设置于多个信息包中,所述当前GAL数据包还包括信息包的数量和长度;
S11之后,还包括:
基于所述信息包的数量和长度计算所述当前GAL数据包中所有信息包数据的总长度;
判断所述总长度是否不大于GAL数据包限制的长度阈值,若是,进入S12。
3.如权利要求2所述的数据重组方法,其特征在于,还包括:
若所述总长度大于GAL数据包限制的长度阈值,则判定本次数据重组失败,并发出第一警报。
4.如权利要求1所述的数据重组方法,其特征在于,当前周期中所有GAL数据包的包序号分别为1、2…N,N为所述总包数;
S13包括:
判断所述当前GAL数据包的包序号是否等于所述总包数,若是,进入S14,否则,返回S11。
5.如权利要求1所述的数据重组方法,其特征在于,所述存储模块为消息缓存队列。
6.如权利要求1所述的数据重组方法,其特征在于,还包括:
若基于用于存储接收到的GAL数据包的存储模块的当前存储情况、所述当前GAL数据包的包序号及周期号判断所述当前GAL数据包的所处周期及在所处周期中的接收顺序不全正确,判定本次数据重组失败,且发出第二警...
【专利技术属性】
技术研发人员:宋岩,耿宏亮,李启翮,温抿雄,宋沛东,屈永正,李涛,
申请(专利权)人:湖南中车时代通信信号有限公司,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。