KR20140026993A - System and method for packetizing data stream in streaming service based on peer to peer - Google Patents

System and method for packetizing data stream in streaming service based on peer to peer Download PDF

Info

Publication number
KR20140026993A
KR20140026993A KR1020120138689A KR20120138689A KR20140026993A KR 20140026993 A KR20140026993 A KR 20140026993A KR 1020120138689 A KR1020120138689 A KR 1020120138689A KR 20120138689 A KR20120138689 A KR 20120138689A KR 20140026993 A KR20140026993 A KR 20140026993A
Authority
KR
South Korea
Prior art keywords
server
piece
peer
packetizing
data stream
Prior art date
Application number
KR1020120138689A
Other languages
Korean (ko)
Other versions
KR101649562B1 (en
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 KR1020120138689A priority Critical patent/KR101649562B1/en
Publication of KR20140026993A publication Critical patent/KR20140026993A/en
Application granted granted Critical
Publication of KR101649562B1 publication Critical patent/KR101649562B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly

Abstract

Disclosed are a system and a method for packetizing data stream in a streaming service based on P2P. The packetizing system indexing the data stream, received from the encoder, to a piece, includes a piece generator for generating the piece of the received data stream every preset time interval. [Reference numerals] (1010) Piece generator; (1020) Encoder; (1030) Delivery server

Description

P2P 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템 및 방법{SYSTEM AND METHOD FOR PACKETIZING DATA STREAM IN STREAMING SERVICE BASED ON PEER TO PEER}[0001] SYSTEM AND METHOD FOR PACKETIZING DATA STREAM IN STREAMING SERVICE BASED ON PEER TO PEER [0002]

본 발명의 실시예들은 P2P 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템 및 방법에 관한 것이다.Embodiments of the present invention relate to a system and method for packet-timing a data stream in a P2P-based streaming service.

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 general, "streaming" refers to a technique of transmitting and receiving a file in real time via a network, and the most commonly used technique is progressive streaming.

이러한 스트리밍 기술을 P2P 기술에 이용할 경우 서버 및 서비스측의 부하를 줄일 수 있기 때문에 비용 절감의 효과를 얻게 된다. 이를 구현하기 위해 P2P 기반의 스트리밍 서비스를 이용하는 클라이언트는 멀티미디어 파일과 같은 컨텐츠를 재생시키는 전용 플레이어에 P2P 기반의 스트리밍 서비스를 이용하는데 필요한 기능을 포함시켜 P2P 기반의 스트리밍을 서비스하는 서버와 통신하며 P2P 기반의 스트리밍 서비스를 실현시킨다. 보다 구체적으로 설명하자면, 서버가 웹페이지를 통해 제공 가능한 컨텐츠 목록을 사용자에게 제공하고, 클라이언트는 이 목록 중에서 서비스 받을 컨텐츠를 클릭하여 선택한다. 이후, 서비스 받을 컨텐츠가 선택되면 클라이언트에 설치되어 있는 전용 플레이어가 실행되어 선택된 컨텐츠를 재생시킨다. 이때, 전용 플레이어는 P2P 기술을 이용하여 선택된 컨텐츠를 서버와 다른 피어(Peer)로부터 전송받아 재생시킨다.When the streaming technology is used for P2P technology, the load on the server and the service side can be reduced, thereby achieving a cost reduction effect. To implement this, a client using a P2P-based streaming service communicates with a P2P-based streaming server by including a function for using a P2P-based streaming service in a dedicated player for playing content such as a multimedia file, Thereby realizing a streaming service. More specifically, the server provides the user with a list of contents that can be provided through the web page, and the client clicks and selects the contents to be served from the list. Thereafter, when content to be serviced is selected, a dedicated player installed in the client is executed to reproduce the selected content. At this time, the dedicated player uses the P2P technology to transmit the selected content to another peer and reproduce the selected content.

P2P 기반의 스트리밍 서비스를 이용하고자 하는 유저 클라이언트가 서버에 접속된 후 유저 클라이언트로부터 컨텐츠를 선택 받으면, 선택된 컨텐츠를 보유하고 있는 피어를 검색하여 유저 클라이언트에게 컨텐츠를 제공할 수 있게 연결시켜 준다. 즉, 유저 클라이언트의 전용 플레이어는 선택된 컨텐츠의 파일 조각들을 서버 또는 컨텐츠를 보유하고 있는 다른 피어들로부터 전송받아 재생시키게 된다.When a user client who wishes to use a P2P-based streaming service accesses a server and receives content from a user client, he or she searches for a peer having the selected content and connects the client to provide the content to the user client. That is, the dedicated player of the user client receives and reproduces pieces of the selected content from the server or other peers holding the content.

이때, 종래기술에 따른 P2P 기반의 스트리밍 서비스에서는 데이터 스트림을 일정한 크기의 피스로 생성한다. 그러나, 인코더로부터 전달되는 데이터 스트림은 일정하지 않기 때문에 각 피스의 생성 시간이 일정하지 못하고, 이에 따라, 피어와 동기화가 이루어지지 않아 공유율이 저하되는 문제점이 발생한다. 뿐만 아니라, 인코더의 비트율(bit rate)을 시스템에서 미리 설정해야 하기 때문에 인코더 장애나 교체 시에 시스템을 재시작해야만 하고, VBR(Variable Bit Rate)을 지원하지 못하는 문제점이 있다.At this time, in the P2P-based streaming service according to the related art, the data stream is generated as a piece of a certain size. However, since the data stream transmitted from the encoder is not constant, the generation time of each piece is not constant, and thus the synchronization with the peer is not performed and the sharing rate is lowered. In addition, since the bit rate of the encoder needs to be set in advance in the system, the system must be restarted in case of encoder failure or replacement, and the VBR (Variable Bit Rate) can not be supported.

본 명세서에서는 P2P 기반의 스트리밍 서비스에서 보다 효율적으로 데이터 스트림을 패킷타이징할 수 있는 시스템 및 방법이 제공된다.In this specification, a system and method are provided for efficiently packetizing a data stream in a P2P-based streaming service.

일정 시간마다 수신된 데이터 스트림에 대해 피스를 생성하는 패킷타이징 시스템 및 방법이 제공된다.A packetizing system and method for generating a piece for a data stream received at regular intervals are provided.

일정 크기로 피스를 생성하는 것이 아니라 일정 시간마다 수신된 데이터 스트림에 대해 피스를 생성함으로써, 일정하지 않은 인코더 트래픽에 대응할 수 있고, 비트율(Bit Rate)과 무관하게 시스템의 운영이 가능하며, VBR(Variable Bit Rate)을 지원할 수 있는 패킷타이징 시스템 및 방법이 제공된다.It is possible to cope with inconsistent encoder traffic by generating pieces for a data stream received at a predetermined time instead of generating a piece at a predetermined size and to operate the system irrespective of the bit rate, Variable Bit Rate) can be supported.

피스를 생성할 현재 시간간격에 수신된 데이터 스트림이 존재하지 않는 경우, 빈 피스를 생성하여 피어와의 동기화를 유지할 수 있고, 공유율의 저하를 막을 수 있는 패킷타이징 시스템 및 방법이 제공된다.There is provided a packetizing system and method capable of generating a free piece to maintain synchronization with a peer and preventing a decrease in the sharing rate when the received data stream does not exist in the current time interval to generate the piece.

인코더로부터 수신된 데이터 스트림을 피스(piece)로 인덱싱하는 패킷타이징 시스템에 있어서, 기선정된 시간간격마다 수신된 데이터 스트림에 대해 피스를 생성하는 피스 생성부를 포함하는 패킷타이징 시스템 이 제공된다.A packet-timing system for indexing a data stream received from an encoder as a piece, the packet-timing system comprising a piece generating unit for generating a piece for a received data stream at predetermined time intervals.

일측에 따르면, 피스 생성부는 데이터 스트림이 수신되지 않는 시간간격에 대해서는 빈 피스(Empty-piece)를 생성할 수 있다.According to one aspect, the piece generation unit may generate an empty-piece for a time interval during which a data stream is not received.

다른 측면에 따르면, 생성된 피스는 클라이언트의 요청에 따라 딜리버리 서버를 통해 클라이언트로 전송할 수 있다.According to another aspect, the generated piece can be transmitted to the client via the delivery server at the request of the client.

또 다른 측면에 따르면, 동시 접속자의 유입률을 이용하여 결정되는 상수의 현재 동시 접속자수에 대한 비율에 따라 서버 사용량이 조절될 수 있다.According to another aspect, the server usage can be adjusted according to the ratio of the number of the current concurrent users to the constant determined using the concurrent visitor inflow rate.

또 다른 측면에 따르면, 상수는 유입률이 높을수록 상대적으로 큰 값으로 결정되고, 유입률이 낮을수록 상대적으로 작은 값으로 결정될 수 있다.According to another aspect, the constant is determined to be a relatively large value as the inflow rate is high, and may be determined to be a relatively small value as the inflow rate is low.

인코더로부터 수신된 데이터 스트림을 피스로 인덱싱하는 패킷타이징 방법에 있어서, 기선정된 시간간격마다 수신된 데이터 스트림에 대해 피스를 생성하는 단계를 포함하는 패킷타이징 방법이 제공된다.A packet timing method for indexing a data stream received from an encoder to a piece, the method comprising: generating a piece for a received data stream at predetermined time intervals.

일정 크기로 피스를 생성하는 것이 아니라 일정 시간마다 수신된 데이터 스트림에 대해 피스를 생성함으로써, 일정하지 않은 인코더 트래픽에 대응할 수 있고, 비트율과 무관하게 시스템의 운영이 가능하며, VBR(Variable Bit Rate)을 지원할 수 있다.It is possible to cope with inconsistent encoder traffic and to operate the system irrespective of the bit rate by generating pieces for a data stream received at a predetermined time instead of generating a piece in a predetermined size, .

피스를 생성할 현재 시간간격에 수신된 데이터 스트림이 존재하지 않는 경우, 빈 피스를 생성하여 피어와의 동기화를 유지할 수 있고, 공유율의 저하를 막을 수 있다.If there is no received data stream in the current time interval to generate the piece, the empty piece can be generated to maintain synchronization with the peer, and the decrease in the sharing rate can be prevented.

도 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 in an embodiment of the present invention.
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.
FIG. 3 is a view for explaining redundancy of a packetizing server in an embodiment of the present invention. FIG.
4 is a diagram for explaining redundancy of a delivery server in an embodiment of the present invention.
5 is a view for explaining redundancy of an index server according to an embodiment of the present invention.
6 is a diagram illustrating a peer management system in an embodiment of the present invention.
7 is a diagram for explaining a buffer available in a peer according to an embodiment of the present invention.
FIG. 8 shows a graph when a piece is generated with a predetermined size and a graph when a piece is generated at a predetermined time interval.
9 shows a graph when a data stream does not exist for a specific time interval and a graph when a bin piece is generated.
10 is a block diagram for explaining a packet-taining system in an embodiment of the present invention.
11 is a flowchart for explaining a packet-taining 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 in an embodiment of the present invention. 1 shows a media source 110, a packetizing server 120, a delivery server group 130, a client 140, and a plurality of peers 150.

여기서, 미디어 소스(110)는 스트림을 제공하는 인코더를 의미할 수 있다. 패킷타이징 서버(120)는 이러한 미디어 소스(110)로부터 데이터 스트림을 수신하여 피스로 인덱싱할 수 있다. 스트림을 P2P 서비스를 통해 제공하기 위해 피스로 인덱싱하는 방법은 이미 알려진 다양한 방법 중 하나의 방법이 이용될 수 있다. 패킷타이징 서버(120)는 미디어 소스(110)마다 하나씩 존재할 수 있다. 예를 들어, 프로야구 중계 시, 4개의 경기가 진행되는 경우, 4개의 경기에 대해 4개의 미디어 소스(110)가 존재한다면, 패킷타이징 서버(120) 역시 4개가 이용될 수 있다. 이러한 패킷타이징 서버(120)에 대해서는 이후 도 3을 통해 더욱 자세히 설명한다.Here, the media source 110 may refer to an encoder that provides a stream. Packet-tinging server 120 may receive and index the data stream from such a media source 110 as a piece. As a method of indexing a piece to provide a stream through a P2P service, one of various known methods can be used. One packetizing server 120 may exist for each media source 110. For example, if four games are played during a professional baseball relay, and four media sources 110 exist for four matches, four packetizing servers 120 may also be used. The packetizing server 120 will be described later in more detail with reference to FIG.

딜리버리 서버 그룹(130)은 적어도 하나의 딜리버리 서버(131)로 구성될 수 있다. 이때, 딜리버리 서버 그룹(130)에서 동작하는 딜리버리 서버(131)의 수는 동시 접속자수에 따라 조절될 수 있다. 딜리버리 서버(131)는 패킷타이징 서버(120)로부터 인덱싱된 피스를 수신하고, 이를 버퍼링할 수 있다. 이때, 클라이언트(140)의 요청에 따라 피스를 클라이언트(140)로 전송할 수 있다.The delivery server group 130 may include at least one delivery server 131. At this time, the number of delivery servers 131 operating in the delivery server group 130 can be adjusted according to the number of simultaneous users. The delivery server 131 can receive the indexed pieces from the packetizing server 120 and buffer them. At this time, the client 140 can transmit the piece to the client 140 at the request of the client 140.

여기서, 클라이언트(140)는 PC와 같은 사용자 단말기를 의미할 수 있고, 도 1에 도시된 바와 같이 피어(141)와 플레이어(142)를 포함할 수 있다. 피어(141)는 딜리버리 서버(131)와 복수의 피어(150) 중 적어도 하나로부터 피스를 수신하여 플레이어(142)에 데이터 스트림을 전송할 수 있다. 일례로, 피어(141)는 클라이언트(140)에 설치되어 동작하는 프로그램일 수 있다. 복수의 피어(150) 역시 각각 복수의 클라이언트에 설치되어 동작될 수 있다.Here, the client 140 may refer to a user terminal such as a PC, and may include a peer 141 and a player 142 as shown in FIG. The peer 141 can receive the piece from at least one of the delivery server 131 and the plurality of peers 150 and transmit the data stream to the player 142. [ In one example, the peer 141 may be a program installed and operating in the client 140. A plurality of peers 150 may also be installed and operated in a plurality of clients, respectively.

즉, 패킷타이징 서버(120)에서 피스로 변환된 데이터 스트림은 딜리버리 서버 그룹(130)을 통해 전체 클라이언트들 중 적어도 일부에게 전송될 수 있고, 하나의 클라이언트(140) 입장에서는 딜리버리 서버(131)와 다른 클라이언트들로부터 피스들을 수신하여 데이터 스트림을 플레이어(142)로 전송함으로써, 사용자가 P2P 기반의 스트리밍 서비스를 제공받게 된다.In other words, the data stream converted into pieces by the packet-tensing server 120 may be transmitted to at least a part of all the clients through the delivery server group 130, and may be transmitted to the delivery server 131, And transmits the data stream to the player 142, so that the user is provided with a P2P-based streaming service.

이때, 본 발명의 일실시예에 따른 서버 사용량 조절 시스템은 도 1을 통해 설명한 시스템 자체를 의미할 수도 있고, 필요에 따라 도 1을 통해 설명한 시스템에 포함되거나 연계될 수 있다. 서버 사용량 조절 시스템은 동시 접속자수를 고려하여 적응적으로 서버 사용량을 조절함으로써, 동시 접속자수에 관계없이 항상 낮은 서버 트래픽이 유지되도록 할 수 있다. 이때, 서버 사용량은 동시 접속자의 유입률을 이용하여 결정되는 상수의 현재 동시 접속자수에 대한 비율에 기초하여 조절될 수 있다. 일례로, 서버 사용량을 아래 수학식 1과 같이 계산될 수 있다.Here, the server usage amount control system according to an embodiment of the present invention may refer to the system itself described with reference to FIG. 1, and may be included in or linked to the system described with reference to FIG. 1 as needed. The server usage control system adjusts the server usage adaptively considering the number of concurrent users, so that low server traffic can be maintained regardless of the number of concurrent users. At this time, the server usage amount can be adjusted based on the ratio of the constant determined by using the concurrent visitor inflow rate to the current number of concurrent users. For example, the server usage can be calculated as shown in Equation 1 below.

Figure pat00001
Figure pat00001

여기서, 'c'는 동시 접속자의 유입률을 이용하여 결정되는 상수를, 'n'은 현재 동시 접속자수를 각각 의미할 수 있다. 이때, 'c'는 경험적 테스트를 통해 관리자나 시스템에 의해 결정될 수 있는 상수로서 기본적으로는 동시 접속자의 유입률이 높을수록 상대적으로 큰 값으로 결정될 수 있고, 유입률이 낮을수록 상대적으로 작은 값으로 결정될 수 있다. 이러한 수학식 1은 'c'명에 대한 트래픽으로 'n'명의 사용자를 커버함을 의미할 수 있다. 예를 들어, 'c'가 6이면, 6명에게 제공하기 위한 트래픽으로, 'n'명(현재 동시 접속자) 모두를 커버하고자 함을 의미할 수 있다.Here, 'c' may be a constant determined by using the inflow rate of concurrent users, and 'n' may be a number of concurrent users. In this case, 'c' is a constant that can be determined by the administrator or system through empirical test. Basically, the higher the inflow rate of the concurrent user, the higher the value, and the lower the inflow rate, the smaller the value have. Equation (1) can be used to cover 'n' users with 'c' traffic. For example, if 'c' is 6, it means traffic to provide to 6 people, covering 'n' names (current concurrent users).

즉, 동시 접속자의 유입률이 높아져 현재 동시 접속자수가 늘어나더라도, 상수인 'c'는 고정된 반면, 'n'이 증가하기 때문에 서버 사용량은 점점 감소하게 된다. 따라서, 동시 접속자수에 관계없이 항상 낮은 서버 사용량을 유지할 수 있다.That is, even if the number of concurrent users is increased due to the increase of the concurrent access rate, the constant 'c' is fixed, while the server usage is decreased because 'n' increases. Therefore, it is possible to always maintain a low server usage regardless of the number of concurrent users.

이를 위해, 서버 사용량 조절 시스템은 현재 동시 접속자수를 제공하는 현재 동시 접속자수 제공부(미도시) 및 동시 접속자의 유입률을 이용하여 결정되는 상수의 상기 현재 동시 접속자수에 대한 비율에 기초하여 상기 서버 사용량을 조절하는 서버 사용량 조절부(미도시)를 포함할 수 있다.To this end, the server usage control system may be configured to determine a current concurrent visitor number based on a ratio of a current concurrent visitor recipient providing a current concurrent visitor number (not shown) and a constant determined by using the concurrent visitor & And a server usage control unit (not shown) for controlling 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 block diagram illustrating an external IDC 210 providing a device for a P2P-based streaming service, an encoder vendor 220 providing a data stream, and an external IDC 210 managing a process of providing stream data to the client 240 Lt; RTI ID = 0.0 > IDC 230 < / RTI >

외부 IDC(210)는 패킷타이징 서버(211), 메인 넷체커(213), 서브 넷체커(214), 딜리버리 서버(212) 및 인덱스 서버(215) 그리고 복수의 스위치(216)를 포함할 수 있다. 여기서, 패킷타이징 서버(211), 딜리버리 서버(212), 메인 넷체커(213), 서브 넷체커(214) 및 인덱스 서버(215) 각각은 하나의 서버가 아닌 복수의 서버로 구성될 수 있고, 복수의 스위치(216) 각각은 복수의 서버 중 해당 서버로 데이터를 전송하거나 해당 서버로부터 데이터를 수신하는데 이용될 수 있다. 복수의 스위치(216) 각각으로, 일례로, L4 스위치가 이용될 수 있다.The external IDC 210 may include a packetizing server 211, a main net checker 213, a subnet checker 214, a delivery server 212 and an index server 215 and a plurality of switches 216 have. Here, each of the packetizing server 211, the delivery server 212, the main net checker 213, the subnet checker 214, and the index server 215 may be composed of a plurality of servers instead of one server Each of the plurality of switches 216 may be used to transmit data to or receive data from a corresponding server among the plurality of servers. As each of the plurality of switches 216, for example, the switch L4 may be used.

패킷타이징 서버(211)는 인코더 업체(220)의 미디어 인코더(221)로부터 데이터 스트림을 수신하고, 수신된 데이터 스트림을 시스템에서 사용하기 위한 데이터로 가공한다. 즉, 패킷타이징 서버(211)는 데이터 스트림을 복수의 피스로 변환할 수 있다. 이미 설명한 바와 같이, 미디어 인코더(221)마다 하나씩의 패킷타이징 서버(211)가 실행될 수 있다.The packetizing server 211 receives the data stream from the media encoder 221 of the encoder vendor 220 and processes the received data stream into data for use in the system. That is, the packetizing server 211 can convert the data stream into a plurality of pieces. As described above, one packetizing server 211 can be executed for each media encoder 221. [

딜리버리 서버(212)는 패킷타이징 서버(211)로부터 수신한 피스를 클라이언트(240)의 요청에 따라 클라이언트(240)에게 전달한다. 또한, 인덱스 서버(215)는 클라이언트(240) 목록을 유지하고, 검색 서비스를 제공한다. 여기서, 메인 넷체커(213)와 서브 넷체커(214)는 피어간 연결을 중계하는 중계서버를 의미할 수 있다.The delivery server 212 delivers a piece received from the packet-ting server 211 to the client 240 in response to a request from the client 240. In addition, the index server 215 maintains a list of clients 240 and provides search services. Here, the main net checker 213 and the subnet checker 214 may refer to a relay server that relays peer-to-peer connections.

아래 표 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%.

Figure pat00002
Figure pat00002

내부 IDC(230)가 포함하는 LMS(231)는 피어 관리 시스템을 의미할 수 있다. 이러한 LMS(231)는 패킷타이징 서버(211), 딜리버리 서버(212) 및 인덱스 서버(215)를 관리하는 서버로서, 서버의 업로드 다운로드 상태나 트래픽, 쿼리 수, 리소스(CPU, 메모리), 공유율 등을 모니터링할 수 있다. 또한, LMS(231)는 동시 접속자수, 유니크 방문자 수, 공유율, 사용자 속도 분포, 평균 시청 시간 및 시청 채널수 등에 대한 통계 데이터를 생성하여 DB(232)에 저장할 수 있다. 즉, DB(232)는 통계 데이터를 저장하는 서버를 의미할 수 있다.The LMS 231 included in the internal IDC 230 may refer to a peer management system. The LMS 231 is a server that manages the packetizing server 211, the delivery server 212 and the index server 215. The LMS 231 includes an upload download state or traffic of the server, the number of queries, a resource (CPU, memory) Rate and so on. In addition, the LMS 231 may generate statistical data on the number of concurrent users, unique visitors, sharing rate, user speed distribution, average viewing time, and viewing channel number, and may store the data in the DB 232. That is, the DB 232 may refer to a server that stores statistical data.

이때, 상술한 바와 같이 본 발명의 일실시예에 따른 시스템은 동시 접속자수를 고려하여 적응적으로 서버 사용량을 조절함으로써, 동시 접속자수에 관계없이 항상 낮은 서버 트래픽이 유지되도록 할 수 있다. 이때, 서버 사용량은 동시 접속자의 유입률을 이용하여 결정되는 상수의 현재 동시 접속자수에 대한 비율에 기초하여 조절될 수 있다. 일례로, 서버 사용량을 상술한 수학식 1과 같이 계산될 수 있고, 이러한 서버 사용량은 도 2를 통해 설명한 딜리버리 서버(212)의 트래픽을 의미할 수 있다. 또한, 도 1을 통해 설명한 서버 사용량 조절 시스템은 도 2를 통해 설명한 시스템 자체를 의미할 수도 있고, 상술한 LMS(231)에 포함될 수도 있다.At this time, as described above, the system according to an embodiment of the present invention adjusts the server usage amount adaptively considering the number of concurrent users, so that low server traffic can always be maintained regardless of the number of concurrent users. At this time, the server usage amount can be adjusted based on the ratio of the constant determined by using the concurrent visitor inflow rate to the current number of concurrent users. For example, the server usage can be calculated according to Equation (1) described above, and the server usage can refer to the traffic of the delivery server 212 described with reference to FIG. The server usage control system described with reference to FIG. 1 may refer to the system itself described with reference to FIG. 2, or may be included in the LMS 231 described above.

도 3은 본 발명의 일실시예에 있어서, 패킷타이징 서버의 이중화를 설명하기 위한 도면이다. 도 3은 4개의 인코더(310 내지 340)을 통해 데이터 스트림이 제공되는 경우, 주 패킷타이징 서버군(350)에서 4개의 패킷타이징 서버가 동작할 수 있음을 나타내고 있다. 즉, 'PS-1', 'PS-2', 'PS-3' 및 'PS-4'는 상술한 4개의 패킷타이징 서버를 의미할 수 있다.FIG. 3 is a view for explaining redundancy of a packetizing server in an embodiment of the present invention. FIG. FIG. 3 shows that four packetizing servers can operate in the main packetizing server group 350 when a data stream is provided through four encoders 310 to 340. FIG. That is, 'PS-1', 'PS-2', 'PS-3' and 'PS-4' may refer to the four packetizing servers described above.

이때, 4개의 패킷타이징 서버는 4개의 인코더(310 내지 340)에서 수신되는 데이터 스트림을 P2P에서 사용될 수 있는 형태의 데이터인 피스로 변환하고, 모든 딜리버리 서버로 변환된 데이터를 전송할 수 있다. 이때, 4개의 패킷타이징 서버와 모든 딜리버리 서버는 스위치(370)를 이용하여 데이터를 송수신할 수 있다.At this time, the four packetizing servers can convert the data stream received from the four encoders 310 to 340 into pieces of data that can be used in the P2P, and transmit data converted to all the delivery servers. At this time, the four packetizing servers and all the delivery servers can transmit and receive data using the switch 370.

이러한 패킷타이징 서버는 CPU나 트래픽 등의 리소스의 사용량이 많지 않다. 예를 들어, 20대의 딜리버리 서버(동시 접속자수 15만 명 기준)가 접속한 경우, 1Mbps 크기의 컨텐츠에 대해 20Mbps의 트래픽만을 사용한다.The packetizing server does not use a large amount of resources such as CPU and traffic. For example, when 20 delivery servers (based on 150,000 concurrent users) are connected, only 20 Mbps of traffic is used for 1 Mbps-sized content.

또한, 패킷타이징 서버마다 4개의 인코더(310 내지 340)로부터 서로 다른 데이터 스트림이 전송될 수 있기 때문에 도 3에 도시된 바와 같이, 피스는 주 패킷타이징 서버군(350)과 부 패킷타이징 서버군(360) 중 하나의 서버군에서만 생성되어야 한다. 따라서, 주 패킷타이징 서버군(350)과 부 패킷타이징 서버군(360)은 액티브/스탠바이의 형태로 동작할 수 있다. 부 패킷타이징 서버군(360)은 주 패킷타이징 서버군(350)의 장애에 대응하기 위해 이용될 수 있다.In addition, since different data streams may be transmitted from the four encoders 310 to 340 for each packet-timing server, the pieces may be divided into a main packet-testing server group 350 and a sub-packet- Server group 360 of the server group. Accordingly, the main packetizing server group 350 and the sub packetizing server group 360 can operate in an active / standby mode. The secondary packetizing server group 360 may be used to respond to a failure of the primary packetizing server group 350.

도 4는 본 발명의 일실시예에 있어서, 딜리버리 서버의 이중화를 설명하기 위한 도면이다. 패킷타이징 서버군(410)에서 변환된 데이터인 피스들은 딜리버리 서버군(420)으로 전송된다. 이때, 'DS-n'은 'n' 번째 딜리버리 서버를 의미하는 것으로, 딜리버리 서버군(420)내에 'n'개의 딜리버리 서버가 존재함을 의미할 수 있다.4 is a diagram for explaining redundancy of a delivery server in an embodiment of the present invention. The pieces of data, which are converted by the packetizing server group 410, are transmitted to the delivery server group 420. In this case, 'DS-n' means 'n' th delivery server, which means that there are 'n' delivery servers in the delivery server group 420.

각각의 딜리버리 서버는 패킷타이징 서버로부터 피스를 전달받아 일정 개수만큼 버퍼링을 수행하고, 클라이언트들인 피어(peer)들의 요청에 따라 해당 피스를 피어들에게 전송한다. 이때, 딜리버리 서버군(420)의 딜리버리 서버들 역시 스위치(430)로 바인딩될 수 있고, 동시 접속자수의 증가에 따라 딜리버리 서버를 증가시킴으로써, 트래픽을 조절할 수 있다.Each delivery server receives a piece from a packet-tensing server, performs buffering for a predetermined number of packets, and transmits the corresponding piece to the peers according to a request from peers that are clients. At this time, the delivery servers of the delivery server group 420 can also be bound to the switch 430, and the traffic can be adjusted by increasing the delivery server as the number of concurrent users increases.

도 5는 본 발명의 일실시예에 있어서, 인덱스 서버의 이중화를 설명하기 위한 도면이다. 인덱스 서버군(510)은 복수의 인덱스 서버를 포함할 수 있고, 'IS-n'은 'n' 번째 인덱스 서버를 의미하는 것으로, 인덱스 서버군(520)내에 'n'개의 인덱스 서버가 존재함을 의미할 수 있다.5 is a view for explaining redundancy of an index server according to an embodiment of the present invention. The index server group 510 may include a plurality of index servers, 'IS-n' denotes an 'n' th index server, and there are 'n' index servers in the index server group 520 . ≪ / RTI >

이때, 복수의 인덱스 서버 각각은 클라이언트인 피어들을 관리한다. 보다 자세하게는, 클라이언트들에 설치된 피어를 관리하고, 피어의 요청에 따른 검색 결과를 전달한다. 또한, 인덱스 서버는 메시지 전달을 수행할 수 있고, 피어와 지속적인 연결을 유지할 수 있다. 이러한 인덱스 서버 각각은 스위치(520)와 바인딩될 수 있고, 동시 접속자수에 따라 인덱스 서버를 증가시킬 수 있다.At this time, each of the plurality of index servers manages peers as clients. More specifically, it manages peers installed in clients and delivers search results according to the request of the peer. In addition, the index server can perform message delivery and maintain a persistent connection with the peer. Each of these index servers can be bound to the switch 520 and can increase the index server according to the number of concurrent users.

도 6은 본 발명의 일실시예에 있어서, 피어 관리 시스템을 도시한 도면이다. 도 6에 도시된 LMS(610)는 피어 관리 시스템을, IS(620)는 인덱스 서버를, PS(630)는 패킷타이징 서버를, DS(640)는 딜리버리 서버를 각각 의미할 수 있다. 이때, 피어 관리 시스템은 인덱스 서버, 패킷타이징 서버 및 딜리버리 서버에 대한 관리, 배포, 갱신 및 모니터링 기능을 수행할 수 있고, 피어(피어)에 대한 통계 수집 및 분석 기능을 수행할 수 있다. 예를 들어, 피어 관리 시스템은 CPU나 메모리의 사용량 또는 트래픽과 같이 상술한 서버들의 상태를 모니터링하고, 장애 상황에 대한 이벤트 알림 기능(SMS, e-mail)을 제공할 수 있다.6 is a diagram illustrating a peer management system in an embodiment of the present invention. The LMS 610 shown in FIG. 6 may denote a peer management system, the IS 620 an index server, the PS 630 a packetizing server, and the DS 640 a delivery server. At this time, the peer management system can perform management, distribution, update, and monitoring functions for the index server, the packetizing server, and the delivery server, and can perform statistics collection and analysis functions for peers (peers). For example, the peer management system can monitor the status of the above-described servers, such as CPU or memory usage or traffic, and provide event notification functions (SMS, e-mail) for the failure situation.

도 7은 본 발명의 일실시예에 있어서, 피어에서 이용 가능한 버퍼를 설명하기 위한 도면이다. 피어는 상술한 바와 같이 클라이언트에 설치되어 동작할 수 있는 소프트웨어로서 어느 피스를 어디로부터 수신할 것인가를 결정한다. 아래 표 2는 피어에서의 피스 선택 방법과 수신 가능한 소스를 나타내고 있다.7 is a diagram for explaining a buffer available in a peer according to an embodiment of the present invention. The peer is software that can be installed and operated on the client as described above to determine which piece to receive from. Table 2 below shows how to select a piece at a peer and the available sources.

Figure pat00003
Figure pat00003

표 2에서 'Rarest First'는 네트워크 상에서 가장 드문(rare) 피스를 먼저 수신하는 피스 선택 방법을 의미하고, 'Progressive'는 앞에서부터 순차적으로 피스를 수신하는 피스 선택 방법을 의미한다. 이때, 피스는 딜리버리 서버를 통해 수신하거나 다른 피어로부터 수신할 수 있다.In Table 2, 'Rarest First' means a piece selection method in which a rare piece is first received on a network, and 'Progressive' means a piece selection method in which pieces are sequentially received from the beginning. At this time, the piece can be received through the delivery server or received from another peer.

이때, 피어는 재생을 원활하게 하고, 공유효율을 높이기 위해 수신된 피스를 저장하는 버퍼를 이용할 수 있다. 도 7은 제1 버퍼(710) 내지 제3 버퍼(730)를 도시하고 있다.At this time, the peer can use a buffer for storing the received pieces to facilitate playback and increase sharing efficiency. FIG. 7 shows the first buffer 710 to the third buffer 730. FIG.

우선, 제1 버퍼(710)는 'Progressive'를 통해 수신된 피스를 저장하기 위한 제1 범위(711)와 'Rarest First'를 통해 수신된 피스를 저장하기 위한 제2 범위(712)로 나뉠 수 있다. 동시에, 제1 버퍼(710)는 딜리버리 서버를 통해 수신된 피스를 저장하기 위한 제3 범위(713)와 다른 피어를 통해 수신된 피스를 저장하기 위한 제4 범위(714)로 나뉠 수 있다.First, the first buffer 710 may be divided into a first range 711 for storing pieces received through 'progressive' and a second range 712 for storing pieces received through 'Rarest First' have. At the same time, the first buffer 710 can be divided into a third range 713 for storing the pieces received via the delivery server and a fourth range 714 for storing pieces received via other peers.

제2 버퍼(720)는 실제로 나뉘어진 버퍼의 영역들을 나타내고 있다. 즉, 제2 버퍼(720)는 딜리버리 서버를 통해 'Progressive'로 수신된 피스를 저장하기 위한 제1 영역(721), 다른 피어를 통해 'Progressive'로 수신된 피스를 저장하기 위한 제2 영역(722) 및 다른 피어를 통해 'Rarest First'로 수신된 피스를 저장하기 위한 제3 영역(723)으로 구분될 수 있다.The second buffer 720 indicates areas of the buffer actually divided. That is, the second buffer 720 includes a first region 721 for storing pieces received in a 'progressive' manner via a delivery server, a second region 721 for storing pieces received in a 'progressive' manner via another peer 722) and a third area 723 for storing pieces received as 'Rarest First' through other peers.

제3 버퍼(730)는 나뉘어진 영역의 크기가 서로 다를 수 있음을 나타내고 있다. 즉, 제3 버퍼(730)는 영역 A(731), 영역 B(732) 및 영역 C(733)가 각각 서로 다른 크기 비율로 구성된 일례를 나타낸다. 일례로, 영역 A(731), 영역 B(732), 영역 C(733)의 크기 비율은 1:4:16의 비율을 가질 수 있다. 이러한 비율은 필요에 따라 조절될 수 있다. 또한, 필요에 따라 영역 B(732)와 영역 C(733)에도 일정 부분의 피스가 딜리버리 서버로부터 수신되어 저장될 수 있다.The third buffer 730 indicates that the sizes of the divided areas may be different from each other. That is, the third buffer 730 shows an example in which the area A 731, the area B 732, and the area C 733 are configured at different sizes. For example, the size ratio of the area A 731, the area B 732, and the area C 733 may have a ratio of 1: 4: 16. These ratios can be adjusted as needed. In addition, a certain piece of the piece may be received from the delivery server and stored in the area B 732 and the area C 733 as needed.

이후 설명될 본 발명의 일실시예에 따른 패킷타이징 시스템은 상술한 패킷타이징 서버에 대응되거나 또는 패킷타이징 서버에 포함된 시스템일 수 있다. 상술한 바와 같이, 일정한 크기로 피스를 생성하는 경우에는 인코더로부터 전달되는 데이터 스트림이 일정하지 않기 때문에 각 피스의 생성 시간이 일정하지 않아 피어와의 동기화가 이루어지지 않으며 이에 따라 공유율이 저하될 수 있다.The packetizing system according to an embodiment of the present invention to be described later may be a system corresponding to the packetizing server described above or a system included in the packetizing server. As described above, when a piece is generated with a predetermined size, since the data stream transmitted from the encoder is not constant, the generation time of each piece is not constant and synchronization with the peer is not performed, have.

도 8은 일정 크기로 피스를 생성하는 경우의 그래프와 일정 시간간격에 따라 피스를 생성하는 경우의 그래프를 나타내고 있다. 우선, 도 8에서 제1 그래프(810)와 제2 그래프(820)의 x-축은 패킷타이징 시간의 흐름을, y-축은 생성되는 피스의 크기를 각각 나타낸다.FIG. 8 shows a graph when a piece is generated with a predetermined size and a graph when a piece is generated at a predetermined time interval. 8, the x-axis of the first graph 810 and the second graph 820 represent the flow of the packetizing time, and the y-axis represents the size of the generated piece, respectively.

즉, 제1 그래프(810)는 종래기술에서 시간이 지남에 따라 동일한 크기의 피스가 생성되나 피스의 생성 시간이 일정하지 않음을 나타낸다.That is, the first graph 810 indicates that the pieces of the same size are generated over time in the prior art, but the generation time of the pieces is not constant.

반면, 제2 그래프(820)는 본 발명의 실시예들에 따른 패킷타이징 시스템 또는 패킷타이징 방법에서 일정한 시간간격마다 피스를 생성함으로써, 피스의 생성 시간이 일정한 모습을 나타내고 있다. 이 경우, 피스의 크기는 피스별로 차이가 있을 수 있다.On the other hand, the second graph 820 shows that the generation time of the pieces is constant by generating the pieces at a predetermined time interval in the packet-tensing system or the packet-ting method according to the embodiments of the present invention. In this case, the size of the pieces may differ from piece to piece.

이와 같이, 일정 시간마다 피스를 생성하면, 일정하지 않은 인코더의 트래픽에 대응할 수 있으며, 비트율과 무관하게 스트리밍 서비스를 제공하는 시스템을 운영하는 것이 가능해진다. 또한, VBR(Variable Bit Rate)을 지원할 수 있게 된다.When a piece is generated every predetermined time, it is possible to cope with traffic of an encoder that is not constant, and it is possible to operate a system that provides a streaming service irrespective of a bit rate. In addition, VBR (Variable Bit Rate) can be supported.

그러나, 이와 같이 일정한 시간간격마다 패킷타이징을 수행하는 경우 인코더로부터 데이터 스트림이 전혀 수신되지 않는 시간간격이 발생할 수 있다. 이 경우에는 피스를 생성할 수 없기 때문에 피어와 동기화가 이루어지지 않아 공유율이 저하될 수 있다.However, when packet timing is performed at such a constant time interval, a time interval during which no data stream is received from the encoder may occur. In this case, since the piece can not be generated, synchronization with the peer can not be achieved and the sharing rate may be lowered.

따라서, 본 발명의 실시예들에 따른 패킷타이징 시스템 또는 패킷타이징 방법에서는 데이터 스트림이 수신되지 않는 시간간격에서는 빈 피스(Empty-Piece)를 생성하여 피어와의 동기화를 유지하고, 공유율 저하를 막을 수 있다.Therefore, in the packetizing system or the packet-tacking method according to the embodiments of the present invention, in a time interval when no data stream is received, an empty-piece is generated to maintain synchronization with the peer, .

도 9는 특정 시간간격에 대해 데이터 스트림이 존재하지 않는 경우의 그래프와 빈 피스를 생성하는 경우의 그래프를 나타내고 있다. 우선, 제1 그래프(910)와 제2 그래프(920)에서 x-축은 패킷타이징 시간의 흐름을, y-축은 생성되는 피스의 크기를 각각 나타낸다.9 shows a graph when a data stream does not exist for a specific time interval and a graph when a bin piece is generated. First, in the first graph 910 and the second graph 920, the x-axis represents the flow of packet timing time, and the y-axis represents the size of the generated pieces.

여기서, 제1 그래프(910)는 특정 시간간격 동안 인코더로부터 데이터 스트림이 전혀 수신되지 않아 해당 시간간격 동안 피스가 생성되지 못한 경우를 나타낸다. 이때, 해당 시간간격에서는 피스가 생성되지 못하였기 때문에 피어와의 동기화가 이루어지기 어렵고 이에 따라 공유율 저하가 발생할 수 있다.Here, the first graph 910 indicates that no data stream has been received from the encoder during a particular time interval and that no pieces have been generated during that time interval. At this time, since the pieces can not be generated at the corresponding time intervals, synchronization with the peer is difficult to be performed, and thus the sharing rate may decrease.

반면, 제2 그래프(920)는 해당 시간간격 동안 빈 피스를 생성하는 경우를 나타낸다. 이와 같이, 빈 피스를 이용함으로써, 피어와의 동기화를 유지하고, 공유율 저하를 막을 수 있다.On the other hand, the second graph 920 represents a case of generating a bin piece during the corresponding time interval. Thus, by using the empty piece, the synchronization with the peer can be maintained and the reduction in the sharing rate can be prevented.

도 10은 본 발명의 일실시예에 있어서, 패킷타이징 시스템을 설명하기 위한 블록도이다. 본 실시예에 따른 패킷타이징 시스템(1000)은 도 10에 도시된 바와 같이, 피스 생성부(1010)를 포함한다.10 is a block diagram for explaining a packet-taining system in an embodiment of the present invention. The packetizing system 1000 according to the present embodiment includes a piece generation unit 1010, as shown in FIG.

패킷타이징 시스템(1000)은 인코더(1020)로부터 수신된 데이터 스트림을 피스(piece)로 인덱싱하고, 이를 위해 피스 생성부(1010)는 기선정된 시간간격마다 수신된 데이터 스트림에 대해 피스를 생성한다. 상술한 바와 같이, 데이터 스트림에 대한 피스를 일정 크기로 생성하는 것이 아니라 기선정된 시간간격마다 생성함으로써, 피어(클라이언트)와의 동기화가 이루어질 수 있다.The packetizing system 1000 indexes the data stream received from the encoder 1020 as a piece and for this, the piece generation unit 1010 generates a piece for the received data stream every predetermined time interval do. As described above, synchronization with a peer (client) can be achieved by generating a piece for a data stream every predetermined time interval instead of generating a certain size.

또한, 피스 생성부(1010)는 데이터 스트림이 수신되지 않는 시간간격에 대해서는 빈 피스(Empty-piece)를 생성한다. 즉, 피스 생성부(1010)에서 데이터 스트림이 수신되지 않는 시간간격에 대해서도 빈 피스를 생성함으로써, 피스를 생성하지 못하는 경우, 피어와의 동기화가 이루어지지 않아 공유율이 저하되는 문제점을 해결할 수 있고, 일정하지 않은 인코더의 트래픽에 대응할 수 있으며, VBR을 지원할 수 있게 된다.In addition, the piece generation unit 1010 generates an empty-piece for a time interval during which a data stream is not received. That is, if a piece can not be generated by generating a free piece for a time interval during which the data stream is not received by the piece generation unit 1010, the problem that the synchronization with the peer is not performed and the sharing rate is lowered can be solved , It is possible to cope with the traffic of an encoder which is not constant, and it can support VBR.

이때, 생성된 피스는 클라이언트의 요청에 따라 딜리버리 서버(1030)를 통해 클라이언트로 전송될 수 있다. 이때, 동시 접속자의 유입률을 이용하여 결정되는 상수의 현재 동시 접속자수에 대한 비율에 따라 서버 사용량이 조절될 수 있고, 이 경우, 상기 상수는 유입률이 높을수록 상대적으로 큰 값으로 결정되고, 유입률이 낮을수록 상대적으로 작은 값으로 결정될 수 있다. 이러한 서버 사용량의 조절에 대해서는 이미 자세히 설명하였기에 반복적인 설명은 생략한다.At this time, the generated pieces can be transmitted to the client through the delivery server 1030 according to the request of the client. At this time, the server usage can be adjusted according to the ratio of a constant determined by using the inflow rate of the concurrent visitor to the current number of concurrent users. In this case, the constant is determined to be a relatively large value as the inflow rate is high, The lower the value, the smaller the value can be determined. Since the control of the server usage has been described in detail, repetitive description will be omitted.

본 발명의 실시예들에 따른 패킷타이징 시스템은 상술한 패킷타이징 서버에 대응되거나 또는 패킷타이징 서버에 포함되어 동작할 수 있다. 도 10을 통해 설명한 패킷타이징 시스템(1000)은 패킷타이징 서버에 포함되어 동작하는 경우를 설명한 것으로, 패킷타이징 시스템(1000)이 패킷타이징 서버에 대응되는 시스템일 경우, 패킷타이징 시스템(1000)은 인코더(1020)로부터 데이터 스트림을 수신하는 수신부(미도시)와 딜리버리 서버(1030)로 생성된 피스를 전송하는 전송부(미도시)를 더 포함할 수도 있다.The packetizing system according to the embodiments of the present invention may correspond to the above-described packetizing server or may be included in the packetizing server. The packetizing system 1000 described in FIG. 10 is included in the packetizing server and operates. When the packetizing system 1000 is a system corresponding to the packetizing server, (Not shown) for receiving the data stream from the encoder 1020 and a transmission unit (not shown) for transmitting the generated pieces to the delivery server 1030. [

도 11은 본 발명의 일실시예에 있어서, 패킷타이징 방법을 설명하기 위한 흐름도이다. 본 실시예에 따른 패킷타이징 방법은 도 10을 통해 설명한 패킷타이징 시스템(1000)에 의해 수행될 수 있다. 도 11에서는 패킷타이징 시스템(1000)에 의해 수행되는 패킷타이징 방법에 대해 설명한다.11 is a flowchart for explaining a packet-taining method according to an embodiment of the present invention. The packetizing method according to the present embodiment can be performed by the packetizing system 1000 described with reference to FIG. 11, a packet timing method performed by the packetizing system 1000 will be described.

단계(1110)에서 패킷타이징 시스템(1000)은 인코더로부터 데이터 스트림을 수신한다. 이미 설명한 바와 같이, 인코더로부터 수신되는 데이터 스트림은 동일한 시간간격에 따라 일정하지 않다. 따라서, 이러한 데이터 스트림을 일정한 크기의 피스로 생성하는 경우, 피어와 동기화가 이루어지지 않아 공유율이 저하될 수 있다. In step 1110, the packet-tensing system 1000 receives the data stream from the encoder. As already explained, the data stream received from the encoder is not constant over the same time interval. Therefore, when such a data stream is generated with a piece of a certain size, synchronization with the peer may not be performed, and the sharing rate may be lowered.

이러한 문제점을 해결하기 위해 본 실시예에 따른 패킷타이징 방법에서는 아래 단계(1120)에서와 같이 일정 크기가 아닌 기선정된 시간간격마다 피스를 생성할 수 있다.In order to solve such a problem, in the packetizing method according to the present embodiment, it is possible to generate pieces at predetermined time intervals instead of a predetermined size as in the below step 1120.

즉, 단계(1120)에서 패킷타이징 시스템(1000)은 기선정된 시간간격마다 수신된 데이터 스트림에 대해 피스를 생성한다. 상술한 바와 같이, 데이터 스트림에 대한 피스를 일정 크기로 생성하는 것이 아니라 기선정된 시간간격마다 생성함으로써, 피어(클라이언트)와의 동기화가 이루어질 수 있고, 일정하지 않은 인코더의 트래픽에 대응할 수 있으며, VBR을 지원할 수 있게 된다.That is, in step 1120, the packet-tensing system 1000 generates a piece for the received data stream every predetermined time interval. As described above, synchronization with a peer (client) can be performed by generating pieces for a data stream at predetermined time intervals instead of generating a certain size, and it is possible to cope with traffic of an encoder that is not constant, and VBR .

또한, 패킷타이징 시스템(1000)은 데이터 스트림이 수신되지 않는 시간간격에 대해서는 빈 피스를 생성한다. 즉, 패킷타이징 시스템(1000)에서 데이터 스트림이 수신되지 않는 시간간격에 대해서도 빈 피스를 생성함으로써, 피스를 생성하지 못하는 경우, 피어와의 동기화가 이루어지지 않아 공유율이 저하되는 문제점을 해결할 수 있다.In addition, the packet-tensing system 1000 generates a bin-piece for a time interval during which a data stream is not received. That is, if the packet generation system 1000 does not generate a piece by generating a free piece for a time interval during which a data stream is not received, it can solve the problem that synchronization with the peer is not performed and the sharing rate is lowered have.

단계(1130)에서 패킷타이징 시스템(1000)은 생성된 피스를 클라이언트의 요청에 따라 딜리버리 서버를 통해 클라이언트로 전송한다. 이때, 생성된 피스는 클라이언트의 요청에 따라 딜리버리 서버를 통해 클라이언트로 전송될 수 있다. 이때, 동시 접속자의 유입률을 이용하여 결정되는 상수의 현재 동시 접속자수에 대한 비율에 따라 서버 사용량이 조절될 수 있고, 이 경우, 상기 상수는 유입률이 높을수록 상대적으로 큰 값으로 결정되고, 유입률이 낮을수록 상대적으로 작은 값으로 결정될 수 있다. 이러한 서버 사용량의 조절에 대해서는 이미 자세히 설명하였기에 반복적인 설명은 생략한다.In step 1130, the packet-tensing system 1000 transmits the generated piece to the client via the delivery server at the request of the client. At this time, the generated pieces can be transmitted to the client through the delivery server according to the request of the client. At this time, the server usage can be adjusted according to the ratio of a constant determined by using the inflow rate of the concurrent visitor to the current number of concurrent users. In this case, the constant is determined to be a relatively large value as the inflow rate is high, The lower the value, the smaller the value can be determined. Since the control of the server usage has been described in detail, repetitive description will be omitted.

도 11에서는 패킷타이징 서버에 대응하는 패킷타이징 시스템(1000)이 수행하는 패킷타이징 방법에 대해 설명하였으나, 패킷타이징 시스템(1000)이 패킷타이징 서버에 포함되어 동작하는 시스템일 경우, 이러한 패킷타이징 시스템(1000)이 수행하는 패킷타이징 방법은 단계(1120)만을 포함할 수도 있다.11, the packetizing method performed by the packetizing system 1000 corresponding to the packetizing server 1000 has been described. When the packetizing system 1000 is a system included in the packetizing server, The packet timing method performed by the packetizing system 1000 may include only the step 1120. [

이와 같이, 본 발명의 실시예들에 따른 패킷타이징 시스템 및 방법을 이용하면, 일정 크기로 피스를 생성하는 것이 아니라 일정 시간마다 수신된 데이터 스트림에 대해 피스를 생성함으로써, 일정하지 않은 인코더 트래픽에 대응할 수 있고, 비트율과 무관하게 시스템의 운영이 가능하며, VBR(Variable Bit Rate)을 지원할 수 있다. 또한, 피스를 생성할 현재 시간간격에 수신된 데이터 스트림이 존재하지 않는 경우, 빈 피스를 생성하여 피어와의 동기화를 유지할 수 있고, 공유율의 저하를 막을 수 있다.As described above, by using the packetizing system and method according to the embodiments of the present invention, it is possible to generate pieces for a data stream received every predetermined time instead of generating a piece in a predetermined size, Can operate the system regardless of the bit rate, and can support Variable Bit Rate (VBR). In addition, if there is no received data stream in the current time interval to generate the piece, it is possible to generate a bin piece to maintain synchronization with the peer, and to prevent a decrease in the sharing rate.

본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 또한, 상술한 파일 시스템은 컴퓨터 판독이 가능한 기록 매체에 기록될 수 있다.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, and the like, 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. Furthermore, the above-described file system can be recorded on 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: 인코더
1030: 딜리버리 서버
1000: Packetizing system
1010:
1020: encoder
1030: Delivery server

Claims (1)

P2P 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템.System for packetizing data stream in P2P based streaming service.
KR1020120138689A 2012-12-03 2012-12-03 System and method for packetizing data stream in streaming service based on peer to peer KR101649562B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120138689A KR101649562B1 (en) 2012-12-03 2012-12-03 System and method for packetizing data stream in streaming service based on peer to peer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120138689A KR101649562B1 (en) 2012-12-03 2012-12-03 System and method for packetizing data stream in streaming service based on peer to peer

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020110005342A Division KR101417890B1 (en) 2011-01-19 2011-01-19 System and method for packetizing data stream in streaming service based on peer to peer

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160102743A Division KR101695910B1 (en) 2016-08-12 2016-08-12 System and method for packetizing data stream in streaming service based on peer to peer

Publications (2)

Publication Number Publication Date
KR20140026993A true KR20140026993A (en) 2014-03-06
KR101649562B1 KR101649562B1 (en) 2016-08-19

Family

ID=50641337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120138689A KR101649562B1 (en) 2012-12-03 2012-12-03 System and method for packetizing data stream in streaming service based on peer to peer

Country Status (1)

Country Link
KR (1) KR101649562B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097445A1 (en) * 2000-07-19 2005-05-05 Day Richard D. Dynamic image delivery system
US20090113253A1 (en) * 2007-04-03 2009-04-30 Huawei Technologies Co., Ltd. System and apparatus for delivering media and method for playing streaming media
US20100153578A1 (en) * 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097445A1 (en) * 2000-07-19 2005-05-05 Day Richard D. Dynamic image delivery system
US20090113253A1 (en) * 2007-04-03 2009-04-30 Huawei Technologies Co., Ltd. System and apparatus for delivering media and method for playing streaming media
US20100153578A1 (en) * 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming

Also Published As

Publication number Publication date
KR101649562B1 (en) 2016-08-19

Similar Documents

Publication Publication Date Title
JP5934828B2 (en) System and method for packetizing data stream of P2P based streaming service
Zhang et al. Unreeling Xunlei Kankan: Understanding hybrid CDN-P2P video-on-demand streaming
Kreitz et al. Spotify--large scale, low latency, P2P music-on-demand streaming
US9497035B2 (en) Method, device, and system for playing media based on P2P
US20080037527A1 (en) Peer-to-Peer Interactive Media-on-Demand
US20080016201A1 (en) Methods and apparatus for transferring data
KR101212366B1 (en) System and method for controlling server usage in streaming service based on peer to peer
Pal et al. A survey on adaptive multimedia streaming
KR101695910B1 (en) System and method for packetizing data stream in streaming service based on peer to peer
KR101649562B1 (en) System and method for packetizing data stream in streaming service based on peer to peer
KR101417890B1 (en) System and method for packetizing data stream in streaming service based on peer to peer
Wang et al. Exploring locality of reference in P2P VoD systems
Hoong et al. Push-pull incentive-based P2P live media streaming system
KR101914105B1 (en) System and method for executing buffering in streaming service based on peer to peer and system for distributing applicaiotn processing buffering
KR101262622B1 (en) System and method for controlling server usage in streaming service based on peer to peer
KR101242830B1 (en) System and method for executing buffering in streaming service based on peer to peer and system for distributing applicaiotn processing buffering
Ha et al. A novel Hybrid CDN-P2P mechanism For effective real-time media streaming
Bruneau-Queyreix et al. PMS: A novel scale-adaptive and quality-adaptive hybrid P2P/multisource solution for live streaming
Zhang et al. Multi-task downloading for p2p-vod: An empirical perspective
Frey et al. Live Streaming with Gossip
KR20120116378A (en) System and method for executing buffering in streaming service based on peer to peer and system for distributing applicaiotn processing buffering
Boufkhad et al. Fine Tuning of a Distributed VoD System
Wang et al. Is playing-as-downloading feasible in an eMule P2P file sharing system?
Czyrnek et al. CDN for live and on-demand video services over IP
Liang Towards high-performance peer-to-peer media communications

Legal Events

Date Code Title Description
A107 Divisional application of patent
AMND Amendment
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 4