KR101097998B1 - 실시간 방송 시스템 및 그 방법 - Google Patents

실시간 방송 시스템 및 그 방법 Download PDF

Info

Publication number
KR101097998B1
KR101097998B1 KR1020090051096A KR20090051096A KR101097998B1 KR 101097998 B1 KR101097998 B1 KR 101097998B1 KR 1020090051096 A KR1020090051096 A KR 1020090051096A KR 20090051096 A KR20090051096 A KR 20090051096A KR 101097998 B1 KR101097998 B1 KR 101097998B1
Authority
KR
South Korea
Prior art keywords
peer
streaming
parent
data
peers
Prior art date
Application number
KR1020090051096A
Other languages
English (en)
Other versions
KR20100132330A (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 KR1020090051096A priority Critical patent/KR101097998B1/ko
Publication of KR20100132330A publication Critical patent/KR20100132330A/ko
Application granted granted Critical
Publication of KR101097998B1 publication Critical patent/KR101097998B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/02Arrangements for relaying broadcast information
    • H04H20/08Arrangements for relaying broadcast information among terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client

Abstract

본 발명은 실시간 방송 시스템에 관한 것으로, 멀티미디어 콘텐츠를 네트워크에 연결되어 있는 피어를 통해 스트리밍 방송하는 실시간 방송 시스템에 있어서, 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하고 있는 피어 중 데이터 전송 상태를 고려하여 선택된 적어도 하나의 부모 피어로부터 특정 수의 나머지 정보를 이용한 시퀀스 번호에 대응되게 상기 멀티미디어 콘텐츠를 구성하는 가변데이터를 각각 수신하는 스트리밍 페처; 및 적어도 하나의 부모 피어로부터 각각 수신된 가변데이터를 결합하여 상기 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하는 플레이어를 포함하는 실시간 방송 시스템을 제공한다.

Description

실시간 방송 시스템 및 그 방법{System and Method for live streaming service}
본 발명은 실시간 방송 시스템 및 방법에 관한 것으로서, 개인에 의해 제작된 멀티미디어 콘텐츠를 스트리밍 전송 기술을 이용해 다수의 개인에게 방송하는 실시간 방송에 관한 것이다.
보다 구체적으로는, 네트워크 상에서 실시간으로 다수의 피어로부터 데이터 스트림을 전송받음과 동시에, 다수의 피어에게 데이터를 릴레이 전송하는 Pull-Push Mesh Type의 P2P 실시간 방송 시스템 및 그 방법에 관한 것이다.
최근 인터넷 관련 기술의 빠른 발전으로 인해, 생동감 있는 오디오와 비디오들이 결합한 멀티미디어 콘텐츠를 온라인 검색을 통해 보고 들을 수 있도록 해주는 인터넷 서비스가 가능해졌다. 또한, 용량이 큰 오디오 데이터나 비디오 데이터를 실행시키는 데 있어서 한꺼번에 다운로드하여 실행하는 것이 아닌, 여러 개의 파일로 나누어 연이어 실시간 전송하는 스트리밍 서비스에 대한 인터넷 사용자의 이용이 증가하고 있다.
이와 같이, 인터넷 사용자 개인에 의해 제작된 멀티미디어 콘텐츠를 실시간 방송하기 위한 스트리밍 기술이 널리 이용되고 있으나, 네트워크를 통해 연결된 시청자들에게 보다 원활하게 실시간 방송을 제공하기 위해, 데이터 전송시 정확성과 전송속도 등이 개선된 스트리밍 방식이 요구되고 있다.
본 발명이 이루고자 하는 기술적 과제는 방송자 클라이언트와 시청자 클라이언트 간, 혹은 서로 다른 시청자 클라이언트 간의 Pull-Push Mesh Type 전송방식을 통하여 네트워크 트래픽 발생을 방지하면서도 네트워크 자원을 효율적으로 이용하는 실시간 방송 시스템 및 그 방법을 제공하는 데 있다.
또한, 본 발명이 이루고자 하는 기술적 과제는 데이터 스트림 전송시 발생할 수 있는 버퍼링에 대비하여 주변 피어들에 대한 정보를 주기적으로 업데이트하고, 버퍼링 발생이 예상되면 즉시 새로운 최적의 피어를 선택하여, 전송을 요청하는 실시간 방송 시스템 및 그 방법을 제공하는 데 있다.
상기 과제를 해결하기 위해 본 발명은 멀티미디어 콘텐츠를 네트워크에 연결되어 있는 피어를 통해 스트리밍 방송하는 실시간 방송 시스템에 있어서, 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하고 있는 피어 중 데이터 전송 상태를 고려하여 선택된 적어도 하나의 부모 피어로부터 특정 수의 나머지 정보를 이용한 시퀀스 번호에 대응되게 상기 멀티미디어 콘텐츠를 구성하는 가변데이터를 각각 수신하는 스트리밍 페처; 및 적어도 하나의 부모 피어로부터 각각 수신된 가변데이터를 결합하여 상기 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하는 플레이어를 포함하는 실시간 방송 시스템을 제공한다.
상기 과제를 해결하기 위해 본 발명은 멀티미디어 콘텐츠를 네트워크에 연결 되어 있는 피어를 통해 스트리밍 방송하는 실시간 방송 방법에 있어서, 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하고 있는 피어 중 데이터 전송 상태를 고려하여 적어도 하나의 피어를 부모 피어로 선택하는 단계; 선택된 부모 피어로부터 특정 수의 나머지 정보를 이용한 시퀀스 번호에 대응되게 상기 멀티미디어 콘텐츠를 구성하는 가변데이터를 각각 수신하는 단계; 및 적어도 하나의 부모 피어로부터 각각 수신된 가변데이터를 결합하여 상기 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하는 단계를 포함하는 실시간 방송 방법을 제공한다.
본 발명의 실시예에 의하면, 방송 채널을 시청하는 시청자가 Pull-Push Mesh 구조의 P2P 방식으로 방송 데이터를 전송받음으로써, 네트워크 자원을 효율적으로 이용하여 다수의 주변 피어로부터 원하는 데이터 스트림을 실시간 전송받을 수 있고, 방송 관리 서버의 부담을 감소시킬 수 있다.
또한, 실제 전송속도 측정을 통해 신뢰성있는 최적의 피어를 선택하여 데이터 스트림을 전송받고, 전송중에도 전송속도 측정을 통해 버퍼링을 감지함으로써, P2P 서비스의 효율을 향상시키는 효과를 기대할 수 있다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설 명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 관례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 본 발명의 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
본 발명은 네트워크 자원을 효율적으로 이용하는 Mesh-type 전송 방식에 Pull-Push 방식을 적용하여 컨트롤 메시지를 감소시키는 Pull-Push Mesh Type 전송방식을 이용하고자 한다. Pull-Push Mesh Type 전송방식은 실제 전송속도 측정을 통한 신뢰성있는 피어를 선택하여 스트림을 전송받고, 데이터 스트림 전송중 가상 전송속도 측정을 통해 버퍼링을 감지하여 버퍼링이 발생한 피어를 다른 최적의 피어로 교체한다. 또한, Pull-Push Mesh Type 전송방식은 데이터 스트림 전송시 대기시간을 최소화하기 위하여 데이터 범위, 뎁스 정보, TTL 등의 정보를 주기적으로 갱신하며, P2P 효율 향상을 위해 네트워크 용량에 따라 한개의 피어가 동적으로 여러개의 스트림을 전송할 수 있다.
일반적으로 Mesh-type 전송 방식은 다수의 피어들로부터 데이터를 전송받기 위하여 사용가능한 데이터 범위와 필요한 데이터 범위에 대한 메시지를 주고받는 과정을 지속적으로 반복한다. 이 과정에서 각 피어들의 전송속도 및 데이터의 지연 최소화 등이 고려되면, 전송 요청을 적절히 분배시키기 위한 메시지 교환이 지속적으로 발생할 수 밖에 없어, 과도한 트래픽 문제가 발생할 수 있다.
그러나 Mesh-type 전송 방식에 Pull-Push 방식을 적용함으로써, 사용가능한 데이터 범위와 필요한 데이터 범위에 대한 메시지를 주고받는 대신, 다수의 피어들에게 현재 필요한 데이터의 초기 시퀀스를 전송하고(pull), 상기 피어들로부터 해당 데이터에 해당하는 서브 스트림을 전송(push)받는다. 이에 따라, Pull-Push Mesh Type 전송방식에서는 데이터 전송을 위한 메시지 교환이 거의 없어, 네트워크를 효율적으로 이용할 수 있다. 다만, Pull-Push Mesh Type 전송방식의 경우, 각 피어들의 사용가능한 데이터 범위에 대한 정보가 없기 때문에 특정 피어에서 문제가 발생하거나 전송속도가 느려지는 경우에 대비하여 현재의 전송속도를 예측할 수 있는 로직이 보완될 필요가 있다.
명세서 전체에서 방송자 클라이언트는 방송하고자 하는 멀티미디어 콘텐츠에 대한 방송 채널을 개설하고, 인코딩된 방송 데이터를 가변데이터로 나누어 전송하는 주체이다. 또한, 시청자 클라이언트는 상기 멀티미디어 콘텐츠를 재생하는 주체를 말한다.
명세서 전체에서 이웃 피어는 상기 멀티미디어 콘텐츠를 재생하는 특정 피어(또는 특정 시청자 클라이언트)와 접속된 피어를 말한다. 상기 이웃 피어에는 부모 피어와 자식 피어가 있을 수 있다.
부모 피어란 상기 멀티미디어 콘텐츠의 데이터 스트림을 전송하는 주체를 말 하고, 자식 피어는 멀티미디어 콘텐츠의 데이터 스트림을 수신하는 주체를 말한다. 상기 부모 피어와 자식 피어는 상대적인 개념으로, 예를 들어, 특정 피어가 제1피어에게 상기 멀티미디어 콘텐츠 데이터 스트림을 전송하고, 제2피어로부터 멀티미디어 콘텐츠를 전송받는 경우, 상기 특정 피어는 제1피어와의 관계에서는 부모피어가 되고, 상기 제2피어와의 관계에서는 자식 피어가 될 수 있다.
명세서 전체에서 후보 피어는 다른 시청자 클라이언트에 데이터 스트림을 전송하는 데 있어, 상기 이웃 피어 중에서 데이터 범위, 대역폭(전송속도), 뎁스 정보 등의 항목을 고려하여 추출된 후보군을 가리킨다.
또한, 피어 리스트는 상기 이웃 피어, 후보 피어 등 피어들에 대한 정보를 포함하여 구성한 리스트를 가리킨다.
도 1은 본 발명에 따른 실시간 방송 시스템의 일 실시예를 보여주는 도면이다.
도 1에 도시된 바와 같이, 본 발명은 네트워크(100)로 연결된 다수의 방송자 클라이언트(200), 방송 관리 서버(300) 및 다수의 시청자 클라이언트(400)로 구성된다.
본 발명에 의한 실시간 방송 시스템의 일 실시예로서, 먼저 다수의 방송자 클라이언트(200)는 방송하고자 하는 멀티미디어 콘텐츠에 대한 방송 채널 정보를 작성하여 방송을 시작함과 동시에, 방송 채널을 개설한다. 방송자 클라이언트(200)는 상기 다수의 시청자 클라이언트(400)의 상기 멀티미디어 콘텐츠에 대한 방송 데이터 전송 요청에 따라, 인코딩된 상기 방송 데이터를 가변데이터로 나누어 상기 방송 관리 서버(300) 혹은 다수의 시청자 클라이언트(400)에 전송한다.
여기서, 상기 방송자 클라이언트(200)는 최초 방송 시작시에는 상기 인코딩된 방송 데이터를 상기 방송 관리 서버(300)에 전송하며, 이후 상기 시청자 클라이언트(400)로부터 상기 방송 데이터에 대한 전송 요청이 있으면 상기 시청자 클라이언트(400)에게 전송하기도 한다.
다음으로, 방송 관리 서버(300)는 상기 방송자 클라이언트(200)와 상기 네트워크(100)를 통해 연결되어 있으며, 상기 방송 채널을 시청하고 있는 다수의 시청자 클라이언트(400) 중에서 상기 방송 데이터의 전송이 가능한 이웃 피어 리스트 및 방송 채널 정보를 업데이트하여 저장한다. 또한, 상기 방송 관리 서버(300)는 상기 방송 채널에 대한 시청을 요청하는 시청자 클라이언트(400)에게 방송 채널 정보를 제공할 수도 있다. 또한, 방송 관리 서버(300)는 경우에 따라 상기 시청자 클라이언트(400)에게 이웃 피어 리스트를 제공할 수 있다.
이웃 피어 리스트 및 방송 채널 정보를 이용하여 상기 시청자 클라이언트(400)는 상기 방송 관리 서버(300)를 거치지 않고 다른 시청자 클라이언트를 직접 선택하여 상기 방송 데이터를 전송받을 수 있다.
그리고, 다수의 시청자 클라이언트(400)는 이웃 피어 리스트 및 방송 채널 정보를 토대로 상기 방송 데이터의 실시간 전송이 가능한 후보 피어를 선별할 수 있다. 상기 선별된 후보 피어는 후보 피어 리스트로 작성되며, 상기 시청자 클라이언트(400)가 상기 후보 피어 리스트를 참조하여 적어도 하나의 부모 피어를 선택하게 된다. 이어, 상기 시청자 클라이언트(400)는 상기 선택된 적어도 하나의 부모 피어에게 현재 필요한 데이터의 초기 시퀀스 번호를 할당하여 요청하고, 상기 부모 피어로부터 상기 초기 시퀀스 번호에 해당하는 데이터를 전송받으면, 이를 멀티미디어 콘텐츠로 디코딩하여 방송한다.또한, 상기 시청자 클라이언트(400)는 상기 적어도 하나의 부모 피어를 선택함에 있어, 상기 이웃 피어에 포함된 각 피어의 대역폭, 데이터 범위, 뎁스 정보, TTL 등의 조건을 확인한다. 상기 시청자 클라이언트(400)는 상기 이웃 피어 리스트에서 최소 요구 전송속도 이상의 대역폭을 가진 피어를 추출할 수 있다. 여기서, 상기 최소 요구 대역폭은 특정 스트림의 크기를 상기 특정 데이터 스트림과 그 다음 데이터 스트림의 전송 시작 시간의 차로 나누는 방식으로 계산된다. 이어, 상기 시청자 클라이언트(400)는 상기 최소 요구 대역폭 이상의 대역폭을 가진 피어 중 상기 시청자 클라이언트가 현재 필요한 데이터를 포함하는 데이터 범위를 가진 피어를 추출하고, 상기 필요한 데이터를 포함하는 데이터 범위를 가진 피어 중 뎁스 정보가 상기 시청자 클라이언트의 뎁스 정보보다 작은 피어를 추출하고, 상기 시청자 클라이언트보다 작은 뎁스 정보를 가진 피어의 업데이트 시간을 확인하여, 상기 업데이트 시간이 소정시간 내에 포함되는 피어를 추출한다. 그리고 상기 추출된 피어를 후보 피어에 포함하여, 후보 피어 리스트를 작성하고, 상기 후보 피어 리스트에서 적어도 하나의 부모 피어를 선택하여 상기 선택된 부모 피어로부터 상기 데이터를 전송받는다.
상기 시청자 클라이언트(400)는 상기 후보 피어 리스트에 포함된 각 피어의 뎁스 정보, 대역폭 등의 항목에 일정 비율을 부여하여 점수를 산정하고, 상기 점수에 따라 부모 피어를 선택할 수도 있다.
만약, 상기 데이터 전송 중, 상기 부모 피어 중 어느 하나(혹은 그 이상)에 버퍼링 발생이 예측되면, 상기 시청자 클라이언트(400)는 상기 후보 피어 리스트를 참조하여 상기 부모 피어를 대체할 새로운 부모 피어를 선택하고, 상기 새로운 부모 피어에 상기 데이터 스트림의 초기 시퀀스 번호를 전송한다. 상기 새로운 부모 피어는 상기 요청에 따라, 상기 시청자 클라이언트(400)에게 상기 초기 시퀀스에 해당하는 데이터 스트림을 이어 전송한다.
상기와 같은 데이터 전송 중 발생하는 버퍼링에 대비하여, 상기 시청자 클라이언트(400)는 소정시간마다 자신의 주변에 위치한 이웃 피어부터 다른 피어(상기 이웃 피어의 이웃 피어)들에 대한 개략적인 정보를 수집하여, 상기 이웃 피어 리스트 및 상기 후보 피어 리스트를 주기적으로 업데이트할 수 있다. 상기 개략적인 정보는 상기 이웃 피어가 가진 또다른 이웃 피어 리스트를 포함할 수 있다.상기 이웃 피어 리스트는, 상기 리스트에 대한 업데이트 번호와, 상기 리스트에 포함된 피어의 데이터 범위, 방송 관리 서버(300)와의 대역폭, 뎁스 정보, TTL, 최종 업데이트 시간 중 적어도 하나를 포함한다. 여기서, 상기 업데이트 번호는 상기 이웃 피어 리스트에 포함된 각 피어 정보의 업데이트에 대한 일련번호로서, 상기 일련번호에 따라 이미 처리된 메시지는 상기 이웃 피어 리스트에서 제거된다.시청자 클라이언트(400)는 이웃 피어들로부터 주기적으로 업데이트 메시지를 전송받는데, 여러 경로가 존재할 수 있으므로 이 과정에서 동일한 업데이트 메시지가 중복되어 수신될 수 있다. 따라서, 상기 업데이트 번호에 따라 이전에 이미 처리된 메시지가 중복되면 이는 삭제 처리되고, 새로운 업데이트 번호의 메시지가 수신되면 해당 피어에 대한 정보를 업데이트하게 된다.
상기 후보 피어 리스트는, 상기 리스트에 포함된 피어의 데이터 범위, 뎁스 정보, 자식 피어의 개수, 최종 업데이트 시간 중 적어도 하나를 포함할 수 있다.
여기서, 상기 뎁스 정보는 상기 시청자 클라이언트(400)가 방송 관리 서버(300)로부터 거쳐온 경로의 수를 의미한다.
또한, 상기 TTL(Time To Live)은 불필요한 네트워크 부하를 감소시키기 위한 값으로서 경로 상의 피어를 통과함에 따라 상기 업데이트 메시지를 생성하는 피어가 설정한 초기값으로부터 1씩 감소하며, TTL이 0인 값을 갖는 메시지는 더 이상 포워딩되지 않고 드롭된다.
상기 시청자 클라이언트(400)는 주변의 이웃 피어로부터 소정시간마다 정보를 수집하여 자신의 이웃 피어 리스트 및 후보 피어 리스트를 업데이트하는 과정에서, 상기 수집된 정보에 의해 업데이트된 이웃 피어 리스트에 포함된 피어와 그 뎁스 정보를 측정한다. 그리고, 상기 시청자 클라이언트(400)는 상기 방송 관리 서버(300)로부터 측정되는 상기 피어의 뎁스 정보 중 가장 작은 수치를 상기 피어 리스트에 기록하며, 상기 시청자 클라이언트(400) 자신의 뎁스 정보보다 더 큰 수치의 뎁스 정보를 나타내는 피어를 상기 피어 리스트에서 제거함으로써, 비효율적 데이터 전송을 방지한다.(상기 시청자 클라이언트(400)는 자신의 뎁스 정보보다 작은 수치의 뎁스 정보를 가진 이웃 피어로부터만 데이터를 전송받을 수 있다.)
또한, 상기 시청자 클라이언트(400)는 최종 업데이트 시간이 소정 시간 내인지를 확인하고, 소정 시간 내에 업데이트가 없었던 피어는 상기 피어 리스트에서 삭제한다.
도 2는 본 발명에 따른 실시간 방송 시스템 중 방송 관리 서버(300)의 구성을 나타낸 도면으로, 네트워크(100)에 연결된 로드 밸런서(310), 적어도 하나의 스트리밍 서버(320) 및 데이터베이스(330)로 구성된다.
상기 도 2에 따르면, 데이터베이스(330)는 상기 방송 채널을 시청하고 있는 다수의 시청자 클라이언트 중에서 상기 방송 데이터의 전송이 가능한 시청자 클라이언트의 위치 정보 및 상기 방송 채널 정보를 저장한다.
상기 로드 밸런서(310)는 네트워크의 부하상태를 고려하여 상기 적어도 하나의 스트리밍 서버 중 접속 가능한 스트리밍 서버(320)의 위치 정보를 상기 방송자 클라이언트(200)에게 제공할 수 있다. 상기 데이터베이스(330)에 저장된 정보를 바탕으로 이웃 피어 리스트 및 방송 채널 정보를 구성하기도 한다.
상기 적어도 하나의 스트리밍 서버(320)는 상기 방송자 클라이언트(200)로부터 네트워크(100)를 통해 전송된 상기 인코딩된 방송 데이터를 상기 다수의 시청자 클라이언트(400)에게 전송한다. 또한, 상기 스트리밍 서버(320)는 상기 로드 밸런서(310)가 구성한 이웃 피어 리스트 및 방송 채널 정보를 상기 다수의 시청자 클라이언트(400)에게 전송할 수도 있다.
즉, 어느 하나의 시청자 클라이언트로부터 상기 방송 채널에 대한 시청이 요청되면, 상기 로드 밸런서(310)는 상기 데이터베이스(330)에 저장된 정보를 바탕으로 이웃 피어 리스트 및 방송 채널 정보를 구성한다. 상기 이웃 피어 리스트 및 방송 채널 정보는 상기 적어도 하나의 스트리밍 서버(320)를 통해 상기 시청자 클라 이언트(400)에 제공된다.
도 3은 시청자 클라이언트(400)를 구성하는 모듈을 나타내는 도면으로, 후보피어 매니저(410), 멤버 업데이터(420), 스트리밍 페처(430), 스트리밍 매니저(440), 버퍼 매니저(450), 스트리밍 릴레이(460) 및 플레이어(470)으로 이루어져 있다.
스트리밍 페처(430)는 선택된 적어도 하나의 부모 피어로부터 멀티미디어 데이터의 스트림을 수신한다. 상기 선택된 적어도 하나의 부모 피어는 특정 수의 나머지 정보를 이용한 시퀀스 번호를 할당받는데, 상기 스트리밍 페처(430)는 상기 시퀀스 번호와 상기 가변데이터의 초기 시퀀스 번호가 대응되도록 상기 부모 피어로부터 데이터를 수신할 수 있다. 예를 들어, 상기 특정 수가 4이고, 부모 피어가 4개인 경우, 제1부모 피어로부터는 시퀀스 번호 1에 대응되는 가변데이터를, 제2부모 피어로부터는 시퀀스 번호 2에 대응되는 가변데이터를, 제3부모 피어로부터는 시퀀스 번호 3에 대응되는 가변데이터를, 제4부모 피어로부터는 시퀀스 번호 4에 대응되는 가변데이터를 수신할 수 있다. 시퀀스 번호 1에 대응되는 가변데이터라 함은 특정 시퀀스 번호를 4로 나눌 경우, 나머지가 1인 가변데이터를 의미할 수 있다. 예를 들어, 121, 125, 129..등이 시퀀스 번호 1에 대응되는 가변데이터가 될 수 있다.
상기 스트리밍 페처(430)는 상기 부모 피어로부터 상기 가변데이터를 수신하는 중에도, 지속적으로 상기 부모 피어의 가상 전송 대역폭을 측정하여, 상기 부모 피어의 버퍼링 상태를 체크할 수 있다.
또한, 상기 가변데이터 전송중 버퍼링이 발생하면, 상기 스트리밍 페처(430)는 상기 버퍼링 발생에 대해 스트리밍 매니저(440)에 통보한다. 상기 버퍼링은 가변데이터 전송의 실제 오류 발생 또는 오류 발생이 예상되는 상황을 포함할 수 있다.
버퍼링이 발생된 경우, 스트리밍 매니저(440)는 버퍼링 발생한 부모 피어를 대체하기 위해 후보 피어 매니저(410)에게 최종 후보 피어 리스트를 요청할 수 있다. 상기 최종 후보 리스트의 우선 순위에 근거하여 최적의 후보 피어가 결정된 경우, 상기 스트리밍 매니저(440)는 스트리밍 페처(430)가 상기 버퍼링이 발생된 부모 피어의 데이서 수신을 중단하고, 상기 결정된 최적의 후보 피어로부터 가변데이터를 전송받을 수 있도록 제어할 수 있다. 상기 결정된 최적의 부모 피어가 대체 부모 피어가 될 수 있다.
즉, 스트리밍 페처(430)는 상기 버퍼링이 발생된 부모 피어에 할당된 초기 시퀀스 번호에 대응되는 가변데이터를 대체 부모 피어로부터 이어 수신할 수 있다.
한편, 버퍼링 발생에 대한 상세한 설명은 후술하도록 하겠다.
다음은 최적의 후보 피어를 선별하는 과정에 대해 설명하도록 하겠다.
멤버 업데이터(420)는 이웃 피어로부터 상기 이웃 피어에 대한 정보를 수집하여 이웃 피어 리스트를 작성한다. 상기 이웃 피어에 대한 정보는 리스트에 포함된 이웃 피어 목록 및 상기 이웃 피어와 상기 방송 관리 서버(300)간의 대역폭 정보, 상기 이웃 피어의 데이터 범위, 뎁스 정보, TTL 등의 상기 이웃 피어와 관련된 정보들을 포함할 수 있다.
상기 멤버 업데이터(420)는 상기 이웃 피어 관련 정보들을 근거로, 상기 이웃 피어 리스트에 포함된 이웃 피어 중 방송 데이터에 대한 실시간 전송이 가능한 후보 피어를 선별할 수 있다. 예를 들어, 이웃 피어와 상기 방송 관리 서버(300)와 대역폭 정보를 이용하여 후보 피어를 1차 필터링하여 후보 피어 리스트를 생성할 수 있다.
또한, 상기 멤버 업데이터(420)는 상기 후보 리스트들의 최초 작성 이후 소정시간마다 주기적으로 상기 이웃 피어로부터 정보를 수집하여, 상기 이웃 피어 리스트 및 후보 피어 리스트에 대한 업데이트를 수행한다. 상기 멤버 업데이터(420)에 의해 작성/업데이트된 후보 피어 리스트는 후보피어 매니저(410)에 전달될 수 있다.
후보피어 매니저(410)는 상기 멤버 업데이터(420)로부터 후보 피어 리스트를 수신하고, 상기 후보 피어 리스트에 포함된 후보 피어에 접속하여 상기 후보 피어의 실제 전송 대역폭을 측정할 수 있다. 상기 후보피어 매니저(410)는 상기 측정된 각 후보 피어의 실제 전송 대역폭 정보와 함께, 상기 후보 피어의 데이터 범위, 뎁스 정보, 최종 업데이트 시간 등의 정보를 근거로 상기 후보 피어 리스트를 2차 필터링한다. 상기 2차 필터링된 후보 피어 리스트는 각 후보 피어의 위치, 대역폭 정보 등의 항목에 일정 비율을 부여하여 점수화되며, 상기 각 후보 피어에 상기 점수에 따른 우선순위를 부여하여 최종 후보 피어 리스트를 생성할 수 있다. 상기 상기 후보 피어 매니저(410)는 최종 후보 피어 리스트를 스트리밍 매니저(440)에게 전송 할 수 있다.
한편, 버퍼 매니저(450)는 상기 스트리밍 페쳐에서 수신한 각각의 가변데이터를 멀티미디어 콘텐츠 재생을 위해 정렬한다.
그리고 플레이어(470)는 상기 버퍼 매니저(450)에서 정렬된 순서에 따라 데이터를 스트리밍 형식으로 재생한다.
또한, 스트리밍 릴레이(460)는 상기 시청자 클라이언트로부터 상기 데이터를 전송받을 적어도 하나의 자식 피어에게 멀티미디어 콘텐츠의 특정 가변데이터를 전송할 수 있다.
도 4는 본 발명에 의한 실시간 방송 시스템의 데이터 흐름에 대한 일 실시예로서, Mesh 구조의 스트리밍 전송방식을 나타내고 있다.
먼저, 방송자 클라이언트(200)는 방송하고자 하는 멀티미디어 콘텐츠에 대한 방송 채널을 개설하고, 상기 멀티미디어 콘텐츠의 인코딩된 방송 데이터를 가변 데이터로 나누어 방송 관리 서버(300)로 전송한다.
상기 방송 채널을 시청하고자 하는 시청자 클라이언트(400)는 상기 방송 관리 서버(300)에 방송 시청을 요청하여 방송 채널 정보를 제공받을 수 있다. 또한, 상기 시청자 클라이언트(400)는 자신의 이웃 피어로부터 주기적으로 상기 이웃 피어의 정보(데이터 범위, 뎁스 정보, 대역폭 정보, TTL 등)를 수집하여, 상기 이웃 피어 리스트를 업데이트 한다.
상기 시청자 클라이언트(400)는 상기 이웃 피어 리스트 및 방송 채널 정보를 참고하여 일정 기준(데이터 범위, 대역폭, 뎁스 정보, TTL 등)에 따라 상기 방송 데이터의 실시간 전송이 가능한 후보 피어 리스트를 작성하며, 상기 후보 피어 리 스트에서 적어도 하나의 부모 피어를 선택한다. 그리고 선택된 적어도 하나의 부모 피어로부터 멀티미디어 콘텐츠의 가변데이터를 수신하여 상기 멀티미디어 데이터를 스트리밍 방식으로 재생할 수 있다.
도 4에서 볼 수 있듯이, 업로드 전송속도 및 네트워크 용량이 좋은 피어(굵은 실선으로 표시)는 비교적 다수의 이웃 피어에게 특정 데이터 스트림을 전송해준다. 다시 말해, 업로드 전송속도 및 네트워크 용량이 좋은 피어일수록 자신이 데이터 스트림을 전송해줄 수 있는 자식 피어를 많이 가질 수 있다
마찬가지로, 업로드 전송속도 및 네트워크 용량이 보통인 피어(굵은 점선으로 표시)는 업로드 전송속도 및 네트워크 용량이 좋지않은 피어(얇은 점선으로 표시)보다 많은 자식 피어를 가질 수 있다.
그러나, 방화벽이나 NAT 등으로 인해 블록된 피어(얇은 실선으로 표시)는 자신의 부모 피어로부터 데이터 스트림을 받기만 할 뿐, 어떤 이웃 피어에게도 자신이 가진 데이터 스트림을 전송할 수 없게 된다.
상기 시청자 클라이언트(400) 자신의 뎁스 정보보다 더 큰 수치의 뎁스 정보를 나타내는 피어를 상기 피어 리스트에서 제거하는 방식으로 inner-circle이 형성되는 것을 방지한다.
또한, TTL을 이용하여 TTL이 0인 값을 갖는 업데이트 메시지는 더 이상 포워딩하지 않고 드롭할 수 있다.
도 5는 본 발명에 의한 실시간 방송 시스템의 데이터 흐름에 대한 또다른 실시예로서, Pull-Push Mesh Type 전송방식을 보여준다.
도 5와 같이, Pull-Push Mesh Type의 경우, 시청자 클라이언트(400)는 자신이 필요한 가변데이터의 초기 시퀀스 번호를 1~4의 부모 피어에게 각각 요청한다.
일반적인 Mesh Type에서는 상기 시청자 클라이언트(400)가 1~4의 부모 피어로부터 데이터를 가져오기 위해 사용가능한 데이터 범위 정보 요청 및 필요한 데이터 범위에 대한 정보 등의 메시지 교환을 필요로 한다. 또한, 각 부모 피어들에 필요한 데이터 요청을 적절히 분배하기 위하여 상기 각 부모 피어들의 상태를 실시간 파악하기 위한 메시지 교환이 지속적으로 발생할 수 밖에 없고, 이는 네트워크에 부담으로 작용할 수 있다.
그러나, Pull-Push Mesh Type에서는 상기 시청자 클라이언트(400)가 상기 1~4의 부모 피어에게 현재 필요한 데이터의 초기 시퀀스를 할당하여 요청한다(Pull). 또한, 상기 1~4의 부모 피어는 상기 시청자 클라이언트(400)의 요청에 따라, 상기 초기 시퀀스에 해당하는 데이터 스트림을 상기 시청자 클라이언트(400)에 전송한다(Push). 이로 인해, 일반적인 Mesh Type에서 빈번하게 발생할 수밖에 없었던 메시지 교환이 Pull-Push Mesh Type에서는 거의 필요 없게 되었으며, 따라서 네트워크의 부하 발생에 대한 부담도 감소하였다.
여기서, 임의의 수를 상기 특정 수(예를 들어, 부모 피어의 수)로 나누어 나머지 값이 될 수 있는 값을 시퀀스 번호로 설정하고, 각각의 부모 피어에게 상기 시퀀스 번호를 할당하여 전송한다. 또한, 각각의 가변데이터에 할당된 초기 시퀀스 번호를 상기 부모 피어의 수로 나누어 계산되는 나머지 값에 따라, 상기 각각의 가변데이터는 상기 나머지 값과 일치하는 시퀀스 번호를 가진 부모 피어에 요청된다. 상기 특정 수는 서버의 컨피그레이션(configuration)에 의해 결정될 수 있다.
예를 들어, 부모 피어의 개수가 4일 때, 나머지 값이 될 수 있는 값은 0/1/2/3으로, 상기 0/1/2/3이 시퀀스 번호로서 상기 각각의 부모 피어에 할당된다. 이어서, 각각의 가변데이터의 초기 시퀀스를 상기 부모 피어의 개수인 4로 나누어 갖게 되는 나머지 값에 따라, 상기 부모 피어에 할당된 시퀀스 번호에 일치하도록(도 5에서와 같이, 4개의 부모 피어 중 0번 피어는 가변데이터 중 4로 나눈 나머지 값을 0으로 갖는 132/136/140 등을 요청)상기 가변데이터가 요청하여 전송받는다.
다만, 상기 시청자 클라이언트(400)가 사용가능한 데이터 범위에 대한 정보를 거의 알지 못하기 때문에, 실시간 데이터 분배를 위해서는 추가적인 메시지 교환없이도 상기 각 부모 피어의 현재 전송 속도 측정 및 버퍼링 예측에 대한 보완이 필요하다.(이에 대한 설명은 아래의 도 7에서 기재함)
도 6은 본 발명에 의한 실시간 방송 시스템의 데이터 흐름에 대한 다른 실시예로서, 시청자 클라이언트(400)가 부모 피어로부터 데이터 스트림을 전송받는 중 이웃 피어 리스트 및 후보 피어 리스트를 주기적으로 업데이트하는 방식을 나타낸다.
상기 도 5에서 언급한 바와 같이, Pull-Push Mesh Type에서 데이터 전송중에도 각 부모 피어의 현재 전송 속도 측정 및 버퍼링 예측에 대한 보완을 위해 상기 시청자 클라이언트(400)는 주변의 이웃 피어들로부터 주기적으로 정보를 수집하여 자신의 이웃 피어 리스트 및 후보 피어 리스트를 업데이트 한다.
상기 시청자 클라이언트(400)는 자신의 주변에 위치한 이웃 피어(부모 피어 및 자식 피어를 모두 포함)로부터 다른 피어들에 대한 개략적인 정보를 획득하고, 이는 주기적으로 업데이트된다.
상기 개략적인 정보는 이미 설명하였으므로 여기서는 생략하기로 한다.
여기서, 시청자 클라이언트(400)는 상기 후보 피어 리스트의 편향성을 막기 위하여 방송 관리 서버(300)로부터 획득하는 이웃 피어에 대한 정보를 수신할 수도 있다.
상기 시청자 클라이언트(400)가 자신의 이웃 피어들로부터 정보를 수집함에 있어, P2P 네트워크에 참여한 모든 피어들에 대한 정보 수집은 불가능하고, 부가적인 네트워크 트래픽을 유발할 수 있다. 이 때문에, 상기 시청자 클라이언트(400)가 필요한 정보를 효율적으로 수집하기 위해 이웃 피어의 정보를 통해 일차적으로 필터링된 피어들에 대해서만 직접 정보를 수집함으로써, 트래픽을 최소화하면서 피어 정보를 유지할 수 있다.
도 7은 본 발명에 따른 실시간 방송 시스템에서 시청자 클라이언트(400)와 데이터 전송중인 부모 피어간의 전송속도(대역폭)를 측정하는 방식을 나타내는 도면이다. 상기 전송 속도는 실제 측정 장치를 이용하지 않고, 수신되는 데이터를 근거로 해서 추정되기 때문에 가상 전송 속도라 부를 수 있다. 이를 통해 전술한 버퍼링 발생을 체크할 수 있다.
시청자 클라이언트(400)는 부모 피어(시청자 클라이언트의 후보 피어 리스트로부터 선정된 피어 뿐만 아니라, 방송자 클라이언트(200)와 방송 관리 서버의 스트리밍 서버(320)도 포함될 수 있음)로부터 데이터를 전송받는 중 발생할 수 있는 버퍼링에 대비하여, 상기 부모 피어의 대역폭을 주기적으로 측정한다.
상기 시청자 클라이언트(400) 및 부모 피어간의 대역폭 측정은 별도의 장치를 구성하지 않고도 데이터 전송중 자연스럽게 이루어지며, 상기 부모 피어의 최소 요구 대역폭(가상 전송속도)과 평균 대역폭(실제 전송속도)을 동시에 측정하여 비교하는 방식으로 데이터 전송중 오류를 검사한다.
도 7의 좌측은 상기 피어의 최소 요구 대역폭의 계산 방식을, 우측은 상기 피어의 실제 평균 대역폭을 측정하는 방식을 각각 나타내고 있다. 상기 실제 대역폭은 지속적으로 변할 수 밖에 없는데, 이를 실제적으로 완벽하게 측정할 수 있는 방법은 없기 때문에, 소정시간마다 주기적인 측정을 통해 근사적 측정치를 평균 대역폭 정보로 사용한다.
실시간 방송은 말 그대로 실시간으로 데이터를 전송하기 때문에, 방송자가 데이터를 인코딩하여 전송하는 간격과 시청자가 상기 데이터를 전송받아 디코딩 및 플레이하는 간격은 동일해야 한다. 이 특성을 활용하여 상기 피어의 최소 요구 대역폭과 실제 평균 대역폭을 비교하여, 부모 피어의 선택여부가 결정된다.
상기 최소 요구 대역폭은 상기 데이터의 크기를 상기 데이터와 그 다음 데이터의 전송 시작 시간의 차로 나누는 방식으로 계산된다. 또한, 상기 평균 대역폭은 상기 데이터의 크기를 상기 데이터와 그 다음 데이터의 도착 시간의 차로 나누는 방식으로 측정한다.
도 7에서와 같이, 시청자 클라이언트(400)가 부모 피어인 방송자 클라이언트(200)로부터 데이터를 전송받는 상황을 예로 들면, 상기 방송자 클라이언트(200) 가 [01:03:12:010](S1)에 10Kbytes의 데이터 D1을 전송한 후, [01:03:12:110](S2)에 데이터 D2(D1 다음에 전송되는 데이터)를 연이어 전송한다. 그리고 상기 시청자 클라이언트(400)는 상기 방송자 클라이언트(200)로부터 전송된 데이터 D1을 [09:12:34:015](T1)에, 데이터 D2를 [09:12:34:125](T2)에 각각 수신한다.
이 경우, 방송자 클라이언트(200)에서의 데이터 D1에 대한 전송 시작 시간의 차는 100ms, 시청자 클라이언트(400)에서의 데이터 도착 시간의 차는 110ms로 계산된다. 따라서, 상기 방송자 클라이언트(200)의 최소 요구 대역폭은 10Kbytes(데이터 D1의 크기)를 100ms(데이터 전송 시작 시간의 차)로 나누어 "100KBps"(즉, 800kbps)로 계산할 수 있다. 또한, 상기 방송자 클라이언트(200)의 평균 대역폭은 10Kbytes를 110ms(데이터 도착 시간의 차)로 나누어 "91KBps"(즉, 728kbps)로 계산할 수 있다.
상기 시청자 클라이언트(400)는 상기 부모 피어의 최소 요구 대역폭과 실제 평균 대역폭의 수치를 지속적으로 모니터하며, 상기 실제 평균 대역폭의 수치를 상기 최소 요구 대역폭의 수치로 나눈 값이 일정값 이하로 떨어지거나 지속적으로 1.0 이하의 값이 관측된다면, 버퍼링을 예측할 수 있다.
도 7에서, 상기 시청자 클라이언트(400)의 부모 피어인 방송자 클라이언트(200)의 평균 대역폭의 수치(91KBps)를 최소 요구 대역폭의 수치(100KBps)로 나눈 값을 계산하면, 이 값(91KBps/100KBps = 0.91)은 1.0보다 작은 값이 되어, 전송중 버퍼링 발생으로 간주된다.
이 경우, 상기 시청자 클라이언트(400)는 상기 부모 피어를 대신할 새로운 부모 피어의 선택을 유도할 수 있다.
새로운 부모 피어 선택에 대한 설명은 이미 설명하였으므로 여기서는 생략하기로 한다.
지금까지 설명한 본 발명은 상술한 실시예에 한정되지 않으며, 첨부한 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가진 자에 의해 변형이 가능하고 이러한 변형은 본 발명의 범위에 속한다.
도 1은 본 발명에 의한 실시간 방송 시스템의 일 실시예를 나타내는 개략적인 구성도이다.
도 2는 본 발명에 의한 실시간 방송 시스템에 있어서 방송 관리 서버의 일 실시예를 나타내는 구성도이다.
도 3은 본 발명에 의한 실시간 방송 시스템에 있어서 시청자 클라이언트의 일 실시예를 나타내는 구성도이다.
도 4는 본 발명에 의한 실시간 방송 시스템의 일 실시예로서 방송 데이터의 흐름을 나타내는 개략도이다.
도 5는 본 발명에 의한 실시간 방송 시스템의 다른 실시예로서 방송 데이터의 흐름을 나타내는 개략도이다.
도 6은 본 발명에 의한 실시간 방송 시스템의 또다른 실시예로서 방송 데이터의 흐름을 나타내는 개략도이다.
도 7은 본 발명에 의한 실시간 방송 시스템에서 부모 피어의 최소 요구 대역폭 및 평균 대역폭 측정을 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 네트워크 200: 방송자 클라이언트
300: 방송 관리 서버 310: 로드 밸런서
320: 스트리밍 서버 330: 데이터베이스
400: 시청자 클라이언트 410: 후보피어 매니저
420: 멤버 업데이터 430: 스트리밍 페처
440: 스트리밍 매니저 450: 버퍼 매니저
460: 스트리밍 릴레이 470: 플레이어

Claims (11)

  1. 멀티미디어 콘텐츠를 네트워크에 연결되어 있는 피어를 통해 스트리밍 방송하는 실시간 방송 시스템에 있어서,
    상기 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하고 있는 피어 중 데이터 전송 상태를 고려하여 선택된 복수 개의 부모 피어로부터 특정 수의 나머지 정보를 이용한 시퀀스 번호에 대응되게 상기 멀티미디어 콘텐츠를 구성하는 가변데이터를 각각 수신하는 스트리밍 페처;
    상기 복수 개의 부모 피어로부터 각각 수신된 가변데이터를 결합하여 상기 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하는 플레이어; 및
    상기 스트리밍 페처를 통해 버퍼링 발생이 체크된 경우, 뎁스 정보, 데이터 범위, TTL 및 대역폭 정보 중 적어도 하나를 고려하여 후보 피어 리스트를 제공하는 후보 피어 매니저를 포함하되,
    상기 복수 개의 부모 피어에 할당된 시퀀스 번호는 임의의 수를 상기 특정 수로 나누어 나머지 값이 될 수 있는 값인 것을 특징으로 하는 실시간 방송 시스템.
  2. 제 1 항에 있어서, 상기 스트리밍 페처는,
    상기 수신되는 가변데이터의 전송 상태를 고려하여 버퍼링 발생을 체크하는 것을 특징으로 하는 실시간 방송 시스템.
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서, 상기 실시간 방송 시스템은,
    상기 스트리밍 페처로부터 수신한 가변데이터를 재생 순서를 고려하여 정렬하는 버퍼 매니저를 더 포함하는 것을 특징으로 하는 실시간 방송 시스템.
  6. 멀티미디어 콘텐츠를 네트워크에 연결되어 있는 피어를 통해 스트리밍 방송하는 실시간 방송 방법에 있어서,
    상기 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하고 있는 피어 중 데이터 전송 상태를 고려하여 복수 개의 부모 피어를 선택하는 단계;
    상기 선택된 복수 개의 부모 피어로부터 특정 수의 나머지 정보를 이용한 시퀀스 번호에 대응되게 상기 멀티미디어 콘텐츠를 구성하는 가변데이터를 각각 수신하는 단계;
    상기 복수 개의 부모 피어로부터 각각 수신된 가변데이터를 결합하여 상기 멀티미디어 콘텐츠를 스트리밍 형식으로 재생하는 단계; 및
    스트리밍 페처를 통해 버퍼링 발생이 체크된 경우, 뎁스 정보, 데이터 범위, TTL 및 대역폭 정보 중 적어도 하나를 고려하여 생성된 후보 피어 리스트를 제공하는 단계를 포함하되,
    상기 복수 개의 부모 피어에 할당된 상기 시퀀스 번호는 임의의 수를 상기 특정 수로 나누어 나머지 값인 것을 특징으로 하는 실시간 방송 방법.
  7. 제 6 항에 있어서, 상기 부모 피어 선택 단계는,
    상기 멀티미디어 콘텐츠의 실시간 전송이 가능한 피어 리스트를 수신하는 단계; 및
    상기 피어 리스트로부터 적어도 하나의 부모 피어를 선택하는 단계를 더 포함하는 것을 특징으로 하는 실시간 방송 방법.
  8. 제 7 항에 있어서, 상기 피어 리스트는,
    소정시간마다 적어도 하나의 이웃 피어의 정보를 수집하여, 주기적으로 업데이트되는 것을 특징으로 하는 실시간 방송 방법.
  9. 삭제
  10. 삭제
  11. 제 6 항에 있어서, 상기 실시간 방송 방법은,
    상기 수신되는 가변데이터의 전송 상태를 고려하여 버퍼링 발생을 체크하는 단계를 더 포함하는 것을 특징으로 실시간 방송 방법.
KR1020090051096A 2009-06-09 2009-06-09 실시간 방송 시스템 및 그 방법 KR101097998B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090051096A KR101097998B1 (ko) 2009-06-09 2009-06-09 실시간 방송 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090051096A KR101097998B1 (ko) 2009-06-09 2009-06-09 실시간 방송 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20100132330A KR20100132330A (ko) 2010-12-17
KR101097998B1 true KR101097998B1 (ko) 2011-12-23

Family

ID=43508028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090051096A KR101097998B1 (ko) 2009-06-09 2009-06-09 실시간 방송 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101097998B1 (ko)

Also Published As

Publication number Publication date
KR20100132330A (ko) 2010-12-17

Similar Documents

Publication Publication Date Title
US7991906B2 (en) Method of data request scheduling in peer-to-peer sharing networks
JP4765952B2 (ja) マルチキャスト配信システム、クライアント機器、上位ルータ制御装置、コンテンツの表示方法およびプログラム
JP4752786B2 (ja) マルチキャスト配信システムおよびマルチキャスト配信方法
US8386630B1 (en) Video-aware P2P streaming and download with support for real-time content alteration
KR101089562B1 (ko) 고화질 미디어 방송을 위한 피투피 라이브 스트리밍 시스템 및 방법
US9497035B2 (en) Method, device, and system for playing media based on P2P
US20090144417A1 (en) Resilient service quality in a managed multimedia delivery network
US11044497B1 (en) Method of unified video switching and advertisement splicing within consumer devices
US9313268B2 (en) Methods and arrangements for prioritization in a peer-to-peer network
JP5724139B2 (ja) セッション数によりp2pのツリー構造を形成するp2p方式のインターネットライブ放送サービスシステム及び方法
CN107079013A (zh) 管理媒体流的并发流式传输
KR101030345B1 (ko) 실시간 방송 시스템 및 그 방법
Guo et al. P2Cast: peer-to-peer patching for video on demand service
EP2339814A1 (en) Method for downloading segments of a video file in a peer-to-peer network
JP2008529396A (ja) デジタルコンテンツの配信
KR101097998B1 (ko) 실시간 방송 시스템 및 그 방법
Natali et al. Successfully mapping DASH over a P2P live streaming architecture
Meskovic et al. Content delivery architectures for live video streaming: hybrid cdn-p2p as the best option
Ha et al. A novel Hybrid CDN-P2P mechanism For effective real-time media streaming
KR101242830B1 (ko) P2p 기반의 스트리밍 서비스에서 버퍼링을 수행하는 시스템 및 방법 그리고 클라이언트에서 버퍼링을 처리하는 어플리케이션을 배포하는 시스템
KR101267621B1 (ko) 다중 스트림으로 구성된 그룹 미디어 전송 응용 서비스를 위한 오버레이 멀티캐스트 시스템 및 방법
Kusmierek et al. iTVP: Large-scale content distribution for live and on-demand video services
KR101914105B1 (ko) P2p 기반의 스트리밍 서비스에서 버퍼링을 수행하는 시스템 및 방법 그리고 클라이언트에서 버퍼링을 처리하는 어플리케이션을 배포하는 시스템
JP2009177811A (ja) 分割後のp2pモードでの繰延回復を目的としたコンテンツのライブ送信のための方法、並びに制御装置及び関連する設備
JP3685728B2 (ja) 複数コンテンツ切替装置、複数コンテンツ切替方法、複数コンテンツ切替プログラムを記録した記録媒体及び複数コンテンツ切替プログラム

Legal Events

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

Payment date: 20141216

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 9