diff options
| author | eunhhu <[email protected]> | 2026-09-28 16:41:15 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-28 16:41:15 +0100 |
| commit | 5e4cf1629482a2b36d229ffb0005ce31046eaa6c (patch) | |
| tree | fa4d26721a2331b2dfc7fb43d19b2b961419f249 /serve/tls.h | |
| parent | bde7c586a054e4bce18f70fc503ef8413711b8cd (diff) | |
| download | pure-5e4cf1629482a2b36d229ffb0005ce31046eaa6c.tar.gz pure-5e4cf1629482a2b36d229ffb0005ce31046eaa6c.zip | |
Design the Pure transport: stored records sent straight over UDP (011)
Outside feedback 002 asks for a protocol of Pure's own that beats QUIC.
Pure's delivery is already stored, numbered, applied once, and sealed per
link; QUIC and TCP with TLS own the same things again (retransmission
buffers, replay protection, encryption, flow control, acknowledgment).
The design takes the end-to-end argument literally: the sending app's
store is the retransmission buffer, one packet carries both the packet
ACK and the stored-through number, a direct link is sealed once with the
nodes' session keys, first contact carries records in its first packet
(the receiver's key is wired in advance and applying once makes replays
harmless), credits come from what the next save can take, the session is
known by its key rather than its addresses, and stored bytes are the
bytes on the wire. Loss detection, congestion control and cryptography
stay standard (RFC 9002, NewReno then CUBIC, HPKE), plain UDP sockets
rather than SOCK_RAW, HTTP stays the boundary to others.
Written before any code: the decision (this transport, QUIC with Pure's
format, or neither), the open questions, the smallest checks, a
measurement plan against quinn, ngtcp2 and the current HTTP delivery
(seven workloads, RAM and SD stores, loss and delay from unprivileged
namespaces with netem, checked to work on this Pi), and stop criteria:
no transport if it is under 30 % of a delivery's CPU; stop below 1.5x
the best QUIC per CPU; adopt at 2x with a round trip fewer, a quarter of
the memory per idle link, fair to TCP, every correctness and security
check passing, and under 5,000 lines.
Diffstat (limited to 'serve/tls.h')
0 files changed, 0 insertions, 0 deletions
