cocoa: congestion control aware queuingbuffer-workshop.stanford.edu/slides/cocoa.pdf · cubic,...
Post on 02-Aug-2020
0 Views
Preview:
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