summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/cc_cubic.4 3.html
blob: 117c6659dd256503864de1811acf1df6de5fceb6 (plain)
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> &#x2014; <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>
    &lt;<a class="Mt" href="mailto:lstewart@FreeBSD.org">lstewart@FreeBSD.org</a>&gt;
    and <span class="An">David Hayes</span>
    &lt;<a class="Mt" href="mailto:david.hayes@ieee.org">david.hayes@ieee.org</a>&gt;.</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>