基于实时数据分发服务的大数据包传输方法及装置制造方法及图纸

技术编号:23163913 阅读:69 留言:0更新日期:2020-01-21 22:25
本发明专利技术公开一种基于实时数据分发服务的大数据包传输方法及装置,所述方法包括:构建小数据包发布订阅库,初始化;发布方发布大数据包主题,订阅方订阅大数据包主题;发送数据时,将大数据包分成若干个小数据包并填入相关数据信息后存入发送队列,通过异步发送线程发送数据分包;订阅方接收到首个数据分包时创建对应大数据包大小的缓存区,将接收到的数据分包按编号拷贝至对应区域;订阅方接收到最后一个数据分包时校验数据的完整性并反馈给发布方;发布方若接收到丢包反馈信息则重发丢失数据分包直至所有订阅方接收到全部数据分包。本发明专利技术提供了具备收敛性的数据分包重传机制,占用系统内存小且传输实时性高,还导出了简单易用的接口。

【技术实现步骤摘要】
基于实时数据分发服务的大数据包传输方法及装置
本专利技术涉及数据传输
,具体涉及一种基于实时数据分发服务的大数据包传输方法及装置。
技术介绍
实时数据分发服务(DataDistributionService,DDS)中的发布/订阅模型具有异步、无中心节点、松耦合和多对多通信的特点,已经成为构建大型分布式系统的基础,在诸多领域得到了广泛应用。目前,各类商用DDS产品在高效分发事件或者通知消息等小数据包上已经非常成熟,但是对大数据包(超出传输协议的允许范围,如UDP协议为64K)的分发还存在不足之处,一方面是系统的内存资源消耗较大,一方面是传输大数据包的数据重传机制存在比较明显的缺陷。商用DDS产品在传输大数据包时,发布方会将大数据包分成若干个小数据分包并连续发送,接收方接收到所有数据分包后将其重新组装成完整的大数据包。当数据包较大时,受限于网络状况,即使应用了流控制服务质量策略也很难成功接收到全部的数据分包,导致重组大数据包失败,进而被接收方自动丢弃。虽然DDS提供了可靠传输服务质量策略,但该策略对应的数据粒度为整个大数据包,因此当本文档来自技高网...

【技术保护点】
1.一种基于实时数据分发服务的大数据包传输方法,其特征在于,所述方法包括:/nS1、构建小数据包发布订阅库,初始化DDS域参与者;/nS2、发布方发布大数据包主题时,基于所述小数据包发布订阅库发布实际数据主题并订阅反馈信息主题,同时创建FIFO发送队列、启动异步发送线程;/nS3、订阅方订阅大数据包主题时,基于所述小数据包发布订阅库订阅实际数据主题并发布反馈信息主题,同时启动数据处理线程;/nS4、发布方发送数据时,将大数据包分成若干个小数据包并在每个数据分包中填入相关数据信息后存入所述发送队列,通过所述异步发送线程发送数据分包;/nS5、订阅方接收到首个数据分包时创建对应大数据包大小的缓存区...

【技术特征摘要】
1.一种基于实时数据分发服务的大数据包传输方法,其特征在于,所述方法包括:
S1、构建小数据包发布订阅库,初始化DDS域参与者;
S2、发布方发布大数据包主题时,基于所述小数据包发布订阅库发布实际数据主题并订阅反馈信息主题,同时创建FIFO发送队列、启动异步发送线程;
S3、订阅方订阅大数据包主题时,基于所述小数据包发布订阅库订阅实际数据主题并发布反馈信息主题,同时启动数据处理线程;
S4、发布方发送数据时,将大数据包分成若干个小数据包并在每个数据分包中填入相关数据信息后存入所述发送队列,通过所述异步发送线程发送数据分包;
S5、订阅方接收到首个数据分包时创建对应大数据包大小的缓存区,将接收到的数据分包按编号拷贝至对应区域;
S6、订阅方接收到最后一个数据分包时校验数据的完整性,如果数据完整则将数据分包重新组装为完整大数据包并传递给应用层,同时将传输成功信息反馈给发布方,如果不完整则将丢失数据分包信息及发布方Guid信息反馈给发布方;
S7、发布方接收反馈信息,若接收到所有订阅方的传输成功信息则继续发送下一个大数据包,若接收到丢包反馈信息则重发丢失数据分包直至所有订阅方接收到全部数据分包。


2.根据权利要求1所述基于实时数据分发服务的大数据包传输方法,其特征在于,所述步骤S2中,发布方通过DDS发现机制获取所述实际数据主题所有订阅者的Guid并存入发布订阅关系表;所述异步发送线程周期性检测所述实际数据主题所有订阅者的Guid,并实时更新所述发布订阅关系表。


3.根据权利要求1所述基于实时数据分发服务的大数据包传输方法,其特征在于,所述步骤S3中,所述相关数据信息包括大数据包编号、分包数、大数据包长度、数据分包编号、数据分包长度、数据分包发送完成标识以及数据分包实际内容信息。


4.根据权利要求3所述基于实时数据分发服务的大数据包传输方法,其特征在于,所述步骤S4中,通过所述异步发送线程发送数据分包的具体过程为:
所述异步发送线程取出所述发送队列中的首个大数据包,根据数据分包状态信息将对应的数据分包依次发送到网络上;所述数据分包状态信息按位标记对应编号数据分包的状态,0表示对应编号数据分包需要发送或者重发,1表示对应编号数据分包已被全部订阅方接收;发布方遍历所述数据分包状态信息,将编号最大且位值为0的数据分包标识为最后一个分包。


5.根据权利要求4所述基于实时数据分发服务的大数据包传输方法,其特征在于,所述步骤S5中,接收数据分包时,如果收到的数据分包中大数据包编号小于订阅方留存的当前编号,表示收到了之前的重复数据,丢弃该分包;每个数据分包附带发布方的Guid信息,如果订阅方检测到存在多个发布方在发送数据,则创建对应发布方个数的缓存区。


6.根据权利要求1所述基于实时数据分发服务的大数据包传输方法,其特征在于,所述步骤S6中,所述丢失数据分包信息按位标记对应编号数据分包的状态,0表示对应编号数据分包未被接收,1表示对应编号数据分包已被接收。


7.根据权利要求1所述基于实时数据分发服务的大数据包传输方法,其特征在于...

【专利技术属性】
技术研发人员:徐中中尹章文李俊
申请(专利权)人:中国船舶重工集团公司第七零九研究所
类型:发明
国别省市:湖北;42

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

1