Aether: A Next-Generation L4 Transport
draft-fomicheva-aether-00
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | Veronika Fomicheva | ||
| Last updated | 2026-07-27 | ||
| RFC stream | (None) | ||
| Intended RFC status | (None) | ||
| Formats | |||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-fomicheva-aether-00
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,
<https://www.rfc-editor.org/rfc/rfc2119>.
[RFC5869] Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand
Key Derivation Function (HKDF)", RFC 5869, May 2010,
<https://www.rfc-editor.org/rfc/rfc5869>.
[RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves
for Security", RFC 7748, January 2016,
<https://www.rfc-editor.org/rfc/rfc7748>.
[RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
Signature Algorithm (EdDSA)", RFC 8032, January 2017,
<https://www.rfc-editor.org/rfc/rfc8032>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, August 2018,
<https://www.rfc-editor.org/rfc/rfc8446>.
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,
<https://www.rfc-editor.org/rfc/rfc9000>.
[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,
<https://www.rfc-editor.org/rfc/rfc6582>.
[RFC768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980, <https://www.rfc-editor.org/rfc/rfc768>.
[RFC9293] Eddy, W., "Transmission Control Protocol (TCP)", STD 7,
RFC 9293, August 2022,
<https://www.rfc-editor.org/rfc/rfc9293>.
[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]