  While applications quickly evolve, Internet protocols do not follow the same
pace. There are two root causes for this. First, extending protocol with
cleartext control plane is usually hindered by various network devices such as
middleboxes. Second, such extensions usually require support from all
participating entities, but often these run different implementations, leading
to the chicken-and-egg deployment issue. The recently standardized QUIC
protocol paved the way for dealing with the first concern by embedding
encryption by design. However, it attracted so much interest that there is now
a large heterogeneity in QUIC implementations, hence amplifying the second
problem.
  To get rid of these deployment issues and to enable inter-operable,
implementation-independent innovation at transport layer, we propose a paradigm
shift called Core QUIC. While Core QUIC keeps compliant with the standardized
QUIC protocol, it enforces implementation architecture such that any Core
QUIC-supporting participant can be extended with the same, generic bytecode. To
achieve this, Core QUIC defines a standardized representation format of common
QUIC structures on which plugins running in a controlled environment can
operate to extend the underlying host implementation. We demonstrate the
feasibility of our approach by making two implementations Core QUIC-compliant.
Then, we show that we can extend both with the same plugin code over several
use cases.
