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?