Mirja Kühlewind

Senior Researcher at ETH Zurich, Computer Engineering and Networks Laboratory, Networked Systems Group (NSG)

ECN RFC3168 fallback Linux patch v3.19

Implements Fallback to send second SYN packet without ECN negotiation attempt if timeout is triggered after the first SYN as speficied in RFC3168 (but unfortunately not implemented in Linux). Patch send to netdev for integration in the next merge:

Accurate ECN (AccACN)

draft-kuehlewind-tcpm-accurate-ecn-03 specifies an experimental scheme for ECN feedback in the TCP header to provide more than one feedback signal per RTT, called the more accurate ECN feedback scheme, or AccECN for short.

See GitHub for Linux implementation.

The following patch does not provide a full implementation of the draft (yet). If no counter increases, only the C1 counter will be feed back. Further it only implements the handling of the ACE field but does not use the Urgent field or an option to signal additional information:


TCP Scalable Increase Adaptive Decrease (SIAD) is a new congestion control scheme supporting both high speed and low latency. More precisely, TCP SIAD aims to provide high utilization under various networking conditions, and therefore would allow operators to configure of small buffers for low latency support. Further, TCP SIAD is based on a new approach (Scalable Increase) that aims for a fixed feedback rate independent of the available bandwidth. In addition Scalable Increase provides a configuration knob for the feedback rate that can be used by a higher layer control loop to impact the capacity share, potentially at the cost of higher congestion, e.g. for applications that need a minimum rate.

Helper-patches for new sysctls for simulation and testing

  • linux-3.5.7_sysctls.patch
    tcp_delayed_acks: default 1; 0 disables delayed ACKs
    tcp_initial_ssthresh: default 0 uses default kernel initial ssthresh value; otherwise value can be set
  • linux-3.11-rc7_iw.patch
    tcp_initial_window: set the initial congestion window (only to a value equal or smaller than TCP_INIT_CWND)
    tcp_initial_receive_window: set the initial receive window (only to a value equal or smaller than TCP_INIT_CWND * 2)

Low Extra Delay Background Transport (LEDBAT)

RFC 6817: Low Extra Delay Background Transport (LEDBAT) is an experimental delay-based congestion control algorithm that seeks to utilize the available bandwidth on an end-to-end path while limiting the consequent increase in queueing delay on that path. LEDBAT uses changes in one-way delay measurements to limit congestion that the flow itself induces in the network. LEDBAT is designed for use by background bulk-transfer applications to be no more aggressive than standard TCP congestion control (as specified in RFC 5681) and to yield in the presence of competing flows, thus limiting interference with the network performance of competing flows.
  • tcp_ledbat.c (tested with linux v3.19.5)
    Note, there is no estimation of the remote timestamp resolution implemented; resolution is assumed to be in ms!
Other implementations:

Impressum: Mirja Kühlewind