xref: /freebsd/share/man/man4/cc_chd.4 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
129f269dcSLawrence Stewart.\"
229f269dcSLawrence Stewart.\" Copyright (c) 2010-2011 The FreeBSD Foundation
329f269dcSLawrence Stewart.\"
429f269dcSLawrence Stewart.\" This documentation was written at the Centre for Advanced Internet
5891b8ed4SLawrence Stewart.\" Architectures, Swinburne University of Technology, Melbourne, Australia by
6891b8ed4SLawrence Stewart.\" David Hayes under sponsorship from the FreeBSD Foundation.
729f269dcSLawrence Stewart.\"
829f269dcSLawrence Stewart.\" Redistribution and use in source and binary forms, with or without
929f269dcSLawrence Stewart.\" modification, are permitted provided that the following conditions
1029f269dcSLawrence Stewart.\" are met:
1129f269dcSLawrence Stewart.\" 1. Redistributions of source code must retain the above copyright
1229f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer.
1329f269dcSLawrence Stewart.\" 2. Redistributions in binary form must reproduce the above copyright
1429f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer in the
1529f269dcSLawrence Stewart.\"    documentation and/or other materials provided with the distribution.
1629f269dcSLawrence Stewart.\"
1729f269dcSLawrence Stewart.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1829f269dcSLawrence Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1929f269dcSLawrence Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2029f269dcSLawrence Stewart.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
2129f269dcSLawrence Stewart.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2229f269dcSLawrence Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2329f269dcSLawrence Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2429f269dcSLawrence Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2529f269dcSLawrence Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2629f269dcSLawrence Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2729f269dcSLawrence Stewart.\" SUCH DAMAGE.
2829f269dcSLawrence Stewart.\"
29*8ea5eeb9SMichael Tuexen.Dd May 13, 2021
3029f269dcSLawrence Stewart.Dt CC_CHD 4
3129f269dcSLawrence Stewart.Os
3229f269dcSLawrence Stewart.Sh NAME
3329f269dcSLawrence Stewart.Nm cc_chd
3429f269dcSLawrence Stewart.Nd CHD Congestion Control Algorithm
3529f269dcSLawrence Stewart.Sh DESCRIPTION
3629f269dcSLawrence StewartCHD enhances the HD algorithm implemented in
3729f269dcSLawrence Stewart.Xr cc_hd 4 .
3829f269dcSLawrence StewartIt provides tolerance to non-congestion related packet loss and improvements to
3929f269dcSLawrence Stewartcoexistence with traditional loss-based TCP flows, especially when the
4029f269dcSLawrence Stewartbottleneck link is lightly multiplexed.
4129f269dcSLawrence Stewart.Pp
4229f269dcSLawrence StewartLike HD, the algorithm aims to keep network queuing delays below a particular
4329f269dcSLawrence Stewartthreshold (queue_threshold) and decides to reduce the congestion window (cwnd)
4429f269dcSLawrence Stewartprobabilistically based on its estimate of the network queuing delay.
4529f269dcSLawrence Stewart.Pp
4629f269dcSLawrence StewartIt differs from HD in three key aspects:
4729f269dcSLawrence Stewart.Bl -bullet
4829f269dcSLawrence Stewart.It
4929f269dcSLawrence StewartThe probability of cwnd reduction due to congestion is calculated once per round
5029f269dcSLawrence Stewarttrip time instead of each time an acknowledgement is received as done by
5129f269dcSLawrence Stewart.Xr cc_hd 4 .
5229f269dcSLawrence Stewart.It
5329f269dcSLawrence StewartPacket losses that occur while the queuing delay is less than queue_threshold
5429f269dcSLawrence Stewartdo not cause cwnd to be reduced.
5529f269dcSLawrence Stewart.It
5629f269dcSLawrence StewartCHD uses a shadow window to help regain lost transmission opportunities when
5729f269dcSLawrence Stewartcompeting with loss-based TCP flows.
5817f0fc56SLawrence Stewart.El
5929f269dcSLawrence Stewart.Sh MIB Variables
6029f269dcSLawrence StewartThe algorithm exposes the following tunable variables in the
6129f269dcSLawrence Stewart.Va net.inet.tcp.cc.chd
6229f269dcSLawrence Stewartbranch of the
6329f269dcSLawrence Stewart.Xr sysctl 3
6429f269dcSLawrence StewartMIB:
6529f269dcSLawrence Stewart.Bl -tag -width ".Va queue_threshold"
6629f269dcSLawrence Stewart.It Va queue_threshold
6729f269dcSLawrence StewartQueueing congestion threshold (qth) in ticks.
6829f269dcSLawrence StewartDefault is 20.
6929f269dcSLawrence Stewart.It Va pmax
7029f269dcSLawrence StewartPer RTT maximum backoff probability as a percentage.
7129f269dcSLawrence StewartDefault is 50.
7229f269dcSLawrence Stewart.It Va qmin
7329f269dcSLawrence StewartMinimum queuing delay threshold (qmin) in ticks.
7429f269dcSLawrence StewartDefault is 5.
7529f269dcSLawrence Stewart.It Va loss_fair
7629f269dcSLawrence StewartIf 1, cwnd is adjusted using the shadow window when a congestion
7729f269dcSLawrence Stewartrelated loss is detected.
7829f269dcSLawrence StewartDefault is 1.
7929f269dcSLawrence Stewart.It Va use_max
8029f269dcSLawrence StewartIf 1, the maximum RTT seen within the measurement period is used as the basic
8129f269dcSLawrence Stewartdelay measurement for the algorithm, otherwise a sampled RTT measurement
8229f269dcSLawrence Stewartis used.
8329f269dcSLawrence StewartDefault is 1.
8429f269dcSLawrence Stewart.El
8529f269dcSLawrence Stewart.Sh SEE ALSO
86*8ea5eeb9SMichael Tuexen.Xr cc_cdg 4 ,
8729f269dcSLawrence Stewart.Xr cc_cubic 4 ,
88*8ea5eeb9SMichael Tuexen.Xr cc_dctcp 4 ,
8929f269dcSLawrence Stewart.Xr cc_hd 4 ,
9029f269dcSLawrence Stewart.Xr cc_htcp 4 ,
9129f269dcSLawrence Stewart.Xr cc_newreno 4 ,
9229f269dcSLawrence Stewart.Xr cc_vegas 4 ,
9329f269dcSLawrence Stewart.Xr h_ertt 4 ,
94f772f9feSLawrence Stewart.Xr mod_cc 4 ,
9529f269dcSLawrence Stewart.Xr tcp 4 ,
96f772f9feSLawrence Stewart.Xr khelp 9 ,
97f772f9feSLawrence Stewart.Xr mod_cc 9
9829f269dcSLawrence Stewart.Rs
9929f269dcSLawrence Stewart.%A "D. A. Hayes"
10029f269dcSLawrence Stewart.%A "G. Armitage"
10129f269dcSLawrence Stewart.%T "Improved coexistence and loss tolerance for delay based TCP congestion control"
10229f269dcSLawrence Stewart.%J "in 35th Annual IEEE Conference on Local Computer Networks"
10329f269dcSLawrence Stewart.%D "October 2010"
10429f269dcSLawrence Stewart.%P "24-31"
10529f269dcSLawrence Stewart.Re
10629f269dcSLawrence Stewart.Sh ACKNOWLEDGEMENTS
10729f269dcSLawrence StewartDevelopment and testing of this software were made possible in part by grants
10829f269dcSLawrence Stewartfrom the FreeBSD Foundation and Cisco University Research Program Fund at
10929f269dcSLawrence StewartCommunity Foundation Silicon Valley.
11029f269dcSLawrence Stewart.Sh HISTORY
11129f269dcSLawrence StewartThe
11229f269dcSLawrence Stewart.Nm
11329f269dcSLawrence Stewartcongestion control module first appeared in
11429f269dcSLawrence Stewart.Fx 9.0 .
11529f269dcSLawrence Stewart.Pp
11629f269dcSLawrence StewartThe module was first released in 2010 by David Hayes whilst working on the
117891b8ed4SLawrence StewartNewTCP research project at Swinburne University of Technology's Centre for
118891b8ed4SLawrence StewartAdvanced Internet Architectures, Melbourne, Australia.
11929f269dcSLawrence StewartMore details are available at:
12029f269dcSLawrence Stewart.Pp
12129f269dcSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/
12229f269dcSLawrence Stewart.Sh AUTHORS
12329f269dcSLawrence Stewart.An -nosplit
12429f269dcSLawrence StewartThe
12529f269dcSLawrence Stewart.Nm
12629f269dcSLawrence Stewartcongestion control module and this manual page were written by
1276c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org .
128