Neal Cardwell a9b2c06dbe tcp: mitigate ACK loops for connections as tcp_request_sock
In the SYN_RECV state, where the TCP connection is represented by
tcp_request_sock, we now rate-limit SYNACKs in response to a client's
retransmitted SYNs: we do not send a SYNACK in response to client SYN
if it has been less than sysctl_tcp_invalid_ratelimit (default 500ms)
since we last sent a SYNACK in response to a client's retransmitted
SYN.

This allows the vast majority of legitimate client connections to
proceed unimpeded, even for the most aggressive platforms, iOS and
MacOS, which actually retransmit SYNs 1-second intervals for several
times in a row. They use SYN RTO timeouts following the progression:
1,1,1,1,1,2,4,8,16,32.

Reported-by: Avery Fay <avery@mixpanel.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-02-08 01:03:12 -08:00
..
2014-09-18 10:54:36 +02:00
2013-12-28 17:02:46 -05:00
2013-11-07 19:28:58 -05:00
2014-09-30 01:02:26 -04:00
2014-06-04 22:46:38 -07:00
2015-01-18 01:56:32 -05:00
2014-01-03 20:56:48 -05:00
2014-12-19 00:19:23 +01:00
2015-01-15 18:26:16 -05:00
2014-06-02 11:00:41 -07:00
2014-05-22 14:57:15 -04:00
2014-10-01 21:35:51 -04:00