QUIC은 전송 핸드셰이크와 TLS 1.3을 한 번에 묶는다
HTTP/3는 TCP 위에 TLS를 올리는 대신, QUIC 안에 TLS 1.3과 전송 기능을 통합합니다. 새 연결은 보통 1-RTT, 조건이 맞는 재연결은 0-RTT로 시작할 수 있습니다.
Initial
ClientHello + QUIC transport params
클라이언트가 TLS 시작 정보와 QUIC 전송 설정을 같이 보냅니다.
1-RTT
ServerHello와 키 확정
서버 응답 뒤 암호화된 애플리케이션 데이터 전송 준비가 됩니다.
0-RTT
재연결에서는 early data 가능
이전 세션 정보가 있고 요청이 replay-safe일 때만 사용합니다.
fallback
UDP 443이 막히면 HTTP/2로 후퇴
기업망, 프록시, 방화벽 환경에서는 TCP 기반 경로가 필요할 수 있습니다.
항목
HTTP/2
HTTP/3 새 연결
HTTP/3 재연결
전송
TCP 연결 후 TLS
QUIC UDP 안에 TLS 통합
저장된 세션 정보 활용
시작 지연
TCP + TLS 왕복 필요
보통 1 RTT
조건부 0-RTT
주의
TCP HOL blocking
UDP 차단/경로 품질 확인
replay 안전한 요청만 early data
Alt-Svc 클라이언트는 HTTP/3 가능성을 먼저 배운다 서버나 CDN이 `h3=":443"`을 광고해야 전환이 시작됩니다.
0-RTT 빠른 만큼 재전송 공격을 고려한다 GET처럼 멱등성이 있는 요청에 제한하는 편이 안전합니다.
migration Connection ID가 경로 변경을 버틴다 Wi-Fi와 LTE 전환처럼 IP가 바뀌어도 같은 연결을 이어갈 수 있습니다.