]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: ecn: dont delay ACKS after CE
authorEric Dumazet <edumazet@google.com>
Mon, 6 Aug 2012 11:04:43 +0000 (11:04 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Aug 2012 21:14:34 +0000 (14:14 -0700)
commit1bf13928cd3d48943560331d2d1db7bed5a02848
tree6a4c6198ffceb8b241c4d221aee16cf815b3152b
parent0ed92097c8a0d7f9c85bde9512f6b6c748612a1a
tcp: ecn: dont delay ACKS after CE

While playing with CoDel and ECN marking, I discovered a
non optimal behavior of receiver of CE (Congestion Encountered)
segments.

In pathological cases, sender has reduced its cwnd to low values,
and receiver delays its ACK (by 40 ms).

While RFC 3168 6.1.3 (The TCP Receiver) doesn't explicitly recommend
to send immediate ACKS, we believe its better to not delay ACKS, because
a CE segment should give same signal than a dropped segment, and its
quite important to reduce RTT to give ECE/CWR signals as fast as
possible.

Note we already call tcp_enter_quickack_mode() from TCP_ECN_check_ce()
if we receive a retransmit, for the same reason.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c