aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2011-07-03 09:55:03 -0600
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2011-07-04 12:37:49 -0600
commit113ced1f52e5ed2dfedc0771a1b11b536cde8168 (patch)
tree513df4ef1ad8b8530e12329f8f02c89140860b36 /block
parentdccp ccid-2: Use existing function to test for data packets (diff)
downloadlinux-dev-113ced1f52e5ed2dfedc0771a1b11b536cde8168.tar.xz
linux-dev-113ced1f52e5ed2dfedc0771a1b11b536cde8168.zip
dccp ccid-2: Perform congestion-window validation
CCID-2's cwnd increases like TCP during slow-start, which has implications for * the local Sequence Window value (should be > cwnd), * the Ack Ratio value. Hence an exponential growth, if it does not reflect the actual network conditions, can quickly lead to instability. This patch adds congestion-window validation (RFC2861) to CCID-2: * cwnd is constrained if the sender is application limited; * cwnd is reduced after a long idle period, as suggested in the '90 paper by Van Jacobson, in RFC 2581 (sec. 4.1); * cwnd is never reduced below the RFC 3390 initial window. As marked in the comments, the code is actually almost a direct copy of the TCP congestion-window-validation algorithms. By continuing this work, it may in future be possible to use the TCP code (not possible at the moment). The mechanism can be turned off using a module parameter. Sampling of the currently-used window (moving-maximum) is however done constantly; this is used to determine the expected window, which can be exploited to regulate DCCP's Sequence Window value. This patch also sets slow-start-after-idle (RFC 4341, 5.1), i.e. it behaves like TCP when net.ipv4.tcp_slow_start_after_idle = 1. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions