xref: /freebsd/share/man/man4/cc_hd.4 (revision 8ea5eeb913b94aa45aa7773d14b31222d509ec34)
129f269dcSLawrence Stewart.\"
229f269dcSLawrence Stewart.\" Copyright (c) 2010-2011 The FreeBSD Foundation
329f269dcSLawrence Stewart.\" All rights reserved.
429f269dcSLawrence Stewart.\"
529f269dcSLawrence Stewart.\" This documentation was written at the Centre for Advanced Internet
6891b8ed4SLawrence Stewart.\" Architectures, Swinburne University of Technology, Melbourne, Australia by
7891b8ed4SLawrence Stewart.\" David Hayes under sponsorship from the FreeBSD Foundation.
829f269dcSLawrence Stewart.\"
929f269dcSLawrence Stewart.\" Redistribution and use in source and binary forms, with or without
1029f269dcSLawrence Stewart.\" modification, are permitted provided that the following conditions
1129f269dcSLawrence Stewart.\" are met:
1229f269dcSLawrence Stewart.\" 1. Redistributions of source code must retain the above copyright
1329f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer.
1429f269dcSLawrence Stewart.\" 2. Redistributions in binary form must reproduce the above copyright
1529f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer in the
1629f269dcSLawrence Stewart.\"    documentation and/or other materials provided with the distribution.
1729f269dcSLawrence Stewart.\"
1829f269dcSLawrence Stewart.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1929f269dcSLawrence Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2029f269dcSLawrence Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2129f269dcSLawrence Stewart.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
2229f269dcSLawrence Stewart.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2329f269dcSLawrence Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2429f269dcSLawrence Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2529f269dcSLawrence Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2629f269dcSLawrence Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2729f269dcSLawrence Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2829f269dcSLawrence Stewart.\" SUCH DAMAGE.
2929f269dcSLawrence Stewart.\"
3029f269dcSLawrence Stewart.\" $FreeBSD$
3129f269dcSLawrence Stewart.\"
32*8ea5eeb9SMichael Tuexen.Dd May 13, 2021
3329f269dcSLawrence Stewart.Dt CC_HD 4
3429f269dcSLawrence Stewart.Os
3529f269dcSLawrence Stewart.Sh NAME
3629f269dcSLawrence Stewart.Nm cc_hd
3729f269dcSLawrence Stewart.Nd HD Congestion Control Algorithm
3829f269dcSLawrence Stewart.Sh DESCRIPTION
3929f269dcSLawrence StewartThe HD congestion control algorithm is an implementation of the Hamilton
4029f269dcSLawrence StewartInstitute's delay-based congestion control which aims to keep network queuing
4129f269dcSLawrence Stewartdelays below a particular threshold (queue_threshold).
4229f269dcSLawrence Stewart.Pp
4329f269dcSLawrence StewartHD probabilistically reduces the congestion window (cwnd) based on its estimate
4429f269dcSLawrence Stewartof the network queuing delay.
4529f269dcSLawrence StewartThe probability of reducing cwnd is zero at hd_qmin or less, rising to a maximum
4629f269dcSLawrence Stewartat queue_threshold, and then back to zero at the maximum queuing delay.
4729f269dcSLawrence Stewart.Pp
4829f269dcSLawrence StewartLoss-based congestion control algorithms such as NewReno probe for network
4929f269dcSLawrence Stewartcapacity by filling queues until there is a packet loss.
5029f269dcSLawrence StewartHD competes with loss-based congestion control algorithms by allowing its
5129f269dcSLawrence Stewartprobability of reducing cwnd to drop from a maximum at queue_threshold to be
5229f269dcSLawrence Stewartzero at the maximum queuing delay.
5329f269dcSLawrence StewartThis has been shown to work well when the bottleneck link is highly multiplexed.
5429f269dcSLawrence Stewart.Sh MIB Variables
5529f269dcSLawrence StewartThe algorithm exposes the following tunable variables in the
5629f269dcSLawrence Stewart.Va net.inet.tcp.cc.hd
5729f269dcSLawrence Stewartbranch of the
5829f269dcSLawrence Stewart.Xr sysctl 3
5929f269dcSLawrence StewartMIB:
6029f269dcSLawrence Stewart.Bl -tag -width ".Va queue_threshold"
6129f269dcSLawrence Stewart.It Va queue_threshold
6229f269dcSLawrence StewartQueueing congestion threshold (qth) in ticks.
6329f269dcSLawrence StewartDefault is 20.
6429f269dcSLawrence Stewart.It Va pmax
6529f269dcSLawrence StewartPer packet maximum backoff probability as a percentage.
6629f269dcSLawrence StewartDefault is 5.
6729f269dcSLawrence Stewart.It Va qmin
6829f269dcSLawrence StewartMinimum queuing delay threshold (qmin) in ticks.
6929f269dcSLawrence StewartDefault is 5.
7029f269dcSLawrence Stewart.El
7129f269dcSLawrence Stewart.Sh SEE ALSO
72*8ea5eeb9SMichael Tuexen.Xr cc_cdg 4 ,
7329f269dcSLawrence Stewart.Xr cc_chd 4 ,
7429f269dcSLawrence Stewart.Xr cc_cubic 4 ,
75*8ea5eeb9SMichael Tuexen.Xr cc_dctcp 4 ,
7629f269dcSLawrence Stewart.Xr cc_htcp 4 ,
7729f269dcSLawrence Stewart.Xr cc_newreno 4 ,
7829f269dcSLawrence Stewart.Xr cc_vegas 4 ,
7929f269dcSLawrence Stewart.Xr h_ertt 4 ,
80f772f9feSLawrence Stewart.Xr mod_cc 4 ,
8129f269dcSLawrence Stewart.Xr tcp 4 ,
82f772f9feSLawrence Stewart.Xr khelp 9 ,
83f772f9feSLawrence Stewart.Xr mod_cc 9
8429f269dcSLawrence Stewart.Rs
8529f269dcSLawrence Stewart.%A "L. Budzisz"
8629f269dcSLawrence Stewart.%A "R. Stanojevic"
8729f269dcSLawrence Stewart.%A "R. Shorten"
8829f269dcSLawrence Stewart.%A "F. Baker"
8929f269dcSLawrence Stewart.%T "A strategy for fair coexistence of loss and delay-based congestion control algorithms"
9029f269dcSLawrence Stewart.%J "IEEE Commun. Lett."
9129f269dcSLawrence Stewart.%D "Jul 2009"
9229f269dcSLawrence Stewart.%V "13"
9329f269dcSLawrence Stewart.%N "7"
9429f269dcSLawrence Stewart.%P "555-557"
9529f269dcSLawrence Stewart.Re
9629f269dcSLawrence Stewart.Sh ACKNOWLEDGEMENTS
9729f269dcSLawrence StewartDevelopment and testing of this software were made possible in part by grants
9829f269dcSLawrence Stewartfrom the FreeBSD Foundation and Cisco University Research Program Fund at
9929f269dcSLawrence StewartCommunity Foundation Silicon Valley.
10029f269dcSLawrence Stewart.Sh FUTURE WORK
10129f269dcSLawrence StewartThe Hamilton Institute have recently made some improvements to the algorithm
10229f269dcSLawrence Stewartimplemented by this module and have called it Coexistent-TCP (C-TCP).
103f93fa1cbSUlrich SpörleinThe improvements should be evaluated and potentially incorporated into this
10429f269dcSLawrence Stewartmodule.
10529f269dcSLawrence Stewart.Sh HISTORY
10629f269dcSLawrence StewartThe
10729f269dcSLawrence Stewart.Nm
10829f269dcSLawrence Stewartcongestion control module first appeared in
10929f269dcSLawrence Stewart.Fx 9.0 .
11029f269dcSLawrence Stewart.Pp
11129f269dcSLawrence StewartThe module was first released in 2010 by David Hayes whilst working on the
112891b8ed4SLawrence StewartNewTCP research project at Swinburne University of Technology's Centre for
113891b8ed4SLawrence StewartAdvanced Internet Architectures, Melbourne, Australia.
11429f269dcSLawrence StewartMore details are available at:
11529f269dcSLawrence Stewart.Pp
11629f269dcSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/
11729f269dcSLawrence Stewart.Sh AUTHORS
11829f269dcSLawrence Stewart.An -nosplit
11929f269dcSLawrence StewartThe
12029f269dcSLawrence Stewart.Nm
12129f269dcSLawrence Stewartcongestion control module and this manual page were written by
1226c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org .
123