2025. 8. 24. 22:48ㆍ네트워크, 통신
HTTP/2 멀티플렉스 스트림(Multiplexed Stream)
HTTP/2의 멀티플렉스 스트림은 여러 개의 요청과 응답을 하나의 TCP 연결을 통해 동시에 주고받는 핵심 기능입니다. 이는 HTTP/1.1의 비효율성을 해결하고 웹 성능을 크게 향상시킵니다.
스트림(Stream)
스트림은 HTTP/2에서 데이터를 주고받는 논리적인 통신 채널입니다. 각각의 스트림은 고유한 ID를 가지며, 이 ID를 통해 요청과 응답이 서로 구분됩니다. 예를 들어, 웹페이지를 구성하는 CSS, JavaScript, 이미지 파일을 동시에 요청하면, 각각의 요청이 별개의 스트림으로 처리됩니다.
멀티플렉싱(Multiplexing)
멀티플렉싱은 여러 스트림의 데이터를 섞어서(multiplexing) 하나의 물리적 TCP 연결로 전송하는 기술입니다. HTTP/1.1은 한 번에 하나의 요청만 처리할 수 있어 헤드 오브 라인 블로킹(Head-of-Line Blocking) 문제가 발생했습니다. 반면, HTTP/2는 멀티플렉싱을 통해 이 문제를 해결하고 여러 요청을 병렬로 처리합니다.
동작 방식
HTTP/2는 데이터를 프레임(frame)이라는 작은 단위로 나누어 전송합니다. 각 프레임에는 해당 프레임이 속한 스트림의 ID가 포함되어 있습니다. 따라서, 여러 스트림의 프레임이 뒤섞여 도착하더라도, 서버나 클라이언트는 스트림 ID를 보고 각 프레임을 원래의 스트림으로 재조합할 수 있습니다.
예를 들어, 웹페이지의 여러 리소스를 동시에 요청하면, 이 모든 데이터는 프레임으로 나뉘어 하나의 TCP 연결을 통해 전송되고, 수신 측에서 스트림별로 재조합되어 완전한 리소스로 복원됩니다.
HTTP/1.1과의 주요 차이점
| 특징 | HTTP/1.1 | HTTP/2 |
|---|---|---|
| 연결 방식 | 요청마다 새로운 TCP 연결을 맺거나, 순차적 요청 | 하나의 TCP 연결로 여러 요청을 동시에 처리 |
| 성능 문제 | 헤드 오브 라인 블로킹 발생 | 멀티플렉싱으로 해결 |
| 요청/응답 | 순차적 처리 | 병렬적 처리 |
이러한 멀티플렉싱 덕분에 웹페이지 로딩 속도가 훨씬 빨라지고, 네트워크 자원을 효율적으로 사용할 수 있게 되었습니다.
'네트워크, 통신' 카테고리의 다른 글
| Http3 (0) | 2023.01.12 |
|---|---|
| SSH란 (0) | 2022.02.23 |
| REST API (0) | 2022.02.18 |
| L4 스위치 vs L7 스위치 (0) | 2021.12.06 |
| API Gateway (0) | 2021.04.20 |