Cocoa: Congestion Control Aware Queuing Maximilian Bachl, Tanja - - PowerPoint PPT Presentation

cocoa congestion control aware queuing
SMART_READER_LITE
LIVE PREVIEW

Cocoa: Congestion Control Aware Queuing Maximilian Bachl, Tanja - - PowerPoint PPT Presentation

Cocoa: Congestion Control Aware Queuing Maximilian Bachl, Tanja Zseby, Joachim Fabini Technische Universit at Wien, Vienna, Austria Introduction Bufferbloat If queues in routers/switches too small: Underutilization Solution: Make queues


slide-1
SLIDE 1

Cocoa: Congestion Control Aware Queuing

Maximilian Bachl, Tanja Zseby, Joachim Fabini

Technische Universit¨ at Wien, Vienna, Austria

slide-2
SLIDE 2

Introduction

“Bufferbloat”

If queues in routers/switches too small: Underutilization Solution: Make queues very large for maximum throughput! 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

slide-3
SLIDE 3

Introduction

CoDel

Active Queue Management against Bufferbloat

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

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

slide-4
SLIDE 4

Introduction

Fair Queuing

Separate each flow in separate queue No flow can “steal” bandwidth Popular implementation for Linux: fq

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

slide-5
SLIDE 5

Introduction

Fair Queuing

Separate each flow in separate queue No flow can “steal” bandwidth Popular 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

slide-6
SLIDE 6

Introduction

fq codel

Combining fair queuing with CoDel

State-of-the-art Separate queues Each queue managed by CoDel Keeps each flow’s queue < 5 ms Linux implementation: fq codel

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

slide-7
SLIDE 7

Introduction

fq codel

Combining fair queuing with CoDel

State-of-the-art Separate queues Each queue managed by CoDel Keeps each flow’s queue < 5 ms Linux 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

slide-8
SLIDE 8

Concept

Buffer too large

BDP+ buffer size packet loss standing queue

  • ptimal minimum

window (BDP) time window (packets in flight)

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

slide-9
SLIDE 9

Concept

Buffer too small

BDP+ buffer size packet loss under- utilized link

  • ptimal minimum

window (BDP)

time window (packets in flight)

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

slide-10
SLIDE 10

Concept

Measuring a flow’s congestion control

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

Reduce buffer

If the link was idle:

Increase buffer

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

slide-11
SLIDE 11

Concept

Measuring a flow’s congestion control

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

Reduce buffer

If the link was idle:

Increase buffer

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

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

slide-12
SLIDE 12

Concept

Interval mechanism – Concept

  • 1. Wait for previous longest interval between two packet losses

times 0.5 and continue waiting until the next packet loss

  • 2. Take longest interval between two packet losses since

previous longest interval ended

  • 3. Adjust buffer accordingly
  • 4. Repeat

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

Concept

Parameters

Multiplier (default 1.25)

Needed because of BBR, for Cubic and Reno 0.5 is sufficient

Maximum buffer increase (default 2)

Otherwise huge increase if link speed suddenly dramatically increases

Maximum guard interval (default 1 s)

Otherwise giant guard intervals possible and slow adaptation

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

slide-15
SLIDE 15

Concept

Parameters

Multiplier (default 1.25)

Needed because of BBR, for Cubic and Reno 0.5 is sufficient

Maximum buffer increase (default 2)

Otherwise huge increase if link speed suddenly dramatically increases

Maximum guard interval (default 1 s)

Otherwise giant guard intervals possible and slow adaptation

→ Worked for all tested scenarios

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

slide-16
SLIDE 16

Evaluation

Setup

Implemented on Linux Extension of the fq kernel module Virtual network with py-virtnet All other queuing disciplines for comparison with default parameters

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

slide-17
SLIDE 17

Evaluation

Cubic, fq with 20 Mbit/s, 10 ms

10 20 30 40 50 60 Time [s] 10 15 20 Throughput [Mbit/s] 10 20 30 40 50 60 Time [s] 50 100 RTT [ms]

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

slide-18
SLIDE 18

Evaluation

Cubic, cocoa with 20 Mbit/s, 10 ms

10 20 30 40 50 60 Time [s] 10 15 20 Throughput [Mbit/s] 10 20 30 40 50 60 Time [s] 20 40 60 RTT [ms]

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

slide-19
SLIDE 19

Evaluation

Cubic, cocoa with 20 Mbit/s, 10 ms

10 20 30 40 50 60 Time [s] 20 30 40 Throughput [Mbit/s] 10 20 30 40 50 60 Time [s] 20 40 60 RTT [ms]

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

slide-20
SLIDE 20

Evaluation

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

50 100 150 200 250 Time [s] 25 50 75 100 Throughput [Mbit/s] 50 100 150 200 250 Time [s] 100 120 140 RTT [ms]

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

slide-21
SLIDE 21

Evaluation

Cubic, cocoa with 100 Mbit/s, 100 ms

50 100 150 200 250 Time [s] 25 50 75 100 Throughput [Mbit/s] 50 100 150 200 250 Time [s] 100 150 200 RTT [ms]

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

slide-22
SLIDE 22

Evaluation

BBR, cocoa with 50 Mbit/s, 10 ms

10 20 30 40 50 60 Time [s] 20 30 40 Throughput [Mbit/s] 10 20 30 40 50 60 Time [s] 25 50 75 RTT [ms]

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

slide-23
SLIDE 23

Discussion

Conclusions

Throughput increase of ∼ 10% for Cubic and ∼ 25% for Reno compared to fq codel and fq for high BDP connections Same throughput and lower delay for low BDP connections cocoa finds sweet spot of maximal throughput/minimal queue Envisioned deployment close to the Internet’s edge

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

slide-24
SLIDE 24

Discussion

Outlook

Use previous flows’ optimal queue for initialization of new flows’ buffers More thorough testing with real-world flows Reinforcement learning to fingerprint flows and adapt queue dynamically using previously learned experience

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

slide-25
SLIDE 25

Cocoa: Congestion Control Aware Queuing

Maximilian Bachl, maximilian.bachl@tuwien.ac.at Tanja Zseby, tanja.zseby@tuwien.ac.at Joachim Fabini, joachim.fabini@tuwien.ac.at

Technische Universit¨ at Wien, Vienna, Austria