동영상 스트리밍 원리가 뭔가요? 그 많은 클라이언트들을 1:1로 패킷 전송할것 같진 않은데요...

freezm7의 이미지

아프리카나 유튜브 같은 동영상 스트리밍 서비스들에 대해서 예전부터 궁금한게 있었는데요,

엄청난 수의 사용자에 대해서 일일이 패킷을 뿌리는 건가요?

아니면 얼핏 들은적 있는, 멀티캐스트 패킷 이런 원리인가요?

혹시 이쪽으로 공부해보신분 있으시면 간단한 원리좀 알려주세요.

neocoin의 이미지

경우에 따라 다르지만, flash로 서비스하는 동영상 사이트에 국한한다면.

Quote:

엄청난 수의 사용자에 대해서 일일이 패킷을 뿌리는 건가요?

이를 효율적으로 하기 위한 방편으로 cdn 형태의 분산이 일반적입니다.

좀더 특별하게는 로컬에 p2p서버 형태의 app를 놓고 접속하는 형태가 존재하지만, flash 동영상 서비스들의 전체를 봤을때 후자는 일반적인 방법은 현재 아닙니다.

flash 스트리밍에 들어가면 두가지의 형태로 나뉘는데, 이건 질문에 속한 내용이 아니네요.

혹시 요즘 다른 일반적인 방법이 있으면 첨언 부탁드려요.

preisner의 이미지

제가 음원/동영상 스트리밍 시스템을 운영 해 본적이 있는데요,
기본적으로 한 사용자당 하나씩의 세션을 생성하고 전송하는 방식 입니다.
neocoin 님의 글의 CDN 은 이러한 연결을 IDC 나 지역등 의 단위로 분산 시켜 주는 것이지만, 기본적으로 동일 합니다.
트래픽과 서버 비용으로 인해 요즘엔 P2P 방식도 쓰이고 있죠.

2001년 이었나 2002년 이었나? 한때 멀티캐스트 방식이 논의 되었던 적이 있었습니다만,
ISP 들의 라우터 셋팅을 죄다 바꿔야 하는 문제 가 있어서 현재는 유니캐스트 방식이 거의 대부분입니다.
일부 대규모 네트워크를 직접 운영하는 시스템, 예를 들어 사내 방송망 같은 곳에서는 쓰이고 있는지도 모르겠군요.
멀티캐스트 방식이 이론적으로는 아주 많이 효율적이죠. 보안적으로는 안 좋지만 말이죠.

RPT/SRPT 같은 실시간 프로토콜 보다는 요즘에는 간단히 http로 스트리밍 하는 방식을 많이 쓰고 있습니다.
IPTV 에서는 FTP 를 쓰기도 하고요. 물론 WMS 도 많이 쓰이죠. 하지만 윈도 서버 라이센스 비용 압박이...

결론적으로 특정한 환경외에는 스트리밍에 특화된 프로토콜/시스템을 이용하는 환경보다는 일반적인 프로토콜과 구성으로 스트리밍들이 이뤄지고 있는 상황 입니다.

hinewwiner의 이미지

한가지 궁굼한것이 이런 CDN을 이용할경우 유투부 같은 사이트는 그 수많은 영상의 똑같은 copy를 서로다른 edge에 똑같이 다 분산을 시켜놔야 하는건가요? 스토리지가 장난 아닐꺼 같아서요..

neocoin의 이미지

많은 영상을 모든 곳에서 미러링 할필요는 없습니다.
그냥 이론적인 이야기인데...

예를들어서 '유튜브에서 한국인이 자주 영상은 한국에서 빠르게 접속할 수 있는 서버 측에다가 많이 두는 형태' 라고 생각하시면 됩니다.
이걸 자동화 관리하고 고객에게 빠르게 위치를 돌려주는게 cdn 시스템의 핵심이구요.

건외로

말씀대로 스토리지가 많이 필요합니다. 더불어 트래픽 비용도 감당할 수 없을 만큼입니다.
그래서 한국의 동영상 서비스 업체들이 치킨런 게임을 감당 못하고 쓰러지고 있습니다.
현재 동영상에 붙은 광고 수준으로는 감당할 수 없습니다.

monovision의 이미지

이런 이슈들 때문에 최근에는 스트리밍 서버에서 캐싱 기능이 도입되고 있습니다.
( 아마 FMS 3.5 에서는 도입이 되었을 겁니다. 냠냠 )

김정균의 이미지

아프리카는 P2P 방식 입니다.

JuEUS-U의 이미지

그래서 ActiveX가 필요한거로군요...

preisner의 이미지

대부분의 국내 음악/동영상 서비스 회사는 P2P 방식을 사용하고 있습니다.
정확하게는 섞어쓰지만 주요 서비스는 P2P 라고 말 할 수 있겠네요.
사실 P2P 방식에 대해서는 아직 좀 애매한 부분이 있고 관리적인 측면의 고려사항도 남아있긴 하지만
운영 비용이 차이가 많아 많은 기업들이 이용 하고 있습니다.

요즘에는 모바일 장치에 대한 스트리밍에 대해서 고민해 보고 있는데,
이런 환경에서는 P2P 방식은 어림없겠지요.

vision82의 이미지

멀티캐스트는 아직 ISP 때문에 지원되지 못하고 있습니다.

라우터를 바꾸는 것의 문제도 물론 있겠지만.. 현실적으로 더 큰 원인은, 멀티캐스트가 패킷 단위 과금 측정을 힘들게 만들기 때문입니다.

ISP A와 ISP B 간에 대역폭을 교환하기 위해서는 서로 상대방에게 흘러가는 패킷의 양을 측정할 필요가 있습니다. 그리고 어느 한 쪽의 양이 다른 쪽보다 많다면 그만큼 과금을 하는 것이 보통입니다. 그런데 멀티캐스트는 이러한 측정을 매우 힘들게 만들어버립니다. 이러한 이유로 아직까지 멀티캐스트는 현실화되지 못하고 있습니다.

Yoo, Sunghwan [http://vision.byus.net]

cwryu의 이미지

KT, SKT, LG데이콤의 IPTV 라이브 같은 경우 멀티캐스트도 현재 사용하고 있습니다. 이 경우는 IPTV 사업자가 망을 컨트롤할 수 있으니까요. 그래서 자기 인터넷 상품을 자사 상품을 가입해야 라이브 IPTV 상품을 이용할 수 있습니다.

sunyata01의 이미지

RTP를 이용한 멀티캐스트방식입니다.
엘모 m?L?tv 멀티케스트 방식 맞구요.거기서 일해서 아는 겁니다.
그리고 타 업체는 모르겠는데..확실한건 방송통신위원회에서 인터넷으로 방송하는 방법을
RTP로 전송하기로 법을지정했습니다. 그이외 아프리카나 곰플레이어는 모르겠습니다.
그리고 스트리밍 같은 경우 서버단에서 TCP로 방송하는 걸 본적이있습니다.
m?L?tv 같은 경우 서버단에서 API를 제공해서 전송하더군요..물론 앞으로 뒤로 1.5배속 2,4,8,16,..배속,뒤로도 가능하고..스트리밍같은경우 서버 구조는 모르겠는데, 엘모 업체에서 원본을 가지고 있고 서버 업체에서..스트리밍을 하고 DRM 업체에서 암호화 해서 서비스를 하는건 봤습니다.