Akshay Narayan, Frank J. Cangialosi, Prateesh Goyal, Srinivas Narayana, Mohammad Alizadeh, Hari Balakrishnan
Sixteenth ACM Workshop on Hot Topics in Networks (HotNets), Palo Alto, CA, November 2017
With Moore’s law ending, the gap between general-purpose
processor speeds and network link rates is widening. This trend
has led to new packet-processing “datapaths” in endpoints, including
kernel bypass software and emerging SmartNIC hardware.
In addition, several applications are rolling out their own
protocols atop UDP (e.g., QUIC, WebRTC, Mosh, etc.), forming
new datapaths different from the traditional kernel TCP
stack. All these datapaths require congestion control, but they
must implement it separately because it is not possible to reuse
the kernel’s TCP implementations. This paper proposes moving
congestion control from the datapath into a separate agent.
This agent, which we call the congestion control plane (CCP),
must provide both an expressive congestion control API as well
as a specification for datapath designers to implement and deploy
CCP. We propose an API for congestion control, datapath
primitives, and a user-space agent design that uses a batching
method to communicate with the datapath. Our approach
promises to preserve the behavior and performance of indatapath
implementations while making it significantly easier
to implement and deploy new congestion control algorithms.
[PDF (417KB)]
Bibtex Entry:
@inproceedings{narayan2017moving, author = "Akshay Narayan and Frank J. Cangialosi and Prateesh Goyal and Srinivas Narayana and Mohammad Alizadeh and Hari Balakrishnan", title = "{The Case for Moving Congestion Control Out of the Datapath}", booktitle = {Sixteenth ACM Workshop on Hot Topics in Networks (HotNets)}, year = {2017}, month = {November}, address = {Palo Alto, CA} }