潘婉苏1,2,李晓风1,2,谭海波1,许金林1,李皙茹1
(1.中国科学院 合肥物质科学研究院,合肥 230031;2.中国科学技术大学,合肥 230026)
摘要:
Google提出了一种基于瓶颈带宽和往返传播时间的拥塞控制算法(bottleneck bandwidth and round-trip propagation time,BBR),可以在网络链路中保持最大传输速率和最小延时。然而一些评估实验表明,BBR算法会导致不同往返时间(round trip time,RTT)的数据流之间存在严重的公平性问题。为了优化这一问题,研究分析了BBR算法探测机制所导致的发送速率与瓶颈带宽不匹配对RTT公平性的影响,提出了一种基于起搏增益模型的优化算法BBR-adaptive(BBR-A)。BBR-A算法不再采用原BBR算法中固定的起搏增益,而是利用RTT与起搏增益的关系,构造一个基于反比例函数的起搏增益调节模型,通过让向上和向下的起搏增益系数相互交错来平衡发送速率,使每个BBR流可以公平地竞争带宽资源。网络模拟器3(network simulator 3,NS3)仿真实验结果表明:BBR-A算法的信道利用率比BBR算法有了小幅提升;在RTT公平性的方面,BBR-A缩小了不同RTT流之间的吞吐量差异,在不同缓冲区和RTT差异下,Jain公平指数至少提高了1.5倍;BBR-A算法明显降低了重传率。因此通过自适应调整起搏增益系数,可以平衡不同数据流之间的发送速率,有效提升BBR算法的RTT公平性。
关键词: 拥塞控制 BBR RTT公平性 起搏增益 自适应算法
DOI:10.11918/202109034
分类号:TP 393
文献标识码:A
基金项目:国家重点研发计划“区块链”重点专项(2021YFB2700700)
RTT fairness optimization of BBR congestion control algorithm
PAN Wansu1,2,LI Xiaofeng1,2,TAN Haibo1,XU Jinlin1,LI Xiru1
(1.Hefei Institute of Physical Science, Chinese Academy of Sciences, Hefei 230031, China; 2.University of Science and Technology of China, Hefei 230026, China)
Abstract:
Google proposed a congestion control algorithm based on bottleneck bandwidth and round-trip propagation time (BBR), which can maintain maximum transmission rate and minimum latency in a network link. However, the BBR algorithm was reported to cause serious round trip time (RTT) fairness problems by some evaluation experiments. The impact of the mismatch between pacing rate and bottleneck bandwidth caused by the asynchronous detection mechanism of BBR algorithm was analyzed to optimize the RTT fairness, and an optimized algorithm BBR-adaptive (BBR-A) was proposed based on pacing gain model. According to the relationship between RTT and pacing gain, a pacing gain adjustment model based on inverse proportional function was established, which replaces the fixed pacing gain coefficient in the original BBR algorithm. By interleaving the up and down pacing gain coefficients to adjust the pacing rate, each BBR flow could compete for bandwidth resources fairly. Experimental results of network simulator 3 (NS3) show that the channel utilization of BBR-A algorithm was slightly improved compared with BBR algorithm. In the experiment of RTT fairness, BBR-A reduced the throughput difference between different RTT flows, and Jain fairness index was at least 1.5 times higher than BBR algorithm with different buffer sizes and RTT differences. The retransmission rate of BBR-A algorithm was significantly reduced. By adaptively adjusting the pacing gain coefficient, the pacing rate between different flows was balanced, and the RTT fairness of BBR algorithm was improved.
Key words: congestion control BBR RTT fairness pacing gain adaptive algorithm
潘婉苏, 李晓风, 谭海波, 许金林, 李皙茹. BBR拥塞控制算法的RTT公平性优化[J]. 哈尔滨工业大学学报, 2022, 54(11): 38-46. DOI: 10.11918/202109034.
PAN Wansu, LI Xiaofeng, TAN Haibo, XU Jinlin, LI Xiru. RTT fairness optimization of BBR congestion control algorithm[J]. Journal of Harbin Institute of Technology, 2022, 54(11): 38-46. DOI: 10.11918/202109034.
基金项目 国家重点研发计划“区块链”重点专项(2021YFB2700700) 作者简介 潘婉苏(1992—),女,博士研究生;
李晓风(1966—),男,教授,博士生导师 通信作者 李晓风,xfli@hfcas.ac.cn 文章历史 收稿日期: 2021-09-08
Abstract Full text Figures/Tables PDF
BBR拥塞控制算法的RTT公平性优化
潘婉苏1,2, 李晓风1,2, 谭海波1, 许金林1, 李皙茹1
1. 中国科学院 合肥物质科学研究院,合肥 230031;
2. 中国科学技术大学,合肥 230026
收稿日期: 2021-09-08
基金项目: 国家重点研发计划“区块链”重点专项(2021YFB2700700)
作者简介: 潘婉苏(1992—),女,博士研究生; 李晓风(1966—),男,教授,博士生导师
通信作者: 李晓风,xfli@hfcas.ac.cn
摘要: Google提出了一种基于瓶颈带宽和往返传播时间的拥塞控制算法(bottleneck bandwidth and round-trip propagation time,BBR),可以在网络链路中保持最大传输速率和最小延时。然而一些评估实验表明,BBR算法会导致不同往返时间(round trip time,RTT)的数据流之间存在严重的公平性问题。为了优化这一问题,研究分析了BBR算法探测机制所导致的发送速率与瓶颈带宽不匹配对RTT公平性的影响,提出了一种基于起搏增益模型的优化算法BBR-adaptive(BBR-A)。BBR-A算法不再采用原BBR算法中固定的起搏增益,而是利用RTT与起搏增益的关系,构造一个基于反比例函数的起搏增益调节模型,通过让向上和向下的起搏增益系数相互交错来平衡发送速率,使每个BBR流可以公平地竞争带宽资源。网络模拟器3(network simulator 3,NS3)仿真实验结果表明:BBR-A算法的信道利用率比BBR算法有了小幅提升;在RTT公平性的方面,BBR-A缩小了不同RTT流之间的吞吐量差异,在不同缓冲区和RTT差异下,Jain公平指数至少提高了1.5倍;BBR-A算法明显降低了重传率。因此通过自适应调整起搏增益系数,可以平衡不同数据流之间的发送速率,有效提升BBR算法的RTT公平性。
关键词: 拥塞控制 BBR RTT公平性 起搏增益 自适应算法
RTT fairness optimization of BBR congestion control algorithm
PAN Wansu1,2, LI Xiaofeng1,2, TAN Haibo1, XU Jinlin1, LI Xiru1
1. Hefei Institute of Physical Science, Chinese Academy of Sciences, Hefei 230031, China;
2. University of Science and Technology of China, Hefei 230026, China
Abstract: Google proposed a congestion control algorithm based on bottleneck bandwidth and round-trip propagation time (BBR), which can maintain maximum transmission rate and minimum latency in a network link. However, the BBR algorithm was reported to cause serious round trip time (RTT) fairness problems by some evaluation experiments. The impact of the mismatch between pacing rate and bottleneck bandwidth caused by the asynchronous detection mechanism of BBR algorithm was analyzed to optimize the RTT fairness, and an optimized algorithm BBR-adaptive (BBR-A) was proposed based on pacing gain model. According to the relationship between RTT and pacing gain, a pacing gain adjustment model based on inverse proportional function was established, which replaces the fixed pacing gain coefficient in the original BBR algorithm. By interleaving the up and down pacing gain coefficients to adjust the pacing rate, each BBR flow could compete for bandwidth resources fairly. Experimental results of network simulator 3 (NS3) show that the channel utilization of BBR-A algorithm was slightly improved compared with BBR algorithm. In the experiment of RTT fairness, BBR-A reduced the throughput difference between different RTT flows, and Jain fairness index was at least 1.5 times higher than BBR algorithm with different buffer sizes and RTT differences. The retransmission rate of BBR-A algorithm was significantly reduced. By adaptively adjusting the pacing gain coefficient, the pacing rate between different flows was balanced, and the RTT fairness of BBR algorithm was improved.
Keywords: congestion control BBR RTT fairness pacing gain adaptive algorithm
TCP拥塞控制对于互联网及其应用的发展和成功起到了重要作用。常用的拥塞控制算法是基于丢包反馈来调节拥塞窗口(congestion window,CWND)的大小,如Reno、BIC、CUBIC等算法[1-3]。但在高速、长距离的现代网络中,基于丢包的算法会造成吞吐量严重下降,往往会浪费很多可用带宽[4]。2016年Google提出了BBR(bottleneck bandwidth and round-trip propagation time)算法[5],通过对瓶颈带宽和往返传播时间的估测来调整其发送行为,实现了高吞吐量的同时减少了传输延迟。Google公布的实施情况和一些公开发表的评测结果[6-11]表明,BBR可以显著提高TCP连接的吞吐量,与传统CUBIC相比在吞吐量上具有显著优势,但BBR仍存在着一些缺陷,其中RTT(round trip time)公平性问题是比较严重的问题之一。即当多个数据流共享同一瓶颈链路时,RTT较长的BBR数据流具有带宽占用优势[7, 12-15]。
针对RTT公平性问题,一些学者进行了改进。文献[7]提出了BBQ算法,通过限制RTT较长的数据流的检测周期来降低长RTT流的带宽占用。当T>(1+β)Tprop时(T为RTT,Tprop为RTprop,即round propagation time),使用min(α; Tprop)作为探测周期的持续时间,从而减小长RTT流发送的数据包数量,其中β∈[0.5%, 1%],α=3 ms。文献[12]通过建立理论模型证明了不同RTT流带宽占用受RTT比率的影响,长RTT流的带宽占比具有优势。文献[13]提出了RFBBR算法,在PROBE_BW阶段添加公平性因子γ=(T+Tprop)/(2×T)调节拥塞窗口的大小,进而改进RTT公平性。文献[14]提出了延迟感知BBR(delay-aware BBR,DA-BBR)算法,根据RTT定义一个小于1的调节因子去限制链路中的带宽时延积(bandwidth delay product,BDP),缓解了RTT不公平性。文献[15]提出通过调整拥塞窗口增益缩小不同RTT流之间的窗口差距,从而提升RTT公平性。以上这些算法在提高RTT的公平性方面取得了一定积极的效果,但分析发现,现有的这些改进方案都限制了BBR流的探测,并且仍采用固定的起搏增益,而未对起搏增益这一关键参数进行优化。
本文对BBR算法的探测过程进行建模分析,利用RTT反馈调节BBR在探测带宽状态中的起搏增益,建立起搏增益模型去平衡不同流之间的发送速率,从而提升不同RTT流之间的公平性。网络模拟器3(network simulator 3,NS3)的仿真实验表明,改进算法BBR-adaptive(BBR-A)有效提升了算法的RTT公平性以及其他方面的性能。
1 BBR算法概述 1.1 基本原理不同于基于丢包的拥塞控制算法,BBR算法通过交替测量链路中的最大带宽和最小延时来解决寻找Kleinrock最佳操作点[16]的问题。BBR将最近10次往返中测得的最大带宽视为Bmax,将过去10 s中测得的最小延时视为Tprop,然后根据Bmax和Tprop估算BDP[16],即
$B_{\text {BDP }}=B_{\max } \times T_{\text {prop }}$ (1)
BBR分别通过窗口增益和起搏增益来调整CWND和发送速率,进而控制其发送行为。CWND和发送速率的计算公式为
$W_{\mathrm{cwnd}}=\text { cwnd_gain } \times B_{\mathrm{BDP}}$ (2)
$S=\text { pacing_gain } \times B_{\max }$ (3)
式中: Wcwnd为CWND,cwnd_gain为窗口增益,S为发送速率,pacing_gain为起搏增益。
BBR主要由4个状态构成,见图 1。
Fig. 1
图 1 BBR的状态模型 Fig. 1 State model of BBR
在STARTUP状态,将cwnd_gain和pacing_gain设置为2/ln 2,使CWND和发送速率指数增加,积极的探测链路中的可用带宽。如果连续3个RTT内新估算的带宽增加没有超过25%,BBR则进入DRAIN状态。在DRAIN状态,BBR通过将pacing_gain降低到ln 2/2来清除前一状态的剩余队列,cwnd_gain保持不变(2/ln 2)。在PROBE_BW状态,BBR循环8个周期(pacing_gain[]=[1.25;0∶ 75; 1;1;1;1;1;1])进行探测带宽,每个周期持续时间为Tprop。在这个状态中CWND固定为2BBDP。BBR每10 s进入一次PROBE_RTT状态,在这个状态CWND被设置为4MSS(Maximum Segment Size),以确保对Tprop新值进行采样,该状态持续200 ms。在PROBE_RTT状态结束后,通过瓶颈链路状态判断转换到PROBE_BW或STARTUP状态继续进行循环。
1.2 RTT公平性原因分析在PROBE_BW状态,BBR周期性地以pacing_gain=1.25增加发送速率,向瓶颈链路发送更多的数据包,导致总发送速率大于瓶颈带宽,在瓶颈上形成了持久队列。随后pacing_gain=0.75降低发送速率,试图排空先前探测生成的多余的队列。但这种循环实际无法排空多余的数据,仍然会形成队列积压。根据排队论,一旦在瓶颈处形成持久队列,不同数据流的吞吐量就取决于它的队列份额。
当不同RTT流通过瓶颈链路时,长RTT流的BBDP估算值大于短RTT流的BBDP估算值,其可以发送更多数据包,因此在瓶颈队列中占主导地位。长RTT流的队列份额优势可以让其获得比短RTT流更高的发送速率,使短RTT流的发送速率不断降低。持续的低传输速率将导致短RTT流在下一次带宽测量中获得更小的BBDP估算值,然后再次降低发送速率,又将进一步减少其队列,循环往复,最终导致短RTT流的带宽占用严重下降。即使在探测过程中的一些数据流提前终止,上面的结论仍然成立,因为其他数据流将很快抢占空闲带宽。随着数据流RTT差异的增加,公平性会进一步恶化。一些用户可能利用这个漏洞故意增加延迟去获得高带宽。因此,解决BBR算法中RTT公平性问题是非常必要的。
2 改进算法: BBR-A 2.1 模型分析通过本文RTT公平性分析可以知道,队列积压的产生导致长RTT流的发送速率大于短RTT流。对BBR流建模,分析RTT与发送速率之间的关系。假设有n个不同数据流通过带宽为C的瓶颈链路,fii∈[1, n]为第i个数据流,di(t)为fi在t时刻的传递速率,在t时刻fi的估算最大带宽为
$B_{\text{max}i}(t)=\max \left(d_{i}(t)\right)\left(T \in\left[t-10 R_{\mathrm{RTT}} ; t\right]\right)$ (4)
在实际传输过程中,RTT由传播时延和排队时延组成,fi在时间t时刻的RTT为
$T_{i}(t)=q_{i}(t)+T_{\text{prop} i}$ (5)
式中qi(t)为fi在t时刻的排队时延。
设Ii(t)为fi的飞行中数据量,则Ii(t)与di(t)关系为
$d_{i}(t)=\frac{I_{i}(t)}{T_{i}(t)}$ (6)
进一步分析RTT与起搏增益之间的关系,根据BBR算法的带宽探测机制,在向上探测周期pacing_gain=1.25,因此在t时刻最大传递速率为
$\max \left(d_{i}(t)\right)=\frac{\max \left(I_{i}(t)\right)}{T_{i}(t)}=\frac{1.25 \times T_{\text {prop }} \times B_{\text{max}i}(t-\Delta t)}{T_{i}(t)}$ (7)
BBR流的探测周期为8个Tprop,结合式(7)可以知道fi在新一轮最大带宽估算时更新为
$B_{\text{max}i}(t)=\frac{1.25 \times T_{\text {prop}i} \times B_{\text{max}i}\left(t-8 T_{\text{prop}i}\right)}{T_{i}(t)}$ (8)
对于共享同一瓶颈队列的数据流,其排队时延是相同的。一旦有队列的生成,实际带宽无法按照预期的1.25倍进行增加,实际的起搏增益为
2.2 算法设计为了平衡不同RTT流的带宽占用,可以在现有增益系数基础上乘上一个RTT的减函数来消除RTT对发送速率的影响。如果一个长RTT数据流,那么其发送速率缓慢地向上增加并且快速地向下减少。如果一个短RTT数据流,那么它的发送速率应该快速地向上增加并且缓慢地向下减少,从而实现起搏增益系数对发送速率的约束。根据RTT的测量机制,将φ定义为fi当前延时与最大延时比值,计算公式为
$\varphi_{i}=\frac{T_{i}}{T_{\max }}, \varphi_{i} \in(0, 1]$ (9)
式中:Ti为fi从最后一个ACK中获得的当前延时,Tmax为ACK更新的最大延时。
通常φ可以量化瓶颈的链路利用率[17-18],Ti越大,φ越大。仅在瓶颈链路容量和缓冲区即将满载时,Ti才接近最大的Tmax。通过φ构建关于RTT的减函数作为新的向上和向下起搏增益系数,进而约束不同RTT流的发送速率。
基于上述分析,分别定义了向上起搏增益系数Pup和向下起搏增益系数Pdown来替代固定的起搏增益系数1.25和0.75。对于Pup,相关函数Pup(φ)应该为一个下凹的曲线,下渐近线为Pup=1,并且随着φ变大,Pup(φ)下降趋势变缓,以减少优势数据流的发送速率,给弱势数据流提供更多的可用带宽。对于Pdown,相关函数Pdown(φ)应该为上凸的曲线,上渐近线为Pdown=1,并且随φ越大,Pdown(φ)下降趋势变快。此外,Pup(φ)和Pdown(φ)所需函数必须为低复杂度的函数,因为它要在BBR算法内核中实现。基于这些约束条件,测试了一些函数,发现反比例函数可以满足需要。基于反比例函数的特性,构造了Pup(φ)和Pdown(φ)
$P_{\text {up }}\left(\varphi_{i}\right)=\frac{3}{\varphi_{i}+2}, P_{\text {up }}\left(\varphi_{i}\right) \in[1, 1.5)$ (10)
$P_{\mathrm{down}}\left(\varphi_{i}\right)=\frac{3}{\varphi_{i}-3}+2, P_{\mathrm{down}}\left(\varphi_{i}\right) \in[0.5, 1)$ (11)
Pup函数和Pdown函数的变化趋势见图 2。随着φ的增大,Pup(φ)缓慢下降,且下降趋势变慢,取值在[1, 1.5]之间;随着φ的增大,Pdown(φ)缓慢下降,且下降趋势变快,取值范围在[0.5, 1]之间,满足增益模型的设计需求。BBR-A算法通过每个ACK更新RTT的信息调整原BBR中起搏增益的大小,从而自适应调节发送速率。此外,根据BBR的探测机制,将链路状态的分界点设置为1.25BBDP[19]。BBR-A具体细节见算法1,当Ii < 1.25BBDP时,允许不同RTT流发送更多的数据包来占用空闲带宽。在这个向上探测周期内,采用pacing_gain=Pup来增加发送速率。当飞行中的数据量大于1.25BBDP时,表明瓶颈链路没有额外的能力来传输更多的数据包,并会在缓冲区形成队列,此时通过pacing_gain=1维持稳定的发送速率。此外,为了增加BBR算法对丢包的敏感性,增加丢包阈值has_loss(阈值设定2%)表示是否存在严重丢包。如果Ii>1.25BBDP并且有丢包产生,此时的向下探测周期要限制不同RTT流的发送速率,采用pacing_gain=Pdown降低发送速率,释放缓冲区。剩余周期,BBR-A依然采用原BRR中默认的pacing_gain。
Fig. 2
图 2 BBR-A算法中Pup和Pdown函数随着φ的变化趋势 Fig. 2 Variation of Pup and Pdown functions with φ in BBR-A algorithm
算法1: BBR-A算法的ProbeBW状态
Input: I, has_loss,Tmax ← 0, Tmin ← 0X7FFFFFFF, rtt_us //BBR中每个ACK更新
Output: pacing_gain
1: For every ACK do
2:??rtt_us ← (now sending time)
3: if rtt_us < Tmin then
4:??Tmin ← rtt_us
5: end if
6: if rtt_us < Tmax then
7:??Tmax ← rtt_us
8:??end if
9: end for
Phase 1: probe up
1: if Ii < 1.25BBDP then
2:??pacing_gain = Pup
3:??return
4: end if
Phase 2: probe down
1: if Ii > 1.25BBDP or has_loss > 2% then
2:??pacing_gain = Pdown
3: else pacing_gain = 1
3: return
4: end if
Phase 3: next six cycles
1: if pacing_gain = 1 then
2: return
3: end if
BBR-A算法通过对起搏增益的调节,进一步增强了不同RTT流发送速率的自我调节能力。将带宽探测状态的向上起搏增益系数上限扩大到1.5,提高BBR的探测带宽幅度,同时将向下起搏增益系数下限设置为0.5,加快多余数据包的排空。通过让不同RTT流的探测和排空系数彼此交错,可以平衡不同数据流的发送速率,从而提高RTT公平性。
参考文献[13]进行BBR-A算法的复杂度分析,BBR-A采用if循环语句判断链路状态,因此其时间复杂度为O(1)。BBR-A每个周期只存储起搏增益的计算结果,没有额外的内存消耗,其空间复杂度也为O(1)。另外,BBR-A算法的实现依旧基于原有的BBR框架,便于实施与部署。
3 实验结果分析基于BBR版本[20-21]在NS3上测试了BBR及优化算法的性能,网络拓扑见图 3。S0~Sn为发送端,R0~Rn为接收端,瓶颈带宽设置为100 Mbit/s。
Fig. 3
图 3 仿真模拟实验的网络拓扑 Fig. 3 Network topology of simulation experiment
通过不同网络条件下测试所获得的仿真结果验证BBR-A算法有效性。性能指标包括吞吐量、信道利用率、Jain公平指数和重传率,变量包括RTT和缓冲区大小。此外,将BBQ[7]和DA-BBR[14]作为基准算法加入到实验对比中。
3.1 信道利用率信道利用率表示信道平均被占用的程度,可以一定程度反映网络利用率。通常通过测量数据流的吞吐量来计算瓶颈链路的信道利用率η,即
$\eta=\frac{\sum _{i} Q_{\text {bytes}i}}{C \times T_{\text {last }}}$ (12)
式中: Qbytesi为fi在接收端已接收数据包的长度,C为瓶颈链路的带宽,Tlast为持续的模拟运行时间(本文设定为200 s)。
由于BBR算法在高丢包率下容易失速,因此本节测试具有不同随机丢包率下的信道利用率,以评估算法的抗丢包能力。缓冲区大小配置为1BBDP和5BBDP,随机分组丢失率分别设置为0%、1%、3%和6%。
BBR、BBQ、DA-BBR和BBR-A算法的信道利用率的仿真结果见图 4。整体来看,4种算法在1BBDP缓冲区的信道利用率要低于5BBDP缓冲区。当随机丢包率为0%时,4种算法可以在不同的缓冲区中获得94%以上的信道利用率,其中BBR-A信道利用率最高,1BBDP和5BBDP缓冲区中分别为95.6%和96.2%。4种算法的信道利用率均随着丢包率的增加而降低,但BBR-A受丢包的影响相对较小。当随机丢包率为6%时,BBR的信道利用率明显下降,而BBR-A的信道利用率降幅最小。BBR-A算法加入了丢包反馈,并提高了起搏增益上限,可以在不同的缓冲区始终保持90%以上的信道利用率,尤其在高丢包的场景中获得更高的吞吐量。
Fig. 4
图 4 4种算法的信道利用率 Fig. 4 Channel utilization of four algorithms
3.2 RTT公平性通过比较BBR、BBQ、DA-BBR和BBR-A算法不同RTT流之间的吞吐量,评估BBR-A是否缓解了RTT不公平性。实验设置0.5BBDP和5BBDP缓冲区大小,10 ms RTT流与50 ms RTT流竞争瓶颈带宽。图 5为10 ms RTT流和50 ms RTT流的吞吐量对比。
Fig. 5
图 5 不同算法在不同缓冲区中10 ms RTT和50 ms RTT流的吞吐量对比 Fig. 5 Throughput comparison of 10 ms RTT flow and 50 ms RTT flow with different algorithms and buffer sizes
对于BBR算法,2种缓冲区中10 ms RTT流和50 ms RTT流的吞吐量见图 5(a)和5(e)。在启动阶段10 ms RTT流可以快速获得吞吐量,但与50 ms RTT流短暂竞争后,其吞吐量快速下降,最终约为39.7 Mbit/s,而50 ms RTT流吞吐量是其1.4倍。在图 5(e)中,2种RTT流的吞吐量差异明显变大,10 ms RTT流的吞吐量仅为13.8 Mbit/s左右,50 ms RTT流吞吐量是其5.9倍。图 5(b)和5(f)为BBQ算法,在0.5BBDP缓冲区中2种RTT流的吞吐量差异相比BBR算法变小。10 ms RTT流的吞吐量提高到42.3 Mbit/s左右,50 ms RTT流的吞吐量约是其1.3倍。在5BBDP缓冲区(图 5(f)),2种RTT流之间的吞吐量差异比图 5(b)中的结果有所增加,50 ms RTT流的吞吐量为59.3 Mbit/s,是10 ms RTT流的1.6倍。DA-BBR算法见图 5(c)和5(g),2种缓冲区中数据流的吞吐量差异变化不大,50 ms RTT流的吞吐量约是10 ms RTT流的1.3倍。对于BBR-A算法,在0.5BBDP缓冲区(图 5(d)),10 ms RTT流和50 ms RTT流的吞吐量差异相比前3种算法进一步缩小。10 ms RTT流和50 ms RTT流吞吐量分别为45.3 Mbit/s和50.3 Mbit/s,相差10%。在5BBDP缓冲区(图 5(h)),10 ms RTT流的吞吐量波动相对较大,说明数据流积极地竞争可用带宽,50 ms RTT流的吞吐量约是10 ms RTT流的1.3倍。
通过图 5的对比结果可以看出,与BBR相比,BBQ提高了2种RTT流之间的公平性,但在5BBDP缓冲区,50 ms RTT流的吞吐量优势依旧明显。而DA-BBR算法也提高了2种RTT流之间的公平性,尤其是在5BBDP缓冲区中相比于BBQ算法有了进一步提升。BBR-A改变了不同RTT流的起搏增益,提高了短RTT流的带宽竞争能力,缩小2种RTT流的吞吐量差异,在4种算法中实现了最好的RTT公平性,尤其在0.5BBDP缓冲区中具有明显公平性优势。
另外,通过上述实验结果发现不同的缓冲区大小对RTT的公平性有着明显的影响,因此继续开展相关实验比较10 ms RTT流和50 ms RTT流在不同缓冲区中的性能差异,进一步评估4种算法的RTT公平性。为了量化算法在不同缓冲区大小下的RTT公平性,本文引入了Jain公平指数[22]。Jain公平指数可以用来衡量带宽竞争中的公平性,计算方法如下:
$J=\frac{\left(\sum _{i=1}^{n} x_{i}\right)^{2}}{n \sum _{i=1}^{n} x_{i}^{2}}$ (13)
式中: n为链接个数,xi为第i个链接的吞吐量。
Jain公平指数(以下简称公平指数)能够很好地反映吞吐量的差异,取值范围在[0, 1]之间。该公平指数越接近1,说明带宽分配的公平性就越好。
10 ms RTT流和50 ms RTT流在0.1BBDP~100BBDP的缓冲区条件下,各自的平均吞吐量变化和公平指数见图 6。图 6(a)为BBR算法,随着缓冲区变大,2种RTT流的吞吐量差异变大。当缓冲区大于6BBDP,50 ms RTT流占用大部分带宽,公平指数下降到0.63左右。对于BBQ算法,见图 6(b)。相比BBR,其公平性得到了很大的提升。虽然2种数据流竞争时吞吐量差异随着缓冲区变大而加大,公平指数也随着下降,但BBQ的公平指数仍能维持在0.91以上。图 6(c)中的DA-BBR算法,其公平指数最小维持在0.95左右。在图 6(d)中,BBR-A算法明显缩小了10 ms RTT流和50 ms RTT流的吞吐量差异,其公平指数维持在0.96以上。总体而言,BBR-A比BBR和BBQ算法RTT公平性更好,比DA-BBR算法略有优势。尤其在深缓冲区条件下,RTT公平性相比BBR算法有了很大的提升,公平指数提高了约1.5倍,实现了更好的性能。
Fig. 6
图 6 不同缓冲区大小下,10 ms RTT流与50 ms RTT流竞争时的平均吞吐量和公平指数 Fig. 6 Average throughput and fairness index of 10 ms RTT flow competing with 50 ms RTT flow with different buffer sizes
除了缓冲区大小对RTT公平性有着明显的影响,RTT差异也会明显影响RTT公平性[13]。仿真设置10 ms RTT流与不同RTT流在5BBDP缓冲区条件下进行带宽竞争,4种算法中不同RTT流的吞吐量的变化趋势和公平指数见图 7。
Fig. 7
图 7 5BBDP缓冲区大小下,10 ms RTT流与不同RTT流共存时的平均吞吐量和公平指数 Fig. 7 Average throughput and fairness index of 10 ms RTT flow coexisting with different RTT flows in 5BBDP buffer
图 7(a)为BBR算法,随着RTT差异的增加,长RTT流的吞吐量逐步占据优势,公平指数逐步下降。当RTT比率达到10倍时,即10 ms RTT流与100 ms RTT流竞争时,公平指数仅为0.59。在图 7(b)中,BBQ算法中的RTT公平性呈现不规律变化。当RTT比率在2~3之间时,短RTT流的吞吐量占据优势地位,但当RTT比率大于3时,长RTT流的吞吐量逐步占据优势地位。图 7(c)的DA-BBR算法,不同RTT流之间的公平性有所提升,最终公平指数在0.92左右。BBR-A算法见图 7(d),随着RTT差异的增加,虽然长RTT流的吞吐量占据优势,但其与10 ms RTT流之间的吞吐量差异不大,BBR-A的公平指数可以维持在0.95左右。BBR-A算法通过自适应的调整不同RTT流之间的起搏增益,可以使不同RTT数据流保持较高的公平性,尤其当RTT比率大于4时,BBR-A算法的公平指数最高。
3.3 重传率重传率是重传网络包的比例,链路中的重传率过高一般表示网络质量差,会影响数据的传输效率。通过对比缓冲区大小和竞争数据流的数量对数据包重传的影响,可以验证不同算法的重传率。实验发送方使用不同的算法将单个或多个数据流传输到接收方,缓冲区大小设置分别为0.1BBDP和1BBDP。4种算法的重传率见图 8,起始点为单个10 ms RTT流的重传率,终点为100个10 ms RTT流的重传率。
Fig. 8
图 8 不同算法在不同缓冲区中的重传率 Fig. 8 Retransmission rates of different algorithms with different buffer sizes
在图 8(a)中,当缓冲区为0.1BBDP时,BBR的重传率明显高于其他算法。在起始点,BBR的重传率约为2.8%,BBQ、DA-BBR和BBR-A的重传率约为1.52%、1.26%和1.31%。随着数据流量的增加,数据包出现了大量的重传,当流的数量为100时,BBR、BBQ和DA-BBR的重传率分别为14.9%、6.01%和4.86%,而BBR-A的重传率约为4.24%,是4种算法中最小的。在图 8(b)中,缓冲区大小增加到1BBDP。BBR的重传率相比0.1BBDP时明显下降,但仍是4种算法中最高的。在起始点,4种算法的重传率基本一致,大约为1%。随着流的数量的增加,4种算法重传率都发生了增加。当数据流的数量为100时,BBR的重传率约为4.63%,BBQ和DA-BBR的重传率约为3.95%和3.52%,BBR-A的重传率约为3.42%。BBR-A算法加入了丢包反馈,并建立对称的起搏增益模型,避免激进的探测带宽方式导致的数据包重传。仿真实验结果证明了BBR-A算法可以减少数据包重传次数,有效提高网络通信效率。
4 结论本文在研究BBR拥塞控制算法的基础上,针对原BBR算法中的RTT公平性问题,提出了改进算法BBR-A。BBR-A算法根据链路中的RTT,自适应调整向上和向下起搏增益,取代了原有的固定起搏增益,从而平衡不同RTT流的发送速率。
NS3仿真实验结果表明,BBR-A算法中不同的RTT流可以公平竞争,公平指数明显高于BBR。此外,在信道利用率的实验中,与原BBR算法相比,BBR-A算法并没有牺牲信道利用率,甚至在高丢包的情况下信道利用率提升明显。在重传率的实验中,BBR-A算法的表现也优于BBR算法,可以有效降低重传率。这些都表明本文提出的BBR-A算法可以有效提升BBR算法的网络拥塞控制性能。
参考文献
[1] FLOYD S, HENDERSON T, GURTOV A. The New Reno modification to TCP's fast recovery algorithm: RFC 3782[R]. [S. l.]: The Internet Society, 2004
[2] XU Lisong, HARFOUSH K, RHEE I. Binary increase congestion control (BIC) for fast long-distance networks[C]//Proceedings of IEEE INFOCOM 2004. Hong Kong: IEEE, 2004, 4. DOI: 10.1109/INFCOM.2004.1354672
[3] HA S, RHEE I, XU Lisong. CUBIC: a new TCP-friendly high-speed TCP variant[J]. ACM SIGOPS Operating Systems Review, 2008, 42(5): 64. DOI:10.1145/1400097.1400105
[4] 董瀚泽, 郭志川. BBR拥塞控制算法在无线网络中的性能改进[J]. 哈尔滨工业大学学报, 2019, 51(11): 63.
DONG Hanze, GUO Zhichuan. Performance improvement of BBR congestion control algorithm in wireless network[J]. Journal of Harbin Institute of Technology, 2019, 51(11): 63. DOI:10.11918/j.issn.0367-6234.201901020
[5] CARDWELL N, CHENG Y, GUNN C S, et al. BBR: congestion-based congestion control[J]. Communications of the ACM, 2017, 60(2): 58. DOI:10.1145/3009824
[6] HOCK M, BLESS R, ZITTERBART M. Experimental evaluation of BBR congestion control[C]//Proceedings of 2017 IEEE 25th International Conference on Network Protocols (ICNP). Toronto: IEEE, 2017: 1. DOI: 10.1109/ICNP.2017.8117540
[7] MA Shiyao, JIANG Jingjie, WANG Wei, et al. Fairness of congestion-based congestion control: experimental evaluation and analysis[Z]. arXiv: 1706.09115, 2017. DOI: 10.48550/arXiv.1706.09115
[8] SCHOLZ D, JAEGER B, SCHWAIGHOFER L, et al. Towards a deeper understanding of TCP BBR congestion control[C]//Proceedings of 2018 IFIP Networking Conference (IFIP Networking) and Workshops. Zurich: IEEE, 2018: 1. DOI: 10.23919/IFIPNetworking.2018.8696830
[9] SASAKI K, HANAI M, MIYAZAWA K, et al. TCP fairness among modern TCP congestion control algorithms including TCP BBR[C]//Proceedings of 2018 IEEE 7th International Conference on Cloud Networking (CloudNet). Tokyo: IEEE, 2018: 1. DOI: 10.1109/CloudNet.2018.8549505
[10] JAEGER B, SCHOLZ D, RAUMER D, et al. Reproducible measurements of TCP BBR congestion control[J]. Computer Communications, 2019(144): 31. DOI:10.1016/j.comcom.2019.05.011
[11] WARE R, MUKERJEE M K, SESHAN S, et al. Modeling BBR's interactions with loss-based congestion control[C]//Proceedings of the Internet Measurement Conference. New York: ACM, 2019: 137. DOI: 10.1145/3355369.3355604
[12] TAO Yuecheng, JIANG Yingjie, MA Shaya, et al. Unraveling the RTT-fairness Problem for BBR: a queueing model[C]//Proceedings of 2018 IEEE Global Communications Conference (GLOBECOM). Abu Dhabi: IEEE, 2018: 1. DOI: 10.1109/GLOCOM.2018.8647260
[13] 贾茗涵. 无线网络中TCP-BBR算法公平性的研究[D]. 大连: 大连理工大学, 2020
JIA Minghan. Research of fairness of TCP-BBR algorithm in wireless network[D]. Dalian: Dalian University of Technology, 2020. DOI: 10.26991/d.cnki.gdllu.2020.000790
[14] KIM G H, CHO Y Z. Delay-aware BBR congestion control algorithm for RTT fairness improvement[J]. IEEE Access, 2019(8): 4099. DOI:10.1109/ACCESS.2019.2962213
[15] PAN Wansu, TAN Haibo, LI Xiru, et al. Improved RTT fairness of BBR congestion control algorithm based on adaptive congestion window[J]. Electronics, 2021, 10(5): 615. DOI:10.3390/electronics10050615
[16] KLEINROCK L. Power and deterministic rules of thumb for probabilistic problems in computer communications[C]//Proceedings of the International Conference on Communications. Piscataway: IEEE, 1979, 3(43): 1
[17] BRAKMO L S, PETERSON L L. TCP Vegas: end to end congestion avoidance on a global Internet[J]. IEEE Journal on Selected Areas in Communications, 1995, 13(8): 1465. DOI:10.1109/49.464716
[18] AFANASYEV A, TILLEY N, REIHER P, et al. Host-to-host congestion control for TCP[J]. IEEE Communications Surveys & Tutorials, 2010, 12(3): 304. DOI:10.1109/SURV.2010.042710.00114
[19] YANG Ming, YANG Peng, WEN Chaozhou, et al. Adaptive-BBR: fine-grained congestion control with improved fairness and low latency[C]//Proceedings of 2019 IEEE Wireless Communications and Networking Conference (WCNC). Marrakesh: IEEE, 2019: 1. DOI: 10.1109/WCNC.2019.8885527
[20] JAIN V, MITTAL V, TAHILIANI M P. Design and implementation of TCP BBR in ns-3[C]//Proceedings of the 10th Workshop on ns-3. New York: ACM, 2018: 16. DOI: 10.1145/3199902.3199911
[21] ZHANG Songyang. An evaluation of BBR and its variants[Z]. arXiv: 1909.03673, 2019. DOI: 10.48550/arXiv.1909.03673
[22] JAIN R, CHIU D M, HAWE W. A quantitative measure of fairness and discrimination[Z]. arXiv: cs/9809099, 1984. DOI: 10.48550/arXiv.cs/9809099