스트리밍을 할 때 수많은 컨텐츠를 어떻게 관리하는가? 사용자마다 다른 기기를 사용하는데 어떤 대역폭으로 미디어를 전송하는가?
sequence of images. images = bit로 표현되는 픽셀들의 배열.
-비디오의 bit rate가 높을 수록 비디오 품질이 높아지며 비디오는 품질과 bit rate 간 trade off를 통해 압축 가능.
기존 http 방식에서 발전된 것.
기존 http
DASH (dynamic adaptive Streaming over HTTP)
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 선택
content distribution network.
대규모 비디오 데이터를 전 세계에 분산된 사용자들에게 효과적으로 전달하기 위한 기술. 지리적으로 분산되어 있는 기점 서버에서 비디오 copy들을 저장하고 제공한다.
지역마다 선호하는 비디오가 다를 수 있기 때문에 push(CND→노드)가 아닌 pull(노드←CDN) 방식을 사용한다.
웹 캐싱과 유사한 방식으로 관리하여, 공간이 차면 오래된 비디오부터 삭제된다.
사용자는?
1. 넷플릭스 로그인
2. 시청할 비디오 검색
3. 비디오 선택하면 넷플릭스가 최적 cdn 서버 결정, 사용자는 해당 비디오에 대한 manifest file 획득
4. 사용자는 manifest file 통해 dash 서버에 청크 요청.
Network Layer : 두 호스트 간 logical communication 제공
Transport Layer : 두 호스트에서 실행 중인 프로세스 간 logical communication 제공
transport layer는 multiplexing and demuliplexing으로 network layer의 host-host logical communication을 process-process로 연장한다.