News for hackers. Stuff that matters.
Re:Chrome is deploying HTTP/3 and IETF QUIC by parhamn on Wednesday October 07, 2020 @01:39PM (#24710669)
Those are pretty modest gains for a layer 4 change. It's going to be much harder to tool/debug this stuff. Is it expected that servers pretty much always support all the HTTP protocols or is the goal to eventually replace the earlier forms?
Re:Chrome is deploying HTTP/3 and IETF QUIC by ianswett on Wednesday October 07, 2020 @02:19PM (#24711063)
In regards to the gains, these results are without 0-RTT, so I expect the gains with 0-RTT to be substantially larger.

The numbers include total application latency, not just the latency introduced by the network, so the improvement to the network latency is larger. As such, applications that are more sensitive to network latency would show larger improvements.

Thanks, Ian

Disclosure: I authored the post

Re:Chrome is deploying HTTP/3 and IETF QUIC by StefanKarpinski on Wednesday October 07, 2020 @02:37PM (#24711224)
If I understand the benefits of HTTP/3 correctly, this post also doesn't address one of the major ones: seamless connection handoff during client mobility. Earlier HTTP versions are TCP-based, so if the IP address of a mobile client changes, e.g. because of moving from one cell tower to another or from wifi to/from cell, then the application layer has to notice the lost connection, create a new connection, and move whatever application-level context there is to the new connection. Not all applications do this, and even when they do, it's slow. If my understanding is correct, with HTTP/3 that's no longer necessary — the same HTTP/3 connection can migrate from one IP address to a different one.

Another benefit that isn't measured in this post but has been mentioned elsewhere in the comments here is that the experience on flaky wireless connections (without changing IPs) should be much better. TCP was designed on the premise that packet loss almost never due to physical failure to transmit a packet, and almost always due to routers queues being full (i.e. network congestion). Wireless networks violate this assumption badly: physical-layer issues are the most likely cause of packet loss on a wireless connection. TCP reacts to wifi packet drops by backing off, assuming that some router is overloaded, but the routers are fine — it's just last hop signal that's bad. In those circumstances, the client should just try again instead of throttling the connection to nothing. Since HTTP/3 uses UDP, it can potentially handle dropped packets more appropriately.

Re:Chrome is deploying HTTP/3 and IETF QUIC by nh2 on Wednesday October 07, 2020 @03:05PM (#24711493)
On your first point, why is it necessary to switch IPs when switching between cell tower? Doesn't the cell ISP manage the IP anyway, thus making it easy to keep it from one tower to the next?

On your second point, it's configurable how TCP reacts to packet loss. For example, wasn't BBR congestion control made to address exactly that case?

Re:Chrome is deploying HTTP/3 and IETF QUIC by judge2020 on Wednesday October 07, 2020 @03:39PM (#24711866)
I think at least a few network already make an attempt to maintain IPs, at least when the new cell tower goes to the same backbone, but the problem isn't that your IP address changes - it's that the TCP connection itself is no longer there. Transferring an IP is easier than transferring a TCP connection and ensuring all packets are received and ordered correctly between the two towers.
Re:Chrome is deploying HTTP/3 and IETF QUIC by jsnell on Wednesday October 07, 2020 @03:56PM (#24712051)
Every single mobile network will maintain IP addresses when migrating between cells. The IP address is not a property that the base stations care about at all, it's generally tied to the PDP context maintained by the GGSN/PGW, which will generally not be invalidated unless the connection is idle. Mobile operators will only have a handful of core networks even in large countries; having a subscriber move from the area covered by one core network to another would be quite rare.

Switching between cells will cause a latency spike, and a lot of correlated packet loss if the subscriber has a large queue of undelivered data, but that's all. But handling packet loss and ordering are what TCP is supposed to do.

I have no idea of what you mean by "the TCP connection is no longer there". The TCP connection is a distributed system living on the client and the server. It doesn't go away unless one of the endpoints decides so. (Modulo stateful middleboxes, like NATs. But nobody in their right mind would run a TCP state-aware middlebox on a cellular network base station).

IP changes are relevant when switching networks entirely, like going from WiFi to mobile.

Re:Chrome is deploying HTTP/3 and IETF QUIC by tialaramex on Wednesday October 07, 2020 @05:18PM (#24712858)
Yup.

One type of roaming that does trigger for smartphones and similar devices is WiFi->4G/5G->WiFi.

You're at home, obviously you don't want expensive mobile network data charges when you've got WiFi. So the connection is over WiFi. But as you walk out the door, currently your application software needs to spot that the WiFi is going away (not too hard), connect over the mobile network (unless your policies say to give up instead to save money) and keep going. QUIC would allow this to be done transparently at the transport layer, at least in some cases. When you reach a coffee shop/ friend's place/ work and there's WiFi again, the opposite transition saves you money and if you go indoors and signal is weaker may also be necessary to deliver a working network.

Re:Chrome is deploying HTTP/3 and IETF QUIC by mike_d on Thursday October 08, 2020 @12:13AM (#24715708)
When networks realize they can't easily inspect it and shape it, we are going to end up in a world where anything UDP that isn't DNS will be blocked.

TLS 1.3 and ESNI are already seeing blocking because middleboxes don't understand it.

Re:Chrome is deploying HTTP/3 and IETF QUIC by ed25519FUUU on Wednesday October 07, 2020 @01:56PM (#24710826)
Unless your web traffic represents single or double digits of worldwide web traffic, I don't see why anyone would bother.
Re:Chrome is deploying HTTP/3 and IETF QUIC by ehsankia on Wednesday October 07, 2020 @03:00PM (#24711448)
Well good thing it's optional and really only useful for a small subset of very large websites. I still serve my simple static unminified websites, but that doesn't mean minification and other optimizations have no reason to exist.
Re:Chrome is deploying HTTP/3 and IETF QUIC by mobilemidget on Wednesday October 07, 2020 @07:12PM (#24713910)
Now you got my head all going, doing bad math.... As I simply wanted to write "That is not very 'green' of you" as in, compressed, minified, could be more efficient, better for the environment. But then I started thinking, is the saved traffic worth the compress (though once for static content) and decompress at all clients, increased cpu power, worth that trade off...

And I guess I am not the first person to wonder about this, any people wanting to share a bookmark/url, tia (so I don't have to use google... ;) )

Re:Chrome is deploying HTTP/3 and IETF QUIC by mariusmarais on Thursday October 08, 2020 @06:05AM (#24717643)
I don't think _you_ (nor I in my personal capacity) would, but your provider definitely should, and then you get the benefit.

So if you're hosting via some accelerator like Cloudflare, AWS API Gateway, whatever Google has in this space, or app host like Heroku and friends, they'll happily do the work because they get the aggregate benefit. Your own site will become marginally faster or have happier roaming users, and so on, essentially for free.

When you're developing a generic website, I don't think you should care about this. When you're self-hosting, you can decide if it might be worth it or not. It probably won't be worth the effort unless you're doing something really intricate or special, in which case you'll be really happy that you have the option.

Re:Chrome is deploying HTTP/3 and IETF QUIC by pokoleo on Wednesday October 07, 2020 @02:10PM (#24710983)
Just like minified JS, I expect people will run 3 in production, and 2 in development/etc environments.
Re:Chrome is deploying HTTP/3 and IETF QUIC by baggy_trough on Wednesday October 07, 2020 @01:59PM (#24710864)
You would bother if you wanted reduced latency for a better user experience.
Re:Chrome is deploying HTTP/3 and IETF QUIC by weego on Wednesday October 07, 2020 @02:15PM (#24711027)
Optimising at that granularity is also utterly at odds with everything that webdev has been doing for decades now.

It's a micro optimisation that won't even register for your users, especially if you're reducing latency on 2mb of JS bundles

Re:Chrome is deploying HTTP/3 and IETF QUIC by baggy_trough on Wednesday October 07, 2020 @06:29PM (#24713557)
Well those webdevs are terrible, but that doesn't mean everyone has to follow what they are doing.
Re:Chrome is deploying HTTP/3 and IETF QUIC by leothecool on Wednesday October 07, 2020 @02:08PM (#24710967)
I don't disagree, but I still really really have a hard time caring about < 1ms of latency on a 50ms call.

But, if I had to pay the electric bill on 2.5 million servers, I would definitely care about wasting resources sending extra packets.

Re:Chrome is deploying HTTP/3 and IETF QUIC by throwaways885 on Wednesday October 07, 2020 @03:00PM (#24711457)
That 1 ms translates to a much larger number in poor countries with everyone on 2G.
Re:Chrome is deploying HTTP/3 and IETF QUIC by leothecool on Wednesday October 07, 2020 @04:03PM (#24712114)
I guess I'd have to see the metrics on it in production, but my intuition is that a 2% improvement to latency would be even less noticeable on low bandwidth connections where the download times are measured in whole seconds.
Re:Chrome is deploying HTTP/3 and IETF QUIC by baggy_trough on Wednesday October 07, 2020 @06:29PM (#24713568)
It's really the packet loss and TCP backoff that's a killer.
Re:Chrome is deploying HTTP/3 and IETF QUIC by kd913 on Wednesday October 07, 2020 @04:33PM (#24712407)
If you wanted reduced latency, I think you would stick with HTTP/2 with onload on a Solarflare card.

Until there is dedicated hardware NICs I think you would find HTTP/3 has worse latency. That is until dedicated NIC accelerators come out on the market.

Re:Chrome is deploying HTTP/3 and IETF QUIC by baggy_trough on Wednesday October 07, 2020 @06:31PM (#24713576)
You're still stuck with TCP and its backoff algorithm in that case though.
Re:Chrome is deploying HTTP/3 and IETF QUIC by ed25519FUUU on Wednesday October 07, 2020 @03:53PM (#24712015)
It would bother me if I had to debug an issue with QUIC for a website that never needed it in the first place.