An experimental protocol developed by Google to speed up latency-sensitive applications such as Web search. A prime goal is that connections can be established more quickly than with TCP ("zero RTT connection establishment"). The protocol is layered on top of UDP for deployability. According to a Chromium Blog article from April 2015, "roughly half of all requests from Chrome to Google servers are served over QUIC".
The IETF QUIC Working Group was chartered in October 2016, with the following goals stated in its original charter:
- Minimizing connection establishment and overall transport latency or applications, starting with HTTP/2;
- Providing multiplexing without head-of-line blocking;
- Requiring only changes to path endpoints to enable deployment;
- Enabling multipath and forward error correction extensions; and
- Providing always-secure transport, using TLS 1.3 by default.
The combination of QUIC and HTTP/2 with some enhancements should result in a new "HTTP/3" standard.
QUIC Encryption vs. Performance Analysis
QUIC mandates encryption for most information, including traditional "transport-level" fields such as sequence numbers. This complicates some performance analysis approaches. Various tools (e.g. qlog/qvis) and (protocol) mechanisms (such as the "spin" bit) have been suggested to address this.
(References
- Experimenting with QUIC, Chromium Blog, 27 June 2013
- A QUIC Update on Google's Experimental Transport, Chromium Blog, 17 April 2015
- Google Wants To Speed Up The Web With Its QUIC Protocol, Frederic Lardinois, TechCrunch, 19 April 2015
- QUIC Design Document and Specification Rationale
- QUIC FAQ for Geeks
- draft-ietf-quic-transport-22, QUIC: A UDP-Based Multiplexed and Secure Transport, Jana Iyengar, Martin Thomson, July 2019
- draft-ietf-quic-http-22, Hypertext Transfer Protocol Version 3 (HTTP/3), Mike Bishop, July 2019
draft-huitema-quic-dnsoquic-06, Specification of DNS over Dedicated QUIC Connections, Christian Huitema, Melinda Shore, Allison Mankin, Sara Dickinson, Jana Iyengar, March 2019
- draft-ietf-quic-qpack-09, QPACK: Header Compression for HTTP/3, Charles 'Buck' Krasic, Mike Bishop, Alan Frindell, July 2019
- draft-ietf-quic-recovery-22, QUIC Loss Detection and Congestion Control, Jana Iyengar, Ian Swett, July 2019
- draft-ietf-quic-tls-22, Using TLS to Secure QUIC, Martin Thomson, Sean Turner, July 2019
- draft-ietf-quic-applicability-05, Applicability of the QUIC Transport Protocol, Mirja Kuehlewind, Brian Trammell, July 2019
- draft-ietf-quic-manageability-05, Manageability of the QUIC Transport Protocol, Mirja Kuehlewind, Brian Trammell, July 2019
draft-ietf-quic-spin-exp-01, The QUIC Latency Spin Bit, Brian Trammell, Mirja Kuehlewind, October 2018
- draft-ietf-quic-invariants-06, Version-Independent Properties of QUIC, Martin Thomson, July 2019
- draft-duke-quic-load-balancers-04, QUIC-LB: Generating Routable QUIC Connection IDs, Martin Duke, May 2019
- draft-stephan-quic-interdomain-troubleshooting-03, QUIC Interdomain Troubleshooting, Emile Stephan, Mathilde Cayla, Arnaud Braud, Fred Fieau, Alex Ferrieux, Marcus Ihlar, July 2019
- draft-deconinck-quic-multipath-03, Multipath Extensions for QUIC (MP-QUIC), Quentin De Coninck, Olivier Bonaventure, August 2019
- draft-montenegro-quic-negotiate-pnp-02, QUIC Negotiation for Packet Number Protection, Gabriel Montenegro, Nick Banks, Praveen Balasubramanian, September 2018
- draft-pauly-quic-datagram-03, An Unreliable Datagram Extension to QUIC, Tommy Pauly, Eric Kinnear, David Schinazi, July 2019
draft-aboba-avtcore-quic-multiplexing-03, QUIC Multiplexing, Bernard Aboba, Peter Thatcher, Colin Perkins, January 2019
draft-martini-hrpc-quichr-00, QUIC Human Rights Review, Beatrice Martini, Niels ten Oever, October 2018
draft-montenegro-quic-negotiate-pnp-03, QUIC Negotiation for Header Protection, Gabriel Montenegro, Nick Banks, Praveen Balasubramanian, January 2019
- draft-swett-nwcrg-coding-for-quic-03, Coding for QUIC, Ian Swett, Marie-Jose Montpetit, Vincent Roca, Francois Michel, July 2019
- draft-pardue-quic-http-mcast-05, Hypertext Transfer Protocol (HTTP) over multicast QUIC, Lucas Pardue, Richard Bradbury, Sam Hurst, August 2019
draft-kuhn-quic-0rtt-bdp-00, Transport parameters for 0-RTT connections, Nicolas Kuhn, Emile Stephan, March 2019
draft-paulo-quic-migration-00, Exploring QUIC Connection Migration, Rui Paulo, March 2019
draft-schinazi-quic-version-negotiation-00, Compatible Version Negotiation for QUIC, David Schinazi, Eric Rescorla, March 2019
draft-pauly-quic-address-extension-00, QUIC Address Extension, Tommy Pauly, Christopher A. Wood, Eric Kinnear, March 2019
draft-perkins-quic-p2p-mux-00, Peer-to-Peer Connections for the QUIC Transport Protocol, Colin Perkins, March 2019
- draft-kazuho-quic-address-bound-token-00, Address-bound Token for QUIC, Kazuho Oku, April 2019
- draft-ferrieuxhamchaoui-quic-lossbits-00, The QUIC Loss Bits, Alexandre Ferrieux, Isabelle Hamchaoui, April 2019
- draft-dai-quic-netconf-00, Using NETCONF over QUIC connection, Jinyou Dai, Xueshun Wang, Yang Kou, Lifen Zhou, May 2019
- draft-vvv-webtransport-quic-00, WebTransport over QUIC, Victor Vasiliev, May 2019
- draft-vvv-webtransport-http3-00, WebTransport over HTTP/3, Victor Vasiliev, May 2019
- draft-kuehlewind-quic-substrate-00, Use Cases and Requirements for QUIC as a Substrate, Mirja Kuehlewind, Zaheduzzaman Sarker, Thomas Fossati, June 2019
- draft-kazuho-quic-authenticated-handshake-01, Authenticated Handshake for QUIC, Kazuho Oku, Christian Huitema, July 2019
- draft-kuhn-quic-4-sat-00, QUIC for SATCOM, Nicolas Kuhn, Godred Fairhurst, John Border, Emile Stephan, July 2019
– SimonLeinen - 2017-09-27 - 2020-07-23