CN118264620A - 用于多路径网络上的灵活负载均衡的计算系统和方法 - Google Patents
用于多路径网络上的灵活负载均衡的计算系统和方法 Download PDFInfo
- Publication number
- CN118264620A CN118264620A CN202410352507.7A CN202410352507A CN118264620A CN 118264620 A CN118264620 A CN 118264620A CN 202410352507 A CN202410352507 A CN 202410352507A CN 118264620 A CN118264620 A CN 118264620A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- congestion
- path
- load balancing
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 155
- 238000004891 communication Methods 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims description 17
- 241001522296 Erithacus rubecula Species 0.000 claims description 13
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101100396152 Arabidopsis thaliana IAA19 gene Proteins 0.000 description 2
- 102100039292 Cbp/p300-interacting transactivator 1 Human genes 0.000 description 2
- 101000888413 Homo sapiens Cbp/p300-interacting transactivator 1 Proteins 0.000 description 2
- 101100274486 Mus musculus Cited2 gene Proteins 0.000 description 2
- 101150096622 Smr2 gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了用于多路径网络上的灵活负载均衡的计算系统和方法。该计算系统包括:处理器,该处理器将多路径传输协议实现为网络栈的传输层;负载均衡器,该负载均衡器跨多条路径分发网络流量;以及拥塞控制器,该拥塞控制器与负载均衡器进行通信。拥塞控制器基于从负载均衡器接收的信息来确定针对消息的参数。负载均衡器中包括的调度器基于从拥塞控制器接收的消息的参数来从多种负载均衡算法中选择负载均衡算法,并且基于所选择的负载均衡算法来确定针对要被发送到传输层的消息的定时和路径。
Description
背景技术
多路径传输协议能够使用多条网络路径来为单个连接发送数据,从而提高吞吐量和带宽可用性。网络流量由负载均衡器跨多条网络路径分发,这增强了应用的容量和可靠性。拥塞控制器通过限制一次能够发送的数据量来防止或消除沿着路径的拥塞。然而,如以下所讨论的,在多路径网络上的负载均衡方面仍有改进的机会,特别是关于负载均衡器与拥塞控制器之间的合作。
发明内容
鉴于这些问题,提供了用于多路径网络上的灵活负载均衡的计算系统和方法。在一个方面,计算系统包括处理器、负载均衡器和拥塞控制器。处理器将多路径传输协议实现为网络栈的用户数据报协议层之上的传输层。负载均衡器包括调度器,并且被配置为跨多条路径分发网络流量。拥塞控制器与负载均衡器进行通信,并且被配置为基于从负载均衡器接收的信息来确定针对消息的参数。调度器基于从拥塞控制器接收的消息的参数来从多种负载均衡算法中选择负载均衡算法,并且基于所选择的负载均衡算法来确定针对要被发送到传输层的消息的定时和路径。
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中被进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决本公开的任何部分中提到的任何缺点或所有缺点的实现方式。
附图说明
图1示出了根据本公开的一个实施例的用于多路径网络上的灵活负载均衡的计算系统的示意图。
图2示出了由图1的计算系统实现的多路径转发的示例。
图3示出了针对图1的计算系统的每条路径,负载均衡器与拥塞控制器之间的通信的示意图。
图4示出了针对图1的计算系统的用于发送方与接收方之间的调度器和拥塞控制器的示例框架。
图5示出了用于图1的计算系统的路径上的分组的队列模型。
图6A-图6C示出了针对图1的计算系统的跨共享路径的负载均衡的示例。
图7示出了用于多路径网络上的灵活负载均衡的方法的流程图,该方法可以由图1的计算系统或其他合适的硬件和软件来实现。
图8示出了可以实现图1的计算系统的示例计算环境的示意图。
具体实施方式
多路径传输协议为单个连接使用多条网络路径。这种配置的好处是可以对带宽进行组合或“汇集(pool)”以产生高吞吐量和高可用性时间,这是因为来自单个消息的分组可以同时在多条路径上发送。在常规的多路径系统中,调度器将在往返延迟时间最短最平滑的路径上发送消息和/或分组。然而,往返延迟时间最短的路径可能比往返延迟时间较长的路径具有更高的分组丢失率。对于优先考虑最短时间内高准确率的消息,往返延迟时间最短的路径的分组丢失率可能是不可接受的。另外,消息的分组可以跨多条路径被同等地发送,而不管消息参数如何。当分组丢失或超时时,原始路径可能被严重拥塞或具有断开的链路,从而需要在不同路径上重新发送分组,这可能导致更长的消息完成时间,即滞后。
如图1中示意性示出的,为了解决上述问题,提供了用于多路径网络上的灵活负载均衡的计算系统10。计算系统10被示为包括第一计算设备12和第二计算设备18,第一计算设备12包括存储器16和一个或多个处理器14,第二计算设备18包括存储器22和一个或多个处理器20,其中第一计算设备12和第二计算设备18经由网络24彼此通信。所示的实现方式本质上是示例性的,并且其他配置也是可能的。在以下对图1的描述中,第一计算设备将被描述为服务器计算设备12,并且第二计算设备将被描述为客户端计算设备18,并且将描述在每个设备处执行的相应功能。将会理解,在其他配置中,第一计算设备可以是不同于服务器计算设备12的计算设备。在一些配置中,计算系统10可以包括执行服务器计算设备12和客户端计算设备18两者的突出功能的单个计算设备。在其他替代配置中,被描述为在客户端计算设备18处执行的功能可以替代地在服务器计算设备12处被执行,反之亦然。
继续图1,例如,服务器计算设备12可以采取托管在应用数据中心处的自动化服务器的形式。替代地,例如,出于性能、安全、隐私和/或出口合规性的原因,服务器计算设备12可以被配置为在客户端的控制下被托管在客户端指定的数据中心处。如上所讨论的,服务器计算设备12包括一个或多个处理器14以及相关联的存储器16。一个或多个处理器14被配置为使用相关联的存储器16的部分来执行指令,以实现多路径传输协议(MTP)26、负载均衡器28和拥塞控制器30。MTP 26被实现为网络栈32中的传输层。网络栈32还可以包括应用层34、远程程序调用(RPC)层36、用户数据报协议(UDP)层38、互联网协议(IP)层40、数据链路层42和物理层44。
如图1所示,MTP 26在网络栈32的UDP层38之上实现。MTP 26允许消息和/或分组跨发送方与接收方(即,服务器计算设备12与客户端计算设备18)之间的多路径网络的多条路径P被同时发送。
简要转向图2,示出了计算系统10的服务器计算设备12与客户端计算设备18之间的多路径网络的示例。如图所示,对于单个连接存在多条网络路径P。当在网络接口控制器(NIC)上启用接收侧扩展(RSS)(即,多队列接收)时,跨多个接收队列分发网络接收处理,这允许多个设备处理入站流量。RSS基于每个分组的报头来为其选择接收队列,以跨队列均匀地分发流量,然后每个路由器处的路由协议跨多条路径对分组流进行分流。
这样,在所示的示例中,消息MSG的分组从服务器计算设备12经由第一路由器R1沿着第一路径P1(短划线)、第二路径P2(点划线)、第三路径P3(长短短点划线)和/或第四路径P4(长长短点划线)发送到客户端计算设备18处的第七路由器R7。P1经过第二路由器R2和第四路由器R4;P2经过第六路由器R6和第四路由器R4;P3经过第六路由器R6和第五路由器R5,并且P4经过第三路由器R3和第五路由器R5。这种方法实现了高吞吐量和增加的可用性时间。虽然所示的示例示出了四条路径和七个路由器,但是将会理解的是,多路径转发网络可以包括任何合适数目的路径和路由器。
返回图1,UDP层38提供尽力而为(best-effort)的消息传递服务,但是缺乏任何流控制、拥塞控制或错误控制。负载均衡器28被配置为跨多条路径分发网络流量,并且拥塞控制器30控制消息和/或分组进入到网络中以避免拥塞崩溃。如本文详细描述的,负载均衡器28和拥塞控制器30交换信息,以确定用于将消息和/或分组发送到网络栈32的传输层的一条或多条路径。
负载均衡器28包括调度器46和负载均衡算法池48,负载均衡算法池48包括多种负载均衡算法。如下面参考图3详细描述的,例如,调度器46接收关于消息的信息,诸如优先级、分组丢失感知、大小、准确性要求等,并且将消息信息发送到拥塞控制器30。基于从调度器46接收的信息,拥塞控制器30确定针对消息的参数50,并且将消息参数50返回给调度器46。调度器46然后基于消息参数50而从负载均衡算法池48中选择负载均衡算法。基于所选择的负载均衡算法,调度器46确定针对要被发送到传输层的消息的定时和路径。然后,消息从服务器计算设备12被发送到客户端计算设备18的网络栈52,消息在网络栈中与应用54进行交互。
如图1所示以及以下参考图3所详细描述的,服务器计算设备12还包括路径监测器56,路径监测器56接收多路径网络中的每条路径P的路径信息58。路径监测器52还被配置为:基于路径信息58,从包括多种拥塞控制算法的拥塞控制算法池60中为每条路径P选择拥塞控制算法。所选择的拥塞控制算法基于路径信息58来确定每条相应路径P的路径状态。同样如图1所示以及以下所详细描述的,调度器46被配置为:基于消息的属性,从包括多种调度算法的调度算法池62中选择调度算法。
图3示出了针对计算系统10的每条路径P,负载均衡器28与拥塞控制器30之间的通信的示意图。如图所示,消息队列64包括消息66A、66B,消息中的每个消息具有相应的一个或多个分组68A、68B,并且存在三条路径PA、PB、PC能够发送消息66A、66B和分组68A、68B。路径监测器58接收每条路径PA、PB、PC的路径信息58,诸如在途(in-flight)消息的数目、待传送消息的总剩余大小、平均往返时间、最新往返时间、最短往返时间、无拥塞平均发送速率、无拥塞最新发送速率、拥塞通知和分组丢失率。虽然所示的示例针对所有路径包括一个路径监测器,但是将会理解,每条路径可以具有单独的路径监测器。
基于路径信息58,路径监测器56从拥塞控制器30的拥塞控制算法池60中为每条路径PA、PB、PC选择拥塞控制算法。所选择的拥塞控制算法基于路径信息58来确定每条路径PA、PB、PC的状态。拥塞控制器30向调度器46发送针对每条路径的状态的拥塞控制信息70,包括发送速率和拥塞窗口。调度器46然后从负载均衡算法池48中选择负载均衡算法,该负载均衡算法确定消息是否将被发送到传输层以及消息何时被发送。
如以上所讨论的,调度器46还接收关于消息68A、68B的消息信息72,诸如优先级、分组丢失感知、大小、准确性要求等。该信息作为负载均衡(LB)信息74被从负载均衡器28发送到拥塞控制器30,拥塞控制器30可以基于消息信息72来确定是否需要改变所选择的拥塞控制算法和/或拥塞控制参数中的一项或多项。调度器46然后为每个消息和/或分组确定定时T和路径P(T&P)76。这样,负载均衡器28与拥塞控制器30之间的通信是具有从负载均衡器28到拥塞控制器30的正反馈的闭环。
图4示出了用于服务器计算设备12与客户端计算设备18之间的调度器46和拥塞控制器30的示例框架。如图所示,服务器计算设备12具有服务器元套接字78,服务器元套接字78包括发送缓冲区80,即要被发送的消息的队列。在处理“next_message”命令时,调度器46被配置为从发送缓冲区80接收一个或多个消息,并且确定发送该消息的一条或多条路径。消息可以基于窗口可用性而被发送到调度器46,或者当消息未能到达客户端计算设备18的网络栈52时作为重传。
然后在调度器46处理“get_path”命令以返回针对消息的路径P。消息经由拥塞控制器30在所确定的路径P上被发送到客户端计算设备18。如以下参考图6A和图6B所述,一个或多个消息可以在多条路径P上被发送,因此以不同于其发送次序的次序到达,形成无序(out of order,OOO)队列82。重组器84重新排列OOO队列82中的消息以恢复发送次序,并且将它们发送到作为接收缓冲区88的客户端元套接字86。
当需要一条或多条附加路径P时,负载均衡器28可以向调度器46发送“init(sk)”命令以调用新路径P。类似地,当不再需要路径P时,拥塞控制器30可以向调度器46发送“release(sk)”命令以关闭不需要的路径P。
在图5中示出了用于从服务器计算设备12到客户端计算设备18的路径P上的消息的队列模型90。要被发送的消息92正在等待进入路径,如短划线所指示的,而发送方队列94、中间盒队列96和接收方队列98中的消息一起确定发送队列长度。沿着路径的当前队列长度qi可以如下面的等式1所示来估计。
其中cwndi是第i条路径的拥塞窗口,RTTi是第i条路径的往返时间(RTT),RTTi_min是第i条路径的最小RTT,如由中间盒队列96中的消息和接收方队列98中的消息所确定的,并且发送队列长度由发送方队列94、中间盒队列96和接收方队列98中的消息之和来确定。
如上所述,调度器从包括多种负载均衡算法的负载均衡算法池48中选择负载均衡算法。多种负载均衡算法包括最早完成优先算法、延迟决策算法和最稳定路径算法。
当消息信息72指示消息能够沿其最高效地完成数据传送的路径是所期望的时,最早完成优先算法被选择。该算法是基于消息大小和平滑发送速率的,如下面的等式2所示。
其中,Ci是在第i条路径被选择并且Rate_smooth是平滑发送速率的情况下,完成数据传输的时间。当消息大小较小时,它更有可能被分配给总的剩余消息大小较小且RTT较小的路径。相比之下,较大的消息更有可能被分配给最新发送速率较大的路径。
如果所有路径都已满并且无法接受更多消息,则可以选择延迟决策算法。完成针对第i条路径上的消息的数据传输的时间可以如下面的等式3所示进行估计。
当网络条件突然改变时和/或当应用接收缓冲区较小时,调度器46可以取消低重要性消息的传输,以优先考虑优先的消息的传输。将会理解的是,考虑整个消息而不是单个分组,并且消息完成时间包括为应用传送文件和帧所需的时间。
当分组丢失感知和准确性很重要时,可以选择最稳定路径算法。可以基于RTT稳定性来确定最稳定路径,如下面的等式4所示。
其中Vi是第i条路径的方差。
附加地或替代地,可以基于发送速率稳定性来确定最稳定路径,如下面的等式5所示。
除了上述的LB算法之外,调度算法也可以用于多路径网络的灵活负载均衡。可以基于消息的属性从调度算法池62中选择这些算法。
当优先级不是因素时,可以使用循环(round robin)调度算法。加权循环的算法可以是基于平滑发送速率的,如下面的等式6所示。
Wi=Rate_smoothi (6)
其中Wi是第i条路径的权重,并且等于第i条路径的平滑发送速率的值。附加地或替代地,用于加权循环的算法可以基于拥塞窗口中剩下的空间,如下面的等式7所示。
Wi=CNDW_lefti (7)
其中Wi是第i条路径的权重,并且等于第i条路径的拥塞窗口中剩下的空间的值(CNDW_lefti)。
例如,可以使用其他调度算法来选择如下路径:具有队列中总大小最小或分组的数目最小的路径、在最新多次往返中分组丢失量最小的路径、最新RTT最小的路径和/或平滑RTT最小的路径。
如上所讨论的,路径监测器52基于路径信息58从拥塞控制算法池60中针对每条路径P选择拥塞控制算法。例如,路径信息可以包括在途消息的数目、待传送消息的总剩余大小、平均往返时间、最新往返时间、最短往返时间、无拥塞平均发送速率、无拥塞最新发送速率、拥塞通知和分组丢失率。
可以基于路径在一段时间内的平滑RTT来确定路径的平均RTT,如下面的等式8所示。
RTT_smooth:=α×RTT_latest+(1-α)×RTT_smooth (8)
其中RTT_latest是最新测试的RTT且0<α<1,并且用于调整历史影响。当α=1时,仅考虑RTT_latest。
类似地,可以基于无拥塞路径的平滑发送速率来确定路径上的平均发送速率,如下面的等式9所示。
SendRate_smooth:=α×SendRate_latest+(1-α)×SendRate_smooth (9)
其中SendRate_smooth是平均发送速率,其指示潜在带宽,并且SendRate_latest是无拥塞路径上的最新发送速率。
端到端队列长度采样可以用于检测拥塞。当前队列长度可以如下面的等式10所示被估计。
其中w是拥塞控制窗口的大小,RTT是采样的RTT时间,并且是RTTmin最小观测RTT,其用作网络传播延迟的估计。
当向服务器计算设备12传输确认(ACK)以指示在客户端计算设备18处接收到消息的所有分组时,路径的当前网络队列长度q可以如上面参考等式1所描述的进行估计,并且与阈值T队列长度进行比较。用拥塞标记对用于在当前队列长度q大于阈值T队列长度的路径上被传输的分组的ACK打上标签。当来自相同窗口的所有分组都被确认时,可以计算拥塞,如下面的等式11所示。
其中F是拥塞的路径的百分比,并且ECN是显式拥塞通知。然后可以应用指数移动平均(EMA)滤波器来确定网络拥塞水平,如下面的等式12所示。
C:=α×F+(1-α)×C (12)
其中C是网络拥塞水平且0<α<1,并且用于调整历史影响。当α=1时,仅考虑当前拥塞水平。
可以根据由C指示的网络拥塞水平来为每个RTT更新路径的拥塞窗口,如下面的等式13所示。
其中ωi是第i条路径的拥塞水平。
因此,当网络拥塞处于低水平时,使窗口减小较小的值;否则,使窗口显著减小以缓解高度网络拥塞。
图6A示出了用于根据不同传输协议发送的消息的共享链路的示例。在所示的示例中,第一服务器计算设备12A经由MTP向第一客户端计算设备18A发送第一消息MSG1,如短划线和点划线所指示的。第二服务器计算设备12B经由TCP向第二客户端计算设备18B发送第二消息MSG2,如长短短点划线所指示的。消息MSG1、MSG2在被递送到相应的客户端计算设备18A、18B之前,通过第一路由器R1和第二路由器R2进行路由。如所指示的,路由器R1、R2之间的连接是共享链路。当多路径连接与单径连接共享链路(诸如TCP)时,如果带宽没有被公平地共享,则TCP连接可能会资源匮乏。
为了解决这个问题,当实现多路径传输协议的服务器计算机设备12接收到ACK时,拥塞控制器30被配置为将拥塞窗口大小增加1/n,其中n是路径的数目。当路径的数目较大时,每条路径的拥塞窗口较小导致超时概率增加、时延增加、OOO可能性增加、硬件资源使用率高以及吞吐量下降。路径的数目由这些参数动态地决定。每个连接具有优先级值(其默认值为1)。每个新连接登记其优先级值,并且记录优先级值之和。拥塞控制器30接收资源使用率和优先级和,并且配置路径的最佳数目,如下面的等式14所示。
其中a的默认值为0.8。协商路径数必须满足两个端点(即,客户端计算设备18A、18B)的要求。这如下面的等式15进行确定。
negotiated_PathNumi:=min{optimal_PathNumi,optimal_PathNum′i} (15)
对资源使用率的更新被周期性地发送到拥塞控制器30,拥塞控制器30根据需要调整其连接中的路径的数目。
图6B和图6C示出了连接C之间的公平性的示例。如图6B所示,连接C1需要第一带宽BW1的2/3。剩余的1/3BW1被分配给第二连接C2的第一部分。第二连接C2的第二部分使用第二带宽BW2的1/3,并且剩余的2/3BW2被分配给第三连接C3。图6C示出了分布在两个带宽BW1、BW2上的两个连接C1、C2。第一连接C1需要2/3BW2。第二连接C2需要比可用BW2更多的BW,因此第二连接C2的第一部分使用全部BW2,并且第二连接C2的剩余的第二部分使用未被第一连接C1使用的1/3BW1。
图7示出了用于多路径网络上的灵活负载均衡的方法700的流程图。方法700可以由以上描述的计算系统10的硬件和软件来实现,或者由其他合适的硬件和软件来实现。在步骤702,方法700可以包括将多路径传输协议实现为网络栈的用户数据报协议层之上的传输层。从步骤702进行到步骤704,方法700还可以包括由包括调度器的负载均衡器跨多条路径分发网络流量。分发网络流量避免了在从发送方计算设备向接收方计算设备传输消息时的拥塞。
从步骤704前进到步骤706,方法700还可以包括由与负载均衡器进行通信的拥塞控制器基于从调度器接收的信息来确定针对消息的参数。如以上所讨论的,负载均衡器和拥塞控制器可以包括具有从负载均衡器到拥塞控制器的正反馈的闭环。从调度器接收的信息可以包括优先级和分组丢失感知中的至少一项。
从步骤706继续到步骤708,方法700还可以包括:由调度器基于从拥塞控制器接收的消息的参数,从多种负载均衡算法中选择负载均衡算法。多种负载均衡算法可以包括最早完成优先算法、延迟决策算法和最稳定路径算法。
调度器还可以从多种调度算法中选择调度算法。多种调度算法可以包括循环算法、加权循环算法、最小消息大小算法、最少分组丢失算法、最小往返时间算法和最小平滑往返时间算法。
路径监测器可以基于路径信息,从多种拥塞控制算法中为多条路径中的每条路径选择拥塞控制算法。路径信息可以包括在途消息的数目、待传送消息的总剩余大小、平均往返时间、最新往返时间、最短往返时间、无拥塞平均发送速率、无拥塞最新发送速率、拥塞通知和分组丢失率。拥塞控制算法可以基于路径信息来确定每条相应路径的路径状态。
从步骤708进行到步骤710,方法700还可以包括:由调度器基于所选择的负载均衡算法来确定针对要被发送到传输层的消息的定时和多条路径中的路径。
在一些实施例中,本文描述的方法和过程可以与一个或多个计算设备的计算系统相关联。特别地,这样的方法和过程可以被实现为计算机应用程序或服务、应用编程接口(API)、库和/或其他计算机程序产品。
图8示意性地示出了可以实施以上描述的方法和过程中的一个或多个方法和过程的计算系统800的非限制性实施例。计算系统800以简化形式被示出。计算系统800可以包含如以上所描述的并在图1中示出的计算机设备10。计算系统800可以采取如下的形式:一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备以及可穿戴计算设备(诸如智能手表和头戴式增强现实设备)。
计算系统800包括逻辑处理器802、易失性存储器804和非易失性存储设备806。计算系统800可以可选地包括显示子系统808、输入子系统810、通信子系统812和/或图8中未示出的其他组件。
逻辑处理器802包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。可以实现这样的指令来执行任务、实现数据类型、变换一个或多个组件的状态、达到技术效果或以其他方式到达期望的结果。
逻辑处理器可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。附加地或替代地,逻辑处理器可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器802的处理器可以是单核或多核的,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式的处理。逻辑处理器的各个组件可选地可以分布在两个或更多个单独的设备当中,这些单独的设备可以位于远程和/或被配置用于协调处理。逻辑处理器的各方面可以被虚拟化并且由在云计算配置中配置的可远程访问的联网计算设备来执行。将会理解,在这样的情况下,这些虚拟化方面在各种不同机器的不同物理逻辑处理器上运行。
非易失性存储设备806包括被配置为保存可由逻辑处理器执行以实现本文描述的方法和过程的指令的一个或多个物理设备。当实现这样的方法和过程时,非易失性存储设备806的状态可以被变换——以例如保存不同的数据。
非易失性存储设备806可以包括可移动和/或内置的物理设备。非易失性存储设备806可以包括光学存储器(例如,CD、DVD、HD-DVD等)、半导体存储器(例如,ROM、EPROM、EEPROM、闪存等)、和/或磁性存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)或其他大容量存储设备技术。非易失性存储设备806可以包括非易失性、动态、静态、读/写、只读、顺序存取、位置可寻址、文件可寻址和/或内容可寻址的设备。将会理解,非易失性存储设备806被配置为即使在非易失性存储设备806断电时也保存指令。
易失性存储器804可以包括包含随机存取存储器的物理设备。易失性存储器804通常由逻辑处理器802用来在软件指令的处理期间临时存储信息。将会理解,当易失性存储器804断电时,易失性存储器804通常不会继续存储指令。
逻辑处理器802、易失性存储器804和非易失性存储设备806的各方面可以被一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序和应用特定的集成电路(PASIC/ASIC)、程序和应用特定的标准产品(PSSP/ASSP)、片上系统(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可以用于描述计算系统800的通常由处理器在软件中实现以使用易失性存储器的部分来执行特定功能的方面,该功能涉及专门配置处理器来执行功能的变换处理。因此,使用易失性存储器804的部分,可以经由执行由非易失性存储设备806保存的指令的逻辑处理器802来实例化模块、程序或引擎。将会理解,可以从相同的应用、服务、代码块、对象、库、例程、API、函数等中实例化不同的模块、程序和/或引擎。同样,可以由不同的应用、服务、代码块、对象、例程、API、函数等来实例化相同的模块、程序和/或引擎。术语“模块”、“程序”和“引擎”可以涵盖单个的或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
当包括显示子系统808时,显示子系统808可以用于呈现由非易失性存储设备806保存的数据的视觉表示。视觉表示可以采取图形用户界面(GUI)的形式。由于本文描述的方法和过程改变了由非易失性存储设备保存的数据、从而变换了非易失性存储设备的状态,因此显示子系统808的状态同样可以被变换以可视地表示底层数据的变化。显示子系统808可以包括利用几乎任何类型技术的一个或多个显示设备。这样的显示设备可以与逻辑处理器802、易失性存储器804和/或非易失性存储设备806组合在共享外壳中,或者这样的显示设备可以是外围显示设备。
当包括输入子系统810时,输入子系统810可以包括一个或多个用户输入设备(诸如键盘、鼠标、触摸屏、触摸板、相机或麦克风),或者与一个或多个用户输入设备接口。
当包括通信子系统812时,通信子系统812可以被配置为将本文描述的各种计算设备彼此通信地耦合以及与其他设备通信地耦合。通信子系统812可以包括与一种或多种不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置用于经由无线电话网络或者有线或无线局域网或广域网进行通信。在一些实施例中,通信子系统可以允许计算系统800经由网络(诸如互联网)向其他设备发送消息和/或从其他设备接收消息。
以下段落提供了对本公开各方面的附加描述。一个方面提供了一种用于多路径网络上的灵活负载均衡的计算系统。计算系统可以包括处理器、负载均衡器和拥塞控制器。处理器可以使用相关联的存储器的部分执行指令以实现多路径传输协议。多路径传输协议可以被实现为网络栈的用户数据报协议层之上的传输层。负载均衡器可以跨多条路径分发网络流量。负载均衡器可以包括调度器。拥塞控制器可以与负载均衡器进行通信,并且拥塞控制器可以被配置为基于从调度器接收的信息来确定针对消息的参数。调度器可以基于从拥塞控制器接收的消息的参数来从多种负载均衡算法中选择负载均衡算法。基于所选择的负载均衡算法,调度器可以确定针对要被发送到传输层的消息的定时和多条路径中的路径。
在这个方面,附加地或替代地,负载均衡器和拥塞控制器可以包括具有从负载均衡器到拥塞控制器的正反馈的闭环。
在这个方面,附加地或替代地,多种负载均衡算法可以包括最早完成优先算法、延迟决策算法和最稳定路径算法。
在这个方面,附加地或替代地,信息可以包括优先级和分组丢失感知中的至少一项。
在这个方面,附加地或替代地,调度器还可以被配置为从多种调度算法中选择调度算法。
在这个方面,附加地或替代地,多种调度算法可以包括循环算法、加权循环算法、最小消息大小算法、最少分组丢失算法、最小往返时间算法和最小平滑往返时间算法。
在这个方面,附加地或替代地,系统还可以包括路径监测器。路径监测器可以被配置为接收路径信息。路径信息可以包括在途消息的数目、待传送消息的总剩余大小、平均往返时间、最新往返时间、最短往返时间、无拥塞平均发送速率、无拥塞最新发送速率、拥塞通知和分组丢失率。
在这个方面,附加地或替代地,路径监测器还可以被配置为:基于路径信息,从多种拥塞控制算法中为多条路径中的每条路径选择拥塞控制算法。
在这个方面,附加地或替代地,所选择的拥塞控制算法可以基于路径信息来确定针对每条相应路径的路径状态。所选择的负载均衡算法可以确定消息是否将被发送到传输层以及该消息何时被发送。
在这个方面,附加地或替代地,当处理器接收到针对所发送的消息的接收的确认时,拥塞控制器可以被配置为将拥塞窗口大小增加1/n,其中n是路径数。
另一方面提供了一种用于多路径网络上的灵活负载均衡的方法。该方法可以包括:将多路径传输协议实现为网络栈的用户数据报协议层之上的传输层;由包括调度器的负载均衡器跨多条路径分发网络流量;由与负载均衡器进行通信的拥塞控制器基于从调度器接收的信息来确定针对消息的参数;由调度器基于从拥塞控制器接收的消息的参数来从多种负载均衡算法中选择负载均衡算法;以及由调度器基于所选择的负载均衡算法来确定针对要被发送到传输层的消息的定时和多条路径中的路径。
在这个方面,附加地或替代地,负载均衡器和拥塞控制器可以包括具有从负载均衡器到拥塞控制器的正反馈的闭环。
在这个方面,附加地或替代地,多种负载均衡算法可以包括最早完成优先算法、延迟决策算法和最稳定路径算法。
在这个方面,附加地或替代地,该方法还可以包括将优先级和分组丢失感知中的至少一项包括在信息中。
在这个方面,附加地或替代地,该方法还可以包括由调度器从多种调度算法中选择调度算法。
在这个方面,附加地或替代地,多种调度算法可以包括循环算法、加权循环算法、最小消息大小算法、最少分组丢失算法、最小往返时间算法和最小平滑往返时间算法。
在这个方面,附加地或替代地,该方法还可以包括由路径监测器接收路径信息,路径信息包括在途消息的数目、待传送消息的总剩余大小、平均往返时间、最新往返时间、最短往返时间、无拥塞平均发送速率、无拥塞最新发送速率、拥塞通知和分组丢失率。
在这个方面,附加地或替代地,该方法还可以包括由路径监测器基于路径信息来从多种拥塞控制算法中为多条路径中的每条路径选择拥塞控制算法。
在这个方面,附加地或替代地,该方法还可以包括由所选择的拥塞控制算法基于路径信息来确定针对每条相应路径的路径状态。
另一方面提供了一种用于多路径网络上的灵活负载均衡的计算系统。计算系统可以包括处理器、负载均衡器、拥塞控制器和路径监测器。处理器可以使用相关联的存储器的部分来执行指令以实现多路径传输协议。多路径传输协议可以被实现为网络栈的用户数据报协议层之上的传输层。负载均衡器可以跨多条路径分发网络流量。负载均衡器可以包括调度器。拥塞控制器可以与负载均衡器进行通信,并且拥塞控制器可以被配置为基于从调度器接收的信息来确定针对消息的参数。路径监测器可以被配置为接收路径信息。负载均衡器和拥塞控制器可以包括具有从负载均衡器到拥塞控制器的正反馈的闭环。调度器可以基于从拥塞控制器接收的消息的参数来从多种负载均衡算法中选择负载均衡算法。路径监测器可以基于路径信息来从多种拥塞控制算法中为多条路径中的每条路径选择拥塞控制算法。针对要被发送到传输层的消息的定时和多条路径中的路径基于所选择的负载均衡算法和所选择的拥塞控制算法而被确定。
将会理解,本文描述的配置和/或方法本质上是示例性的,并且这些具体实施例或示例不应被认为是限制性的,因为许多变化是可能的。本文描述的具体例程或方法可以代表任何数量的处理策略中的一个或多个处理策略。这样,所示出和/或描述的各种动作可以以所示出和/或描述的序列、以其他序列、并行地或省略地来执行。同样,上述过程的次序可以被改变。
本公开的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合,以及本文公开的其他特征、功能、动作和/或属性,及其任何和所有的等同物。
Claims (20)
1.一种用于多路径网络上的灵活负载均衡的计算系统,包括:
处理器,所述处理器使用相关联的存储器的部分来执行指令以实现多路径传输协议,所述多路径传输协议被实现为网络栈的用户数据报协议层之上的传输层;
负载均衡器,所述负载均衡器跨多条路径分发网络流量,所述负载均衡器包括调度器;以及
拥塞控制器,所述拥塞控制器与所述负载均衡器进行通信,所述拥塞控制器被配置为基于从所述调度器接收的信息来确定针对消息的参数,其中
所述调度器基于从所述拥塞控制器接收的所述消息的所述参数,从多种负载均衡算法中选择负载均衡算法,并且
基于所选择的所述负载均衡算法,所述调度器确定针对要被发送到所述传输层的所述消息的定时和所述多条路径中的路径。
2.根据权利要求1所述的计算系统,其中
所述负载均衡器和所述拥塞控制器包括具有从所述负载均衡器到所述拥塞控制器的正反馈的闭环。
3.根据权利要求1所述的计算系统,其中
所述多种负载均衡算法包括最早完成优先算法、延迟决策算法和最稳定路径算法。
4.根据权利要求1所述的计算系统,其中
所述信息包括优先级和分组丢失感知中的至少一项。
5.根据权利要求1所述的计算系统,其中
所述调度器还被配置为从多种调度算法中选择调度算法。
6.根据权利要求5所述的计算系统,其中
所述多种调度算法包括循环算法、加权循环算法、最小消息大小算法、最少分组丢失算法、最小往返时间算法和最小平滑往返时间算法。
7.根据权利要求1所述的计算系统,所述系统还包括:
路径监测器,被配置为接收路径信息,所述路径信息包括在途消息的数目、待传送消息的总剩余大小、平均往返时间、最新往返时间、最短往返时间、无拥塞平均发送速率、无拥塞最新发送速率、拥塞通知和分组丢失率。
8.根据权利要求7所述的计算系统,其中
所述路径监测器还被配置为:基于所述路径信息,从多种拥塞控制算法中为所述多条路径中的每条路径选择拥塞控制算法。
9.根据权利要求8所述的计算系统,其中
所选择的所述拥塞控制算法基于所述路径信息来确定针对每条相应路径的路径状态,并且
所选择的所述负载均衡算法确定消息是否将被发送到所述传输层、以及所述消息何时被发送。
10.根据权利要求1所述的计算系统,其中
当所述处理器接收到对于被发送的所述消息的接收的确认时,所述拥塞控制器被配置为将拥塞窗口大小增加1/n,其中n是路径数。
11.一种用于多路径网络上的灵活负载均衡的方法,所述方法包括:
将多路径传输协议实现为网络栈的用户数据报协议层之上的传输层;
由负载均衡器跨多条路径分发网络流量,所述负载均衡器包括调度器;
由拥塞控制器基于从所述调度器接收的信息来确定针对消息的参数,所述拥塞控制器与所述负载均衡器进行通信;
由所述调度器基于从所述拥塞控制器接收的所述消息的所述参数来从多种负载均衡算法中选择负载均衡算法;以及
由所述调度器基于所选择的所述负载均衡算法来确定针对要被发送到所述传输层的所述消息的定时和所述多条路径中的路径。
12.根据权利要求11所述的方法,其中
所述负载均衡器和所述拥塞控制器包括具有从所述负载均衡器到所述拥塞控制器的正反馈的闭环。
13.根据权利要求11所述的方法,其中
所述多种负载均衡算法包括最早完成优先算法、延迟决策算法和最稳定路径算法。
14.根据权利要求11所述的方法,所述方法还包括:
将优先级和分组丢失感知中的至少一项包括在所述信息中。
15.根据权利要求11所述的方法,所述方法还包括:
由所述调度器从多种调度算法中选择调度算法。
16.根据权利要求15所述的方法,其中
所述多种调度算法包括循环算法、加权循环算法、最小消息大小算法、最少分组丢失算法、最小往返时间算法和最小平滑往返时间算法。
17.根据权利要求11所述的方法,所述方法还包括:
由路径监测器接收路径信息,所述路径信息包括在途消息的数目、待传送消息的总剩余大小、平均往返时间、最新往返时间、最短往返时间、无拥塞平均发送速率、无拥塞最新发送速率、拥塞通知和分组丢失率。
18.根据权利要求17所述的方法,所述方法还包括:
由所述路径监测器基于所述路径信息,从多种拥塞控制算法中为所述多条路径中的每条路径选择拥塞控制算法。
19.根据权利要求18所述的方法,所述方法还包括:
由所选择的所述拥塞控制算法基于所述路径信息来确定针对每条相应路径的路径状态。
20.一种用于多路径网络上的灵活负载均衡的计算系统,包括:
处理器,所述处理器使用相关联的存储器的部分来执行指令以实现多路径传输协议,所述多路径传输协议被实现为网络栈的用户数据报协议层之上的传输层;
负载均衡器,所述负载均衡器跨多条路径分发网络流量,所述负载均衡器包括调度器;
拥塞控制器,所述拥塞控制器与所述负载均衡器进行通信,所述拥塞控制器被配置为基于从所述调度器接收的信息来确定针对消息的参数;以及
路径监测器,被配置为接收路径信息,其中
所述负载均衡器和所述拥塞控制器包括具有从所述负载均衡器到所述拥塞控制器的正反馈的闭环,
所述调度器基于从所述拥塞控制器接收的所述消息的所述参数,从多种负载均衡算法中选择负载均衡算法,
所述路径监测器基于所述路径信息,从多种拥塞控制算法中为所述多条路径中的每条路径选择拥塞控制算法,并且
针对要被发送到所述传输层的所述消息的定时和所述多条路径中的路径基于所选择的所述负载均衡算法和所选择的所述拥塞控制算法而被确定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/295,783 | 2023-04-04 | ||
US18/295,783 US20230246966A1 (en) | 2023-04-04 | 2023-04-04 | Flexible load balancing on multipath networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118264620A true CN118264620A (zh) | 2024-06-28 |
Family
ID=87432774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410352507.7A Pending CN118264620A (zh) | 2023-04-04 | 2024-03-26 | 用于多路径网络上的灵活负载均衡的计算系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230246966A1 (zh) |
CN (1) | CN118264620A (zh) |
-
2023
- 2023-04-04 US US18/295,783 patent/US20230246966A1/en active Pending
-
2024
- 2024-03-26 CN CN202410352507.7A patent/CN118264620A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230246966A1 (en) | 2023-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7173587B2 (ja) | パケット伝送システムおよび方法 | |
US10116574B2 (en) | System and method for improving TCP performance in virtualized environments | |
US11102129B2 (en) | Adjusting rate of outgoing data requests for avoiding incast congestion | |
Barré et al. | Multipath TCP: from theory to practice | |
EP2959645B1 (en) | Dynamic optimization of tcp connections | |
JP2019520745A5 (zh) | ||
US20050213507A1 (en) | Dynamically provisioning computer system resources | |
US11729108B2 (en) | Queue management in a forwarder | |
US10374945B1 (en) | Application-centric method to find relative paths | |
US10922250B2 (en) | Monitoring and steering service requests to acceleration components | |
Chaturvedi et al. | An adaptive and efficient packet scheduler for multipath TCP | |
Wang et al. | Predictable vFabric on informative data plane | |
US7869366B1 (en) | Application-aware rate control | |
WO2022155738A1 (en) | Systems and methods for push-based data communications | |
Iqbal et al. | Instant queue occupancy used for automatic traffic scheduling in data center networks | |
WO2018157819A1 (zh) | 多子流网络传输方法及装置 | |
CN118264620A (zh) | 用于多路径网络上的灵活负载均衡的计算系统和方法 | |
US20230254262A1 (en) | Computer network congestion control management | |
US11895031B2 (en) | Method and systems for reducing network latency | |
US8804521B1 (en) | Quality of service for inbound network traffic flows during slow-start phases | |
Wang et al. | An Incast-Coflow-Aware Minimum-Rate-Guaranteed Congestion Control Protocol for Datacenter Applications | |
CN117795926A (zh) | 复用会话中的数据封包优先级排序 | |
CN116366571A (zh) | 高性能连接调度器 | |
US8630174B1 (en) | System and method for post shaping TCP packetization | |
CN116389363A (zh) | 使用可部署int针对网络的拥塞控制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |