News for hackers. Stuff that matters.
Re:HTTP/2 and HTTP/3 explained by jeltz on Thursday March 14, 2024 @05:35AM (#39701894)
You will need to back up that accusation, because now you are accusing Daniel Stenberg of being a liar. On paper HTTP shouldperform much better than HTTP 1.1 and especially HTTP 2 on links with high packet loss since TCP handles packet loss very poorly.

https://http3-explained.haxx.se/en/why-quic

Re:HTTP/2 and HTTP/3 explained by pi-e-sigma on Thursday March 14, 2024 @06:39AM (#39702213)
On paper... meanwhile in the real world HTTP2 and HTTP3 are actually worse than HTTP 1.1. Also TCP handles packet loss just fine because there is that thing called selective acknowledgment and has been for ages but you folks just don't even bother to learn TCP first before shitting on it.
Re:HTTP/2 and HTTP/3 explained by golebiewsky on Thursday March 14, 2024 @07:05AM (#39702379)
I was actually curious why SACK's don't resolve issue, but according to https://stackoverflow.com/questions/67773211/why-do-tcp-sele... > Even with selective ACK it is still necessary to get the missing data before forwarding the data stream to the application.
Re:HTTP/2 and HTTP/3 explained by vasilvv on Thursday March 14, 2024 @07:25AM (#39702489)
It's possible to build something similar on top of TCP, see Minion [0] for an example. There are multiple reasons why this is less practical than building on top of UDP, the main two being, from my perspective: (1) this requires cooperation from the OS (either in form of giving you advanced API or having high enough privilege level to write TCP manually), and (2) this falls apart in presence of TCP middleboxes.

[0] https://dedis.cs.yale.edu/2009/tng/papers/nsdi12-abs/

Re:HTTP/2 and HTTP/3 explained by pi-e-sigma on Thursday March 14, 2024 @07:22AM (#39702474)
Which is exactly the same in HTTP2/3. You can't forward a stream when it's missing some data.
Re:HTTP/2 and HTTP/3 explained by brickteacup on Thursday March 14, 2024 @12:01PM (#39705670)
Yes, bytes from a *logical* stream need to be delivered in order. But in HTTP2 (3) multiple logical streams are multiplexed on top of one physical TCP (QUIC) connection. In the HTTP2 case this means that a dropped segment from logical stream A will block delivery of subsequent segments from an different logical stream B (which is bad for obvious reasons). QUIC doesn't have this problem, which is a large part of its value proposition.
Re:HTTP/2 and HTTP/3 explained by pi-e-sigma on Thursday March 14, 2024 @12:13PM (#39705784)
Except it doesn't work in practice and real world data proves it. Multiplexing streams inside of a single TCP connection don't magically make your data link less prone to dropped packets or high latency.
Re:HTTP/2 and HTTP/3 explained by afiori on Sunday March 17, 2024 @02:30AM (#39732370)
I am curious of why the kernel does not allow it; there could be an API that gives you fragments of the stream in "events" like {slice: [10000, 10100], data:<blob>} and let the application have a peak preview of future data
Re:HTTP/2 and HTTP/3 explained by avianlyric on Thursday March 14, 2024 @11:31AM (#39705309)
Yes, TCP provides the guarantee that your application will always receive data in the same order it was sent. Your kernel will do the necessary buffering and packet reordering to provide that guarantee.

So SACK might reduce packet resends, but it doesn’t prevent the latency hit that comes for having to waiting for the data went missing. Even if your application is capable of either handling out-of-order data, or is simply capable of handling missing data.

Re:HTTP/2 and HTTP/3 explained by jeltz on Thursday March 14, 2024 @08:37AM (#39703109)
That HTTP2 is the worst of the bunch is a given. But HTTP3 should on paper be able to handle packets loss better than HTTP1.1 and way better than HTTP2.

And SACK does not seem to help under my real life workloads. Maybe poor implementations. I don't know.

Re:HTTP/2 and HTTP/3 explained by pi-e-sigma on Thursday March 14, 2024 @08:45AM (#39703208)
Just a few years ago HTTP2 was the best thing since sliced bread and any criticism was silenced. This begs the question if HTTP2 was so great then why did they come up with HTTP3? SACK is not a silver bullet because when you have high latency high loss link then nothing really helps. The difference is that HTTP2/3 folks like to deny reality and claim that they can do better when in fact they can't
Re:HTTP/2 and HTTP/3 explained by jeltz on Thursday March 14, 2024 @09:34AM (#39703792)
I don't have high latency, I have high packet loss and high latency on some packets but most not. And that is something TCP cannot handle without breaking down totally but some UDP based protocols can handle it just fine. I don't know about HTTP3 though, that might also fail under those circumstances.
Re:HTTP/2 and HTTP/3 explained by pi-e-sigma on Thursday March 14, 2024 @09:45AM (#39703934)
I suspect your case is not that the packets are simply dropped but that the TCP connections are reset. Lookup your TCP stack statistics to verify. If that's the case try to find out if the resets are made by your side, the source or the intermediaries.
Re:HTTP/2 and HTTP/3 explained by kstrauser on Thursday March 14, 2024 @12:06PM (#39705710)
> you folks just don't even bother to learn TCP first before shitting on it.

Let me stop you right there. I promise you you're not the only person who really knows how TCP works. The people who made HTTP2 and HTTP3 are clearly smart, knowledge folks who have a different perspective than you do. It's OK to disagree with them, but it's a bad look for you to assume that they're ignorant on the subject.

Re:HTTP/2 and HTTP/3 explained by pi-e-sigma on Thursday March 14, 2024 @12:30PM (#39705993)
I didn't assume they are ignorant. I assumed that the are fraudulent. They knew they couldn't really improve existing protocols because it's simply not possible but moved forward anyway for personal gain. Just like everything from Google for the last 20 years. You make big splash with new and 'revolutionary' 6th version of instant messaging, get your promo and move on. And here we are, HTTP2 ran its course, time for HTTP3 because we need the promotions and the clout of 'innovators'
Re:HTTP/2 and HTTP/3 explained by ersamsa on Thursday March 14, 2024 @02:05PM (#39707105)
Not to disagree but there is something to be learned from failing
Re:HTTP/2 and HTTP/3 explained by pi-e-sigma on Thursday March 14, 2024 @02:20PM (#39707260)
They didn't fail. They got their promotions. It's you, the end user, who is left holding the bag. But fear not, HTTP3 is on the horizon and this time it's going to be glorious!
Re:HTTP/2 and HTTP/3 explained by rstuart4133 on Thursday March 14, 2024 @06:45PM (#39709851)
> Also TCP handles packet loss just fine

That's just plain wrong. I commented in more depth in https://news.ycombinator.com/item?id=39709591. In short, TCP treats packet loss as congestion signal and slows down. If the packet loss was due to congestion that's absolutely the correct response and it increases TCP's "goodput". But if the packet was lost due to noise then it has the opposite effect and goodput plummets to a fraction of what the link is capable of.

Re:HTTP/2 and HTTP/3 explained by GoblinSlayer on Friday March 15, 2024 @03:45AM (#39713033)
In wireshark logs that I saw TCP almost immediately resends the lost packet and exponentially slows down after the resent packet is lost.