DASH (Dynamic, Adaptive Streaming over HTTP)
콘텐츠 파일을 서로 다른 rate의 덩어리로 만들어 제공하는 기술이다.
대표적으로 유튜브, 넷플릭스는 하나의 영상에 대해 다양한 해상도를 제공하며, 인터넷 상황, 데이터 상황을 체크해서 적절한 해상도의 영상을 제공해 주는데 이 기술이 바로 DASH이다.
Server
- 비디오 파일을 여러개의 청크로 쪼갠다.
- 각 청크는 저장되고, 다른 rate로 encode 된다.
- manifest file은 청크에 대한 URL을 제공한다.
- 청크에는 고화질, 저화질의 정보가 있다.
Client
- server-to-clinet 사이의 네트워크 상황을 측정한다.
- 측정한 상황을 고려하여 적절한 품질의 청크를 선택하고, 청크를 조합하여 동영상을 재생함.
- 클라이언트는 청크를 요청할 시기, 인코딩 rate , 청크를 요청할 위치들을 결정할 수 있다.
Streaming video = encoding + DASH + playout buffering
CDN (Content Distribution Networks)
어떻게 비디오 콘텐츠를 수많은 유저들에게 동시에 제공할 것인가? 에 대한 답변은
CDN을 통해서 구현 가능하다.
옵션 1: 단 하나의 큰 메가 - 서버
- 네트워크 정체
- 먼 고객에게는 거리가 길다.
- 똑같은 링크를 통해서 여러 개의 비디오 복사본이 나간다.
즉 효율적이지 않다!
옵션 2 : 전 세계에 여러개의 서버를 만들고 각 서버에 비디오 파일의 복사본을 저장해 놓는다.
- 네트워크 경로가 혼잡할 경우 다른 복사본을 선택할 수 있다.
- 가장 가까운 위치에서 비디오 콘텐츠를 받을 수 있다.
시나리오 1
- 사용자는 비디오 콘텐츠를 넷플릭스 서버에서 요청한다.
- 넷플릭스는 해당 비디오에 대한 Manifest 파일을 반환한다.
- Manifest 파일을 통해 사용자와 최적의 위치에 있는 CDN 서버를 찾아 컨텐츠를 요청한다.
- CDN 서버가 DASH 기능을 활용해 비디오 컨텐츠를 제공한다.
시나리오 2
클라이언트(A)가 video http: //netcinema.com/6Y7B23V을 요청한다면
비디오는 http://KingCDN.com/NetC6y&B23V에 저장되어 있다고 가정.
- A는 웹페이지로 부터 해당 비디오의 URL이 http: //netcinema.com/6Y7B23V라는 것을 netcinema.com을 통해서 얻음.
- A의 local DNS에서 http: //netcinema.com/6Y7B23V를 요청함.
- 넷 시 네 마 디엔에스에서 http://KingCDN.com/NetC6y&B23V를 반환해 줌.
- A의 local DNS에서 KindCDN DNS 요청하고, 확인된다면? A에게 KindCDN 주소를 알려주고
유저는 KinCDN server에게 비디오를 요청한다.
😀요약
- 비디오 콘텐츠를 제공할 때 해상도 별로 다양하게 제공하는 기술은 DASH라고 한다.
- 클라이언트는 자신의 네트워크 상황에 맞게 적절한 품질의 청크를 선택해서 컨텐츠를 이용할 수 있다.
- 비디오 컨텐츠를 여러 명의 유저에게 동시에 제공하기 위해서 CDN을 구현했다.
- 하나의 큰 서버가 아니라 여러 개의 CDN 서버를 통해서 유저들에게 콘텐츠를 제공한다.
'Computer Science > Network' 카테고리의 다른 글
[컴퓨터망] - Transport Layer 개요 (0) | 2023.04.12 |
---|---|
[컴퓨터망] - Socket programming (TCP & UDP) (0) | 2023.04.12 |
[컴퓨터망] CDN & DASH (0) | 2023.04.12 |
[컴퓨터망]- Peer-to-Peer(P2P) (0) | 2023.04.12 |
[컴퓨터 망] DNS(Domain Name System) (0) | 2023.04.11 |