logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

cc_cubic — CUBIC Congestion Control Algorithm

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.

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>.

Debian                                         September 15, 2011                                    CC_CUBIC(4)

Description

       The  CUBIC  congestion  control  algorithm was designed to provide increased throughput in fast and long-
       distance networks.  It attempts to maintain 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 below.

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/

Mib Variables

       There are currently no tunable MIB variables.

Name

       cc_cubic — CUBIC Congestion Control Algorithm

See Also

cc_chd(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,   CUBICforFastLong-DistanceNetworks,
       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”, SIGOPSOper.Syst.Rev., 5, 42, 64-74, July 2008.

See Also