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

Slides:



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

TCP and Congestion Control
Michele Pagano – A Survey on TCP Performance Evaluation and Modeling 1 Department of Information Engineering University of Pisa Network Telecomunication.
Principles of Congestion Control Chapter 3.6 Computer Networking: A top-down approach.
1 TCP Congestion Control. 2 TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement.
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.
CS640: Introduction to Computer Networks Mozafar Bag-Mohammadi Lecture 3 TCP Congestion Control.
Computer Networking Lecture 17 – TCP & Congestion Control Dejian Ye, Liu Xin.
Introduction 1 Lecture 14 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Introduction to Congestion Control
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 12.
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for.
15-744: Computer Networking L-10 Congestion Control.
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.
1 TCP Transport Control Protocol Reliable In-order delivery Flow control Responds to congestion “Nice” Protocol.
Computer Networking Lecture 16 – TCP & Congestion Control Copyright ©, Carnegie Mellon University.
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
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
L13: Sharing in network systems Dina Katabi Spring Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans.
TCP Congestion Control
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.
Transport Layer1 Flow and Congestion Control Ram Dantu (compiled from various text books)
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow 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
1 Transport Layer Lecture 10 Imran Ahmed University of Management & Technology.
Computer Networking Lecture 18 – More TCP & Congestion Control.
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.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Principles of Congestion Control Some slides.
By N.Gopinath AP/CSE Unit: III Introduction to Transport layer.
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.
Advance Computer Networks Lecture#09 & 10 Instructor: Engr. Muhammad Mateen Yaqoob.
TCP. TCP ACK generation [RFC 1122, RFC 2581] Event at Receiver Arrival of in-order segment with expected seq #. All data up to expected seq # already.
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.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – II - Connection Set-up and Congestion Control.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP Congestion Control.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
1 Flow & Congestion Control Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek, Hari Balakrishnan, and Sam Madden Prof. Dina Katabi.
Computer Networking Lecture 8 – TCP & Congestion Control.
Lecture 17 – TCP & Congestion Control
CS450 – Introduction to Networking Lecture 19 – Congestion Control (2)
Topics discussed in this section:
Approaches towards congestion control
Chapter 3 outline 3.1 transport-layer services
Chapter 6 TCP Congestion Control
CS-1652 Jack Lange University of Pittsburgh
Introduction to Congestion Control
Chapter 3 outline 3.1 Transport-layer services
Flow and Congestion Control
Lecture 19 – TCP Performance
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.
15-744: Computer Networking
Chapter 6 TCP Congestion Control
October 1st, 2013 CS-1652 Jack Lange University of Pittsburgh
TCP Congestion Control
TCP Overview.
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
Computer Networking TCP.
October 4th, 2011 CS-1652 Jack Lange University of Pittsburgh
Presentation transcript:

Congestion Control and Fairness Models Nick Feamster CS 4251 Computer Networking II Spring 2008

2 Internet Pipes? How should you control the faucet? –Too fast – sink overflows –Too slow – what happens? Goals –Fill the bucket as quickly as possible –Avoid overflowing the sink Solution – watch the sink

3 Congestion Different sources compete for resources inside network Why is it a problem? –Sources are unaware of current state of resource –Sources are unaware of each other Manifestations: –Lost packets (buffer overflow at routers) –Long delays (queuing in router buffers) –Can result in throughput less than bottleneck link (1.5Mbps for the above topology) a.k.a. congestion collapse 10 Mbps 100 Mbps 1.5 Mbps

4 Causes & Costs of Congestion Four senders – multihop paths Timeout/retransmit Q: What happens as rate increases?

5 Causes & Costs of Congestion When packet dropped, any upstream transmission capacity used for that packet was wasted!

6 Congestion Collapse Definition: Increase in network load results in decrease of useful work done Many possible causes –Spurious retransmissions of packets still in flight Classical congestion collapse How can this happen with packet conservation? RTT increases! Solution: better timers and TCP congestion control –Undelivered packets Packets consume resources and are dropped elsewhere in network Solution: congestion control for ALL traffic

7 Congestion Control and Avoidance A mechanism that: –Uses network resources efficiently –Preserves fair network resource allocation –Prevents or avoids collapse Congestion collapse is not just a theory –Has been frequently observed in many networks

8 Congestion Control Approaches End-end congestion control: –No explicit feedback from network –Congestion inferred from end-system observed loss, delay –Approach taken by TCP Network-assisted congestion control: Routers provide feedback to end systems Single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) Explicit rate sender should send at Problem: makes routers complicated Two broad approaches

9 Example: TCP Congestion Control Very simple mechanisms in network –FIFO scheduling with shared buffer pool –Feedback through packet drops TCP interprets packet drops as signs of congestion and slows down –This is an assumption: packet drops are not a sign of congestion in all networks E.g. wireless networks Periodically probes the network to check whether more bandwidth has become available.

10 Simple router behavior Distributed operation Efficiency: X = x i (t) –Solution leads to high network utilization Fairness: ( x i ) 2 /n( x i 2 ) –What are the important properties of this function? Convergence: control system must be stable Objectives

End-to-End Congestion Control Increase algorithm –Sender must test the network to determine whether or not the network can sustain a higher rate Decrease algorithm –Senders react to congestion to achieve optimal loss rates, delays, sending rates

Two Approaches Window-based –Sender uses ACKs from receiver to clock transmission of new data Rate-based –Sender monitors loss rate and uses timer to modulate the transmission rate –Actually need a burst rate and a burst size

13 What are desirable properties? What if flows are not equal? Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 Optimal point Overload Underutilization Phase Plots

14 Reduce speed when congestion is perceived –How is congestion signaled? Either mark or drop packets –How much to reduce? Increase speed otherwise –Probe for available bandwidth – how? Basic Control Model

15 Many different possibilities for reaction to congestion and probing –Examine simple linear controls Window(t + 1) = a + b Window(t) Different a i /b i for increase and a d /b d for decrease Supports various reaction to signals –Increase/decrease additively –Increased/decrease multiplicatively –Which of the four combinations is optimal? Linear Control

16 Simple way to visualize behavior of competing connections over time User 1s Allocation x 1 User 2s Allocation x 2 Phase Plots

17 T0T0 T1T1 Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 Both X 1 and X 2 increase/ decrease by the same amount over time –Additive increase improves fairness and additive decrease reduces fairness Additive Increase/Decrease

18 Both X 1 and X 2 increase by the same factor over time –Extension from origin – constant fairness T0T0 T1T1 Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 Multiplicative Increase/Decrease

19 xHxH Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 Convergence to Efficiency

20 xHxH Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 a=0 b=1 a>0 & b<1 a 1 a<0 & b<1 a>0 & b>1 Distributed Convergence to Efficiency

21 xHxH Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 xHxH Convergence to Fairness

22 Intersection of valid regions For decrease: a=0 & b < 1 xHxH Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 xHxH Convergence to Efficiency and Fairness

23 Constraints limit us to AIMD –Can have multiplicative term in increase (MAIMD) –AIMD moves towards optimal point x0x0 x1x1 x2x2 Efficiency Line Fairness Line User 1s Allocation x 1 User 2s Allocation x 2 Approach

Results Assuming syncrhonized feedback (i.e., congestion is signalled to all connections sharing a bottleneck) –Additive increase improves fairness and efficiency –Multiplicative decrease moves the system towards efficiency without altering fairness In contrast –Additive decrease reduces fairness –MIMD does not ever improve fairness

Distributed, fair and efficient Packet loss is seen as sign of congestion and results in a multiplicative rate decrease –Factor of 2 TCP periodically probes for available bandwidth by increasing its rate Time Rate AIMD

32 Operating system timers are very coarse – how to pace packets out smoothly? Implemented using a congestion window that limits how much data can be in the network. –TCP also keeps track of how much data is in transit Data can only be sent when the amount of outstanding data is less than the congestion window. –The amount of outstanding data is increased on a send and decreased on ack –(last sent – last acked) < congestion window Window limited by both congestion and buffering –Senders maximum window = Min (advertised window, cwnd) Implementation

If loss occurs when cwnd = W –Network can handle 0.5W ~ W segments –Set cwnd to 0.5W (multiplicative decrease) Upon receiving ACK –Increase cwnd by (1 packet)/cwnd What is 1 packet? 1 MSS worth of bytes After cwnd packets have passed by approximately increase of 1 MSS Implements AIMD Congestion Avoidance

Sequence No Packets Acks Example: Sequence Number Plot

Throughput vs. Loss Rate To the first order, throughput is proportional to 1/sqrt(loss rate) –TCP friendliness Consider following diagram to derive throughput: How many packets between periods of packet loss? (arithmetic series) Compute loss rate from this… Throughput: avg rate / RTT