pcc vivace: online-learning congestion control · pcc design challenges r1 r2 u1 u2 u1> u2? pcc...

33
PCC Vivace: Online-Learning Congestion Control Mo Dong 1 , Tong Meng 1 , Doron Zarchy 2 , Engin Arslan 3 , Yossi Gilad 4 , P. Brighten Godfrey 1 , Michael Schapira 2 1 UIUC, 2 Hebrew University of Jerusalem, 3 University of Nevada, Reno, 4 MIT

Upload: others

Post on 26-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace: Online-Learning Congestion Control

Mo Dong1, Tong Meng1, Doron Zarchy2, Engin Arslan3, Yossi Gilad4,P. Brighten Godfrey1, Michael Schapira2

1 UIUC, 2 Hebrew University of Jerusalem, 3 University of Nevada, Reno, 4 MIT

Page 2: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Internet Congestion Control

PCC Vivace: Online-Learning Congestion Control 2

Reno

New Reno

Vegas

IllinoisCUBIC

Westwood

H-TCP

FASTHyblaCompound

BIC

Remy

PCC

BBR

[Winstein et al. SIGCOMM13]• Offline-optimization• Generated TCP

[Dong et al. NSDI15]• Utility framework• Online learning

[Cardwell et al. Queue 2016]• Bottleneck bandwidth probing• Minimum RTT probing

Liverpool 2:1 Man City

Roma 3:0 Barcelona

Page 3: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Internet Congestion Control

Data Packets

ACKs

When is a packet sentWhether a packet is lostWhen is a packet acked

Assumptions on

Network

Change Sending Rate

PCC Vivace: Online-Learning Congestion Control 3

Packet loss / RTT increment indicates congestion

Page 4: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Internet Congestion Control

Random loss

Shallow buffer

Self-induced congestion

Congestion fromother heavy flows

PCC Vivace: Online-Learning Congestion Control 4

Page 5: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Strong Assumptions Cause Problem

PCC Vivace: Online-Learning Congestion Control 5

Packet loss

Decrease rate a lot

Maintain rate

Decrease rate slightly

Maybe even increase rate

Abstract assumption cannot capture Internet complexity

Self-induced congestion

Congestion fromother heavy flows Shallow buffer

Random loss

Underlying cause Best response

Page 6: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Utility Framework

Sending rate r

Internet

SACKThroughput

Loss rate…

Utilityf(tpt, loss, etc.)

PCC Vivace: Online-Learning Congestion Control 6

Page 7: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Rate Control

r1

r2

u1

u2

u1 > u2?

Move to r1

Move to r2

PCC Vivace: Online-Learning Congestion Control 7

Sender selfishly maximizes its own utility(online learning in non-cooperative game)

(Causal relation)

Internet

(Online learning)

Page 8: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Design Challenges

r1

r2

u1

u2

u1 > u2?

PCC Vivace: Online-Learning Congestion Control 8

utility function Rate control algorithm

- Capture application performance objectives

- Guarantee equilibrium with multiple competing senders

- Guarantee reaching equilibrium upon convergence

- Rapidly adapt to network dynamics

Requirements for consistently high performance:

Page 9: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Allegro

Loss-based utility function

Heuristic rate control

Fixed rate change step size

No latency-awarenessCan cause bufferbloat

Slow convergenceSlow reaction to network changes

[Dong et al. NSDI 2015]

PCC Vivace: Online-Learning Congestion Control 9

Page 10: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace: Online-Learning Congestion Control 10

RTT / loss keeps increasing!

Overshoot leads to RTT inflation and loss!

r1 C r2

r1 C r2

(Small step size)

(Large step size)

Page 11: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

• Leveraging powerful tools from online learning theory

PCC Vivace

PCC Vivace: Online-Learning Congestion Control 11

New utility function framework- Latency-awareness- Strictly concave ⇒ Equilibrium guarantee- Flexibility among senders

New control algorithm- Gradient-ascent ⇒ Convergence speed/stability- Deals with measurement noise

Page 12: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace

Strictly concave utility function

PCC Vivace: Online-Learning Congestion Control 12

No latency inflation upon convergence if

Tolerate p-random-loss if

Strict socially concave gameUnique convergence equilibrium

Page 13: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace

PCC Vivace: Online-Learning Congestion Control 13

Sendingrate

Observedutility

xx-δ x+δ

?

Techniques to deal with measurement noise:

- Linear regression- RTT gradient low-pass filter- Double check

Gradient-ascentrate control

Page 14: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace: Online-Learning Congestion Control 14

Large utility gradient

Small utility gradient

r1 C r2

Page 15: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace

PCC Vivace: Online-Learning Congestion Control 15

"No-regret" guarantee:A Powerful lens for analysis

Strictly concave utility function

Gradient-ascentrate control

Page 16: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

• Implementation• UDT-based user-space implementation• Emulab experiments, Amazon EC2 experiments• User-space PCC proxy for video streaming

• Protocols for comparison• TCP variants (TCP CUBIC, TCP Illinois, TCP Vegas, etc.)• BBR• PCC Allegro• PCC Vivace

Evaluation

PCC Vivace: Online-Learning Congestion Control 16

Page 17: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

• Latency awareness (100Mbps, 30ms RTT Emulab bottleneck link)

Vivace Utility Performance

PCC Vivace: Online-Learning Congestion Control 17

0

20

40

60

80

100

0 300 600 900

RTT

Infla

tion

Ratio

(%)

Buffer Size (KB)

PCC VivacePCC AllegroBBRTCP CUBICTCP Illinois

< 2ms inflation in all cases90% smaller than BBR under 2BDP

Page 18: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

• Rapid reaction to network changes (10-100Mbps, 10-100ms RTT, 0-1% random loss)

Vivace Rate Control Performance

PCC Vivace: Online-Learning Congestion Control 18

0

20

40

60

80

100

100 120 140 160 180 200

Send

ing

Rate

(Mbp

s)

Time (sec)

Slow reaction upon RTT surge

Cannot resist random loss

Less Packet LossesTCP CUBIC

BBR

PCC Allegro PCC Vivace

Page 19: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

• Fair equilibrium (100Mbps, 30ms RTT, 75KB buffer)

Vivace upon Convergence

PCC Vivace: Online-Learning Congestion Control 19

PCC Vivace

BBR CUBIC

PCC Allegro-LatencyFast convergence to fair share with high stability

Page 20: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

TCP Friendliness

PCC Vivace: Online-Learning Congestion Control 20

Per-flow shareBBR not friendly with small buffer

BBR keeps grabbing 50%

bandwidth

RTT gradient à 0,stops being over

friendly

Page 21: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Insights from Learning-Theoretic Tools

• Flexible equilibrium state with heterogeneous senders

PCC Vivace: Online-Learning Congestion Control 21

Page 22: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Limitation in Extremely Dynamic Networks

PCC Vivace: Online-Learning Congestion Control 22

• LTE (Mahimahi emulator [Netravali et al. ATC 2015])

LowThroughput

Page 23: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace: Online-Learning Congestion Control 23

https://www.youtube.com/watch?v=Y3IzuCdwdUo&t=27s(Demo comparing PCC with UDP and TCP video streaming)

Page 24: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC In Action

• Open source release on GitHub (https://github.com/pccproject)• UDP implementation used in experiments presented here• QUIC implementation with Google• Pantheon implementation for test purpose• Kernel implementation in the works

• VACC variant of PCC by and• Kernel implementation with optimizations for video over LTE• Ongoing research project with successful field tests

PCC Vivace: Online-Learning Congestion Control 24

Page 25: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Conclusion

• PCC Vivace: Leveraging no-regret learning for congestion control• Consistent high performance as PCC Allegro• Latency awareness, mitigated bufferbloat (latency inflation, congestion

loss)• Provably fair, yet also flexible equilibrium convergence• Fast and stable convergence, even with changing network conditions• Improved TCP friendliness, safer to deploy

• Thanks for generous project support

PCC Vivace: Online-Learning Congestion Control 25

Page 26: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Thanks!

Page 27: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace

Heuristic rate control

PCC Vivace: Online-Learning Congestion Control 27

Gradient-ascent

Sendingrate

Observedutility

xx-δ x+δ

?

Page 28: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

PCC Vivace

Loss-based utility function

Heuristic rate control

PCC Vivace: Online-Learning Congestion Control 28

Strictly concave Gradient-ascent

Linear regressionLow pass filter (> 0.01)

L(x+δ) = 0.01% L(x-δ) = 2.0%Double check

Page 29: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

• Latency awareness (100Mbps, 30ms RTT Emulab bottleneck link)

Vivace Utility Performance

PCC Vivace: Online-Learning Congestion Control 29

0

5

10

15

20

25

0 50 100 150

Pack

et L

oss

Rate

(%)

Buffer Size (KB)

PCC VivacePCC AllegroBBRTCP CUBICTCP Illinois

< 0.5% loss with 13.5KB buffer55% smaller than TCP CUBIC

Page 30: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

• Convergence Speed/Stability Tradeoff (100Mbps, 30ms RTT, 75KB buffer)

Vivace Rate Control Performance

PCC Vivace: Online-Learning Congestion Control 30

Page 31: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Insights from No-Regret Guarantee

• Random loss tolerance vs. Congestion loss (8Mbps, 25KB per-flow share)

PCC Vivace: Online-Learning Congestion Control 31

~15%

~ 5%

Page 32: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Performance in Real-World

PCC Vivace: Online-Learning Congestion Control 32

11.6% median gain over BBR

3.7x median gain over CUBIC

Page 33: PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC Vivace: Online-Learning Congestion Control 8 utility function Rate control algorithm-Capture

Limitation of No-Regret

PCC Vivace: Online-Learning Congestion Control 33

“Sender's choices of rates are asymptotically (across time) no worse, utility-wise, than sending at what would have been (in hindsight) the best fixed rate”

Still make sense in highly dynamic environment?