Conversation

Real-time applications like voice / video calls, gaming, etc. use custom protocols implemented on top of UDP. WebRTC uses SCTP-over-DTLS-over-UDP. QUIC is similar concept. WebRTC will move to using QUIC and most custom protocols implemented via UDP will be able to move to it.
1
IETF wanted QUIC to be separate from HTTP/3 because it's useful for other things. That's why they're standardizing it separately. It's not Google's protocol anymore. It has been heavily changed including dropping their much more minimal replacement for TLS and just using TLS 1.3.
1
Replying to and
What about uses other than web servers? Voice / video calls, etc. There's a reason that Zoom and nearly everyone else doing real-time stuff has terrible homegrown protocols. TCP doesn't work well for real-time applications and doesn't handle lossy networks or transitions well.
1
1
Replying to and
That's more defensible, but a big part of the problem is that they're actively trying to saturate your line to get the highest resolution possible. Aim for e.g. 10% of line capacity (thereby not ruining everything else on the network) and TCP works fine.
1
Replying to and
It works fine if it's not a lossy link, and if you don't want multiplexing. Games usually don't need very much throughput at all, but they need very low latency and they want to send a lot of messages in different streams which don't block each other. Many similar applications.
1
So for example, with a meeting, there's no reason that each different audio/video stream needs to block all of the others. It can be a bunch of streams multiplexed over the same connection. Also, a past frame doesn't need to block receiving future frames, etc. TCP is bad at this.
1
Replying to and
How can you stop a lost frame from blocking a future frame like that though? You could make a TCP connection for each stream in the meeting or even more fine-grained, but it's not fine-grained and TCP connections are problematic - they take time to ramp up / stabilize, etc.
1
WebRTC is SCTP over DTLS over UDP today. Nearly every voice/video application, video game, etc. uses custom protocols over UDP. QUIC has broader goals than trying to be a better TCP implementation, but they are making it do congestion control, etc. in a better way.
1
1
If you use assorted OS extensions (TCP_NODELAY is pretty much mandatory for anything interactive - not even close to real time), you can get TCP pretty usable over a very reliable, low latency network. Still not great for real time and it falls apart *really* fast when lossy.