QUIC

IP스택 **QUIC**("퀵"으로 발음)은 범용 목적의publisher = IETF 전송 계층accessdate = 2013-07-16 통신 프로토콜로서, 구글의 짐 로스킨드(Jim Roskind)가 처음 설계하였고,publisher = Jim Roskind, Chromium Contributor 2012년 구현 및 적용되었으며,accessdate = 2012-10-16 2013년 실험 확대로서 공개 발표되었고,accessdate = 2013-07-16publisher = François Beaufort, Chromium Evangelistaccessdate = 2014-04-04 국제 인터넷 표준화 기구에 기술되었다.accessdate = 2013-11-07 2015년 6월에 인터넷 드래프트로 제안된 후 2016년에 워킹 그룹이 설립되어 2021년 5월 RFC 9000 으로 표준화되었다. QUIC는 구글 크롬에서부터 구글 서버에 이르는 모든 연결의 절반 이상에 사용된다. 크롬 이외에도 마이크로소프트 엣지, 모질라 파이어폭스, 사파리 등 현존하는 대부분의 브라우저에서 기본으로 QUIC를 사용한다.Can I use... Support tables for HTML5, CSS3, etc 이름이 처음에 "Quick UDP Internet Connections"의 두문자로 제안되었으나, IETF는 QUIC라는 단어를 사용 시 두문자로 사용하지 않으며 단순히 프로토콜의 이름으로 호칭한다. QUIC은 TCP를 사용하는 연결 지향 웹 애플리케이션의 성능을 개선한다.access-date=2016-10-25 사용자 데이터그램 프로토콜(UDP)를 경유하여 2개의 종단점 간 수많은 다중화 연결을 확립함으로써 이를 달성한다. HTTP/2의 다중화 연결과 협력하여 동작하며 여러 데이터 스트림들이 개별적으로 모든 종단점에 도달할 수 있고 다른 스트림을 수반하는 패킷 손실에 독립적이다. 이와 대조적으로 전송 제어 프로토콜(TCP)로 호스팅되는 HTTP/2는 어떠한 TCP 패킷이라도 지연되거나 소실될 경우 모든 다중화 스트림에 대해 헤드 오브 라인 블로킹 지연 문제가 발생한다. QUIC의 2차적 목표는 혼잡 회피를 위해 각 방향에서 발생할 수 있는 연결 및 전송 레이턴시와 대역폭을 감소시키는 것이다. 또, 두 종단점의 혼잡 제어 알고리즘을 커널 공간이 아닌 사용자 공간 안으로 배치시킴으로써 이 알고리즘을 더 빠르게 개선시킬 수 있다고 주장된다. 게다가 이 프로토콜은 오류 예측 시 전방 오류 정정(FEC)과 함께 성능을 추가적으로 개선시킬 수 있으며 이는 프로토콜 발전의 다음 단계로 간주된다. 2015년 6월, QUIC 사양의 인터넷 드래프트가 표준화를 위해 국제 인터넷 표준화 기구에 제출되었다.access-date=2016-10-25mailing-list=i-d-announce QUIC 워킹 그룹은 2016년 설립되었다.access-date=2016-10-25 2018년 10월, IETF의 HTTP 및 QUIC 워킹 그룹은 전 세계 표준화 이전에 QUIC 경유 HTTP를 HTTP/3으로 호칭하기로 공동 결정하였다.last=Cimpanu
# 소스 코드
{| class="wikitable sortable" |+다음 QUIC 또는 gQUIC 구현체들은 소스 형태로 이용이 가능하다: !구현체 !라이선스 !언어 !설명 |- |Chromium | Free |C++ |This is the source code of the Chrome web browser and the reference gQUIC implementation. It contains a standalone gQUIC and QUIC client and server programs that can be used for testing. Browsable source code. This version is also the basis of LINE's stellite and Google's cronet. |- |QUIC Library (mvfst) | MIT 허가서 |C++ |mvfst (Pronounced move fast) is a client and server implementation of IETF QUIC protocol in C++ by Facebook. |- |LiteSpeed QUIC Library (lsquic) | MIT 허가서 |C |This is the QUIC and HTTP/3 implementation used by LiteSpeed Web Server and OpenLiteSpeed. |- |ngtcp2 | MIT 허가서 |C |This is a QUIC library that's crypto library agnostic and works with OpenSSL or GnuTLS. For HTTP/3, it needs a separate library like nghttp3. |- |Quiche | BSD 허가서 |Rust |Socket-agnostic and exposes a C API for use in C/C++ applications. |- |quicly | MIT 허가서 |C |This library is the QUIC implementation for the H2O web server. |- |quic-go | MIT 허가서 |Go |This library provides QUIC support in Caddy web server. Client functionality is also available. |- |Quinn | 아파치 라이선스 |Rust | |- |Neqo | 아파치 라이선스 |Rust |This implementation from 모질라 is planned to be integrated in Necko, a network library used in the Firefox web browser |- |aioquic | BSD 허가서 |Python |This library features an I/O-free API suitable for embedding in both clients and servers. |- |picoquic | BSD 허가서 |C |A minimal implementation of QUIC aligned with the IETF specifications |- |pquic | MIT 허가서 |C |An extensible QUIC implementation that includes an eBPF virtual machine that is able to dynamically load extensions as plugins |- |MsQuic | MIT 허가서 |C |A cross platform QUIC implementation from 마이크로소프트 designed to be a general purpose QUIC library. |- |QUANT | BSD 허가서 |C |Quant supports traditional POSIX platforms (Linux, MacOS, FreeBSD, etc.) as well as embedded systems. |- |quic | BSD 허가서 |Haskell |This package implements QUIC based on Haskell lightweight threads. |}