CS268: Beyond TCP Congestion Control Ion Stoica February 9, 2004.

Slides:



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

Hui Zhang, Fall Computer Networking TCP Enhancements.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
TCP Congestion Control Dina Katabi & Sam Madden nms.csail.mit.edu/~dina 6.033, Spring 2014.
Congestion Control: TCP & DC-TCP Swarun Kumar With Slides From: Prof. Katabi, Alizadeh et al.
CS 268: Lecture 7 (Beyond TCP Congestion Control) Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences University.
1 End to End Bandwidth Estimation in TCP to improve Wireless Link Utilization S. Mascolo, A.Grieco, G.Pau, M.Gerla, C.Casetti Presented by Abhijit Pandey.
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.
XCP: Congestion Control for High Bandwidth-Delay Product Network Dina Katabi, Mark Handley and Charlie Rohrs Presented by Ao-Jan Su.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 ECSE-6600: Internet Protocols Informal Quiz #07 Shivkumar Kalyanaraman: GOOGLE: “Shiv RPI”
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 12.
Lecture 9 Congestion Control: Part II EECS 122 University of California Berkeley.
CS 268: Wireless Transport Protocols Kevin Lai Feb 13, 2002.
Comparison between TCPWestwood and eXplicit Control Protocol (XCP) Jinsong Yang Shiva Navab CS218 Project - Fall 2003.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
Data Communication and Networks
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.
Ns Simulation Final presentation Stella Pantofel Igor Berman Michael Halperin
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
Courtesy: Nick McKeown, Stanford 1 TCP Congestion Control Tahir Azim.
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.
Network Technologies essentials Week 8: TCP congestion control Compilation made by Tim Moors, UNSW Australia Original slides by David Wetherall, University.
Advance Computer Networking L-6 TCP & Routers Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan.
U Innsbruck Informatik - 1 CADPC/PTP in a nutshell Michael Welzl
Transport over Wireless Networks Myungchul Kim
EE 122: Congestion Control and Avoidance Kevin Lai October 23, 2002.
TCP behavior of a Busy Internet Server: Analysis and Improvements Y2K Oct.10 Joo Young Hwang Computer Engineering Research Laboratory KAIST. EECS.
HighSpeed TCP for High Bandwidth-Delay Product Networks Raj Kettimuthu.
Congestion Control for High Bandwidth-Delay Product Networks D. Katabi (MIT), M. Handley (UCL), C. Rohrs (MIT) – SIGCOMM’02 Presented by Cheng.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
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.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks TCP.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
The Macroscopic behavior of the TCP Congestion Avoidance Algorithm.
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
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.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
Peer-to-Peer Networks 13 Internet – The Underlay Network
CS 268: Lecture 5 (TCP Congestion Control) Ion Stoica February 4, 2004.
Congestion Control for High Bandwidth-Delay Product Networks Dina Katabi, Mark Handley, Charlie Rohrs Presented by Yufei Chen.
TCP over Wireless PROF. MICHAEL TSAI 2016/6/3. TCP Congestion Control (TCP Tahoe) Only ACK correctly received packets Congestion Window Size: Maximum.
Other Methods of Dealing with Congestion
Chapter 3 outline 3.1 transport-layer services
Introduction to Congestion Control
CS 268: Lecture 6 Scott Shenker and Ion Stoica
Router-Assisted Congestion Control
TCP Congestion Control
TCP Congestion Control
TCP, XCP and Fair Queueing
CS268: Beyond TCP Congestion Control
Other Methods of Dealing with Congestion
CS 268: Lecture 4 (TCP Congestion Control)
Other Methods of Dealing with Congestion
RAP: Rate Adaptation Protocol
TCP Congestion Control
TCP Congestion Control
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
Review of Internet Protocols Transport Layer
Lecture 6, Computer Networks (198:552)
Presentation transcript:

CS268: Beyond TCP Congestion Control Ion Stoica February 9, 2004

2 TCP Problems  When TCP congestion control was originally designed in 1988: -Key applications: FTP, -Maximum link bandwidth: 10Mb/s -Users were mostly from academic and government organizations (i.e., well-behaved) -Almost all links were wired (i.e., negligible error rate)  Thus, current problems with TCP: -High bandwidth-delay product paths -Selfish users -Wireless (or any high error links)

3 TCP Behavior For Web Traffic (B+98)  Workload: 1996 Olympic Game Site  Web servers implement TCP Reno  Path asymmetric Cluster: IBM/RS 6000 (Connect by Token Ring) NAP Load balancer Client

4 TCP Reno  Fast retransmit: retransmit a segment after 3 DUP Acks  Fast recovery: reduce cwnd to half instead of to one Time cwnd Slow Start Congestion Avoidance Timeout Fast Recovery Fast recovery

5 Findings: Single TCP  Finding 1: retransmission due to -43.8% due to fast retransmission -56.2% due to RTOs (6.9% due to RTOs in slow start)  Finding 2: Receiver window size is limiting factor in 14% of cases  Finding 3: Ack compression is real, and there is a pos. correlation between Ack compression factor and packet loss

6 Solutions: Single TCP  TCP SACK (Selective Acknowledgement) -Would help only with 4.4% of retransmission timeouts  Right-edge recovery -When receiving a DUP Ack send a new packet (why?) -Take care of 25% of retransmission timeouts

7 Findings: Parallel TCPs  The throughput of a client is proportional to the number of connection it opens to a server (relevant for HTTP 1.0) -Additive increase factor for n connections: n -Multiplicative decrease factor for n connections: 0.75

8 Solutions: Parallel TCPs  TCP-Int: -One congestion window for all TCPs to the same destination -TCPs are served in a round-robin fashion  Advantages -New TCPs start faster -Less likely for a loss to cause RTO  Disadvantages (?)

9 High Delay High Bandwidth Challenges: Slow Start  TCP throughput controlled by congestion window (cwnd) size  In slow start, window increases exponentially, but may not be enough  example: 10Gb/s, 200ms RTT, 1460B payload, assume no loss -Time to fill pipe: 18 round trips = 3.6 seconds -Data transferred until then: 382MB -Throughput at that time: 382MB / 3.6s = 850Mb/s -8.5% utilization  not very good  Loose only one packet  drop out of slow start into AIMD (even worse)

10 High Delay High Bandwidth Challenges: AIMD  In AIMD, cwnd increases by 1 packet/ RTT  Available bandwidth could be large -e.g., 2 flows share a 10Gb/s link, one flow finishes  available bandwidth is 5Gb/s -e.g., suffer loss during slow start  drop into AIMD at probably much less than 10Gb/s  Time to reach 100% utilization is proportional to available bandwidth -e.g., 5Gb/s available, 200ms RTT, 1460B payload  17,000s

11 Simulation Results Round Trip Delay (sec) Avg. TCP Utilization Bottleneck Bandwidth (Mb/s) Avg. TCP Utilization Shown analytically in [Low01] and via simulations 50 flows in both directions Buffer = BW x Delay RTT = 80 ms 50 flows in both directions Buffer = BW x Delay BW = 155 Mb/s

12 Proposed 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? 1.To control congestion: use MIMD which shows fast response 2.To control fairness: use AIMD which converges to fairness

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

14 XCP: An eXplicit Control Protocol 1. Congestion Controller 2. Fairness Controller

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

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

17 Congestion Window = Congestion Window + Feedback Routers compute feedback without any per-flow state How does XCP Work?

18 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

19  =  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) 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

20 Bottleneck S1S1 S2S2 R 1, R 2, …, R n SnSn Subset of Results Similar behavior over:

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

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

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

24 XCP Summary  XCP -Outperforms TCP -Efficient for any bandwidth -Efficient for any delay -Scalable (no per flow state)  Benefits of Decoupling -Use MIMD for congestion control which can grab/release large bandwidth quickly -Use AIMD for fairness which converges to fair bandwidth allocation

25 Selfish Users  Motivation -Many users would sacrifice overall system efficiency for more performance -Even more users would sacrifice fairness for more performance -Users can modify their TCP stacks so that they can receive data from a normal server at an un-congestion controlled rate.  Problem -How to prevent users from doing this? -General problem: How to design protocols that deal with lack of trust?  TCP Congestion Control with a Misbehaving Receiver. Stefan Savage, Neal Cardwell, David Wetherall and Tom Anderson. ACM Computer Communications Review, pp , v 29, no 5, October,  Robust Congestion Signaling. David Wetherall, David Ely, Neil Spring, Stefan Savage and Tom Anderson. IEEE International Conference on Network Protocols, November 2001

26 Ack Division  Receiver sends multiple, distinct acks for the same data  Max: one for each byte in payload  Smart sender can determine this is wrong

27 Optimistic Acking  Receiver acks data it hasn’t received yet  No robust way for sender to detect this on its own

28 Solution: Cumulative Nonce  Sender sends random number (nonce) with each packet  Receiver sends cumulative sum of nonces  if receiver detects loss, it sends back the last nonce it received  Why cumulative?

29 ECN  Explicit Congestion Notification -Router sets bit for congestion -Receiver should copy bit from packet to ack -Sender reduces cwnd when it receives ack  Problem: Receiver can clear ECN bit -Or increase XCP feedback  Solution: Multiple unmarked packet states -Sender uses multiple unmarked packet states -Router sets ECN mark, clearing original unmarked state -Receiver returns packet state in ack

30 ECN  Receiver must either return ECN bit or guess nonce  More nonce bits  less likelihood of cheating -1 bit is sufficient

31 Selfish Users Summary  TCP allows selfish users to subvert congestion control  Adding a nonce solves problem efficiently -must modify sender and receiver  Many other protocols not designed with selfish users in mind, allow selfish users to lower overall system efficiency and/or fairness -e.g., BGP

32 Conclusion  Transport protocol modifications not deployed -SACK was deployed because of general utility  Satellite -FEC because of long RTT issues  Link layer solutions give adequate, predictable performance, easily deployable