Independent Submission V. Fomicheva Internet-Draft Aether Protocol Working Group Intended status: Informational 27 July 2026 Expires: 28 January 2027 Aether: A Next-Generation L4 Transport draft-fomicheva-aether-00 Abstract This document specifies Aether, a transport-layer protocol (L4) designed for modern network environments requiring multiplexed streams without head-of-line blocking, mandatory encryption with post-quantum resistance, multi-path routing, and self-sovereign identity at the protocol layer. Aether operates entirely in userspace without kernel modifications. 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 28 January 2027. Copyright Notice Copyright (c) 2026 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. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Fomicheva Expires 28 January 2027 [Page 1] Internet-Draft Aether Protocol July 2026 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Design Philosophy . . . . . . . . . . . . . . . . . . . . 3 2. Wire Format . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Base Header (16 bytes) . . . . . . . . . . . . . . . . . 3 2.2. Long Header . . . . . . . . . . . . . . . . . . . . . . . 4 2.3. Packet Types . . . . . . . . . . . . . . . . . . . . . . 4 2.4. Extension Chain . . . . . . . . . . . . . . . . . . . . . 5 3. Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Handshake Phases . . . . . . . . . . . . . . . . . . . . 5 3.2. ClientHello . . . . . . . . . . . . . . . . . . . . . . . 6 3.3. ServerHello . . . . . . . . . . . . . . . . . . . . . . . 6 3.4. Key Derivation . . . . . . . . . . . . . . . . . . . . . 6 4. Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5. Multi-Path . . . . . . . . . . . . . . . . . . . . . . . . . 7 6. Congestion Control . . . . . . . . . . . . . . . . . . . . . 7 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 8. Identity Layer . . . . . . . . . . . . . . . . . . . . . . . 8 9. Connection Close . . . . . . . . . . . . . . . . . . . . . . 8 10. Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . 9 11. Constants . . . . . . . . . . . . . . . . . . . . . . . . . . 9 12. Comparison with Existing Protocols . . . . . . . . . . . . . 10 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 14. Reference Implementation . . . . . . . . . . . . . . . . . . 11 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 15.1. Normative References . . . . . . . . . . . . . . . . . . 11 15.2. Informative References . . . . . . . . . . . . . . . . . 12 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 12 1. Introduction 1.1. Motivation Transport-layer protocols have evolved slowly. TCP [RFC9293] provides reliable, ordered delivery but suffers from head-of-line blocking and requires separate TLS for encryption. UDP [RFC768] is lightweight but unreliable. QUIC [RFC9000] addresses many of TCP's shortcomings but is tightly coupled to HTTP/3. Aether is a general-purpose L4 transport protocol designed for: * Stream multiplexing without head-of-line blocking * Mandatory encryption with post-quantum resistance * Multi-path connections (seamless network switching) Fomicheva Expires 28 January 2027 [Page 2] Internet-Draft Aether Protocol July 2026 * Self-sovereign identity at the protocol layer * Userspace operation (no kernel modifications required) 1.2. Design Philosophy +=================+============================+ | Principle | Application in Aether | +=================+============================+ | Simple core | Fixed 16-byte base header; | | | features via extensions | +-----------------+----------------------------+ | Security non- | AEAD encryption from first | | optional | packet; no plaintext mode | +-----------------+----------------------------+ | Versioning | First packet declares | | | version and capabilities | +-----------------+----------------------------+ | Self-describing | Protocol metadata embedded | | | in handshake | +-----------------+----------------------------+ | Userspace-first | No OS kernel modifications | | | required | +-----------------+----------------------------+ Table 1: Design Principles and Application in Aether 2. Wire Format 2.1. Base Header (16 bytes) 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 | Type |H|E|R| Stream ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Connection ID (32 bits, short header) | | or Destination Connection ID (long header) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1 Fomicheva Expires 28 January 2027 [Page 3] Internet-Draft Aether Protocol July 2026 +===========+=======+===================================+ | Field | Bits | Description | +===========+=======+===================================+ | Ver | 4 | Protocol version. Starts at 0. | +-----------+-------+-----------------------------------+ | Type | 6 | Packet type (see Section 2.3) | +-----------+-------+-----------------------------------+ | H | 1 | 0 = Short header, 1 = Long header | +-----------+-------+-----------------------------------+ | E | 1 | Extensions present | +-----------+-------+-----------------------------------+ | R | 2 | Reserved (MUST be 0) | +-----------+-------+-----------------------------------+ | Stream ID | 18 | Stream identifier (0..262143) | +-----------+-------+-----------------------------------+ | Offset | 32 | Byte offset in stream | +-----------+-------+-----------------------------------+ | Length | 32 | Payload length (bytes) | +-----------+-------+-----------------------------------+ | Cnx ID | 32/64 | Short: 32-bit truncated CID. | | | | Long: 64-bit full Dest CID. | +-----------+-------+-----------------------------------+ Table 2: Header Fields 2.2. Long Header Long header adds 8 additional bytes after the base header containing the Source Connection ID (64 bits). Total: Long Header = 24 bytes, Short Header = 16 bytes. 2.3. Packet Types +===========+===============+===========================+========+ | Code | Name | Purpose | Header | +===========+===============+===========================+========+ | 0x00 | Initial | First packet, ClientHello | Long | +-----------+---------------+---------------------------+--------+ | 0x01 | Handshake | Crypto handshake | Long | +-----------+---------------+---------------------------+--------+ | 0x02 | Data | User stream data | Short | +-----------+---------------+---------------------------+--------+ | 0x03 | Ack | Packet acknowledgement | Short | +-----------+---------------+---------------------------+--------+ | 0x04 | Close | Connection close + code | Short | +-----------+---------------+---------------------------+--------+ | 0x05 | Ping | Keep-alive | Short | +-----------+---------------+---------------------------+--------+ Fomicheva Expires 28 January 2027 [Page 4] Internet-Draft Aether Protocol July 2026 | 0x06 | PathChallenge | Validate new path | Short | +-----------+---------------+---------------------------+--------+ | 0x07 | PathResponse | Confirm path | Short | +-----------+---------------+---------------------------+--------+ | 0x08 | StreamOpen | Open new stream | Short | +-----------+---------------+---------------------------+--------+ | 0x09 | StreamClose | Close stream (FIN) | Short | +-----------+---------------+---------------------------+--------+ | 0x0A-0x3F | Reserved | For future use | - | +-----------+---------------+---------------------------+--------+ Table 3: Packet Types (6-bit Type field) 2.4. Extension Chain When bit E is set, a TLV extension chain follows the header. Chain terminates with Ext Type 0x00. +======+=============+=========================================+ | Code | Name | Description | +======+=============+=========================================+ | 0x01 | Timestamp | Sender timestamp (64-bit, microseconds) | +------+-------------+-----------------------------------------+ | 0x02 | Priority | Stream priority (8 bits) | +------+-------------+-----------------------------------------+ | 0x03 | Padding | Anti-traffic-analysis padding | +------+-------------+-----------------------------------------+ | 0x04 | PathId | Multi-path identifier | +------+-------------+-----------------------------------------+ | 0x05 | FlowControl | Window update | +------+-------------+-----------------------------------------+ Table 4: Extension Types 3. Handshake 3.1. Handshake Phases The handshake completes in 1-RTT: Fomicheva Expires 28 January 2027 [Page 5] Internet-Draft Aether Protocol July 2026 Client Server | | |--- Initial (ClientHello) ------------>| | | |<-- Initial (ServerHello) -------------| | | |--- Handshake (ClientFinished) ------->| Client can now send Data | | |<-- Handshake (ServerFinished) --------| Server can now send Data | | |<======= Data (Encrypted) ===========>| Figure 2 3.2. ClientHello CBOR-encoded, inside AEAD-encrypted Initial packet payload. Contains: protocol version (0), 64-bit random client CID, supported version list, crypto parameters (Kyber768 + X25519, AES-256-GCM, SHA- 256), capabilities (multipath, max_streams, max_stream_data, ack_frequency, idle_timeout_ms), and an Ed25519 identity public key. 3.3. ServerHello CBOR-encoded response containing: echoed client CID, server CID, Kyber768 ciphertext, X25519 ephemeral public key, server capabilities, and server Ed25519 identity with proof (signature of transcript). 3.4. Key Derivation After ClientHello and ServerHello exchange: shared_secret = Kyber768.Decapsulate(kem_ciphertext) || X25519.DH(client_ephemeral, server_classical_pk) transcript = ClientHello || ServerHello session_key = HKDF-Expand( HKDF-Extract("AETHER-v0", shared_secret), transcript, 256 bits ) client_tx_key = HKDF-Expand(session_key, "client-tx", key_len) server_tx_key = HKDF-Expand(session_key, "server-tx", key_len) Figure 3 Fomicheva Expires 28 January 2027 [Page 6] Internet-Draft Aether Protocol July 2026 ClientFinished and ServerFinished carry HMAC-SHA256(session_key, transcript). Symmetric keys are destroyed after 3x PTO following connection close, providing Perfect Forward Secrecy. 4. Streams Each stream identified by 18-bit Stream ID (0..262143). Stream ID 0 reserved for control. Client opens streams with EVEN IDs; server with ODD IDs. Streams are independent: loss in one stream does not block others. Stream lifecycle: IDLE -> (StreamOpen) -> OPEN -> (StreamClose FIN) -> HALF-CLOSED -> (StreamClose ACK) -> CLOSED. Flow control operates at two levels: Connection-level (total in- flight data) and Stream-level (in-flight data per stream). Initial windows: Stream = 1 MiB, Connection = 16 MiB. Each Data packet carries an Offset (byte position). Receivers send Ack frames with received offset ranges. Unacknowledged packets are retransmitted with exponential back-off up to MAX_RETRANSMISSIONS (10). 5. Multi-Path Connections are identified by Connection ID, not IP address. This enables path migration: 1. Client detects a new network interface (e.g., 5G after Wi-Fi). 2. Client sends PathChallenge from new IP to server. 3. Server responds with PathResponse, confirming the new path belongs to the same connection. 4. Server begins sending data on both paths. 5. Client may duplicate data on both paths for reliability. Each path has a unique Path ID (Extension Type 0x04). Packets from different paths are multiplexed onto common streams; the receiver reassembles by Offset. When one path is lost, data automatically flows through remaining paths without connection interruption. 6. Congestion Control The default congestion control algorithm is Aether-CC, a hybrid of BBRv3 [BBR] and NewReno [RFC6582], optimized for high-latency satellite links, variable-bandwidth mobile networks, and noisy channels (distinguishing loss from congestion). Fomicheva Expires 28 January 2027 [Page 7] Internet-Draft Aether Protocol July 2026 Bandwidth estimation: delivery_rate = bytes_acked / time_delta; max_bw = max(max_bw, delivery_rate). RTT estimation: min_rtt = min(min_rtt, latest_rtt) over 10-second window. Congestion window: cwnd = max_bw * min_rtt * gain (gain: 1.25 during probing, 0.75 during drain). Loss classification: loss with low RTT and rising delivery_rate indicates congestion; loss with high RTT and stable delivery_rate indicates channel noise (window not reduced). Pluggable algorithms: "aether-cc" (default), "bbrv3", "cubic", "none" (testing). 7. Security Considerations Aether has no plaintext mode. All packets are encrypted: Initial packets with AEAD key derived from initial salt, Handshake packets with AEAD keys derived from shared_secret, Data packets with AEAD session_key. The handshake uses Kyber-768 [FIPS203] as primary KEM with X25519 [RFC7748] as classical fallback, providing post-quantum resistance as long as at least one algorithm remains secure. Metadata protection: Connection ID in short header is a 32-bit truncated value; Padding extension (0x03) allows random bytes for packet size obfuscation; Multipath data streams complicate passive traffic analysis. Each connection generates ephemeral keys. Compromise of an identity key does not reveal past sessions (Perfect Forward Secrecy). 8. Identity Layer Aether introduces cryptographic identity at the transport layer. Each node has an Ed25519 [RFC8032] key pair. Identity is: identity = SHA-256("AETHER-ID-" || Ed25519_public_key). During handshake, the node proves key ownership by signing the transcript. Advantages: DNS/CA/PKI independent (self-sovereign identity), IP mobility (IP changes do not affect identity), decentralized (no central registry required), W3C DID compatible (identity representable as a DID). 9. Connection Close Graceful close: Sender -> Close (NO_ERROR), Receiver -> Close (NO_ERROR). Keys destroyed after 3x PTO. Fomicheva Expires 28 January 2027 [Page 8] Internet-Draft Aether Protocol July 2026 +======+=====================+=============================+ | Code | Name | Description | +======+=====================+=============================+ | 0x00 | NO_ERROR | Normal closure | +------+---------------------+-----------------------------+ | 0x01 | INTERNAL_ERROR | Internal error | +------+---------------------+-----------------------------+ | 0x02 | PROTOCOL_VIOLATION | Protocol violation | +------+---------------------+-----------------------------+ | 0x03 | CRYPTO_ERROR | Cryptographic error | +------+---------------------+-----------------------------+ | 0x04 | FLOW_CONTROL_ERROR | Flow control limit exceeded | +------+---------------------+-----------------------------+ | 0x05 | TIMEOUT | Idle timeout | +------+---------------------+-----------------------------+ | 0x06 | VERSION_NEGOTIATION | Incompatible version | +------+---------------------+-----------------------------+ | 0x07 | REFUSED | Connection refused | +------+---------------------+-----------------------------+ | 0x08 | IDENTITY_REJECTED | Identity not accepted | +------+---------------------+-----------------------------+ Table 5: Error Codes 10. Discovery *Local discovery (LAN):* Multicast group 224.0.0.251:9000 (IPv4), ff02::fb:9000 (IPv6). Periodic announcements every 30 seconds. Announcement format: Initial packet with type "Announce" in extensions. *Global discovery (WAN):* Kademlia-based DHT (as in libp2p). DHT key = peer identity. DHT value = set of (IP, port, Connection ID) tuples. Enables peer location by identity without a centralized server. 11. Constants +===========================+==========+============================+ | Constant | Value | Description | +===========================+==========+============================+ | AETHER_DEFAULT_PORT | 9000 | Default port | +---------------------------+----------+----------------------------+ | AETHER_VERSION | 0 | Current protocol version | +---------------------------+----------+----------------------------+ | MAX_PACKET_SIZE | 1400 | Max packet size (MTU | | | | safe) | +---------------------------+----------+----------------------------+ Fomicheva Expires 28 January 2027 [Page 9] Internet-Draft Aether Protocol July 2026 | MAX_STREAM_ID | 262143 | Max Stream ID (18 bits) | +---------------------------+----------+----------------------------+ | IDLE_TIMEOUT_MS | 30000 | Connection idle timeout | | | | (ms) | +---------------------------+----------+----------------------------+ | PTO_BASE_MS | 100 | Base Probe Timeout (ms) | +---------------------------+----------+----------------------------+ | MAX_RETRANSMISSIONS | 10 | Max retransmit attempts | +---------------------------+----------+----------------------------+ | INITIAL_CWND | 10 * MSS | Initial congestion | | | | window | +---------------------------+----------+----------------------------+ | INITIAL_STREAM_WINDOW | 1048576 | Initial stream window | | | | (bytes) | +---------------------------+----------+----------------------------+ | INITIAL_CONNECTION_WINDOW | 16777216 | Initial connection | | | | window (bytes) | +---------------------------+----------+----------------------------+ Table 6: Protocol Constants 12. Comparison with Existing Protocols +================+======+=====+============+======+========+ | Feature | TCP | UDP | QUIC | SCTP | Aether | +================+======+=====+============+======+========+ | Reliable | Yes | No | Yes | Yes | Yes | +----------------+------+-----+------------+------+--------+ | Multiplexing | No | No | Yes* | Yes | Yes | +----------------+------+-----+------------+------+--------+ | Encryption | No** | No | Yes | No** | Yes | +----------------+------+-----+------------+------+--------+ | Multi-path | No | No | v2 | Yes | Yes | +----------------+------+-----+------------+------+--------+ | Userspace | No | Yes | Yes | No | Yes | +----------------+------+-----+------------+------+--------+ | Identity layer | No | No | No | No | Yes | +----------------+------+-----+------------+------+--------+ | PQC-ready | No | No | WIP | No | Yes | +----------------+------+-----+------------+------+--------+ | NAT friendly | Yes | No | Yes | No | Yes | +----------------+------+-----+------------+------+--------+ | HOL blocking | Yes | No | Per stream | No | No | +----------------+------+-----+------------+------+--------+ Table 7: Protocol Comparison * HTTP-tied. ** Requires separate TLS/DTLS layer. Fomicheva Expires 28 January 2027 [Page 10] Internet-Draft Aether Protocol July 2026 13. IANA Considerations This document requires no IANA actions. Future revisions may request a well-known port assignment for port 9000. 14. Reference Implementation A reference implementation of Aether Protocol v0.1 is available in the Rust programming language at https://github.com/nikaafo/aether- protocol. Components: * aether-core: Protocol library (framing, handshake, crypto, multipath, congestion control, identity, discovery). * aether-sdk: Enterprise SDK (identity vault, monitoring, SLA). * aether-gateway: L4 proxy for Aether-to-TCP bridging. * demo: Example application. License: MIT OR Apache-2.0. 15. References 15.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, . [RFC5869] Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)", RFC 5869, May 2010, . [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves for Security", RFC 7748, January 2016, . [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital Signature Algorithm (EdDSA)", RFC 8032, January 2017, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, August 2018, . Fomicheva Expires 28 January 2027 [Page 11] Internet-Draft Aether Protocol July 2026 [RFC9000] Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, May 2021, . [FIPS203] NIST, "Module-Lattice-Based Key-Encapsulation Mechanism Standard", FIPS 203, August 2024. 15.2. Informative References [RFC6582] Henderson, T., Floyd, S., Gurtov, A., and Y. Nishida, "The NewReno Modification to TCP's Fast Recovery Algorithm", RFC 6582, April 2012, . [RFC768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, August 1980, . [RFC9293] Eddy, W., "Transmission Control Protocol (TCP)", STD 7, RFC 9293, August 2022, . [BBR] Cardwell, N. and , "BBR: Congestion-Based Congestion Control", ACM Queue , 2016. Author's Address Veronika Fomicheva Aether Protocol Working Group Email: veronikafomich@yandex.ru URI: https://github.com/nikaafo/aether-protocol Fomicheva Expires 28 January 2027 [Page 12]