한양과학기술고등학교

에듀테크 프로젝트 대시보드

QUIC & HTTP/3

QUIC & HTTP/3 — UDP 위에서 더 빨라진 웹

HTTP/1.1과 HTTP/2는 TCP 위에서 동작한다. TCP는 신뢰성 있는 순서 보장 전송을 해주지만, 연결 수립에 왕복이 필요하고 패킷 하나가 사라지면 전체 스트림이 멈추는 한계가 있다. QUIC은 이 두 문제를 UDP 위에 새 전송 계층을 직접 구현해서 해결했고, HTTP/3는 이 QUIC 위에서 동작하는 HTTP다. 아래에서 무엇이 달라졌는지 하나씩 살펴보자.

연결 수립 왕복(RTT) 비교

헤드오브라인 블로킹 (Head-of-Line Blocking)

한 연결 안에서 여러 요청(스트림)을 동시에 보내는 것을 멀티플렉싱이라 한다. TCP는 하나의 순서 보장 바이트 스트림이라, 그 안 어딘가에서 패킷 하나만 사라져도 재전송될 때까지 뒤에 있는 모든 스트림의 데이터가 함께 멈춘다. QUIC은 스트림마다 독립적으로 순서를 보장해서, 사고가 난 스트림만 멈춘다. 버튼을 눌러 스트림 2의 패킷 하나가 사라졌을 때 무슨 일이 벌어지는지 비교해 보자.

TCP HTTP/2 멀티플렉싱 (하나의 순서 보장 스트림)
대기 중 — 아래 버튼을 눌러 전송을 시작하세요.
QUIC HTTP/3 멀티플렉싱 (스트림별 독립 순서 보장)
대기 중 — 아래 버튼을 눌러 전송을 시작하세요.

커넥션 마이그레이션 — Wi-Fi에서 LTE로

TCP 연결은 출발지 IP·포트 + 목적지 IP·포트 4개 값(4-tuple)으로 식별된다. Wi-Fi에서 LTE로 네트워크를 바꾸면 내 IP가 바뀌므로 이 4-tuple이 깨져 연결이 끊긴다. QUIC은 대신 Connection ID라는 별도의 값으로 연결을 식별하기 때문에, IP가 바뀌어도 같은 Connection ID로 끊김 없이 이어갈 수 있다.

TCP 연결

📶
192.168.0.12:51000 → 43.203.123.184:443
연결 유지 중

QUIC 연결

📶
CID: 8f3a91c0e2... (고정)
연결 유지 중

HTTP 버전별 비교

구분HTTP/1.1HTTP/2HTTP/3
전송 계층TCPTCPQUIC (UDP)
암호화선택 (별도 TLS)사실상 필수 (별도 TLS)기본 내장 (TLS 1.3)
멀티플렉싱없음 (연결당 1요청)단일 스트림 위 멀티플렉싱스트림별 독립 멀티플렉싱
HOL 블로킹있음 (요청 단위)있음 (TCP 계층)스트림 단위만 영향
연결 재개매번 새로매번 새로0-RTT 가능
네트워크 전환연결 끊김연결 끊김Connection ID로 유지
  • 0-RTT의 대가: 재접속 시 암호화 준비 없이 바로 데이터를 보낼 수 있어 빠르지만, 이 첫 데이터는 재전송 공격(replay attack)에 취약할 수 있어 결제처럼 민감한 요청에는 쓰지 않는다.
  • QUIC은 UDP 위에서 동작하지만 자체적으로 순서 보장·재전송·혼잡 제어를 구현해 TCP만큼 신뢰성 있게 데이터를 전달한다. "UDP를 쓴다"가 "신뢰성이 없다"는 뜻은 아니다.
  • 2022년 RFC 9000(QUIC)과 RFC 9114(HTTP/3)로 표준화됐고, 구글·유튜브·페이스북·클라우드플레어 등이 이미 대규모로 사용 중이다.