diff options
Diffstat (limited to 'static/freebsd/man4/cc_dctcp.4')
| -rw-r--r-- | static/freebsd/man4/cc_dctcp.4 | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/static/freebsd/man4/cc_dctcp.4 b/static/freebsd/man4/cc_dctcp.4 new file mode 100644 index 00000000..4095cd1e --- /dev/null +++ b/static/freebsd/man4/cc_dctcp.4 @@ -0,0 +1,150 @@ +.\" +.\" Copyright (c) 2014 Midori Kato <katoon@sfc.wide.ad.jp> +.\" Copyright (c) 2014 The FreeBSD Foundation +.\" All rights reserved. +.\" +.\" Portions of this documentation were written at Keio University, Japan. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd November 8, 2022 +.Dt CC_DCTCP 4 +.Os +.Sh NAME +.Nm cc_dctcp +.Nd DCTCP Congestion Control Algorithm +.Sh DESCRIPTION +The DCTCP (data center TCP) congestion control algorithm aims to maximise +throughput and minimise latency in data center networks by utilising the +proportion of Explicit Congestion Notification (ECN) marks received from capable +hardware as a congestion signal. +.Pp +DCTCP uses fraction of ECN marked packets to update congestion window. +The window reduction ratio is always <= 1/2. +Only when all of the packets are +marked, congestion window is halved. +.Pp +In order to keep the accuracy of the ECN marked fraction, a DCTCP receiver +mirrors back incoming (or missing) CE marks by setting (or clearing) ECE marks. +This feedback methodology is also adopted when the receiver uses delayed ACK. +.Pp +The +.Fx +DCTCP implementation includes two minor modifications for the one-sided +deployment. +Considering the situation that DCTCP is used as sender and classic +ECN is used as receiver, DCTCP sets the CWR flag as the reaction to the ECE +flag. +In addition, when classic ECN is used as sender and DCTCP is used as +receiver, DCTCP avoids to mirror back ACKs only when the CWR flag is +set in the incoming packet. +.Pp +The other specifications are based on the paper and the RFC referenced +in the +.Sx SEE ALSO +section below. +.Sh MIB Variables +The algorithm exposes the following tunable variables in the +.Va net.inet.tcp.cc.dctcp +branch of the +.Xr sysctl 3 +MIB: +.Bl -tag -width ".Va slowstart" +.It Va alpha +The initial value to estimate the congestion on the link. +The valid range is from 0 to 1024, where 1024 reduces the congestion +window to half, if a CE is observed in the first window and +.Va alpha +could not yet adjust to the congestion level on that path. +Default is 1024. +.It Va shift_g +An estimation gain in the +.Va alpha +calculation. +This influences the responsiveness when adjusting alpha +to the most recent observed window. +Valid range from 0 to 10, the default is 4, resulting in an effective +gain of 1 / ( 2 ^ +.Va shift_g +), or 1/16th. +.It Va slowstart +A flag if the congestion window should be reduced by one half after slow start. +Valid settings 0 and 1, default 0. +.It Va ect1 +Controls if a DCTCP session should use IP ECT(0) marking when sending out +segments (default), or ECT(1) marking making use of L4S infrastructure. +Changes to this setting will only affect new sessions, existing sessions will +retain their previous marking value. +.El +.Sh SEE ALSO +.Xr cc_cdg 4 , +.Xr cc_chd 4 , +.Xr cc_cubic 4 , +.Xr cc_hd 4 , +.Xr cc_htcp 4 , +.Xr cc_newreno 4 , +.Xr cc_vegas 4 , +.Xr mod_cc 4 , +.Xr tcp 4 , +.Xr mod_cc 9 +.Rs +.%A "Mohammad Alizadeh" +.%A "Albert Greenberg" +.%A "David A. Maltz" +.%A "Jitendra Padhye" +.%A "Parveen Patel" +.%A "Balaji Prabhakar" +.%A "Sudipta Sengupta" +.%A "Murari Sridharan" +.%T "Data Center TCP (DCTCP)" +.%U "http://research.microsoft.com/pubs/121386/dctcp-public.pdf" +.%J "ACM SIGCOMM 2010" +.%D "July 2010" +.%P "63-74" +.Re +.Rs +.%A "Stephen Bensley" +.%A "Dave Thaler" +.%A "Praveen Balasubramanian" +.%A "Lars Eggert" +.%A "Glenn Judd" +.%T "Data Center TCP (DCTCP): TCP Congestion Control for Data Centers" +.%U "https://tools.ietf.org/html/rfc8257" +.Re +.Sh HISTORY +The +.Nm +congestion control module first appeared in +.Fx 11.0 . +.Pp +The module was first released in 2014 by Midori Kato studying at Keio +University, Japan. +.Sh AUTHORS +.An -nosplit +The +.Nm +congestion control module and this manual page were written by +.An Midori Kato Mt katoon@sfc.wide.ad.jp +and +.An Lars Eggert Mt lars@netapp.com +with help and modifications from +.An Hiren Panchasara Mt hiren@FreeBSD.org |
