KR20050115498A - P2p based video service system and method for providing vod service using the same - Google Patents

P2p based video service system and method for providing vod service using the same Download PDF

Info

Publication number
KR20050115498A
KR20050115498A KR1020040040475A KR20040040475A KR20050115498A KR 20050115498 A KR20050115498 A KR 20050115498A KR 1020040040475 A KR1020040040475 A KR 1020040040475A KR 20040040475 A KR20040040475 A KR 20040040475A KR 20050115498 A KR20050115498 A KR 20050115498A
Authority
KR
South Korea
Prior art keywords
group
user
user terminal
video data
data block
Prior art date
Application number
KR1020040040475A
Other languages
Korean (ko)
Inventor
최종호
김영집
Original Assignee
재단법인서울대학교산학협력재단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인서울대학교산학협력재단 filed Critical 재단법인서울대학교산학협력재단
Priority to KR1020040040475A priority Critical patent/KR20050115498A/en
Priority to PCT/KR2004/001345 priority patent/WO2005119498A1/en
Publication of KR20050115498A publication Critical patent/KR20050115498A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • G06F15/163Interprocessor communication
    • 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/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 일정 크기로 분할된 블록 단위의 비디오 데이터에 각각 인덱스를 부여/저장하고, 현재 비디오 서비스에 접속된 사용자 단말을 포함하는 사용자 그룹과 관련된 정보를 관리하는 서버; 및 서버와 인터넷을 통해 접속되고 현재 비디오 서비스를 제공받는 다수의 사용자 단말을 포함하되, 사용자 그룹은 하나 이상의 마스터 사용자 단말을 포함하고, 마스터 사용자 단말은 다른 사용자 단말의 그룹에의 추가/삭제, 사용자 그룹 정보 갱신, 갱신된 사용자 그룹 정보를 다른 그룹의 마스터 사용자 단말과 자신의 그룹에 속한 사용자 단말 및 서버로 제공을 수행하며, 서버는 사용자 단말로부터 비디오데이터 전송 요구를 수신하면, 사용자 단말이 요구한 블록의 비디오 데이터의 전송 주체를 결정하고, 사용자 그룹은 상기 서버로부터 비디오 데이터를 수신하는 제1 그룹과, 제1 그룹 내의 사용자 단말에 버퍼링된 비디오 데이터를 전달받는 제2 그룹을 포함하며, 각 그룹의 사용자 단말은 부모 그룹으로부터 비디오 데이터 스트림의 일부분을 받아 동일 그룹 내의 사용자 단말과 부모 그룹으로부터 받은 비디오 데이터 스트림을 주고받음으로써 전체 비디오 스트림을 제공 받고, 동일한 인덱스를 갖는 블록 단위의 비디오 데이터를 재생한다.The present invention provides a server for indexing and storing video data in units of blocks divided into predetermined sizes, and managing information related to a user group including a user terminal currently connected to a video service; And a plurality of user terminals connected via a server and the Internet and currently receiving video services, wherein the user group includes one or more master user terminals, wherein the master user terminal is added / deleted to a group of other user terminals. Group information is updated and updated user group information is provided to the master user terminal of another group and the user terminal and server belonging to the group. When the server receives a video data transmission request from the user terminal, the user terminal requests Determining a subject of transmission of the video data of the block, wherein the user group includes a first group for receiving video data from the server, and a second group for receiving the buffered video data to a user terminal in the first group, each group The user terminal of receives a portion of the video data stream from the parent group By handover to the video data stream received from the user terminal and parent groups in the same group being provided for the entire video stream, and reproduces the video data on a block basis with the same index.

Description

P2P 기반의 비디오 서비스 시스템 및 이를 이용한 주문형 비디오 서비스 제공방법{P2P based video service system and method for providing VOD service using the same} P2P based video service system and method for providing video service using same {P2P based video service system and method for providing VOD service using the same}

본 발명은 주문형 비디오 서비스(VoD: Video on Demand)에 관한 것으로, 특히, P2P(peer-to-peer) 데이터 전송 방식을 기반으로 한 주문형 비디오 서비스 시스템 및 그 방법에 관한 것이다.The present invention relates to video on demand (VoD), and more particularly, to an on-demand video service system and method thereof based on a peer-to-peer (P2P) data transmission scheme.

일반적으로 주문형 비디오 서비스는 유니캐스트에 기반한 서버-클라이언트 상에서 제공되며, 이는 사용자가 비디오 서비스를 요청하면 서버가 하나의 세션을 형성하여, 비디오 데이터를 요청한 클라이언트로 전송함으로써 달성된다. 예를 들어, 100Mb/s의 대역폭을 가진 서버에서 400kb/s의 스트리밍 레이트(streaming rate)로 비디오 데이터를 전송하는 경우, 상기 서버는 최대 250명의 사용자에게 서비스를 제공할 수 있다.On-demand video services are typically provided on a unicast-based server-client, which is accomplished by the server establishing a session when a user requests a video service and sending the video data to the requesting client. For example, when transmitting video data at a streaming rate of 400kb / s from a server having a bandwidth of 100Mb / s, the server may provide a service to up to 250 users.

상기 서버-클라이언트 형태의 주문형 비디오 서비스 시스템은 원활한 서비스 제공을 위해 높은 대역폭을 사용해야 하기 때문에, 현재의 서버 자원에 따라 접속 가능한 사용자 수가 제한된다. 이러한 이유로 서비스 제공자는 주문형 비디오 서비스에 대한 수요가 증가하는 경우, 서버를 증설하거나, 전송 대역폭을 확장해야만 한다.Since the server-client type video service system needs to use high bandwidth for smooth service provision, the number of accessible users is limited according to the current server resources. For this reason, if the demand for on-demand video service increases, the service provider must expand the server or expand the transmission bandwidth.

하지만, 이와 같이 서버를 증설하거나 전송 대역폭을 확장하는 것은 주문형 비디오 서비스의 수요가 증가하고 있는 현재의 상황에 비추어볼 때 비경제적이고 비효율적인 것이 될 수 있다. 왜냐면, 비디오 서비스에 대한 요청은 항상 일정하지 않기 때문이다. 즉, 예상 수요에 대응하여 시스템의 자원을 충분히 준비한다 하더라도, 주문형 비디오 서비스에 대한 요청 수요가 적으면 시스템 자원이 비효율적으로 이용되고, 요청 수요가 폭증하면 시스템이 다운될 수 있다.However, such expansion of servers or expansion of transmission bandwidth may be inefficient and inefficient in light of the current situation in which demand for on-demand video services is increasing. This is because requests for video services are not always constant. That is, even if the system resources are sufficiently prepared in response to the expected demand, if the demand for the on-demand video service is small, the system resources are inefficiently used, and if the demand demand increases, the system may be down.

이러한 문제점을 극복하기 위해, 서버의 자원 대신 네트워크 자원을 활용하는 제1 기술과, 사용자 단말의 자원을 활용하는 제2 기술이 제안되고 있다.In order to overcome this problem, a first technique using a network resource instead of a server resource and a second technique using a resource of a user terminal have been proposed.

제1 기술은 IP 멀티캐스트를 사용하여 서버가 보내는 스트림(stream) 데이터를 중간 라우터가 복제하여 다수의 사용자 단말로 전달하는 기술이다. 이와 같은 제1 기술은 비디오 서비스를 요구하는 사용자의 수가 아무리 많아도 서버의 대역폭을 일정하게 유지시킬 수 있기 때문에 매우 효율적이다. 그러나 현재의 인터넷에서는 IP 멀티캐스트에 대한 기술 지원이 제대로 제공되지 않는다. 뿐만 아니라 서버가 비디오 데이터의 스트리밍을 위해 IP 멀티캐스트 주소를 독점하여 사용하기가 쉽지 않고, IP 멀티캐스트 주소로 전송될 수 있는 패킷을 제한하는 기술이 부재하며, IP 멀티캐스트로 전송되는 패킷에 대한 과금 기술이 제시되지 못하고 있다. 이와 같이 현재의 IP 멀티캐스트 기술은 해결되어야 할 많은 과제를 안고 있기 때문에 IP 멀티캐스트 기술을 인터넷 망에서 제공되는 상업용 주문형 비디오 서비스에 적용하는 것은 부적절하다.The first technology is a technology in which an intermediate router replicates stream data sent by a server using IP multicast and delivers the data to a plurality of user terminals. This first technology is very efficient because the bandwidth of the server can be kept constant no matter how many users request the video service. However, current technical support for IP multicast is not provided properly on the Internet. In addition, it is not easy for a server to monopolize an IP multicast address for streaming video data, and there is no technology to limit the packets that can be sent to an IP multicast address. Charging technology is not being presented. As the current IP multicast technology has many challenges to be solved, it is inappropriate to apply the IP multicast technology to commercial on-demand video services provided in the Internet.

제2 기술은 P2P의 개념을 도입한 것으로, 서버가 직접 사용자 단말로 비디오 스트림 데이터를 전송하는 대신, 이미 같은 비디오 스트림(video stream) 데이터를 전송받은 사용자 단말에서 비디오 서비스를 요청한 사용자 단말로 전송하도록 한다. 즉, 제2 기술은 비디오 데이터를 재생하고 있는 사용자 단말의 수가 많으면 그 만큼 다른 사용자 단말로 비디오 데이터를 전송해 줄 수 있는 사용자 단말의 수도 많아지기 때문에, 비디오 서비스를 요구하는 사용자의 수가 증가하더라도 서버의 대역폭 사용량을 일정하게 유지시키거나 줄일 수 있다.The second technology introduces the concept of P2P, and instead of transmitting the video stream data directly to the user terminal, the server transmits the same video stream data to the user terminal that requested the video service. do. That is, since the second technology increases the number of user terminals that can transmit video data to other user terminals as the number of user terminals that are playing video data increases, the number of users requesting video service increases. You can keep or reduce your bandwidth usage.

그러나 현재까지 제안된 제2 기술들은 특정 사용자가 비디오 재생을 중지하면 상기 특정 사용자 단말로부터 비디오 데이터를 전송받고 있는 사용자 단말에서의 비디오 재생에 치명적인 영향을 주는 문제와 사용자 단말이 높은 업로드 대역폭을 사용해야 하는 문제 등을 가지고 있다.However, the second technologies proposed so far have a problem that if a user stops playing a video, it has a fatal effect on the video playback at the user terminal receiving video data from the specific user terminal and the user terminal must use a high upload bandwidth. I have a problem.

따라서 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, P2P 기술을 이용하여 다수의 사용자 단말에게 안정적인 주문형 비디오 서비스를 제공하면서도 서버와 사용자 단말의 전송 대역폭을 최소로 사용할 수 있는 주문형 비디오 서비스 시스템 및 그 방법을 제공하는데 그 목적이 있다.Accordingly, the present invention is to solve the above problems of the prior art, the on-demand video service that can use a minimum transmission bandwidth of the server and the user terminal while providing a stable on-demand video service to a plurality of user terminals using P2P technology It is an object of the present invention to provide a system and a method thereof.

상기 목적을 달성하기 위한 본 발명에 따른 시스템은, 비디오 파일이 일정 크기로 분할된 블록 단위의 비디오 데이터에 각각 인덱스를 부여하여 저장하고, 현재 비디오 서비스에 접속된 적어도 하나의 사용자 단말을 포함하는 사용자 그룹과 관련된 정보를 관리하는 서버; 및 상기 서버와 인터넷을 통해 접속되고, 현재 비디오 서비스를 제공받는 다수의 사용자 단말을 포함하되, 상기 사용자 그룹은 최소한 하나의 마스터 사용자 단말을 포함하고, 상기 마스터 사용자 단말은 다른 사용자 단말의 그룹에의 추가/삭제를 담당하고, 상기 사용자 그룹 정보를 갱신하여, 상기 갱신된 사용자 그룹 정보를 다른 그룹의 마스터 사용자 단말과 자신의 그룹에 속한 사용자 단말 및 서버로 제공하며, 상기 서버는, 임의의 사용자 단말로부터 특정 블록의 비디오 데이터 전송 요구를 수신하면, 상기 사용자 단말이 요구한 블록의 비디오 데이터를 제공할 수 있는 전송 주체를 결정하고, 상기 사용자 그룹은 상기 서버로부터 직접 상기 블록 단위의 비디오 데이터를 수신하는 제1 그룹과, 상기 제1 그룹 내의 사용자 단말에 버퍼링된 블록 단위의 비디오 데이터를 전달받는 제2 그룹을 포함하며, 각 그룹의 사용자 단말은 동일한 인덱스를 갖는 블록 단위의 비디오 데이터를 재생하는 것을 특징으로 한다.A system according to the present invention for achieving the above object, the video file is indexed and stored in each block of the video data divided into a predetermined size, the user including at least one user terminal connected to the current video service A server managing information related to the group; And a plurality of user terminals connected to the server via the Internet and currently receiving video services, wherein the user group includes at least one master user terminal, and the master user terminal is connected to a group of other user terminals. Responsible for addition / deletion, updating the user group information, and providing the updated user group information to a master user terminal of another group and a user terminal and a server belonging to a group of the other, wherein the server is an arbitrary user terminal. When the video data transmission request of a specific block is received from the mobile station, a transmission entity capable of providing the video data of the requested block by the user terminal is determined, and the user group receives the video data of the block unit directly from the server. A block stage buffered in a first group and a user terminal in the first group And of a second group to receive the video data transmission, the user terminal in each group it is characterized in that for reproducing the video data on a block basis with the same index.

또한 상기 목적을 달성하기 위한 본 발명에 따른 비디오 서비스 방법은, 비디오 파일이 일정 크기로 분할된 블록 단위의 비디오 데이터에 각각 인덱스를 부여하여 저장하고, 현재 비디오 서비스에 접속된 적어도 하나의 사용자 단말을 포함하는 사용자 그룹과 관련된 정보를 관리하는 서버와, 상기 서버와 인터넷을 통해 접속되는 사용자 단말은 하나의 사용자 그룹에 소속되며, 각 사용자 그룹에는 다른 사용자 단말의 그룹 내 추가/삭제를 담당하는 마스터 단말이 존재하는 시스템에서의 비디오 서비스 방법에 있어서, 상기 서버는, 임의의 사용자 단말로부터 특정 블록의 비디오 데이터 전송 요구를 수신하면, 상기 사용자 단말이 요구한 비디오 데이터 블록의 인덱스를 확인하여, 현재 비디오 서비스를 제공받고 있는 사용자 그룹 중 새로 서비스를 요구한 상기 사용자 단말을 포함시킬 수 있는 사용자 그룹이 있는지 검색하는 제1 단계; 상기 제1 단계에서 검색된 사용자 그룹의 마스터 단말 정보를 상기 새로 서비스를 요구한 사용자 단말로 제공하는 제2 단계; 상기 제1 단계에서 상기 새로 서비스를 요구한 사용자 단말을 포함시킬 사용자 그룹이 검색되지 않으면, 이미 생성된 그룹 중에 자식 그룹을 가지고 있지 않고 상기 새로 서비스를 요구한 사용자 단말로 사용자가 요구한 비디오 데이터 블록을 제공할 수 있는 그룹이 있는지 검색하는 제3 단계; 상기 제3 단계에서 조건에 맞는 사용자 그룹이 검색되면, 상기 새로 서비스를 요구한 사용자 단말을 마스터 단말로 하는 새로운 그룹을 생성하여, 상기 검색된 사용자 그룹으로 상기 생성된 그룹 정보를 통보하여 상기 새로 생성한 그룹을 상기 검색된 사용자 그룹의 자식 그룹으로 만드는 제4 단계; 상기 제3 단계에서 상기 새로 서비스를 요구한 사용자 단말로 요구한 비디오 데이터 블록을 전달할 수 있는 사용자 그룹이 존재하지 않으면, 현재 여유 대역폭이 요구한 비디오 데이터 블록을 전송할 수 있는 대역폭인지 확인하는 제5 단계; 상기 제5 단계에서 전송할 수 있는 여유 대역폭이 있으면, 직접 상기 새로 서비스를 요구한 사용자 단말로 요구한 비디오 데이터 블록을 전송하는 제6 단계; 및 상기 제5 단계에서 여유 대역폭이 없으면, 서비스 제공 불가를 통보하는 제7 단계를 포함한다.In addition, the video service method according to the present invention for achieving the above object, the video file is indexed and stored in each of the video data of the block unit divided into a predetermined size, and at least one user terminal currently connected to the video service A server for managing information related to a user group including a server, and a user terminal connected to the server through the Internet belong to one user group, and each user group is a master terminal that is in charge of adding / deleting a group of other user terminals. In the video service method in the existing system, when the server receives a video data transmission request of a specific block from an arbitrary user terminal, the server checks the index of the video data block requested by the user terminal, and the current video service. New user group that is receiving A first step of search for the existence of the group of users that can be included in the user terminal; A second step of providing master terminal information of the user group found in the first step to the user terminal requesting the new service; If the user group to include the user terminal requesting the new service is not found in the first step, the video data block requested by the user to the user terminal requesting the new service without having a child group among the already created groups Searching for whether there is a group capable of providing a third step; If the user group for the conditions in the third step of the search, to create a new group to the user terminal a request for the new service to the master terminal, is more than the new and notifies the generated group information to the retrieved user groups A fourth step of making the created group a child group of the searched user group; A fifth step of checking whether the current free bandwidth is a bandwidth capable of transmitting the requested video data block if there is no user group capable of delivering the requested video data block to the newly requested user terminal in the third step; ; A sixth step of transmitting the requested video data block directly to the user terminal that has requested the new service if there is available bandwidth that can be transmitted in the fifth step; And a seventh step of notifying that the service cannot be provided if there is no free bandwidth in the fifth step.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1에는 본 발명에 따른 P2P 기반의 비디오 서비스 시스템의 블록도가 도시되어 있다. 도 1에 도시된 바와 같이 본 발명의 시스템은 사용자 단말의 요청에 따라 비디오 파일을 제공하는 서버(10)를 구비한다.1 is a block diagram of a P2P based video service system according to the present invention. As shown in FIG. 1, the system of the present invention includes a server 10 for providing a video file at the request of a user terminal.

서버(10)는 P2P 기반의 비디오 파일의 전송을 위해, 서비스 제공할 비디오 파일을 도 2에 도시된 바와 같이 가공하여 관리한다. 도 2는 본 발명의 실시예에 따른 서버에서 관리되는 비디오 파일의 포맷도이다. 도 2에 도시된 바와 같이, 서버(10)는 비디오 파일을 연속된 데이터 스트림으로 제공한다. 여기서 상기 비디오 파일의 전체 길이를 L seconds라 하고, 비디오 데이터를 R bits/second의 고정 비트율(CBR: Constant Bit Rate)로 전송한다고 가정한다. 이와 같은 비디오 파일을 인터넷을 통해 사용자 단말로 전달하기 위해서는 비디오 파일을 D 비트(bits)의 데이터 블록으로 일정하게 분할하여 전송한다. 따라서 서버는 전체 비디오 파일을 총 (R*L)/D 개의 데이터 블록으로 나누어 매 D/R 초마다 전송해야 한다. 이에 서버(10)는 비디오 파일을 하나의 패킷에 담겨지는 D 비트로 나누어, n 개의 비디오 데이터 블록(B0 - Bn-1)을 만들고, 각 비디오 데이터 블록(B0 - Bn-1)에 0부터 n-1까지의 인덱스(index)를 붙여 관리한다. 상기와 같이 비디오 파일을 가공하는 것은 사용자가 요청하는 비디오의 정보 즉, 비디오 재생 지점을 알아야 사용자 단말이 요청하는 비디오를 제공해줄 다른 사용자 단말을 판단할 수 있고, 그에 따라 P2P 기반의 비디오 데이터 전송을 할 수 있기 때문이다. 그리고 서버(10)는 사용자 단말(120a 내지 120h)의 비디오 서비스 요청을 수신하면 사용자 단말(120a 내지 120h)로 비디오 데이터 스트림을 제공할 대상을 결정하는데, 사용자 단말이 요청한 비디오의 정보(즉, 비디오 재생 지점)에 따라 자신 또는 사용자 그룹들 중 하나를 결정한다.The server 10 processes and manages a video file to be provided as a service, as shown in FIG. 2, for transmission of a P2P based video file. 2 is a format diagram of a video file managed by a server according to an embodiment of the present invention. As shown in FIG. 2, server 10 provides a video file as a continuous data stream. In this case, it is assumed that the total length of the video file is L seconds, and the video data is transmitted at a constant bit rate (CBR) of R bits / second. In order to transmit such a video file to a user terminal through the Internet, the video file is divided into a data block of D bits and transmitted. Therefore, the server must divide the entire video file into total (R * L) / D data blocks and transmit it every D / R seconds. Accordingly, the server 10 divides the video file into D bits contained in one packet to make n video data blocks B0-Bn-1, and from 0 to n- in each video data block B0-Bn-1. Manage by indexing up to 1. Processing the video file as described above may determine other user terminals that provide the video requested by the user terminal by knowing the information of the video requested by the user, that is, the video playback point, and accordingly, P2P-based video data transmission may be performed. Because you can. When the server 10 receives a video service request from the user terminals 120a to 120h, the server 10 determines a target for providing a video data stream to the user terminals 120a to 120h. Play-point) or one of the user groups.

한편 본 발명의 시스템은 서버(10)와 더불어 다수개의 사용자 단말(120a 내지 120h)을 구비한다. 상기 서버와 사용자 단말, 그리고 사용자 단말들간은 인터넷(또는 IP 망)을 통해 연결되어 있다. 사용자 단말(120a 내지 120h)은 서버(10)로부터 전달된 비디오 데이터를 버퍼에 저장한 후 재생하는 장치이며, 본 발명에서는 비디오 데이터를 다른 사용자 단말로 제공하는 기능을 추가로 가진다. 사용자 단말은 네트워크 상에서 비디오를 전송할 때에 생기는 지터(jitter) 문제를 해결하고 다른 사용자 단말에게 제공할 비디오 데이터 블록을 보관하기 위해서 비디오 데이터 블록을 저장하는 버퍼를 가진다. 사용자 단말(120a 내지 120h)은 자신의 버퍼 크기가 허용하는 범위에서 최근에 받은 비디오 데이터 블록을 보관하고, 보관된 데이터 블록을 하위 사용자 그룹인 자식 그룹의 사용자 단말들로 전송한다. 상기 버퍼의 크기는 비디오의 크기보다 작은 것이 일반적이다.Meanwhile, the system of the present invention includes a plurality of user terminals 120a to 120h together with the server 10. The server, the user terminal, and the user terminals are connected through the Internet (or IP network). The user terminals 120a to 120h are apparatuses for storing and playing back video data transmitted from the server 10 in a buffer, and the present invention further has a function of providing video data to another user terminal. The user terminal has a buffer that stores the video data block in order to solve the jitter problem when transmitting video over the network and to store the video data block to be provided to another user terminal. The user terminals 120a to 120h store recently received video data blocks within a range allowed by their buffer size, and transmit the stored data blocks to user terminals of child groups which are lower user groups. The size of the buffer is generally smaller than the size of the video.

각 사용자 단말(120a 내지 120h)의 버퍼에 저장되는 비디오 데이터 블록을 도 3을 참조하여 살펴본다. 도 3은 본 발명의 실시예에 따른 사용자 단말의 버퍼에 저장된 비디오 데이터 블록의 포맷도이다. 버퍼에 저장된 비디오 데이터 블록에서, 인덱스가 가장 작은 데이터 블록의 인덱스를 LD(Lowest Data block index in a buffer)라고 하고, 인덱스가 가장 큰 데이터 블록의 인덱스를 HD(Highest Data block index in a buffer)라 하며, 서버(10) 또는 다른 그룹이 사용자 단말이 속한 그룹으로 보내고 있는 비디오 데이터 블록의 인덱스를 RP(Receiving Point)라 하고, 자신이 속한 사용자 그룹이 다른 사용자 그룹으로 보내고 있는 비디오 데이터 블록의 인덱스를 FP(Forwarding Point)라 하며, 사용자 단말이 재생하고 있는 비디오 데이터 블록의 인덱스를 PP(Playing Point)라 한다. RP-LD의 최대값은 서버(10)가 미리 정한 사용자 버퍼의 크기이며, 사용자 단말은 RP-LD 값이 버퍼의 크기를 넘지 않도록 버퍼를 관리한다.A video data block stored in a buffer of each user terminal 120a to 120h will be described with reference to FIG. 3. 3 is a format diagram of a video data block stored in a buffer of a user terminal according to an embodiment of the present invention. In the video data block stored in the buffer, the index of the data block with the smallest index is called LD (lowest data block index in a buffer), and the index of the data block with the largest index is called HD (highest data block index in a buffer). The index of the video data block that the server 10 or another group sends to the group to which the user terminal belongs is called RP (Receiving Point), and the index of the video data block that the user group to which the user belongs is sent to the other user group It is called FP (Forwarding Point), and the index of the video data block that the user terminal is playing is called PP (Playing Point). The maximum value of the RP-LD is the size of a user buffer predetermined by the server 10, and the user terminal manages the buffer so that the RP-LD value does not exceed the size of the buffer.

이러한 사용자 단말(120a 내지 120h)은 버퍼에 저장되는 비디오 데이터 블록에 따라 사용자 그룹이 결정되고, 비디오 데이터를 수신할 대상 및 비디오 데이터를 전송할 대상이 결정된다.The user terminals 120a to 120h determine a user group according to the video data block stored in the buffer, and determine a target for receiving the video data and a target for transmitting the video data.

도1을 참조하면, 사용자 단말들(120a 내지 120h)은 서버(10)에 연결된 하나의 체인(100)을 이룬다. 그리고 사용자 단말들(120a 내지 120h) 중 사용자 단말 120a, 120b와 120c는 제1 사용자 그룹(110a)을 이루고, 사용자 단말 120d, 120e는 제2 사용자 그룹(110b)을 이루며, 사용자 단말 120f, 120g와 120h는 제3 사용자 그룹(110c)을 이룬다. 결국, 체인(100)은 적어도 하나 이상의 사용자 그룹을 포함하고, 사용자 그룹은 적어도 하나 이상의 사용자 단말을 포함한다.Referring to FIG. 1, the user terminals 120a to 120h form a chain 100 connected to the server 10. The user terminals 120a, 120b and 120c form the first user group 110a among the user terminals 120a through 120h, the user terminals 120d and 120e form the second user group 110b, and the user terminals 120f and 120g. 120h forms the third user group 110c. As a result, the chain 100 includes at least one user group, and the user group includes at least one user terminal.

그리고 제1 사용자 그룹(110a)은 서버(10)로부터 비디오 데이터를 전달 받고, 제2 사용자 그룹(110b)은 제1 사용자 그룹(110a)으로부터 비디오 데이터(130b)를 전달 받으며, 제3 사용자 그룹(110c)은 제2 사용자 그룹(110b)으로부터 비디오 데이터(130c)를 전달 받는다. 이때 각 비디오 데이터들(130a, 130b, 130c)은 서로 다른 비디오 데이터 블록으로 이루어져 있다.The first user group 110a receives video data from the server 10, the second user group 110b receives video data 130b from the first user group 110a, and receives a third user group ( 110c receives video data 130c from the second user group 110b. At this time, each of the video data 130a, 130b, 130c is composed of different video data blocks.

구조적인 입장에서 사용자 단말들은 하나 이상의 사용자 단말이 형성하는 사용자 그룹들이 사슬에 의해 연결된 형태인 그룹(group)-체인(chain) 구조를 이룬다.From a structural standpoint, user terminals form a group-chain structure in which user groups formed by one or more user terminals are connected by a chain.

그룹-체인 구조에 따르면, 비디오 스트림을 제공하는 서버 또는 사용자 그룹은 부모 그룹이 되고, 비디오 스트림을 수신하는 사용자 그룹은 자식 그룹이 된다.According to the group-chain structure, the server or user group providing the video stream becomes the parent group, and the user group receiving the video stream becomes the child group.

상기 사용자 그룹(110a, 110b, 110c)은 같은 재생지점 즉, 동일한 인덱스의 비디오 데이터 블록을 재생하는 피어(peer) 즉, 사용자 단말(120)의 집합이다. 따라서 사용자 그룹인 110a와 110b와 110c는 서로 다른 재생지점을 가지며, 동일 사용자 그룹의 사용자 단말들은 동일한 재생지점(PP)을 가진다.The user groups 110a, 110b, and 110c are sets of peers, ie, user terminals 120, which play video data blocks having the same playback point, that is, the same index. Therefore, user groups 110a, 110b, and 110c have different playback points, and user terminals of the same user group have the same playback point PP.

또한 동일 사용자 그룹의 사용자 단말들은 부모 그룹이 송신하고 있는 데이터 블록의 인덱스(RP)가 동일하고, 자식 그룹으로 전송하고 있는 비디오 데이터 블록의 인덱스(FP)가 동일하며, 저장된 비디오 데이터 블록 중 가장 작은 값의 인덱스(LD)가 동일하게 된다.In addition, the user terminals of the same user group have the same index RP of the data block transmitted by the parent group, the same index FP of the video data block transmitted to the child group, and the smallest of the stored video data blocks. The index LD of the value is the same.

한편, 동일 사용자 그룹(110)에 속한 사용자 단말들을 멤버(member)라고 하는데, 각 사용자 그룹에는 그룹 마스터 역할을 담당하는 멤버가 존재한다. 그룹 마스터는 자신이 속한 사용자 그룹에 새로운 사용자 단말을 추가하거나 그룹내 사용자 단말을 삭제할 수 있다. 그리고, 그룹 마스터는 사용자 단말의 추가/삭제 시 다음의 표 1과 같은 그룹 정보를 갱신하고, 갱신한 그룹 정보를 각 멤버에게 전달하여 갱신한 그룹 정보가 공유되도록 한다.Meanwhile, user terminals belonging to the same user group 110 are called members, and each user group has a member who plays a role of group master. The group master may add new user terminals or delete user terminals in the group to the user group to which the group master belongs. The group master updates the group information as shown in Table 1 below when the user terminal is added / deleted, and transmits the updated group information to each member so that the updated group information is shared.

따라서 사용자 그룹의 각 멤버는 다음의 표 1과 같은 그룹 정보를 가진다.Therefore, each member of the user group has group information as shown in Table 1 below.

항 목  Item 의 미        meaning 체인 ID Chain ID 그룹이 속한 체인의 식별자 Identifier of the chain to which the group belongs 생성 시간 Generation time 그룹 정보가 생성될 때의 시간 Time when group information is generated 사용될 시간 Time to be used 그룹 정보가 사용되기 시작할 시간 The time at which group information begins to be used 멤버의 수 Number of members 그룹에 속해 있는 사용자 단말의 수 The number of user terminals in the group 멤버 리스트 Member list 각 멤버의 IP 어드레스, 포트, 스테이트를 담고 있는 리스트 List containing each member's IP address, port, and state RP RP 그룹 정보가 생성될 때의 그룹의 RP RP of group when group information is created LD LD 그룹 정보가 생성될 때의 그룹의 LD LD of group when group information is generated

멤버 리스트는 사용자 그룹에 들어온 시간 순서로 멤버의 정보(즉, 멤버의 IP 어드레스, 포트, 스테이트)가 정렬된다. 일예로, 사용자 그룹에 가장 먼저 들어온 멤버는 멤버 리스트의 첫 번째 인덱스인 '0'에 자신의 정보가 기록되고, 두 번째 들어온 멤버는 멤버 리스트의 두 번째 인덱스인 '1'에 자신의 정보가 기록된다.The member list is arranged in the order of time when the user enters the user group, ie the member's IP address, port, and state. For example, the first member who enters the user group records their information at '0', the first index of the member list, and the second member records their information at '1', the second index of the member list. do.

멤버 리스트에서 각 멤버의 인덱스를 그 멤버의 ID라고 한다. 각 멤버는 그룹 정보를 수신한 후 멤버 리스트의 인덱스를 확인하여 자신의 ID를 확인한다. 멤버 중에서 ID가 '0'인 멤버가 그룹 마스터가 된다.The index of each member in the member list is called its member ID. Each member checks its ID by checking the index of the member list after receiving the group information. The member whose ID is '0' among the members becomes the group master.

그룹의 모든 멤버는 그룹 마스터에 의해 상기 표 1과 같은 자신이 속한 그룹의 그룹 정보를 공유하게 되고, 자신이 속한 그룹의 그룹 정보 이외에 부모 그룹의 그룹 정보와 자식 그룹의 그룹 정보도 알게 된다.All members of the group share the group information of the group to which they belong, as shown in Table 1 above, by the group master, and also know the group information of the parent group and the group information of the child group in addition to the group information of the group to which they belong.

이하 도 4를 참조하여, 각 멤버에게 그룹 정보 및 부모/자식 그룹의 그룹 정보가 알려지는 과정을 설명한다. Hereinafter, a process in which group information and group information of a parent / child group are known to each member will be described with reference to FIG. 4.

사용자 그룹(110b)의 그룹 마스터(0)는 새로운 사용자 단말의 추가 또는 기존 사용자 단말의 삭제에 따라 자신이 속한 그룹의 그룹 정보를 갱신하고, 서버(10)와 부모 그룹(110a)의 그룹 마스터(0)와 자식 그룹(110c)의 그룹 마스터(0)에게 갱신한 자신이 속한 그룹의 그룹 정보를 전송한다. 그리고 사용자 그룹(110b)의 그룹 마스터(0)는 자신의 그룹 멤버에게 갱신된 그룹 정보나 부모/자식 그룹의 그룹 정보를 제공하기 위해, 그룹 멤버 중 ID가 [1, h]인 멤버에게 그룹 정보를 전송한다. 상기 h=3일 경우 [1, h]는 멤버 ID(즉, 인덱스)가 1, 2, 3인 멤버이다. 또한 ID가 1, 2, 3인 3개의 멤버는 그룹 정보를 수신하면, ID가 [I· h+1, I·h+h]에 속하는 멤버들에게 상기에서 수신한 그룹 정보를 전송한다. 상기 I는 그룹 정보를 전송하는 멤버의 ID이다. 따라서 ID가 1인 멤버에 대응하는 [I· h+1, I·h+h]는 [3, 6]이고, ID가 2인 멤버에 대응하는 [I· h+1, I·h+h]는 [7, 9]이며, ID가 3인 멤버에 대응하는 [I· h+1, I·h+h]는 [10, 12]이다. The group master (0) of the user group (110b) updates the group information of the group to which it belongs in accordance with the addition of a new user terminal or the deletion of the existing user terminal, and the group master (group) of the server 10 and the parent group (110a) 0) and the group information of the group to which the updated one belongs to the group master (0) of the child group (110c). In addition, the group master (0) of the user group (110b) provides the group information to the member whose ID is [1, h] among the group members in order to provide the updated group information or the group information of the parent / child group to its group members. Send it. When h = 3, [1, h] is a member whose member ID (ie, index) is 1, 2, or 3. In addition, when the three members having IDs 1, 2, and 3 receive group information, the group information received above is transmitted to the members whose IDs belong to [I · h + 1, I · h + h]. I is an ID of a member for transmitting group information. Therefore, [I · h + 1, I · h + h] corresponding to a member with ID 1 is [3, 6], and [I · h + 1, I · h + h corresponding to a member with ID 2; ] Is [7, 9], and [I · h + 1, I · h + h] corresponding to the member whose ID is 3 is [10, 12].

또한 그룹 정보는 신뢰성 있게 전송되어야 한다. 그룹 정보를 보낸 멤버는 그룹 정보를 받은 멤버가 그룹 정보를 받았다는 응답을 보내오는 것을 기다려야 하며, 만약 정해진 시간이 지나도록 응답을 보내오지 않으면 그룹 정보를 재전송해야 한다. 또한 정해진 횟수 이상 이와 같은 재전송을 반복하게 되면, 해당 멤버가 존재하지 않는 것으로 가정하고, 해당 멤버의 ID가 J라고 할 때에 ID가 [J·h+1, J· h+h]인 멤버에게도 그룹 정보를 전송해야 한다.Group information must also be transmitted reliably. The member who sent the group information should wait for the member who received the group information to send a response that the group information has been received. If the member does not send a response after a predetermined time, the member must retransmit the group information. If such retransmission is repeated more than a predetermined number of times, it is assumed that the member does not exist, and when the ID of the member is J, even the member whose ID is [J · h + 1, J · h + h] is grouped. Information must be sent.

그런데, 사용자 단말이 사용자 그룹에 새로이 참가하거나 삭제된 경우에, 모든 멤버가 갱신한 상기 표 1의 그룹 정보를 수신하자마자 바로 사용하게 되면 문제가 발생할 수 있다.However, when a user terminal newly joins or deletes a user group, a problem may occur when immediately using the group information of Table 1 updated by all members.

즉, 멤버가 갱신된 그룹 정보를 수신한 즉시 사용하게 되면, 그룹 정보가 갱신되는 동안에 갱신된 그룹 정보를 사용하는 멤버와 갱신 이전의 그룹 정보를 사용하는 멤버가 동일 사용자 그룹에 동시에 존재하게 된다. 그런데 멤버는 그룹 정보에 따라 P2P 전송 방식의 비디오 스트림을 제공하는데, 동일 사용자 그룹의 멤버간에 사용하는 그룹 정보가 다르면 비디오 스트림의 제공에 오류가 발생할 수 있다.That is, if a member immediately uses the updated group information, the member using the updated group information and the member using the group information before the update are simultaneously present in the same user group while the group information is updated. However, members provide a video stream of a P2P transmission method according to group information. If group information used between members of the same user group is different, an error may occur in provision of a video stream.

상기와 같이 갱신된 그룹 정보를 사용하는 멤버와 갱신되지 않은 그룹 정보를 사용하는 멤버가 동시에 존재하는 이유는, 하기의 도 4를 참조로 한 설명과 같이 그룹 마스터가 전송한 그룹 정보가 모든 멤버에게 전송될 때까지 걸리는 시간이 다음의 수학식 1과 같이 되기 때문이다.The reason why the member using the updated group information and the member using the non-updated group information exist at the same time is that the group information transmitted by the group master is transmitted to all members as described with reference to FIG. 4 below. This is because the time taken to be transmitted becomes as shown in Equation 1 below.

상기 T1은 그룹 정보 갱신 시간이고, Sg는 그룹의 크기 즉, 그룹 멤버의 수이며, d는 사용자 간의 패킷 딜레이(delay)의 최대값으로 서버가 미리 정한 값이다.T1 is a group information update time, Sg is a size of a group, that is, a number of group members, and d is a maximum value of a packet delay between users, and is predetermined by the server.

따라서 상기 문제를 해결하기 위해 표 1의 그룹 정보에는 그룹 정보가 사용되기 시작할 시간 정보가 포함된다. 각 멤버는 그룹 정보를 수신하면 바로 사용하지 않고, 그룹 정보 중에 갱신된 멤버 리스트의 정보만을 읽어 들여 자신의 ID와 다른 멤버의 새로운 ID를 확인하여 전술한 바와 같이 그룹 정보를 다른 멤버에게 전송한 후, 갱신된 그룹 정보를 큐에 저장하고 있다가 현재 시간이 사용될 시간이 될 때에 그룹 정보를 사용하게 된다. 따라서 모든 멤버는 비디오 스트리밍을 위해 항상 같은 그룹 정보를 사용하게 된다. 이와 같이 하는 이유는 비디오 데이터 전송시 멤버들이 같은 그룹 정보를 사용하는 것이 유리하기 때문이다. 즉, 사용자 단말이 그룹에 추가/삭제되어서 그룹 정보가 변경이 되었을 때, 비디오 데이터 전송을 위해서는 모든 멤버가 이를 알기까지는 이전 그룹의 정보를 사용하는 것이 유리하지만, 그룹 정보를 그룹 멤버에게 전송하기 위해서는 새로운 그룹 정보를 사용해야만 하기 때문이다. 같은 이유로, 부모/자식 그룹의 그룹 정보를 그룹 멤버에게 전송할 때에는 자신이 속한 그룹의 그룹 정보를 담고 있는 큐에서 마지막에 넣은 그룹 정보를 꺼내어, 그 그룹 정보에 있는 멤버 리스트를 참조해 부모/자식 그룹의 정보를 다른 멤버에게 전송해야 한다.Therefore, in order to solve the problem, the group information of Table 1 includes time information at which group information starts to be used. When each member receives the group information, it does not use it immediately, and reads only the updated member list information in the group information, checks its ID and the new ID of another member, and transmits the group information to the other members as described above. In this case, the updated group information is stored in the queue, and the group information is used when the current time is used. Therefore, all members always use the same group information for video streaming. This is because it is advantageous for members to use the same group information when transmitting video data. That is, when the user information is added / deleted to the group and the group information is changed, it is advantageous to use the information of the previous group until all members know this for video data transmission, but to transmit the group information to the group member This is because the new group information must be used. For the same reason, when sending group information of a parent / child group to a group member, the last group information is taken out of the queue containing the group information of the group to which the group belongs, and the parent / child group is referred to by referring to the member list in the group information. Must be sent to other members.

여기서 그룹 마스터는 부모 그룹, 자식 그룹 및 자신이 속한 사용자 그룹의 멤버 수를 가지고, 그룹 정보를 갱신했을 때에 부모 그룹, 자식 그룹 및 자신이 속한 사용자 그룹의 모든 멤버가 갱신된 그룹 정보를 받는데 걸리는 시간을 계산한다. 그리고 그룹 마스터는 그룹 정보를 생성할 때에 그룹 정보가 사용될 시간을 상기 계산한 모든 멤버가 그룹 정보를 받는데 걸리는 시간보다 늦도록 설정한다. 이에 의해, 상기 갱신된 그룹 정보를 수신한 부모 그룹, 자식 그룹 및 같은 그룹의 모든 멤버들은 비디오 스트리밍을 위해 항상 동일한 그룹 정보를 사용하게 한다.Here, the group master has the number of members of the parent group, the child group, and the user group to which it belongs, and when the group information is updated, the time taken for all members of the parent group, the child group, and the user group to which it belongs to receive the updated group information. Calculate When the group master generates the group information, the group master sets the time for which the group information is used to be later than the time for all the calculated members to receive the group information. This allows the parent group, child group and all members of the same group that have received the updated group information to always use the same group information for video streaming.

도 5를 참조하여, 본 발명의 실시예에 따른 서버(10)에 의한 서비스 구조 즉, 그룹-체인 구조를 형성하는 과정을 설명한다. 도 5를 참조로 한 설명을 통해 당업자는 어떤 사용자들이 동일 사용자 그룹으로 묶이게 되는지, 자식 그룹은 어떠한 경우에 생기는지, 및 새로운 체인은 어떠한 경우에 생기는지를 알게 될 것이다.Referring to FIG. 5, a process of forming a service structure, that is, a group-chain structure by the server 10 according to an embodiment of the present invention will be described. The description with reference to FIG. 5 will enable those skilled in the art to know which users are grouped into the same user group, when a child group occurs, and when a new chain occurs.

서버는 새로운 사용자 단말로부터 비디오 서비스를 요청하는 요구 메시지를 수신한다(501). 상기 요구 메시지에는 사용자 단말이 요구하는 재생시작지점의 비디오 데이터 블록 인덱스(RI)가 포함되어 있다. 상기 비디오 데이터 블록 인덱스(RI)는 사용자가 수신해야할 비디오 데이터 블록의 인덱스 중에서 가장 작은 인덱스이다.The server receives a request message for requesting a video service from a new user terminal (501). The request message includes a video data block index (RI) of a playback start point requested by the user terminal. The video data block index (RI) is the smallest index among the indexes of the video data block to be received by the user.

서버는 사용자 단말로부터 비디오 서비스 요구 메시지가 수신되면, 수신된 요구 메시지에 포함된 비디오 데이터 블록 인덱스(RI)를 확인한다(502). 상기 비디오 데이터 블록 인덱스(RI)를 확인하는 것은 현재 구성된 체인(100, 200, 300)의 사용자 그룹 중에서 서비스를 요청한 사용자 단말에게 비디오 스트림을 제공할 수 있는 사용자 그룹이 존재하는지를 확인하기 위한 것이다.When the server receives the video service request message from the user terminal, the server checks the video data block index (RI) included in the received request message (502). The checking of the video data block index (RI) is for checking whether there is a user group capable of providing a video stream to a user terminal requesting service among user groups of the currently configured chains 100, 200, and 300.

서버는 재생지점의 비디오 데이터 블록 인덱스(RI)를 이용하여 서비스를 요청한 사용자 단말을 포함시킬 사용자 그룹을 찾기 위해서 사용자 단말을 포함시키는 동안 그룹이 받는 비디오 데이터 블록의 수(α)와, 사용자 단말이 불필요하게 받는 비디오 데이터 블록의 한계 개수(β)를 파악한다. 상기 α와 상기 β는 비디오 스트리밍 레이트에 따라 달라지는데, 스트리밍 레이트가 고정값으로 결정되어 있으므로 디폴트(default)값으로 서버(10)에 저장되어 있다.The server uses the video data block index (RI) of the playback point to determine the number of video data blocks (α) received by the group while including the user terminal to find the user group to include the user terminal requesting the service. The limit number β of unnecessary video data blocks is determined. The α and β vary depending on the video streaming rate. Since the streaming rate is determined to be a fixed value, the α and β are stored in the server 10 as a default value.

서버(10)는 RI와 α와 β를 파악하면 모든 사용자 그룹을 대상으로 다음의 수학식 2를 만족하는 사용자 그룹을 찾는다. 즉, 서버는 사용자 그룹 중 사용자가 요구한 비디오 데이터 블록의 인덱스(RI)에서 서버(10) 또는 다른 그룹이 그룹으로 보내고 있는 비디오 데이터 블록의 인덱스(RP)를 뺀 값이, 새로 서비스를 요구한 사용자 단말을 사용자 그룹에 포함시키는 동안에 각 사용자 그룹이 받는 비디오 데이터 블록의 수(α)보다 크고, 새로 서비스를 요구한 사용자 단말이 불필요하게 받는 비디오 데이터 블록의 한계 개수(β)보다 작은 조건을 만족하는 사용자 그룹을 찾는다.When the server 10 grasps RI, α, and β, it finds a user group that satisfies the following Equation 2 for all user groups. That is, the server subtracts the index (RI) of the video data block requested by the user from the user group and subtracts the index (RP) of the video data block sent by the server 10 or another group to the group. While the user terminal is included in the user group, the user group satisfies a condition that is greater than the number of video data blocks (α) received by the user group and less than the limit number (β) of video data blocks that the user terminal requesting a new service needlessly receives. Find the user group you are using.

beta >RI-RP> alpha beta> RI-RP> alpha

수학식 2에서 RP는 각 사용자 그룹의 RP이다. 서버는 상기 수학식 2를 통해 판단된 사용자 그룹이 하나 이상이면 RI-RP가 최소인 그룹을 서비스를 요청한 사용자 단말을 포함시킬 사용자 그룹으로 선택한다.In Equation 2, RP is the RP of each user group. If more than one user group is determined through Equation 2, the server selects a group having the minimum RI-RP as the user group to include the user terminal requesting the service.

만약 서비스를 요청한 사용자 단말이 RI-β보다 작은 RP를 가진 사용자 그룹에 포함되거나 사용자 단말이 RI-α보다 큰 RP를 가진 사용자 그룹(110)에 포함되면, 서비스를 요청한 사용자 단말이 원하는 비디오 스트림을 제공받기 까지 장시간 기다려야 하거나, 원하는 비디오 스트림을 제공받지 못해 사용자 단말이 원하는 재생지점에서의 재생이 이루어지지 않는다. If the user terminal requesting the service is included in the user group having an RP smaller than RI-β or the user terminal is included in the user group 110 having an RP greater than the RI-α, the user terminal requesting the service receives the desired video stream. The user terminal does not have to wait for a long time or is not provided with the desired video stream, so the user terminal does not play the desired playback point.

서버는 상기 수학식 2를 통해 서비스를 요청한 사용자 단말을 포함시킬 사용자 그룹을 확인한다(504). 확인 결과, 사용자 단말을 포함시킬 사용자 그룹이 결정되면, 서비스를 요청한 사용자 단말에게 상기 결정된 사용자 그룹의 그룹 마스터 정보를 제공한다. 이에 서비스를 요청한 사용자 단말은 제공된 사용자 그룹의 그룹 마스터에게 멤버로서의 참가를 요구한다. 새로운 사용자 단말의 그룹 참가 요구를 허락한 그룹 마스터는 새로 참가하는 사용자 단말에게 ID를 제공하고, 그룹 정보의 갱신을 수행한다(505).The server checks the user group to include the user terminal that requested the service through Equation 2 (504). As a result of the check, when the user group to include the user terminal is determined, the group master information of the determined user group is provided to the user terminal requesting the service. The user terminal requesting the service requests the group master of the provided user group to participate as a member. The group master granting the group participation request of the new user terminal provides an ID to the newly joined user terminal and updates the group information (505).

504 단계에서 서버는 서비스를 요청한 사용자 단말을 포함시킬 사용자 그룹이 존재하지 않으면, 서비스를 요청한 사용자 단말을 그룹 마스터로 하는 새로운 그룹을 생성하여 다른 그룹의 자식 그룹으로 만드는 것이 가능한지를 확인한다(506).In step 504, if there is no user group to include the user terminal requesting the service, the server checks whether it is possible to create a new group using the user terminal requesting the service as a group master and make it a child group of another group (506). .

새로운 사용자 그룹의 생성을 위해서 서버는 자식 그룹을 가지지 않은 사용자 그룹을 대상으로 다음의 수학식 3을 적용한다. 즉, 서버는 사용자 그룹 중 사용자가 요구한 비디오 데이터 블록의 인덱스가, 그룹의 최소 비디오 데이터 블록 인덱스(LD)와 새로 서비스를 요구한 사용자 단말을 사용자 그룹에 포함시키는 동안에 사용자 그룹이 받는 비디오 데이터 블록의 수(α)를 더한 값보다는 크고, 현재 사용자 그룹의 각 사용자 단말이 재생하고 있는 비디오 데이터 블록의 인덱스와 새로 서비스를 요구한 사용자 단말을 사용자 그룹에 포함시키는 동안에 사용자 그룹이 받는 비디오 데이터 블록의 수(α)를 더한 값보다는 작은 조건을 만족하는 사용자 그룹을 찾는다.To create a new user group, the server applies the following equation 3 to a user group that does not have a child group. That is, the server receives the video data block received by the user group while the index of the video data block requested by the user in the user group includes the minimum video data block index LD of the group and the user terminal requesting the new service in the user group. Is larger than the sum of α, and the index of the video data block being played by each user terminal of the current user group and the video data block received by the user group while including the newly requested user terminal to the user group. Find a user group that satisfies a condition smaller than the number α.

상기 PP는 적용대상 사용자 그룹의 PP이다.The PP is a PP of the user group to be applied.

서버는 상기 수학식 3을 만족하는 사용자 그룹이 있는지를 확인한다(507). 확인 결과, 서버는 상기 수학식 3을 만족하는 사용자 그룹이 있으면, 서비스를 요청한 사용자 단말을 그룹 마스터로 하는 새로운 사용자 그룹을 만들고, 사용자 단말을 그룹 마스터로 하는 사용자 그룹을 상기 수학식 3을 만족한 사용자 그룹의 자식 그룹이 되게 한다(508). 그리고 자식 그룹은 부모 그룹의 마스터와 통신하여 비디오 데이터 블록을 전송받는다. 507 단계의 확인 결과, 만약 서비스를 요청한 사용자 단말을 사용자 그룹에 포함시키거나, 새로운 사용자 그룹으로 만들어 기존에 존재하는 사용자 그룹의 자식 그룹으로 만들 수 없다면, 서버는 서비스를 요청한 사용자 단말을 포함하는 새로운 체인을 생성한다.The server checks whether there is a user group that satisfies Equation 3 (507). As a result, if there is a user group that satisfies Equation 3, the server creates a new user group in which the user terminal requesting service is a group master, and a user group in which the user terminal is a group master satisfies Equation 3 above. Become a child group of the user group (508). The child group communicates with the master of the parent group to receive the video data block. If it is determined in step 507 that the user terminal requesting the service cannot be included in the user group or a new user group cannot be made a child group of an existing user group, the server includes a new user terminal including the user terminal requesting the service. Create a chain.

새로운 체인을 형성한다는 것은 기존 체인의 사용자 그룹과 P2P 데이터 전송을 하지 않는 새로운 사용자 그룹을 생성하는 것이며, 이때 서비스를 요청한 사용자 단말을 포함하는 새로운 사용자 그룹은 서버로부터 비디오 스트림을 제공받는 해당 체인의 최상위 부모 그룹이 되고, 사용자 단말이 그룹 마스터가 된다.To form a new chain is to create a new user group that does not have P2P data transmission with the user group of the existing chain, where a new user group including the user terminal requesting service is the top of the chain that receives the video stream from the server. It becomes a parent group and the user terminal becomes a group master.

최상위 부모 그룹은 자신의 부모 그룹이 없으므로, 서버로부터 데이터 스트림을 제공받아야 한다. 서버가 새로운 체인을 생성하기 위해서는 여유 대역폭을 고려해야 한다. 최상위 부모 그룹은 서버로부터 직접적인 데이터 스트림을 제공받기 때문에 서버의 여유 대역폭이 충분하지 못하면 새로운 체인을 생성할 수 없다.The top level parent group does not have its own parent group, so it must receive data streams from the server. In order for the server to create a new chain, you need to consider the free bandwidth. Since the top-level parent group receives the data stream directly from the server, it cannot create a new chain unless the server has enough free bandwidth.

따라서 서버는 자신의 여유 대역폭을 확인하고, 여유 대역폭이 데이터 스트림을 제공할 수 있을 정도인지를 확인한다(509). 서버는 자신의 여유 대역폭을 확인함으로써 새로운 체인의 생성이 가능한지를 판단한다(510).Therefore, the server checks its free bandwidth and checks whether the free bandwidth is sufficient to provide a data stream (509). The server determines whether a new chain can be created by checking its free bandwidth (510).

확인 결과, 새로운 체인을 생성할 수 있는 여유 대역폭을 가지고 있다고 판단되면, 서버는 서비스를 요청한 사용자 단말을 최상위 부모 그룹의 그룹 마스터로 하는 새로운 체인을 형성한다. 이때 서버는 새로운 체인에 체인 ID를 부여하고, 그룹 마스터인 사용자 단말은 서버로부터 부여받은 체인 ID를 포함한 그룹 정보를 생성한다(511).As a result of the check, if it is determined that there is free bandwidth for creating a new chain, the server forms a new chain in which the user terminal requesting the service is the group master of the highest parent group. At this time, the server assigns a chain ID to the new chain, and the user terminal, which is the group master, generates group information including the chain ID received from the server (511).

상기 설명에서 서버가 새로운 그룹을 만들 때에 배칭(Batching) 기법을 사용할 수 있다. 즉, 다수의 사용자가 짧은 시간 간격으로 비슷한 RI를 요청하고 이 사용자들에게 서비스를 제공하기 위해서는 새로운 사용자 그룹을 만들어야 한다면, 이 사용자들을 하나의 사용자 그룹으로 만들 수 있다. 이 때, 이 그룹의 그룹 마스터는 가장 먼저 비디오를 요청한 사용자가 된다.In the above description, the batching technique can be used when the server creates a new group. That is, if multiple users request similar RIs at short time intervals and need to create new user groups to provide services to these users, they can be made into one user group. At this time, the group master of this group becomes the user who first requested the video.

서버는 사용자 단말을 사용자 그룹에 포함시킬 수 없거나, 사용자 단말을 이용하여 새로운 자식 그룹을 생성할 수 없거나, 사용자 단말을 포함한 새로운 체인을 만들 수 없는 경우에는 사용자 단말 비디오 서비스 요청을 거부하는 거부 메시지를 사용자 단말로 전송한다(512).If the server cannot include the user terminal in the user group, cannot create a new child group using the user terminal, or cannot create a new chain including the user terminal, the server rejects the user terminal video service request. The user terminal transmits the data to the user terminal (512).

서버는 505 단계 또는 508 단계 또는 511 단계를 통해 사용자의 비디오 요청을 수락하고 사용자 단말을 그룹-체인 구조에 포함시킨다. 이후, 해당 사용자 그룹의 그룹 마스터로부터 갱신 또는 신규 생성된 그룹 정보를 수신하여 사용자 단말이 그룹-체인 구조에 성공적으로 포함된 것을 확인한다.(513)The server accepts the user's video request in step 505 or step 508 or 511 and includes the user terminal in the group-chain structure. Thereafter, update or newly generated group information is received from the group master of the corresponding user group to confirm that the user terminal is successfully included in the group-chain structure.

여기서, 그룹-체인 구조에 추가된 새 사용자 단말은 아직 비디오 데이터를 받지 못했으므로 사용자 단말의 버퍼에 비디오 데이터 블록을 가지고 있지 않다. 따라서 새 사용자 단말 중 자신이 그룹 마스터인 사용자 단말을 제외한 기존 사용자 그룹에 추가된 사용자 단말의 LD는 그룹 마스터의 LD와 같지 않다. 이와 같이 그룹 마스터의 LD와 다른 LD를 가진 멤버는 임시 멤버가 되고, 사용자 단말이 임시 멤버라는 정보는 멤버의 스테이트(state) 정보에 저장된다. 그런데 임시 멤버는 충분한 시간이 지나면 도 6을 참조하여 후술하는 설명과 같이 그룹 마스터와 동일한 LD를 가지게 되고, 그에 따라 임시 멤버는 정식 멤버가 된다.In this case, the new user terminal added to the group-chain structure has not received the video data and thus does not have the video data block in the buffer of the user terminal. Therefore, the LD of the user terminal added to the existing user group except the user terminal of which the new user terminal is the group master is not the same as the LD of the group master. In this way, a member having an LD different from the LD of the group master becomes a temporary member, and the information that the user terminal is a temporary member is stored in state information of the member. However, the temporary member is to have the same LD and the group master, as described below with reference to Figure 6. After a sufficient time, the temporary member is a full member accordingly.

이하에서는 그룹-체인 구조에 추가된 새로운 사용자 단말에게 비디오 데이터 블록을 전송하는 과정을 설명하고자 한다.Hereinafter, a process of transmitting a video data block to a new user terminal added to the group-chain structure will be described.

설명에 앞서, 본 발명에 따른 비디오 데이터 블록을 전송하는 과정은 서버에서 사용자 그룹으로 또는 부모 그룹에서 자식 그룹으로의 비디오 데이터 블록 전송과, 동일 사용자 그룹 내 멤버들 간의 비디오 데이터 블록 전송이 있다. 이 중 서버에서 사용자 그룹으로 비디오 데이터 블록을 전송하는 과정은 서버가 체인의 첫 그룹에 대해 부모 그룹의 역할을 하여 비디오 데이터 블록을 전송하는 과정과 같으므로 더 이상 설명하지 않는다.Prior to the description, the process of transmitting the video data block includes the transmission of the video data block from the server to the user group or from the parent group to the child group, and the transmission of the video data block between members in the same user group. The process of transmitting the video data block from the server to the user group is the same as the process of transmitting the video data block by acting as a parent group with respect to the first group of the chain, and thus will not be described.

우선 도 6을 참조하여 그룹간 비디오 데이터 블록 전송 과정을 설명한다. First, a process of transmitting video data blocks between groups will be described with reference to FIG. 6.

임의의 사용자 단말이 서버에게 비디오 서비스를 요청하고 사용자 그룹에 포함되면 그룹 정보를 수신한다(601). 사용자 단말은 그룹 정보에 있는 자신의 스테이트를 확인함으로써 정식 멤버 여부를 확인한다(602). If a user terminal requests a video service from a server and is included in a user group, the user terminal receives group information (601). The user terminal checks its state in the group information to determine whether it is a regular member (602).

여기서 임시 멤버가 정식 멤버로 되는 과정을 보면, 그룹에 새로 참가한 임시 멤버의 버퍼에는 자신이 요구한 재생지점 즉, RI에 해당하는 비디오 데이터 블록이 저장되고 버퍼의 용량이 꽉 차기 전까지는 RI가 사용자의 LD가 된다. 시간이 경과됨에 따라 RI 이후 인덱스의 비디오 데이터 블록을 서버 또는 부모 그룹과 그룹 멤버로부터 제공받는다. 이러한 상태에서 동일 사용자 그룹의 다른 멤버들은 RI 이전 인덱스를 LD로 하고 있는데, 버퍼의 용량이 비디오의 용량보다 훨씬 적으므로 시간이 경과함에 따라 저장하고 있던 비디오 데이터 블록 중 인덱스 값이 최소인 비디오 데이터 블록을 삭제하면서 새로운 비디오 데이터 블록을 수신한다. 따라서 정식 멤버의 LD는 점차적으로 값이 높아지게 되고 결국 임시 멤버의 LD와 같아지게 된다. 임시 멤버는 그룹 정보를 통해 자신의 LD와 그룹 마스터의 LD가 같은지 확인하여, 두 값이 같아지면 그룹 마스터에게 자신이 정식 멤버가 될 준비가 되었음을 알린다. 그룹 마스터는 임시 멤버의 스테이트 값을 변경하고 그룹 정보를 갱신함으로써 임시 멤버를 정식 멤버로 만든다.In this process, the temporary member becomes a full member. The buffer of the newly joined temporary member in the group stores the video data block corresponding to the required playback point, that is, the RI, and the RI remains the user until the buffer becomes full. LD becomes. As time passes, video data blocks of the index after the RI are provided from the server or the parent group and group members. In this state, other members of the same user group use the pre-RI index as LD. Since the buffer capacity is much smaller than the video capacity, the video data block having the smallest index value among the video data blocks stored over time Receive a new video data block while deleting it. Therefore, the regular member's LD gradually increases in value and eventually becomes the same as the temporary member's LD. The temporary member checks whether the LD of the group master and the LD of the group master are the same through the group information. If the two members are equal, the temporary member informs the group master that he is ready to become a full member. The group master makes a temporary member a regular member by changing the state value of the temporary member and updating the group information.

이렇게 임시 멤버가 정식 멤버가 되면, 사용자 단말의 LD가 그룹 마스터(0)의 LD와 동일하게 되어, 자식 그룹으로 버퍼에 저장된 비디오 데이터 블록을 전송할 수 있게 된다. 여기서 임시 멤버는 서버 또는 부모 그룹으로부터 비디오 데이터 블록을 수신하고, 수신한 비디오 데이터 블록을 동일 그룹의 다른 멤버에게 제공하지만, 정식 멤버가 되기 전까지는 자식 그룹으로 비디오 데이터 블록을 제공하지 않는다. When the temporary member becomes a regular member, the LD of the user terminal becomes the same as that of the LD of the group master (0), so that the video data block stored in the buffer can be transmitted to the child group. Here, the temporary member receives the video data block from the server or the parent group and provides the received video data block to other members of the same group, but does not provide the video data block to the child group until it becomes a full member.

사용자 단말은 자신이 임시 멤버이면 정식 멤버가 될 때까지 기다린다(603). 사용자 단말은 정식 멤버가 되면, 자신이 속한 사용자 그룹이 자식 그룹을 가지고 있는지를 확인한다(604). 사용자 단말은 상기 604 단계에서 자식 그룹이 없다고 판단되면, 자식 그룹이 생길 때까지 기다린다(605).If the user terminal is a temporary member, it waits until it becomes a full member (603). When the user terminal becomes a regular member, the user terminal checks whether the user group to which the user terminal belongs has a child group (604). If it is determined in step 604 that there is no child group, the user terminal waits until a child group is created (605).

사용자 단말은 자식 그룹이 생기면, 자식 그룹의 멤버에게 비디오 데이터 블록을 전송하기 위해 그룹의 FP를 그룹에 있는 정식 멤버의 수(NFM)로 나눈 나머지가 자신의 ID와 같은지를 검사한다(606). 만약 606 단계의 검사 결과, 사용자 단말의 ID가 그룹의 FP를 그룹에 있는 정식 멤버의 수(NFM)로 나눈 나머지와 같으면 상기 FP에 해당하는 인덱스의 비디오 데이터 블록을 버퍼로부터 읽어 들여 자식 그룹으로 전송하기 위해 준비한다.When a user group is created, the user terminal checks whether the remainder of dividing the group's FP by the number of full members in the group (NFM) is equal to its ID in order to transmit a video data block to the members of the child group (606). If the ID of the user terminal is equal to the remainder obtained by dividing the FP of the group by the number of authorized members in the group (NFM), the video data block of the index corresponding to the FP is read from the buffer and transmitted to the child group. Be prepared to

예를 들어, 그룹의 FP가 20이고, 그룹의 정식 멤버 수(NFM)가 6이며, 사용자 단말의 ID가 2이면, 20/6에 대한 나머지가 2이므로, 사용자 단말은 인덱스가 20인 비디오 데이터 블록의 전송 주체가 된다. 그리고 나머지의 멤버 즉, ID가 0, 1, 3, 4, 5의 멤버는 인덱스가 20인 비디오 데이터 블록을 자식 그룹으로 전송하지 않는다.For example, if the FP of the group is 20, the number of authorized members (NFM) of the group is 6, and the ID of the user terminal is 2, the remainder for 20/6 is 2, so the user terminal has video data having an index of 20. It is the transmission subject of the block. The remaining members, i.e., members with IDs 0, 1, 3, 4, and 5, do not transmit video data blocks having an index of 20 to the child group.

다른 예로, 그룹의 FP가 20이고, 그룹의 멤버 수(NFM)가 6이며, 사용자 단말의 ID가 3이면, 20/6에 대한 나머지가 2이므로, 사용자 단말은 비디오 데이터 블록 전송 주체가 되지 못하고, ID가 2인 멤버가 인덱스가 20인 비디오 데이터 블록의 전송 주체가 된다.As another example, if the FP of the group is 20, the number of members (NFM) of the group is 6, and the ID of the user terminal is 3, the remainder for 20/6 is 2, so that the user terminal cannot be a video data block transmission subject. In other words, the member whose ID is 2 is the transmission subject of the video data block whose index is 20.

데이터 스트림 레이트(R)에 따라 일정 시간이 지나면 FP는 증가되고, 그에 따라 비디오 데이터의 블록 전송 주체가 달라진다(607).According to the data stream rate R, the FP is increased after a predetermined time, and thus the block transmission subject of the video data is changed (607).

사용자 단말이 현재 FP에 해당하는 비디오 데이터 블록의 전송 주체가 되면, 자신의 비디오 데이터 블록을 수신할 자식 그룹의 멤버(즉, 타깃(target) 멤버)를 파악한다. 자식 그룹의 타깃 멤버는 FP를 자식 그룹의 멤버수(NCM)로 나눈 나머지를 구하고, 이때 구한 나머지에 해당하는 ID를 가진 자식 그룹의 멤버를 타깃 멤버로 결정한다(608).When the user terminal becomes the transmission subject of the video data block corresponding to the current FP, the member of the child group (that is, the target member) to receive the video data block is identified. The target member of the child group obtains the remainder obtained by dividing FP by the number of members (NCM) of the child group, and determines a member of the child group having an ID corresponding to the obtained remainder as the target member (608).

사용자 단말은 타깃 멤버가 결정되면, 자식 그룹의 타깃 멤버에게 FP에 해당하는 비디오 데이터 블록을 전송한다(609).When the target member is determined, the user terminal transmits the video data block corresponding to the FP to the target member of the child group (609).

이상의 설명에서, 부모 그룹의 멤버는 버퍼에 저장된 전체 비디오 데이터 블록 중에서 자신의 ID+(동일 사용자 그룹의 정식 멤버수*N)에 해당하는 인덱스의 비디오 데이터 블록을 자식 그룹의 멤버 중 선택된 하나의 멤버에게 전송한다. 상기 N은 0을 포함하는 자연수이다.In the above description, a member of a parent group sends a video data block of an index corresponding to its ID + (full number of members of the same user group * N) among all video data blocks stored in a buffer to a selected member of the child group. send. N is a natural number including 0.

그리고 부모 그룹에서는 비디오 데이터 블록을 자식 그룹의 멤버에게 골고루 분산시켜 전송한다. 즉, 자식 그룹의 멤버 각각은 자신의 ID+(동일 사용자 그룹의 멤버수*N)에 해당하는 인덱스의 비디오 데이터 블록을 부모 그룹으로부터 제공받는다. 따라서 자식 그룹의 각 멤버는 다른 멤버에게 자신이 수신한 비디오 데이터 블록을 제공하여야 한다.In the parent group, video data blocks are evenly distributed to members of the child group. That is, each member of the child group receives a video data block of an index corresponding to its ID + (number of members of the same user group * N) from the parent group. Therefore, each member of the child group must provide the other member with the received video data block.

자식 그룹의 각 멤버가 동일 사용자 그룹의 다른 멤버에게 자신이 수신한 비디오 데이터 블록을 전송하는 과정이 도 7에 도시되어 있다. 이하 도 7을 참조로 하여 본 발명의 실시예에 따라 동일 사용자 그룹내 멤버들 간의 비디오 데이터 블록 전송 과정을 설명한다. 7 shows a process in which each member of the child group transmits the received video data block to other members of the same user group. Hereinafter, a video data block transmission process between members in the same user group will be described with reference to FIG. 7.

도7은 각 멤버(0, 1, 2, 3)가 부모 그룹(110a)의 멤버로부터 받은 비디오 데이터 블록 즉, 비디오 스트림(130a1, 130a2, 130a3, 130a4)을 그룹(110b)의 다른 멤버에게 전송하는 과정이다.FIG. 7 transmits a video data block, ie, video streams 130a1, 130a2, 130a3, 130a4, each member (0, 1, 2, 3) received from a member of parent group 110a to another member of group 110b. It is a process.

각 멤버(0, 1, 3, 4)는 부모 그룹(110a)으로부터 비디오 데이터 블록을 수신하면, 다음 번 비디오 데이터 블록을 수신하기 전까지 이전에 받은 비디오 데이터 블록을 다른 그룹 멤버에게 전송한다.Each member (0, 1, 3, 4) receives the video data block from the parent group (110a), and transmits the previously received video data block to other group members until receiving the next video data block.

이때 한 그룹의 정식 멤버의 수를 NFM, 임시 멤버의 수를 NTM이라고 하면, 이 그룹의 정식 멤버가 비디오 스트리밍을 위해 사용하는 업로드 대역폭은 다음의 수학식 4와 같다.In this case, if the number of regular members of a group is NFM and the number of temporary members is NTM, the upload bandwidth used by the formal members of this group for video streaming is expressed by Equation 4 below.

한편, 사용자가 비디오 스트리밍 도중에 임의로 서비스를 멈춤으로써 비디오 데이터 전송 과정에서 다른 멤버가 비디오 데이터 블록을 못 받게 되는 경우가 있다. 사용자 단말간의 패킷 딜레이(delay)의 최대값이 d라고 하면, 각 멤버는 특정 비디오 데이터 블록의 도착 시간을 계산할 수 있다. 사용자 단말은 부모 그룹으로부터 받아야할 비디오 데이터 블록이 예상 시간 내에 도착하지 않으면 부모 그룹의 임의의 멤버에게 해당 비디오 데이터의 블록 재 전송을 요청한다. 이에 따라 사용자 단말은 재 전송된 비디오 데이터 블록을 수신하면, 그룹의 다른 멤버에게 전송한다.On the other hand, when the user arbitrarily stops the service during video streaming, other members may not receive the video data block during the video data transmission process. If the maximum value of the packet delay between user terminals is d, each member may calculate the arrival time of a specific video data block. If the video data block to be received from the parent group does not arrive within the expected time, the user terminal requests any member of the parent group to retransmit the block of the video data. Accordingly, when the user terminal receives the retransmitted video data block, the user terminal transmits it to other members of the group.

또한 그룹의 다른 멤버로부터 받아야 할 비디오 데이터 블록이 예상 시간 내에 도착하지 않으면, 서버한테 해당 비디오 데이터 블록을 재 전송해 줄 것을 요청한다. 각 사용자 단말은 재생 직전까지는 비디오 데이터 블록을 받아야 하므로 RP-PP는 충분한 간격을 가지고 있어야 한다. 또한 사용자 단말이 받지 않은 데이터를 자식 그룹에게 전송해 줄 수는 없으므로 FP는 항상 PP보다 작아야 한다.Also, if a video data block to be received from another member of the group does not arrive within the expected time, the server is requested to retransmit the video data block. Each user terminal must receive a video data block until just before playback, so the RP-PP should have sufficient intervals. Also, since the user terminal cannot transmit data not received to the child group, the FP should always be smaller than the PP.

이와 같이 재전송은 서버와 사용자 단말의 대역폭 사용량을 늘리게 된다. 사용자 단말은 업로드 대역폭 사용량이 2·R을 초과하면 다른 사용자 단말이 비디오 데이터 블록의 재전송을 요청해도 해당 비디오 데이터 블록을 재전송하지 않는다. 이 때에는 서버로부터 손실된 비디오 데이터 블록을 재전송 받게 된다.As such, retransmission increases bandwidth usage of the server and the user terminal. If the upload bandwidth usage exceeds 2 · R, the user terminal does not retransmit the video data block even if another user terminal requests retransmission of the video data block. In this case, the lost video data block is retransmitted from the server.

이하, 도 8 내지 도 9를 참조하여 사용자가 서비스 중에 재생을 멈추었을 경우에 대한 본 발명의 동작을 설명한다.8 to 9, the operation of the present invention for the case where the user stops playing during the service will be described.

우선 도 8을 참조로 하여 사용자가 서비스를 그만 받을 것을 명시적으로 알렸을 경우에 대한 본 발명의 실시예를 설명한다.First, an embodiment of the present invention will be described with reference to FIG. 8 when the user explicitly informs the user to stop receiving the service.

사용자 단말은 사용자의 요청에 따라 비디오 재생 중지를 확인한다(801). 그리고 사용자 단말은 자신이 그룹 마스터인지 또는 일반 멤버인지에 따라 그 동작을 달리한다(802). 즉, 사용자 단말이 그룹의 마스터가 아니면, 사용자 단말은 그룹 마스터(0)에게 자신을 멤버에서 삭제시켜줄 것을 요청한다(803).The user terminal checks the video playback stop at the user's request (801). The user terminal varies its operation according to whether it is a group master or a general member (802). That is, if the user terminal is not the master of the group, the user terminal requests the group master (0) to delete itself from the member (803).

이에 그룹 마스터(0)는 사용자 단말의 멤버 삭제 요청에 따라 사용자 단말을 그룹 멤버에서 삭제하고 그룹 정보를 갱신한 후, 갱신한 그룹 정보를 서버, 부모 및 자식 그룹으로 전송한다(804). 이때 그룹 마스터는 멤버 리스트를 갱신하면서 다른 멤버의 ID를 갱신한다. 즉, 삭제된 멤버의 ID가 3이면 3 이상의 ID를 가진 멤버의 ID를 1씩 내린다. 804 과정과 같이 사용자 단말이 삭제된 그룹 정보가 서버(10), 부모 그룹 및 자식 그룹에 전송됨으로써, 사용자 단말은 비디오 재생을 멈출 수 있게 된다(805).Accordingly, the group master (0) deletes the user terminal from the group member according to the member deletion request of the user terminal, updates the group information, and transmits the updated group information to the server, the parent and the child group (804). At this time, the group master updates the member list while updating the member list. That is, if the ID of the deleted member is 3, the ID of the member having an ID of 3 or more is lowered by one. In operation 804, the group information from which the user terminal is deleted is transmitted to the server 10, the parent group, and the child group, so that the user terminal can stop playing the video (805).

한편 802 단계에서 사용자 단말이 그룹 마스터이면, 사용자 단말은 그룹 정보를 통해 다른 멤버가 있는지를 확인한다(806). 다른 멤버가 없으면 사용자 단말은 서버에게 사용자 그룹의 삭제를 요청한다(807). 이에 서버는 사용자 단말의 요청에 따라 사용자 단말이 속한 사용자 그룹을 삭제한 후, 사용자 그룹의 부모 그룹과 자식 그룹을 연결시킨다(808). 만약 사용자 단말이 속한 사용자 그룹을 삭제함으로써 사용자 단말이 속한 체인에 다른 그룹이 없게 되면 체인도 삭제한다.On the other hand, if the user terminal is a group master in step 802, the user terminal checks whether there is another member through the group information (806). If no other member exists, the user terminal requests the server to delete the user group (807). In response to the request of the user terminal, the server deletes the user group to which the user terminal belongs, and then connects the parent group and the child group of the user group (808). If there is no other group in the chain to which the user terminal belongs by deleting the user group to which the user terminal belongs, the chain is also deleted.

한편, 사용자 단말은 자신이 그룹 마스터이면서 다른 멤버가 있다고 확인되면, 동일 그룹의 ID가 가장 작은 멤버에게 그룹 마스터의 역할을 위임한다(809). 재생을 중지하려는 사용자 단말에 의해 새로 그룹 마스터가 된 멤버는 재생을 중지하려는 사용자 단말을 그룹에서 삭제하고 그룹 정보를 갱신한다(810).On the other hand, if it is confirmed that the user terminal is a group master and there are other members, the user delegates the role of the group master to the member whose ID is the smallest (809). A member who becomes a group master by the user terminal to stop playing deletes the user terminal to stop playing from the group and updates the group information (810).

도 9는 사용자가 서비스를 그만 받을 것을 알리지 않고 비디오 재생을 중지했을 경우에 대한 그룹 정보 갱신 과정을 설명하기 위한 도면이다.FIG. 9 is a diagram for explaining a process of updating group information when a user stops playing a video without notifying the user to stop receiving the service.

전술한 본 발명에 따른 P2P 기반의 비디오 서비스 방법에 따르면, 사용자가 서비스 중지를 알리지 않으면 그룹 정보가 갱신되지 않게 되고, 그에 따라 서비스 중지한 사용자 단말에게 비디오 스트림을 제공하게 된다. 그런데 서비스를 중지한 사용자 단말은 다른 멤버 및 자식 그룹의 멤버에게 비디오 스트림을 제공하지 않는다. 결국, 사용자의 서비스 중지를 어떠한 형태로든 서버 또는 그룹 마스터에게 알리지 않으면 다른 멤버는 재전송을 요청하기 전까지는 비디오 데이터 블록을 전달받지 못하게 된다.According to the above-described P2P-based video service method according to the present invention, the group information is not updated unless the user notifies the service suspension, thereby providing the video stream to the user terminal that has stopped the service. However, the user terminal that stops the service does not provide a video stream to other members and members of the child group. As a result, unless the server or group master is informed of the user's service suspension in any form, other members will not receive the video data block until they request retransmission.

본 발명은 상기 문제를 해결하기 위해 하트(heart)-비트(bit) 메시지를 이용한다. 상기 하트-비트 메시지는 모든 멤버에서 주기적으로 발생되어 특정 멤버에게 전송된다. 하트-비트 메시지에는 멤버의 IP 어드레스 정보를 포함한다. 멤버는 하트-비트 메시지를 동일 사용자 그룹 내의 다른 멤버에게 전송한다. 다른 멤버들로부터 하트-비트 메시지를 수신한 멤버는 수신된 하트-비트 메시지의 IP 어드레스를 그룹 정보와 비교하여 하트-비트 메시지를 보낸 멤버의 ID를 확인한다. 그리고 각 멤버는 일정 시간(T0) 이내에 특정 멤버의 하트-비트 메시지가 수신되는지를 감시한다. 각 멤버는 일정 시간(T0) 동안 특정 멤버로부터 하트-비트 메시지가 수신되지 않으면, 이 때의 상황을 타임아웃 상황이라고 판단한다. 특정 멤버가 타임아웃 되었다는 것은 타임아웃된 특정 멤버가 비디오 서비스를 중지하였다는 것을 의미한다.The present invention utilizes a heart-bit message to solve the problem. The heartbeat message is periodically generated at every member and sent to a specific member. The heartbeat message contains the IP address information of the member. The member sends a heartbeat message to other members in the same user group. The member receiving the heartbeat message from the other members checks the ID of the member sending the heartbeat message by comparing the IP address of the received heartbeat message with the group information. Each member monitors whether a heartbeat message of a specific member is received within a predetermined time T0. If each member does not receive a heartbeat message from a particular member for a predetermined time T0, the member determines that this situation is a timeout situation. A particular member has timed out means that the particular member has timed out the video service.

여기서 멤버는 타임아웃을 판단하기 위한 일정 시간(T0)을 하트-비트 메시지를 전송하는 멤버가 동일 사용자 그룹의 멤버이면 TO1로 하고, 다른 사용자 그룹의 멤버이면 TO2로 한다. 상기 TO1은 TO2보다 짧다. TO1을 TO2 보다 짧게 하는 것은 동일 사용자 그룹 내의 멤버 삭제를 부모 또는 자식 그룹보다 먼저 동일 사용자 그룹의 멤버가 알게 하고, 갱신된 그룹 정보를 부모 및 자식 그룹이 알게 함으로써 그룹 마스터의 이탈 또는 다수 멤버의 이탈에 따른 서비스 오류를 방지하기 위한 것이다.Herein, the member is set to TO1 if the member transmitting the heartbeat message is TO1, and TO2 if the member of the other user group transmits the heartbeat message. TO1 is shorter than TO2. Making TO1 shorter than TO2 means that members of the same user group are notified of the deletion of members within the same user group before the parent or child group, and the parent and child groups are notified of the updated group information, thereby leaving the group master or leaving many members. This is to prevent the service error caused by.

한편 각 멤버는 특정 멤버로 하트-비트 메시지를 전송하고, 특정 멤버로부터 하트-비트 메시지를 수신한다. 이에 따라 동일 사용자 그룹에서의 각 멤버들끼리는 도 9에 도시된 바와 같이 하트-비트 메시지를 송수신한다. Meanwhile, each member sends a heartbeat message to a specific member and receives a heartbeat message from the specific member. Accordingly, each member in the same user group transmits and receives a heartbeat message as shown in FIG. 9.

우선 도 9에 도시된 바와 같이 사용자 그룹(110b)의 그룹 마스터(0)는 부모 그룹(110a)의 그룹 마스터(0)와 자식 그룹(110c)의 그룹 마스터(0)에게 주기적으로 하트-비트 메시지를 전송한다.First, as shown in FIG. 9, the group master (0) of the user group (110b) periodically sends a heart-beat message to the group master (0) of the parent group (110a) and the group master (0) of the child group (110c). Send it.

그리고 사용자 그룹(110b)의 각 멤버(0 내지 12)는 자신의 ID가 I라고 했을 때, 다음과 같은 멤버에게 하트-비트 메시지를 주기적으로 전송한다.Each member 0 to 12 of the user group 110b periodically transmits a heartbeat message to the following members when their ID is I.

1. ID=인 상위 멤버1. ID = Parent member

2. ID= 인 동급 멤버2. ID = In-class member

3. ID= [I·h+1, I·h+h]인 하위 멤버3. Child member with ID = [Ih + 1, Ih + h]

도 9를 예로 들어 설명한다. 도 9에 도시된 바에 따르면 h=3이다. 그리고 ID=2인 멤버에 대하여 는 [2/3]이므로 ID=0이 된다. 따라서 ID가 0인 멤버(상위 멤버)에게 하트-비트 메시지를 전송한다. 그리고 는 [1, 3]이므로 ID가 1, 2, 3인 멤버(동급 멤버)에게 하트-비트 메시지를 전송한다. 또한 [I/h+1, I/h+h]는 [7, 9]이므로 ID가 7, 8, 9인 멤버(하위 멤버)에게 하트-비트 메시지를 전송한다. 여기서 h는 임의로 결정될 수 있다. h를 크게 하면 안정성이 높아지지만 사용자 단말의 부하가 증가하고, h를 작게 하면 안정성은 떨어지지만 사용자 단말의 부하가 감소한다.9, an example will be described. As shown in FIG. 9, h = 3. And for members with ID = 2 Is [2/3], so ID = 0. Therefore, a heart-beat message is sent to the member whose ID is 0 (parent member). And Since [1, 3] sends heart-beat messages to members with IDs 1, 2, and 3 (equivalent members). In addition, since [I / h + 1, I / h + h] is [7, 9], a heart-beat message is transmitted to members (child members) having IDs 7, 8, and 9. Where h can be arbitrarily determined. Increasing h increases the stability but increases the load of the user terminal. Increasing h decreases the stability but decreases the load of the user terminal.

도 9를 참조하여, 사용자 단말의 서비스 중지에 따른 각 그룹의 마스터에서의 처리 과정을 살펴본다.Referring to FIG. 9, a process of processing a master in each group according to service termination of a user terminal will be described.

사용자 단말이 다른 멤버에게 비디오 중지 사실을 알리지 않은 채 비디오 재생을 중지하면, 사용자 단말로부터 하트-비트 메시지를 수신하던 단말들은 일정시간동안 서비스를 중지한 사용자 단말로부터 하트-비트 메시지를 수신하지 못하게 된다. 이러면, 다른 사용자 단말들은 타임아웃 상황이 발생되었다고 판단한다.If the user terminal stops playing the video without notifying the other member that the video has been stopped, the terminals receiving the heartbeat message from the user terminal may not receive the heartbeat message from the user terminal which has stopped service for a certain period of time. . In this case, other user terminals determine that a timeout situation has occurred.

하나의 그룹에서 특정 사용자 단말이 서비스를 중지하였을 때, 상기 서비스를 중지한 사용자 단말은 단지 그 그룹 내의 멤버이던지 아니면 그 그룹의 마스터 단말일 수 있다. 그러므로 상기 두 가지 경우에 대한 처리 과정을 분리하여 살펴본다.When a user terminal in a group stops a service, the user terminal that stops the service may be a member of the group or a master terminal of the group. Therefore, the processing of the two cases will be described separately.

먼저, 서비스를 중지한 사용자 단말이 단지 그룹 내의 멤버 단말인 경우에 대해 살펴본다. 상기 서비스를 중지한 사용자 단말과 하트-비트 메시지를 송수신하던 사용자 단말은 상기 서비스를 중지한 사용자 단말에서 타임아웃이 발생했음을 그룹의 마스터 단말로 통보한다. 그룹의 마스터 단말과 하트-비트 메시지를 송수신하던 멤버가 서비스를 중지한 경우에는 그룹의 마스터 단말이 바로 인지한다. 이와 같이 그룹의 마스터는 특정 멤버가 서비스를 중지했음을 통보받거나 인지하면, 해당되는 사용자 단말을 사용자 그룹에서 삭제하고, 그룹 정보를 통해 나머지 멤버에 대한 ID 갱신이 필요한 경우에는 해당 멤버들의 ID를 갱신한다. 그런 다음 그룹 마스터 단말은 갱신한 그룹 정보를 다른 멤버 및 부모/자식 그룹에게 통보한다.First, a case in which a user terminal which has stopped a service is only a member terminal in a group will be described. The user terminal transmitting and receiving a heart-beat message with the user terminal that has stopped the service notifies the master terminal of the group that a timeout has occurred in the user terminal that has stopped the service. When a member who has been sending or receiving a heart-beat message with the group's master terminal stops service, the group's master terminal recognizes it immediately. As such, when the master of the group is notified or acknowledged that a particular member has stopped service, the corresponding user terminal is deleted from the user group, and when the ID of the remaining members is needed through the group information, the ID of the corresponding members is updated. . Then, the group master terminal notifies the updated group information to other members and parent / child groups.

다음은 서비스를 중지한 사용자 단말이 그룹 마스터인 경우에 대해 살펴본다.Next, a case in which the user terminal that has stopped a service is a group master will be described.

그룹의 마스터 단말은 부모 그룹의 마스터 단말 및 자식 그룹의 마스터 단말과 하트-비트 메시지를 송수신 할 뿐만 아니라 자신 그룹 내의 다른 멤버 단말들과 하트-비트 메시지를 송수신한다. 그러므로 마스터 단말이 서비스를 중지하는 경우에는 그룹의 멤버 단말과 부모 그룹의 마스터 단말 및 자식 그룹의 마스터 단말이 인지하게 된다. 그런데, 그룹 내 멤버들간의 하트-비트 메시지 타임아웃 타이머(TO1)가 다른 그룹의 마스터 단말과의 하트-비트 메시지 타임아웃 타이머(TO2)보다 짧기 때문에, 그룹 내 멤버들이 마스터 단말의 서비스 중지 사실을 먼저 알게 된다. 따라서 그룹 내 마스터 단말이 서비스를 중지하면, 그룹 마스터와 하트-비트 메시지를 주고 받던 그룹의 멤버 중 ID가 가장 작은 멤버가 그룹 마스터로 설정되고, 새롭게 마스터로 설정된 단말은 서비스를 중지한 기존 마스터 단말을 사용자 그룹 정보에서 삭제하고, 새롭게 갱신된 사용자 그룹 정보를 그룹내 다른 멤버와 부모 그룹 및 자식 그룹으로 통보한다. 그리고 갱신된 사용자 그룹 정보에 따라 하트-비트 메시지를 송수신한다. 여기서 그룹 마스터와 하트-비트 메시지를 주고 받던 그룹의 멤버들끼리도 하트-비트 메시지를 주고 받고 있으므로, 동시에 여러 개의 멤버가 그룹 마스터가 되려고 하는 일은 발생하지 않는다.The master terminal of the group not only transmits and receives a heartbeat message with the master terminal of the parent group and the master terminal of the child group, but also transmits and receives a heartbeat message with other member terminals in the group. Therefore, when the master terminal stops service, the member terminal of the group, the master terminal of the parent group, and the master terminal of the child group are recognized. However, since the heart-beat message timeout timer TO1 between members in the group is shorter than the heart-beat message timeout timer TO2 with the master terminal of another group, the members in the group are not aware of the service interruption of the master terminal. You get to know first. Therefore, when the master terminal in the group stops the service, the member with the smallest ID among the members of the group that exchanged the heartbeat message with the group master is set as the group master, and the newly set terminal is the existing master terminal that has stopped the service. Is deleted from the user group information, and the newly updated user group information is notified to other members, the parent group, and the child group in the group. The heartbeat message is transmitted and received according to the updated user group information. At this time, members of the group that exchanged heartbeat messages with the group master also exchange heartbeat messages, so that several members do not attempt to become the group master at the same time.

한편, 그룹의 마스터 단말과 하트-비트 메시지를 송수신하던 부모 그룹의 마스터 및 자식 그룹의 마스터는 그룹의 마스터 단말로부터 하트-비트 메시지가 수신되지 않고, 일정 시간이 지났는데도 새로운 그룹의 마스터로부터도 하트-비트 메시지가 수신되지 않으면, 현재 그룹의 모든 구성원이 서비스를 중지한 것을 판단하고, 서버로 현재 그룹이 소멸되었음을 통지한다.On the other hand, the master of the parent group and the master of the child group that was sending and receiving heart-beat messages with the master terminal of the group does not receive the heart-beat message from the master terminal of the group, even after a certain time has passed from the master of the new group If no -bit message is received, it determines that all members of the current group have stopped the service and notifies the server that the current group has been destroyed.

그룹 소멸 사실을 수신한 서버는 소멸된 그룹에 대한 정보를 삭제하고, 소멸된 사용자 그룹의 부모 그룹과 자식 그룹을 부모/자식 관계로 연결시킨 후, 새로 부모/자식 관계로 연결시킨 부모/자식 그룹에게 부모, 자식 그룹의 정보를 알린다.The server receiving the group destruction fact deletes the information about the destroyed group, connects the parent group and the child group of the destroyed user group in the parent / child relationship, and then connects the parent / child group in the newly parent / child relationship. Inform parent and child group information.

한편, 전술한 본 발명의 실시예는 서버의 부하를 줄이면서 그룹-체인 구조를 유지하기 위해서 분산형 단말 관리 방법에 대한 실시예이다. 즉, 서버의 부하를 막기 위해서 그룹-체인 구조를 유지하는 부분을 그룹을 이루는 각 사용자 단말들간의 상호 작용(즉, 그룹 마스터, 그룹 마스터 후보와 단말 간의 그룹 정보 전송, 단말 간 하트-비트 메시지의 전송)에 둠으로써 사용자 단말 쪽이 서버를 대신하여 그룹-체인 구조를 관리하도록 하고 있다.Meanwhile, the above-described embodiment of the present invention is an embodiment of the distributed terminal management method in order to maintain the group-chain structure while reducing the load on the server. That is, in order to prevent the load of the server, the interaction between the user terminals constituting the group-maintaining group-chain structure (that is, group information between the group master, the group master candidate and the terminal, and the heart-beat message between the terminals) Forwarding) allows the user terminal to manage the group-chain structure on behalf of the server.

여기서 본 발명은 전술한 분산형 단말 관리 방법이외에, 집중형 단말 관리 방법에 따르도록 구현할 수 있다. 상기 집중형 단말 관리 방법이란 사용자 단말이 수행하였던 동작(즉, 그룹의 멤버 중 그룹 마스터 선정, 사용자 단말이 계속 존재하는지를 하트-비트 메시지를 통해 확인, 그룹 내 단말의 추가/삭제에 따른 그룹 정보 갱신 및 갱신된 그룹 정보를 멤버에게 통보 등의 동작)을 서버가 수행하는 것이다. 이 경우에 사용자 단말이 그룹 마스터에게 제공하였던 정보를 서버에게 제공하도록 하면 되고, 그룹 마스터가 역할을 서버가 하도록 하면 된다. 이러한 집중형 단말 관리를 위한 서버의 동작은 전술한 본 발명의 실시예를 통해 당업자라면 용이하게 구현할 수 있음은 자명하다. The present invention can be implemented to comply with the centralized terminal management method, in addition to the distributed terminal management method described above. The centralized terminal management method refers to an operation performed by a user terminal (that is, selecting a group master among members of a group, checking whether a user terminal is still present through a heartbeat message, and updating group information according to addition / deletion of terminals in a group). And an operation such as notifying the member of the updated group information). In this case, the user terminal may provide the server with the information provided to the group master, and the server may act as the group master. It is obvious that the operation of the server for the centralized terminal management can be easily implemented by those skilled in the art through the above-described embodiments of the present invention.

이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.The technical spirit of the present invention has been described above with reference to the accompanying drawings, but this is by way of example only and not intended to limit the present invention. In addition, it is obvious that any person skilled in the art can make various modifications and imitations without departing from the scope of the technical idea of the present invention.

본 발명은 서버가 서비스 받고 있는 사용자의 수와는 상관없이 작은 서버 대역폭을 사용해 비디오 서비스를 가능하게 하는 효과가 있으며, 이에 따라 서비스 제공자가 서비스를 제공하기 위해 필요한 비용을 줄일 수 있게 하여 서비스 요금이 저렴해진다. 본 발명에 따라 사용자는 일정량의 업로드 대역폭을 제공하는 대신, 저렴한 가격으로 끊김없는 주문형 비디오 서비스를 제공받을 수 있게 된다.The present invention has the effect of enabling a video service using a small server bandwidth regardless of the number of users that the server is being serviced, thereby allowing the service provider to reduce the cost required to provide the service, thereby reducing the service fee. It becomes cheaper. According to the present invention, instead of providing a certain amount of upload bandwidth, the user can be provided with a seamless on-demand video service at a low price.

도 1은 본 발명에 따른 P2P 기반의 비디오 서비스 시스템의 블록 구성도.1 is a block diagram of a P2P based video service system according to the present invention;

도 2는 서버로부터 제공되는 비디오 파일의 포맷도.2 is a format diagram of a video file provided from a server.

도 3은 본 발명에 따른 사용자 단말의 버퍼에 저장된 비디오 데이터의 포맷도.3 is a format diagram of video data stored in a buffer of a user terminal according to the present invention;

도 4는 본 발명에 따른 각 멤버에게 그룹 정보가 알려지는 과정을 설명하기 위한 도면.4 is a view for explaining a process in which group information is known to each member according to the present invention.

도 5는 본 발명의 실시예에 따른 서버에서의 처리 과정을 나타내는 흐름도.5 is a flowchart illustrating a processing procedure in a server according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 부모 그룹에서 자식 그룹으로의 비디오 데이터 블록 전송 과정을 나타낸 흐름도.6 is a flowchart illustrating a video data block transmission process from a parent group to a child group according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 동일 그룹 내 멤버들 간의 비디오 데이터 전송 과정을 설명하기 위한 도면.7 is a view for explaining a video data transmission process between members in the same group according to an embodiment of the present invention.

도 8은 본 발명에 따른 사용자 단말이 서비스 중지를 요청한 경우 그룹-체인 구조에서 사용자 단말을 삭제하는 과정을 설명하기 위한 흐름도.8 is a flowchart illustrating a process of deleting a user terminal from a group-chain structure when the user terminal requests to stop service according to the present invention.

도 9는 본 발명의 실시예에 따른 사용자 단말이 서비스 중지를 알리지 않고 서비스를 종료한 경우의 사용자 단말 삭제 과정을 설명하기 위한 도면.9 is a view for explaining a user terminal deletion process when the user terminal terminates the service without notifying the service suspension according to an embodiment of the present invention.

Claims (16)

비디오 파일이 일정 크기로 분할된 블록 단위의 비디오 데이터에 각각 인덱스를 부여하여 저장하고, 현재 비디오 서비스에 접속된 적어도 하나의 사용자 단말을 포함하는 사용자 그룹과 관련된 정보를 관리하는 서버; 및A server for indexing and storing video data in units of blocks in which video files are divided into a predetermined size, and managing information related to a user group including at least one user terminal currently connected to a video service; And 상기 서버와 인터넷을 통해 접속되고, 현재 비디오 서비스를 제공받는 다수의 사용자 단말을 포함하되,Including a plurality of user terminals connected to the server via the Internet, currently receiving a video service, 상기 사용자 그룹은 최소한 하나의 마스터 사용자 단말을 포함하고,The user group includes at least one master user terminal, 상기 마스터 사용자 단말은 다른 사용자 단말의 그룹에의 추가/삭제를 담당하고, 상기 사용자 그룹 정보를 갱신하여, 상기 갱신된 사용자 그룹 정보를 다른 그룹의 마스터 사용자 단말과 자신의 그룹에 속한 사용자 단말 및 서버로 제공하며,The master user terminal is responsible for the addition / deletion of another user terminal to the group, and updates the user group information, and updates the updated user group information with the master user terminal of another group and the user terminal and server belonging to its own group. Provided by 상기 서버는, 임의의 사용자 단말로부터 특정 블록의 비디오 데이터 전송 요구를 수신하면, 상기 사용자 단말이 요구한 블록의 비디오 데이터를 제공할 수 있는 전송 주체를 결정하고,When the server receives a video block transmission request of a specific block from any user terminal, the server determines a transmission subject that can provide video data of the block requested by the user terminal, 상기 사용자 그룹은 상기 서버로부터 직접 상기 블록 단위의 비디오 데이터를 수신하는 제1 그룹과, 상기 제1 그룹 내의 사용자 단말에 버퍼링된 블록 단위의 비디오 데이터를 전달받는 제2 그룹을 포함하며,The user group includes a first group for receiving the video data of the block unit directly from the server, and a second group for receiving the video data of the block unit buffered to the user terminal in the first group, 각 그룹의 사용자 단말은 동일한 인덱스를 갖는 블록 단위의 비디오 데이터를 재생하는 것을 특징으로 하는 비디오 서비스 시스템.The user terminal of each group is a video service system, characterized in that for playing the video data of the block unit having the same index. 제 1 항에 있어서,The method of claim 1, 상기 그룹 정보는 그룹이 속한 체인의 식별자와, 그룹 정보가 생성될 때의 시간과, 그룹 정보가 사용되기 시작할 시간과, 그룹에 속해 있는 사용자 단말의 수와, 그룹에 소속된 사용자 단말의 IP 어드레스와 포트와 스테이트를 담고 있는 리스트 정보와, 그룹 정보가 생성될 때 서버 또는 다른 사용자 그룹이 그룹으로 송신하고 있는 비디오 데이터 블록의 인덱스, 그룹 정보가 생성될 때 최소 비디오 데이터 블록의 인덱스 정보를 포함하는 것을 특징으로 하는 비디오 서비스 시스템.The group information includes an identifier of a chain to which a group belongs, a time when group information is generated, a time at which group information starts to be used, a number of user terminals belonging to a group, and an IP address of a user terminal belonging to a group. And list information containing the port and state, an index of a video data block transmitted by a server or another user group to the group when the group information is generated, and an index information of the minimum video data block when the group information is generated. Video service system, characterized in that. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 서버는, 사용자 단말이 요구한 비디오 데이터 블록의 인덱스를 확인하여, 현재 비디오 서비스를 제공받고 있는 사용자 그룹 중 새로 서비스를 요구한 상기 사용자 단말을 포함시킬 수 있는 사용자 그룹이 있는지 검색하고, 상기 검색된 사용자 그룹의 마스터 사용자 단말 정보를 상기 새로 서비스를 요구한 사용자 단말로 제공하며,The server checks the index of the video data block requested by the user terminal, searches whether there is a user group that can include the user terminal requesting a new service among user groups currently receiving video service, Providing the master user terminal information of the user group to the user terminal requesting the new service, 상기 새로 서비스를 요구한 사용자 단말을 포함시킬 사용자 그룹이 검색되지 않으면, 이미 생성된 그룹 중에 자식 그룹을 가지고 있지 않고 상기 새로 서비스를 요구한 사용자 단말로 사용자가 요구한 비디오 데이터 블록을 제공할 수 있는 그룹이 있는지 검색하고, 조건에 맞는 사용자 그룹이 검색되면, 상기 새로 서비스를 요구한 사용자 단말을 마스터 단말로 하는 새로운 그룹을 생성하여, 상기 검색된 사용자 그룹으로 상기 생성된 그룹 정보를 통보하여 상기 생성된 그룹을 상기 검색된 그룹의 자식 그룹으로 만드는 것을 특징으로 하는 비디오 서비스 시스템.If a user group to include the newly requested user terminal is not found, the user may request to provide the newly requested video data block to the newly requested user terminal without having a child group. If there is a group search, and if a user group meeting the condition is found, a new group is created as the master terminal of the newly requested user terminal, and the generated user information is notified to the searched user group. And a group as a child group of the searched group. 제 3 항에 있어서,The method of claim 3, wherein 상기 서버는, 상기 새로 서비스를 요구한 사용자 단말로 요구한 비디오 데이터 블록을 전달할 수 있는 사용자 그룹이 존재하지 않으면, 현재 여유 대역폭이 비디오 데이터 스트림을 전송할 수 있는 정도이면 직접 상기 새로 서비스를 요구한 사용자 단말로 요구한 비디오 데이터 블록을 전송하는 것을 특징으로 하는 비디오 서비스 시스템.If there is no user group capable of delivering the requested video data block to the user terminal requesting the new service, the server directly requests the new service if the current free bandwidth is enough to transmit the video data stream. And a video data block requested by the terminal. 제 4 항에 있어서,The method of claim 4, wherein 상기 사용자 그룹에 추가된 사용자 단말은 자신의 사용자 그룹 정보의 최소 비디오 데이터 블록 인덱스가 자신이 소속된 부모 그룹의 마스터 단말의 최소 비디오 데이터 블록 인덱스와 동일해지면 상기 부모 그룹의 정식 멤버가 되고, 상기 정식 멤버가 된 이후에 자식 그룹의 사용자 단말로 비디오 데이터 블록의 전송이 가능한 것을 특징으로 하는 비디오 서비스 시스템.The user terminal added to the user group becomes a formal member of the parent group when the minimum video data block index of its user group information is equal to the minimum video data block index of the master terminal of the parent group to which the user group belongs. And a video data block can be transmitted to a user terminal of a child group after being a member. 제 5 항에 있어서,The method of claim 5, 상기 부모 그룹 내의 사용자 단말이 상기 자식 그룹의 사용자 단말로 비디오 데이터 블록을 전송함에 있어, 상기 부모 그룹 내의 사용자 단말 중 현재 자식 그룹의 사용자 단말로 전송될 비디오 데이터 블록의 인덱스를 현재 그룹 내의 정식 멤버의 수로 나눈 나머지와 동일한 ID를 갖는 사용자 단말이 상기 자식 그룹의 특정 사용자 단말로 비디오 데이터 블록을 전송하는 것을 특징으로 하는 비디오 서비스 시스템.When the user terminal in the parent group transmits the video data block to the user terminal of the child group, the index of the video data block to be transmitted to the user terminal of the current child group among the user terminals in the parent group is determined by And a user terminal having the same ID as the remainder divided by the number transmits the video data block to a specific user terminal of the child group. 제 6 항에 있어서,The method of claim 6, 상기 부모 그룹의 사용자 단말로부터 비디오 데이터 블록을 전송받을 상기 자식 그룹 사용자 단말은 현재 전송받을 비디오 데이터 블록의 인덱스를 상기 자식 그룹의 멤버수로 나눈 나머지를 ID로 갖는 단말인 것을 특징으로 하는 비디오 서비스 시스템.The child group user terminal to receive a video data block from the parent group user terminal is a terminal having an ID as a remainder obtained by dividing the index of the video data block to be transmitted by the number of members of the child group. . 제 7 항에 있어서,The method of claim 7, wherein 하나의 그룹 내에 속하는 사용자 단말 중 특정 사용자 단말이 부모 그룹으로부터 비디오 데이터 블록을 수신하면, 상기 수신된 비디오 데이터 블록을 동일 그룹 내에 속하는 다른 사용자 단말 모두에게 전달하는 것을 특징으로 하는 비디오 서비스 시스템. And when a specific user terminal among user terminals belonging to one group receives a video data block from a parent group, the received video data block is delivered to all other user terminals belonging to the same group. 제 8 항에 있어서,The method of claim 8, 비디오 서비스 중 특정 그룹의 사용자 단말이 서비스 중지를 요청하면, 상기 서비스 중지를 요청한 사용자 단말을 그룹에서 삭제한 후, 갱신된 그룹 정보를 동일 그룹 내의 멤버 단말과 비디오 데이터 블록을 주고받는 다른 그룹의 마스터 단말과 상기 서버로 전달하는 것을 특징으로 하는 비디오 서비스 시스템.When a user terminal of a specific group of the video services requests to stop the service, after deleting the user terminal requesting the service stop from the group, the master of the other group that exchanges the updated group information with the member terminal in the same group and the video data block Video service system, characterized in that the transmission to the terminal and the server. 제 9 항에 있어서,The method of claim 9, 상기 서비스를 중지한 사용자 단말이 그룹의 마스터 단말인 경우에는 상기 특정 그룹 내의 다른 사용자 단말을 마스터 단말로 설정한 후, 상기 새로 설정된 마스터 단말에 의해 그룹 정보가 갱신되는 것을 특징으로 하는 비디오 서비스 시스템.If the user terminal that has stopped the service is a master terminal of a group, after setting another user terminal in the specific group as a master terminal, the group information is updated by the newly set master terminal. 제 10 항에 있어서,The method of claim 10, 그룹에 소속된 사용자 단말의 서비스 이탈을 감지하기 위해, 동일 그룹 내의 사용자 단말들 상호간, 비디오 데이터 블록을 주고받는 그룹들의 마스터 단말 간에 일정 주기로 하트-비트 메시지를 송수신하는 것을 특징으로 하는 비디오 서비스 시스템.A video service system, characterized in that a heart-beat message is transmitted and received at regular intervals between user terminals in the same group and master terminals of groups that exchange video data blocks to detect service departure of user terminals belonging to the group. 비디오 파일이 일정 크기로 분할된 블록 단위의 비디오 데이터에 각각 인덱스를 부여하여 저장하고, 현재 비디오 서비스에 접속된 적어도 하나의 사용자 단말을 포함하는 사용자 그룹과 관련된 정보를 관리하는 서버와, 상기 서버와 인터넷을 통해 접속되는 사용자 단말은 하나의 사용자 그룹에 소속되며, 각 사용자 그룹에는 다른 사용자 단말의 그룹 내 추가/삭제를 담당하는 마스터 단말이 존재하는 시스템에서의 비디오 서비스 방법에 있어서,A server for indexing and storing video data in units of blocks in which video files are divided into predetermined sizes, and managing information related to a user group including at least one user terminal currently connected to a video service; In a video service method in a system in which a user terminal connected through the Internet belongs to one user group, and each user group has a master terminal in charge of addition / deletion within a group of another user terminal. 상기 서버는, 임의의 사용자 단말로부터 특정 블록의 비디오 데이터 전송 요구를 수신하면, 상기 사용자 단말이 요구한 비디오 데이터 블록의 인덱스를 확인하여, 현재 비디오 서비스를 제공받고 있는 사용자 그룹 중 새로 서비스를 요구한 상기 사용자 단말을 포함시킬 수 있는 사용자 그룹이 있는지 검색하는 제1 단계;When the server receives a video data transmission request of a specific block from an arbitrary user terminal, the server checks the index of the video data block requested by the user terminal, and requests a new service among user groups currently receiving video service. A first step of searching for a user group capable of including the user terminal; 상기 제1 단계에서 검색된 사용자 그룹의 마스터 단말 정보를 상기 새로 서비스를 요구한 사용자 단말로 제공하는 제2 단계;A second step of providing master terminal information of the user group found in the first step to the user terminal requesting the new service; 상기 제1 단계에서 상기 새로 서비스를 요구한 사용자 단말을 포함시킬 사용자 그룹이 검색되지 않으면, 이미 생성된 그룹 중에 자식 그룹을 가지고 있지 않고 상기 새로 서비스를 요구한 사용자 단말로 사용자가 요구한 비디오 데이터 블록을 제공할 수 있는 그룹이 있는지 검색하는 제3 단계;If the user group to include the user terminal requesting the new service is not found in the first step, the video data block requested by the user to the user terminal requesting the new service without having a child group among the already created groups Searching for whether there is a group capable of providing a third step; 상기 제3 단계에서 조건에 맞는 사용자 그룹이 검색되면, 상기 새로 서비스를 요구한 사용자 단말을 마스터 단말로 하는 새로운 그룹을 생성하고, 상기 검색된 사용자 그룹으로 상기 생성된 그룹 정보를 통보하여 상기 새로 생성한 그룹을 상기 검색된 사용자 그룹의 자식 그룹으로 만드는 제4 단계;When a user group meeting the condition is found in the third step, a new group is created, wherein the newly requested user terminal is the master terminal, and the newly created user information is notified to the searched user group. A fourth step of making a group a child group of the searched user group; 상기 제3 단계에서 상기 새로 서비스를 요구한 사용자 단말로 요구한 비디오 데이터 블록을 전달할 수 있는 사용자 그룹이 존재하지 않으면, 현재 여유 대역폭이 요구한 비디오 데이터 블록을 전송할 수 있는 대역폭인지 확인하는 제5 단계;A fifth step of checking whether the current free bandwidth is a bandwidth capable of transmitting the requested video data block if there is no user group capable of delivering the requested video data block to the newly requested user terminal in the third step; ; 상기 제5 단계에서 전송할 수 있는 여유 대역폭이 있으면, 직접 상기 새로 서비스를 요구한 사용자 단말로 요구한 비디오 데이터 블록을 전송하는 제6 단계; 및A sixth step of transmitting the requested video data block directly to the user terminal that has requested the new service if there is available bandwidth that can be transmitted in the fifth step; And 상기 제5 단계에서 여유 대역폭이 없으면, 서비스 제공 불가를 통보하는 제7 단계를 포함하는 것을 특징으로 하는 비디오 서비스 방법.And a seventh step of notifying that the service cannot be provided if there is no free bandwidth in the fifth step. 제 12 항에 있어서,The method of claim 12, 상기 그룹 정보는 그룹이 속한 체인의 식별자와, 그룹 정보가 생성될 때의 시간과, 그룹 정보가 사용되기 시작할 시간과, 그룹에 속해 있는 사용자 단말의 수와, 그룹에 소속된 사용자 단말의 IP 어드레스와 포트와 스테이트를 담고 있는 리스트 정보와, 그룹 정보가 생성될 때 서버 또는 다른 사용자 그룹으로부터 수신한 비디오 데이터 블록의 인덱스, 그룹 정보가 생성될 때 최소 비디오 데이터 블록의 인덱스 정보를 포함하는 것을 특징으로 하는 비디오 서비스 방법.The group information includes an identifier of a chain to which a group belongs, a time when group information is generated, a time at which group information starts to be used, a number of user terminals belonging to a group, and an IP address of a user terminal belonging to a group. And index information of the video data block received from the server or another user group when the group information is generated, and index information of the minimum video data block when the group information is generated. Video service method. 제 12 항에 있어서,The method of claim 12, 상기 제1 단계에서 현재 비디오 서비스를 제공받고 있는 사용자 그룹 중 새로 서비스를 요구한 상기 사용자 단말을 포함시킬 수 있는 사용자 그룹은,Among the user groups currently receiving the video service in the first step, a user group that may include the user terminal requesting a new service, 상기 사용자가 요구한 비디오 데이터 블록의 인덱스(RI)에서 서버(10) 또는 다른 그룹이 그룹으로 보내고 있는 비디오 데이터 블록의 인덱스(RP)를 뺀 값이, 상기 새로 서비스를 요구한 사용자 단말을 사용자 그룹에 포함시키는 동안에 각 사용자 그룹이 받는 비디오 데이터 블록의 수(α)보다 크고, 상기 새로 서비스를 요구한 사용자 단말이 불필요하게 받는 비디오 데이터 블록의 한계 개수(β)보다 작은 조건을 만족하는 그룹인 것을 특징으로 하는 비디오 서비스 방법.The value obtained by subtracting the index (RP) of the video data block that the server 10 or another group sends to the group from the index (RI) of the video data block requested by the user is the user group requesting the newly requested service. It is a group that satisfies a condition that is larger than the number α of video data blocks received by each user group during inclusion in the subframe, and that the user terminal requesting the new service satisfies a condition smaller than the limit number β of video data blocks unnecessarily received. Video service method. 제 12 항에 있어서,The method of claim 12, 상기 제3 단계에서의 이미 생성된 그룹 중에 상기 새로 서비스를 요구한 사용자 단말로 사용자가 요구한 비디오 데이터 블록을 제공할 수 있는 사용자 그룹은,A user group capable of providing a video data block requested by a user to the user terminal requesting the new service among the groups already created in the third step may include: 사용자가 요구한 비디오 데이터 블록의 인덱스가, 그룹의 최소 비디오 데이터 블록 인덱스(LD)와 상기 새로 서비스를 요구한 사용자 단말을 사용자 그룹에 포함시키는 동안에 사용자 그룹이 받는 비디오 데이터 블록의 수(α)를 더한 값보다는 크고, 현재 사용자 그룹의 각 사용자 단말이 재생하고 있는 비디오 데이터 블록의 인덱스와 상기 새로 서비스를 요구한 사용자 단말을 사용자 그룹에 포함시키는 동안에 각 사용자 그룹이 받는 비디오 데이터 블록의 수(β)를 더한 값보다는 작은 조건을 만족하는 사용자 그룹인 것을 특징으로 하는 비디오 서비스 방법.The index of the video data block requested by the user indicates the minimum video data block index LD of the group and the number α of the video data blocks received by the user group while including the newly requested user terminal in the user group. Larger than the sum, the index of the video data block being played by each user terminal of the current user group and the number of video data blocks received by each user group while including the newly requested user terminal in the user group (β) The video service method, characterized in that the user group that satisfies a condition smaller than the sum. 제 15 항에 있어서,The method of claim 15, 상기 제4 단계에서 상기 검색된 사용자 그룹이 부모 그룹이 되고, 상기 새로 생성된 그룹이 자식 그룹이 되는데,In the fourth step, the searched user group becomes a parent group, and the newly created group becomes a child group. 상기 부모 그룹 내의 사용자 단말 중 현재 자식 그룹의 사용자 단말로 전송될 비디오 데이터 블록의 인덱스를 현재 그룹 내의 정식 멤버의 수로 나눈 나머지와 동일한 ID를 갖는 사용자 단말이,A user terminal having an ID equal to the remainder obtained by dividing an index of a video data block to be transmitted to a user terminal of a current child group among the user terminals in the parent group by the number of full members in the current group; 현재 전송받을 비디오 데이터 블록의 인덱스를 상기 자식 그룹의 멤버수로 나눈 나머지를 ID로 갖는 자식 그룹의 사용자 단말로 비디오 데이터 블록을 전송하는 것을 특징으로 하는 비디오 서비스 방법.And transmitting a video data block to a user terminal of a child group having an ID of a remainder obtained by dividing an index of a video data block to be transmitted by the number of members of the child group.
KR1020040040475A 2004-06-03 2004-06-03 P2p based video service system and method for providing vod service using the same KR20050115498A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040040475A KR20050115498A (en) 2004-06-03 2004-06-03 P2p based video service system and method for providing vod service using the same
PCT/KR2004/001345 WO2005119498A1 (en) 2004-06-03 2004-06-04 P2p based video service system and method for providing vod service using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040040475A KR20050115498A (en) 2004-06-03 2004-06-03 P2p based video service system and method for providing vod service using the same

Publications (1)

Publication Number Publication Date
KR20050115498A true KR20050115498A (en) 2005-12-08

Family

ID=35463065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040040475A KR20050115498A (en) 2004-06-03 2004-06-03 P2p based video service system and method for providing vod service using the same

Country Status (2)

Country Link
KR (1) KR20050115498A (en)
WO (1) WO2005119498A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100853381B1 (en) * 2006-11-29 2008-08-21 삼성네트웍스 주식회사 System for real time internet broadcast service and management method thereof
KR101030345B1 (en) * 2009-06-09 2011-04-20 주식회사 다음커뮤니케이션 System and Method for live streaming service

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100531358C (en) * 2006-03-13 2009-08-19 华为技术有限公司 Electronic performance-bill server depolying system and method for set-up and oper ation
CN101473651B (en) * 2006-06-27 2012-04-18 汤姆森特许公司 Accommodation control for performance understand peer-to-peer video program request
US9325786B2 (en) * 2006-07-27 2016-04-26 The Hong Kong University Of Science And Technology Peer-to-peer interactive media-on-demand
CN102316135A (en) 2010-07-02 2012-01-11 深圳市快播科技有限公司 Network on-demand method and system
CN102595489A (en) * 2011-01-10 2012-07-18 华为技术有限公司 Method, service gateway and AAA server for obtaining quality of service

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318720A (en) * 2001-04-19 2002-10-31 Oki Electric Ind Co Ltd Contents delivery management system
KR20010079083A (en) * 2001-06-12 2001-08-22 박준상 System and Method of Digital File using the Mixing Download Method and Streaming Method
JP2003067276A (en) * 2001-08-22 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> Method for interconnecting different p2p file exchange networks and p2p file exchange network system
US20030105831A1 (en) * 2001-12-04 2003-06-05 O'kane Robert Peer-to-peer (P2P) and internet content delivery based user based digital acknowledgement trigger used for file transfer
KR20030056701A (en) * 2001-12-28 2003-07-04 한국전자통신연구원 Apparatus and method for providing multimedia streaming service by using point-to-point connection
US20030237097A1 (en) * 2002-06-21 2003-12-25 Marshall Carl S. Peer to peer broadcast acquisition

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100853381B1 (en) * 2006-11-29 2008-08-21 삼성네트웍스 주식회사 System for real time internet broadcast service and management method thereof
KR101030345B1 (en) * 2009-06-09 2011-04-20 주식회사 다음커뮤니케이션 System and Method for live streaming service

Also Published As

Publication number Publication date
WO2005119498A1 (en) 2005-12-15

Similar Documents

Publication Publication Date Title
US11539768B2 (en) System and method of minimizing network bandwidth retrieved from an external network
US8850497B2 (en) Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network
US9325786B2 (en) Peer-to-peer interactive media-on-demand
US7415527B2 (en) System and method for piecewise streaming of video using a dedicated overlay network
US8612621B2 (en) Method for constructing network topology, and streaming delivery system
US7630370B2 (en) Overlay join latency reduction using preferred peer list
EP2227016B1 (en) A content buffering, querying method and point-to-point media transmitting system
US9497035B2 (en) Method, device, and system for playing media based on P2P
KR101231208B1 (en) Method for providing peering suggestion list, method for establishing p2p network, p2p application apparatus, terminal for establishing p2p network and network apparatus
WO2011069387A1 (en) Network node, method for data query and method for index update thereof
JP5724139B2 (en) P2P Internet live broadcast service system and method for forming a P2P tree structure according to the number of sessions
JP2004199578A (en) Content delivery method, device, program, and storage medium
US20240179200A1 (en) System and method of minimizing network bandwidth retrieved from an external network
KR20050115498A (en) P2p based video service system and method for providing vod service using the same
KR101252947B1 (en) Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution
KR101830760B1 (en) Overlay multicast system and its method to provide multiple content distribution in distributed content nodes
WO2012158161A1 (en) Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network
Bilgen et al. A new stable peer-to-peer protocol with non-persistent peers: The group suppression protocol
Budhkar et al. Two-tier peer selection strategy to minimize delay in p2p live streaming systems
KR101035902B1 (en) P2P overlay network architecture for media streaming, method for transmitting media streaming data over the network and method for establishing the network
KR100449492B1 (en) Method for jumping in multicast video on demand system
Li et al. A novel stream partitioning strategy for real-time video delivery in distributed multimedia systems
Li et al. Content and overlay-aware transmission scheduling in peer-to-peer streaming

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee