cocoa: congestion control aware queuingbuffer-workshop.stanford.edu/slides/cocoa.pdf · cubic,...

Post on 02-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Cocoa: Congestion Control Aware Queuing

Maximilian Bachl, Tanja Zseby, Joachim FabiniTechnische Universitat Wien, Vienna, Austria

Introduction

“Bufferbloat”

If queues in routers/switches too small: UnderutilizationSolution: Make queues very large for maximumthroughput!New problem: Packets wait a long time (several seconds)in the queue: Bufferbloat

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 1

Introduction

CoDel Active Queue Management against Bufferbloat

Moving time window of 100 msQueuing Delay must be < 5 ms once in each windowOtherwise: Drop packet(s)

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 2

Introduction

Fair Queuing

Separate each flow in separate queueNo flow can “steal” bandwidthPopular implementation for Linux: fq

Static buffer size:Buffer often too large or too small

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 3

Introduction

Fair Queuing

Separate each flow in separate queueNo flow can “steal” bandwidthPopular implementation for Linux: fq

Static buffer size:Buffer often too large or too small

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 3

Introduction

fq codel Combining fair queuing with CoDel

State-of-the-artSeparate queuesEach queue managed by CoDelKeeps each flow’s queue < 5 msLinux implementation: fq codel

Inadequate interaction with Congestion Control:Cubic doesn’t achieve full throughput or keeps standing queue

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 4

Introduction

fq codel Combining fair queuing with CoDel

State-of-the-artSeparate queuesEach queue managed by CoDelKeeps each flow’s queue < 5 msLinux implementation: fq codel

Inadequate interaction with Congestion Control:Cubic doesn’t achieve full throughput or keeps standing queue

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 4

Concept

Buffer too large

BDP+bu�er sizepacket loss

standingqueue

optimal minimumwindow (BDP)

time

window (packets in �ight)

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 5

Concept

Buffer too small

BDP+bu�er sizepacket loss

under-utilized

link

optimal minimumwindow (BDP)

time

window (packets in �ight)

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 6

Concept

Measuring a flow’s congestion control

Get period between reductions of the congestion windowIf there’s a standing queue:

Reduce bufferIf the link was idle:

Increase buffer

→ Problem: How to get the interval between reductions of thecongestion window?

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 7

Concept

Measuring a flow’s congestion control

Get period between reductions of the congestion windowIf there’s a standing queue:

Reduce bufferIf the link was idle:

Increase buffer→ Problem: How to get the interval between reductions of thecongestion window?

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 7

Concept

Interval mechanism – Concept

1. Wait for previous longest interval between two packet lossestimes 0.5 and continue waiting until the next packet loss

2. Take longest interval between two packet losses sinceprevious longest interval ended

3. Adjust buffer accordingly4. Repeat

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 8

Concept

Interval mechanism – Illustration

packet loss

intervals

longest interval longest interval longest interval

guard interval guard interval guard interval

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 9

Concept

Parameters

Multiplier (default 1.25)Needed because of BBR, for Cubic and Reno 0.5 issufficient

Maximum buffer increase (default 2)Otherwise huge increase if link speed suddenly dramaticallyincreases

Maximum guard interval (default 1 s)Otherwise giant guard intervals possible and slowadaptation

→ Worked for all tested scenarios

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 10

Concept

Parameters

Multiplier (default 1.25)Needed because of BBR, for Cubic and Reno 0.5 issufficient

Maximum buffer increase (default 2)Otherwise huge increase if link speed suddenly dramaticallyincreases

Maximum guard interval (default 1 s)Otherwise giant guard intervals possible and slowadaptation

→ Worked for all tested scenarios

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 10

Evaluation

Setup

Implemented on LinuxExtension of the fq kernel moduleVirtual network with py-virtnet

All other queuing disciplines for comparison with defaultparameters

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 11

Evaluation

Cubic, fq with 20 Mbit/s, 10 ms

0 10 20 30 40 50 60Time [s]

10

15

20

Thro

ughp

ut [M

bit/

s]

0 10 20 30 40 50 60Time [s]

50

100

RTT

[ms]

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 12

Evaluation

Cubic, cocoa with 20 Mbit/s, 10 ms

0 10 20 30 40 50 60Time [s]

10

15

20

Thro

ughp

ut [M

bit/

s]

0 10 20 30 40 50 60Time [s]

20

40

60

RTT

[ms]

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 13

Evaluation

Cubic, cocoa with 20 Mbit/s, 10 ms

0 10 20 30 40 50 60Time [s]

20

30

40

Thro

ughp

ut [M

bit/

s]

0 10 20 30 40 50 60Time [s]

20

40

60

RTT

[ms]

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 14

Evaluation

Cubic, fq codel with 100 Mbit/s, 100 ms

0 50 100 150 200 250Time [s]

25

50

75

100

Thro

ughp

ut [M

bit/

s]

0 50 100 150 200 250Time [s]

100

120

140

RTT

[ms]

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 15

Evaluation

Cubic, cocoa with 100 Mbit/s, 100 ms

0 50 100 150 200 250Time [s]

25

50

75

100

Thro

ughp

ut [M

bit/

s]

0 50 100 150 200 250Time [s]

100

150

200

RTT

[ms]

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 16

Evaluation

BBR, cocoa with 50 Mbit/s, 10 ms

0 10 20 30 40 50 60Time [s]

20

30

40

Thro

ughp

ut [M

bit/

s]

0 10 20 30 40 50 60Time [s]

25

50

75

RTT

[ms]

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 17

Discussion

Conclusions

Throughput increase of ∼ 10% for Cubic and ∼ 25% forReno compared to fq codel and fq for high BDPconnectionsSame throughput and lower delay for low BDP connectionscocoa finds sweet spot of maximal throughput/minimalqueueEnvisioned deployment close to the Internet’s edge

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 18

Discussion

Outlook

Use previous flows’ optimal queue for initialization of newflows’ buffersMore thorough testing with real-world flowsReinforcement learning to fingerprint flows and adaptqueue dynamically using previously learned experience

December 3, 2019 Cocoa: Congestion Control Aware Queuing by Maximilian Bachl 19

Cocoa: Congestion Control Aware Queuing

Maximilian Bachl, maximilian.bachl@tuwien.ac.atTanja Zseby, tanja.zseby@tuwien.ac.atJoachim Fabini, joachim.fabini@tuwien.ac.atTechnische Universitat Wien, Vienna, Austria

top related