tcp siad: congestion control supporting low latency and
TRANSCRIPT
TCP SIAD: Congestion Control supporting
Low Latency and High Speed
Mirja Kรผhlewind <[email protected]>
IETF91 Honolulu ICCRG
Nov 11, 2014
Outline
โข Current Research Challengesโข Scalability in large BDP networksโข Low Latency Support In the Internetโข Per-User Fairness based on Congestion Policing
โข TCP SIAD: Algorithm Designโข Scalable Increaseโข Adaptive Decrease
โข Evaluationโข Comparison in Single Flow Scenarioโข Capacity Sharing
โข Conclusion and Outlook
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 2
Scalability
TCP NewRenoโข is limited by theoretical limits
of the network bit error rate
๐ต ๐ =1
๐ ๐๐
3
2๐
โข needs long time to allocate new capacitye.g. to raise from 5 to 10 Gbit/s with RTT 100ms and 1500 bytes packets โ more than 1h!
โ Most proposed schemes scale much better but still depend on the BDP!
Congestion control should
โข provide a fixed feedback rate independent of the link BDP
โข allocate quickly newly available bandwidth (under changing network conditions)
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 5
Low Latency Support
Todayโs Internet is mainly optimized for high through-put and low loss ratesโ Large buffers needed to provide sufficient space for TCP congestion control (worst case: BDP)
Link underutilization standing queue
โEnable operators to configure small buffers and keep utilization high!
Congestion control (cannot change the buffer configuration but) should
โข keep the link utilization high even if small buffers are configured
โข avoid a standing queue by emptying the buffers at every decrease
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 6
Per-User Congestion Policing
โข TCP-friendliness should not be a requirement for congestion control
โข Fairness should be enforce on a long-term per-user (not instantaneous per-flow) basisโข E.g. based on (Ingress) congestion policing using Congestion Exposure (ConEx)
โข Itโs okay to grab a larger share of the capacity (for a limited time) if needed
Congestion control should
โข provide an configuration knob to influence the amount of congestion
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 7
TCP SIAD: Design Goals
High Link Utilization independent of network buffer sizes
Avoid Standing Queue/Minimize Average Delay (however, still loss-based)
Speed-up for Bandwidth Allocation (under changing network conditions)
Fixed Feedback Rate independent of bandwidth (when self-congested)
Configurable Aggressiveness (when competing with other traffic)
can be used by a higher layer control loop to impact the capacity share at the cost of higher congestion, e.g. for applications that need a minimum rate
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 8
Additive Increase Multiplicative Decrease
Exponential Increase (Slow Start)๐๐ค๐๐ = ๐๐ค๐๐ + 1 [per ACK]
Additive Increase (Congestion Avoidance)
๐๐ค๐๐ = ๐๐ค๐๐ +๐ผ
๐๐ค๐๐[per ACK]
for TPC NewReno: ฮฑ = 1
Multiplicative Decrease (Fast Recovery)๐๐ค๐๐ = ๐ฝ ๐๐ค๐๐ [on congestion event]
for TCP NewReno: ๐ฝ = 0.5
congestion window: ๐๐ค๐๐ [pkts]
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 9
Scalable Increase Adaptive Decrease (SIAD)
buffer size of one BDP smaller buffer
โข Adaptive Decrease adapts decrease factor ๐ฝ to queue size
โข Scalable Increase recalculates ๐ผ to realize fixed feedback rate
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 10
Algorithm Design: SIAD
Scalable Increase (SI)
to receive the congestion feedback with a constant rate of ๐๐ข๐๐ ๐๐ RTTs
๐ผ =๐๐๐๐กโ๐๐๐ โ โ ๐ ๐ ๐กโ๐๐๐ โ
๐๐ข๐๐ ๐๐, 1 < ๐ผ < ๐ ๐ ๐กโ๐๐๐ โ
Adaptive Decrease (AD)
to empty queue without causing underutilization or a standing queue
๐๐ค๐๐ โ๐ ๐๐๐๐๐
๐ ๐๐๐ถ๐ข๐๐๐๐ค๐๐๐๐๐ฅ โ 1 , ๐๐ค๐๐ โฅ 2 [on congestion notification]
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 11
Algorithm Design: Further Components
โข Additional Decreases during congestion epoch
to drain the queue
โข Fast Increase phase above Linear Increment threshold ๐๐๐๐กโ๐๐๐ โ
to quickly allocate new bandwidth
โข Trend calculation of ๐๐ค๐๐๐๐๐ฅ
to improve convergence
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 12
Scalable Increase (1)
1. Adapt ๐๐ค๐๐ as congestion event occurred about one RTT ago
๐๐ค๐๐๐๐๐ฅ = ๐๐ค๐๐ โ
๐๐ค๐๐
2๐๐ค๐๐
3
๐๐๐๐กโ๐๐๐ โโ๐ ๐ ๐กโ๐๐๐ โ
๐๐ข๐๐ ๐๐๐ผ
2
๐ผ
if ๐ผ < ๐๐ค๐๐ โช ๐๐ค๐๐ โค ๐ ๐ ๐กโ๐๐๐ โ
if ๐๐ค๐๐ โฅ๐๐๐ ๐กโ๐๐๐ โ โฉ ๐ผ =๐๐ค๐๐2
if ๐๐ค๐๐ โฅ ๐๐๐ ๐กโ๐๐๐ โ โฉ ๐ผ = 1
if ๐๐ค๐๐ > ๐๐๐๐กโ๐๐๐ โ
else
2. Trend calculation๐ก๐๐๐๐ = ๐๐ค๐๐๐๐๐ฅ โ ๐๐๐๐ฃ_๐๐ค๐๐๐๐๐ฅ
๐๐๐๐ฃ_๐๐ค๐๐๐๐๐ฅ: maximum congestion window of previous congestion event
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 13
Scalable Increase (2)
3. Linear Increment threshold
๐๐๐๐กโ๐๐๐ โ = ๐๐ค๐๐๐๐๐ฅ + ๐ก๐๐๐๐, ๐๐๐๐กโ๐๐๐ โ โฅ ๐ ๐ ๐กโ๐๐๐ โ
4. Adaption of ๐ถ
๐ผ =๐๐๐๐กโ๐๐๐ โ โ ๐ ๐ ๐กโ๐๐๐ โ
๐๐ข๐๐ ๐๐, 1 < ๐ผ < ๐ ๐ ๐กโ๐๐๐ โ
๐ ๐ ๐กโ๐๐๐ โ: Slow Start threshold (= congestion window after reduction)๐๐๐๐กโ๐๐๐ โ: Linear Increment threshold (see previous slide)๐๐ข๐๐ ๐๐: configuration parameter for number of RTT between two congestion events
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 14
Scalable Increase (3)
Linear Increment phase
๐๐ค๐๐ = ๐๐ค๐๐ +๐ผ
๐๐ค๐๐[per ACK]
Fast Increase phase (if ๐๐ค๐๐ โฅ ๐๐๐๐กโ๐๐๐ โ)
1. Reset increase factor ๐ผ to 1
2. Double increase factor ๐ผ per RTT
๐ผ = ๐ผ +๐ผ
๐๐ค๐๐, ๐ผ โฅ
๐๐ค๐๐
2[per ACK]
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 15
Adaptive Decrease (1)
Backlogged packets in queue (see Vegas, Compound, H-TCP...)
๐ =๐ ๐๐ ๐ก โ ๐ ๐๐๐๐๐
๐ ๐๐(๐ก)๐๐ค๐๐
Adaptive Decrease
๐ฝ =๐ ๐๐๐๐๐
๐ ๐๐๐๐ข๐๐
๐๐ค๐๐ โ ๐ฝ ๐๐ค๐๐๐๐๐ฅ โ 1 , ๐๐ค๐๐ โฅ 2 [on congestion]
โ only drains queue if all competing flow are synchronized
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 16
Adaptive Decrease (2)
Additional Decrease (if minimum RTT cannot be observed after one RTT)
1. ๐๐ค๐๐ =๐ ๐๐๐๐๐
๐ ๐๐๐๐ข๐๐๐ ๐ ๐กโ๐๐๐ โ โ 1
2. ๐๐ค๐๐ โ ๐๐ค๐๐ โmax(๐๐๐, ๐ผ๐๐๐ค)
๐๐๐ = ๐๐ค๐๐1
๐๐ข๐๐ ๐๐ โ ๐๐๐_๐๐๐ก
๐ผ๐๐๐ค =๐๐๐๐กโ๐๐๐ โ โ ๐๐ค๐๐
๐๐ข๐๐ ๐๐ โ ๐๐๐๐๐๐ก โ 1
๐๐๐_๐๐๐ก: number of additional decrease that have already been performed
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 17
Simulation Setup
โข Event-driven network simulator IKR SimLib with integration for virtual machines IKR VMSimInt (http://www.ikr.uni-stuttgart.de/IKRSimLib/Download/)
โข Implementation in Linux kernel 3.5.7 (default ๐๐ข๐๐ ๐๐ = 20)
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 18
TCP SIADโs Congestion Window Development
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 19
0.5 BDP buffering 10 Mbit/s
Single Flow on 10 Mbit/s link
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 20
โTCP SIAD always fully utilizes link + has average queue fill of 0.5
Single Flow with 0.5 BDP buffering
โTCP SIAD induces fixed feedback rate independent of link bandwidth
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 21
TCP SIADโs Capacity Sharing
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 22
20 Mbit/s, 0.5 BDP buffer 10 Mbit/s, 1 BDP buffer
Conclusion and Outlook
TCP SIAD providesโข high link utilization with small buffer and standing queue avoidanceโข configurable fixed feedback rate
โ Allows network operators to configure small buffers (or low marking
thresholds) and maintain high utilization!
Next
โข TCP SIAD and ECN
โข SimpleSIAD
โข Higher layer control loop for e.g. real-time video
11/11/2014 M. Kรผhlewind - TCP SIAD @ IETF91 Honolulu ICCRG 23