CoDel

CoDel (Controlled Delay; pronounced "coddle") is an active queue management (AQM) algorithm in network routing, developed by Van Jacobson and Kathleen Nichols and published as RFC8289.

CoDel aims to improve on the overall performance of the random early detection (RED) algorithm by addressing some of its fundamental misconceptions, as perceived by Jacobson, and by being easier to manage.

From there, CoDel and FQ-CoDel have migrated into various downstream projects such as Tomato, dd-wrt, OPNsense and Ubiquiti's "Smart Queues" feature.

CoDel is based on observations of packet behavior in packet-switched networks under the influence of data buffers.

[3] In other words, buffers act like shock absorbers to convert bursty arrivals into smooth, steady departures.

[3] The TCP congestion control algorithm relies on packet drops to determine the available bandwidth between two communicating devices.

For this to work, the packet drops must occur in a timely manner so that the algorithm can responsively select a suitable transfer speed.

Under these conditions, TCP may even decide that the path of the connection has changed and repeat the search for a new equilibrium.

Van Jacobson asserted in 2006 that existing algorithms have been using incorrect means of recognizing bufferbloat.

Jacobson demonstrated in 2006 that this measurement is not a good metric, as the average queue length rises sharply in the case of a communications burst.

Jacobson suggested that average queue length actually contains no information at all about packet demand or network load.

[3] Based on Jacobson's notion from 2006, CoDel was developed to manage queues under control of the minimum delay experienced by packets in the running buffer window.

In general, results indicate:[3][7] Simulation was also performed by Greg White and Joey Padden at CableLabs.

[9] Dave Täht back-ported CoDel to Linux kernel 3.3 for project CeroWrt, which concerns itself among other things with bufferbloat,[10] where it was exhaustively tested.

It is written by T. Hoeiland-Joergensen, P. McKenney, D. Täht, J. Gettys, and E. Dumazet, all members of the "bufferbloat project".

[17] Common Applications Kept Enhanced (CAKE; sch_cake in Linux code) is a combined traffic shaper and AQM algorithm presented by the bufferbloat project in 2018.

For example, Apple's implementation of fq_codel (default in iOS) has a very large number of users but no "codel" component.

Täht also notes the general lack of hardware offloading, made more important by the increase in network traffic brought by the COVID-19 pandemic.