RESTRUCTURING ENDPOINT CONGESTION CONTROL Akshay Narayan, Frank - - PowerPoint PPT Presentation

restructuring endpoint congestion control
SMART_READER_LITE
LIVE PREVIEW

RESTRUCTURING ENDPOINT CONGESTION CONTROL Akshay Narayan, Frank - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

RESTRUCTURING ENDPOINT CONGESTION CONTROL

Akshay Narayan, Frank Cangialosi, Deep5 Raghavan, Prateesh Goyal, Srinivas Narayana, Radhika Mi>al, Mohammad Alizadeh, Hari Balakrishnan

slide-2
SLIDE 2

CONGESTION CONTROL

APPLICATION OS TCP

Data Data

NETWORK

slide-3
SLIDE 3

DATAPATHS

MTCP DPDK QUIC DCCP UDP SMARTNIC FPGA RDMA APPLICATION

Data Data

NETWORK OS TCP

slide-4
SLIDE 4

NEW ALGORITHMS

1987 2018

Vegas Westwood Compound PRR BIC H-TCP Cubic FAST EBCC Binomial LEDBAT Veno BBR PCC Remy Sprout DCTCP Illinois NV Hybla TIMELY ABC NewReno Copa RC3 XCP RCP DCQCN

1998 2001

Tahoe Reno

2010

Vivace Indigo Nimbus

slide-5
SLIDE 5

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

slide-6
SLIDE 6

[] [

CROSS PRODUCT OF SADNESS

Vegas Westwood Compound PRR BIC H-TCP Cubic FAST EBCC Binomial LEDBAT Veno BBR PCC Remy Sprout DCTCP Illinois NV Hybla TIMELY ABC NewReno Copa RC3 XCP RCP DCQCN Tahoe Reno Vivace Indigo Nimbus

×

]

MTCP DPDK QUIC DCCP USERSPACE SMARTNIC FPGA RDMA OS TCP

slide-7
SLIDE 7

CROSS PRODUCT OF SADNESS

slide-8
SLIDE 8

NEW CAPABILITIES

APPLICATION CC CC CC CC CC INDEPENDENT CC APPLICATION CC AGGREGATE CC

slide-9
SLIDE 9

CURRENT DESIGN

NIC ApplicaEon TX RX Datapath Datapath State CongesEon Control

slide-10
SLIDE 10

CONGESTION CONTROL PLANE

NIC ApplicaEon TX RX Datapath Datapath State CCP Agent CCP Datapath

slide-11
SLIDE 11

CONGESTION CONTROL PLANE

Write-once, run-anywhere Sophis5cated algorithms New capabili5es

NIC ApplicaEon TX RX Datapath Datapath State CCP Agent CCP Datapath

slide-12
SLIDE 12

LATENCY TRADEOFF

Latency ( < 30 µs)

NIC ApplicaEon TX RX Datapath Datapath State CCP Agent CCP Datapath

Write-once, run-anywhere Sophis5cated algorithms New capabili5es

slide-13
SLIDE 13

SPLIT IMPLEMENTATION

NIC ApplicaEon TX RX Datapath

CWND RATE StaEsEcs

Datapath State CCP Agent CCP Datapath

Asynchronous CC Logic Synchronous Measurement Gathering

Split CC performs similarly to datapath-na5ve

slide-14
SLIDE 14

SPLIT IMPLEMENTATION

NIC ApplicaEon TX RX Datapath

CWND RATE StaEsEcs

Datapath State CCP Agent CCP Datapath

Standardized Datapath Interface

slide-15
SLIDE 15

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

slide-16
SLIDE 16

Demo

slide-17
SLIDE 17

CUBIC WINDOW DYNAMICS

200 400 600 20 40 60

Time (s) Congestion Window (Pkts)

CCP Kernel

96 Mbit/s, 20ms link RTT

slide-18
SLIDE 18

WRITE-ONCE RUN-ANYWHERE

Link: 24 Mbit/s, 20ms RTT

Kernel QUIC mTCP Copa Cubic

Link: 12 Mbit/s, 20ms RTT

slide-19
SLIDE 19

STRESS TEST

cubic reno 1 2 4 8 16 32 64 1 2 4 8 16 32 64 0.0 2.5 5.0 7.5

Flows CPU Utilization (%)

ccp kernel

Link: 10Gbit/s, 100µs RTT

5%

slide-20
SLIDE 20

0.00 0.25 0.50 0.75 1.00 1.25 20us 2RTT 50us 5RTT 100us 10RTT 200us 20RTT 300us 30RTT 400us 40RTT 500us 50RTT

Reporting Interval RCT/Baseline

10Pkts 100Pkts 1000Pkts

LOW-RTT SCENARIOS

Link: 10Gbit/s, 10 µs

1.15

slide-21
SLIDE 21

DESIGN: FAST AND SLOW PATH

NIC ApplicaEon TX RX Datapath

CWND RATE StaEsEcs

Datapath State CCP Agent CCP Datapath Shim

Asynchronous API

slide-22
SLIDE 22

SPLIT IMPLEMENTATION

NIC ApplicaEon TX RX Datapath Datapath State CCP Agent CCP Datapath Shim libccp

Datapath shim Expose datapath variables

slide-23
SLIDE 23

SPLIT IMPLEMENTATION

libccp Per Packet Opera5ons Shared across datapaths

NIC ApplicaEon TX RX Datapath Datapath State CCP Agent CCP Datapath Shim libccp

Datapath shim Expose datapath variables

slide-24
SLIDE 24

Datapath Program:

▸ Per ACK measurements ▸ Pulse:

Rate = 1.25 x bo>le rate

▸ Aeer 1 RTT:

Rate = 0.75 x bo>le rate

▸ Aeer 2 RTT:

Rate = bo>le rate

▸ Aeer 8 RTT: repeat ▸ Every report ▸ Calculate new rate based

  • n measurements

▸ Handle switching between

modes

Asynchronous: BBR SPLIT IMPLEMENTATION

Asynchronous Datapath Program

slide-25
SLIDE 25

SLOW START

200 400 600 0.0 0.2 0.4 0.6

Time (s) Congestion Window (Pkts)

CCP , 100ms Report CCP , In−Fold CCP , Rate−Based In−Datapath

48Mbit/s, 100ms link RTT

slide-26
SLIDE 26

NEW CAPABILITIES

Sophis5cated algorithms Rapid prototyping CC for flow aggregates Applica5on-integrated CC Dynamic, path-specific CC

slide-27
SLIDE 27

NEXT STEPS

▸ More algorithms! ▸ Hardware datapaths ▸ Impact of new API on

conges5on control algorithms

▸ New capabili5es using CCP

plajorm

github.com/ccp-project

▸ Datapaths (libccp): ▸ Linux TCP ▸ QUIC ▸ mTCP/DPDK ▸ CCP Agent (portus)

CURRENT STATUS

Reproduce our results and build your own conges5on control at

slide-28
SLIDE 28

Extra Slides

slide-29
SLIDE 29

EBPF

▸ Event-driven seman5cs ▸ Explicit repor5ng model

Front-End (Language) Back-End (Datapath)

▸ Conges5on control

enforcement

▸ 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))