{"id":{"repo_id":"mit","oai_identifier":"oai:dspace.mit.edu:1721.1/121638"},"canonical_url":"https://search.dev.ndltd.org/etd/mit/oai:dspace.mit.edu:1721.1/121638","repository":{"repo_id":"mit","name":"MIT","base_url":"https://dspace.mit.edu/oai/request"},"display":{"title":"Designing a congestion control plane datapath with QUIC","abstract":"This work explores developing datapaths for the recently proposed Congestion Control Plane (CCP) architecture and uses QUIC as a case study to build and evaluate an example datapath. The CCP moves congestion control logic off of the datapath into a separate agent running in user-space. Now, algorithm developers can write their algorithm using this API and automatically run their algorithm on any CCP enabled datapath, such as QUIC or the Linux kernel. We discuss the necessary features for datapaths to support the user-space CCP agent and develop a library, libccp, for software datapaths. We use QUIC as a case study to design a CCP datapath and evaluate various congestion control algorithms running on top of QUIC. The evaluation focuses on four aspects: (1) Do algorithms written on CCP have the same performance as QUIC algorithms? (2) Do CCP congestion control algorithms behave similarly to their native QUIC counterparts, when run on top of QUIC? (3) How expressive is the CCP API? (4) Does the same algorithm, written through CCP, behave similarly across multiple datapaths? This work reveals that while CCP QUIC algorithms have similar performance for a single flow, their behavior does not exactly match the native QUIC implementations of the same algorithms without modifications. We show that CCP can provide \"write once, run anywhere\" semantics for congestion control, as multiple algorithms run across QUIC and the Linux kernel exhibit similar behavior. Finally, we evaluate the expressiveness of the CCP API by implementing two algorithms: Hybrid Slow Start and Remy.","abstract_html":"This work explores developing datapaths for the recently proposed Congestion Control Plane (CCP) architecture and uses QUIC as a case study to build and evaluate an example datapath. The CCP moves congestion control logic off of the datapath into a separate agent running in user-space. Now, algorithm developers can write their algorithm using this API and automatically run their algorithm on any CCP enabled datapath, such as QUIC or the Linux kernel. We discuss the necessary features for datapaths to support the user-space CCP agent and develop a library, libccp, for software datapaths. We use QUIC as a case study to design a CCP datapath and evaluate various congestion control algorithms running on top of QUIC. The evaluation focuses on four aspects: (1) Do algorithms written on CCP have the same performance as QUIC algorithms? (2) Do CCP congestion control algorithms behave similarly to their native QUIC counterparts, when run on top of QUIC? (3) How expressive is the CCP API? (4) Does the same algorithm, written through CCP, behave similarly across multiple datapaths? This work reveals that while CCP QUIC algorithms have similar performance for a single flow, their behavior does not exactly match the native QUIC implementations of the same algorithms without modifications. We show that CCP can provide &quot;write once, run anywhere&quot; semantics for congestion control, as multiple algorithms run across QUIC and the Linux kernel exhibit similar behavior. Finally, we evaluate the expressiveness of the CCP API by implementing two algorithms: Hybrid Slow Start and Remy.","abstract_has_math":false,"creators":["Raghavan, Deepti."],"institution":"Massachusetts Institute of Technology","degree_name":"Master","degree_level":null,"degree_discipline":null,"degree_department":"Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science","school":null,"contributors":[],"advisors":["Hari Balakrishnan."],"committee_chairs":[],"committee_members":[],"year":2018,"date_issued":"2018","date_published":"2018","updated_at":"2026-07-22T22:22:00Z","subjects":["Electrical Engineering and Computer Science."],"languages":["eng"],"rights":["MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission."],"rights_urls":["http://dspace.mit.edu/handle/1721.1/7582"],"identifier_entries":[]},"links":{"outbound_url":"https://hdl.handle.net/1721.1/121638","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Hari Balakrishnan."]},{"key":"dc:contributor.department","label":"Department","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science","EECS"]},{"key":"dc:contributor.other","label":"Dc Contributor Other","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."]},{"key":"dc:creator","label":"Author","values":["Raghavan, Deepti."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2019-07-15T20:30:02Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2019-07-15T20:30:02Z"]},{"key":"dc:date.issued","label":"Date","values":["2018"]},{"key":"dc:publisher","label":"Institution","values":["Massachusetts Institute of Technology"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Master"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Electrical Engineering and Computer Science."]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission."]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://dspace.mit.edu/handle/1721.1/7582"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://hdl.handle.net/1721.1/121638"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.","Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2018","Cataloged from student-submitted PDF version of thesis.","Includes bibliographical references (pages 65-67)."]},{"key":"dc:description.abstract","label":"Abstract","values":["This work explores developing datapaths for the recently proposed Congestion Control Plane (CCP) architecture and uses QUIC as a case study to build and evaluate an example datapath. The CCP moves congestion control logic off of the datapath into a separate agent running in user-space. Now, algorithm developers can write their algorithm using this API and automatically run their algorithm on any CCP enabled datapath, such as QUIC or the Linux kernel. We discuss the necessary features for datapaths to support the user-space CCP agent and develop a library, libccp, for software datapaths. We use QUIC as a case study to design a CCP datapath and evaluate various congestion control algorithms running on top of QUIC. The evaluation focuses on four aspects: (1) Do algorithms written on CCP have the same performance as QUIC algorithms? (2) Do CCP congestion control algorithms behave similarly to their native QUIC counterparts, when run on top of QUIC? (3) How expressive is the CCP API? (4) Does the same algorithm, written through CCP, behave similarly across multiple datapaths? This work reveals that while CCP QUIC algorithms have similar performance for a single flow, their behavior does not exactly match the native QUIC implementations of the same algorithms without modifications. We show that CCP can provide \"write once, run anywhere\" semantics for congestion control, as multiple algorithms run across QUIC and the Linux kernel exhibit similar behavior. Finally, we evaluate the expressiveness of the CCP API by implementing two algorithms: Hybrid Slow Start and Remy."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["M. Eng."]},{"key":"dc:title","label":"Title","values":["Designing a congestion control plane datapath with QUIC"]}]}],"canonical_facts":{"dc:contributor.advisor":["Hari Balakrishnan."],"dc:contributor.department":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science","EECS"],"dc:contributor.other":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."],"dc:creator":["Raghavan, Deepti."],"dc:date.accessioned":["2019-07-15T20:30:02Z"],"dc:date.available":["2019-07-15T20:30:02Z"],"dc:date.issued":["2018"],"dc:description":["This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.","Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2018","Cataloged from student-submitted PDF version of thesis.","Includes bibliographical references (pages 65-67)."],"dc:description.abstract":["This work explores developing datapaths for the recently proposed Congestion Control Plane (CCP) architecture and uses QUIC as a case study to build and evaluate an example datapath. The CCP moves congestion control logic off of the datapath into a separate agent running in user-space. Now, algorithm developers can write their algorithm using this API and automatically run their algorithm on any CCP enabled datapath, such as QUIC or the Linux kernel. We discuss the necessary features for datapaths to support the user-space CCP agent and develop a library, libccp, for software datapaths. We use QUIC as a case study to design a CCP datapath and evaluate various congestion control algorithms running on top of QUIC. The evaluation focuses on four aspects: (1) Do algorithms written on CCP have the same performance as QUIC algorithms? (2) Do CCP congestion control algorithms behave similarly to their native QUIC counterparts, when run on top of QUIC? (3) How expressive is the CCP API? (4) Does the same algorithm, written through CCP, behave similarly across multiple datapaths? This work reveals that while CCP QUIC algorithms have similar performance for a single flow, their behavior does not exactly match the native QUIC implementations of the same algorithms without modifications. We show that CCP can provide \"write once, run anywhere\" semantics for congestion control, as multiple algorithms run across QUIC and the Linux kernel exhibit similar behavior. Finally, we evaluate the expressiveness of the CCP API by implementing two algorithms: Hybrid Slow Start and Remy."],"dc:description.degree":["M. Eng."],"dc:identifier.uri":["https://hdl.handle.net/1721.1/121638"],"dc:language.iso":["eng"],"dc:publisher":["Massachusetts Institute of Technology"],"dc:rights":["MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission."],"dc:rights.uri":["http://dspace.mit.edu/handle/1721.1/7582"],"dc:subject":["Electrical Engineering and Computer Science."],"dc:title":["Designing a congestion control plane datapath with QUIC"],"dc:type":["Thesis"],"thesis:degree_name":["Master"]},"updated_at":"2026-07-22T22:22:00Z"}