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

▶ 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: 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

▶ 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:
- 비디오 파일을 multiple chunk로 쪼갠다.
- 각각의 chunk는 저장되고, 여러 속도로 encoding된다.
- Manifest file: 서로 다른 chunk들에게 URL을 제공한다.
▷ Client:
- 주기적으로 server-to-client bandwidth를 측정한다.
- 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.
- Encoding: pixcel들로 이루어진 digital image를 최소한의 bit 수를 이용하여, video로 변환하는 것
- DASH: client가 server에게 최적의 chunk를 요청하도록 하는 것
- 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): 네트워크에서 데이터 통신을 위한 중요한 지점

▷ OTT challenges: coping with congested Internet.
- 어떤 CDN node에 content를 보관해야 하는가?
- 어떤 CDN node에서 content를 가져와야 하는가?

▶ CDN: CDN node에 content의 복사본을 저장한다.
--> When a subscriber requests content from CDN:
- Directed to nearby copy, retrieves content.
- May choose different copy if network path congested.
CDN content access: a closer look

예) Bob (client) requests video http://netcinema.com/6Y7B23V.
- Bob gets URL for video http://netcinema.com/6Y7B23V.
- Resolve http://netcinema.com/6Y7B23V via Bob's local DNS.
- Authoritative DNS returns URL http://KingCDN.com/NetC6y&BV.
- Resolve http://KingCDN.com/NetC6y&BV vis KingCDN's authoritative DNS, which returns IP address of KingCDN server with video.
- 해당 IP address를 client에게 알려준다.
- 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.

- Bob manages Netflix account.
- Bob browses Netflix video.
- Menifest file: provides URL for the different chunks of the video.
- DASH server: streaming rate 조절
**Amazon cloud: uploads copies of multiple versions of video to CDN servers.
- Private CDN server: DNS(x). Manifest file이 직접 제공한다.
'Computer Network > 컴퓨터네트워크' 카테고리의 다른 글
| [컴퓨터네트워크] 2. Application Layer (8) (1) | 2023.10.08 |
|---|---|
| [컴퓨터네트워크] 2. Application Layer (7) (0) | 2023.10.06 |
| [컴퓨터네트워크] 2. Application Layer (5) (1) | 2023.10.04 |
| [컴퓨터네트워크] 2. Application Layer (4) (0) | 2023.09.29 |
| [컴퓨터네트워크] 2. Application Layer (3) (0) | 2023.09.29 |