Lecture 8 Congestion Control EECS 122 University of California Berkeley.

Slides:



Advertisements
Similar presentations
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Advertisements

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.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
Lecture 9 Congestion Control: Part II EECS 122 University of California Berkeley.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Third Ed.,Peterson.
CSEE W4140 Networking Laboratory Lecture 7: TCP flow control and congestion control Jong Yul Kim
1 Internet Networking Spring 2002 Tutorial 10 TCP NewReno.
1 Lecture 9: TCP and Congestion Control Slides adapted from: Congestion slides for Computer Networks: A Systems Approach (Peterson and Davis) Chapter 3.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
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.
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
Networks : TCP Congestion Control1 TCP Congestion Control.
Networks : TCP Congestion Control1 TCP Congestion Control Presented by Bob Kinicki.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
TCP Congestion Control
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
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 Layer3-1 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 15: Congestion Control I Slides used with.
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
Congestion Control - Supplementary Slides are adapted on Jean Walrand’s Slides.
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
Lab The network simulator ns The network simulator ns Allows us to watch evolution of parameters like cwnd and ssthresh Allows us to watch evolution of.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Transport Layer 3- Midterm score distribution. Transport Layer 3- TCP congestion control: additive increase, multiplicative decrease Approach: increase.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Principles of Congestion Control Some slides.
1 John Magee 20 February 2014 CS 280: Transport Layer: Congestion Control Concepts, TCP Congestion Control Most slides adapted from Kurose and Ross, Computer.
 Last Class  This Class  Chapter 6.3. ~ 6.4.  TCP congestion control.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Advance Computer Networks Lecture#09 & 10 Instructor: Engr. Muhammad Mateen Yaqoob.
Recap Slow start introduced cwnd Slow start introduced cwnd Can transmit up to Can transmit up to min( cwnd, offered window ) Flow control by the sender.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
Peer-to-Peer Networks 13 Internet – The Underlay Network
@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.
Karn’s Algorithm Do not use measured RTT to update SRTT and SDEV Calculate backoff RTO when a retransmission occurs Use backoff RTO for segments until.
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
CS450 – Introduction to Networking Lecture 19 – Congestion Control (2)
Approaches towards congestion control
Transport Layer CS 381 3/7/2017.
Chapter 3 outline 3.1 transport-layer services
Chapter 6 TCP Congestion Control
CS-1652 Jack Lange University of Pittsburgh
COMP 431 Internet Services & Protocols
Chapter 3 outline 3.1 Transport-layer services
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
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.
Chapter 6 TCP Congestion Control
CS640: Introduction to Computer Networks
October 1st, 2013 CS-1652 Jack Lange University of Pittsburgh
CS4470 Computer Networking Protocols
TCP Congestion Control
TCP Overview.
Advanced Computer Networks
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
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
October 4th, 2011 CS-1652 Jack Lange University of Pittsburgh
Presentation transcript:

Lecture 8 Congestion Control EECS 122 University of California Berkeley

EECS 122Walrand2 TOCTOC: Congestion Control The Problem Questions Approaches TCP: Algorithm TCP Refinements Summary

EECS 122Walrand3 Congestion ControlCongestion Control: The Problem Flows share links: How to share the links bandwidth?

EECS 122Walrand4 Congestion ControlCongestion Control: Questions What should be the ideal sharing? Does it matter? Does it matter Discovering available bandwidth What is fair? What is fair

EECS 122Walrand5 QuestionsQuestions: Does it matter? Congestion occurs Access link  Slow link (56k, DSL, T1, wireless, …) Access network  E.g., behind the DSLAM Can improve treatment of flows E.g., one flow should not get a much smaller fraction of bandwidth Some flows might need some guaranteed bandwidth

EECS 122Walrand6 QuestionsQuestions: Available bandwidth? Example: = router = host 3 = link with bandwidth of 3Mbps (same for 6 and 10) x, y, z = throughput of flows

EECS 122Walrand7 QuestionsQuestions: Available bandwidth? Example: Assume C  D with rate y and E  F with rate z How does A “discover” the available bandwidth to B? Some approaches: 1.ReservationReservation 2.Adapt to congestionAdapt 3.Test for sufficient bandwidthTest 4.Pricing congestionPricing

EECS 122Walrand8 QuestionsQuestions: Available bandwidth? Example: Assume C  D with rate y and E  F with rate z How does A “discover” the available bandwidth to B? Some approaches: 1.ReservationReservation 2.Adapt to congestionAdapt 3.Test for sufficient bandwidthTest 4.Pricing congestionPricing

EECS 122Walrand9 Available bandwidthAvailable bandwidth: Reservation 1.Routers (or manager) keep track of reserved rates 2.A requests a rate R to B from the network 3.The network figures out if R is available 4.If R is available, routers (or manager) update reservations and confirm to A 5.Note: Complex, Slow, Requires enforcement, Renegotiations, Pricing

EECS 122Walrand10 Available bandwidthAvailable bandwidth: Adapt 1.Transmit and slow down if congestion occur 2.Example: Initially: x= 0, y = 3, z = 3 Then A increases its rate; C and E notice congestion and slow down Later, C stops: A and E increase rates 3.Notes: No guarantees: throughput may drop Key question: how to adapt rates

EECS 122Walrand11 Available bandwidthAvailable bandwidth: Test 1.Assume flows require at most 1Mbps (e.g., video) 2.Routers monitor their rates to see if they have at least 1 Mbps of available bandwidth; they mark packets otherwise 3.If A wants a new flow to B, it sends test packets to B 4.If routers do not mark test packets, then A can start its new flow; otherwise, A does not start it 5.Advantages: 1.relatively simple 2.guarantee

EECS 122Walrand12 Available bandwidthAvailable bandwidth: Pricing Example: When they get saturated, routers mark packets If a flow with rate R uses saturated links, it gets marks with rate R Each mark costs one unit Source slows down if price becomes excessive x= 1+, y = 2+, z = 2+  pA = 1 + 1; pC = pE = 2 x = 2+, y = 1+, z = 1+  pA = 2 + 2; pC = pE = 1

EECS 122Walrand13 QuestionsQuestions: What is Fair? Example: x = y = z = 1.5: fair in max-min sense x = 0, y = z = 3: maximizes x + y + z 5x = 4y = 4z: equalizes resources flows use with x = 1.33, y = z = 1.67 What if A  B needs 2Mbps? (and is willing to pay for it)

EECS 122Walrand14 Congestion ControlCongestion Control: Approaches Telephone Network: Reservation Transmission Control Protocol (TCP) Adapt rate to congestion Algorithm for adaptation attempts to be fair … User Datagram Protocol (UDP) Transmit and hope for the best Various proposals for Internet: Reservation Pricing Test Note: Either by hosts or between domains

EECS 122Walrand15 Congestion ControlCongestion Control: TCP Algorithm Principles Example Multiple Sources A Bad AlgorithmA Bad Algorithm: AIAD AIMD: Additive Increase – Multiplicative Decrease Why AIAD Fails

EECS 122Walrand16 TCP AlgorithmTCP Algorithm: Principles We focus on the “standard” TCP (reno) Idea: Not congested => increase rate Congested => slow down Questions: How to detect congestion?  Missing ACKs How to increase/slow down?  AIMD

EECS 122Walrand17 TCP AlgorithmTCP Algorithm: Example No congestion  x increases by one packet/RTT every RTT Congestion  decrease x by factor 2 AB x C = 50 pkts/RTT

EECS 122Walrand18 TCP AlgorithmTCP Algorithm: Multiple Sources AB x C = 50 pkts/RTT DE No congestion  rate increases by one packet/RTT every RTT Congestion  decrease rate by factor 2 Rates equalize  fair share y

EECS 122Walrand19 TCP AlgorithmTCP Algorithm: Bad Algorithm AB x C = 50 pkts/RTT DE No congestion  x increases by one packet/RTT every RTT Congestion  decrease x by 1 y

EECS 122Walrand20 TCP AlgorithmTCP Algorithm: AIMD AB x C DE y Limit rates: x = y

EECS 122Walrand21 TCP AlgorithmTCP Algorithm: Why AIAD Fails AB x C DE y Limit rates: x and y depend on initial values

EECS 122Walrand22 Congestion ControlCongestion Control: TCP Refinements Fast Retransmit Fast RecoveryFast Recovery: 1 st Look Fast RecoveryFast Recovery: 2 nd Look Slow Start Window Updates Flow Control Summary

EECS 122Walrand23 RefinementsRefinements: Fast Retransmit n n+1 n+2 Cumulative ACKs: ACK # = next expected # n+1 n+3 n+1 3 rd duplicated ACK:  likely packet loss  retransmit n+1 timeout

EECS 122Walrand24 Refinements Refinements : Fast Recovery (1) Timeout  Reset Window = 1 unit (MSS) 3 rd Dup ACK  Window/2 Window Slope = 1 MSS/RTT 3 rd Dup ACK n n/2 Timeout 1 Moderate congestion (subsequent pkts arrived) Severe congestion

EECS 122Walrand25 Refinements Refinements : Fast Recovery (2) Window adjustment is tricky: Want W  W/2 1 n ssthresh = W/2 W = ssthresh + 3 W = W + 1 at each Dup Ack n - 3 W = n + W/2 W/2 outstanding packets: n+1, …, n+W/2 W/2 outstanding packets: n+1, …, n+W/2 W W = ssthresh

EECS 122Walrand26 Refinements Refinements : Slow Start Objective: Discover available bdw fast Solution: Exponential increase of window W Timeout 1 n n/2 Threshold 65KB exp Additive Slope = 1/RTT

EECS 122Walrand27 Refinements Refinements : Window Updates Exponential: W = W + 1 at each ACK: W = 1W = 2W = 4W = 8 Additive: W = W + 1/W at each ACK: W = 8 + 1/8 W = /8.125  8 + 2/8 W  8 + 8/8 = 9 W  9 + 9/9 = 10

EECS 122Walrand28 Refinements Refinements : Flow Control Objective: Avoid saturating destination Algorithm: Receiver avertizes window RAW RAW window = min{RAW – OUT, W} where OUT = Oustanding = Last sent – last ACKed W = Cong. Window from AIMD + refinements [ACK | RAW | …]

EECS 122Walrand29 Refinements Refinements : Summary W 1 65KB Actual window = min{RAW - OUT, W} X 0.5 TO 3DA X 0.5 3DA TO X 0.5 SSCA SS CA 3 3

EECS 122Walrand30 Congestion ControlCongestion Control: Summary Slow Start: Discover available bandwidth Congestion Avoidance: AIMD  Tries to be fair Refinements: Fast Retransmit: 3DA Fast Recovery: Reset W to W/2 (instead of W = 1) [More precisely: ssthresh = W/2, W = W + 1 per DA, W = ssthresh when get new ACK.] TO: set ssthresh = W/2, W = 1, SS until W = ssthresh, then CA Timers: Timeout = Average + 4 Deviations If time out  Timeout x 2 Reset after new packet or new ACK Flow Control: Window = min{RAW – OUT, W}