KR101027500B1 - 세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법 - Google Patents

세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법 Download PDF

Info

Publication number
KR101027500B1
KR101027500B1 KR20080107058A KR20080107058A KR101027500B1 KR 101027500 B1 KR101027500 B1 KR 101027500B1 KR 20080107058 A KR20080107058 A KR 20080107058A KR 20080107058 A KR20080107058 A KR 20080107058A KR 101027500 B1 KR101027500 B1 KR 101027500B1
Authority
KR
South Korea
Prior art keywords
peer
peers
streaming
sessions
content
Prior art date
Application number
KR20080107058A
Other languages
English (en)
Other versions
KR20100048059A (ko
Inventor
조용철
Original Assignee
주식회사 카뮤즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 카뮤즈 filed Critical 주식회사 카뮤즈
Priority to KR20080107058A priority Critical patent/KR101027500B1/ko
Priority to JP2009234305A priority patent/JP5724139B2/ja
Publication of KR20100048059A publication Critical patent/KR20100048059A/ko
Application granted granted Critical
Publication of KR101027500B1 publication Critical patent/KR101027500B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2225Local VOD servers

Abstract

인터넷 상에서 콘텐츠를 P2P방식으로 라이브 스트리밍하는 인터넷 방송 서비스 시스템 및 방법에 관한 것으로서, 인터넷 상에서 콘텐츠를 스트리밍하는 스트리밍 서버; 상기 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 수신 또는 중계하는 다수의 피어를 포함하고, 상기 피어는 자신의 하위피어로의 전송속도를 상기 콘텐츠의 시간당 스트리밍의 양으로 나누어 세션수를 구하고, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 상기 트리구조를 형성하는 구성을 마련한다.
상기와 같은 시스템 및 방법에 의해, 스트리밍을 할 수 있는 세션수(또는 하위피어의 수)가 큰 피어를 스트리밍의 트리구조의 상단에 위치시킴으로써 상기 트리구조의 깊이(depth)를 가능한 짧게 하여, 스트리밍의 전송시간을 줄이고, 특히, 피어들간의 지연시간을 최소화할 수 있다.
스트리밍, 콘텐츠, 라이브, 방송, 지연시간, P2P, 피어

Description

세션수에 의해 P2P의 트리구조를 형성하는 P2P방식 인터넷 라이브 방송 서비스 시스템 및 방법{ A realtime internet live broadcasting service system on the P2P network forming the tree structure by using the session number of peers and the method thereof }
본 발명은 스트리밍 서버가 다수의 피어에 콘텐츠를 P2P방식으로 스트리밍하되, 상기 P2P방식의 스트리밍을 트리구조로 형성하는 P2P방식의 인터넷 라이브 방송 서비스 시스템 및 방법에 관한 것이다.
특히, 본 발명은 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 다수의 피어에 방송하되, 상기 스트리밍의 트리구조에 참여하는 피어를 그 전송속도(또는 대역폭)가 클수록 스트리밍 서버에 가깝게 배치시키는 P2P방식의 인터넷 라이브 방송 서비스 시스템 및 방법에 관한 것이다.
일반적으로 인터넷 라이브 방송은 방송 서버가 방송 콘텐츠를 네트워크로 전송하면 다수의 클라이언트가 이 콘텐츠를 수신하는 동시에 재생하는 방식으로 구현된다. 이러한 전송방식을 통상 라이브 스트리밍 방식이라고 부른다.
VOD(Video on demand) 서비스는 한 클라이언트가 원하는 콘텐츠를 실시간으로 송신하여 이 클라이언트가 수신 동시에 재생할 수 있도록 지원하는 서비스이다. 즉, VOD 서비스는 각 클라이언트에 각기 다른 콘텐츠를 스트리밍해준다. 이에 반해 라이브 스트리밍은 하나의 콘텐츠를 동일하게 다수의 클라이언트에 동시에 제공하는 특징이 있다.
따라서 인터넷 라이브 방송 서버는 대용량의 콘텐츠 데이터를 다수의 클라이언트에 실시간으로 동시에 전송해주어야 한다. 가장 간단한 라이브 스트리밍 방식은 방송 서버가 각 클라이언트와 1:1로 콘텐츠 데이터를 전송해주는 방식이다. 이와 같은 방식은 방송 서버가 동시에 많은 수의 클라이언트에 개별적으로 콘텐츠 데이터를 전송해야 하므로 방송 서버측의 부하가 커지게 되는 문제점이 있다. 방송 콘텐츠를 요청하는 클라이언트가 많을수록 이러한 문제점은 더욱 커질 것이다.
따라서 상기와 같이 방송서버가 개별적으로 클라이언트에 스트리밍을 하는 방식을 개선하여, 콘텐츠를 수신한 클라이언트가 다시 다른 클라이언트로 재전송하는 P2P기반의 인터넷 라이브 방송 서비스가 제시되고 있다.
P2P기반의 인터넷 라이브 방송 서비스의 일례가 [한국공개특허 제10-2008-0048835호(2008.6.3.공개), "실시간 인터넷 방송 서비스 시스템 및 그 관리 방법"](이하 선행기술 1)에 개시되고 있다.
도 1a에서 보는 바와 같이, 상기 선행기술 1은 방송사로부터 방송 컨텐츠를 공급받아 상응하는 방송 데이터를 전송하는 방송 서버인 그룹 마스터(Group Master) 피어(200)와, 상기 그룹 마스터 피어에 의해 관리되고, 상기 수신되는 방송 데이터를 종속적으로 결합되는 하나 이상의 심플 피어에게 피투피 방식으로 전송하는 로컬 마스터(Local Master) 피어(210, 212, 214, 216)로 구성된다. 즉, 로컬 마스터 피어에 종속적으로 결합되는 다수의 심플 피어(213)는 트리구조로 계층화되고, P2P방식으로 방송 데이터를 전달한다. 로컬 마스터 피어는 상기 다수 심플 피어가 구성한 트리에서 최상위 계층의 심플 피어가 된다. 로컬 마스터 피어와 이에 종속적으로 연결된 다수의 심플 피어는 하나의 그룹이 된다. 한편, 로컬 마스터 피어들도 트리구조를 구성한다.
예를 들면, 도 1a와 같이, 그룹 마스터 피어(200)는 최초로 방송 콘텐츠를 방송사(미도시)로부터 공급받는다. 그룹 마스터 피어(200)는 직접 연결된 로컬 마스터 피어 210에 공급받은 콘텐츠를 전송한다. 로컬 마스터 피어 210은 다시 자신의 하위에 직접 연결된 2개의 로컬 마스터 피어 212와 214에 동시에 전송한다. 로컬 마스터 피어 212와 214는 각각 자신에게 종속적으로 결합된 다수의 심플피어(213)에 콘텐츠를 전송한다.
또한, 도 1b에서 보는 바와 같이, 트리구조로 구성된 심플피어들이 일정한 조건을 만족하면, 그룹에서 분리되어 독자적인 그룹을 형성할 수 있다. 도 1b에서 보면, 로컬 마스터 피어 214에 종속되는 심플 피어들이 8개였으나, 그 중에서 3개가 분리되어 독자적인 그룹으로 형성될 수 있다. 독자적으로 분리된 그룹에서 최상위 계층에 있는 심플 피어 215가 곧 로컬 마스터 피어가 된다.
특히, 상기 선행기술 1은 상기 트리구조를 이진트리(binary tree)를 조건으 로 로컬 마스터 피어에 연결된 종속 심플 피어의 개수는 2개로 제한된다. 도 1b에서 로컬 마스터 피어 214는 3개의 종속 심플 피어가 있으므로, 그 중에서 하나를 분리한 것이다. 반대로, 로컬 마스터 피어에 직접 연결되는 심플 피어가 하나만 있다면, 다른 그룹을 가져와 직접 연결시켜 2개의 하위 심플피어를 만든다.
상기 선행기술 1은 콘텐츠 서버(또는 그룹 마스터 피어)가 직접 모든 클라이언트(또는 심플 피어)에 방송 콘텐츠를 전송하는 대신, 클라이언트들을 트리구조로 구성하고 직접 연결된 클라이언트에만 방송 콘텐츠를 전송한다. 그리고 각 클라이언트는 전송받은 방송 콘텐츠를 다시 자신에게 직접 연결된 다른 클라이언트에 전송한다. 이렇게 함으로써, 콘텐츠 서버의 부담을 경감할 수 있다. 또한, 선행기술 1은 복수의 클라이언트를 그룹으로 관리함으로써, 보다 효율적으로 운영할 수 있다.
그러나 상기 선행기술 1은 클라이언트의 성능 등 개별 특징을 전혀 고려하고 있지 못하다. 즉, 상기 선행기술 1은 단지 그룹 마스터 피어를 기준으로 트리구조의 크기를 결정한다(선행기술 1에서 그룹에 소속된 피어의 수는 그룹 마스터 피어의 서버 용량, 소속된 그룹 트리 구조 깊이 및 방송 데이터를 제공하는 네트워크 대역폭에 의해 조절되는 기술을 제시하고 있다.). 트리구조의 바람직한 실시예에서 이진(binary) 트리를 구성한 것으로 판단컨대, 클라이언트의 하위에 직접 연결된 클라이언트의 개수는 일정한 개수(예를 들면 2개)로 정한 것을 알 수 있다. 즉, 클라이언트의 전송 성능을 일정한 것으로 전제한 것임을 알 수 있다.
그러나 인터넷 등 오픈된 네트워크인 경우 각 클라이언트의 전송 능력은 일반적으로 각기 다르다. 즉, 어떤 클라이언트는 다른 클라이언트로 데이터를 전송하는 속도가 매우 느린 반면, 또 다른 클라이언트는 매우 빠를 수 있다. 그 차이도 몇 배, 몇 십배 등 현격하게 차이가 날 수도 있다.
또한, 상기 선행기술 1에서의 클라이언트들은 트리에서의 위치에 따라 방송 콘텐츠를 받는 시간이 틀릴 수 있다. 예를 들면, 도 1a에서 210 기호의 클라이언트와 213 기호의 클라이언트는 각각 콘텐츠를 받는 시간이 틀리다. 이것은 213의 클라이언트가 210의 클라이언트에 비해 210 -> 212 로의 전송과 212 -> 213 으로의 전송 등 2번의 전송을 더 하므로, 그만큼 지연이 되기 때문이다.
그런데 상기 선행기술 1은 하위에 직접 연결할 수 있는 클라이언트의 수를 2개로 한정하였기 때문에 트리의 깊이가 깊어지게 된다. 따라서 상대적으로 각 클라이언트 사이의 지연시간이 상당히 큰 편차를 가지게 되는 문제점이 있다. 특히, 상기 선행기술 1은 모든 클라이언트가 동일한 시간에 동일한 방송 콘텐츠를 보게 하기 위한 기술을 제시하고 있지 못하다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 스트리밍 서버가 다수의 피어에 콘텐츠를 P2P방식으로 스트리밍하되, 상기 P2P방식의 스트리밍을 트리구조로 형성하는 P2P방식의 인터넷 라이브 방송 서비스 시스템 및 방 법을 제공하는 것이다.
본 발명의 다른 목적은 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 다수의 피어에 방송하되, 상기 스트리밍의 트리구조에 참여하는 피어를 그 전송속도(또는 대역폭)가 클수록 스트리밍 서버에 가깝게 배치시키는 P2P방식의 인터넷 라이브 방송 서비스 시스템 및 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 관한 것으로서, 상기 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 수신 또는 중계하는 다수의 피어를 포함하고, 상기 각 피어는, 자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누어 세션수를 구하고, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 상기 트리구조를 형성하되, 주기적으로, 자신, 자신과 직접 연결된 상위계층의 피어(이하 상위피어), 또는 자신과 직접 연결된 하위계층의 피어(이하 하위피어)의 세션수를 비교하여, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 부분적으로 재연결하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 각 피어는, 자신의 상위피어와 자신과의 세션수를 비교하여, 자신의 세션수가 더 크면 자신의 상위피어의 상위피어를 자신의 상위피어로서 재연결하고, 자신의 하위피어 사이의 세션수를 비교하여, 세션수가 작은 하위피어에 세션수가 큰 하위피어를 상위피어로서 연결하도록 명령하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 피어는, 자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누고, 상기 나눈 값보다 크거나 같은 최소 정수를 세션수로 정하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 스트리밍의 트리구조에 참여하는 피어(이하 참여피어)를 참여목록으로 저장하여 관리하는 관리서버를 더 포함하고, 상기 스트리밍의 트리구조에 참여하지 않는 피어(이하 미참여 피어)는 상기 관리서버에 참여목록을 요청하여 수신하고, 상기 참여목록에 속하는 하나의 피어를 자신의 상위피어로서 연결하고, 자신을 참여목록에 등록하도록 관리서버에 요청하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 미참여 피어는, 수신한 상기 참여목록에 속하는 모든 피어에 콘텐츠 요청 메시지를 보내고, 가장 먼저 응답하는 피어를 자신의 상위피어로서 정하거나, 상기 참여목록에서 상위피어를 정할 수 없으면 상기 스트리밍 서버를 상위피어로 정하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 참여 피어는 자신의 세션수, 하위피어들의 연결정보를 자신의 상위피어에 전송하고, 상기 하위피어의 연결정보는 연결된 하위피어들의 연결목록과, 연결된 각 하위피어의 세션수와 각 하위피어의 하위피어들의 연결정보를 포함하고, 상기 트리구조의 가장 상단에 위치하는 피어는 자신의 세션수, 하위피어들의 연결정보를 상기 관리서버에 전송하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 참여 피어는, 최대 하위피어의 수보다 많은 하위피어를 연결하지 않는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 참여 피어는, 자신의 트리깊이가 최대 트리깊이와 같거나 크면, 하위피어를 연결하지 않는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 참여 피어는, 미래에 재생할 콘텐츠가 버퍼링에 없거나 최소 버퍼링의 양보다 적으면, 하위피어를 연결하지 않는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 관리서버는 최대 지연시간을 입력받아 저장하고, 상기 참여 피어는 상기 관리서버로부터 상기 최대 지연시간을 수신하여, 수신된 상기 콘텐츠를 콘텐츠 스트리밍 시각에 비해 상기 최대 지연시간 후에 콘텐츠를 플레이하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 스트리밍의 트리구조에서 최대 트리깊이에 위치하지 않으면서 최하단(leaf)에 있는 피어는 자신의 세션수를 1로 정하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 시스템에 있어서, 상기 관리서버는, 트리구조의 최상단(root)에 있는 피어의 모든 하위노드의 개수가 최소 노드수 이하이면, 상기 피어에게 상기 스트리밍 서버에 직접 연결된 다른 피어의 하위피어로서 재연결하도록 명령하는 것을 특징으로 한다.
또한, 본 발명은 인터넷 상에서 콘텐츠를 스트리밍하는 스트리밍 서버, 상기 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 수신 또는 중계하는 다수의 피어, 상기 스트리밍의 트리구조에 참여하는 피어(이하 참여 피어)를 참여목록으로 저장하여 관리하는 관리서버를 이용하여, P2P방식의 인터넷 라이브 방송 서비스 방법에 관한 것으로서, (a) 상기 스트리밍의 트리구조에 참여하지 않는 피어(이하 미참여 피어)는 상기 관리서버에 참여목록을 요청하여 수신하고, 상기 참여목록에 속하는 하나의 피어를 자신의 상위피어로서 연결하는 단계; (b) 상기 참여 피어는 수신된 콘텐츠를 재생시키는 단계; (c) 상기 참여 피어는 자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누어 세션수를 구하는 단계; (d) 주기적으로, 각 참여 피어는 자신, 자신과 직접 연결된 상위계층의 피어(이하 상위피어), 또는 자신과 직접 연결된 하위계층의 피어(이하 하위피어)의 세션수를 비교하여, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 부분적으로 재연결하는 단계를 포함하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 방법에 있어서, 상기 (a)단계는, (a1) 상기 미참여 피어는 상기 관리서버에 참여목록을 요청하여 수신하는 단계; (a2) 상기 미참여 피어는 수신한 상기 참여목록에 속하는 모든 피어에 콘텐츠 요청 메시지를 보내는 단계; (a3) 상기 미참여 피어는 가장 먼저 응답하는 피어를 자신의 상위피어로서 연결하는 단계; (a4) 상기 참여목록에서 상위피어를 정할 수 없으면 상기 스트리밍 서버를 상위피어로 정하는 단계를 포함하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 방법에 있어서, 상기 (c)단계에서, 상기 참여 피어는, 자신의 상위피어와 자신과의 세션수를 비교하여, 자신의 세션수가 더 크면 자신의 상위피어의 상위피어를 자신의 상위피어로서 재연결하고, 자신의 하위피어 사이의 세션수를 비교하여, 세션수가 작은 하위피어에 세션수가 큰 하위피어를 상위피어로서 연결하도록 명령하는 것을 특징으로 한다.
또, 본 발명은 P2P방식의 인터넷 라이브 방송 서비스 방법에 있어서, 상기 (b)단계는, 상기 참여 피어는 상기 관리서버로부터 상기 최대 지연시간을 수신하여, 수신된 상기 콘텐츠를 콘텐츠 스트리밍 시각에 비해 상기 최대 지연시간 후에 콘텐츠를 플레이하는 것을 특징으로 한다.
또한, 본 발명은 상기 P2P방식의 인터넷 라이브 방송 서비스 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
상술한 바와 같이, 본 발명에 따른 P2P방식의 인터넷 라이브 방송 서비스 시스템 및 방법에 의하면, 스트리밍을 할 수 있는 세션수(또는 하위피어의 수)가 큰 피어를 스트리밍의 트리구조의 상단에 위치시킴으로써 상기 트리구조의 깊이(depth)를 가능한 짧게 하여, 스트리밍의 전송시간을 줄이고, 특히, 피어들간의 지연시간을 최소화할 수 있는 효과가 얻어진다.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명의 일실시예에 따른 P2P방식의 인터넷 라이브 방송 서비스 시스템의 구성을 도 2을 참조하여 설명한다.
도 2에 보는 바와 같이, 인터넷 라이브 방송 서비스 시스템은 스트리밍 서버(30)와 다수의 피어(51,52,53)를 포함하여 구성된다. 추가적으로 관리서버(40)를 더 포함할 수 있다.
상기 스트리밍 서버(30)는 인터넷 상에서 콘텐츠를 스트리밍한다.
스트리밍 서버(30)는 방송 콘텐츠를 클라이언트(또는 피어)에게 실시간으로 전송해주는 서버이다. 클라이언트(또는 피어)(51)는 콘텐츠를 실시간으로 수신하여 바로 콘텐츠를 재생시킨다. 콘텐츠 전체를 먼저 전송받아 재생시키는 것과 대비하여 '스트리밍'이라는 용어를 사용한다.
특히, 이하에서 스트리밍은 라이브 스트리밍을 의미하기도 한다. 앞서 본 바와 같이, VOD(Video on demand) 등에서의 스트리밍은 서버가 각 클라이언트에 각기 다른 콘텐츠를 전송해주는 것을 의미한다. 그러나 본 발명은 라이브로 진행되는 실시간 인터넷 방송에 적용하고자 하는 것이므로, 이하 스트리밍은 라이브 스트리밍으로 좁게 해석할 수 있다. 이때 라이브 스트리밍은 하나의 콘텐츠를 동일하게, 다수의 클라이언트에, 동시에, 실시간으로, 제공하는 특징을 갖는 스트리밍을 말한 다.
스트리밍 서버(30)는 자신이 직접 콘텐츠를 저장하였다가 스트리밍을 해줄 수도 있고, 별도의 콘텐츠 서버(미도시)로부터 콘텐츠를 수신하여 재전송할 수도 있다. 특히, 다양한 콘텐츠 서버로부터 콘텐츠를 수신하여 스트리밍만을 전문적으로 하는 서버로서 구현될 수도 있다. 콘텐츠를 스트리밍하는 서버에 대한 기술은 본 분야의 공지기술이므로, 구체적 설명은 생략한다.
상기 피어(51)는 상기 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 수신 또는 중계한다.
상기 피어(51)는 상기 스트리밍 서버(30)에서 스트리밍하는 콘텐츠를 수신 또는 중계하는 일종의 클라이언트이다. 단, 상기 피어(51)는 상기 콘텐츠를 다른 피어(51)로부터도 수신할 수 있다.
피어(51)는 PC 등 컴퓨터 기능을 가지는 장치로 구현된다. 상기 피어(51)는 상기 스트리밍 서버(30)나 다른 피어(51)와 통신을 하기 위한 통신 장치, 특히 P2P통신 장치, 수신한 콘텐츠를 재생하기 위한 플레이 등을 구비한 컴퓨터 장치이다.
상기 피어(51)는 적어도 하나 이상 존재하고, 다수의 피어(51)와 스트리밍 서버(30)는 네트워크로 연결되어 있다. 네트워크는 바람직하게는 인터넷이나, P2P 통신을 할 수 있는 네트워크이면 어느 것이나 적용이 될 수 있다.
상기 다수의 피어(51)들은 콘텐츠의 스트리밍을 하기 위하여, 트리구조(50)를 형성한다. 상기 스트리밍의 트리구조(50)는 콘텐츠를 스트리밍하는 콘텐츠 전송 의 논리적인 연결구조이다. 인터넷 상에서 물리적으로 서로 연결되는 피어(51)들의 물리적인 네트워크 연결구조와는 구별된다.
도 2를 참조하여 예를 들면, 스트리밍의 트리구조(50)에서 최상단에 위치하는 피어 B(51)는 스트리밍 서버(30)로부터 콘텐츠를 수신하고, 콘텐츠를 수신한 상기 피어 B(51)는 자신에게 직접 종속되어(또는 연결되어) 있는 다른 피어 C(51)에게 상기 콘텐츠를 재전송한다.
이때 트리구조(50)에서 피어의 부모 노드에 있는 피어를 상위피어, 피어의 자식노드에 있는 피어를 하위피어라고 부르기로 한다. 하나의 피어의 하위에 있는 모든 피어들을 전체 하위피어 또는 하위의 전체피어로 부르기로 한다. 또한, 트리구조(50)의 루트 노드(root node)는 최상단에 위치하는 피어 또는 최상단 피어로 표기하고, 트리구조의 리프 노드(leaf node)는 최하단에 위치하는 피어 또는 최하단 피어로 표기한다. 즉, 최상단 피어 B(51)는 직접 스트리밍 서버(30)와 연결되고, 최하단 피어 C(51)는 하위에 직접 연결되는 피어를 가지지 않는다.
상기 피어(51)는 수신한 상기 콘텐츠를 임시로 저장하는 버퍼를 구비한다. 상기 피어는 버퍼를 이용함으로써, 상기와 같이 인터넷 라이브 방송 중 끊김 없이 상하위 피어의 이동이 가능하게 된다. 이것은 현재 시청되는 영상의 앞뒤 지정된 부분 만큼씩을 버퍼로 보유하고 있기 때문이다.
다음으로, 피어(51)의 세션수를 설명한다.
상기 피어(51)는 자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스 트리밍 속도로 나누어 세션수를 구한다. 바람직하게는, 상기 피어(51)는 자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누고, 상기 나눈 값보다 크거나 같은 최소 정수를 세션수로 정한다. 즉, 다음 [수식 1]에 의하여 구한다.
[수식 1]
Figure 112008075511674-pat00001
피어의 전송속도는 자신으로부터 직접 연결된 하위피어로 콘텐츠를 전송할 때의 데이터 전송속도이다. 예를 들면, 피어의 전송속도가 1,024kbps이면, 상기 피어(51)는 초당 1,024k 비트(bit)(약 1M)를 전송할 수 있다. 피어의 전송속도는 피어가 전송할 수 있는 일종의 대역폭으로 볼 수도 있다. 피어의 전송속도는 하위피어로 콘텐츠를 전송하는 속도이므로, 통상 최대 업로드 속도를 의미한다.
스트리밍 속도는 콘텐츠를 스트리밍하는 속도를 말한다. 예를 들면, 콘텐츠의 전송속도가 300kbps라 하면, 상기 콘텐츠는 초당 300k 비트(bit)를 전송한다. 일반적으로 콘텐츠가 영상인 경우 화질이 좋을수록 콘텐츠의 전송속도는 높다. 통상 MP3의 전송속도는 128kbps이고, AM라디오 수준은 28kbps정도이다.
따라서 콘텐츠마다 스트리밍의 전송속도는 다를 수 있다. 따라서 콘텐츠의 전송속도로 세션수를 구하면 매번 콘텐츠에 따라 세션수가 변화될 수 있다. 바람직하게는, 스트리밍 서버는 기준이 되는 콘텐츠의 전송속도를 정할 수 있다. 이를 스 트리밍 서버의 스트리밍 속도라 부르기로 한다.
상기 예에서 세션수를 구하면, 세션수 =
Figure 112008075511674-pat00002
= 3이다. 따라서 세션수는 3이다. 세션수는 동시에 콘텐츠를 스트리밍해줄 수 있는 개수를 의미한다. 전송속도가 300kbps인 콘텐츠를 동시에 3개를 전송하면, 300kbps * 3 = 900kbps를 전송하는 것과 같다. 따라서 전송속도가 최대 1,024kbps인 피어는 300kbps인 콘텐츠를 동시에 3개를 전송할 수 있다. 반면, 상기 피어가 동시에 4개를 전송하면, 300kbps * 4 = 1,200kbps를 전송하는 것과 같다. 이 경우에는 총 전송할 데이터의 양은 1,200kbp인데, 최대 대역폭은 1,024kbps밖에 되지 않기 때문에, 176kbps의 양을 보내지 못한다. 결국 하위피어 중 적어도 하나는 제대로 콘텐츠를 전송받아 재생시킬 수 없게 된다.
한편, 피어의 전송속도는 다른 피어에 콘텐츠를 전송하면서 측정될 수 있다. 바람직하게는, 피어는 자신의 하위피어에 콘텐츠를 전송하면서 전송속도를 측정한다. 그러나 하위피어를 갖지 않는 피어는 전송속도를 측정할 수 없다. 바람직하게는, 피어가 하위피어를 갖지 않는 경우에는 세션수를 1로 설정한다. 이 피어는 다르게 표현하면, 스트리밍의 트리구조에서 최하단(leaf)에 있는 피어이다.
또, 피어는 PC 등 컴퓨터로서 하나의 클라이언트이므로, 일반적인 업로드 속도 등을 측정하여 보유할 수 있다. 또, 스트리밍의 트리구조에 참여하였다가 탈퇴한 후 다시 연결된 경우, 하위피어를 가지고 있다가 트리구조가 변경되어 하위피어를 가지고 있지 않는 경우 등에는, 피어는 전송속도를 예측할 수 있다. 따라서 바 람직하게는, 피어가 업로드 속도 등 기초 전송속도를 보유하고 있다면 하위피어를 가지고 있지 않는 경우에도 기초 전송속도를 자신의 전송속도로 가정하여 세션수를 구한다. 상기 세션수는 사용자 환경이 수시로 변할 수 있으므로 일정시간 마다 산정하여 변경 적용한다.
다음으로, 피어의 세션수에 의하여 바람직한 트리구조를 도 3을 참조하여 설명한다. 본 발명에 따른 스트리밍의 트리구조는 세션수가 큰 피어를 트리의 상단에 배치하는 것이다.
도 3a와 도 3b는 모두 10개의 피어를 배치하여 트리를 구성한 것이다. 그리고 두 개의 트리 모두가 세션수가 4인 것이 하나, 세션수가 3인 것이 하나, 세션수가 2인 것이 2개이고, 나머지는 세션수가 모두 1인 피어들을 가지고 있다. 도 3에서 피어의 (S:4), (S:2) 등은 현재 해당 피어의 세션수가 4 또는 2임을 표시한다.
도 3a에서는 세션수가 가장 큰 피어를 최상단에 둔 반면, 도 3b에서는 트리의 최상단 노드에 세션수가 2인 피어를 배치하였다. 이렇게 구성함으로써, 두 개의 트리 모두가 구성은 동일함에도 불구하고, 도 3a의 트리깊이는 3인데 반해, 도 3b에서 트리깊이는 4가 되었다.
즉, 세션수가 많은 피어를 트리구조의 상단에 둠으로써, 많은 피어를 상단에 연결할 수 있고, 상단에 연결된 피어가 많으면 그만큼 다음 단계에서 연결되는 피어도 많아진다. 즉, 트리구조의 상단에 피어를 많이 둠으로써, 트리구조는 옆으로 많이 늘어나고(즉, 트리의 형제노드 sibling node 가 많아진다.), 높이가 줄어들게 된다.
앞서 배경기술에서 설명한 바와 같이, 상위피어에서 하위피어까지 콘텐츠를 전송할 때 일정한 시간이 소요되므로, 상위피어가 콘텐츠의 스트리밍을 받은 시간과 하위피어가 콘텐츠를 받는 시간은 서로 차이가 난다. 스트리밍 서버에서 콘텐츠를 전송한 시각과 피어에서 상기 콘텐츠를 수신하는 시각의 차이를 '지연시간'이라고 부르기로 한다.
피어 간의 전송시간이 동일하다고 가정하면, 각 피어의 지연시간은 피어가 위치하는 노드의 깊이에 비례한다. 따라서 도 3b에 비해 도 3a가 트리높이가 낮음으로써, 각 피어 사이의 지연시간의 편차가 작아지게 된다. 즉, 세션수가 큰 피어를 트리구조의 상단에 배치함으로써 피어 사이의 지연시간 차이를 줄어들게 한다.
다음으로, 피어의 세션수에 의하여 스트리밍의 트리구조를 변경하는 방식을 도 4를 참조하여 설명한다.
상기 피어(51)는 자신의 하위피어로의 전송속도를 스트리밍 서버(30)의 스트리밍 속도로 나누어 세션수를 구하고, 세션수가 큰 피어(51)가 세션수가 작은 피어의 상위피어(51)가 되도록 상기 트리구조를 형성한다.
이하에서 설명하듯이, 스트리밍의 트리구조에 참여하지 않는 피어가 처음으로 연결할 때는 스트리밍의 트리구조의 임의의 위치에 연결된다. 따라서 스트리밍의 트리구조는 처음부터 도 3a와 같이 세션수가 큰 피어가 트리의 상단에 위치하지 않는다. 그렇게 하지 않는 이유는 스트리밍에 참여하는 피어가 자신의 지원 가능 한 세션수를 판단하고 적절한 위치로 찾아 들어감으로 인해 생기는 시작시의 응답 지연을 없애기 위하여 가장 빠른 응답을 보인 접속 가능 피어에 우선 접속이 되기 때문이다.
대신, 각 피어는 자신과 직접 연결된 피어들과의 세션수를 비교함으로써, 세션수가 큰 피어를 보다 트리의 상단 쪽으로 이동시킨다. 즉, 부분적으로 세션수에 의하여 피어의 위치를 조정한다. 상기와 같이 부분적으로 계속 피어의 위치를 조정하면, 최종적으로는 도 3a와 같이 전체적으로 세션수가 큰 피어가 트리의 상단에 위치하는 트리구조로 변경된다.
부분적인 피어의 위치 조정은 각 피어가 다음과 같이 2가지의 방법에 의하여 수행된다. 첫 번째는 자신의 상위피어와 자신과의 세션수를 비교하는 것이고, 두 번째는 자신의 하위피어들 사이의 세션수를 비교하는 것이다. 즉, 바람직하게는, 상기 피어는, 주기적으로, (1) 자신의 상위피어와 자신과의 세션수를 비교하여, 자신의 세션수가 더 크면 자신의 상위피어의 상위피어를 자신의 상위피어로서 재연결하고, (2) 자신의 하위피어 사이의 세션수를 비교하여, 세션수가 작은 하위피어에 세션수가 큰 하위피어를 상위피어로서 연결하도록 명령한다.
도 4를 참조하여 보다 구체적으로 설명한다. 도 4는 스트리밍의 트리구조에 참여한 4개의 피어가 세션수에 의하여 순서가 변경되는 것을 설명하는 도면이다. 도 4에서 A 피어의 (S:3) 은 현재 해당 피어의 세션수가 3임을 나타낸다.
먼저 도 4a에서 보는 바와 같이, 최초에는 피어 A, B, C는 각각 피어 B, C, D에의 콘텐츠를 전송함으로써 피어의 전송속도를 측정하고 이를 통해 세션수를 산 정한다. 반면, 피어 D는 전송 대상이 없어 사전에 지정된 값(또는 디폴트 값default value)인 1을 갖는다. 즉, 피어 A, B, C, D의 세션수는 각각 3, 2, 3, 1이다.
앞서 설명한 부분적 세션수 비교의 첫 번째 규칙에 의하여, 피어 C는 자신의 상위피어 B와 자신과의 세션수를 비교한다. 즉, B(S:2)와 C(S:3)의 세션수를 비교한다. 그 결과 피어 C의 세션수가 더 크다. 따라서 첫 번째의 규칙에 의하여, 피어 C는 자신의 상위피어의 상위피어인 A를 자신의 상위피어로서 재연결한다.
상기와 같이 재연결하면, 도 4b에서 보는 바와 같이 트리구조가 변경된다. 즉, 피어 C는 피어 A의 하위피어로서 연결되고, 이때 원래 C의 하위피어로 연결된 D는 그래도 따라 온다.
다음으로, 피어 A는 부분적 세션수 비교의 두 번째 규칙에 의하여, 자신의 하위피어인 B와 C의 세션수를 비교한다. 즉, B(S:2)와 C(S:3)의 세션수를 비교한다. 그 결과 피어 C의 세션수가 더 크다. 따라서 두 번째의 규칙에 의하여, 피어 C는 세션수가 작은 하위피어 B에 세션수가 큰 하위피어 C를 상위피어로서 연결하도록 명령한다. 도 4c에 보는 바와 같이, 하위피어 B는 자신의 상위피어 A로부터 상기 명령을 받고 피어 C를 자신의 상위피어로서 재연결한다.
다음으로, 피어 C는 부분적 세션수 비교의 두 번째 규칙에 의하여, 자신의 하위피어인 B와 D의 세션수를 비교한다. 즉, B(S:2)와 D(S:1)의 세션수를 비교하고, 피어 B의 세션수가 더 크므로, 피어 C는 세션수가 작은 하위피어 D에 세션수가 큰 하위피어 B를 상위피어로서 연결하도록 명령한다. 도 4d에 보는 바와 같이, 하 위피어 D는 자신의 상위피어 C로부터 상기 명령을 받고 피어 B를 자신의 상위피어로서 재연결한다.
바람직하게는, 상기와 같은 변경은 일정 시간에 한번 씩 비교를 시행하여 변경조건이 되면 변경되며, 더 이상 변경이 필요하지 않을 시는 트리구조는 동일하게 유지된다.
다음으로, 앞서 설명한 도 2의 인터넷 라이브 방송 서비스 시스템에서 관리서버(40)와 관리서버(40)를 이용하여 트리구조에 참여하지 않는 피어가 트리구조에 참여하는 것에 대하여 설명한다.
상기 관리서버(40)는 상기 스트리밍의 트리구조에 참여하는 피어를 참여목록으로 저장하여 관리한다. 참여목록은 피어의 식별정보를 저장하여, 어느 피어가 트리구조에 참여하는지가 기록된다. 피어의 식별정보는 네트워크 상에서 피어를 식별할 수 있는 정보로서, 네트워크 규격에 따라 달리 표현될 수 있다. 인터넷을 예로 들면, 피어의 식별정보는 IP주소로 정해질 수 있다.
상기 스트리밍의 트리구조에 참여하지 않는 피어는 상기 관리서버(40)에 참여목록을 요청하여 수신하고, 상기 참여목록에 속하는 하나의 피어를 자신의 상위피어로서 연결하고, 자신을 참여목록에 등록하도록 관리서버(40)에 요청한다.
바람직하게는, 상기 스트리밍의 트리구조에 참여하지 않는 피어는 수신한 상기 참여목록에 속하는 모든 피어에 콘텐츠 요청 메시지를 보내고, 가장 먼저 응답하는 피어를 자신의 상위피어로서 정하거나, 상기 참여목록에서 상위피어를 정할 수 없으면 상기 스트리밍 서버를 상위피어로 정한다.
가장 먼저 응답하는 피어를 상위피어로 정하는 이유 중 하나는 가장 먼저 응답하는 피어가 그만큼 전송속도가 빠른 피어임을 나타내고 그 방법이 간단하며 방송을 빠르게 시작할 수 있기 때문이다. 상기 방법이외에도 요청 메시지를 송수신하면서 참여목록의 피어와의 홉(hop)의 수를 계산하여 홉이 가장 작은 피어를 선정할 수도 있다. 즉, 자신에게 보내는 전송속도가 빠른 피어를 찾는 방법이면 어느 것이나 적용이 가능하다.
다음으로, 피어에 연결하는 하위피어의 수와 트리깊이에 대한 제한 방식을 설명한다.
하나의 피어에 직접 연결하는 하위피어의 개수를 일정한 개수(이하 최대 하위피어의 수)로 한정하는 것이 바람직하다. 그 이유는 특정 피어의 회선이 좋다고 하여도 너무 많은 사용자가 연결되어 있게 되면 시스템의 성능이 저하될 수 있다. 더 중요한 것은, 이 피어가 콘텐츠의 스트리밍을 중계하는 것을 중단하면, 이 피어에 연결되었던 하위피어들이 모두 다른 피어로 재연결하여야 한다는 것이다. 연결된 하위피어가 많을수록 재연결하기 위한 작업이 많아지기 때문에, 전체 서비스 시스템에 부하가 많이 걸리고 콘텐츠의 시청이 중단되는 피어들이 많아진다. 바람직하게는, 최대 하위피어의 수를 5 에서 10의 범위 내에서 한정한다.
한편, 앞서 본 바와 같이, 스트리밍의 트리구조의 트리깊이는 각 피어들 사이의 지연시간 편차와 연관이 있다. 즉, 트리깊이가 클수록 최상단의 피어(root node)와 최하단의 피어(leaf node) 사이의 지연시간 차이가 크게 난다. 따라서 이 지연시간을 줄이기 위해서 트리깊이를 줄일 필요가 있다.
특히, 모든 피어가 동일한 시간에 스트리밍되는 콘텐츠를 시청(또는 청취)하기 위해서는 스트리밍 서버에서 콘텐츠를 송출하는 시각에서 일정한 시간(이하 최대 지연시간)이 지난 후에 재생하여야 한다. 각 피어는 이 최대 지연시간 이내에 콘텐츠를 스트리밍 받아야 한다. 가능하면 최대 지연시간을 줄이는 것이 바람직하다. 따라서 스트리밍의 트리구조의 트리깊이를 일정한 트리깊이(이하 최대 트리깊이)로 제한하고, 이 트리깊이까지 스트리밍하는 시간을 최대 지연시간으로 정하는 것이 바람직하다.
상기와 같은 하위피어의 수 또는 트리깊이를 관리하는 것은 인터넷 라이브 방송의 서비스의 품질을 일정한 수준으로 유지하는 것에 유용하다. 하위피어의 수만을 관리하거나 트리깊이만을 관리하거나, 또는 둘 모두를 관리하는 방식이 모두 적용가능하다.
상기와 같은 하위피어의 수 또는 트리깊이를 관리하기 위하여, 각 피어는 세션수와 더불어 자신의 연결정보를 관리한다. 연결정보는 자신에게 직접 연결된 하위피어에 대한 목록, 각 하위피어의 세션수와 연결정보를 포함한다. 하위피어에 대한 목록은 하위피어의 수를 포함한다. 또, 하위피어에 대한 목록은 하위피어의 식별정보를 포함할 수 있다. 각 하위피어의 연결정보는 자신의 연결정보와 같은 형식의 정보이다. 즉, 하위피어의 연결정보에는 다시 하위피어의 하위피어의 연결정보를 가지고 있다. 연결정보는 재귀적으로(recursive) 구성되므로, 연결정보에는 자 신의 하위에 있는 모든 피어의 정보를 포함한다.
한편, 각 피어는 상위피어에게 상위피어의 트리깊이를 요청하여 수신함으로써 자신의 트리깊이를 알 수 있다. 즉, 자신의 트리깊이는 상위피어의 트리깊이에 1을 더하면 자신의 트리깊이가 된다.
또한, 각 피어는 하위피어들의 연결정보를 통해, 하위에 있는 모든 피어의 트리깊이를 계산할 수 있다. 즉, 하위에 있는 피어가 자신보다 몇 단계에 아래인지를 파악하여 상대적인 트리깊이를 구하고, 상기 상대적인 트리깊이에 자신의 트리깊이를 더하면 하위에 있는 피어의 트리깊이를 구할 수 있다.
모든 피어는 자신의 세션수, 하위피어들의 연결정보를 자신의 상위피어에 전송하고, 상기 하위피어의 연결정보는 연결된 하위피어들의 연결목록과, 연결된 각 하위피어의 세션수와 각 하위피어의 하위피어들의 연결정보를 포함한다. 한편,상기 트리구조의 가장 상단에 위치하는 피어는 자신의 세션수, 하위피어들의 연결정보를 상기 관리서버(40)에 전송한다.
따라서 관리서버(40)는 스트리밍의 트리구조에 포함되는 모든 피어의 연결정보들을 가지고 있다. 또한, 각 피어들은 자신의 하위에 연결된 모든 피어의 정보들을 가지고 있다.
상기와 같은 세션수와 연결정보를 이용하여, 각 피어는 최대 하위피어의 수보다 많은 하위피어를 연결하지 않는다. 또, 피어는 자신의 트리깊이가 최대 트리깊이와 같으면, 하위피어를 연결하지 않는다.
다음으로, 피어가 새로 연결되거나 변경됨에 따라 트리구조가 변경되고 연결정보가 변경되는 것을 설명한다.
만일 특정 트리에서 특정 피어가 비정상 종료되거나 또는 상위 피어의 세션의 수의 크기에 의하여 순서가 변경 또는 이동 되는 경우, 이때 변경되는 트리의 가장 상위의 피어가 연결정보를 모든 하위의 트리(하위에 있는 모든 피어들)에게 전달하여 본인의 연결정보를 알리게 되고 피어들은 연결정보의 상대 위치정보 (상위 피어 +1)를 가지게 됩니다.
하위의 피어(들)를 가진 트리가 이동하는 경우, 관리서버(40)는 피어의 현재 깊이를 감안하여 최대 트리깊이를 넘지 않는 연결가능한 피어들의 정보만을 주어 연결할 수 있게 한다. 즉, 연결되는 피어는 연결되는 트리의 깊이를 알고 있으며, 연결 즉시 그 하단의 모든 피어들에게 자신의 트리깊이를 전달 시킨다.
따라서 처음 연결하는 피어의 경우는 가장 하위 피어를 제외한 어느 곳에나 연결가능하게 된다.
구체적으로 하위피어의 수 또는 트리깊이를 제한하는 방법은 다음과 같다.
먼저, 스트리밍의 트리구조에 참여하지 않는 피어가 트리구조에 참여하고자 관리서버(40)에 참여목록을 요청하는 경우를 설명한다. 이 경우, 관리서버(40)는 참여목록에 있는 피어 중에서 그 피어의 하위피어의 수 또는 트리깊이가 최대 하위피어의 수 또는 최대 트리깊이와 같으면, 그 피어를 제외한 나머지 피어들만 참여하지 않는 피어에게 전송한다.
트리구조를 주기적으로 변경하는 경우를 설명한다.
첫 번째의 경우인 자신의 상위피어와 자신과의 세션수를 비교하는 경우이다. 이때, 자신의 상위피어의 상위피어가 최대 하위피어의 수와 같은 하위피어의 수를 가지면, 재연결하지 않는다. 자신의 상위피어의 상위피어에 연결하면 하위피어의 수가 최대 하위피어의 수를 초과하기 때문이다.
두 번째의 경우인 자신의 하위피어 사이의 세션수를 비교는 경우이다. 이때, 세션수가 작은 하위피어의 트리깊이가 최대 트리깊이와 같으면, 재연결하지 않는다. 세션수가 작은 하위피어에 큰 하위피어를 연결하면 트리깊이가 최대 트리깊이보다 커지기 때문이다.
다음으로, 콘텐츠를 수신하는 모든 피어가 동일한 시간에 콘텐츠를 시청(또는 청취)하는 방식을 설명한다.
앞서 본 바와 같이, P2P방식의 라이브 방송(또는 그리드 방송)은 사용자(또는 피어)간의 재전송으로 인해 지연(Delay)이 발생한다. 따라서 모든 피어가 상위 피어로부터 전송 받는 즉시 재생(시청 또는 청취)을 시작하면, 트리구조에서 상단과 하단에 있는 피어들은 동일한 내용을 각기 재생하는 시간이 다르게 된다. 즉, 트리구조의 상단에 있는 피어들이 트리구조의 하단에 있는 피어들에 비해 동일한 시간대의 콘텐츠 내용을 더 앞서 재생한다.
상기와 같은 형태의 라이브 인터넷 방송은 구현하기가 간단하므로, TV 방송을 재전송하는 경우, 또는 방송이 지연되도 큰 지장이 없는 단순 방송 등에 사용될 수 있다. 한편, 트리구조가 커지면 최상단의 피어와 최하단의 피어간에 트리 깊이의 차이가 많이 나기 때문에, 두 피어간의 지연시간이 매우 커지게 된다.
보다 바람직하게는, 모든 피어가 스트리밍 서버에서 전송해주는 시각부터 일정시간의 지연을 두고 재생하여, 동일한 시각에 동일한 콘텐츠 내용을 재생할 수 있다. 구체적으로, 상기 관리서버(40)는 최대 지연시간을 입력받아 저장하고, 상기 피어(51)는 상기 관리서버(40)로부터 상기 최대 지연시간을 수신하여, 수신된 상기 콘텐츠를 콘텐츠 스트리밍 시각에 비해 상기 최대 지연시간 후에 콘텐츠를 플레이한다. 즉, 스트리밍 서버(30)와 각 피어(51)간에는 최대 지연시간 만큼 지연이 되지만, 각 피어(51)간에는 지연되는 차이가 없어진다.
상기와 같이, 각 피어가 동시에 재생하는 라이브 인터넷 방송은 사용자간 동일 화면을 시청하게 함으로써, 동시간 채팅이나 교육 등의 목적으로 사용하기 적합하다. 이 방식은 피어간 전송 지연으로 인해 트리구조가 일정 깊이 이상으로 커질 수 없다. 지연허용의 시간은 서비스 사업자의 정책에 따라 결정되며, 지정된 지연 허용 시간이 커지면 트리의 단계도 함께 커지게 된다. 이 방식은 모든 피어가 동일한 영상을 봄으로써 인터랙티브 방송이 가능하다.
앞서 본 바와 같이 트리가 커지면 최상단 피어와 최하단 피어간의 지연시간이 늘어나므로, 트리가 일정한 크기로 제한되어져야 한다. 즉, 모든 피어는 최대 지연시간 이전에 콘텐츠를 전송 받어야 한다.
이를 구현하는 방식은 최대 트리깊이를 제한하는 방식과 각 피어에서의 콘텐츠 버퍼링의 양을 검사하는 방식이 있다. 최대 트리깊이를 제한하는 방식은 앞서 설명한 바와 같다. 후자의 방식은 도 5를 참조하여 설명한다.
도 5에서 보는 바와 같이, 스트리밍 서버(30)에 3개의 피어(51)가 각각 연속적으로 연결되어 있다고 가정한다. 또, 서버에서 피어 A, 또, 각 피어간의 스트리밍 시간을 △t라고 가정한다. 또, 최대 지연시간을 3△t라고 가정한다.
스트리밍 서버(30)가 시간 t1에 콘텐츠의 T1부분부터 전송하면, 시간 t1 + △t일때 피어 A는 콘텐츠의 T1부분을 수신한다. 그러나 지연시간이 3△t이므로, 피어 A는 시간 t1 + 3△t까지 기다린다. 그동안, 피어 A는 서버(30)에서 전송하는 콘텐츠를 계속 수신하여 버퍼링에 저장한다. 예를 들면, 피어 A는 서버(30)로부터 시간 t1 + △t에 보내지는 콘텐츠의 T1 + △t부분을 시간 t1 + 2△t에 받고, 서버(30)로부터 시간 t1 + 2△t에 보내지는 콘텐츠의 T1 + 2△t부분을 시간 t1 + 3△t에 받는다. 따라서 피어 A는 시간 t1 + 3△t에 콘텐츠의 T1부분을 재생할 때, 콘텐츠의 T1 + 2△t부분까지 수신하여 버퍼링에 저장한다.
마찬가지로, 피어 B는 시간 t1 + 2△t에서 콘텐츠의 T1부분을 최초로 수신하고, 시간 t1 + 3△t에 콘텐츠의 T1부분을 재생할 때, 콘텐츠의 T1 + △t부분까지 수신하여 버퍼링에 저장한다.
피어 C는 시간 t1 + 3△t에 콘텐츠의 T1부분을 수신하자마자 재생한다.
즉, 도 5의 예제에서 보는 바와 같이, 어느 한 피어(51)가 앞으로 재생할 콘 텐츠가 버퍼링에 있으면, 이 피어(51)는 최대 지연시간 이전에 스트리밍을 수신하므로, 하위피어를 가질 수 있다. 그러나 피어가 재생할 콘텐츠가 버퍼링에 없다면, 이 피어는 더 이상 하위피어를 연결하지 말아야 한다.
따라서 바람직하게는, 피어는 미래에 재생할 콘텐츠가 버퍼링에 없거나 최소 버퍼링의 양보다 적으면, 하위피어를 연결하지 않는다. 더 바람직하게는, 최소 버퍼링의 양은 하위피어로의 전송속도에 따라 정해진다. 즉, 하위피어로 전송하여 하위피어가 재생할 때까지의 시간, 즉, 하위피어까지의 지연시간 △t만큼의 양을 버퍼링에 가지고 있어야 한다.
하지만, 실제로 하위피어까지의 지연시간 △t(또는 하위피어로의 전송속도)는 네트워크의 상황 등에 따라 변화되므로, 관리자의 입력에 의해 임의로 정해진 지연시간을 사용하는 것이 바람직하다.
다음으로, 트리구조에 참여하였던 피어가 중도에 탈퇴 또는 탈락하는 경우 피어들이 재연결하는 과정과 트리간의 병합하는 방법을 설명한다.
하나의 피어가 탈퇴하면 상기 피어에 직접 연결된 피어들은 트리구조에서 이탈된다. 이탈된 피어는 상위피어로서 연결할 다른 피어를 찾아야 한다. 바람직하게는, 이탈된 피어는 관리서버에 참여목록을 요청하여 참여목록에 속하는 피어 중 자신과 자신의 하위에 위치하는 피어를 제외한 피어 중 하나를 상위피어로 선정한다. 이때, 선정하는 방법은 앞서 설명한 참여하지 않는 피어가 참여할 때 상위피어를 선정하는 방법과 같은 방법을 이용한다.
한편, 스트리밍 서버에 직접 연결된 피어들은 자신의 하위에 있는 피어들과 함께 하나의 트리구조를 형성한다. 따라서 스트리밍 서버에 직접 연결된 피어의 수만큼 트리구조가 형성된다. 그런데 중도에 탈락되거나 탈퇴하는 피어가 많아지면 트리구조 내에 포함되어 있는 피어의 수가 일정한 개수(이하 최소 노드수)이하로 떨어지면 다른 트리에 병합한다.
즉, 상기 관리서버(40)는 트리구조의 최상단(root)에 있는 피어의 모든 하위노드의 개수가 최소 노드수 이하이면, 상기 피어에게 상기 스트리밍 서버에 직접 연결된 다른 피어의 하위피어로서 재연결하도록 명령한다. 이때 관리서버(40)는 연결할 다른 피어의 정보도 함께 전송한다. 명령을 받은 최상단에 있는 피어는 관리서버(40)로부터 수신한 피어에 재연결한다.
다음으로, 본 발명의 일실시예에 따른 P2P방식의 인터넷 라이브 방송 서비스 방법을 도 6을 참조하여 설명한다.
상기 인터넷 라이브 방송 서비스 방법은 인터넷 상에서 콘텐츠를 스트리밍하는 스트리밍 서버(30), 상기 콘텐츠의 스트리밍을 트리구조(50)의 P2P방식으로 수신 또는 중계하는 다수의 피어(51), 상기 스트리밍의 트리구조에 참여하는 피어를 참여목록으로 저장하여 관리하는 관리서버(40)를 이용한다.
도 6a에서 보는 바와 같이, 상기 인터넷 라이브 방송 서비스 방법은 (a) 상기 스트리밍의 트리구조에 참여하지 않는 피어는 상기 관리서버에 참여목록을 요청하여 수신하고, 상기 참여목록에 속하는 하나의 피어를 자신의 상위피어로서 연결 하는 단계(S10); (b) 상기 피어는 수신된 콘텐츠를 재생시키는 단계(S20); (c) 상기 스트리밍의 트리구조에 참여하는 피어는 자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누어 세션수를 구하는 단계(S30); (d) 주기적으로, 각 피어는 상위피어 또는 하위피어의 세션수를 비교하여, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 부분적으로 재연결하는 단계(S40)로 나뉜다.
콘텐츠 재생은 (a)단계 이후에 콘텐츠 버퍼링이 되면 즉시 시행됩니다.
특히, 도 6b와 같이, 상기 (a)단계는, (a1) 상기 스트리밍의 트리구조에 참여하지 않는 피어는 상기 관리서버에 참여목록을 요청하여 수신하는 단계(S11); (a2) 상기 참여하지 않는 피어는 수신한 상기 참여목록에 속하는 모든 피어에 콘텐츠 요청 메시지를 보내는 단계(S12); (a3) 상기 참여하지 않는 피어는 가장 먼저 응답하는 피어를 자신의 상위피어로서 연결하는 단계(S13); (a4) 상기 참여목록에서 상위피어를 정할 수 없으면 상기 스트리밍 서버를 상위피어로 정하는 단계(S14)로 나뉜다.
또, 상기 (c)단계는, 자신의 상위피어와 자신과의 세션수를 비교하여, 자신의 세션수가 더 크면 자신의 상위피어의 상위피어를 자신의 상위피어로서 재연결하고, 자신의 하위피어 사이의 세션수를 비교하여, 세션수가 작은 하위피어에 세션수가 큰 하위피어를 상위피어로서 연결하도록 명령한다.
상기 (b)단계는, 상기 피어는 상기 관리서버로부터 상기 최대 지연시간을 수신하여, 수신된 상기 콘텐츠를 콘텐츠 스트리밍 시각에 비해 상기 지연시간 후에 콘텐츠를 플레이(또는 재생)한다.
상기 P2P방식의 인터넷 라이브 방송 서비스 방법에서 설명되지 않은 부분은 앞서 설명된 P2P방식의 인터넷 라이브 방송 서비스 시스템에 대한 설명을 참고한다.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
본 발명은 다수의 피어에 콘텐츠를 P2P방식으로 스트리밍하되, 상기 P2P방식의 스트리밍을 트리구조로 형성하는 P2P방식의 인터넷 라이브 방송 서비스 시스템을 개발하는 분야에 적용이 가능하다. 특히, 본 발명은 서버의 영상 시작으로부터 정해진 일정 시간 지연을 두고서 모든 피어가 동일한 화면을 시청해야 하는 동시간 채팅이나 교육 등의 목적으로 사용하는 시스템에 적합하다.
도 1은 종래의 기술에 따른 실시간 인터넷 방송 서비스 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 P2P방식의 인터넷 라이브 방송 서비스 시스템의 구성을 도시한 도면이다.
도 3은 세션수에 의한 다양한 스트리밍의 트리구조를 비교하는 도면이다.
도 4는 본 발명의 일실시예에 따른 P2P방식의 인터넷 라이브 방송 서비스 시스템에서 세션수에 의해 각 피어가 재연결을 하는 단계를 설명하는 도면이다.
도 5는 본 발명의 일실시예에 따른 P2P방식의 인터넷 라이브 방송 서비스 시스템에서 버퍼링의 양을 이용하여 트리의 크기를 제한하는 방식을 설명하는 도면이다.
도 6은 본 발명의 일실시예에 따른 P2P방식의 인터넷 라이브 방송 서비스 방 법을 설명하는 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
30 : 스트리밍 서버 40 : 관리서버
50 : 스트리밍의 트리구조 51 : 피어

Claims (17)

  1. 인터넷 상에서 콘텐츠를 스트리밍하는 스트리밍 서버;
    상기 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 수신 또는 중계하는 다수의 피어를 포함하고,
    상기 각 피어는,
    자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누어 세션수를 구하고, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 상기 트리구조를 형성하되,
    주기적으로, 자신, 자신과 직접 연결된 상위계층의 피어(이하 상위피어), 또는 자신과 직접 연결된 하위계층의 피어(이하 하위피어)의 세션수를 비교하여, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 부분적으로 재연결하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  2. 제 1항에 있어서, 상기 각 피어는,
    자신의 상위피어와 자신과의 세션수를 비교하여, 자신의 세션수가 더 크면 자신의 상위피어의 상위피어를 자신의 상위피어로서 재연결하고,
    자신의 하위피어 사이의 세션수를 비교하여, 세션수가 작은 하위피어에 세션수가 큰 하위피어를 상위피어로서 연결하도록 명령하는 것을 특징으로 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  3. 제 1항에 있어서, 상기 피어는,
    자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누고, 상기 나눈 값보다 크거나 같은 최소 정수를 세션수로 정하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  4. 제 2항에 있어서,
    상기 스트리밍의 트리구조에 참여하는 피어(이하 참여피어)를 참여목록으로 저장하여 관리하는 관리서버를 더 포함하고,
    상기 스트리밍의 트리구조에 참여하지 않는 피어(이하 미참여 피어)는 상기 관리서버에 참여목록을 요청하여 수신하고, 상기 참여목록에 속하는 하나의 피어를 자신의 상위피어로서 연결하고, 자신을 참여목록에 등록하도록 관리서버에 요청하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  5. 제 4항에 있어서, 상기 미참여 피어는,
    수신한 상기 참여목록에 속하는 모든 피어에 콘텐츠 요청 메시지를 보내고, 가장 먼저 응답하는 피어를 자신의 상위피어로서 정하거나, 상기 참여목록에서 상위피어를 정할 수 없으면 상기 스트리밍 서버를 상위피어로 정하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  6. 제 4항에 있어서,
    상기 참여 피어는 자신의 세션수, 하위피어들의 연결정보를 자신의 상위피어에 전송하고, 상기 하위피어의 연결정보는 연결된 하위피어들의 연결목록과, 연결된 각 하위피어의 세션수와 각 하위피어의 하위피어들의 연결정보를 포함하고,
    상기 트리구조의 가장 상단에 위치하는 피어는 자신의 세션수, 하위피어들의 연결정보를 상기 관리서버에 전송하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  7. 제 6항에 있어서, 상기 참여 피어는,
    최대 하위피어의 수보다 많은 하위피어를 연결하지 않는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  8. 제 6항에 있어서, 상기 참여 피어는,
    자신의 트리깊이가 최대 트리깊이와 같으면, 하위피어를 연결하지 않는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  9. 제 6항에 있어서, 상기 참여 피어는,
    미래에 재생할 콘텐츠가 버퍼링에 없거나 최소 버퍼링의 양보다 적으면, 하위피어를 연결하지 않는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  10. 제 8항 또는 제 9항에 있어서,
    상기 관리서버는 최대 지연시간을 입력받아 저장하고,
    상기 참여 피어는 상기 관리서버로부터 상기 최대 지연시간을 수신하여, 수신된 상기 콘텐츠를 콘텐츠 스트리밍 시각에 비해 상기 최대 지연시간 후에 콘텐츠를 플레이하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  11. 제 1항에 있어서,
    상기 스트리밍의 트리구조에서 최대 트리깊이에 위치하지 않으면서 최하단(leaf)에 있는 피어는 자신의 세션수를 1로 정하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  12. 제 4항에 있어서, 상기 관리서버는,
    트리구조의 최상단(root)에 있는 피어의 모든 하위노드의 개수가 최소 노드수 이하이면, 상기 트리구조의 최상단(root)에 있는 피어에게 상기 스트리밍 서버에 직접 연결된 다른 피어의 하위피어로서 재연결하도록 명령하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 시스템.
  13. 인터넷 상에서 콘텐츠를 스트리밍하는 스트리밍 서버, 상기 콘텐츠의 스트리밍을 트리구조의 P2P방식으로 수신 또는 중계하는 다수의 피어, 상기 스트리밍의 트리구조에 참여하는 피어(이하 참여 피어)를 참여목록으로 저장하여 관리하는 관리서버를 이용하여, P2P방식의 인터넷 라이브 방송 서비스 방법에 있어서,
    (a) 상기 스트리밍의 트리구조에 참여하지 않는 피어(이하 미참여 피어)는 상기 관리서버에 참여목록을 요청하여 수신하고, 상기 참여목록에 속하는 하나의 피어를 자신의 상위피어로서 연결하는 단계;
    (b) 상기 참여 피어는 수신된 콘텐츠를 재생시키는 단계;
    (c) 상기 참여 피어는 자신의 하위피어로의 전송속도를 상기 스트리밍 서버의 스트리밍 속도로 나누어 세션수를 구하는 단계;
    (d) 주기적으로, 각 참여 피어는 자신, 자신과 직접 연결된 상위계층의 피어(이하 상위피어), 또는 자신과 직접 연결된 하위계층의 피어(이하 하위피어)의 세션수를 비교하여, 세션수가 큰 피어가 세션수가 작은 피어의 상위피어가 되도록 부분적으로 재연결하는 단계를 포함하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 방법.
  14. 제 13항에 있어서, 상기 (a)단계는,
    (a1) 상기 미참여 피어는 상기 관리서버에 참여목록을 요청하여 수신하는 단계;
    (a2) 상기 미참여 피어는 수신한 상기 참여목록에 속하는 모든 피어에 콘텐츠 요청 메시지를 보내는 단계;
    (a3) 상기 미참여 피어는 가장 먼저 응답하는 피어를 자신의 상위피어로서 연결하는 단계;
    (a4) 상기 참여목록에서 상위피어를 정할 수 없으면 상기 스트리밍 서버를 상위피어로 정하는 단계를 포함하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 방법.
  15. 제 13항에 있어서, 상기 (c)단계에서, 상기 참여 피어는,
    자신의 상위피어와 자신과의 세션수를 비교하여, 자신의 세션수가 더 크면 자신의 상위피어의 상위피어를 자신의 상위피어로서 재연결하고,
    자신의 하위피어 사이의 세션수를 비교하여, 세션수가 작은 하위피어에 세션수가 큰 하위피어를 상위피어로서 연결하도록 명령하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 방법.
  16. 제 13항에 있어서, 상기 (b)단계는,
    상기 참여 피어는 상기 관리서버로부터 최대 지연시간을 수신하여, 수신된 상기 콘텐츠를 콘텐츠 스트리밍 시각에 비해 상기 최대 지연시간 후에 콘텐츠를 플레이하는 것을 특징으로 하는 P2P방식의 인터넷 라이브 방송 서비스 방법.
  17. 제 13항 내지 제 16항 중 어느 한 항의 P2P방식의 인터넷 라이브 방송 서비스 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR20080107058A 2008-10-30 2008-10-30 세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법 KR101027500B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20080107058A KR101027500B1 (ko) 2008-10-30 2008-10-30 세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법
JP2009234305A JP5724139B2 (ja) 2008-10-30 2009-10-08 セッション数によりp2pのツリー構造を形成するp2p方式のインターネットライブ放送サービスシステム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080107058A KR101027500B1 (ko) 2008-10-30 2008-10-30 세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20100048059A KR20100048059A (ko) 2010-05-11
KR101027500B1 true KR101027500B1 (ko) 2011-04-06

Family

ID=42274887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080107058A KR101027500B1 (ko) 2008-10-30 2008-10-30 세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법

Country Status (2)

Country Link
JP (1) JP5724139B2 (ko)
KR (1) KR101027500B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012169175A1 (ja) 2011-06-09 2012-12-13 パナソニック株式会社 通信端末、通信制御方法及びプログラム
JP5868735B2 (ja) * 2012-03-06 2016-02-24 日本放送協会 P2pネットワークサービスに用いる端末装置及びプログラム
JP6369024B2 (ja) * 2014-01-09 2018-08-08 富士通株式会社 映像配信システム及び映像配信システムにおいて使用されるノード装置
CN107295037B (zh) * 2016-03-31 2021-06-01 中移(苏州)软件技术有限公司 一种基于软件定义网络的直播对等网络构建方法和装置
KR101866964B1 (ko) * 2016-10-24 2018-07-23 주식회사 헤리트 스트리밍 미디어 중계 장치 및 그 방법
KR102579413B1 (ko) * 2017-10-23 2023-09-18 한국전자통신연구원 다수의 디스플레이 기기에 신속한 데이터 전달을 위한 디스플레이 기기의 연결 방법
CN108768680B (zh) * 2018-05-31 2020-12-01 东莞市华睿电子科技有限公司 一种赛事直播时的主播用户即时图像的推送方法
CN108768681B (zh) * 2018-05-31 2021-01-01 东莞市华睿电子科技有限公司 一种虚拟资源赠送引起的主播用户即时图像的显示方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006041784A (ja) * 2004-07-26 2006-02-09 Brother Ind Ltd 接続態様設定装置及び接続態様設定方法、並びに接続態様制御装置及び接続態様制御方法等

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4760231B2 (ja) * 2005-08-31 2011-08-31 ブラザー工業株式会社 コンテンツデータ配信システム、同システムにおける端末装置、及び、端末装置の動作プログラム
JP2007086484A (ja) * 2005-09-22 2007-04-05 Brother Ind Ltd コンテンツ配信システム及びコンテンツ配信方法並びにそれに用いる配信装置、端末装置及びそのプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006041784A (ja) * 2004-07-26 2006-02-09 Brother Ind Ltd 接続態様設定装置及び接続態様設定方法、並びに接続態様制御装置及び接続態様制御方法等

Also Published As

Publication number Publication date
JP5724139B2 (ja) 2015-05-27
KR20100048059A (ko) 2010-05-11
JP2010109976A (ja) 2010-05-13

Similar Documents

Publication Publication Date Title
KR101027500B1 (ko) 세션수에 의해 p2p의 트리구조를 형성하는 p2p방식 인터넷 라이브 방송 서비스 시스템 및 방법
US9325786B2 (en) Peer-to-peer interactive media-on-demand
JP6612355B2 (ja) クライアントノード、仮想ブロードキャストサーバーおよび方法
EP2053859B1 (en) A method and apparatus for reducing delay of media play
US8826349B2 (en) Multicast adaptive stream switching for delivery of over the top video content
KR101089562B1 (ko) 고화질 미디어 방송을 위한 피투피 라이브 스트리밍 시스템 및 방법
KR100813972B1 (ko) 컨텐츠 스트리밍 클라이언트 장치 및 방법, 그 방법을수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
US20130144936A1 (en) Method and System for Broadcasting Multimedia Data
JP4370995B2 (ja) 接続態様設定装置及び接続態様設定方法、並びに接続態様制御装置及び接続態様制御方法等
US20060098668A1 (en) Managing membership within a multicast group
KR20110026215A (ko) 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버
US9591069B2 (en) Peer-to-peer assist for live media streaming
JP2005244605A (ja) ストリーミングコンテンツ配信制御システム、プログラム及び該プログラムを格納した記録媒体
KR101252947B1 (ko) 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치
CN107659853B (zh) 一种自适应流媒体直播控制系统
JP5157351B2 (ja) 動画配信システム、加入者回線終端装置、動画配信方法、動画配信プログラム、及び記憶媒体
Meskovic et al. Content delivery architectures for live video streaming: hybrid cdn-p2p as the best option
Muscat et al. A Hybrid CDN-P2P Architecture for Live Video Streaming
KR100804075B1 (ko) 분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템
CN101286943B (zh) 一种网络电视业务的控制方法及网络电视业务系统
US10356482B2 (en) Content distribution system and method
Ketmaneechairat et al. Smart buffer management for different start video broadcasting
KR100741885B1 (ko) 다진 트리 구조를 이용한 응용계층 멀티캐스트 그룹 구성방법
JP2006080659A (ja) 情報配信システム、処理装置、処理方法及び処理プログラム等
KR101914105B1 (ko) P2p 기반의 스트리밍 서비스에서 버퍼링을 수행하는 시스템 및 방법 그리고 클라이언트에서 버퍼링을 처리하는 어플리케이션을 배포하는 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150313

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160325

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 9