System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通信,尤其涉及一种通信群组同步数据的方法、装置及存储介质。
技术介绍
1、集群指若干个相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,集群中的每台计算机都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。
2、然而,在集群群组内,组长端通常需要将数据文件同步发送到群组内所有的组员端;如果组长端中有大量通信数据需要同步,每次便都会将大量通信数据进行无差别同步至组员端中,而大量通信数据在集群群组内部进行传输时,会存在拥塞、乱序等情况,进而导致丢包,使得数据传输可靠性较低。
技术实现思路
1、本专利技术提供一种通信群组同步数据的方法、装置及存储介质,用以解决集群群组内部丢包问题,从而提升通信群组内部大量数据同步的效率、可靠性和稳定性。
2、第一方面,本专利技术提供一种通信群组同步数据的方法,所述方法包括:
3、获取待同步数据,判定所述待同步数据与上一次已同步数据是否一致;若一致,则不同步;若不一致,则将所述待同步数据依次进行压缩、分片,得到多个数据报文;
4、将所述数据报文传输给组员端后,生成对应的重传报文并加入重传区域;
5、接收所述组员端的确认报文,将与所述确认报文所对应的重传报文从所述重传区域删除;其中,所述数据报文、所述重传报文和所述确认报文一一对应且帧格式相同;
6、定时判定是否接收到所有与所述数据报文
7、进一步的,判定所述待同步数据与上一次已同步数据是否一致的方法包括:
8、基于所述待同步数据得到对应的待同步md5值;
9、将所述待同步md5值与上一次已同步数据对应的已同步md5值进行比较并判断是否相同。
10、进一步的,若所述待同步md5值与所述已同步md5值不一致,则利用所述待同步md5值覆盖所述已同步md5值。
11、进一步的,将所述重传报文加入重传区域包括:基于所述重传报文的报文序列号将所述重传报文从小到大排列,得到重传队列;其中,报文序列号小的重传报文在重传队列头部,报文序列号大的重传报文在重传队列尾部。
12、进一步的,所述确认报文的生成方式包括:逐一判定组员端已接收的所述数据报文是否为目标报文序列号;若是,则将已接收的所述数据报文存入组员端的环形缓存区域,生成对应的确认报文。
13、进一步的,将与所述确认报文所对应的重传报文从所述重传区域删除包括:
14、将环形缓存区域中的多个所述数据报文的报文序列号按照环形队列依次进行排列;
15、在预设时间内,排列队伍中若存在多个报文序列号相互连续且包含最小序列号,则获取连续报文序列号队伍中的最大序列号,生成所述最大序列号所对应的最大确认报文;
16、接收最大确认报文,删除重传队列中小于或等于与所述最大序列号的的重传报文。
17、进一步的,所述帧格式包括:ip头、报文类型、报文长度、报文序列号和载荷。
18、进一步的,所述方法还包括:
19、定时查询重传队列,若在发送所述数据报文后超过预设时间内未收到确认报文,便会重发所述数据报文;
20、重传次数随着重发所述数据报文而不断递增,达到预设次数后,重新设置所述预设时间。
21、第二方面,本专利技术提供了一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述任一项所述方法的步骤。
22、第三方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一项所述方法的步骤。
23、总体而言,本专利技术提供一种通信群组同步数据的方法、装置及存储介质,通过本专利技术所构思的技术方案,与现有技术相比能够取得下列有益效果:
24、第一,设置重传区域和环形缓存区域,以实现报文的重传和确认,防止数据传输过程出现丢包,能够提升群组数据同步的可靠性;
25、第二,将需要待同步数据先进行压缩、分片,能够减少群组内部同步数据的大小,很大程度上提升群组同步数据的性能;
26、第三,通过计算文件的md5值来确认文件是否曾经发送过,从而减少非必要的文件同步;
27、第四,利用最大序列号和最小序列号,使得可以直接一次性删除重传队列中小于或等于与最大序列号的的重传报文,不必一次一次删除重传报文;另外,也避免每收到一个数据报文便生出一个确认报文,这样可以减少生成不必要确认报文,提高报文处理效率,也在很大程度上提升了群组同步数据的效率。
本文档来自技高网...【技术保护点】
1.一种通信群组同步数据的方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种通信群组同步数据的方法,其特征在于,判定所述待同步数据与上一次已同步数据是否一致的方法包括:
3.如权利要求2所述的一种通信群组同步数据的方法,其特征在于,若所述待同步md5值与所述已同步md5值不一致,则利用所述待同步md5值覆盖所述已同步md5值。
4.如权利要求1所述的一种通信群组同步数据的方法,其特征在于,将所述重传报文加入重传区域包括:基于所述重传报文的报文序列号将所述重传报文从小到大排列,得到重传队列;其中,报文序列号小的重传报文在重传队列头部,报文序列号大的重传报文在重传队列尾部。
5.如权利要求1所述的一种通信群组同步数据的方法,其特征在于,所述确认报文的生成方式包括:逐一判定组员端已接收的所述数据报文是否为目标报文序列号;若是,则将已接收的所述数据报文存入组员端的环形缓存区域,生成对应的确认报文。
6.如权利要求5所述的一种通信群组同步数据的方法,其特征在于,将与所述确认报文所对应的重传报文从所述重传区域删除包括:
...【技术特征摘要】
1.一种通信群组同步数据的方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种通信群组同步数据的方法,其特征在于,判定所述待同步数据与上一次已同步数据是否一致的方法包括:
3.如权利要求2所述的一种通信群组同步数据的方法,其特征在于,若所述待同步md5值与所述已同步md5值不一致,则利用所述待同步md5值覆盖所述已同步md5值。
4.如权利要求1所述的一种通信群组同步数据的方法,其特征在于,将所述重传报文加入重传区域包括:基于所述重传报文的报文序列号将所述重传报文从小到大排列,得到重传队列;其中,报文序列号小的重传报文在重传队列头部,报文序列号大的重传报文在重传队列尾部。
5.如权利要求1所述的一种通信群组同步数据的方法,其特征在于,所述确认报文的生成方式包括:逐一判定组员端已接收的所述数据报文是否为目标报文序列号;若是,则将已接收的所述...
【专利技术属性】
技术研发人员:康金华,温玉屏,张祖平,董贤伟,王召,黄洋,蔡超,吴志兵,吴艳初,魏继军,魏姗,杨挺,张鸿禹,王旭明,朱清,万楚阳,叶浪,刘智,宋良平,邓超,李小莉,廖国锋,成科,操伟,伍力伟,
申请(专利权)人:武汉船舶通信研究所中国船舶集团有限公司第七二二研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。