QUIC : 빠른 UDP 인터넷 연결
QUIC(Quick UDP Internet Connections, 빠른 UDP 연결) 프로토콜 UDP를 하위 트랜스포트 계층 프로토콜로 사용하는 애플리케이션 계층 프로토콜 애플리케이션 설계자는 애플리케이션 계층에 항상 ‘자신의 프로토콜을 확장’ 할 수 있다
QUIC의 주요 기능
- 연결지향적이고 안전함
- TCP와 마찬가지로 연결지향적
- 연결상태를 설정하는데 필요한 핸드셰이크 + 인증 및 암호화에 필요한 핸드셰이크를 결합하여 TCP 연결 설정
- TCP 연결을 통해 TLS 연결을 설정하여 RTT가 필요한 스택보다 더 빠른 설정 제공
- 스트림
- 2개의 QUIC 종단 간에 데이터를 순서대로 안정적으로 전달하기 위한 추상화
- 단일 QUIC 연결을 통해 스트림을 다중화, 연결이 설정되면 새 스트림을 빠르게 추가할 수 있음
- 웹 페이지에 각 개체에 대해 다른 스트림 존재
- 각 연결에는 연결 ID가 있고 연결 내 스트림에 스트림 ID가 존재
- 두 ID는 QUIC 패킷 헤더에 포함
- 신뢰적이고 TCP 친화적인 혼잡 제어 데이터 전송
- 각 QUIC 스트림에 대해 독립적으로 신뢰적인 데이터 전송 제공
- TCP
- 순서대로 전달됨
- 중간에 요청이 손실되면 나머지 요청은 손실된 바이트가 재전송되서 올바르게 수신될 때까지 대기 (= HQL 차단 문제)
- QUIC
- 스트림별로 전달하기 때문에 손실된 UDP 세그먼트는 데이터가 전달된 스트림에만 영향
- 다른 스트림은 영향 x