Table of Contents
Fetching ...

A Target-Agnostic Protocol-Independent Interface for the Transport Layer

Pedro Mizuno, Kimiya Mohammadtaheri, Linfan Qian, Joshua Johnson, Danny Akbarzadeh, Chris Neely, Mario Baldi, Nachiket Kapre, Mina Tahmasbi Arashloo

Abstract

Transport protocols continue to evolve to meet the demands of new applications, workloads, and network environments, yet implementing and evolving transport protocols remains difficult and costly. High-performance transport stacks tightly interweave protocol behavior with system-level mechanisms such as packet I/O, memory management, and concurrency control, resulting in large code bases where protocol logic is scattered and hard to modify -- an issue exacerbated by modern heterogeneous execution environments. This paper introduces transport programs, a target-independent abstraction that precisely and centrally captures a transport protocol's reactions to relevant transport events using abstract instructions for key transport operations such as data reassembly, packet generation and scheduling, and timer manipulation, while leaving execution strategy and low-level mechanisms to the target. We show that transport programs can express a diverse set of transport protocols, be efficiently realized on targets built over DPDK and Linux XDP, achieve performance comparable to hand-optimized implementations, and enable protocol changes and portability across targets without modifying underlying infrastructure.

A Target-Agnostic Protocol-Independent Interface for the Transport Layer

Abstract

Transport protocols continue to evolve to meet the demands of new applications, workloads, and network environments, yet implementing and evolving transport protocols remains difficult and costly. High-performance transport stacks tightly interweave protocol behavior with system-level mechanisms such as packet I/O, memory management, and concurrency control, resulting in large code bases where protocol logic is scattered and hard to modify -- an issue exacerbated by modern heterogeneous execution environments. This paper introduces transport programs, a target-independent abstraction that precisely and centrally captures a transport protocol's reactions to relevant transport events using abstract instructions for key transport operations such as data reassembly, packet generation and scheduling, and timer manipulation, while leaving execution strategy and low-level mechanisms to the target. We show that transport programs can express a diverse set of transport protocols, be efficiently realized on targets built over DPDK and Linux XDP, achieve performance comparable to hand-optimized implementations, and enable protocol changes and portability across targets without modifying underlying infrastructure.

Paper Structure

This paper contains 23 sections, 4 figures, 2 tables.

Figures (4)

  • Figure 1: Code snippets from the MTP program for the Homa protocol, with some of MTP's core abstractions for events, application data, packet payloads, and transport instructions highlighted in yellow (§\ref{['sec:overview']},§\ref{['sec:output']}). In existing implementations, the above protocol logic would be scattered, deeply buried, and tightly interwoven across multiple low-level system components (§\ref{['sec:coupling']}). With MTP, protocol semantics is decoupled, centralized, high-level yet precise, and target-independent, while the target handles low-level execution details.
  • Figure 2: Logical model of an MTP target and its interactions with the (deployed) MTP program.
  • Figure 3: MTP-based targets achieve comparable performance to native protocol implementations in mTCP and eTran on CloudLab. (a,b) TCP on MTP-DPDK vs. mTCP. (a) Server throughput for closed-loop 1MB resp., # server cores increased until network becomes the bottleneck. (b) Latency with a single server thread, 8KB and 32B resp., and increasing cross-traffic load. (c) TCP and Homa on MTP-XDP vs. eTran with a single server thread: TCP throughput for message sizes from 2KB–512KB and Homa latency and throughput for 32B requests.
  • Figure 4: Using MTP programs, we deploy Homa and QUIC-Lite on MTP-DPDK and MTP-XDP -- targets derived from mTCP and eTran -- w/o modifying target infrastructure. Performance is only compared against TCP on the same target to validate faithful realization.