Skip to main content

IPv6 Extended Fragment Header
draft-templin-6man-ipid-ext2-02

Document Type Active Internet-Draft (individual)
Author Fred Templin
Last updated 2024-04-12
Replaces draft-templin-6man-ipid-ext
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-templin-6man-ipid-ext2-02
Network Working Group                                 F. L. Templin, Ed.
Internet-Draft                              Boeing Research & Technology
Updates: 8200, 8900, 9268 (if approved)                    12 April 2024
Intended status: Standards Track                                        
Expires: 14 October 2024

                     IPv6 Extended Fragment Header
                    draft-templin-6man-ipid-ext2-02

Abstract

   The Internet Protocol, version 4 (IPv4) header includes a 16-bit
   Identification field in all packets, but this length is too small to
   ensure reassembly integrity even at moderate data rates in modern
   networks.  Even for Internet Protocol, version 6 (IPv6), the 32-bit
   Identification field included when a Fragment Header is present may
   be smaller than desired for some applications.  This specification
   addresses these limitations by defining an IPv6 Extended Fragment
   Header that includes a 64-bit Identification; it further defines a
   control messaging service for fragment retransmission and reassembly
   congestion management.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 14 October 2024.

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.

Templin                  Expires 14 October 2024                [Page 1]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Motivation  . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  IPv6 Extended Fragment Header . . . . . . . . . . . . . . . .   4
   5.  IPv6 Source Fragmentation . . . . . . . . . . . . . . . . . .   7
   6.  Destination Qualification and Path MTU  . . . . . . . . . . .   8
   7.  Packet Size Issues  . . . . . . . . . . . . . . . . . . . . .   8
   8.  MTU/Fragmentation Reports and Retransmissions . . . . . . . .   9
   9.  Multicast and Anycast . . . . . . . . . . . . . . . . . . . .  10
   10. Requirements  . . . . . . . . . . . . . . . . . . . . . . . .  11
   11. A Note on Fragmentation Considered Harmful  . . . . . . . . .  12
   12. Implementation Status . . . . . . . . . . . . . . . . . . . .  13
   13. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13
   14. Security Considerations . . . . . . . . . . . . . . . . . . .  13
   15. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  14
   16. References  . . . . . . . . . . . . . . . . . . . . . . . . .  14
     16.1.  Normative References . . . . . . . . . . . . . . . . . .  14
     16.2.  Informative References . . . . . . . . . . . . . . . . .  15
   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . .  16
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  17

1.  Introduction

   The Internet Protocol, version 4 (IPv4) header includes a 16-bit
   Identification in all packets [RFC0791], but this length is too small
   to ensure reassembly integrity even at moderate data rates in modern
   networks [RFC4963][RFC6864][RFC8900].  For Internet Protocol, version
   6 (IPv6), the Identification field is only present in packets that
   include a Fragment Header where its standard length is 32-bits
   [RFC8200], but even this length may be too small for some
   applications (such as those that regard the Identification value as a
   sequence number).  This specification therefore defines a means to
   extend the IPv6 Identification length through the introduction of a
   new IPv6 Extended Fragment Header.

   The Extended Fragment Header may be useful for networks that engage
   fragmentation and reassembly at extreme data rates, or for cases when
   advanced packet Identification uniqueness assurance is critical.
   (The placement of the Extended Fragment Header in a Destination
   Options header also makes the packet less prone to loss due to

Templin                  Expires 14 October 2024                [Page 2]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   network filtering.)  This specification further defines a messaging
   service for adaptive realtime response to loss and congestion related
   to fragmentation/reassembly.  Together, these extensions support
   robust fragmentation and reassembly services as well as packet
   Identification uniqueness for IPv6.

2.  Terminology

   The terms "Maximum Transmission Unit (MTU)", "Effective MTU to
   Receive (EMTU_R)", "Effective MTU to Send (EMTU_S)" and "Maximum
   Segment Lifetime (MSL)" are used exactly the same as for standard
   Internetworking terminology [RFC1122].  The term MSL is equivalent to
   the term "maximum datagram lifetime (MDL)" defined in
   [RFC0791][RFC6864].

   The term "Packet Too Big (PTB)" refers to an IPv6 "Packet Too Big"
   [RFC8201][RFC4443] message.

   The term "flow" refers to a sequence of packets sent from a
   particular source to a particular unicast, anycast or multicast
   destination [RFC6437].

   The Automatic Extended Route Optimization (AERO)
   [I-D.templin-6man-aero3] and Overlay Multilink Network Interface
   (OMNI) [I-D.templin-6man-omni3] services rely on the IPv6 Extended
   Fragment Header for secure adaptation layer encapsulation and
   fragmentation.

   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 [RFC2119][RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Motivation

   Upper layer protocols often achieve greater performance by
   configuring segment sizes that exceed the path Maximum Transmission
   Unit (MTU).  When the segment size exceeds the path MTU, IP
   fragmentation at some layer is a natural consequence.  However, the
   4-octet (32-bit) Identification field of the Fragment Header may be
   too small to ensure reassembly integrity at sufficiently high data
   rates, especially when the source resets the starting sequence number
   often to maintain an unpredictable profile [RFC7739].  This
   specification therefore proposes to fortify the IPv6 Identification
   by extending its length.

Templin                  Expires 14 October 2024                [Page 3]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   Performance increases for upper layer protocols that use larger
   segment sizes was historically observed for NFS over UDP, and can
   still be readily observed today for TCP and the Delay Tolerant
   Network (DTN) Licklider Transmission Protocol (LTP).  A simple test
   setup consists of a pair of modern high-performance servers with
   100Gbps Ethernet cards connected via a point-to-point link and
   running a public domain linux release such as Ubuntu.  TCP
   performance using the public domain 'iperf3' tool is proven to
   increase when larger segment sizes are used even if they exceed the
   path MTU.

   LTP performance with segment sizes that exceed the path MTU is
   similarly proven using the HDTN and ION-DTN LTP implementations.
   QUIC performance testing using the 'qperf' tool does not show an
   advantage for the use of larger path MTUs (with or without
   fragmentation) since 'qperf' limits its packet sizes to 1280 octets.
   For this reason, 'qperf' performance was a factor of 4 less than LTP
   and a factor of 8 less than TCP when those protocols used larger
   packet sizes and/or invoked fragmentation.

   In addition to accommodating higher data rates in the presence of
   fragmentation and reassembly, extending the IPv6 Identification can
   enable other important services.  For example, an extended
   Identification can enable a duplicate packet detection service in
   which the network remembers recent Identification values for a flow
   to aid detection of potential duplicates (note however that the
   network layer must not incorrectly flag intentional lower layer
   retransmissions as duplicates).  An extended Identification can also
   provide a packet sequence number that allows communicating peers to
   exclude any packets with values outside of a current sequence number
   window for a flow as potential spurious transmissions.

   A robust IP fragmentation and reassembly service can provide a useful
   tool for performance maximization in the Internet when an extended
   Identification is available.  This document therefore presents a
   means to extend the IPv6 Identification to better support these
   services through the introduction of an IPv6 Extended Fragment
   Header.

4.  IPv6 Extended Fragment Header

   For a standard 4-octet IPv6 Identification, the source can simply
   include an ordinary IPv6 Fragment Header as specified in [RFC8200]
   with the Fragment Offset field and M flag set either to values
   appropriate for a fragmented packet or the value 0 for an
   unfragmented packet.  The source then includes a 4-octet
   Identification value for the packet.

Templin                  Expires 14 October 2024                [Page 4]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   For an extended Identification and/or for paths that drop packets
   including the standard IPv6 Fragment Header, this specification
   permits the source to instead include an IPv6 Extended Fragment
   Header in a Destination Options Header in the same extension header
   order where the Fragment Header would normally appear.

   The source includes the Extended Fragment Header as the lone option
   in a Destination Options header inserted after any Per-Fragment
   headers and before the Extension and Upper Layer Headers for the
   first fragment or before the Fragment data for non-first fragments.
   The header therefore appears in each fragment in the same position
   where the standard Fragment Header would otherwise appear - see
   Sections 4.1 and 4.5 of [RFC8200].

   Since middleboxes may not recognize this as a Fragment Header,
   however, the source caches the Destination Options Next Header value
   in the Extended Fragment Header Option NH-Cache field and upon
   fragmentation sets the Next Header field to "No Next Header" to avoid
   any possibility for confusion (the destination will restore the Next
   Header value upon reassembly).

   The IPv6 Extended Fragment Header is formatted as shown in Figure 1:

Templin                  Expires 14 October 2024                [Page 5]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Next Header  |  Hdr Ext Len  |  Option Type  |  Opt Data Len |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   NH-Cache    |   Index   |Res|      Fragment Offset    |Res|M|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    +-+-+-+-              Identification (64 bits)           -+-+-+-+
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Next Header           Identifies the next header following the
                          Destination Options header containing the
                          Extended Fragment Header Option.

    Hdr Ext Len           Encodes the constant value 1, meaning 2
                          8-octet units.

    Option Type           8-bit value 'XX0[TBD1]'.

    Opt Data Len          8-bit value 12.

    NH-Cache              a cached copy of the original Destination
                          Options Next Header prior to fragmentation.

    Index/Res             a 6-bit "Index" field  that identifies the
                          ordinal fragment index for non-first fragments
                          of a fragmented packet, followed by a 2-bit
                          "(Res)erved" field. (For first fragments, the
                          Index field is also Reserved.)

    Offset/Res/M          the same as the fields of the standard IPv6
                          Fragment Header.

    Identification        an 8-octet (64 bit) unsigned integer
                          Identification, in network byte order.

                Figure 1: IPv6 Extended Fragment Header

   The Extended Fragment Header Option is therefore identified as an
   Option Type with the low-order 5 bits set to TBD1 (see: IANA
   Considerations), with the third-highest-order bit (i.e., "chg") set
   to 0 and with the highest-order 2 bits (i.e., "act") set as discussed
   below.  The Identification field is 8 octets (64 bits) in length, and
   a Destination Options header that includes the option may appear
   either in an unfragmented IPv6 packet or in one for which IPv6
   fragmentation is applied (with a copy of the header appearing in each
   fragment).

Templin                  Expires 14 October 2024                [Page 6]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   When the source includes an Extended Fragment Header Option and
   applies source fragmentation (see: Section 5, it sets "act" to '01',
   '10' or '11' so that destinations that do not recognize the option
   will drop the fragments and (possibly) also return an ICMPv6
   Parameter Problem message.  When no source fragmentation is applied,
   the source can optionally set "act" to '00' allowing the destination
   to process the packet even if it does not recognize the Extended
   Fragment Header.

5.  IPv6 Source Fragmentation

   When the source applies source fragmentation using the Extended
   Fragment Header Option, fragmentation procedures are the same as for
   standard IPv6 fragmentation except that the Destination Options
   header containing the option appears in place of the standard IPv6
   Fragment Header (see: Section 4.5 of [RFC8200]) and the Fragment
   Header is omitted.

   During source fragmentation, the source SHOULD produce the smallest
   number of fragments possible (i.e., the largest possible fragments)
   within current path MTU constraints.  In particular, the source
   SHOULD limit the number of fragments produced to no more than 64
   fragments per packet, allowing for all conventional packet sizes up
   to and including the 65535 octet maximum under the 1280 octet IPv6
   minimum path MTU.

   For each fragment produced during fragmentation except for the first
   (i.e., the one with Offset=0), the source writes an ordinal index
   number in the Extended Fragment Header "Index" field.  Specifically,
   the source sets Index to 1 for the first non-first fragment, 2 for
   the second, 3 for the third, etc., up to and including the final
   fragment (i.e., the one with M=0).  If there are more than 64
   fragments, the source sets Index to 63 in all remaining fragments
   beginning with the 64th up to and including the final.

   The source also caches the Destination Options header Next Header
   value in the NH-Cache field.  For each fragment produced during
   fragmentation, the source includes the Destination Options header in
   place of the standard Fragment Header and resets its Next Header
   field to "No Next Header".

   The destination then reassembles the same as specified in Section 4.5
   of [RFC8200].  Following reassembly, the destination resets the
   Destination Options header Next Header field to the value cached in
   the NH-Cache field of the first fragment.

Templin                  Expires 14 October 2024                [Page 7]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   Intermediate systems that forward packets fragmented in this way will
   therefore ignore the data that follows the Extended Fragment Header
   Destination Options header (by virtue of the "No Next Header"
   setting) unless they are configured to more deeply inspect the data
   content.

6.  Destination Qualification and Path MTU

   Destinations that do not recognize the Extended Fragment Header
   Destination Option accept or drop the packet according to the Option
   Type "act" code.  If "act" is '00', destinations ignore the option
   and accept the packet.  For other "act" codes, destinations instead
   drop the packet and (for codes '1X') may return a Code 2 ICMPv6
   Parameter Problem message [RFC4443].  (ICMPv6 messages may be lost on
   the return path and/or manufactured by an adversary, however, and
   therefore provide only an advisory indication.)

   The source can then test whether destinations recognize the Extended
   Fragment Header by occasionally sending "probe" packets (either
   fragmented or unfragmented) that include the option with an "act"
   code other than '00'.  The source has assurance that some
   destinations recognize the option if it receives acknowledgments and/
   or hints that some destinations do not recognize the option if it
   receives ICMPv6 Parameter Problem messages.  The source should re-
   probe destinations occasionally in case routing redirects a flow to a
   different anycast destination or in case a multicast group membership
   changes (see: Section 9).

   The source can also include IPv6 Minimum Path MTU Discovery Hop-by-
   Hop Options in packets/fragments sent to unicast, multicast or
   anycast destinations per [RFC9268].  If the source receives
   acknowledgements that include an MTU/Fragmentation Report Option
   (see: Section 8), the source should regard the reported MTU as the
   largest potential fragment size for this destination under current
   path MTU conditions noting that the actual size may be smaller still
   for some paths.

7.  Packet Size Issues

   When a router attempts to forward an IPv6 packet (or fragment) that
   exceeds the next hop link MTU but for which fragmentation is
   forbidden, it returns a standard ICMPv6 Packet Too Big (PTB) message
   to the source [RFC4443][RFC8201] and discards the packet.  This
   always results in wasted transmissions by the source and all routers
   on the path toward the one with the restricting link.  Moreover, the
   messages are subject to spoofing and loss in the network [RFC2923].

Templin                  Expires 14 October 2024                [Page 8]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   Since routers are not permitted to perform IPv6 fragmentation, this
   means that the source should perform source fragmentation (if
   necessary) with a maximum fragment size limited to the path MTU.  If
   the source receives PTB messages, it should reduce the size of the
   packets/fragments it sends.

   While the fragmentation and reassembly processes eliminate wasted
   transmissions and support significant performance gains by
   accommodating upper layer protocol segment sizes that exceed the path
   MTU, the processes sometimes represent pain points for the
   destination and/or network as a whole that the destination should
   communicate to the source.  The source should then take measures to
   reduce the size of the packets that it sends.

8.  MTU/Fragmentation Reports and Retransmissions

   End systems that recognize the Extended Fragment Header also
   recognize an MTU/Fragmentation Report Option for TCP [RFC9293] and
   UDP [I-D.ietf-tsvwg-udp-options].  The {TCP,UDP} option is formatted
   as shown in Figure 2:

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Kind      |     Length    |             ExID              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         MTU (32 bits)                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +-+-+-+-            Identification (64 bits)             -+-+-+-+
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                                                               ~
      +~+~+~+~          Bitmap (64 bits when present)          ~+~+~+~+
      |                                                               |
      +~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+

                 Figure 2: MTU/Fragmentation Report Option

   The destination end system includes the MTU/Fragmentation Report
   Option in the {TCP,UDP} header of a return packet to the source when
   reassembly congestion and/or fragment loss occurs.  (Destinations
   that receive IPv6 packets with both the Extended Fragment Header
   Destination Option and the IPv6 Minimum Path MTU Discovery Hop-by-Hop
   Option [RFC9268] also return MTU/Fragmentation Reports in this way.)
   Any {TCP,UDP} packet that is part of an ongoing flow can be used to
   carry the option, especially if it includes identifying parameters
   and/or authentication signatures.

Templin                  Expires 14 October 2024                [Page 9]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   The destination sets Kind to 253 for TCP [RFC6994][RFC9293] or 127
   for UDP [I-D.ietf-tsvwg-udp-options], then sets ExID to TBD2 (see:
   IANA Considerations).  The destination next sets MTU to the
   recommended receive size under current congestion conditions and sets
   Identification to the value for the current reassembly.  If all
   fragments of the packet (or the unfragmented packet itself) have
   arrived the destination sets Length to 16 and omits the Bitmap field.
   If some fragments are missing, the destination instead sets Length to
   20 and includes a 64-bit Bitmap field with Bitmap(i) (for i=0 to 63)
   set to 1 for each ordinal fragment index it has received for this
   reassembly and set to 0 for all others.

   When the source receives authentic {TCP,UDP}/IPv6 packets with the
   MTU/Fragmentation Report Option, it should decrease the size of its
   future packet transmissions to this destination, where the value in
   the MTU field includes a recommended maximum packet size under
   current congestion conditions.  If the option includes a Bitmap with
   some bits set to 0, the source can retransmit any missing ordinal
   fragments if it still has them in its cache.  When the source ceases
   to receive MTU/Fragmentation Reports, it can begin to increase the
   size of its future packet transmissions to this destination.

   Note: when the destination reassembles a fragment chain that includes
   more than 64 fragments, it sets Bitmap(63) to 1 only if it has
   received all ordinal fragments beginning with the 64th and beyond;
   otherwise, it sets Bitmap(63) to 0.  This may cause the source to
   unnecessarily retransmit many trailing fragments beginning with
   ordinal 63 up to and including the final fragment.

   Note: the above source packet size adaptation based on destination
   reassembly feedback parallels the Additive Increase, Multiplicative
   Decrease (AIMD) congestion control strategy employed by TCP and other
   reliable transports.

9.  Multicast and Anycast

   In addition to unicast flows, similar considerations apply for flows
   in which the destination is a multicast group or an anycast address.
   Unless the source and all candidate destinations are members of a
   limited domain network [RFC8799] for which all nodes recognize the
   IPv6 Extended Fragment Header Destination Option, some destinations
   may recognize the option while others drop packets containing the
   option and may return a Code 2 ICMPv6 Parameter Problem message
   [RFC4443].

   When a source sends packets/fragments with IPv6 Extended Fragment
   Headers to a multicast group, the packets/fragments may be replicated
   in the network such that a single transmission may reach N

Templin                  Expires 14 October 2024               [Page 10]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   destinations over as many as N different paths.  Some destinations
   may then return {TCP/UDP}/IPv6 packets with MTU/Fragmentation Reports
   if they experience congestion and/or loss.  (Some destinations may
   also return Code 2 ICMPv6 Parameter Problem messages if they do not
   recognize the Extended Fragment Header.)

   While the source receives authentic PTB messages or {TCP,UDP} packets
   with MTU/Fragmentation Reports, it should reduce the sizes of the
   packets/fragments it sends to the multicast group even if only one or
   a few paths or destinations are currently experiencing congestion.
   This means that transmissions to a multicast group will converge to
   the performance characteristics of the lowest common denominator
   group member destinations and/or paths.  While the source receives
   ICMPv6 Parameter Problem messages and/or otherwise detects that some
   multicast group members do not recognize the Extended Fragment Header
   Option, it must determine whether the benefits for group members that
   recognize the option outweigh the drawbacks of service denial for
   those that do not.

   When a source sends packets/fragments with IPv6 Extended Fragment
   Headers to an anycast address, routing may direct initial fragments
   of the same packet to a first destination that configures the address
   while directing the remaining fragments to other destinations that
   configure the address.  These wayward fragments will simply result in
   incomplete reassemblies at each such anycast destination which will
   soon purge the fragments from the reassembly buffer.  The source will
   eventually retransmit, and all resulting fragments should eventually
   reach a single reassembly target.

10.  Requirements

   All nodes that process an IPv6 Destination Options Header with
   Extended Fragment Header observe the extension header limits
   specified in [I-D.ietf-6man-eh-limits].

   Intermediate systems MUST forward without dropping IPv6 packets that
   include a Destination Options header with an Extended Fragment Header
   unless they detect a security policy threat through deeper inspection
   of protocol data that follows.

   Destinations that accept flows using Extended Fragment Headers MUST
   configure an EMTU_R of 65535 octets or larger.

Templin                  Expires 14 October 2024               [Page 11]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   Sources MUST include at most one IPv6 Standard or Extended Fragment
   Header in each IPv6 packet/fragment.  Intermediate systems and
   destinations SHOULD silently drop packets/fragments with multiples.
   If the source includes an Extended Fragment Header Option, it must
   appear as the only option in a Destination Options header that
   appears in the same extension header order that the IPv6 Standard
   Fragment Header would normally appear.

   Sources and Destinations that recognize the Extended Fragment Header
   Option MUST also recognize the {TCP,UDP} MTU/Fragmentation Report
   Option as specified in Section 8.

   Sources SHOULD maintain a cache of recently-sent fragments in case
   the destination requests retransmission.  The destination is required
   to send an "ICMP Time Exceeded - Fragment Reassembly Time Exceeded"
   message if insufficient fragments are received to complete reassembly
   within 60 seconds (see: Section 4.5 of [RFC8200]), but that time may
   be longer than practical for the source to retain fragments in a
   retransmission cache.  The source SHOULD therefore maintain the cache
   for only a small time delta beyond the round-trip time to the
   destination, and the destination SHOULD send Fragmentation Reports as
   early as practically possible upon experiencing fragment loss.

11.  A Note on Fragmentation Considered Harmful

   During the earliest days of internetworking, researchers attributed
   the warning label "harmful" to IP fragmentation based on empirical
   observations in the ARPANET, DARPA Internet and other internetworks
   of the day [KENT87].  This inspired an engineering discipline known
   as "Path MTU Discovery" within an emerging community of interest
   known as the Internet Engineering Task Force (IETF).

   In more recent times, the IETF published "IP Fragmentation Considered
   Fragile" [RFC8900] to characterize the current state of fragmentation
   in the modern Internet.  The IPv6 Extended Fragment Header now
   introduces a more robust solution based on a properly functioning IP
   fragmentation and reassembly service as intended in the original
   architecture.

   Although the IP fragmentation and reassembly services provide an
   appropriate solution for conventional packet sizes as large as 65535
   octets, they cannot be applied for larger packets nor for IP parcels
   and Advanced Jumbos (AJs) of any size [I-D.templin-intarea-parcels2].
   This means that a combined solution with robust fragmentation and
   reassembly applied in parallel with traditional path MTU probing
   provides a combination well suited for Internetworking futures.  This
   document therefore updates [RFC8900].

Templin                  Expires 14 October 2024               [Page 12]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

12.  Implementation Status

   In progress.

13.  IANA Considerations

   The IANA is requested to assign a new IPv6 Destination Option type in
   the "Destination Options and Hop-by-Hop Options" table of the
   'ipv6-parameters' registry (registration procedures IESG Approval,
   IETF Review or Standards Action).  The option should appear in 4
   consecutive table entries that set "act" to 'XX', "chg" to '0',
   "rest" to TBD1, "Description" to "IPv6 Extended Fragment Header" and
   "Reference" to this document [RFCXXXX] (i.e., with "act" set to '00
   for the first entry, '01' for the second, '10' for the third, and
   '11' for the final entry).  Each table entry also sets "Hex Value" to
   the 2-digit hexadecimal value corresponding to the 8-bit
   concatenation of act/chg/rest.

   The IANA is instructed to assign a new entry in the "TCP Experimental
   Option Experiment Identifiers (TCP ExIDs)" table of the 'tcp-
   parameters' registry (registration procedures First Come First Served
   per [RFC6994]).  The table entry should set "Value" to TBD2,
   "Description" to "MTU/Fragmentation Report" and "Reference" to this
   document [RFCXXXX].  The IANA is also instructed to assign the same
   value TBD2 as an entry in the to-be-created "UDP Experimental Option
   Experiment Identifiers (UDP ExIDs)" table (registration procedures
   First Come First served per [I-D.ietf-tsvwg-udp-options]).  This
   document places no preferences on the actual TBD2 value assignment.

14.  Security Considerations

   All aspects of IP security apply equally to this document, which does
   not introduce any new vulnerabilities.  Moreover, when employed
   correctly the mechanisms in this document robustly address known IP
   reassembly integrity concerns [RFC4963] and also provide an advanced
   degree of packet Identification uniqueness assurance.

   All security aspects of [RFC7739], including the algorithms for
   selecting fragment identification values, apply also to the IPv6
   Extended Fragment Header.  In particular, the source should reset its
   starting Identification value frequently (e.g., per the [RFC7739]
   algorithms) to maintain an unpredictable profile.

   All normative security guidance on IPv6 fragmentation found in
   [RFC8200] (e.g., processing of tiny first fragments, overlapping
   fragments, etc.) applies also to the fragments generated under the
   Extended Fragment Header.

Templin                  Expires 14 October 2024               [Page 13]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

15.  Acknowledgements

   This work was inspired by continued DTN performance studies.  Amanda
   Baber, Tom Herbert, Bob Hinden, Christian Huitema, Mark Smith and
   Eric Vyncke offered useful insights that helped improve the document.

   Honoring life, liberty and the pursuit of happiness.

16.  References

16.1.  Normative References

   [I-D.ietf-tsvwg-udp-options]
              Touch, J. D., "Transport Options for UDP", Work in
              Progress, Internet-Draft, draft-ietf-tsvwg-udp-options-32,
              21 March 2024, <https://datatracker.ietf.org/doc/html/
              draft-ietf-tsvwg-udp-options-32>.

   [RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791,
              DOI 10.17487/RFC0791, September 1981,
              <https://www.rfc-editor.org/info/rfc791>.

   [RFC1122]  Braden, R., Ed., "Requirements for Internet Hosts -
              Communication Layers", STD 3, RFC 1122,
              DOI 10.17487/RFC1122, October 1989,
              <https://www.rfc-editor.org/info/rfc1122>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4443]  Conta, A., Deering, S., and M. Gupta, Ed., "Internet
              Control Message Protocol (ICMPv6) for the Internet
              Protocol Version 6 (IPv6) Specification", STD 89,
              RFC 4443, DOI 10.17487/RFC4443, March 2006,
              <https://www.rfc-editor.org/info/rfc4443>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8200]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", STD 86, RFC 8200,
              DOI 10.17487/RFC8200, July 2017,
              <https://www.rfc-editor.org/info/rfc8200>.

Templin                  Expires 14 October 2024               [Page 14]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   [RFC8201]  McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed.,
              "Path MTU Discovery for IP version 6", STD 87, RFC 8201,
              DOI 10.17487/RFC8201, July 2017,
              <https://www.rfc-editor.org/info/rfc8201>.

   [RFC9293]  Eddy, W., Ed., "Transmission Control Protocol (TCP)",
              STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022,
              <https://www.rfc-editor.org/info/rfc9293>.

16.2.  Informative References

   [I-D.ietf-6man-eh-limits]
              Herbert, T., "Limits on Sending and Processing IPv6
              Extension Headers", Work in Progress, Internet-Draft,
              draft-ietf-6man-eh-limits-12, 18 December 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-6man-eh-
              limits-12>.

   [I-D.templin-6man-aero3]
              Templin, F., "Automatic Extended Route Optimization
              (AERO)", Work in Progress, Internet-Draft, draft-templin-
              6man-aero3-00, 8 April 2024,
              <https://datatracker.ietf.org/doc/html/draft-templin-6man-
              aero3-00>.

   [I-D.templin-6man-omni3]
              Templin, F., "Transmission of IP Packets over Overlay
              Multilink Network (OMNI) Interfaces", Work in Progress,
              Internet-Draft, draft-templin-6man-omni3-00, 5 April 2024,
              <https://datatracker.ietf.org/doc/html/draft-templin-6man-
              omni3-00>.

   [I-D.templin-intarea-parcels2]
              Templin, F., "IPv4 Parcels and Advanced Jumbos (AJs)",
              Work in Progress, Internet-Draft, draft-templin-intarea-
              parcels2-02, 19 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-templin-
              intarea-parcels2-02>.

   [KENT87]   Kent, C. and J. Mogul, ""Fragmentation Considered
              Harmful", SIGCOMM '87: Proceedings of the ACM workshop on
              Frontiers in computer communications technology, DOI
              10.1145/55482.55524, http://www.hpl.hp.com/techreports/
              Compaq-DEC/WRL-87-3.pdf.", August 1987.

   [RFC2923]  Lahey, K., "TCP Problems with Path MTU Discovery",
              RFC 2923, DOI 10.17487/RFC2923, September 2000,
              <https://www.rfc-editor.org/info/rfc2923>.

Templin                  Expires 14 October 2024               [Page 15]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

   [RFC4963]  Heffner, J., Mathis, M., and B. Chandler, "IPv4 Reassembly
              Errors at High Data Rates", RFC 4963,
              DOI 10.17487/RFC4963, July 2007,
              <https://www.rfc-editor.org/info/rfc4963>.

   [RFC6437]  Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme,
              "IPv6 Flow Label Specification", RFC 6437,
              DOI 10.17487/RFC6437, November 2011,
              <https://www.rfc-editor.org/info/rfc6437>.

   [RFC6864]  Touch, J., "Updated Specification of the IPv4 ID Field",
              RFC 6864, DOI 10.17487/RFC6864, February 2013,
              <https://www.rfc-editor.org/info/rfc6864>.

   [RFC6994]  Touch, J., "Shared Use of Experimental TCP Options",
              RFC 6994, DOI 10.17487/RFC6994, August 2013,
              <https://www.rfc-editor.org/info/rfc6994>.

   [RFC7739]  Gont, F., "Security Implications of Predictable Fragment
              Identification Values", RFC 7739, DOI 10.17487/RFC7739,
              February 2016, <https://www.rfc-editor.org/info/rfc7739>.

   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

   [RFC8799]  Carpenter, B. and B. Liu, "Limited Domains and Internet
              Protocols", RFC 8799, DOI 10.17487/RFC8799, July 2020,
              <https://www.rfc-editor.org/info/rfc8799>.

   [RFC8900]  Bonica, R., Baker, F., Huston, G., Hinden, R., Troan, O.,
              and F. Gont, "IP Fragmentation Considered Fragile",
              BCP 230, RFC 8900, DOI 10.17487/RFC8900, September 2020,
              <https://www.rfc-editor.org/info/rfc8900>.

   [RFC9268]  Hinden, R. and G. Fairhurst, "IPv6 Minimum Path MTU Hop-
              by-Hop Option", RFC 9268, DOI 10.17487/RFC9268, August
              2022, <https://www.rfc-editor.org/info/rfc9268>.

Appendix A.  Change Log

   << RFC Editor - remove prior to publication >>

   Differences from earlier versions:

   *  First draft publication.

Templin                  Expires 14 October 2024               [Page 16]
Internet-Draft        IPv6 Extended Fragment Header           April 2024

Author's Address

   Fred L. Templin (editor)
   Boeing Research & Technology
   P.O. Box 3707
   Seattle, WA 98124
   United States of America
   Email: fltemplin@acm.org

Templin                  Expires 14 October 2024               [Page 17]