Abstract Google published the first release of the Bottleneck Bandwidth and Round-trip Time (BBR) congestion control algorithm in 2016. Since then, BBR has gained a widespread attention due to its ability to operate efficiently in the presence of packet loss and in scenarios where routers are equipped with small buffers. These characteristics were not attainable with traditional loss-based congestion control algorithms such as CUBIC and Reno. BBRv2 is a recent congestion control algorithm proposed as an improvement to its predecessor, BBRv1. Preliminary work suggests that BBRv2 maintains the high throughput and the bounded queueing delay properties of BBRv1. However, the literature has been missing an evaluation of BBRv2 under different network conditions. This paper presents an experimental evaluation of BBRv2 Alpha (v2alpha-2019-07-28) on Mininet, considering alternative active queue management (AQM) algorithms, routers with different buffer sizes, variable packet loss rates and round-trip times (RTTs), and small and large numbers of TCP flows. Emulation results show that BBRv2 tolerates much higher random packet loss rates than loss-based algorithms but slightly lower than BBRv1. The results also confirm that BBRv2 has better coexistence with loss-based algorithms and lower retransmission rates than BBRv1, and that it produces low queuing delay even with large buffers. When a Tail Drop policy is used with large buffers, an unfair bandwidth allocation is observed among BBRv2 and CUBIC flows. Such unfairness can be reduced by using advanced AQM schemes such as FQ-CoDel and CAKE. Regarding fairness among BBRv2 flows, results show that using small buffers produces better fairness, without compromising high throughput and link utilization. This observation applies to BBRv1 flows as well, which suggests that rate-based model-based algorithms work better with small buffers. BBRv2 also enhances the coexistence of flows with different RTTs, mitigating the RTT unfairness problem noted in BBRv1. Lastly, the paper presents the advantages of using TCP pacing with a loss-based algorithm, when the rate is manually configured a priori. Future algorithms could set the pacing rate using explicit feedback generated by modern programmable switches.
[1]
Cacm Staff,et al.
BufferBloat
,
2011,
Communications of the ACM.
[2]
V. Jacobson,et al.
Congestion avoidance and control
,
1988,
CCRV.
[3]
Mark Allman,et al.
Comments on bufferbloat
,
2013,
CCRV.
[4]
Bo Li,et al.
Towards RTT Fairness of Congestion-Based Congestion Control
,
2017,
ArXiv.
[5]
Van Jacobson,et al.
Controlling Queue Delay
,
2012,
ACM Queue.
[6]
David Thaler,et al.
Data Center TCP (DCTCP): TCP Congestion Control for Data Centers
,
2017,
RFC.
[7]
Dario Rossi,et al.
Fighting the bufferbloat: On the coexistence of AQM and low priority congestion control
,
2014,
Comput. Networks.
[8]
Grenville Armitage,et al.
A Survey of Delay-Based and Hybrid TCP Congestion Control Algorithms
,
2019,
IEEE Communications Surveys & Tutorials.
[9]
Van Jacobson,et al.
BBR: Congestion-Based Congestion Control
,
2016,
ACM Queue.
[10]
Matthew Mathis,et al.
The macroscopic behavior of the TCP congestion avoidance algorithm
,
1997,
CCRV.
[11]
R. Jain.
Throughput fairness index : An explanation
,
1999
.
[12]
Nasir Ghani,et al.
A Comprehensive Tutorial on Science DMZ
,
2019,
IEEE Communications Surveys & Tutorials.
[13]
Matt Mathis,et al.
Deprecating the TCP macroscopic model
,
2019,
CCRV.
[14]
Jim Kurose,et al.
Computer Networking: A Top-Down Approach
,
1999
.
[15]
Guido Appenzeller,et al.
Sizing router buffers
,
2004,
SIGCOMM '04.
[16]
Injong Rhee,et al.
CUBIC: a new TCP-friendly high-speed TCP variant
,
2008,
OPSR.
[17]
James Gettys.
Bufferbloat: Dark Buffers in the Internet
,
2011,
IEEE Internet Comput..
[18]
Sally Floyd,et al.
Metrics for the Evaluation of Congestion Control Mechanisms
,
2008,
RFC.