앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.04.14 - [Computer Science/네트워크] - [네트워크] Video Streaming
1. HTTP Streaming and DASH
- 유저가 비디오를 보기 위해서는 서버와 TCP connection을 만들어야 하고, HTTP GET 요청을 해야 합니다.
- 앞선 글에서 클라이언트는 비디오 응답을 받으면 클라이언트에 있는 버퍼는 이를 모아놓습니다. 그러다가 어느 임계값을 넘기면 출력합니다.
- 클라이언트마다 대역폭이 다르고, 같은 클라이언트라도 시간에 따라 다르게 대역폭이 달라짐에도 불구하고 모든 클라이언트는 같은 인코딩으로 된 비디오를 받을 수 있다는 단점이 있습니다.
- 따라서 HTTP-based streaming에서는 새로운 버전인 Dynamic Adaptive Streaming over HTTP (DASH)를 개발했습니다.
- DASH에서는 비디오는 여러 다른 버전으로 인코딩 되고, 각 버전은 다른 비트 레이트, 다른 퀄리티를 가지게 됩니다.
- 클라이언트는 동적으로 비디오 세그먼트에서 일정 부분만 요청합니다.
- 만약 사용가능한 대역폭이 크다면 클라이언트는 high-rate versioin을 요청할 것이고, 반대의 경우도 마찬가지입니다.
- 결론적으로 클라이언트는 하나의 시간마다 HTTP GET 요청을 통해 다른 청크를 선택합니다.
2. Manifest File
- DASH에서는 HTTP 서버에 각 비디오의 버전이 각기 다른 URL로 저장되어 있습니다.
- 이때 다른 버전에 따른 다른 URL을 줘야 하는데, 이를 제공하는 것이 바로 manifest file입니다.
- 클라이언트는 처음 manifest file을 요청하고, 다양한 버전을 학습합니다.
- 클라이언트가 URL을 지정함으로써 하나의 청크를 선택하고, 각 청크를 요청합니다.
- 청크를 다운로드할 때, 클라이언트는 수신 대역폭을 측정하고, 다음에 요청할 청크를 고르기 위한 결정 알고리즘을 수행합니다.
- 당연하게도, 클라이언트가 많은 비디오를 버퍼링하고 측정된 수신 대역폭이 높다면, 고비트레이트 버전의 청크를 선택할 것입니다.
- 반대로, 클라이언트가 버퍼링된 비디오가 거의 없고 측정된 수신 대역폭이 낮다면, 저비트레이트 버전의 청크를 선택할 것입니다.
- 따라서 DASH는 클라이언트가 다양한 품질 수준 사이에서 자유롭게 전환할 수 있도록 합니다.
3. Content Distribution Network, CDN
- 상식적으로 수많은 비디오를 저장하는 대규모 데이터 센터를 하나만 놔두면 당연히 단점이 엄청 많겠죠?
- 따라서 알만한 비디오 스트리밍 회사는 Content Distribution Network(CDN)을 만들었습니다.
- 이러한 CDN은 지정학적으로 널리 퍼져있고, CDN에게 직접적으로 요청을 하는 유저는 좋은 경험을 얻을 것입니다.
- 이런 CDN은 일반적으로 두 개의 다른 위치 지정 방식을 따릅니다.
- Ente Deep : 해당 방식은 ISP의 액세스 네트워크에 깊숙이 들어가, ISP에 서버 클러스터를 배치함으로써 이를 실현하는 것입니다. 해당 방식은 수천 개의 위치에 클러스터를 갖춘 이러한 접근 방식을 취하고 있습니다. 목표는 최종 사용자에게 가까워져 사용자가 인식하는 지연과 처리량을 개선함으로써, 유저와 콘텐츠를 제공받는 CDN 서버 사이의 링크와 라우터의 수를 줄이는 것입니다. 이러한 고도로 분산된 디자인 때문에 클러스터를 유지 관리하는 작업이 어려워집니다.
- Bring Home : 해당 방식은 적은 수의 사이트에 대규모 클러스터를 구축하여 ISP를 집으로 데려오는 것입니다. 이러한 CDN들은 일반적으로 액세스 ISP 내부로 들어가지 않고, 대신 인터넷 교환 지점(IXP)에 클러스터를 배치합니다. 깊이 들어가는 디자인과 비교하여, 집으로 데려오는 디자인은 일반적으로 유지 관리 및 관리 오버헤드가 낮아지지만, 최종 사용자에게 높은 지연 시간과 낮은 처리량을 가져올 수 있습니다.
- 일단 클러스터가 배치되면 CDN은 클러스터 간에 콘텐츠를 복제합니다.
참고
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업
Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년
Chat GPT, Bing AI
Application의 모든 Protocol에 대한 설명이 끝났습니다.
다음 글에서는 Transport Layer에 대해 알아보겠습니다.
감사합니다.
지적 환영합니다.
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] UDP - Connectionless Transport (0) | 2023.04.15 |
---|---|
[네트워크] Transport-Layer Protocols (0) | 2023.04.15 |
[네트워크] Video Streaming (0) | 2023.04.14 |
[네트워크] Peer-to-peer (P2P) Architecture (0) | 2023.04.14 |
[네트워크] DNS - local DNS server (0) | 2023.04.14 |