TY - GEN
T1 - Restructuring endpoint congestion control
AU - Narayan, Akshay
AU - Cangialosi, Frank
AU - Raghavan, Deepti
AU - Narayana, Prateesh Goyal Srinivas
AU - Mittal, Radhika
AU - Alizadeh, Mohammad
AU - Balakrishnan, Hari
N1 - Publisher Copyright:
© 2018 Copyright held by the owner/author(s). Publication rights licensed to the Association for Computing Machinery.
PY - 2018/8/7
Y1 - 2018/8/7
N2 - 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.
AB - 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.
KW - Congestion control
KW - Operating systems
UR - http://www.scopus.com/inward/record.url?scp=85056430319&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85056430319&partnerID=8YFLogxK
U2 - 10.1145/3230543.3230553
DO - 10.1145/3230543.3230553
M3 - Conference contribution
AN - SCOPUS:85056430319
T3 - SIGCOMM 2018 - Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication
SP - 30
EP - 43
BT - SIGCOMM 2018 - Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication
PB - Association for Computing Machinery
T2 - 2018 Conference of the ACM Special Interest Group on Data Communication, ACM SIGCOMM 2018
Y2 - 20 August 2018 through 25 August 2018
ER -