一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种BBR拥塞控制算法的性能优化方法与流程

2022-11-30 14:20:32 来源:中国专利 TAG:

一种bbr拥塞控制算法的性能优化方法
技术领域
1.本发明涉及计算机网络技术领域,具体涉及一种bbr拥塞控制算法的性能优化方法。


背景技术:

2.网络拥塞会导致网络性能下降甚至崩溃,拥塞控制是解决此问题的有效方式。随着网络基础设施的发展,传统的基于丢包的拥塞控制算法的缺点不断暴露出来,因此急需更加适合目前网络发展的新型拥塞控制算法。bbr拥塞控制算法旨在维持高发送速率的同时保持低延迟,并且已经部署在多个实际应用场景中,取得了显著的性能提升。
3.bbr拥塞控制算法不依赖丢包,而是通过周期性估计瓶颈链路带宽和往返传播时间来调整发送速率。由于其优秀的性能表现,目前正在逐渐取代传统的拥塞控制算法,在全球范围内广泛应用。因此,bbr拥塞控制算法性能的优化变得至关重要。已有的优化方法主要分为以下几种:(1)吞吐量:为了满足当前网络高速传输海量数据的需求,吞吐量是衡量拥塞控制算法性能的重要指标。在bbr拥塞控制算法的带宽探测阶段(probebw阶段),bbr拥塞控制算法先按照1.25的增益增加发送速率,以探测是否有多余可用的带宽资源,接着,按照0.75的增益快速降低发送速率,以排空上一阶段在缓冲区内产生的队列,然后平稳传输6个往返时间(round-trip time,rtt),以8个往返时间为一个周期,循环往复。但是8个往返时间的循环周期会导致bbr拥塞控制算法不能快速响应带宽的增加,造成带宽资源的浪费以及平均吞吐量的降低。将平稳传输的时间由6个往返时间降低至小于6个往返时间的随机值可以降低循环周期的长度,更灵敏地捕捉到带宽资源的增加,有利于平均吞吐量和带宽利用率的提高。另一方面,在bbr拥塞控制算法的时延探测阶段(probertt阶段),bbr拥塞控制算法会将拥塞窗口(congestion window,cwnd)设置为4个最大报文长度(maximum segment size,mss)来探测最小往返时间,这种排空探测的方法会导致吞吐量的大幅降低和波动。为了缓解这个问题,以bbr v2为代表的拥塞控制算法将cwnd降为50%而不是直接排空。
4.(2)公平性:公平性问题主要分为两类,即算法间公平性问题和算法内公平性问题。算法间公平性问题主要指bbr拥塞控制算法和cubic等拥塞控制算法共存时产生的带宽分配不均衡的问题。在丢包率较高的环境中,bbr拥塞控制算法和cubic拥塞控制算法竞争时,bbr拥塞控制算法往往会抢占90%以上的带宽资源,导致cubic拥塞控制算法几乎不可用。在丢包率较低的环境中,由于cubic拥塞控制算法会发送超量的数据占据瓶颈链路缓冲区直至丢包,导致cubic拥塞控制算法会压制bbr拥塞控制算法而抢占大部分的带宽。解决算法间公平性问题需要考虑bbr拥塞控制算法在各常见场景中与cubic、reno等传统拥塞控制算法的竞争情况,做到带宽分配的大致均衡。算法内公平性问题主要表现为多个不同往返时间的bbr流之间带宽分配的不均衡问题。长往返时间的bbr流占用了大部分带宽,而且即使两个bbr流之间的往返时间差异很小,带宽的不平衡现象也相当严重。目前已有的解决方案通过减少长往返时间的bbr流的探测时间提高往返时间公平性,也有一些解决方案通
过在计算带宽时延积(bandwidth-delay product,bdp)时乘上一个与往返时间相关的调节因子,根据往返时间调整发送的数据量。长往返时间的bbr流的调节因子小于短往返时间的bbr流的调节因子,因此长往返时间的bbr流的带宽时延积减少量大于短往返时间的bbr流的带宽时延积减少量,从而提高了往返时间公平性。
5.(3)重传:在启动阶段(startup阶段),bbr拥塞控制算法指数级增长发送速率快速探测当前链路的天花板,直至检测到3个往返时间内速率增加不超过25%,但是在大多数情况下,3个往返时间的时间过长,不仅会在缓冲区内产生大量队列,还会造成丢包,因此应该更早结束startup阶段,减少缓冲区内队列的产生,降低重传。
6.(4)收敛速度:在实际应用环境中,网络链路中往往存在着流的频繁加入和退出。理想的情况是,每当有流加入或者退出时,共存的流可以较快地收敛到均分带宽的状态,这样可以最大程度上减少流加入或者退出时产生的网络波动和吞吐量变化,降低整体延迟,同时提高整体带宽利用率。
7.由于互联网的飞速发展,传统的拥塞控制算法已经不能适应当前网络基础设施和数据传输的需要,近年来提出的bbr拥塞控制算法虽然取得了较为显著的性能提升,但是在一些特定的场景中,仍然存在很多问题。其中,bbr拥塞控制算法在缓存资源相对有限的网络环境中,由于周期性向缓冲区注入过量的数据,形成较多的持久队列,导致丢包率较高,需要更多的网络资源进行重传。在缓存资源相对充裕的环境中,较小的动态增益系数(pacing gain)导致较低的带宽变化率,导致共享瓶颈链路带宽的多个bbr流需要很长时间才能收敛到均分瓶颈链路带宽的理想状态。同时,在实际的网络环境中,经常有流的加入或者退出,更快的收敛速度可以减少网络的振荡,降低网络的整体延迟,提高链路利用率。已有的解决方案主要通过启发式的算法调节拥塞窗口来优化性能,可以在一定程度上降低重传,提升多个bbr流之间的公平性,但是这些方案不能有效提高收敛速度,也不能根据网络中缓存资源情况和网络拥塞程度进行自适应调整。


技术实现要素:

8.为解决上述技术问题,本发明提供一种bbr拥塞控制算法的性能优化方法,在对probebw阶段中bbr流的收敛行为进行建模的基础上,可以根据网络瓶颈链路缓冲区的大小和网络拥塞情况自适应调整增益的值,有效地提升了收敛速度,降低了重传和平均延迟。
9.为解决上述技术问题,本发明采用如下技术方案:一种bbr拥塞控制算法的性能优化方法,包括以下步骤:步骤s1、行为建模,具体包括:步骤s11:在bbr拥塞控制算法的带宽探测阶段,在收敛域中分别表示出共享瓶颈链路带宽的a流和b流从瓶颈链路带宽中分得的带宽:在收敛域中,横轴代表a流从瓶颈链路带宽中分得的带宽,纵轴代表b流从瓶颈链路带宽中分得的带宽,瓶颈链路带宽记为,将a流和b流的初始带宽分别记为和,得到状态一,状态一在收敛域中表示为点,点的坐标为;收敛域中,线代表所有流共享瓶颈链路带宽的约束条件,为瓶颈链路缓冲区大小,线代表瓶颈链路
带宽加上瓶颈链路缓冲区的总可用区域边界;线与线之间的区域代表瓶颈链路的缓冲区,线代表了多个流均分瓶颈链路带宽的理想状态;步骤s12:a流进行带宽探测,得到状态二,状态二在收敛域中表示为点,点的坐标为,其中g为各流进行带宽探测时的动态增益系数;步骤s13:a流的带宽探测结束后需进行队列排空,得到状态三,状态三在收敛域中表示为点,即a流队列排空线与线的交点,点的坐标为,所述a流队列排空线为原点与点的连线;步骤s14:b流进行带宽探测,得到状态四,状态四在收敛域中表示为点,点坐标为;步骤s15:b流的带宽探测结束后需进行队列排空,得到状态五,状态五在收敛域中表示为点,即b流队列排空线与线的交点,点的坐标为;所述b流队列排空线为原点与点的连线;步骤s2、优化问题求解,具体包括:为了使a流和b流收敛到均分瓶颈链路带宽的理想状态,需要最小化点与平衡点之间的距离,平衡点为b=a线与线的交点,约束条件为a流和b流在带宽探测过程中不会超出瓶颈链路的缓冲区,得到优化问题;;采用拉格朗日乘子法求解,得到动态增益系数;步骤s3、自适应控制,具体包括:实际进行网络拥塞控制时,瓶颈链路由个流共享,则动态增益系数;为第个流的发送速率,。
10.进一步地,步骤s3中,如果检测到产生丢包,将动态增益系数乘上一个调节因子
:;和分别为在估算瓶颈链路带宽的有效周期内,观察得到的最大发送速率和最小发送速率。
11.与现有技术相比,本发明的有益技术效果是:本发明对bbr拥塞控制算法在probebw阶段的行为进行了建模,将动态增益系数的取值问题转化为优化问题,并对优化问题进行了求解;在此基础上,本发明定义了调节因子,设计和实现了根据网络缓存资源和网络拥塞情况的自适应调整方法。与原始的bbr相比,本发明可以将收敛速度提升21%,重传降低73%,平均延迟降低46%。
附图说明
12.图1为本发明对bbr拥塞控制算法的优化流程;图2为本发明中bbr拥塞控制算法的收敛行为示意图;图3为本发明中的自适应控制方法。
具体实施方式
13.下面结合附图对本发明的一种优选实施方式作详细的说明。
14.bbr拥塞控制算法中所采用的状态机分为四个阶段,分别为启动阶段(startup阶段)、排空阶段(drain阶段)、带宽探测阶段(probebw阶段)、时延探测阶段(probertt阶段)。
15.本发明通过对bbr拥塞控制算法的带宽探测阶段(probebw阶段)的行为进行建模,提出一种bbr拥塞控制算法的性能优化方法,如图1所示,该性能优化方法主要分为三个阶段。
16.第一阶段为行为建模阶段。对bbr拥塞控制算法在probebw阶段的行为进行建模,在收敛域中分别表示出共享瓶颈链路带宽的a流和b流从瓶颈链路带宽中分得的带宽,并界定多个流在共享瓶颈链路带宽时需要满足的约束条件,表示出多个流收敛至均分瓶颈链路带宽时的理想状态。在此基础上,描述a流和b流分别探测带宽并排空缓冲区内队列的过程。
17.第二阶段是优化问题求解阶段。本发明中,希望a流和b流能够尽快收敛到均分带宽的理想状态,但是在探测过程中,超发的过量数据会在缓冲区内形成队列,需要保证在探测的过程中过量数据不会超出缓冲区导致丢包。如图2所示,在收敛域中,可以描述为,希望表示a流和b流带宽分配状态的点能够尽快靠近线,同时在探测过程中不能超出和虚线围成的区域。这个问题可以转化为一个典型的优化问题,利用拉格朗日乘子法求解。
18.第三阶段为自适应控制阶段。检测网络拥塞状态,如果检测到产生了丢包,则在第二阶段得到的解的基础上乘以一个调节因子,的值与当前的发送速率有关,如果未检
测到丢包,增益的值为第二阶段得到的解。
19.性能优化方法的流程具体如下。
20.(1)行为建模阶段如图2所示,在收敛域中,横轴代表a流从瓶颈链路带宽中分得的带宽,纵轴代表b流从瓶颈链路带宽中分得的带宽。总瓶颈链路带宽记为,a流和b流的初始带宽分别记为和,则此状态(记为状态一)在收敛域中可以表示为点,点的坐标为。
21.图中线代表所有流共享瓶颈链路带宽的约束条件,它与右上方的虚线之间的区域代表瓶颈链路的缓冲区,线代表了多个流均分瓶颈链路带宽的理想状态。在bbr拥塞控制算法的probebw阶段,计算发送速率时要乘以动态增益系数(pacing gain)来探测是否有可用的带宽,为方便起见,下文中将动态增益系数简写为。
22.不妨设a流先探测,a流探测之后变为状态二,即图中的点,在收敛域中的坐标为。
23.此时由于向缓冲区内注入过量数据产生了队列,因此探测结束后需要将队列排空,得到状态三,此时回到线上的点,点的坐标为:。
24.接着,b流进入探测阶段,乘上动态增益系数,得到状态四,在收敛域中从点变成了点,点坐标表示为:。
25.值得说明的是,b流探测时并不是在点的纵坐标的基础上乘上。由于一个流的估算瓶颈链路带宽(btlbw)是10个往返时间内的最大值,而点的纵坐标要小于点的纵坐标,因此没有触发b流的估算瓶颈链路带宽(btlbw)的更新,因此点的纵坐标是在点的纵坐标的基础上乘的结果。此时在缓冲区内产生了队列,仍然需要排空队列,得到状态五,回到线上的点,点的坐标为。
26.(2)优化问题求解阶段
在(1)中对bbr拥塞控制算法在probebw阶段的行为进行了分析和建模,为了在不超过缓冲区的前提下尽快收敛到理想状态,本阶段将其转化为优化问题并求解。考虑a流和b流各进行一次带宽探测后得到的点,目标是最小化这个点与平衡点之间的距离,约束条件是保证a流和b流在探测过程中不会超出缓冲区。针对上述优化目标和约束条件,这里可以得到对应的优化问题,对其进行必要的化简之后,优化问题为:;;为了求解这个优化问题,采用拉格朗日乘子法,则该优化问题的拉格朗日函数为:;kkt条件为:;;求解上述kkt条件,得到:动态增益系数;拉格朗日乘子;故动态增益系数应该取,这个值与瓶颈链路缓冲区大小和当前分配得到的带宽有关,为瓶颈链路缓冲区大小。
27.(3)自适应控制阶段假设瓶颈链路的带宽为,由个流共享。令表示第个流,表示的往返时间,表示的发送速率,则在理想状态下,有所示。根据(2)中得到的解,结合缓冲区大小决定动态增益系数的取值,则动态增益系数,如图3所示。当存在n个流时,可以将n个流划分为a流和除a之外的流,所以两个流和n个流的带宽探测行为是一致,所以可以将(2)中得到的解,应用到存在n个流的情况中。
28.此外,动态增益系数取值还受到网络拥塞状态的影响,如果检测到网络出现了
丢包,为了不加重拥塞,动态增益系数应该进一步减小。本发明中在原先计算得到的值的基础上再乘上一个小于1的调节因子,值应该考虑到此时发送速率相对于还未过期的最大带宽下降的幅度。此时的发送速率越小,说明网络拥塞的程度越重,的值也就越小。因此,将的值设置为:;其中和是在一个估算瓶颈链路带宽(btlbw)有效周期内,观察得到的最大和最小的发送速率,有效周期一般为10个往返时间(rtt)。
29.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
30.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献