CC_CUBIC(4)

πŸ’– CC_CUBIC(4) πŸ’–

okay bestie, pull up a chair because we're about to talk about the CUBIC Congestion Control Algorithm β€” that's the cc_cubic man page, section 4 of the Kernel Interfaces Manual, and she is iconic. πŸŽ€


✨ NAME ✨

cc_cubic β€” the CUBIC Congestion Control Algorithm, no cap πŸ’…


🌸 DESCRIPTION 🌸

okay so. The CUBIC congestion control algorithm was literally designed to serve up increased throughput in fast and long-distance networks. It's giving main character energy for fat pipes. πŸ¦‹

But here's the thing β€” she's not rude about it. She attempts to maintain fairness when she's competing with legacy NewReno TCP in lower speed scenarios, y'know, the ones where NewReno is able to operate adequately. Sharing the lane, as she should. ✨

So the congestion window gets increased as a function of the time elapsed since the last congestion event. Tick tock, bestie. ⏰ During regular operation, the window increase function follows a cubic function, with the inflection point set to be the congestion window value reached at the last congestion event. Math girlie behaviour fr fr. πŸ“ˆ

CUBIC also calculates an estimate of the congestion window that NewReno would have achieved at a given time after a congestion event β€” like, "what would my ex have done" but for TCP. 😭 And when updating the congestion window, the algorithm will choose the larger of the calculated CUBIC and estimated NewReno windows. Biggest wins, periodt.

Also she backs off less on congestion β€” the multiplicative decrease factor goes from 1/2 (used by standard NewReno TCP) to 4/5. Not me being generous with the window πŸ’…

The implementation was done in a clean-room fashion, and is based on the Internet Draft and paper referenced in the β€œSEE ALSO” section below. Respect the sources, always. 🫢


🧚 MIB Variables 🧚

There are currently no tunable MIB variables. That's it. That's the section. Nothing to tweak, bestie, she's self-sufficient. πŸ’€


πŸ‘‘ SEE ALSO πŸ‘‘

Sangtae Ha, Injong Rhee, and Lisong Xu, CUBIC for Fast Long-Distance Networks, http://tools.ietf.org/id/draft-rhee-tcpm-cubic-02.txt.

Sangtae Ha, Injong Rhee, and Lisong Xu, β€œCUBIC: a new TCP-friendly high-speed TCP variant”, SIGOPS Oper. Syst. Rev., 5, 42, 64-74, July 2008.


🌈 ACKNOWLEDGEMENTS 🌈

Development and testing of this software were made possible in part by grants from the FreeBSD Foundation and Cisco University Research Program Fund at Community Foundation Silicon Valley. Funding besties, we love to see it πŸ’–


⭐ HISTORY ⭐

The cc_cubic congestion control module first appeared in FreeBSD 9.0. ✨

The module was first released in 2009 by Lawrence Stewart whilst studying at Swinburne University of Technology's Centre for Advanced Internet Architectures, Melbourne, Australia. More details are available at:

http://caia.swin.edu.au/urp/newtcp/


πŸ’œ AUTHORS πŸ’œ

The cc_cubic congestion control module and this manual page were written by Lawrence Stewart <lstewart@FreeBSD.org> and David Hayes <david.hayes@ieee.org>. Legends, honestly. 🫢


and that's the whole vibe check, bestie β€” CUBIC stays cubic, backs off at 4/5, and keeps it fair with NewReno. slay πŸ’…βœ¨

kiss kiss, this page came to you from the Debian edition, dated September 15, 2011 πŸŽ€ β€” yes she's an elder but she ATE and left no crumbs πŸŒΈπŸ’–

πŸ“¦ where this page comes from