[Network] 11. Video Streaming and CDNs

dnjstjt12·2024년 11월 9일

Context

  • video traffic: 인터넷 bandwidth의 주요 고객

    Netflix Youtube: ISP traffic의 37% 16% downstream
    Youtube Users: ~1B
    Netflix Users: ~75M

  • ~1B의 어떻게 많은 User를 scale할까?
    1. Single mega video server는 이를 감당할 수 없다.
    2. heteroheneity: 유저들의 bandwidth가 다르다.
    3. distributed와 application-level infrastructure를 이용하여 해결해야한다.

Video

  • video: image의 sequence로 이루어져있다.

  • image: pixels의 array이다.

  • coding: image들의 사이에 redundancy(감쇄)를 사용한다.

  • redundancy
    1. spatial: image 프레임의 같은 부분 줄이기
    2. tmporal: image 프레임에서 달라지지않는 부분을 압축 하기

  • constant bit rate(CBR): 고정된 비율로 encoding된다.

  • variable vit rate(VBR): redundancy를 활용하여 encoing한다.

DASH

  • DASH: Dynamic, Adaptive, Striming over HTTP

  • server
    1. video 파일을 여러개의 chunk로 나눈다.
    2. 각 chunk들은 다른 비율로 저장되고, encoding된다.
    3. manifest file: 서로 다른 chunk에 URL을 제공한다.

  • client
    1. 주기적으로 Server-Client의 bandwidth를 측정한다.
    2. 하나의 chunk를 요청하고 관리한다.
    - 현재 bandwidth에 맞게 최대 비율로 encoding된 chunk를 고른다.
    - 시간과 상황에 따라 다른 비율로 encoding된 chunk를 고를 수 있다.

  • Intelligence at client: clinet가 언제 어떤 chunk를 어디서 고를지 결정한다.

Content Distribution Networks(CDNs)

  • Option1: Single, Large mega-server
    1. sever가 고장나면 큰일
    2. 특정 network가 혼잡하면 문제가 생김
    3. 먼 거리의 client는 연결이 안될 수도 있다.
    4. 같은 영상이 계속 복사 되어 전송될 수 있다.
  • Option2: Store/server multiple copies of video(CDN)
    1. enter deep: 사용자들에 가깝게 CDN서버를 두는 방법
    2. bring home: access networks 밖에 두어서 개수는 적지만 크게 만드는 방법

[참고] Computer Networking A Top-Down Approach EIGHTHEDITION/Kurose.Ross/Pearson

profile
안녕하세요!

0개의 댓글