tcp: mitigate ACK loops for connections as tcp_timewait_sock
Ensure that in state FIN_WAIT2 or TIME_WAIT, where the connection is represented by a tcp_timewait_sock, we rate limit dupacks in response to incoming packets (a) with TCP timestamps that fail PAWS checks, or (b) with sequence numbers that are out of the acceptable window. We do not send a dupack in response to out-of-window packets if it has been less than sysctl_tcp_invalid_ratelimit (default 500ms) since we last sent a dupack in response to an out-of-window packet. 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>
This commit is contained in:
parent
f2b2c582e8
commit
4fb17a6091
2 changed files with 28 additions and 5 deletions
|
@ -342,6 +342,10 @@ struct tcp_timewait_sock {
|
|||
u32 tw_rcv_wnd;
|
||||
u32 tw_ts_offset;
|
||||
u32 tw_ts_recent;
|
||||
|
||||
/* The time we sent the last out-of-window ACK: */
|
||||
u32 tw_last_oow_ack_time;
|
||||
|
||||
long tw_ts_recent_stamp;
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
struct tcp_md5sig_key *tw_md5_key;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue