English

CUBIC

Updated on Mar 1, 2025 by
388

What is CUBIC

CUBIC is a TCP (Transmission Control Protocol) congestion control algorithm designed to improve the performance of high-bandwidth, long-distance networks. It is an enhancement to the mechanism of earlier TCP algorithms. Introduced as an evolution of the classic TCP congestion control methods like TCP Reno, CUBIC was developed to address the challenges of modern high-speed networks, which often feature large bandwidth and long round-trip times (RTT). It achieves this by dynamically adjusting the size of the congestion window, thus enabling efficient data transfer even in the presence of network congestion.
CUBIC is now the default congestion control algorithm in many modern Linux distributions and has been widely adopted by data centers and large-scale network infrastructures. Its name, “CUBIC,” refers to the cubic function used to adjust the window size in a way that makes it more effective in high-bandwidth environments.

The Evolution of CUBIC

TCP (Traditional TCP): Before CUBIC, traditional TCP algorithms like TCP Reno controlled congestion with slow start, congestion avoidance, and fast retransmit. However, TCP struggled in high-bandwidth, high-latency networks, underutilizing bandwidth due to its linear congestion window growth. Additionally, recovery from packet loss was slow, particularly in long-distance connections, leading to poor performance in large data transfers.
BIC-TCP (Binary Increase Congestion Control): BIC-TCP improved TCP’s performance in high-bandwidth networks by using a binary increase for faster congestion window growth. However, it introduced complexity and caused network oscillations. Recovery after packet loss was slower than needed, and BIC-TCP faced fairness issues, with some connections monopolizing bandwidth in shared networks.
CUBIC: CUBIC was developed as a more efficient successor to BIC-TCP. It used a cubic function to adjust the congestion window, providing smoother and more gradual window growth. This allowed CUBIC to recover from congestion more quickly without overwhelming the network, and it adapted more effectively to high-latency, high-bandwidth environments. CUBIC also addressed BIC-TCP’s fairness issues, ensuring more equitable bandwidth distribution among multiple TCP connections. The cubic function improved throughput recovery after packet loss, making CUBIC faster and more stable in modern data center and cloud environments.

The Evolution of CUBIC

How CUBIC Works

When congestion occurs, the current window size is recorded as Wmax, representing the maximum window size.
This Wmax value serves as the inflection point for the cubic function, which will dictate the congestion window’s growth.
Transmission will resume with a smaller window size, and if no congestion is encountered, the window will grow according to the concave portion of the cubic function.
As the window size approaches Wmax, the growth rate will decrease.
Upon reaching the tipping point (Wmax), the window size will continue to increase gradually.
If the network remains free of congestion, the window size will increase according to the convex part of the function.

How CUBIC Works

Advantage of CUBIC

Better Utilization of High-Bandwidth Networks: CUBIC’s cubic growth function allows it to scale much better in high-bandwidth, long-distance networks. It provides smoother and faster throughput recovery after congestion events, making it ideal for modern internet infrastructures.
Faster Convergence After Packet Loss: Unlike traditional congestion control algorithms, which may have long periods of slow recovery after packet loss, CUBIC recovers much more quickly, reducing the time the network spends in a suboptimal state.
Scalability: CUBIC is particularly effective in large-scale environments, such as data centers or cloud infrastructure, where network conditions can vary widely. The algorithm's ability to adapt to different conditions makes it a versatile choice.
Fairness in Shared Networks: CUBIC maintains fairness in environments where multiple TCP connections share the same network resources. It adjusts its window size in a way that ensures it doesn't dominate bandwidth at the expense of other connections, which is a key advantage in a multi-user environment.
Stability in High-Latency Environments: CUBIC’s gradual window growth function makes it more stable in networks with high round-trip times. The algorithm avoids abrupt increases in window size that could otherwise lead to network instability.
Videos
Global Delivery Service | FS
01:11
Jun 26, 2024
387
Global Delivery Service | FS
Related Topics
Solutions