Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Where does QUIC sit in between TCP and HTTP2?


QUIC is a UDP based network protocol. It is an alternative to HTTP2 or HTTP, which are TCP based protocols. If you visit google.com with a recent version of chrome, you're using QUIC. Open chrome://net-internals/#quic in another tab and click a connection UID to see the conversation.


This is mostly correct but not entirely.

HTTPS is layered such that it's HTTP > TLS > TCP.

QUIC replaces the 'TLS > TCP' portion with 'QUIC > UDP', which you can then run HTTP or HTTP2 on top of.

QUIC is not an alternative to HTTP2 (yet), although there's work underway to (re-)define HTTP2 in terms of QUIC [1], thereby replacing the awkward transport protocol aspects of HTTP2 with the very similar mechanisms provided by QUIC.

[1] https://tools.ietf.org/html/draft-shade-quic-http2-mapping-0...


Thanks for the clarification, I guess I was confused about how it worked.

For those seeking more detail, I found these two links helpful:

https://docs.google.com/presentation/d/15e1bLKYeN56GL1oTJSF9...

https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp...


The not-so-nice part about the newer HTTP versions is that they are not really layered in the classical sense. This means HTTP/1, HTTP/2 and HTTP over QUIC all carry the same semantics (you got methods, addresses, headers, and body streams), but implementation of HTTP itself is different and it's not only a substitution of the underlying transport layer: E.g. in HTTP/2 there's no classical HTTP data transferred over a multiplexed stream (like what HTTP over SCTP could have brought us). Instead it carries HTTP aspects (headers), multiplexing and flow control all in a single layer which makes layering and generic reuse hard.

Have not looked into that QUIC mapping yet, but I have read that generic use is a goal for it, which is good. If HTTP over QUIC succeeds (it probably will if pushed by google) I'm wondering how of how much use HTTP/2 still will be. Classical HTTP will most likely always exist as it's easy to implement and is covered by lots of systems (even embedded) and libraries.


Is QUIC specific to HTTP, or can it be used as as transport mechanism for arbitrary protocols?


QUIC stands on its own; it just so happens that QUIC and SPDY (the predecessor of HTTP/2) show some convergent evolution.

You could use QUIC to transport other L7 protocols, but tracking down generic-enough implementations may be difficult, or at least was the case in the past [1][2]. Maybe things are better now [3].

[1] https://daniel.haxx.se/blog/2016/07/20/curl-wants-to-quic/

[2] http://stackoverflow.com/questions/17896432/

[3] https://github.com/google/proto-quic


Any other browser support QUIC other then Google Chrome?


See https://lwn.net/Articles/558826/ for a good introduction.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: