QUIC과 HTTP/3
QUIC and HTTP/3
QUIC은 UDP 위에서 TLS 1.3 기반 암호화·다중 스트림·혼잡 제어를 제공하는 전송 프로토콜(RFC 9000)이며, HTTP/3는 QUIC을 전송 계층으로 사용하는 HTTP 버전(RFC 9114)으로 TCP의 HOL 블로킹과 연결 지연 문제를 해소한다.
핵심 키워드
UDP 기반 전송RFC 9000 / RFC 9114TLS 1.3 내장1-RTT / 0-RTT 연결HOL 블로킹 해소스트림 다중화(Multiplexing)연결 ID·연결 마이그레이션QPACK 헤더 압축사용자 공간(User Space) 구현
구성도
정리
1. 개요
- QUIC: UDP 기반의 신뢰성 있는 암호화 다중화 전송 프로토콜 (Google 개발 → IETF 표준, RFC 9000·9001·9002)
- HTTP/3: QUIC 위에서 동작하는 HTTP 시맨틱 매핑 (RFC 9114), 헤더 압축은 QPACK(RFC 9204)
- 배경 (TCP + TLS + HTTP/2의 한계)
- TCP 3-way + TLS 핸드셰이크로 연결 설정 지연
- HTTP/2가 애플리케이션 HOL은 해결했으나 TCP 계층 HOL 블로킹 잔존 (패킷 손실 시 전체 스트림 대기)
- TCP는 커널 구현·미들박스 경직화(Ossification)로 프로토콜 개선 어려움
- 모바일 환경에서 IP 변경 시 연결 단절
2. 구성/원리
- 연결 설정: 전송·암호 핸드셰이크 통합 → 신규 1-RTT, 재연결 시 0-RTT
- 스트림 다중화: 하나의 연결에 독립 스트림, 손실은 해당 스트림에만 영향
- 연결 ID(Connection ID): IP/포트 대신 연결 식별 → Wi-Fi↔LTE 전환 시 연결 마이그레이션
- 보안: TLS 1.3 내장, 헤더 대부분 암호화로 미들박스 간섭 방지
- 신뢰성·혼잡 제어: 패킷 번호 단조 증가로 재전송 모호성 제거, 정밀 RTT 측정, 혼잡 제어 알고리즘 교체 용이
- HTTP/3 발견: Alt-Svc 헤더 또는 DNS HTTPS 레코드로 HTTP/3 지원 광고
3. 특징 또는 비교
| 구분 | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|
| 전송 계층 | TCP | TCP | QUIC(UDP) |
| 암호화 | 선택(TLS) | 사실상 TLS | TLS 1.3 필수 내장 |
| 다중화 | 없음(파이프라이닝 제한) | 스트림 다중화 | 독립 스트림 다중화 |
| HOL 블로킹 | 있음 | TCP 계층 잔존 | 전송 계층 해소 |
| 헤더 압축 | 없음 | HPACK | QPACK |
| 연결 설정 | TCP+TLS 다회 RTT | TCP+TLS 다회 RTT | 1-RTT / 0-RTT |
| 연결 이동성 | 불가 | 불가 | 연결 ID로 가능 |
4. 고려사항·최신 동향
- 네트워크 운영: UDP 차단·속도 제한 환경에서 TCP 폴백 필요, 암호화로 인한 가시성 저하(보안 장비·트러블슈팅)
- 성능: 사용자 공간 처리로 CPU 부하 증가 → GSO, 커널 우회 등 최적화
- 보안: 0-RTT 재전송 공격, UDP 증폭 공격 대응(주소 검증·증폭 제한)
- 동향
- 주요 브라우저·CDN의 HTTP/3 기본 지원 확산
- QUIC 버전 2(RFC 9369), 멀티패스 QUIC, 신뢰성 없는 데이터그램 확장(RFC 9221)
- MASQUE(QUIC 기반 프록시·터널), WebTransport 등 응용 확장
함께 볼 토픽
v1 · 2026. 10. 19. 갱신 · 틀린 내용을 발견하면 알려 주세요.