APP下载

设备间网络通信BBR协议性能评估与分析

2021-06-03许美娟

能源与环保 2021年5期
关键词:包率公平性控制算法

许美娟,黄 晔

(1.中国科学院微小卫星创新研究院,上海 201203; 2.上海格思信息技术有限公司, 上海 201203)

自从1986年观察到Internet的拥塞崩溃以来,关于拥塞控制的研究工作一直持续。TCP拥塞控制具有重要的意义,它可以确保Internet在正常状态下工作,并避免再次发生拥塞崩溃。研究人员提出通过加性增加和乘性减小(AIMD)来调节TCP流量的拥塞窗口实现TCP拥塞控制。为了适应某些特定的网络环境,通过对基本AIMD控制律进行细微改动,提出了几种改进算法[1]。随着互联网基础设施的发展,这些基于AIMD的速率控制算法的性能不佳。类似于AIMD的算法将数据包丢失作为链路拥塞的指示,这往往会浪费带宽。在AIMD算法的启发下,又陆续出现了多种TCP拥塞控制算法,以实现高吞吐量,同时最大限度地减少传输延迟。

BBR是Google在2016年发布的新一代TCP拥塞控制算法,该算法适用于高带宽离延时的通信链路。与其他算法不同的是,BBR算法并不是把丢包作为链路拥塞的信号,而是周期性地探测当前通信链路的通信延时和带宽来作为发送端数据发送窗口的调整。依据文献[2-3]分析其在模拟链接或实际网络测试台中的行为,这些来自不同来源的实验说明BBR可以显着提高TCP连接的吞吐量。BBR已被广泛应用于构建VPN(虚拟专用网络),但其应用范围还不够广泛,公平性有局限。在2019年5月,Google以QUIC 3代码库发布了BBR v2[4],其在更为复杂和多样的网络环境中的性能还有待验证。本文通过模拟网络环境实验,评估了BBR算法及其变体BBR v2的性能。

1 背景及相关工作

1.1 传统TCP拥塞控制协议

对 TCP 协议的拥塞控制机制的改进大致可以分为基于丢包的拥塞控制和基于时延的拥塞控制机制。基于丢包的拥塞控制机制相对较多,典型的有Reno、BIC、Cubic[5-6]等;基于时延的拥塞控制机制,典型的有 Vegas、FAST[7-8]等。

Reno协议把丢包事件作为网络拥塞信号。在每个RTT上,Reno发送方可以向网络中再注入一个数据包,以探测更多可用带宽。在数据包丢失到网络恢复到正常状态时,将拥塞窗口大小减小一半。其对拥塞窗口w()的调整可总结为式(1),其中α=1和β=0.5。

(1)

Reno 协议基于丢包反馈机制和AIMD速率调整算法,但是该算法无法识别错误丢包和拥塞丢包。在高速网络中,一旦发生丢包,传统的AIMD算法将需要相当长的时间才能恢复到拥塞窗口,然后再采取乘数减少操作,这样造成Reno算法带宽资源利用率低。

在BIC中,通过二进制搜索的方法进行积极的带宽窗口探测。wmax是上一次快速恢复之前的拥塞窗口,BIC同Reno算法一样,也采用乘法减小的方式减小窗口,减小后的窗口为wmin。对于链路当前最佳拥塞窗口的区间范围为wmin

Cubic是BIC的更新版本,引入了三次函数用于窗口调整。 由于其拥塞窗口的增加仅取决于2个连续拥塞事件之间的时间,因此可以解决RTT不公平问题。Cubic算法比AIMD具有更好的性能,并且到目前为止,它一直是Linux网络堆栈中的默认配置。

基于延迟的算法可以防止队列建立,充分利用信道资源并保持吞吐量稳定性。一旦延迟超过某个阈值,将减少拥塞窗口以缓解拥塞。Vegas、FAST这类算法可以实现相当低的队列占用,但当与基于丢包的算法共享链接时,它也会处于劣势。由于这个原因,它没有在实际网络中广泛应用。

1.2 BBR

BBR (Bottleneck Bandwidth and Round-trip propagation time)是TCP中一种新的拥塞控制机制[9],不再把丢包作为拥塞产生的信号。在BBR中,当发出新的数据包时,将记录数据包状态信息(接收的字节数;数据包确认时间)。发送端维持一个长度为10×RTT时间窗口,通道带宽BW是10个RTT内的最大带宽(BtlBW,Bottleneck Bandwidth),发送端维持一个长度为10 s 的时间窗口,将期间所观察到的RTT测量值中的最小值作为传播往返时间(RTTp)。通过上述方式,发送端用短时间内传输的数据量Δdeliveded和传输时间来不断地测量网络的传输速率速率sending_Rate,可以按照公式(2)和(3)计算新的带宽估计样本。BBR协议根据测量到的BW和RTT调整发送端速率sending_Rate。

(2)

sending_Rate=Pacing_gain*Bwbtl

(3)

BBR中有4个控制状态StartUp、Drain、ProbeBW和ProbeRTT。BBR通过Pacing方式控制发送速率,增益系数G作用是调整Pacing。在每个控制状态中,数据包发送速率是增益系数G和BW的乘积。StartUp状态与TCP传统拥塞控制中的缓慢启动过程非常相似,Pacing_gain为2/ln2,以使每个RTT上的链路数据包加倍,让发送方探测最大可用带宽。当新估算的带宽小于之前的带宽1.25倍,并且这种情况持续3次时,状态变为“Drain”状态。Drain的Pacing_gain为ln2/2,以将发送速率降低到BW以下。 直到链路数据包与BDP匹配(BW*RTTmin),状态从Drain更改为ProbeBW。在ProbeBW状态期间,cwnd设置为2*BDP,Pacing增益为8个周期(kPacingGain[]=[1.25;0.75;1;1;1;1;1;1])。如果在10 s内未再次采样RTTmin,则认为链路陷入了拥塞状态,并进入ProbeRTT状态。cwnd设置为4*MSS,ProbeRTT最多将持续200 ms。 在ProbeRTT中,运行中的数据包几乎完全从链路中耗尽,开始对新的RTTmin值进行采样。

1.3 BBR v2

BBR以估算的全部带宽发送数据包,并且未用数据包丢失作为链路拥塞指示。如果瓶颈处的队列长度小于1.5 BDP,多个BBR流将会导致高丢包率。而BBR v2[10]为了解决BBR中问题,将数据包丢失纳入其控制逻辑中。添加了从StartUp到Drain的丢包条件:一轮丢包数超过8或丢包率(loss_threshold)超过0.02,施加这种条件避免了过多的分组丢失。在ProbeBW状态下,BBR v2的工作机制与BBR 完全不同。探测阶段周期(探测上升probe_up,探测下降probe_down,探测巡航probe_cruise)的切换不再取决于RTTmin的时间间隔。cwnd也未设置为2*BDP,而是增加了2个门限值inflight_lo和inflight_hi。如果有关丢包的条件成立,则将计算出的BDP分配给inflight_hi,当前网络进入危险区域。并且inflight_lo值也会根据丢包的比例来动态调整。

2 实验仿真与评估

2.1 协议内部公平性

在ns3[11-14]平台上评估了Cubic、BBR、BBR v2算法的基本性能,构建的实验拓扑图如图1所示。为了测试该算法是否可以保证带宽的分配属性,从发送端到接收端创建了3个流,在瓶颈带宽为5 Mb/s、单向延迟100 ms、最大队列长度300 ms的场景下,分别部署不同的TCP拥塞控制协议。在每种运行情况下,这些流都遵循相应的速率控制算法。

图1 实验拓扑Fig.1 Experimental topology

在发送方,当可以发送新数据包时,将跟踪拥塞控制器的速率。数据包的发送时间被标记为数据包对象,便于计算接收方到计算机的单向传输延迟。除了单向延迟之外,在接收侧,还记录接收到的分组的长度。

实时吞吐率变化如图2所示,BBR倾向于对启动状态期间的带宽进行过度估计,这样的速率峰值将导致网络拥塞并引入数据包丢失。BBR v2流可以保持良好的带宽分配公平性。在BBR v2中,速率调整非常频繁,探测更多带宽与避免链路拥塞之间取得平衡。Cubic吞吐率在2 Mb/s上下波动,远低于物理带宽,因为发送端在探测到丢包时,速率会大幅度减速,传输速率受到链路丢包率的影响,Cubic的带宽抢占性不如BBR和BBR v2。

图2 实时吞吐率变化Fig.2 Real-time throughput rate change graph

在实验中,计算每个实验中所有数据流的传输延迟的结果如图3所示。关于丢包率的结果如图4所示。

图3 数据流的传输延迟Fig.3 Transmission delay of data stream

图4 不同协议的丢包率对比Fig.4 Comparison of packet loss rates of different protocols

Cubic算法的平均传输延时比较高,BBR和BBR v2在起始阶段传输延时基本一致,BBR的延时波动比较大,后期两者延时波动基本同步。BBR在起始阶段抢占带宽,会导致丢包率相对较高,在后期进入稳定阶段,丢包率维持稳定, BBR v2可以实现比较低平均丢包率。

2.2 RTT公平性

RTT公平性是指不同协议间的公平性,本文主要对BBR、BBR v2、Cubic 三种协议之间的RRT公平性进行分析[15]。

评价实验在RTT为不同的环境下,部署BBR、BBR v2、Cubic协议,2个流分别为flow 1 和flow 2,每次测试2个流的传输速率,模拟的运行时间持续200 s。整体的吞吐量的平均值由公式(4)计算。 bytes是所有接收到的数据包的长度。公平指数jainfis被用来表明当争夺带宽资源时带宽共享的公平性[15]。jainfis公平指数的计算方法如公式(5)。J的公平性指数越接近1,就带宽分配公平性而言就越好。

(4)

(5)

根据表1可以得出BBR v2和Cubic的公平性要好于BBR,在第2种环境中, BBR flow2的吞吐量是flow1 的将近4倍。随着RTT比率在不同情况下变小,2种流量的比率越来越近,jainfis的公平性也提高了。RTT不公平的原因与中间路由器中的链路占用有关。当瓶颈已经很拥挤时,具有大RTT的流将发送更多的数据包,与具有较短RTT流的流相比,它将获得更大的带宽。

表1 RTT不公平模拟仿真的计算结果Tab.1 Simulation results of RTT unfairness

2.3 协议间公平性

在实际网络中,遵循不同的拥塞控制算法,多路流量会复用一个瓶颈链路。BBR v2的目标之一就是与Cubic和Reno 更好地共存。实验测试当BBR,BBR v2和cubic流分别共存时,这些算法的性能。flow1在实验中代表Cubic,flow2在不同的实验中分别代表BBR,BBR v2。具体实验结果见表2。在Cubic和BBR共存中,大多数带宽被flow2占用。第一个测试案例中公平指数很低,吞吐率很高。随着链接缓冲区的增加,Cubic流可以实现更高的吞吐量,但flow2所代表的BBR流吞吐量仍占主导地位。当BBR v2流与Cubic流共享瓶颈链路时,公平值非常接近1,BBR v2协议间公平性更好。

表2 不同协议之间的公平性Tab.2 Fairness between different agreements

3 结语

通过建立数据传输实验场景,对BBR和BBR v2拥塞控制算法运行效果进行仿真,与Cubic协议进行对比分析。在链路抢占性方面,BBR和BBR v2抢占性较强,吞吐量明显高于Cubic,在延时和丢包率方面也均有较好的性能。BBR v2在BBR协议的基础上有很大改进,BBR可通过调节带宽探测方式提高RTT公平性,同时在高带宽时进一步提高协议之间公平性。BBR v2协议可以引用ECN参数指标,以适应不同的网络环境、保持不同流量间的平衡。

猜你喜欢

包率公平性控制算法
支持向量机的船舶网络丢包率预测数学模型
基于模型预测控制算法的智能密度控制系统在选煤厂的应用
轻量级的无线传感器网络选择性转发攻击检测
一种基于喷泉码的异构网络发包算法*
电磁线叠包率控制工艺研究
基于Backstepping的非线性无人船航向控制算法
核心素养视阈下中小学课堂评价的公平性研究
语言测试公平性检验框架及其应用*
云环境下能耗感知的公平性提升资源调度策略
ABS自动优化控制算法及应用