Akshay Narayan, Frank J Cangialosi, Deepti Raghavan, Prateesh Goyal, Srinivas Narayana, Radhika Mittal, Mohammad Alizadeh, Hari Balakrishnan
SIGCOMM, Budapest, Hungary, August 2018
This paper describes the implementation and evaluation of a
system to implement complex congestion control functions
by placing them in a separate agent outside the datapath. Each
datapath—such as the Linux kernel TCP, UDP-based QUIC, or
kernel-bypass transports like mTCP-on-DPDK—summarizes
information about packet round-trip times, receptions, losses,
and ECN via a well-defined interface to algorithms running
in the off-datapath Congestion Control Plane (CCP). The algorithms
use this information to control the datapath’s congestion
window or pacing rate. Algorithms written in CCP can run on
multiple datapaths. CCP improves both the pace of development
and ease of maintenance of congestion control algorithms
by providing better, modular abstractions, and supports
aggregation capabilities of the Congestion Manager, all with
one-time changes to datapaths. CCP also enables new capabilities,
such as Copa in Linux TCP, several algorithms running
on QUIC and mTCP/DPDK, and the use of signal processing
algorithms to detect whether cross-traffic is ACK-clocked.
Experiments with our user-level Linux CCP implementation
show that CCP algorithms behave similarly to kernel
algorithms, and incur modest CPU overhead of a few percent.
[PDF (826KB)]
Bibtex Entry:
@inproceedings{narayan2018restructuring, author = "Akshay Narayan and Frank J Cangialosi and Deepti Raghavan and Prateesh Goyal and Srinivas Narayana and Radhika Mittal and Mohammad Alizadeh and Hari Balakrishnan", title = "{Restructuring Endpoint Congestion Control}", booktitle = {SIGCOMM}, year = {2018}, month = {August}, address = {Budapest, Hungary} }