QUIC

QUIC("퀵"으로 발음)은 범용 목적의 전송 계층 통신 프로토콜로서,
구글의 짐 로스킨드(Jim Roskind)가 처음 설계하였고, 2012년 구현 및 적용되었으며, 2013년 실험 확대로서 공개 발표되었고, 국제 인터넷 표준화 기구에 기술되었다. 여전히 인터넷 드래프트 상태이지만 QUIC는 구글 크롬에서부터 구글 서버에 이르는 모든 연결의 절반 이상에 사용된다. 마이크로소프트 엣지 모질라 파이어폭스가 이를 지원하되 이를 기본값으로 활성화해두지는 않은 반면 사파리는 기본값으로 QUIC를 활성화하고 있다.

이름이 처음에 "Quick UDP Internet Connections"의 두문자로 제안되었으나, IETF는 QUIC라는 단어를 사용 시 두문자로 사용하지 않으며 단순히 프로토콜의 이름으로 호칭한다.

QUIC는 TCP를 사용하는 연결 지향 웹 애플리케이션의 성능을 개선한다. 사용자 데이터그램 프로토콜(UDP)를 경유하여 2개의 종단점 간 수많은 다중화 연결을 확립함으로써 이를 달성한다. HTTP/2의 다중화 연결과 협력하여 동작하며 여러 데이터 스트림들이 개별적으로 모든 종단점에 도달할 수 있고 다른 스트림을 수반하는 패킷 손실에 독립적이다. 이와 대조적으로 전송 제어 프로토콜(TCP)로 호스팅되는 HTTP/2는 어떠한 TCP 패킷이라도 지연되거나 소실될 경우 모든 다중화 스트림에 대해 헤드 오브 라인 블로킹 지연 문제가 발생한다.

QUIC의 2차적 목표는 혼잡 회피를 위해 각 방향에서 발생할 수 있는 연결 및 전송 레이턴시와 대역폭을 감소시키는 것이다. 또, 두 종단점의 혼잡 제어 알고리즘을 커널 공간이 아닌 사용자 공간 안으로 배치시킴으로써 이 알고리즘을 더 빠르게 개선시킬 수 있다고 주장된다. 게다가 이 프로토콜은 오류 예측 시 전방 오류 정정(FEC)과 함께 성능을 추가적으로 개선시킬 수 있으며 이는 프로토콜 발전의 다음 단계로 간주된다.

2015년 6월, QUIC 사양의 인터넷 드래프트가 표준화를 위해 국제 인터넷 표준화 기구에 제출되었다. QUIC 워킹 그룹은 2016년 설립되었다. 2018년 10월, IETF의 HTTP 및 QUIC 워킹 그룹은 전 세계 표준화 이전에 QUIC 경유 HTTP를 HTTP/3으로 호칭하기로 공동 결정하였다.

소스 코드

같이 보기 
 CoAP
 데이터그램 혼잡 제어 프로토콜 (DCCP)
 데이터그램 전송 계층 보안 (DTLS)
 HTTP/3
 LEDBAT (Low Extra Delay Background Transport)
 다목적 처리 프로토콜 (MTP/IP) – an alternative to QUIC from Data Expedition, Inc.
 SPDY
 스트림 제어 전송 프로토콜 (SCTP UDP Encapsulation; RFC 6951)

각주

외부 링크 
 IETF QUIC Specification, Draft 27
 Chromium: QUIC, a multiplexed stream transport over UDP
 QUIC: Design Document and Specification Rationale, Jim Roskind's original document (2012/2013)
 :en:Daniel Stenberg: HTTP/3 explained
 Linux Weekly News: Connecting on the QUIC (2013)
 QUIC:, IETF-88 TSV Area Presentation (2013-11-07)
 Chromium Blog: Experimenting with QUIC (2013)
 QUIC: next generation multiplexed transport over UDP (Google Developers, 2014)
 HTTP over UDP: an Experimental Investigation of QUIC
 Multipath QUIC (extension to QUIC)
 Innovating Transport with QUIC: Design Approaches and Research Challenges (2017)

전송 계층 프로토콜
인터넷 프로토콜
컴퓨터 네트워킹