xref: /freebsd-src/share/man/man4/cc_htcp.4 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
129f269dcSLawrence Stewart.\"
229f269dcSLawrence Stewart.\" Copyright (c) 2008 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.\"
318ea5eeb9SMichael Tuexen.Dd May 13, 2021
3229f269dcSLawrence Stewart.Dt CC_HTCP 4
3329f269dcSLawrence Stewart.Os
3429f269dcSLawrence Stewart.Sh NAME
3529f269dcSLawrence Stewart.Nm cc_htcp
3629f269dcSLawrence Stewart.Nd H-TCP Congestion Control Algorithm
3729f269dcSLawrence Stewart.Sh DESCRIPTION
3829f269dcSLawrence StewartThe H-TCP congestion control algorithm was designed to provide increased
3929f269dcSLawrence Stewartthroughput in fast and long-distance networks.
4029f269dcSLawrence StewartIt attempts to maintain fairness when competing with legacy NewReno TCP in lower
4129f269dcSLawrence Stewartspeed scenarios where NewReno is able to operate adequately.
4229f269dcSLawrence Stewart.Pp
4329f269dcSLawrence StewartThe congestion window is increased as a function of the time elapsed since the
4429f269dcSLawrence Stewartlast congestion event.
4529f269dcSLawrence StewartThe window increase algorithm operates like NewReno for the first second after a
4629f269dcSLawrence Stewartcongestion event, and then switches to a high-speed mode based on a quadratic
4729f269dcSLawrence Stewartincrease function.
4829f269dcSLawrence Stewart.Pp
4929f269dcSLawrence StewartThe implementation was done in a clean-room fashion, and is based on the
5029f269dcSLawrence StewartInternet Draft and other documents referenced in the
5129f269dcSLawrence Stewart.Sx SEE ALSO
5229f269dcSLawrence Stewartsection below.
5329f269dcSLawrence Stewart.Sh MIB Variables
5429f269dcSLawrence StewartThe algorithm exposes the following tunable variables in the
5529f269dcSLawrence Stewart.Va net.inet.tcp.cc.htcp
5629f269dcSLawrence Stewartbranch of the
5729f269dcSLawrence Stewart.Xr sysctl 3
5829f269dcSLawrence StewartMIB:
5929f269dcSLawrence Stewart.Bl -tag -width ".Va adaptive_backoff"
6029f269dcSLawrence Stewart.It Va adaptive_backoff
6129f269dcSLawrence StewartControls use of the adaptive backoff algorithm, which is designed to keep
6229f269dcSLawrence Stewartnetwork queues non-empty during congestion recovery episodes.
6329f269dcSLawrence StewartDefault is 0 (disabled).
6429f269dcSLawrence Stewart.It Va rtt_scaling
6529f269dcSLawrence StewartControls use of the RTT scaling algorithm, which is designed to make congestion
6629f269dcSLawrence Stewartwindow increase during congestion avoidance mode invariant with respect to RTT.
6729f269dcSLawrence StewartDefault is 0 (disabled).
6829f269dcSLawrence Stewart.El
6929f269dcSLawrence Stewart.Sh SEE ALSO
708ea5eeb9SMichael Tuexen.Xr cc_cdg 4 ,
7129f269dcSLawrence Stewart.Xr cc_chd 4 ,
7229f269dcSLawrence Stewart.Xr cc_cubic 4 ,
738ea5eeb9SMichael Tuexen.Xr cc_dctcp 4 ,
7429f269dcSLawrence Stewart.Xr cc_hd 4 ,
7529f269dcSLawrence Stewart.Xr cc_newreno 4 ,
7629f269dcSLawrence Stewart.Xr cc_vegas 4 ,
77f772f9feSLawrence Stewart.Xr mod_cc 4 ,
7829f269dcSLawrence Stewart.Xr tcp 4 ,
79f772f9feSLawrence Stewart.Xr mod_cc 9
8029f269dcSLawrence Stewart.Rs
8129f269dcSLawrence Stewart.%A "D. Leith"
8229f269dcSLawrence Stewart.%A "R. Shorten"
8329f269dcSLawrence Stewart.%T "H-TCP: TCP Congestion Control for High Bandwidth-Delay Product Paths"
84*b2dfb50fSWolfram Schneider.%U "https://tools.ietf.org/id/draft-leith-tcp-htcp-06.txt"
8529f269dcSLawrence Stewart.Re
8629f269dcSLawrence Stewart.Rs
8729f269dcSLawrence Stewart.%A "D. Leith"
8829f269dcSLawrence Stewart.%A "R. Shorten"
8929f269dcSLawrence Stewart.%A "T. Yee"
9029f269dcSLawrence Stewart.%T "H-TCP: A framework for congestion control in high-speed and long-distance networks"
9129f269dcSLawrence Stewart.%B "Proc. PFLDnet"
9229f269dcSLawrence Stewart.%D "2005"
9329f269dcSLawrence Stewart.Re
9429f269dcSLawrence Stewart.Rs
9529f269dcSLawrence Stewart.%A "G. Armitage"
9629f269dcSLawrence Stewart.%A "L. Stewart"
9729f269dcSLawrence Stewart.%A "M. Welzl"
9829f269dcSLawrence Stewart.%A "J. Healy"
9929f269dcSLawrence Stewart.%T "An independent H-TCP implementation under FreeBSD 7.0: description and observed behaviour"
10029f269dcSLawrence Stewart.%J "SIGCOMM Comput. Commun. Rev."
10129f269dcSLawrence Stewart.%V "38"
10229f269dcSLawrence Stewart.%N "3"
10329f269dcSLawrence Stewart.%D "July 2008"
10429f269dcSLawrence Stewart.%P "27-38"
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 2007 by James Healy and Lawrence Stewart whilst
117891b8ed4SLawrence Stewartworking on the NewTCP research project at Swinburne University of Technology's
118891b8ed4SLawrence StewartCentre for Advanced Internet Architectures, Melbourne, Australia, which was made
119891b8ed4SLawrence Stewartpossible in part by a grant from the Cisco University Research Program Fund at
120891b8ed4SLawrence StewartCommunity Foundation Silicon Valley.
12129f269dcSLawrence StewartMore details are available at:
12229f269dcSLawrence Stewart.Pp
12329f269dcSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/
12429f269dcSLawrence Stewart.Sh AUTHORS
12529f269dcSLawrence Stewart.An -nosplit
12629f269dcSLawrence StewartThe
12729f269dcSLawrence Stewart.Nm
12829f269dcSLawrence Stewartcongestion control module was written by
1296c899950SBaptiste Daroussin.An James Healy Aq Mt jimmy@deefa.com
13029f269dcSLawrence Stewartand
1316c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org .
13229f269dcSLawrence Stewart.Pp
13329f269dcSLawrence StewartThis manual page was written by
1346c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org
13529f269dcSLawrence Stewartand
1366c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org .
137