数据重传方法、装置、电子设备及计算机程序产品与流程
本发明涉及通信,尤其是一种数据重传方法、装置、电子设备及计算机程序产品。
背景技术:
1、随着人工智能训练、高性能计算和分布式存储等数据密集型应用的快速发展,远程直接内存访问(rdma)技术因其极低的cpu开销和微秒级延迟特性,已成为现代数据中心网络的核心传输协议。其中,基于融合以太网的rdma(rocev2)协议凭借其良好的以太网兼容性,获得了广泛部署。
2、然而,rocev2在可靠连接(rc)模式下采用的go-back-n重传机制存在严重的性能缺陷。当网络发生丢包时,发送端必须从丢失数据包开始重传整个发送窗口内的所有数据包,即使这些数据包已经正确到达接收端。这种重传策略造成了巨大的带宽浪费,在高速网络环境中尤为严重。
3、现有解决方案主要集中在端到端的优化上,如调整拥塞控制参数、优化缓冲区管理等,但这些方法均无法从根本上突破go-back-n的固有局限性。另一方面,传统tcp协议虽然支持选择性确认(sack)机制,但其软件实现的处理延迟无法满足rdma的微秒级性能要求。
4、因此,亟需一种能够与现有rocev2协议兼容,同时又能突破go-back-n限制的新型重传机制,以满足下一代数据中心网络对高吞吐、低延迟和高可靠性的严苛要求。
技术实现思路
1、本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
2、为此,本发明实施例的一个目的在于提供一种数据重传方法,该方法避免了go-back-n机制的大规模冗余重传,提升了网络有效吞吐率和可靠性,降低了数据传输延迟。
3、本发明实施例的另一个目的在于提供一种数据重传装置。
4、为了达到上述技术目的,本发明实施例所采取的技术方案包括:
5、一方面,本发明实施例提供了一种数据重传方法,包括以下步骤:
6、通过发送端按照psn序号发送目标数据包,并通过重传缓冲区缓存所述目标数据包的副本;
7、当中间设备检测到所述目标数据包丢包,生成对应的lnp控制报文,并将所述lnp控制报文发送至接收端和所述发送端;
8、当所述接收端接收到所述lnp控制报文,根据所述lnp控制报文确定目标psn序号,并根据所述目标psn序号将所述接收端的乱序到达包基于dma技术传输至用户内存并映射到数据位图中进行标记;
9、当所述发送端接收到所述lnp控制报文,根据所述lnp控制报文确定目标psn序号,并根据所述目标psn序号从所述重传缓冲区缓存的所述副本中确定重传数据包,进而对所述重传数据包进行选择重传;
10、当所述接收端接收到所述重传数据包,根据所述数据位图对所述重传数据包进行psn连续性验证,并在验证通过后将所述重传数据包基于dma技术传输至所述用户内存。
11、进一步地,在本发明的一个实施例中,所述通过发送端按照psn序号发送目标数据包,并通过重传缓冲区缓存所述目标数据包的副本,具体包括:
12、当所述发送端接收到应用层的数据发送请求,根据所述数据发送请求确定所述目标数据包,并为所述目标数据包分配对应的所述psn序号;
13、按照所述psn序号将所述目标数据包加入到发送队列,将所述目标数据包的副本复制到所述重传缓冲区并存储所述副本与所述psn序号的映射关系;
14、根据所述发送队列向所述接收端发送所述目标数据包。
15、进一步地,在本发明的一个实施例中,所述当中间设备检测到所述目标数据包丢包,生成对应的lnp控制报文,并将所述lnp控制报文发送至接收端和所述发送端,具体包括:
16、通过所述中间设备监控所述发送端的发送队列;
17、当所述发送队列发生丢包,确定被丢包的所述目标数据包的对应的所述目标psn序号,并根据所述目标psn序号生成所述lnp控制报文;
18、通过控制报文队列将所述lnp控制报文发送至所述接收端和所述发送端。
19、进一步地,在本发明的一个实施例中,所述根据所述lnp控制报文确定目标psn序号,并根据所述目标psn序号将所述接收端的乱序到达包基于dma技术传输至用户内存并映射到数据位图中进行标记,具体包括:
20、解析所述lnp控制报文得到所述目标psn序号,在所述接收端记录所述目标psn序号对应的所述目标数据包已丢失;
21、当psn序号大于所述目标psn序号的第一数据包到达所述接收端,确定所述第一数据包为所述乱序到达包;
22、根据所述乱序到达包解析得到对应的第一虚拟地址,并根据所述第一虚拟地址基于dma技术将所述乱序到达包传输至所述用户内存;
23、将所述乱序到达包对应的所述psn序号映射到所述数据位图中进行标记。
24、进一步地,在本发明的一个实施例中,所述根据所述lnp控制报文确定目标psn序号,并根据所述目标psn序号从所述重传缓冲区缓存的所述副本中确定重传数据包,进而对所述重传数据包进行选择重传,具体包括:
25、解析所述lnp控制报文得到所述目标psn序号,在所述发送端记录所述目标psn序号对应的所述目标数据包已丢失;
26、根据所述目标psn序号在所述重传缓冲区中查询得到的对应的目标副本,并根据所述目标副本生成所述重传数据包;
27、将所述重传数据包加入到发送队列,并根据所述发送队列向所述接收端发送所述重传数据包。
28、进一步地,在本发明的一个实施例中,所述根据所述数据位图对所述重传数据包进行psn连续性验证,并在验证通过后将所述重传数据包基于dma技术传输至所述用户内存,具体包括:
29、确定所述重传数据包对应的所述目标psn序号,并判断所述数据位图中是否缺失所述目标psn序号以及是否存在位于所述目标psn序号前/后的psn序号;
30、当所述数据位图中缺失所述目标psn序号,且存在位于所述目标psn序号之前和之后的psn序号,确定psn连续性验证通过,并根据所述重传数据包解析得到对应的第二虚拟地址;
31、根据所述第二虚拟地址基于dma技术将所述重传数据包传输至所述用户内存,并将所述重传数据包对应的所述目标psn序号映射到所述数据位图中进行标记。
32、进一步地,在本发明的一个实施例中,所述数据位图用于记录所述目标数据包的接收状态,所述数据位图中每个比特位对应一个所述psn序号,当所述比特位为1,表示对应psn序号的所述目标数据包已接收,当所述比特位为0,表示对应psn序号的所述目标数据包未接收。
33、另一方面,本发明实施例提供了一种数据重传装置,包括:
34、数据包发送模块,用于通过发送端按照psn序号发送目标数据包,并通过重传缓冲区缓存所述目标数据包的副本;
35、发送检测模块,用于当中间设备检测到所述目标数据包丢包,生成对应的lnp控制报文,并将所述lnp控制报文发送至接收端和所述发送端;
36、乱序到达包处理模块,用于当所述接收端接收到所述lnp控制报文,根据所述lnp控制报文确定目标psn序号,并根据所述目标psn序号将所述接收端的乱序到达包基于dma技术传输至用户内存并映射到数据位图中进行标记;
37、数据包重传模块,用于当所述发送端接收到所述lnp控制报文,根据所述lnp控制报文确定目标psn序号,并根据所述目标psn序号从所述重传缓冲区缓存的所述副本中确定重传数据包,进而对所述重传数据包进行选择重传;
38、重传数据包处理模块,用于当所述接收端接收到所述重传数据包,根据所述数据位图对所述重传数据包进行psn连续性验证,并在验证通过后将所述重传数据包基于dma技术传输至所述用户内存。
39、另一方面,本发明实施例提供了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述计算机程序被所述处理器执行时实现如前面所述的数据重传方法。
40、另一方面,本发明实施例还提供了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如前面所述的数据重传方法。
41、另一方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前面所述的数据重传方法。
42、本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
43、本发明实施例通过发送端按照psn序号发送目标数据包,并通过重传缓冲区缓存目标数据包的副本,当中间设备检测到目标数据包丢包,生成对应的lnp控制报文,并将lnp控制报文发送至接收端和发送端,当接收端接收到lnp控制报文,根据lnp控制报文确定目标psn序号,并根据目标psn序号将接收端的乱序到达包基于dma技术传输至用户内存并映射到数据位图中进行标记,当发送端接收到lnp控制报文,根据lnp控制报文确定目标psn序号,并根据目标psn序号从重传缓冲区缓存的副本中确定重传数据包,进而对重传数据包进行选择重传,当接收端接收到重传数据包,根据数据位图对重传数据包进行psn连续性验证,并在验证通过后将重传数据包基于dma技术传输至用户内存。本发明实施例通过中间网络设备主动检测并精准通知丢失数据包的psn序号,使发送端仅重传特定丢失包而非整个发送窗口,从根本上避免了go-back-n机制的大规模冗余重传,提升了网络有效吞吐率,降低了数据传输延迟;接收端在获知丢包信息后可提前将乱序到达的有效数据包直接放置至用户内存,打破传统严格按序处理的限制,大幅降低丢包恢复对上层应用性能的影响;通过lnp控制报文建立中间设备-发送端-接收端的三方协同机制,实现网络设备深度参与传输可靠性保障,构建智能化的端网协同数据平面,增强了网络对突发拥塞和瞬时丢包的应对能力,提升了网络服务稳定性。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com