# Ad-BBR: Enhancing Round-Trip Time Fairness and Transmission Stability in TCP-BBR
## 3 Overview of BBR  
### BBR Algorithm  
The operating mechanism of the BBR algorithm is shown in Figure 1:  
The BBR algorithm proposed by Google differs from traditional packet loss-based or delay-based probing models. It introduces the concept of a BDP, proposed by [PERSON] [31], which models the network link controlled by BBR as a physical pipe. In this analogy, the bottleneck bandwidth (BtlBw) represents the cross-sectional area of the pipe,  
Figure 1: The operational mechanism of the BBR algorithm. and the length of the link (RTprop) represents the length of the pipe. The ideal \(BDP\) is the product of these two values, i.e., \(BDP=BlBw^{*}RTprop\). The BDP represents the theoretical amount of \"inflight\" data (packets sent but not yet ACKed) that the link can hold, specifically the total number of unacknowledged packets. This includes the amount of inflight data. When the amount of inflight data is exactly equal to the BDP, the link is fully utilized, i.e., the following equation:  
\[\textit{Inflight\_data}=\textit{BDP}_{\textit{target}}=\textit{BtlBw}^{*}RTprop \tag{1}\]  
At this point, the link reaches Kleinrock's optimal operating point [32], as shown in Figure 2.  
To achieve Kleinrock's optimal operating point, accurate measurement and estimation of the BtlBw and RTprop are essential. Since both values can vary throughout the data transmission process, BBR must continuously estimate these dynamic changes. The RTT value (the time interval between sending a packet and receiving its acknowledgment) at any given moment in a BBR-controlled TCP link may consist of the link's intrinsic delay RTprop and the queuing delay \(\eta_{t}\), as shown in Equation (2):  
\[RTT_{t}=\textit{RTprop}+\eta_{t} \tag{2}\]  
The \(RTprop\), being a physical property of the link, only changes when the path changes. Therefore, the minimum RTT at time \(t\), which is involved in subsequent operations, can be replaced by the unbiased estimator of \(RTprop\) at time \(t\), as shown in Equation (3):  
\[\text{min}(RTT_{t})=RTprop_{t}=RTprop+\text{min}(\eta_{t})\ \forall t\in[t-W_{R},t] \tag{3}\]  
where \(W_{R}\) represents the running time of the time window (ranging from several seconds to a few minutes). Figure 2: The optimal operating point of BBR and the loss-based operating point of congestion control algorithms. On the other hand, the measurement of the BtlBw is determined by evaluating the data transmission rate, as the average transmission rate between the transmitter and the ACK satisfies Equation (4):  
\[deliveryRate= \frac{\Delta delivered}{\Delta t} \tag{4}\]  
The bottleneck rate, calculated as the ratio of the amount of data transmitted to the time taken, also represents the upper limit of the BtlBw, allowing the maximum transmission rate within this window to serve as an unbiased estimate of the BtlBw, as shown in Equation (5):  
\[BtlBw=max(deliveryRate_{t})\ \forall t\in[t-W_{B},t] \tag{5}\]  
BBR considers the following:  
* The minimum RTT measured over the past ten seconds as the RTprop;
* The maximum transmission rate observed within the most recent ten RTT intervals as BtlBw. Based on these parameters, BBR calculates the following:
* Bandwidth-delay product (BDP);
* Pacing rate;
* Congestion window (CWND). Notably, the calculations of the pacing rate and CWND incorporate the scaling factors _pacing_gain_ and _cvnd_gain_, respectively. Their computational formulas are detailed in Equations (6) and (7):  
\[Pacing\ Rate=pacing\_gain^{*}BtlBw \tag{6}\]  
Figure 1:0  
The BBR algorithm's state machine module consists of four phases: StartUp, Drain, ProbeBw, and ProbeRTT. StartUp phase: The sender employs a mechanism analogous to the slow-start algorithm, where both _pacing_gain_ and _cvnd_gain_ (set to \(2/\text{ln}2\approx 2.89\)) act as multiplicative factors to exponentially increase the sending rate for probing the maximum bottleneck bandwidth of the network.