Home | Notifications | New Note | Local | Federated | Search | Logout
Note Detail
dave@dthompson@toot.cat (2026-10-18 09:52:32)
I have been thinking about how QUIC, the new hotness in low-level transport protocols, might apply to OCapN. My initial findings suggest it would be a poor fit but I'm still doing research.
QUIC's killer feature, stream multiplexing, doesn't do anything for OCapN because 1) OCapN mandates only one connection may be open between any two peers at a time for reasons of reference equality (in the sense of eq? in Scheme) so there can't be multiple streams at this abstraction layer 2) OCapN mandates FIFO order of message delivery and 3) unlike HTTP, OCapN is async and doesn't use a request/response cycle so once a message is delivered the pipe isn't blocked waiting for a result. The remaining advantages of QUIC are relatively minor things like faster connection due to not having to wait for a TCP handshake before doing a TLS/Noise/whatever handshake and just not being ossified like TCP.
A reliable transport built on UDP would still be very useful for OCapN because you need UDP for NAT hole punching, but idk if there's anything that can be taken off the shelf and used as-is.
Reply
---Replies---
d@nny disc@@hipsterelectron@circumstances.run (2026-10-18 09:58:14)
@dthompson QUIC is a version of double ratchet from the signal protocol (trevor perrin was advising on both). i strongly recommend looking into that instead; that's what i'm basing a similar system on
dave@dthompson@toot.cat (2026-10-19 21:52:25)
Some other reliable protocols built on UDP are 1) RUDP, made by Bell Labs for Plan9, which has a draft RFC from 1999 and 2) SCTP, notably used by WebRTC. I think I can rule out SCTP as a good fit because it has multistreaming (like QUIC) and multihoming which are both unnecessary for OCapN. RUDP seems much simpler but anything that was ever deployed seems to use something that forks from the draft spec, but perhaps it's a good starting point.
Daniel Lakeland@dlakelan@mastodon.sdf.org (2026-10-19 22:28:20)
@dthompson
At a high level. What is OCapN?
Every time I hear about this stuff its at too low of a level. What sorts of things is it supposed to enable?
Danny O'B@danny@mastodon.spesh.com (2026-10-20 00:24:14)
@dthompson Have you thought/looked into iroh any more? It's QUIC under-the-counter, though I suspect you'd need to have a simple daemon for it running alongside Goblins (a la the Tor/libp2p implementations) if you wanted it there.