Core Concepts
Core QUIC enables dynamic, implementation-agnostic protocol extensions for the QUIC transport protocol by defining a standardized representation format and a plugin-based architecture.
Abstract
The paper presents Core QUIC, a paradigm shift that enables dynamic, implementation-agnostic extensions for the QUIC transport protocol. The key insights are:
Deployment issues with QUIC extensions:
Extending QUIC with cleartext control plane is hindered by middleboxes.
Extensions require support from all participating QUIC implementations, leading to a chicken-and-egg deployment issue.
Core QUIC approach:
Defines a standardized representation format of common QUIC structures.
Enforces an implementation architecture where any Core QUIC-supporting participant can be extended with the same, generic bytecode plugins.
Plugins run in a safe, isolated environment and can be combined without overlapping.
Enables incremental adoption by QUIC implementations with minimal changes.
Implementation and evaluation:
Implemented the Core QUIC architecture as a Rust library, with pluginop as the core component.
Integrated Core QUIC into two existing QUIC implementations (quiche and quinn) with reasonable effort.
Demonstrated the feasibility through several use cases, including frame logging, privacy enhancement, network probing, and congestion control optimization.
Benchmarked the overhead introduced by the pluginization mechanisms, showing reasonable performance.
The Core QUIC approach addresses the deployment challenges of QUIC extensions by enabling implementation-agnostic, dynamically loaded plugins that can extend any compliant QUIC implementation.