✍️FTP와 HTTP(clinet-server architecture)
✍️P2P(peer-to-peer)
P2P network는 overlay network이다.
peer간에 각 linke는 하나이상의 ip link들을 구성한다.
서버가 항상있지 않다.
임의의 end system이 직접 통신한다.
peer들은 간헐적으로 연결되고 ip 주소를 변경한다.
✍️ 한 서버로부터 N개의 peer들까지 파일을 배포하는데 걸리는 시간
스트리밍 영상은 가정용 ISP traffic의 대부분을 차지한다.
스트리밍 비디오 영상은 보통 사전에 녹화된 비디오를 기반으로 한다.
비디오 영상은 server에 저장되어 있고, 사용자는 비디오 서버로 요청을 보낸다.
비디오는 압축될 수 있으며, 이것에 의해 비트레이트에 따른 비디오의 품질을 좌우하게 된다. 비트레이트가 높으면 이미지 품질이 높아지게 된다.
비디오 스트리밍에서 중요한 성능척도는 평균 처리량이다. 흔히 말하는 버퍼링에 걸리지 않기 위해서는 최소한 비디오의 압축된 비트레이트 크기 정도만큼은 스트리밍 애플리케이션에게 제공해야 한다.
✍️HTTP 스트리밍에서, 영상은 보통의 파일처럼 HTTP서버에 특정 URL을 가지고 저장되어 있다.
✍️사용자가 영상을 보고 싶을때는?
- 클라이언트가 서버와 TCP 연결을 만들고, 그 URL로 HTTP GET request message를 전송한다.
- 전송받은 server는 HTTP response message에 영상 파일을 담아 네트워크 트래픽 조건과 네트워크 프로토콜이 허용하는 내에서 빠르게 전송한다.
- client 에서는 client application buffer에 받은 bytes를 쌓는다.
- client application buffer에 쌓인 bytes가 사전에 정해놓은 threshold를 초과할때, 영상은 재생을 시작한다.
특히 스트리밍 영상 application은 client application buffer에서 비디오 프레임을 가져오고, 압축을 해제하고 그것을 사용자 스크린에 보여준다.
영상 에플리케이션을 보여주는 동시에, 다음 영상 부분에 해당하는 프레임을 수신하고 버퍼링을 하고 있다.
✍️HTTP 스트리밍의 단점은?
클라이언트마다 bandwidth가 모두 다름에도 불구하고 똑같은 크기의 비디오 프레임을 전송하려고 하고, 똑같이 인코딩된 영상을 보여준다.
이를 해결하기 위한 것이 DASH 이다.
✍️DASH(Dynamic,Adaptive,Streaming over HTTP)
manifest file
에 저장되어 있다.✍️DASH 이용한 스트리밍
- 클라이언트는 manifest file을 요청한후, 다양한 버전에 정보에 대해 인지한다.
- 클라이언트는 한 시점에 대해 특정 URL을 지정한다.
- HTTP request GET message에 각각의 chunk에 대한 byte range를 지정한다.
- chunk를 downlaod 하는 동안, 클라이언트는 수신한 bandwidth를 측정하고, 다음에 요청할때는 어떤 버전으로 요청할지를 알기위해 rate determination algorithm을 계산한다.