RESTRUCTURING ENDPOINT CONGESTION CONTROL Akshay Narayan, Frank Cangialosi, Deep5 Raghavan, Prateesh Goyal, Srinivas Narayana, Radhika Mi>al, Mohammad Alizadeh, Hari Balakrishnan
CONGESTION CONTROL APPLICATION Data OS TCP Data NETWORK
DATAPATHS APPLICATION Data SMARTNIC MTCP OS TCP RDMA UDP QUIC DCCP FPGA DPDK Data NETWORK
NEW ALGORITHMS Nimbus Indigo Vivace DCTCP RC3 ABC XCP RCP H-TCP FAST LEDBAT NV BBR Vegas Veno Hybla Illinois Remy PCC Copa Reno EBCC Westwood Compound Sprout TIMELY Tahoe NewReno Binomial BIC Cubic PRR DCQCN 1987 1998 2001 2010 2018
ALGORITHM COMPLEXITY Sprout (NSDI 2013): Bayesian forecas5ng Remy (SIGCOMM 2013): Offline learning PCC / PCC Vivace (NSDI 2015 / NSDI 2018): Online learning Indigo (Usenix ATC 2018): Reinforcement learning
CROSS PRODUCT OF SADNESS [ ] [] OS TCP H-TCP Veno Hybla USERSPACE TIMELY XCP Westwood RDMA Compound Sprout EBCC BIC Cubic PRR Binomial Nimbus × SMARTNIC FPGA DCQCN Reno Vegas Indigo Tahoe NewReno Vivace MTCP DPDK RCP DCTCP RC3 ABC FAST LEDBAT NV BBR QUIC Illinois Remy PCC Copa DCCP
CROSS PRODUCT OF SADNESS
NEW CAPABILITIES APPLICATION APPLICATION CC CC CC CC CC CC INDEPENDENT CC AGGREGATE CC
CURRENT DESIGN ApplicaEon TX RX CongesEon Control Datapath State Datapath NIC
CONGESTION CONTROL PLANE ApplicaEon CCP Agent TX RX CCP Datapath Datapath State Datapath NIC
CONGESTION CONTROL PLANE Write-once, Sophis5cated New run-anywhere algorithms capabili5es ApplicaEon CCP Agent TX RX CCP Datapath Datapath State Datapath NIC
LATENCY TRADEOFF Write-once, Sophis5cated New run-anywhere algorithms capabili5es ApplicaEon CCP Agent TX RX Latency ( < 30 µs) CCP Datapath Datapath State Datapath NIC
SPLIT IMPLEMENTATION Split CC performs similarly to datapath-na5ve ApplicaEon Asynchronous CC CCP Agent TX RX Logic Synchronous Measurement CCP Datapath Gathering Datapath State CWND StaEsEcs Datapath RATE NIC
SPLIT IMPLEMENTATION ApplicaEon CCP Agent TX RX Standardized CCP Datapath Datapath Interface Datapath State CWND StaEsEcs Datapath RATE NIC
MEASUREMENT PRIMITIVES Measurement timestamp In-order acked bytes Out-of-order acked bytes ECN-marked bytes Lost bytes Timeout occurred RTT sample Bytes in flight Outgoing rate Incoming rate
Demo
Linux Kernel BBR
CCP BBR
CUBIC WINDOW DYNAMICS CCP Kernel Congestion Window (Pkts) 600 400 200 0 20 40 60 Time (s) 96 Mbit/s, 20ms link RTT
WRITE-ONCE RUN-ANYWHERE Kernel QUIC mTCP Copa Link: 12 Mbit/s, 20ms RTT Cubic Link: 24 Mbit/s, 20ms RTT
STRESS TEST 5% cubic reno CPU Utilization (%) 7.5 ccp 5.0 kernel 2.5 0.0 1 2 4 8 16 32 64 1 2 4 8 16 32 64 Flows Link: 10Gbit/s, 100µs RTT
LOW-RTT SCENARIOS 1.25 1.15 RCT/Baseline 1.00 10Pkts 0.75 100Pkts 0.50 1000Pkts 0.25 0.00 20us 50us 100us 200us 300us 400us 500us 2RTT 5RTT 10RTT 20RTT 30RTT 40RTT 50RTT Reporting Interval Link: 10Gbit/s, 10 µs
DESIGN: FAST AND SLOW PATH ApplicaEon Asynchronous CCP Agent TX RX API CCP Datapath Shim Datapath State CWND StaEsEcs Datapath RATE NIC
SPLIT IMPLEMENTATION ApplicaEon CCP Agent TX RX libccp CCP Datapath Shim Datapath State Datapath Datapath shim NIC Expose datapath variables
SPLIT IMPLEMENTATION libccp Per Packet Opera5ons Shared across datapaths ApplicaEon CCP Agent TX RX libccp CCP Datapath Shim Datapath State Datapath Datapath shim NIC Expose datapath variables
BBR SPLIT IMPLEMENTATION Asynchronous: Datapath Program: ▸ Per ACK measurements ▸ Every report ▸ Pulse: ▸ Calculate new rate based Rate = 1.25 x bo>le rate on measurements ▸ Aeer 1 RTT: ▸ Handle switching between modes Rate = 0.75 x bo>le rate ▸ Aeer 2 RTT: Rate = bo>le rate ▸ Aeer 8 RTT: repeat Asynchronous Datapath Program
SLOW START Congestion Window (Pkts) CCP , 100ms Report 600 CCP , In − Fold CCP , Rate − Based 400 In − Datapath 200 0 0.0 0.2 0.4 0.6 Time (s) 48Mbit/s, 100ms link RTT
NEW CAPABILITIES Sophis5cated algorithms Rapid prototyping CC for flow aggregates Applica5on-integrated CC Dynamic, path-specific CC
NEXT STEPS CURRENT STATUS ▸ Datapaths (libccp): ▸ More algorithms! ▸ Linux TCP ▸ Hardware datapaths ▸ QUIC ▸ Impact of new API on conges5on control algorithms ▸ mTCP/DPDK ▸ New capabili5es using CCP ▸ CCP Agent (portus) plajorm Reproduce our results and build your own conges5on control at github.com/ccp-project
Extra Slides
EBPF Front-End Back-End (Language) (Datapath) ▸ Event-driven seman5cs ▸ Conges5on control enforcement ▸ Explicit repor5ng model ▸ Direct access to socket state (def (Report (acked 0))) (when true (:= Report.acked (+ Report.acked Ack.bytes_acked)) (:= Cwnd (+ Cwnd Report.acked)) (fallthrough)) (when (> Flow.lost_pkts_sample 0) (report))
Recommend
More recommend