Advance Computer Networking

Slides:



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

Computer Networking Lecture 20 – Queue Management and QoS.
RED Enhancement Algorithms By Alina Naimark. Presented Approaches Flow Random Early Drop - FRED By Dong Lin and Robert Morris Sabilized Random Early Drop.
CSIT560 Internet Infrastructure: Switches and Routers Active Queue Management Presented By: Gary Po, Henry Hui and Kenny Chong.
CS 268: Lecture 7 (Beyond TCP Congestion Control) Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences University.
CS 268: Lecture 8 Router Support for Congestion Control Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences.
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.
Congestion Control An Overview -Jyothi Guntaka. Congestion  What is congestion ?  The aggregate demand for network resources exceeds the available capacity.
Max Min Fairness How define fairness? “ Any session is entitled to as much network use as is any other ” ….unless some sessions can use more without hurting.
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,
1 Minseok Kwon and Sonia Fahmy Department of Computer Sciences Purdue University {kwonm, All our slides and papers.
1 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
Analysis and Simulation of a Fair Queuing Algorithm
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
Active Queue Management Rong Pan Cisco System EE384y Spring Quarter 2006.
Computer Networking Lecture 17 – Queue Management As usual: Thanks to Srini Seshan and Dave Anderson.
Random Early Detection Gateways for Congestion Avoidance
Promoting the Use of End-to-End Congestion Control & Random Early Detection of Network Congestion.
Congestion Control for High Bandwidth-delay Product Networks Dina Katabi, Mark Handley, Charlie Rohrs.
Core Stateless Fair Queueing Stoica, Shanker and Zhang - SIGCOMM 98 Rigorous fair Queueing requires per flow state: too costly in high speed core routers.
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,
15-744: Computer Networking L-5 Fair Queuing. 2 Fair Queuing Core-stateless Fair queuing Assigned reading [DKS90] Analysis and Simulation of a Fair Queueing.
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.
Advance Computer Networking L-5 TCP & Routers Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan.
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.
CS551: Queue Management Christos Papadopoulos (
CSE 561 – Congestion Control with Network Support David Wetherall Spring 2000.
Queueing and Active Queue Management Aditya Akella 02/26/2007.
9.7 Other Congestion Related Issues Outline Queuing Discipline Avoiding Congestion.
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.
Spring 2015© CS 438 Staff - University of Illinois1 Next Topic: Vacation Planning UIUC Chicago Monterey San Francisco Chicago to San Francisco: ALL FLIGHTS.
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.
Computer Networking Lecture 10 – TCP & Routers.
Other Methods of Dealing with Congestion
QoS & Queuing Theory CS352.
CS 268: Computer Networking
CS 268: Lecture 6 Scott Shenker and Ion Stoica
Chapter 6 Congestion Avoidance
Queue Management Jennifer Rexford COS 461: Computer Networks
Congestion Control: The Role of the Routers
Router-Assisted Congestion Control
EE 122: Router Support for Congestion Control: RED and Fair Queueing
TCP, XCP and Fair Queueing
Queuing and Queue Management
Random Early Detection Gateways for Congestion Avoidance
15-744: Computer Networking
15-744: Computer Networking
Other Methods of Dealing with Congestion
Advance Computer Networking
Advanced Computer Networks
Other Methods of Dealing with Congestion
COS 461: Computer Networks
CSCD 433/533 Advanced Networks
Max Min Fairness How define fairness?
Advance Computer Networking
15-744: Computer Networking
Adaptive RED: An Algorithm for Increasing the Robustness of RED’s Active Queue Management or How I learned to stop worrying and love RED Presented by:
Queueing Problem The performance of network systems rely on different delays. Propagation/processing/transmission/queueing delays Which delay is affected.
Presentation transcript:

Advance Computer Networking L-6 TCP & Routers Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan Seshan at CMU. When slides are obtained from other sources, a reference will be noted on the bottom of that slide.

TCP & Routers RED XCP Assigned reading [FJ93] Random Early Detection Gateways for Congestion Avoidance [KHR02] Congestion Control for High Bandwidth-Delay Product Networks

Overview Queuing Disciplines RED RED Alternatives XCP

Queuing Disciplines Each router must implement some queuing discipline Queuing allocates both bandwidth and buffer space: Bandwidth: which packet to serve (transmit) next Buffer space: which packet to drop next (when required) Queuing also affects latency

Packet Drop Dimensions Aggregation Single class Per-connection state Class-based queuing Drop position Tail Head Random location Early drop Overflow drop

Typical Internet Queuing FIFO + drop-tail Simplest choice Used widely in the Internet FIFO (first-in-first-out) Implies single class of traffic Drop-tail Arriving packets get dropped when queue is full regardless of flow or importance Important distinction: FIFO: scheduling discipline Drop-tail: drop policy

FIFO + Drop-tail Problems Leaves responsibility of congestion control to edges (e.g., TCP) Does not separate between different flows No policing: send more packets  get more service Synchronization: end hosts react to same events

Active Queue Management Design active router queue management to aid congestion control Why? Routers can distinguish between propagation and persistent queuing delays Routers can decide on transient congestion, based on workload

Active Queue Designs Modify both router and hosts DECbit – congestion bit in packet header Modify router, hosts use TCP Fair queuing Per-connection buffer allocation RED (Random Early Detection) Drop packet or set bit in packet header as soon as congestion is starting

Overview Queuing Disciplines RED RED Alternatives XCP

Internet Problems Full queues Lock-out problem Routers are forced to have have large queues to maintain high utilizations TCP detects congestion from loss Forces network to have long standing queues in steady-state Lock-out problem Drop-tail routers treat bursty traffic poorly Traffic gets synchronized easily  allows a few flows to monopolize the queue space

Design Objectives Keep throughput high and delay low Accommodate bursts Queue size should reflect ability to accept bursts rather than steady-state queuing Improve TCP performance with minimal hardware changes

Lock-out Problem Random drop Drop front Packet arriving when queue is full causes some random packet to be dropped Drop front On full queue, drop packet at head of queue Random drop and drop front solve the lock-out problem but not the full-queues problem

Full Queues Problem Drop packets before queue becomes full (early drop) Intuition: notify senders of incipient congestion Example: early random drop (ERD): If qlen > drop level, drop each new packet with fixed probability p Does not control misbehaving users somewhat drastic reaction to overload Uses instantaneous queue length

Random Early Detection (RED) Detect incipient congestion, allow bursts Keep power (throughput/delay) high Keep average queue size low Assume hosts respond to lost packets Avoid window synchronization Randomly mark packets Avoid bias against bursty traffic Some protection against ill-behaved users

RED Algorithm Maintain running average of queue length If avgq < minth do nothing Low queuing, send packets through If avgq > maxth, drop packet Protection from misbehaving sources Else mark packet in a manner proportional to queue length Notify sources of incipient congestion

RED Operation Min thresh Max thresh Average Queue Length P(drop) 1.0 maxP minth maxth Avg queue length

RED Algorithm Maintain running average of queue length Byte mode vs. packet mode – why? For each packet arrival Calculate average queue size (avg) If minth ≤ avgq < maxth Calculate probability Pa With probability Pa Mark the arriving packet Else if maxth ≤ avg

Queue Estimation Standard EWMA: avgq = (1-wq) avgq + wqqlen Special fix for idle periods – why? Upper bound on wq depends on minth Want to ignore transient congestion Can calculate the queue average if a burst arrives Set wq such that certain burst size does not exceed minth Lower bound on wq to detect congestion relatively quickly Typical wq = 0.002 Idle fix since otherwise avgq stays high during idle periods

Thresholds minth determined by the utilization requirement Tradeoff between queuing delay and utilization Relationship between maxth and minth Want to ensure that feedback has enough time to make difference in load Depends on average queue increase in one RTT Paper suggest ratio of 2 Current rule of thumb is factor of 3

Packet Marking Marking probability based on queue length Pb = maxp(avgq - minth) / (maxth - minth) Just marking based on Pb can lead to clustered marking Could result in synchronization Better to bias Pb by history of unmarked packets Pa = Pb/(1 - count*Pb)

Packet Marking maxp is reflective of typical loss rates Paper uses 0.02 0.1 is more realistic value If network needs marking of 20-30% then need to buy a better link! Gentle variant of RED (recommended) Vary drop rate from maxp to 1 as the avgq varies from maxth to 2* maxth More robust to setting of maxth and maxp

Extending RED for Flow Isolation Problem: what to do with non-cooperative flows? Fair queuing achieves isolation using per-flow state – expensive at backbone routers How can we isolate unresponsive flows without per-flow state? RED penalty box Monitor history for packet drops, identify flows that use disproportionate bandwidth Isolate and punish those flows

Overview Queuing Disciplines RED RED Alternatives XCP

FRED Fair Random Early Drop (Sigcomm, 1997) Maintain per flow state only for active flows (ones having packets in the buffer) minq and maxq  min and max number of buffers a flow is allowed occupy avgcq = average buffers per flow Strike count of number of times flow has exceeded maxq

FRED – Fragile Flows Flows that send little data and want to avoid loss minq is meant to protect these What should minq be? When large number of flows  2-4 packets Needed for TCP behavior When small number of flows  increase to avgcq

FRED Non-adaptive flows Flows with high strike count are not allowed more than avgcq buffers Allows adaptive flows to occasionally burst to maxq but repeated attempts incur penalty

Overview Queuing Disciplines RED XCP

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

How does XCP Work? Feedback = + 0.1 packet Round Trip Time Congestion Window Feedback = - 0.3 packet

Routers compute feedback without any per-flow state How does XCP Work? Congestion Window = Congestion Window + Feedback XCP extends ECN and CSFQ Routers compute feedback without any per-flow state

How Does an XCP Router Compute the Feedback? Congestion Controller  Congestion Controller Fairness 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 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,  =  davg Spare -  Queue MIMD AIMD

Getting the devil out of the details … Congestion Controller Fairness Controller Algorithm: If  > 0  Divide  equally between flows If  < 0  Divide  between flows proportionally to their current rates Need to estimate number of flows N RTTpkt : Round Trip Time in header Cwndpkt : Congestion Window in header T: Counting Interval  =  davg 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) Why is this N  1/(T*Cwnd/RTT) == # of pkts we expect to see from flow in time T… sum on this flow == 1 across all its pkts… Next for additive  delta/N in Bwidth  delta * RTT/N in cwnd over cwnd/rtt pkts…  delta RTT^2 / (CWND * N) For decrease  a little easier… for every packet basically want the same rate decrease – i.e. constant * RTT .. Just split across # pkts in interval No Parameter Tuning No Per-Flow State

Lessons TCP alternatives Routers Fair-queuing Core-stateless FQ & XCP TCP being used in new/unexpected ways Key changes needed Routers FIFO, drop-tail interacts poorly with TCP Various schemes to desynchronize flows and control loss rate Fair-queuing Clean resource allocation to flows Complex packet classification and scheduling Core-stateless FQ & XCP Coarse-grain fairness Carrying packet state can reduce complexity

Discussion XCP RED Misbehaving routers Deployment (and incentives) Parameter setting