KR101242830B1 - System and method for performing buffering in P2 based streaming service and system for distributing application processing buffering in client - Google Patents
System and method for performing buffering in P2 based streaming service and system for distributing application processing buffering in client Download PDFInfo
- Publication number
- KR101242830B1 KR101242830B1 KR1020110005923A KR20110005923A KR101242830B1 KR 101242830 B1 KR101242830 B1 KR 101242830B1 KR 1020110005923 A KR1020110005923 A KR 1020110005923A KR 20110005923 A KR20110005923 A KR 20110005923A KR 101242830 B1 KR101242830 B1 KR 101242830B1
- Authority
- KR
- South Korea
- Prior art keywords
- buffer
- size
- pieces
- server
- client
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
Abstract
P2P 기반의 스트리밍 서비스에서 버퍼링을 수행하는 시스템 및 방법 그리고 클라이언트에서 버퍼링을 처리하는 어플리케이션을 배포하는 시스템이 개시된다. 어플리케이션을 배포하는 시스템은, 스트리밍 서비스를 제공하는 서버 또는 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어로부터 데이터 스트림의 피스들을 전송받아 제1 버퍼에 저장하고, 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하도록 클라이언트에서 동작하는 어플리케이션을 클라이언트로 배포한다.A system and method for performing buffering in a P2P based streaming service and a system for distributing an application for processing buffering in a client are disclosed. A system for distributing an application receives pieces of a data stream from a server providing a streaming service or at least one other peer receiving a streaming service and stores the pieces of the data stream in a first buffer, and a piece used for playing content among the stored pieces. Distribute an application running on the client to the client to store at least some of the data in a second buffer.
Description
본 발명의 실시예들은 P2P 기반의 스트리밍 서비스에서 버퍼링을 수행하는 시스템 및 방법 그리고 클라이언트에서 버퍼링을 처리하는 어플리케이션을 배포하는 시스템에 관한 것이다.Embodiments of the present invention relate to a system and method for performing buffering in a P2P based streaming service, and a system for distributing an application for processing buffering in a client.
P2P 서비스(Peer to Peer Service)는 인터넷상의 정보를 검색엔진을 거쳐 찾아야 하는 기존 방식과는 달리 인터넷에 연결된 모든 개인 컴퓨터로부터 직접 정보를 제공받는 서비스를 말한다.Peer to Peer Service (P2P) is a service that receives information directly from all personal computers connected to the Internet, unlike the conventional method of searching for information on the Internet through a search engine.
또한, 일반적으로 '스트리밍'이란 네트워크를 통해 파일을 실시간으로 전송받아 재생시키는 기술을 말하며, 가장 흔히 쓰는 기술로는 프로그레시브 스트리밍(progressive streaming)이 있다.In addition, 'streaming' generally refers to a technology of receiving and playing a file in real time through a network, and the most commonly used technique is progressive streaming.
이러한 스트리밍 기술을 P2P 기술에 이용할 경우 서버 및 서비스측의 부하를 줄일 수 있기 때문에 비용 절감의 효과를 얻게 된다. 이를 구현하기 위해 P2P 기반의 스트리밍 서비스를 이용하는 클라이언트는 멀티미디어 파일과 같은 콘텐츠를 재생시키는 전용 플레이어에 P2P 기반의 스트리밍 서비스를 이용하는데 필요한 기능을 포함시켜 P2P 기반의 스트리밍을 서비스하는 서버와 통신하며 P2P 기반의 스트리밍 서비스를 실현시킨다. 보다 구체적으로 설명하자면, 서버가 웹페이지를 통해 제공 가능한 콘텐츠 목록을 사용자에게 제공하고, 클라이언트는 이 목록 중에서 서비스 받을 콘텐츠를 클릭하여 선택한다. 이후, 서비스 받을 콘텐츠가 선택되면 클라이언트에 설치되어 있는 전용 플레이어가 실행되어 선택된 콘텐츠를 재생시킨다. 이때, 전용 플레이어는 P2P 기술을 이용하여 선택된 콘텐츠를 서버와 다른 피어(Peer)로부터 전송받아 재생시킨다.Using this streaming technology for P2P technology can reduce the load on the server and service side, resulting in cost savings. To implement this, the client using P2P based streaming service communicates with P2P based streaming server by including the necessary function to use P2P based streaming service in the dedicated player that plays contents such as multimedia file. To realize streaming services. More specifically, the server provides the user with a list of contents that can be provided through the web page, and the client clicks on the content to be serviced from the list. Then, when the content to be serviced is selected, a dedicated player installed in the client is executed to play the selected content. At this time, the dedicated player receives and plays the selected content from a peer different from the server using P2P technology.
P2P 기반의 스트리밍 서비스를 이용하고자 하는 유저 클라이언트가 서버에 접속된 후 유저 클라이언트로부터 콘텐츠를 선택 받으면, 선택된 콘텐츠를 보유하고 있는 피어를 검색하여 유저 클라이언트에게 콘텐츠를 제공할 수 있게 연결시켜 준다. 즉, 유저 클라이언트의 전용 플레이어는 선택된 콘텐츠의 파일 조각들을 서버 또는 콘텐츠를 보유하고 있는 다른 피어들로부터 전송받아 재생시키게 된다.When the user client who wants to use the P2P-based streaming service is connected to the server and receives the content from the user client, the peer searches for the peer that has the selected content and provides the content to the user client. That is, the dedicated player of the user client receives and plays the file fragments of the selected content from the server or other peers holding the content.
이때, 종래기술에 따른 P2P 기반의 스트리밍 서비스에서는 피어의 네트워크 상황에 따라 피어간에, 그리고 피어와 서버의 동기화를 유지하기 어렵다. 이 경우, 이러한 피어간에, 그리고 피어와 서버간의 동기화가 이루어지지 않는 경우, 데이터의 공유율이 낮아지는 문제점이 있다.At this time, in the P2P-based streaming service according to the prior art, it is difficult to maintain synchronization between peers and between the peer and the server according to the network conditions of the peers. In this case, there is a problem in that the sharing rate of data is lowered when the peers and the peers and the server are not synchronized.
본 명세서에서는 P2P 기반의 스트리밍 서비스에서 피어간 또는 피어와 서버간 동기화를 효율적으로 수행하고 데이터의 공유율을 극대화할 수 있는 시스템 및 방법이 제공된다.In the present specification, a system and method for efficiently performing peer-to-peer or peer-to-server synchronization in a P2P-based streaming service and maximizing data sharing rate are provided.
피어간에 동기화가 이루어지지 않은 경우에도 콘텐츠의 재생에 이미 이용된 피스들을 버리지 않고 일정량을 추가로 버퍼링함으로써, 피어간에 데이터의 공유율을 극대화할 수 있는 버퍼링 시스템 및 방법이 제공된다.A buffering system and method are provided that can maximize the sharing rate of data among peers by additionally buffering a certain amount without discarding pieces already used for playing content even when synchronization between peers is not performed.
네트워크 상황에 따라 전송된 데이터 스트림의 피스들을 저장하는 버퍼의 크기를 동적으로 조절함으로써, 피어간에 그리고 피어와 서버간의 동기화를 유지하여 공유율 저하를 막을 수 있는 버퍼링 시스템 및 방법이 제공된다.By dynamically adjusting the size of a buffer for storing pieces of a transmitted data stream in accordance with network conditions, a buffering system and method are provided that can prevent sharing rate degradation by maintaining synchronization between peers and between peers and servers.
버퍼의 크기를 동적으로 증가(또는 감소)시키되, 콘텐츠 재생에 이미 이용된 피스들을 버퍼링하는 버퍼의 크기를 동일한 크기만큼 감소(또는 증가)시켜 전체 버퍼의 크기를 동일하게 유지할 수 있는 버퍼링 시스템 및 방법이 제공된다.A buffering system and method that dynamically increases (or decreases) the size of a buffer, but keeps the size of the entire buffer the same by decreasing (or increasing) the size of the buffer that buffers the pieces already used for content playback. This is provided.
애플리케이션을 배포하는 시스템에 있어서, 스트리밍 서비스를 제공하는 서버 또는 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어로부터 데이터 스트림의 피스들을 전송받아 제1 버퍼에 저장하고, 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하도록 클라이언트에서 동작하는 애플리케이션을 클라이언트로 배포하는 것을 특징으로 하는 시스템이 제공된다.A system for distributing an application, the method comprising receiving pieces of a data stream from a server providing a streaming service or at least one other peer receiving a streaming service and storing the pieces of the data stream in a first buffer, and used to play content among the stored pieces. A system is provided for distributing an application running on a client to a client to store at least some of the pieces in a second buffer.
일측에 따르면, 제1 버퍼 및 제2 버퍼에 저장된 피스들은 스트리밍 서비스를 제공받는 적어도 하나의 다른 클라이언트로 전송 가능한 것을 특징으로 할 수 있다.According to one side, the pieces stored in the first buffer and the second buffer may be transmitted to at least one other client provided with a streaming service.
다른 측면에 따르면, 네트워크 상황에 따라 제1 버퍼의 크기가 애플리케이션에 의해 동적으로 조절될 수 있다.According to another aspect, the size of the first buffer may be dynamically adjusted by an application according to network conditions.
또 다른 측면에 따르면, 애플리케이션은 제1 버퍼의 크기를 증가시킨 만큼 제2 버퍼의 크기를 감소시키거나 또는 제1 버퍼의 크기를 감소시킨 만큼 제2 버퍼의 크기를 증가시켜 제1 버퍼 및 제2 버퍼를 포함하는 전체 버퍼의 크기가 동일하게 유지할 수 있다.According to another aspect, the application may reduce the size of the second buffer by increasing the size of the first buffer or increase the size of the second buffer by decreasing the size of the first buffer to increase the size of the first buffer and the second buffer. The size of the entire buffer including the buffer can be kept the same.
또 다른 측면에 따르면, 제1 버퍼는 순차적으로 피스를 수신하기 위한 피스 선택 방법인 프로그레시브(progressive)를 이용하여 딜리버리 서버를 통해 수신된 피스들이 저장되는 제1 영역, 적어도 하나의 다른 클라이언트로부터 프로그레시브를 이용하여 수신된 피스들이 저장되는 제2 영역 및 네트워크 상에서 가장 드문(rare) 피스를 먼저 수신하기 위한 피스 선택 방법인 레어리스트 퍼스트(rarest first)를 이용하여 적어도 하나의 다른 클라이언트로부터 수신된 피스들이 저장되는 제3 영역을 포함할 수 있다.According to another aspect, the first buffer is a first area in which pieces received through a delivery server are stored using progressive, a piece selection method for sequentially receiving pieces, and receives progressives from at least one other client. The pieces received from at least one other client are stored using a second area where the received pieces are stored and a rare first, which is a piece selection method for first receiving the rarest piece on the network. It may include a third region to be.
또 다른 측면에 따르면, 네트워크 상황에 따라 제3 영역의 크기가 애플리케이션에 의해 동적으로 조절되어 제1 버퍼의 크기가 조절될 수 있다.According to another aspect, the size of the third buffer may be dynamically adjusted by an application according to a network situation, thereby adjusting the size of the first buffer.
또 다른 측면에 따르면, 네트워크 상황은 클라이언트에서의 다운로드/업로드 속도를 포함할 수 있고, 제1 버퍼의 크기는 다운로드/업로드 속도에 따라 애플리케이션에 의해 동적으로 조절될 수 있다.According to another aspect, the network situation may include a download / upload speed at the client, and the size of the first buffer may be dynamically adjusted by the application according to the download / upload speed.
또 다른 측면에 따르면, 서버는 복수의 패킷타이징 서버를 포함할 수 있고, 복수 개의 패킷타이징 서버는 각각 동일한 수의 패킷타이징 서버를 포함하는 주 패킷타이징 서버군과 부 패킷타이징 서버군으로 분류되어, 주 패킷타이징 서버군의 장애 시 부 패킷타이징 서버군이 주 패킷타이징 서버군을 대체할 수 있다.According to another aspect, the server may include a plurality of packetizing servers, the plurality of packetizing server, the primary packetizing server group and the secondary packetizing server each including the same number of packetizing server In the case of a failure of the primary packetizing server group, the secondary packetizing server group may replace the primary packetizing server group.
또 다른 측면에 따르면, 서버는 복수의 딜리버리 서버를 포함할 수 있고, 스트리밍 서비스를 제공하는 시스템에서 동시 접속자수에 따라 이용되는 복수의 딜리버리 서버의 수를 조절함으로써 트래픽이 조절될 수 있다.According to another aspect, the server may include a plurality of delivery servers, the traffic may be adjusted by adjusting the number of the plurality of delivery servers used in accordance with the number of simultaneous access in the system providing a streaming service.
스트리밍 서비스를 제공하는 서버 또는 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어로부터 전송된 데이터 스트림의 피스들을 제1 버퍼에 저장하는 단계 및 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하는 단계를 포함하고, 제1 버퍼 및 제2 버퍼에 저장된 피스들은 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어로 전송 가능한 것을 특징으로 하는 버퍼링 방법이 제공된다.Storing pieces of the data stream transmitted from the server providing the streaming service or at least one other peer receiving the streaming service in a first buffer and at least a portion of the pieces used for playing the content among the stored pieces; A buffering method is provided, comprising: storing in a buffer, wherein the pieces stored in the first buffer and the second buffer can be transmitted to at least one other peer receiving a streaming service.
피어간에 동기화가 이루어지지 않은 경우에도 콘텐츠의 재생에 이미 이용된 피스들을 버리지 않고 일정량을 추가로 버퍼링함으로써, 피어간에 데이터의 공유율을 극대화할 수 있다.Even if the synchronization is not performed between peers, the data sharing rate between peers can be maximized by buffering an additional amount without discarding pieces already used for content playback.
네트워크 상황에 따라 전송된 데이터 스트림의 피스들을 저장하는 버퍼의 크기를 동적으로 조절함으로써, 피어간에 그리고 피어와 서버간의 동기화를 유지하여 공유율 저하를 막을 수 있다.By dynamically adjusting the size of the buffer that stores the pieces of the transmitted data stream according to network conditions, the sharing rate can be prevented by maintaining synchronization between peers and between peers and servers.
버퍼의 크기를 동적으로 증가(또는 감소)시키되, 콘텐츠 재생에 이미 이용된 피스들을 버퍼링하는 버퍼의 크기를 동일한 크기만큼 감소(또는 증가)시켜 전체 버퍼의 크기를 동일하게 유지할 수 있다.The size of the buffer may be dynamically increased (or decreased), but the size of the buffer buffering pieces already used for content reproduction may be reduced (or increased) by the same size to keep the size of the entire buffer the same.
도 1은 본 발명의 일실시예에 있어서, P2P 기반의 스트리밍 서비스를 제공하는 시스템의 논리적 구성을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 있어서, P2P 기반의 스트리밍 서비스를 제공하는 시스템의 물리적 구성을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 있어서, 패킷타이징 서버의 이중화를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 딜리버리 서버의 이중화를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 인덱스 서버의 이중화를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 피어 관리 시스템을 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 피어에서 이용 가능한 버퍼를 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 콘텐츠의 재생에 이용된 피스를 버퍼링하기 위한 버퍼의 일례를 나타낸 도면이다.
도 9는 본 발명의 일실시예에 있어서, 영역별 크기 조절이 가능한 피어의 버퍼의 일례를 나타낸 도면이다.
도 10은 본 발명의 일실시예에 있어서, 버퍼링 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 11은 본 발명의 일실시예에 있어서, 버퍼링 방법을 도시한 흐름도이다.1 is a diagram illustrating a logical configuration of a system for providing a P2P based streaming service according to an embodiment of the present invention.
2 is a diagram illustrating a physical configuration of a system for providing a P2P based streaming service according to an embodiment of the present invention.
3 is a diagram for describing the duplication of a packetizing server according to one embodiment of the present invention.
4 is a diagram for explaining redundancy of a delivery server in an embodiment of the present invention.
5 is a diagram for describing redundancy of an index server according to an embodiment of the present invention.
6 illustrates a peer management system according to an embodiment of the present invention.
FIG. 7 is a diagram for describing a buffer available in a peer according to one embodiment of the present invention. FIG.
8 is a diagram showing an example of a buffer for buffering a piece used for reproduction of content according to one embodiment of the present invention.
FIG. 9 is a diagram illustrating an example of a buffer of a peer capable of size-specific adjustment according to an embodiment of the present invention.
10 is a block diagram illustrating an internal configuration of a buffering system according to an embodiment of the present invention.
11 is a flowchart illustrating a buffering method according to an embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 있어서, P2P 기반의 스트리밍 서비스를 제공하는 시스템의 논리적 구성을 나타낸 도면이다. 도 1은 미디어 소스(110), 패킷타이징 서버(120), 딜리버리 서버 그룹(130), 클라이언트(140) 및 복수의 피어(150)를 도시하고 있다.1 is a diagram illustrating a logical configuration of a system for providing a P2P based streaming service according to an embodiment of the present invention. 1 shows a
여기서, 미디어 소스(110)는 스트림을 제공하는 인코더를 의미할 수 있다. 패킷타이징 서버(120)는 이러한 미디어 소스(110)로부터 데이터 스트림을 수신하여 피스로 인덱싱할 수 있다. 스트림을 P2P 서비스를 통해 제공하기 위해 피스로 인덱싱하는 방법은 이미 알려진 다양한 방법 중 하나의 방법이 이용될 수 있다. 패킷타이징 서버(120)는 미디어 소스(110)마다 하나씩 존재할 수 있다. 예를 들어, 프로야구 중계 시, 4개의 경기가 진행되는 경우, 4개의 경기에 대해 4개의 미디어 소스(110)가 존재한다면, 패킷타이징 서버(120) 역시 4개가 이용될 수 있다. 이러한 패킷타이징 서버(120)에 대해서는 이후 도 3을 통해 더욱 자세히 설명한다.Here, the
딜리버리 서버 그룹(130)은 적어도 하나의 딜리버리 서버(131)로 구성될 수 있다. 이때, 딜리버리 서버 그룹(130)에서 동작하는 딜리버리 서버(131)의 수는 동시 접속자수에 따라 조절될 수 있다. 딜리버리 서버(131)는 패킷타이징 서버(120)로부터 인덱싱된 피스를 수신하고, 이를 버퍼링할 수 있다. 이때, 클라이언트(140)의 요청에 따라 피스를 클라이언트(140)로 전송할 수 있다.The
여기서, 클라이언트(140)는 PC와 같은 사용자 단말기를 의미할 수 있고, 도 1에 도시된 바와 같이 피어(141)와 플레이어(142)를 포함할 수 있다. 피어(141)는 딜리버리 서버(131)와 복수의 피어(150) 중 적어도 하나로부터 피스를 수신하여 플레이어(142)에 데이터 스트림을 전송할 수 있다. 일례로, 피어(141)는 클라이언트(140)에 설치되어 동작하는 프로그램일 수 있다. 복수의 피어(150) 역시 각각 복수의 클라이언트에 설치되어 동작될 수 있다.Here, the
즉, 패킷타이징 서버(120)에서 피스로 변환된 데이터 스트림은 딜리버리 서버 그룹(130)을 통해 전체 클라이언트들 중 적어도 일부에게 전송될 수 있고, 하나의 클라이언트(140) 입장에서는 딜리버리 서버(131)와 다른 클라이언트들로부터 피스들을 수신하여 데이터 스트림을 플레이어(142)로 전송함으로써, 사용자가 P2P 기반의 스트리밍 서비스를 제공받게 된다.That is, the data stream converted from the packetizing
이때, 본 발명의 일실시예에 따른 서버 사용량 조절 시스템은 도 1을 통해 설명한 시스템 자체를 의미할 수도 있고, 필요에 따라 도 1을 통해 설명한 시스템에 포함되거나 연계될 수 있다. 서버 사용량 조절 시스템은 동시 접속자수를 고려하여 적응적으로 서버 사용량을 조절함으로써, 동시 접속자수에 관계없이 항상 낮은 서버 트래픽이 유지되도록 할 수 있다. 이때, 서버 사용량은 동시 접속자의 유입률을 이용하여 결정되는 상수의 현재 동시 접속자수에 대한 비율에 기초하여 조절될 수 있다. 일례로, 서버 사용량을 아래 수학식 1과 같이 계산될 수 있다.In this case, the server usage adjustment system according to an embodiment of the present invention may mean the system itself described with reference to FIG. 1, or may be included in or associated with the system described with reference to FIG. 1 as necessary. The server usage control system adaptively adjusts the server usage in consideration of the number of concurrent users, so that low server traffic is always maintained regardless of the number of concurrent users. In this case, the server usage may be adjusted based on the ratio of the constant number of concurrent users determined by using the inflow rate of concurrent users. For example, server usage may be calculated as in
여기서, 'c'는 동시 접속자의 유입률을 이용하여 결정되는 상수를, 'n'은 현재 동시 접속자수를 각각 의미할 수 있다. 이때, 'c'는 경험적 테스트를 통해 관리자나 시스템에 의해 결정될 수 있는 상수로서 기본적으로는 동시 접속자의 유입률이 높을수록 상대적으로 큰 값으로 결정될 수 있고, 유입률이 낮을수록 상대적으로 작은 값으로 결정될 수 있다. 이러한 수학식 1은 'c'명에 대한 트래픽으로 'n'명의 사용자를 커버함을 의미할 수 있다. 예를 들어, 'c'가 6이면, 6명에게 제공하기 위한 트래픽으로, 'n'명(현재 동시 접속자) 모두를 커버하고자 함을 의미할 수 있다.Here, 'c' may be a constant determined using the inflow rate of simultaneous accessors, and 'n' may mean a current concurrent accessor number, respectively. At this time, 'c' is a constant that can be determined by the administrator or the system through empirical test. Basically, the higher the inflow rate of concurrent users can be determined as a relatively large value, and the lower the inflow rate can be determined as a relatively small value. have.
즉, 동시 접속자의 유입률이 높아져 현재 동시 접속자수가 늘어나더라도, 상수인 'c'는 고정된 반면, 'n'이 증가하기 때문에 서버 사용량은 점점 감소하게 된다. 따라서, 동시 접속자수에 관계없이 항상 낮은 서버 사용량을 유지할 수 있다.In other words, even if the inflow rate of concurrent users increases, the number of concurrent users increases, but the constant 'c' is fixed, whereas 'n' increases, so server usage decreases. Therefore, low server usage can be maintained at all times regardless of the number of concurrent users.
이를 위해, 서버 사용량 조절 시스템은 현재 동시 접속자수를 제공하는 현재 동시 접속자수 제공부(미도시) 및 동시 접속자의 유입률을 이용하여 결정되는 상수의 상기 현재 동시 접속자수에 대한 비율에 기초하여 상기 서버 사용량을 조절하는 서버 사용량 조절부(미도시)를 포함할 수 있다.To this end, the server usage control system is based on the ratio of the current number of concurrent users determined by using the current number of concurrent users providing unit (not shown) that provides the current number of concurrent users and the inflow rate of the concurrent users of the server It may include a server usage controller (not shown) for adjusting the usage.
도 2는 본 발명의 일실시예에 있어서, P2P 기반의 스트리밍 서비스를 제공하는 시스템의 물리적 구성을 나타낸 도면이다. 도 2는 P2P 기반의 스트리밍 서비스를 위한 장비를 제공하는 외부 IDC(210)와 데이터 스트림을 제공하는 인코더 업체(220) 그리고 외부 IDC(210)가 클라이언트(240)에게 스트림 데이터를 제공하는 과정을 관리하기 위한 내부 IDC(230)를 도시하고 있다.2 is a diagram illustrating a physical configuration of a system for providing a P2P-based streaming service in an embodiment of the present invention. 2 is a diagram illustrating an
외부 IDC(210)는 패킷타이징 서버(211), 메인 넷체커(213), 서브 넷체커(214), 딜리버리 서버(212) 및 인덱스 서버(215) 그리고 복수의 스위치(216)를 포함할 수 있다. 여기서, 패킷타이징 서버(211), 딜리버리 서버(212), 메인 넷체커(213), 서브 넷체커(214) 및 인덱스 서버(215) 각각은 하나의 서버가 아닌 복수의 서버로 구성될 수 있고, 복수의 스위치(216) 각각은 복수의 서버 중 해당 서버로 데이터를 전송하거나 해당 서버로부터 데이터를 수신하는데 이용될 수 있다. 복수의 스위치(216) 각각으로, 일례로, L4 스위치가 이용될 수 있다.The
패킷타이징 서버(211)는 인코더 업체(220)의 미디어 인코더(221)로부터 데이터 스트림을 수신하고, 수신된 데이터 스트림을 시스템에서 사용하기 위한 데이터로 가공한다. 즉, 패킷타이징 서버(211)는 데이터 스트림을 복수의 피스로 변환할 수 있다. 이미 설명한 바와 같이, 미디어 인코더(221)마다 하나씩의 패킷타이징 서버(211)가 실행될 수 있다.The packetizing
딜리버리 서버(212)는 패킷타이징 서버(211)로부터 수신한 피스를 클라이언트(240)의 요청에 따라 클라이언트(240)에게 전달한다. 또한, 인덱스 서버(215)는 클라이언트(240) 목록을 유지하고, 검색 서비스를 제공한다. 여기서, 메인 넷체커(213)와 서브 넷체커(214)는 피어간 연결을 중계하는 중계서버를 의미할 수 있다.The
아래 표 1은 동시 접속자수가 15만 명이고, 콘텐츠 비트레이트가 500kbps, 공유율(sharing rate)이 80% 일 때, 필요한 서버의 수를 나타내고 있다.Table 1 below shows the number of servers required when the number of concurrent users is 150,000, the content bit rate is 500kbps, and the sharing rate is 80%.
내부 IDC(230)가 포함하는 LMS(231)는 피어 관리 시스템을 의미할 수 있다. 이러한 LMS(231)는 패킷타이징 서버(211), 딜리버리 서버(212) 및 인덱스 서버(215)를 관리하는 서버로서, 서버의 업로드 다운로드 상태나 트래픽, 쿼리 수, 리소스(CPU, 메모리), 공유율 등을 모니터링할 수 있다. 또한, LMS(231)는 동시 접속자수, 유니크 방문자 수, 공유율, 사용자 속도 분포, 평균 시청 시간 및 시청 채널수 등에 대한 통계 데이터를 생성하여 DB(232)에 저장할 수 있다. 즉, DB(232)는 통계 데이터를 저장하는 서버를 의미할 수 있다.The
이때, 상술한 바와 같이 본 발명의 일실시예에 따른 시스템은 동시 접속자수를 고려하여 적응적으로 서버 사용량을 조절함으로써, 동시 접속자수에 관계없이 항상 낮은 서버 트래픽이 유지되도록 할 수 있다. 이때, 서버 사용량은 동시 접속자의 유입률을 이용하여 결정되는 상수의 현재 동시 접속자수에 대한 비율에 기초하여 조절될 수 있다. 일례로, 서버 사용량을 상술한 수학식 1과 같이 계산될 수 있고, 이러한 서버 사용량은 도 2를 통해 설명한 딜리버리 서버(212)의 트래픽을 의미할 수 있다. 또한, 도 1을 통해 설명한 서버 사용량 조절 시스템은 도 2를 통해 설명한 시스템 자체를 의미할 수도 있고, 상술한 LMS(231)에 포함될 수도 있다.In this case, as described above, the system according to an embodiment of the present invention may adaptively adjust the server usage in consideration of the number of concurrent users, so that low server traffic is always maintained regardless of the number of concurrent users. In this case, the server usage may be adjusted based on the ratio of the constant number of concurrent users determined by using the inflow rate of concurrent users. For example, the server usage may be calculated as in
도 3은 본 발명의 일실시예에 있어서, 패킷타이징 서버의 이중화를 설명하기 위한 도면이다. 도 3은 4개의 인코더(310 내지 340)을 통해 데이터 스트림이 제공되는 경우, 주 패킷타이징 서버군(350)에서 4개의 패킷타이징 서버가 동작할 수 있음을 나타내고 있다. 즉, 'PS-1', 'PS-2', 'PS-3' 및 'PS-4'는 상술한 4개의 패킷타이징 서버를 의미할 수 있다.3 is a diagram for describing the duplication of a packetizing server according to one embodiment of the present invention. 3 illustrates that four packetizing servers can operate in the main
이때, 4개의 패킷타이징 서버는 4개의 인코더(310 내지 340)에서 수신되는 데이터 스트림을 P2P에서 사용될 수 있는 형태의 데이터인 피스로 변환하고, 모든 딜리버리 서버로 변환된 데이터를 전송할 수 있다. 이때, 4개의 패킷타이징 서버와 모든 딜리버리 서버는 스위치(370)를 이용하여 데이터를 송수신할 수 있다.In this case, the four packetizing servers may convert the data streams received from the four
이러한 패킷타이징 서버는 CPU나 트래픽 등의 리소스의 사용량이 많지 않다. 예를 들어, 20대의 딜리버리 서버(동시 접속자수 15만 명 기준)가 접속한 경우, 1Mbps 크기의 콘텐츠에 대해 20Mbps의 트래픽만을 사용한다.The packetizing server does not use much resources such as CPU or traffic. For example, if 20 delivery servers (based on 150,000 concurrent users) are connected, only 20Mbps traffic is used for 1Mbps content.
또한, 패킷타이징 서버마다 4개의 인코더(310 내지 340)로부터 서로 다른 데이터 스트림이 전송될 수 있기 때문에 도 3에 도시된 바와 같이, 피스는 주 패킷타이징 서버군(350)과 부 패킷타이징 서버군(360) 중 하나의 서버군에서만 생성되어야 한다. 따라서, 주 패킷타이징 서버군(350)과 부 패킷타이징 서버군(360)은 액티브/스탠바이의 형태로 동작할 수 있다. 부 패킷타이징 서버군(360)은 주 패킷타이징 서버군(350)의 장애에 대응하기 위해 이용될 수 있다.In addition, since different data streams may be transmitted from four
도 4는 본 발명의 일실시예에 있어서, 딜리버리 서버의 이중화를 설명하기 위한 도면이다. 패킷타이징 서버군(410)에서 변환된 데이터인 피스들은 딜리버리 서버군(420)으로 전송된다. 이때, 'DS-n'은 'n' 번째 딜리버리 서버를 의미하는 것으로, 딜리버리 서버군(420)내에 'n'개의 딜리버리 서버가 존재함을 의미할 수 있다.4 is a diagram for describing redundancy of a delivery server according to one embodiment of the present invention. Pieces that are data converted in the
각각의 딜리버리 서버는 패킷타이징 서버로부터 피스를 전달받아 일정 개수만큼 버퍼링을 수행하고, 클라이언트들인 피어(peer)들의 요청에 따라 해당 피스를 피어들에게 전송한다. 이때, 딜리버리 서버군(420)의 딜리버리 서버들 역시 스위치(430)로 바인딩될 수 있고, 동시 접속자수의 증가에 따라 딜리버리 서버를 증가시킴으로써, 트래픽을 조절할 수 있다.Each delivery server receives the pieces from the packetizing server, buffers a certain number of pieces, and transmits the pieces to the peers at the request of peers. At this time, the delivery servers of the
도 5는 본 발명의 일실시예에 있어서, 인덱스 서버의 이중화를 설명하기 위한 도면이다. 인덱스 서버군(510)은 복수의 인덱스 서버를 포함할 수 있고, 'IS-n'은 'n' 번째 인덱스 서버를 의미하는 것으로, 인덱스 서버군(520)내에 'n'개의 인덱스 서버가 존재함을 의미할 수 있다.5 is a diagram for describing redundancy of an index server according to an embodiment of the present invention. The
이때, 복수의 인덱스 서버 각각은 클라이언트인 피어들을 관리한다. 보다 자세하게는, 클라이언트들에 설치된 피어를 관리하고, 피어의 요청에 따른 검색 결과를 전달한다. 또한, 인덱스 서버는 메시지 전달을 수행할 수 있고, 피어와 지속적인 연결을 유지할 수 있다. 이러한 인덱스 서버 각각은 스위치(520)와 바인딩될 수 있고, 동시 접속자수에 따라 인덱스 서버를 증가시킬 수 있다.In this case, each of the plurality of index servers manages peers as clients. More specifically, it manages peers installed on clients and delivers search results based on peer requests. In addition, the index server can perform message delivery and maintain a persistent connection with the peer. Each of these index servers may be bound to the
도 6은 본 발명의 일실시예에 있어서, 피어 관리 시스템을 도시한 도면이다. 도 6에 도시된 LMS(610)는 피어 관리 시스템을, IS(620)는 인덱스 서버를, PS(630)는 패킷타이징 서버를, DS(640)는 딜리버리 서버를 각각 의미할 수 있다. 이때, 피어 관리 시스템은 인덱스 서버, 패킷타이징 서버 및 딜리버리 서버에 대한 관리, 배포, 갱신 및 모니터링 기능을 수행할 수 있고, 피어(피어)에 대한 통계 수집 및 분석 기능을 수행할 수 있다. 예를 들어, 피어 관리 시스템은 CPU나 메모리의 사용량 또는 트래픽과 같이 상술한 서버들의 상태를 모니터링하고, 장애 상황에 대한 이벤트 알림 기능(SMS, e-mail)을 제공할 수 있다.6 illustrates a peer management system according to an embodiment of the present invention. The
도 7은 본 발명의 일실시예에 있어서, 피어에서 이용 가능한 버퍼를 설명하기 위한 도면이다. 피어는 상술한 바와 같이 클라이언트에 설치되어 동작할 수 있는 소프트웨어로서 어느 피스를 어디로부터 수신할 것인가를 결정한다. 아래 표 2는 피어에서의 피스 선택 방법과 수신 가능한 소스를 나타내고 있다.7 is a diagram for explaining a buffer available in a peer according to an embodiment of the present invention. A peer is software that can be installed and operated on a client as described above to determine which piece to receive from where. Table 2 below shows how to select a piece at a peer and the source that can be received.
표 2에서 'Rarest First'는 네트워크 상에서 가장 드문(rare) 피스를 먼저 수신하는 피스 선택 방법을 의미하고, 'Progressive'는 앞에서부터 순차적으로 피스를 수신하는 피스 선택 방법을 의미한다. 이때, 피스는 딜리버리 서버를 통해 수신하거나 다른 피어로부터 수신할 수 있다.In Table 2, 'Rarest First' means a piece selection method for receiving the rarest pieces first on the network, and 'Progressive' means a piece selection method for receiving pieces sequentially from the front. In this case, the piece may be received through a delivery server or received from another peer.
이때, 피어는 재생을 원활하게 하고, 공유효율을 높이기 위해 수신된 피스를 저장하는 버퍼를 이용할 수 있다. 도 7은 제1 버퍼(710) 내지 제3 버퍼(730)를 도시하고 있다.At this time, the peer may use a buffer to store the received piece in order to facilitate playback and increase sharing efficiency. FIG. 7 shows the
우선, 제1 버퍼(710)는 'Progressive'를 통해 수신된 피스를 저장하기 위한 제1 범위(711)와 'Rarest First'를 통해 수신된 피스를 저장하기 위한 제2 범위(712)로 나뉠 수 있다. 동시에, 제1 버퍼(710)는 딜리버리 서버를 통해 수신된 피스를 저장하기 위한 제3 범위(713)와 다른 피어를 통해 수신된 피스를 저장하기 위한 제4 범위(714)로 나뉠 수 있다.First, the
제2 버퍼(720)는 실제로 나뉘어진 버퍼의 영역들을 나타내고 있다. 즉, 제2 버퍼(720)는 딜리버리 서버를 통해 'Progressive'로 수신된 피스를 저장하기 위한 제1 영역(721), 다른 피어를 통해 'Progressive'로 수신된 피스를 저장하기 위한 제2 영역(722) 및 다른 피어를 통해 'Rarest First'로 수신된 피스를 저장하기 위한 제3 영역(723)으로 구분될 수 있다.The
제3 버퍼(730)는 나뉘어진 영역의 크기가 서로 다를 수 있음을 나타내고 있다. 즉, 제3 버퍼(730)는 영역 A(731), 영역 B(732) 및 영역 C(733)가 각각 서로 다른 크기 비율로 구성된 일례를 나타낸다. 일례로, 영역 A(731), 영역 B(732), 영역 C(733)의 크기 비율은 1:4:16의 비율을 가질 수 있다. 이러한 비율은 필요에 따라 조절될 수 있다. 또한, 필요에 따라 영역 B(732)와 영역 C(733)에도 일정 부분의 피스가 딜리버리 서버로부터 수신되어 저장될 수 있다.The
이때, 피어와 피어간의 동기화가 이루어지지 않는 경우에는 공유율의 저하가 발생할 수 있다. 이 경우에도 공유율을 극대화하기 위해 본 발명의 실시예들에 따른 피어들은 콘텐츠의 재생된 이용된 피스를 버리지 않고 일정량을 버퍼링하기 위한 버퍼(이하, 'Z-Buffer')를 추가로 이용할 수 있다.In this case, when the peer and the peer are not synchronized, the sharing rate may decrease. Even in this case, to maximize the sharing rate, peers according to embodiments of the present invention may additionally use a buffer (hereinafter, referred to as 'Z-Buffer') for buffering a certain amount without discarding the used piece of content. .
도 8은 본 발명의 일실시예에 있어서, 콘텐츠의 재생에 이용된 피스를 버퍼링하기 위한 버퍼의 일례를 나타낸 도면이다. 도 8에서 제1 점선 박스(810)는 제1 피어와 제2 피어의 버퍼 그리고, 제1 피어와 제2 피어간에 동기화가 이루어지지 않은 경우의 공유 가능 버퍼의 크기(811)를 나타낸다. 즉, 제1 피어와 제2 피어간에 동기화가 이루어지지 않는 경우, 데이터의 공유율은 감소하게 된다. 제2 점선 박스(820)는 Z-Buffer를 이용함으로써, 공유 가능 버퍼의 크기(821)를 증가시킴으로써, 데이터의 공유율을 극대화할 수 있음을 나타내고 있다.8 is a diagram showing an example of a buffer for buffering a piece used for reproduction of content according to one embodiment of the present invention. In FIG. 8, the first dotted
일반적으로 버퍼링은 스트리밍 서비스에서 콘텐츠의 재생을 원활하게 하고, 공유효율도 높이나 딜레이로 인해 화면이 늦어지는 단점이 있기 때문에 버퍼링의 사용을 최소화 해야 한다. 그러나, 상술한 바와 같이, 버퍼링을 최소화하기 위한 버퍼의 크기를 이용할 때, 피어간 동기화가 이루어지지 않는다면, 공유율이 감소하게 되는 문제가 발생한다. 따라서, 본 발명의 실시예들에 따른 피어들에서는 이미 재생한 피스의 일정량을 버리지 않고, 추가로 버퍼링함으로써, 버퍼링의 사용을 최소화함과 동시에 공유율을 극대화할 수 있다.In general, buffering should minimize the use of buffering because it has the disadvantage of smoothly playing content in a streaming service and increasing screening efficiency due to high sharing efficiency or delay. However, as described above, when using the size of the buffer to minimize the buffering, if the peer-to-peer synchronization is not achieved, there is a problem that the sharing rate is reduced. Therefore, in the peers according to the embodiments of the present invention, the buffers may be additionally buffered without discarding a predetermined amount of the pieces that have already been reproduced, thereby minimizing the use of buffering and maximizing the sharing rate.
또한, P2P 스트리밍 서비스에서는 이미 설명한 바와 같이, 피어의 네트워크 상황에 따라 피어간에 또는 피어와 서버간의 동기화를 유지하기 어렵고, 따라서, 공유율의 저하가 발생할 수 있다. 이에, 본 발명의 실시예들에 따른 피어들은 전체 버퍼의 크기는 유지하되, 기존 버퍼의 크기와 Z-Buffer의 크기를 동적으로 조절함으로써, 피어간에 그리고 피어와 서버간의 동기화를 유지할 수 있다.In addition, in the P2P streaming service, as described above, it is difficult to maintain synchronization between peers or between peers and servers depending on the network conditions of the peers, and thus, the sharing rate may decrease. Thus, peers according to embodiments of the present invention can maintain the size of the entire buffer, but by dynamically adjusting the size of the existing buffer and the size of the Z-Buffer, it is possible to maintain synchronization between peers and between the peer and the server.
도 9는 본 발명의 일실시예에 있어서, 영역별 크기 조절이 가능한 피어의 버퍼의 일례를 나타낸 도면이다. 여기서, 영역 C(910)는 도 7에서 다른 피어를 통해 'Rarest First'로 수신된 피스를 저장하기 위한 영역임을 이미 설명하였다. 도 9에 따른 실시예에서는 이러한 영역 C(910)의 버퍼 크기를 제1 크기(920)에서 제2 크기(930)로 증가시키고, 동시에 Z-Buffer의 크기를 제3 크기(940)에서 제4 크기(950)로 감소시킬 수 있다. 이 경우, 전체 버퍼의 크기는 일정하게 유지될 수 있다.FIG. 9 is a diagram illustrating an example of a buffer of a peer capable of size-specific adjustment according to an embodiment of the present invention. Here,
즉, 피어의 네트워크 상황이 나쁜 경우 피어간에 그리고 피어와 서버간의 동기화를 유지하기 어렵고, 동기화가 유지되지 않는 경우 공유율이 저하된다. 따라서, 본 발명의 실시예들에 따른 피어들은 기존 버퍼의 크기와 Z-Buffer의 크기를 동적으로 조절함으로써, 동기화를 유지시켜 공유율의 저하를 막을 수 있다.That is, it is difficult to maintain synchronization between peers and between peers and servers when the network conditions of the peers are bad, and the sharing rate is lowered when synchronization is not maintained. Therefore, peers according to embodiments of the present invention can dynamically adjust the size of the existing buffer and the size of the Z-Buffer, thereby maintaining synchronization to prevent a decrease in sharing rate.
다시 말해, 이미 재생한 피스의 일정량을 버퍼링하는 Z-Buffer를 이용하여 피어간에 동기화가 이루어지지 않아 서로 버퍼링되는 피스들이 어긋나더라도 공유할 수 있는 부분을 증가시킴으로써, 공유율을 극대화할 수 있다. 또한, 기존 버퍼의 크기와 Z-Buffer의 크기를 동적으로 조절함으로써, 피어간에 그리고 피어와 서버간의 동기화를 유지할 수 있다.In other words, by using Z-Buffer buffering a certain amount of the already played piece, the sharing rate can be maximized by increasing the parts to be shared even if the pieces buffered with each other are not synchronized between peers. In addition, by dynamically adjusting the size of the existing buffer and the Z-Buffer, it is possible to maintain synchronization between peers and between peers and servers.
상술한 네트워크 상황은 피어에서의 다운로드/업로드 속도 등과 같이 네트워크의 상태를 측정 가능한 모든 요소들 중 적어도 하나를 통해 결정될 수 있고, 이러한 네트워크 상황에 따라 버퍼의 크기가 결정될 수 있다.The above-described network situation may be determined through at least one of all factors capable of measuring the state of the network, such as a download / upload speed at a peer, and the size of the buffer may be determined according to the network situation.
도 9에서는 영역 C(910)의 크기와 Z-Buffer의 크기를 동시에 조절하는 일례만을 설명하였으나, 필요에 따라 영역 A 또는 영역 B의 크기를 조절할 수도 있고, 세 개의 영역 중 둘 이상의 영역의 크기를 조절할 수도 있다.In FIG. 9, only an example of simultaneously adjusting the size of the
도 10은 본 발명의 일실시예에 있어서, 버퍼링 시스템의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 버퍼링 시스템(1000)은 상술한 피어, 즉, P2P 스트리밍 서비스를 제공받는 클라이언트 단말기와 같이, 버퍼링이 필요한 단말기에 포함되어 동작할 수 있다. 이때, 버퍼링 시스템(1000)은 도 10에 도시된 바와 같이, 저장부(1010)를 포함하고, 필요에 따라 버퍼 크기 결정부(1020)를 더 포함한다.10 is a block diagram illustrating an internal configuration of a buffering system according to an embodiment of the present invention. The
저장부(1010)는 스트리밍 서비스를 제공하는 서버 또는 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어로부터 전송된 데이터 스트림의 피스들을 제1 버퍼에 저장하고, 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장한다. 이때, 제1 버퍼와 제2 버퍼에 저장된 피스들은 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어들에게 제공될 수 있다. 즉, 피어간 동기화가 맞지 않는 경우에도 제2 버퍼를 이용하여 이미 재생에 이용된 피스들을 버리지 않고 일정량을 추가로 버퍼링함으로써, 이미 재생에 이용된 피스들을 아직 수신하지 못한 다른 피어들에게 전달할 수 있어 피어간 데이터의 공유율을 극대화할 수 있다.The
버퍼 크기 조절부(1020)는 네트워크 상황에 따라 제1 버퍼의 크기를 동적으로 조절한다. 이때, 버퍼 크기 조절부(1020)는 제1 버퍼의 크기를 증가시킨 만큼 제2 버퍼의 크기를 감소시키거나 제1 버퍼의 크기를 감소시킨 만큼 제2 버퍼의 크기를 증가시킴으로써, 전체 버퍼의 크기가 동일하게 유지되도록 조절할 수 있다. 여기서, 일례로, 네트워크 상황은 피어에서의 다운로드/업로드 속도를 포함할 수 있다. 이 경우, 버퍼 크기 조절부(1020)는, 다운로드/업로드 속도에 따라 제1 버퍼 및 제2 버퍼의 크기를 조절할 수 있다. 예를 들어, 다운로드/업로드 속도의 범위에 따라 미리 제1 버퍼의 크기를 미리 결정될 수 있다. 이 경우, 버퍼 크기 조절부(1020)는 현재 다운로드/업로드 속도에 따라 미리 결정된 크기로 제1 버퍼의 크기를 증가 또는 감소시킬 수 있다.The
이때, 제1 버퍼는 순차적으로 피스를 수신하기 위한 피스 선택 방법인 프로그레시브(progressive)를 이용하여 서버로부터 수신된 피스들을 저장하기 위한 제1 영역, 프로그레시브를 이용하여 적어도 하나의 다른 피어로부터 수신된 피스들을 저장하기 위한 제2 영역 및 네트워크 상에서 가장 드문(rare) 피스를 먼저 수신하기 위한 피스 선택 방법인 레어리스트 퍼스트(rarest first)를 이용하여 적어도 하나의 다른 피어로부터 수신된 피스들을 저장하기 위한 제3 영역을 포함할 수 있다. 이 경우, 버퍼 크기 조절부(1020)는, 제3 영역의 크기를 조절하여 제1 버퍼의 크기를 조절할 수 있다.In this case, the first buffer is a first area for storing pieces received from the server using progressive, which is a piece selection method for sequentially receiving pieces, and a piece received from at least one other peer using progressive. Third area for storing pieces received from at least one other peer using a second area for storing them and a rarest first, a piece selection method for first receiving the rarest piece on the network. It can include an area. In this case, the
도 11은 본 발명의 일실시예에 있어서, 버퍼링 방법을 도시한 흐름도이다. 본 실시예에 따른 버퍼링 방법은 도 10을 통해 설명한 버퍼링 시스템(1000)에 의해 수행될 수 있다. 도 11에서는 버퍼링 시스템(1000)에 의해 각각의 단계가 수행되는 과정을 설명함으로써, 버퍼링 방법을 설명한다.11 is a flowchart illustrating a buffering method according to an embodiment of the present invention. The buffering method according to the present embodiment may be performed by the
단계(1110)에서 버퍼링 시스템(1000)은 스트리밍 서비스를 제공하는 서버 또는 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어로부터 전송된 데이터 스트림의 피스들을 제1 버퍼에 저장한다.In
단계(1120)에서 버퍼링 시스템(1000)은 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장한다. 이때, 제1 버퍼와 제2 버퍼에 저장된 피스들은 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어들에게 제공될 수 있다. 즉, 피어간 동기화가 맞지 않는 경우에도 제2 버퍼를 이용하여 이미 재생에 이용된 피스들을 버리지 않고 일정량을 추가로 버퍼링함으로써, 이미 재생에 이용된 피스들을 아직 수신하지 못한 다른 피어들에게 전달할 수 있어 피어간 데이터의 공유율을 극대화할 수 있다.In
단계(1130)에서 버퍼링 시스템(1000)은 네트워크 상황에 따라 제1 버퍼의 크기를 동적으로 조절한다. 이때, 버퍼링 시스템(1000)은 제1 버퍼의 크기를 증가시킨 만큼 제2 버퍼의 크기를 감소시키거나 제1 버퍼의 크기를 감소시킨 만큼 제2 버퍼의 크기를 증가시킴으로써, 전체 버퍼의 크기가 동일하게 유지되도록 조절할 수 있다. 여기서, 일례로, 네트워크 상황은 피어에서의 다운로드/업로드 속도를 포함할 수 있다. 이 경우, 버퍼링 시스템(1000)은 다운로드/업로드 속도에 따라 제1 버퍼 및 제2 버퍼의 크기를 조절할 수 있다. 예를 들어, 다운로드/업로드 속도의 범위에 따라 미리 제1 버퍼의 크기를 미리 결정될 수 있다. 이 경우, 버퍼링 시스템(1000)은 현재 다운로드/업로드 속도에 따라 미리 결정된 크기로 제1 버퍼의 크기를 증가 또는 감소시킬 수 있다.In
이때, 제1 버퍼는 순차적으로 피스를 수신하기 위한 피스 선택 방법인 프로그레시브를 이용하여 서버로부터 수신된 피스들을 저장하기 위한 제1 영역, 프로그레시브를 이용하여 적어도 하나의 다른 피어로부터 수신된 피스들을 저장하기 위한 제2 영역 및 네트워크 상에서 가장 드문 피스를 먼저 수신하기 위한 피스 선택 방법인 레어리스트 퍼스트를 이용하여 적어도 하나의 다른 피어로부터 수신된 피스들을 저장하기 위한 제3 영역을 포함할 수 있다. 이 경우, 버퍼링 시스템(1000)은 제3 영역의 크기를 조절하여 제1 버퍼의 크기를 조절할 수 있다.In this case, the first buffer is a first area for storing pieces received from the server using progressive, a piece selection method for sequentially receiving pieces, and storing pieces received from at least one other peer using progressive. And a third area for storing pieces received from at least one other peer using a rare list first, which is a piece selection method for first receiving the rarest piece on the network. In this case, the
다른 실시예에 따른 버퍼링 방법은 실질적으로 버퍼링 시스템(1000)의 역할을 수행하고, 클라이언트 단말기에 설치되는 어플리케이션에 의해 수행될 수도 있다. 이때, 이러한 어플리케이션을 클라이언트로 배포하는 시스템은 P2P 기반의 스트리밍 서비스를 제공하는 시스템에 포함되거나 또는 P2P 기반의 스트리밍 서비스를 제공하는 시스템과 연계된 시스템일 수 있다.The buffering method according to another embodiment may substantially perform the role of the
상술한 어플리케이션은 스트리밍 서비스를 제공하는 서버 또는 스트리밍 서비스를 제공받는 적어도 하나의 다른 피어로부터 데이터 스트림의 피스들을 전송받아 제1 버퍼에 저장하고, 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하도록 클라이언트에서 동작할 수 있다.The above-described application receives pieces of a data stream from a server providing a streaming service or at least one other peer receiving a streaming service and stores the pieces of the data stream in a first buffer, and at least some of the pieces used for playing the content among the stored pieces. May be operated on the client to store the data in the second buffer.
제1 버퍼 및 제2 버퍼에 저장된 피스들은 스트리밍 서비스를 제공받는 적어도 하나의 다른 클라이언트로 전송 가능할 수 있으며, 네트워크 상황에 따라 제1 버퍼의 크기가 어플리케이션에 의해 동적으로 조절될 수 있다. 이 경우, 어플리케이션은 제1 버퍼의 크기를 증가시킨 만큼 제2 버퍼의 크기를 감소시키거나 또는 제1 버퍼의 크기를 감소시킨 만큼 제2 버퍼의 크기를 증가시켜 제1 버퍼 및 제2 버퍼를 포함하는 전체 버퍼의 크기가 동일하게 유지할 수 있다.Pieces stored in the first buffer and the second buffer may be transmitted to at least one other client provided with the streaming service, and the size of the first buffer may be dynamically adjusted by an application according to network conditions. In this case, the application includes the first buffer and the second buffer by decreasing the size of the second buffer by increasing the size of the first buffer or by increasing the size of the second buffer by decreasing the size of the first buffer. The total buffer size can be kept the same.
또한, 제1 버퍼는 순차적으로 피스를 수신하기 위한 피스 선택 방법인 프로그레시브(progressive)를 이용하여 딜리버리 서버를 통해 수신된 피스들이 저장되는 제1 영역, 적어도 하나의 다른 클라이언트로부터 프로그레시브를 이용하여 수신된 피스들이 저장되는 제2 영역 및 네트워크 상에서 가장 드문(rare) 피스를 먼저 수신하기 위한 피스 선택 방법인 레어리스트 퍼스트(rarest first)를 이용하여 적어도 하나의 다른 클라이언트로부터 수신된 피스들이 저장되는 제3 영역을 포함할 수 있다. 이 경우에는 네트워크 상황에 따라 제3 영역의 크기가 어플리케이션에 의해 동적으로 조절되어 제1 버퍼의 크기가 조절될 수 있다.In addition, the first buffer is a first area in which pieces received through the delivery server are stored using progressive, which is a piece selection method for sequentially receiving pieces, and is received using progressive from at least one other client. A second area in which pieces are stored and a third area in which pieces received from at least one other client are stored using a rare first first which is a piece selection method for first receiving the rarest piece on the network. It may include. In this case, the size of the third region may be dynamically adjusted by an application according to a network situation, and thus the size of the first buffer may be adjusted.
네트워크 상황은 클라이언트에서의 다운로드/업로드 속도를 포함할 수 있고, 이 경우, 제1 버퍼의 크기는 다운로드/업로드 속도에 따라 어플리케이션에 의해 동적으로 조절될 수 있다.The network situation may include a download / upload speed at the client, in which case the size of the first buffer may be dynamically adjusted by the application according to the download / upload speed.
스트리밍 서비스를 제공하는 서버는 복수의 패킷타이징 서버를 포함할 수 있고, 이 경우, 복수 개의 패킷타이징 서버는 각각 동일한 수의 패킷타이징 서버를 포함하는 주 패킷타이징 서버군과 부 패킷타이징 서버군으로 분류되어, 주 패킷타이징 서버군의 장애 시 부 패킷타이징 서버군이 주 패킷타이징 서버군을 대체할 수 있다.The server providing the streaming service may include a plurality of packetizing servers. In this case, the plurality of packetizing servers may include a primary packetizing server group and a secondary packet tie server each including the same number of packetizing servers. In the case of failure of the primary packetizing server group, the secondary packetizing server group may replace the primary packetizing server group.
또한, 스트리밍 서비스를 제공하는 서버는 복수의 딜리버리 서버를 포함할 수 있고, 이 경우, 스트리밍 서비스를 제공하는 시스템에서 동시 접속자수에 따라 이용되는 복수의 딜리버리 서버의 수를 조절함으로써 트래픽이 조절될 수 있다.In addition, the server providing the streaming service may include a plurality of delivery servers, and in this case, the traffic may be adjusted by adjusting the number of the plurality of delivery servers used according to the number of simultaneous accesses in the system providing the streaming service. have.
물론, 스트리밍 서비스를 제공하는 서버는 복수의 패킷타이징 서버와 복수의 딜리버리 서버를 모두 포함할 수도 있다.Of course, the server providing the streaming service may include both a plurality of packetizing servers and a plurality of delivery servers.
이와 같이, 본 발명의 실시예들에 따른 버퍼링 시스템 및 방법을 이용하면, 피어간에 동기화가 이루어지지 않은 경우에도 콘텐츠의 재생에 이미 이용된 피스들을 버리지 않고 일정량을 추가로 버퍼링함으로써, 피어간에 데이터의 공유율을 극대화할 수 있다. 또한, 네트워크 상황에 따라 전송된 데이터 스트림의 피스들을 저장하는 버퍼의 크기를 동적으로 조절함으로써, 피어간에 그리고 피어와 서버간의 동기화를 유지하여 공유율 저하를 막을 수 있고, 버퍼의 크기를 동적으로 증가(또는 감소)시키되, 콘텐츠 재생에 이미 이용된 피스들을 버퍼링하는 버퍼의 크기를 동일한 크기만큼 감소(또는 증가)시켜 전체 버퍼의 크기를 동일하게 유지할 수 있다.As such, using the buffering system and method according to the embodiments of the present invention, even if there is no synchronization between peers, by additionally buffering a certain amount of data without discarding pieces already used for playback of content, You can maximize the sharing rate. In addition, by dynamically adjusting the size of the buffer that stores the pieces of the transmitted data stream according to the network conditions, the sharing rate can be prevented by maintaining synchronization between peers and between peers and servers, and the buffer size is increased dynamically. It is possible to keep the same size of the entire buffer by reducing (or increasing) the size of the buffer that buffers the pieces already used for content playback (or decrease) by the same size.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 또한, 상술한 파일 시스템은 컴퓨터 판독이 가능한 기록 매체에 기록될 수 있다.Methods according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. In addition, the above-described file system can be recorded in a computer-readable recording medium.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
1000: 버퍼링 시스템
1010: 저장부
1020: 버퍼 크기 조절부1000: buffering system
1010: storage unit
1020: buffer size adjuster
Claims (16)
스트리밍 서비스를 제공하는 서버 또는 상기 스트리밍 서비스를 제공받는 적어도 하나의 다른 클라이언트로부터 데이터 스트림의 피스들을 전송받아 제1 버퍼에 저장하고, 상기 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하도록 클라이언트에서 동작하는 어플리케이션을 네트워크를 통해 상기 클라이언트로 배포하는 컴퓨터 수단
을 포함하고,
네트워크 상황에 따라 상기 제1 버퍼의 크기가 상기 어플리케이션에 의해 동적으로 조절되는 것을 특징으로 하는 어플리케이션 배포 시스템.In a system for distributing an application,
Receive pieces of a data stream from a server providing a streaming service or at least one other client provided with the streaming service, and store the pieces of data stream in a first buffer, and remove at least a portion of the pieces used to play content among the stored pieces. Computer means for distributing an application running on the client to the client over a network to store in a buffer
Including,
And the size of the first buffer is dynamically adjusted by the application according to a network situation.
상기 제1 버퍼 및 상기 제2 버퍼에 저장된 피스들은 상기 스트리밍 서비스를 제공받는 적어도 하나의 다른 클라이언트로 전송 가능한 것을 특징으로 하는 어플리케이션 배포 시스템.The method of claim 1,
The pieces stored in the first buffer and the second buffer can be transmitted to at least one other client provided with the streaming service.
상기 어플리케이션은 상기 제1 버퍼의 크기를 증가시킨 만큼 상기 제2 버퍼의 크기를 감소시키거나 또는 상기 제1 버퍼의 크기를 감소시킨 만큼 상기 제2 버퍼의 크기를 증가시켜 상기 제1 버퍼 및 상기 제2 버퍼를 포함하는 전체 버퍼의 크기가 동일하게 유지하는 것을 특징으로 하는, 어플리케이션 배포 시스템.The method of claim 1,
The application may reduce the size of the second buffer by increasing the size of the first buffer or increase the size of the second buffer by decreasing the size of the first buffer to increase the size of the first buffer and the first buffer. An application distribution system, characterized in that the size of all buffers, including two buffers, remains the same.
스트리밍 서비스를 제공하는 서버 또는 상기 스트리밍 서비스를 제공받는 적어도 하나의 다른 클라이언트로부터 데이터 스트림의 피스들을 전송받아 제1 버퍼에 저장하고, 상기 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하도록 클라이언트에서 동작하는 어플리케이션을 네트워크를 통해 상기 클라이언트로 배포하는 컴퓨터 수단
을 포함하고,
상기 제1 버퍼는 순차적으로 피스를 수신하기 위한 피스 선택 방법인 프로그레시브(progressive)를 이용하여 상기 서버를 통해 수신된 피스들이 저장되는 제1 영역, 상기 적어도 하나의 다른 클라이언트로부터 상기 프로그레시브를 이용하여 수신된 피스들이 저장되는 제2 영역 및 네트워크 상에서 가장 드문(rare) 피스를 먼저 수신하기 위한 피스 선택 방법인 레어리스트 퍼스트(rarest first)를 이용하여 상기 적어도 하나의 다른 클라이언트로부터 수신된 피스들이 저장되는 제3 영역을 포함하는 것을 특징으로 하는, 어플리케이션 배포 시스템.In a system for distributing an application,
Receive pieces of a data stream from a server providing a streaming service or at least one other client provided with the streaming service, and store the pieces of data stream in a first buffer, and remove at least a portion of the pieces used to play content among the stored pieces. Computer means for distributing an application running on the client to the client over a network to store in a buffer
Including,
The first buffer is a first area in which pieces received through the server are stored using progressive, a piece selection method for sequentially receiving pieces, and is received using the progressive from the at least one other client. A second area in which the stored pieces are stored and a piece received from the at least one other client using a rare first first which is a piece selection method for first receiving the rarest piece on the network. An application distribution system, comprising three areas.
네트워크 상황에 따라 상기 제3 영역의 크기가 상기 어플리케이션에 의해 동적으로 조절되어 상기 제1 버퍼의 크기가 조절되는 것을 특징으로 하는, 어플리케이션 배포 시스템.The method of claim 5,
And the size of the first buffer is dynamically adjusted by the application according to a network condition, thereby adjusting the size of the first buffer.
상기 네트워크 상황은 클라이언트에서의 다운로드/업로드 속도를 포함하고,
상기 제1 버퍼의 크기는 상기 다운로드/업로드 속도에 따라 상기 어플리케이션에 의해 동적으로 조절되는 것을 특징으로 하는, 어플리케이션 배포 시스템.7. The method according to claim 1 or 6,
The network situation includes the download / upload speed at the client,
And the size of the first buffer is dynamically adjusted by the application according to the download / upload speed.
상기 서버는 복수의 패킷타이징 서버를 포함하고,
상기 복수 개의 패킷타이징 서버는 각각 동일한 수의 패킷타이징 서버를 포함하는 주 패킷타이징 서버군과 부 패킷타이징 서버군으로 분류되어, 상기 주 패킷타이징 서버군의 장애 시 상기 부 패킷타이징 서버군이 상기 주 패킷타이징 서버군을 대체하는 것을 특징으로 하는, 어플리케이션 배포 시스템.6. The method according to claim 1 or 5,
The server includes a plurality of packetizing server,
The plurality of packetizing servers are classified into a primary packetizing server group and a secondary packetizing server group each including the same number of packetizing servers, so that the secondary packet tie server when the primary packetizing server group fails And a gong server group replaces the main packetizing server group.
상기 서버는 복수의 딜리버리 서버를 포함하고,
상기 스트리밍 서비스를 제공하는 시스템에서 동시 접속자수에 따라 이용되는 상기 복수의 딜리버리 서버의 수를 조절함으로써 트래픽이 조절되는 것을 특징으로 하는, 어플리케이션 배포 시스템.6. The method according to claim 1 or 5,
The server includes a plurality of delivery server,
The traffic is adjusted by adjusting the number of the plurality of delivery servers used in accordance with the number of simultaneous access in the system for providing the streaming service.
상기 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하는 단계; 및
네트워크 상황에 따라 상기 제1 버퍼의 크기를 동적으로 조절하는 단계
를 포함하고,
상기 제1 버퍼 및 상기 제2 버퍼에 저장된 피스들은 상기 스트리밍 서비스를 제공받는 적어도 하나의 다른 클라이언트로 전송 가능한 것을 특징으로 하는 버퍼링 방법.Storing pieces of data stream transmitted from a server providing a streaming service or at least one other client receiving the streaming service in a first buffer;
Storing at least a portion of the stored pieces used for reproduction of content in a second buffer; And
Dynamically adjusting the size of the first buffer according to network conditions
Including,
The pieces stored in the first buffer and the second buffer can be transmitted to at least one other client provided with the streaming service.
상기 동적으로 조절하는 단계는,
상기 제1 버퍼의 크기를 증가시킨 만큼 상기 제2 버퍼의 크기를 감소시키거나 또는 상기 제1 버퍼의 크기를 감소시킨 만큼 상기 제2 버퍼의 크기를 증가시켜 상기 제1 버퍼 및 상기 제2 버퍼를 포함하는 전체 버퍼의 크기를 동일하게 유지하는 단계
를 포함하는 것을 특징으로 하는, 버퍼링 방법.The method of claim 10,
Dynamically adjusting,
Decreasing the size of the second buffer by increasing the size of the first buffer or increasing the size of the second buffer by decreasing the size of the first buffer to reduce the size of the first buffer and the second buffer. Keeping the total size of the containing buffers the same
A buffering method, characterized in that it comprises a.
상기 저장된 피스들 중 콘텐츠의 재생에 이용된 피스들의 적어도 일부를 제2 버퍼에 저장하는 단계
를 포함하고,
상기 제1 버퍼는 순차적으로 피스를 수신하기 위한 피스 선택 방법인 프로그레시브를 이용하여 상기 서버를 통해 수신된 피스들이 저장되는 제1 영역, 상기 적어도 하나의 다른 클라이언트로부터 상기 프로그레시브를 이용하여 수신된 피스들이 저장되는 제2 영역 및 네트워크 상에서 가장 드문 피스를 먼저 수신하기 위한 피스 선택 방법인 레어리스트 퍼스트를 이용하여 상기 적어도 하나의 다른 클라이언트로부터 수신된 피스들이 저장되는 제3 영역을 포함하고,
상기 제1 버퍼 및 상기 제2 버퍼에 저장된 피스들은 상기 스트리밍 서비스를 제공받는 적어도 하나의 다른 클라이언트로 전송 가능한 것을 특징으로 하는 버퍼링 방법.Storing pieces of data stream transmitted from a server providing a streaming service or at least one other client receiving the streaming service in a first buffer; And
Storing at least a portion of the stored pieces used for reproduction of content in a second buffer
Including,
The first buffer is a first area in which pieces received through the server are stored using progressive, a piece selection method for sequentially receiving pieces, and pieces received using the progressive from the at least one other client. A second area to be stored and a third area to store pieces received from the at least one other client using a rare list first, which is a piece selection method for first receiving the rarest piece on the network,
The pieces stored in the first buffer and the second buffer can be transmitted to at least one other client provided with the streaming service.
네트워크 상황에 따라 상기 제3 영역의 크기를 조절하여 상기 제1 버퍼의 크기를 조절하는 단계를 더 포함하는 것을 특징으로 하는 버퍼링 방법.The method of claim 13,
And adjusting the size of the first buffer by adjusting the size of the third region according to a network situation.
상기 네트워크 상황은 클라이언트에서의 다운로드/업로드 속도를 포함하고,
상기 다운로드/업로드 속도에 따라 상기 제1 버퍼의 크기가 동적으로 조절되는 것을 특징으로 하는 버퍼링 방법.The method according to claim 10 or 14,
The network situation includes the download / upload speed at the client,
And a size of the first buffer is dynamically adjusted according to the download / upload speed.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110005923A KR101242830B1 (en) | 2011-01-20 | 2011-01-20 | System and method for performing buffering in P2 based streaming service and system for distributing application processing buffering in client |
JP2012008396A JP2012151849A (en) | 2011-01-19 | 2012-01-18 | System and method of packetizing data stream in p2p based streaming service |
JP2012008429A JP5529177B2 (en) | 2011-01-19 | 2012-01-18 | System and method for buffering with P2P-based streaming service, and system for distributing an application that processes buffering on a client |
US13/353,491 US9438669B2 (en) | 2011-01-19 | 2012-01-19 | System and method for packetizing data stream in peer-to-peer (P2P) based streaming service |
US13/353,582 US9736236B2 (en) | 2011-01-19 | 2012-01-19 | System and method for managing buffering in peer-to-peer (P2P) based streaming service and system for distributing application for processing buffering in client |
JP2015149291A JP5934828B2 (en) | 2011-01-19 | 2015-07-29 | System and method for packetizing data stream of P2P based streaming service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110005923A KR101242830B1 (en) | 2011-01-20 | 2011-01-20 | System and method for performing buffering in P2 based streaming service and system for distributing application processing buffering in client |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120107895A Division KR20120116378A (en) | 2012-09-27 | 2012-09-27 | System and method for executing buffering in streaming service based on peer to peer and system for distributing applicaiotn processing buffering |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120084513A KR20120084513A (en) | 2012-07-30 |
KR101242830B1 true KR101242830B1 (en) | 2013-03-12 |
Family
ID=46715417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110005923A KR101242830B1 (en) | 2011-01-19 | 2011-01-20 | System and method for performing buffering in P2 based streaming service and system for distributing application processing buffering in client |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101242830B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101590098B1 (en) * | 2015-01-27 | 2016-01-29 | 홍익대학교 산학협력단 | Apparatus and method for buffering |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060050381A (en) * | 2004-09-03 | 2006-05-19 | 마이크로소프트 코포레이션 | System and method for distributed streaming of scalable media |
KR20060067842A (en) * | 2004-12-14 | 2006-06-20 | 마이크로소프트 코포레이션 | Method and system for downloading updates |
KR20070102896A (en) * | 2006-04-17 | 2007-10-22 | 주식회사 케이티 | Real time online game service system and method |
KR20080022857A (en) * | 2006-09-08 | 2008-03-12 | 주식회사 아이큐브 | Peer-to-peer on-demand video service system |
-
2011
- 2011-01-20 KR KR1020110005923A patent/KR101242830B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060050381A (en) * | 2004-09-03 | 2006-05-19 | 마이크로소프트 코포레이션 | System and method for distributed streaming of scalable media |
KR20060067842A (en) * | 2004-12-14 | 2006-06-20 | 마이크로소프트 코포레이션 | Method and system for downloading updates |
KR20070102896A (en) * | 2006-04-17 | 2007-10-22 | 주식회사 케이티 | Real time online game service system and method |
KR20080022857A (en) * | 2006-09-08 | 2008-03-12 | 주식회사 아이큐브 | Peer-to-peer on-demand video service system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101590098B1 (en) * | 2015-01-27 | 2016-01-29 | 홍익대학교 산학협력단 | Apparatus and method for buffering |
Also Published As
Publication number | Publication date |
---|---|
KR20120084513A (en) | 2012-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11539768B2 (en) | System and method of minimizing network bandwidth retrieved from an external network | |
Kreitz et al. | Spotify--large scale, low latency, P2P music-on-demand streaming | |
JP5529177B2 (en) | System and method for buffering with P2P-based streaming service, and system for distributing an application that processes buffering on a client | |
US9497035B2 (en) | Method, device, and system for playing media based on P2P | |
US6970939B2 (en) | Method and apparatus for large payload distribution in a network | |
KR101104729B1 (en) | Contents distributed storage multimedia streaming system and method using optimal cache fragment acquisition | |
Lederer et al. | Towards peer-assisted dynamic adaptive streaming over HTTP | |
US12250254B2 (en) | System and method of minimizing network bandwidth retrieved from an external network | |
KR20120056492A (en) | System and method for controlling server usage in streaming service based on peer to peer | |
KR100919254B1 (en) | A streaming distribution system and a method for distributing transfer of streaming data through p2p data transfer using udp holepunching | |
KR101242830B1 (en) | System and method for performing buffering in P2 based streaming service and system for distributing application processing buffering in client | |
US9386056B1 (en) | System, method and computer readable medium for providing media stream fragments | |
Liang et al. | Adjustable Two‐Tier Cache for IPTV Based on Segmented Streaming | |
KR101262622B1 (en) | System and method for controlling server usage in streaming service based on peer to peer | |
KR101914105B1 (en) | System and method for executing buffering in streaming service based on peer to peer and system for distributing applicaiotn processing buffering | |
KR20120116378A (en) | System and method for executing buffering in streaming service based on peer to peer and system for distributing applicaiotn processing buffering | |
KR101417890B1 (en) | System and method for packetizing data stream in streaming service based on peer to peer | |
KR101112572B1 (en) | Contents Distributed Storage Multimedia Streaming System and Method Using Node Switching Based on Cache Fragment Storage Volume | |
KR20140026993A (en) | System and method for packetizing data stream in streaming service based on peer to peer | |
KR101097998B1 (en) | System and Method for live streaming service | |
Kusmierek et al. | Periodic broadcast with dynamic server selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20110120 |
|
PA0201 | Request for examination | ||
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20110802 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20120730 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
A107 | Divisional application of patent | ||
PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20120927 Patent event code: PA01071R01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20130227 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20130306 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20130306 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20151223 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20151223 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170117 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20170117 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180102 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20180102 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190102 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20190102 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20200102 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20200102 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20201229 Start annual number: 9 End annual number: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20220103 Start annual number: 10 End annual number: 10 |
|
PR1001 | Payment of annual fee |
Payment date: 20221221 Start annual number: 11 End annual number: 11 |
|
PR1001 | Payment of annual fee |
Payment date: 20231226 Start annual number: 12 End annual number: 12 |
|
PR1001 | Payment of annual fee |
Payment date: 20241223 Start annual number: 13 End annual number: 13 |