더 자세히는 데이터, 패킷, 비트 등의 일련의 연속성을 갖는 흐름을 의미
Ex) 음성, 영상, 데이터 등의 작은 조각들이 하나의 줄기를 이루며 전송되는 데이터 열
호스트 상호간 또는 동일 호스트 내 프로세스 상호간 통신에서 큐에 의한 메세지 전달방식을 이용한 가상 연결 통로를 의미하기도함
보통 데이터를 전부 다운로드하고 출력하는 경우가 일반적이지만 그렇지 않은 경우도 있다
위와 같은 경우에는 데이터를 일부 받아 출력하고 받고 출력하는 식으로 반복하는 것이 더 효율적일 것이다 대표적인 예시로 유튜브가 있다..유튜브에서 재생하는 큰 용량의 영상이 재생이 되는 이유는 여러 개로 쪼갠 데이터를 미리 보내고 재생하는 방식으로 영상 제공이 되기 때문이다
동시에 다운로드하고 재생하기 때문에 시간이 절약된다
다운로드를 하지만 하드디스크에 저장하지 않기 때문에 하드디스크 용량에 영향을 주지 않는다
인터넷 환경이 좋지 않다면 그냥 다운로드 속도가 느려지는 것이 아니라 스트리밍의 경우 서비스 제공이 안될 가능성이 있다
같은 서버에 사용자가 많이 들어와서 동시에 동영상 스트리밍을 요청한다면 서버에 그만큼 부하가 걸리고 전송속도가 떨어지게 되기 때문이다
사용자가 URL를 통해 플레이어로 접근하면 플레이어는 파일을 다운로드하며, 다운로드한 부분을 재생한다.
이 방식의 단점은 데이터 소비가 사용자가 보는 만큼이 아니라 다운로드 된 만큼 소비된다는 것이다.
이 방식은 프로그레시브 방식과는 달리 미리 데이터를 다운받지 않고 사용자가 현재 시청하고 있는 비디오 프레임만을 전송해주며, 이미 시청한 데이터는 버린다.
장점은 RTMP의 경우 중간에 비디오 품질을 변경해도 이상이 없기 때문에 통신망이 변경되거나, 화면 크기가 달라져도 재생이 가능하며 라이브 스트리밍도 가능하다
서버에서 몇 초 단위의 비디오를 가지고 스트리밍하고, 클라이언트는 이들을 연속된 스트리밍으로 연결시킨다.
이 방식은 표준 웹 서버를 활용할 수 있기 때문에 CDN 업체들이 지원한다.
사진 출처 : http://blog.daum.net/weandmedia/19
서버로부터 동영상 데이터가 스트리밍된다면 컴퓨터가 데이터를 처리하기 위해 메모리 (RAM) 에 임시공간을 만들어 chunk ( 데이터를 처리하는 임의의 크기 ) 단위로 쪼개서 저장해두고 처리한다
데이터가 Buffer에 들어오고 나가는 것을 Stream
데이터를 저장하는 임시공간이 Buffer ( Buffer 와 chunk 를 같은 수준으로 맞추는 것이 일반적 )
Buffer 가 작동하는 방식을 Buffering
위와 같은 방식을 하나의 Streaming 이라고 할 수 있을 것 같다.