Hacker News new | ask | show | jobs
by hardwaresofton 1264 days ago
Would you mind expanding on other protocols that would be better?

I personally cant think of a protocol I’d rather have go everywhere than QUIC/HTTP3.

Forced TLS is disappointing (there’s some discussion), but the upside is that this means SNI works and you can now very easily route UDP traffic via SNI.

Given the flexibility of HTTP/3 I wouldnt mind having it everywhere.

1 comments

HTTP/3 is just a way to have multiple reliable connections with less latency in establishing them than with TCP.

What you can use instead is simply TCP.

TCP is simple, mature, has all kinds of support in software and hardware.

The only advantage of HTTP/3 doesn't matter to most use cases and doesn't warrant its complexity and throwing away all the networking ecosystem built on TCP.

Sure -- but I do value the fact that UDP + some upper layer option is better than plain TCP (essentially you can always build TCP on top of UDP but not UDP on top of TCP per-say). There's no reason that advancements in TCP cannot be "backported" to QUIC or UDP

I'd go so far as to say that it's possible TCP should always have been another layer up the stack rather than an alternative to UDP.

But coming back to concrete use cases, here's one I've been kicking around in my head lately -- it would be great to build a video calling application that relied exclusively on SFUs (so just redistributing frames, no WebRTC stuff) but only needed one port for all the traffic. It seems that HTTP/3 brings benefits to this use case, two things in particular:

- Running all off of ~one port (443/tcp or 443/udp)

- The ability to easily take advantage of a bidirectional stream with UDP semantics (I guess HTTP/2 could have done this), something we rely on WebRTC to do now.

I say this because I've felt the pain of trying to set up complicated video conferencing software and while WebRTC is awesome, it is a bit heavy weight, if you're alright with an intermediary forwarding the frames.

[EDIT]: as far as perf goes, Cloudflare has a good blog post on this: https://blog.cloudflare.com/cubic-and-hystart-support-in-qui...

You can run all your WebRTC traffic off a single port. You use the remote 3 tuple (IP, Port, Protocol) to demux traffic.

https://github.com/pion/webrtc/tree/master/examples/ice-sing... is one example of that.