카테고리 없음
다중스트림이란 ? -작성중-
개발하는지호
2024. 8. 14. 18:14
다중 스트림 처리(Multiplexing)란 하나의 네트워크 연결(주로 TCP 연결) 내에서 여러 개의 독립적인 데이터 스트림을 동시에 전송하는 기술을 말합니다. 이 기술은 네트워크 성능을 향상시키고, 지연 시간을 줄이며, 네트워크 자원의 효율적인 사용을 가능하게 합니다.
다중 스트림 처리의 개념
- 단일 연결에서 여러 스트림:
- 전통적인 HTTP/1.1에서는 각 요청에 대해 새로운 TCP 연결을 설정하거나, 하나의 연결에서 요청-응답을 순차적으로 처리했습니다. 이 방식은 비효율적이어서, 특히 웹 페이지를 로드할 때 여러 자원을 병렬로 요청하는 상황에서 문제가 될 수 있었습니다.
- 다중 스트림 처리는 하나의 TCP 연결을 통해 여러 요청과 응답을 동시에 처리할 수 있게 합니다. 이를 통해 네트워크의 지연 시간을 줄이고, 브라우저가 여러 자원을 병렬로 빠르게 가져올 수 있게 합니다.
- HTTP/2와 HTTP/3에서의 다중 스트림 처리:
- HTTP/2: HTTP/2는 다중 스트림 처리를 본격적으로 도입한 프로토콜입니다. HTTP/2에서는 하나의 TCP 연결 내에서 여러 스트림을 동시에 전송할 수 있습니다. 각 스트림은 독립적이기 때문에 하나의 스트림이 느려지거나 지연되어도 다른 스트림에는 영향을 미치지 않습니다.
- HTTP/3: HTTP/3는 TCP 대신 QUIC이라는 전송 프로토콜을 사용합니다. QUIC는 기본적으로 다중 스트림 처리를 지원하며, TCP보다 더 효율적으로 데이터를 전송할 수 있습니다. QUIC은 UDP 위에서 동작하며, 네트워크 지연과 연결 재설정 문제를 최소화하면서도 다중 스트림을 효과적으로 처리합니다.
왜 다중 스트림 처리가 중요한가?
- 효율적인 리소스 로딩:
- 웹 페이지를 로드할 때, 브라우저는 HTML, CSS, JavaScript, 이미지 등 다양한 리소스를 서버에서 가져와야 합니다. HTTP/2나 HTTP/3의 다중 스트림 처리는 이러한 여러 자원을 병렬로 효율적으로 로드할 수 있게 합니다.
- HTTP/1.1에서는 각 자원을 가져오기 위해 새로운 TCP 연결을 설정하거나 기존 연결을 반복적으로 사용해야 했지만, 다중 스트림 처리 덕분에 이러한 작업을 단일 연결에서 동시에 처리할 수 있게 되었습니다.
- 네트워크 성능 개선:
- 하나의 연결에서 여러 스트림을 처리하므로, TCP 연결 수를 줄이고 네트워크 자원을 절약할 수 있습니다. 이는 특히 모바일 네트워크나 지연 시간이 큰 네트워크 환경에서 큰 성능 향상을 가져옵니다.
- 다중 스트림 처리 덕분에 지연 시간이 큰 상황에서도 빠르고 안정적인 데이터 전송이 가능합니다.
- 지연 시간 감소:
- 다중 스트림 처리는 HTTP 요청과 응답을 동시에 처리할 수 있기 때문에, 각 요청이 순차적으로 처리되는 HTTP/1.1보다 지연 시간이 크게 줄어듭니다. 이는 웹 페이지 로딩 속도를 크게 개선할 수 있습니다.
요약
- 다중 스트림 처리는 하나의 연결에서 여러 개의 데이터 스트림을 동시에 전송하는 기술입니다.
- HTTP/2와 HTTP/3에서 이 기능이 도입되어, 웹 리소스의 병렬 로딩, 네트워크 성능 개선, 지연 시간 감소 등의 이점을 제공합니다.
- 이 기술은 현대 웹 환경에서 효율적인 데이터 전송을 가능하게 하며, 네트워크 자원의 효율적 사용과 성능 향상에 기여합니다.