본문 바로가기
Computer Network/컴퓨터네트워크

[컴퓨터네트워크] 2. Application Layer (6)

by leziwn.cs 2023. 10. 6.
Video streaming
  • DASH
  • Content Distribution Networks (CDN)

 

Multimedia: video
  • Digital image: array of pixcels.
    - Pixcel: each pixcel represented by bits.
  • Video: sequence of images.
  • Coding: Use redundancy(반복) within and between images to decrease #bits used to encode images.
    - Spatial --> within an image.
    - Temporal --> from one image to the next.

 

Streaming stored video

Streaming stored video

▶ Main challenges:

  • Server-to-Client bandwidth varies over time, with changing network congestion levels.
  • Packet loss and delay due to congestion will delay playout, or result in poor video quality.

 

Straming stored video

 

Straming stored video: challenges
  • Problem 1) jitter(delay 시간의 변동성) --> client-side buffer is needed to match playout requirements.
  • Problem 2) client interactivity: pause, fast-forward, rewind, jump through video.
  • Problem 3) video packets may be lost, retransmitted.

 

Solution 1) Streaming stored video: playout buffering

Solution 1) playout buffering (client-side buffer)

▶ Client-side buffering & Playout delay: compensate for network-added delay, delay jitter.

 

 

Video Straming and CDNs: context

▶ Straming video traffic: major consumer of Internet bandwidth.

Ex) Netfix, YouTube, Amazon Prime: 80% of residential ISP traffic.

  • Challenge 1) Scale: How to reach ~1B users?
    - Single mega-video server won't work.
  • Challenge 2) Heterogeneity: Different users have differnet capabilities.

--> Solution: Ditributed, Applicaion-level infrastructure.

 

 

Straming multimedia: DASH

▶ DASH (Dynamic, Adaptive Streaming over HTTP)

: Client 쪽에서 HTTP의 Get을 통해 video의 image(pixcel)을 가져오는 것

 

▷ Server:

  1. 비디오 파일을 multiple chunk로 쪼갠다.
  2. 각각의 chunk는 저장되고, 여러 속도로 encoding된다.
  3. Manifest file: 서로 다른 chunk들에게 URL을 제공한다.

▷ Client:

  1. 주기적으로 server-to-client bandwidth를 측정한다.
  2. Manifest file을 참고하여, 한 번에 한 chunk씩 요청한다.
    - Chooses maximum coding rate sustainable given current bandwidth.
    - Can choose different coding rate at different points in time. --> Client가 상황에 따라 최적의 chunk를 보낼 수 있다.

 

▶ "Intelligence" at client: Client determines

  • 언제 chunk를 요청할 지
  • 어떤 encoding rate로 요청할 지
  • 어디로 chunk를 요청할 지
    - Can request from URL server that is "close" to client or has high available bandwidth.

 

--> Streaming video = encoding + DASH + playout buffering.

  1. Encoding: pixcel들로 이루어진 digital image를 최소한의 bit 수를 이용하여, video로 변환하는 것
  2. DASH: client가 server에게 최적의 chunk를 요청하도록 하는 것
  3. playout buffering: jitter로 인한 문제를 해결하기 위한, client-side buffer

 

 

Content Distribution Networks (CDNs)

▷ Challenge: How to stream content to hundreds of thousands of simultaneous users?

  • Option 1) single, large, "mega-server" (x)
  • Option 2) CDN (Content Distribution Networks)
    : 다양한 video의 복사본을 다양한 지리적으로 분할된 장소들에 store/serve.

 

▶ Enter deep: CDN server를 많은 access network 안으로 push한다.

▶ Bring home: 작은 수의 큰 cluster를 access network 주변에 있는, 하지만 안에 있지는 않은 POP에 넣는다.

  • POP(Point of Presence): 네트워크에서 데이터 통신을 위한 중요한 지점

 

CDNs (Content Distribution Networks)

▷ OTT challenges: coping with congested Internet.

  • 어떤 CDN node에 content를 보관해야 하는가?
  • 어떤 CDN node에서 content를 가져와야 하는가?

 

CDNs (Content Distribution Networks)

▶ CDN: CDN node에 content의 복사본을 저장한다.

--> When a subscriber requests content from CDN:

  1. Directed to nearby copy, retrieves content.
  2. May choose different copy if network path congested.

 

 

CDN content access: a closer look

예) Bob (client) requests video.

예) Bob (client) requests video http://netcinema.com/6Y7B23V.

  1. Bob gets URL for video http://netcinema.com/6Y7B23V.
  2. Resolve http://netcinema.com/6Y7B23V via Bob's local DNS.
  3. Authoritative DNS returns URL http://KingCDN.com/NetC6y&BV.
  4. Resolve http://KingCDN.com/NetC6y&BV vis KingCDN's authoritative DNS, which returns IP address of KingCDN server with video.
  5. 해당 IP address를 client에게 알려준다.
  6. Client request video from KINGCDN server, streamed via HTTP.

 

Case study: Netflix

▶ Netflix web site

▶ Amazon cloud

  • run web site.
  • content ingestion, content processing

▶ private CDN infrastructure(server)

: Pushing videos to the CDN during off-peak hours.

--> no need to use DNS to direct user to a CDN server.

 

 

Case study: Netflix

  1. Bob manages Netflix account.
  2. Bob browses Netflix video.
  3. Menifest file: provides URL for the different chunks of the video.
  4. DASH server: streaming rate 조절

**Amazon cloud: uploads copies of multiple versions of video to CDN servers.

  • Private CDN server: DNS(x). Manifest file이 직접 제공한다.