lecture 14: congestion control - computer science · 2013-02-26 · congestion control...
Post on 30-May-2020
1 Views
Preview:
TRANSCRIPT
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 DC-TCP paper
We’ll be in touch regarding Checkpoint meetings ◆ Email 1-2 page summary to Siva if you haven’t already
29 29 CSE 222A – Lecture 14: Congestion Control"
top related