The Illustrated QUIC Connection
quic.ulfheim.net
quic.ulfheim.net
If your fabric has end-to-end flow control this would be fine, but this seems like it could be greatly misused and should come with some warning labels.
They copied directly from TCP and made several adjustments to improve signalling.
Looks like someone finally did the "lets replace TCP with UDP" job right.
And it looks like a hell of a lot of work.
There’s a lot of thought that has gone into QUIC and the protocol has several rules and mechanisms to prevent problems, such as the 3x amplification limit. Both the browser authors and server side (e.g. google) are on the lookout for problems and how they can improve on them.
Ousterhout is now looking for people to test the Homa protocol for the data center to improve its implementation [1].
[1]Linux implementation of Homa, a protocol to replace TCP for low-latency RPC:
>TLS: Certificate, the certificate for this host, containing the hostname, a public key, and a signature from a third party asserting that the owner of the certificate's hostname holds the private key for this certificate
It's like "onion URLs" without the rest of Tor. Or like b32.i2p domains without the rest of I2P.
What I dont quite get is how the individual streams are encrypted. As I understood it, the initial vector(IV) is generated during the initial handshake, so all the streams would reuse the same IV which could make it leak the requested file.
Note that unlike TCP retries do not re-use the packet number, they get a higher packet number on re-transmit. This lets endpoints differentiate packet retries from delayed packets, which isn’t possible in TCP (and the ambiguity of which is a problem in TCP stacks that want to react differently to each).
TLS is not TCP specific.
DTLS is regularly used in IoT applications such as smart metering where the overhead of a TCP stack is costly.
1: https://greenbytes.de/tech/webdav/draft-ietf-quic-tls-latest...
TLS-over-TCP solves this by sending TLS records with a type-and-length byte header. QUIC uses UDP which is more record based, and sends TLS records encapsulated in QUIC packets.
In particular, ideally we'll have kernel support that allows for more capable userspace stacks to run, and also allows just opening a socket.
Make sure the server sends h3 with the alt-svc (http) header and adds h3 to the (tls v1.3) alpn. The browser may connect to h1 or h2 endpoints at first, then upgrading it to h3 for subsequent connections where supported (provided, the firewall isn't blocking QUIC).
https://tools.ietf.org/id/draft-ietf-quic-http-23.html#rfc.s...
It's unclear where this will all end up right now; you'll probably have to wait a bit for it to be production ready. But there's clearly broad interest in the topic, though.