The Case for Moving Congestion Control out of the Datapath

The Case for Moving Congestion Control out of the Datapath

The Case for Moving Congestion Control Out of the Datapath Akshay Narayan, Frank Cangialosi, Prateesh Goyal, Srinivas Narayana, Mohammad Alizadeh, Hari Balakrishnan {akshayn,frankc,prateesh,alephtwo,alizadeh,hari}@csail.mit.edu MIT CSAIL Abstract methods [2, 28, 44], RDMA [49], user-space libraries [32], With Moore’s law ending, the gap between general-purpose and emerging programmable NICs (“SmartNICs” [39]). processor speeds and network link rates is widening. This trend The proliferation of datapaths has created a significant chal- has led to new packet-processing “datapaths” in endpoints, in- lenge for deploying congestion control algorithms. For each cluding kernel bypass software and emerging SmartNIC hard- new datapath, developers must re-implement their desired con- ware. In addition, several applications are rolling out their own gestion control algorithms essentially from scratch—a difficult protocols atop UDP (e.g., QUIC, WebRTC, Mosh, etc.), form- and tedious task. For example, implementing TCP on Intel’s ing new datapaths different from the traditional kernel TCP DPDK is a significant undertaking [28]. We expect this sit- stack. All these datapaths require congestion control, but they uation to worsen with the emergence of new hardware acceler- must implement it separately because it is not possible to reuse ators and programmable NICs because many such high-speed the kernel’s TCP implementations. This paper proposes mov- datapaths forego programming convenience for performance. ing congestion control from the datapath into a separate agent. Meanwhile, the diversity of congestion control algorithms— This agent, which we call the congestion control plane (CCP), a key component of transport layers that continues to see must provide both an expressive congestion control API as well innovation and evolution—makes supporting all algorithms as a specification for datapath designers to implement andde- across all datapaths even harder. The Linux kernel alone ploy CCP. We propose an API for congestion control, datapath implements over a dozen [12, 24, 26, 27, 33, 34] algorithms, primitives, and a user-space agent design that uses a batch- and many new proposals have emerged in only the last few ing method to communicate with the datapath. Our approach years [8,13,19,22,31,35, 36,47,48]. As hardware datapaths promises to preserve the behavior and performance of in- become more widely deployed, continuing down the current datapath implementations while making it significantly easier path will erode this rich ecosystem of congestion control to implement and deploy new congestion control algorithms. algorithms because NIC hardware designers will tend to bake-in only a select few schemes into the datapath. We believe it is therefore time for a new datapath-agnostic 1 Introduction architecture for endpoint congestion control. We propose to Traditionally, applications have used the networking stack decouple congestion control from the datapath and relocate provided by the operating system through the socket API. it to a separate agent that we call the congestion control plane Recently, however, there has been a proliferation of new (CCP). CCP runs as a user-space program and communicates networking stacks as NICs have offered more custom asynchronously with the datapath to direct congestion control features such as kernel bypass and as application developers decisions. Our goal is to identify a narrow API for congestion have come to demand specialized features from the net- control that developers can use to specify flexible congestion work [2, 11, 28, 32, 44, 49]. We refer to such modules that control logic, and that datapath developers can implement to provide interfaces for data movement between applications support a variety of congestion control schemes. This narrow and network hardware as datapaths. Examples of datapaths API enables congestion control algorithms and datapaths to include not only the kernel [17], but also kernel-bypass evolve independently, providing three key benefits: Permission to make digital or hard copies of all or part of this work for personal Write once, run everywhere. With CCP, congestion control or classroom use is granted without fee provided that copies are not made or researchers will be able to write a single piece of software distributed for profit or commercial advantage and that copies bear this notice and run it on multiple datapaths, including those yet to and the full citation on the first page. Copyrights for components of this work be invented. Additionally, datapath developers can focus owned by others than the author(s) must be honored. Abstracting with credit is on implementing a standard set of primitives—many of permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions which are already used today—rather than worry about from [email protected]. constantly evolving congestion control algorithms. Once an HotNets-XVI, November 30-December 1, 2017, Palo Alto, CA, USA algorithm is implemented with the CCP API, running on new © 2017 Copyright held by the owner/author(s). Publication rights licensed to CCP-conformant datapaths will be automatic. Association for Computing Machinery. ACM ISBN 978-1-4503-5569-8/17/11. $15.00 Ease of programming. Locating CCP in user-space and https://doi.org/10.1145/3152434.3152438 designing a convenient API for writing congestion control Application Algorithms applications and datapaths (e.g., POSIX sockets); applications OnUrgent() OnUrgent() OnUrgent() OnBatch() OnBatch()D … OnBatch() can run unmodified. TX RX Congestion control algorithms are implemented in user- CCP Agent space and make all important congestion control decisions. User-Space The algorithm is independent of the datapath. Developers are free to add new algorithm implementations, and it is possible to Batching run multiple algorithms on the same host, e.g., file downloads Y and video calls could use different transmission algorithms. Urgent? N The agent is the “glue” between the congestion control algo- CWND RATE RATE(r) rithm and the datapath, and imposes policies on the decisions CWND(c) of the congestion control algorithms, e.g., per-connection Datapath maximum transmission rates. Crucially, neither the agent nor the algorithm is directly involved with packet transmission Feedback NIC Control or reception. Instead, the CCP agent programs the (modified) Figure 1: Overview of CCP and application interactions with the datap- datapath asynchronously using a well-defined API. We ath. Both the application and CCP operate in user-space, while the data- envision the agent to run in user-space to support user-space path may exist in user-space, kernel-space, or hardware. If a packet con- datapaths and ease of programmability. It is also possible to tains urgent information, e.g., a congestion event, the datapath contacts run the agent in kernel-space when security is critical. CCP immediately. Otherwise, it batches user-specified measurements The modification to the datapath enforces the rates andwin- and sends them asynchronously. A CCP algorithm implements a han- dler for each of these cases. The datapath enforces the rate or congestion dow decisions it receives from the agent. On the receive path, it window it receives from CCP. The application’s interface to the datapath aggregates measurements from acknowledgments (e.g., for re- (e.g., POSIX socket API) is unmodified. liability, negative ACKs, etc.) and sends the results to the agent. 2.1 What is the API for congestion control? algorithms will make it easier to develop and deploy new schemes. This will ease the process of implementing and eval- Designing a flow-level CCP API is practical only if thereis uating novel algorithms. Furthermore, algorithm developers a common set of primitives which most congestion control will be free to utilize powerful user-space libraries (e.g., neural algorithms build upon, and which datapaths can implement nets) and focus on the details of their methods rather than efficiently. In Table 1, we identify a set of control actions and learning low-level datapath APIs. packet measurements that enable the implementation of a wide variety of congestion control algorithms. Consequently, Performance without compromises. As NIC line rates for each flow, we require that datapaths be able to maintain steadily march upwards to 100 Gbit/s and beyond, it is desir- (1) a given congestion window; and able to offload transport-layer packet processing to hardware to (2) a given pacing rate on packet transmissions; and save CPU cycles. Unlike solutions that hard-code a congestion (3) statistics on packet-level round trip times, packet control algorithm in hardware, e.g., [49], removing congestion delivery rates, and packet loss, and functions specified control from the datapath will enable richer congestion control over them. algorithms while retaining the performance of fast datapaths. Indeed, many datapaths existing today implement—or can The key challenge in providing such flexibility is achieving implement—these primitives internally (§4, §5). Making good performance. Congestion control schemes traditionally such datapaths CCP-compliant simply involves making these process every incoming ACK, but doing so, CCP would incur primitives externally programmable by the CCP. unacceptable overheads. We propose to tackle this problem using a new flexible batching method to summarize and Control. Congestion control algorithms

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us