Computer Science/Computer Network

[CN] 2장: CDNs

kyxxn 2024. 5. 17. 17:57
728x90

CDNs

Streaming stored video: Client Buffer

서버가 비디오를 보내면, 유저는 다음과 같이 보면 됨

근데, 클라이언트-서버 간 대역폭은 네트워크 혼잡이 발생가능

즉, 클라이언트 측의 버퍼가 필요함

클라이언트 측 버퍼링 및 재생 지연을 위해

네트워크 추가적인 지연과 지연 변이를 보상

DASH 프로토콜

비디오 품질이 좋을수록 더 높은 대역폭이 필요해서 만든 프로토콜

클라이언트

  • 클라이언트-서버 간의 대역폭을 주기적으로 측정
  • 매니페스트 파일을 참조하여,
    비디오 조각을 요청함
  • 대역폭 상황에 따라 최대 품질 버전의 청크를 선택함

서버

  • 비디오 파일을 여러 조각으로 분할
  • 각 조각은 여러 품질 버전으로 인코딩
    HD, FHD, 4K ..
  • 여러 품질 버전의 비디오 조각은 여러 서버에 저장됨
  • 매니페스트 파일: 여러 품질 버전의 조각이 어디 있는지 URL 목록
스트리밍 비디오 구성
= 인코딩 + DASH + 클라이언트 버퍼

Q. 수십만 명의 동시 사용자에게 콘텐츠를 스트리밍 하는 방법?

  1. 하나의 큰 서버가 부담 → X (대역폭 낭비, ISP 비용 증가)

  2. 지리적으로 분산된 여러 클러스터에서 비디오 사본을 저장/제공 (CDN)

    → O, 사용자가 가깝게 클러스터를 설치해서 링크와 라우터 수 줄이고, 지연시간 개선

유저가 영화가 보고 싶다면,

서버는 매니페스트 파일을 유저에게 주고,

유저는 RTT가 가장 적은 서버를 선택

CDN content access: a closer look

콘텐츠 제공자가 CDN 업체를 통해 비디오를 분배함

클라이언트가 서버로부터 매니페스트 파일을 받고,

클라이언트는 CDN 서버를 선택함

각 CDN마다 저장된 비디오 내용은 다름