lecture 19: congestion control - cseweb.ucsd.edu · ce 1 100 - i 10-t packets dropped here 11...

20
CSE 123: Computer Networks Aaron Schulman Lecture 19: Congestion Control

Upload: others

Post on 26-Oct-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

CSE 123: Computer NetworksAaron Schulman

Lecture 19:Congestion Control

Page 2: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

Output queuing● Output interfaces buffer packets

● Prou Simple algorithmsu Single congestion point

● Conu N inputs may send to the same outputu Requires speedup of N

» Output ports must be N times faster than input ports

Input OutputSwitch

2CSE 123 – Lecture 17: Router Design

Page 3: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

Input queuing● Input interfaces buffer packets

● Prou Single congestion pointu Simple to design algorithms

● Conu Must implement flow controlu Low utilization due to Head-of-Line (HoL) Blocking

Input OutputSwitch

3CSE 123 – Lecture 17: Router Design

Page 4: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

Head-of-Line Blocking

4CSE 123 – Lecture 17: Router Design

Page 5: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● How fast should a sending host transmit data?u Not to fast, not to slow, just right…

● Should not be faster than the sender’s shareu Bandwidth allocation

● Should not be faster than the network can processu Congestion control

● Congestion control & bandwidth allocation are separate ideas, but frequently combined

9

CC Overview

CSE 123 – Lecture 19: Congestion Control

Page 6: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● How much bandwidth should each flow from a source to a destination receive when they compete for resources?

u What is a “fair” allocation?

Router

Source2

Source1

Source3

Router

Router

Destination2

Destination110Mbps

4Mbps

10Mbps

6Mbps

100Mbps

10Mbps

10

Bandwidth Allocation

CSE 123 – Lecture 19: Congestion Control

Page 7: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Buffer intended to absorb bursts when input rate > output● But if sending rate is persistently > drain rate, queue builds● Dropped packets represent wasted work; goodput < throughput

Destination1.5-Mbps T1 link

Router

Source2

Source1

100-Mbps FDDI

10-Mbps Ethernet

Packets dropped here

11

Congestion

CSE 123 – Lecture 19: Congestion Control

Page 8: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

Network Load

Thro

ughp

utLa

tenc

y

Congestion collapse

12

Drop-Tail QueuingLoss due toCongestion

CSE 123 – Lecture 19: Congestion Control

Page 9: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Rough definition: “When an increase in network load produces a decrease in useful work”

● Why does it happen?u Sender sends faster than bottleneck link speedu Packets queue until droppedu In response to packets being dropped, sender retransmitsu All hosts repeat in steady state…

13

Congestion Collapse

CSE 123 – Lecture 19: Congestion Control

Page 10: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Increase network resourcesu More buffers for queuingu Increase link speedu Pros/Cons of these approaches?

● Reduce network loadu Send data more slowly u How much more slowly?u When to slow down?

14

Mitigation Options

CSE 123 – Lecture 19: Congestion Control

Page 11: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Open loopu Explicitly reserve bandwidth in the network in advance

● Closed loopu Respond to feedback and adjust bandwidth allocation

● Network-basedu Network implements and enforces bandwidth allocation

● Host-basedu Hosts are responsible for controlling their sending rate

15

Designing a Control

CSE 123 – Lecture 19: Congestion Control

Page 12: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

Network Load

Thro

ughp

utLa

tenc

y

“Knee”“Cliff”

Congestion collapse

● Congestion avoidance: try to stay to the left of the knee● Congestion control: try to stay to the left of the cliff

16

Proactive vs. Reactive

Loss due toCongestion

CSE 123 – Lecture 19: Congestion Control

Page 13: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● How to detect congestion?

● How to limit sending data rate?

● How fast to send?

17

Challenges to Address

CSE 123 – Lecture 19: Congestion Control

Page 14: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Explicit congestion signalingu Source Quench: ICMP message from router to senderu DECBit / Explicit Congestion Notification (ECN):

» Router marks packet based on queue occupancy (i.e. indication that packet encountered congestion along the way)

» Receiver tells sender if queues are getting too full

● Implicit congestion signalingu Packet loss

» Assume congestion is primary source of packet loss» Lost packets indicate congestion

u Packet delay» Round-trip time increases as packets queue» Packet inter-arrival time is a function of bottleneck link

18

Detecting Congestion

CSE 123 – Lecture 19: Congestion Control

Page 15: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Window-based (TCP)u Constrain number of outstanding packets allowed in networku Increase window to send faster; decrease to send sloweru Pro: Cheap to implement, good failure propertiesu Con: Creates traffic bursts (requires bigger buffers)

● Rate-based (many streaming media protocols)u Two parameters (period, packets)u Allow sending of x packets in period yu Pro: smooth trafficu Con: fine-grained per-connection timers, what if receiver fails?

19

Throttling Options

CSE 123 – Lecture 19: Congestion Control

Page 16: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Ideally: Keep equilibrium at “knee” of power curveu Find “knee” somehowu Keep number of packets “in flight” the sameu Don’t send a new packet into the network until you know one

has left (I.e. by receiving an ACK)u What if you guess wrong, or if bandwidth availability changes?

● Compromise: adaptive approximation u If congestion signaled, reduce sending rate by xu If data delivered successfully, increase sending rate by yu How to relate x and y? Most choices don’t converge…

20

Choosing a Send Rate

CSE 123 – Lecture 19: Congestion Control

Page 17: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Each source independently probes the network to determine how much bandwidth is availableu Changes over time, since everyone does this

● Assume that packet loss implies congestionu Since errors are rare; also, requires no support from routers

Sink45 Mbps T3 link

RouterSource100 Mbps Ethernet

21

TCP’s Probing Approach

CSE 123 – Lecture 19: Congestion Control

Page 18: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Window-based congestion controlu Unified congestion control and flow control mechanismu rwin: advertised flow control window from receiveru cwnd: congestion control window

» Estimate of how much outstanding data network can deliver in a round-trip time

u Sender can only send MIN(rwin,cwnd) at any time

● Idea: decrease cwnd when congestion is encountered; increase cwnd otherwiseu Question: how much to adjust?

22

Basic TCP Algorithm

CSE 123 – Lecture 19: Congestion Control

Page 19: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

● Goal: Adapt to changes in available bandwidth

● Additive Increase, Multiplicative Decrease (AIMD)u Increase sending rate by a constant (e.g. MSS)u Decrease sending rate by a linear factor (e.g. divide by 2)

● Rough intuition for why this worksu Let Li be queue length at time iu In steady state: Li = N, where N is a constantu During congestion, Li = N + yLi-1, where y > 0u Consequence: queue size increases multiplicatively

» Must reduce sending rate multiplicatively as well

23

Congestion Avoidance

CSE 123 – Lecture 19: Congestion Control

Page 20: Lecture 19: Congestion Control - cseweb.ucsd.edu · ce 1 100 - I 10-t Packets dropped here 11 Congestion CSE 123 –Lecture 19: Congestion Control . Network Load oughput ency Congestion

For next time…

● RP&D 6.5

● Keep going on Project 2

24CSE 123 – Lecture 19: Congestion Control