一种用于通过多路径可靠传输数据的接收方无关方案的制作方法

专利2025-11-28  2


本发明涉及一种接收方无关方案,用于通过多路径将数据从发送方设备可靠传输到接收方设备。本发明的发送方设备可以对于要发送到接收方设备的多个数据包中的每个数据包,选择多个路径中的一个路径,以发送数据包。本发明的发送方设备还能够应用使用选择重传的传输协议来进行数据包的多路径发送。


背景技术:

1、在现代数据中心中,数据包可能会因拥塞而丢失。因此,需要一种可靠传输数据包的协议。此类协议的示例有传输控制协议(transmission control protocol,tcp)和远程直接内存访问(remote direct memory access,rdma)。在这些协议中,接收方设备通知发送方设备已接收到哪些数据包,由发送方设备决定哪些数据包必须重传。在某些情况下,为了提高吞吐量并减少延迟,发送方设备可以通过多个路径将其流量拆分到接收方设备,称为“多路径传输”。

2、然而,当使用这种多路径传输时,可能会在接收方设备处无序接收到数据包,这就使发送方设备决定重传哪个数据包以及何时重传数据包变得更加复杂。因此,多路径传输并不总能提高吞吐量,其对吞吐量的影响取决于使用了哪些路径、这些路径的负载情况以及替代路径的负载情况。


技术实现思路

1、本发明及其方案进一步基于以下考虑。

2、发送方设备可实时确定增加一个路径或删除一个路径是否有益,以便以最佳方式使用多路径传输。让发送方设备在不涉及接收方设备的情况下做出此类决定可能会更高效,在这种情况下,接收方设备与使用一个路径还是多个路径以及使用哪些路径无关。

3、本发明旨在提出一种将数据包的可靠传输与多路径相结合的方案,使得接收方设备不必知道发送方设备是使用一个路径还是多个路径。目标是在两种情况下,接收方设备都能以相同的方式工作。因此,本发明涉及发送方设备和接收方设备支持选择重传的场景。另一个目标是使发送方设备能够决定使用多少个路径,而无需与接收方设备协调。此外,本发明旨在使发送方设备能够动态地改变所使用的路径,例如,根据路径的可用性和拥塞控制考虑。

4、这通过独立权利要求中描述的本发明的方案来实现。有利的实现方式在从属权利要求中定义。

5、本发明的第一方面提供了一种用于将数据包发送到接收方设备的发送方设备,所述发送方设备用于:确定所述发送方设备与所述接收方设备之间的一个或多个路径的集合;对于每个数据包,选择所述路径集合中的一个路径,用于将所述数据包发送到所述接收方设备;对于每个数据包,维护路径信息,所述路径信息指示将所述数据包发送到所述接收方设备所使用的所述选择的路径;接收来自所述接收方设备的反馈消息,其中,所述反馈消息包括一个或多个数据包中的每个数据包的状态信息;基于所述反馈消息,确定是否应将缺失数据包视为丢失;基于所述缺失数据包的所述路径信息以及在与所述缺失数据包相同的路径上传输到所述接收方设备的一个或多个其它数据包的所述状态信息,确定是否重传所述缺失数据包。

6、所述发送方设备用于基于所述缺失数据包的所述路径信息以及所述反馈消息中包括的用于在与所述缺失数据包相同的路径上传输的所述一个或多个其它数据包的所述状态信息,确定是否应将缺失数据包视为丢失。所述发送方设备基于底层单路径传输协议的规则决定是否以及何时重传缺失数据包。需要说明的是,缺失数据包可以是尽管已经接收到序列号更高的数据包,但在接收方设备处没有接收的数据包。缺失数据包可以被所述发送方设备视为丢失,在这种情况下,所述发送方设备可以重传所述缺失数据包。然而,由于存在一个或多个数据包发送路径的可能性,因此所述发送方设备并不一定要将所述接收方设备处的每个缺失数据包都视为丢失。

7、因此,第一方面的所述发送方设备可以支持多路径选择重传,其中涉及重传被视为丢失的缺失数据包,并且因此提供了一种用于通过多路径可靠传输数据包的方案。本发明中的所述接收方设备可以与所述选择的路径无关,并且不必知道所述发送方设备使用的是单个路径还是多个路径。在这两种情况下,所述接收方设备的功能可以是相同的,并且所述接收方设备可以是支持基于标准(单路径)选择重传的协议的传统接收方设备。

8、所述发送方设备可以决定使用多少个路径,而无需与所述接收方设备协调。此外,所述发送方设备可以根据路径的可用性和根据一个或多个拥塞控制考虑,动态地改变所使用的路径集合。所述发送方设备可以根据逐路径拥塞控制或以任何其它方式决定在所述路径集合中的哪个路径上发送哪个数据包。只能使用一个序列号空间集合,即每个数据包只能有一个序列号。这可能意味着只有一个数据包被分配了特定的序列号,即,特定的序列号不会被分配给两个以上的数据包。这可能与其它多路径传输协议(如多路径tcp)不同,后者使用两个序列号空间,即每个数据包有两个序列号,每个路径一个序列号,整个连接一个序列号。

9、在所述第一方面的一种实现方式中,每个数据包的所述状态信息指示所述数据包是否已被所述接收方设备接收或在所述接收方设备处丢失。

10、因此,所述发送方设备可以基于所述状态信息确定被视为丢失的缺失数据包,还可以基于所述状态信息决定是否对被视为丢失的所述数据包进行重传。

11、在所述第一方面的一种实现方式中,如果所述反馈消息指示序列号大于所述缺失数据包的序列号的数据包已在所述接收方设备处被接收,则所述发送方设备用于:如果所述接收到的数据包在与所述缺失数据包不同的路径上发送到所述接收方设备,则不将所述缺失数据包视为丢失,并且不重传所述缺失数据包。

12、尽管所述缺失数据包只是暂时丢失(而不是完全丢失),但这可以避免所述缺失数据包被重传,因为所述缺失数据包是在不同的路径上发送的。

13、在所述第一方面的一种实现方式中,如果所述接收到的数据包在与所述缺失数据包相同的路径上发送到所述接收方设备,并且如果用于发送所述数据包的所述底层传输协议要求重传,则所述发送方设备用于:将所述缺失数据包视为丢失并重传所述缺失数据包。

14、在这种情况下,所述缺失数据包被视为丢失,并出于可靠性的原因进行重传。

15、在所述第一方面的一种实现方式中,所述发送方设备用于在与将数据包传输到所述接收方设备所使用的路径相同的路径上重传所述缺失数据包。

16、这简化了对不同路径上发送的数据包的跟踪。

17、在所述第一方面的一种实现方式中,所述发送方设备用于:从所述接收方设备接收另一个反馈消息,其中,所述另一个反馈消息指示序列号大于所述缺失数据包的序列号的另一个接收到的数据包已在所述接收方设备处被接收;如果所述另一个接收到的数据包在与所述缺失数据包相同的路径上发送到所述接收方设备,并且如果用于发送所述数据包的所述底层传输协议要求重传,则将所述缺失数据包视为丢失并重传所述缺失数据包。

18、也就是说,对于每个接收的反馈消息,所述反馈消息可以周期性地或在某些事件之后从所述接收方设备接收,所述发送方设备可以重新评估是否将缺失数据包视为丢失,并相应地重传所述缺失数据包。

19、在所述第一方面的一种实现方式中,所述发送方设备用于:为了确定所述路径集合,从所述发送方设备与所述接收方设备之间的所有可用路径中选择所述一个或多个路径。

20、在所述第一方面的一种实现方式中,所述发送方设备用于:基于对所述发送方设备与所述接收方设备之间的可用路径执行逐路径拥塞控制的结果,确定所述路径集合。

21、这样可以避免在这些路径上发送的数据包因拥塞而延迟或丢失。

22、在所述第一方面的一种实现方式中,所述发送方设备用于:基于一个或多个拥塞控制考虑,为每个数据包选择用于将所述数据包发送到所述接收方设备的路径。

23、例如,所述发送方设备可以基于关于特定数据包的考虑(例如,优先级)和/或关于路径的考虑(例如,当前拥塞、通过该路径所需的时间等)来确定在哪个路径上发送特定数据包。

24、在所述第一方面的一种实现方式中,所述发送方设备用于将新路径添加到所述路径集合。

25、在所述第一方面的一种实现方式中,所述发送方设备用于从所述路径集合中删除路径。

26、在所述第一方面的一种实现方式中,所述发送方设备用于:为了从所述路径集合中删除所述路径:停止在所述待删除的路径上发送数据包;在所述待删除的路径上重传任何缺失数据包;如果在所述待删除的路径上传输或重传的所有数据包在所述接收方设备处被接收,将所述待删除的路径从所述路径集合中删除。

27、这样可以在不影响所述数据包传输的情况下删除所述路径。

28、在所述第一方面的一种实现方式中,所述发送方设备用于:如果要重传一个或多个缺失数据包所使用的路径发生故障,则在所述路径集合的一个或多个其它路径上重传所述一个或多个缺失数据包。

29、因此,提高了发送所述数据包的可靠性。

30、在所述第一方面的一种实现方式中,所述反馈消息是确认(acknowledgment,ack)消息、否定ack(negative ack,nack)消息、选择性ack(selective ack,sack)消息。

31、本发明的第二方面提供了一种用于将数据包从发送方设备发送到接收方设备的方法设备,所述方法包括:确定所述发送方设备与所述接收方设备之间的一个或多个路径的集合;对于每个数据包,选择所述路径集合中的一个路径,用于将所述数据包发送到所述接收方设备;对于每个数据包,维护路径信息,所述路径信息指示将所述数据包发送到所述接收方设备所使用的所述选择的路径;接收来自所述接收方设备的反馈消息,其中,所述反馈消息包括一个或多个数据包中的每个数据包的状态信息;基于所述反馈消息,确定是否应将缺失数据包视为丢失;基于所述缺失数据包的所述路径信息以及在与所述缺失数据包相同的路径上传输到所述接收方设备的一个或多个其它数据包的所述状态信息,确定是否重传所述缺失数据包。

32、在所述第二方面的一种实现方式中,每个数据包的所述状态信息指示所述数据包是否已被所述接收方设备接收或在所述接收方设备处丢失。

33、所述方法可以包括基于所述状态信息确定缺失数据包,并且还可以基于所述状态信息确定是否将缺失数据包丢视为失并相应地重传所述缺失数据包。

34、在所述第二方面的一种实现方式中,如果所述反馈消息指示序列号大于所述缺失数据包的序列号的数据包已在所述接收方设备处被接收,则所述方法包括:如果接收到的数据包在与所述缺失数据包不同的路径上发送到所述接收方设备,则不将所述缺失数据包视为丢失,并且不重传所述缺失数据包。

35、在所述第二方面的一种实现方式中,如果所述接收的数据包在与所述缺失数据包相同的路径上发送到所述接收方设备,并且如果用于发送所述数据包的所述底层传输协议要求重传,则所述方法包括:将所述缺失数据包视为丢失并重传所述缺失数据包。

36、在所述第二方面的一种实现方式中,所述方法包括在与首次将数据包传输到所述接收方设备所使用的路径相同的路径上重传所述缺失数据包。

37、在所述第二方面的一种实现方式中,所述方法包括:从所述接收方设备接收另一个反馈消息,其中,所述另一个反馈消息指示序列号大于所述缺失数据包的序列号的另一个接收到的数据包已在所述接收方设备处被接收;如果所述另一个接收到的数据包在与所述缺失数据包相同的路径上发送到所述接收方设备,并且如果用于发送所述数据包的所述底层传输协议要求重传,则将所述缺失数据包视为丢失并重传所述缺失数据包。

38、在所述第二方面的一种实现方式中,所述方法包括:为了确定所述路径集合,从所述发送方设备与所述接收方设备之间的所有可用路径中选择所述一个或多个路径。

39、在所述第二方面的一种实现方式中,所述方法包括:基于对所述发送方设备与所述接收方设备之间的可用路径执行逐路径拥塞控制的结果,确定所述路径集合。

40、在所述第二方面的一种实现方式中,所述方法包括:基于一个或多个拥塞控制考虑,为每个数据包选择用于将所述数据包发送到所述接收方设备的路径。

41、在所述第二方面的一种实现方式中,所述方法包括用于将新路径添加到所述路径集合。

42、在所述第二方面的一种实现方式中,所述方法包括从所述路径集合中删除路径。

43、在所述第二方面的一种实现方式中,所述方法包括:为了从所述路径集合中删除所述路径,停止在所述待删除的路径上发送数据包;在所述待删除的路径上重传任何缺失数据包;如果在所述待删除的路径上传输或重传的所有数据包在所述接收方设备处被接收,将所述待删除的路径从所述路径集合中删除。

44、在所述第二方面的一种实现方式中,所述方法包括:如果要重传一个或多个缺失数据包所使用的路径发生故障,则在所述路径集合的一个或多个其它路径上重传所述一个或多个缺失数据包。

45、在所述第二方面的一种实现方式中,所述反馈消息是确认(acknowledgment,ack)消息、否定ack(negative ack,nack)消息、选择性ack(selective ack,sack)消息。

46、第二方面的方法及其实现方式实现了上述第一方面的所述发送方设备及其各实现方式相同的优点。

47、本发明的第三方面提供了一种计算机程序,所述计算机程序包括指令,当所述程序由计算机执行时,所述指令使所述计算机执行根据第二方面或其实现方式中的任一种实现方式所述的方法。

48、本发明的第四方面提供了一种存储介质,所述存储介质存储可执行程序代码,当由处理器执行时,所述可执行程序代码使根据第二方面或其实现方式中的任一种实现方式所述的方法被执行。

49、需要说明的是,本技术中描述的所有设备、元件、单元和装置可以在软件或硬件元件或其任何类型的组合中实现。本技术中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体用于执行相应步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。


技术特征:

1.一种用于将数据包(101)发送到接收方设备(110)的发送方设备(100),其特征在于,所述发送方设备(100)用于:

2.根据权利要求1所述的发送方设备(100),其特征在于,每个数据包(101)的所述状态信息(103)指示所述数据包(101)是否已被所述接收方设备(110)接收或在所述接收方设备(110)处丢失。

3.根据权利要求1或2所述的发送方设备(100),其特征在于,所述发送方设备(100)用于:如果所述反馈消息(111)指示序列号大于所述缺失数据包(101)的序列号的数据包(101)已在所述接收方设备(110)处被接收,则:

4.根据权利要求3所述的发送方设备(100),其特征在于,所述发送方设备(100)用于:

5.根据权利要求4所述的发送方设备(100),其特征在于,所述发送方设备(100)还用于:

6.根据权利要求3所述的发送方设备(100),其特征在于,所述发送方设备(100)还用于:

7.根据权利要求1至6中任一项所述的发送方设备(100),其特征在于,所述发送方设备(100)用于:为了确定所述路径(102)集合,从所述发送方设备(100)与所述接收方设备(110)之间的所有可用路径(102)中选择所述一个或多个路径(102)。

8.根据权利要求1至7中任一项所述的发送方设备(100),其特征在于,所述发送方设备(100)还用于基于对所述发送方设备(100)与所述接收方设备(110)之间的可用路径(102)执行逐路径拥塞控制的结果,确定所述路径(102)集合。

9.根据权利要求1至8中任一项所述的发送方设备(100),其特征在于,所述发送方设备(100)还用于对于每个数据包(101),基于一个或多个拥塞控制考虑选择用于将所述数据包(101)发送到所述接收方设备(110)的路径(102)。

10.根据权利要求1至9中任一项所述的发送方设备(100),其特征在于,所述发送方设备(100)还用于将新路径(102)添加到所述路径(102)集合。

11.根据权利要求1至10中任一项所述的发送方设备(100),其特征在于,所述发送方设备(100)还用于从所述路径(102)集合中删除路径(102)。

12.根据权利要求11所述的发送方设备(100),其特征在于,所述发送方设备(100)用于:为了从所述路径(102)集合中删除所述路径:

13.根据权利要求1至12中任一项所述的发送方设备(100),其特征在于,所述发送方设备(100)还用于:如果要重传一个或多个缺失数据包(101)所使用的路径(102)发生故障,则在所述路径(102)集合的一个或多个其它路径(102)上重传所述一个或多个缺失数据包(101)。

14.根据权利要求1至11中任一项所述的发送方设备(100),其特征在于,所述反馈消息(111)是确认(acknowledgment,ack)消息、否定ack(negative ack,nack)消息、选择性ack(selective ack,sack)消息。

15.一种用于将数据包(101)从发送方设备(100)发送到接收方设备(110)的方法(300),其特征在于,所述方法(300)包括:

16.一种计算机程序,其特征在于,所述计算机程序包括指令,当所述程序由计算机执行时,所述指令使得所述计算机执行根据权利要求15所述的方法(300)。


技术总结
本发明提供了一种接收方无关方案,用于通过多路径将数据从发送方设备可靠传输到接收方设备。所述发送方设备确定到所述接收方设备的一个或多个路径的集合,并且,对于每个数据包,选择所述路径中一个路径以发送所述数据包。此外,所述发送方设备对于每个数据包维护路径信息,所述路径信息指示发送所述数据包所使用的所述选择的路径。当所述发送方设备从所述接收方设备接收到包括一个或多个数据包中的每个数据包的状态信息的反馈消息时,所述发送方设备可以基于所述反馈消息确定是否将缺失数据包视为丢失;基于所述缺失数据包的所述路径信息以及在与所述缺失数据包相同的路径上传输到所述接收方设备的一个或多个其它数据包的所述状态信息,确定是否重传所述缺失数据包。

技术研发人员:鲁文·科恩,本-沙哈尔·贝尔彻
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/11/11
转载请注明原文地址: https://tieba.8miu.com/read-17872.html

最新回复(0)