Search
Duplicate

HTTP/3 그리고 QUIC

Created
2022/06/19 05:59
tags
📡Network
🖥️CS
sHTTP는 TCP 프로토콜을 기반으로 만들어져 있었지만 HTTP/3은 UDP 프로토콜 기반으로 되어있다. HTTP/3의 원래 이름은 HTTP over QUIC로 QUIC라는 프로토콜에서 돌아가는 HTTP이고 QUIC 프로토콜이 UDP 기반으로 만들어졌다.
QUIC가 기존에 비해 빠르다고 알려져있는데 UDP를 사용하기 때문이다. TCP는 신뢰성이 높고 느린 반면에 UDP는 신뢰성이 낮고 빠르다. TCP는 처음 통신을 시작할 때 3-Way Handshake 과정을 거치고 통신을 마칠 때에는 4-Way Handshake를 거친다. 특히 모바일 환경에서 네트워크가 변경되면 저 과정을 변경될 때마다 거쳐야 한다.
UDP 헤더에는 담긴 정보가 없어 개발자가 마음대로 커스텀할 수 있는 공간이 넓다. 이를 이용하여 QUIC는 Handshake를 최적화할 수 있었다. TCP는 Handshake 과정을 끝내고 데이터 전송을 시작하지만 QUIC는 Handshake와 동시에 데이터를 전송한다.
TCP는 IP주소와 포트로 클리이언트를 인식하기 때문에 모바일 같이 네트워크 환경이 바뀌면 연결이 끊어지고 Handshake 과정을 거치게 된다. QUIC는 랜덤한 ID를 부여한다. 네트워크 환경이 바뀌어 IP, 포트가 변경되도 Handshake 과정을 거치지 않는다.
QUIC는 2021년에 RFC 9000으로 표준화되었고, HTTP/3는 2022년에 RFC 9144로 표준화되었다.