Live data from Hacker News

HTTP/3 is everywhere but nowhere

httptoolkit.com

401–410 of 504 posts

Re: HTTP/3 is everywhere but nowhere

#401
post #135

Earlier quoted context omitted.

Why not Traefik?

Good question! I have nothing against Traefik. I just haven't used it as much, whereas with Envoy I've both used it and contributed to it a little bit too.

Makes sense. I see nothing wrong with any of them, I just never heard of Envoy and I used mostly Traefik.

I even used its experimental http3 support in v2, and now it's stable in v3. As stable as it can get I guess.

Re: HTTP/3 is everywhere but nowhere

#402

Earlier quoted context omitted.

> A "few extra ms" is up to 3 roundtrips difference, that's easily noticeable by humans on cellular. That's a valid concern. That's the baseline already though, so everyone is already living with that without much in the way of a concern. It's a nice-to-have. The problem OP presents is what are the tradeoffs for that nice-to-have. Is security holes an acceptable tradeoff?

I routinely have concerns about lag on mobile. It sucks to have to wait for 10 seconds for a basic app to load. And that adds up over the many many users any given app or website has.

Is HTTP the issue here though? Most of the time it seems to be more to do with the server taking ages to respond to queries. E.g. Facebook is equally poor on mobile as it is on my fibre-connected desktop (which I assume is using HTTP/3 as well) so I have my doubts that swapping HTTP versions will make a difference on mobile.

I did find it amusing how the author of the linked article says the megacorps are obsessed with improving performance (including the use of HTTP/3 to apparently help improve performance). In my experience the worst performing apps are those from the megacorps! I use Microsoft apps regularly at work and the performance is woeful even on a fibre connection using a HTTP/3 capable browser and/or their very own apps on their very own OS.

Re: HTTP/3 is everywhere but nowhere

#403

Earlier quoted context omitted.

> A "few extra ms" is up to 3 roundtrips difference, that's easily noticeable by humans on cellular. That's a valid concern. That's the baseline already though, so everyone is already living with that without much in the way of a concern. It's a nice-to-have. The problem OP presents is what are the tradeoffs for that nice-to-have. Is security holes an acceptable tradeoff?

Most people still use Google, and so they're living the fast HTTP 3 life, switching off that to a slower protocol only when interacting with non-Google/Amazon/MSFT properties. If your product is a competitor, but slower/inaccessible users are going to bounce off your product and not even be able to tell you why.

MSFT provides some of the slowest experiences I've had e.g. SharePoint, Teams, etc. Am laughing at the assumption that non-MSFT/etc properties are seen as slower when it is i fact MSFT that are the slowpokes. I haven't used Google much lately but they can be pretty poor too.

AWS are pretty good though. However it is notable I get good speeds and latency using S3 over HTTP/1.1 for backing up several hundreds gigs of data, so not sure if HTTP/3 makes any difference if it is already good enough without.

Re: HTTP/3 is everywhere but nowhere

#404

Earlier quoted context omitted.

At the cost of head-of-line blocking - one dropped TCP packet delays all HTTP/2 streams.

Yes, but head-of-line blocking is a different thing than round trips.

Isn't head of line blocking a problem with the design of web servers?

Re: HTTP/3 is everywhere but nowhere

#405
post #131

Earlier quoted context omitted.

The connection to your local tower can have a negligible latency. The connection all the way to the datacenter may take longer. Then, there is congestion sometimes, e.g. around large gatherings of people; it manifests as latency, too.

But from the tower onward it shouldn't be any different from fixed internet connections, except for the gatherings, I'll grant that one. So then (modern) mobile shouldn't be all that special.

A lot of traffic still goes over 4G or even 3G in many countries. Most countries have only deployed 5G NSA (non-standalone) which means mobiles uses both 4G and 5G at the same time. Only a few networks in a few countries have deployed 5G SA (standalone) where mobiles use 5G only -- and even those few networks only deploy 5G SA in certain places e.g. selected CBDs. I live in the largest city in my country and I only get 4G still in my suburb and much of rest of my city is 5G NSA which means in most places phones stil use 4G for uplink and a mix of 4G and 5G for the downlink. Hence there is still a long way to go until most traffic (in both directions -- i.e. uplink AND downlink) is over 5G.

Re: HTTP/3 is everywhere but nowhere

#406

Earlier quoted context omitted.

IPv6 always seemed to me to be driven by a certain class of purist networking geeks. Then some corporations started getting on board like you said, but many couldn't care less.

The largest use of IPv6 is in mobile (cell) networks. When they effectively killed IP block mobility (provider independent netblocks), they (the standards bodies) effectively killed it's adoption everywhere else. I work in the networking space and outside of dealing with certain European subsidiaries, we don't use IPv6 anywhere. It's a pain to use and the IPv6 stacks on equipment (routers, firewalls, etc) are no wher…

Depends on the country. New Zealand has zero mobile IPv6 users -- not one carrier has deployed IPv6 on mobile (and none plan to do so anytime soon). This includes two carriers that have deployed IPv6 on their xDSL/Fibre networks so it's not like they don't know how. It's interesting that some countries (e.g. NZ) see IPv6 deployed mostly on fixed line (i.e. xDSL/Fibre) while others (e.g. US) are mostly mobile. Perhaps it's not the fixed/mobile layer of the network stack that influences the decision to go IPv6 or not.

Re: HTTP/3 is everywhere but nowhere

#407
post #113

Earlier quoted context omitted.

IPv6 always seemed to me to be driven by a certain class of purist networking geeks. Then some corporations started getting on board like you said, but many couldn't care less.

Oh many purist networking geeks joined large corporations so that these corporations began to push IPv6 in a direction set by the geeks. They understood that as independent geeks they have essentially no say in the evolution of IPv6. My favorite example here is Android refusing to support stateful DHCPv6; it's clear that it's being pushed by purist networking geeks inside Google.

With IPv6 RAs, there's no need for DHCPv6. I don't use it at all and I use IPv6 just fine on mobile. One place where DHCPv6 may make some sense is the routerWAN/ISP connection. However once your router has a IPv6 prefix, it can easily advertise it on your LAN/WLAN for devices to capture it via IPv6 RAs for its IPv6 autoconfiguration which Just Works. Given that Android devices will attach to a WLAN router (and not directly to your WAN/ISP) it makes sense for there to be no DHCPv6 as it's not necessary for end user devices that aren't expected to be attached directly to the WAN/ISP.

Re: HTTP/3 is everywhere but nowhere

#408
post #158

Earlier quoted context omitted.

I'm happy to report that - to my utter amazement - my ISP's on-prem device does /64 prefix delegation to each (DHCPv6?) client.

Can you request a bigger delegation? a single /64 is very limiting, since that effectively limits you to 1 subnet (so no extra guest / IoT subnet)

You could ask your ISP/RSP for another /64? My RSP can do so I believe, not that I've asked.

Re: HTTP/3 is everywhere but nowhere

#410
post #303

Earlier quoted context omitted.

Major reason for that is BSD Sockets and their leaky abstraction that results in hardcoding protocol details in application code. For a good decade a lot of software had to be slowly patched in every place that made a socket to add v6 support, and sometimes multiple times because getaddrinfo didn't reach everyone early enough.

> results in hardcoding protocol details in application code Are you suggesting that this could have been implemented a different way? Example: IP could be negotiated to upgrade from v4 to v6? I am curious about your ideas.

Yes, multiple ways, including implemented ways.

For the examples I am going to use the typical "HTTP to example.com" case.

Some OSI-focused stacks provided high level abstraction that gave you a socket already set for listening or connected to another service, based on combination of "host name", "service name", and "service type".

You'd use something like

  connect("example.com", "http", SVC_STREAM_GRACEFUL_CLOSE) // using OSI-like name for the kind of service TCP provides
and as far as application is concerned, it does not need to know if it's ipv4, ipv6, X.25, or a direct serial connection (OSI concept of separating "service" from "protocol" is really a great idea that got lost)

Similar approach was done in Plan 9 (and thus everyone who uses Go is going to see something similar) with the dial API:

  dial("example.com!http",0,0,0)

As part of IPv6 effort an attempt at providing something similar with BSD Sockets was made, namely getaddrinfo which gives back information to be fed to socket/bind/connect calls - but for a long time people still learnt from old material which had them manually fill in socket parameters without GAI so adoption was slowed down.
Post reply on HN