<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="std"
     docName="draft-matsukami-intarea-ipv45-00"
     ipr="trust200902"
     obsoletes=""
     updates=""
     submissionType="IETF"
     xml:lang="en"
     tocInclude="true"
     tocDepth="4"
     symRefs="true"
     sortRefs="true"
     version="3">

  <!-- ============================================================ -->
  <!-- FRONT MATTER                                                 -->
  <!-- ============================================================ -->
  <front>

    <title abbrev="IPv4.5">
      IPv4.5: A Locator/Identifier-Separated Extension to IPv4
      with Post-Quantum Session Security
    </title>

    <seriesInfo name="Internet-Draft" value="draft-matsukami-intarea-ipv45-00"/>

    <author fullname="Nao Matsukami" initials="N." surname="Matsukami">
      <organization>Independent Researcher</organization>
      <address>
        <email>info@insane-projects.com</email>
      </address>
    </author>

    <date year="2026" month="April" day="20"/>

    <area>Internet</area>
    <workgroup>Internet Area Working Group</workgroup>

    <keyword>IPv4</keyword>
    <keyword>addressing</keyword>
    <keyword>address exhaustion</keyword>
    <keyword>post-quantum cryptography</keyword>
    <keyword>Locator/Identifier separation</keyword>
    <keyword>LISP</keyword>
    <keyword>transition</keyword>
    <keyword>NAT</keyword>
    <keyword>ML-KEM</keyword>

    <abstract>
      <t>
        The global IPv4 address space was exhausted at the IANA level in 2011,
        and Carrier-Grade NAT (CGN) has since served as the primary operational
        workaround. CGN preserves connectivity but violates the end-to-end
        principle, complicates application development, and introduces
        substantial operational overhead.
      </t>
      <t>
        This document specifies IPv4.5, a pragmatic extension of IPv4 that
        introduces a 96-bit address space organized as a Locator/Identifier
        separation: a 32-bit IPv4 Locator, a 16-bit Site Identifier, and a
        48-bit Endpoint Identifier. IPv4.5 packets are encapsulated in UDP
        (port 4242) for transparent transit through existing IPv4 routers,
        NAT devices, and firewalls without requiring infrastructure changes.
      </t>
      <t>
        Session security is established through a hybrid post-quantum key
        exchange combining ML-KEM-768 <xref target="FIPS203"/> and X25519
        <xref target="RFC7748"/>, performed once per session. Subsequent data
        protection uses symmetric AEAD ciphers (AES-256-GCM or
        ChaCha20-Poly1305).
      </t>
      <t>
        The design enforces strict separation of concerns across four
        independent planes: data, control, identity, and cryptographic.
        Higher-level functions such as semantic routing and self-sovereign
        identity are explicitly out of scope for this specification.
      </t>
    </abstract>

  </front>

  <!-- ============================================================ -->
  <!-- MIDDLE (BODY)                                                -->
  <!-- ============================================================ -->
  <middle>

    <!-- ========================================================== -->
    <!-- Section 1: Introduction                                    -->
    <!-- ========================================================== -->
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>

      <section anchor="intro-problem" numbered="true" toc="default">
        <name>Problem Statement</name>
        <t>
          The IPv4 address pool managed by IANA was exhausted in February 2011.
          Subsequent exhaustion at each Regional Internet Registry (RIR) has
          forced network operators to rely on Carrier-Grade NAT (CGN)
          <xref target="RFC6598"/> as a large-scale address sharing mechanism.
          While CGN preserves IPv4 reachability, it introduces the following
          well-documented problems:
        </t>
        <ol spacing="normal">
          <li>
            Violation of the end-to-end principle: applications cannot rely
            on a globally unique, reachable address for each endpoint.
          </li>
          <li>
            Peer-to-peer impairment: NAT traversal for real-time communication
            requires additional infrastructure such as STUN, TURN, and ICE.
          </li>
          <li>
            Logging complexity: multiple subscribers share a single public IPv4
            address at any given time, complicating forensic and legal demands.
          </li>
          <li>
            Single point of failure: CGN appliances represent concentrated
            failure domains in operator networks.
          </li>
        </ol>
        <t>
          IPv6 <xref target="RFC8200"/> was designed to resolve address
          exhaustion definitively, but its adoption has progressed slowly after
          more than two decades of availability. As of 2026, IPv6 accounts for
          approximately 45-50% of Internet traffic by volume, and growth has
          decelerated. Key barriers include dual-stack operational cost, the
          absence of day-one benefit for early adopters, and a large installed
          base of IPv4-only applications and embedded devices.
        </t>
        <t>
          Furthermore, neither IPv4 nor IPv6 was designed with post-quantum
          cryptography (PQC) in mind. Future quantum computers capable of
          running Shor's algorithm would break classical elliptic-curve and RSA
          key exchange mechanisms, enabling "harvest now, decrypt later" attacks
          against recorded traffic.
        </t>
      </section>

      <section anchor="intro-goals" numbered="true" toc="default">
        <name>Design Goals</name>
        <t>IPv4.5 is designed to satisfy the following goals:</t>
        <dl newline="false" spacing="normal">
          <dt>G1 (Address Exhaustion):</dt>
          <dd>
            Provide a globally unique address space sufficient for 6G/IoT
            requirements, without relying on address sharing.
          </dd>
          <dt>G2 (Transparent Transit):</dt>
          <dd>
            Deploy immediately over existing IPv4 infrastructure, with no
            changes required to intermediate routers, NAT devices, or firewalls.
          </dd>
          <dt>G3 (Day-One ROI):</dt>
          <dd>
            Provide immediate, measurable benefits to early adopters —
            including endpoint privacy and quantum-resistant session security —
            independent of the deployment fraction of IPv4.5 on the Internet.
          </dd>
          <dt>G4 (Quantum Resistance):</dt>
          <dd>
            Resist passive traffic recording and future decryption by quantum
            computers, using NIST-standardized post-quantum key encapsulation
            <xref target="FIPS203"/>.
          </dd>
          <dt>G5 (Layered Design):</dt>
          <dd>
            Limit the network-layer specification to addressing and forwarding.
            Advanced functions are delegated to separate planes or companion
            specifications.
          </dd>
          <dt>G6 (Privacy):</dt>
          <dd>
            Support per-session ephemeral Endpoint Identifiers to prevent
            cross-session endpoint tracking.
          </dd>
          <dt>G7 (Political Acceptability):</dt>
          <dd>
            Require no central authority, mandatory validation service, or
            built-in surveillance mechanism.
          </dd>
        </dl>
      </section>

      <section anchor="intro-nongoals" numbered="true" toc="default">
        <name>Non-Goals</name>
        <t>
          The following are explicitly OUT OF SCOPE for this document:
        </t>
        <ul spacing="normal">
          <li>Content-based or semantic routing at the network layer.</li>
          <li>Per-packet intent or policy fields in the data plane.</li>
          <li>
            Mandatory Decentralized Identifier (DID) or self-sovereign
            identity requirements.
          </li>
          <li>Per-packet post-quantum digital signatures.</li>
          <li>
            Traffic anonymization equivalent to Tor or mixnet overlays.
          </li>
        </ul>
      </section>

      <section anchor="intro-related" numbered="true" toc="default">
        <name>Relationship to Existing Work</name>
        <t>
          IPv4.5 is inspired by, but distinct from, the Locator/Identifier
          Separation Protocol (LISP) <xref target="RFC9300"/>. LISP is an
          overlay tunneling protocol designed to scale BGP routing; IPv4.5
          defines a new wire format with explicit addressing semantics and
          integrated session security. IPv4.5 borrows the Map-Server/Map-Resolver
          architecture of LISP <xref target="RFC9301"/> as one supported
          implementation of its EID-Locator Mapping Service.
        </t>
        <t>
          The UDP encapsulation approach is analogous to QUIC
          <xref target="RFC9000"/>, which demonstrated that a new transport
          protocol can achieve broad deployment by operating over existing UDP/IP
          infrastructure. IPv4.5 is complementary to IPv6 and does not compete
          with it.
        </t>
      </section>

      <section anchor="intro-reqlang" numbered="true" toc="default">
        <name>Requirements Language</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&nbsp;14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in all
          capitals, as shown here.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 2: Terminology                                     -->
    <!-- ========================================================== -->
    <section anchor="terminology" numbered="true" toc="default">
      <name>Terminology</name>
      <dl newline="true" spacing="normal">

        <dt>Locator</dt>
        <dd>
          A 32-bit IPv4 address that identifies the network attachment point
          of an IPv4.5 anchor. Locators are allocated from existing IPv4
          address pools and are routed by unmodified IPv4 infrastructure
          using standard routing protocols (BGP, OSPF, IS-IS).
        </dd>

        <dt>Site Identifier (Site ID)</dt>
        <dd>
          A 16-bit value allocated by the operator of an IPv4.5 anchor.
          Identifies a logical administrative domain (e.g., a data center,
          campus, or enterprise network) behind a single Locator.
        </dd>

        <dt>Endpoint Identifier (EID)</dt>
        <dd>
          A 48-bit value that uniquely identifies an endpoint within a Site.
          EIDs may be statically assigned (persistent) or dynamically
          generated per session (ephemeral; see eNID).
        </dd>

        <dt>IPv4.5 Address</dt>
        <dd>
          The 96-bit triple [Locator | Site ID | EID] that globally and
          uniquely identifies an IPv4.5 endpoint.
        </dd>

        <dt>Anchor</dt>
        <dd>
          An IPv4.5-aware node holding one or more Locators, responsible for
          encapsulating and decapsulating IPv4.5 packets to and from standard
          UDP/IPv4 packets for endpoints in its site.
        </dd>

        <dt>Edge Translator</dt>
        <dd>
          A gateway that enables communication between IPv4.5 endpoints and
          IPv4-only endpoints, performing address and header conversion in
          both directions.
        </dd>

        <dt>EID-Locator Mapping Service (ELMS)</dt>
        <dd>
          A distributed service that maps Endpoint Identifiers to their
          current Locators, enabling resolution of EIDs not directly
          resolvable via DNS.
        </dd>

        <dt>Ephemeral Network Interface Designator (eNID)</dt>
        <dd>
          A per-session randomly generated EID used to prevent cross-session
          endpoint tracking. Modeled after IPv6 Privacy Extensions
          <xref target="RFC8981"/> and Semantically Opaque Interface
          Identifiers <xref target="RFC7217"/>.
        </dd>

        <dt>Intent Negotiation Protocol (INP)</dt>
        <dd>
          A control-plane protocol through which endpoints request
          session-level service characteristics (latency class, bandwidth
          class) from the network operator's policy controller.
        </dd>

        <dt>AX Record</dt>
        <dd>
          A new DNS resource record type conveying a 96-bit IPv4.5 address,
          analogous to the A record (IPv4) and AAAA record (IPv6).
        </dd>

      </dl>
    </section>

    <!-- ========================================================== -->
    <!-- Section 3: Architecture Overview                           -->
    <!-- ========================================================== -->
    <section anchor="architecture" numbered="true" toc="default">
      <name>Architecture Overview</name>

      <section anchor="arch-planes" numbered="true" toc="default">
        <name>Four-Plane Separation</name>
        <t>
          IPv4.5 is organized into four independent planes, each with a
          well-defined scope and interface boundary:
        </t>
        <figure anchor="fig-planes">
          <name>IPv4.5 Four-Plane Architecture</name>
          <artwork type="ascii-art" align="center"><![CDATA[
+------------------+------------------+---------------------+
| Identity Plane   | Control Plane    | Cryptographic Plane |
| (optional;       | (ELMS, INP,      | (ML-KEM-768 +       |
|  handshake only) |  mobility)       |  X25519, AEAD)      |
+------------------+------------------+---------------------+
|      Data Plane (packet forwarding + AEAD protection)     |
+-----------------------------------------------------------+
          ]]></artwork>
        </figure>
        <dl newline="true" spacing="normal">
          <dt>Data Plane (mandatory)</dt>
          <dd>
            Forwards IPv4.5 packets between anchors and endpoints. Applies
            AEAD encryption and decryption using symmetric session keys.
            Stateless except for per-session symmetric key material.
          </dd>
          <dt>Control Plane (mandatory)</dt>
          <dd>
            Resolves EIDs to Locators, negotiates session policies, and
            handles endpoint mobility. Implemented as a separate daemon or
            process. <bcp14>MUST NOT</bcp14> be on the forwarding fast path.
          </dd>
          <dt>Identity Plane (optional)</dt>
          <dd>
            Authenticates endpoints during the initial handshake using one
            of four supported identity models. <bcp14>MUST NOT</bcp14> be
            referenced by the data plane after handshake completion.
          </dd>
          <dt>Cryptographic Plane (mandatory)</dt>
          <dd>
            Performs hybrid post-quantum key exchange to establish session
            keys. Provides derived key material to the data plane for
            symmetric encryption.
          </dd>
        </dl>
      </section>

      <section anchor="arch-modes" numbered="true" toc="default">
        <name>Operating Modes</name>
        <t>
          IPv4.5 defines four operating modes for staged deployment:
        </t>
        <dl newline="true" spacing="normal">
          <dt>Mode A (Pass-Through)</dt>
          <dd>
            Pure IPv4 operation. No IPv4.5 processing. All existing IPv4
            traffic continues unmodified.
          </dd>
          <dt>Mode B (Translated)</dt>
          <dd>
            An IPv4.5 endpoint communicates with a legacy IPv4-only endpoint
            through an Edge Translator. <bcp14>REQUIRED</bcp14> for
            deployments that must interoperate with IPv4-only peers.
          </dd>
          <dt>Mode C (Encapsulated)</dt>
          <dd>
            An IPv4.5 endpoint communicates with another IPv4.5 endpoint
            using UDP encapsulation over standard IPv4 (protocol 17, port
            4242). No changes are required to intermediate routers. This is
            the baseline operational mode for Phase 1 and Phase 2 deployment.
            All IPv4.5 implementations <bcp14>MUST</bcp14> support Mode C.
          </dd>
          <dt>Mode D (Native, OPTIONAL)</dt>
          <dd>
            An IPv4.5 endpoint communicates with another IPv4.5 endpoint
            using IP Protocol 144 directly, without UDP encapsulation.
            Requires router firmware support. Intended for Phase 3 deployment.
          </dd>
        </dl>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 4: Addressing                                      -->
    <!-- ========================================================== -->
    <section anchor="addressing" numbered="true" toc="default">
      <name>Addressing</name>

      <section anchor="addr-format" numbered="true" toc="default">
        <name>Address Format</name>
        <t>
          An IPv4.5 address is 96 bits wide, consisting of three contiguous
          fields:
        </t>
        <figure anchor="fig-address">
          <name>IPv4.5 96-bit Address Format</name>
          <artwork type="ascii-art" align="center"><![CDATA[
  0                   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        Locator (32 bits)                      |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |        Site Identifier (16 bits)      |                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                       +
 |            Endpoint Identifier (48 bits, continued)           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
        </figure>
        <t>
          The total address space is 2^96 &#8776; 7.9&#x2009;&#215;&#x2009;10^28,
          sufficient for all projected 6G, IoT, and cloud workloads through
          at least 2050 by multiple orders of magnitude.
        </t>
      </section>

      <section anchor="addr-alloc" numbered="true" toc="default">
        <name>Address Allocation</name>
        <dl newline="true" spacing="normal">
          <dt>Locator</dt>
          <dd>
            IPv4.5 reuses existing IPv4 address allocations from IANA and the
            Regional Internet Registries. No new global registry or allocation
            process is required. BGP announcements for Locators are identical
            to existing IPv4 BGP practice <xref target="RFC4760"/>.
          </dd>
          <dt>Site ID</dt>
          <dd>
            The anchor operator allocates Site IDs within its Locator's space.
            No registration with any external authority is required.
          </dd>
          <dt>Endpoint ID</dt>
          <dd>
            EIDs may be assigned by an operator-managed allocation service
            (analogous to DHCP) or generated autonomously by the endpoint
            (analogous to IPv6 SLAAC). Implementations generating EIDs
            autonomously <bcp14>MUST</bcp14> use a cryptographically secure
            random number generator conforming to <xref target="RFC4086"/>.
          </dd>
        </dl>
      </section>

      <section anchor="addr-text" numbered="true" toc="default">
        <name>Textual Representation</name>
        <t>
          The canonical textual representation of an IPv4.5 address is:
        </t>
        <artwork type="ascii-art" align="left"><![CDATA[
   <dotted-decimal-ipv4>::<hex-site-id>::<hex-eid>
        ]]></artwork>
        <t>
          where the Endpoint Identifier is written as three 16-bit groups
          separated by colons. Leading zeros within each group
          <bcp14>MAY</bcp14> be omitted. The double-colon (::) serves as a
          field separator and <bcp14>MUST NOT</bcp14> be interpreted using
          IPv6 zero-compression rules.
        </t>
        <t>Example:</t>
        <artwork type="ascii-art" align="left"><![CDATA[
   192.0.2.1::1234::DEAD:BEEF:0001

   Locator:      192.0.2.1
   Site ID:      0x1234
   Endpoint ID:  0xDEADBEEF0001
        ]]></artwork>
        <t>
          An implementation parsing an IPv4.5 address <bcp14>MUST</bcp14>
          reject strings that do not contain exactly two "::" separators.
        </t>
      </section>

      <section anchor="addr-reserved" numbered="true" toc="default">
        <name>Reserved Addresses</name>
        <t>
          The following addresses are reserved and <bcp14>MUST NOT</bcp14>
          be assigned to operational endpoints:
        </t>
        <table align="left">
          <name>IPv4.5 Reserved Addresses</name>
          <thead>
            <tr><th>Pattern</th><th>Purpose</th></tr>
          </thead>
          <tbody>
            <tr><td>0.0.0.0::0::0:0:0</td><td>Unspecified address</td></tr>
            <tr><td>127.0.0.1::*::*</td><td>Loopback (all Site IDs and EIDs)</td></tr>
            <tr><td>224.0.0.0/4::*::*</td><td>Multicast Locator range</td></tr>
            <tr><td>LOCATOR::FFFF::*</td><td>Site-local scope</td></tr>
            <tr><td>LOCATOR::FFFE::*</td><td>Link-local scope</td></tr>
            <tr><td>LOCATOR::FFFF::FFFF:*</td><td>IPv4-Embedded EID (compatibility)</td></tr>
          </tbody>
        </table>
        <t>
          For Edge Translator (Mode B) operation, a pure IPv4 endpoint with
          address A.B.C.D behind translator at address T is represented as:
        </t>
        <artwork type="ascii-art" align="left"><![CDATA[
   T::FFFF::FFFF:<hex-A><hex-B>:<hex-C><hex-D>

   Example: IPv4 198.51.100.42 behind translator 203.0.113.1:
   203.0.113.1::FFFF::FFFF:C633:642A
        ]]></artwork>
      </section>

      <section anchor="enid" numbered="true" toc="default">
        <name>Ephemeral Endpoint Identifiers (eNIDs)</name>
        <t>
          To mitigate cross-session endpoint tracking, implementations
          <bcp14>SHOULD</bcp14> use a per-session randomly generated EID
          (Ephemeral Network Interface Designator, eNID). An eNID:
        </t>
        <ul spacing="normal">
          <li>
            <bcp14>MUST</bcp14> be generated using a cryptographically
            secure random number generator conforming to
            <xref target="RFC4086"/>.
          </li>
          <li>
            <bcp14>SHOULD</bcp14> be regenerated at the start of each new
            session or after a configurable interval (recommended default:
            24 hours).
          </li>
          <li>
            <bcp14>MUST NOT</bcp14> be reused across sessions to distinct
            destination endpoints.
          </li>
          <li>
            <bcp14>SHOULD</bcp14> be statistically indistinguishable from
            a static EID to on-path observers.
          </li>
        </ul>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 5: Packet Format                                   -->
    <!-- ========================================================== -->
    <section anchor="packet-format" numbered="true" toc="default">
      <name>Packet Format</name>

      <section anchor="pkt-header" numbered="true" toc="default">
        <name>IPv4.5 Fixed Header</name>
        <t>
          The IPv4.5 fixed header is exactly 20 bytes. When operating in
          Mode C, the Locator fields are carried in the outer IPv4 header
          and are NOT repeated in the IPv4.5 header.
        </t>
        <figure anchor="fig-header">
          <name>IPv4.5 Fixed Header (20 bytes)</name>
          <artwork type="ascii-art" align="center"><![CDATA[
  0                   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |Ver=1| Type  |   Hop Limit   |         Payload Length          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Next Header  |    Flags      |          Flow Label           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    Source Site ID (16 bits)   |                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
 |              Source Endpoint ID (48 bits)                     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Destination Site ID (16 bits) |                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
 |           Destination Endpoint ID (48 bits)                   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
        </figure>
      </section>

      <section anchor="pkt-fields" numbered="true" toc="default">
        <name>Field Descriptions</name>
        <dl newline="true" spacing="normal">

          <dt>Version (4 bits)</dt>
          <dd>
            <bcp14>MUST</bcp14> be set to 1 for this version of IPv4.5.
            Packets with Version &#8800; 1 <bcp14>MUST</bcp14> be silently
            discarded.
          </dd>

          <dt>Type (4 bits)</dt>
          <dd>
            <t>Identifies the purpose of the packet:</t>
            <table align="left">
              <thead>
                <tr><th>Value</th><th>Name</th><th>Description</th></tr>
              </thead>
              <tbody>
                <tr><td>0</td><td>DATA</td><td>Carries upper-layer payload</td></tr>
                <tr><td>1</td><td>HANDSHAKE</td><td>Session establishment and key exchange</td></tr>
                <tr><td>2</td><td>CONTROL</td><td>Control-plane messages (ELMS, INP)</td></tr>
                <tr><td>3</td><td>ECHO</td><td>Echo request/reply (diagnostic)</td></tr>
                <tr><td>4</td><td>ERROR</td><td>Reports error conditions to the sender</td></tr>
                <tr><td>5</td><td>KEEPALIVE</td><td>NAT/firewall session keepalive</td></tr>
                <tr><td>6-14</td><td>&#8212;</td><td>Unassigned; see <xref target="iana-type-registry"/></td></tr>
                <tr><td>15</td><td>&#8212;</td><td>Reserved; MUST NOT be used</td></tr>
              </tbody>
            </table>
          </dd>

          <dt>Hop Limit (8 bits)</dt>
          <dd>
            Initialized to 64 by sending implementations. Each IPv4.5-aware
            forwarding node <bcp14>MUST</bcp14> decrement this field by 1.
            See <xref target="fwd-hoplimit"/>.
          </dd>

          <dt>Payload Length (16 bits)</dt>
          <dd>
            Length in bytes of all content following the 20-byte fixed
            IPv4.5 header, including any extension headers.
          </dd>

          <dt>Next Header (8 bits)</dt>
          <dd>
            Identifies the protocol of the immediately following header or
            upper-layer payload. Uses IANA-assigned Internet Protocol
            Number values.
          </dd>

          <dt>Flags (8 bits)</dt>
          <dd>
            <table align="left">
              <thead>
                <tr><th>Bit</th><th>Symbol</th><th>Meaning</th></tr>
              </thead>
              <tbody>
                <tr><td>0 (MSB)</td><td>E</td><td>Payload is AEAD-encrypted and authenticated</td></tr>
                <tr><td>1</td><td>F</td><td>Fragmentation extension header is present</td></tr>
                <tr><td>2</td><td>X</td><td>Additional extension headers are present</td></tr>
                <tr><td>3</td><td>M</td><td>More fragments follow (used with F)</td></tr>
                <tr><td>4</td><td>C</td><td>Compression (reserved for future use)</td></tr>
                <tr><td>5</td><td>N</td><td>NAT traversal extension present</td></tr>
                <tr><td>6-7</td><td>&#8212;</td><td>Reserved; MUST be sent as zero</td></tr>
              </tbody>
            </table>
          </dd>

          <dt>Flow Label (16 bits)</dt>
          <dd>
            Identifies a traffic flow for ECMP load distribution and QoS
            treatment. When assigned by INP (<xref target="ctrl-inp"/>),
            reflects the negotiated SLA class. Otherwise,
            <bcp14>MUST</bcp14> be set to a pseudorandom value.
          </dd>

        </dl>
      </section>

      <section anchor="pkt-modec" numbered="true" toc="default">
        <name>Mode C Encapsulation</name>
        <t>
          In Mode C, an IPv4.5 packet is encapsulated in UDP
          <xref target="RFC0768"/> over IPv4 <xref target="RFC0791"/>:
        </t>
        <figure anchor="fig-mode-c">
          <name>IPv4.5 Mode C Packet Structure</name>
          <artwork type="ascii-art" align="center"><![CDATA[
+---------------------------------------------------+
|       Outer IPv4 Header (20 bytes)                |
|  IHL=5, Protocol=17 (UDP), TTL=64                |
|  DF=1 (Don't Fragment MUST be set)                |
|  Src IP = Sending anchor Locator                  |
|  Dst IP = Receiving anchor Locator                |
+---------------------------------------------------+
|       UDP Header (8 bytes)                        |
|  Src Port = 4242 (or ephemeral)                   |
|  Dst Port = 4242                                  |
+---------------------------------------------------+
|       IPv4.5 Fixed Header (20 bytes)              |
+---------------------------------------------------+
|       Extension Headers (variable, optional)      |
+---------------------------------------------------+
|       Upper-Layer Payload (variable)              |
+---------------------------------------------------+
          ]]></artwork>
        </figure>
        <t>
          The outer IPv4 DF bit <bcp14>MUST</bcp14> be set to enable
          Path MTU Discovery (<xref target="fwd-pmtud"/>). The outer IP
          TTL <bcp14>SHOULD</bcp14> be set to 64.
        </t>
      </section>

      <section anchor="ext-headers" numbered="true" toc="default">
        <name>Extension Headers</name>
        <t>
          Extension headers provide optional functionality. They are
          chained using the Next Header field and <bcp14>MUST</bcp14> be
          processed in the order they appear.
        </t>
        <table align="left">
          <name>IPv4.5 Extension Header Types</name>
          <thead>
            <tr><th>Next Header</th><th>Extension Type</th><th>Description</th></tr>
          </thead>
          <tbody>
            <tr><td>0x00</td><td>Hop-by-Hop Options</td><td>Options processed by every forwarding node</td></tr>
            <tr><td>0x01</td><td>Routing</td><td>Explicit source routing via designated anchors</td></tr>
            <tr><td>0x02</td><td>Mobility</td><td>Locator change notification for mobile endpoints</td></tr>
            <tr><td>0x03</td><td>Fragmentation</td><td>Source-originated fragmentation and reassembly</td></tr>
            <tr><td>0x04</td><td>Authentication</td><td>Handshake signature and certificate chain</td></tr>
            <tr><td>0x05</td><td>ESP-X</td><td>AEAD-encrypted and authenticated payload container</td></tr>
            <tr><td>0x06</td><td>Destination Options</td><td>Options processed only by the destination</td></tr>
            <tr><td>0xFF</td><td>No Next Header</td><td>No content follows</td></tr>
          </tbody>
        </table>
      </section>

      <section anchor="pkt-frag" numbered="true" toc="default">
        <name>Fragmentation Extension Header</name>
        <figure anchor="fig-frag">
          <name>IPv4.5 Fragmentation Extension Header (8 bytes)</name>
          <artwork type="ascii-art" align="center"><![CDATA[
  0                   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 Header  |   Reserved    |   Fragment Offset    | Res |M |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                   Identification (32 bits)                    |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
        </figure>
        <t>
          Fragment reassembly <bcp14>MUST</bcp14> time out after 60
          seconds. Incomplete fragment sets <bcp14>MUST</bcp14> be
          silently discarded.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 6: Forwarding                                      -->
    <!-- ========================================================== -->
    <section anchor="forwarding" numbered="true" toc="default">
      <name>Forwarding</name>

      <section anchor="fwd-pmtud" numbered="true" toc="default">
        <name>Path MTU Discovery</name>
        <t>
          All IPv4.5 implementations <bcp14>MUST</bcp14> support Path MTU
          Discovery (PMTUD) as defined in <xref target="RFC1191"/> and
          <xref target="RFC8201"/>. Implementations <bcp14>SHOULD</bcp14>
          also implement Packetization Layer Path MTU Discovery (PLPMTUD)
          <xref target="RFC4821"/> as a fallback when ICMP messages are
          filtered.
        </t>
        <t>
          The minimum IPv4.5 Path MTU is 1280 bytes. In Mode C, the minimum
          effective payload MTU is:
        </t>
        <artwork type="ascii-art" align="left"><![CDATA[
   1280 - 20 (outer IPv4) - 8 (UDP) - 20 (IPv4.5) = 1232 bytes
        ]]></artwork>
        <t>
          The Don't Fragment (DF) bit <bcp14>MUST</bcp14> be set in the
          outer IPv4 header. When a router drops an oversized packet, it
          <bcp14>MUST</bcp14> return an ICMP Fragmentation Needed (Type 3,
          Code 4) message to the sending anchor. The anchor
          <bcp14>MUST</bcp14> propagate this information to the originating
          endpoint via an IPv4.5 ERROR message (Type 4, Error Code
          MTU_EXCEEDED).
        </t>
      </section>

      <section anchor="fwd-frag" numbered="true" toc="default">
        <name>Fragmentation</name>
        <t>
          Source endpoints <bcp14>MUST</bcp14> fragment packets that exceed
          the discovered Path MTU using the IPv4.5 Fragmentation Extension
          Header (Next Header 0x03). Intermediate nodes
          <bcp14>MUST NOT</bcp14> fragment IPv4.5 packets.
        </t>
      </section>

      <section anchor="fwd-hoplimit" numbered="true" toc="default">
        <name>Hop Limit Processing</name>
        <t>
          When an IPv4.5-aware node forwards a packet, it
          <bcp14>MUST</bcp14> decrement the Hop Limit by 1. If the
          resulting value is zero:
        </t>
        <ol spacing="normal">
          <li>The node <bcp14>MUST NOT</bcp14> forward the packet.</li>
          <li>
            The node <bcp14>SHOULD</bcp14> send an IPv4.5 ERROR message
            (Type 4, Error Code HOP_LIMIT_EXCEEDED) to the source Locator.
          </li>
          <li>The packet <bcp14>MUST</bcp14> be discarded.</li>
        </ol>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 7: Address Resolution                              -->
    <!-- ========================================================== -->
    <section anchor="resolution" numbered="true" toc="default">
      <name>Address Resolution</name>

      <section anchor="res-dns" numbered="true" toc="default">
        <name>DNS AX Records</name>
        <t>
          A new DNS resource record type, AX, is defined to carry IPv4.5
          addresses. An AX record contains a 96-bit IPv4.5 address in
          network byte order and supports standard TTL semantics identical
          to A and AAAA records.
        </t>
        <artwork type="ascii-art" align="left"><![CDATA[
   host.example.com.  3600  IN  AX    192.0.2.1::0100::DEAD:BEEF:0001
   host.example.com.  3600  IN  A     192.0.2.1
   host.example.com.  3600  IN  AAAA  2001:db8::1
        ]]></artwork>
        <t>
          When A, AAAA, and AX records are all present, endpoints
          <bcp14>SHOULD</bcp14> use a Happy Eyeballs v3 algorithm
          (extending <xref target="RFC8305"/>) with AX as the
          highest-preference address family.
        </t>
      </section>

      <section anchor="res-elms" numbered="true" toc="default">
        <name>EID-Locator Mapping Service (ELMS)</name>
        <t>
          For EIDs not directly resolvable via DNS, ELMS provides Locator
          resolution. ELMS is a distributed, decentralized service. Three
          implementation architectures are defined:
        </t>
        <dl newline="true" spacing="normal">
          <dt>Architecture 1 (LISP-Compatible)</dt>
          <dd>
            Follows the LISP Map-Server/Map-Resolver architecture
            <xref target="RFC9300"/> <xref target="RFC9301"/>.
          </dd>
          <dt>Architecture 2 (DHT-Based)</dt>
          <dd>
            Implemented as a Kademlia-based <xref target="KADEMLIA"/>
            distributed hash table. No central server is required.
          </dd>
          <dt>Architecture 3 (BGP SAFI)</dt>
          <dd>
            EID-to-Locator mappings distributed via BGP using SAFI 144
            (see <xref target="iana-safi"/>). Suitable for large ISP
            deployments.
          </dd>
        </dl>
        <t>
          ELMS resolution <bcp14>MUST</bcp14> be performed by the
          control-plane daemon. Results <bcp14>MUST</bcp14> be cached
          locally. ELMS queries <bcp14>MUST NOT</bcp14> block the
          forwarding fast path.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 8: Control Plane                                   -->
    <!-- ========================================================== -->
    <section anchor="control-plane" numbered="true" toc="default">
      <name>Control Plane</name>

      <section anchor="ctrl-session" numbered="true" toc="default">
        <name>Session Establishment Overview</name>
        <t>
          IPv4.5 session establishment follows these steps:
        </t>
        <ol spacing="normal">
          <li>
            The initiating endpoint resolves the target's Locator via DNS
            (AX record) or ELMS.
          </li>
          <li>
            A HANDSHAKE packet (Type 1, Subtype 0x01 Client Hello) is sent
            to the target's Locator.
          </li>
          <li>
            The responder processes the Client Hello and sends a HANDSHAKE
            reply (Subtype 0x02 Server Hello).
          </li>
          <li>
            Both endpoints independently derive identical symmetric session
            keys using HKDF (see <xref target="crypto-kdf"/>).
          </li>
          <li>
            Subsequent DATA packets (Type 0) are encrypted using the
            derived keys.
          </li>
        </ol>
      </section>

      <section anchor="ctrl-inp" numbered="true" toc="default">
        <name>Intent Negotiation Protocol (INP)</name>
        <t>
          Endpoints <bcp14>MAY</bcp14> request specific session service
          characteristics through INP. INP operates at the session level
          only. Per-packet intent fields in the data plane are explicitly
          prohibited by this specification.
        </t>
        <table align="left">
          <name>INP SLA Classes</name>
          <thead>
            <tr><th>Class</th><th>Description</th><th>Authorization</th></tr>
          </thead>
          <tbody>
            <tr><td>BEST_EFFORT</td><td>Default forwarding treatment</td><td>None required</td></tr>
            <tr><td>LOW_LATENCY</td><td>Expedited Forwarding treatment</td><td>Operator policy</td></tr>
            <tr><td>HIGH_BANDWIDTH</td><td>Guaranteed bandwidth reservation</td><td>Operator policy</td></tr>
            <tr><td>DETERMINISTIC</td><td>Hard real-time guarantee</td><td>Pre-arranged contract</td></tr>
            <tr><td>BACKGROUND</td><td>Lower-than-default priority</td><td>None required</td></tr>
          </tbody>
        </table>
      </section>

      <section anchor="ctrl-mobility" numbered="true" toc="default">
        <name>Endpoint Mobility</name>
        <t>
          When an endpoint changes its network attachment point (Locator),
          it <bcp14>MUST</bcp14>:
        </t>
        <ol spacing="normal">
          <li>
            Generate a new IPv4.5 address using the same EID under the
            new Locator.
          </li>
          <li>
            Send a CONTROL message (Mobility Notification) to active peers,
            conveying the new Locator.
          </li>
          <li>Update its ELMS registration with the new Locator.</li>
        </ol>
        <t>
          Existing session keys remain valid across a Locator change.
          Re-authentication is NOT required.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 9: Identity Plane                                  -->
    <!-- ========================================================== -->
    <section anchor="identity-plane" numbered="true" toc="default">
      <name>Identity Plane</name>
      <t>
        Identity authentication in IPv4.5 is <bcp14>OPTIONAL</bcp14>.
        When used, it occurs exclusively during the HANDSHAKE phase. The
        data plane <bcp14>MUST NOT</bcp14> carry identity assertions after
        handshake completion.
      </t>

      <section anchor="id-anon" numbered="true" toc="default">
        <name>Anonymous Mode (Default)</name>
        <t>
          When no identity model is selected, the session uses only
          ephemeral EIDs (eNIDs) and ephemeral cryptographic key pairs.
          Anonymous mode is the DEFAULT and <bcp14>MUST</bcp14> be
          supported by all implementations.
        </t>
      </section>

      <section anchor="id-pki" numbered="true" toc="default">
        <name>X.509 PKI Mode</name>
        <t>
          Endpoints authenticate using X.509 certificates
          <xref target="RFC5280"/> compatible with the existing Web PKI.
          This mode is <bcp14>RECOMMENDED</bcp14> for server-to-client
          authentication in public-facing services.
        </t>
      </section>

      <section anchor="id-did" numbered="true" toc="default">
        <name>DID Mode</name>
        <t>
          Endpoints authenticate using W3C Decentralized Identifiers
          <xref target="W3C-DID"/>. DID documents are resolved from the
          decentralized identifier infrastructure; no certificate authority
          is required. This mode is <bcp14>OPTIONAL</bcp14>.
        </t>
      </section>

      <section anchor="id-psk" numbered="true" toc="default">
        <name>Pre-Shared Key (PSK) Mode</name>
        <t>
          Endpoints sharing a pre-established symmetric secret authenticate
          using PSK mode. PSK <bcp14>MUST</bcp14> be combined with the
          hybrid PQC key exchange (<xref target="crypto-plane"/>) to
          preserve forward secrecy. <bcp14>RECOMMENDED</bcp14> for
          constrained IoT devices and closed enterprise deployments.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 10: Cryptographic Plane                            -->
    <!-- ========================================================== -->
    <section anchor="crypto-plane" numbered="true" toc="default">
      <name>Cryptographic Plane</name>

      <section anchor="crypto-handshake" numbered="true" toc="default">
        <name>Hybrid Post-Quantum Handshake</name>
        <t>
          IPv4.5 session establishment uses a hybrid key exchange combining:
        </t>
        <ul spacing="normal">
          <li>
            <strong>X25519</strong> <xref target="RFC7748"/>: Classical
            elliptic-curve Diffie-Hellman, providing security against
            classical computers.
          </li>
          <li>
            <strong>ML-KEM-768</strong> <xref target="FIPS203"/>:
            NIST-standardized lattice-based Key Encapsulation Mechanism,
            providing security against quantum computers capable of running
            Shor's algorithm.
          </li>
        </ul>
        <t>
          The hybrid construction ensures session key security as long as
          at least one of the two component algorithms remains unbroken.
        </t>
      </section>

      <section anchor="crypto-messages" numbered="true" toc="default">
        <name>Handshake Message Formats</name>

        <section anchor="crypto-clienthello" numbered="true" toc="default">
          <name>Client Hello (Type 1, Subtype 0x01)</name>
          <figure anchor="fig-client-hello">
            <name>IPv4.5 Client Hello Message</name>
            <artwork type="ascii-art" align="center"><![CDATA[
  0                   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Subtype=0x01  | Identity Type |      Cipher Suite (16)       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              Client Random Nonce (32 bytes)                   |
 |                          ...                                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              X25519 Ephemeral Public Key (32 bytes)           |
 |                          ...                                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              ML-KEM-768 Public Key (1184 bytes)               |
 |                          ...                                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              Identity Material (variable, type-dependent)     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          </figure>
          <t>
            The total Client Hello size is approximately 1252 bytes before
            identity material, which exceeds the minimum Mode C MTU of 1232
            bytes. Sending implementations <bcp14>MUST</bcp14> fragment the
            Client Hello using the Fragmentation Extension Header when the
            discovered path MTU is insufficient.
          </t>
        </section>

        <section anchor="crypto-serverhello" numbered="true" toc="default">
          <name>Server Hello (Type 1, Subtype 0x02)</name>
          <figure anchor="fig-server-hello">
            <name>IPv4.5 Server Hello Message</name>
            <artwork type="ascii-art" align="center"><![CDATA[
  0                   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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Subtype=0x02  |Selected Cipher|     Session ID (16 bits)     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              Server Random Nonce (32 bytes)                   |
 |                          ...                                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              X25519 Ephemeral Public Key (32 bytes)           |
 |                          ...                                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              ML-KEM-768 Ciphertext (1088 bytes)               |
 |                          ...                                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              Identity Material + Signature (variable)         |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          </figure>
        </section>

      </section>

      <section anchor="crypto-kdf" numbered="true" toc="default">
        <name>Key Derivation</name>
        <t>
          After the handshake exchange, both parties independently compute:
        </t>
        <artwork type="ascii-art" align="left"><![CDATA[
   shared_x25519 = X25519(local_eph_priv, remote_eph_pub)     [32 bytes]
   shared_kem    = ML-KEM-768.Decapsulate(ct, local_mlkem_priv) [32 bytes]

   ikm  = shared_x25519 || shared_kem                          [64 bytes]
   salt = client_nonce  || server_nonce                         [64 bytes]

   tx_key = HKDF-SHA-256(ikm, salt, "IPv4.5-C2S-KEY-v1", 32)  [32 bytes]
   rx_key = HKDF-SHA-256(ikm, salt, "IPv4.5-S2C-KEY-v1", 32)  [32 bytes]
        ]]></artwork>
        <t>
          The HKDF construction follows <xref target="RFC5116"/> and
          <xref target="RFC8446"/> Section 7.1. Labels are fixed ASCII
          strings. Implementations <bcp14>MUST</bcp14> verify that both
          X25519 and ML-KEM operations succeed before proceeding to data
          exchange.
        </t>
      </section>

      <section anchor="crypto-ciphers" numbered="true" toc="default">
        <name>Supported Cipher Suites</name>
        <table align="left">
          <name>IPv4.5 Cipher Suites</name>
          <thead>
            <tr><th>Code</th><th>Cipher Suite</th><th>Recommendation</th></tr>
          </thead>
          <tbody>
            <tr>
              <td>0x01</td>
              <td>AES-256-GCM</td>
              <td>RECOMMENDED for hardware with AES-NI</td>
            </tr>
            <tr>
              <td>0x02</td>
              <td>ChaCha20-Poly1305</td>
              <td>RECOMMENDED for software-only implementations</td>
            </tr>
            <tr>
              <td>0x03-0xFF</td>
              <td>&#8212;</td>
              <td>Reserved</td>
            </tr>
          </tbody>
        </table>
        <t>
          Both suites provide Authenticated Encryption with Associated Data
          (AEAD) as specified in <xref target="RFC5116"/>.
        </t>
      </section>

      <section anchor="crypto-nonce" numbered="true" toc="default">
        <name>Nonce Management</name>
        <t>
          The AEAD nonce (96 bits) for DATA packet protection is constructed
          as:
        </t>
        <artwork type="ascii-art" align="left"><![CDATA[
   nonce = session_id (16) || reserved (16) || sequence_no (64)
        ]]></artwork>
        <t>
          The sequence number <bcp14>MUST</bcp14> start at 1 and
          <bcp14>MUST</bcp14> be incremented by 1 for each DATA packet
          transmitted. Implementations <bcp14>MUST</bcp14> initiate key
          rotation before the sequence number reaches 2^32. Nonces
          <bcp14>MUST NEVER</bcp14> be reused under the same session key.
        </t>
      </section>

      <section anchor="crypto-fs" numbered="true" toc="default">
        <name>Forward Secrecy and Key Rotation</name>
        <t>
          All session key material is derived from ephemeral key pairs
          generated fresh for each session. Long-term identity keys are used
          only to authenticate the handshake and are never used for
          encryption.
        </t>
        <t>
          Active sessions <bcp14>MUST</bcp14> be re-keyed upon whichever
          of the following thresholds occurs first:
        </t>
        <ul spacing="normal">
          <li>3600 seconds (1 hour) of elapsed session time; or</li>
          <li>2^32 DATA packets sent under the current session key.</li>
        </ul>
        <t>
          Key material from the previous epoch <bcp14>MUST</bcp14> be
          explicitly zeroized using compiler-barrier-protected routines
          before being overwritten.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 11: Backward Compatibility                         -->
    <!-- ========================================================== -->
    <section anchor="compat" numbered="true" toc="default">
      <name>Backward Compatibility Considerations</name>
      <t>
        IPv4.5 provides <strong>transparent IPv4 transit</strong>, not full
        backward compatibility.
      </t>
      <t>
        Mode A traffic (pure IPv4) is entirely unaffected. Mode C traffic
        traverses unmodified IPv4 routers as standard UDP/4242 traffic.
        Firewalls blocking non-standard UDP ports may prevent IPv4.5 sessions.
        Implementations <bcp14>SHOULD</bcp14> attempt UDP/4242 first, and if
        blocked, retry using UDP/443.
      </t>
      <t>
        Operators deploying IPv4.5 <bcp14>SHOULD</bcp14> configure firewalls
        to permit inbound and outbound UDP/4242 during the transition period.
      </t>
    </section>

    <!-- ========================================================== -->
    <!-- Section 12: Privacy Considerations                         -->
    <!-- ========================================================== -->
    <section anchor="privacy" numbered="true" toc="default">
      <name>Privacy Considerations</name>
      <t>
        A static EID enables correlation of an endpoint's sessions across
        time and network positions, analogous to MAC address tracking.
        Implementations <bcp14>SHOULD</bcp14> use ephemeral EIDs (eNIDs)
        for user-facing applications. See <xref target="enid"/>.
      </t>
      <t>
        The Locator is carried in cleartext in the outer IPv4 header. The
        Site ID is carried in cleartext in the IPv4.5 fixed header. Both
        fields are observable to all on-path entities. No protection of
        Locator or Site ID confidentiality is provided by this specification.
      </t>
      <t>
        IPv4.5 does not protect against traffic analysis based on timing,
        packet sizes, or communication volumes. Applications requiring
        traffic analysis resistance <bcp14>SHOULD</bcp14> use Tor or
        mixnet overlays operating over IPv4.5 sessions.
      </t>
    </section>

    <!-- ========================================================== -->
    <!-- Section 13: Security Considerations                        -->
    <!-- ========================================================== -->
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>

      <section anchor="sec-threat" numbered="true" toc="default">
        <name>Threat Model</name>
        <t>
          This specification is designed to protect against: passive
          eavesdropping (including by future quantum computers via "harvest
          now, decrypt later"); active injection, modification, or replay of
          IPv4.5 packets; endpoint impersonation during session establishment;
          and session hijacking.
        </t>
        <t>
          This specification does NOT protect against: compromised endpoints;
          physical hardware access; legal compulsion of key material; traffic
          analysis; or vulnerabilities in cryptographic implementations.
        </t>
      </section>

      <section anchor="sec-protections" numbered="true" toc="default">
        <name>Protections Provided</name>
        <t>
          <strong>Confidentiality:</strong> All DATA packets are protected by
          AEAD using session keys derived from the hybrid PQC handshake.
        </t>
        <t>
          <strong>Integrity:</strong> AEAD authentication detects and causes
          rejection of any modified, truncated, or corrupted DATA packet.
        </t>
        <t>
          <strong>Replay Protection:</strong> Monotonically increasing
          sequence numbers combined with AEAD authentication prevent replay.
        </t>
        <t>
          <strong>Forward Secrecy:</strong> Ephemeral key pairs ensure
          compromise of long-term key material does not expose past sessions.
        </t>
        <t>
          <strong>Quantum Resistance:</strong> The hybrid ML-KEM-768 + X25519
          key exchange is secure against quantum computers running Shor's
          algorithm. Symmetric keys of 256 bits retain approximately 128 bits
          of security against Grover's algorithm.
        </t>
        <t>
          <strong>Endpoint Authentication (optional):</strong> When identity
          modes are used, signature algorithms <bcp14>SHOULD</bcp14> use
          ML-DSA-65 <xref target="FIPS204"/> for quantum resistance.
        </t>
      </section>

      <section anchor="sec-impl" numbered="true" toc="default">
        <name>Implementation Requirements</name>
        <t>Implementations <bcp14>MUST</bcp14>:</t>
        <ul spacing="normal">
          <li>
            Use constant-time implementations for all cryptographic
            operations to prevent timing side-channel attacks.
          </li>
          <li>
            Explicitly zeroize all key material after use using
            compiler-barrier-protected routines.
          </li>
          <li>
            Validate all header fields in received packets before processing.
          </li>
          <li>Implement PMTUD and respond to ICMP Fragmentation Needed.</li>
        </ul>
        <t>Implementations <bcp14>MUST NOT</bcp14>:</t>
        <ul spacing="normal">
          <li>Reuse AEAD nonces under any circumstances.</li>
          <li>
            Continue data transmission after sequence number exhaustion
            without successful re-keying.
          </li>
          <li>Log session key material in plaintext.</li>
        </ul>
      </section>

      <section anchor="sec-dos" numbered="true" toc="default">
        <name>Denial-of-Service Considerations</name>
        <t>
          HANDSHAKE processing involves asymmetric cryptographic operations.
          Implementations <bcp14>SHOULD</bcp14> implement HANDSHAKE rate
          limiting (recommended: no more than 1000 new sessions per second
          per anchor) and <bcp14>SHOULD</bcp14> employ a lightweight
          proof-of-work or cookie mechanism to deter amplified HANDSHAKE
          flooding.
        </t>
        <t>
          ELMS deployments <bcp14>SHOULD</bcp14> use Anycast addressing,
          multi-tier caching with signed responses, and rate limiting of
          Map-Request messages per source address.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Section 14: IANA Considerations                            -->
    <!-- ========================================================== -->
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>

      <section anchor="iana-udp" numbered="true" toc="default">
        <name>UDP Port Number</name>
        <t>
          IANA is requested to assign UDP port 4242 in the "Service Name and
          Transport Protocol Port Number Registry":
        </t>
        <ul spacing="compact">
          <li>Service Name: ipv45</li>
          <li>Transport Protocol: UDP</li>
          <li>Port Number: 4242</li>
          <li>Description: IPv4.5 Data Transport (Mode C encapsulation)</li>
          <li>Assignee: N. Matsukami &lt;info@insane-projects.com&gt;</li>
          <li>Reference: This document</li>
        </ul>
      </section>

      <section anchor="iana-proto" numbered="true" toc="default">
        <name>IP Protocol Number</name>
        <t>
          IANA is requested to assign IP Protocol Number 144 in the "Assigned
          Internet Protocol Numbers" registry:
        </t>
        <ul spacing="compact">
          <li>Decimal: 144</li>
          <li>Keyword: IPv4.5</li>
          <li>Protocol: Internet Protocol version 4.5</li>
          <li>Reference: This document</li>
        </ul>
      </section>

      <section anchor="iana-dns" numbered="true" toc="default">
        <name>DNS Resource Record Type</name>
        <t>
          IANA is requested to assign a new DNS RR type in the "Domain Name
          System (DNS) Parameters" registry:
        </t>
        <ul spacing="compact">
          <li>Type: AX</li>
          <li>Value: [to be assigned by IANA]</li>
          <li>Meaning: IPv4.5 Address Record</li>
          <li>Reference: This document</li>
        </ul>
        <t>
          The wire format of the AX record carries a 96-bit IPv4.5 address
          in network byte order (12-byte RDATA field).
        </t>
      </section>

      <section anchor="iana-safi" numbered="true" toc="default">
        <name>BGP Subsequent Address Family Identifier (SAFI)</name>
        <t>
          IANA is requested to assign SAFI value 144 in the "Subsequent
          Address Family Identifiers (SAFI) Parameters" registry:
        </t>
        <ul spacing="compact">
          <li>Value: 144</li>
          <li>Name: IPv4.5 EID-Locator Mapping</li>
          <li>Reference: This document</li>
        </ul>
      </section>

      <section anchor="iana-type-registry" numbered="true" toc="default">
        <name>IPv4.5 Packet Type Registry</name>
        <t>
          IANA is requested to create a new registry "IPv4.5 Packet Types"
          within a new "IPv4.5 Parameters" registry group. Future assignments
          in values 6-14 require Standards Action <xref target="RFC8126"/>.
        </t>
        <table align="left">
          <name>IPv4.5 Packet Types (Initial Values)</name>
          <thead>
            <tr><th>Value</th><th>Name</th><th>Reference</th></tr>
          </thead>
          <tbody>
            <tr><td>0</td><td>DATA</td><td>This document</td></tr>
            <tr><td>1</td><td>HANDSHAKE</td><td>This document</td></tr>
            <tr><td>2</td><td>CONTROL</td><td>This document</td></tr>
            <tr><td>3</td><td>ECHO</td><td>This document</td></tr>
            <tr><td>4</td><td>ERROR</td><td>This document</td></tr>
            <tr><td>5</td><td>KEEPALIVE</td><td>This document</td></tr>
            <tr><td>6-14</td><td>Unassigned</td><td>Standards Action</td></tr>
            <tr><td>15</td><td>Reserved</td><td>&#8212;</td></tr>
          </tbody>
        </table>
      </section>

      <section anchor="iana-error-registry" numbered="true" toc="default">
        <name>IPv4.5 Error Code Registry</name>
        <t>
          IANA is requested to create a new registry "IPv4.5 Error Codes"
          within the "IPv4.5 Parameters" registry group:
        </t>
        <table align="left">
          <name>IPv4.5 Error Codes (Initial Values)</name>
          <thead>
            <tr><th>Value</th><th>Name</th><th>Description</th></tr>
          </thead>
          <tbody>
            <tr><td>0</td><td>UNSPECIFIED</td><td>Unspecified error</td></tr>
            <tr><td>1</td><td>HOP_LIMIT_EXCEEDED</td><td>Hop Limit reached zero</td></tr>
            <tr><td>2</td><td>MTU_EXCEEDED</td><td>Packet exceeds path MTU</td></tr>
            <tr><td>3</td><td>UNREACHABLE</td><td>Destination unreachable</td></tr>
            <tr><td>4</td><td>AUTH_FAILED</td><td>Handshake authentication failure</td></tr>
            <tr><td>5</td><td>POLICY_DENIED</td><td>INP policy rejection</td></tr>
            <tr><td>6-255</td><td>Unassigned</td><td>Standards Action</td></tr>
          </tbody>
        </table>
      </section>

    </section>

  </middle>

  <!-- ============================================================ -->
  <!-- BACK MATTER                                                  -->
  <!-- ============================================================ -->
  <back>

    <!-- ========================================================== -->
    <!-- References                                                 -->
    <!-- ========================================================== -->
    <references>
      <name>References</name>

      <references anchor="normative-refs">
        <name>Normative References</name>

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0768.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0791.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1191.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4086.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4821.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5116.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7748.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8201.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8305.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8981.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9000.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9300.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9301.xml"/>

        <reference anchor="FIPS203" target="https://doi.org/10.6028/NIST.FIPS.203">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="203"/>
          <format type="PDF" target="https://doi.org/10.6028/NIST.FIPS.203"/>
        </reference>

        <reference anchor="FIPS204" target="https://doi.org/10.6028/NIST.FIPS.204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard (ML-DSA)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="204"/>
          <format type="PDF" target="https://doi.org/10.6028/NIST.FIPS.204"/>
        </reference>

      </references>

      <references anchor="informative-refs">
        <name>Informative References</name>

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1918.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2827.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3022.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6598.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6830.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7217.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8926.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9299.xml"/>

        <reference anchor="W3C-DID" target="https://www.w3.org/TR/did-core/">
          <front>
            <title>Decentralized Identifiers (DIDs) v1.0</title>
            <author surname="Sporny" initials="M." fullname="Manu Sporny"/>
            <author surname="Guy" initials="A." fullname="Amy Guy"/>
            <author surname="Sabadello" initials="M." fullname="Markus Sabadello"/>
            <author surname="Reed" initials="D." fullname="Drummond Reed"/>
            <date year="2022" month="July"/>
          </front>
          <refcontent>W3C Recommendation</refcontent>
        </reference>

        <reference anchor="KADEMLIA">
          <front>
            <title>Kademlia: A Peer-to-peer Information System Based on the XOR Metric</title>
            <author surname="Maymounkov" initials="P." fullname="Petar Maymounkov"/>
            <author surname="Mazieres" initials="D." fullname="David Mazieres"/>
            <date year="2002"/>
          </front>
          <refcontent>Proceedings of IPTPS 2002</refcontent>
        </reference>

      </references>
    </references>

    <!-- ========================================================== -->
    <!-- Appendix A: Deployment Considerations                      -->
    <!-- ========================================================== -->
    <section anchor="app-deployment" numbered="true" toc="default">
      <name>Deployment Considerations</name>

      <section anchor="app-phase1" numbered="true" toc="default">
        <name>Phase 1 (2027-2030): Early Adoption</name>
        <t>
          IPv4.5 is deployed as a user-space overlay using Mode C
          encapsulation. No kernel changes are required. Day-one benefits
          include quantum-resistant session encryption, ephemeral EIDs for
          endpoint privacy, and global reachability without CGN for endpoints
          behind cooperative ISPs.
        </t>
      </section>

      <section anchor="app-phase2" numbered="true" toc="default">
        <name>Phase 2 (2030-2035): Infrastructure Integration</name>
        <t>
          OS kernel integration, router support for ELMS BGP SAFI, and
          deployment of Edge Translators for IPv4 interoperability. ISPs
          offering native IPv4.5 addressing can eliminate CGN for IPv4.5-
          capable subscribers.
        </t>
      </section>

      <section anchor="app-phase3" numbered="true" toc="default">
        <name>Phase 3 (2035+): Native Protocol</name>
        <t>
          IP Protocol 144 (Mode D) is assigned and native IPv4.5 forwarding
          is enabled in router hardware. IPv4 continues as the backward-
          compatible locator plane.
        </t>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Appendix B: Open Issues                                    -->
    <!-- ========================================================== -->
    <section anchor="app-issues" numbered="true" toc="default">
      <name>Open Issues</name>
      <ol spacing="normal">
        <li>
          DNS AX Record Wire Format: A companion specification is needed for
          the complete AX record format, including DNSSEC signing.
        </li>
        <li>
          TLS WG Coordination: Alignment with draft-ietf-tls-hybrid-design
          should be evaluated.
        </li>
        <li>
          UDP/443 Fallback: The mechanism for detecting UDP/4242 blockage
          and falling back to UDP/443 needs specification.
        </li>
        <li>
          Edge Translator HA: High-availability state synchronization for
          Edge Translators requires a separate specification.
        </li>
        <li>
          ELMS DHT Specification: The Kademlia-based architecture requires
          a companion document.
        </li>
        <li>
          Handshake Fragmentation: The Client Hello fragmentation strategy
          requires detailed specification for interoperability.
        </li>
        <li>
          BGP-X Extensions: The BGP SAFI 144 specification requires a
          separate document.
        </li>
      </ol>
    </section>

    <!-- ========================================================== -->
    <!-- Appendix C: Change Log                                     -->
    <!-- ========================================================== -->
    <section anchor="app-changelog" numbered="true" toc="default">
      <name>Change Log</name>

      <section anchor="changelog-00" numbered="true" toc="default">
        <name>draft-matsukami-intarea-ipv45-00</name>
        <t>Initial submission to the IETF Datatracker (April 2026).</t>
        <ul spacing="normal">
          <li>
            Address space redesigned to globally unique 96-bit addresses
            with explicit Locator/Identifier separation.
          </li>
          <li>
            Semantic communication, per-packet intent fields, mandatory
            DID/SSI, and per-packet PQC signatures removed from scope.
          </li>
          <li>
            Backward compatibility claim refined to "transparent IPv4
            transit" with four explicit operating modes (A through D).
          </li>
          <li>
            Four-plane separation (data, control, identity, cryptographic)
            introduced.
          </li>
          <li>
            Hybrid PQC (ML-KEM-768 <xref target="FIPS203"/> + X25519
            <xref target="RFC7748"/>) specified, referencing NIST FIPS 203
            finalized August 2024.
          </li>
        </ul>
      </section>

    </section>

    <!-- ========================================================== -->
    <!-- Acknowledgements                                           -->
    <!-- ========================================================== -->
    <section anchor="acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>
        The author thanks the IETF int-area mailing list participants for
        their ongoing discussion of IPv4 transition mechanisms and addressing
        architecture.
      </t>
      <t>
        The Locator/Identifier separation concept builds directly on
        foundations laid by LISP <xref target="RFC6830"/> and its successors
        <xref target="RFC9300"/> <xref target="RFC9301"/>. The QUIC protocol
        <xref target="RFC9000"/> demonstrated that a new transport protocol
        can achieve wide deployment via UDP encapsulation and strongly
        influenced the Mode C design. The TLS 1.3 security model
        <xref target="RFC8446"/> informed the session security architecture.
      </t>
      <t>
        The eNID privacy mechanism is modeled after IPv6 Privacy Extensions
        <xref target="RFC8981"/> and Semantically Opaque Interface Identifiers
        <xref target="RFC7217"/>.
      </t>
    </section>

  </back>

</rfc>
