KR100427143B1 - Method for Transmitting and Dowloading Streaming Data - Google Patents

Method for Transmitting and Dowloading Streaming Data Download PDF

Info

Publication number
KR100427143B1
KR100427143B1 KR1020030003388A KR20030003388A KR100427143B1 KR 100427143 B1 KR100427143 B1 KR 100427143B1 KR 1020030003388 A KR1020030003388 A KR 1020030003388A KR 20030003388 A KR20030003388 A KR 20030003388A KR 100427143 B1 KR100427143 B1 KR 100427143B1
Authority
KR
South Korea
Prior art keywords
connection
sub
information
received
reception
Prior art date
Application number
KR1020030003388A
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 KR1020030003388A priority Critical patent/KR100427143B1/en
Priority to JP2005518206A priority patent/JP4002584B2/en
Priority to CNB2004800016837A priority patent/CN100414539C/en
Priority to PCT/KR2004/000007 priority patent/WO2004066160A1/en
Priority to US10/541,399 priority patent/US8370513B2/en
Application granted granted Critical
Publication of KR100427143B1 publication Critical patent/KR100427143B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1085Resource delivery mechanisms involving dynamic management of active down- or uploading connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities

Abstract

PURPOSE: A streaming data transmission and download method is provided to transmit or download streaming data to/from plural distributed nodes over a P2P(Peer To Peer) network. CONSTITUTION: The method comprises several steps. A user client receives data on a node list from a connection control server(S600). The user client sets a connection to a part or all of the nodes in the list(S602). The user client determines a connection state to each node, and a sub block number to be received from each node(S604). The user client requests the connected node to transmit a corresponding sub block(S606), and receives the sub block from the connected node(S608). While receiving the sub block, the user client checks whether there exist connections for receiving all the requested sub block(S610). The user client checks whether all the sub blocks are received(S614).

Description

스트리밍 데이터 전송 및 다운로드 방법{Method for Transmitting and Dowloading Streaming Data}How to send and download streaming data {Method for Transmitting and Dowloading Streaming Data}

본 발명은 스트리밍 데이터 전송 및 다운로드 방법에 관한 것으로서, 더욱 상세하게는 복수의 분산된 노드들로부터 스트리밍 데이터를 전송 및 다운로드하는 방법에 관한 것이다.The present invention relates to a method for transmitting and downloading streaming data, and more particularly, to a method for transmitting and downloading streaming data from a plurality of distributed nodes.

초기에 인터넷을 통해 제공되는 컨텐츠는 문서와 그림과 같은 저용량의 데이터가 대부분이었으나, 데이터 전송 기술 및 장비가 발전함에 따라 멀티미디어 컨텐츠의 제공도 활발히 이루어지고 있다. 이와 같은 멀티미디어 컨텐츠는 스트리밍 방식을 통해 사용자 클라이언트에게 전송된다.In the early days, contents provided through the Internet were mostly low-capacity data such as documents and pictures. However, as data transmission technology and equipment are developed, multimedia contents are also actively provided. Such multimedia content is transmitted to the user client through a streaming method.

종래에 있어서, 스트리밍 데이터는 하나의 서버로부터 사용자 클라이언트에게 전송되는 것이 일반적이었다.In the past, streaming data was typically transmitted from one server to a user client.

이러한 스트리밍 데이터는 실시간으로 전송이 되어야 한다. 그러나, 종래에는 스트리밍 데이터가 하나의 서버에서 클라이언트로 전송이 되므로, 서버와 클라이언트 사이의 연결에 장애가 발생하거나 서버의 부하가 커지는 경우 스트리밍 데이터의 전송에 지연이 발생하는 경우가 많았다. 스트리밍 데이터는 수신과 동시에 플레이어를 통해 재생되므로, 일반적인 데이터 파일의 전송 지연과는 달리 QoS(Quality of Service) 영향이 크다.Such streaming data should be transmitted in real time. However, in the related art, since streaming data is transmitted from one server to a client, there are many cases in which a delay occurs in the transmission of streaming data when the connection between the server and the client fails or the load of the server increases. Streaming data is played through the player at the same time as it is received, so unlike the typical data file transmission delay, the quality of service (QoS) impact is high.

한편, 종래의 파일 다운로드 방법에 있어서, 미국특허 제6,339,785호는 복수의 서버를 통해 파일을 분할하여 다운로드하는 방법을 개시하고 있다. 미국특허 제6,339,785호에 따르면, 전체 파일을 1/N로 분할하고 N개의 서버를 통해 파일을 전송하도록 하여, 어느 하나의 연결에 장애가 발생하더라도 안정적으로 파일을 다운로드하도록 한다.Meanwhile, in the conventional file download method, US Patent No. 6,339,785 discloses a method of dividing and downloading a file through a plurality of servers. According to U.S. Patent No. 6,339,785, the entire file is divided into 1 / N and files are transmitted through N servers so that the file can be stably downloaded even if one connection fails.

그러나, 이와 같은 다운로드 방식은 전체 파일의 다운로드가 완료되어야만 해당 파일을 사용할 수 있다. 따라서, 수신과 동시에 재생이 되어야 하는 스트리밍 데이터에는 미국특허 제6,339,785호의 다운로드 방법을 사용할 수 없는 문제점이 있었다.However, such a download method can use the file only when the entire file has been downloaded. Therefore, there is a problem in that the download method of US Pat. No. 6,339,785 cannot be used for streaming data to be reproduced simultaneously with reception.

본 발명에서는 상기한 바와 같은 종래 기술의 문제점을 해결하기 위해, 복수의 노드를 통해 스트리밍 데이터를 전송 및 다운로드 하는 방법을 제안하고자 한다.In the present invention, to solve the problems of the prior art as described above, we propose a method for transmitting and downloading streaming data through a plurality of nodes.

본 발명의 다른 목적은 P2P(Peer to Peer)망에서 복수의 사용자 클라이언트로부터 스트리밍 데이터를 안정적으로 수신할 수 있는 방법 및 사용자 클라이언트에 설치되는 수신 에이전트 프로그램을 제안하는 것이다.Another object of the present invention is to propose a method for stably receiving streaming data from a plurality of user clients in a peer-to-peer network, and a receiving agent program installed in the user client.

본 발명의 또 다른 목적은 다중 서버를 통한 파일 전송 시스템으로부터 스트리밍 데이터를 안정적으로 수신할 수 있는 방법 및 사용자 클라이언트에 설치되는 수신 에이전트 프로그램을 제안하는 것이다.It is still another object of the present invention to propose a method for stably receiving streaming data from a file transfer system through multiple servers and a receiving agent program installed in a user client.

본 발명의 또 다른 목적은 스트리밍 데이터를 블록 및 서브 블록으로 세분화하고 복수의 연결을 설정하여 수신하는 방법을 제안하는 것이다.It is still another object of the present invention to propose a method of subdividing streaming data into blocks and sub-blocks and establishing and receiving a plurality of connections.

도 1은 본 발명이 적용되는 스트리밍 데이터 전송 시스템의 간략한 구성을 도시한 도면.1 is a diagram showing a simplified configuration of a streaming data transmission system to which the present invention is applied.

도 2는 본 발명에 따른 스트리밍 데이터 전송 방법이 적용되는 구체적인 네트워크 시스템의 일례를 도시한 도면.2 is a diagram illustrating an example of a specific network system to which the streaming data transmission method according to the present invention is applied.

도 3은 본 발명에 따른 스트리밍 데이터 전송 방법이 적용되는 구체적인 네트워크 시스템의 다른 예를 도시한 도면.3 is a diagram showing another example of a specific network system to which the streaming data transmission method according to the present invention is applied.

도 4는 본 발명에 따른 스트리밍 데이터 전송 방법이 적용되는 네트워크 시스템의 또 다른 예를 도시한 도면.4 is a diagram illustrating another example of a network system to which a streaming data transmission method according to the present invention is applied.

도 5는 본 발명의 일 실시예에 따른 스트리밍 데이터의 구조를 도시한 도면.5 is a diagram illustrating a structure of streaming data according to an embodiment of the present invention.

도 6은 본 발명의 바람직한 일 실시예에 따른 스트리밍 데이터 다운로드 방법의 순서도.6 is a flowchart of a streaming data download method according to an embodiment of the present invention.

도 7은 본 발명의 바람직한 일 실시예에 따른 연결 제어 서버의 동작을 도시한 순서도.7 is a flowchart showing the operation of the connection control server according to an embodiment of the present invention.

도 8은 본 발명의 다른 실시예에 따른 연결 제어 서버의 동작을 도시한 순서도.8 is a flowchart illustrating the operation of a connection control server according to another embodiment of the present invention.

도 9는 본 발명의 바람직한 일 실시예에 따른 사용자 클라이언트에 설치되는 에이전트 프로그램의 모듈 구성을 도시한 블록도.9 is a block diagram illustrating a module configuration of an agent program installed in a user client according to an embodiment of the present invention.

도 10은 본 발명의 바람직한 일 실시예에 따른 연결 제어 모듈의 상세한 모듈 구성을 도시한 블록도.10 is a block diagram illustrating a detailed module configuration of a connection control module according to an embodiment of the present invention.

도 11은 본 발명의 바람직한 일 실시예에 따른 연결 상태를 판단하여 서브 블록을 분배하는 과정을 도시한 순서도.11 is a flowchart illustrating a process of distributing subblocks by determining a connection state according to an exemplary embodiment of the present invention.

도 12는 본 발명의 바람직한 일 실시예에 따른 서브 블록 수신이 완료된 노드가 존재할 경우의 처리 과정을 도시한 순서도.12 is a flowchart illustrating a process in the case where there is a node that has completed sub block reception according to an embodiment of the present invention.

도 13은 본 발명의 바람직한 일 실시예에 따른 연결 제어 서버의 모듈 구성을 도시한 도면.13 is a diagram showing the module configuration of a connection control server according to an embodiment of the present invention.

도 14는 본 발명의 다른 실시예에 따른 연결 제어 서버의 모듈 구성을 도시한 도면.14 is a diagram illustrating a module configuration of a connection control server according to another embodiment of the present invention.

상기한 바와 같은 목적들을 달성하기 위해, 본 발명의 일 실시예에 따르면, 복수의 노드에 연결을 설정하는 단계(a); 상기 연결을 설정한 각 노드에 스트리밍 데이터의 서브 블록을 요청하여 수신하는 단계(b); 상기 연결을 설정한 각 노드의 수신 상태를 모니터링하는 단계(c); 및 상기 모니터링 결과에 상응하여 연결을 설정한 노드들 중 일부 노드에서 수신할 서브 블록을 재분배하는 단계(d)를 포함하며, 스트리밍 데이터의 블록에 포함되는 서브 블록을 모두 수신할 경우, 다음 블록의 서브 블록에 대해 상기 (b) 내지 (d) 단계를 반복하는 스트리밍 데이터의 다운로드 방법이 제공된다.In order to achieve the above objects, according to an embodiment of the present invention, the method comprises: establishing a connection to a plurality of nodes; (B) requesting and receiving a subblock of streaming data from each node that has established the connection; (C) monitoring a reception state of each node which has established the connection; And (d) redistributing a subblock to be received by some of the nodes which have established a connection according to the monitoring result, and when receiving all subblocks included in the block of streaming data, Provided is a method of downloading streaming data which repeats steps (b) to (d) for a sub block.

본 발명에 따르면, 연결을 설정한 각 노드로부터 수신할 스트리밍 데이터의 서브 블록을 결정하는 단계를 더 포함할 수 있다.According to the present invention, the method may further include determining a subblock of streaming data to be received from each node which establishes a connection.

상기 단계(c)는 수신을 완료한 연결이 존재하는지 여부를 모니터링할 수 있다.Step (c) may monitor whether there is a connection that has completed reception.

상기 각 노드들로부터 수신할 서브 블록은 각 연결의 연결 상태 평가 지수를 계산하여 결정될 수 있다.The sub block to be received from each node may be determined by calculating a connection state evaluation index of each connection.

상기 연결 상태 평가 지수는 각 노드와의 라운드 트립 시간 및 각 노드와의 평균 수신속도로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합을 이용하여 계산할 수 있다.The connection state evaluation index may be calculated using one or a combination thereof selected from the group consisting of a round trip time with each node and an average reception speed with each node.

상기 단계(d)는 모니터링 결과 요청한 모든 서브 블록을 수신한 연결이 존재할 경우, 수신이 진행중인 연결들의 일부와 수신이 완료된 연결에서 수신할 서브 블록을 재분배하는 단계를 포함할 수 있다.The step (d) may include redistributing some of the connections that are being received and subblocks to be received in the connection where the reception is completed when there is a connection that has received all the subblocks requested as a result of the monitoring.

상기 단계(d)는 상기 수신이 완료된 연결과 상기 수신이 진행중인 연결 중 수신율이 가장 낮은 연결에서 수신할 서브 블록을 재분배하는 단계를 포함할 수 있다.The step (d) may include redistributing a subblock to be received in the connection with the lowest reception rate among the connection where the reception is completed and the connection where the reception is in progress.

상기 요청한 서브 블록의 수신이 완료된 연결과 수신율이 가장 낮은 연결에서 수신할 서브 블록을 재분배하는 단계는, 상기 수신이 완료된 연결과 상기 수신율이 가장 낮은 연결의 수신 속도를 판단하는 단계; 상기 수신율이 가장 낮은 연결에서 수신할 남은 서브 블록 수를 판단하는 단계; 상기 남은 서브 블록 수의 판단 결과, 서브 블록을 재분배할 필요가 있는지 여부를 판단하는 단계; 및 서브 블록을재분배할 필요가 있는 경우, 상기 남은 서브 블록을 상기 판단한 수신 속도의 비에 따라 상기 수신이 완료될 연결 및 상기 수신율이 가장 낮은 연결에 분배하는 단계를 포함할 수 있다.Redistributing a subblock to be received in the connection where the reception of the requested subblock is completed and the connection with the lowest reception rate comprises: determining a reception speed of the connection where the reception has been received and the connection with the lowest reception rate; Determining the remaining number of subblocks to be received in the connection with the lowest reception rate; Determining whether the subblocks need to be redistributed as a result of the determination of the remaining number of subblocks; And if it is necessary to redistribute the sub-blocks, distributing the remaining sub-blocks to the connection where the reception is to be completed and the connection having the lowest reception rate according to the ratio of the determined reception speed.

본 발명의 다른 실시예에 따르면, 연결 제어 서버와 복수의 사용자 클라이언트가 네트워크를 통해 결합되어 있는 시스템에서 상기 복수의 사용자 클라이언트에 설치되어 스트리밍 데이터의 수신을 제어하는 수신 에이전트 프로그램으로서, 상기 연결 제어 서버로 사용자 클라이언트에 저장되어 있는 컨텐츠 정보 및 사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 연결 제어 서버에 전송하는 에이전트 관리 모듈; 상기 연결 제어 서버로부터 사용자가 요청한 컨텐츠를 저장하고 있는 노드 리스트 정보를 수신하여 저장하는 노드 정보 관리 모듈; 상기 노드 리스트 정보를 이용하여 복수의 노드에 연결을 설정하고, 연결된 노드들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 노드들로부터 서브 블록의 수신 중 서브 블록의 수신상태를 모니터링하여 연결을 설정한 일부 노드에서 수신할 서브 블록을 재분배하는 연결 제어 모듈 ;상기 연결 제어 모듈에서 블록에 포함되는 모든 서브 블록이 수신되는지 판단하며, 모든 서브 블록이 수신될 경우 다음 블록의 서브 블록을 수신하도록 상기 연결 제어 모듈에 요청하는 서브 블록 관리 모듈을 포함하는 수신 에이전트 프로그램이 제공된다.According to another embodiment of the present invention, in a system in which a connection control server and a plurality of user clients are coupled through a network, the connection agent server is installed in the plurality of user clients and controls reception of streaming data. An agent management module providing content information and user client identification information stored in a user client to the content control server, and transmitting content request information to the connection control server when a user requests content; A node information management module configured to receive and store node list information storing content requested by a user from the connection control server; By using the node list information to establish a connection to a plurality of nodes, determine and request the sub-blocks of streaming data to be received from the connected nodes, by monitoring the reception status of the sub-blocks during the reception of the sub-blocks from the connected nodes A connection control module for redistributing sub-blocks to be received by some nodes that have established a connection; the connection control module determines whether all sub-blocks included in the block are received, and when all sub-blocks are received, receives a sub-block of the next block. A receiving agent program is provided that includes a sub-block management module that requests the connection control module to do so.

본 발명의 또 다른 실시예에 따르면, 복수의 컨텐츠 서버와 적어도 하나의 연결 제어 서버를 포함하는 시스템으로부터 스트리밍 데이터를 수신하는 클라이언트에 설치되어 스트리밍 데이터의 수신을 제어하는 수신 에이전트 프로그램으로서, 상기 연결 제어 서버로 스트리밍 데이터의 전송을 요청하는 데이터 요청 모듈; 상기 연결 제어 서버로부터 사용자가 요청한 데이터를 수신할 컨텐츠 서버들의 리스트 정보를 수신하여 저장하는 노드 정보 관리 모듈; 상기 컨텐츠 서버 리스트 정보에 포함된 복수의 컨텐츠 서버들에 연결을 설정하고, 연결된 컨텐츠 서버들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 컨텐츠 서버들로부터 서브 블록의 수신 중 서브 블록의 수신상태를 모니터링하여 연결을 설정한 일부 컨텐츠 서버에서 수신할 서브 블록을 재분배하는 연결 제어 모듈; 및 상기 연결 제어 모듈에서 블록에 포함되는 모든 서브 블록이 수신되는지 판단하며, 모든 서브 블록이 수신될 경우 다음 블록의 서브 블록을 수신하도록 상기 연결 제어 모듈에 요청하는 서브 블록 관리 모듈을 포함하는 것을 특징으로 하는 수신 에이전트 프로그램이 제공된다.According to another embodiment of the present invention, a reception agent program installed in a client that receives streaming data from a system including a plurality of content servers and at least one connection control server, the reception agent program for controlling the reception of streaming data, the connection control A data request module for requesting transmission of streaming data to a server; A node information management module for receiving and storing list information of content servers to receive data requested by a user from the connection control server; Establishes a connection to a plurality of content servers included in the content server list information, determines and requests a subblock of streaming data to be received from the connected content servers, and receives the subblock from the connected content servers. A connection control module for monitoring a reception state and redistributing a sub-block to be received by some content servers which have established a connection; And a sub-block management module that determines whether all sub-blocks included in the block are received by the connection control module and requests the connection control module to receive a sub-block of a next block when all sub-blocks are received. A receiving agent program is provided.

본 발명의 또 다른 실시예에 따르면, 복수의 사용자 클라이언트와 네트워크를 통해 연결되어 있으며 사용자 클라이언트가 복수의 다른 사용자 클라이언트들과 접속하여 스트리밍 데이터를 수신하도록 사용자 클라이언트들간의 연결을 제어하는 연결 제어 서버로서, 상기 접속되어 있는 복수의 사용자 클라이언트들로부터 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보 및 사용자 클라이언트의 주소 정보를 수신하고, 컨텐츠 전송을 요청하는 사용자 클라이언트에 요청한 컨텐츠를 저장하고 있는 노드 정보를 제공하는 메쉬 제어 모듈; 및 상기 메쉬 제어 모듈에서 수신하는 각 사용자 클라이언트가 저장하는 있는 컨텐츠 정보 및 사용자 클라이언트의 주소 정보를 저장하는 메쉬 정보 데이터베이스를 포함하되, 상기 복수의 사용자 클라이언트에는 수신 에이전트가 설치되어 있으며, 상기 수신 에이전트는 상기 제공된 노드 정보를 이용하여 복수의 노드에 연결을 설정하고, 연결된 노드들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 각 노드에서의 서브 블록의 수신 상태를 모니터링하여 수신할 서브 블록을 재분배하도록 사용자 클라이언트를 제어하는 연결 제어 서버가 제공된다.According to still another embodiment of the present invention, a connection control server is connected to a plurality of user clients via a network, and controls a connection between user clients such that the user client connects with the plurality of other user clients to receive streaming data. And a mesh configured to receive content information stored in each user client and address information of the user client from the connected plurality of user clients, and provide node information storing the requested content to the user client requesting content transmission. Control module; And a mesh information database storing content information stored by each user client received by the mesh control module and address information of the user client, wherein the plurality of user clients are provided with a receiving agent. A subblock to establish a connection to a plurality of nodes using the provided node information, determine and request a subblock of streaming data to be received from the connected nodes, and monitor the reception state of the subblock at each connected node to receive the subblock. A connection control server is provided for controlling the user client to redistribute this.

복수의 컨텐츠 서버 및 사용자 클라이언트와 네트워크를 통해 연결되어 있으며 사용자 클라이언트가 적어도 두 개 이상의 컨텐츠 서버와 접속하여 스트리밍 데이터를 수신하도록 사용자 클라이언트와 컨텐츠 서버들간의 연결을 제어하는 연결 제어 서버로서, 상기 접속되어 있는 복수의 컨텐츠 서버들로부터 상태 정보를 수신하여 각 컨텐츠 서버의 상태를 판단하는 서버 상태 판단 모듈; 상기 사용자 클라이언트로부터 컨텐츠 요청 정보를 수신할 경우, 요청한 컨텐츠의 스트리밍 데이터를 수신할 컨텐츠 서버 리스트 정보를 상기 사용자 클라이언트에 제공하는 서버 리스트 제공 모듈을 포함하되, 상기 사용자 클라이언트에는 수신 에이전트가 설치되어 있으며, 상기 수신 에이전트는 상기 제공되는 서버 리스트 정보를 이용하여 적어도 두 개 이상의 컨텐츠 서버에 연결을 설정하며, 연결된 컨텐츠 서버들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 각 노드에서의 서브 블록의 수신 상태를 모니터링하여 수신할 서브 블록을 재분배하도록 사용자 클라이언트를 제어하는 연결 제어 서버가 제공된다.A connection control server connected to a plurality of content servers and user clients through a network, and controlling the connection between the user client and the content servers such that the user client connects to at least two content servers to receive streaming data. A server state determination module configured to receive state information from a plurality of content servers, and determine a state of each content server; When receiving the content request information from the user client, a server list providing module for providing the content server list information for receiving the streaming data of the requested content to the user client, the user client is provided with a receiving agent, The receiving agent establishes a connection to at least two content servers by using the provided server list information, determines and requests a subblock of streaming data to be received from the connected content servers, and a subblock at each connected node. A connection control server is provided for controlling a user client to monitor the reception state of the network and redistribute the sub-blocks to receive.

이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 스트리밍 데이터 다운로드 방법의 바람직한 실시예를 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the streaming data download method according to a preferred embodiment of the present invention.

도 1은 본 발명이 적용되는 스트리밍 데이터 전송 시스템의 간략한 구성을 도시한 도면이다.1 is a diagram illustrating a brief configuration of a streaming data transmission system to which the present invention is applied.

도 1에 도시된 바와 같이, 본 발명에 따르 스트리밍 데이터 전송 시스템은 복수의 노드(100, 102, 104, 106, 108, 110)와 사용자 클라이언트(112)를 포함할 수 있다.As shown in FIG. 1, the streaming data transmission system according to the present invention may include a plurality of nodes 100, 102, 104, 106, 108, and 110 and a user client 112.

사용자 클라이언트(112)는 선택한 복수의 노드(102, 106, 108)와 연결을 설정하여 스트리밍 데이터를 수신한다.The user client 112 establishes a connection with the selected plurality of nodes 102, 106, and 108 to receive the streaming data.

도 1에서, 복수의 노드(100, 102, 104, 106, 108, 110)는 컨텐츠 데이터를 저장하고 있으며, 사용자 클라이언트로부터 컨텐츠 전송 요청 신호를 수신하여 요청한 컨텐츠를 사용자 클라이언트에 전송한다. 노드는 일반적으로 컨텐츠를 전송하는 서버일 수도 있으며, 다른 사용자 클라이언트일 수도 있다.In FIG. 1, a plurality of nodes 100, 102, 104, 106, 108, and 110 store content data, receive a content transmission request signal from a user client, and transmit the requested content to the user client. A node may generally be a server that delivers content or may be another user client.

사용자 클라이언트(112)는 컨텐츠 전송을 요청할 복수의 노드들(102, 106, 108)에 컨텐츠 요청 신호를 전송하며, 해당 노드들(102, 106, 108)로부터 컨텐츠 스트리밍 데이터를 수신한다. 즉, 본 발명에 따르면, 복수의 노드를 통해 복수의 경로로부터 스트리밍 데이터를 수신한다.The user client 112 transmits a content request signal to the plurality of nodes 102, 106, 108 requesting content transmission, and receives content streaming data from the corresponding nodes 102, 106, 108. That is, according to the present invention, streaming data is received from a plurality of paths through a plurality of nodes.

이때, 사용자 클라이언트는 연결이 설정된 각각의 노드에 서로 다른 스트리밍 데이터를 요청하며, 복수의 노드들로부터 수신한 스트리밍 데이터를 조합한다.At this time, the user client requests different streaming data from each node to which the connection is established, and combines the streaming data received from the plurality of nodes.

도 5는 본 발명의 일 실시예에 따른 스트리밍 데이터의 구조를 도시한 도면이다.5 is a diagram illustrating a structure of streaming data according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스트리밍 데이터는 복수의 블록(500)으로 이루어지며, 각 블록(500)은 복수의 서브 블록(502)으로 이루어진다.As shown in FIG. 5, the streaming data according to an embodiment of the present invention consists of a plurality of blocks 500, and each block 500 includes a plurality of sub blocks 502.

블록 및 서브 블록은 전체 스트리밍 데이터를 나누기 위한 논리적 단위이며 이와 다른 용어가 사용될 수도 있다는 것은 당업자에게 있어 자명할 것이다.It will be apparent to those skilled in the art that blocks and subblocks are logical units for dividing the entire streaming data and that other terms may be used.

일반적인 파일 수신과는 달리, 스트리밍 데이터는 수신이 되면서 동시에 재생이 되어야 한다. 따라서, 종래의 다중 경로에 의한 파일 수신과 같이 파일 전체를 몇 부분으로 나누어 수신하는 방법을 사용할 수 없다. 종래의 같이 다중 경로를 통해 파일을 수신할 경우 파일 전체가 모두 수신되지 않으면 해당 파일을 재생할 수 없기 때문이다.Unlike normal file reception, streaming data must be received and played at the same time. Therefore, the conventional method of receiving a file by dividing the whole file into several parts cannot be used, such as the file reception by a multipath. This is because when a file is received through a multipath as in the prior art, the file cannot be played unless all of the file is received.

따라서, 본 발명에 따르면, 전체 스트리밍 데이터를 블록 단위로 세분화하며, 블록에 포함되는 서브 블록들을 다중 경로를 통해 병렬/분산 방식으로 수신한다.Therefore, according to the present invention, the entire streaming data is subdivided into block units, and sub blocks included in the block are received in a parallel / distributed manner through a multipath.

예를 들어, 도 1과 같이 연결이 설정된 시스템에서 하나의 블록이 10개의 서브 블록으로 이루어질 경우, 사용자 클라이언트(112)는 제2 노드(102)에 1번~3번 서브 블록, 제4 노드(106)에 4번~7번 서브 블록, 제5 노드(108)에 8번~10번 서브 블록을 요청한다.For example, in a system in which a connection is established as shown in FIG. 1, when a block is composed of 10 subblocks, the user client 112 may transmit subblocks 1 to 3 and a fourth node to the second node 102. 106) requests sub blocks 4-7, and subblocks 8-10 for the fifth node 108.

사용자 클라이언트(112)는 하나의 블록에 포함되는 모든 서브 블록이 수신되면 다음 블록에 포함되는 서브 블록을 요청한다. 하나의 블록 데이터를 모두 수신한 후에 다음 블록의 데이터를 수신하므로, 다중 경로를 통해 데이터를 수신하더라도 데이터 수신과 동시에 데이터를 재생하는 스트리밍 서비스를 지원할 수 있게 된다.When all the subblocks included in one block are received, the user client 112 requests the subblocks included in the next block. Since the data of the next block is received after receiving all of one block data, even if the data is received through multiple paths, it is possible to support a streaming service that plays data at the same time as the data is received.

도 5에서는 블록 및 서브 블록으로 스트리밍 데이터를 분할하는 경우만을 도시하였으나, 서브 블록보다 더 작은 단위로 스트리밍 데이터가 분할되어 전송될 수도 있다는 것은 당업자에게 있어 자명할 것이다.In FIG. 5, only streaming data is divided into blocks and sub blocks, but it will be apparent to those skilled in the art that streaming data may be divided and transmitted in smaller units than sub blocks.

사용자 클라이언트는 연결된 각 노드에 서브 블록을 요청 시, 각 노드와의 연결 상태를 판단하여 서브 블록을 요청한다. 예를 들어, 연결된 제2 노드(102), 제4 노드(106) 및 제5 노드(108) 중 제2 노드의 연결 상태가 가장 좋고 제5 노드의 연결 상태가 가장 좋지 않을 경우, 사용자 클라이언트(112)는 제2 노드(102)에 가장 많은 수의 서브 블록을 요청하며, 제5 노드에 가장 적은 수의 서브 블록을 요청한다. 각 노드와의 연결 상태를 판단하고 이에 따라 요청할 서브 블록을 분배하는 방법에 대해서는 별도의 도면을 통해 후에 자세히 설명하도록 한다.When the user client requests a subblock from each connected node, the user client determines the connection state with each node and requests the subblock. For example, if the second node 102, the fourth node 106, and the fifth node 108 have the best connection state of the second node and the fifth node connection state is the worst, the user client ( 112 requests the largest number of subblocks from the second node 102 and the smallest number of subblocks from the fifth node. A method of determining a connection state with each node and distributing a subblock to be requested accordingly will be described later in detail through a separate drawing.

복수의 경로를 통해 블록에 포함되는 서브 블록을 수신할 경우, 일부 경로에서는 수신이 완료되더라도 다른 경로에서 수신이 계속되면 전송이 완료된 경로는 다른 경로의 수신이 완료될 때까지 데이터를 수신하지 않는다. 이와 같은 아이들 커넥션(Idle Connection)은 데이터의 전송 효율을 저하시킨다.When receiving a sub block included in a block through a plurality of paths, if reception is completed in some paths but reception is continued in another path, the path where the transmission is completed does not receive data until reception of another path is completed. Such an idle connection reduces the transmission efficiency of data.

따라서, 본 발명에 따르면, 복수의 경로 중 어느 한 경로에서의 서브 블록 수신이 완료된 경우, 수신이 완료된 경로로부터 아직 수신이 완료되지 않은 서브 블록을 수신하도록 한다. 어느 한 경로에서 수신이 완료된 경우 수신할 서브 블록을 재분배하는 과정에 대해서는 별도의 도면을 통해 후에 자세히 설명하도록 한다.Therefore, according to the present invention, when the reception of the subblocks in any one of the plurality of paths is completed, the subblocks which have not been received yet are received from the received paths. The process of redistributing the sub-blocks to be received when the reception is completed in one path will be described later in detail through separate drawings.

도 2는 본 발명에 따른 스트리밍 데이터 전송 방법이 적용되는 구체적인 네트워크 시스템의 일례를 도시한 도면이다.2 is a diagram illustrating an example of a specific network system to which the streaming data transmission method according to the present invention is applied.

도 2는 P2P(Peer to Peer) 방식에 의해 본 발명에 따른 스트리밍 데이터 전송 방법이 적용되는 경우를 도시한 것이다.2 illustrates a case where a streaming data transmission method according to the present invention is applied by a peer to peer (P2P) scheme.

도 2에 도시된 바와 같이, 본 발명이 적용되는 네트워크 시스템은 연결 제어 서버(200)와 복수의 클라이언트들(202, 204, 206, 208, 210, 212, 214, 216)을 포함할 수 있다.As shown in FIG. 2, the network system to which the present invention is applied may include a connection control server 200 and a plurality of clients 202, 204, 206, 208, 210, 212, 214, and 216.

연결 제어 서버(200)는 사용자 클라이언트로부터 컨텐츠 전송 요청 신호를 수신하고, 수신한 컨텐츠 전송 요청 신호에 응답하여 해당 컨텐츠를 저장하고 있는 다른 사용자 클라이언트의 주소 정보를 컨텐츠를 요청한 사용자 클라이언트에 제공한다. 컨텐츠를 요청한 사용자 클라이언트는 연결 제어 서버(200)에서 제공하는 주소 정보를 이용하여 복수의 경로를 통해 컨텐츠의 스트리밍 데이터를 수신할 수 있다.The connection control server 200 receives a content transmission request signal from the user client, and provides address information of another user client storing the corresponding content to the user client requesting the content in response to the received content transmission request signal. The user client requesting the content may receive streaming data of the content through a plurality of paths using address information provided from the connection control server 200.

예를 들어, 사용자 클라이언트(210)가 A라는 영화의 전송을 연결 제어 서버(200)에 요청할 경우, 연결 제어 서버(200)는 A 영화를 저장하고 있는 사용자 클라이언트 정보를 파악하고, 파악한 사용자 클라이언트의 주소 정보를 컨텐츠를 요청한 사용자 클라이언트(210)에 제공한다.For example, when the user client 210 requests the connection control server 200 to transmit a movie A, the connection control server 200 grasps user client information storing the A movie, and determines the user client's information. The address information is provided to the user client 210 requesting the content.

여기서, 주소 정보는 아이피 주소 및 포트 번호 일 수 있으며, 다른 주소 식별 수단이 사용될 수 있다는 것은 당업자에게 있어 자명할 것이다.Here, the address information may be an IP address and a port number, and it will be apparent to those skilled in the art that other address identification means may be used.

A 영화를 저장하고 있는 클라이언트가 도 2에서 202, 204, 및 208이라고 가정한다. 연결 제어 서버가 A 영화를 저장하고 있는 클라이언트(202, 204, 208) 정보를 컨텐츠를 요청한 클라이언트(210)에 제공할 경우, 컨텐츠를 요청한 클라이언트(210)는 A 영화를 저장하고 있는 클라이언트들(202, 204, 208)과 연결을 설정한다.Assume that the client storing the A movie is 202, 204, and 208 in FIG. When the connection control server provides the client 210 requesting the content with the client 202, 204, and 208 storing the A movie, the client 210 requesting the content is configured with the clients 202 storing the A movie. 204, 208 to establish a connection.

연결이 설정되면, 사용자 클라이언트(210)는 연결이 설정된 클라이언트들(202, 204, 208)에 서로 다른 서브 블록을 요청한다. 블록에 포함되는 모든 서브 블록이 수신될 경우 사용자 클라이언트(210)는 다음 블록의 서브 블록을 요청한다. 전송된 스트리밍 데이터는 사용자 클라이언트(210)에 저장되며, 다른 클라이언트의 전송 요청 시 저장된 데이터를 전송한다.When the connection is established, the user client 210 requests different subblocks from the clients 202, 204, and 208 to which the connection is established. When all sub blocks included in the block are received, the user client 210 requests the sub block of the next block. The transmitted streaming data is stored in the user client 210, and transmits the stored data when a transmission request of another client is made.

각 클라이언트에는 다른 클라이언트 또는 연결 제어 서버와의 통신을 위해 수신 에이전트 프로그램이 설치된다. 본 실시예에서는 수신 에이전트가 컴퓨터 소프트웨어인 경우에 대하여 설명할 것이나 수신 에이전트가 소프트웨어 이외의 별도의 장치나 카드의 형태로 구현되어 사용자 클라이언트에 설치될 수 있다는 것은 당업자에게 있어 자명할 것이다.Each client is equipped with a receiving agent program for communicating with other clients or a connection control server. In this embodiment, the case where the receiving agent is computer software will be described. However, it will be apparent to those skilled in the art that the receiving agent may be implemented in a form of a device or a card other than the software and installed in the user client.

클라이언트의 전원이 켜지거나 또는 설치된 에이전트 프로그램이 실행되면, 에이전트 프로그램은 사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 연결 제어 서버(200)에 전송하며, 연결 제어 서버는 전송된 정보를 저장한다.When the client is powered on or the installed agent program is executed, the agent program transmits the content information stored in the user client to the connection control server 200, and the connection control server stores the transmitted information.

도 3은 본 발명에 따른 스트리밍 데이터 전송 방법이 적용되는 구체적인 네트워크 시스템의 다른 예를 도시한 도면이다.3 is a diagram illustrating another example of a specific network system to which the streaming data transmission method according to the present invention is applied.

도 3은 다중 서버를 통해 스트리밍 데이터를 제공하는 경우를 도시한 것이다.3 illustrates a case where streaming data is provided through multiple servers.

도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스트리밍 데이터 전송 시스템은 복수의 컨텐츠 서버(300, 302, 304, 306, 308), 연결 제어 서버(310) 및 사용자 클라이언트(312)를 포함할 수 있다.As shown in FIG. 3, the streaming data transmission system according to an embodiment of the present invention uses a plurality of content servers 300, 302, 304, 306, and 308, a connection control server 310, and a user client 312. It may include.

연결 제어 서버(310)는 사용자 클라이언트(312)로부터 컨텐츠 전송 요청 신호를 수신하여 복수의 컨텐츠 서버(300, 302, 304, 306, 308) 중 사용자 클라이언트(312)가 접속할 서버의 정보를 제공하는 기능을 한다.The connection control server 310 receives a content transmission request signal from the user client 312 and provides information of a server to which the user client 312 accesses among the plurality of content servers 300, 302, 304, 306, and 308. Do it.

연결 제어 서버(310)는 컨텐츠 서버들(300, 302, 304, 306, 308)로부터 상태 정보를 주기적으로 수신하며, 수신한 상태 정보를 참조하여 상태가 좋은 서버에 사용자 클라이언트가 접속할 수 있도록 한다.The connection control server 310 periodically receives state information from the content servers 300, 302, 304, 306, and 308, and allows the user client to access a server having a good state by referring to the received state information.

사용자 클라이언트(312)는 연결 제어 서버(310)로부터 서버 리스트 정보를 수신하여 리스트에 있는 컨텐츠 서버들과 연결을 설정하고 다중 경로를 통해 스트리밍 데이터를 수신한다.The user client 312 receives server list information from the connection control server 310 to establish a connection with the content servers in the list, and receives streaming data through multiple paths.

도 2의 경우와 마찬가지로 사용자 클라이언트에는 다중 경로를 통한 스트리밍 데이터 수신을 위해 수신 에이전트 프로그램이 설치된다. 수신 에이전트 프로그램의 상세한 모듈 구성에 대해서는 별도의 도면을 통해 후에 자세히 설명한다.As in the case of FIG. 2, the receiving agent program is installed in the user client for receiving streaming data through the multipath. Detailed module configuration of the receiving agent program will be described later in detail through separate drawings.

도 4는 본 발명의 따른 스트리밍 데이터 전송 방법이 적용되는 네트워크 시스템의 또 다른 예를 도시한 도면이다.4 is a diagram illustrating another example of a network system to which a streaming data transmission method according to the present invention is applied.

도 4는 도2에 의한 P2P 시스템과 도 3에 의한 다중 서버 데이터 전송 시스템이 합쳐진 시스템이다.4 is a system in which the P2P system of FIG. 2 and the multi-server data transmission system of FIG. 3 are combined.

도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스트리밍 데이터 전송 시스템은 연결 제어 서버(410), 복수의 컨텐츠 서버(400, 402, 404, 406, 408) 및 복수의 클라이언트들(412, 414, 416, 418, 420, 422, 424, 426, 428)을 포함할 수 있다.As shown in FIG. 4, the streaming data transmission system according to an embodiment of the present invention includes a connection control server 410, a plurality of content servers 400, 402, 404, 406, and 408 and a plurality of clients 412. , 414, 416, 418, 420, 422, 424, 426, 428.

도 4에서, 연결 제어 서버(410)는 사용자 클라이언트로부터 컨텐츠 요청 정보를 수신하며, 사용자가 요청한 컨텐츠를 저장하고 있는 클라이언트 또는 컨텐츠 서버 리스트 정보를 컨텐츠를 요청한 클라이언트에 제공한다.In FIG. 4, the connection control server 410 receives the content request information from the user client, and provides the client that stores the content requested by the user or the content server list information to the client that requested the content.

사용자 클라이언트들(412, 414, 416, 418, 420, 422, 424, 426, 428)에는 도 2 및 도 3의 경우와 마찬가지로 에이전트 프로그램이 설치되며, 클라이언트의 전원이 켜지거나 에이전트 프로그램이 실행될 경우 클라이언트에 저장되어 있는 컨텐츠 정보를 연결 제어 서버(410)에 전송한다.The user programs 412, 414, 416, 418, 420, 422, 424, 426, 428 are installed with the agent program as in the case of FIGS. 2 and 3, and the client is powered on or the agent program is executed. The content information stored in the transmission is transmitted to the connection control server 410.

컨텐츠를 요청한 사용자 클라이언트는 연결 제어 서버(410)에서 제공하는 리스트 정보에 포함된 클라이언트 또는 컨텐츠 서버에 연결을 설정하며, 연결된 클라이언트 또는 컨텐츠 서버에 각각 서로 다른 서브 블록을 요청하여 스트리밍 데이터를 수신한다.The user client requesting the content establishes a connection to the client or the content server included in the list information provided by the connection control server 410, and receives streaming data by requesting different sub-blocks from the connected client or the content server.

도 2내지 도 4에서는 다중 경로를 통해 스트리밍 데이터를 수신할 수 있는 시스템에 대해 살펴보았으며, 도 2 내지 도 4의 시스템 이외에도 복수의 노드를 통해 데이터를 전송하는 시스템에는 본 발명에 따른 스트리밍 데이터 전송 및 다운로드 방법이 사용될 수 있다는 것은 당업자에게 있어 자명할 것이다.2 to 4 have been described with respect to a system capable of receiving streaming data through a multi-path, in addition to the system of Figures 2 to 4 in addition to the system for transmitting data through a plurality of nodes in the streaming data transmission according to the present invention And it will be apparent to those skilled in the art that a download method can be used.

도 6은 본 발명의 바람직한 일 실시예에 따른 스트리밍 데이터 다운로드 방법의 순서도이다.6 is a flowchart of a streaming data download method according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 우선 사용자 클라이언트는 연결 제어 서버로부터 노드 리스트 정보를 수신한다(S600). 도 2의 시스템의 경우 노드는 컨텐츠를 저장하고 있는 사용자 클라이언트이고, 도 3의 시스템의 경우 노드는 복수의 컨텐츠 서버이며, 도 4의 시스템의 경우 노드는 사용자 클라이언트일 수도 있고 컨텐츠 서버일 수도 있다.As shown in FIG. 6, the user client first receives node list information from the connection control server (S600). In the system of FIG. 2, a node is a user client that stores content. In the system of FIG. 3, a node is a plurality of content servers. In the system of FIG. 4, a node may be a user client or a content server.

노드 리스트 정보를 수신하면, 리스트에 존재하는 노드들의 일부 또는 전부와 연결을 설정한다(S602). 본 발명의 바람직한 실시예에 따르면, 클라이언트는 노드에 TCP 연결을 설정하며, 다른 연결 설정 방식이 사용될 수도 있을 것이다. 연결 설정에 실패할 경우, 연결에 실패한 노드 정보를 블랙 리스트 큐에 저장하도록 하며, 블랙 리스트 큐에 저장된 노드에 대해서는 이후 연결을 설정하지 않는다.Upon receiving the node list information, a connection is established with some or all of the nodes present in the list (S602). According to a preferred embodiment of the present invention, the client establishes a TCP connection to the node, and other connection establishment schemes may be used. If the connection setup fails, the node information that failed to connect is stored in the black list queue, and subsequent connections are not established for the nodes stored in the black list queue.

연결이 설정되면, 각 노드들과의 연결 상태를 판단하여 각 노드들로부터 수신할 서브 블록 번호를 결정한다(S604).When the connection is established, the connection status with each node is determined to determine a subblock number to be received from each node (S604).

본 발명의 일 실시예에 따르면, 각 노드들과의 라운드 트립(Round Trip) 시간 또는 각 노드에서의 수신 속도를 이용하여 노드들과의 연결 상태를 판단한다.According to an embodiment of the present invention, the connection state with the nodes is determined by using a round trip time with each node or a reception speed at each node.

본 발명의 다른 실시예에 따르면, 연결 제어 서버에서 노드들의 상태 정보를 제공할 수도 있다. 도 3과 같이 다중 서버를 이용한 스트리밍 데이터 전송 시스템의 경우, 연결 제어 서버는 각 서버의 상태 정보를 클라이언트에 제공한다.According to another embodiment of the present invention, the connection control server may provide status information of nodes. In the streaming data transmission system using multiple servers as shown in FIG. 3, the connection control server provides status information of each server to the client.

본 발명의 또 다른 실시예에 따르면, 접속 초기에는 상태 정보를 판단하지 않고 노드들로부터 수신할 서브 블록을 결정할 수 있다. 예를 들어, 세 개의 노드로부터 스트리밍 데이터를 수신하고 하나의 블록이 15개의 서브 블록으로 이루어질 경우, 각 노드에 5개의 서브블록을 요청하는 것이다.According to another embodiment of the present invention, in the initial stage of access, it is possible to determine a subblock to be received from nodes without determining state information. For example, if streaming data is received from three nodes and one block is composed of fifteen subblocks, five subblocks are requested to each node.

각 노드들로부터 수신할 서브 블록이 결정되면, 연결된 노드들에 해당 서브 블록의 전송을 요청한다(S606). 연결된 모든 노드들의 서브 블록을 요청할 수도 있으며, 연결된 노드들 중 일부에 서브 블록의 전송을 요청할 수도 있을 것이다.When the sub block to be received from each node is determined, request transmission of the corresponding sub block to the connected nodes (S606). A subblock of all connected nodes may be requested, and some of the connected nodes may be requested to transmit a subblock.

클라이언트는 요청한 서브 블록을 연결된 노드들로부터 수신한다(S608). 도 6에는 도시되어 있지 않으나, 클라이언트는 서브 블록의 수신 시 수신 오류가 있는지 여부를 판단한다. 본 발명의 일 실시예에 따르면, 서브 블록의 체크섬(Checksum) 값을 검사하여 수신 오류가 있는지 여부를 판단한다.The client receives the requested subblock from the connected nodes (S608). Although not shown in FIG. 6, the client determines whether there is a reception error when the subblock is received. According to an embodiment of the present invention, a checksum value of a subblock is checked to determine whether there is a reception error.

물론, 블록을 모두 수신한 후 블록의 체크섬 값을 이용하여 수신 오류를 체크할 수도 있을 것이다.Of course, after receiving all the blocks, the reception error may be checked using the checksum value of the block.

서브 블록의 수신 도중, 요청한 모든 서브 블록을 수신한 연결이 존재하는지 여부를 판단한다(S610).During the reception of the subblock, it is determined whether there is a connection that has received all the requested subblocks (S610).

모든 서브 블록을 수신한 연결이 존재할 경우, 클라이언트는 수신을 완료한 연결이 아이들(Idle) 상태가 되지 않도록 수신이 완료되지 않은 서브 블록을 해당 연결에 재분배하고, 재분배된 서브 블록을 수신한다. 서브 블록을 재분배하는 방법에 대해서는 별도의 도면을 통해 후에 상세히 설명하기로 한다.If there is a connection that has received all the sub-blocks, the client redistributes the unreceived sub-blocks to the corresponding connection so that the received connection does not become an idle state and receives the redistributed sub-blocks. A method of redistributing the sub-blocks will be described later in detail through separate drawings.

클라이언트는 블록에 포함되는 모든 서브 블록이 수신되는지 여부를 판단한다(S614).The client determines whether all subblocks included in the block are received (S614).

모든 서브 블록이 수신되면, 다음 블록의 서브 블록들을 다중 경로로부터 수신하기 위해 각 노드들로부터 수신할 다음 블록의 서브 블록 번호를 결정하는 과정이 반복된다(S604).When all the sub blocks are received, the process of determining the sub block number of the next block to be received from each node is repeated in order to receive the sub blocks of the next block from the multipath (S604).

모든 서브 블록이 수신되지 않을 경우, 모든 서브 블록이 수신될 때까지 단계 S610 내지 S614가 반복된다.If all sub blocks are not received, steps S610 to S614 are repeated until all sub blocks are received.

도 6을 참조해 설명한 바와 같이, 본 발명에 따르면, 다중 경로 중 어느 한 경로에서 수신이 완료될 경우, 각 노드에서 수신할 서브 블록을 재분배하여 수신하도록 함으로써 아이들(Idle) 커넥션이 발생하는 것을 방지하므로 데이터의 수신 효율을 높일 수 있다.As described with reference to FIG. 6, according to the present invention, when reception is completed in any one of the multiple paths, the idle connection is prevented from occurring by redistributing and receiving a subblock to be received by each node. Therefore, the reception efficiency of data can be improved.

도 6에서는 현재 스트리밍 데이터를 수신중인 노드들 사이에서 수신할 서브 블록을 재분배하는 경우에 대하여 도시하였으나, 연결 설정은 되어 있으나 서브 블록의 전송을 요청받지 않는 노드들의 상태를 모니터링하여, 데이터를 전송중인 노드와 데이터를 전송하지 않는 노드들 사이에서 서브 블록이 재분배될 수 있다는 것은 당업자에게 있어 자명할 것이다.Although FIG. 6 illustrates a case of redistributing a subblock to be received among nodes currently receiving streaming data, the connection is established but the status of nodes not receiving a request for transmission of the subblock is monitored to transmit data. It will be apparent to those skilled in the art that subblocks may be redistributed between nodes and nodes that do not transmit data.

또한, 도 6에는 도시되어 있지 않으나, 복수의 노드를 통해 스트리밍 데이터를 수신할 수 없을 경우, 단일 서버를 통해 일반적인 방식으로 스트리밍 데이터를 수신하도록 수신 모드를 전환하는 과정이 더 포함될 수도 있을 것이다.In addition, although not shown in FIG. 6, if the streaming data cannot be received through the plurality of nodes, a process of switching the reception mode to receive the streaming data in a general manner through a single server may be further included.

도 7은 본 발명의 바람직한 일 실시예에 따른 연결 제어 서버의 동작을 도시한 순서도이다.7 is a flowchart illustrating an operation of a connection control server according to an exemplary embodiment of the present invention.

도 7에 도시된 연결 제어 서버의 동작은 도 2와 같은 P2P망 또는 도 4와 같은 P2P와 다중 서버가 혼합된 망에서의 연결 제어 서버의 동작을 도시한 것이다.The operation of the connection control server shown in FIG. 7 illustrates the operation of the connection control server in a P2P network as shown in FIG. 2 or a network in which P2P and multiple servers as shown in FIG. 4 are mixed.

도 7에 도시된 바와 같이, 연결 제어 서버는 연결된 노드들로부터 노드에 저장된 컨텐츠 정보와 노드의 주소 정보를 수신한다(S700). 전술한 바와 같이, P2P 망의 각 사용자 클라이언트(노드)에는 수신 에이전트 프로그램이 설치되며, 수신 에이전트 프로그램은 사용자 클라이언트에 저장되어 있는 컨텐츠 정보 및 사용자 클라이언트의 주소 정보를 연결 제어 서버에 전송한다. 수신된 노드의 주소 및 노드에 저장된 컨텐츠 정보는 연결 제어 서버의 데이터베이스에 저장된다.As shown in FIG. 7, the connection control server receives content information stored in the node and address information of the node from the connected nodes (S700). As described above, a reception agent program is installed in each user client (node) of the P2P network, and the reception agent program transmits content information stored in the user client and address information of the user client to the connection control server. The address of the received node and the content information stored in the node are stored in the database of the connection control server.

연결 제어 서버는 연결된 노드들로부터 컨텐츠 요청 정보를 수신한다(S702). 컨텐츠 요청 정보를 수신한 연결 제어 서버는 상기 단계(S700)에서 수신하여 저장하고 있는 정보를 이용하여, 요청한 컨텐츠를 저장하고 있는 노드들을 조회한다(S704).The connection control server receives content request information from connected nodes (S702). After receiving the content request information, the connection control server uses the information received and stored in step S700 to inquire nodes storing the requested content (S704).

연결 제어 서버는 요청한 컨텐츠를 저장하고 있는 노드 리스트 정보를 컨텐츠를 요청한 클라이언트에 제공한다(S706).The connection control server provides node list information storing the requested content to the requesting client (S706).

도 7에는 도시되어 있지 않으나, 연결 제어 서버는 노드들로부터 상태 정보(예를 들어, PING 정보)를 수신할 수 있으며, 수신한 노드 상태 정보를 노드 리스트 정보와 함께 제공할 수도 있다.Although not shown in FIG. 7, the connection control server may receive state information (eg, PING information) from nodes, and provide the received node state information together with the node list information.

연결 제어 서버로부터 노드 상태 정보를 수신하면, 사용자 클라이언트는 수신된 상태 정보를 통해 연결을 설정할 노드를 선택하며, 연결 설정에 실패하거나 데이터 수신율이 좋지 않을 경우, 노드 상태 정보를 이용하여 새로 연결을 시도할 노드를 선택한다. 이러한 노드 상태 정보는 계속적으로 갱신될 수 있으며, 갱신된 정보는 데이터 전송을 요청하거나 데이터를 수신중인 사용자 클라이언트에 전송된다.When receiving node status information from the connection control server, the user client selects a node to establish a connection based on the received status information. If the connection setup fails or the data reception rate is poor, a new connection is attempted using the node status information. Select the node to do. This node state information can be updated continuously, and the updated information is sent to the user client requesting or receiving data transmission.

도 8은 본 발명의 다른 실시예에 따른 연결 제어 서버의 동작을 도시한 순서도이다.8 is a flowchart illustrating an operation of a connection control server according to another embodiment of the present invention.

도 8은 도 3과 같은 다중 서버를 이용한 스트리밍 데이터 전송 네트워크에서의 연결 제어 서버의 동작을 도시한 것이다.FIG. 8 illustrates an operation of a connection control server in a streaming data transmission network using multiple servers as shown in FIG. 3.

도 8에 도시된 바와 같이, 연결 제어 서버는 각 컨텐츠 서버로부터 상태 정보를 수신한다(S800). 본 발명의 바람직한 일 실시예에 따르면, 상태 정보는 대역폭 정보, CPU 사용율 정보, 메모리 사용율 정보, 접속자 수 정보 및 파일 I/O 정보로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합일 수 있다. 서버의 상태 정보로 상기한 정보 이외의 정보가 사용될 수도 있다는 것은 당업자에게 있어 자명할 것이다.As shown in FIG. 8, the connection control server receives state information from each content server (S800). According to a preferred embodiment of the present invention, the state information may be any one selected from the group consisting of bandwidth information, CPU utilization information, memory utilization information, accessor information and file I / O information, or a combination thereof. It will be apparent to those skilled in the art that other than the above information may be used as the status information of the server.

연결 제어 서버는 사용자 클라이언트로부터 컨텐츠 요청 정보를 수신한다(S802).The connection control server receives content request information from the user client (S802).

컨텐츠 요청 정보를 수신한 연결 제어 서버는 상기 단계(S800)에서 수신한 상태 정보를 참조하여 상태가 좋은 컨텐츠 서버들의 주소 정보(즉, 노드 리스트 정보) 및 서브 블록 분배 정보(각 컨텐츠 서버에서 어떠한 서브 블록을 수신할 것인가에 대한 정보)를 컨텐츠를 요청한 클라이언트에 제공한다(S804).After receiving the content request information, the connection control server refers to the state information received in the step S800, address information (ie, node list information) and sub-block distribution information (ie, any sub server of each content server) of good content servers. Information on whether to receive the block) is provided to the client that requested the content (S804).

도 8에서는 서브 블록 분배 정보를 연결 제어 서버가 사용자 클라이언트에 제공하는 경우를 도시하였으나, 사용자 클라이언트가 각 컨텐츠 서버와 연결 후에 연결 상태를 체크하여 수신할 서브 블록을 분배할 수도 있을 것이다.In FIG. 8, the connection control server provides the user client with sub block distribution information. However, the user client may distribute a sub block to be received by checking a connection state after connecting to each content server.

또한, 이와 다르게, 수신 초기에는 서브 블록 분배 정보를 연결 제어 서버에서 제공하나, 하나의 블록 수신이 완료된 후에는 사용자 클라이언트가 각 컨텐츠 서버와의 수신 속도를 알고 있으므로, 다음 블록을 수신할 때에는 사용자 클라이언트가 수신할 각 컨텐츠 서버로부터 수신할 서브 블록을 분배할 수도 있을 것이다.Alternatively, the sub-block distribution information is provided by the connection control server at the beginning of the reception, but after the reception of one block is completed, the user client knows the reception speed with each content server. May distribute sub-blocks to receive from each content server to receive.

도 9는 본 발명의 바람직한 일 실시예에 따른 사용자 클라이언트에 설치되는 에이전트 프로그램의 모듈 구성을 도시한 블록도이다.9 is a block diagram illustrating a module configuration of an agent program installed in a user client according to an exemplary embodiment of the present invention.

도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 수신 에이전트 프로그램은 에이전트 관리 모듈(900), 캐쉬 관리 모듈(902), 연결 제어 모듈(904), 노드 관리 모듈(906), 블록 관리 모듈(908) 및 서브 블록 관리 모듈(910)을 포함할 수 있다.As shown in Figure 9, the receiving agent program according to an embodiment of the present invention is the agent management module 900, cache management module 902, connection control module 904, node management module 906, block management Module 908 and sub-block management module 910.

도 9에서, 에이전트 관리 모듈(900)은 연결 제어 서버와의 통신을 담당하며, 사용자 클라이언트가 켜지거나 에이전트 프로그램이 실행될 경우, 사용자 클라이언트의 아이피 주소 및 포트 번호를 포함하는 사용자 클라이언트 정보와 사용자 클라이언트에 저장되어 있는 컨텐츠 정보를 연결 제어 서버에 제공하는 기능을 한다.In FIG. 9, the agent management module 900 is in charge of communication with the connection control server. When the user client is turned on or the agent program is executed, the agent management module 900 includes user client information including the IP address and port number of the user client and the user client. Provides the stored content information to the connection control server.

또한, 에이전트 관리 모듈(900)은 사용자가 컨텐츠 전송을 요청할 경우, 컨텐츠 요청 정보를 연결 제어 서버에 전송한다. 요청한 컨텐츠의 재생에 메타 정보가 필요할 경우, 요청한 컨텐츠에 대한 메타 정보를 컨텐츠를 재생할 플레이어에 제공하는 기능을 수행할 수도 있다.In addition, when the user requests content transmission, the agent management module 900 transmits content request information to the connection control server. If meta information is required to play the requested content, the meta information of the requested content may be provided to a player to play the content.

캐쉬 관리 모듈(902)은 노드들로부터 수신한 스트리밍 데이터를 관리하는 모듈이다. 캐쉬 관리 모듈(902)은 현재 남아있는 캐쉬의 용량, 저장되어 있는 컨텐츠의 정보를 저장하고 있으며, 사용자 클라이언트가 켜지거나 에이전트 프로그램이 실행되었을 때 상기 저장하고 있는 정보를 에이전트 관리 모듈(900)에 제공한다. 본 발명의 바람직한 실시예에 따르면, 캐쉬 관리 모듈은 수신된 스트리밍 데이터를 스크램블링된 상태로 저장한다.The cache management module 902 is a module for managing streaming data received from nodes. The cache management module 902 stores information on the amount of cache currently remaining and the contents of the cache, and provides the stored information to the agent management module 900 when the user client is turned on or the agent program is executed. do. According to a preferred embodiment of the present invention, the cache management module stores the received streaming data in a scrambled state.

연결 제어 모듈(904)은 연결 제어 서버로부터 수신하는 노드 리스트 정보를 이용하여 미리 설정된 수의 노드에 연결을 설정하는 기능을 한다. 연결 제어 모듈(904)은 각 노드들과의 연결 상태 정보를 판단하여 각 노드들로부터 수신할 서브 블록을 분배하며, 분배 결과에 따라 각 노드들에 서브 블록을 요청한다.The connection control module 904 functions to establish a connection to a predetermined number of nodes by using node list information received from the connection control server. The connection control module 904 determines the connection state information with each node, distributes a subblock to be received from each node, and requests the subblocks from each node according to the distribution result.

또한, 연결 제어 모듈(904)은 각 노드들과 설정된 연결들 수신 상태를 계속적으로 모니터링하고, 모니터링 결과에 따라 설정된 연결들 중 일부에서 수신할 서브 블록을 재분배하도록 한다.In addition, the connection control module 904 continuously monitors the reception states of the established connections with each node, and redistributes the sub-blocks to be received in some of the established connections according to the monitoring result.

본 발명의 바람직한 일 실시예에 따르면, 연결 제어 모듈(904)은 각 노드들과 설정된 연결들 중 수신을 완료한 연결이 존재하는지 여부를 모니터링하고, 수신이 완료된 연결이 존재할 경우 수신이 완료된 연결과 수신이 완료되지 않은 연결 중 일부에서 수신할 서브 블록을 재분배하여 아이들(Idle) 커넥션이 발생하지 않도록 한다.According to a preferred embodiment of the present invention, the connection control module 904 monitors whether there is a connection that has completed reception among the established connections with each node, and, if there is a connection that has completed reception, Redistribute the sub-blocks to be received on some of the connections that have not been received so that idle connections do not occur.

본 발명의 다른 실시예에 따르면, 각 연결들의 수신 상태 정보를 이용하여, 수신이 완료된 연결이 존재하지 않더라도 각 연결들의 수신 상태에 따라 미리 서브 블록을 재분배할 수도 있다.According to another embodiment of the present invention, the sub-block may be redistributed in advance according to the reception status of each connection even if the reception completion of the connection does not exist using the reception state information of each connection.

본 발명의 또 다른 실시예에 따르면, 연결 제어 모듈(904)은 연결이 설정된노드들 중 데이터를 전송하지 않는 노드의 상태 정보를 모니터링하고, 데이터를 전송하지 않는 노드의 일부와 데이터를 전송중인 노드의 일부에서 수신할 서브 블록을 재분배할 수도 있다.According to another embodiment of the present invention, the connection control module 904 monitors state information of a node that does not transmit data among the nodes for which a connection is established, and a portion of a node not transmitting data and a node transmitting data. It is also possible to redistribute the subblocks to be received in part of.

노드 관리 모듈(906)은 연결 제어 서버로부터 제공되는 노드 리스트 정보를 연결 제어 모듈(904)에 제공하는 기능을 한다. 전술한 바와 같이, 노드 리스트 정보에는 노드의 아이피(IP) 주소와 포트 번호가 포함될 수 있을 것이다. 사용자의 컨텐츠 요청 시 에이전트 관리 모듈(900)은 사용자가 요청한 컨텐츠를 저장하고 있는 노드 정보를 연결 제어 서버에 요청하며, 노드 리스트 정보를 수신하여 노드 관리 모듈(906)에 제공한다. 컨텐츠를 저장하고 있는 노드들의 전원이 꺼지거나 연결이 불안해질 수 있으므로, 노드 정보는 계속적으로 갱신된다.The node management module 906 functions to provide node connection information provided from the connection control server to the connection control module 904. As described above, the node list information may include an IP address and a port number of the node. When the user requests content, the agent management module 900 requests node information storing the content requested by the user to the connection control server, receives the node list information, and provides the node list module to the node management module 906. Node information is constantly updated because the nodes storing content may be powered off or unstable.

서브 블록 관리 모듈(910)은 노드들로부터 서브 블록을 수신하고, 특정 블록에 포함되는 모든 서브 블록이 수신되었는지를 판단한다. 모든 서브 블록이 수신되면, 서브 블록 관리 모듈(910)은 수신이 완료된 블록 데이터를 블록 관리 모듈(908)에 제공한다. 서브 블록 관리 모듈에서 하나의 블록에 포함되는 모두 서브 블록이 수신되었다고 판단할 경우, 연결 제어 모듈은 다음 블록의 서브 블록을 요청하여 수신하는 과정을 진행한다.The sub block management module 910 receives a sub block from nodes, and determines whether all sub blocks included in the specific block have been received. When all the sub blocks are received, the sub block management module 910 provides the block management module 908 in which reception has been completed. If the sub block management module determines that all sub blocks included in one block are received, the connection control module requests and receives the sub blocks of the next block.

블록 관리 모듈(908)은 수신이 완료된 블록 데이터를 스트리밍 데이터를 재생하는 플레이어 또는 캐쉬 관리 모듈에 제공하는 기능을 한다.The block management module 908 functions to provide block data, which has been received, to a player or cache management module that reproduces streaming data.

도 9에는 도시되어 있지 않으나, 예약 관리 모듈이 수신 에이전트 프로그램에 더 포함될 수 있다. 스트리밍 데이터가 고속으로 전송되는 경우, 사용자의 인터넷 접속 환경이 이러한 전송 속도를 따라올 수 없는 경우가 있다. 따라서, 이러한 경우에는 영화를 직접 재생시키기 전에 예약을 하여 영화 데이터를 미리 캐쉬에 저장시키도록 하며, 예약 관리 모듈은 이러한 예약을 위한 처리 과정을 수행한다.Although not shown in FIG. 9, the reservation management module may be further included in the receiving agent program. When streaming data is transmitted at high speed, the user's Internet connection environment may not be able to keep up with this transmission speed. Therefore, in this case, a reservation is made before the movie is played directly so that the movie data is stored in the cache in advance, and the reservation management module performs a process for such reservation.

예약 관리 모듈은 사용자가 예약을 요청한 스트리밍 데이터 및 요청한 데이터를 수신하였는지에 대한 정보를 관리하며, 요청한 데이터가 모두 수신될 때까지 연결 제어 모듈을 통해 필요한 데이터를 요청한다.The reservation management module manages the information on whether the user has received the streaming data requesting the reservation and the requested data, and requests necessary data through the connection control module until all the requested data is received.

도 10은 본 발명의 바람직한 일 실시예에 따른 연결 제어 모듈의 상세한 모듈 구성을 도시한 블록도이다.10 is a block diagram showing a detailed module configuration of a connection control module according to an embodiment of the present invention.

도 10에 도시된 바와 같이, 본 발명의 일 실시예에 따른 연결 제어 모듈은 연결 설정 모듈(1000), 연결 상태 판단 모듈(1002), 서브 블록 분배 모듈(1004) 및 수신상태 모니터링 모듈(1006)을 포함할 수 있다.As shown in FIG. 10, the connection control module according to an embodiment of the present invention includes a connection setting module 1000, a connection state determination module 1002, a sub block distribution module 1004, and a reception state monitoring module 1006. It may include.

연결 설정 모듈(1000)은 연결 제어 서버에서 제공하는 노드 리스트 정보를 이용하여 데이터를 수신할 노드들에 연결을 설정하는 기능을 한다. 연결 설정은 사용자 클라이언트에서 노드에 TCP 접속을 요청하고, 노드가 TCP 접속을 허락할 수 있는 상태인지를 판단하여 TCP 접속을 허락하는 과정으로 진행될 수 있을 것이다. 물론 TCP 접속 이외에 다른 연결 설정 방법이 사용될 수 있다는 것은 위에서 이미 설명하였다.The connection establishment module 1000 functions to establish a connection to nodes that will receive data by using node list information provided by the connection control server. The connection setup may be a process in which a user client requests a TCP connection to a node, determines whether the node can accept the TCP connection, and permits the TCP connection. Of course, it has already been described above that other connection establishment methods may be used in addition to the TCP connection.

연결 상태 판단 모듈(1002)은 연결이 설정된 각 노드들과의 연결 상태를 판단한다. 연결 상태 판단 모듈(1002)은 각 노드들과의 연결 상태 평가 지수를 계산하여 연결 상태를 판단한다.The connection state determination module 1002 determines a connection state with each node to which a connection is established. The connection state determination module 1002 calculates a connection state evaluation index with each node to determine the connection state.

본 발명의 일 실시예에 따르면, 연결 상태 평가 지수는 각 노드들과의 라운드 트립 시간을 이용하여 계산될 수 있을 것이다.According to an embodiment of the present invention, the connection state evaluation index may be calculated using the round trip time with each node.

본 발명의 다른 실시예에 따르면, 연결 상태 평가 지수는 각 노드들과의 수신 속도를 이용하여 계산될 수도 있으며, 상기 라운드 트립 시간 및 수신 속도를 함께 고려하여 계산될 수도 있을 것이다.According to another embodiment of the present invention, the connection state evaluation index may be calculated using the reception speed with each node, or may be calculated in consideration of the round trip time and the reception speed together.

초기의 데이터 수신 시에는 수신 속도를 알 수 없으므로, 라운드 트립 시간을 이용하여 연결 상태 평가 지수를 계산하며, 데이터 수신이 진행되어 수신 속도를 알 수 있으면, 수신 속도를 이용하여 연결 상태 평가 지수를 계산하는 것이 바람직하다. 수신 속도는 계속 변하므로, 연결 상태 평가 지수 역시 계속적으로 갱신된다.Since the reception speed is not known at the time of initial data reception, the connection status evaluation index is calculated using the round trip time, and if the data reception progresses and the reception speed is known, the connection status evaluation index is calculated using the reception speed. It is desirable to. Since the reception speed is constantly changing, the connection state evaluation index is also continuously updated.

본 발명의 다른 실시예에 따르면, 연결 상태 판단 모듈은 연결 제어 서버로부터 노드들의 상태 정보를 수신하고, 수신한 상태 정보를 이용하여 연결 상태를 판단할 수도 있다.According to another embodiment of the present invention, the connection state determination module may receive state information of nodes from a connection control server, and determine the connection state using the received state information.

서브 블록 분배 모듈(1004)은 연결 상태 판단 모듈(1002)에서 계산한 연결 상태 평가 지수를 이용하여 연결이 설정된 노드들로부터 수신할 서브 블록을 분배한다. 연결 상태 평가 지수의 비에 따라 각 노드들로부터 수신할 서브 블록의 수를 결정하는 것이 바람직할 것이다.The sub block distribution module 1004 distributes a sub block to be received from nodes to which a connection is established using the connection state evaluation index calculated by the connection state determination module 1002. It would be desirable to determine the number of subblocks to receive from each node according to the ratio of the connection state evaluation index.

수신 상태 모니터링 모듈(1006)은 각 노드들과 설정된 연결들 중 서브 블록의 수신이 완료되는 연결이 있는지 여부를 판단하고, 수신이 완료된 연결이 존재할 경우, 서브 블록 분배 모듈(1004)에 수신할 서브 블록의 재분배를 요청한다.The reception state monitoring module 1006 determines whether there is a connection in which reception of a sub block is completed among the connections established with each node, and if there is a connection in which reception is completed, the sub block to be received by the sub block distribution module 1004. Request redistribution of blocks.

연결이 설정된 모든 노드에 대해 서브 블록을 재분배하게 되면, 모든 노드에 제어 신호를 다시 송신하여야 하므로 효율이 떨어질 수 있다. 따라서, 본 발명의 바람직한 실시예에 따르면, 수신이 완료된 연결과 수신율이 가장 낮은 연결에 대해서만 서브 블록을 재분배하는 것이 바람직하다. 이 경우, 수신이 완료된 연결과 수신율이 가장 낮은 경로에만 서브 블록 재분배에 대한 제어 신호를 송신하면 된다.If the subblocks are redistributed to all nodes that are connected, efficiency may be reduced since control signals must be transmitted to all nodes again. Therefore, according to a preferred embodiment of the present invention, it is preferable to redistribute the sub-blocks only for the connection where the reception is completed and the connection with the lowest reception rate. In this case, the control signal for sub-block redistribution may be transmitted only on the connection where the reception is completed and the path with the lowest reception rate.

도 11은 본 발명의 바람직한 일 실시예에 따른 연결 상태를 판단하여 서브 블록을 분배하는 과정을 도시한 순서도이다.11 is a flowchart illustrating a process of distributing sub blocks by determining a connection state according to an exemplary embodiment of the present invention.

도 11에 도시된 바와 같이, 수신 초기에는 연결이 설정된 각 노드들과의 라운드 트립 시간을 측정한다(S1100). 라운드 트립 시간은 연결된 노드에 체크 신호를 전송하고 이에 대한 응답 신호가 수신되는데 걸리는 시간을 의미한다.As shown in FIG. 11, at the initial reception, a round trip time with each node to which a connection is established is measured (S1100). The round trip time refers to the time taken to transmit a check signal to a connected node and receive a response signal.

라운드 트립 시간의 측정 후, 연결이 설정된 모든 연결에서의 평균 수신 속도 정보를 알고 있는지 여부를 판단한다(S1102). 이미 여러 개의 블록을 수신한 상태라면 모든 경로에서의 평균 수신 속도 정보를 알 수 있을 것이다.After the measurement of the round trip time, it is determined whether the connection knows the average reception speed information of all the established connections (S1102). If several blocks are already received, the average reception speed information on all paths will be known.

모든 연결에서의 평균 수신 속도를 알고 있을 경우, 평균 수신 속도 정보를 이용해 연결 상태 평가 지수를 계산한다(S1104). 예를 들어, 세 개의 노드를 통해 스트리밍 데이터를 수신하고, 각 연결의 평균 수신 속도가 500,000bps, 100,000bps 및 64,000bps인 경우, 각 연결의 연결 상태 평가 지수는 500,000, 100,000, 64,000으로 설정한다. 물론 평균 수신 속도를 정규화한 값을 연결 상태 평가 지수로 사용할 수도 있을 것이다.If the average reception speed of all connections is known, the connection state evaluation index is calculated using the average reception speed information (S1104). For example, if streaming data is received through three nodes, and the average reception speed of each connection is 500,000bps, 100,000bps, and 64,000bps, the connection state evaluation indexes of each connection are set to 500,000, 100,000, and 64,000. Of course, the normalized average reception speed may be used as the connection state evaluation index.

모든 연결에서의 평균 수신 속도를 알고있지 않을 경우, 일부 연결에서의 평균 수신 속도 정보를 알고 있는지 여부를 판단한다(S1106). 이러한 경우는 스트리밍 데이터의 수신 중 새로운 노드를 통해 스트리밍 데이터를 수신할 경우에 발생할 수 있을 것이다.If the average reception speed of all the connections is not known, it is determined whether the average reception speed information of some of the connections is known (S1106). This case may occur when streaming data is received through a new node while receiving streaming data.

일부 연결의 평균 수신 속도 정보를 알고 있을 경우, 라운드 트립 시간 및 평균 수신 속도를 이용하여 연결 상태 평가 지수를 계산한다(S1108).If the average reception speed information of some connections is known, the connection state evaluation index is calculated using the round trip time and the average reception speed (S1108).

예를 들어, 3개의 노드를 통해 스트리밍 데이터를 수신하고, 세 개의 노드 중 제1 노드의 평균 수신 속도는 200,000bps이고, 제2 노드의 평균 수신 속도는 100,000bps이며, 제3 노드의 평균 수신 속도 정보는 알 수 없는 경우를 가정하자. 또한, 제1 노드의 라운드 트립 시간은 23ms, 제2 노드의 라운트 트립 시간은 32ms 제3 노드의 라운드 트립 시간은 20ms라고 가정하자.For example, streaming data is received through three nodes, an average reception speed of the first node of the three nodes is 200,000bps, an average reception speed of the second node is 100,000bps, and an average reception speed of the third node. Assume that the information is unknown. In addition, it is assumed that the round trip time of the first node is 23ms, the round trip time of the second node is 32ms, and the round trip time of the third node is 20ms.

이때, 연결 상태 평가 지수는 (수신 속도)/(라운드 트립 시간)에 의해 계산한다. 이 경우, 제3 노드의 평균 수신 속도는 (수신 속도)/(라운드 트립 시간)을 계산한 연결의 값이 가장 작은 연결의 값을 이용하여 예측한다. 제2 노드의 (수신속도)/(라운드 트립 시간)을 계산한 값이 가장 작으므로, 제3 노드의 평균 수신 속도는 다음의 수학식 1과 같이 계산될 수 있을 것이다.At this time, the connection state evaluation index is calculated by (reception speed) / (round trip time). In this case, the average reception speed of the third node is predicted using the value of the connection having the smallest value of the connection that calculates the (reception speed) / (round trip time). Since the value of calculating (reception speed) / (round trip time) of the second node is the smallest, the average reception speed of the third node may be calculated as in Equation 1 below.

모든 노드의 평균 수신 속도 정보를 알고 있지 않은 경우, 라운드 트립 시간을 이용해 성능 평가 지수를 계산한다. 본 발명의 일 실시예에 따르면, 라운드 트립 시간의 역수를 성능 평가 지수로 사용할 수 있다.If you do not know the average reception speed information of all nodes, the round trip time is used to calculate the performance index. According to an embodiment of the present invention, the inverse of the round trip time may be used as a performance index.

예를 들어, 세 개의 노드를 통해 스트리밍 데이터를 수신하고, 각 노드의 라운드 트립 시간이 23ms, 41ms 및 32ms라고 가정하자. 이 경우, 각 연결의 성능 평가 지수는이 될 수 있을 것이다.For example, suppose that you receive streaming data over three nodes, and the round trip times for each node are 23ms, 41ms, and 32ms. In this case, the performance index for each connection is This could be

각 연결에 대한 성능 평가 지수를 계산하면, 각 노드들로부터 블록에 포함되는 총 서브 블록 중 몇 개의 서브 블록을 수신할지 여부를 결정한다.Computing the performance index for each connection, it is determined whether to receive a number of sub-blocks of the total sub-blocks included in the block from each node.

각 노드들로부터 수신할 서브 블록의 수는 연결 상태 평가 지수의 비에 의해 결정될 것이다. 구체적으로 각 노드로부터 수신할 서브 블록의 수는 다음의 수학식 2와 같이 계산될 수 있을 것이다.The number of subblocks to receive from each node will be determined by the ratio of the connection state evaluation index. In more detail, the number of subblocks to be received from each node may be calculated as in Equation 2 below.

, where i= 1 ~ n-1 , where i = 1 to n-1

, where i=n , where i = n

여기서 P_i는 각 연결에 요청할 서브 블록의 수이고, alpha_i는 각 연결의 성능 평가 지수이다. 즉, 서브 블록을 요청하는 사용자 클라이언트는 계산된 P_i만큼 각 노드에 서브 블록을 요청한다.Where P_i is the number of subblocks to request for each connection, and alpha_i is the performance index of each connection. That is, the user client requesting the sub block requests the sub block from each node by the calculated P_i.

도 12는 본 발명의 바람직한 일 실시예에 따른 서브 블록 수신이 완료된 노드가 존재할 경우의 처리 과정을 도시한 순서도이다.12 is a flowchart illustrating a process in the case where there is a node that has completed subblock reception according to an embodiment of the present invention.

도 12에 도시된 바와 같이, 연결 제어 모듈의 수신 상태 모니터링 모듈은 수신이 완료된 연결이 존재하는지 여부를 모니터링한다(S1200).As shown in FIG. 12, the reception state monitoring module of the connection control module monitors whether there is a connection in which reception is completed (S1200).

수신이 완료된 연결이 존재할 경우, 수신이 아직 완료되지 않은 연결들 중 수신율이 가장 낮은 연결을 탐색한다(S1202). 여기서 수신율은 (수신한 서브 블록 수)/(요청한 서브 블록 수)에 의해 계산될 수 있을 것이다.If there is a connection for which reception has been completed, a connection having the lowest reception rate among the connections for which reception has not yet been completed is searched for (S1202). Here, the reception rate may be calculated by (number of subblocks received) / (number of subblocks requested).

수신율이 가장 낮은 연결을 찾은 후, 수신율이 가장 낮은 연결에서 수신하여야 할 서브 블록의 수를 계산한다(S1204).After finding the connection with the lowest reception rate, the number of subblocks to be received in the connection with the lowest reception rate is calculated (S1204).

남은 서브 블록의 수를 계산한 후에는 수신율이 낮은 연결과 수신이 완료된 연결이 서브 블록을 재분배하여 수신할 필요가 있는지 여부를 판단한다(S1206). 예를 들어, 서브 블록 재분배를 위해 제어 신호를 보내는 시간 동안 남은 서브 블록이 모두 수신될 수 있다면 서브 블록 재분배를 할 필요가 없을 것이다.After calculating the number of remaining subblocks, it is determined whether a connection with a low reception rate and a connection where reception is completed need to be redistributed and received (S1206). For example, it may not be necessary to redistribute the sub-blocks if all remaining sub-blocks can be received during the time for sending the control signal for sub-block redistribution.

서브 블록 재분배가 필요하다고 판단되는 경우, 연결 상태 평가 지수에 따라 수신이 완료된 연결과 수신율이 가장 낮은 연결이 수신하여야할 서브 블록의 수를 재분배한다(S1208).If it is determined that subblock redistribution is necessary, the number of subblocks to be received by the connection with the lowest reception rate and the connection with the lowest reception rate is redistributed according to the connection state evaluation index (S1208).

서브 블록의 재분배는 다음의 수학식 3과 같이 이루어질 수 있다.Redistribution of the sub blocks may be performed as in Equation 3 below.

P_2 = (남은 서브 블록 수)- P_1P_2 = (number of remaining subblocks)-P_1

여기서 P_1은 수신율이 낮은 연결에 새로 배분된 서브 블록의 수이고 alpha_1은 수신율이 낮은 연결의 성능 평가 지수이며, P_2는 수신이 완료된 연결에새로 배분된 서브 블록의 수이고, alpha_2는 수신이 완료된 연결의 연결 상태 판단 지수이다.Where P_1 is the number of newly allocated subblocks for low-receive connections, alpha_1 is the performance index for low-received connections, P_2 is the number of newly allocated subblocks for complete connections, and alpha_2 is the complete connection. The connection state judgment index of.

서브 블록이 재분배되면, 분배 기준에 따라 각 연결에 해당하는 노드에 서브 블록을 재요청한다(S1210). 계산 결과 수신율이 낮은 연결에서 더 이상 서브 블록을 수신할 필요가 없는 경우, 해당 노드에 서브 블록 전송 중지를 요청한다.When the sub block is redistributed, the sub block is re-requested to the node corresponding to each connection according to the distribution criteria (S1210). When the calculation result indicates that the sub block no longer needs to be received in the connection with a low reception rate, the node is requested to stop transmitting the sub block.

도 13은 본 발명의 바람직한 일 실시예에 따른 연결 제어 서버의 모듈 구성을 도시한 도면이다.13 is a diagram illustrating a module configuration of a connection control server according to an exemplary embodiment of the present invention.

도 13은 도 2와 같은 P2P 망 또는 도 4와 같은 다중 서버와 P2P가 혼재된 망에서의 연결제어 서버의 모듈 구성을 도시한 것이다.FIG. 13 illustrates a module configuration of a connection control server in a P2P network as shown in FIG. 2 or a network in which multiple servers and P2P as shown in FIG. 4 are mixed.

도 13에 도시된 바와 같이, 본 발명의 일 실시예에 따른 연결 제어 서버는 메쉬 관리 모듈(1300), 노드 정보 제공 모듈(1302) 및 인증 모듈(1304)을 포함할 수 있으며, 연결 제어 서버에는 사용자 데이터베이스(1306), 메타 정보 데이터베이스(1308) 및 메쉬 정보 데이터 베이스(1310)가 결합될 수 있다.As shown in FIG. 13, the connection control server according to an embodiment of the present invention may include a mesh management module 1300, a node information providing module 1302, and an authentication module 1304. User database 1306, meta information database 1308, and mesh information database 1310 may be combined.

도 13에서, 메쉬 관리 모듈(1300)은 접속되어 있는 사용자 클라이언트들의 정보를 관리하는 기능을 한다. 전술한 바와 같이, 클라이언트의 전원이 켜지거나 수신 에이전트 프로그램이 실행될 경우, 클라이언트의 주소 정보 및 저장된 컨텐츠 정보가 연결 제어 서버로 전송되며, 메쉬 관리 모듈(1300)은 상기 정보를 수신하고 이를 메쉬 정보 데이터베이스(1310)에 저장한다.In FIG. 13, the mesh management module 1300 manages information of connected user clients. As described above, when the client is powered on or the receiving agent program is executed, the client's address information and stored content information are transmitted to the connection control server, and the mesh management module 1300 receives the information and transmits the mesh information database. (1310).

노드 정보 제공 모듈(1302)은 사용자가 특정 컨텐츠의 전송을 요청할 경우, 해당 컨텐츠를 저장하고 있는 노드에 대한 정보를 메쉬 정보 데이터베이스(1310)를조회하여 추출하고 이를 컨텐츠 전송을 요청한 사용자 클라이언트에 제공한다.When the user requests the transmission of specific content, the node information providing module 1302 queries the mesh information database 1310 to extract information about the node that stores the content, and provides the extracted information to the user client who requested the content transmission. .

인증 모듈(1304)은 컨텐츠를 요청하는 사용자를 인증하고 과금 정보를 처리하는 기능을 한다. 사용자가 컨텐츠를 요청할 경우, 사용자 아이디 및 비밀 번호를 포함하는 인증키 정보가 연결 제어 서버로 전송되며, 인증 모듈(1304)은 등록된 사용자인지 여부를 판단한다. 또한 인증 모듈(1304)은 외부 과금 서버(미도시)와 연계되어 컨텐츠를 요청한 사용자가 컨텐츠 요청에 따른 금액을 지불하였는지 여부를 판단한다.The authentication module 1304 functions to authenticate the user requesting the content and to process the charging information. When a user requests content, authentication key information including a user ID and a password is transmitted to the connection control server, and the authentication module 1304 determines whether the user is a registered user. In addition, the authentication module 1304 is connected with an external billing server (not shown) to determine whether the user who requested the content pays the amount according to the content request.

사용자 데이터베이스(1306)에는 등록된 사용자들의 아이디, 비밀번호, 신상 정보 등이 저장되며, 메타 정보 데이터베이스(1308)에는 컨텐츠의 코딩 방식, 저작자 등에 대한 정보가 저장된다. 컨텐츠를 요청한 사용자가 인증되면, 메쉬 관리 모듈(1300)은 컨텐츠를 요청한 사용자에게 요청한 컨텐츠의 메타 정보를 제공한다. 일반적으로 메타 정보는 스트리밍 데이터의 재생을 위해 필요한 정보이나, 만약 메타 정보 없이 데이터 재생이 가능한 경우에는 메타 정보 데이터베이스(1308)는 구비되지 않아도 무방하다.The user database 1306 stores IDs, passwords, personal information, and the like of registered users, and the meta information database 1308 stores information about a coding method, an author, and the like of the content. When the user who requested the content is authenticated, the mesh management module 1300 provides meta information of the requested content to the user who requested the content. In general, meta information is information necessary for reproducing streaming data. However, if data can be reproduced without meta information, the meta information database 1308 may not be provided.

메쉬 정보 데이터베이스(1310)에는 연결 제어 서버(1310)에 접속되어 있는 사용자 클라이언트 및 사용자 클라이언트에 저장되어 있는 컨텐츠 정보가 저장된다.The mesh information database 1310 stores a user client connected to the connection control server 1310 and content information stored in the user client.

도 14는 본 발명의 다른 실시예에 따른 연결 제어 서버의 모듈 구성을 도시한 도면이다.14 is a diagram illustrating a module configuration of a connection control server according to another embodiment of the present invention.

도 14에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 연결 제어 서버는서버 상태 판단 모듈(1400), 서브 블록 분배 모듈(1402), 서버 리스트 제공 모듈(1404) 및 인증 모듈(1406)을 포함할 수 있으며, 사용자 데이터베이스(1408), 컨텐츠 서버 데이터베이스(1410) 및 메타 정보 데이터베이스(1412)가 결합될 수 있다.As shown in FIG. 14, the connection control server according to another embodiment of the present invention may include a server state determination module 1400, a sub block distribution module 1402, a server list providing module 1404, and an authentication module 1406. User database 1408, content server database 1410, and meta information database 1412 may be combined.

서버 상태 판단 모듈(1400)은 연결 제어 서버가 관리하는 컨텐츠 서버들의 상태 정보를 판단하는 모듈이다. 전술한 바와 같이, 서버 상태 판단 모듈(1400)은 대역폭 정보, CPU 사용율 정보, 메모리 사용율 정보, 접속자 수 정보 및 파일 I/O 정보 등을 이용하여 각 컨텐츠 서버의 상태를 판단한다.The server state determination module 1400 is a module that determines state information of content servers managed by the connection control server. As described above, the server state determination module 1400 determines the state of each content server using bandwidth information, CPU utilization information, memory utilization information, accessor information, file I / O information, and the like.

서버 리스트 제공 모듈(1404)은 컨텐츠를 요청하는 사용자 클라이언트에 사용자 클라이언트가 접속할 컨텐츠 서버의 리스트 정보를 제공하는 기능을 한다. 서버 리스트 제공 모듈은 상기 서버 상태 판단 모듈의 판단 결과를 이용하여 상태가 좋은 서버들의 리스트를 사용자 클라이언트에 제공한다.The server list providing module 1404 provides a list information of a content server to which a user client connects to a user client requesting content. The server list providing module provides a list of servers having good status to the user client by using the determination result of the server state determining module.

서브 블록 분배 모듈(1402)은 각 컨텐츠 서버의 상태 판단 결과를 이용하여 사용자 클라이언트가 각 컨텐츠 서버로부터 수신하여야할 서브 블록 수에 대한 정보를 컨텐츠를 요청한 사용자 클라이언트에 제공하는 기능을 한다. 물론 서브 블록의 분배가 사용자 클라이언트에서 이루어질 수도 있다는 것은 위에서 이미 설명한 바 있다.The sub-block distribution module 1402 functions to provide the user client with information about the number of sub-blocks that the user client should receive from each content server by using the state determination result of each content server. Of course, it has already been described above that the distribution of sub-blocks may be made in the user client.

컨텐츠 서버 데이터베이스(1410)에는 연결 제어 서버가 관리하는 컨텐츠 서버의 대한 정보가 저장된다.The content server database 1410 stores information about a content server managed by the connection control server.

인증 모듈(1406)의 기능 및 사용자 데이터베이스(1408) 및 메타 정보 데이터베이스(1412)에 저장되는 정보는 도 13의 경우와 동일하므로 이에 대한 설명은 생략한다.Since the functions of the authentication module 1406 and the information stored in the user database 1408 and the meta information database 1412 are the same as those of FIG. 13, description thereof will be omitted.

상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.Preferred embodiments of the present invention described above are disclosed for purposes of illustration, and those skilled in the art will be able to make various modifications, changes, and additions within the spirit and scope of the present invention. Additions should be considered to be within the scope of the following claims.

이상에서 설명한 바와 같이, 본 발명에 따른 스트리밍 데이터 전송 및 다운로드 방법에 의하면, 다중 경로를 통해 스트리밍 데이터를 전송하므로 어느 한 노드에서의 연결에 이상이 발생하더라도 안정적인 스트리밍 서비스를 제공할 수 있는 장점이 있다.As described above, according to the streaming data transmission and download method according to the present invention, since streaming data is transmitted through multiple paths, there is an advantage in that a stable streaming service can be provided even when an error occurs in any one node. .

또한, 본 발명에 따르면, 어느 한 연결에서의 수신이 완료될 경우 수신할 서브 블록을 재분배하여 요청하므로, 아이들 커넥션의 발생을 방지하여 스트리밍 데이터의 수신 효율을 높일 수 있는 장점이 있다.In addition, according to the present invention, when the reception is completed on any one connection, the sub-blocks to be received are redistributed and requested, thereby preventing generation of idle connections, thereby improving reception efficiency of streaming data.

특히, 본 발명은 P2P망에서 다수의 노드를 통해 스트리밍 데이터를 수신할 경우에 유용하게 활용될 수 있을 것이다.In particular, the present invention may be usefully used when receiving streaming data through a plurality of nodes in a P2P network.

Claims (38)

복수의 노드에 연결을 설정하는 단계(a);Establishing a connection to the plurality of nodes (a); 상기 연결을 설정한 각 노드들에 스트리밍 데이터의 서브 블록을 요청하여 수신하는 단계(b);(B) requesting and receiving a subblock of streaming data from each node that has established the connection; 상기 설정된 연결들의 수신 상태를 모니터링하는 단계(c); 및(C) monitoring the reception status of the established connections; And 상기 모니터링 결과에 상응하여 연결을 설정한 노드들 중 일부 노드에서 수신할 서브 블록을 재분배하는 단계(d)를 포함하며,(D) redistributing a subblock to be received by some of the nodes which have established a connection according to the monitoring result, 스트리밍 데이터의 블록에 포함되는 서브 블록을 모두 수신할 경우, 다음 블록의 서브 블록에 대해 상기 (b) 내지 (d) 단계를 반복하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.When receiving all of the sub-blocks included in the block of streaming data, repeating the steps (b) to (d) for the sub block of the next block, characterized in that for downloading the streaming data. 제1항에 있어서,The method of claim 1, 연결을 설정한 각 노드로부터 수신할 스트리밍 데이터의 서브 블록을 결정하는 단계를 더 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.And determining a sub-block of streaming data to be received from each node which has established a connection. 제 1항에 있어서,The method of claim 1, 상기 단계(c)는 수신을 완료한 연결이 존재하는지 여부를 모니터링하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.The step (c) is a method for downloading streaming data, characterized in that for monitoring whether there is a connection that has completed reception. 제2항에 있어서,The method of claim 2, 상기 각 노드들로부터 수신할 서브 블록은 각 연결의 연결 상태 평가 지수를 계산하여 결정되는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.The sub-block to be received from each node is determined by calculating the connection state evaluation index of each connection. 제4항에 있어서,The method of claim 4, wherein 상기 연결 상태 평가 지수는 각 노드와의 라운드 트립 시간 및 각 노드와의 평균 수신속도로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합을 이용하여 계산하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.The connection state evaluation index is calculated using any one or a combination thereof selected from the group consisting of a round trip time with each node and an average reception speed with each node. 제3항에 있어서,The method of claim 3, 상기 단계(d)는 모니터링 결과 요청한 모든 서브 블록을 수신한 연결이 존재할 경우, 수신이 진행중인 연결들의 일부와 수신이 완료된 연결에서 수신할 서브 블록을 재분배하는 단계를 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.Wherein step (d), if there is a connection that has received all the sub-blocks requested as a result of the monitoring, redistributing a part of the connection in progress and the sub-blocks to be received in the connection is received; How to download. 제6항에 있어서,The method of claim 6, 상기 단계(d)는 상기 수신이 완료된 연결과 상기 수신이 진행중인 연결 중 수신율이 가장 낮은 연결에서 수신할 서브 블록을 재분배하는 단계를 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.The step (d) includes redistributing the sub-blocks to be received in the connection with the lowest reception rate among the connection where the reception is completed and the connection in which the reception is in progress. 제7항에 있어서,The method of claim 7, wherein 상기 요청한 서브 블록의 수신이 완료된 연결과 수신율이 가장 낮은 연결에서 수신할 서브 블록을 재분배하는 단계는,Redistributing a subblock to be received in the connection where the reception of the requested subblock is completed and the connection with the lowest reception rate, 상기 수신이 완료된 연결과 상기 수신율이 가장 낮은 연결의 수신 속도를 판단하는 단계;Determining a reception speed of the connection where the reception is completed and the connection with the lowest reception rate; 상기 수신율이 가장 낮은 연결에서 수신할 남은 서브 블록 수를 판단하는 단계;Determining the remaining number of subblocks to be received in the connection with the lowest reception rate; 상기 남은 서브 블록 수의 판단 결과, 서브 블록을 재분배할 필요가 있는지 여부를 판단하는 단계; 및Determining whether the subblocks need to be redistributed as a result of the determination of the remaining number of subblocks; And 서브 블록을 재분배할 필요가 있는 경우, 상기 남은 서브 블록을 상기 판단한 수신 속도의 비에 따라 상기 수신이 완료된 연결 및 상기 수신율이 가장 낮은 연결에 분배하는 단계를 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.If it is necessary to redistribute the sub-blocks, distributing the remaining sub-blocks to the connection where the reception is completed and the connection with the lowest reception rate according to the ratio of the determined reception speed. Way. 제1항에 있어서,The method of claim 1, 연결 설정에 실패할 경우, 연결 설정에 실패한 노드 정보를 블랙 리스트 큐에 저장하는 단계를 더 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.If the connection setup fails, storing the node information that failed to establish the connection to the black list queue further comprises the step of downloading the streaming data. 제2항에 있어서,The method of claim 2, 노드의 상태 정보를 수신하는 단계를 더 포함하며, 상기 연결을 설정한 각 노드로부터 수신할 서브 블록은 상기 수신한 노드의 상태 정보를 이용하여 결정되는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.And receiving state information of a node, wherein a sub block to be received from each node that has established a connection is determined using state information of the received node. 제2항에 있어서,The method of claim 2, 수신 초기에는 수신된 노드의 상태 정보를 이용하여 각 노드에서 수신할 서브 블록을 결정하며, 각 노드의 수신속도가 판단된 후에는 각 노드와의 라운드 트립 시간 및 각 노드와의 평균 수신속도로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합을 이용하여 계산되는 연결 상태 평가 지수를 이용하여 수신할 서브 블록을 결정하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.In the initial stage of reception, the sub-blocks to be received by each node are determined by using the status information of the received nodes.After the reception speed of each node is determined, it consists of a round trip time with each node and an average reception speed with each node. And determining a sub block to be received using a connection state evaluation index calculated using any one selected from the group or a combination thereof. 제10항에 있어서,The method of claim 10, 상기 단계(a)는 수신하는 노드의 상태 정보를 이용하여 복수의 노드에 연결을 설정하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.The step (a) is to download the streaming data, characterized in that to establish a connection to a plurality of nodes using the state information of the receiving node. 제1항에 있어서,The method of claim 1, 수신한 서브 블록의 체크섬 값을 이용하여 수신 오류를 판단하는 단계를 더 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.And determining a reception error by using the checksum value of the received subblock. 제1항에 있어서,The method of claim 1, 서브 블록이 분배된 후, 분배 기준에 따라 해당 노드들에 서브 블록을 재요청하여 수신하는 단계를 더 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.And after the sub-blocks have been distributed, re-requesting and receiving the sub-blocks from the corresponding nodes according to the distribution criteria. 제1항에 있어서,The method of claim 1, 복수의 노드로부터 서브 블록을 수신하는데 실패할 경우, 단일 서버에 접속하여 스트리밍 데이터를 수신하는 단계를 더 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.The method of downloading streaming data further comprising the step of receiving streaming data by connecting to a single server when it fails to receive sub-blocks from a plurality of nodes. 제1항에 있어서,The method of claim 1, 연결이 설정된 노드들 중 데이터를 전송하지 않는 노드들의 상태 정보를 모니터링 하는 단계; 및Monitoring status information of nodes which do not transmit data among the connected nodes; And 상기 모니터링 결과에 따라 수신이 진행중인 연결의 노드들의 일부와 상기 데이터를 전송하지 않는 노드들 중 일부에서 수신할 서브 블록을 재분배하는 단계를 더 포함하는 것을 특징으로 하는 스트리밍 데이터의 다운로드 방법.Redistributing sub-blocks to be received by some of the nodes of the connection in which reception is in progress and some of the nodes not transmitting the data according to the monitoring result. 연결 제어 서버와 복수의 사용자 클라이언트가 네트워크를 통해 결합되어 있는 시스템에서 상기 복수의 사용자 클라이언트에 설치되어 스트리밍 데이터의 수신을 제어하는 수신 에이전트 프로그램으로서,A receiving agent program installed in the plurality of user clients in a system in which a connection control server and a plurality of user clients are coupled through a network, for controlling reception of streaming data, 상기 연결 제어 서버로 사용자 클라이언트에 저장되어 있는 컨텐츠 정보 및사용자 클라이언트 식별 정보를 제공하고, 사용자가 컨텐츠를 요청할 경우 컨텐츠 요청 정보를 상기 연결 제어 서버에 전송하는 에이전트 관리 모듈;An agent management module providing content information and user client identification information stored in a user client to the connection control server, and transmitting content request information to the connection control server when a user requests content; 상기 연결 제어 서버로부터 사용자가 요청한 컨텐츠를 저장하고 있는 노드 리스트 정보를 수신하여 저장하는 노드 정보 관리 모듈;A node information management module configured to receive and store node list information storing content requested by a user from the connection control server; 상기 노드 리스트 정보를 이용하여 복수의 노드에 연결을 설정하고, 연결된 노드들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 노드들로부터 서브 블록의 수신 중 서브 블록의 수신상태를 모니터링하여 연결을 설정한 일부 노드에서 수신할 서브 블록을 재분배하는 연결 제어 모듈;By using the node list information to establish a connection to a plurality of nodes, determine and request the sub-blocks of streaming data to be received from the connected nodes, by monitoring the reception status of the sub-blocks during the reception of the sub-blocks from the connected nodes A connection control module for redistributing sub-blocks to be received by some nodes which have established a connection; 상기 연결 제어 모듈에서 블록에 포함되는 모든 서브 블록이 수신되는지 판단하며, 모든 서브 블록이 수신될 경우 다음 블록의 서브 블록을 수신하도록 상기 연결 제어 모듈에 요청하는 서브 블록 관리 모듈을 포함하는 것을 특징으로 하는 수신 에이전트 프로그램.And a sub-block management module for determining whether all sub-blocks included in the block are received by the connection control module and requesting the connection control module to receive a sub-block of a next block when all sub-blocks are received. Receiving agent program. 제17항에 있어서,The method of claim 17, 상기 연결 제어 모듈은 요청한 서브 블록의 수신이 완료된 연결과 수신이 진행중인 연결의 일부에서 수신할 서브 블록을 재분배하는 것임을 특징으로 하는 수신 에이전트 프로그램.And the connection control module redistributes the sub-blocks to be received in a part of the connection where the reception of the requested sub-block is completed and a part of the connection in progress. 제18항에 있어서,The method of claim 18, 상기 연결 제어 모듈은,The connection control module, 상기 노드 리스트에 포함된 노드들에 연결을 설정하는 연결 설정 모듈;A connection establishment module for establishing a connection to nodes included in the node list; 상기 연결 설정 모듈에서 연결을 설정한 노드들의 연결 상태를 판단하는 연결 상태 판단 모듈;A connection state determination module that determines a connection state of nodes which have established a connection in the connection setting module; 상기 연결 상태 판단 모듈의 연결 상태 정보를 이용하여 연결이 설정된 노드들로부터 수신할 서브 블록을 분배하는 서브 블록 분배 모듈;A sub-block distribution module for distributing sub-blocks to be received from nodes to which a connection is established by using connection state information of the connection state determination module; 상기 연결이 설정된 노드들 중 요청한 서브 블록의 전송이 완료된 노드가 존재할 경우, 수신이 완료된 연결과 수신율이 가장 낮은 연결에 대해 서브 블록의 재분배를 상기 서브 블록 분배 모듈에 요청하는 수신 상태 모니터링 모듈을 포함하며,A reception state monitoring module for requesting the sub-block distribution module to redistribute the sub-blocks for the connection where the reception is completed and the connection with the lowest reception rate, when there is a node in which the requested sub-block is completed among the nodes in which the connection is established , 상기 서브 블록 분배 모듈은 상기 수신 상태 모니터링 모듈의 요청에 응답하여 상기 수신이 완료된 연결과 상기 수신율이 가장 낮은 연결의 수신속도에 따라 수신할 서브 블록을 재분배하는 것을 특징으로 하는 수신 에이전트 프로그램.And the subblock distribution module redistributes the subblocks to be received according to the reception speed of the connection where the reception is completed and the connection with the lowest reception rate in response to a request of the reception state monitoring module. 제19항에 있어서,The method of claim 19, 상기 연결 상태 판단 모듈은 연결된 각 노드와의 라운드 트립 시간 및 각 노드와의 수신 속도로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합을 이용하여 연결 상태를 판단하는 것을 특징으로 하는 수신 에이전트 프로그램.And the connection state determination module determines the connection state using one or a combination thereof selected from the group consisting of a round trip time with each connected node and a reception speed with each node. 제19항에 있어서,The method of claim 19, 상기 연결 상태 판단 모듈은 상기 연결 제어 서버로부터 노드 상태 정보를수신하여 연결 상태를 판단하는 것을 특징으로 하는 수신 에이전트 프로그램.And the connection state determination module receives node state information from the connection control server to determine a connection state. 제19항에 있어서,The method of claim 19, 상기 연결 설정 모듈은 연결 제어 서버로부터 제공되는 노드 상태 정보를 이용하여 연결을 설정하며, 연결 설정에 실패할 경우 상기 노드 상태 정보를 이용하여 다른 노드에 연결을 설정하는 것을 특징으로 하는 수신 에이전트 프로그램.The connection establishment module establishes a connection using node state information provided from a connection control server, and if the connection establishment fails, establish a connection to another node using the node state information. 제19항에 있어서,The method of claim 19, 상기 연결 설정 모듈은 연결 설정에 실패할 경우, 해당 노드 정보를 블랙 리스트 큐에 저장하는 것을 특징으로 하는 수신 에이전트 프로그램.If the connection establishment module fails to establish a connection, the receiving agent program, characterized in that for storing the node information in the black list queue. 제17항에 있어서,The method of claim 17, 상기 서브 블록 관리 모듈은 수신되는 서브 블록의 체크섬 값을 이용하여 수신 오류를 판단하는 것을 특징으로 하는 수신 에이전트 프로그램.And the sub block management module determines a reception error by using a checksum value of the received sub block. 제17항에 있어서,The method of claim 17, 상기 수신되는 스트리밍 데이터를 스크램블링된 상태로 저장하고 관리하는 캐쉬 관리 모듈을 더 포함하는 것을 특징으로 하는 수신 에이전트 프로그램.And a cache management module that stores and manages the received streaming data in a scrambled state. 제25항에 있어서,The method of claim 25, 블록에 포함되는 모든 서브 블록이 수신될 경우, 블록 데이터를 상기 캐쉬 관리 모듈 또는 스트리밍 데이터를 재생하는 플레이어에 제공하는 블록 관리 모듈을 더 포함하는 것을 특징으로 하는 수신 에이전트 프로그램.And a block management module for providing block data to the cache management module or a player playing the streaming data when all sub-blocks included in the block are received. 제17항에 있어서,The method of claim 17, 상기 연결 제어 서버에 예약 요청 정보를 전송하고 수신되는 예약 컨텐츠 정보를 관리하는 예약 관리 모듈을 더 포함하는 것을 특징으로 하는 수신 에이전트 프로그램.And a reservation management module which transmits reservation request information to the connection control server and manages received reservation content information. 제17항에 있어서,The method of claim 17, 상기 연결 제어 모듈은,The connection control module, 연결이 설정된 노드들 중 데이터를 전송하지 노드들의 상태 정보를 모니터링하고, 모니터링 결과에 따라 데이터를 전송하지 않는 노드들의 일부와 데이터를 전송하는 노드들의 일부에서 수신할 서브 블록을 재분배하는 것을 특징으로 하는 수신 에이전트 프로그램.Monitoring status information of nodes that do not transmit data among the connected nodes, and redistributing sub-blocks to be received by some of the nodes that do not transmit data and some of the nodes that transmit data according to the monitoring result. Receive agent program. 복수의 컨텐츠 서버와 적어도 하나의 연결 제어 서버를 포함하는 시스템으로부터 스트리밍 데이터를 수신하는 클라이언트에 설치되어 스트리밍 데이터의 수신을 제어하는 수신 에이전트 프로그램으로서,A receiving agent program installed in a client that receives streaming data from a system including a plurality of content servers and at least one connection control server, the reception agent program controlling the reception of streaming data. 상기 연결 제어 서버로 스트리밍 데이터의 전송을 요청하는 데이터 요청 모듈;A data request module for requesting transmission of streaming data to the connection control server; 상기 연결 제어 서버로부터 사용자가 요청한 데이터를 수신할 컨텐츠 서버들의 리스트 정보를 수신하여 저장하는 노드 정보 관리 모듈;A node information management module for receiving and storing list information of content servers to receive data requested by a user from the connection control server; 상기 컨텐츠 서버 리스트 정보에 포함된 복수의 컨텐츠 서버들에 연결을 설정하고, 연결된 컨텐츠 서버들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 컨텐츠 서버들로부터 서브 블록의 수신 중 서브 블록의 수신상태를 모니터링하여 연결을 설정한 일부 컨텐츠 서버에서 수신할 서브 블록을 재분배하는 연결 제어 모듈; 및Establishes a connection to a plurality of content servers included in the content server list information, determines and requests a subblock of streaming data to be received from the connected content servers, and receives the subblock from the connected content servers. A connection control module for monitoring a reception state and redistributing a sub-block to be received by some content servers which have established a connection; And 상기 연결 제어 모듈에서 블록에 포함되는 모든 서브 블록이 수신되는지 판단하며, 모든 서브 블록이 수신될 경우 다음 블록의 서브 블록을 수신하도록 상기 연결 제어 모듈에 요청하는 서브 블록 관리 모듈을 포함하는 것을 특징으로 하는 수신 에이전트 프로그램.And a sub-block management module for determining whether all sub-blocks included in the block are received by the connection control module and requesting the connection control module to receive a sub-block of a next block when all sub-blocks are received. Receiving agent program. 제29항에 있어서,The method of claim 29, 상기 연결 제어 모듈은 요청한 서브 블록의 수신이 완료된 연결과 수신이 진행중인 연결의 일부에서 수신할 서브 블록을 재분배하는 것임을 특징으로 하는 수신 에이전트 프로그램.And the connection control module redistributes the sub-blocks to be received in a part of the connection where the reception of the requested sub-block is completed and a part of the connection in progress. 제30항에 있어서,The method of claim 30, 상기 연결 제어 모듈은,The connection control module, 상기 컨텐츠 서버 리스트에 포함된 컨텐츠 서버들에 연결을 설정하는 연결 설정 모듈;A connection establishment module configured to establish a connection to content servers included in the content server list; 상기 연결 설정 모듈에서 연결을 설정한 컨텐츠 서버들과의 연결 상태를 판단하는 연결 상태 판단 모듈;A connection state determination module that determines a connection state with content servers that have established a connection in the connection setting module; 상기 연결 상태 판단 모듈의 연결 상태 정보를 이용하여 연결이 설정된 컨텐츠 서버들로부터 수신할 서브 블록을 분배하는 서브 블록 분배 모듈;A sub-block distribution module for distributing sub-blocks to be received from content servers to which a connection is established using connection state information of the connection state determination module; 상기 설정된 연결들 중 요청한 서브 블록의 수신이 완료된 연결이 존재할 경우, 상기 수신이 완료된 연결과 수신율이 가장 낮은 연결에 대해 서브 블록의 재분배를 상기 서브 블록 분배 모듈에 요청하는 수신 상태 모니터링 모듈을 포함하며,And a reception state monitoring module for requesting the sub-block distribution module to redistribute the sub-blocks for the connection where the reception of the requested sub block is completed among the established connections and the connection with the lowest reception rate. , 상기 서브 블록 분배 모듈은 상기 수신 상태 모니터링 모듈의 요청에 응답하여 상기 수신이 완료된 연결과 상기 수신율이 가장 낮은 연결의 수신속도에 따라 수신할 서브 블록을 재분배하는 것을 특징으로 하는 수신 에이전트 프로그램.And the subblock distribution module redistributes the subblocks to be received according to the reception speed of the connection where the reception is completed and the connection with the lowest reception rate in response to a request of the reception state monitoring module. 제29항에 있어서,The method of claim 29, 상기 연결 상태 판단 모듈은 상기 연결 제어 서버로부터 제공되는 컨텐츠 서버 상태 정보를 이용하여 연결 상태를 판단하는 것을 특징으로 하는 수신 에이전트 프로그램.And the connection state determination module determines the connection state using the content server state information provided from the connection control server. 복수의 사용자 클라이언트와 네트워크를 통해 연결되어 있으며 사용자 클라이언트가 복수의 다른 사용자 클라이언트들과 접속하여 스트리밍 데이터를 수신하도록 사용자 클라이언트들간의 연결을 제어하는 연결 제어 서버로서,A connection control server connected to a plurality of user clients via a network and controlling the connection between user clients so that the user client connects with the plurality of other user clients to receive streaming data. 상기 접속되어 있는 복수의 사용자 클라이언트들로부터 각 사용자 클라이언트가 저장하고 있는 컨텐츠 정보 및 사용자 클라이언트의 주소 정보를 수신하고, 컨텐츠 전송을 요청하는 사용자 클라이언트에 요청한 컨텐츠를 저장하고 있는 노드 정보를 제공하는 메쉬 관리 모듈; 및Mesh management for receiving content information stored in each user client and address information of the user client from the connected plurality of user clients, and providing node information storing the requested content to the user client requesting content transmission. module; And 상기 메쉬 관리 모듈에서 수신하는 각 사용자 클라이언트가 저장하는 있는 컨텐츠 정보 및 사용자 클라이언트의 주소 정보를 저장하는 메쉬 정보 데이터베이스를 포함하되,Including a mesh information database for storing the content information stored in each user client received by the mesh management module and the address information of the user client, 상기 복수의 사용자 클라이언트에는 수신 에이전트가 설치되어 있으며, 상기 수신 에이전트는 상기 제공된 노드 정보를 이용하여 복수의 노드에 연결을 설정하고, 연결된 노드들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 각 노드에서의 서브 블록의 수신 상태를 모니터링하여 수신할 서브 블록을 재분배하도록 사용자 클라이언트를 제어하는 것을 특징으로 하는 연결 제어 서버.A receiving agent is installed in the plurality of user clients, and the receiving agent establishes a connection to the plurality of nodes using the provided node information, determines and requests a subblock of streaming data to be received from the connected nodes, And controlling the user client to redistribute the sub-blocks to be received by monitoring the reception status of the sub-blocks at each connected node. 제33항에 있어서,The method of claim 33, wherein 접속한 사용자를 인증하고 과금 정보를 처리하는 인증 모듈을 더 포함하는 것을 특징으로 하는 연결 제어 서버.Connection control server, characterized in that further comprising an authentication module for authenticating the connected user and processing the charging information. 제33항에 있어서,The method of claim 33, wherein 등록된 사용자들의 정보를 저장하는 사용자 데이터베이스 및 요청한 스트리밍 데이터의 메타 정보를 저장하는 메타 정보 데이터베이스를 더 포함하는 것을 특징으로 하는 연결 제어 서버.And a meta information database storing meta information of the requested streaming data and a user database storing information of registered users. 제33항에 있어서,The method of claim 33, wherein 상기 메쉬 관리 모듈은 각 노드들의 상태 정보를 수신하며, 상기 노드 정보의 제공 시 상기 상태 정보를 함께 제공하는 것을 특징으로 하는 연결 제어 서버.The mesh management module receives state information of each node, and provides the state information together when providing the node information. 복수의 컨텐츠 서버 및 사용자 클라이언트와 네트워크를 통해 연결되어 있으며 사용자 클라이언트가 적어도 두 개 이상의 컨텐츠 서버와 접속하여 스트리밍 데이터를 수신하도록 사용자 클라이언트와 컨텐츠 서버들간의 연결을 제어하는 연결 제어 서버로서,A connection control server connected to a plurality of content servers and user clients through a network, and controlling a connection between the user client and the content servers such that the user client connects to at least two content servers to receive streaming data. 상기 접속되어 있는 복수의 컨텐츠 서버들로부터 상태 정보를 수신하여 각 컨텐츠 서버의 상태를 판단하는 서버 상태 판단 모듈;A server state determination module configured to receive state information from the plurality of connected content servers and determine a state of each content server; 상기 사용자 클라이언트로부터 컨텐츠 요청 정보를 수신할 경우, 요청한 컨텐츠의 스트리밍 데이터를 수신할 컨텐츠 서버 리스트 정보를 상기 사용자 클라이언트에 제공하는 서버 리스트 제공 모듈을 포함하되,When receiving the content request information from the user client, the server list providing module for providing the content server list information for receiving the streaming data of the requested content to the user client, 상기 사용자 클라이언트에는 수신 에이전트가 설치되어 있으며, 상기 수신 에이전트는 상기 제공되는 서버 리스트 정보를 이용하여 적어도 두 개 이상의 컨텐츠 서버에 연결을 설정하며, 연결된 컨텐츠 서버들로부터 수신할 스트리밍 데이터의 서브 블록을 결정하여 요청하며, 연결된 각 노드에서의 서브 블록의 수신 상태를 모니터링하여 수신할 서브 블록을 재분배하도록 사용자 클라이언트를 제어하는 것을 특징으로 하는 연결 제어 서버.A receiving agent is installed in the user client, and the receiving agent establishes a connection to at least two content servers using the provided server list information, and determines a subblock of streaming data to be received from the connected content servers. Requesting, and controlling the user client to redistribute the sub-blocks to be received by monitoring the reception status of the sub-blocks in each connected node. 제37항에 있어서,The method of claim 37, 상기 컨텐츠 서버에서 상기 연결 제어 서버로 제공되는 상태 정보는 대역폭 정보, CPU 사용율 정보, 메모리 사용율 정보, 접속자 수 정보 및 파일 I/O 정보로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합인 것을 특징으로 하는 연결 제어 서버.The state information provided from the content server to the connection control server is any one selected from the group consisting of bandwidth information, CPU utilization information, memory utilization information, accessor information and file I / O information, or a combination thereof. Connection control server.
KR1020030003388A 2003-01-17 2003-01-17 Method for Transmitting and Dowloading Streaming Data KR100427143B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020030003388A KR100427143B1 (en) 2003-01-17 2003-01-17 Method for Transmitting and Dowloading Streaming Data
JP2005518206A JP4002584B2 (en) 2003-01-17 2004-01-05 How to send and download streaming data
CNB2004800016837A CN100414539C (en) 2003-01-17 2004-01-05 Method for transmitting and downloading streaming data
PCT/KR2004/000007 WO2004066160A1 (en) 2003-01-17 2004-01-05 Method for transmitting and downloading streaming data
US10/541,399 US8370513B2 (en) 2003-01-17 2004-01-05 Method for transmitting and downloading streaming data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030003388A KR100427143B1 (en) 2003-01-17 2003-01-17 Method for Transmitting and Dowloading Streaming Data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020030096886A Division KR100810760B1 (en) 2003-12-24 2003-12-24 Method for Transmitting and Dowloading Streaming Data

Publications (1)

Publication Number Publication Date
KR100427143B1 true KR100427143B1 (en) 2004-04-14

Family

ID=36383781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030003388A KR100427143B1 (en) 2003-01-17 2003-01-17 Method for Transmitting and Dowloading Streaming Data

Country Status (5)

Country Link
US (1) US8370513B2 (en)
JP (1) JP4002584B2 (en)
KR (1) KR100427143B1 (en)
CN (1) CN100414539C (en)
WO (1) WO2004066160A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104729B1 (en) * 2008-11-28 2012-01-11 에스케이플래닛 주식회사 System and Method for Multimedia Streaming of Distributed Contents Using Optimal Way of Acquiring Segments
KR101125065B1 (en) 2008-10-31 2012-03-21 에스케이플래닛 주식회사 System and Method for Providing Streaming Service Using Hierarchical Distributed Storing Structure
KR101128293B1 (en) * 2008-11-12 2012-03-23 에스케이플래닛 주식회사 System and Method for Multimedia Streaming of Distributed Contents Using Node Switching Based on Cache Segment Acquisition Time
KR101301004B1 (en) * 2008-11-25 2013-08-29 에스케이플래닛 주식회사 System and Method for Multimedia Streaming of Distributed Contents
KR101404008B1 (en) * 2007-08-30 2014-06-05 톰슨 라이센싱 A unified peer-to-peer and cache system for content services in wireless mesh networks
CN106878826A (en) * 2017-03-30 2017-06-20 河北上元工控技术有限公司 The method of one species P2P real-time videos forwarding
KR101780637B1 (en) * 2015-08-31 2017-09-21 시아오미 아이엔씨. Connection status prompting method and device

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4587042B2 (en) * 2003-09-30 2010-11-24 ソニー株式会社 Content acquisition method, content acquisition device, content acquisition program, and content acquisition system
US7392295B2 (en) 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
US7584382B2 (en) * 2004-02-19 2009-09-01 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on configurations of other computer systems
US7698451B2 (en) * 2005-03-09 2010-04-13 Vudu, Inc. Method and apparatus for instant playback of a movie title
US20080022343A1 (en) 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US7191215B2 (en) * 2005-03-09 2007-03-13 Marquee, Inc. Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines
US8904463B2 (en) 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US7937379B2 (en) * 2005-03-09 2011-05-03 Vudu, Inc. Fragmentation of a file for instant access
US20090019468A1 (en) * 2005-03-09 2009-01-15 Vvond, Llc Access control of media services over an open network
US8219635B2 (en) * 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US9176955B2 (en) 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US20090025046A1 (en) * 2005-03-09 2009-01-22 Wond, Llc Hybrid architecture for media services
US7490140B2 (en) * 2005-05-12 2009-02-10 International Business Machines Corporation Peer data transfer orchestration
US8099511B1 (en) 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
CN100469002C (en) * 2005-08-09 2009-03-11 张永敏 Data block transmission method
KR100700588B1 (en) * 2005-08-09 2007-03-28 엘지전자 주식회사 Method and apparatus for downloding the contents in mobile telecommunication terminal equipment
CN100444546C (en) * 2005-08-11 2008-12-17 腾讯科技(深圳)有限公司 Mobile terminal and method for implementing flow media download on mobile terminal
WO2007019770A1 (en) 2005-08-12 2007-02-22 Huawei Technologies Co., Ltd. A method and system for the mobile terminal to download data and to share the data among mobile terminals
CN100461914C (en) * 2005-10-28 2009-02-11 华为技术有限公司 Mobile station data downloading method
JP2007080161A (en) * 2005-09-16 2007-03-29 Nec Personal Products Co Ltd Data distribution system, partial content storing server, method and program for increasing response speed
US8626925B2 (en) * 2005-12-16 2014-01-07 Panasonic Corporation Systems and methods for providing a selective multicast proxy on a computer network
US7743123B2 (en) * 2005-12-19 2010-06-22 Microsoft Corporation Aggregating information from a cluster of peers
EP1826695A1 (en) * 2006-02-28 2007-08-29 Microsoft Corporation Secure content descriptions
EP1801720A1 (en) * 2005-12-22 2007-06-27 Microsoft Corporation Authorisation and authentication
US8904456B2 (en) 2006-02-13 2014-12-02 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
JP5140666B2 (en) 2006-06-27 2013-02-06 トムソン ライセンシング Peer-to-peer content on demand with performance in mind
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
CN101192946B (en) * 2006-11-28 2010-08-25 欧阳炳宇 A method and system for improving download efficiency of special P2P built-in terminal
WO2008065665A2 (en) * 2006-11-30 2008-06-05 Speedbit Ltd. Accelerated multimedia file download and playback
CN101345638B (en) * 2007-07-12 2011-06-22 中兴通讯股份有限公司 Equity system supporting time shift business
CN101119282A (en) * 2007-09-25 2008-02-06 腾讯科技(深圳)有限公司 Method and apparatus for managing display to download task in download instrument
US9769255B2 (en) 2007-12-24 2017-09-19 Core Wireless Licensing S.A.R.L. Continuous scheduling for peer-to-peer streaming
US8171118B2 (en) * 2008-06-13 2012-05-01 Microsoft Corporation Application streaming over HTTP
US8775566B2 (en) * 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
CN101355588B (en) * 2008-09-08 2012-08-01 创新科存储技术(深圳)有限公司 Data transmission method and transmission terminal base on peer-to-peer network
US10749947B2 (en) * 2009-06-24 2020-08-18 Provenance Asset Group Llc Method and apparatus for signaling of buffer content in a peer-to-peer streaming network
DE102009027773A1 (en) 2009-07-16 2011-01-27 Itv Solutions Gmbh Control the data rate of a media download based on client playback status information
CN101634963B (en) * 2009-08-24 2012-01-11 腾讯科技(深圳)有限公司 Method and system for acquiring downloading software state
CN102196318B (en) * 2010-03-15 2013-06-12 腾讯科技(深圳)有限公司 Peer-to-peer system, program publishing source monitoring method and device
CA2793960C (en) * 2010-03-23 2018-05-22 Reversinglabs Corporation Cloud-based web content filtering
US8681758B2 (en) * 2010-12-14 2014-03-25 Symbol Technologies, Inc. Video caching in a wireless communication network
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US9210451B2 (en) * 2011-05-19 2015-12-08 The Chinese University Of Hong Kong Replication decision in P2P VoD systems
KR101893146B1 (en) * 2011-06-08 2018-08-30 엘지전자 주식회사 Mobile terminal and method for controlling the same
KR101491604B1 (en) * 2011-11-02 2015-02-13 주식회사 케이티 Method and system for providing content using multiple channel
KR101914635B1 (en) * 2012-03-16 2018-12-28 삼성전자주식회사 Apparatus and method for determining source device in contents sharing system
US9444726B2 (en) 2012-07-31 2016-09-13 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US9356980B2 (en) 2012-07-31 2016-05-31 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US9491093B2 (en) * 2012-07-31 2016-11-08 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US11838212B2 (en) 2012-10-05 2023-12-05 Aaa Internet Publishing Inc. Method and system for managing, optimizing, and routing internet traffic from a local area network (LAN) to internet based servers
USRE49392E1 (en) 2012-10-05 2023-01-24 Aaa Internet Publishing, Inc. System and method for monitoring network connection quality by executing computer-executable instructions stored on a non-transitory computer-readable medium
US10917299B2 (en) * 2012-10-05 2021-02-09 Aaa Internet Publishing Inc. Method of using a proxy network to normalize online connections by executing computer-executable instructions stored on a non-transitory computer-readable medium
US11050669B2 (en) 2012-10-05 2021-06-29 Aaa Internet Publishing Inc. Method and system for managing, optimizing, and routing internet traffic from a local area network (LAN) to internet based servers
US9710469B2 (en) * 2013-03-15 2017-07-18 Comcast Cable Communications, Llc Efficient data distribution to multiple devices
US20160021189A1 (en) * 2014-07-17 2016-01-21 Cluster Wireless Llc Automatic pushing of m2m signal processing to network sensor edge
CN104661243B (en) * 2015-02-11 2018-04-10 上海大唐移动通信设备有限公司 It is a kind of to reduce the method and system downloaded and terminate hangover
US10091264B2 (en) * 2015-12-26 2018-10-02 Intel Corporation Technologies for streaming device role reversal
CN106961454B (en) * 2016-01-08 2021-01-05 阿里巴巴(中国)有限公司 File downloading method and device and terminal equipment
JP6471252B1 (en) * 2018-03-20 2019-02-13 株式会社Jストリーム Playback apparatus and program
CN108462755B (en) * 2018-03-28 2020-06-05 网宿科技股份有限公司 Method and system for downloading data resources
CN109617959A (en) * 2018-12-07 2019-04-12 深圳市网心科技有限公司 A kind of data load method, device, system and storage medium
CN112272196A (en) * 2020-03-09 2021-01-26 上海曼恒数字技术股份有限公司 Method and system for removing server by system
CN113259759A (en) * 2021-05-20 2021-08-13 深圳市雷鸟网络传媒有限公司 Network connection state evaluation method and device, terminal equipment and storage medium
CN113347278B (en) * 2021-08-02 2021-10-29 北京鲸准数服信息科技有限责任公司 Data processing method and device and electronic equipment

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956321A (en) * 1995-03-16 1999-09-21 Kabushiki Kaisha Toshiba Stream scheduling system for real time stream server
US5680400A (en) * 1995-05-31 1997-10-21 Unisys Corporation System for high-speed transfer of a continuous data stream between hosts using multiple parallel communication links
US5768527A (en) * 1996-04-23 1998-06-16 Motorola, Inc. Device, system and method of real-time multimedia streaming
US6028608A (en) * 1997-05-09 2000-02-22 Jenkins; Barry System and method of perception-based image generation and encoding
US6014698A (en) * 1997-05-19 2000-01-11 Matchlogic, Inc. System using first banner request that can not be blocked from reaching a server for accurately counting displays of banners on network terminals
IL123819A (en) * 1998-03-24 2001-09-13 Geo Interactive Media Group Lt Network media streaming
JP3460579B2 (en) * 1998-05-21 2003-10-27 松下電器産業株式会社 Data transfer method
JP2955561B1 (en) * 1998-05-29 1999-10-04 株式会社ディジタル・ビジョン・ラボラトリーズ Stream communication system and stream transfer control method
CN1121104C (en) * 1999-02-15 2003-09-10 夏旻 Automatic audio and video request system
JP2001169268A (en) 1999-12-14 2001-06-22 Sony Corp Information service system, transmission server, information terminal, authoring device and information service method
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US6723483B1 (en) * 1999-12-27 2004-04-20 Wako Pure Chemical Industries, Ltd. Sulfonium salt compounds
US7149223B2 (en) * 2000-03-06 2006-12-12 Juniper Networks, Inc. Enhanced fiber nodes with CMTS capability
US6650869B2 (en) * 2000-04-14 2003-11-18 Hughes Electronics Corporation System and method for managing return channel bandwidth in a two-way satellite system
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7310809B2 (en) * 2000-05-19 2007-12-18 General Instrument Corporation Scalable pay-by-time technique for secure multicast distribution of streaming content
US7003794B2 (en) * 2000-06-27 2006-02-21 Bamboo Mediacasting, Inc. Multicasting transmission of multimedia information
KR20020017926A (en) 2000-08-29 2002-03-07 오명철 Sub- network aware distributed internet contents delivery network and control mechanism
JP3568470B2 (en) * 2000-09-21 2004-09-22 三洋電機株式会社 Shell type data terminal
US7512940B2 (en) * 2001-03-29 2009-03-31 Microsoft Corporation Methods and apparatus for downloading and/or distributing information and/or software resources based on expected utility
US7272645B2 (en) * 2001-05-25 2007-09-18 Sbc Technology Resources, Inc. Method of improving the reliability of peer-to-peer network downloads
US7117267B2 (en) * 2001-06-28 2006-10-03 Sun Microsystems, Inc. System and method for providing tunnel connections between entities in a messaging system
KR20020057837A (en) * 2002-03-29 2002-07-12 문의선 Streaming service method and system
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101404008B1 (en) * 2007-08-30 2014-06-05 톰슨 라이센싱 A unified peer-to-peer and cache system for content services in wireless mesh networks
KR101125065B1 (en) 2008-10-31 2012-03-21 에스케이플래닛 주식회사 System and Method for Providing Streaming Service Using Hierarchical Distributed Storing Structure
KR101128293B1 (en) * 2008-11-12 2012-03-23 에스케이플래닛 주식회사 System and Method for Multimedia Streaming of Distributed Contents Using Node Switching Based on Cache Segment Acquisition Time
KR101301004B1 (en) * 2008-11-25 2013-08-29 에스케이플래닛 주식회사 System and Method for Multimedia Streaming of Distributed Contents
KR101104729B1 (en) * 2008-11-28 2012-01-11 에스케이플래닛 주식회사 System and Method for Multimedia Streaming of Distributed Contents Using Optimal Way of Acquiring Segments
KR101780637B1 (en) * 2015-08-31 2017-09-21 시아오미 아이엔씨. Connection status prompting method and device
CN106878826A (en) * 2017-03-30 2017-06-20 河北上元工控技术有限公司 The method of one species P2P real-time videos forwarding

Also Published As

Publication number Publication date
JP4002584B2 (en) 2007-11-07
WO2004066160A1 (en) 2004-08-05
JP2006513676A (en) 2006-04-20
US8370513B2 (en) 2013-02-05
CN100414539C (en) 2008-08-27
US20060174160A1 (en) 2006-08-03
CN1723452A (en) 2006-01-18

Similar Documents

Publication Publication Date Title
KR100427143B1 (en) Method for Transmitting and Dowloading Streaming Data
KR100485974B1 (en) Method and System for Providing Contents
KR101037020B1 (en) System and method for selecting data providers
KR100715674B1 (en) Load balancing method and software steaming system using the same
US7702917B2 (en) Data transfer using hyper-text transfer protocol (HTTP) query strings
Paknikar et al. A caching and streaming framework for mulitmedia
WO2002093846A1 (en) Method of transferring a divided file
KR100823730B1 (en) Method and apparatus for providing streaming service based on P2P, and streaming service system using the same
US20050066014A1 (en) Method and apparatus for reconfiguring a server system
Korkea-aho Scalability in Distributed Multimedia Systems
KR100521361B1 (en) a method of collaborating in transferring a file in a networking environment
KR100973321B1 (en) Information processing device, information processing method, and a computer-readable recording medium recording a computer program
KR101212366B1 (en) System and method for controlling server usage in streaming service based on peer to peer
Wong Enhancing collaborative content delivery with helpers
KR100919254B1 (en) A streaming distribution system and a method for distributing transfer of streaming data through p2p data transfer using udp holepunching
KR100810760B1 (en) Method for Transmitting and Dowloading Streaming Data
KR20070060956A (en) Contents serving system and method to prevent inappropriate contents purging and method for managing contents of the same
JP2003108393A (en) Load distribution method of video stream sending process and apparatus thereof, load distribution program and recording medium with the program recorded thereon
KR101262622B1 (en) System and method for controlling server usage in streaming service based on peer to peer
JP4046562B2 (en) Load balancing method
KR20030046817A (en) Method of providing multimedia data by pre-transmission of partial data
WO2006053580A1 (en) Method, apparatus and program products for management of information about shared files in a mobile network
Rollins et al. Pixie: A jukebox architecture to support efficient peer content exchange
KR20050002560A (en) A system and a method for providing multimedia contents through P2P network
KR20020068234A (en) System and Method of P2P service

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110404

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160329

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 16