• Kenneth Klette Jonassen's avatar
    tcp: add CDG congestion control · 2b0a8c9e
    Kenneth Klette Jonassen authored
    CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies
    the TCP sender in order to [1]:
    
      o Use the delay gradient as a congestion signal.
      o Back off with an average probability that is independent of the RTT.
      o Coexist with flows that use loss-based congestion control, i.e.,
        flows that are unresponsive to the delay signal.
      o Tolerate packet loss unrelated to congestion. (Disabled by default.)
    
    Its FreeBSD implementation was presented for the ICCRG in July 2012;
    slides are available at http://www.ietf.org/proceedings/84/iccrg.html
    
    Running the experiment scenarios in [1] suggests that our implementation
    achieves more goodput compared with FreeBSD 10.0 senders, although it also
    causes more queueing delay for a given backoff factor.
    
    The loss tolerance heuristic is disabled by default due to safety concerns
    for its use in the Internet [2, p. 45-46].
    
    We use a variant of the Hybrid Slow start algorithm in tcp_cubic to reduce
    the probability of slow start overshoot.
    
    [1] D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using
        delay gradients." In Networking 2011, pages 328-341. Springer, 2011.
    [2] K.K. Jonassen. "Implementing CAIA Delay-Gradient in Linux."
        MSc thesis. Department of Informatics, University of Oslo, 2015.
    
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Stephen Hemminger <stephen@networkplumber.org>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: David Hayes <davihay@ifi.uio.no>
    Cc: Andreas Petlund <apetlund@simula.no>
    Cc: Dave Taht <dave.taht@bufferbloat.net>
    Cc: Nicolas Kuhn <nicolas.kuhn@telecom-bretagne.eu>
    Signed-off-by: default avatarKenneth Klette Jonassen <kennetkl@ifi.uio.no>
    Acked-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2b0a8c9e
tcp_cdg.c 11.1 KB