<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sirohi-schc-quic-frame-compression-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="SCHC for QUIC Frames">Exploring SCHC Compression of QUIC Frames</title>
    <seriesInfo name="Internet-Draft" value="draft-sirohi-schc-quic-frame-compression-00"/>
    <author initials="S." surname="Sirohi" fullname="Samar Sirohi">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>rue de la Chataigneraie</street>
          <city>35576 Cesson-Sevigne Cedex</city>
          <country>France</country>
        </postal>
        <email>samar.sirohi@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="L." surname="Toutain" fullname="Laurent Toutain">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>rue de la Chataigneraie</street>
          <city>35576 Cesson-Sevigne Cedex</city>
          <country>France</country>
        </postal>
        <email>laurent.toutain@imt-atlantique.fr</email>
      </address>
    </author>
    <date year="2026" month="July" day="03"/>
    <area>Internet</area>
    <workgroup>SCHC Working Group</workgroup>
    <keyword>SCHC</keyword>
    <keyword>QUIC</keyword>
    <keyword>Compression</keyword>
    <abstract>
      <?line 50?>

<t>This document explores whether Static Context Header Compression (SCHC) can be applied to the metadata carried in QUIC frames.
QUIC already uses compact frame encodings and variable-length integers, so any compressed representation has to recover enough bytes to pay for its own integration overhead.
The document compares several possible organizations for SCHC rules, discusses how frame compression could be integrated, and analyzes representative STREAM and ACK frame examples.</t>
      <t>The analysis suggests that SCHC compression of QUIC frames is technically possible, but that generic or base rules are likely to provide only modest savings at best.
More substantial savings require predictable traffic, pre-provisioned or negotiated rules, bundling of several frames under one rule, or a negotiated QUIC payload syntax with low per-packet overhead.
This document is exploratory. It does not define an interoperable QUIC extension, SCHC profile, wire format, or IANA allocation.</t>
    </abstract>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>QUIC <xref target="RFC9000"/> provides a secure, reliable, multiplexed transport over UDP.
QUIC packets carry one or more frames in the packet payload.
Those frames carry application data, acknowledgments, flow-control updates, and other transport information.</t>
      <t>QUIC frame encodings are already compact.
Most core frame types fit in one byte, and integer fields are encoded using QUIC variable-length integers.
This makes QUIC efficient for general Internet use, but frame metadata can still matter when packets are small or when every transmitted byte has high cost.
Examples include constrained links, specialized machine-to-machine deployments, and space communication scenarios.</t>
      <t>SCHC <xref target="RFC8724"/> compresses protocol fields using rules shared by the sender and receiver.
A rule can remove fields that are fixed, predictable, or known from a static context.
Only the residual values that cannot be inferred by the decompressor have to be sent.</t>
      <t>This document explores applying SCHC to QUIC frame metadata.
The term "frame metadata" includes QUIC Frame Types and frame-specific fields such as Stream ID, Offset, Length, Largest Acknowledged, ACK Delay, and ACK ranges.
Application data carried by STREAM frames is not compressed by the mechanisms considered here.</t>
      <t>The scope is intentionally exploratory.
The document asks when SCHC can reduce QUIC frame overhead enough to justify the required changes to QUIC packet construction, parsing, context management, and implementation complexity.
It does not define a QUIC extension, a SCHC profile for QUIC frames, a transport parameter, or any final wire format.</t>
    </section>
    <section anchor="background-and-scope">
      <name>Background and Scope</name>
      <section anchor="quic-frames">
        <name>QUIC Frames</name>
        <t>After QUIC packet protection is removed, the payload of a QUIC packet is parsed as a sequence of frames.
Each frame starts with a Frame Type followed by fields whose syntax depends on that type.
QUIC version 1 defines frames such as STREAM, ACK, PADDING, CRYPTO, MAX_DATA, RESET_STREAM, STOP_SENDING, and CONNECTION_CLOSE.</t>
        <t>STREAM frames carry bytes for an application stream.
The STREAM Frame Type encodes three flags that indicate whether the frame contains an Offset field, a Length field, and the FIN flag.
The frame also carries a Stream ID and the stream data itself.</t>
        <t>ACK frames carry acknowledgment information.
An ACK frame contains the Largest Acknowledged packet number, an ACK Delay, an ACK Range Count, a First ACK Range, and zero or more additional Gap and ACK Range Length pairs.
The ACK_ECN frame variant additionally carries ECN counters.</t>
        <t>QUIC uses a variable-length integer encoding for many frame fields.
Values are encoded in 1, 2, 4, or 8 bytes, and the two most significant bits of the first byte identify the length.
Frame Types are also QUIC variable-length integers and are encoded using the shortest possible representation.
All QUIC version 1 frame types used as examples in this document fit in one byte.</t>
        <t>QUIC packet payloads are protected by QUIC-TLS <xref target="RFC9001"/>.
For protected 1-RTT packets, frame bytes are encrypted and authenticated.
An on-path compressor that is not part of a QUIC endpoint cannot inspect or modify these frames.</t>
      </section>
      <section anchor="schc">
        <name>SCHC</name>
        <t>SCHC defines a rule-based compression framework.
A SCHC rule contains field descriptors, matching operators, target values, and compression/decompression actions.
The sender selects a rule that matches a packet or header description, sends a Rule ID and any required residue, and the receiver reconstructs the original fields using the same rule.</t>
        <t>SCHC is designed for environments where both endpoints share a static context.
That context can be provisioned, configured, or otherwise agreed before compression is used.
The SCHC YANG data model <xref target="RFC9363"/> and management approaches such as <xref target="I-D.toutain-schc-coreconf-management"/> are relevant building blocks for deployments that need managed SCHC contexts.</t>
        <t>RFC 8724 defines SCHC compression for IPv6 and UDP headers and the generic SCHC rule model.
It does not define field descriptors or compression behavior for QUIC frames.
Applying SCHC to QUIC frames would therefore require a QUIC-specific profile or an equivalent set of deployment rules.</t>
        <t>The related draft <xref target="I-D.sirohi-schc-quic-compression"/> discusses applying SCHC to accessible outer packet fields, including IP, UDP, and QUIC header fields.
This document focuses on the inner QUIC frame sequence that becomes visible only inside participating QUIC endpoints.</t>
      </section>
      <section anchor="scope-and-assumptions">
        <name>Scope and Assumptions</name>
        <t>The examples and discussion in this document use the following assumptions:</t>
        <ul spacing="normal">
          <li>
            <t>compression is performed inside participating QUIC endpoints;</t>
          </li>
          <li>
            <t>frame compression occurs before QUIC payload encryption;</t>
          </li>
          <li>
            <t>frame decompression occurs after QUIC payload decryption;</t>
          </li>
          <li>
            <t>compressed bytes remain protected by normal QUIC packet protection;</t>
          </li>
          <li>
            <t>application data compression is out of scope;</t>
          </li>
          <li>
            <t>the main examples are STREAM and ACK frames; and</t>
          </li>
          <li>
            <t>packets that cannot be compressed profitably can be sent using ordinary QUIC frame encoding.</t>
          </li>
        </ul>
        <t>The document does not assume that a compressor can read encrypted QUIC frames in the network.
It also does not assume that a SCHC rule can change QUIC transport semantics.
After decompression, the receiver has to process the reconstructed logical frames as ordinary QUIC frames.</t>
      </section>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>QUIC frame compression is not equivalent to ordinary network-layer header compression.
Several properties make it harder to apply SCHC efficiently.</t>
      <t>First, a QUIC packet can contain multiple frames.
The frame sequence can vary from packet to packet, and frames can appear in different orders.
A single packet might contain only a STREAM frame, only an ACK frame, an ACK followed by a STREAM frame, multiple STREAM frames, control frames, or padding.</t>
      <t>Second, some important frame syntaxes are optional or variable.
STREAM frames can include or omit Offset and Length fields.
ACK frames can contain a variable number of acknowledgment ranges.
Control frames often carry values whose meaning depends on the current connection state.</t>
      <t>Third, QUIC already compresses small fields by design.
A one-byte Frame Type and a one-byte variable-length integer leave little redundancy for a general-purpose compression scheme to remove.
If a compressed representation has to carry a QUIC extension Frame Type, a length, and a Rule ID, those bytes can consume the expected savings.</t>
      <t>Fourth, the rule-selection problem is non-trivial.
A sender can choose a rule for a complete frame sequence, for each frame, for a generic frame shape, or for a deployment-specific traffic pattern.
Each choice changes both the achievable compression and the robustness of the design.</t>
      <t>The central question is therefore:</t>
      <ul empty="true">
        <li>
          <t>Under which assumptions can SCHC reduce QUIC frame overhead enough to justify the required integration and implementation complexity?</t>
        </li>
      </ul>
      <t>This document does not attempt to answer that question for every deployment.
Instead, it identifies design options, explains their costs, and gives representative size calculations.</t>
    </section>
    <section anchor="possible-compression-organizations">
      <name>Possible Compression Organizations</name>
      <section anchor="one-rule-for-the-complete-frame-sequence">
        <name>One Rule for the Complete Frame Sequence</name>
        <t>One approach is to define a SCHC rule for a complete expected sequence of frames in one QUIC packet payload.
Examples include:</t>
        <ul spacing="normal">
          <li>
            <t>a packet containing exactly one STREAM frame;</t>
          </li>
          <li>
            <t>a packet containing exactly one ACK frame;</t>
          </li>
          <li>
            <t>a packet containing an ACK followed by one STREAM frame; and</t>
          </li>
          <li>
            <t>a packet containing a fixed sequence of several STREAM frames.</t>
          </li>
        </ul>
        <t>This approach can provide high compression when traffic is predictable.
The selected rule can imply the number of frames, their order, their Frame Types, and the presence or absence of optional fields.
A single Rule ID can replace several ordinary Frame Types and can also remove repeated or derived values.</t>
        <t>For example, a rule for "ACK followed by STREAM on a known stream" can elide the ACK Range Count when it is known to be zero, elide the STREAM Frame Type, elide the known Stream ID, and use the remaining packet length to derive the STREAM Length.
The fixed rule overhead is shared across both logical frames.</t>
        <t>The cost is rule-set growth.
If the deployment needs to support ACK, STREAM, ACK plus STREAM, two STREAM frames, STREAM plus MAX_DATA, and other combinations, the number of useful sequence rules can grow quickly.
Unexpected frame sequences either need a generic fallback rule or have to be sent using ordinary QUIC encoding.</t>
        <t>Complete-sequence rules are therefore most attractive for controlled traffic with stable packet shapes.
They are less attractive for general QUIC traffic, where scheduling, congestion control, loss recovery, and application behavior can change the frame sequence dynamically.</t>
      </section>
      <section anchor="one-rule-per-frame">
        <name>One Rule per Frame</name>
        <t>A second approach is to compress each QUIC frame independently.
A STREAM rule compresses a STREAM frame, an ACK rule compresses an ACK frame, and so on.
The compressed packet payload is then a sequence of compressed-frame encodings.</t>
        <t>This approach gives better rule reuse.
The same STREAM rule can be used regardless of whether the packet also carries an ACK frame or a control frame.
Frame ordering remains flexible, and the rule set does not need a separate rule for every complete packet shape.</t>
        <t>The cost is per-frame overhead.
Each compressed frame needs enough information for the receiver to identify the rule and find the next compressed or native frame.
That usually implies a Rule ID and either an explicit length, an implicit fixed size, or a rule-specific delimiter.</t>
        <t>For small frames, this overhead can exceed the removed bytes.
For example, a one-byte Rule ID used to remove a one-byte Frame Type does not help if an additional delimiter is also required.
A per-frame approach is therefore flexible but often weak for isolated small frames.</t>
      </section>
      <section anchor="generic-frame-rules">
        <name>Generic Frame Rules</name>
        <t>A conservative baseline is to define generic rules that preserve most values and remove only fields that are constant or structurally predictable.
For example, a generic STREAM rule might imply the STREAM frame variant while still carrying the Stream ID, Offset, Length, and data.
A generic ACK rule might remove a zero ACK Range Count only when the rule explicitly matches that case.</t>
        <t>Generic rules require few deployment assumptions.
They can operate using static context only and can support a broad set of connections.
They are also easier to reason about because most QUIC values are still transmitted directly.</t>
        <t>The downside is modest compression.
If the rule only removes a one-byte Frame Type but the compressed representation adds a Rule ID and a length, the packet becomes larger.
Generic rules are useful as an evaluation baseline, but they are unlikely to justify a QUIC extension by themselves.</t>
      </section>
      <section anchor="traffic-specific-or-stateful-rules">
        <name>Traffic-Specific or Stateful Rules</name>
        <t>More aggressive rules can exploit information that is known in a particular deployment.
Possible examples include:</t>
        <ul spacing="normal">
          <li>
            <t>known Stream IDs for long-lived application streams;</t>
          </li>
          <li>
            <t>predictable STREAM offsets;</t>
          </li>
          <li>
            <t>known or derived STREAM lengths;</t>
          </li>
          <li>
            <t>ACK Range Count equal to zero;</t>
          </li>
          <li>
            <t>fixed ACK Delay encodings;</t>
          </li>
          <li>
            <t>delta encoding of Largest Acknowledged;</t>
          </li>
          <li>
            <t>ECN counters derived from packet numbers in controlled deployments; and</t>
          </li>
          <li>
            <t>values derived from earlier frames in the same compressed container.</t>
          </li>
        </ul>
        <t>These rules can provide better compression, but the assumptions have to remain true at the receiver.
If a value is derived from prior packet state, the design has to remain correct when packets are lost, reordered, duplicated, or retransmitted.
That is difficult for QUIC because packet delivery order is not guaranteed and QUIC recovery retransmits information rather than retransmitting the same packet bytes <xref target="RFC9002"/>.</t>
        <t>Deriving values inside one compressed container is usually safer than deriving values across packets.
For example, the offset of a second STREAM fragment in the same container can be computed from the first fragment's offset and length.
That information arrives atomically after decryption of the same packet.</t>
        <t>Stateful compression can improve the compression ratio, but it adds state synchronization, fallback behavior, and error handling.
It is most plausible in closed deployments that can bound reordering and loss behavior or that already maintain synchronized compression state.</t>
      </section>
    </section>
    <section anchor="integration-with-quic">
      <name>Integration with QUIC</name>
      <t>This section describes three possible ways to integrate SCHC frame compression with QUIC.
They are alternatives for analysis, not protocol definitions.</t>
      <section anchor="negotiated-alternative-packet-payload-syntax">
        <name>Negotiated Alternative Packet-Payload Syntax</name>
        <t>The most efficient approach is to negotiate an alternative syntax for eligible QUIC packet payloads.
After negotiation, selected 1-RTT packet payloads would contain a SCHC representation instead of the ordinary sequence of QUIC frames.
The first field in the protected payload could be a Rule ID that identifies the complete frame sequence or an uncompressed escape format.</t>
        <t>This approach has low per-packet overhead.
The Rule ID can replace the ordinary first Frame Type, and no extension Frame Type is needed.
If the rule describes the complete protected payload, no container length is needed either.
This gives the best theoretical compression and makes complete-sequence rules more attractive.</t>
        <t>The cost is deep QUIC integration.
The QUIC stack has to know during payload parsing whether the packet uses ordinary frame syntax or the negotiated SCHC syntax.
It also needs a way to fall back to ordinary frame encoding, to preserve frame semantics for loss recovery and congestion control, and to reject malformed compressed payloads.</t>
        <t>A reserved Rule ID could identify an uncompressed frame sequence.
That would provide a simple escape path while keeping the alternative syntax active.
However, the negotiation, context activation, and error handling would still have to be specified precisely.</t>
      </section>
      <section anchor="generic-compressed-frame-extension">
        <name>Generic Compressed-Frame Extension</name>
        <t>A less invasive option is to define a QUIC extension frame that encapsulates one or more compressed frames.
A packet could contain ordinary QUIC frames, a compressed-frame container, or both.
The container body would include a Rule ID and any compression residue.</t>
        <t>A conceptual format is:</t>
        <artwork><![CDATA[
+=======================+==================+====================+
| Extension Frame Type  | Container Length | SCHC Representation|
+=======================+==================+====================+
]]></artwork>
        <t>This approach fits the existing QUIC frame parser model.
Unknown extension frames can be handled using ordinary QUIC extension rules when negotiation has not enabled the feature.
Native and compressed frames can coexist, and a sender can use the compressed container only when it is smaller than the ordinary encoding.</t>
        <t>The cost is overhead.
The extension Frame Type consumes at least one byte and possibly more, depending on the assigned codepoint.
The container needs a length unless it is constrained to consume the rest of the packet.
The SCHC representation also needs a Rule ID or an equivalent rule selector.</t>
        <t>This design can amortize the overhead when several frames are compressed together.
It is weaker for a single small frame, where the extension Frame Type, length, and Rule ID may cost as much as the original frame metadata.</t>
      </section>
      <section anchor="extension-frame-per-compressed-frame-type">
        <name>Extension Frame per Compressed Frame Type</name>
        <t>A third option is to allocate distinct QUIC extension Frame Types for specific compressed frame shapes.
For example, one extension Frame Type could mean "compressed STREAM with known Stream ID and no explicit length", while another could mean "compressed single-range ACK".</t>
        <t>This approach makes frame semantics clearer.
The extension Frame Type itself can act as a compact rule selector, so an additional Rule ID might not be needed for simple cases.
A parser can also know the basic shape immediately from the Frame Type.</t>
        <t>The drawbacks are significant.
Many rule variants would require many codepoints, and extension Frame Types above 63 require at least two bytes in QUIC variable-length integer encoding.
If the compressed Frame Type itself occupies two bytes, the savings for already-small frames can disappear.</t>
        <t>This approach is generally unattractive unless a small number of frame shapes remove several bytes each and the codepoint space can be managed cleanly.</t>
      </section>
    </section>
    <section anchor="implementation-architectures">
      <name>Implementation Architectures</name>
      <section anchor="unified-schc-compressor">
        <name>Unified SCHC Compressor</name>
        <t>One logical SCHC context could describe IP, UDP, accessible QUIC header fields, and inner QUIC frames.
In principle, a single rule could represent a complete packet pattern across several layers.
This could provide cross-layer optimization and avoid duplicated context decisions.</t>
        <t>The main difficulty is placement.
QUIC frame bytes are encrypted, while IP, UDP, and accessible QUIC header fields are outside the encrypted payload.
A compressor that operates on all fields at once has to be tightly coupled to QUIC packet construction, QUIC packet protection, and lower-layer encapsulation.</t>
        <t>This model may be useful for tightly integrated endpoints in a specialized stack.
It is likely difficult to reuse in ordinary QUIC implementations because it crosses the QUIC encryption boundary.</t>
      </section>
      <section anchor="separate-inner-and-outer-compressors">
        <name>Separate Inner and Outer Compressors</name>
        <t>A more practical model is to use separate compressors:</t>
        <ul spacing="normal">
          <li>
            <t>an inner compressor inside QUIC handles frames before payload encryption; and</t>
          </li>
          <li>
            <t>an outer compressor handles IP, UDP, and accessible QUIC header fields after packet construction.</t>
          </li>
        </ul>
        <t>The inner compressor sees logical QUIC frame objects or plaintext frame bytes.
The outer compressor sees only fields that are visible outside QUIC packet protection.
Each compressor has its own rule set, Rule IDs, and error handling.</t>
        <t>This separation matches the security boundary.
It also allows existing SCHC implementations for IP and UDP to be reused more easily.
The cost is that cross-layer optimization becomes harder because the inner and outer compressors make separate decisions.</t>
        <t>This split architecture appears to be the most practical implementation model for experimentation.</t>
      </section>
    </section>
    <section anchor="example-compression-analysis">
      <name>Example Compression Analysis</name>
      <t>The numerical examples in this section are illustrative.
They are not a proposed wire format and are not protocol guarantees.</t>
      <t>Unless otherwise stated, the examples use the following sizing assumptions:</t>
      <ul spacing="normal">
        <li>
          <t>QUIC variable-length integers use their shortest valid encoding;</t>
        </li>
        <li>
          <t>a generic compressed-frame extension Frame Type occupies one byte;</t>
        </li>
        <li>
          <t>a container length occupies one byte when the container body length is at most 63 bytes and two bytes otherwise;</t>
        </li>
        <li>
          <t>a SCHC Rule ID occupies one byte;</t>
        </li>
        <li>
          <t>a negotiated alternative packet-payload syntax carries one Rule ID;</t>
        </li>
        <li>
          <t>a terminal container consumes the rest of the packet and therefore omits an explicit container length; and</t>
        </li>
        <li>
          <t>application data bytes are unchanged.</t>
        </li>
      </ul>
      <t>The tables distinguish frame-metadata savings from complete packet savings.
When application data is unchanged and outer header compression is not counted, the complete packet reduction is equal to the frame-metadata reduction.</t>
      <section anchor="stream-frames">
        <name>STREAM Frames</name>
        <t>A native STREAM frame contains a one-byte Frame Type, a Stream ID, optional Offset and Length fields, optional FIN information encoded in the Frame Type, and stream data.
The Length field can be omitted when the STREAM frame extends to the end of the packet payload.</t>
        <t>The following examples use a STREAM frame carrying 64 bytes of application data unless otherwise stated.</t>
        <table anchor="Tab-stream-examples">
          <name>Representative STREAM Metadata Sizes</name>
          <thead>
            <tr>
              <th align="left">STREAM case</th>
              <th align="right">Native metadata</th>
              <th align="right">Generic extension</th>
              <th align="right">Traffic-specific extension</th>
              <th align="right">Alternative payload syntax</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Stream ID only, one-byte Stream ID</td>
              <td align="right">2 B</td>
              <td align="right">5 B, loses 3 B</td>
              <td align="right">4 B if Stream ID known, loses 2 B</td>
              <td align="right">1 B if Stream ID known, saves 1 B</td>
            </tr>
            <tr>
              <td align="left">Stream ID only, four-byte Stream ID</td>
              <td align="right">5 B</td>
              <td align="right">8 B, loses 3 B</td>
              <td align="right">4 B if Stream ID known, saves 1 B</td>
              <td align="right">1 B if Stream ID known, saves 4 B</td>
            </tr>
            <tr>
              <td align="left">Offset and Length, one-byte Stream ID, two-byte Offset, two-byte Length</td>
              <td align="right">6 B</td>
              <td align="right">7 B if Length is inferred from container, loses 1 B</td>
              <td align="right">5 B if Stream ID known and Offset sent, saves 1 B</td>
              <td align="right">3 B if Stream ID known and Offset sent, saves 3 B</td>
            </tr>
            <tr>
              <td align="left">Offset and Length, four-byte Stream ID, two-byte Offset, two-byte Length</td>
              <td align="right">9 B</td>
              <td align="right">10 B if Length is inferred from container, loses 1 B</td>
              <td align="right">5 B if Stream ID known and Offset sent, saves 4 B</td>
              <td align="right">3 B if Stream ID known and Offset sent, saves 6 B</td>
            </tr>
          </tbody>
        </table>
        <t>The generic extension is larger in these examples because it preserves most values while adding an extension Frame Type, a container length, and a Rule ID.
It removes little or no metadata that QUIC has not already encoded compactly.</t>
        <t>The traffic-specific extension becomes useful when it can remove a multi-byte Stream ID or other fields.
For a known four-byte Stream ID and a 64-byte terminal STREAM payload, the native metadata is 5 bytes and the compressed extension overhead is 4 bytes.
The saving is only 1 byte because the 64-byte stream data makes the container length require two bytes.</t>
        <t>The alternative packet-payload syntax is more efficient because it avoids the extension Frame Type and container length.
If the rule identifies a known Stream ID and the data consumes the remainder of the packet payload, a single Rule ID can represent the frame metadata.
This gives better compression, but it requires a deeper change to QUIC payload parsing.</t>
        <t>STREAM offsets are sensitive to state assumptions.
Sending an Offset residue can still save bytes when the Stream ID is known.
Deriving an Offset from previous packets is unsafe without additional synchronization because QUIC packets can be lost and reordered.
Deriving an Offset from earlier STREAM fragments in the same compressed container is safer because the reference information is carried in the same protected payload.</t>
      </section>
      <section anchor="ack-frames">
        <name>ACK Frames</name>
        <t>A native ACK frame with one contiguous range can be very small.
If Largest Acknowledged, ACK Delay, ACK Range Count, and First ACK Range are all one-byte values, the native ACK occupies 5 bytes including the Frame Type.</t>
        <table anchor="Tab-ack-examples">
          <name>Representative ACK Metadata Sizes</name>
          <thead>
            <tr>
              <th align="left">ACK case</th>
              <th align="right">Native metadata</th>
              <th align="right">Generic extension</th>
              <th align="right">Traffic-specific extension</th>
              <th align="right">Alternative payload syntax</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">One range, ACK Range Count 0, First ACK Range sent</td>
              <td align="right">5 B</td>
              <td align="right">6 B if only Range Count is elided, loses 1 B</td>
              <td align="right">5 B if First ACK Range is derived, saves 0 B</td>
              <td align="right">3 B if First ACK Range is derived, saves 2 B</td>
            </tr>
            <tr>
              <td align="left">One range, two-byte Largest Acknowledged, one-byte delay and range</td>
              <td align="right">6 B</td>
              <td align="right">7 B if only Range Count is elided, loses 1 B</td>
              <td align="right">6 B if First ACK Range is derived, saves 0 B</td>
              <td align="right">4 B if First ACK Range is derived, saves 2 B</td>
            </tr>
            <tr>
              <td align="left">Two ranges with one-byte fields</td>
              <td align="right">7 B</td>
              <td align="right">8 B when the range list is preserved, loses 1 B</td>
              <td align="right">8 B if range count and range list remain variable, loses 1 B</td>
              <td align="right">6 B if the rule fixes the range count to 1, saves 1 B</td>
            </tr>
          </tbody>
        </table>
        <t>The first row illustrates the main problem for ACK compression.
A small native ACK is already close to the minimum size.
An extension container can remove the zero ACK Range Count and derive First ACK Range from Largest Acknowledged, but the extension Frame Type, length, and Rule ID consume the savings.</t>
        <t>ACK compression becomes more attractive when the integration overhead is lower or when several frames are compressed together.
It can also be useful when deployment-specific rules make ACK fields derivable.
However, ACK values are dynamic and are tied to QUIC loss detection and RTT estimation.
Any reconstructed ACK has to be semantically equivalent to the ACK that would have been sent natively.</t>
        <t>Multi-range ACKs are harder to compress generically.
The number of ranges and the Gap and ACK Range Length values vary with loss and reordering.
A rule that fixes the number of ranges can save a small amount of structure, but a generic rule usually has to transmit the range list.</t>
      </section>
      <section anchor="net-savings">
        <name>Net Savings</name>
        <t>Every analysis has to count all compression overhead.
Relevant overhead includes:</t>
        <ul spacing="normal">
          <li>
            <t>the Rule ID or equivalent rule selector;</t>
          </li>
          <li>
            <t>any QUIC extension Frame Type;</t>
          </li>
          <li>
            <t>a container length or delimiter;</t>
          </li>
          <li>
            <t>per-frame delimiters when several compressed frames are independent;</t>
          </li>
          <li>
            <t>residue fields that are not inferred by the rule;</t>
          </li>
          <li>
            <t>padding or byte alignment introduced by the profile; and</t>
          </li>
          <li>
            <t>any fallback marker for uncompressed frame sequences.</t>
          </li>
        </ul>
        <t>The following examples use the same assumptions as the previous sections.
They compare complete QUIC packet payload bytes for the represented frame sequence.
Outer IP, UDP, and QUIC header compression is not included.</t>
        <table anchor="Tab-net-savings">
          <name>Illustrative Complete Payload Savings</name>
          <thead>
            <tr>
              <th align="left">Frame sequence</th>
              <th align="right">Native payload</th>
              <th align="right">Generic extension</th>
              <th align="right">Optimized extension</th>
              <th align="right">Alternative payload syntax</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Small single-range ACK</td>
              <td align="right">5 B</td>
              <td align="right">6 B, loses 1 B</td>
              <td align="right">5 B, saves 0 B</td>
              <td align="right">3 B, saves 2 B</td>
            </tr>
            <tr>
              <td align="left">STREAM with known four-byte Stream ID and 64 bytes of data</td>
              <td align="right">69 B</td>
              <td align="right">72 B, loses 3 B</td>
              <td align="right">68 B, saves 1 B</td>
              <td align="right">65 B, saves 4 B</td>
            </tr>
            <tr>
              <td align="left">ACK followed by that STREAM</td>
              <td align="right">74 B</td>
              <td align="right">77 B if both are preserved in one container, loses 3 B</td>
              <td align="right">70 B, saves 4 B</td>
              <td align="right">67 B, saves 7 B</td>
            </tr>
            <tr>
              <td align="left">ACK plus STREAM in a terminal optimized container</td>
              <td align="right">74 B</td>
              <td align="right">not applicable</td>
              <td align="right">68 B, saves 6 B</td>
              <td align="right">67 B, saves 7 B</td>
            </tr>
          </tbody>
        </table>
        <t>The ACK-plus-STREAM examples show why bundling matters.
One extension Frame Type, one length, and one Rule ID can represent both logical frames.
The fixed overhead is amortized, and the rule can remove fields from both frames.</t>
        <t>The alternative payload syntax gives the best byte savings because it has the lowest integration overhead.
It is also the most invasive option because it changes how protected QUIC payloads are interpreted.</t>
        <t>These examples do not include processing cost.
A sender still has to identify candidate rules, evaluate matches, compute residues, and compare the compressed size with the native encoding.
If the sender then falls back to native QUIC, wire savings are zero but rule evaluation cost has already been paid.</t>
      </section>
    </section>
    <section anchor="discussion-and-conclusions">
      <name>Discussion and Conclusions</name>
      <t>SCHC compression of QUIC frames is technically possible when compression and decompression are integrated into the QUIC endpoints.
The compressed representation can be protected by normal QUIC packet protection because compression occurs before encryption and decompression occurs after decryption.</t>
      <t>Generic static rules are likely to provide modest savings at best.
QUIC already encodes small Frame Types and integer values compactly, and a compressed extension has to pay for its own Frame Type, length, and Rule ID.
For small isolated frames, the compressed representation can be the same size as native QUIC or larger.</t>
      <t>Extension-frame approaches are easier to deploy incrementally because ordinary and compressed frames can coexist.
Their fixed overhead is the main limitation.
They become more attractive when several logical frames are compressed together or when a rule removes a multi-byte field such as a known Stream ID.</t>
      <t>A negotiated alternative packet-payload syntax offers better compression because it avoids an extension Frame Type and often avoids a container length.
It also requires deeper QUIC integration, explicit negotiation, clear fallback, and precise error handling.</t>
      <t>Whole-packet and traffic-specific rules can provide better savings when traffic is predictable.
Examples include known streams, fixed frame combinations, ACK Range Count equal to zero, and values derived within the same compressed container.
Stateful compression across packets can improve results, but it introduces robustness and synchronization problems in the presence of loss, reordering, and retransmission.</t>
      <t>A split implementation appears practical.
An inner compressor inside QUIC can handle frame metadata before encryption, while an outer compressor can handle IP, UDP, and accessible QUIC header fields after packet construction.
This matches the QUIC security boundary and allows reuse of existing SCHC components.</t>
      <t>The approach is unlikely to be attractive for ordinary Internet QUIC traffic.
Traffic is diverse, frame combinations vary, and the expected savings from frame metadata are small compared with the required implementation and context-management machinery.</t>
      <t>The approach may be useful where links are highly constrained, bandwidth is expensive, endpoints are under common control, and rules can be pre-provisioned or managed by mechanisms such as SCHC CORECONF.
Space communication scenarios and other controlled constrained deployments are plausible examples.</t>
      <t>Trace-based evaluation is needed before selecting a concrete design.
Such evaluation should measure both frame-metadata reduction and complete packet reduction.
It should also measure CPU cost, latency, energy, rule-set size, fallback frequency, and robustness under loss and reordering.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8724">
          <front>
            <title>SCHC: Generic Framework for Static Context Header Compression and Fragmentation</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="D. Barthel" initials="D." surname="Barthel"/>
            <author fullname="JC. Zuniga" initials="JC." surname="Zuniga"/>
            <date month="April" year="2020"/>
            <abstract>
              <t>This document defines the Static Context Header Compression and fragmentation (SCHC) framework, which provides both a header compression mechanism and an optional fragmentation mechanism. SCHC has been designed with Low-Power Wide Area Networks (LPWANs) in mind.</t>
              <t>SCHC compression is based on a common static context stored both in the LPWAN device and in the network infrastructure side. This document defines a generic header compression mechanism and its application to compress IPv6/UDP headers.</t>
              <t>This document also specifies an optional fragmentation and reassembly mechanism. It can be used to support the IPv6 MTU requirement over the LPWAN technologies. Fragmentation is needed for IPv6 datagrams that, after SCHC compression or when such compression was not possible, still exceed the Layer 2 maximum payload size.</t>
              <t>The SCHC header compression and fragmentation mechanisms are independent of the specific LPWAN technology over which they are used. This document defines generic functionalities and offers flexibility with regard to parameter settings and mechanism choices. This document standardizes the exchange over the LPWAN between two SCHC entities. Settings and choices specific to a technology or a product are expected to be grouped into profiles, which are specified in other documents. Data models for the context and profiles are out of scope.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8724"/>
          <seriesInfo name="DOI" value="10.17487/RFC8724"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC9363">
          <front>
            <title>A YANG Data Model for Static Context Header Compression (SCHC)</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <date month="March" year="2023"/>
            <abstract>
              <t>This document describes a YANG data model for the Static Context Header Compression (SCHC) compression and fragmentation Rules.</t>
              <t>This document formalizes the description of the Rules for better interoperability between SCHC instances either to exchange a set of Rules or to modify the parameters of some Rules.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9363"/>
          <seriesInfo name="DOI" value="10.17487/RFC9363"/>
        </reference>
        <reference anchor="I-D.sirohi-schc-quic-compression">
          <front>
            <title>QUIC compression using SCHC</title>
            <author fullname="Samar Sirohi" initials="S." surname="Sirohi">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>IMT Atlantique</organization>
            </author>
            <date day="12" month="May" year="2025"/>
            <abstract>
              <t>   This document specifies a mechanism for applying Static Context
   Header Compression (SCHC) to QUIC (Quick UDP Internet Connections)
   packets.  It leverages SCHC to compress both the QUIC packet header
   and the headers or type information of QUIC frames contained within
   the packet payload.  This approach aims to significantly reduce QUIC
   overhead, optimizing bandwidth usage.  This is particularly
   beneficial for valuable in bandwidth-sensitive scenarios like deep
   space communications.

   This document defines the SCHC architecture.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sirohi-schc-quic-compression-00"/>
        </reference>
        <reference anchor="I-D.toutain-schc-coreconf-management">
          <front>
            <title>CORECONF Rule management for SCHC</title>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Consultant</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Javier Alejandro FERNANDEZ" initials="J. A." surname="FERNANDEZ">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Corentin Banier" initials="C." surname="Banier">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Marion Dumay" initials="M." surname="Dumay">
              <organization>Orange</organization>
            </author>
            <date day="19" month="October" year="2025"/>
            <abstract>
              <t>   This document describes how CORECONF can be applied to SCHC for
   context and rule set management between endpoints.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-toutain-schc-coreconf-management-01"/>
        </reference>
      </references>
    </references>
    <?line 496?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document builds on prior discussions of SCHC compression for QUIC packet headers and frames.
The authors thank participants in the SCHC and QUIC communities for discussions on constrained deployments and QUIC extensibility.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8VdW5PbxpV+569AyQ/ZrZCzullylMruTkaSPbW6rWa02Ty5
mkCTRAQCDC4zoi3nt++5dp8GwJGcSmX1YHNIoNF9+ly+c2usVqtF17u6+NFV
Te2fZX07+EV5aOlT1z+8f/939x8uiiav3R5+Llq36Vdd2Ta7ctXlu3z116HM
V5sWfl3lzf7Q+q4rm3p1//4id/2zrKw3zaIb1vuSvr8+HmCUyxfXLxeLQ/ls
kWXdcd/6Tfcs+83Rd7/BL5q2H33Tt2Xex7/xOc5+0Te5/rHoy76CR9x78elQ
NW1Zb7Orix8usos4t6zZZP/94fIie4mz7u4t3Hrd+ptnfOGmae2vi4/+eNu0
BU51RVfQB7yCPphxF7dbGeNPTfsRn/x92wyHhWu9gzXXvW9r3y/c0O+a9tli
BbSBRV6dZVdEThiOaXzl9q6NXzYtDHv5+jo77ytX9+VfYYOIJt4DCWC7ssJn
lcsudq535bb2rSvxirzsj8+yR99++/RJdgEzhE258jd4AfxZ+E9EyKHuW7gK
1lrneJPfu7J6lnU4hTPe5v8s9/3KhWefbVqd+quz7LoZ4KF1mPsrN7S+7s33
/x/Tr3gWZz3PYmYFi7pp964vbzxu7PuXF989ffhYPv7u/v378eODZ4sFMnF6
OfzwUD8+evIIP16unp9NBMOIhF4jk+KL8qb1eVNvVntXu63fw6zheavVKnNr
oBFw+WJxvSu7DCRwwF8zT3ztu+x25/udB0bpYWI5MCIw2Kc++8G7Ar61/P4v
yJT/muWuztY+c4dDVfoChCaD+7O9710BpIef2xa/L2vmf5Lp7mxBf7gKmLg4
ZkMHTxb54ysyX+dNAdzeZaBGshvXlm5d+VXl622/g9F6v/VttwS5hguOmVIE
ntR6/ASLggXANHeuw0khQW5gBb5uhu0uWx97T98f3JGEs+y7rLmteeSWb8Ub
djDBMyCWj7SiiSKtOg8XuCo7NEARmB1ypavLn+jujoYlwW2HysNUi7LLhw6X
umtuZZlmJ5HxqgJpqXPwxZJWD5tYHX+C++zSbnx2df3+xflruuT84r+UcJ/c
/lAhiWnWdG8HW90N263vYJU9iATPK5/RXrw/GdzQ+3xXl7mrqmNY4TJbDz2P
sPUgVMAhsMi16zwvMgO6ZFX50cM9SNy2uSlBEJsa/t43BTwflMANb2sPS+36
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

-->

</rfc>
