[ComputerNetwork] Application Layer 2

유혜지·2023년 10월 29일
0

ComputerNetwork

목록 보기
4/4
Video Streaming and CDNs: context

인터넷의 상당량의 bandwidth를 streaming video network가 차지하고 있다(residential ISP에서)

  • challenge:
    • 확장성 문제: 사용량이 너무 많음
      distributed!
    • 다양성 문제: 사용자마다 사용할 수 있는 bandwidth가 다름
      application-level infrastructure
Multimedia: video
  • video는 image의 sequence로 이루어짐

  • 각 image는 픽셀로 이루어져 있으며, 각 픽셀은 비트로 나타내짐

  • 이미지 사이에, 그리고 이미지 안에 중복성을 이용해 이미지를 인코딩한다.

    • spatial(within image)
      → image의 배경같은 경우, "공간적 유사성"이라는 특징 때문에, 이를 이용해 효율적으로 압축 가능
    • temporal(from one image to next)
      → 프레임과 프레임 사이에 급격한 변화는 잘 없기 때문에 이들간의 상당한 유사성을 이용해 효율적인 압축 가능
  • 인코딩 방법에 따라 2가지로 나눔

    • CBR(constant bit rate): video encoding rate fixed
    • VBR(variable bit rate): spatial, temporal coding change에 따라 encoding rate이 계속해서 변함
Streaming stored video

main challenges:

  • 시간과 네트워크 혼잡 level에 따라 client-server bandwidth가 변함
  • video를 streaming할 때 delay가 발생

    → client가 비디오를 수신하자마자 playout하지 않는ㄱ?
  • buffer(queue)를 사용하기 때문. client와 output link 사이에 입출력 불균형이 생기지 않도록 buffer에 데이터를 쌓아놓고, 하나씩 playout함.
Streaming stored video: challenges
  • continuous playout constraint
    • 비디오가 네트워크를 통과하며 시간에 따라 bandwidth가 변하게 되므로 delay가 발생
      → 이를 해결하기 위해 client-side buffer를 사용

      위와 같이 사용자가 원하는 전송속도와 실제 데이터의 전송 속도가 다르기 때문에, 네트워크로부터 데이터를 받으면 바로 playout하는 것이 아니라, buffer에 넣어놨다가 playout시킨다.
      사용자가 원하는 신호와 실제 전송받는 신호 사이의 불균형을 jitter라고 함
Streaming stored video: playout buffering

  • client-side buffering and playout delay
    compensate for network-added delay, delay jitter
Streaming multimedia: DASH

DASH: Dynamic, Adaptive Streaming over HTTP

  • server
    • 비디오 파일을 여러 개의 chunk로 나눔
    • 각 chunk는 각기 다른 rate으로 encoding되어 있음
    • manifest file(웹 파일): coding rate이 서로 다른 chunk들의 url을 가진 파일
  • client
    • 주기적으로 server-to-client 에서 사용할 수 있는 bandwidth를 측정
    • manifest 파일에 client가 이용 가능한 bandwidth에서 전송할 수 있는 maximum chunk를 고름
  • "intelligence" at client
    → 서버가 언제 chunk를 요청할지, what encoding rate를 요청할지, where chunk를 요청할지 전부 결정함!

    Streaming video = encoding + DASH + playout buffer

Content distribution networks (CDNs)
  • challenges: 수많은 user에게 어떻게 content를 streaming할 것인가
  • option 1: single, large "mega-server"
    • single point of failure
    • point of network congestion
    • long path to distant clients
      → this solution doesn't scale
  • option 2: multiple geographically distributed sites
    • enter deep
      : access network 안에 집어넣는 방식
    • bring home
      : access network를 연결하는 IXP에 집어넣는 방식
CDN content access: a closer look

0개의 댓글