一种带宽探测阶段的发送速率调整方法及拥塞控制算法

文档序号:1711806 发布日期:2019-12-13 浏览:17次 >En<

阅读说明:本技术 一种带宽探测阶段的发送速率调整方法及拥塞控制算法 (transmission rate adjusting method and congestion control algorithm in bandwidth detection stage ) 是由 黄家玮 彭澍 王建新 于 2019-10-25 设计创作,主要内容包括:本发明公开了一种带宽探测阶段的发送速率调整方法及拥塞控制算法,在带宽探测阶段的第一个RTT,先用增速因子g增加发送速率,然后发送一轮数据包,以进行带宽探测。根据是否在一定时间内收到该轮发送的所有数据包的ACK包来判断当前网络的拥塞状况。当前网络的状况较好时,依据当前往返延时和历史最大传输速率调整发送速率的增速因子。当前网络的状况较差时,降低发送速率发送一轮数据包,即在该带宽探测阶段的第二个RTT,降低发送速率以排空队列。在该带宽探测阶段的剩下的剩余周期,则按实时传输速率确定发送速率。本发明能兼顾传输效率、收敛性和公平性。(The invention discloses a sending rate adjusting method and a congestion control algorithm in a bandwidth detection stage. And judging the current network congestion state according to whether the ACK packets of all the data packets sent in the round are received within a certain time. And when the current network condition is better, adjusting the speed increasing factor of the sending speed according to the current round-trip delay and the historical maximum transmission speed. When the current network condition is poor, the sending rate is reduced to send a round of data packets, namely the sending rate is reduced to drain the queue at the second RTT of the bandwidth detection stage. The remaining period of the bandwidth sounding phase is followed by determining the transmission rate at the real-time transmission rate. The invention can give consideration to transmission efficiency, convergence and fairness.)

一种带宽探测阶段的发送速率调整方法及拥塞控制算法

技术领域

本发明涉及一种带宽探测阶段的发送速率调整方法及拥塞控制算法。

背景技术

近年来,随着用户数目和网络的带宽产生的巨大增长,新的网络和计算技术、新的业务应用和商业模式的出现对互联网的表现提出了新的要求。网络技术不断发展,网络支撑平台从单一业务逐渐转换为多业务;网络数据传输从传统的简单数据到现在的新兴快速发展的云计算、在线视频、移动互联网等应用模式,从根本上改变了网络的流量模型;随着全球化的进行,跨洲际的网络交流更加频繁。下一代互联网的发展趋势是更高带宽、更大延迟、更多的流量,这都对现有的传输协议提出了新的需求。因此,下一代互联网的研究越来越受到人们的重视,成为了计算机网络研究领域的热点。

传统的传输协议采用的多为基于丢包的TCP数据传输协议,这是一种端到端尽最大努力交付的可靠数据传输协议。当网络资源无法满足用户需求时,传统TCP协议会尽力为用户提供服务,直到网络使用效率降低到了极低并且发生拥塞。拥塞发生时,由于路由器中数据包排队长度增加引起队列缓存的不足,若不能够及时地采取措施,就会导致数据丢包率增加、吞吐量降低、网络延时增大、资源利用率降低。拥塞更加严重的话,则会导致网络的拥塞崩溃。但现有的拥塞控制主要是基于丢包的拥塞控制方法,因此人们常常会发现网络的速度达不到设计时预期的效果。基于丢包的拥塞控制从连接开始阶段就不断占用缓存,造成更多的丢包,但当发现丢包时又马上将传输速度降到很低,造成网络资源很大的浪费,导致传输的效率低下。

这一问题在BBR拥塞控制算法中得到了缓解。BBR拥塞控制算法提出了一个新的模型来解释拥塞:BBR不把丢包作为拥塞信号,而是用一种探测可用带宽的方法计算窗口大小。许多实验证明,BBR在广域网上的性能十分优秀,能极大地提高传输速度。但BBR也存在着一些问题,比如多条BBR流竞争同一个瓶颈链路时吞吐率的收敛速度很慢;由于BBR尽可能地排空队列,很少占用缓存,它与其他协议之间也存在公平性问题;更重要的是,BBR虽然交替地探测带宽和延时,但进入稳定期之后BBR有长达6个RTT的时间是处于不主动探测带宽的阶段,在这个阶段它不能发现可能存在的空余带宽。在主动探测带宽的阶段,BBR固定的发送速率也存在着发送速率不能快速增长到最大可用带宽或增长太过激进加剧整个网络拥塞而降低性能的问题。

因此,针对下一代互联网提出新的兼顾传输效率、收敛性和公平性的传输协议成为一个亟待解决的问题。

发明内容

为了解决现有技术的不足,本发明提供了一种带宽探测阶段的发送速率调整方法及拥塞控制算法,能兼顾传输效率、收敛性和公平性。

本发明的技术方案包括以下步骤:

一种带宽探测阶段的发送速率调整方法,包括以下步骤:

步骤1、令当前轮数Round=0;

步骤2、判断Round%cp的值是否为0,其中,cp为每个带宽探测阶段包含的RTT个数;

如果否,则令发送速率Rs=Rr,然后按发送速率Rs发送一轮数据包,并更新Round=Round+1,然后返回步骤2;其中Rr为实时传输速率;

如果是,则更新Rs=g×Rr(即以增速因子g为乘性增长系数增加发送速率Rs为g×Rr来探测当前网络是否还存在空余带宽),其中g为增速因子,g>1;然后按发送速率Rs发送一轮数据包,并更新Round=Round+1;本轮数据包发送完毕后,等待一定时间,再进入步骤3;

步骤3:判断是否收到了本轮发送的所有数据包的ACK;

如果是,则进入步骤4;

如果否,则更新Rs=(2-g)×Rr(即将发送速率Rs减小为(2-g)×Rr),然后按发送速率Rs发送一轮数据包,以将队列尽可能完全排空,并更新Round=Round+1,再返回步骤2;

步骤4:判断Rs是否大于历史最大传输速率Cmax;如果是,则令增速因子g=gmin,转步骤2;否则,转步骤5;其中gmin为增速因子最小值;

步骤5:判断当前往返延时RTTc是否大于或等于K×RTTmin,如果是,则令增速因子g=gmin,转步骤2;否则,转步骤6;其中K为延时门限,RTTmin为最小往返延时;

步骤6:判断增速因子g是否小于gmax,若是,则令g=g+gain,转步骤2;否则,令g=g-gain,转步骤2;其中gmax为增速因子最大值,gain为增速因子增幅;

其中,发送端每轮发送数据包的时间长度为一个RTT。

上述带宽探测阶段的发送速率调整方法,可以直接应用于BBR拥塞控制算法中的带宽探测阶段。

本发明还提供了一种拥塞控制算法,包括慢启动阶段、排空阶段和带宽探测阶段;发送端在带宽探测阶段采用权利要求1所述的方法调整发送速率。

进一步地,发送端在数据包发送过程中,每收到一个数据包的ACK包(非重复ACK包),则首先将当前往返延时RTTc更新为收到该ACK包的时间与相应数据包发送时间之差;然后根据公式RTTmin=min(RTTmin,RTTc)更新最小往返延时RTTmin,其中min(·)表示取最小值。

进一步地,发送端更新最小往返延时RTTmin后,还根据以下公式更新实时传输速率Rr

其中,deliveryRatet是t时刻前一个RTT内收到的ACK包数量和RTT大小的比值,max(·)表示取最大值,W是一个时间窗口,等于6~10倍的RTT,t为[T-W,T]区间内任意一个时间,T是当前时间,该公式的目的是取一段时间内最大的传输速率。

进一步地,deliveryRatet是t时刻前一个RTT内收到的ACK包数量和RTT大小的比值,其中RTT取值为t时刻的RTTmin值。

进一步地,发送端每轮发送数据包的时间长度为一个RTT,且该RTT取值为开始发送该轮数据包时的RTTmin

进一步地,所述慢启动阶段包括以下步骤:发送端更新发送速率Rs=Rs×p,按发送速率Rs发送一轮数据包;本轮数据包发送完毕后,等待一定时间,然后判断是否收到了本轮发送的所有数据包的ACK包;如果是,则继续进行上述步骤;如果否,则进入排空阶段。

进一步地,一轮数据包发送完毕后,在判断是否收到了本轮发送的所有数据包的ACK前,等待的时间长度等于该轮数据包发送完毕时的RTTmin值。

进一步地,发送端更新实时传输速率Rr后,还根据以下公式更新历史最大传输速率Cmax

Cmax=max(Cmax,Rr)。

进一步地,所述排空阶段包括以下步骤:发送端更新发送速率Rs=Rs/p,然后按发送速率Rs发送一轮数据包;判断本轮的发送速率Rs是否小于或等于Cmax;若是则待本轮数据包发送完毕后,进入带宽探测阶段;否则待本轮数据包发送完毕后,继续进行上述步骤。

有益效果:

本发明在每个带宽探测阶段的第一个RTT,先用增速因子g增加发送速率,然后发送一轮数据包,以进行带宽探测。每收到一个ACK包,则根据ACK包中的信息测量当前往返延时和实时传输速率,记录历史最大传输速率。根据是否在一定时间内收到该轮发送的所有数据包的ACK包来判断当前网络的拥塞状况。当前网络的状况较好时,依据当前往返延时和历史最大传输速率调整发送速率的增速因子,具体为:在发送速率大于历史最大实时传输速率或当前往返延时超过设定阈值(K×RTTmin)时,将增速因子g调至最小值gmin来降低发送速率的增幅;如果发送速率不大于历史最大传输速率,且当前往返延时不大于设定阈值时,则依据增速因子g是否小于其最大值gmax,来增加或减小增速因子以提升或降低发送速率的增幅(如果小于gmax则将g的值增加gain,否则认为已经高倍率发送过,为了保证不会加剧链路拥塞状况,将g的值减小gain)。当前网络的状况较差时,降低发送速率发送一轮数据包,即在该带宽探测阶段的第二个RTT,降低发送速率以排空队列。在该带宽探测阶段的剩下的cp-1(或cp-2)个RTT,则按实时传输速率确定发送速率。在每个带宽探测阶段的cp个RTT过后(Round%cp=0),进入下一个带宽探测阶段,重复上述流程。

本发明提高了传输效率,提升了带宽利用率,降低了排队延时、平均往返延时和丢包率;同时可以使每条流占用的带宽尽快收敛到其公平份额,相对于现有广域网拥塞控制算法改善了流的收敛性和公平性。

附图说明

图1为本发明实施例中拥塞控制算法的流程图。

图2为本发明的拥塞控制算法(命名为BBR-DYNAMIC)的有效性验证结果图。

图2(a)为50ms延时、100Mbps带宽环境下本发明(BBR-DYNAMIC)与BBR协议的吞吐率的对比图。

图2(b)为100ms延时、100Mbps带宽环境下本发明(BBR-DYNAMIC)与BBR协议的吞吐率的对比图。

图3为测试场景网络拓扑图。

图4为协议丢包指标测试图,其中本发明的拥塞控制算法命名为BBR DYNAMIC。

图4(a)为瓶颈链路基础延时为50ms、带宽为100Mbps时的丢包率统计对比图。

图4(b)为瓶颈链路基础延时为100ms、带宽为100Mbps时的丢包率统计对比图。

图4(c)为瓶颈链路基础延时为150ms、带宽为100Mbps时的丢包率统计对比图。

图4(d)为瓶颈链路基础延时为200ms、带宽为100Mbps时的丢包率统计对比图。

图5为协议平均往返延时指标测试图,其中本发明的拥塞控制算法命名为BBRDYNAMIC。

图5(a)为瓶颈链路基础延时为50ms、带宽为100Mbps时的平均往返延时对比图。

图5(b)为瓶颈链路基础延时为100ms、带宽为100Mbps时的平均往返延时对比图。

图5(c)为瓶颈链路基础延时为150ms、带宽为100Mbps时的平均往返延时对比图。

图5(d)为瓶颈链路基础延时为200ms、带宽为100Mbps时的平均往返延时对比图。

图6为协议吞吐量提升指标测试图,其中本发明的拥塞控制算法命名为BBR-DYNAMIC。

具体实施方式

下面结合附图对本发明作进一步的说明。

参见图1,图1为本发明实施例的流程图。

本实施例中,拥塞控制算法过程如下:

一、参数初始化

所述参数初始化包括:根据经验初始化实时传输速率Rr、发送速率Rs、历史最大传输速率Cmax,最小往返延时RTTmin、当前往返延时RTTc和增速因子g;根据经验设置乘性增长系数p(p>1)、带宽探测阶段包含的RTT个数cp、延时门限K、增速因子最大值gmax、增速因子最小值gmin和增速因子增幅gain;其中发送速率是发送端发送数据包的速率,实时传输速率是数据包在网络中的实际传输速率,可能小于发送速率;

本实施例中初始化实时传输速率Rr和发送速率Rs都为1,历史最大实时传输速率Cmax=0,三者单位均为数据包/s;设置乘性增长系数p=2/ln2;设置带宽探测阶段包含的RTT个数cp=8;设置延时门限K=3/2;初始化增速因子g=1;设置增速因子最大值gmax=1.5,增速因子最小值gmin=1.1,增速因子增幅gain=0.1;

最小往返延时RTTmin和当前往返延时RTTc的初始值可采用如下方法确定:先发送一个数据包,根据发送该数据包的时间与接收到该数据包的ACK时间计算往返延时,将该往返延时作为最小往返延时RTTmin和当前往返延时RTTc的初始值;

二、慢启动阶段

2.1)发送端更新发送速率Rs=Rs×p,按发送速率Rs发送一轮数据包;本轮数据包发送完毕后,等待RTTmin的时间,然后进入步骤2.2);

2.2)发送端判断是否收到了本轮发送的所有数据包的ACK包,根据是否收到所有数据包的ACK包来判断当前网络状态;

如果是,则返回步骤2.1);

上述过程即以类似TCP慢启动的方式,以最小往返延时RTTmin为速率调整周期,以p作为发送速率乘性增长系数,增加发送速率Rs为Rs×p;

如果否,则进入排空阶段;

三、排空阶段

3.1)发送端更新发送速率Rs=Rs/p,然后按发送速率Rs发送一轮数据包;

3.2)判断本轮的发送速率Rs是否小于或等于Cmax;若是则待本轮数据包发送完毕后,进入带宽探测阶段;否则待本轮数据包发送完毕后,转步骤3.2);

上述过程即以往返延迟RTTmin为速率调整周期,以1/p作为发送速率乘性减小系数,降低发送速率Rs为Rs/p,以排空队列;

四、带宽探测阶段

步骤1、令当前轮数Round=0;

步骤2、发送端判断Round%cp的值是否为0;

如果否,则令Rs=Rr,按发送速率Rs发送一轮数据包,并更新Round=Round+1,然后返回步骤2;

如果是,则更新Rs=g×Rr,然后按发送速率Rs发送一轮数据包,并更新Round=Round+1;本轮数据包发送完毕后,等待RTTmin的时间,再进入步骤3;

步骤3:判断是否收到了所有数据包的ACK;

如果是,则进入步骤4;

如果否,则更新Rs=(2-g)×Rr,然后按发送速率Rs发送一轮数据包,以将队列尽可能完全排空,并更新Round=Round+1,再返回步骤2;

步骤4:发送端判断发送速率Rs是否大于历史最大传输速率Cmax;如果是,则令增速因子g=gmin,转步骤2;否则,转步骤5;

步骤5:发送端判断当前往返延时RTTc是否大于或等于K×RTTmin,如果是,则令增速因子g=gmin,转步骤2;否则,转步骤6;

步骤6:如果增速因子g小于gmax,则令g=g+gain,转步骤2;否则,令g=g-gain,转步骤2;

其中,发送端每轮发送数据包的时间长度一个RTT,RTT取值为开始发送该轮数据包时的RTTmin

结合步骤4~6,带宽探测阶段调整增速因子g的公式为:

发送端在数据包发送过程中,每收到一个数据包的ACK包(非重复ACK包),则首先计算收到该ACK包的时间与相应数据包发送时间之差,作为当前往返延时RTTc;然后根据RTTmin=min(RTTmin,RTTc)更新最小往返延时RTTmin,其中min(·)表示取最小值;再根据以下公式则更新实时传输速率Rr

其中,deliveryRatet是t时刻前一个RTTmin时间内收到的ACK包数量和RTTmin大小的比值,max(·)表示取最大值,W是一个时间窗口,等于6~10倍的RTTmin,t为[T-W,T]区间内任意一个时间,T是当前时间,该公式的目的是取一段时间内最大的传输速率。

进一步地,发送端更新实时传输速率Rr后,还根据以下公式更新历史最大传输速率Cmax

Cmax=max(Cmax,Rr)。

图2是协议有效性验证实验结果图,目的是为了验证本发明中拥塞控制算法BBR-DYNAMIC相对于BBR,能够有效地在带宽探测阶段进行动态发送速率的调整,从而保证传输效率。实验环境如下:1台工作机和1台服务器与一台拥有1000KB缓存的交换机(配置WANem广域网环境模拟器)相连。利用Iperf工具建立发送数据的连接,总共发送30秒。本次实验分别使用BBR和BBR-DYNAMIC进行测试,改变瓶颈链路的带宽和延时,观察瓶颈链路的吞吐率变化情况。

从图2(a)中可以看出,在延迟为50ms、带宽为100Mbps实验环境下,设置每隔8秒发送一次后暂停2秒的80Mbps的UDP流,本发明BBR-DYNAMIC在UDP流暂停时能更快地增长到最大可用带宽,即收敛到其公平份额,整体带宽利用率提高了22.67%,而且吞吐率的变化曲线更加平稳。这是由于BBR-DYNAMIC的动态调节发送速率的机制,BBR-DYNAMIC在有空余带宽时会通过增加增速因子g的值从而提高发送速率来抢占更多的带宽。当UDP流撤出时,BBR-DYNAMIC能比BBR更快地增长到实际带宽,不会造成带宽资源的浪费。

在图2(b)中,在延迟为100ms、带宽为100Mbps实验环境下,设置每隔9秒发送一次后暂停1秒的80Mbps的UDP流,本发明BBR-DYNAMIC能更快地增长到最大可用带宽,且效果比图2(a)更加明显。这是因为在延时变高的情况下收到的反馈也会变慢,因此在发现带宽有空余时采用相对激进的增速策略的本发明BBR-DYNAMIC会比采用固定增速策略的BBR更快地增长到实际带宽。

图3为该实验使用的网络拓扑图,具体如下:整个网络由发送端、交换机和接收端三个部分组成,由总共有四种延时和两种带宽的链路相连。实验时,分别在发送端同时发送1、3、5、10条流,测试链路的丢包、延时和吞吐率的变化情况。

图4为协议丢包指标测试图,目的是展示本发明BBR DYNAMIC在降低链路丢包问题上的性能表现,说明本发明BBR DYNAMIC要比BBR协议有着更好的公平性和收敛性。

图4(a)给出的是瓶颈链路基础延时为50ms、带宽为100Mbps时的丢包率统计对比图。本发明BBR DYNAMIC是根据当前往返延时是否超过延时门限K倍的最小往返延时来判断是否存在排队现象,有则降速发送,不造成更多的排队以避免丢包。可以看出,随着流数的增多两个协议的丢包率都增加了,但本发明BBR DYNAMIC的丢包率始终都比BBR协议要低,这说明BBR DYNAMIC可以降低瓶颈链路上的丢包率。

图4(b)给出的是瓶颈链路基础延时为100ms、带宽为100Mbps时的丢包率统计对比图。可以看出,由于丢包的不确定性,两个协议丢包率的差异有大有小,但总体上本发明BBRDYNAMIC的丢包性能始终都比BBR协议要好。

图4(c)给出的是瓶颈链路基础延时为150ms、带宽为100Mbps时的丢包率统计对比图。可以看出,随着延时的增加,两个协议的丢包率有不同程度的增加,但本发明BBRDYNAMIC的丢包率始终都比BBR协议要低。

图4(d)给出的是瓶颈链路基础延时为200ms、带宽为100Mbps时的丢包率统计对比图。由这四个图可以看出,本发明BBR DYNAMIC在降低链路丢包问题上的性能表现良好。

图5为协议平均往返延时指标测试图,目的是展示本发明BBR DYNAMIC在降低链路平均往返延时问题上的性能表现,说明本发明BBR DYNAMIC要比BBR协议有着更好的公平性和收敛性。其中带宽为100Mbps。图5(a)-(d)分别为瓶颈链路基础延时为50ms、100ms、150ms、200ms的平均往返延时对比图。

本发明BBR DYNAMIC是根据当前往返延时是否超过延时门限K倍的最小往返延时来判断是否存在排队现象,有则降速发送,不造成更多的排队以减小链路上的往返延时。两个协议在4种不同基础延时的环境下瓶颈链路的平均往返延时对比情况可以直观地看出,本发明BBR DYNAMIC的瓶颈链路平均延时都要低于BBR的瓶颈链路平均延时,这说明本发明BBR DYNAMIC确实能够降低链路的排队,从而降低平均往返延时。

图6为协议吞吐量提升指标测试图。实验测试了100Mbps带宽,50ms、100ms、150ms、200ms四种延时下的1、3、5、10条不同流数的情况下本发明BBR-DYNAMIC对比BBR的吞吐率提升百分比情况。可以看出在高延时情况下本发明BBR-DYNAMIC提高吞吐率的效果会更加明显。在发现带宽有空余时采用相对激进的增速策略的BBR-DYNAMIC会比采用固定增速策略的BBR更快地增长到实际带宽,因此高延时情况下本发明BBR-DYNAMIC的吞吐量提升会更加明显。而多条流同时竞争瓶颈带宽的情况下,空余带宽会被多条流快速占满,这时吞吐量的提升效果就不如单条流明显,而且随着流数的增加,吞吐量的提升会越来越低。但从图中可知,多条流情况下本发明BBR-DYNAMIC也能很好地起到提升吞吐率的效果。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种本安型万兆三层交换机分步式上电方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!