Skip to content

The UDX protocol

UDX is a QUIC-inspired transport that runs over plain UDP. It gives you reliable, ordered, multiplexed streams with congestion and flow control, and it survives the network changes that break TCP on mobile devices.

It is the default transport under both dart-libp2p and the Ricochet server, where it is addressed as /ip4/<addr>/udp/<port>/udx.

Feature What it means for you
Stream multiplexing Many independent streams share one UDP connection. Since v3, a lost packet on one stream no longer stalls the others.
CUBIC congestion control RFC 9002-style RTT estimation, packet pacing and delayed ACKs
Flow control Limits at both the connection and the stream level, so a slow reader throttles its sender
Connection migration PATH_CHALLENGE / PATH_RESPONSE, so a phone moving from Wi-Fi to cellular keeps its connection
Path MTU discovery RFC 8899 binary search between 1280 and 1500 bytes
Anti-amplification A 3× limit on data sent to unvalidated addresses