<?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.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-super-jumbo-record-limit-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <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-03"/>
    <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="April" day="07"/>
    <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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
e3EduzgAAA==

-->

</rfc>
