1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<table class="head">
<tr>
<td class="head-ltitle">CC_CUBIC(4)</td>
<td class="head-vol">Device Drivers Manual</td>
<td class="head-rtitle">CC_CUBIC(4)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">cc_cubic</code> — <span class="Nd">CUBIC
Congestion Control Algorithm</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The CUBIC congestion control algorithm was designed to provide
increased throughput in fast and long-distance networks. The CUBIC
congestion control algorithm is the default for TCP. It attempts to maintain
fairness when competing with legacy NewReno TCP in lower speed scenarios
where NewReno is able to operate adequately.</p>
<p class="Pp">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.</p>
<p class="Pp">CUBIC also backs off less on congestion by changing the
multiplicative decrease factor from 1/2 (used by standard NewReno TCP) to
4/5.</p>
<p class="Pp">The implementation was done in a clean-room fashion, and is based
on the Internet Draft and paper referenced in the
<a class="Sx" href="#SEE_ALSO">SEE ALSO</a> section below.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="MIB_Variables"><a class="permalink" href="#MIB_Variables">MIB
Variables</a></h1>
<p class="Pp">There are currently no tunable MIB variables.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<p class="Pp"><a class="Xr">cc_cdg(4)</a>, <a class="Xr">cc_chd(4)</a>,
<a class="Xr">cc_dctcp(4)</a>, <a class="Xr">cc_hd(4)</a>,
<a class="Xr">cc_htcp(4)</a>, <a class="Xr">cc_newreno(4)</a>,
<a class="Xr">cc_vegas(4)</a>, <a class="Xr">mod_cc(4)</a>,
<a class="Xr">tcp(4)</a>, <a class="Xr">mod_cc(9)</a></p>
<p class="Pp"><cite class="Rs"><span class="RsA">Sangtae Ha</span>,
<span class="RsA">Injong Rhee</span>, and <span class="RsA">Lisong
Xu</span>, <span class="RsT">CUBIC for Fast Long-Distance Networks</span>,
<a class="RsU" href="https://tools.ietf.org/id/draft-rhee-tcpm-cubic-02.txt">https://tools.ietf.org/id/draft-rhee-tcpm-cubic-02.txt</a>.</cite></p>
<p class="Pp"><cite class="Rs"><span class="RsA">Sangtae Ha</span>,
<span class="RsA">Injong Rhee</span>, and <span class="RsA">Lisong
Xu</span>, <span class="RsT">CUBIC: a new TCP-friendly high-speed TCP
variant</span>, <i class="RsJ">SIGOPS Oper. Syst. Rev.</i>,
<span class="RsN">5</span>, <span class="RsV">42</span>,
<span class="RsP">64-74</span>, <span class="RsD">July
2008</span>.</cite></p>
</section>
<section class="Sh">
<h1 class="Sh" id="ACKNOWLEDGEMENTS"><a class="permalink" href="#ACKNOWLEDGEMENTS">ACKNOWLEDGEMENTS</a></h1>
<p class="Pp">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.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">cc_cubic</code> congestion control module
first appeared in <span class="Ux">FreeBSD 9.0</span>.</p>
<p class="Pp">This became the default congestion algorithm for FreeBSD in
version <span class="Ux">FreeBSD 14.0</span>, replacing
<a class="Xr">cc_newreno(4)</a>.</p>
<p class="Pp">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:</p>
<p class="Pp">http://caia.swin.edu.au/urp/newtcp/</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp">The <code class="Nm">cc_cubic</code> congestion control module and
this manual page were written by <span class="An">Lawrence Stewart</span>
<<a class="Mt" href="mailto:lstewart@FreeBSD.org">lstewart@FreeBSD.org</a>>
and <span class="An">David Hayes</span>
<<a class="Mt" href="mailto:david.hayes@ieee.org">david.hayes@ieee.org</a>>.</p>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">February 4, 2023</td>
<td class="foot-os">FreeBSD 15.0</td>
</tr>
</table>
|