Router Congestion Control: RED, ECN, and XCP. Where we left off Signal of congestion: Packet loss Fairness: Cooperating end-hosts using AIMD –Next lecture:

Slides:



Advertisements
Similar presentations
Balaji Prabhakar Active queue management and bandwidth partitioning algorithms Balaji Prabhakar Departments of EE and CS Stanford University
Advertisements

RED-PD: RED with Preferential Dropping Ratul Mahajan Sally Floyd David Wetherall.
Computer Networking Lecture 20 – Queue Management and QoS.
CSIT560 Internet Infrastructure: Switches and Routers Active Queue Management Presented By: Gary Po, Henry Hui and Kenny Chong.
Congestion Control Reasons: - too many packets in the network and not enough buffer space S = rate at which packets are generated R = rate at which receivers.
CS 268: Lecture 7 (Beyond TCP Congestion Control) Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences University.
CS 4700 / CS 5700 Network Fundamentals Lecture 12: Router-Aided Congestion Control (Drop it like it’s hot) Revised 3/18/13.
Router-assisted congestion control Lecture 8 CS 653, Fall 2010.
Advanced Computer Networking Congestion Control for High Bandwidth-Delay Product Environments (XCP Algorithm) 1.
Explicit Congestion Notification (ECN) RFC 3168 Justin Yackoski DEGAS Networking Group CISC856 – TCP/IP Thanks to Namratha Hundigopal.
XCP: Congestion Control for High Bandwidth-Delay Product Network Dina Katabi, Mark Handley and Charlie Rohrs Presented by Ao-Jan Su.
Advanced Computer Networks: RED 1 Random Early Detection Gateways for Congestion Avoidance * Sally Floyd and Van Jacobson, IEEE Transactions on Networking,
Analysis and Simulation of a Fair Queuing Algorithm
High speed TCP’s. Why high-speed TCP? Suppose that the bottleneck bandwidth is 10Gbps and RTT = 200ms. Bandwidth delay product is packets (1500.
EE689 Lecture 5 Review of last lecture More on HPF RED.
15-744: Computer Networking L-11 Queue Management.
1 Random Early Detection Gateways for Congestion Avoidance Sally Floyd and Van Jacobson, IEEE Transactions on Networking, Vol.1, No. 4, (Aug 1993), pp
Computer Networking Lecture 17 – Queue Management As usual: Thanks to Srini Seshan and Dave Anderson.
Random Early Detection Gateways for Congestion Avoidance
Lecture 5: Congestion Control l Challenge: how do we efficiently share network resources among billions of hosts? n Last time: TCP n This time: Alternative.
Congestion Control for High Bandwidth-delay Product Networks Dina Katabi, Mark Handley, Charlie Rohrs.
Rafael C. Nunez - Gonzalo R. Arce Department of Electrical and Computer Engineering University of Delaware May 19 th, 2005 Diffusion Marking Mechanisms.
Congestion Control for High Bandwidth-Delay Product Environments Dina Katabi Mark Handley Charlie Rohrs.
Advanced Computer Networks : RED 1 Random Early Detection Gateways for Congestion Avoidance Sally Floyd and Van Jacobson, IEEE Transactions on Networking,
CS640: Introduction to Computer Networks Aditya Akella Lecture 20 - Queuing and Basics of QoS.
1 Queue Management Hamed Khanmirza Principles of Networking University of Tehran.
Link Scheduling & Queuing COS 461: Computer Networks
CS 268: Computer Networking L-6 Router Congestion Control.
Advance Computer Networking L-6 TCP & Routers Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan.
ACN: RED paper1 Random Early Detection Gateways for Congestion Avoidance Sally Floyd and Van Jacobson, IEEE Transactions on Networking, Vol.1, No. 4, (Aug.
Congestion Control - Supplementary Slides are adapted on Jean Walrand’s Slides.
Chapter 12 Transmission Control Protocol (TCP)
27th, Nov 2001 GLOBECOM /16 Analysis of Dynamic Behaviors of Many TCP Connections Sharing Tail-Drop / RED Routers Go Hasegawa Osaka University, Japan.
Congestion Control for High Bandwidth-Delay Product Networks D. Katabi (MIT), M. Handley (UCL), C. Rohrs (MIT) – SIGCOMM’02 Presented by Cheng.
Stochastic Fair Blue: A Queue Management Algorithm for Enforcing Fairness W. Feng, D. Kandlur, D. Saha, and K. Shin Presented by King-Shan Lui.
Queueing and Active Queue Management Aditya Akella 02/26/2007.
The Impact of Active Queue Management on Multimedia Congestion Control Wu-chi Feng Ohio State University.
Packet Scheduling and Buffer Management Switches S.Keshav: “ An Engineering Approach to Networking”
Copyright 2008 Kenneth M. Chipps Ph.D. Controlling Flow Last Update
15744 Course Project1 Evaluation of Queue Management Algorithms Ningning Hu, Liu Ren, Jichuan Chang 30 April 2001.
CS640: Introduction to Computer Networks Aditya Akella Lecture 20 - Queuing and Basics of QoS.
AQM & TCP models Courtesy of Sally Floyd with ICIR Raj Jain with OSU.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Winter 2008CS244a Handout 81 CS244a: An Introduction to Computer Networks Handout 8: Congestion Avoidance and Active Queue Management Nick McKeown Professor.
Random Early Detection (RED) Router notifies source before congestion happens - just drop the packet (TCP will timeout and adjust its window) - could make.
XCP: eXplicit Control Protocol Dina Katabi MIT Lab for Computer Science
ECEN 619, Internet Protocols and Modeling Prof. Xi Zhang Random Early Detection Gateways for Congestion Avoidance Sally Floyd and Van Jacobson, IEEE Transactions.
Queue Management Mike Freedman COS 461: Computer Networks Lectures: MW 10-10:50am in Architecture N101
Real-time Transport for Assured Forwarding: An Architecture for both Unicast and Multicast Applications By Ashraf Matrawy and Ioannis Lambadaris From Carleton.
Congestion Control for High Bandwidth-Delay Product Networks Dina Katabi, Mark Handley, Charlie Rohrs Presented by Yufei Chen.
Other Methods of Dealing with Congestion
CS 268: Computer Networking
Topics discussed in this section:
CS 268: Lecture 6 Scott Shenker and Ion Stoica
Chapter 6 Congestion Avoidance
Queue Management Jennifer Rexford COS 461: Computer Networks
Router-Assisted Congestion Control
Advance Computer Networking
TCP, XCP and Fair Queueing
Queuing and Queue Management
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
Random Early Detection Gateways for Congestion Avoidance
15-744: Computer Networking
Other Methods of Dealing with Congestion
Other Methods of Dealing with Congestion
COS 461: Computer Networks
15-744: Computer Networking
TCP Congestion Control
Transport Layer: Congestion Control
Congestion Michael Freedman COS 461: Computer Networks
Presentation transcript:

Router Congestion Control: RED, ECN, and XCP

Where we left off Signal of congestion: Packet loss Fairness: Cooperating end-hosts using AIMD –Next lecture: Enforcement for QoS, rate, delay, jitter guarantees But note: A packet drop is a very blunt indicator of congestion Routers know more than they’re telling…

What Would Router Do? Congestion Signaling: –Drop, mark, send explicit messages Buffer management: –Which packets to drop? –When to signal congestion? Scheduling –If multiple connections, which one’s packets to send at any given time?

Congestion Signaling Drops (we’ve covered) In-band marking –One bit (congested or not): ECN –Multiple bits (how congested / how much available): XCP Out-of-band notification –IP Source Quench Problem: It sends more packets when things are congested… Not widely used.

When to mark packets? Drop-tail: –When the buffer is full –The de-facto mechanism today –Very easy to implement –Causes packets to be lost in bursts Can lose many packets from a single flow… Can cause synchronization of flows –Keeps average queue length high ½ full.  delay –Note relation to FIFO (first-in-first out): a scheduling discipline, NOT a drop policy, but they’re often bundled

Active Queue Mgmt. w/RED Explicitly tries to keep queue small –Low delay, but still high throughput under bursts –(This is “power”: throughput / delay) Assumes that hosts respond to lost packets Technique: –Randomization to avoid synchronization (Recall that if many flows, don’t need as much buffer space!) –Drop before the queue is actually full

RED algorithm If qa < min –Let all packets through If qa > max –Drop all packets If qa > min && qa < max –Mark or drop w/probability p_a How to compute qa? How to compute pa?

RED Operation Min thresh Max thresh Average Queue Length min th max th max P 1.0 Avg queue length P(drop)

Computing qa What to use as the queue occupancy? –Balance fast response to changes –With ability to tolerate transient burps –Special case for idle periods… EWMA to the rescue again… –Qa = (1 – wq)*qa + w_q * q But what value of wq? –Back of the envelope: –RED is sensitive to this value, and it’s one of the things that makes it a bit of a pain in practice –See

Computing pa Pb via linear interpolation –Pb = max_p * (qa – min / max – min) Method 1: pa = pb –Geometric random variable for inter-arrivals between drops. –Tends to mark in batches (  Sync) Method 2: –Uniform r.v. X be uniform in {1, 2, … 1/pb-1} –Set pa = pb/(1-count * pb) Count = # unmarked packets since last mark

RED parameter sensitivity RED can be very sensitive to parameters –Tuning them is a bit of a black art! One thing: “gentle” RED –max_p <= pb <= 1 as –maxthresh <= qa <= 2*maxthresh –instead of “cliff” effect. Makes RED more robust to choice of maxthresh, max_p But note: Still must choose wq, minthresh… RED is not very widely deployed, but testing against both RED and DropTail is very common in research, because it could be.

“Marking”, “Detection” RED is “Random Early Detection” –Could mean marking, not dropping Marking? –DECbit: “congestion indication” binary feedback scheme. –If avg queue len >thresh, set the bit –If > half of packets marked, exponential decrease, otherwise linear increase

Marking 2: ECN In IP-land –Instead of dropping a packet, set a bit –If bit set, react the same way as if it had been dropped (but you don’t have to retransmit or risk losing ACK clocking) Where does it help? –Delay-sensitive apps, particularly low-bw ones –Small window scenarios Some complexity: –How to send in legacy IP packets (IP ToS field) –Determining ECN support: two bits (one “ECN works”, one “congestion or not” –How to echo bits to sender (TCP header bit) More complexity: Cheating! –We’ll come back to this later. :)

Beyond congestion indication Why do we want to do more? TCP doesn’t do so well in a few scenarios: –High bandwidth-delay product environments Additive increase w/1000 packet window Could take many RTTs to fill up after congestion “not a problem” with a single flow with massive buffers (in theory) a real problem with real routers and bursty cross-traffic –Short connections TCP never has a chance to open its window –One caveat: A practical work-around to many of these problems is opening multiple TCP connections. The effects of this are still somewhat unexplored with regard to stability, global fairnes and efficiency, etc.

XCP

Feedback = packet Round Trip Time Congestion Window Feedback = packet How does XCP Work?

How Does an XCP Router Compute the Feedback? Congestion Controller Fairness Controller Goal: Divides  between flows to converge to fairness Looks at a flow’s state in Congestion Header Algorithm: If  > 0  Divide  equally between flows If  < 0  Divide  between flows proportionally to their current rates MIMD AIMD Goal: Matches input traffic to link capacity & drains the queue Looks at aggregate traffic & queue Algorithm: Aggregate traffic changes by   ~ Spare Bandwidth  ~ - Queue Size So,  =  d avg Spare -  Queue

 =  d avg Spare -  Queue Theorem: System converges to optimal utilization (i.e., stable) for any link bandwidth, delay, number of sources if: (Proof based on Nyquist Criterion) Getting the devil out of the details … Congestion Controller Fairness Controller No Parameter Tuning No Parameter Tuning Algorithm: If  > 0  Divide  equally between flows If  < 0  Divide  between flows proportionally to their current rates Need to estimate number of flows N RTT pkt : Round Trip Time in header Cwnd pkt : Congestion Window in header T: Counting Interval No Per-Flow State No Per-Flow State

Apportioning feedback Tricky bit: Router sees queue sizes and throughputs; hosts deal in cwnd. Must convert. Next tricky bit: Router sees packets; host’s response is the sum of feedback received across its packets. Must apportion feedback onto packets. Requirement: No per-flow state at router

XCP: Positive Feedback spare b/w to allocate N flows per-flow:  propto rtt –Larger RTT needs more cwnd increase to add same amount of b/w per-packet: –# packets observed in time d ~ cwnd/rtt –combining them: pi ~ spare/N * rtt^2 / cwnd

But must allocate to a flow How many packets does flow I send in time T? –T * cwnd_I / RTT/I So to count # of flows –counter += 1 / (T * cwnd_pkt / RTT_pkt) –every time you receive a packet So: per-flow increase ~ spare / counter This is a cute trick for statelessly counting the # of flows. Similar to tricks used in CSFQ (Core Stateless Fair Queueing), which we’ll be hitting next time

XCP decrease Multiplicative Decrease –cwnd = beta * cwnd_old (same beta for all flows) –This is like the reverse of the slow-start mechanism Slow start: Each ACK, increase cwnd by 1 –Results in exponential _increase_ XCP decrease: Each packet, decrease cwnd BUT: Must account for rtt_I != avg RTT, so normalize –ni = total decrease * (rtt_I / avg_rtt)

XCP benefits & issues Requires “policers” at edge if you don’t trust hosts to report cwnd/rtt correctly –Much like CSFQ… Doesn’t provide much benefit in today’s common case –But may be very significant for tomorrow’s. –High bw*rtt environments (10GigE coming to a desktop near you…) –Short flows, highly dynamic workloads Cool insight: Decoupled fairness and congestion control Pretty big architectural change

Beyond RED What if you want to use RED to try to enforce fairness?

CHOKe CHOse and Keep/Kill (Infocom 2000) –Existing schemes to penalize unresponsive flows (FRED/penalty box) introduce additional complexity –Simple, stateless scheme During congested periods –Compare new packet with random pkt in queue –If from same flow, drop both –If not, use RED to decide fate of new packet

CHOKe Can improve behavior by selecting more than one comparison packet –Needed when more than one misbehaving flow Does not completely solve problem –Aggressive flows are punished but not limited to fair share –Not good for low degree of multiplexing  why?

Stochastic Fair Blue Same objective as RED Penalty Box –Identify and penalize misbehaving flows Create L hashes with N bins each –Each bin keeps track of separate marking rate (p m ) –Rate is updated using standard technique and a bin size –Flow uses minimum p m of all L bins it belongs to –Non-misbehaving flows hopefully belong to at least one bin without a bad flow Large numbers of bad flows may cause false positives

Stochastic Fair Blue False positives can continuously penalize same flow Solution: moving hash function over time –Bad flow no longer shares bin with same flows –Is history reset  does bad flow get to make trouble until detected again? No, can perform hash warmup in background

Acknowledgements Several of the XCP slides are from Dina Katabi’ SIGCOMM presentation slides.