인터넷 기술의 발전에 따라 인터넷을 통해 동영상이나 애니메이션 등의 멀티미디어 컨텐츠를 실시간으로 제공받는 스트리밍(streaming) 서비스가 활성화되고 있다. 스트리밍이란 멀티미디어 컨텐츠 파일을 모두 전송 받은 후에 재생하는 다운로드 방식과 달리, 전체 파일의 일정량만 전송되면 이를 버퍼링하면서 실시간으로 재생하는 기법을 말한다. 버퍼링된 부분을 재생하는 동안 나머지 부분을 지속적으로 전송 받기 때문에, 전송되는 데이터가 마치 끊임없고 지속적인 물 흐름처럼 처리된다고 하여 '스트리밍'이라는 명칭이 붙여졌다. 이러한 스트리밍 서비스에는 실시간 방송 서비스나 주문형 비디오 서비스가 있다.
한편, UCC(user created contents)를 비롯한 동영상 컨텐츠의 폭발적인 증가에 따라 최근 인터넷 트래픽이 급속히 늘고 있다. 인터넷 대역폭(공급)의 성장 속도가 인터넷 트래픽(수요)의 성장 속도를 따라가지 못하는 상황에 직면한 것이다. 2007년의 경우만 보더라도 글로벌 인터넷 트래픽은 75% 성장했지만 인터넷 대역폭은 44% 증가하는데 그친 것으로 보고되고 있다.
이러한 인터넷 대역폭 부족 현상을 해결하기 위한 방안으로 CDN(contents delivery network) 기술이 관심을 끌고 있다. CDN 기술은 능동적인 트래픽 분산을 이용하여 네트워크의 평균 가동률을 높이고 피크 트래픽을 낮추어 인터넷 망을 더욱 효율적으로 활용할 수 있는 기술이다. CDN 기술에 따르면, 컨텐츠 제공자(contents provider)는 클라이언트에게 제공할 컨텐츠를 지역적으로 분산된 다수의 서버에 복제하고, 클라이언트의 요청이 있을 경우 최적의 서버로부터 컨텐츠를 제공받을 수 있도록 한다.
또한, 스트리밍과 같은 데이터 서비스에서 가입자단의 데이터 전송속도를 높이기 위해 많이 활용하고 있는 기술 중의 하나가 캐시(cache) 기술이다. 일반적인 캐시 구현에서는 캐싱되는 오브젝트가 다양한 크기의 데이터 단위로 이루어지고, 이를 바탕으로 캐시 서버는 데이터를 관리하기 위한 여러 통계들을 만들게 된다.
하지만 이러한 방법은 캐시 서버의 다양한 종류의 자원(RAM 크기, 저장공간, 원래 컨텐츠 제공자 서버에서의 총 컨텐츠 용량 등), 인터넷 전송속도의 불안정성, 사용자의 컨텐츠 사용에 대한 다양한 행동특성(다운로드나 스트리밍 도중의 중단 등), 캐시 대상인 데이터의 다양한 크기 등을 고려할 때, 캐시 서버가 다루는 오브 젝트 단위가 컨텐츠 크기에 종속될 경우 다음과 같은 여러 문제가 발생한다.
1. 크기가 큰 파일과 작은 파일을 다룰 때 일정하지 않은 컴퓨팅 자원의 활용으로 인한 비효율
2. 크기가 다른 파일을 요청한 사용자에 대한 일정하지 않은 서비스 품질(QoS)
3. 해당 파일에 대한 사용자 요청이 정상적으로 종료되지 않은 경우 생기는 분할손(즉, 사용자 요청에 의해 전체 파일을 캐시 서버나 메모리에 저장하였으나 중간에 중단되는 경우에는 전체적인 효율을 떨어뜨리게 됨)
이러한 문제를 해결하기 위한 방안으로, 크기가 다양한 대용량 멀티미디어 컨텐츠를 크기가 일정한 여러 개의 세그먼트(segment)로 분할하고 이를 여러 노드의 캐시(cache) 서버에 분산 저장하는 기술이 이미 알려져 있다. 이에 따르면, 데이터 분산 저장을 통해 전체 시스템의 부하를 분산할 수 있고, 단일 서버 하드웨어의 물리적 성능(RAM, CPU, 네트워크 대역폭 등)을 하나 이상의 캐시 서버인 것처럼 동작하게 하여 단일 서버의 하드웨어 장벽(예컨대 최대 메모리 크기) 이상의 사양을 활용할 수 있다.
그러나 종래의 컨텐츠 분산 저장형 스트리밍 기술은 데이터의 분산 저장에 초점이 맞추어져 있을 뿐으로, 클라이언트의 스트리밍 요청이 있을 때 어느 노드에서 어떤 방식으로 인접 노드들의 세그먼트들을 취합하여 스트리밍하는 것이 가장 효율적인지에 대한 연구가 부족한 실정이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 잘 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 가급적 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 핵심을 흐리지 않고 더욱 명확히 전달하기 위함이다. 한편, 첨부 도면을 통틀어 동일하거나 대응하는 구성요소에는 동일한 참조번호를 부여한다.
도 1은 본 발명의 실시예에 따른 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템의 구성을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 멀티디미어 스트리밍 시스템은 클라이언트 단말(100), 멀티미디어 서버(200), 노드 네트워크(300)를 포함하여 구성된다. 이러한 시스템에서, 멀티미디어 서버(200)와 노드 네트워크(300)는 컨텐츠를 제공하는 제공 시스템이고, 클라이언트 단말(100)은 컨텐츠를 수신하여 이용하는 사용자 시스템이다.
이러한 시스템은 멀티미디어 서버(200)가 네트워크를 통하여 연결된 다수의 노드들로 이루어진 노드 네트워크(300)를 확인하고, 각 노드 네트워크(300)에 컨텐츠를 분산하여 저장할 수 있도록 지원한다. 이를 위하여 노드 네트워크(300)에 포함된 각 노드들은 캐시 서버를 포함하여야 한다. 각 노드들은 멀티미디어 서버(200)로부터 다수의 컨텐츠를 수신하여 캐싱하는 단계에서 미리 계획된 분산 정책에 따라 컨텐츠들을 부분적으로 저장할 수 있다. 이하, 각 구성요소에 대하여 보다 상세히 설명한다.
멀티미디어 서버(200)는 다양한 컨텐츠를 생산, 저장, 관리한다. 또한, 멀티미디어 서버(200)는 저장된 컨텐츠를 노드 네트워크(300)에 포함된 각 노드의 요청에 따라 분할하여 전송한다. 이를 위하여 멀티미디어 서버(200)는 컨텐츠 분산 정책을 정의한다. 컨텐츠 분산 정책은 컨텐츠를 세그먼트로 분할하고, 분할된 각 세그먼트를 어느 노드에 공급할지를 결정하는 정책이다. 이에 대한 설명은 도 2를 참조하여 후술하기로 한다.
노드 네트워크(300)는 멀티미디어 서버(200)와 클라이언트 단말(100) 사이에 배치된다. 노드 네트워크(300)는 다수의 노드들(301, 302, 303)을 이용하여 멀티미디어 서버(200)가 제공하는 컨텐츠 세그먼트들을 각각 저장하고, 이를 기반으로 클라이언트 단말(100)이 요청하는 컨텐츠를 일정한 QoS 기반으로 제공할 수 있다. 이를 위하여 각 노드들(301, 302, 303)은 캐시 서버를 포함한다.
캐시 서버는 멀티미디어 서버(200) 및 클라이언트 단말(100)에 접속하기 위한 네트워크 어댑터와, 컨텐츠 세그먼트를 저장하기 위한 저장부, 다른 컨텐츠 세 그먼트를 다른 노드로부터 수신하고 이를 기반으로 전체 컨텐츠를 제공하도록 제어하는 중앙처리장치를 포함할 수 있다. 캐시 서버는 컨텐츠 제공시 자신의 네트워크 부하량을 모니터링하고, 네트워크 부하량이 미리 설정된 임계치 이상인 경우, 컨텐츠 전송을 타 노드에 위임할 수 있다. 이에 대한 설명은 도 3을 참조하여 후술하기로 한다.
클라이언트 단말(100)은 사용자 단말기로서, 노드 네트워크(300)에 접속할 수 있는 통신모듈을 포함하는 다양한 전자장치가 될 수 있다. 예를 들어 클라이언트 단말은 모뎀을 구비한 PC, 무선 인터넷에 접속 가능한 노트북 또는 휴대 단말기, 인터넷 서비스가 가능한 이동통신 단말기 등이 될 수 있다. 클라이언트 단말(100)은 멀티미디어 서버(200)에 접속하기 위한 통신 모듈과, 멀티미디어 서버(200)가 제공하는 웹 페이지를 수신할 수 있는 웹 브라우저를 저장하는 저장부, 웹 브라우저가 수신한 웹 페이지를 출력하기 위한 표시부, 웹 페이지에 출력된 다양한 정보 및 컨텐츠를 검색하고 지정할 수 있는 입력 신호를 생성하는 입력부, 수신된 컨텐츠 재생에 따른 오디오 신호를 출력하기 위한 오디오 처리부, 이러한 구성들을 제어하기 위한 제어부를 포함할 수 있다. 제어부는 사용자 요청에 따라 노드 네트워크(300)로부터 컨텐츠를 수신하는 중에 수신 취소를 할 수 있다. 또한, 제어부는 노드 네트워크(300)의 특정 노드로부터 컨텐츠를 수신하는 중에 특정 노드 요청에 따라 다른 노드로부터 해당 컨텐츠를 이어서 수신하도록 제어할 수 있다. 이에 대한 설명은 노드 네트워크(300)의 설명과 함께 후술한다.
이상 설명한 바와 같이, 본 발명의 실시예에 따른 컨텐츠 분산 저장형 멀티 미디어 스트리밍 시스템은 다수의 노드에 마련된 캐시 서버가 하나의 컨텐츠를 이루는 컨텐츠 세그먼트들을 각각 저장하고 있다가, 클라이언트 단말 요청에 따라 해당 컨텐츠 세그먼트들을 클라이언트 단말에 제공하도록 함으로써, 데이터 전송 효율을 높이고 멀티미디어 서버의 저장부 공간을 늘릴 수 있다.
이하, 컨텐츠 분산 정책 및 컨텐츠 세그먼트 전송에 대하여 도 2 및 도 3을 참조하여 보다 상세히 설명하기로 한다.
도 2는 본 발명의 컨텐츠 분산 정책을 설명하기 위한 도면이며, 도 3은 네트워크 부하량에 따른 노드 운용을 설명하기 위한 네트워크 부하량 테이블을 나타낸 도면이다. 이하의 설명에서 노드 네트워크(300)는 노드 A(301), 노드 B(302), 노드 C(303)를 포함하고, 멀티미디어 서버(200)는 컨텐츠 A와 컨텐츠 B를 저장하는 것으로 가정한다. 그러나 이는 단지 설명을 위한 예일 뿐, 본 발명이 이에 한정되거나 이러한 예가 바람직함을 의미하는 것은 아니다.
도 1 내지 도 3을 참조하면, 멀티미디어 서버(200)는 자신과 연결된 노드 네트워크(300) 내에 포함된 각 노드(301, 302, 303)의 정보를 수집한다. 예를 들어, 멀티미디어 서버(200)는 각 노드(301, 302, 303)가 가지는 IP 주소를 이용하여 현재 자신과 연결된 전체 노드들의 정보를 확인할 수 있다. 즉, 멀티미디어 서버(200)는 노드 A(301), 노드 B(302), 노드 C(303)가 자신과 연결되어 있는 것을 확인할 수 있다. 이후, 멀티미디어 서버(200)는 예를 들어 컨텐츠 A를 3개의 세그먼트(A1, A2, A3)로 나누고, 컨텐츠 B를 2개의 세그먼트(B1, B2)로 나눈다. 그리고 멀티미디어 서버(200)는 도 2에 도시된 바와 같이 컨텐츠 A의 각 세그먼트(A1, A2, A3)를 노드 A 내지 노드 C(301, 302, 303)에 할당한다. 또한, 컨텐츠 B의 각 세그먼트(B1, B2)를 노드 A 및 노드 B(302)에 할당한다.
이때, 각각의 세그먼트(A1, A2, A3, B1, B2)는 그 데이터 크기가 일정하거나 유사한 크기로 분할되는 것이 바람직하다. 즉, 멀티미디어 서버(200)는 컨텐츠들을 분할하는 기준을 정하고, 그 기준에 맞추어 각 컨텐츠를 다수의 세그먼트들로 분할한다. 일정 크기로 분할된 다수의 컨텐츠 세그먼트들은 재생 순서에 대한 정보를 가지고 있다. 그러나 각 노드(301, 302, 303)는 컨텐츠 전송 과정에서 다른 노드의 세그먼트들을 취합하여 전송하기 때문에, 멀티미디어 서버(200)가 세그먼트들을 각 노드(301, 302, 303)에 분산하는 과정에서는 재생 순서와 관계없이 랜덤하게 할당할 수 있다.
한편, 본 실시예에서는 멀티미디어 서버(200)가 컨텐츠를 세그먼트들로 분할하고, 이에 대한 컨텐츠 분산 테이블을 생성하며, 컨텐츠 세그먼트와 함께 해당 컨텐츠 분산 테이블을 노드에 전송하지만, 특정 노드가 이러한 기능을 대신 수행할 수도 있다. 즉, 멀티미디어 서버(200)가 특정 노드에 컨텐츠 A를 전송하면, 컨텐츠 A를 수신한 노드 A(301)가 컨텐츠 A를 다수의 세그먼트들(A1, A2, A3)로 분할하고 그에 따른 컨텐츠 A의 분산 테이블을 생성한다. 이후, 노드 A(301)는 컨텐츠 분산 테이블과 세그먼트 A1 만을 저장하고, 컨텐츠 분산 테이블과 세그먼트 A2는 노드 B(302)에, 컨텐츠 분산 테이블과 세그먼트 A3은 노드 C(303)에 전송한다. 이에 따라, 노드 B(302)와 노드 C(303)는 각각 자신에게 할당된 세그먼트를 저장함과 아울러, 컨텐츠 A의 다른 세그먼트들을 어느 노드가 저장하고 있는지에 대한 정보를 알 수 있다. 마찬가지 방법으로, 컨텐츠 B는 멀티미디어 서버(200)가 노드 B(302)에 제공할 수 있으며, 노드 B(302)는 컨텐츠 B를 세그먼트 B1과 B로 분할한 후 컨텐츠 B의 분산 테이블을 생성하고 노드 A(301)에 컨텐츠 분산 테이블과 세그먼트 B1을 전송할 수 있다.
한편, 각 노드(301, 302, 303)는 다른 노드로부터 세그먼트를 취합하여 컨텐츠를 전송할 수 있다. 예를 들어, 클라이언트 단말(100)이 노드 B(302)에 컨텐츠 A의 스트리밍을 요청하면, 노드 B(302)는 캐시 서버의 저장부에 저장된 컨텐츠 분산 테이블을 검색하여 노드 A(301)와 노드 C(303)가 각각 컨텐츠 A에 대한 나머지 세그먼트들을 저장하고 있음을 확인한다. 이어서, 노드 B(302)는 컨텐츠 A에 대한 컨텐츠 세그먼트 요청 메시지를 생성하고, 이 메시지를 노드 A(301)와 노드 C(303)에 각각 동시에 전송한다. 컨텐츠 세그먼트 요청 메시지를 수신한 노드 A(301)와 노드 C(303)는 자신의 캐시 서버에 저장된 컨텐츠 A의 세그먼트를 검출하고 이를 노드 B(302)에 전송한다.
이때, 노드 B(302)는 컨텐츠 A의 세그먼트들의 순서를 고려하여 컨텐츠 세그먼트 요청 메시지 전송의 순서와 시간을 설정할 수 있다. 예를 들어, 노드 B(302)가 컨텐츠 A를 취합할 때 가장 우선순위가 높은 세그먼트가 노드 A(301)에 저장된 세그먼트 A1인 경우, 노드 B(302)는 컨텐츠 세그먼트 요청 메시지를 생성하여 이 메시지를 노드 A(301)에 우선적으로 전송한다. 그런 후, 노드 A(301)로부터 세그먼트 A1을 수신 완료하면, 노드 B(302)는 컨텐츠 세그먼트 요청 메시지를 노드 C(303)에 전송한다. 이러한 방식으로 노드 B(302)는 컨텐츠 A의 세그먼트들을 순차 적으로 수신하여 취합할 수 있다. 또한, 컨텐츠 분산 테이블은 각 노드의 정보를 저장할 수 있다. 즉, 컨텐츠 분산 테이블은 특정 노드가 다른 노드를 빠르게 검색하고 컨텐츠 세그먼트를 요청할 수 있도록 다른 노드의 IP 주소 정보를 함께 저장할 수 있다.
한편, 컨텐츠를 클라이언트 단말(100)에 전송하는 특정 노드는 다른 노드에게 컨텐츠 전송을 위임할 수 있다. 예를 들어 노드 A(301)가 특정 클라이언트 단말(100)로부터 컨텐츠 A에 대한 전송 요청을 수신하였다고 가정할 때, 노드 A(301)는 캐시 서버의 저장부에 저장된 컨텐츠 분산 테이블을 확인하여 노드 B(302) 및 노드 C(303)에 각각 필요한 세그먼트가 저장되어 있음을 확인한다. 그런 후, 노드 A(301)는 컨텐츠 세그먼트 요청 메시지를 생성하여 노드 B(302)와 노드 C(303)에 각각 동시에 전송하거나 순차적으로 전송하는 한편, 클라이언트 단말(100)에 자신이 저장 중인 세그먼트 A1을 스트리밍 방식에 따라 전송하기 시작한다. 아울러, 노드 A(301)는 다른 노드들로부터 세그먼트들를 수신하기 시작하므로, 노드 A(301)의 네트워크 부하량은 증가하게 된다.
이때, 다른 클라이언트 단말(100)이 노드 A(301)에게 컨텐츠 B의 전송 요청을 해올 수 있다. 그러면 노드 A(301)는 자신의 네트워크 부하량을 검사하여 미리 설정된 임계치를 초과하는지 확인한다. 자신의 네트워크 부하량이 임계치를 초과하는 경우, 노드 A(301)는 다른 노드들에게 현재 네트워크 부하량에 대한 정보를 요청하여 도 3에 도시된 바와 같은 네트워크 부하량 테이블을 생성할 수 있다. 이를 통해 노드 A(301)는 노드 B(302)의 네트워크 부하량이 가장 작은 것을 알 수 있으 며, 다른 클라이언트 단말의 컨텐츠 B에 대한 요청 메시지를 노드 B(302)에게 전달한다. 노드 B(302)는 노드 A(301)로부터 컨텐츠 B에 대한 클라이언트 요청 메시지를 수신하면, 해당 클라이언트 단말의 IP 주소를 확인하여 통신 경로를 형성하는 한편, 세그먼트 B1에 대한 요청 메시지를 생성하여 노드 A(301)에 전송한다. 이어서, 노드 B(302)는 노드 A(301)로부터 세그먼트 B1을 수신하면서 세그먼트 B1을 스트리밍 형태로 다른 클라이언트 단말에 전송하도록 제어한다.
다른 예로, 컨텐츠 B의 세그먼트 B1과 B2를 저장하고 있는 노드 A(301)와 노드 B(302)의 네트워크 부하량이 모두 임계치를 초과하는 경우, 컨텐츠 B의 세그먼트를 가지고 있지 않은 노드 C(303)의 네트워크 부하량이 적다면 노드 C(303)에게 컨텐츠 전송을 위임할 수도 있다. 이때, 노드 A(301)는 컨텐츠 분산 테이블과 클라이언트 단말의 주소 값을 노드 C(303)에 전송해야 한다. 그러면, 노드 C(303)는 수신된 컨텐츠 분산 테이블을 확인하여 컨텐츠 B의 세그먼트들을 저장하고 있는 노드를 확인하고, 컨텐츠 세그먼트 요청 메시지를 생성하여 전송한 다음, 컨텐츠 B의 세그먼트들을 수신하여 클라이언트 단말로 전송한다.
이상에서 설명한 바와 같이, 본 발명의 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템은 각 노드에 마련된 캐시 서버를 이용하여 멀티미디어 서버의 컨텐츠 저장 공간을 확충하고, 컨텐츠 전송에서 발생할 수 있는 부하량을 분산하여 최적의 서비스 품질(QoS)을 유지할 수 있도록 지원한다.
도 4는 본 발명의 실시예에 따른 컨텐츠 분산 저장형 멀티미디어 스트리밍 방법에서 특정 노드의 기능을 설명하기 위한 흐름도이다. 이하의 설명에서, 각 노 드는 멀티미디어 서버 또는 다른 노드로부터 컨텐츠 세그먼트와 컨텐츠 분산 테이블을 수신하였다고 가정한다.
도 4를 참조하면, 먼저 특정 노드는 클라이언트 단말로부터 컨텐츠 전송 요청을 수신한다(단계 S101).
컨텐츠 전송 요청을 수신한 특정 노드는 캐시 서버의 저장부에 저장된 컨텐츠 분산 테이블을 확인한다(단계 S102). 앞서 설명했듯이, 컨텐츠 분산 테이블은 특정 컨텐츠의 세그먼트 분할 정보, 각 세그먼트의 노드 분산 저장 정보, 각 노드의 주소 정보를 포함할 수 있다. 컨텐츠 분산 테이블을 확인한 특정 노드는 컨텐츠 세그먼트 요청 메시지를 생성하여 컨텐츠 분산 테이블에 등록된 다른 노드들에게 전송한다. 이때, 특정 노드는 컨텐츠 세그먼트 요청 메시지를 동시에 또는 순차적으로 각 노드에 전송할 수 있다.
다른 노드들이 자신이 저장 중인 세그먼트를 전송하면, 특정 노드는 각 노드로부터 세그먼트를 수신한다(단계 S103). 각 노드에 저장 중인 세그먼트들은 재생 우선순위에 대한 정보를 가지고 있으므로, 특정 노드는 재생 우선순위가 높은 세그먼트를 저장하고 있는 노드에 우선적으로 컨텐츠 세그먼트 요청 메시지를 전송하여 수신하는 것이 바람직할 수 있다.
다음으로, 특정 노드는 취합한 컨텐츠 세그먼트들 중 우선 재생되어야 할 세그먼트를 클라이언트 단말에 스트리밍 방식으로 전송한다(단계 S104). 동시에 특정 노드는 나머지 세그먼트들을 해당 노드들로부터 수신하도록 제어한다. 즉, 특정 노드는 다른 노드들로부터 세그먼트를 수신하면서 이를 재생 우선순위에 따라 클라이 언트 단말에게 스트리밍 방식으로 바로 전송할 수 있다.
한편, 특정 노드는 컨텐츠 전송 중에 자신의 네트워크 부하량을 검사하여 네트워크 부하량이 미리 설정된 임계치를 초과하는지 확인한다(단계 S105). 만일 네트워크 부하량이 임계치를 초과하지 않는 경우, 특정 노드는 S104 단계의 컨텐츠 전송 과정을 계속 수행하도록 제어한다.
한편, 네트워크 부하량이 임계치를 초과하는 경우, 특정 노드는 다른 노드의 네트워크 부하량을 검사한다(단계 S106). 즉, 특정 노드는 다른 노드들에게 부하량 정보를 요청하는 메시지를 전송하여 해당 노드들의 부하량 정보를 수신한다. 이때, 부하량 정보의 요청 대상이 되는 노드들은 특정 노드와의 물리적 거리가 임계치 이하인 노드, 특정 노드와 통신하는데 소요되는 경로비용이 임계치 이하인 노드, 홉(hop) 수가 임계치 이하인 노드 등이 될 수 있다.
특정 노드는 다른 노드들로부터 수신한 네트워크 부하량을 기반으로 네트워크 부하량 테이블을 생성하고, 이를 기반으로 부하량이 적은 노드에 컨텐츠 전송을 위임할 수 있다(단계 S107). 예를 들어, 컨텐츠 Ark 세그먼트 A1, A2, A3로 분할되어 있고, 노드 A가 저장하고 있는 세그먼트 A1을 클라이언트 단말에 전송하고 있는 도중에 노드 A의 네트워크 부하량이 다양한 이유로 인하여 임계치를 초과하여 증가하는 경우, 노드 A는 세그먼트 A1 다음으로 재생되어야 할 세그먼트 A2의 전송을 다른 노드에 위임할 수 있다.
이상 설명한 바와 같이, 본 발명의 컨텐츠 분산 저장형 멀티미디어 스트리밍 방법은 컨텐츠의 저장영역을 특정 노드에 집중시키지 않고 다양한 노드로 분산하여 저장공간을 효율적으로 확장 운영할 뿐만 아니라, 컨텐츠 전송 과정에서 네트워크 부하량을 고려하여 컨텐츠 전송 노드를 동적으로 운영함으로써, 항상 최적의 서비스 품질을 유지할 수 있다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.