The Case for Moving Congestion Control Out of the Datapath

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}
}