核心概念
Core QUIC enables dynamic, implementation-agnostic protocol extensions for the QUIC transport protocol by defining a standardized representation format and a plugin-based architecture.
摘要
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.