Transport choices
| Signalling | TCP/443 — HTTPS and WebSocket. Small messages, strict ordering needed,
retransmission is fine. |
|---|---|
| Media | UDP — DTLS-SRTP for audio and video, QUIC streams for screen sharing.
A late packet is worse than a lost one, so ordering must not be enforced globally. |
| Segmented video | UDP/443 — HTTP/3. One QUIC connection carries many independent streams, so a
loss on one segment no longer blocks the others (no TCP head-of-line blocking). |
| Telemetry | UDP — QUIC datagrams. Metrics are only useful if they arrive before the
session ends; a retransmitted sample is worthless. |
Why UDP/443 specifically
Firewall reality
Corporate and hotel networks commonly allow outbound 443 on both TCP and UDP and
drop everything else. Running QUIC on 443 removes a class of support tickets.
One port, two protocols
TCP and UDP port spaces are independent, so a single number can host the site (TCP) and the QUIC relay (UDP) without collision. This is the usual deployment for HTTP/3 front ends.
Middlebox behaviour
Non-443 UDP is frequently rate-limited or dropped by consumer CPE. 443 is the one port where large UDP flows are expected to work.
Congestion control and loss handling
Both ends run BBR. On a lossy mobile path, loss-based algorithms halve the rate and then crawl back; BBR models the bottleneck bandwidth and round-trip time and keeps the pipe full without filling buffers. For a relay this matters twice: the node inherits the worst of the two legs.
- Pacing is done in the QUIC stack, so bursts stay below the policer.
- Loss is repaired per stream; audio may be concealed rather than retransmitted.
- Each session has an explicit bitrate ceiling negotiated at start-up.
Path MTU
QUIC never fragments IP packets. The node discovers the usable path MTU with DPLPMTUD and keeps payloads at 1200–1400 bytes. ICMP fragmentation needed / packet too big messages are still honoured, which is why this host answers them but does not answer ordinary pings.
What we deliberately do not do
No content caching tiers
The node relays live sessions. There is no origin pull, no stored media library, no user-generated uploads.
No third-party transit
Only participants of our own sessions are forwarded. The relay is not an open proxy and does not accept unauthenticated forwarding.
No per-packet logging
Counters are aggregated per minute for capacity planning. Session content cannot be recovered — it is encrypted end to end between participants.