Lecture 14: Congestion Control › ... › lectures › 222A-wi15-l14.pdf · Lecture 14 Overview...

29
CSE 222A: Computer Communication Networks Alex C. Snoeren Lecture 14: Congestion Control Thanks: Amin Vahdat, Dina Katabi

Transcript of Lecture 14: Congestion Control › ... › lectures › 222A-wi15-l14.pdf · Lecture 14 Overview...

CSE 222A: Computer Communication Networks Alex C. Snoeren

Lecture 14:Congestion Control

Thanks: Amin Vahdat, Dina Katabi

Lecture 14 Overview

●  TCP congestion control review

●  XCP Overview

2 CSE 222A – Lecture 14: Congestion Control

Congestion Control Overview●  Challenge: how do we efficiently share network

resources among billions of hosts? ◆  Today: TCP

Hosts adjust rate based on packet losses ◆  Alternative solutions

Fair queuing, RED (router support) Vegas, packet pair (add functionality to TCP) Rate control, credits

3 CSE 222A – Lecture 14: Congestion Control

Queuing Disciplines●  How to distribute buffers among users/flows

◆  When buffer overflows, which packet to drop?

●  Simple solution: FIFO ◆  First in, first out ◆  If packet comes along with no available buffer space, drop it

4 CSE 222A – Lecture 14: Congestion Control

Fair Queuing●  Goals:

◆  Allocate resources equally among all users/flows ◆  Low delay for interactive users ◆  Protection against misbehaving users

●  Approach: simulate general processor sharing (from OS world) ◆  Bitwise round robin ◆  Need to compute number of competing flows at each instant

5 CSE 222A – Lecture 14: Congestion Control

TCP Congestion Problems●  Original TCP sent full window of data

●  When links become loaded, queues fill up, leading to: ◆  Congestion collapse: when round-trip time exceeds retransmit

interval this can create a stable condition in which every packet is being retransmitted many times

◆  Synchronized behavior: network oscillates between loaded and unloaded

»  Feedback loop

6 CSE 222A – Lecture 14: Congestion Control

Jacobson’s Solution●  Transport protocols should obey conservation of

packets ◆  Use ACKs to clock injection of new packets

●  Modify retransmission timer to adapt to variations in delay

●  Infer network bandwidth from packet loss ◆  Drops è congestion è reduce rate ◆  No drops è no congestion è increase rate

●  Limit send rate based on minimum of congestion window and advertised window

7 CSE 222A – Lecture 14: Congestion Control

Tracking Bottleneck Bandwidth●  Throughput = window size/RTT

●  Multiplicative decrease ◆  Timeout è dropped packet è cut window size in half

●  Additive increase ◆  ACK arrives è no drop è increase window size by one

packet/window

8 CSE 222A – Lecture 14: Congestion Control

TCP “Sawtooth”●  Oscillates around bottleneck bandwidth

◆  Adjusts to changes in competing traffic

0

2

4

6

8

10

12

14

16

18

window (in segs)

round-trip times

Additive Increase/Multiplicative Decrease

9 CSE 222A – Lecture 14: Congestion Control

Slow Start●  How do we find bottleneck bandwidth? ●  Cannot use ACKs to clock without reaching equilibrium

◆  Start by sending a single packet Start slow to avoid overwhelming network

◆  Multiplicative increase until get packet loss Quickly find bottleneck Cut rate by half

◆  Shift into linear increase/multiplicative decrease

10 CSE 222A – Lecture 14: Congestion Control

Slow Start●  Quickly find the bottleneck bandwidth

0

50

100

150

200

250

300

0 1 2 3 4 5 6 7 8

window (in segs)

round-trip times

Slow Start

11 CSE 222A – Lecture 14: Congestion Control

Slow Start Problems●  Slow start usually overshoots bottleneck

◆  Leading to many lost packets in window ◆  Can lose up to half of window size

●  Bursty traffic source ◆  Will cause bursty losses for other flows

●  Short flows ◆  Can spend entire time in slow start

Especially for large bottleneck bandwidth

●  Consider repeated connections to the same server ◆  E.g., for web connections

12 CSE 222A – Lecture 14: Congestion Control

ACK Pacing in TCP

●  ACKs open up slots in the congestion/advertised window ◆  Bottleneck link determines rate to send ◆  ACK indicates one packet has left the network

13 CSE 222A – Lecture 14: Congestion Control

Problems with ACK Pacing●  ACK compression

◆  Variations in queuing delays on return path changes spacing between ACKs

◆  Example: ACK waits for single long packet ◆  Worse with bursty cross-traffic

●  What happens after a timeout? ◆  Potentially, no ACKs to time packet transmissions

●  Congestion avoidance ◆  Slow start back to last successful rate ◆  Back to linear increase/multiplicative increase at this point

14 CSE 222A – Lecture 14: Congestion Control

Two TCP Connections●  Reach equilibrium independent of initial bandwidth

(assuming equal RTTs)

0

2

4

6

8

10

12

14

16

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

window (in segs)

round-trip times

15 CSE 222A – Lecture 14: Congestion Control

TCP “Friendliness”●  Problem: many different TCP implementations ●  If cut back more slowly after drops è grab bigger

share ●  If add more quickly after ACKs è grab bigger share ●  Incentive to cause congestion collapse

◆  Many TCP “accelerators” ◆  Easy to improve perf at expense of network

●  Solutions? ◆  Per-flow fair queuing at router

16 CSE 222A – Lecture 14: Congestion Control

Example: In TCP, Additive-Increase Multiplicative-Decrease (AIMD) controls both

Coupled because a single mechanism controls both

XCP argues decoupling solves the problem:

1.  To control congestion: use MIMD which shows fast response

2.  To control fairness: use AIMD which converges to fairness

Fairness vs. Efficiency

17 CSE 222A – Lecture 14: Congestion Control

XCP Advantages●  Tighter Congestion Control

◆  Small queues ◆  Almost no drops

●  Scalable (no per-flow state)

●  Flexible fairness definitions ◆  Max/min ◆  Proportional ◆  Differential bandwidth ◆  Etc.

18 CSE 222A – Lecture 14: Congestion Control

1.  Congestion Controller 2.  Fairness Controller

XCP Overview

19 CSE 222A – Lecture 14: Congestion Control

Feedback

Round Trip Time

Congestion Window

Congestion Header

Feedback

Round Trip Time

Congestion Window

Feedback = + 0.1 packet

XCP Example

20 CSE 222A – Lecture 14: Congestion Control

Feedback = + 0.1 packet

Round Trip Time

Congestion Window

Feedback = - 0.3 packet

XCP Example

21 CSE 222A – Lecture 14: Congestion Control

Congestion Window = Congestion Window + Feedback

Routers compute feedback without any per-flow state

XCP Example

22 CSE 222A – Lecture 14: Congestion Control

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, Δ = α davg Spare - β Queue

Feedback Computation

23 CSE 222A – Lecture 14: Congestion Control

Bottleneck S1 S2

R1, R2, …, Rn

Sn

Dumbbell Topology

24 CSE 222A – Lecture 14: Congestion Control

Bottleneck Bandwidth (Mb/s)

Avg.

Util

izat

ion

Round Trip Delay (sec)

Avg.

Util

izat

ion

Efficiency

25 CSE 222A – Lecture 14: Congestion Control

Start

40 Flows Stop the 40 Flows

Response to Dynamics

26 CSE 222A – Lecture 14: Congestion Control

Average Utilization

Average Queue

Drops

Short Flows

27 CSE 222A – Lecture 14: Congestion Control

Different RTT Same RTT

Avg.

Thr

ough

put

Avg.

Thr

ough

put

Fairness

28 CSE 222A – Lecture 14: Congestion Control

For Next Class… ●  Read and review DCTCP paper

●  We’ll be in touch regarding Checkpoint meetings ◆  Email 1-2 page summary to Bhanuif you haven’t already

29 29 CSE 222A – Lecture 14: Congestion Control