tcp siad: congestion control supporting low latency and

21
TCP SIAD: Congestion Control supporting Low Latency and High Speed Mirja Kรผhlewind <[email protected]> IETF91 Honolulu ICCRG Nov 11, 2014

Upload: others

Post on 05-Apr-2022

3 views

Category:

Documents


0 download

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