• Yuchung Cheng's avatar
    tcp: use RTT from SACK for RTO · ed08495c
    Yuchung Cheng authored
    If RTT is not available because Karn's check has failed or no
    new packet is acked, use the RTT measured from SACK to estimate
    the RTO. The sender can continue to estimate the RTO during loss
    recovery or reordering event upon receiving non-partial ACKs.
    
    This also changes when the RTO is re-armed. Previously it is
    only re-armed when some data is cummulatively acknowledged (i.e.,
    SND.UNA advances), but now it is re-armed whenever RTT estimator
    is updated. This feature is particularly useful to reduce spurious
    timeout for buffer bloat including cellular carriers [1], and
    RTT estimation on reordering events.
    
    [1] "An In-depth Study of LTE: Effect of Network Protocol and
     Application Behavior on Performance", In Proc. of SIGCOMM 2013
    Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
    Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ed08495c
tcp_input.c 163 KB