• Yuchung Cheng's avatar
    tcp: temporarily disable Fast Open on SYN timeout · c968601d
    Yuchung Cheng authored
    Fast Open currently has a fall back feature to address SYN-data being
    dropped but it requires the middle-box to pass on regular SYN retry
    after SYN-data. This is implemented in commit aab48743 ("net-tcp:
    Fast Open client - detecting SYN-data drops")
    
    However some NAT boxes will drop all subsequent packets after first
    SYN-data and blackholes the entire connections.  An example is in
    commit 356d7d88 "netfilter: nf_conntrack: fix tcp_in_window for Fast
    Open".
    
    The sender should note such incidents and fall back to use the regular
    TCP handshake on subsequent attempts temporarily as well: after the
    second SYN timeouts the original Fast Open SYN is most likely lost.
    When such an event recurs Fast Open is disabled based on the number of
    recurrences exponentially.
    Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c968601d
tcp_timer.c 18.3 KB