본문 바로가기
Etc.

HTTP/3 란?

by parkjp 2022. 3. 21.

 

HTTP/3는 HTTP와 HTTP/2와 더불어 월드 와이드 웹상의 정보를 교환하기 위해 사용되는 HTTP의 차기 주요 버전이자 3번째 프로토콜이다.

 

HTTP 시멘틱스는 이 버전들 모두 동일하다. 요청 메소드, 상태 코드, 메시지 필드가 일반적으로 모든 버전에 적용된다.

시멘틱스 매핑 내에서의 차이점은 기반이되는 트랜스포트이다. HTTP와 HTTP/2는 TCP를 자신들의 트랜스포트로 사용하지만 HTTP/3는 사용자 공간 혼잡 제어를 사용자 데이터그램 프로토콜(UDP)를 경유하여 사용되는, 구글이 개발한 전송 계층 통신 프로토콜의 하나인 QUIC를 사용한다. QUIC로의 전환은 헤드 오브 라인 블로킹(HOLB)이라는 HTTP/2의 주된 문제를 해결하는 것이 목적이다.

 

 

HTTP/1.1과 HTTP/2의 차이

 

 

 

헤드 오브 라인 블로킹(HOLB)란 TCP 패킷이 네트워크 경로에서 손실되면 스트림에 공백이 생겨, 손실된 바이트 다음에 오는 올바른 바이트들도 재전송으로 인해 전달이 되지 않아 발생하는 불필요한 지연을 말한다. 프로토콜이 TCP를 사용하는 한 피해갈 수 없는 문제인 것이다.

 

 

 

HTTP/2와 HTTP/3 차이

 

 

HTTP/3에서는 HOLB의 문제를 해결하기 위해 UDP기반인 QUIC를 사용한다.

UDP는 데이터 신뢰성을 보장하지 않지만 QUIC 계층추가를 통해 TCP와 같은신뢰성을 제공하고

HTTP2의 Multiplexing 과 같이 하나의 연결로 다수의 병렬 스트림으로 데이터를 동시 전송하며 UDP 기반이지만 그와 다르게 TCP와 같은 순서에 맞는 전송처리를 한다.

 

HTTP2에서는 여러 스트림중에 하나의 스트림이 패킷을 잃을 경우 복구가 되지 않았지만 QUIC은 다른 스트림이 전송 중에 잃은 스트림의 패킷을 재전송을 하여 완료가 가능하다고 한다.

 

0-RTT와 1-RTT설정을 지원하여 기존의 TCP와는 다른 빠른 핸드쉐이크를 지원한다. TLS 1.3 전송 보안을 지원하는데 핸드쉐이크시 더 적은 RTT를 위해 사용한다.

TLS 1.3은 RTT를 개선하였고 보안을 강화하기 위해서 TLS 1.2에서 지원하던 보안에 취약했던 기능들을 삭제를 했다고 한다.

 

HTTP/2에서 HPACK은 순차적인 스트림 전달에 의존하기 때문에 QUIC에 맞게 스트림을 순서 없이 전달 가능하게 수정하였는데 이를 QPACK이라고 한다.

 

이렇게 HTTP3는 UDP기반을 통해 RTT를 0에 가깝게 줄여 속도향상을 가져왔다. 그리고 QUIC+TLS1.3 계층을 통해 TCP의 장점인 데이터의 신뢰성까지 보완했다고 볼 수 있다.

 

 

 

 

참고 : https://devahea.github.io/2019/04/30/5G-%EC%B4%88%EC%97%B0%EA%B2%B0%EC%8B%9C%EB%8C%80%EC%97%90-%EC%9B%B9-HTTP%EC%9D%98-%EB%8C%80%EC%95%88%EC%9D%80-QUIC/
반응형

'Etc.' 카테고리의 다른 글

애플페이 드디어 한국에서도 가능!  (0) 2023.03.21
ChatGPT-4 무엇이 다를까? 사용법은?  (0) 2023.03.20
HTTPS의 통신과정  (0) 2022.02.23
OSI 7계층  (0) 2022.02.21
경기지역화폐 사용처 확인 방법 알아보기!  (0) 2020.04.16