5주차 운영체제

민주·2023년 11월 14일
0

CS

목록 보기
12/22

Video Streaming

스트리밍을 할 때 수많은 컨텐츠를 어떻게 관리하는가? 사용자마다 다른 기기를 사용하는데 어떤 대역폭으로 미디어를 전송하는가?

video란?

sequence of images. images = bit로 표현되는 픽셀들의 배열.

-비디오의 bit rate가 높을 수록 비디오 품질이 높아지며 비디오는 품질과 bit rate 간 trade off를 통해 압축 가능.

  • 압축 알고리즘을 이용해 다양한 Bit rate로 비디오를 압축할 수 있고, 사용자는 대역폭에 맞는 버전을 선택하여 시청한다.

DASH

기존 http 방식에서 발전된 것.
기존 http

  • 모든 클라이언트가 동일한 bit rate로 압축된 비디오 수신
  • 클라이언트마다 사용 가능한 대역폭이 다름에도 유연하게 대처 불가

DASH (dynamic adaptive Streaming over HTTP)

  • 비디오를 각각 다른 bit rate로 인코딩하여 다양한 버전의 비디오 스트리밍을 제공하는 것.

SERVER
1. 비디오 파일을 여러 개의 chunk로 분할
2. 각각의 chunk를 서로 다른 rate로 인코딩
3. manifest file을 통해 각각의 chunk 파일에 대한 url wprhd

CLIENT
1. 서버에 manifest file 요청해 비디오 버전 정보 획득
2. 받고자 하는 chunk 선택하고 해당 url에 http get 요청
3. chunk 다운하면서 대역폭 측정
4. 측정한 대역폭에 맞게 다음에 받을 chunk 선택

CDN

content distribution network.
대규모 비디오 데이터를 전 세계에 분산된 사용자들에게 효과적으로 전달하기 위한 기술. 지리적으로 분산되어 있는 기점 서버에서 비디오 copy들을 저장하고 제공한다.
지역마다 선호하는 비디오가 다를 수 있기 때문에 push(CND→노드)가 아닌 pull(노드←CDN) 방식을 사용한다.
웹 캐싱과 유사한 방식으로 관리하여, 공간이 차면 오래된 비디오부터 삭제된다.

Netflix

  1. 넷플릭스가 아마존 클라우드의 호스트에 비디오 업로드
  2. 아마존 클라우드가 업로드된 비디오를 다양한 형시고가 bit rate로 변환
  3. 여러 버전의 비디오 CDN 서버에 업로드

사용자는?
1. 넷플릭스 로그인
2. 시청할 비디오 검색
3. 비디오 선택하면 넷플릭스가 최적 cdn 서버 결정, 사용자는 해당 비디오에 대한 manifest file 획득
4. 사용자는 manifest file 통해 dash 서버에 청크 요청.

Transport Layer

TCP vs UDP

Transport Layer vs Network Layer

Network Layer : 두 호스트 간 logical communication 제공
Transport Layer : 두 호스트에서 실행 중인 프로세스 간 logical communication 제공

transport layer는 multiplexing and demuliplexing으로 network layer의 host-host logical communication을 process-process로 연장한다.

profile
일단 가보면 뭐든 있겠지

0개의 댓글