Congestion Control Algorithms: Open Questions Benno Overeinder NLnet Labs http://www.nlnetlabs.nl/ What This Talk is Not About • Details of TCP congestion avoidance and control algorithms • Research on improvements of TCP congestion avoidance algorithms • Measurements of TCP congestion avoidance algorithm performance • None of this, but – highlight current open question and future research http://www.nlnetlabs.nl/ NLnet Labs Congestion Control Over the Years • Global congestion collapse (1986) • TCP Tahoe (1988) and TCP Reno (1990) • TCP New Reno (1998) •… • TCP over long fat networks (2002–2003) • TCP and bufferbloat (2011) http://www.nlnetlabs.nl/ NLnet Labs Common Congestion Control Algorithms • FreeBSD/Solaris – TCP New Reno – Reno: “classic” congestion avoidance – improves retransmission during the fast-recovery phase • Linux – TCP CUBIC – BIC: optimized congestion control algorithm for LFN – CUBIC: less aggressive and more systematic derivative • Windows – Compound TCP – achieve good performance for LFNs, while not harm fairness http://www.nlnetlabs.nl/ NLnet Labs Fairness One mechanism at a time http://www.nlnetlabs.nl/ Mixed mechanisms NLnet Labs SHAPE OF CONGESTION WINDOW INCREASE FUNCTION http://www.nlnetlabs.nl/ NLnet Labs Shape of Congestion Window Increase Function http://www.nlnetlabs.nl/ NLnet Labs 2 15000 Cubic W Cubic W max max =0.8W =0.9W H−TCP 10000 cwnd (packets) ase at a ing can her nate on ere offs d to with Convex vs. Concave-Convex: H-TCP vs. CUBIC apehttp://www.nlnetlabs.nl/ 5000 0 0 5 10 15 20 25 time (s) 30 35 40 45 50 NLnet Labs Distribution of cwnd for Convex and Concave Increase Distribution of cwnd at back-off for convex and concave updates versus loss probability. Key: + convex, o concave-convex http://www.nlnetlabs.nl/ NLnet Labs BUFFERING AND BUFFERBLOAT http://www.nlnetlabs.nl/ NLnet Labs Impact of Buffering Throughput and cwnd for Reno, buffer size 1 x BPD, 10 MBps link, 100 ms RTT. With buffering, flow throughput and cwnd are fundamentally different quantities, and only weakly related. http://www.nlnetlabs.nl/ NLnet Labs Bufferbloat • Trend to provide large buffers to network equipment – rule of thumb buffer to accommodate 250 ms traffic – e.g., 1 Gb/s interface requires 32 MB buffer • Flow of packets slows down traveling from fast to slow network – buffer absorbs, temporary delay packets – packets queued in network only drops if buffer is full • TCP congestion algorithm – relies on packet drops to determine available bandwidth – keeps speeding up and slowing down the transmission rate to find equilibrium – packet drops must occur in a timely manner – … http://www.nlnetlabs.nl/ NLnet Labs Active Queue Management (AQM) • Random Early Detection (RED) – random and early notification of congestion – variants FRED, SRED, with notion of flows – no synchronisation à la drop-tail • CHOKe – penalize misbehaving flows – similar to SRED, but less complex • CoDel – improve overall performance of RED – easier to manage, does not require manual configuration http://www.nlnetlabs.nl/ NLnet Labs Congestion Control, Latency, and AQM 2 http://www.nlnetlabs.nl/ Figure 3 Realtime Response Under Load (RRUL) test results NLnet Labs CONCLUDING http://www.nlnetlabs.nl/ NLnet Labs Remy Computer-Generated Congestion Control • Specify – prior knowledge and assumptions of network – objective to achieve (e.g., throughput and delay) • Outperforms existing (w/ ns2 simulations) – TCP New Reno, TCP Cubic, Compound (at end-points) – in many cases outperforms Cubic/FQ-CoDeL (requires network changes) http://www.nlnetlabs.nl/ Results for dumbbell topology, n=12, 15 Mbps. NLnet Labs Summary • Congestion control problem has changed – from: there is congestion, what do we do? – via: networks are empty, what do we do? – to: how do we get all this stuff deployed and let it interoperate? • After 20+ years still interesting and important problem • One size does not fit all? – FreeBSD modCC dynamic load/unload CC algorithm – For discussion: Internet at large might agree on model to prepare a “one-size-fits-all” Remy? • IETF/IRTF – IETF: AQM, CONEX, RMCAT – IRTF: ICCRG http://www.nlnetlabs.nl/ NLnet Labs