News for hackers. Stuff that matters.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by Lichtso on Saturday June 20, 2020 @07:44AM (#23583382)
TCP has some downsides which can not be fixed. And QUIC solves them by going below TCP. It just uses UDP because all other protocols are usually blocked and thus unusable.

  Transparent handover (when changing IP addresses)
  Multipath
  Multiplexing: No head-of-line blocking
  Faster handshake
  Enforce authentication and encryption (also of some metadata)
  Forward Error Correction and other improvements for wire less networks
So the improvements are mostly noticeable for for mobile devices.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by the8472 on Saturday June 20, 2020 @07:54AM (#23583422)
There are some mistakes here. MPTCP definitely exists and has been deployed, which also encompasses handover. Faster handshake is covered by TFO in principle. FEC was only a proposal and has been dropped.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by JoshTriplett on Saturday June 20, 2020 @04:25PM (#23586975)
> MPTCP definitely exists and has been deployed, which also encompasses handover.

I wouldn't be surprised if many stacks and networks are able to deploy QUIC more easily than MPTCP.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by virattara on Saturday June 20, 2020 @08:16AM (#23583520)
> TCP has some downsides which can not be fixed.

I guess the problem is more with getting to adopt the fixes on a large scale even if the downsides of TCP are fixed.

> It just uses UDP because all other protocols are usually blocked

UDP is also blocked on several firewalls because of the fear of UDP flood attacks, QUIC fallbacks to TCP in such cases.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by starfallg on Saturday June 20, 2020 @09:03AM (#23583703)
Those aren't TCP downsides per se, just different design decisions based on different requirements back when TCP was standardised.

QUIC eliminates the TLS handshake time on top of TCP. You can't really improve on the TCP 3-way handshake - you need a minimum of 3 messages to ensure that both sides have agreed to a connection.

You also have to question whether FEC should be implemented in layer 4, rather than implemented over the lower layers only as when needed. It seems to be terribly inefficient to implement FEC end-to-end when the packetloss is due to the last mile (or several meters for WiFi).

To me, QUIC seems to be the wrong approach to the problem. If you want a connection-oriented protocol with the advantages above, it's much better just to push through a new version of TCP with the extensions. Sure, it's going to take longer than approving a new protocol over UDP, but the potential benefits are substantial. On the other hand, there is an argument that by pushing through QUIC, there is pressure to improve TCP in those ways. We'll have to see how this pans out.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by ricardobeat on Saturday June 20, 2020 @10:18AM (#23584074)
There is no way to 'push a new version of TCP', I believe that's one of the strong motivations for these protocols. Billions of devices and the world's entire network infrastructure would need to be upgraded, you'd only start seeing decent support after a decade. So you have to work with what we have - TCP and UDP.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by clarry on Saturday June 20, 2020 @10:44AM (#23584220)
Given how IPv6 went, a decade seems optimistic.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by fiddlerwoaroof on Saturday June 20, 2020 @12:43PM (#23584883)
IPv6 had a really bad case of second system effect, though.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by starfallg on Saturday June 20, 2020 @01:12PM (#23585060)
>There is no way to 'push a new version of TCP'

Yes there is.

TCP has a variable options range of up to 320 bits starting at the 20th octet to handle exactly feature extensions (This is exactly how Multi-Path TCP is implemented). There are also 3 reserved bits set for future use (13th octet), which can also form the basis of even larger extended option ranges for stuff like TLS negotiation.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by tialaramex on Saturday June 20, 2020 @01:54PM (#23585361)
You're describing how it can be upgraded in theory but the parent was explaining that it can't be done in practice.

One of the lessons of the last decade or so has been that only end-to-end encryption prevents ossification. To the extent that middleboxes can read stuff they will break forward compatibility.

For example certificate compression. How are we only sending that to standardisation now in 2020? Well it was impossible to deploy this before TLS 1.3. Why? Because older versions of TLS didn't encrypt certificates, and so middleboxes could read them, and so middleboxes would freak out if the certificate wasn't as expected. That's all it took to make a useful optimisation impossible to deploy.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by folmar on Saturday June 20, 2020 @05:56PM (#23587683)
> You're describing how it can be upgraded in theory but the parent was explaining that it can't be done in practice.

Adding features to TCP was done many times successfully already. When my jurney started there was no ws-scaling, ECN, SACK... They are all widely adopted now.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by tialaramex on Sunday June 21, 2020 @09:05AM (#23591798)
Ten years after it was standardised, field reports showed ECN at 0.06% of all connections using ECN while almost 40% showed countermeasures preventing ECN or other failures (the remainder did not attempt ECN)

So what did they do? Well they adjusted ECN so that it tolerates the broken middleboxes. That's what you have today. Your systems go "Oh, ECN is broken, oh well" and press on without it. You see this as a feature added "successfully" and I call it what it is: Failure.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by starfallg on Saturday June 20, 2020 @02:24PM (#23585662)
Where you're talking about TCP, then the only state aware devices in the path are usually stateful firewalls close to the beginning and end of the path. I can't see this causing major issues as firewalls don't usually act on options unless specifically configured, seeing that they don't change the fundamentals of TCP flow (ie. flags, seqs and acks). The option but are usually just flags for signalling between the two endpoints.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by mercer on Saturday June 20, 2020 @11:21AM (#23584421)
My apologies for just taking your comment as a jumping-off point, but could you or anyone else point me in the best (free) direction to properly learn about this whole stack of protocols? It's been very high on my list to finally figure out what sits below HTTP, and in a roundabout way my appetite has been whetted by reading a Claude Shannon biography and The Information (which I suppose aren't perhaps /that/ close to UDP and so on but more about information theory and error correction as a historical development), but those books made me really want to dive in and learn about the building blocks of 'the internet'. Any pointers to books, articles or courses would be very much appreciated!
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by starfallg on Saturday June 20, 2020 @01:17PM (#23585078)
TCP/IP Illustated Volume 1: The Protocols by W. R. Stevens is the classic textbook and a great place to start off. You can then read the IETF RFCs, which are usually well written and completely readable to anybody with a computing background.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by mercer on Sunday June 21, 2020 @06:31AM (#23591179)
awesome, thanks for the recommendation!
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by convolvatron on Saturday June 20, 2020 @12:40PM (#23584859)
the RFCs themselves are pretty accessible -ymmv.

rfc 791 - internet protocol

rfc 793 - transmission control protocol

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by Ericson2314 on Saturday June 20, 2020 @11:05AM (#23584330)
Hmm I would say TCP does have downsides. The choice between TCP and UDP is all-or-nothing. Quic does some nice modularization/layering so that you can effectively control reliability and ordering separately.

One way to think about it is negotiating a connection vs what that connection actually is are pretty separate. Sadly even the literature and education materials on TCP is pretty poor at explaining this. With the QUIC spec this just feels much clearer.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by Matthias247 on Saturday June 20, 2020 @02:18PM (#23585607)
I would actually say Quic is worse. In addition to mandatory ordering (like TCP) it also provides you mandatory encryption.

You can not really have "flexible ordering" with default Quic, since Quic Streams are inherently ordered Streams. You could treat them as unordered on one end and deliver out-of-order data as soon as at arrives, but that won't allow the peer to send unordered data due to an overall limited flow control window. Future extensions on QUIC (like the proposed datagram one) might change this.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by Ericson2314 on Saturday June 20, 2020 @08:55PM (#23588761)
You can create a new stream per datagram. Crazy, but it works.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by nyanpasu64 on Saturday June 20, 2020 @07:22PM (#23588297)
Is transparent handover in use in QUIC or HTTP/3 today? Can you start a large download or SSH session on Wi-Fi, switch to mobile data, and not break the connection?
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by Matthias247 on Sunday June 21, 2020 @04:36PM (#23595203)
It's supported by the protocol. But I'm not sure if it's actually supported by anyone who deployed the protocol. It requires to actually support connection ID migration in the library (which not all of them do), as well as to support it on infrastructure (e.g. L4 load balancers): If those receive a packet belonging to the same connection, but having a new source IP address (due to client having migrated), they still need to route things to the same server which has all the state about the connection. Therefore the whole thing is rather hard to implement.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by dehrmann on Saturday June 20, 2020 @07:11PM (#23588225)
I'm not sure if forward error correction works with UDP. UDP has a checksum field that's optional in IPv4, mandatory in IPv6 (why IPvAnything dictates anything in the transport layer is beyond me). Assuming you treat the checksum as absent and set it to zeros, it could still get added at any hop, and if that gets corrupted, the packet would be dropped.

If routers either ignore the checksum or never add it in, it could work.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by p1mrx on Saturday June 20, 2020 @07:56PM (#23588474)
UDP's checksum depends on information from the IP header, for both IPv4 and IPv6: https://en.wikipedia.org/wiki/User_Datagram_Protocol#Checksu...

Omitting the UDP/IPv4 checksum is permitted because the IPv4 header has its own redundant checksum, but omitting the UDP/IPv6 checksum would leave the IPv6 header with no checksum at all, which is why that's not permitted.

https://en.wikipedia.org/wiki/UDP-Lite lets you checksum the UDP/IP header plus an arbitrary (possibly zero-length) prefix of the payload, but I'm not sure if people actually use that.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by comex on Saturday June 20, 2020 @08:49PM (#23588724)
I believe the "errors" in this context are generally not actual corrupted packets, which are rare, but dropped packets seen in the context of a larger data transmission.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by baybal2 on Saturday June 20, 2020 @07:55AM (#23583425)
> UDP because all other protocols are usually blocked and thus unusable.

Well, UDP does not fare better on a lot of ISPs.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by the8472 on Saturday June 20, 2020 @08:02AM (#23583466)
If your ISP is blocking UDP and not just your router (which you can reconfigure if you want to use some other IP protocols) then you're arguably not on an Internet Service Provider at all, you're on some sort of WWW Service Provider.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by manquer on Saturday June 20, 2020 @11:38AM (#23584519)
Well that applies to any protocol , ISPs don’t block anything , your company usually do though .

UDP is very commonly blocked in almost every corporate environment I have seen, it is a pain get it enabled for applications like video streaming which benefits from UDP

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by the8472 on Saturday June 20, 2020 @12:35PM (#23584817)
Well, then you don't have internet access in your company. Only some fossilized subset of internet. They have intentionally excluded themselves from any kind of progress, so arguing against any new kind of standard because some people deliberately exclude themselves from new standards is a non-argument in my opinion.

It's like arguing against a developing new TLS version because people configure their firewalls to block any flavor of TLS they don't know.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by freemint on Monday June 22, 2020 @09:25AM (#23599889)
Expect it is not just configuration. It is hardware too. I am member in a internet provider by students. We couldn't allow an UDP since we have an agreement with our uplink that we will make it impossible to host outwards facing services. To guarantee that for UDP we would need a stateful firewall, which we didn't have. Due to agreements without uplink they want to have full access to our firewall and since they only use Cisco, we are required to do so too. This means we had to shell out €€€€€ to get a firewall from Cisco and we had to put aside money to do that for years. Then our (old) core router had 90%+ load during testing of the firewall since the hardware UDP support it supposedly had was not up for the task. So we had to buy a second core router where we lucky weren't bound to Cisco due to outside obligations another €€€€ investment. It's not just stupid configuration, sometimes it is just means and it takes long strategic planning we can do as a non-profit to afford such things.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by the8472 on Monday June 22, 2020 @12:39PM (#23602248)
> We couldn't allow an UDP since we have an agreement with our uplink that we will make it impossible to host outwards facing services.

Again, that agreement already means you're not providing internet service, even if you provided outgoing UDP you still would be violating the end to end principle. The hardware is just a consequence of wanting to be more (rather: less) than a dumb pipe.

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by freemint on Tuesday June 23, 2020 @04:43AM (#23611353)
So what are we then? I think we are better internet provider than any commercial one could be in the dorms we supply. Being an internet provider is being more than a dumb pipe. There are regulations too. We have to do customer service, keep up times, ... But according to you we are not an internet service provider.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by manquer on Saturday June 20, 2020 @06:30PM (#23587956)
Even today I am forced to deploy TCP fallback pretty much everywhere, even with corporations "whitelist" us, mainly because they have many/many PoPs all over the world. There is no guarantee their system-wide policies is actually applied at a particular access point/ device for any number of reasons.

It is particularly worse in consulting industry, This is usually because their customer actually controls the network/infra for the teams working with them, usually that means a lot of fragmented IT managment.

This is from my experience deploying Flash / WebRTC stack video tools in Fortune 500/2000 type orgs in last 8-9 years. One of the main reasons we moved to WebRTC from Flash early on is because the heavy friction for deploying RTMP/RTMPS(E). I can count in one hand how many of them had sensible network polices.

You may had a good experience with network policies, many many large organizations still insist on IE11 and restricted networks world around, that is the sad reality .

Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by iso947 on Saturday June 20, 2020 @06:01PM (#23587722)
There is a whole generation that have grown up woth ubiquitous “internet” access, but no concept that anything other than http(s) exists.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by Vecr on Saturday June 20, 2020 @11:48PM (#23589593)
Do you know of any non-TCP, non-UDP, non-ICMP, etc services I can try out?
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by the8472 on Sunday June 21, 2020 @09:51AM (#23592017)
IPsec?
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by dheera on Saturday June 20, 2020 @02:26PM (#23585677)
4G LTE is a godsend when companies or schools block stuff.
Re:A Technology Preview of Nginx Support for QUIC and HTTP/3 by vbezhenar on Saturday June 20, 2020 @08:48AM (#23583652)
I don't think that's true. A lot of commonly used applications utilize UDP.