xref: /freebsd/share/man/man4/cc_cubic.4 (revision b2dfb50f3f381b53340e1805d0c49226578fc3c5)
129f269dcSLawrence Stewart.\"
229f269dcSLawrence Stewart.\" Copyright (c) 2009 Lawrence Stewart <lstewart@FreeBSD.org>
329f269dcSLawrence Stewart.\" Copyright (c) 2010-2011 The FreeBSD Foundation
429f269dcSLawrence Stewart.\" All rights reserved.
529f269dcSLawrence Stewart.\"
629f269dcSLawrence Stewart.\" Portions of this documentation were written at the Centre for Advanced
7891b8ed4SLawrence Stewart.\" Internet Architectures, Swinburne University of Technology, Melbourne,
8891b8ed4SLawrence Stewart.\" Australia by David Hayes under sponsorship from the FreeBSD Foundation.
929f269dcSLawrence Stewart.\"
1029f269dcSLawrence Stewart.\" Redistribution and use in source and binary forms, with or without
1129f269dcSLawrence Stewart.\" modification, are permitted provided that the following conditions
1229f269dcSLawrence Stewart.\" are met:
1329f269dcSLawrence Stewart.\" 1. Redistributions of source code must retain the above copyright
1429f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer.
1529f269dcSLawrence Stewart.\" 2. Redistributions in binary form must reproduce the above copyright
1629f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer in the
1729f269dcSLawrence Stewart.\"    documentation and/or other materials provided with the distribution.
1829f269dcSLawrence Stewart.\"
1929f269dcSLawrence Stewart.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
2029f269dcSLawrence Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2129f269dcSLawrence Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2229f269dcSLawrence Stewart.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
2329f269dcSLawrence Stewart.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2429f269dcSLawrence Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2529f269dcSLawrence Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2629f269dcSLawrence Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2729f269dcSLawrence Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2829f269dcSLawrence Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2929f269dcSLawrence Stewart.\" SUCH DAMAGE.
3029f269dcSLawrence Stewart.\"
3129f269dcSLawrence Stewart.\" $FreeBSD$
3229f269dcSLawrence Stewart.\"
338ea5eeb9SMichael Tuexen.Dd May 13, 2021
3429f269dcSLawrence Stewart.Dt CC_CUBIC 4
3529f269dcSLawrence Stewart.Os
3629f269dcSLawrence Stewart.Sh NAME
3729f269dcSLawrence Stewart.Nm cc_cubic
3829f269dcSLawrence Stewart.Nd CUBIC Congestion Control Algorithm
3929f269dcSLawrence Stewart.Sh DESCRIPTION
4029f269dcSLawrence StewartThe CUBIC congestion control algorithm was designed to provide increased
4129f269dcSLawrence Stewartthroughput in fast and long-distance networks.
4229f269dcSLawrence StewartIt attempts to maintain fairness when competing with legacy NewReno TCP in lower
4329f269dcSLawrence Stewartspeed scenarios where NewReno is able to operate adequately.
4429f269dcSLawrence Stewart.Pp
4529f269dcSLawrence StewartThe congestion window is increased as a function of the time elapsed since the
4629f269dcSLawrence Stewartlast congestion event.
4729f269dcSLawrence StewartDuring regular operation, the window increase function follows a cubic function,
4829f269dcSLawrence Stewartwith the inflection point set to be the congestion window value reached at the
4929f269dcSLawrence Stewartlast congestion event.
5029f269dcSLawrence StewartCUBIC also calculates an estimate of the congestion window that NewReno would
5129f269dcSLawrence Stewarthave achieved at a given time after a congestion event.
5229f269dcSLawrence StewartWhen updating the congestion window, the algorithm will choose the larger of the
5329f269dcSLawrence Stewartcalculated CUBIC and estimated NewReno windows.
5429f269dcSLawrence Stewart.Pp
5529f269dcSLawrence StewartCUBIC also backs off less on congestion by changing the multiplicative decrease
5629f269dcSLawrence Stewartfactor from 1/2 (used by standard NewReno TCP) to 4/5.
5729f269dcSLawrence Stewart.Pp
5829f269dcSLawrence StewartThe implementation was done in a clean-room fashion, and is based on the
5929f269dcSLawrence StewartInternet Draft and paper referenced in the
6029f269dcSLawrence Stewart.Sx SEE ALSO
6129f269dcSLawrence Stewartsection below.
6229f269dcSLawrence Stewart.Sh MIB Variables
6329f269dcSLawrence StewartThere are currently no tunable MIB variables.
6429f269dcSLawrence Stewart.Sh SEE ALSO
658ea5eeb9SMichael Tuexen.Xr cc_cdg 4 ,
6629f269dcSLawrence Stewart.Xr cc_chd 4 ,
678ea5eeb9SMichael Tuexen.Xr cc_dctcp 4 ,
6829f269dcSLawrence Stewart.Xr cc_hd 4 ,
6929f269dcSLawrence Stewart.Xr cc_htcp 4 ,
7029f269dcSLawrence Stewart.Xr cc_newreno 4 ,
7129f269dcSLawrence Stewart.Xr cc_vegas 4 ,
72f772f9feSLawrence Stewart.Xr mod_cc 4 ,
7329f269dcSLawrence Stewart.Xr tcp 4 ,
74f772f9feSLawrence Stewart.Xr mod_cc 9
7529f269dcSLawrence Stewart.Rs
7629f269dcSLawrence Stewart.%A "Sangtae Ha"
7729f269dcSLawrence Stewart.%A "Injong Rhee"
7829f269dcSLawrence Stewart.%A "Lisong Xu"
7929f269dcSLawrence Stewart.%T "CUBIC for Fast Long-Distance Networks"
80*b2dfb50fSWolfram Schneider.%U "https://tools.ietf.org/id/draft-rhee-tcpm-cubic-02.txt"
8129f269dcSLawrence Stewart.Re
8229f269dcSLawrence Stewart.Rs
8329f269dcSLawrence Stewart.%A "Sangtae Ha"
8429f269dcSLawrence Stewart.%A "Injong Rhee"
8529f269dcSLawrence Stewart.%A "Lisong Xu"
8629f269dcSLawrence Stewart.%T "CUBIC: a new TCP-friendly high-speed TCP variant"
8729f269dcSLawrence Stewart.%J "SIGOPS Oper. Syst. Rev."
8829f269dcSLawrence Stewart.%V "42"
8929f269dcSLawrence Stewart.%N "5"
9029f269dcSLawrence Stewart.%D "July 2008"
9129f269dcSLawrence Stewart.%P "64-74"
9229f269dcSLawrence Stewart.Re
9329f269dcSLawrence Stewart.Sh ACKNOWLEDGEMENTS
9429f269dcSLawrence StewartDevelopment and testing of this software were made possible in part by grants
9529f269dcSLawrence Stewartfrom the FreeBSD Foundation and Cisco University Research Program Fund at
9629f269dcSLawrence StewartCommunity Foundation Silicon Valley.
9729f269dcSLawrence Stewart.Sh HISTORY
9829f269dcSLawrence StewartThe
9929f269dcSLawrence Stewart.Nm
10029f269dcSLawrence Stewartcongestion control module first appeared in
10129f269dcSLawrence Stewart.Fx 9.0 .
10229f269dcSLawrence Stewart.Pp
10329f269dcSLawrence StewartThe module was first released in 2009 by Lawrence Stewart whilst studying at
104891b8ed4SLawrence StewartSwinburne University of Technology's Centre for Advanced Internet Architectures,
105891b8ed4SLawrence StewartMelbourne, Australia.
10629f269dcSLawrence StewartMore details are available at:
10729f269dcSLawrence Stewart.Pp
10829f269dcSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/
10929f269dcSLawrence Stewart.Sh AUTHORS
11029f269dcSLawrence Stewart.An -nosplit
11129f269dcSLawrence StewartThe
11229f269dcSLawrence Stewart.Nm
11329f269dcSLawrence Stewartcongestion control module and this manual page were written by
1146c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org
11529f269dcSLawrence Stewartand
1166c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org .
117