Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CC_CUBIC(4)		    Kernel Interfaces Manual		   CC_CUBIC(4)

NAME
       cc_cubic	-- CUBIC Congestion Control Algorithm

DESCRIPTION
       The  CUBIC  congestion  control	algorithm  was designed	to provide in-
       creased throughput in fast and long-distance networks.  The CUBIC  con-
       gestion control algorithm is the	default	for TCP.  It attempts to main-
       tain  fairness  when  competing	with legacy NewReno TCP	in lower speed
       scenarios where NewReno is able to operate adequately.

       The congestion window is	increased as a function	of  the	 time  elapsed
       since  the last congestion event.  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.  CUBIC also calculates an	estimate of the	congestion window that
       NewReno would have achieved at a	given time after a  congestion	event.
       When  updating  the  congestion	window,	 the algorithm will choose the
       larger of the calculated	CUBIC and estimated NewReno windows.

       CUBIC also backs	off less on congestion by changing the	multiplicative
       decrease	factor from 1/2	(used by standard NewReno TCP) to 4/5.

       The  implementation  was	 done in a clean-room fashion, and is based on
       the Internet Draft and paper referenced in the "SEE ALSO"  section  be-
       low.

MIB Variables
       There are currently no tunable MIB variables.

SEE ALSO
       cc_cdg(4), cc_chd(4), cc_dctcp(4), cc_hd(4), cc_htcp(4),	cc_newreno(4),
       cc_vegas(4), mod_cc(4), tcp(4), mod_cc(9)

       Sangtae	Ha,  Injong  Rhee, and Lisong Xu, CUBIC	for Fast Long-Distance
       Networks, https://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 Pro-
       gram Fund at Community Foundation Silicon Valley.

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

       This became the default congestion algorithm  for  FreeBSD  in  version
       FreeBSD 14.0, replacing cc_newreno(4).

       The module was first released in	2009 by	Lawrence Stewart whilst	study-
       ing  at Swinburne University of Technology's Centre for Advanced	Inter-
       net 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 writ-
       ten  by	Lawrence  Stewart  <lstewart@FreeBSD.org>  and	 David	 Hayes
       <david.hayes@ieee.org>.

FreeBSD	14.3		       February	4, 2023			   CC_CUBIC(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=cc_cubic&sektion=4&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help