<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-super-jumbo-record-limit-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Large Record Sizes for TLS">Large Record Sizes for TLS and DTLS with Reduced Overhead</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-super-jumbo-record-limit-04"/>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="UniBw M.">University of the Bundeswehr Munich</organization>
      <address>
        <postal>
          <city>Neubiberg</city>
          <region>Bavaria</region>
          <code>85577</code>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="M." surname="Tüxen" fullname="Michael Tüxen">
      <organization>Münster Univ. of Applied Sciences</organization>
      <address>
        <email>tuexen@fh-muenster.de</email>
      </address>
    </author>
    <date year="2026" month="November" day="01"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 63?>

<t>TLS 1.3 records limit the inner plaintext (TLSInnerPlaintext) size to 2<sup>14</sup> + 1 bytes, which includes one byte for the content type. DTLS 1.3 uses the same plaintext size limit. This document defines a TLS extension that allows endpoints to advertise larger per-direction maximum inner plaintext sizes, up to 2<sup>30</sup> - 256 bytes, while reducing overhead in TLS 1.3 and DTLS 1.3 record headers.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tlswg.github.io/super-jumbo-record-limit/draft-ietf-tls-super-jumbo-record-limit.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-tls-super-jumbo-record-limit/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tlswg/super-jumbo-record-limit"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>TLS 1.3 records limit the inner plaintext (TLSInnerPlaintext) size to 2<sup>14</sup> + 1 bytes, which includes one byte for the content type. Records also have a 3-byte overhead due to the fixed opaque_type and legacy_record_version fields. TLS-based protocols are increasingly used to secure long-lived interfaces in critical infrastructure, such as telecommunication networks. In some infrastructure use cases, the upper layer of DTLS expects a message oriented service and uses message sizes much larger than 2<sup>14</sup>-bytes. In these cases, the 2<sup>14</sup>-byte limit in TLS necessitates an additional protocol layer for fragmentation, resulting in increased CPU and memory consumption and additional complexity. Allowing 2<sup>30</sup>-byte records would eliminate additional fragmentation in almost all use cases. In <xref target="RFC6083"/> (DTLS over SCTP), the 2<sup>14</sup>-byte limit is a severe restriction.</t>
      <t>This document defines a "large_record_size_limit" extension. The extension is negotiated during the handshake, and each endpoint independently advertises the maximum inner plaintext (TLSInnerPlaintext) size it is willing to receive. Therefore, the two traffic directions can use different limits. This extension is valid in TLS 1.3 and DTLS 1.3. The extension works similarly to the "record_size_limit" extension defined in <xref target="RFC8449"/>. Additionally, this document defines new TLS 1.3 TLSLargeCiphertext and DTLS 1.3 unified_hdr structures to enable inner plaintexts up to 2<sup>30</sup> - 256 bytes with reduced overhead. For example, ciphertexts up to 64 bytes can be supported with 4 bytes less overhead and ciphertexts up to 2<sup>14</sup> bytes can be supported with 3 bytes less overhead, which is useful in constrained IoT environments. The "large_record_size_limit" extension is incompatible with middleboxes expecting TLS 1.2 records.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="the-largerecordsizelimit-extension">
      <name>The "large_record_size_limit" Extension</name>
      <t>The ExtensionData of the "large_record_size_limit" extension is LargeRecordSizeLimit:</t>
      <artwork><![CDATA[
   uint32 LargeRecordSizeLimit;
]]></artwork>
      <t>LargeRecordSizeLimit denotes the maximum size, in bytes, of inner plaintexts that the endpoint is willing to receive. It includes the content type and padding (i.e., the complete length of TLSInnerPlaintext). AEAD expansion is not included. This is the same value as RecordSizeLimit negotiated in the "record_size_limit" extension <xref target="RFC8449"/>.</t>
      <t>The large record size limit only applies to records sent toward the endpoint that advertises the limit. An endpoint can send records that are larger than the limit it advertises as its own limit. A TLS endpoint that receives a record larger than its advertised limit <bcp14>MUST</bcp14> generate a fatal "record_overflow" alert; a DTLS endpoint that receives a record larger than its advertised limit <bcp14>SHOULD</bcp14> discard the record and <bcp14>SHOULD NOT</bcp14> generate a fatal "record_overflow" alert. An endpoint <bcp14>MUST NOT</bcp14> add padding to records that would cause the length of TLSInnerPlaintext to exceed the limit advertised by the other endpoint.</t>
      <t>Endpoints <bcp14>MUST NOT</bcp14> send a "large_record_size_limit" extension with a value smaller than 64 or larger than 2<sup>30</sup> - 256. An endpoint <bcp14>MUST</bcp14> treat receipt of a smaller or larger value as a fatal error and generate an "illegal_parameter" alert.</t>
      <t>The server sends the "large_record_size_limit" extension in the EncryptedExtensions message. During resumption, the limit is renegotiated. Records are subject to the limits that were set in the handshake that produces the keys that are used to protect those records. This admits the possibility that the extension might not be negotiated during resumption. If the extension is not negotiated in a subsequent handshake, records protected with keys from that handshake are not subject to "large_record_size_limit" and are instead subject to the record size limits and record formats defined by TLS 1.3 <xref target="RFC8446bis"/> and DTLS 1.3 <xref target="RFC9147"/>, unless another negotiated extension specifies otherwise.</t>
      <t>Unprotected messages and records protected with early_traffic_secret or handshake_traffic_secret are not subject to the large record size limit and remain subject to the record size limits and record formats defined by TLS 1.3 <xref target="RFC8446bis"/> and DTLS 1.3 <xref target="RFC9147"/>. In particular, these records <bcp14>MUST</bcp14> use TLSCiphertext (TLS) or the DTLSCiphertext unified_hdr length encoding from <xref target="RFC9147"/> (DTLS), rather than TLSLargeCiphertext or the varuint length encoding defined in this document.</t>
      <t>When the "large_record_size_limit" extension is negotiated:</t>
      <ul spacing="normal">
        <li>
          <t>All TLS 1.3 records protected with application traffic keys (derived from application_traffic_secret_N) <bcp14>MUST</bcp14> use the TLSLargeCiphertext structure instead of the TLSCiphertext structure.  </t>
          <t>
Instead of using a fixed-length field, this specification defines a variable-length unsigned integer type, referred to as varuint, as specified in <xref section="2.1.2" sectionFormat="of" target="RFC9420"/>. The varuint encoding is similar to the variable-length integer encoding defined in <xref section="16" sectionFormat="of" target="RFC9000"/>, but requires minimum-size encoding. As defined in <xref section="2.1.2" sectionFormat="of" target="RFC9420"/>, the two most significant bits of the first byte indicate the base 2 logarithm of the integer encoding length in bytes. The remaining bits encode the integer value in network byte order. The encoded representation <bcp14>MUST</bcp14> use the smallest number of octets necessary to represent the integer value to ensure a unique wire representation. When decoding, any value that uses more octets than necessary is an invalid length encoding and <bcp14>MUST</bcp14> be treated as if the record exceeded the peer's advertised record size limit. This means that integers are encoded in 1, 2, or 4 bytes and can encode 6-, 14-, or 30-bit values, respectively. The varuint type is defined only for the record length fields specified in this document. <xref target="fig-sizes"/> summarizes the encoding properties from <xref section="2.1.2" sectionFormat="of" target="RFC9420"/>.</t>
        </li>
      </ul>
      <artwork><![CDATA[
   struct {
       varuint length;
       opaque encrypted_record[TLSLargeCiphertext.length];
   } TLSLargeCiphertext;
]]></artwork>
      <table anchor="fig-sizes">
        <name>Summary of varuint Encodings.</name>
        <thead>
          <tr>
            <th align="left">Prefix</th>
            <th align="left">Length</th>
            <th align="left">Usable Bits</th>
            <th align="left">Min</th>
            <th align="left">Max</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">00</td>
            <td align="left">1</td>
            <td align="left">6</td>
            <td align="left">0</td>
            <td align="left">63</td>
          </tr>
          <tr>
            <td align="left">01</td>
            <td align="left">2</td>
            <td align="left">14</td>
            <td align="left">64</td>
            <td align="left">16383</td>
          </tr>
          <tr>
            <td align="left">10</td>
            <td align="left">4</td>
            <td align="left">30</td>
            <td align="left">16384</td>
            <td align="left">1073741823</td>
          </tr>
          <tr>
            <td align="left">11</td>
            <td align="left">invalid</td>
            <td align="left">-</td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
        </tbody>
      </table>
      <t>If the first two bits of the length field are <tt>11</tt>, the encoded length is invalid and <bcp14>MUST</bcp14> be treated as if the record exceeded the peer's advertised record size limit.</t>
      <ul spacing="normal">
        <li>
          <t>All DTLS 1.3 records protected with application traffic keys (derived from application_traffic_secret_N) and with length present <bcp14>MUST</bcp14> use a unified_hdr structure with a varuint length equal to the TLS 1.3 length field defined above.</t>
        </li>
      </ul>
      <artwork><![CDATA[
    0 1 2 3 4 5 6 7
   +-+-+-+-+-+-+-+-+
   |0|0|1|C|S|L|E E|
   +-+-+-+-+-+-+-+-+
   | Connection ID |   Legend:
   | (if any,      |
   /  length as    /   C   - Connection ID (CID) present
   |  negotiated)  |   S   - Sequence number length
   +-+-+-+-+-+-+-+-+   L   - Length present
   |  8 or 16 bit  |   E   - Epoch
   |Sequence Number|
   +-+-+-+-+-+-+-+-+
   | 8, 16, or 32  |
   | bit varuint   |
   | Length        |
   | (if present)  |
   +-+-+-+-+-+-+-+-+
]]></artwork>
      <ul spacing="normal">
        <li>
          <t>An endpoint <bcp14>MAY</bcp14> generate records protected with application traffic keys (derived from application_traffic_secret_N) with inner plaintext length that is equal to or smaller than the LargeRecordSizeLimit value it receives from its peer. An endpoint <bcp14>MUST NOT</bcp14> generate a protected record with inner plaintext length that is larger than the LargeRecordSizeLimit value it receives from its peer.</t>
        </li>
      </ul>
      <t>The "large_record_size_limit" extension is not compatible with middleboxes expecting TLS 1.2 records and <bcp14>SHOULD NOT</bcp14> be negotiated where such middleboxes are expected. Endpoints that support this specification <bcp14>SHOULD</bcp14> prefer "large_record_size_limit" over "record_size_limit" and "max_fragment_length", and a client <bcp14>SHOULD</bcp14> offer at most one of these extensions. A server <bcp14>MUST NOT</bcp14> send extension responses to more than one of "large_record_size_limit", "record_size_limit", and "max_fragment_length". A client <bcp14>MUST</bcp14> treat receipt of more than one of "large_record_size_limit", "record_size_limit", and "max_fragment_length" as a fatal error, and it <bcp14>SHOULD</bcp14> generate an "illegal_parameter" alert.</t>
      <t>The Path Maximum Transmission Unit (PMTU) in DTLS also limits the size of records. The record size limit does not affect PMTU discovery and <bcp14>SHOULD</bcp14> be set independently. The record size limit is fixed during the handshake and so should be set based on constraints at the endpoint and not based on the current network environment. In comparison, the PMTU is determined by the network path and can change dynamically over time.</t>
    </section>
    <section anchor="limits-on-key-usage">
      <name>Limits on Key Usage</name>
      <t>TLS 1.3 <xref target="RFC8446bis"/> and DTLS 1.3 <xref target="RFC9147"/> limit the number of full-size records that may be encrypted under a given set of keys. Increasing the maximum inner plaintext size to more than 2<sup>14</sup> bytes while keeping the same confidentiality and integrity advantage per write key therefore requires lower AEAD limits. When "large_record_size_limit" has been negotiated with a record size limit larger than 2<sup>14</sup> + 1 bytes, existing AEAD limits <bcp14>SHALL</bcp14> be decreased by a factor of (LargeRecordSizeLimit) / (2<sup>14</sup>). For AES-GCM, usage against the confidentiality limit is block-based: each protected record consumes ceil(record_plaintext_length / 16) * 16 bytes. For example, when AES-GCM is used in TLS 1.3 <xref target="RFC8446bis"/> with a 64 kB record limit, only around 2<sup>22.5</sup> full-size records (about 6 million) may be encrypted under a given set of keys. For ChaCha20/Poly1305, the record sequence number would still wrap before the safety limit is reached.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Large record sizes might require more memory allocation for senders and receivers. Additionally, larger record sizes also means that more processing is done before verification of non-authentic records fails. TLS implementations <bcp14>MUST NOT</bcp14> provide access to the decrypted message content until after its integrity is confirmed.</t>
      <t>The use of larger record sizes can either simplify or complicate traffic analysis, depending on the application. The LargeRecordSizeLimit is just an upper limit and it is still the sender that decides the size of the inner plaintexts up to that limit.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign a new value in the TLS ExtensionType Values registry defined by <xref target="RFC8447"/>:</t>
      <ul spacing="normal">
        <li>
          <t>The Extension Name should be large_record_size_limit</t>
        </li>
        <li>
          <t>The TLS 1.3 value should be CH, EE</t>
        </li>
        <li>
          <t>The DTLS-Only value should be N</t>
        </li>
        <li>
          <t>The Recommended value should be Y</t>
        </li>
        <li>
          <t>The Reference should be this document</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8446bis">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <abstract>
              <t>   This document specifies version 1.3 of the Transport Layer Security
   (TLS) protocol.  TLS allows client/server applications to communicate
   over the Internet in a way that is designed to prevent eavesdropping,
   tampering, and message forgery.

   This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes
   RFCs 5077, 5246, 6961, 8422, and 8446.  This document also specifies
   new requirements for TLS 1.2 implementations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </reference>
        <reference anchor="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
        <reference anchor="RFC8449">
          <front>
            <title>Record Size Limit Extension for TLS</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>An extension to Transport Layer Security (TLS) is defined that allows endpoints to negotiate the maximum size of protected records that each will send the other.</t>
              <t>This replaces the maximum fragment length extension defined in RFC 6066.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8449"/>
          <seriesInfo name="DOI" value="10.17487/RFC8449"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6083">
          <front>
            <title>Datagram Transport Layer Security (DTLS) for Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Seggelmann" initials="R." surname="Seggelmann"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>This document describes the usage of the Datagram Transport Layer Security (DTLS) protocol over the Stream Control Transmission Protocol (SCTP).</t>
              <t>DTLS over SCTP provides communications privacy for applications that use SCTP as their transport protocol and allows client/server applications to communicate in a way that is designed to prevent eavesdropping and detect tampering or message forgery.</t>
              <t>Applications using DTLS over SCTP can use almost all transport features provided by SCTP and its extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6083"/>
          <seriesInfo name="DOI" value="10.17487/RFC6083"/>
        </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>
      </references>
    </references>
    <?line 189?>

<section removeInRFC="true" numbered="false" anchor="change-log">
      <name>Change Log</name>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Addressed WGLC comments from Magnus Westerlund, Ilari Liusvaara,Valery Smyslov, Eric Rescorla and Martin Thomson.</t>
        </li>
      </ul>
      <t>Changes from -01 to -02:</t>
      <ul spacing="normal">
        <li>
          <t>Variable length field equal to the one defined in MLS</t>
        </li>
        <li>
          <t>Clarification that the extension value is equal to RFC8449</t>
        </li>
        <li>
          <t>Clarification and corrections on AEAD limits</t>
        </li>
      </ul>
      <t>Changes from -00 to -01:</t>
      <ul spacing="normal">
        <li>
          <t>Keep alive</t>
        </li>
      </ul>
      <t>Changes from -05 to -00:</t>
      <ul spacing="normal">
        <li>
          <t>WG adoption</t>
        </li>
      </ul>
      <t>Changes from -04 to -05:</t>
      <ul spacing="normal">
        <li>
          <t>Grammar and comprehension tweaks.</t>
        </li>
        <li>
          <t>Added change log</t>
        </li>
      </ul>
      <t>Changes from -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>Corrected uint24 to uint32.</t>
        </li>
      </ul>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Major rewrite based on discussions at IETF 119</t>
        </li>
        <li>
          <t>New independent extension instead of flag extension used together with record_size_limit</t>
        </li>
        <li>
          <t>New record format without opaque_type and legacy_record_version fields. This reduces overhead</t>
        </li>
        <li>
          <t>Support inner plaintext size up to 2^32 - 256 bytes</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank <contact fullname="Richard Barnes"/>, <contact fullname="Stephen Farrell"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="Colm MacCárthaigh"/>, <contact fullname="Eric Rescorla"/>, <contact fullname="Benjamin Schwartz"/>, <contact fullname="Ira McDonald"/>, <contact fullname="Magnus Westerlund"/>, <contact fullname="Ilari Liusvaara"/>, <contact fullname="Valery Smyslov"/> and <contact fullname="Martin Thomson"/> for their valuable comments and feedback. Some of the text were inspired by and borrowed from <xref target="RFC8449"/>.</t>
      <t>We would also like to thank our TLS working group chairs for their support.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
vAtkuzgAAA==

-->

</rfc>
