Congestion Control for BIG FAT Pipes

advertisement
Presentation by Joe Szymanski
For Upper Layer Protocols
April 13, 2015
What is a big fat pipe?
 High bandwidth-delay product
 What is the unit of measure?

Bits per seconds times seconds results in bits?
 Bandwidth-delay product is max bits “in flight”
Data 4
6
27531
1 bps
Delay = 6 seconds
Why are big fat pipes special?
 Two parts to bandwidth-delay
 Bandwidth  high speed
 Delay
 Each requires special considerations with regards to
congestion control
The effects of high speed
 During steady data transfer:
1.5
Max _ Throughput
ppr
packet_ error _ rate
 What error rate is needed to reach a given throughput?
 For packet size = 1500 bytes and RTT = 100 ms:
1500 bytes  8bits _ per _ byte
1 ppr 
 1.2 10 5 bps
0.1s
 To reach a throughput of 10 Gbps:
1010 
1.5
1.2 105
p
p  2 1010
Other difficulties for high speed
 Packet loss rate creates a limit to max window size
 How long to reach max throughput in slow start?
 For a 10Gbps link, it takes a windows size of 83,333
packets and 17 RTTs
 Recovery from consecutive timeouts
 Two consecutive timeouts  ?


First timeout  ssthresh = cwnd/2, cwnd = 1 MSS
Second timeout  ssthresh = 2 MSS, cwnd = 1 MSS
 To reach 10Gbps again, it takes 83,332 RTTs
What about high delay?
 High delay means lots of bits are in flight at once
 A single loss takes just over 1 RTT to be detected
 2 × bandwidth-delay product bits are sent between loss
and detection of loss
 All of these bits potentially need to be retransmitted
 What can fix this?
 SACK with selective repeat
Proposed Solutions
 High Speed TCP
 Proposed by Sally Floyd

The ICSI Center for Internet Research
 Once the congestion window reaches a threshold, a new
function is used for window increases and decreases
 H-TCP
 Proposed by D. Leith and R. Shorten

Hamilton Institute, NUI Maynooth
 Changes the values for additive increase and
multiplicative decrease based on congestion
High Speed TCP (Floyd)
 While packet drop rate p < 0.0015 (or while congestion
window < 31), use standard TCP rules
 Otherwise, increase/decrease the congestion window
by a function of the current congestion window
 If Wi is the current congestion window, let Wi+1  f(Wi)
 Different functions are used for increase and decrease of
the congestion window
High Speed TCP (Floyd) (cont’d)
 Through a lot of math based on the chosen packet
drop rate and the required throughput, the following
are given for a (the function for increasing the cwnd)
and b (the function for decreasing the cwnd)
 w is the current congestion window (in packets)
 W is the threshold to use the new equations
 W1 is the required final throughput
 B = b(W1)
2
w  2.0  b( w)  p(w)
a(w) 
2.0  b(w)
log(w)  log(W )
b( w)  ( B  0.5)
 0.5
log(W1 )  log(W )
HTCP (Leith, Shorten)
 Using an analysis of drop-tail networks, it is shown
that a TCP friendly congestion control scheme must
have the following:
 Let α be the additive increase factor
 Let β be the multiplicative decrease factor
 α = 2(1 - β)
 Highest throughput can be achieved by setting
 α must be calculated
as in the above equation
RTTmin

RTTmax
HTCP (Leith, Shorten) (cont’d)
 For each ACK, set α as a factor of the time since the last
congestion event
 If the last event was recently, set δ = 1

This corresponds to standard TCP congestion control
 Otherwise, set δ = f(t), where f is a function of t, the
time since the last congestion event
 Set α = 2(1 – β)δ to maintain TCP friendliness
 For each congestion event, set β = RTTmin / RTTmax
 There are functions that can be used that avoid direct
calculations on RTTmin and RTTmax
Implementation
 Change SCTP stack to allow for congestion control
modules
 Implement and test an HTCP module
 Standard test cases:
 Loss rates of 0%, 5%, and 10%
 For more details, contact me later
Results, 0% loss
Standard
HTCP
Results, 5% loss
Standard
HTCP
Results, 10% loss
HTCP
Standard
What happened?
 HTCP performed worse than standard congestion
control in high loss cases
 Why?
 HTCP only performed slightly better than standard
congestion control otherwise
 What changes can be made to increase performance?
 Remove some of the multiplicative decrease
Results, 0% loss
HTCP
Standard
HTCP (Modified)
Results, 5% loss
Standard
HTCP
HTCP (Modified)
Results, all cases
Don’t panic!
I’ll show you what
each line means.
What’s wrong with the modification?
 Is the modified HTCP algorithm TCP friendly?
 Will the modified HTCP algorithm work well on a link
that is used by multiple TCP streams?
Download