CS 268: Lecture 6 Scott Shenker and Ion Stoica

Slides:



Advertisements
Similar presentations
Congestion Control and Fairness Models Nick Feamster CS 4251 Computer Networking II Spring 2008.
Advertisements

CS 268: Lecture 7 (Beyond TCP Congestion Control) Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences University.
Router-assisted congestion control Lecture 8 CS 653, Fall 2010.
Introduction 1 Lecture 14 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
CS268: Beyond TCP Congestion Control Ion Stoica February 9, 2004.
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.
XCP: Congestion Control for High Bandwidth-Delay Product Network Dina Katabi, Mark Handley and Charlie Rohrs Presented by Ao-Jan Su.
One More Bit Is Enough Yong Xia, RPI Lakshminarayanan Subramanian, UCB Ion Stoica, UCB Shivkumar Kalyanaraman, RPI SIGCOMM’05, August 22-26, 2005, Philadelphia,
Congestion Control for High Bandwidth-Delay Product Networks Dina Katabi, Mark Handley and Charlie Rohrs SIGCOMM2002 Pittsburgh Presenter – Bob Kinicki.
1 Congestion Control 2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for network to handle”
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley,
1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for.
High speed TCP’s. Why high-speed TCP? Suppose that the bottleneck bandwidth is 10Gbps and RTT = 200ms. Bandwidth delay product is packets (1500.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
Comparison between TCPWestwood and eXplicit Control Protocol (XCP) Jinsong Yang Shiva Navab CS218 Project - Fall 2003.
Data Communication and Networks
Transport Layer Congestion control. Transport Layer 3-2 Approaches towards congestion control End-to-end congestion control: r no explicit feedback.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Congestion Control for High Bandwidth-delay Product Networks Dina Katabi, Mark Handley, Charlie Rohrs.
Congestion Control for High Bandwidth-Delay Product Environments Dina Katabi Mark Handley Charlie Rohrs.
CS268: Beyond TCP Congestion Control Kevin Lai February 4, 2003.
3: Transport Layer3b-1 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for network to handle”
Transport Layer 4 2: Transport Layer 4.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
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.
Contents Causes and cost of congestion Three examples How to handle congestion End-to-end Network-assisted TCP congestion control ATM ABR congestion control.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
Congestion Control for High Bandwidth-Delay Product Networks D. Katabi (MIT), M. Handley (UCL), C. Rohrs (MIT) – SIGCOMM’02 Presented by Cheng.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer.
CS-1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Jack Lange.
XCP: eXplicit Control Protocol Dina Katabi MIT Lab for Computer Science
TeXCP: Protecting Providers’ Networks from Unexpected Failures & Traffic Spikes Dina Katabi MIT - CSAIL nms.csail.mit.edu/~dina.
Congestion Control for High Bandwidth-Delay Product Networks Dina Katabi, Mark Handley, Charlie Rohrs Presented by Yufei Chen.
CS 268: Computer Networking
Topics discussed in this section:
Approaches towards congestion control
Chapter 3 outline 3.1 transport-layer services
Congestion Control for High Bandwidth-Delay Product Networks
Introduction to Congestion Control
Router-Assisted Congestion Control
TCP Congestion Control
TCP Congestion Control
Advance Computer Networking
TCP, XCP and Fair Queueing
CS268: Beyond TCP Congestion Control
Internet Congestion Control Research Group
Flow and Congestion Control
Lecture 19 – TCP Performance
Queuing and Queue Management
ECE 599: Multimedia Networking Thinh Nguyen
Congestion Control.
Computer Science Division
RAP: Rate Adaptation Protocol
October 1st, 2013 CS-1652 Jack Lange University of Pittsburgh
TCP Congestion Control
TCP Congestion Control
Understanding Congestion Control Mohammad Alizadeh Fall 2018
Chapter 3 outline 3.1 Transport-layer services
CS-1652 Congestion Control Jack Lange University of Pittsburgh
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
TCP flow and congestion control
EECS 122: Introduction to Computer Networks Packet Scheduling and QoS
October 4th, 2011 CS-1652 Jack Lange University of Pittsburgh
Lecture 6, Computer Networks (198:552)
Presentation transcript:

CS 268: Lecture 6 Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA 94720-1776 (Based on slides from R. Stallings, M. Handley and D. Katabi)

Outline TCP-Friendly Rate Control (TFRC) ATM Congestion Control eXplicit Control Protocol

TCP-Friendly Any alternative congestion control scheme needs to coexist with TCP in FIFO queues in the best-effort Internet, or be protected from TCP in some manner. To co-exist with TCP, it must impose the same long-term load on the network: No greater long-term throughput as a function of packet loss and delay so TCP doesn't suffer Not significantly less long-term throughput or it's not too useful

TFRC: General Idea Use a model of TCP's throughout as a function of the loss rate and RTT directly in a congestion control algorithm. If transmission rate is higher than that given by the model, reduce the transmission rate to the model's rate. Otherwise increase the transmission rate.

TCP Modelling: The "Steady State" Model The model: Packet size B bytes, round-trip time R secs, no queue. A packet is dropped each time the window reaches W packets. TCP’s congestion window: The maximum sending rate in packets per roundtrip time: W The maximum sending rate in bytes/sec: W B / R The average sending rate T: T = (3/4)W B / R The packet drop rate p: The result:

An Improved "Steady State" Model A pretty good improved model of TCP Reno, including timeouts, from Padhye et al, Sigcomm 1998: Would be better to have a model of TCP SACK, but the differences aren’t critical.

TFRC Details The devil's in the details Not as simple as first thought How to measure the loss rate? How to respond to persistent congestion? How to use RTT and prevent oscillatory behavior? Not as simple as first thought

TFRC Performance (Simulation)

TFRC Performance (Experimental)

Outline TCP-Friendly Rate Control (TFRC) ATM Congestion Control eXplicit Control Protocol

ATM Congestion Control Credit Based Sender is given “credit” for number of octets or packets it may send before it must stop and wait for additional credit. Rate Based Sender may transmit at a rate up to some limit. Rate can be reduced by control message.

Case study: ATM ABR congestion control RM (resource management) cells: Sent by sender, interspersed with data cells Bits in RM cell set by switches (“network-assisted”) NI bit: no increase in rate (mild congestion) CI bit: congestion indication RM cells returned to sender by receiver, with bits intact ABR: available bit rate: “elastic service” if sender’s path “underloaded”: Sender should use available bandwidth if sender’s path congested: Sender throttled to minimum guaranteed rate

EXPLICIT Case study: ATM ABR congestion control Two-byte ER (explicit rate) field in RM cell Congested switch may lower ER value in cell Sender’ send rate thus minimum supportable rate on path EFCI bit in data cells: set to 1 in congested switch If data cell preceding RM cell has EFCI set, sender sets CI bit in returned RM cell

ABR Cell Rate Feedback Rules if CI == 1 Reduce ACR to a value >= MCR else if NI == 0 Increase ACR to a value <= PCR if ACR > ER set ACR = max(ER, MCR) ACR = Allowed Cell Rate MCR = Minimum Cell Rate PCR = Peak Cell Rate ER = Explicit Rate

Outline TCP-Friendly Rate Control (TFRC) ATM Congestion Control eXplicit Control Protocol

TCP congestion control performs poorly as bandwidth or delay increases Shown analytically in [Low01] and via simulations Avg. TCP Utilization 50 flows in both directions Buffer = BW x Delay RTT = 80 ms Avg. TCP Utilization 50 flows in both directions Buffer = BW x Delay BW = 155 Mb/s Because TCP lacks fast response Spare bandwidth is available  TCP increases by 1 pkt/RTT even if spare bandwidth is huge When a TCP starts, it increases exponentially  Too many drops  Flows ramp up by 1 pkt/RTT, taking forever to grab the large bandwidth Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec)

Solution: Decouple Congestion Control from Fairness High Utilization; Small Queues; Few Drops Bandwidth Allocation Policy

Solution: Decouple Congestion Control from Fairness Example: In TCP, Additive-Increase Multiplicative-Decrease (AIMD) controls both Coupled because a single mechanism controls both How does decoupling solve the problem? To control congestion: use MIMD which shows fast response To control fairness: use AIMD which converges to fairness

Characteristics of XCP Solution Improved Congestion Control (in high bandwidth-delay & conventional environments): Small queues Almost no drops Improved Fairness Scalable (no per-flow state) Flexible bandwidth allocation: min-max fairness, proportional fairness, differential bandwidth allocation,…

XCP: An eXplicit Control Protocol Congestion Controller Fairness Controller

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: 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 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

Getting the devil out of the details … Congestion Controller Fairness Controller  =  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) 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 No Parameter Tuning No Per-Flow State

Subset of Results S1 Bottleneck S2 R1, R2, …, Rn Sn Similar behavior over:

XCP Remains Efficient as Bandwidth or Delay Increases Utilization as a function of Bandwidth Utilization as a function of Delay Avg. Utilization Avg. Utilization Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec)

XCP Remains Efficient as Bandwidth or Delay Increases Utilization as a function of Bandwidth Utilization as a function of Delay  and  chosen to make XCP robust to delay Avg. Utilization XCP increases proportionally to spare bandwidth Avg. Utilization Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec)

XCP Shows Faster Response than TCP Start 40 Flows Stop the 40 Flows XCP shows fast response!

XCP Deals Well with Short Web-Like Flows Average Utilization Average Queue Drops Arrivals of Short Flows/sec

XCP is Fairer than TCP Same RTT Different RTT Avg. Throughput Flow ID Flow ID (RTT is 40 ms 330 ms )