Google proposed a bottleneck bandwidth round-trip propagation time (BBR) for TCP to replace the loss-based congestion control algorithms, such as Reno and CUBIC. Unlike the loss-based algorithms, BBR models a network path from source to destination and dynamically controls the sending rate using control parameters, such as pacing rate, congestion window, and quantum to achieve high throughput and low latency. However, many studies have reported performance issues in BBR operation, such as excessive packet loss in shallow buffers, the unfairness among different RTT flows, the unfairness with loss-based algorithms, and so on. Google is developing a new version of BBR, BBRv2, to resolve these performance issues. In this study, we evaluate and compare two versions of BBR on a Mininet emulator and a physical testbed, focusing on whether the BBRv2 alpha can alleviate the performance issues of BBRv1 and whether other novel issues will arise in BBRv2. The experiment results show that BBRv2 improves the unfairness and aggressiveness in small buffer less than 1 BDP. Moreover, multiple BBRv2 flows not only show better fairness in bandwidth sharing, but also reduce the amount of packet retransmissions. However, we observed that the challenging issues such as RTT unfairness, coexistence with loss-based algorithms, and synchronization between BBRv2 flows still exist. This study explores BBRv2’s current behavior in various network scenarios and compares the performance of BBRv2 with the BBRv1 congestion control algorithm.
TCP congestion control adjusts the sending rate in order to protect Internet from the continuous traffic and ensure fair coexistence among multiple flows. Especially, loss-based congestion control algorithms were mainly used, which worked relatively well for past Internet with low bandwidth and small bottleneck buffer size. However, the modern Internet uses considerably more sophisticated network equipment and advanced transmission technologies, and loss-based congestion control can cause performance degradation due to excessive queueing delay and packet loss. Therefore, Google introduced a new congestion control in 2016, Bottleneck Bandwidth Round-trip propagation time (BBR). In contrast with traditional congestion control, BBR tries to operate at the Kleinrock’s optimal operating point, where delivery rate is maximized and latency is minimized. However, when BBR and loss-based congestion control algorithms coexist on the same bottleneck link, most of bottleneck bandwidth is occupied by flows that use a particular algorithm, and excessive packet retransmission can occur. Therefore, this paper proposes a BBR congestion window scaling (BBR-CWS) scheme to improve BBR’s inter-protocol fairness with a loss-based congestion control algorithm. Through Mininet experiment results, we confirmed that fairness between BBR-CWS and CUBIC improved up to 73% and has the value of 0.9 or higher in most bottleneck buffer environments. Moreover, the number of packet retransmissions was reduced by up to 96%, compared to the original BBR.
Multipath transmission control protocol (MPTCP) is a promising transport layer protocol that enables a device to utilize multiple communication interfaces simultaneously, thereby achieving high throughput. A congestion control algorithm (CCA) employed in MPTCP constitutes a key part that controls the data flow through different subflows (SFs). There are two fundamental challenges associated with MPTCP CCAs. First, MPTCP flows should have an advantage over single-path flows; second, MPTCP flows should be fair, indicating that SFs sharing a common bottleneck should occupy a capacity fairly close to that required by a single-path flow. Several MPTCP CCAs have been developed; however, they have failed to satisfy these challenges in all scenarios. Recently, Google has introduced the bottleneck bandwidth and round-trip-time (BBR), a new CCA for single-path TCP, achieving high throughput with minimum delay by employing a network model. In the present paper, we propose a novel MPTCP CCA based on BBR named coupled multipath BBR (C-MPBBR) that satisfies the fundamental challenges by exploiting the concept of network modeling in BBR. C-MPBBR addresses the first challenge by closing the low-bandwidth SFs by tracking the delivery rate and bottleneck bandwidth (BtlBW). Then, it satisfies the second challenge through identifying those SFs that share a common bottleneck and dividing the BtlBW share corresponding to a SF among them. We implemented C-MPBBR in the Linux kernel, tested it on a wide range of scenarios by the Mininet emulation experiments, and the real-world Internet, and confirmed that the proposed C-MPBBR outperforms the existing MPTCP CCAs in terms of successfully satisfying the fundamental challenges by ensuring both throughput and fairness.
The main design goals of the multipath transmission control protocol (MPTCP) are to improve the throughput and share a common bottleneck link fairly with a single-path transmission control protocol (TCP). The existing MPTCP congestion control algorithms achieve the goal of fairness with single-path TCP flows in a shared bottleneck, but they cannot maximize the throughput in nonshared bottlenecks, where multiple subflows traverse different bottleneck links. This is because the MPTCP is designed not to exceed the throughput of a single-path TCP competing in the bottleneck. Therefore, we believe that MPTCP congestion control should have different congestion window control mechanisms, depending on the bottleneck type. In this paper, we propose an adaptive decrease window (ADW) balanced linked adaptation (BALIA) congestion control algorithm that adaptively adjusts the congestion window decrease in order to achieve better throughput in nonshared bottlenecks while maintaining fairness with the single-path TCP flows in shared bottlenecks. The ADW-BALIA algorithm detects shared and nonshared bottlenecks based on delay fluctuations and it uses different congestion window decrease methods for the two types of bottleneck. When the delay fluctuations of the MPTCP subflows are similar, the ADW-BALIA algorithm behaves the same as the existing BALIA congestion control algorithm. If the delay fluctuations are dissimilar, then the ADW-BALIA algorithm adaptively modulates the congestion window reduction. We implement the ADW-BALIA algorithm in the Linux kernel and perform an emulation experiment that is based on various topologies. ADW-BALIA improves the aggregate MPTCP throughput by 20% in the nonshared bottleneck scenario, while maintaining fairness with the single-path TCP in the shared bottleneck scenario. Even in a triple bottleneck topology, where both types of bottlenecks exist together, the throughput increases significantly. We confirmed that the ADW-BALIA algorithm works stably for different delay paths, in competition with CUBIC flows, and with lossy links.