<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>
<rfc category="std"
    consensus="true"
     docName="draft-antony-ipsecme-ikev2-fragment-acknowledgment-03"
     ipr="trust200902"
    sortRefs="true"
    submissionType="IETF"
    symRefs="true"
    tocDepth="3"
    tocInclude="true"
    updates="RFC7383"
    version="3">
  <front>
    <title abbrev="IKEv2 Fragment Acknowledgment">IKEv2 Fragment Acknowledgment Extension</title>
<author initials='A.' surname='Antony' fullname='Antony Antony'><organization abbrev="secunet">secunet Security Networks AG</organization>
<address><email>antony.antony@secunet.com</email></address>
</author>
<author initials='S.' surname='Klassert' fullname='Steffen Klassert'><organization abbrev="secunet">secunet Security Networks AG</organization>
<address><email>steffen.klassert@secunet.com</email></address>
</author>
<author initials='T.' surname='Brunner' fullname='Tobias Brunner'><organization abbrev="">codelabs GmbH</organization>
<address><email>tobias@codelabs.ch</email></address>
</author>
  <date/>
    <area>Internet</area>
    <workgroup>IP Security Maintenance and Extensions</workgroup>
<keyword>IPsec</keyword>
<keyword>ESP</keyword>
<keyword>IKEv2</keyword>
<abstract><t>This document specifies an extension to the Internet Key Exchange
Protocol Version 2 (IKEv2) that enables acknowledgment of IKEv2
message fragments over UDP.  The mechanism allows an IKE peer to
confirm reception of individual fragments during the IKE_AUTH exchange
and any subsequent exchanges where IKEv2 Fragmentation is used.
Support for this feature is negotiated using a new Notify Message
Status Type during IKE_SA_INIT, and fragment acknowledgments are
exchanged using a separate Notification payload. This extension
improves reliability when large IKE messages are exchanged, such as
those containing post-quantum cryptography (PQC) payloads, and reduces
retransmission overhead, thereby improving IKEv2 round-trip times in
lossy network conditions.</t></abstract>
  </front>
  <middle>

<section title="Introduction">
<t>The Internet Key Exchange Protocol Version 2 (IKEv2) <xref target="RFC7296"/> uses
an unreliable transport (UDP) for message exchange.</t>

<t>Originally, IKEv2 messages were small - typically a few hundred bytes
to a few kilobytes - such that a simple fragmentation <xref target="RFC7383"/> and
retransmission mechanism operating over UDP, without congestion control
or partial acknowledgments, was practically sufficient.  However, with
the introduction of post-quantum cryptographic (PQC) algorithms into
IKEv2 <xref target="RFC9370"/>, IKE peers are now required to exchange much larger
messages than those produced by classical algorithms, often tens of
kilobytes and sometimes approaching 64 kilobytes in size.</t>

<t>There are also several proposals to extend IKEv2 beyond the 64-kilobyte
payload limitation <xref target="I-D.nir-ipsecme-big-payload"/>,
 <xref target="I-D.smyslov-ipsecme-ikev2-extended-pld"/>,
 <xref target="I-D.tjhai-ikev2-beyond-64k-limit"/>.</t>

<t>In the current IKEv2 fragmentation mechanism <xref target="RFC7383"/>, when one or
more fragments are lost, the sender retransmits all fragments of the
message.  Practical experience shows that this can lead to significant
retransmission overhead and long delays when large fragmented messages
are exchanged.  In some chronic cases, peers may fail to establish an
IKE SA even after dozens of retransmissions.  This document proposes a
fragment acknowledgment mechanism for IKEv2, similar in concept to
acknowledgment schemes used in QUIC <xref target="RFC9000"/>.</t>

<t>When both the responder and initiator support the new IKEv2 Fragment
Acknowledgment, the initiator retransmits only the fragments
that the responder reports as missing, reducing bandwidth consumption
and latency overhead.</t>

<t>The current IKEv2 retransmission model is entirely initiator-driven:
only the initiator can decide when to retransmit a message after a
timeout <xref target="RFC7383"/>. The responder has no means to request
retransmission or to signal that it has received an incomplete set of
fragments.  This document proposes to extend that model slightly by
allowing the responder, upon receiving one or more fragments of an
IKE message and detecting that some fragments are missing, to send an
IKEv2 response, of the same exchange with Fragments Acknowledgment
notification indicating the missing fragments. The IKEv2 responder
send message with the IKEv2 Response flag set, while the initiator
send it without the IKEv2 Response flag set.  It does not require a
response, does not advance the IKEv2 Message ID state.</t>
<section title="Terminology">
<t>This document uses the following terms defined in <xref target="RFC7296"/>:
IKE_SA_INIT, IKE_AUTH, CREATE_CHILD_SA, SK_e, SK_a.</t>

<t>This document also uses the following terms defined in <xref target="RFC9242"/>:
IKE_INTERMEDIATE.</t>

<t>This document also uses the following terms defined in <xref target="RFC7383"/>:
IKEv2 Fragmentation, Total Fragments,</t>

</section>

</section>
<section title="Requirements Language">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" 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>

</section>
<section title="Fragment Acknowledgment Notify Message Status Type payload">
<t>Two Notify Message Status Types are defined: FRAGMENT_ACK_REQ, which
acknowledges fragments of an IKE request, and FRAGMENT_ACK_RES, which
acknowledges fragments of an IKE response.</t>

<t>The Fragment Acknowledgment notifiers (FRAGMENT_ACK_REQ and
FRAGMENT_ACK_RES) are primarily useful during the IKE_AUTH,
IKE_INTERMEDIATE, and CREATE_CHILD_SA exchanges.  During IKE_AUTH and
IKE_INTERMEDIATE, peer authentication may still be incomplete, but the
fragments themselves are protected by encryption and integrity using
SK_e and SK_a, which have been derived but not yet authenticated.  The
format of the fragment header is specified in <xref target="RFC7383"/>.</t>

<t>Using two distinct notifiers makes the direction of acknowledgment
explicit, avoiding ambiguity in cases of simultaneous exchanges or
delayed delivery where multiple messages share the same Message ID.</t>

<figure anchor="ike-intermediate-request">
<name>IKE_INTERMEDIATE request</name>
<sourcecode><![CDATA[
#Request
Initiator                        Responder

IKE_INTERMEDIATE --------------> received some fragments send back ACK
                        /------- IKE_INTERMEDIATE (with ACK only, R=1)
                       /
Full retransmit       /
IKE_INTERMEDIATE ----/--------->
                 <---
Only send missing fragments
IKE_INTERMEDIATE --------------> Possibly repeat above until all
                                 fragments received
]]></sourcecode></figure>

<figure anchor="ike-intermediate-response">
<name>IKE_INTERMEDIATE response</name>
<sourcecode><![CDATA[
# Response
Initiator                        Responder

                          /----- IKE_INTERMEDIATE (actual response)
                         /
Only send missing fragments
IKE_INTERMEDIATE ------/------->
                      /          Full retransmit if at least one
                 <---/           fragment received (although see below)
Received at least one     /----- IKE_INTERMEDIATE
fragment                 /
IKE_INTERMEDIATE (with ACK, R=0) --->
                       /         Only send missing fragments
                 <----/   /----- IKE_INTERMEDIATE
Possibly send another    /
ACK etc.                /
                 <-----/
]]></sourcecode></figure>


<figure anchor="fragment-ack-notify">
<name>FRAGMENT_ACK</name>
<sourcecode><![CDATA[
  1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-----------------------------+-------------------------------+
| Next Payload  !C!  RESERVED   !         Payload Length        |
+---------------+---------------+-------------------------------+
|  Protocol ID  !   SPI Size    !      Notify Message Type      |
+---------------+---------------+-------------------------------+
|         ACK #1 (16)           |  Missing #1                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         ACK #2 (16)           |  Missing #2                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ..............................                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></sourcecode></figure>

<ul>
<li><t>Protocol ID (1 octet) - MUST be 0.  MUST be ignored if not 0.</t></li>
<li><t>SPI Size (1 octet) - MUST be 0.  MUST be ignored if not 0.</t></li>
<li><t>Notify Status Message Type value (2 octets) - set to TBD2 or TBD3</t></li>
<li><t>Pairs of ACK # and Range</t></li>
</ul>

<t>The payload enumerates the set of missing fragments for a single IKE
message. The ACK # field identifies the lowest-numbered missing
fragment, and the Missing # field specifies the contiguous range of
additional missing fragments.  This allows the sender to selectively
retransmit only those fragments that have not been received.  The
Total Fragments field is present in each fragment header, as defined
in <xref target="RFC7383"/>, Section 2.5.  For example: 4,4; 7,10; and so on.</t>

<t>FRAGMENT_ACK_RES FRAGMENT_ACK_REQ or FRAGMENT_ACK_RES depends on
whether a peer is acknowledging an IKEv2 request or a response.</t>
<section title="Sending Fragment Acknowledgment response">
<t>The responder MAY send a response to an exchange with Fragment
Acknowledgment notification after receiving one or more fragments
of a request. See <xref target="ike-intermediate-request"/>. Similarly, the
initiator MAY send a Fragment Acknowledgment notification after
receiving one or more fragments of a response. See <xref target="ike-intermediate-response"/>.</t>

<t>When the initiator sends a FRAGMENT_ACK_RES notification in response
to a fragmented response, it MUST NOT set the IKE header Response (R)
bit. This results in a message reuses the same Message ID, which is
unusual in IKEv2.  However, the notifier is distinct FRAGMENT_ACK_RES.
This message is informational in nature, does not advance the
Message ID state, and does not require a response. The exchange type
is same the request.</t>

</section>
<section title="Processing Fragment Acknowledgment Message">
<t>Unlike typical IKEv2 exchanges, which complete when a response with
the matching Message ID arrives, Fragment Acknowledgment notification
do not indicate completion of the exchange.  Instead, this message
requests retransmission of the missing fragments and MUST NOT advance
the IKEv2 Message ID counter.</t>

<t>When the sender retransmits in response to a Fragment Acknowledgment,
it SHOULD begin with the lowest missing fragment. (See editor’s note
below regarding potential use of INFORMATIONAL exchanges.)</t>

</section>

</section>
<section title="Negotiation">
<t>The use of Fragment Acknowledgment MUST be negotiated during the
IKE_SA_INIT exchange.  Both the initiator and the responder indicate
support for this extension by including the
FRAGMENT_ACK_SUPPORTED Notify Message Status Type (value TBD1)
in the IKE_SA_INIT request and response messages.  The presence of
this notification in both directions confirms that both peers support
the Fragment Acknowledgment mechanism. In addition, both peers MUST
also signal support for IKEv2 Fragmentation by sending the
IKEV2_FRAGMENTATION_SUPPORTED notification as specified in Section
2.3 Negotiation of <xref target="RFC7383"/>.</t>

<t>If either peer omits the FRAGMENT_ACK_SUPPORTED notification in
IKE_SA_INIT the extension MUST NOT be used in subsequent exchanges
within that IKE SA.</t>

<t>The FRAGMENT_ACK_SUPPORTED notification follows the general rules for
Notify Message Status Types as specified in <xref target="RFC7296"/>, Section 3.10.
It does not include any data in the Notification Data field.</t>

</section>
<section title="Backward Compatibility">
<t>Receipt of a FRAGMENT_ACK_REQ or FRAGMENT_ACK_RES notification
MUST NOT be interpreted as advancing the IKEv2 exchange state.
Instead it is signal to retransmit only the missing fragments.
It MUST only be sent after both peers have indicated support for
FRAGMENT_ACK_SUPPORTED.</t>

</section>
<section title="Operational Considerations">
<t>The FRAGMENT_ACK notification message SHOULD NOT be large enough to
cause PMTU issues.  If the number of acknowledged fragments
results in a payload that approaches the PMTU or the IKEv2
fragment size, the sender MAY limit the number of missing fragment
ranges included in a single message and send multiple FRAGMENT_ACK
messages if necessary.  Implementations SHOULD ensure that each
FRAGMENT_ACK message fits within a single UDP datagram to avoid
IP-layer fragmentation.</t>

<t>When the sender receives multiple FRAGMENT_ACK messages, the sender
treats the union of all ranges acknowledged so far as the
authoritative view.</t>
<section title="When to Send a Fragment Acknowledgment">
<t>Since the IKEv2 retransmission model is sender-driven, the responder
SHOULD be conservative about when to send the first FRAGMENT_ACK
message.  A responder MAY send a FRAGMENT_ACK only after it detects
that the sender has retransmitted at least one fragment of the same
message, indicating that one or more fragments were likely lost.  In
general, an IKE peer sending a FRAGMENT_ACK message SHOULD do so only
when it can provide useful information about missing fragments, in
order to avoid unnecessary traffic and message processing overhead
and to remain consistent with the sender-driven retransmission model
of IKEv2. However, with large number of fragments this may take long
time to converge.</t>

</section>
<section title="IV reuse when using AEAD">
<t>One potential implementation issue I can see with these ACKs is the IV
when using AEAD.  Both the request and the response use the same Message
ID as the actual messages more than once. If the IKEv2 Message ID is
used as IV this would lead to reuse of IV. Which MUST be avoided.</t>

</section>
<section title="Update to RFC7383">
<t><xref target="RFC7383"/> specifies that when an IKE message is retransmitted, all
fragments of that message, including the first fragment, MUST be
retransmitted.  The selective retransmission enabled by the
FRAGMENT_ACK mechanism defined in this document relaxes that
requirement by allowing the sender to retransmit only the fragments
that the peer identifies as missing.  Accordingly, this document
updates <xref target="RFC7383"/> by modifying the retransmission behavior specified
in Section 2.6. When FRAGMENT_ACK is negotiated, a sender MAY
retransmit only the fragments indicated as missing by the peer, rather
than retransmitting all fragments including fragment number 1.</t>

<t>Section 4 of <xref target="RFC7383"/> should be updated to allow fragment
acknowledgment.</t>

</section>

</section>
<section title="Editors Notes Open Issues">
<t>The following issues are retained for discussion during the evolution
of this document and are expected to be resolved or removed if the
document becomes a Working Group item.</t>

<ul>
<li><t>PMTU discovery mentioned in <xref target="RFC7383"/> should work as it is.</t></li>
<li><t>This I.D. opens up possibility to send fragments of different
sizes for PMTU detection. Because of the ACKs the sender
      can deduce PMTU.</t></li>
<li><t>When fragments exceed the PMTU, they may not be acknowledged,
and the IKE state will not advance. This will have re-fragmented
as specified in <xref target="RFC7383"/></t></li>
<li><t>Why not use IKEv2 INFORMATIONAL? That may adhere more to IKEv2.
However, every INFORMATIONAL needs a response. And if there is no
response the INFORMATIONAL message MUST be retransmitted to advance
IKE state. This would lead to complex unpredictable retransmissions.</t></li>
<li><t>Why not make new IKEv2 exchange without a response? Instead of
responding to the same : responding with IKE_AUTH or IKE_INTERMEDIATE
This is worth considering. New Exchange IKE_FRAG_ACK : which has no
response. The message will carry IKE exchange and message ID it is
responding to. This might be bigger change. This will be a bigger
protocol change. Probably too complicated?</t></li>
<li><t>Should every acknowledgment sent by an IKE peer MUST include the
entire state of the buffer. That is, acknowledgments are cumulative.
However, when the entire state does not conservatively fit into one
packet FRAGMENT_ACK message would be partial.</t></li>
<li><t>Rename ACK to NACK? -ve acknowledgment? or SACK May be later?</t></li>
</ul>
<section title="New Exchange: IKE_FRAG_ACK?">
<t>A possible design alternative is to define a new IKEv2 exchange type,
IKE_FRAG_ACK, which carries fragment acknowledgment information but
does not have a response.  Each IKE_FRAG_ACK message would include
the Exchange Type and Message ID of the IKE message it acknowledges.
This exchange has no response specified. It is one shot message.
This approach would decouple fragment acknowledgment from existing IKE
exchanges such as IKE_AUTH, IKE_INTERMEDIATE or CREATE_CHILD_SA.</t>

</section>
<section title="Why not TCP?">
<t>Reliable transport for IKEv2 over TCP, as proposed in
<xref target="I-D.ietf-ipsecme-ikev2-reliable-transport"/>, adds implementation
complexity and resource cost.  It requires maintaining both TCP and
UDP sockets, increasing energy use on low-powered devices.  Using TCP
for IKE while keeping ESP in UDP mode through NAT gateways introduces
additional state and resource requirements.  It may also be less
compatible with hardware offloading and inefficient for low-power or
mobile platforms.</t>

<t>Antony's position is that using TCP for IKEv2 is not an ideal
solution for improving reliability.  While a UDP based ideas
borrowed from QUIC-based could provide reliable transport and
may be one day congestion control!
It would be complex for the limited goal of fragment acknowledgment
and selective retransmission. Other authors may have different views
on this topic.</t>

</section>

</section>
<section title="IANA Considerations">
<t>This document defines one new registration for the IANA
"IKEv2 Notify Message Status Types" registry.</t>

<table>

<thead><tr><th>Value</th><th>Notify Message Status Type</th><th>Reference</th></tr>
</thead>
<tbody><tr><td>[TBD1]</td><td>FRAGMENT_ACK_SUPPORTED</td><td>[this document]</td></tr>
<tr><td>[TBD2]</td><td>FRAGMENT_ACK_REQ</td><td>[this document]</td></tr>
<tr><td>[TBD2]</td><td>FRAGMENT_ACK_RES</td><td>[this document]</td></tr>
</tbody>
</table>

</section>
<section title="Acknowledgments">
<t>ACKs TBD</t>

</section>
<section title="Security Considerations">
<t>TBD</t>

</section>
</middle>
<back>
<references title="Normative References">
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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="RFC7296" target="https://www.rfc-editor.org/info/rfc7296">
  <front>
    <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
    <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="Y. Nir" initials="Y." surname="Nir"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
    <date month="October" year="2014"/>
    <abstract>
      <t>This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="79"/>
  <seriesInfo name="RFC" value="7296"/>
  <seriesInfo name="DOI" value="10.17487/RFC7296"/>
</reference>
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/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="RFC7383" target="https://www.rfc-editor.org/info/rfc7383">
  <front>
    <title>Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation</title>
    <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
    <date month="November" year="2014"/>
    <abstract>
      <t>This document describes a way to avoid IP fragmentation of large Internet Key Exchange Protocol version 2 (IKEv2) messages. This allows IKEv2 messages to traverse network devices that do not allow IP fragments to pass through.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7383"/>
  <seriesInfo name="DOI" value="10.17487/RFC7383"/>
</reference>
</references>
<references title="Informative References">
<reference anchor="RFC9370" target="https://www.rfc-editor.org/info/rfc9370">
  <front>
    <title>Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
    <author fullname="CJ. Tjhai" initials="CJ." surname="Tjhai"/>
    <author fullname="M. Tomlinson" initials="M." surname="Tomlinson"/>
    <author fullname="G. Bartlett" initials="G." surname="Bartlett"/>
    <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
    <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
    <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
    <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
    <date month="May" year="2023"/>
    <abstract>
      <t>This document describes how to extend the Internet Key Exchange Protocol Version 2 (IKEv2) to allow multiple key exchanges to take place while computing a shared secret during a Security Association (SA) setup.</t>
      <t>This document utilizes the IKE_INTERMEDIATE exchange, where multiple key exchanges are performed when an IKE SA is being established. It also introduces a new IKEv2 exchange, IKE_FOLLOWUP_KE, which is used for the same purpose when the IKE SA is being rekeyed or is creating additional Child SAs.</t>
      <t>This document updates RFC 7296 by renaming a Transform Type 4 from "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and renaming a field in the Key Exchange Payload from "Diffie-Hellman Group Num" to "Key Exchange Method". It also renames an IANA registry for this Transform Type from "Transform Type 4 - Diffie- Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange Method Transform IDs". These changes generalize key exchange algorithms that can be used in IKEv2.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9370"/>
  <seriesInfo name="DOI" value="10.17487/RFC9370"/>
</reference>
<reference anchor="RFC9000" target="https://www.rfc-editor.org/info/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="RFC9242" target="https://www.rfc-editor.org/info/rfc9242">
  <front>
    <title>Intermediate Exchange in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
    <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
    <date month="May" year="2022"/>
    <abstract>
      <t>This document defines a new exchange, called "Intermediate Exchange", for the Internet Key Exchange Protocol Version 2 (IKEv2). This exchange can be used for transferring large amounts of data in the process of IKEv2 Security Association (SA) establishment. An example of the need to do this is using key exchange methods resistant to Quantum Computers (QCs) for IKE SA establishment. The Intermediate Exchange makes it possible to use the existing IKE fragmentation mechanism (which cannot be used in the initial IKEv2 exchange), helping to avoid IP fragmentation of large IKE messages if they need to be sent before IKEv2 SA is established.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9242"/>
  <seriesInfo name="DOI" value="10.17487/RFC9242"/>
</reference>
<reference anchor="I-D.ietf-ipsecme-ikev2-reliable-transport" target="https://datatracker.ietf.org/doc/html/draft-ietf-ipsecme-ikev2-reliable-transport-00">
  <front>
    <title>Separate Transports for IKE and ESP</title>
    <author fullname="Valery Smyslov" initials="V." surname="Smyslov">
      <organization>ELVIS-PLUS</organization>
    </author>
    <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
      <organization>Nokia</organization>
    </author>
    <date day="6" month="October" year="2025"/>
    <abstract>
      <t>The Internet Key Exchange protocol version 2 (IKEv2) can operate either over unreliable (UDP) transport or over reliable (TCP) transport. If TCP is used, then IPsec tunnels created by IKEv2 also use TCP. This document specifies how to decouple IKEv2 and IPsec transports so that IKEv2 can operate over TCP, while IPsec tunnels use unreliable transport. This feature allows IKEv2 to effectively exchange large blobs of data (e.g., when post-quantum algorithms are employed) while avoiding performance problems that arise when IPsec uses TCP.</t>
    </abstract>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-ipsecme-ikev2-reliable-transport-00"/>
</reference>
<reference anchor="I-D.nir-ipsecme-big-payload" target="https://datatracker.ietf.org/doc/html/draft-nir-ipsecme-big-payload-06">
  <front>
    <title>A Larger Internet Key Exchange version 2 (IKEv2) Payload</title>
    <author fullname="Yoav Nir" initials="Y." surname="Nir">
      <organization>Dell Technologies</organization>
    </author>
    <date day="14" month="September" year="2025"/>
    <abstract>
      <t>The messages of the Internet Key Exchange version 2 (IKEv2) protocol are made up of payloads. The current protocol limits each of these payloads to 64KB by having a 2-byte length field. While this is usually enough, several of the payloads may need to be larger. This document updates RFC 7296 by defining an extension that allows larger payloads.</t>
    </abstract>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-nir-ipsecme-big-payload-06"/>
</reference>
<reference anchor="I-D.smyslov-ipsecme-ikev2-extended-pld" target="https://datatracker.ietf.org/doc/html/draft-smyslov-ipsecme-ikev2-extended-pld-01">
  <front>
    <title>Extended IKEv2 Payload Format</title>
    <author fullname="Valery Smyslov" initials="V." surname="Smyslov">
      <organization>ELVIS-PLUS</organization>
    </author>
    <date day="6" month="March" year="2023"/>
    <abstract>
      <t>This document describes an extended payload format for the Internet Key Exchange protocol version 2 (IKEv2) messages. This format allows both to decrease an overhead many IKEv2 payloads have and to overcome the current 64 Kbytes limit on the maximum payload size.</t>
    </abstract>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-smyslov-ipsecme-ikev2-extended-pld-01"/>
</reference>
<reference anchor="I-D.tjhai-ikev2-beyond-64k-limit" target="https://datatracker.ietf.org/doc/html/draft-tjhai-ikev2-beyond-64k-limit-03">
  <front>
    <title>Beyond 64KB Limit of IKEv2 Payloads</title>
    <author fullname="C. Tjhai" initials="C." surname="Tjhai">
      <organization>Post-Quantum</organization>
    </author>
    <author fullname="Tobias Heider" initials="T." surname="Heider">
      <organization>genua GmbH</organization>
    </author>
    <author fullname="Valery Smyslov" initials="V." surname="Smyslov">
      <organization>ELVIS-PLUS</organization>
    </author>
    <date day="28" month="July" year="2022"/>
    <abstract>
      <t>The maximum Internet Key Exchange Version 2 (IKEv2) payload size is limited to 64KB. This makes IKEv2 not usable for conservative post- quantum cryptosystem whose public-key is larger than 64KB. This document discusses the considerations and defines a mechanism to exchange large post-quantum public keys and signatures in IKEv2.</t>
    </abstract>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-tjhai-ikev2-beyond-64k-limit-03"/>
</reference>
</references>
<section title="Additional Stuff">
<t>TBD</t>

</section>
  </back>
</rfc>
