QUIC
| Communication protocol | |
| Purpose | General purpose |
|---|---|
| Developer(s) | IETF, Google |
| Introduction | October 12, 2012 |
| Based on | IP, normally layered with UDP |
| OSI layer | Transport layer |
| RFC(s) | 9000, 8999, 9001, 9002 |
| Website | quicwg |
| Internet protocol suite |
|---|
| Application layer |
| Transport layer |
| Internet layer |
| Link layer |
QUIC (/kwɪk/) is a general-purpose transport layer network protocol initially designed by Jim Roskind at Google.[1][2][3] It was first implemented and deployed in 2012[4] and was publicly announced in 2013 as experimentation broadened. It was also described at an IETF meeting.[5][6][7][8] The Chrome web browser,[9] Microsoft Edge,[10][11] Firefox,[12] and Safari all support it.[13] In Chrome, QUIC is used by more than half of all connections to Google's servers.[9]
QUIC improves performance of connection-oriented web applications that previously relied on Transmission Control Protocol (TCP). [2][9] It does this by establishing a number of multiplexed connections between two endpoints using User Datagram Protocol (UDP), and it is designed to obsolete TCP at the transport layer for many applications. Although its name was initially proposed as an acronym for Quick UDP Internet Connections, in IETF's use of the word QUIC is not an acronym; it is simply the name of the protocol.[3][8][1]
QUIC works hand-in-hand with HTTP/3's multiplexed connections, allowing multiple streams of data to reach all the endpoints independently, and hence independent of packet losses involving other streams. In contrast, HTTP/2, carried over TCP, can suffer head-of-line-blocking delays if multiple streams are multiplexed on a TCP connection and any of the TCP packets on that connection are delayed or lost.
QUIC's secondary goals include reduced connection and transport latency, and bandwidth estimation in each direction to avoid congestion. It also moves congestion control algorithms into the user space at both endpoints, rather than the kernel space, which it is claimed[14] will allow these algorithms to improve more rapidly. Additionally, the protocol can be extended with forward error correction (FEC) to further improve performance when errors are expected. It is designed with the intention of avoiding protocol ossification.
In June 2015, an Internet Draft of a specification for QUIC was submitted to the IETF for standardization.[15][16] A QUIC working group was established in 2016.[17] In October 2018, the IETF's HTTP and QUIC Working Groups jointly decided to call the HTTP mapping over QUIC "HTTP/3" in advance of making it a worldwide standard.[18] In May 2021, the IETF standardized QUIC in RFC 9000, supported by RFC 8999, 9001 and 9002.[19] DNS-over-QUIC is another application.
- ^ a b Cite error: The named reference
rfc9000was invoked but never defined (see the help page). - ^ a b Cite error: The named reference
LWNwas invoked but never defined (see the help page). - ^ a b Cite error: The named reference
QUIC Design Docwas invoked but never defined (see the help page). - ^ Cite error: The named reference
Chromium Code Merging QUICwas invoked but never defined (see the help page). - ^ Cite error: The named reference
chromium_announcementwas invoked but never defined (see the help page). - ^ Cite error: The named reference
Google Working on QUICwas invoked but never defined (see the help page). - ^ Cite error: The named reference
quic_youtubewas invoked but never defined (see the help page). - ^ a b Cite error: The named reference
IETF QUIC Introwas invoked but never defined (see the help page). - ^ a b c Lardinois, Frederic (18 April 2015). "Google Wants To Speed Up The Web With Its QUIC Protocol". TechCrunch. Retrieved 2016-10-25.
- ^ Mackie, Kurt; August 26, 2021. "Microsoft Embracing Native QUIC in Newer Windows OSes and Edge Browser". Redmond Magazine. Retrieved 2022-05-08.
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ Christopher Fernandes (April 3, 2018). "Microsoft to add support for Google's QUIC fast internet protocol in Windows 10 Redstone 5". Retrieved 2020-05-08.
- ^ Dragana Damjanovic (2021-04-16). "QUIC and HTTP/3 Support now in Firefox Nightly and Beta". Mozilla. Retrieved 2021-10-11.
- ^ Cite error: The named reference
safari16was invoked but never defined (see the help page). - ^ Langley, Adam; Riddoch, Alistair; Wilk, Alyssa; Vicente, Antonio; Krasic, Charles; Zhang, Dan; Yang, Fan; Kouranov, Fedor; Swett, Ian; Iyengar, Janardhan; Bailey, Jeff; Dorfman, Jeremy; Roskind, Jim; Kulik, Joanna; Westin, Patrik; Tenneti, Raman; Shade, Robbie; Hamilton, Ryan; Vasiliev, Victor; Chang, Wan-Teh; Shi, Zhongyi (2017-08-07). "The QUIC Transport Protocol: Design and Internet-Scale Deployment". SIGCOMM '17: Proceedings of the Conference of the ACM Special Interest Group on Data Communication. ACM. doi:10.1145/3098822.3098842. ISBN 978-1-4503-4653-5. p. 195:
developing and deploying networking protocols in user space brings substantial benefits, and it makes development, testing, and iteration cycles faster and easier.
- ^ "Google Will Propose QUIC As IETF Standard". InfoQ. Retrieved 2016-10-25.
- ^ "I-D Action: draft-tsvwg-quic-protocol-00.txt". i-d-announce (Mailing list). 17 Jun 2015.
- ^ "QUIC - IETF Working Group". datatracker.ietf.org. Retrieved 2016-10-25.
- ^ Cimpanu, Catalin (12 November 2018). "HTTP-over-QUIC to be renamed HTTP/3". ZDNet.
- ^ "QUIC is now RFC 9000". www.fastly.com. 2021-05-27. Retrieved 2021-05-28.