CUBIC is a
network congestion avoidance
Network congestion in data networking and queueing theory is the reduced quality of service that occurs when a network node or link is carrying more data than it can handle. Typical effects include queueing delay, packet loss or the blocking o ...
algorithm for
TCP
TCP may refer to:
Science and technology
* Transformer coupled plasma
* Tool Center Point, see Robot end effector
Computing
* Transmission Control Protocol, a fundamental Internet standard
* Telephony control protocol, a Bluetooth communication s ...
which can achieve high bandwidth connections over networks more quickly and reliably in the face of high latency than earlier algorithms. It helps optimize
long fat networks.
In 2006, the first CUBIC implementation was released in
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
kernel 2.6.13.
Since kernel version 2.6.19, CUBIC replaces
BIC-TCP as the default TCP congestion control algorithm in the Linux kernel.
MacOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
adopted TCP CUBIC with the
OS X Yosemite release in 2014, while the previous release
OS X Mavericks
OS X Mavericks (version 10.9) is the 10th major release of macOS, Apple Inc.'s desktop and server operating system for Macintosh computers. OS X Mavericks was announced on June 10, 2013, at WWDC 2013, and was released on October 22, 2013, ...
still used TCP New Reno.
Microsoft adopted it by default in
Windows 10.1709 Fall Creators Update (2017), and Windows Server 2016 1709 update.
Characteristics
CUBIC is a less aggressive and more systematic derivative of
BIC TCP, in which the window size is a
cubic function of time since the last congestion event, with the
inflection point set to the window size prior to the event. Because it is a cubic function, there are two