* 이 글에 관련된 모든 내용은 Computer Networking A Top-Down Approach 7th에서 가져온 내용이다. *
Internet Video
최근 Netflix, YouTube등 비디오에 대한 수요가 높아지면서 이에 따른 네트워크상의 처리문제도 중요해졌다.
영상의 크기가 매우 클 경우에 하나의 서버에서는 다루기 힘들 수도 있다.
또한 각각의 유저가 가지고있는 네트워크상의 Capability가 다르기 때문에 이에 대한 처리도 고민해야한다.
때문에 distributed하고 application-level의 infrastructure가 생겨났다.
Video Encoding
비디오 인코딩에는 두가지 방식이 있다.
- CBR(Constant Bit Rate) : 인코딩의 rate가 고정되어있다.
- VBR(Variable Bit Rate) : 인코딩의 rate가 변할 수 있다.
Streaming Multimedia
예전에는 RTSP(Real-Time Streaming Protocol)을 사용해 멀티미디어를 서비스했다.
이 방식은 한번의 요청으로 전체파일을 다운로드 받는 방식이다.
그러나 이 방식은 서버에게 너무많은 부담을 준다.
Progressive downloading
개인 메모리와 internet bandwidth를 save하며 스트리밍을 지원한다.
DASH(Dynamic, Adaptive Streaming over HTTP)
서버는
- 비디오파일을 여러 chunk로 쪼갠다.
- 각 chunk는 stored, econded at diffrent rates
- manifest file : 다른 chunk에 대한 URL을 제공한다.
클라이언트는
- manifest file을 요청한다. (MPEG-DASH에서는 MPD라고 불림)
- 주기적으로 서버-클라이언트 간의 bandwidth를 측정한다.
- manifest를 consulting하고 하나의 chunk를 요청한다(at a time)
- 현재 bandwidth중 가장 큰것을 하나 선택한다.
CDN(Content Distribution Networks)
콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다.
이러한 CDN 서버 선정방식에는 두가지가 있다.
1. Enter deep : 유저에게 가까운 쪽에 CDN 서버들을 둔다 -> 서버의 개수가 많아질 수 있어서 비용 증가
2. Bring home : 서버를 적게 둔다 -> 유저로부터 멀어질 수 있음
CDN노드에 contents의 복사본들을 저장해 놓는다.
유저이 CDN에 contents를 요청하면 가장 가까운 copy를 찾고 검색한다.
CDN의 예를 살펴보자.
1. Youtube
1. Bob은 해당 동영상의 IP주소를 알기위해 netcinema.com 으로부터 동영상의 URL을 GET한다.
2. 이 URL의 IP주소를 얻기 위해 자신의 로컬 DNS 서버에 쿼리를 날린다.
3. 쿼리가 쭉쭉 타고 들어가며 netcinema의 authoratative DNS서버까지 갔고 이 서버는 Bob의 로컬 DNS 서버와 가장 가까운 CDN(KingCDN)의 URL을 알려준다.
4. Bob의 로컬 DNS 서버는 받은 URL의 IP주소를 얻기 위해 KingCDN의 authoritative DNS까지 쿼리를 날려 해당 동영상의 IP주소를 얻어온다.
5. Bob의 로컬 DNS서버는 받은 IP주소를 Bob에게 넘겨주며 동영상을 시청한다.
이는 Youtube에서 쓰고있는 CDN 방식이다. 이때 3번의 과정을 redirection이라고 한다.
2. Netflix
1. Bob은 넷플릭스에 가입되어있고 비디오를 요청한다.
2. Bob이 넷플릭스의 database(Amazon cloud)에 요청을 한다.
3. Amazon cloud는 Bob에게 Manifest file(해당 동영상의 chunk의 URL)을 Bob에게 응답으로 준다.
4. Bob은 DASH방식을 통해 CDN server에서 스트리밍을 서비스받는다.
Youtube와 달리 redirection기능이 없고 Push cahcing(클라이언트가 요청하지 않아도 관련있는 정보면 무지성 push like HTTP/2의 기능) 을 사용한다.
'컴퓨터 네트워크 > Computer Networking 정리' 카테고리의 다른 글
CH3 : Transport Layer (2) (0) | 2021.10.17 |
---|---|
CH3 : Transport Layer (1) (0) | 2021.10.17 |
CH2 : Application Layer (5) (0) | 2021.10.17 |
CH2 : Application Layer (4) (0) | 2021.10.16 |
CH2 : Application Layer (3) (0) | 2021.10.16 |