# Performance Evaluation of TCP BBRv3 in Networks with Multiple Round Trip Times
## 3 BBR Operation Principles
### Updates in BBRv2  
In 2019, Google announced the second iteration of BBR. BBRv2 adopts a new model to control its behavior regarding both bandwidth utilization and inflight data management. The parameters governing these adaptations are determined by congestion signals, which encompass a blend of loss and ECN signals.  
BBRv2 governs the sending rate over both short and long terms. Short-term boundaries (bw_LO, inflight_LO) are determined using the latest delivery and loss signals and remain unchanged when BBRv2 is probing for bandwidth. Long-term values (bw_HI, inflight_HI) represent the maximum safe bandwidth and inflight data volume before congestion signals. BBRv2 maintains headroom, thus providing space for new flows to enter. It employs a probing approach that occurs on a time scale to facilitate coexistence  
Figure 2: BBRv1 state machine and transition conditions.  
with loss-based CCs and prevents overshooting by initiating probing at a tolerable inflight level. When entering the PROBE RTT phase, BBRv2 reduces the congestion window gain to 50% of the current inflight, thereby minimizing throughput oscillations.  
The key modification introduced in BBRv2 is the monitoring of the loss and/or ECN ratio. The STARTUP phase terminates if either the estimated bandwidth fails to grow beyond 1.25 times the previous bandwidth for three consecutive RTTs or if the predefined loss or ECN threshold is surpassed. Surpassing the loss/ECN threshold results in setting inflight_HI to the maximum safe volume of inflight data. Throughout the DRAIN phase, we decrease the sending rate until the inflight data drops below the estimated BDP, provided that adequate headroom was left if we set inflight_HI during STARTUP. Additional headroom comprises 15% of the inflight_HI.  
The PROBEBW phase is now split in four additional phases: _PROBE DOWN_, _PROBE CRUISE_, _PROBE REFILL_, and _PROBE UP_. The state machine for the new PROBE BW phase is presented in Figure 3.  
During the _PROBE DOWN_ phase, the queue is emptied and unused headroom is retained, with the pacing gain set below 1 to drain excess inflight data. The transition condition remains the same as in the DRAIN phase. Long-lived BBRv2 flows spend the majority of their time in the _CRUISE_ phase. The _CRUISE_ phase aims to adapt to maintain a low and stable queue. The inflight data are initially set at the estimated BDP, with additional headroom left if the last probe was limited by inflight_HI. During this phase, the lower bounds are refreshed per RTT using loss/ECN signals.  
During the _REFILL_ phase, the objective is to replenish the pipeline without filling the queue. Therefore, BBR sends data at the estimated bandwidth for one RTT. We refrain from sending faster to prevent queue buildup. In the _PROBE UP_ phase, we probe for additional bandwidth and increment the amount of sent data above the inflight level exponentially for each round. If the loss/ECN ratio exceeds the defined threshold, we set the ceiling of inflight_HI to the estimated safe volume of the inflight data. Probing concludes under the same conditions as in the STARTUP phase.