PCC Vivace: Online-Learning Congestion Control · PCC Design Challenges r1 r2 u1 u2 u1> u2? PCC...

Preview:

Citation preview

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

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

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

Internet Congestion Control

Random loss

Shallow buffer

Self-induced congestion

Congestion fromother heavy flows

PCC Vivace: Online-Learning Congestion Control 4

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

PCC Utility Framework

Sending rate r

Internet

SACKThroughput

Loss rate…

Utilityf(tpt, loss, etc.)

PCC Vivace: Online-Learning Congestion Control 6

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)

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:

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

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)

• 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

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

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

PCC Vivace: Online-Learning Congestion Control 14

Large utility gradient

Small utility gradient

r1 C r2

PCC Vivace

PCC Vivace: Online-Learning Congestion Control 15

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

Strictly concave utility function

Gradient-ascentrate control

• 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

• 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

• 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

• 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

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

Insights from Learning-Theoretic Tools

• Flexible equilibrium state with heterogeneous senders

PCC Vivace: Online-Learning Congestion Control 21

Limitation in Extremely Dynamic Networks

PCC Vivace: Online-Learning Congestion Control 22

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

LowThroughput

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)

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

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

Thanks!

PCC Vivace

Heuristic rate control

PCC Vivace: Online-Learning Congestion Control 27

Gradient-ascent

Sendingrate

Observedutility

xx-δ x+δ

?

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

• 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

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

Vivace Rate Control Performance

PCC Vivace: Online-Learning Congestion Control 30

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%

Performance in Real-World

PCC Vivace: Online-Learning Congestion Control 32

11.6% median gain over BBR

3.7x median gain over CUBIC

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?

Recommended