TCP congestion control

advertisement
TCP Congestion Control
Jennifer Rexford
Fall 2014 (TTh 3:00-4:20 in CS 105)
COS 561: Advanced Computer Networks
http://www.cs.princeton.edu/courses/archive/fall14/cos561/
Holding the Internet Together
• Distributed cooperation for resource allocation
– BGP: what end-to-end paths to take (for ~50K ASes)
– TCP: what rate to send over each path (for ~3B hosts)
AS 2
AS 1
AS 3
AS 4
2
What Problem Does a Protocol Solve?
• BGP path selection
– Select a path that each AS on the path is willing to use
– Adapt path selection in the presence of failures
• TCP congestion control
– Prevent congestion collapse of the Internet
– Allocate bandwidth fairly and efficiently
• But, can we be more precise?
– Define mathematically what problem is being solved
– To understand the problem and analyze the protocol
– To predict the effects of changes in the system
– To design better protocols from first principles
3
Fairness
4
Fair and Efficient Use of a Resource
• Suppose n users share a single resource
–Like the bandwidth on a single link
–E.g., 3 users sharing a 30 Gbps link
• What is a fair allocation of bandwidth?
–Suppose user demand is “elastic” (i.e.,
unlimited)
–Allocate each a 1/n share (e.g., 10 Gbps each)
• But, “equality” is not enough
–Which allocation is best: [5, 5, 5] or [18, 6, 6]?
–[5, 5, 5] is more “fair”, but [18, 6, 6] more efficient5
–What about [5, 5, 5] vs. [22, 4, 4]?
Fair Use of a Single Resource
• What if some users have inelastic demand?
– E.g., 3 users where 1 user only wants 6 Gbps
– And the total link capacity is 30 Gbps
• Should we still do an “equal” allocation?
– E.g., [6, 6, 6]
– But that leaves 12 Gbps unused
• Should we allocate in proportion to demand?
– E.g., 1 user wants 6 Gbps, and 2 each want 20 Gbps
– Allocate [4, 13, 13]?
• Or, give the least demanding user all he wants?
– E.g., allocate [6, 12, 12]?
6
Max-Min Fairness
• The allocation must be “feasible”
– Total allocation should not exceed link capacity
• Protect the less fortunate
– Any attempt to increase the allocation of one user
– … necessarily decreases the allocation of another user
with equal or lower allocation
• Fully utilize a “bottlenecked” resource
– If demand exceeds capacity, the link is fully used
• Progressive filling algorithm
– Grow all rates until some users stop having demand
– Continue increasing all remaining rates till link is full
7
Resource Allocation Over Paths
B
A
Three users A, B, and C
Two 30 Gbps links
C
• Maximum throughput: [30, 30, 0]
– Total throughput of 60, but user C starves
• Max-min fairness: [15, 15, 15]
– Equal allocation, but throughput of just 45
• Proportional fairness: [20, 20, 10]
– Balance trade-off between throughput and equality
– Throughput of 50, and penalize C for using 2 busy links
8
Distributed Algorithm for
Achieving Fairness
9
Network Utility Maximization (NUM)
• Users (i)
– Rate allocation: xi
– Utility function: U(xi)
U(xi)
• Network links (l)
– Link capacity: cl
– Routes: Rli=1 if link l on path i,
Rli=0 otherwise
xi
maximize Si U(xi)
subject to Si Rlixi  cl
variables xi ≥ 0
10
Network Utility and Fairness
Alpha-fair utility
– U(x) = x1-a/(1-a) for a ≠ 1
– U(x) = log(x) for a = 1
concave
U(x)
(diminishing returns)
x
Max
Proportional
throughput fairness
0
1
Max-min
fairness
∞
small a
large a
(more elastic demand)
(more fair)
11
Solving NUM Problems
maximize Si U(xi)
subject to Si Rlixi  cl
variables xi ≥ 0
• Convex optimization
– Maximizing a concave objective
– Subject to convex constraints
• Benefits
– Locally optimal solution is globally optimal
– Can be solved efficiently on a centralized computer
• “Decomposable” into many smaller problems
12
Move Constraints to Objective
max Si U(xi)
subject to Si Rlixi  cl
variables xi ≥ 0
decoupled
across sessions
coupled across
sessions
max Si U(xi) + Sl pl (cl – Si in S(l) xi)
decoupled
across sessions
decoupled
across links
max Si [U(xi) – (Sl in L(i) pl ) xi] + Sl pl cl
13
Decomposition
offered link load
yl = S Rlixi
rates xi
Link l
User i
pl[t] = (pl[t-1]
- b (cl – yl))+
max (U(xi) – qi)
xi
prices pl
path cost
qi = S pl
14
Link Prices and Implicit Feedback
• What are the link prices pl?
– Measure of congestion
– Amount of traffic in excess of capacity
– That is, the packet loss!
• What are the path costs qi?
– Sum of the link prices pl along the path
– If loss is low, sum of link loss is roughly path loss
• No need for explicit feedback!
– User i can observe the path loss qi on path i
– Link l can observe the offered load yl on link l
15
Coming Back to TCP
• Reverse engineering
– TCP Reno
 Utilities are arctan(x)
 Prices are end-to-end packet loss
– TCP Vegas
 Utilities are log(x), i.e., proportional fairness
 Prices are end-to-end packet delays
• Forward engineering
– Use decomposition to design new variants of TCP
– E.g., TCP FAST
• Simplifications
– Fixed set of connections, focus on equilibrium behavior,
16
ignore feedback delays and queuing dynamics
TCP Congestion Control
17
Detecting and Reacting to Loss
• Detecting packet loss
– Timeout
– Triple duplicate ACK
• Reacting to loss
– Retransmit the lost packet
– Decrease the congestion window (how much?)
• Reacting to non-loss
– Increase the congestion window (how much?)
• Additive increase, multiplicative decrease
18
TCP Tahoe vs. TCP Reno
• Two similar versions of TCP
– TCP Tahoe (SIGCOMM’88 paper)
– TCP Reno (1990)
• TCP Tahoe
– Always repeat slow start after a loss
– Assign slow-start threshold to half of congestion window
• TCP Reno
– Repeat slow start after timeout-based loss
– Divide congestion window in half after triple dup ACK
19
TCP Sawtooth Behavior
Congestion
Window
timeout
triple dup ACK
t
20
Discussion
21
Download