1
+
.\"
2
+
.\" Copyright (c) 2014 Midori Kato <katoon@sfc.wide.ad.jp>
3
+
.\" Copyright (c) 2014 The FreeBSD Foundation
4
+
.\" All rights reserved.
5
+
.\"
6
+
.\" Portions of this documentation were written at Keio University, Japan.
7
+
.\"
8
+
.\" Redistribution and use in source and binary forms, with or without
9
+
.\" modification, are permitted provided that the following conditions
10
+
.\" are met:
11
+
.\" 1. Redistributions of source code must retain the above copyright
12
+
.\" notice, this list of conditions and the following disclaimer.
13
+
.\" 2. Redistributions in binary form must reproduce the above copyright
14
+
.\" notice, this list of conditions and the following disclaimer in the
15
+
.\" documentation and/or other materials provided with the distribution.
16
+
.\"
17
+
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
+
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
+
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
21
+
.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
+
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
+
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
+
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
+
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
+
.\" SUCH DAMAGE.
28
+
.\"
29
+
.\" $FreeBSD$
30
+
.\"
31
+
.Dd January 12, 2015
32
+
.Dt CC_DCTCP 4
33
+
.Os
34
+
.Sh NAME
35
+
.Nm cc_dctcp
36
+
.Nd DCTCP Congestion Control Algorithm
37
+
.Sh DESCRIPTION
38
+
The DCTCP (data center TCP) congestion control algorithm aims to maximise
39
+
throughput and minimise latency in data center networks by utilising the
40
+
proportion of Explicit Congestion Notification (ECN) marks received from capable
41
+
hardware as a congestion signal.
42
+
.Pp
43
+
DCTCP uses fraction of ECN marked packets to update congestion window. The
44
+
window reduction ratio is always <= 1/2. Only when all of the packets are
45
+
marked, congestion window is halved.
46
+
.Pp
47
+
In order to keep the accuracy of the ECN marked fraction, a DCTCP receiver
48
+
mirrors back incoming (or missing) CE marks by setting (or clearing) ECE marks.
49
+
This feedback methodology is also adopted when the receiver uses delayed ACK.
50
+
.Pp
51
+
FreeBSD DCTCP implementation includes two minor modifications for the one-sided
52
+
deployment. Considering the situation that DCTCP is used as sender and classic
53
+
ECN is used as receiver, DCTCP sets the CWR flag as the reaction to the ECE
54
+
flag. In addition, when classic ECN is used as sender and DCTCP is used as
55
+
receiver, DCTCP avoids to mirror back ACKs only when the CWR flag is
56
+
set in the incoming packet.
57
+
.Pp
58
+
The other specifications are based on the paper and Internet Draft referenced
59
+
in the
60
+
.Sx SEE ALSO
61
+
section below.
62
+
.Sh MIB Variables
63
+
The algorithm exposes the following tunable variables in the
64
+
.Va net.inet.tcp.cc.dctcp
65
+
branch of the
66
+
.Xr sysctl 3
67
+
MIB:
68
+
.Bl -tag -width ".Va alpha"
69
+
.It Va alpha
70
+
An initial estimator of the congestion on the link.
71
+
Default is 0.
72
+
.It Va dctcp_shift_g
73
+
An estimation gain in the alpha calculation.
74
+
Default is 16.
75
+
.It Va slowstart
76
+
A trigger to halve congestion window after slow start.
77
+
Default does nothing to halve window.
78
+
.Sh SEE ALSO
79
+
.Xr cc_chd 4 ,
80
+
.Xr cc_cubic 4 ,
81
+
.Xr cc_hd 4 ,
82
+
.Xr cc_htcp 4 ,
83
+
.Xr cc_newreno 4 ,
84
+
.Xr cc_vegas 4 ,
85
+
.Xr mod_cc 4 ,
86
+
.Xr tcp 4 ,
87
+
.Xr mod_cc 9
88
+
.Rs
89
+
.%A "Mohammad Alizadeh"
90
+
.%A "Albert Greenberg"
91
+
.%A "David A. Maltz"
92
+
.%A "Jitendra Padhye"
93
+
.%A "Parveen Patel"
94
+
.%A "Balaji Prabhakar"
95
+
.%A "Sudipta Sengupta"
96
+
.%A "Murari Sridharan"
97
+
.%T "Data Center TCP (DCTCP)"
98
+
.%U "http://research.microsoft.com/pubs/121386/dctcp-public.pdf"
99
+
.%J "ACM SIGCOMM 2010"
100
+
.%D "July 2010"
101
+
.%P "63-74"
102
+
.Re
103
+
.Rs
104
+
.%A "Stephen Bensley"
105
+
.%A "Lars Eggert"
106
+
.%A "Dave Thaler"
107
+
.%T "Microsoft's Datacenter TCP (DCTCP): TCP Congestion Control for Datacenters"
108
+
.%U "http://tools.ietf.org/html/draft-bensley-tcpm-dctcp-01"
109
+
.Re
110
+
.Sh HISTORY
111
+
The
112
+
.Nm
113
+
congestion control module first appeared in
114
+
.Fx 11.0 .
115
+
.Pp
116
+
The module was first released in 2014 by Midori Kato studying at Keio
117
+
University, Japan.
118
+
.Sh AUTHORS
119
+
.An -nosplit
120
+
The
121
+
.Nm
122
+
congestion control module and this manual page were written by
123
+
.An Midori Kato katoon@sfc.wide.ad.jp
124
+
and
125
+
.An Lars Eggert lars@netapp.com
126
+
with help and modifications from
127
+
.An Hiren Panchasara hiren@FreeBSD.org
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4