tcp: add CDG congestion control
CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies the TCP sender in order to [1]: o Use the delay gradient as a congestion signal. o Back off with an average probability that is independent of the RTT. o Coexist with flows that use loss-based congestion control, i.e., flows that are unresponsive to the delay signal. o Tolerate packet loss unrelated to congestion. (Disabled by default.) Its FreeBSD implementation was presented for the ICCRG in July 2012; slides are available at http://www.ietf.org/proceedings/84/iccrg.html Running the experiment scenarios in [1] suggests that our implementation achieves more goodput compared with FreeBSD 10.0 senders, although it also causes more queueing delay for a given backoff factor. The loss tolerance heuristic is disabled by default due to safety concerns for its use in the Internet [2, p. 45-46]. We use a variant of the Hybrid Slow start algorithm in tcp_cubic to reduce the probability of slow start overshoot. [1] D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using delay gradients." In Networking 2011, pages 328-341. Springer, 2011. [2] K.K. Jonassen. "Implementing CAIA Delay-Gradient in Linux." MSc thesis. Department of Informatics, University of Oslo, 2015. Cc: Eric Dumazet <edumazet@google.com> Cc: Yuchung Cheng <ycheng@google.com> Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: Neal Cardwell <ncardwell@google.com> Cc: David Hayes <davihay@ifi.uio.no> Cc: Andreas Petlund <apetlund@simula.no> Cc: Dave Taht <dave.taht@bufferbloat.net> Cc: Nicolas Kuhn <nicolas.kuhn@telecom-bretagne.eu> Signed-off-by: Kenneth Klette Jonassen <kennetkl@ifi.uio.no> Acked-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
这个提交包含在:

提交者
David S. Miller

父节点
7782ad8bb5
当前提交
2b0a8c9eee
@@ -615,6 +615,22 @@ config TCP_CONG_DCTCP
|
||||
For further details see:
|
||||
http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf
|
||||
|
||||
config TCP_CONG_CDG
|
||||
tristate "CAIA Delay-Gradient (CDG)"
|
||||
default n
|
||||
---help---
|
||||
CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies
|
||||
the TCP sender in order to:
|
||||
|
||||
o Use the delay gradient as a congestion signal.
|
||||
o Back off with an average probability that is independent of the RTT.
|
||||
o Coexist with flows that use loss-based congestion control.
|
||||
o Tolerate packet loss unrelated to congestion.
|
||||
|
||||
For further details see:
|
||||
D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using
|
||||
delay gradients." In Networking 2011. Preprint: http://goo.gl/No3vdg
|
||||
|
||||
choice
|
||||
prompt "Default TCP congestion control"
|
||||
default DEFAULT_CUBIC
|
||||
@@ -646,6 +662,9 @@ choice
|
||||
config DEFAULT_DCTCP
|
||||
bool "DCTCP" if TCP_CONG_DCTCP=y
|
||||
|
||||
config DEFAULT_CDG
|
||||
bool "CDG" if TCP_CONG_CDG=y
|
||||
|
||||
config DEFAULT_RENO
|
||||
bool "Reno"
|
||||
endchoice
|
||||
@@ -668,6 +687,7 @@ config DEFAULT_TCP_CONG
|
||||
default "veno" if DEFAULT_VENO
|
||||
default "reno" if DEFAULT_RENO
|
||||
default "dctcp" if DEFAULT_DCTCP
|
||||
default "cdg" if DEFAULT_CDG
|
||||
default "cubic"
|
||||
|
||||
config TCP_MD5SIG
|
||||
|
在新工单中引用
屏蔽一个用户