[네트워크] Video streaming & CDNs_2

KoK·2022년 10월 16일
1

네트워크

목록 보기
4/4

💻 HTTP streaming

  • http 스트리밍은 한번의 요청으로 전체파일을 다 다운받은 뒤 영상을 재생하는 것이 아니라 동영상이 재생되는 중에 시속적으로 파일 chunk를 요청하는 방법을 취한다.
  • 점진적인 다운로드 방법
  • 메모리와 인터넷 bandwidth를 절약해준다는 장점이 있다.

📹 DASH(Dynamic, Adaptive Streaming over HTTP)

  • http를 이용한 동적이고 적응적인 스트리밍(상황에 따라 적응적으로 바꿔가며 동작)

[server 쪽]

  • 비디오 파일이 여러개의 chunk로 나뉘어 있고, 이 chunk들은 서로다른 비율로 부호화되어 CDN 노드들 안에 복제된 파일로 저장되어 있음
  • manifest 파일: 각각의 chunk들이 어디에 어떤 파일로 저장되있는 지에 대한 정보를 가진 파일(url형태)

[client 쪽]

  • MPD(Media Presentation Description)라고 불리는 MPEG-DASH에 동영상 스트리밍을 요청한다.
  • MPEG-DASH는 HTTP를 통한 DASH(동적 적응 스트리밍)을 위한 표준이다.
  • 클라이언트는 주기적으로 client-server간에 정보가 잘 오가는 지 측정한다.
  • manifest파일을 보고 그때 그때 필요한 chunk를 요청한다.
  • 주어진 대역폭에서 지속가능한 최대의 코딩 비율을 선택한다.
  • 특정 시간에 이용가능한 대역폭에 의존하여 그 시간에 다른 포인트에서 다른 코딩 비율을 선택할 수 있다

[client가 결정하는 것들]
1. 언제 chunk를 요청할지(buffer starvation, overflow 고려),
2. 요청할 인코딩 비율이 무엇인지(더 큰 대역폭일수록 높은 퀄리티 가능),
3. 어디에서 chunk를 요청할지(클라이언트와 가깝거나 대역폭이 높은 url서버로부터 요청해야함) 결정한다.

🎬 Streaming video

  • Streaming video = encoding + DASH + playout buffering
  • encoding하고 DASH방법으로 클라이언트가 선택을 하고 playout buffering를 통해 정보를 가져와 동영상을 재생한다.

🎆 CDNs(Content distribution networks)

  • CDN(Content distribution Network): 사용자들에게 콘텐츠를 전송하는 분산노드로 구성된 네크워크, 각 지역에 캐시 서버를 분산시켜 놓고 사용자가 요청을 했을 때 가까이 있는 캐시서버가 콘텐츠를 전달하게 한다(대용량 파일이나 동영상 스트리밍 등의 안정적 서비스를 위해 이용됨).
  • 어떻게 수많은 사용자들에게 수많은 비디오들로부터 선택된 콘텍츠를 스트리밍 할 수 있을까?에 대한 해답
    -> 비디오의 여러 복사본들을 다양한 지역적으로 분산된 지점에 저장해두는 것

[CDNs의 types]
1. private CDN: 콘텐츠 제공자가 소유
2. third-party CDN: 여러 개의 콘텐츠 공급자를 대신하여 콘텐츠를 분산시킴

✨ CDNs의 서버 배치 전략

  • enter deep: 전세계에 access ISP(Internet service provider)들 안에 서버 클러스터를 구축한다. CDN서버를 많은 access networks에 위치시킨다. 사용자들 가까이에...!
    => 사용자들이 인지하는 딜레이와 throughput(처리되는 패킷량)을 개선할 수 있다.
  • bring home: access ISP가 아닌 IXPs(Internet Exchange Points)에 큰 규모의 클러스터를 둔다. 낮은 유지/관리 overhead
    (overhead는 어떠한 처리를 하기 위해 드는 간접적 처리 시간/메모리를 말함)

🎉 CDN의 Cluster 선택 전략
1. 지리적인 거리 고려하기
2. 주기적으로 실시간 측정하기

[전략1 : 지리적인 거리 고려]

  • 특정 LDNS(로컬 DNS)로부터 DNS요청이 왔을 때, CDN authoritative DNS가 지리적으로 LDNS와 가장 가까운 cluster를 선택한다.
  • 문제점: 몇몇 end-user는 멀리있는 LDNS를 사용하도록 설정되었을 수 있음(ex: kt). 이 전략은 딜레이와 이용가능한 대역폭을 무시함. 특정 클라이언트에게 똑같은 cluster를 할당함

[전략2 : 주기적으로 실시간 측정]

  • cluster들과 LDNS사이의 딜레이, 낮은 성능을 주기적으로 실시간 측정하며 동작함. 예를 들어, CDN은 각 클러스터가 정기적으로 probes(예: ping 메시지 또는 DNS 쿼리)를 전 세계의 모든 LDNS로 전송하도록 할 수 있다. RTT가 가장 낮은 클러스터를 선택.
profile
100% + 100%

0개의 댓글