192a0637fSLawrence Stewart.\" 292a0637fSLawrence Stewart.\" Copyright (c) 2013 Swinburne University of Technology, Melbourne, Australia 392a0637fSLawrence Stewart.\" All rights reserved. 492a0637fSLawrence Stewart.\" 592a0637fSLawrence Stewart.\" Redistribution and use in source and binary forms, with or without 692a0637fSLawrence Stewart.\" modification, are permitted provided that the following conditions 792a0637fSLawrence Stewart.\" are met: 892a0637fSLawrence Stewart.\" 1. Redistributions of source code must retain the above copyright 992a0637fSLawrence Stewart.\" notice, this list of conditions and the following disclaimer. 1092a0637fSLawrence Stewart.\" 2. Redistributions in binary form must reproduce the above copyright 1192a0637fSLawrence Stewart.\" notice, this list of conditions and the following disclaimer in the 1292a0637fSLawrence Stewart.\" documentation and/or other materials provided with the distribution. 1392a0637fSLawrence Stewart.\" 1492a0637fSLawrence Stewart.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1592a0637fSLawrence Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1692a0637fSLawrence Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1792a0637fSLawrence Stewart.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR 1892a0637fSLawrence Stewart.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1992a0637fSLawrence Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2092a0637fSLawrence Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2192a0637fSLawrence Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2292a0637fSLawrence Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2392a0637fSLawrence Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2492a0637fSLawrence Stewart.\" SUCH DAMAGE. 2592a0637fSLawrence Stewart.\" 26*8ea5eeb9SMichael Tuexen.Dd May 13, 2021 2792a0637fSLawrence Stewart.Dt CC_CDG 4 2892a0637fSLawrence Stewart.Os 2992a0637fSLawrence Stewart.Sh NAME 3092a0637fSLawrence Stewart.Nm cc_cdg 3192a0637fSLawrence Stewart.Nd CDG Congestion Control Algorithm 3292a0637fSLawrence Stewart.Sh DESCRIPTION 3392a0637fSLawrence StewartCAIA-Delay Gradient (CDG) is a hybrid congestion control algorithm which reacts 3492a0637fSLawrence Stewartto both packet loss and inferred queuing delay. 3592a0637fSLawrence StewartIt attempts to operate as a delay-based algorithm where possible, but utilises 3692a0637fSLawrence Stewartheuristics to detect loss-based TCP cross traffic and will compete effectively 3792a0637fSLawrence Stewartas required. 3892a0637fSLawrence StewartCDG is therefore incrementally deployable and suitable for use on shared 3992a0637fSLawrence Stewartnetworks. 4092a0637fSLawrence Stewart.Pp 4192a0637fSLawrence StewartDuring delay-based operation, CDG uses a delay-gradient based probabilistic 4292a0637fSLawrence Stewartbackoff mechanism, and will also try to infer non congestion related 4392a0637fSLawrence Stewartpacket losses and avoid backing off when they occur. 4492a0637fSLawrence StewartDuring loss-based operation, CDG essentially reverts to 4592a0637fSLawrence Stewart.Xr cc_newreno 4 Ns - Ns like 4692a0637fSLawrence Stewartbehaviour. 4792a0637fSLawrence Stewart.Pp 4892a0637fSLawrence StewartCDG switches to loss-based operation when it detects that a configurable number 4992a0637fSLawrence Stewartof consecutive delay-based backoffs have had no measurable effect. 5092a0637fSLawrence StewartIt periodically attempts to return to delay-based operation, but will keep 5192a0637fSLawrence Stewartswitching back to loss-based operation as required. 5292a0637fSLawrence Stewart.Sh MIB Variables 5392a0637fSLawrence StewartThe algorithm exposes the following variables in the 5492a0637fSLawrence Stewart.Va net.inet.tcp.cc.cdg 5592a0637fSLawrence Stewartbranch of the 5692a0637fSLawrence Stewart.Xr sysctl 3 5792a0637fSLawrence StewartMIB: 5892a0637fSLawrence Stewart.Bl -tag -width ".Va exp_backoff_scale" 5992a0637fSLawrence Stewart.It Va version 6092a0637fSLawrence StewartCurrent algorithm/implementation version number. 6192a0637fSLawrence Stewart.It Va beta_delay 6292a0637fSLawrence StewartDelay-based window decrease factor as a percentage (on delay-based backoff, w = 6392a0637fSLawrence Stewartw * beta_delay / 100). 6492a0637fSLawrence StewartDefault is 70. 6592a0637fSLawrence Stewart.It Va beta_loss 6692a0637fSLawrence StewartLoss-based window decrease factor as a percentage (on loss-based backoff, w = 6792a0637fSLawrence Stewartw * beta_loss / 100). 6892a0637fSLawrence StewartDefault is 50. 6992a0637fSLawrence Stewart.It Va exp_backoff_scale 7092a0637fSLawrence StewartScaling parameter for the probabilistic exponential backoff. 7192a0637fSLawrence StewartDefault is 2. 7292a0637fSLawrence Stewart.It Va smoothing_factor 7392a0637fSLawrence StewartNumber of samples used for moving average smoothing (0 means no smoothing). 7492a0637fSLawrence StewartDefault is 8. 7592a0637fSLawrence Stewart.It Va loss_compete_consec_cong 7692a0637fSLawrence StewartNumber of consecutive delay-gradient based congestion episodes which will 7792a0637fSLawrence Stewarttrigger loss-based CC compatibility. 7892a0637fSLawrence StewartDefault is 5. 7992a0637fSLawrence Stewart.It Va loss_compete_hold_backoff 8092a0637fSLawrence StewartNumber of consecutive delay-gradient based congestion episodes to hold the 8192a0637fSLawrence Stewartwindow backoff for loss-based CC compatibility. 8292a0637fSLawrence StewartDefault is 5. 8392a0637fSLawrence Stewart.It Va alpha_inc 8492a0637fSLawrence StewartIf non-zero, this enables an experimental mode where CDG's window increase 8592a0637fSLawrence Stewartfactor (alpha) is increased by 1 MSS every 8692a0637fSLawrence Stewart.Va alpha_inc 8792a0637fSLawrence StewartRTTs during congestion avoidance mode. 8892a0637fSLawrence Stewart(Setting 8992a0637fSLawrence Stewart.Va alpha_inc 9092a0637fSLawrence Stewartto 1 results in the most aggressive growth of the window increase factor over 9192a0637fSLawrence Stewarttime. 9292a0637fSLawrence StewartUse higher 9392a0637fSLawrence Stewart.Va alpha_inc 9492a0637fSLawrence Stewartvalues for slower growth.) 9592a0637fSLawrence StewartDefault is 0. 9692a0637fSLawrence Stewart.El 9792a0637fSLawrence Stewart.Sh SEE ALSO 9892a0637fSLawrence Stewart.Xr cc_chd 4 , 9992a0637fSLawrence Stewart.Xr cc_cubic 4 , 100*8ea5eeb9SMichael Tuexen.Xr cc_dctcp 4 , 10192a0637fSLawrence Stewart.Xr cc_hd 4 , 10292a0637fSLawrence Stewart.Xr cc_htcp 4 , 10392a0637fSLawrence Stewart.Xr cc_newreno 4 , 10492a0637fSLawrence Stewart.Xr cc_vegas 4 , 10592a0637fSLawrence Stewart.Xr h_ertt 4 , 10692a0637fSLawrence Stewart.Xr mod_cc 4 , 10792a0637fSLawrence Stewart.Xr tcp 4 , 10892a0637fSLawrence Stewart.Xr khelp 9 , 10992a0637fSLawrence Stewart.Xr mod_cc 9 11092a0637fSLawrence Stewart.Rs 11192a0637fSLawrence Stewart.%A "D. A. Hayes" 11292a0637fSLawrence Stewart.%A "G. Armitage" 11392a0637fSLawrence Stewart.%T "Revisiting TCP Congestion Control using Delay Gradients" 11492a0637fSLawrence Stewart.%J "Networking 2011 Proceedings, Part II" 11592a0637fSLawrence Stewart.%D "May 2011" 11692a0637fSLawrence Stewart.%P "328-341" 11792a0637fSLawrence Stewart.Re 11892a0637fSLawrence Stewart.Rs 11992a0637fSLawrence Stewart.%A "N. Khademi" 12092a0637fSLawrence Stewart.%A "G. Armitage" 12192a0637fSLawrence Stewart.%T "Minimising RTT across homogeneous 802.11 WLANs with CAIA Delay-Gradient TCP (v0.1)" 12292a0637fSLawrence Stewart.%R "CAIA Technical Report 121113A" 12392a0637fSLawrence Stewart.%D "November 2012" 12492a0637fSLawrence Stewart.%U "http://caia.swin.edu.au/reports/121113A/CAIA-TR-121113A.pdf" 12592a0637fSLawrence Stewart.Re 12692a0637fSLawrence Stewart.Sh ACKNOWLEDGEMENTS 12792a0637fSLawrence StewartDevelopment and testing of this software were made possible in part by grants 12892a0637fSLawrence Stewartfrom the FreeBSD Foundation and The Cisco University Research Program Fund, a 12992a0637fSLawrence Stewartcorporate advised fund of Silicon Valley Community Foundation. 13092a0637fSLawrence Stewart.Sh HISTORY 13192a0637fSLawrence StewartThe 13292a0637fSLawrence Stewart.Nm 13392a0637fSLawrence Stewartcongestion control module first appeared in 13492a0637fSLawrence Stewart.Fx 9.2 . 13592a0637fSLawrence Stewart.Pp 13692a0637fSLawrence StewartThe module was first released in 2011 by David Hayes whilst working on the 13792a0637fSLawrence StewartNewTCP research project at Swinburne University of Technology's Centre for 13892a0637fSLawrence StewartAdvanced Internet Architectures, Melbourne, Australia. 13992a0637fSLawrence StewartMore details are available at: 14092a0637fSLawrence Stewart.Pp 14192a0637fSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/ 14292a0637fSLawrence Stewart.Sh AUTHORS 14392a0637fSLawrence Stewart.An -nosplit 14492a0637fSLawrence StewartThe 14592a0637fSLawrence Stewart.Nm 14692a0637fSLawrence Stewartcongestion control module was written by 1476c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org . 14892a0637fSLawrence StewartThis manual page was written by 1496c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org 15092a0637fSLawrence Stewartand 1516c899950SBaptiste Daroussin.An Grenville Armitage Aq Mt garmitage@swin.edu.au . 15292a0637fSLawrence Stewart.Sh BUGS 15392a0637fSLawrence StewartThe underlying algorithm and parameter values are still a work in progress and 15492a0637fSLawrence Stewartmay not be optimal for some network scenarios. 155