News for hackers. Stuff that matters.
Re:HTTP/3: the past, the present, and the future by tobib on Thursday September 26, 2019 @11:53AM (#21082170)
I hope I didn't miss this from the article but how do client and server "negotiate" which protocol to use?
Re:HTTP/3: the past, the present, and the future by tialaramex on Thursday September 26, 2019 @12:21PM (#21082532)
Already in HTTP servers can send an "Alt-Svc" header which proposes a different way that clients might reach the same resources. So one thing that can happen goes in full like this:

1. User type http://example.com into browser

1a. Browser does DNS lookup example.com AAAA or A -> 10.20.30.40

2. Browser connects to 10.20.30.40 TCP port 80 and speaks HTTP/1.1 over that port, announcing Host: example.com where it gets given a 301 redirect to https://example.com (and HSTS pre-load would skip this step)

3. Browser connects to 10.20.30.40 TCP port 443, using SNI for example.com where it is offered an ALPN option h2 (meaning HTTP/2.0) and it takes that option and speaks HTTP/2.0

4. Browser receives Alt-svc: h3=":12345" which is an announcement that this same HTTPS service is available as HTTP/3 using UDP port 12345 from the same IP

5. Now for any future resources from https://example.com/ the browser knows it could get them using HTTP/3

In future, maybe, perhaps, a new DNS record (only really practical via DPRIVE such as DoH since useless middleboxes will probably make this undeployable without) will do what the SRV record was trying to do, but this time focused on HTTP servers in particular. So with that record (again, not even a draft exists for this yet AFAIK):

1. User types http://example.com/ into browser

1a. Browser uses DoH to ask HTTP-SERVICE DNS lookup example.com -> big pile of stuff about how to get this service. If the DNS lookup fails it tries asking for A or AAAA instead.

2. Browser intuits from the big pile of stuff to do QUIC to 10.20.30.40 UDP port 12345, and then speaks HTTP/3.

Re:HTTP/3: the past, the present, and the future by lucaspardue on Thursday September 26, 2019 @12:30PM (#21082624)
Nice overview!

There is a draft [1] that would support Alt-Svc in DNS. Lots to consider there but it is being presented to IETF.

[1] - https://tools.ietf.org/html/draft-nygren-dnsop-svcb-httpssvc...

Re:HTTP/3: the past, the present, and the future by teddyh on Thursday September 26, 2019 @01:16PM (#21083099)
That looks very interesting, but, like SRV records have been studiously ignored in the past, I doubt that Google, Cloudflare, etc al. will allow this to be the norm, since this would eliminate much of the value proposition which Cloudflare has, and also partially drain the moat which Google has constructed around itself.
Re:HTTP/3: the past, the present, and the future by tialaramex on Thursday September 26, 2019 @05:59PM (#21086042)
Maybe take another glance at the "very interesting" draft? Those named authors are from Google and one of Cloudflare's competitors, Akamai.

Of course you can imagine these are rogue actors off developing technology that's hostile to their employer's needs. But, like, Occam's razor. It seems simpler to assume that these outfits see improving the place where they make money (the web) as just good business.

Re:HTTP/3: the past, the present, and the future by teddyh on Friday September 27, 2019 @08:05AM (#21090932)
I’ll belive it when I see it. SRV has been around for ages, and the arguments given for not using SRV in HTTP/2, QUIC etc. have been weak and unconvincing, despite its obvious benefits.
Re:HTTP/3: the past, the present, and the future by amluto on Thursday September 26, 2019 @08:25PM (#21087212)
I can’t fathom why CloudFlare world dislike this. To the contrary:

> They also enable aliasing of apex domains, which is not possible with CNAME.

That would help eliminate a major annoyance of using a CDN.

Re:HTTP/3: the past, the present, and the future by teddyh on Friday September 27, 2019 @08:07AM (#21090940)
If this draft RFC keeps the “priority” and “weight” features from SRV, it also means that most people would’t actually need a CDN.
Re:HTTP/3: the past, the present, and the future by amluto on Friday September 27, 2019 @10:27AM (#21092356)
If clients could assist in load-balancing, it might be handy, but large web hosts would still need a lot of nodes, a lot of bandwidth, DoS mitigation and, ideally, a way to get clients to use a local point of presence. In other words, people would still want most of the services that CloudFlare provides.
Re:HTTP/3: the past, the present, and the future by teddyh on Friday September 27, 2019 @07:15PM (#21097118)
> large web hosts would still need

> a lot of nodes,

Not that many, say three or four servers at most should IMHO be fine for the vast majority.

> a lot of bandwidth,

If your service gets popular enough that you need that much bandwidth, you can then very likely get enough funds to get adequate bandwidth. (Either by commercializing or by donations.)

> DoS mitigation

If you have four servers on four different networks, how hard would someone have to DoS them all before all four give out? And, maybe at least one of those four servers are placed on an ISP which is actually somewhat competent in helping you to filter out DoS traffic? Cloudflare doesn’t have some secret magic sauce, you know.

> and, ideally, a way to get clients to use a local point of presence.

That’s technically true, but only if you are desperate for your latency enough to merit such needs. But you probably aren’t. You are, most likely, much more served by optimizing your server caching and HTML page code than you would be by trying to claw a few extra milliseconds out of the network itself.

If you are desperate to get a few extra milliseconds, and already have a dead-simple homepage, and are enormously popular enough to merit it, then you are Google, and you can solve this problem by means not available to mere mortals.

I have written before in more detail why Google et al. probably doesn’t want SRV records: (In short, SRV solves problems for other people which Google have already solved for themselves, and Google would like to keep their moat.)

https://news.ycombinator.com/item?id=15906664#15908696

https://news.ycombinator.com/item?id=8549348#8550133

Re:HTTP/3: the past, the present, and the future by nirui on Thursday September 26, 2019 @10:34PM (#21087902)
Can the HTTP/1.1 server directly return the Alt-svc: h3 header? That way the entire HTTP/2 can be skipped, lower the bar of server implementation (maybe).
Re:HTTP/3: the past, the present, and the future by lucaspardue on Thursday September 26, 2019 @12:04PM (#21082320)
We use HTTP Alternative Services (RFC 7838). This appears as a Alt-Svc response header that advertises the availability of HTTP/3 to a client.

The client uses its local knowledge (and maybe other heuristics) to decide if it wants to change protocols.