• Yuchung Cheng's avatar
    tcp: PRR uses CRB mode by default and SS mode conditionally · 3759824d
    Yuchung Cheng authored
    PRR slow start is often too aggressive especially when drops are
    caused by traffic policers. The policers mainly use token bucket
    to enforce the rate so sending (twice) faster than the delivery
    rate causes excessive drops.
    
    This patch changes PRR to the conservative reduction bound
    (CRB) mode in RFC 6937 by default. CRB follows the packet
    conservation rule to send at most the delivery rate by default.
    
    But if many packets are lost and the pipe is empty, CRB may take N
    round trips to repair N losses. We conditionally turn on slow start
    mode if all these conditions are made to speed up the recovery:
    
      1) on the second round or later in recovery
      2) retransmission sent in the previous round is delivered on this ACK
      3) no retransmission is marked lost on this ACK
    
    By using packet conservation by default, this change reduces the loss
    retransmits signicantly on networks that deploy traffic policers,
    up to 20% reduction of overall loss rate.
    Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarNandita Dukkipati <nanditad@google.com>
    Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3759824d
tcp_input.c 177 KB