The Controlled Delay (CoDel) AQM Approach to fighting bufferbloat

Similar documents
Kathie Nichols CoDel. present by Van Jacobson to the IETF-84 Transport Area Open Meeting 30 July 2012 Vancouver, Canada

Appendix B. Standards-Track TCP Evaluation

On the Effectiveness of CoDel for Active Queue Management

Can Congestion-controlled Interactive Multimedia Traffic Co-exist with TCP? Colin Perkins

6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

Transport Layer TCP / UDP

CS644 Advanced Networks

A Rant on Queues. Van Jacobson. July 26, MIT Lincoln Labs Lexington, MA

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control

Investigating the Use of Synchronized Clocks in TCP Congestion Control

CS 638 Lab 6: Transport Control Protocol (TCP)

PRELIMINARY STUDY OF CODEL AQM IN A DOCSIS NETWORK

Latency in DOCSIS Networks

Chapter 4. Routers with Tiny Buffers: Experiments. 4.1 Testbed experiments Setup

Investigating the Use of Synchronized Clocks in TCP Congestion Control

Overview. TCP congestion control Computer Networking. TCP modern loss recovery. TCP modeling. TCP Congestion Control AIMD

Congestion Control. Daniel Zappala. CS 460 Computer Networking Brigham Young University

Internet Engineering Task Force (IETF) J. Iyengar, Ed. Google January 2018

15-744: Computer Networking TCP

Congestion Control for High Bandwidth-delay Product Networks. Dina Katabi, Mark Handley, Charlie Rohrs

Linux Plumbers Conference TCP-NV Congestion Avoidance for Data Centers

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

TCP and BBR. Geoff Huston APNIC. #apricot

Model-based Measurements Of Network Loss

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

Stochastic Forecasts Achieve High Throughput and Low Delay over Cellular Networks

Listening with TSDE (Transport Segment Delay Estimator) Kathleen Nichols Pollere, Inc.

Computer Networking. Queue Management and Quality of Service (QOS)

Report on Transport Protocols over Mismatched-rate Layer-1 Circuits with 802.3x Flow Control

TCP and BBR. Geoff Huston APNIC

TCP and BBR. Geoff Huston APNIC

TCP LoLa Toward Low Latency and High Throughput Congestion Control

TCP Congestion Control : Computer Networking. Introduction to TCP. Key Things You Should Know Already. Congestion Control RED

Documents. Configuration. Important Dependent Parameters (Approximate) Version 2.3 (Wed, Dec 1, 2010, 1225 hours)

Link-sharing and Resource Management Models for Packet Networks

TCP and BBR. Geoff Huston APNIC

TCP performance analysis through. processor sharing modeling

CS268: Beyond TCP Congestion Control

Congestion and its control: Broadband access networks. David Clark MIT CFP October 2008

CSE/EE 461 Lecture 16 TCP Congestion Control. TCP Congestion Control

Implementation and Evaluation of Proportional Integral controller Enhanced Algorithm in ns-3

Effects of Applying High-Speed Congestion Control Algorithms in Satellite Network

Appendix A. Methodology

CSE 123A Computer Networks

Analyzing the Receiver Window Modification Scheme of TCP Queues

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

15-744: Computer Networking. Overview. Queuing Disciplines. TCP & Routers. L-6 TCP & Routers

Video at the Edge passive delay measurements. Kathleen Nichols Pollere, Inc November 17, 2016

TCP Performance Analysis Based on Packet Capture

BBR Congestion Control: IETF 100 Update: BBR in shallow buffers

Streaming Video and TCP-Friendly Congestion Control

Christos Papadopoulos

Congestion Control. Tom Anderson

Congestion Control. Principles of Congestion Control. Network assisted congestion. Asynchronous Transfer Mode. Computer Networks 10/23/2013

Making TCP more Robust against Packet Reordering

QoS on Low Bandwidth High Delay Links. Prakash Shende Planning & Engg. Team Data Network Reliance Infocomm

CS 268: Computer Networking

Performance Consequences of Partial RED Deployment

Fast Retransmit. Problem: coarsegrain. timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission

Tuning RED for Web Traffic

Implementing Active Queue Management at the home to reduce NBN speed demands

The Effects of Asymmetry on TCP Performance

Bandwidth Allocation & TCP

COMP/ELEC 429/556 Introduction to Computer Networks

COMP/ELEC 429/556 Introduction to Computer Networks

The State of the Art in Bufferbloat Testing and Reduction on Linux

Latency on a Switched Ethernet Network

Quality of Service (QoS)

Computer Networks Spring 2017 Homework 2 Due by 3/2/2017, 10:30am

Brief Overview and Background

CS 268: Lecture 7 (Beyond TCP Congestion Control)

Flow and Congestion Control Marcos Vieira

Congestion. Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets limited resources

Layer 4 TCP Performance in carrier transport networks Throughput is not always equal to bandwidth

Latency on a Switched Ethernet Network

One More Bit Is Enough

Data Center TCP (DCTCP)

WQM: Practical, Adaptive, and Lightweight Wireless Queue Management System

CS519: Computer Networks. Lecture 5, Part 5: Mar 31, 2004 Queuing and QoS

6.033 Computer System Engineering

Problems and Solutions for the TCP Slow-Start Process

Improving the Robustness of TCP to Non-Congestion Events

Multimedia-unfriendly TCP Congestion Control and Home Gateway Queue Management

Hybrid Control and Switched Systems. Lecture #17 Hybrid Systems Modeling of Communication Networks

EXPERIENCES EVALUATING DCTCP. Lawrence Brakmo, Boris Burkov, Greg Leclercq and Murat Mugan Facebook

Network Working Group Request for Comments: 1046 ISI February A Queuing Algorithm to Provide Type-of-Service for IP Links

Lecture 15: Datacenter TCP"

ECEN Final Exam Fall Instructor: Srinivas Shakkottai

Traffic Characteristics of Bulk Data Transfer using TCP/IP over Gigabit Ethernet

Technical Brief. FirstPacket Technology Improved System Performance. May 2006 TB _v01

STMS: Improving MPTCP Throughput Under Heterogenous Networks

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

******************************************************************* *******************************************************************

Sebastian Zander, Grenville Armitage. Centre for Advanced Internet Architectures (CAIA) Swinburne University of Technology

Communication Networks

A report on a few steps in the evolution of congestion control. Sally Floyd June 10, 2002 IPAM Program in Large Scale Communication Networks

Transcription:

The Controlled Delay (CoDel) AQM Approach to fighting bufferbloat BITAG TWG Boulder, CO February 27, 2013 Kathleen Nichols Van Jacobson

Background The persistently full buffer problem, now called bufferbloat, has been around for 30 years The solution, active queue management (AQM), has been known for more than 20 years Unfortunately, the AQMs invented so far only kind of work It s much easier to control long-lived TCPs than mixes A lot of AQMs accept large queue delays Most have many settings and are complex Dynamic link bandwidths are common today Using average queue length as a congestion indicator is a big part of the problem 2

A TCP with a 25 packet window into a connection with an intrinsic pipe size of 20 packets: Sender Receiver After the initial burst of packets, settles into a 5 (+/-1) packet standing queue. The average queue size is the window mismatch to the pipe size, unrelated to the sending rate: good queue Queue length bad queue Time 3

Tracking Bad Queue Queue length Time Interval Van made this observation in 2006 (see talk at MIT Lincoln Labs) Good queue goes away in an RTT, bad queue hangs around. queue length min() during a sliding window interval measures bad queue...... as long as window is at least an RTT wide. 4

How low should we go? As we reduce that standing queue of slide 3, don t want to risk forcing the link to go idle. Need to leave an MTU of backlog (i.e., don t drop if there s less than an MTU sitting in the buffer). A larger backlog can result in higher utilization, particularly where there are a small number (1 to 3) of bulk transfers, but at a cost of higher delay. To identify an appropriate range for the backlog, we turn to analysis to find a bandwidth-independent value for this backlog, which we call the target 5

Utilization vs. Target for a single Reno TCP Bottleneck Link Utilization (% of max) 75 80 85 90 95 100 0 20 40 60 80 100 Target (% of RTT) Tolerating some standing queue results in a higher utilization but it reaches 90% with a target that is about 30% of the RTT 6

Average Power (Xput/Delay) 0.70 0.75 0.80 0.85 0.90 0.95 1.00 This suggests exploring targets in the range from 1 to 15 ms. Cubic gets better utilizations. Power vs. Target for a Reno TCP Average Power (Xput/Delay) 0 20 40 60 80 100 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00 Target (as % of RTT) Power vs. Target for a Reno TCP 0 5 10 15 20 25 30 Target (as % of RTT) 7

Controlled Delay (CoDel) AQM Goals no knobs - parameterless separate good queue and bad queue - keep median delays (over time) low while permitting bursts insensitive (or nearly so) to RTT, link rates, traffic loads adapt to dynamically changing link rates with no negative impact on utilization simple and efficient implementation 8

CoDel Innovations 1. Use the local minimum of queue as the observed statistic 2. The information needed about the local minimum (how long queue has been below/above target) can be kept in a single state variable, no need to keep a sliding window of the actual values 3. Use the packet sojourn time in the queue (the actual packet delay) rather than queue size in bytes or packets as the value observed Use of minimum means all the work can be done at queue departure time and no locks are needed (the minimum can only change on departure) 9

CoDel in a nutshell CoDel assumes that a standing queue of target is acceptable (as determined by the local minimum) and that it is unacceptable to drop when there are fewer than an MTU worth of bytes in the buffer To ensure that the minimum value is not stale, it has to have been experienced in the most recent interval (sliding window) When the sojourn time has exceeded target for at least an interval, a packet is dropped and a control law used to set the next drop time The next drop time is decreased in inverse proportion of the square root of the number of drops since the dropping state was entered (to get a linear change in throughput) When the sojourn time goes below target the controller stops dropping. Prevented from re-entering dropping state too soon after exiting it and resumes the dropping state at a recent control level if one exists Target and interval are constants: acceptable queue delay and a time on the order of a worst case RTT of connections through the bottleneck. Experimented with target from 1 to 20ms, but 5ms and interval of 100ms works well for range of RTTs from 10ms to 1sec, with excellent in 10ms - 300ms range. 10

Results from the original work last year all CoDel runs use exactly the same algorithm RED runs each use the link bandwidth to set parameters 11

Results: Range of static link rates (high) CoDel Median Pkt Delay (sec) by Bandwidth (Mbps) 0.020 0.015 0.010 0.005 RED Median Pkt Delay (sec) by Bandwidth (Mbps) 0.020 0.015 0.010 0.005 0 3 10 45 100 0 3 10 45 100 1.0 CoDel Link Utilization by Link Bandwidth (Mbps) 1.0 REDLink Utilization by Link Bandwidth (Mbps) 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 3 10 45 100 0.4 3 10 45 100 Various loads (FTP, web-browsing, CBR), RTTs from 10ms-500ms sorted by link rate 12

Results: Range of static link rates (low) 0.16 Median Packet Delays by Bandwidth 1.0 Link Utilization by Link Bandwidth (in Mbps) 0.14 0.12 0.10 0.08 0.06 blue: 500B MTU green: 1500B MTU 0.9 1.0 0.8 Web-only Traffic 0.04 0.6 0.02 0.4 0 0.128 0.256 0.512 1.5 0.128 0.256 0.512 1.5 Data for both 500 byte MTU and 1500 byte MTU: the larger MTU increases delays but effect diminishes as bandwidth moved toward 1.5 Mbps. CBRs use 100 byte packets. (The low bandwidths don t work with RED.) 13

10 2 0 1.0 0.5 0 15 10 5 10 5 CoDel (black) RED (red) Tail drop (blue) Dynamic Link: the fun stuff Per-Packet Queue Delay for Dynamic Bandwidth 100 Mbps 10Mbps 1Mbps 50Mbps 1Mbps 100Mbps 0 50 100 150 200 250 300 Detail of Per-Packet Queue Delay vs. Simulation Time (sec) 100 Mbps 10Mbps 1Mbps 50Mbps 1Mbps 100Mbps 0 50 100 150 200 250 300 Cumulative Kbytes transferred vs simulation time (sec) blue: Tail drop black: CoDel red: RED 10 pckt buffers Nominal 100 Mbps link with rate changes, buffer size of 830 packets 4 FTPs, 5 packmime connections/sec Note the throughput line for undersized buffer of 10 packets: throughput is about 75% less. CoDel same throughput as tail drop but 2.7ms median delay, 5ms 75th percentile Experimentally duplicated by Stanford grad students: http:// reproducingresearch.wordpress. com/2012/06/06/solving-bufferbloatthe-codel-way/ 0 0 50 100 150 200 250 300 14

Symmetric links Consumer Edge type example Load of two-way 64Kbps CBR, infinite FTP download, web browsing at a rate of 2 connections per second, uploads of small FTPs (1MB with 5-15 second idle periods) Compared two rates, CoDel and Tail drop CoDel never drops packets at a higher rate (usually less) than Tail drop CoDel keeps a much smaller queue and transfers similar amounts of data 512 Kbps Links 1.5 Mbps Links metric download upload download upload C T C/T C T C/T C T C/T C T C/T pkt drop % 8 8 100% 1.5 5.8 25% 3.5 4.7 75% 1.4 2.5 56% median delay (ms) 18 73 25% 9 37 25% 8 49 17% 0 0 100% total Mbytes 17 18 95% 12.8 13.9 92% 37 40 92% 22 21 103% fairness of drops 0.87 0.89 98% 0.93 0.89 104% 0.81 0.96 84% 0.6 0.71 85% 15

Results: Range of RTTs 0.06 CoDel 95th Percentile Delay (sec) 0.06 RED 95th Percentile Delay (sec) 0.04 0.04 0.02 0.02 0 0 0.02 CoDel Median Delays (sec) 0.02 RED Median Delays (sec) 0.01 0.01 0 10 30 50 100 150 200 500 0 10 30 50 100 150 200 500 1.0 1.0 0.9 0.9 0.8 0.8 0.7 CoDel Median Link Utilizations 0.7 0.6 0.6 RED Median Link Utilizations 0.5 0.5 10 30 50 100 150 200 500 10 30 50 100 150 200 500 16

Interesting Fairness Results 1.0 0.8 0.6 0.4 0.2 0 10 30 50 100 150 200 500 RTT in milliseconds CoDel isn t really concerned with fair shares of the bottleneck bandwidth but we did want to see if the drops were distributed in proportion to the usage of the link. Used the Jain Fairness Index, where 1.0 is best: ( P i x i) 2 n ( P i x2 i ) 17

Issues 18

CoDel Can t Fix Concatenated Queues user pkts CPE Router Scheduler Ethernet (100 Mbps-1Gbps) Cable Modem CM buffer upstream (2Mbps-?) Solutions: rate control When uplink is heavily utilized the router buffers will fill Rate mismatch will cause CM buffer to fill (bufferbloat) and may cause priority inversion AQM in CM Flow control Flow control user pkts CPE Router Scheduler Ethernet (100 Mbps-1Gbps) Cable Modem CM buffer upstream (2Mbps-?) Buffers are managed to appropriate size and the most critical packets can be selected at sending opportunities Signal router to stop sending packets Monitor buffer to determine when there are sufficient packets for efficient operation 19

Traffic-Related Issues When forward tcp data streams are mixed with reverse acks, this has always created problems. When long-lived file transfers are mixed with bursty web request streams or VoIP, the latter suffer Though running CoDel will help the second problem some due to keeping shorter delays, the real solution lies beyond using an AQM The best solution for VoIP is a prioritized queue The best solution for creating a better traffic mixing and solving ack compression problems is to run a stochastic flow queue algorithm across a moderate number of bins and then run CoDel on each bin (Dumzaet) 20

Algorithm Issues A more sophisticated Control Law that can recognize a steady state (various hacks to mitigate problems) Although good results across a range of RTTs have come with a fixed minimum-tracking interval of 100-200ms, making the algorithm more robust to RTT is desireable An analytic and experimental study of the optimal number of bins for an sfq is needed 21

Educational Issues The meaning of target and interval bursty macs don t require larger targets (I wrote a note on this and posted on web site) use packet traces to figure out what is really going on knowledge is power 22

Notes, Caveats The second order parts of CoDel are still being explored. We want to keep this algorithm available to anyone and not encumbered by patent stuff: un-encumbered code (BSD/GPL dual-license) available for ns2, ns3, linux We have submitted this as in internet draft to the IETF TSV WG and recently updated (draft-nichols-tsv-codel-01) We have put our simulator code and other goodies, including links to Van s talk at /CoDel.html CoDel is in Linux kernels from 3.5 on. There is a lot of active experimentation in linux which is tracked by Dave Taht at http://www.bufferbloat.net/projects/ codel 23