[go: up one dir, main page]

KR100802331B1 - Content delivery system and method using user terminal - Google Patents

Content delivery system and method using user terminal Download PDF

Info

Publication number
KR100802331B1
KR100802331B1 KR1020070092410A KR20070092410A KR100802331B1 KR 100802331 B1 KR100802331 B1 KR 100802331B1 KR 1020070092410 A KR1020070092410 A KR 1020070092410A KR 20070092410 A KR20070092410 A KR 20070092410A KR 100802331 B1 KR100802331 B1 KR 100802331B1
Authority
KR
South Korea
Prior art keywords
content
client
user terminal
block
cdn
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020070092410A
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 KR1020070092410A priority Critical patent/KR100802331B1/en
Application granted granted Critical
Publication of KR100802331B1 publication Critical patent/KR100802331B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Marketing (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 컨텐츠 전송 네트워크(CDN) 기술에 관한 것으로, 사용자 단말기를 이용한 컨텐츠 전송 시스템 및 방법에 관한 것이다. 본 발명의 시스템은 각 사용자 단말기의 단말기 정보 테이블과 랭킹정보, 제공할 전체 컨텐츠와 전체 컨텐츠에 대한 리스트, 및 각 클라이언트가 다운로드 받은 컨텐츠 리스트를 저장하고 있고, 로그 데이터에 따라 상기 랭킹정보를 갱신하는 CDN 사업자 시스템; 상기 CDN 사업자 시스템으로부터 컨텐츠를 전송받아 저장하고 있다가 각 클라이언트의 요청에 의해 해당 컨텐츠를 전송해주는 다수의 사용자 단말기; 및 상기 CDN 사업자 시스템으로부터 해당 클라이언트가 다운로드하여야 할 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 수신하여 상기 랭킹정보에 따라 해당 컨텐츠의 각 블록과 각 사용자 단말기를 매핑한 후 각 사용자 단말기에 해당 컨텐츠의 블록 전송을 요청하여 다운로드 받고, 로그 데이터를 상기 CDN 사업자 시스템으로 전송하는 클라이언트를 포함한다. The present invention relates to a content delivery network (CDN) technology, and to a content delivery system and method using a user terminal. The system of the present invention stores the terminal information table and ranking information of each user terminal, a list of all contents and contents to be provided, and a list of contents downloaded by each client, and updates the ranking information according to log data. CDN operator system; A plurality of user terminals receiving and storing contents from the CDN operator system and transmitting the contents at the request of each client; And receiving information of content to be downloaded by the client from the CDN provider system and ranking information on the content, mapping each block of the content to each user terminal according to the ranking information, and then displaying the content to each user terminal. It includes a client that requests and downloads the block transmission and transmits log data to the CDN operator system.

Description

사용자 단말기를 이용한 컨텐츠 전송 시스템 및 방법{ CONTENT DELIVERY SYSTEM AND METHOD USING USER TERMINAL }CONTENT DELIVERY SYSTEM AND METHOD USING USER TERMINAL}

본 발명은 컨텐츠 전송 네트워크(CDN) 기술에 관한 것으로, 더욱 상세하게는 사용자 단말기를 이용한 컨텐츠 전송 시스템 및 방법에 관한 것이다.The present invention relates to a content delivery network (CDN) technology, and more particularly, to a content delivery system and method using a user terminal.

일반적으로, 컨텐츠 전송 네트워크(CDN:Content Delivery Network)는 서버와 네트워크에서 발생하는 병목문제를 해결하기 위한 것으로서, 각 네트워크에 전략적으로 설치된 캐쉬서버(cache server)를 통하여 컨텐츠를 분산시킴으로써 사용자에게는 빠르고 안정적인 네트워크 접속환경을 제공하고, 컨텐츠 제공자(CP: Content Provider)에게는 분산처리를 통해 다수의 사용자를 수용할 수 있는 네트워크 인프라이다. 즉, CDN 기술은 컨텐츠 제공자의 중앙 서버로부터 클라이언트까지 컨텐츠를 원거리로 전송함에 따르는 통신상의 부하 및 컨텐츠 전송속도저하, 품질저하 등을 제거하기 위해 컨텐츠 소비자로부터 가까운 주변 네트워크에 다수의 캐쉬서버를 설치하여 소비자의 컨텐츠 요청을 가까운 캐쉬서버에서 응답 처리하는 컨텐츠 분산 기술의 일종이다.In general, a content delivery network (CDN) is a solution to a bottleneck problem occurring in a server and a network. The content delivery network (CDN) is a fast and reliable method for distributing content through a cache server strategically installed in each network. It is a network infrastructure that provides a network access environment and can accommodate a large number of users through distributed processing to a content provider (CP). In other words, the CDN technology installs multiple cache servers in the neighboring network close to the content consumer to remove the communication load, content transmission speed, and quality deterioration caused by transmitting content remotely from the content server's central server to the client. It is a kind of content distribution technology that responds to a request from a nearby cache server.

종래의 CDN은 도 1에 도시된 바와 같이, 인터넷을 통해 접속된 클라이언트 단말기(10)와, 컨텐츠 제공자의 컨텐츠 서버(20), 통상 ISP 사업자에 설치되는 캐쉬서버(30)로 구성된다. 클라이언트 단말기(10)가 컨텐츠 서버(20)에 컨텐츠를 요청하면, 컨텐츠 서버(20)는 클라이언트 단말기(10)에게 최적의 서비스를 제공할 수 있는 캐쉬서버(30)를 찾아 해당 캐쉬서버(30)의 IP주소를 전달하고(①,②), 이에 따라 클라이언트 단말기(10)는 재설정(Request redirection)을 통해 캐쉬서버(30)에 접속하여 원하는 컨텐츠를 제공받는다(③,④).As shown in FIG. 1, the conventional CDN includes a client terminal 10 connected through the Internet, a content server 20 of a content provider, and a cache server 30 installed in an ISP provider. When the client terminal 10 requests content from the content server 20, the content server 20 finds a cache server 30 that can provide an optimal service to the client terminal 10, and the corresponding cache server 30. IP address of the (①, ②), accordingly, the client terminal 10 receives the desired content by accessing the cache server 30 through the reset (Request redirection) (③, ④).

이와 같이 종래의 컨텐츠 전송 네트워크(CDN)에서 CDN 사업자는 각 클라이언트에게 컨텐츠를 전송하는데, 이때 전송되는 컨텐츠는 그 용량이 대용량(기가 단위)인 경우가 대부분이고, 이러한 컨텐츠를 빠른 시간 내에 다수의 클라이언트에게 전송할 수 있어야 한다.As described above, in a conventional content delivery network (CDN), a CDN provider delivers content to each client. In this case, the content to be transmitted is large in size (units of gigabytes). Must be able to send to

그러나 통상적인 CDN 사업자의 경우 이처럼 대용량 컨텐츠를 빠른 시간에 전송할 수 있는 망의 확보가 안되어 있으므로, 결국 ISP를 통해 컨텐츠를 전송할 수밖에 없었다. 이 경우, CDN 사업자는 ISP의 각 전송서버에 전송할 컨텐츠들을 업로드하여 저장하고, ISP의 각 전송서버는 설정된 시간 또는 클라이언트의 요청이 있을 경우 저장된 컨텐츠를 전송하게 된다. 이에 따라 CDN 사업자는 불가피하게 컨텐츠 전송에 따른 고가의 비용을 지불할 수 밖에 없었다. However, in the case of a typical CDN service provider, it is not possible to secure a network capable of transmitting such a large amount of content in a short time, and thus has no choice but to transmit content through an ISP. In this case, the CDN provider uploads and stores the contents to be transmitted to each of the ISP's delivery servers, and each of the ISP's delivery servers transmits the stored contents when the client requests the set time or the client. As a result, CDN operators inevitably had to pay high costs for content delivery.

따라서, CDN 사업자가 비용 부담을 줄이면서 ISP를 이용하는 수준으로 각 클라이언트에게 컨텐츠를 전송할 수 있는 방안이 요청되고 있다.Accordingly, there is a demand for a method of transmitting content to each client at a level of using an ISP while reducing the cost of the CDN service provider.

한편, 유무선인터넷 기술의 발달과 더불어 각 사용자(개인)는 다양한 단말기를 이용하여 인터넷에 접속하여 온라인 서비스를 이용하게 되는데, 일반적인 사용자의 경우 단말기와 인터넷의 실제 사용시간은 하루에 몇 시간에 불과하다. 결국 나머지 대부분의 시간 동안 사용자의 단말기와 사용자에게 할당된 네트워크 리소스는 유휴 상태에 있게 된다. 그리고 현재의 ISP의 과금 방식에 따르면 종래의 전화-모뎀 접속 방식과 달리 사용 시간에 따른 과금이 아닌 월정액의 요금을 과금하고 있으므로, 각 사용자가 실제 인터넷을 사용하는 시간은 하루에 불과 몇 시간에 지나지 않지만 각 사용자는 이에 상관없이 매월 정액 요금을 지불하여야 한다.On the other hand, with the development of wired and wireless Internet technology, each user (individual) accesses the Internet using a variety of terminals to use the online service. For the general user, the actual use time of the terminal and the Internet is only a few hours a day. . As a result, the user's terminal and the network resources allocated to the user remain idle for most of the time. And according to the current ISP billing method, unlike the conventional telephone-modem connection method, the user charges the monthly fee instead of the billing according to the usage time, so each user spends only a few hours a day using the actual Internet. However, each user has to pay a flat fee monthly.

따라서, 유휴 시간에 사용하지 않는 사용자 단말기 및 네트워크의 리소스를 적절히 활용할 수 있는 방안이 요청되고 있다.Accordingly, there is a demand for a method of properly utilizing resources of a user terminal and a network not used during idle time.

본 발명은 상기와 같은 필요성을 충족시키기 위하여 제안된 것으로서, 본 발명의 목적은 CDN 사업자가 각 클라이언트에게 컨텐츠를 전송함에 있어서 종래와 같이 ISP를 통하지 않고, 각 사용자의 유휴 상태에 있는 단말기(구체적으로 저장장치) 및 네트워크 리소스를 이용하여 전송함으로써 CDN 사업자의 비용 부담을 감소시킬 수 있는 컨텐츠 전송 시스템 및 방법을 제공하는 것이다.The present invention has been proposed to meet the above necessity, and an object of the present invention is to provide a CDN service provider with a terminal in idle state of each user, rather than through an ISP as in the prior art. It is to provide a content delivery system and method that can reduce the cost burden of the CDN provider by transmitting using a storage device) and network resources.

또한, 본 발명의 다른 목적은 다수의 사용자의 단말기 및 네트워크 리소스로 각 컨텐츠를 분산 저장한 후 각 클라이언트에게 전송함으로써 종래의 ISP를 통한 전송방식과 같이 빠르고 효과적으로 컨텐츠를 전송할 수 있는 컨텐츠 전송 시스템 및 방법을 제공하는 것이다.In addition, another object of the present invention is to distribute and store each content to a plurality of terminals and network resources of a plurality of users and then to each client content delivery system and method that can deliver content as quickly and effectively as a conventional transmission method through an ISP To provide.

또한, 본 발명의 또 다른 목적은 각 사용자에게 리소스 사용에 대한 보상을 지급함으로써 사용자에게 수익을 제공하여 사용자의 참여를 유도하고, 이를 통해 컨텐츠 전송 효율을 점진적으로 향상시킬 수 있는 컨텐츠 전송 시스템 및 방법을 제공하는 것이다.In addition, another object of the present invention is to provide a revenue to the user by paying a reward for the use of resources to each user to induce the user's participation, through which the content delivery system and method that can gradually improve the content delivery efficiency To provide.

상기와 같은 목적을 달성하기 위하여 본 발명의 시스템은 각 사용자 단말기의 단말기 정보 테이블과 랭킹정보, 제공할 전체 컨텐츠와 전체 컨텐츠에 대한 리스트, 및 각 클라이언트가 다운로드 받은 컨텐츠 리스트를 저장하고 있고, 로그 데이터에 따라 상기 랭킹정보를 갱신하는 CDN 사업자 시스템; 상기 CDN 사업자 시스템으로부터 컨텐츠를 전송받아 저장하고 있다가 각 클라이언트의 요청에 의해 해당 컨텐츠를 전송해주는 다수의 사용자 단말기; 및 상기 CDN 사업자 시스템으로부터 해당 클라이언트가 다운로드하여야 할 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 수신하여 상기 랭킹정보에 따라 해당 컨텐츠의 각 블록과 각 사용자 단말기를 매핑한 후 각 사용자 단말기에 해당 컨텐츠의 블록 전송을 요청하여 다운로드 받고, 로그 데이터를 상기 CDN 사업자 시스템으로 전송하는 클라이언트를 구비한 것을 특징으로 한다.In order to achieve the above object, the system of the present invention stores a terminal information table and ranking information of each user terminal, a list of all contents and contents to be provided, and a list of contents downloaded by each client, and log data. A CDN operator system for updating the ranking information according to; A plurality of user terminals receiving and storing contents from the CDN operator system and transmitting the contents at the request of each client; And receiving information of content to be downloaded by the client from the CDN provider system and ranking information on the content, mapping each block of the content to each user terminal according to the ranking information, and then displaying the content to each user terminal. It is characterized in that it comprises a client for requesting and downloading the block transmission, and transmitting log data to the CDN operator system.

상기 클라이언트는 상기 사용자 단말기로부터 컨텐츠의 각 블록을 수신하는 중에 특정 블록에서 병목이 발생할 경우, 상기 병목이 발생한 블록에 대하여 다른 사용자 단말기에 서브블록의 전송을 요청하여 다운로드하고, 상기 컨텐츠의 블록과 서브블록은 인덱싱 정보에 의해 식별되는 것이다.If the bottleneck occurs in a specific block while receiving each block of content from the user terminal, the client requests transmission of a subblock to another user terminal for the block in which the bottleneck occurs and downloads the block and the subblock of the content. A block is one identified by indexing information.

또한 상기 사용자 단말기와 상기 클라이언트는 지역별로 구분되고, 각 지역에는 상기 CDN 사업자 시스템으로부터 전체 컨텐츠를 전송받아 저장하고 있다가 상기 클라이언트가 컨텐츠 전송을 요청하면 해당 컨텐츠를 전송해주는 지역 CDN 서버를 구비하여 컨텐츠 전송에 대한 서비스품질(QoS)를 보장할 수 있도록 된 것이다.In addition, the user terminal and the client are divided by region, and each region receives and stores the entire contents from the CDN operator system, and has a local CDN server that transmits the contents when the client requests the contents to be transmitted. This is to ensure the quality of service (QoS) for transmission.

또한 상기 지역 CDN 서버는 해당 지역의 클라이언트로부터 로그 데이터를 수신받아 분석한 후 그 결과를 상기 CDN 사업자 시스템으로 보고하고, 상기 CDN 사업자 시스템은 각 지역 CDN 서버의 보고에 따라 랭킹정보를 갱신한다.In addition, the local CDN server receives the log data from the client of the region, analyzes and reports the result to the CDN provider system, the CDN provider system updates the ranking information according to the report of each local CDN server.

상기와 같은 목적을 달성하기 위하여 본 발명의 방법은 각 사용자 단말기가 컨텐츠를 전송할 수 있는 상태가 되면 CDN 사업자 시스템에 유휴상태를 보고하는 제1 단계; 각 클라이언트가 온되면 상기 CDN 사업자 시스템에 이를 보고하고, 전송받을 컨텐츠가 있는지 확인하여 있으면 설정된 전송 요청 시점에 해당 컨텐츠의 전송을 요청하는 제2 단계; 상기 CDN 사업자 시스템이 해당 클라이언트가 전송받을 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 상기 전송 요청한 클라이언트로 전송하는 제3 단계; 상기 클라이언트가 랭킹정보에 따른 각 사용자 단말기의 순서대로 해당 컨텐츠의 각 블록을 매핑하고, 랭킹정보에 포함된 접속정보를 이용하여 해당 사용자 단말기에 접속하여 컨텐츠의 블록 전송을 요청하는 제4 단계; 상기 각 사용자 단말기가 요청된 컨텐츠의 각 블록을 해당 클라이언트로 전송하는 제5 단 계; 및 상기 클라이언트가 해당 컨텐츠의 전체 블록이 수신되었는지 판단하고, 전체 블록이 수신될 때까지 상기 제4 단계와 상기 제5 단계를 반복 수행하며, 전체 블록의 수신이 완료되면, 상기 CDN 사업자 시스템으로 로그 데이터를 전송하는 제6 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, the method of the present invention includes a first step of reporting an idle state to a CDN operator system when each user terminal is in a state capable of transmitting content; A second step of reporting to the CDN provider system when each client is turned on, and checking whether there is content to be transmitted and requesting transmission of the corresponding content at a set transmission request time point; A third step of transmitting, by the CDN service provider system, information of content to be transmitted by the corresponding client and ranking information about the corresponding content to the requesting client; A fourth step of the client mapping each block of the corresponding content in the order of the respective user terminals according to the ranking information, accessing the corresponding user terminal using the access information included in the ranking information, and requesting block transmission of the contents; A fifth step of transmitting, by the user terminal, each block of the requested content to the corresponding client; And the client determines whether the entire block of the corresponding content has been received, repeats the fourth and fifth steps until the entire block is received, and when reception of the entire block is completed, logs to the CDN provider system. And a sixth step of transmitting data.

상기 컨텐츠 전송 방법은, 상기 CDN 사업자 시스템이 상기 로그 데이터를 분석하고 학습데이터를 랭킹정보에 반영하여 랭킹정보를 갱신하는 제7 단계를 더 구비하고, 상기 제2단계의 전송 요청 시점은, 상기 클라이언트의 전원이 온 되었을 때나 예약된 시간, 주기적으로 일정한 시간 간격, 혹은 클라이언트가 유휴상태인 때 중 어느 하나이다.The content transmission method may further include a seventh step of updating the ranking information by analyzing the log data and reflecting the learning data in the ranking information by the CDN service provider system, and the transmission request time point of the second step is the client. Either when the power is on, at a scheduled time, at regular intervals, or when the client is idle.

상기 제5단계는 상기 클라이언트가 각 블록의 다운로드에 대한 기준속도를 설정하고, 각 사용자 단말기의 전송속도를 모니터링하여 특정 사용자 단말기의 전송속도가 기준속도보다 떨어질 경우, 해당 사용자 단말기에 병목이 발생한 것으로 판단하여, 해당 사용자 단말기가 전송중이던 블록에 대하여 나머지 사용자 단말기에 서브 블록 단위로 전송을 요청하고, 해당 사용자 단말기들이 병목이 발생한 블록을 서브 블록으로 전송한다.In the fifth step, the client sets a reference speed for downloading of each block, monitors the transmission speed of each user terminal, and if the transmission speed of a specific user terminal falls below the reference speed, the bottleneck occurs in the corresponding user terminal. In response to the determination, the request for transmission of the block being transmitted by the corresponding user terminal to the remaining user terminals in sub-block units, and the corresponding user terminals transmit the block having the bottleneck to the sub block.

그리고 상기 기준속도는 각 사용자 단말기의 전송속도가 상이하므로 획일적으로 설정하지 않고, 상기 각 사용자 단말기의 랭킹에 따라 차별적으로 설정한다. 이때, 상기 랭킹정보는 각 사용자 단말기의 전송속도에 따른 우선순위로서, 상기 CDN 사업자 시스템이 전체 랭킹정보 중에서 전송 요청한 클라이언트가 전송받을 컨텐츠를 저장하고 있는 사용자 단말기를 추출하여 생성되는 해당 컨텐츠에 대한 랭 킹정보이고, 그 랭킹정보에는 각 사용자 단말기에 접속하기 위한 접속정보가 포함된 것이다.The reference speed is not set uniformly because the transmission speed of each user terminal is different, and is set differently according to the ranking of each user terminal. In this case, the ranking information is a priority according to the transmission speed of each user terminal, and the ranking of the corresponding content generated by extracting the user terminal storing the content to be transmitted by the client requesting transmission from the overall ranking information. King information, and the ranking information includes access information for accessing each user terminal.

한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 다른 방법은 각 사용자 단말기가 컨텐츠를 전송할 수 있는 상태가 되면 CDN 사업자 시스템에 유휴상태를 보고하는 제1 단계; 각 클라이언트가 온되면 상기 CDN 사업자 시스템에 이를 보고하고, 전송받을 컨텐츠가 있는지 확인하여 있으면 설정된 전송 요청 시점에 해당 컨텐츠의 전송을 요청하는 제2 단계; 상기 CDN 사업자 시스템이 해당 클라이언트가 전송받을 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 전송 요청한 클라이언트로 전송하는 제3 단계; 상기 클라이언트가 랭킹정보의 각 사용자 단말의 순서대로 해당 컨텐츠의 각 블록을 매핑하고, 상기 랭킹정보에 포함된 접속정보를 이용하여 해당 사용자 단말기나 지역 CDN 서버에 접속하여 컨텐츠의 블록 전송을 요청하는 제4 단계; 상기 각 사용자 단말기나 지역 CDN 서버가 요청된 컨텐츠의 각 블록을 해당 클라이언트로 전송하는 제5 단계; 상기 클라이언트가 해당 컨텐츠의 전체 블록이 수신되었는지 판단하여, 전체 블록이 수신될 때까지 상기 제4 단계와 상기 제5 단계를 반복 수행하고, 상기 전체 블록의 수신이 완료되면, 상기 지역 CDN 서버로 로그 데이터를 전송하는 제6 단계; 및 상기 지역 CDN 서버가 로그 데이터를 분석한 후 결과 리포트를 생성하여 상기 CDN 사업자 시스템으로 전송하고, 상기 CDN 사업자 시스템은 상기 결과 리포트를 랭킹정보에 반영하여 상기 랭킹정보를 갱신하는 제7 단계를 구비한 것을 특징으로 한다.On the other hand, in order to achieve the above object, another method of the present invention comprises a first step of reporting the idle state to the CDN operator system when each user terminal is in a state capable of transmitting content; A second step of reporting to the CDN provider system when each client is turned on, and checking whether there is content to be transmitted and requesting transmission of the corresponding content at a set transmission request time point; A third step of transmitting, by the CDN service provider system, a client requesting transmission of information of content to be transmitted by the client and ranking information about the content; The client mapping each block of the corresponding content in the order of the respective user terminals of the ranking information, and accessing the corresponding user terminal or the local CDN server using the access information included in the ranking information to request block transmission of the content; 4 steps; A fifth step of transmitting, by the user terminal or the local CDN server, each block of the requested content to the corresponding client; The client determines whether the entire block of the corresponding content has been received, repeats the fourth step and the fifth step until the entire block is received, and when reception of the entire block is completed, logs to the local CDN server. A sixth step of transmitting data; And analyzing, by the local CDN server, log data, generating a result report and transmitting the result report to the CDN provider system, wherein the CDN provider system reflects the result report in ranking information to update the ranking information. It is characterized by one.

본 발명에 따르면 사용자 단말기를 사용하지 않은 유휴시간에 분산된 사용자 단말기를 이용하여 컨텐츠 전송망을 구성함으로써 CDN 사업자의 컨텐츠 전송에 따른 비용을 크게 절감할 수 있으며, 각 사용자에게 리소스 사용에 대한 보상을 지급함으로써 각 사용자가 별도의 장비나 노력 없이 자신이 가지고 있는 유휴상태의 사용자 단말기를 이용하여 컨텐츠 전송에 따른 부가적인 수익을 창출할 수 있다.According to the present invention, by configuring the content delivery network using the user terminals distributed during idle time without using the user terminal, the cost of the content delivery of the CDN service provider can be greatly reduced, and each user is compensated for resource usage. Therefore, each user can generate additional revenue from content transmission by using their own idle user terminal without any equipment or effort.

또한, 다수의 사용자의 단말기와 네트워크 리소스를 통해 각 컨텐츠를 분산 저장하고 각 클라이언트에게 전송함으로써 종래의 ISP를 통한 전송과 같이 빠르고 효과적으로 컨텐츠를 전송할 수 있으며, 사용자에 대한 보상을 통해 사용자의 참여를 유도하여 컨텐츠 전송 효율을 지속적으로 향상시킬 수 있다.In addition, by distributing and storing each content through a plurality of users' terminals and network resources, and transmitting the content to each client, the content can be transmitted as quickly and effectively as a conventional ISP, and the user's participation is encouraged by rewarding the user. The content delivery efficiency can be continuously improved.

또한, 컨텐츠를 작은 크기의 블록/서브 블록으로 분할하여 관리함으로써 인덱싱 정보를 최소화하여 관리정보를 최적화할 수 있으며, 컨텐츠를 각 사용자 단말기에 용이하게 분산 저장할 수 있다. 또한, CDN 사업자 시스템, 사용자 단말기, 그리고 클라이언트 간에 대용량 컨텐츠를 빠르게 전송할 수 있으며 컨텐츠의 전송 중 병목이 발생하더라도 작은 크기의 블록/서브 블록 단위로 전송함으로써 병목 문제를 해결할 수 있다.In addition, by dividing and managing the content into blocks / subblocks of small size, the indexing information can be minimized to optimize the management information, and the content can be easily distributed and stored in each user terminal. In addition, it is possible to quickly transfer a large amount of content between the CDN operator system, the user terminal, and the client, and even if a bottleneck occurs during the transmission of the content, the bottleneck problem may be solved by transmitting the block / subblock unit of small size.

또한, 각 지역마다 사용자 단말기 이외에 중앙 집중적인 P2P 서버인 지역 CDN 서버를 분산 구성함으로써 각 사용자 단말기의 서비스 품질이 저하될 경우 지역 CDN 서버를 통해 클라이언트로 컨텐츠를 전송함으로써 최적의 서비스 품질을 제공할 수 있다.In addition, by distributing regional CDN servers, which are centralized P2P servers in each region, in each region, when the service quality of each user terminal is degraded, the optimal quality of service can be provided by transmitting contents to the client through the local CDN server. have.

또한 전체적으로 볼 때 망 자원을 효율적으로 사용할 수 있으며, 클라이언트가 요청한 컨텐츠를 신속하게 전송할 수 있다.In addition, the network resources can be used efficiently, and the contents requested by the clients can be transmitted quickly.

본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다. The technical problems achieved by the present invention and the practice of the present invention will be more clearly understood by the preferred embodiments of the present invention described below. The following examples are merely illustrated to illustrate the present invention and are not intended to limit the scope of the present invention.

먼저, 본 발명은 종래의 P2P(Peer-To-Peer) 모델을 이용하되, 각 사용자가 단말기 및 네트워크를 이용하지 않는 시간대에 각 사용자의 단말기를 ISP의 전송서버로 활용하여 CDN 사업자의 비용을 절감하고, 사용자에게 수익 모델을 제공하는 것을 특징으로 한다. 이때, 사용자 단말기에는 CDN 사업자 시스템과 연동하여 CDN 사업자 시스템이 제공하는 컨텐츠를 사용자 단말기의 저장장치 중 일부 저장영역에 저장하고 상기 컨텐츠를 요청하는 각 클라이언트로 전송하기 위한 에이전트가 설치된다. 또한, 본 발명은 중앙집중형과 분산형의 중간인 하이브리드형의 P2P를 지향하고 있어, 사용자의 서비스 품질을 효율적으로 보증할 수 있다. 구체적으로, 본 발명에서 제어(control)는 CDN 사업자 시스템에 의해 중앙 집중적으로 이루어지고, 데이터(data)는 사용자 단말기나 지역 CDN 서버에서 관리함으로써 하이브리드형 P2P를 지향한다.First, the present invention uses a conventional peer-to-peer (P2P) model, but by using the terminal of each user as a transport server of the ISP in the time when each user does not use the terminal and network to reduce the cost of CDN operators And providing a revenue model to the user. At this time, the user terminal is installed with an agent for interworking with the CDN provider system to store the contents provided by the CDN provider system in some storage areas of the storage device of the user terminal and to transmit the content to each client requesting the content. In addition, the present invention aims at a hybrid P2P which is intermediate between a centralized type and a distributed type, and can efficiently guarantee a user's service quality. Specifically, in the present invention, control is centrally performed by the CDN operator system, and data is managed in a user terminal or a local CDN server, so that a hybrid P2P is directed.

바람직하게는, 본 발명에서의 컨텐츠의 전송 방식으로 일반적으로 사용되는 TCP방식 대신 HTTP방식의 WebDAV(Web-based Distributed Authoring and Versioning) 프로토콜을 사용하도록 한다.Preferably, the Web-based Distributed Authoring and Versioning (WebDAV) protocol of HTTP method is used instead of the TCP method generally used as a content transmission method of the present invention.

WebDAV는 World Wide Web을 읽고 쓸 수 있는 매체로 만들기 위해 개발된 HTTP 프로토콜의 확장으로, 구체적으로 HTTP가 웹 페이지를 취득하거나 파일을 다운로드하는 것을 위주로 작성된 프로토콜이다. 즉, WebDAV는 웹 페이지를 편집하거나 파일을 업로드하는 기능이 취약한 단점을 보완하여 웹 상에서 분산 저작을 가능하게 한 HTTP의 확장형 프로토콜이다. WebDAV를 이용하면 HTTP의 읽기 속성에 쓰기 속성이 추가되므로 원격 서버 문서를 생성, 변경 및 이동할 수 있으며, 이를 통해 문서의 공동저작이 가능하고 필요시 웹 하드로도 사용할 수 있게 된다. 또한, FTP를 통하지 않고 HTTP 프로토콜을 통해 웹 상의 파일을 송수신하고 수정/삭제할 수 있게 된다.WebDAV is an extension of the HTTP protocol developed to make the World Wide Web a readable and writable medium. Specifically, WebDAV is a protocol written mainly for HTTP to obtain a web page or download a file. In other words, WebDAV is an extended protocol of HTTP that enables distributed authoring on the web by supplementing the weak point of editing a web page or uploading a file. WebDAV adds a write attribute to the read attribute of HTTP, allowing you to create, change, and move remote server documents, allowing you to collaborate on documents and even use them on the web as needed. It also allows you to send, receive and modify / delete files on the web via the HTTP protocol rather than via FTP.

본 발명에서는 컨텐츠 전송 방식으로 WebDAV 프로토콜을 사용함으로써 메타 데이터에 대한 가독성을 높이고 쉬운 접근제어 및 NAT(Network Address Translation) 환경하에서도 원활한 서비스의 제공이 가능하도록 한다. 구체적으로, FTP 전송의 경우 방화벽에 의해 차단되거나 NAT에 의해 외부 네트워크와 내부 네트워크 사이에 IP를 변환하는 과정에서 제약이 따르게 되며, 이를 해결하기 위하여 홀 펀칭(Hole Punching)을 하거나 공유기 안에서 단말기와 연결하기 위한 매핑이 필요하다. 홀 펀칭이란 공유기가 Routing Table을 만들기 위해 P2P 통신을 목적으로 사전에 상대방과 패킷을 주고받아 각자의 공유기에 Routing Table을 작성하는 것을 의미한다. 그러나, WebDAV의 경우 80번 포트를 사용하는데, 이는 대부분의 웹 브라우저가 사용하는 포트로서 방화벽 등에 의해 차단되지 않는다. 따라서, 본 발명에서는 WebDAV 프로토콜을 사용함으로써 방화벽이나 NAT로 인한 제약 없이 서비스 제공이 가능하다. 한편, WebDAV 프로토콜을 사용하기 위하여, 본 발명에 따른 CDN 사업자 시스템에는 WebDAV 서버가 적용되고 사용자 단말기의 에이전트에는 WebDAV 클라이언트가 적용된다.In the present invention, by using the WebDAV protocol as a content transmission method, it is possible to improve the readability of the metadata and to provide a smooth service even under easy access control and NAT (Network Address Translation) environment. Specifically, in case of FTP transmission, restrictions are placed in the process of converting IP between the external network and the internal network by the firewall or NAT, and in order to solve this problem, hole punching or connecting to the terminal in the router is performed. You need a mapping to do this. Hole punching means that the router exchanges packets with the other party in advance for the purpose of P2P communication in order to create a routing table and creates a routing table in each router. However, WebDAV uses port 80, which is used by most web browsers and is not blocked by firewalls. Therefore, in the present invention, it is possible to provide a service without using a firewall or NAT by using the WebDAV protocol. Meanwhile, in order to use the WebDAV protocol, a WebDAV server is applied to the CDN operator system according to the present invention and a WebDAV client is applied to the agent of the user terminal.

한편, 본 발명은 P2P를 기반으로 하고 있으므로, 결과적으로 클라이언트와 사용자 단말기는 동일한 구성이며, 단지 설명의 편의상 개념적으로 구분한 것에 불과하다. 즉, 클라이언트와 사용자 단말기는 컨텐츠를 다운로드하느냐 전송하느냐에 따른 개념적인 구분으로, 클라이언트가 컨텐츠를 다운로드하는 중에도 해당 클라이언트에 기 저장된 컨텐츠 또는 현재 다운로드 중인 컨텐츠를 다른 클라이언트나 사용자 단말기로 전송할 수 있다.On the other hand, since the present invention is based on P2P, as a result, the client and the user terminal have the same configuration, and are merely conceptually divided for convenience of description. In other words, the client and the user terminal may be conceptually divided according to whether the content is downloaded or transmitted, and even while the client downloads the content, the client and the user terminal may transmit content previously stored in the corresponding client or content currently being downloaded to another client or the user terminal.

제 1 실시예First embodiment

도 2는 본 발명의 제 1 실시예에 따른 컨텐츠 전송 시스템을 도시한 개략도이다.2 is a schematic diagram showing a content delivery system according to a first embodiment of the present invention.

본 발명의 제 1 실시예에 따른 컨텐츠 전송시스템은 도 2에 도시된 바와 같이, 네트워크를 통해 서로 연결되는 하나의 CDN 사업자시스템(100)과, 다수의 사용자 단말기(110), 및 다수의 클라이언트(120)로 구성된다.As shown in FIG. 2, the content delivery system according to the first embodiment of the present invention includes one CDN operator system 100, a plurality of user terminals 110, and a plurality of clients connected to each other via a network. 120).

도 2를 참조하면, CDN 사업자 시스템(100)은 클라이언트(120)가 요청한 컨텐츠를 제공하는 중앙집중형 시스템으로서, 각 사용자 단말기(110)의 단말기 정보 테 이블, 랭킹정보, CDN 사업자 시스템(100)의 전체 컨텐츠 리스트, 및 각 클라이언트(120)가 다운로드 받은 컨텐츠 리스트 등을 저장하고 있다. 이때, 클라이언트(120)와 사용자 단말기(110)는 결국 같은 객체이므로, 단말기 정보 테이블에 컨텐츠 리스트를 함께 포함하여 구성할 수도 있다. CDN 사업자 시스템(100)의 전체 컨텐츠 리스트 및 각 클라이언트(120)가 다운로드한 컨텐츠 리스트에는 각 컨텐츠의 식별정보(컨텐츠 ID)가 포함된다.Referring to FIG. 2, the CDN provider system 100 is a centralized system for providing content requested by the client 120. The terminal information table, ranking information, and CDN provider system 100 of each user terminal 110 are provided. Stores a complete list of contents, a list of contents downloaded by each client 120, and the like. At this time, since the client 120 and the user terminal 110 are the same object, the client 120 and the user terminal 110 may be configured to include the content list together in the terminal information table. The entire content list of the CDN operator system 100 and the content list downloaded by each client 120 include identification information (content ID) of each content.

단말기 정보 테이블은 각 사용자 단말기(110)의 정보를 저장 및 관리하기 위한 테이블로서, 그 구성의 예를 들면 표 1과 같다.The terminal information table is a table for storing and managing information of each user terminal 110, and the configuration thereof is shown in Table 1, for example.

사용자 IDUser ID 단말기종류Terminal type 저장용량Storage 소속지역Affiliation Area 저장 컨텐츠 Save content 전송시간 Transmission time xxx-123-yyyxxx-123-yyy PC PC 1G 1G A    A 밀양 Miryang 21:00~23:0021:00-23:00 xxx-122-yyyxxx-122-yyy 셋탑박스 Set top box 500M 500M C    C 태양은가득히(일부)The sun is full (some) 12:00~14:0012: 00 ~ 14: 00 xxx-121-tttxxx-121-ttt 셋탑박스Set top box 2G 2G B    B 서울찬가 Seoul Hymn 01:30~04:2001: 30 ~ 04: 20 ................ .......... .......... ...... ........ ..........

표 1과 같이 단말기 정보 테이블에는 사용자 아이디와, 단말기 종류, 사용자 단말기의 저장용량(컨텐츠가 저장되는 저장영역의 크기), 소속지역, 사용자 단말기의 컨텐츠 저장영역에 저장된 컨텐츠의 식별정보(ID, 이름 등) 및 사용자 단말기의 유휴시간인 전송시간 등이 기록되며, 추가로 사용자 단말기의 활성화 여부, 사용자 정보(성명 또는 아이디) 및 정산을 위한 계좌정보 등이 기록될 수도 있다. 이때, 사용자 정보나 계좌정보 등은 별도의 테이블로 분리하여 관리할 수도 있다. 또한, 저장용량은 사용자 단말기에서 컨텐츠가 저장되는 저장영역의 전체 크기 또는 사용자 단말기에서 컨텐츠의 저장 및 클라이언트로의 전송을 위해 미리 계약된 용량이 될 수 있다.As shown in Table 1, the terminal information table includes the user ID, terminal type, storage capacity of the user terminal (size of the storage area in which the content is stored), affiliation region, and identification information (ID, name) of contents stored in the content storage area of the user terminal. Etc.) and a transmission time, which is an idle time of the user terminal, may be recorded. Additionally, activation of the user terminal, user information (name or ID), and account information for settlement may be recorded. In this case, user information or account information may be managed separately in a separate table. In addition, the storage capacity may be the total size of the storage area in which the content is stored in the user terminal or a capacity contracted in advance for storing the content in the user terminal and transmitting the content to the client.

랭킹정보는 각 사용자 단말기(110)가 이전에 클라이언트(120)로 컨텐츠를 전송한 속도 등에 기반한 학습데이터를 바탕으로 하여 생성되는 정보로서, 전체 사용자 단말기의 전송속도에 따른 우선순위 정보이다. 랭킹정보는 클라이언트(120)가 각 사용자 단말기(110)에 접속하기 위한 접속정보를 포함한다. 랭킹정보에는 각 사용자 단말0기(110)의 대역폭(Bandwidth) 뿐만 아니라 각 클라이언트(120)에 대하여 지역적인 인접성 또한 반영될 수 있다.The ranking information is generated based on learning data based on the speed at which each user terminal 110 previously transmits the content to the client 120, and the priority information according to the transmission speeds of all user terminals. The ranking information includes access information for the client 120 to access each user terminal 110. The ranking information may reflect not only the bandwidth of each user terminal 0 110 but also local proximity to each client 120.

한편, 본 발명에 따른 컨텐츠는 일정 크기의 블록으로 분할하여 관리되고, 각각의 블록은 다시 더 작은 크기의 서브 블록으로 분할하여 관리되며, 클라이언트(120)가 컨텐츠를 다운로드할 때 블록 또는 서브 블록 단위로 다운로드할 수 있다. 각각의 블록 및 서브블록은 인덱싱 정보에 의해 식별된다. 바람직하게는, 각 블록의 크기가 약 8Mb(2의 23승)가 되도록 하고, 서브 블록의 크기는 32Kb(2의 15승)가 되도록 한다. 따라서, 대용량의 컨텐츠를 블록/서브 블록 단위로 분할함으로써 CDN 사업자 시스템(100)과 사용자 단말기(110)의 에이전트가 컨텐츠를 보다 용이하게 관리할 수 있다. 여기서, 블록과 서브 블록의 크기를 각기 8Mb와 32Kb로 설정하는 것은 각각을 인덱스하여 관리하기 위한 인덱싱 정보를 최소화하여 관리정보를 최적화하기 위함이다. 구체적으로, 각각의 블록은 그 크기가 8Mb(2의 23승)이므로 인덱싱 정보로 3Byte를 할당하여 관리할 수 있으며, 각각의 서브 블록은 그 크기가 32Kb(2의 15승)이므로 인덱싱 정보로 2Byte를 할당하여 관리할 수 있다. Meanwhile, the content according to the present invention is managed by dividing it into blocks of a predetermined size, and each block is managed by dividing it into sub-blocks of a smaller size, and when the client 120 downloads the content, each block or sub-block unit is used. You can download it as Each block and subblock is identified by indexing information. Preferably, the size of each block is about 8 Mb (23 power of 2), and the size of the sub block is 32 Kb (15 power of 2). Accordingly, by dividing a large amount of content into block / sub block units, the CDN operator system 100 and the agent of the user terminal 110 may manage the content more easily. Here, the size of the block and the sub-block is set to 8Mb and 32Kb, respectively, in order to optimize the management information by minimizing the indexing information for managing each index. Specifically, since each block has a size of 8Mb (23 powers of 2), it can be managed by allocating 3 bytes as indexing information. Since each subblock is 32Kb (15 powers of 2), it is 2Bytes as indexing information. Can be assigned to manage.

이러한 방식으로 관리되는 1개의 파일은 최대 8Mb × 32Kb = 256Gb 크기의 파일까지 인덱싱 정보(5Byte)로 관리할 수 있게 된다. 또한, 하나의 컨텐츠를 작은 블록/서브 블록 단위로 분할함으로써 컨텐츠의 분산 저장이 가능해지고, CDN 사업자 시스템(100), 사용자 단말기(110), 그리고 클라이언트(120) 사이에 컨텐츠 전송을 쉽고 빠르게 수행할 수 있다. 구체적으로, 하나의 컨텐츠를 하나의 사용자 단말기로부터 클라이언트로 전송하는 것에 비해, 블록 단위로 여러 사용자 단말기로부터 분할하여 클라이언트에 동시 전송함으로써 빠른 시간에 대용량 컨텐츠를 전송할 수 있게 된다. 또한, 각 사용자 단말기(110)로부터 클라이언트(120)로 컨텐츠를 전송함에 있어 특정 블록에 병목이 발생할 경우 나머지 사용자 단말기를 통해 크기가 더 작은 서브 블록 단위로 해당 블록을 전송함으로써 병목문제를 해결하여 원활한 전송효율을 제공할 수 있게 된다.One file managed in this manner can be managed with indexing information (5 bytes) up to a file size up to 8Mb × 32Kb = 256Gb. In addition, by dividing one content into small block / sub block units, it is possible to distribute and store the content, and to easily and quickly perform content transmission between the CDN operator system 100, the user terminal 110, and the client 120. Can be. Specifically, compared to transmitting one content from one user terminal to a client, a large amount of content can be transmitted in a short time by dividing it from several user terminals in block units and simultaneously transmitting the same to the client. In addition, if a bottleneck occurs in a specific block in transmitting content from each user terminal 110 to the client 120, the bottleneck problem may be smoothed by transmitting the corresponding block in units of smaller sub-blocks through the remaining user terminals. It is possible to provide a transmission efficiency.

사용자 단말기(110)는 CDN 사업자 시스템(100)으로부터 컨텐츠를 전송받아 저장하고 있다가 각 클라이언트(120)의 요청에 의해 해당 컨텐츠를 전송해주는 단말기(예컨대, 셋탑박스, PC, 휴대전화 및 PDA 등)로서, CDN 사업자 시스템(100)으로부터 전송되는 컨텐츠를 저장장치의 저장영역에 저장하는 에이전트가 설치되어 있다. 사용자 단말기(110)의 에이전트는 CDN 사업자 시스템(100)으로부터 다운로드하여 설치할 수 있다.The user terminal 110 receives and stores the content from the CDN operator system 100 and transmits the corresponding content at the request of each client 120 (eg, set-top box, PC, mobile phone, PDA, etc.). As an example, an agent is provided for storing contents transmitted from the CDN operator system 100 in a storage area of the storage device. The agent of the user terminal 110 may be downloaded and installed from the CDN operator system 100.

클라이언트(120)는 각 사용자 단말기(110)에 컨텐츠를 블록 단위로 요청하여 다운로드받는 단말기(예컨대, 셋탑박스, PC, 휴대전화 및 PDA 등)로서, 컨텐츠 전송 요청 및 다운로드를 위한 에이전트가 설치되어 있다. 클라이언트(120)의 에이전트 역시 CDN 사업자 시스템(100)으로부터 다운로드하여 설치할 수 있다. 이때 클라이언트(120)와 사용자 단말기(110)의 에이전트는 동일하게 구성할 수도 있다.The client 120 is a terminal (eg, a set-top box, a PC, a mobile phone, a PDA, etc.) that requests and downloads content from each user terminal 110 in block units, and an agent for content transmission request and download is installed. . The agent of the client 120 may also download and install from the CDN operator system 100. In this case, the agent of the client 120 and the user terminal 110 may be configured in the same manner.

그리고 클라이언트(120)의 에이전트는, CDN 사업자 시스템(100)으로부터 해당 클라이언트(120)가 다운로드하여야 할 컨텐츠(예컨대, 새로 업데이트된 컨텐츠)의 정보(식별정보 포함) 및 해당 컨텐츠에 대한 랭킹정보를 수신하고, 랭킹정보에 따라 해당 컨텐츠의 각 블록과 각 사용자 단말기(110)를 매핑한 후 각 사용자 단말기(110)에 해당 컨텐츠의 각 블록의 전송을 요청하여 다운로드한다.The agent of the client 120 receives information (including identification information) of the content (eg, newly updated content) to be downloaded by the client 120 from the CDN operator system 100 and ranking information on the corresponding content. After mapping each block of the corresponding content and each user terminal 110 according to the ranking information, the user terminal 110 requests the transmission of each block of the corresponding content and downloads it.

또한, 클라이언트(120)의 에이전트는 각 블록의 수신 중 특정 블록에서 병목이 발생할 경우, 병목이 발생한 블록에 대하여 각 사용자 단말기(110)에 서브블록의 전송을 요청하여 다운로드한다. 이때, 각 블록 및 서브블록의 식별은 인덱싱 정보에 의해 이루어진다.In addition, when a bottleneck occurs in a specific block during reception of each block, the agent of the client 120 requests the user terminal 110 to transmit a subblock to the block in which the bottleneck occurs and downloads it. At this time, identification of each block and subblock is made by indexing information.

도 3은 본 발명의 제 1 실시예에 따른 컨텐츠 전송 시스템의 전체 동작 절차를 도시한 순서도이다.3 is a flowchart illustrating the overall operation of the content delivery system according to a first embodiment of the present invention.

컨텐츠 전송에 앞서 본 발명에 따른 CDN 사업자 시스템(100)은 본 발명에 따른 서비스를 이용하는 사용자 단말기들(110)과 클라이언트(120)에 대한 정보를 소정의 서비스 가입절차나 등록절차 등을 통해 등록받아 저장 및 관리하고 있다. 예컨대, CDN 사업자 시스템(100)은 각 사용자 단말기(110)의 단말기 정보 테이블, 랭킹 정보, CDN 사업자의 전체 컨텐츠 리스트, 및 클라이언트(120)가 다운로드 받은 컨텐츠 리스트 등을 저장하고 있다.Prior to the content transmission, the CDN operator system 100 according to the present invention receives information about user terminals 110 and the client 120 using the service according to the present invention through a predetermined service subscription procedure or registration procedure. Storage and management. For example, the CDN provider system 100 stores a terminal information table of each user terminal 110, ranking information, a complete list of contents of the CDN provider, a list of contents downloaded by the client 120, and the like.

도 3을 참조하여 본 발명의 제 1 실시예에 따른 컨텐츠 전송 시스템의 전체 동작 절차를 설명하면 이하와 같다.The overall operation of the content delivery system according to the first embodiment of the present invention will be described with reference to FIG. 3.

제 1 단계(S1): 각 사용자 단말기(110)는 컨텐츠를 전송할 수 있는 상태가 되면 CDN 사업자 시스템(100)에 유휴상태를 보고한다. 구체적으로, 사용자 단말기(110)의 에이전트가 사용자 단말기(110) 및 네트워크의 사용상태를 모니터링하여 일정 시간 동안 사용이 없으면 유휴상태로 판단하여 이를 CDN 사업자 시스템(100)으로 보고한다. 이 경우, 사용자 단말기(110)의 유휴상태 모니터링은 일반적인 운영체제에서 제공하는 절전모드/화면보호모드와 연동하여 처리할 수 있다. 한편, CDN 사업자 시스템(100)이 단말기 정보 테이블에 미리 등록된 정보(전송시간)를 통해 사용자 단말기(110)의 유휴상태를 판단할 수도 있다.First step (S1): Each user terminal 110 reports the idle state to the CDN operator system 100 when it is in a state capable of transmitting content. In detail, the agent of the user terminal 110 monitors the use state of the user terminal 110 and the network, and if there is no use for a predetermined time, determines that it is idle and reports it to the CDN operator system 100. In this case, the idle state monitoring of the user terminal 110 may be processed in conjunction with the power saving mode / screen protection mode provided by the general operating system. Meanwhile, the CDN operator system 100 may determine the idle state of the user terminal 110 through information (transmission time) registered in advance in the terminal information table.

제 2 단계(S2): 클라이언트(120)의 에이전트는 클라이언트의 전원이 켜지면 CDN 사업자 시스템(100)에 이를 보고하고, 전송받을 컨텐츠가 있는지 확인하여 있으면 설정된 전송 요청 시점에 해당 컨텐츠의 전송을 요청한다. 이때, 클라이언트(120)의 컨텐츠 요청 시점은, 첫째 클라이언트의 전원이 온 되었을 때, 둘째 클라이언트가 컨텐츠 전송을 미리 예약한 시간, 셋째 주기적인 일정 시간 간격, 넷째 클라이언트의 에이전트가 클라이언트의 사용을 모니터링하여 일정 시간 사용이 없는 유휴상태(예를 들어, 30분 이상 유휴상태)일 때 등으로 설정할 수 있다.Second step (S2): The agent of the client 120 reports this to the CDN operator system 100 when the client is powered on, and checks whether there is content to be transmitted and requests the transmission of the corresponding content at the set transmission request time. do. At this time, the content request time of the client 120, when the first client is powered on, the second client scheduled the content transmission in advance, the third periodic time interval, the fourth client's agent monitors the client's use It may be set to an idle state (eg, idle state for 30 minutes or more) without using a certain time.

특히, 네번째 유휴상태에 컨텐츠를 전송하는 경우를 살펴보면, 통상적으로 클라이언트(120)가 컨텐츠를 다운로드하기 위하여는 CDN 사업자 시스템(100)으로부터 수신되는 랭킹정보를 따라 각각의 사용자 단말기(110)를 매핑하여 해당 컨텐츠의 각 블록을 전송 요청하는 동작을 수행하게 되는데, 만일 클라이언트가 동작 중(예를 들어, 저장된 컨텐츠를 재생)일 때 클라이언트가 각 사용자 단말기(110)에 컨텐츠를 요청 및 다운로드할 경우 클라이언트(120)에 부하가 발생하여 성능이 저하되고 이로 인해 현재 수행중인 동작에 대한 서비스 품질이 떨어질 수 있다. 따라서, 바람직하게 클라이언트가 유휴상태일 때 컨텐츠의 다운로드를 수행함으로써 일정 서비스 품질을 확보할 수 있다.In particular, referring to the case of transmitting content in a fourth idle state, in order to download the content, the client 120 typically maps each user terminal 110 according to the ranking information received from the CDN operator system 100. An operation of requesting transmission of each block of the corresponding content is performed. If the client requests and downloads content to each user terminal 110 when the client is in operation (for example, playing stored content), the client ( A load may be generated at 120 to deteriorate the performance, which may result in a deterioration in the quality of service for an operation currently being performed. Therefore, it is possible to secure a certain quality of service by preferably downloading the content when the client is idle.

또한 두번째 예약된 시간 및 세번째 주기적인 시간 간격으로 컨텐츠를 다운로드하는 경우에는 해당 시점에 클라이언트(120)의 전원이 오프(off) 상태라 할지라도 웨이크업 절차를 통해 활성화되어 컨텐츠 전송 요청을 처리할 수 있다. 즉, 셋탑박스(STB)를 예로 들면, 후면의 전원 스위치가 오프(off)된 경우는 전원 케이블을 빼 놓은 것과 같이 완전히 전원이 오프(off)된 상태이지만, 후면의 전원스위치가 온되고 전면의 전원 스위치가 오프(off)된 경우에는 완전한 오프(off) 상태라기보다는 일종의 슬립(sleep) 모드라고 할 수 있다. 따라서, 후자의 경우에 대하여, 셋탑박스(STB) 내부에 타이머가 구비된 경우 클라이언트(120)의 에이전트는 별도의 스케줄러를 이용하여 예약 시간이나 주기적으로 설정된 시간 등에 셋탑박스(STB)의 전원이 자동으로 온(on)되도록 한 후, 컨텐츠의 다운로드를 수행할 수 있다. 반면, 셋탑박스(STB)에 타이머가 구비되지 않은 경우, CDN 사업자 시스템(100)이 예약 시간이나 주기적으로 설정된 시간이 되면 셋탑박스(STB)를 웨이크-업(wake-up) 시키기 위한 별도의 신호를 전송하여 셋탑박스(STB)의 전원을 온(on) 시킨 후 컨텐츠의 다운로드를 진행할 수도 있다.In addition, in the case of downloading the content at the second scheduled time and the third periodic time interval, even if the power of the client 120 is off at that time, it is activated through a wake-up procedure to process the content transmission request. have. In other words, for example, when the power switch on the rear side of the set-top box (STB) is off, the power is completely turned off as if the power cable is removed. When the power switch is off, it is a kind of sleep mode rather than a complete off state. Therefore, in the latter case, when a timer is provided in the set-top box (STB), the agent of the client 120 automatically uses a separate scheduler to automatically set the power of the set-top box (STB) to a reservation time or a periodically set time. After turning on, the content can be downloaded. On the other hand, when the timer is not provided in the set-top box (STB), when the CDN operator system 100 is a predetermined time or periodically set time, a separate signal for waking up the set-top box (STB) After transmitting the power of the set-top box (STB) (on), the content may be downloaded.

제 3 단계(S3): CDN 사업자 시스템(100)은 해당 클라이언트(120)가 전송받을 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 전송 요청한 클라이언트(120)로 전송한다.Third Step (S3): The CDN provider system 100 transmits the information of the content to be transmitted by the client 120 and the ranking information for the corresponding content to the client 120 requesting the transmission.

이때 컨텐츠 정보는 CDN 사업자 시스템(100)에 업데이트되어 클라이언트(120)가 아직 수신하지 않은 컨텐츠로서, 전체 컨텐츠 리스트와 각 클라이언트(120)의 컨텐츠 리스트를 비교하여 추출할 수 있다. 그리고 전송되는 컨텐츠 정보에는, 컨텐츠의 식별정보(ID), 이름, 용량 등을 포함하며, 블록 및 서브 블록에 대한 인덱싱 정보를 포함할 수 있다. 이때, 인덱싱 정보는 클라이언트(120)가 각 사용자 단말기(110)에 컨텐츠의 블록단위 전송을 요청함에 있어, 클라이언트(120)와 사용자 단말기(110) 간에 전송요청하거나 전송되는 블록을 식별하기 위한 일종의 식별정보이다. 한편, 블록 및 서브 블록에 대한 인덱싱 정보는 CDN 사업자 시스템(100), 클라이언트(120), 및 사용자 단말기(110) 간에 공통으로 미리 설정되어 사용되므로, CDN 사업자 시스템(100)이 별도의 인덱싱 정보를 전송하지 않을 수도 있다. 이 경우, 클라이언트(120)의 에이전트는 해당 컨텐츠의 전체 용량을 통해 해당 컨텐츠가 몇 개의 블록으로 이루어졌는지 파악할 수 있다.In this case, the content information is updated in the CDN operator system 100 and is content that the client 120 has not yet received. The content information may be extracted by comparing the entire content list with the content list of each client 120. The transmitted content information may include identification information (ID), name, capacity, and the like of the content, and may include indexing information about the block and the sub block. In this case, the indexing information is a kind of identification for identifying a block that is requested to be transmitted or transmitted between the client 120 and the user terminal 110 when the client 120 requests each user terminal 110 to transmit a block unit of content. Information. On the other hand, since the indexing information for the block and the sub-blocks are preset and used in common between the CDN operator system 100, the client 120, and the user terminal 110, the CDN operator system 100 to separate indexing information It may not transmit. In this case, the agent of the client 120 may determine how many blocks the corresponding content is made through the total capacity of the corresponding content.

또한, 랭킹정보는 학습데이터를 통해 생성되는 각 사용자 단말기(110)의 전송속도에 따른 우선순위 정보로서, CDN 사업자 시스템(100)은 전체 사용자 단말기(110)의 랭킹정보 중 해당 컨텐츠를 저장하고 있는 사용자 단말기(110)의 랭킹정보를 추출하여 전송한다. 구체적으로, CDN 사업자 시스템(100)은 등록된 전체 사용자 단말기(110)에 대하여 학습데이터에 의해 전체 랭킹정보를 생성 및 관리한다. CDN 사업자 시스템(100)은 상기 전체 랭킹정보 중에서 전송 요청한 클라이언트(120)가 전송받을 컨텐츠를 저장하고 있는 사용자 단말기(110)를 추출하여 해당 컨텐츠에 대한 랭킹정보를 생성 및 전송한다. 이러한 클라이언트(120)에게 전송되는 랭킹정보는 전체 랭킹정보와 단말기 정보 테이블을 매칭시킴으로써 수행될 수 있다. 랭킹정보에는 IP 등 클라이언트(120)가 각 사용자 단말기(110)에 접속하기 위한 접속정보가 포함된다.In addition, the ranking information is priority information according to the transmission speed of each user terminal 110 generated through the learning data, the CDN operator system 100 stores the corresponding content of the ranking information of the entire user terminal 110 The ranking information of the user terminal 110 is extracted and transmitted. In detail, the CDN operator system 100 generates and manages overall ranking information based on learning data for all registered user terminals 110. The CDN operator system 100 extracts the user terminal 110 that stores the content to be transmitted by the client 120 that has requested the transmission from the overall ranking information, and generates and transmits the ranking information for the corresponding content. The ranking information transmitted to the client 120 may be performed by matching the overall ranking information with the terminal information table. The ranking information includes access information for connecting the user terminal 110 to the client 120 such as an IP.

한편, 랭킹정보가 적어도 하나 이상의 소스 노드(Source Node; 사용자 단말기 등 컨텐츠를 전송하는 구성부)를 포함하여야 함은 물론이다. 구체적으로, 본 발명의 시스템을 처음 적용할 경우 또는 새로 업데이트된 컨텐츠에 대하여는 해당 컨텐츠를 보유하고 있는 사용자 단말기(110)가 하나도 없고, 단지 CDN 사업자 시스템(100)만이 해당 컨텐츠를 저장하고 있을 것이므로 랭킹정보에는 1개의 소스 노드, 즉 CDN 사업자 시스템만이 포함될 것이다(따라서, 랭킹정보가 null이 될 수는 없다). 이 경우 클라이언트(120)는 CDN 사업자 시스템(100)으로부터 컨텐츠를 다운로드 받게 된다. 이후 컨텐츠의 다운로드가 계속되면서 해당 컨텐츠를 보유하고 있는 사용자 단말기(110)가 늘어나게 될 것이고, 랭킹정보에 포함된 사용자 단말기(110)의 수 역시 증가할 것이다. 그러나 클라이언트(120)가 컨텐츠를 다운로드 받는데 의미 있는 것은 사용자 단말기(110)의 전체 랭킹정보가 아니라 상위 몇 개이므로, 해당 컨텐츠를 보유하고 있는 사용자 단말기(110)가 수백 내지 수만 개이더라도 랭킹정보는 그 중 상위 랭크된 몇 개의 사용자 단말기 리스트만을 전송하도록 한다. 이때, 전송되는 랭킹정보의 수(랭킹정보에 포함된 사용자 단말기 수)는 클라이언트의 성능에 따라 조절된다. 이는 클라이언트(120)의 성능이 떨어질 경우 각 사용자 단말기(110)에 컨텐츠를 요청 및 수신하는 것도 부하를 발생하기 때문이다. 따라서, 랭킹정보의 수는 학습데이터에 의해 결정하되 바람직하게는 10 내지 15개가 되도록 한다.Meanwhile, the ranking information should of course include at least one source node (a component for transmitting content such as a user terminal). Specifically, when the system of the present invention is applied for the first time or newly updated contents, no user terminal 110 holds the corresponding contents, and only the CDN service provider system 100 stores the corresponding contents. The information will contain only one source node, i.e. the CDN provider system (and thus the ranking information cannot be null). In this case, the client 120 downloads the content from the CDN operator system 100. Thereafter, as the download of the content continues, the number of user terminals 110 holding the corresponding contents will increase, and the number of user terminals 110 included in the ranking information will also increase. However, since the client 120 downloads the content, the meaning is not the overall ranking information of the user terminal 110 but the top few, so that the ranking information may be hundreds or tens of thousands of the user terminals 110 having the corresponding content. Only a few of the highest ranked user terminal list is transmitted. At this time, the number of ranking information transmitted (the number of user terminals included in the ranking information) is adjusted according to the performance of the client. This is because requesting and receiving content from each user terminal 110 also generates a load when the performance of the client 120 decreases. Therefore, the number of ranking information is determined by the learning data, but preferably 10 to 15 pieces.

그리고 랭킹정보는 컨텐츠 별로 생성 및 관리되거나 각 컨텐츠의 각 블록별로 생성 및 관리될 수 있다. 이는 각 사용자 단말기(110)가 각 컨텐츠의 전체 블록을 보유하고 있지 않고 일부만을 보유하고 있을 수도 있기 때문이다. 바람직하게는, 초기에 컨텐츠의 종류가 적을 경우에는 각 블록별로 랭킹정보를 관리하고, 이후 컨텐츠의 종류가 많아지면 CDN 사업자 시스템(100)에 부하가 발생하므로 컨텐츠 별로 랭킹정보를 생성 및 관리하도록 할 수도 있다.The ranking information may be generated and managed for each content or generated and managed for each block of each content. This is because each user terminal 110 may not have the entire block of each content but only some of them. Preferably, when the type of content is initially small, the ranking information is managed for each block, and when there are more types of content, the CDN provider system 100 generates a load, so that the ranking information for each content is generated and managed. It may be.

제 4 단계(S4): 클라이언트(120)는 랭킹정보의 각 사용자 단말기(110)의 순서대로 해당 컨텐츠의 각 블록을 매핑하고, 랭킹정보에 포함된 접속정보를 이용하여 각 사용자 단말기(110)에 접속하여 각 블록의 전송을 요청한다. 이때, 각 블록은 인덱싱 정보에 의해 식별된다.Fourth Step (S4): The client 120 maps each block of the corresponding content in the order of the respective user terminals 110 of the ranking information, and uses the access information included in the ranking information to the respective user terminals 110. Connect and request transmission of each block. At this time, each block is identified by indexing information.

제 5 단계(S5): 각 사용자 단말기(110)는 요청된 컨텐츠의 각 블록을 해당 클라이언트(120)로 전송한다. 이때, 클라이언트(120)는 각 블록의 다운로드에 대한 기준속도를 설정하고, 각 사용자 단말기(110)의 전송속도를 모니터링한다. 그리고 특정 사용자 단말기의 전송속도가 기준속도보다 떨어질 경우, 클라이언트(120)는 해당 사용자 단말기(110)에 병목이 발생한 것으로 판단하고, 해당 사용자 단말기(110)가 전송중이던 블록에 대하여 나머지 사용자 단말기(110)에 서브 블록 단위로 전송 요청한다. 한편, 각 사용자 단말기(110)의 전송속도가 상이하므로 기준 속도를 획일적으로 설정하지 않고, 각 사용자 단말기(110)의 랭킹에 따라 차별적으로 설정할 수도 있다. 한편, 사용자 단말기(110)의 네트워크 속도가 전체적으로 저하되거나 장애가 발생할 경우, CDN 사업자 시스템(100)에서 해당 클라이언트(120)에 직접 컨텐츠를 전송하여 서비스 품질에 대한 안정성을 확보할 수도 있다.Fifth Step (S5): Each user terminal 110 transmits each block of the requested content to the corresponding client 120. At this time, the client 120 sets the reference speed for the download of each block, and monitors the transmission speed of each user terminal 110. When the transmission speed of the specific user terminal is lower than the reference speed, the client 120 determines that the bottleneck has occurred in the corresponding user terminal 110, and the remaining user terminal 110 with respect to the block that the user terminal 110 is transmitting. Request transmission in sub-block units. On the other hand, since the transmission speed of each user terminal 110 is different, the reference speed may not be uniformly set, but may be set differently according to the ranking of each user terminal 110. On the other hand, if the overall network speed of the user terminal 110 or a failure occurs, the CDN operator system 100 may transmit the content directly to the client 120 to ensure the stability of the service quality.

한편, 각 사용자 단말기(110)가 각 컨텐츠에 대하여 전체 블록을 보유하지 않고 일부만을 보유하고 있는 경우에는 제4 단계(S4)에서 클라이언트(120)가 요청한 블록이 해당 사용자 단말기(110)에 없을 수 있다. 이 경우 해당 사용자 단말기(110)는 클라이언트(120)로 요청된 블록이 없음을 응답하고, 클라이언트(120)는 해당 사용자 단말기(110)를 제외한 랭킹정보의 나머지 사용자 단말기(110)를 이용하여 다운로드를 진행한다.On the other hand, if each user terminal 110 does not hold the entire block for each content, but only a part of the block, the block requested by the client 120 in the fourth step (S4) may not exist in the user terminal 110. have. In this case, the user terminal 110 responds that there is no block requested by the client 120, and the client 120 uses the remaining user terminal 110 of the ranking information except for the user terminal 110 to download. Proceed.

제 6 단계(S6): 클라이언트(120)는 해당 컨텐츠의 전체 블록이 수신되었는지 판단하며, 전체 블록이 수신될 때까지 제 4 단계(S4)와 제 5 단계(S5)를 반복 수행한다.Sixth Step S6: The client 120 determines whether all blocks of the corresponding content have been received, and repeats the fourth step S4 and the fifth step S5 until all the blocks are received.

제 7 단계(S7): 클라이언트(120)는 전체 블록의 수신이 완료되면, CDN 사업자 시스템(100)으로 로그 데이터를 전송한다. 로그 데이터는, 각 사용자 단말기의 전송속도를 포함하며, 병목이 발생한 경우 병목이 발생한 블록(인덱싱 정보)과 해당 사용자 단말기 등의 정보, 즉 error report를 포함한다.Seventh Step S7: When the reception of the entire block is completed, the client 120 transmits log data to the CDN operator system 100. The log data includes a transmission speed of each user terminal, and includes a block (indexing information) in which the bottleneck occurs and information on the corresponding user terminal, that is, an error report when the bottleneck occurs.

제 8 단계(S8): CDN 사업자 시스템(100)은 로그 데이터를 분석하고 학습데이터를 랭킹정보에 반영하여 랭킹정보를 업데이트한다. 또한, CDN 사업자 시스템(100)은 각 사용자 단말기(110)의 컨텐츠 전송 내역을 통계 관리한다. Eighth Step (S8): The CDN operator system 100 analyzes the log data and updates the ranking information by reflecting the learning data in the ranking information. In addition, the CDN operator system 100 statistically manages the content transmission history of each user terminal 110.

이후, 클라이언트(120)가 컨텐츠 이용요금을 지불하면, CDN 사업자는 등록된 사용자와 정산하여 컨텐츠 전송에 따른 이익의 일부를 사용자에게 지불하도록 한다. 즉, CDN 사업자 시스템(100)은 각 사용자 단말기(120)의 컨텐츠 전송 횟수 및 전송량 등을 이용하여 사용자의 리소스 사용량을 산출한 후 이에 따른 보상을 각 사용자에게 지급한다. 이때, 사용자에게 지급되는 보상은 현금 또는 포인트 등 다양한 형태로 이루어질 수 있다.Thereafter, when the client 120 pays the content usage fee, the CDN service provider pays a part of the profits from the content transmission by paying the registered user. That is, the CDN operator system 100 calculates the resource usage of the user by using the number of contents transmission and the amount of transmission of each user terminal 120, and then pays the compensation accordingly. In this case, the reward paid to the user may be made in various forms such as cash or points.

이어서, 각 단계들의 구체적인 실시 형태에 대하여 보다 자세히 설명하면 다음과 같다.Next, a detailed embodiment of each step will be described in detail.

도 4는 본 발명에 따라 클라이언트(120)와 CDN 사업자 시스템(100) 간에 컨텐츠 정보를 전달하는 과정(S2,S3)을 도시한 세부 흐름도로서, (a)는 CDN 사업자 시스템(100)이 클라이언트(120)가 다운로드 받아야 할 각 컨텐츠에 대하여 개별적으로 랭킹정보를 전송하는 예이고, (b)는 CDN 사업자 시스템이 클라이언트가 다운로드 받아야 할 컨텐츠 리스트의 전체 컨텐츠에 대한 랭킹정보를 전송하는 예이다. 즉, 도 4는 클라이언트(120)가 웨이크 업(wake up) 상태가 되어 CDN 사업자 시스템(100)에 접속하여 다운로드 받아야 될 컨텐츠의 정보를 요청하여 수신하는 과정의 상세 흐름도이다.4 is a detailed flowchart illustrating a process (S2, S3) of transferring content information between the client 120 and the CDN operator system 100 according to the present invention, (a) shows that the CDN operator system 100 is a client ( 120 is an example of transmitting ranking information individually for each content to be downloaded, and (b) is an example in which the CDN provider system transmits the ranking information for the entire contents of the content list to be downloaded by the client. That is, FIG. 4 is a detailed flowchart of a process in which the client 120 wakes up and requests and receives information of content to be downloaded by accessing the CDN operator system 100.

도 4에서는 클라이언트(120)가 다운로드 받아야 할 컨텐츠가 A, B, C, ... 인 경우를 가정한다.In FIG. 4, it is assumed that the content to be downloaded by the client 120 is A, B, C, ....

먼저, 도 4의 (a)에 도시한 바와 같이, 클라이언트(120)가 웨이크 업(wake up) 상태가 되어 CDN 사업자 시스템(100)에 접속하여 다운로드 받아야 할 컨텐츠를 문의하면, CDN 사업자 시스템(100)은 해당 클라이언트(120)가 다운로드 받아야할 컨텐츠 중 첫 번째 컨텐츠(컨텐츠 A)의 정보와 해당 컨텐츠에 대한 랭킹정보를 전송한다(S41,S42). 클라이언트(120)는 컨텐츠 A의 정보 및 랭킹정보를 이용하여 각 사용자 단말기(110)로부터 컨텐츠 A를 다운로드받는다(S43).First, as shown in FIG. 4A, when the client 120 wakes up and accesses the CDN provider system 100 to inquire content to be downloaded, the CDN provider system 100 ) Transmits the information of the first content (content A) among the content to be downloaded by the client 120 and the ranking information for the corresponding content (S41, S42). The client 120 downloads the content A from each user terminal 110 using the content A information and the ranking information (S43).

다운로드 완료 후 클라이언트(120)가 로그 데이터를 CDN 사업자 시스템(100)으로 전송하여 컨텐츠 A의 다운로드 완료를 보고하면, CDN 사업자 시스템(100)은 클라이언트(120)가 다음으로 다운로드하여야 할 컨텐츠(컨텐츠 B)의 정보와 컨텐츠 B에 대한 랭킹정보를 전송한다(S44,S45).After the download is completed, when the client 120 transmits log data to the CDN operator system 100 to report the completion of the download of the content A, the CDN provider system 100 transmits the content that the client 120 should download next (content B). Information and ranking information for the content B are transmitted (S44 and S45).

이러한 과정은 해당 클라이언트가 다운로드 받아야 할 전체 컨텐츠를 다운로드할 때까지 반복 수행된다. 이와 같이 도 4의 (a)는 각 컨텐츠에 대한 랭킹정보 생성과 각 컨텐츠의 다운로드에 대한 제어에 따른 부담(cost)을 CDN 사업자 시스템(100)에 집중하는 실시 형태이다.This process is repeated until the client downloads the entire content to be downloaded. As shown in FIG. 4A, the CDN provider system 100 concentrates the cost of generating ranking information for each content and controlling the download of each content.

이에 반해, 도 4의 (b)는 각 컨텐츠에 대한 랭킹정보 생성 및 다운로드에 대한 제어에 대한 부담(cost)을 각 클라이언트(120)로 분산하는 실시 형태이다. 즉, 도 4의 (b)에 도시한 바와 같이, 클라이언트(120)가 웨이크 업(wake up) 상태가 되어 CDN 사업자 시스템(100)에 접속하여 다운로드 받아야 할 컨텐츠를 문의하면, CDN 사업자 시스템(100)은 해당 클라이언트가 다운로드 받아야할 컨텐츠의 리스트(A, B, C, ...)와 전체 랭킹정보를 전송한다(S41,S46).In contrast, FIG. 4B illustrates an embodiment in which a cost for controlling generation and download of ranking information for each content is distributed to each client 120. That is, as shown in (b) of FIG. 4, when the client 120 wakes up and accesses the CDN provider system 100 to inquire content to be downloaded, the CDN provider system 100 ) Transmits the list of contents (A, B, C, ...) and overall ranking information to be downloaded by the client (S41, S46).

클라이언트(120)는 컨텐츠 리스트 중 첫 번째 컨텐츠(컨텐츠 A)에 대하여 랭킹정보를 추출한 후 각 사용자 단말기(110)로부터 컨텐츠 A를 다운로드 받는다(S47). 이후, 클라이언트(120)는 컨텐츠 리스트 중 다음 컨텐츠(컨텐츠 B)에 대하여 랭킹정보를 추출한 후, 각 사용자 단말기(110)로부터 컨텐츠 B를 다운로드받는다(S48). 이때, 클라이언트(120)가 전체 랭킹정보로부터 각 컨텐츠에 대한 랭킹 정보를 추출할 수 있도록, CDN 사업자 시스템(100)은 컨텐츠 리스트, 전체 랭킹정보와 함께 각 컨텐츠를 구비하는 사용자 단말기(110)의 리스트를 전송하는 것이 바람직하다.The client 120 extracts ranking information on the first content (content A) of the content list and downloads the content A from each user terminal 110 (S47). Thereafter, the client 120 extracts ranking information about the next content (content B) from the content list and downloads the content B from each user terminal 110 (S48). At this time, the CDN provider system 100 is a list of the user terminal 110 having each content with the content list, the overall ranking information, so that the client 120 can extract the ranking information for each content from the overall ranking information It is desirable to send it.

컨텐츠 리스트의 전체 컨텐츠의 다운로드가 완료되면, 클라이언트(120)는 로그 데이터를 전송하고 다운로드 완료를 보고한다(S49). 한편, 각 컨텐츠의 전송이 완료될 때마다 로그 데이터를 전송하고 다운로드 완료를 보고할 수도 있다.When the download of the entire contents of the content list is completed, the client 120 transmits log data and reports the download completion (S49). Meanwhile, the log data may be transmitted and the download completion may be reported whenever transmission of each content is completed.

도 5는 본 발명에 따라 컨텐츠의 블록 단위 전송시 데이터 패킷의 구성의 예이다. 즉, 도 5는 컨텐츠를 각 블록 단위로 전송하기 위하여 클라이언트(120)와 사용자 단말기(110) 간에 주고받는 데이터 패킷의 구성을 도시한 것으로, 도 3의 전체 프로세스에서 제 4 단계(S4)와 제 5 단계(S5)에 해당한다.5 is an example of the configuration of a data packet in block-based transmission of content according to the present invention. That is, FIG. 5 illustrates a configuration of a data packet exchanged between the client 120 and the user terminal 110 in order to transmit content in units of blocks. In the overall process of FIG. Corresponds to step 5 (S5).

도 5를 참조하면, 클라이언트(120)가 컨텐츠 아이디(Contents ID)와 인덱싱(Indexing) 정보로 구성된 데이터 패킷을 전송하여 사용자 단말기(110)에 블록 전송을 요청하면, 사용자 단말기(110)는 요청된 컨텐츠의 블록을 전송한다. 이때 인덱싱(Indexing) 정보는 클라이언트가 전송을 요청하는 블록에 대한 인덱싱(Indexing) 정보이다. 이때, 클라이언트의 요청에 응답하여 사용자 단말기(110)가 전송하는 데이터 패킷은 도 5의 (a) 및 (b)와 같이 2가지 방식으로 구성할 수 있다. Referring to FIG. 5, when the client 120 requests a block transmission to the user terminal 110 by transmitting a data packet including a content ID and indexing information, the user terminal 110 requests a block transmission. Send a block of content. In this case, the indexing information is indexing information on a block for which the client requests transmission. At this time, the data packet transmitted by the user terminal 110 in response to the client request can be configured in two ways as shown in (a) and (b) of FIG.

먼저, 도 5의 (a)와 같이 사용자 단말기(110)는 클라이언트(120)의 요청에 대한 응답으로 컨텐츠 아이디(Contents ID), 인덱싱(Indexing) 정보, 요청된 블록 및 체크썸으로 구성된 데이터 패킷을 전송한다. 이때, 컨텐츠 아이디(Contents ID)와 인덱싱(Indexing) 정보는 클라이언트로부터 전송된 데이터 패킷에 포함된 정보와 동일한 값을 가지며, 헤더에 포함될 수 있다. 하지만, 이 경우 사용자 단말기(110)로부터 전송되는 컨텐츠의 블록은 클라이언트(120)로부터 전송 요청된 블록이므로, 컨텐츠 아이디(Contents ID)와 인덱싱(Indexing) 정보를 전송하지 않아도 클라이언트(120)는 해당 사용자 단말기(110)에서 전송하는 블록이 어떤 컨텐츠의 몇 번째 블록인지 식별할 수 있다. 따라서, 도 5의 (b)와 같이 사용자 단말기(110)는 요청된 블록만을 전송할 수도 있다. First, as shown in FIG. 5A, in response to a request of the client 120, the user terminal 110 stores a data packet including contents ID, indexing information, a requested block, and a checksum. send. In this case, the contents ID and the indexing information may have the same value as the information included in the data packet transmitted from the client and may be included in the header. However, in this case, since the block of content transmitted from the user terminal 110 is a block requested to be transmitted from the client 120, the client 120 does not transmit the content ID and the indexing information. The block transmitted by the terminal 110 may identify which block is what content. Therefore, as shown in FIG. 5B, the user terminal 110 may transmit only the requested block.

도 6은 본 발명에 따른 컨텐츠 전송시에 병목이 발생할 경우 처리 프로세스를 도시한 세부 순서도로서, 도 3의 제 5 단계(S5)에서 각 사용자 단말기(110)가 각 블록을 전송하는 과정에서 특정 블록에서 병목이 발생할 경우의 처리과정을 나타낸 도이다.FIG. 6 is a detailed flowchart illustrating a processing process when a bottleneck occurs during content transmission according to the present invention. In the fifth step S5 of FIG. 3, each user terminal 110 transmits a specific block. This is a diagram showing the treatment process when a bottleneck occurs in

먼저, 클라이언트(120)는 컨텐츠의 각 블록 전송을 사용자 단말기(110)에 요청함에 있어, 일정 기준 속도를 설정한다(예를 들어 2Mbps). 이때, 각 사용자 단말기(110)의 전송속도가 상이하므로 기준 속도를 획일적으로 설정하지 않고, 각 사용자 단말기(110)의 랭킹에 따라 차별적으로 설정할 수도 있다. 이후, 클라이언트(120)는 각 사용자 단말기(110)로부터 컨텐츠의 각 블록을 수신하면서 각 블록의 전송 속도를 확인하여 설정된 기준 속도보다 떨어지는 경우 병목이 발생한 것으로 판단한다(S5-1).First, the client 120 sets a certain reference rate (for example, 2Mbps) in requesting the user terminal 110 to transmit each block of content. In this case, since the transmission speed of each user terminal 110 is different, the reference speed may not be uniformly set, but may be set differently according to the ranking of each user terminal 110. Subsequently, the client 120 checks the transmission speed of each block while receiving each block of content from each user terminal 110 and determines that the bottleneck occurs when it is lower than the set reference speed (S5-1).

이어 클라이언트(120)는 병목이 발생한 블록에 대하여 해당 사용자 단말기(110)를 제외한 나머지 사용자 단말기(110)에 해당 블록을 서브 블록 단위로 전송할 것을 요청한다(S5-2). 이때, 서브 블록 역시 인덱싱 정보를 이용하여 식별된다. 구체적으로, 클라이언트(120)는 병목이 발생한 사용자 단말기를 제외한 나머지 사용자 단말기에 대하여 랭킹정보에 따라 병목이 발생한 블록의 서브 블록을 각 사용자 단말기에 매핑한 후 각 사용자 단말기(110)에 각 서브 블록의 전송을 요청한다. 한편, 각 사용자 단말기(110)에 서브 블록을 전송 요청함에 있어서, 바람직하게는 병목이 발생한 사용자 단말기로부터 이미 전송받은 부분은 제외하고 나머지 서브 블록에 대하여 전송을 요청하도록 한다.Subsequently, the client 120 requests the remaining user terminal 110 to transmit the corresponding block in sub-block units except for the corresponding user terminal 110 for the block in which the bottleneck occurs (S5-2). At this time, the sub block is also identified using the indexing information. Specifically, the client 120 maps the sub-blocks of the block in which the bottleneck occurs to the respective user terminals according to the ranking information for the remaining user terminals except for the user terminal in which the bottleneck occurs. Request the transfer. Meanwhile, in requesting transmission of a subblock to each user terminal 110, preferably, the transmission is requested for the remaining subblocks except for the portion already received from the user terminal having the bottleneck.

이에 따라 각 사용자 단말기(110)는 전송중이던 블록의 전송을 중단하고, 병목이 발생한 블록의 각 서브 블록을 전송한다(S5-3). 이와 같이 서브블록 단위로 전송을 요청하고 전송하는 단계(S5-2, S5-3)는 해당 블록의 전체 서브 블록이 모두 전송될 때까지 반복된다(S5-4).Accordingly, each user terminal 110 stops the transmission of the block being transmitted, and transmits each sub block of the block in which the bottleneck occurs (S5-3). In this way, steps S5-2 and S5-3 of requesting and transmitting transmissions in subblock units are repeated until all subblocks of the corresponding block are transmitted (S5-4).

해당 블록의 전체 서브 블록의 전송이 완료되면, 클라이언트(120)는 각 사용자 단말기(110)에 전송중이던 블록의 전송을 요청하고(S5-5), 각 사용자 단말기(110)는 전송중이던 블록을 전송한다(S5-6).When the transmission of all sub blocks of the block is completed, the client 120 requests the transmission of the block being transmitted to each user terminal 110 (S5-5), and each user terminal 110 transmits the block being transmitted. (S5-6).

한편, 이후 나머지 블록에 대하여 사용자 단말기(110)를 매핑함에 있어서 병목이 발생한 사용자 단말기(110)를 제외하고, 나머지 사용자 단말기(110)에 전송을 요청할 수 있다.Meanwhile, except for the bottleneck in which the bottleneck occurs in mapping the user terminal 110 to the remaining blocks, the remaining user terminal 110 may request transmission.

도 7은 본 발명에 따라 클라이언트가 랭킹정보에 따라 각 블록을 매핑하는 과정을 도시한 개략도로서, 클라이언트가 각 블록의 전송을 사용자 단말기에 요청하여 수신하는 예이다.7 is a schematic diagram illustrating a process in which a client maps each block according to the ranking information according to the present invention, in which the client requests and receives the transmission of each block from the user terminal.

도 7을 참조하면, 랭킹정보는 1번부터 10번까지 SN1, SN15, SN6, SN24, SN31, SN10, SN22, SN2, SN34, SN41으로 이루어지고, 컨텐츠는 B1 에서 Bn까지의 블록으로 이루어져 있다.Referring to FIG. 7, the ranking information is made up of SN1, SN15, SN6, SN24, SN31, SN10, SN22, SN2, SN34, and SN41 from 1 to 10, and the content is composed of blocks B1 to Bn.

랭킹정보가 1번부터 10번까지 10개의 사용자 단말기(SN: Source Node)를 포함하는 경우, 클라이언트(120)의 에이전트는 컨텐츠의 1번 블록(B1)은 1번 순위의 사용자 단말기(SN1)에 전송 요청하고, 2번 블록(B2)은 2번 순위의 사용자 단말기(SN15)에 전송 요청한다. 이런 식으로 1번 블록부터 10번 블록까지 랭킹 1번부터 10번의 사용자 단말기(110)에 각각 매핑하여 전송을 요청한다. 이때, 랭킹정보는 학습데이터에 의해 전송속도가 빠른 순서이므로 일반적인 경우라면 SN1이 전송하는 B1이 가장 먼저 전송이 완료될 것이고, 그 다음으로 B2, B3, ... , B10 순으로 전송이 완료될 것이다. 클라이언트(120)의 에이전트는 각 블록의 전송이 완료되는 대로 해당 사용자 단말기(110)에 다음 블록(B11, B12, ...)의 전송을 순차적으로 요청한다.When the ranking information includes 10 user nodes (SNs) from 1 to 10, the agent of the client 120 may block 1 of the content, and B1 of the content may be assigned to the 1st user terminal SN1. The transfer request is made, and the second block B2 requests the transfer to the user terminal SN15 having the second rank. In this way, blocks 1 to 10 are mapped to the rankings 1 to 10 user terminals 110 to request transmission. At this time, since the ranking information is a fast transmission speed according to the learning data, in the general case, B1 transmitted by SN1 will be completed first, followed by B2, B3, ..., B10. will be. The agent of the client 120 sequentially requests transmission of the next blocks B11, B12, ... from the corresponding user terminal 110 as soon as the transmission of each block is completed.

한편, 도 7과 같은 방식의 전송중에 갑작스런 네트워크 문제 또는 특정 사용자 단말기의 문제(과다 접속 또는 성능 저하)로 병목이 발생할 수 있다. 이를 위하여, 클라이언트(120)는 기준 속도를 설정한 후, 각 사용자 단말기(110)의 전송 속도를 모니터링하여 기준 속도보다 떨어지는 경우 해당 사용자 단말기에 병목이 발생한 것으로 판단한다. 즉, 도 7과 같이 10개의 사용자 단말기(110)가 각기 1번부터 10번까지 블록을 전송함에 있어서, 도 8과 같이 5번 블록을 전송하는 사용자 단말기(SN31)에 병목이 발생한 경우를 가정하여 설명하면 다음과 같다. 도 8에서 5번 블록은 SB1 ~ SBm의 서브블록으로 이루어져 있다.Meanwhile, a bottleneck may occur due to a sudden network problem or a problem of a specific user terminal (over-connecting or degrading performance) during the transmission of the method as shown in FIG. 7. To this end, after setting the reference speed, the client 120 monitors the transmission speed of each user terminal 110 and determines that the bottleneck occurs in the corresponding user terminal when it falls below the reference speed. That is, in the case where 10 user terminals 110 transmit blocks 1 to 10 as shown in FIG. 7, it is assumed that a bottleneck occurs in the user terminal SN31 transmitting block 5 as shown in FIG. 8. The explanation is as follows. Block 5 in Figure 8 is composed of subblocks of SB1 ~ SBm.

도 8을 참조하면, 클라이언트(120)의 에이전트는 특정 블록을 전송하는 사용자 단말기(110)에 병목이 발생하면, 해당 사용자 단말기(110)가 전송중이던 블록에 대하여 나머지 사용자 단말기(110)에 서브블록 단위로 전송을 요청한다.Referring to FIG. 8, when a bottleneck occurs in the user terminal 110 transmitting a specific block, the agent of the client 120 may subblock the remaining user terminal 110 with respect to the block that the user terminal 110 is transmitting. Request transmission in units.

구체적으로, 도 8에서 'SN31'에 병목이 발생한 경우 'SN31'을 제외한 9개의 사용자 단말기(110)에 5번 블록(B5)의 각 서브블록을 매핑하여 전송을 요청한다. 이때, 도 8에서는 1번 서브블록(SB1)부터 사용자 단말기에 요청하는 것으로 도시하였으나, 바람직하게는 5번 블록 중 전송이 완료된 서브 블록을 제외하고 나머지 서브 블록에 대하여 전송을 요청하도록 한다.Specifically, when a bottleneck occurs in 'SN31' in FIG. 8, nine sub-blocks of block 5 (B5) are requested to be transmitted to nine user terminals 110 except for 'SN31'. In this case, although FIG. 8 illustrates that the user terminal requests from the first subblock SB1, the transmission is requested to the remaining subblocks except for the subblock in which the transmission is completed.

각 사용자 단말기(110)는 전송중이던 블록의 전송을 중단한 후, 요청된 서브 블록을 전송한다. 이는 해당 컨텐츠에 대하여 각 블록이 순서대로 수신되는 것이 바람직하므로, 병목이 발생한 블록의 전송을 먼저 처리하기 위함이다. Each user terminal 110 stops the transmission of the block being transmitted, and then transmits the requested subblock. This is because it is preferable that each block is sequentially received for the corresponding content, so that the transmission of the block having the bottleneck is first processed.

한편, 이 경우 병목이 발생한 블록 이전의 블록(B1 내지 B4)에 대하여는 각 사용자 단말기(SN1, SN15, SN6, SN24)가 해당 블록을 전송하도록 하고, 나머지 사용자 단말기(SN10, SN22, SN2, SN34, SN41)에 서브 블록의 전송을 요청한 후, SN1, SN15, SN6, SN24는 전송중인 블록의 전송을 완료한 후 5번 블록의 서브 블록 전송을 수행하도록 할 수도 있다. 이후 5번 블록의 전체 서브 블록 전송이 완료되면 각 사용자 단말기(110)는 전송중이던 각 블록을 전송한다.Meanwhile, in this case, the blocks B1 to B4 before the block bottleneck are transmitted by the respective user terminals SN1, SN15, SN6, and SN24, and the remaining user terminals SN10, SN22, SN2, SN34, After requesting transmission of the subblock to SN41, SN1, SN15, SN6, and SN24 may perform subblock transmission of block 5 after completing the transmission of the block being transmitted. Thereafter, when the entire subblock transmission of the fifth block is completed, each user terminal 110 transmits each block that is being transmitted.

이후 병목이 발생한 사용자 단말기(SN31)는 이후 각 블록의 전송에서 제외할 수도 있고, 병목 발생과 이에 따른 처리는 클라이언트(120)의 로그 데이터에 포함되어 CDN 사업자 시스템(100)으로 전송된다.Thereafter, the bottleneck user terminal SN31 may be excluded from transmission of each block thereafter, and the bottleneck occurrence and processing thereof are included in the log data of the client 120 and transmitted to the CDN operator system 100.

제 2 실시예Second embodiment

도 9는 본 발명의 제 2 실시예에 따른 컨텐츠 전송시스템의 전체 구성도이다.9 is an overall configuration diagram of a content delivery system according to a second embodiment of the present invention.

본 발명의 제 2 실시예에 따른 컨텐츠 전송 시스템은 도 9에 도시된 바와 같이, 일정 지역 단위로 사용자 단말기와 클라이언트를 구분하고, 각 지역에 지역 CDN 서버를 구비한 것이다. 이때, 각 지역의 기준은 POP 단위(공중 전화망에서 일종의 전화국 단위)로 설정하는 것이 바람직하다. 이와 같이 본 발명의 제 2 실시예는 각 지역마다 제 1 실시예의 시스템이 구성되고, 이들 각 지역을 중앙의 CDN 사업자 시스템이 연결 및 제어하는 구성이다.As shown in FIG. 9, the content delivery system according to the second embodiment of the present invention divides a user terminal and a client in units of a predetermined region, and includes a local CDN server in each region. At this time, it is preferable to set the standard of each region in POP unit (a kind of telephone station unit in public telephone network). As described above, according to the second embodiment of the present invention, the system of the first embodiment is configured in each region, and the central CDN operator system connects and controls each region.

도 9를 참조하면, 제 2 실시예의 컨텐츠 전송 시스템은 3개의 지역 시스템(L1~L3)으로 구분되어 있고, 각 지역 시스템(L1~L3)은 중앙의 CDN 사업자 시스템(100)과 연결된다. 또한 각 지역 시스템(L1~L3)은 적어도 하나 이상의 지역 CDN 서버(204)에 다수의 사용자 단말기(210)와 클라이언트(220)들이 연결되어 있다.Referring to FIG. 9, the content delivery system of the second embodiment is divided into three local systems L1 to L3, and each local system L1 to L3 is connected to a central CDN provider system 100. In addition, each of the local systems L1 to L3 has a plurality of user terminals 210 and clients 220 connected to at least one local CDN server 204.

제 2 실시예의 CDN 사업자 시스템(200), 사용자 단말기(210) 및 클라이언트(220)의 구성 및 동작은 제 1 실시예의 CDN 사업자 시스템(100), 사용자 단말기(110) 및 클라이언트(120)의 구성 및 동작과 동일하다. The configuration and operation of the CDN operator system 200, the user terminal 210 and the client 220 of the second embodiment are described in detail in the configuration and operation of the CDN operator system 100, the user terminal 110 and the client 120 of the first embodiment. Same operation.

그리고 제 2 실시예에서 지역 CDN 서버(204)는 CDN 사업자 시스템(200)과 같이 사용자 단말기(210)나 클라이언트(220)를 제어하는 것이 아니라 사용자 단말기(210)와 같이 클라이언트(220)에게 컨텐츠를 전송하는 기능을 수행한다. 즉, 제 2 실시예에서는 각 지역마다 성능이 뛰어난 지역 CDN 서버(204)를 구비함으로써 컨텐츠 전송에 대한 QoS를 담보하도록 한다. 따라서, CDN 사업자 시스템(200)의 랭킹정보에는 각 지역 CDN 서버(204)가 각 사용자 단말기(210)와 함께 포함된다. 이때, 지역 CDN 서버(204)에는 CDN 사업자 시스템(200)이 제공하는 모든 컨텐츠가 저장되도록 한다.In the second embodiment, the local CDN server 204 does not control the user terminal 210 or the client 220 like the CDN operator system 200, but instead transmits the content to the client 220 like the user terminal 210. Perform the function of sending. That is, in the second embodiment, the local CDN server 204 having excellent performance is provided in each region to ensure QoS for content delivery. Therefore, the ranking information of the CDN operator system 200 includes each local CDN server 204 together with each user terminal 210. At this time, the local CDN server 204 to store all the content provided by the CDN operator system 200.

한편, 각 지역의 사용자 단말기(210) 및 클라이언트(220)가 중앙의 CDN 사업자 시스템(200)에 집중할 경우, CDN 사업자 시스템(200)에 과부하가 발생할 수 있으므로 제 1 실시예의 CDN 사업자 시스템(100)의 동작 중 클라이언트의 로그 데이터를 분석하는 동작은 제 2 실시예에서는 각 지역 CDN 서버(204)가 수행하도록 할 수 있다. 즉, 지역 CDN 서버(204)는 각 클라이언트(220)로부터 로그 데이터를 수신하여 분석한 후, 그 결과를 CDN 사업자 시스템(200)에 보고하고, CDN 사업자 시스템(200)은 이를 랭킹정보에 반영함으로써 CDN 사업자 시스템(200)의 부하를 줄일 수 있다.On the other hand, when the user terminal 210 and the client 220 of each region concentrates on the central CDN operator system 200, the CDN operator system 200 of the first embodiment may be overloaded because the CDN operator system 200 may be overloaded. Analyzing log data of the client during the operation of may be performed by each local CDN server 204 in the second embodiment. That is, the local CDN server 204 receives and analyzes log data from each client 220, reports the result to the CDN provider system 200, and the CDN provider system 200 reflects the ranking information in the ranking information. The load on the CDN operator system 200 may be reduced.

도 10은 본 발명의 제 2 실시예에 따른 컨텐츠 전송 시스템의 동작 절차를 도시한 순서도이다.10 is a flowchart illustrating an operation procedure of a content delivery system according to a second embodiment of the present invention.

도 10을 참조하면, 제 11 단계(S11)에서 각 사용자 단말기(210)는 컨텐츠를 전송할 수 있는 상태가 되면 CDN 사업자 시스템(200)에 유휴상태를 보고하고, 제 12 단계(S12)에서 클라이언트(220) 역시 웨이크 업(wake up) 상태가 되면 CDN 사업자 시스템(200)에 이를 보고하고, 전송받을 컨텐츠가 있는지 요청한다.Referring to FIG. 10, when the user terminal 210 is in a state capable of transmitting content in the eleventh step S11, the user terminal 210 reports an idle state to the CDN provider system 200, and the client (in step S12). 220 also reports to the CDN operator system 200 when it wakes up and requests whether there is content to be transmitted.

제 13 단계(S13)에서 CDN 사업자 시스템(200)은 해당 클라이언트(220)가 전송받을 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 전송한다. 이때, 랭킹정보에는 사용자 단말기(210)뿐만 아니라 지역 CDN 서버(204)도 포함되며, 해당 클라이언트(220)가 속한 지역뿐만 아니라 다른 지역의 사용자 단말기(220) 및 지역 CDN 서버(204)도 함께 포함될 수 있다. 그리고 랭킹정보는 학습데이터에 의해 생성되며, 통상적으로 지역이 가까우면 전송 속도가 높을 것이므로, 랭킹정보에는 클라이언트(220)와 동일 지역의 인접한 사용자 단말기(210) 및 지역 CDN 서버(204)가 포함될 가능성이 크다.In a thirteenth step S13, the CDN provider system 200 transmits information of content to be transmitted by the client 220 and ranking information about the content. In this case, the ranking information includes not only the user terminal 210 but also the local CDN server 204, and the user terminal 220 and the local CDN server 204 of other regions as well as the region to which the client 220 belongs. Can be. The ranking information is generated by the learning data, and since the transmission speed will be high when the region is near, the ranking information may include the client 220 and the adjacent user terminal 210 and the local CDN server 204 in the same region. This is big.

제 14 단계(S14)에서 클라이언트(220)는 랭킹정보에 따라 각 사용자 단말기 (210) 혹은 지역 CDN 서버(204)에 해당 컨텐츠의 각 블록의 전송을 요청하고, 제 15 단계(S15)에서 각 사용자 단말기(210) 혹은 지역 CDN 서버(220)는 요청된 컨텐츠의 각 블록을 전송한다.In operation 14 (S14), the client 220 requests transmission of each block of the corresponding content to each user terminal 210 or the local CDN server 204 according to the ranking information, and in operation 15, each user The terminal 210 or the local CDN server 220 transmits each block of the requested content.

제 16 단계(S16)에서 클라이언트(220)는 해당 컨텐츠의 전체 블록이 수신되었는지 판단하며, 전체 블록이 수신될 때까지 제 14 단계(S14)와 제 15 단계(S15)를 반복 수행한다.In the sixteenth step S16, the client 220 determines whether all blocks of the corresponding content are received, and repeats the fourteenth step S14 and the fifteenth step S15 until all the blocks are received.

제 17 단계(S17)에서 클라이언트(220)는 전체 블록의 수신이 완료되면 해당 지역 CDN 서버(204)로 로그 데이터를 전송한다. 이때, 로그 데이터는, 각 사용자 단말기의 전송속도를 포함하며, 병목이 발생한 경우 병목이 발생한 블록(인덱싱 정보)과 해당 사용자 단말기(또는 지역 CDN 서버)의 정보를 포함하는 error report를 포함한다.In the seventeenth step S17, when the reception of the entire block is completed, the client 220 transmits log data to the corresponding local CDN server 204. In this case, the log data includes a transmission speed of each user terminal, and includes an error report including information on a block (indexing information) where the bottleneck occurs and information on the corresponding user terminal (or a local CDN server) when the bottleneck occurs.

그리고 제 18 단계(S18) 내지 제 20 단계(S20)에서 지역 CDN 서버(204)는 로그 데이터를 분석하여 결과 리포트(자체 랭킹정보)를 생성하고, 이를 CDN 사업자 시스템(200)으로 전송한다. CDN 사업자 시스템(200)은 결과 리포트를 랭킹정보에 반영하여 랭킹정보를 업데이트한다. 따라서, 제 2 실시예에서는 로그 수집에 따른 부담(cost)을 중앙에서 지역으로 분산시킬 수 있다. 또한, CDN 사업자 시스템(200)은 각 사용자 단말기(210)의 컨텐츠 전송 내역을 통계 관리하고, 클라이언트(220)가 컨텐츠 이용요금을 지불하면 사용자와 정산하여 컨텐츠 전송에 따른 이익의 일부를 지불한다.The local CDN server 204 analyzes log data to generate a result report (self ranking information) in the eighteenth step S18 to the twentieth step S20, and transmits the result report (self ranking information) to the CDN operator system 200. The CDN operator system 200 updates the ranking information by reflecting the result report in the ranking information. Therefore, in the second embodiment, the cost of log collection can be distributed from the center to the region. In addition, the CDN operator system 200 statistically manages the content transmission history of each user terminal 210, and when the client 220 pays the content usage fee, the CDN provider system 200 pays a part of the profits from the content delivery.

한편, 도 9 및 도 10에 도시한 본 발명의 제 2 실시예에 따른 컨텐츠 전송 시스템의 기본적인 구성, 구체적으로 도 4의 클라이언트와 CDN 사업자 시스템 간의 컨텐츠 정보 전달 과정, 도 5의 데이터 패킷의 구성, 도 6의 병목 처리 과정, 그리고 도 7 및 도 8의 블록/서브블록의 매핑 과정 등은 제 1 실시예와 공통적으로 적용됨은 물론이다.On the other hand, the basic configuration of the content delivery system according to the second embodiment of the present invention shown in Figures 9 and 10, specifically, the content information transfer process between the client and the CDN operator system of Figure 4, the configuration of the data packet of Figure 5, The bottleneck treatment process of FIG. 6 and the block / subblock mapping process of FIGS. 7 and 8 are commonly applied to the first embodiment.

이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. The present invention has been described above with reference to one embodiment shown in the drawings, but those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom.

도 1은 종래의 컨텐츠 전송 네트워크(CDN)을 도시한 개략도,1 is a schematic diagram illustrating a conventional content delivery network (CDN);

도 2는 본 발명의 제1 실시예에 따른 컨텐츠 전송 네트워크 구성을 도시한 개략도,2 is a schematic diagram showing a content delivery network configuration according to a first embodiment of the present invention;

도 3은 본 발명의 제1 실시예에 따른 컨텐츠 전송 절차를 도시한 전체 순서도,3 is an overall flowchart illustrating a content delivery procedure according to a first embodiment of the present invention;

도 4는 본 발명에 따라 클라이언트와 CDN 사업자 시스템 간에 컨텐츠 정보를 전달 과정을 도시한 세부 흐름도,4 is a detailed flowchart illustrating a process of delivering content information between a client and a CDN operator system according to the present invention;

도 5는 본 발명에 따라 컨텐츠의 블록 단위 전송시 데이터 패킷의 구성 예,5 is a configuration example of a data packet in block-based transmission of content according to the present invention;

도 6은 본 발명에 따른 컨텐츠 전송시에 병목이 발생할 경우 처리 프로세스를 도시한 세부 순서도,6 is a detailed flowchart illustrating a processing process when a bottleneck occurs in content transmission according to the present invention;

도 7은 본 발명에 따라 클라이언트가 랭킹정보에 따라 각 블록을 매핑하는 과정을 도시한 개략도,7 is a schematic diagram illustrating a process in which a client maps each block according to ranking information according to the present invention;

도 8은 도 7에 도시된 매핑 예에서 특정 블록에 병목이 발생하였을 때 클라이언트가 랭킹정보에 따라 각 서브 블록을 매핑하는 과정을 도시한 개략도,8 is a schematic diagram illustrating a process in which a client maps each subblock according to ranking information when a bottleneck occurs in a specific block in the mapping example shown in FIG. 7;

도 9는 본 발명의 제2 실시예에 따른 컨텐츠 전송 네트워크의 구성을 도시한 개략도,9 is a schematic diagram showing a configuration of a content delivery network according to a second embodiment of the present invention;

도 10은 본 발명의 제2 실시예에 따른 컨텐츠 전송 절차를 도시한 순서도이다.10 is a flowchart illustrating a content delivery procedure according to a second embodiment of the present invention.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

100,200: CDN 사업자 시스템 204: 지역 CDN 서버100,200: CDN operator system 204: local CDN server

110,210: 사용자 단말기 120,220: 클라이언트110,210: user terminal 120,220: client

Claims (18)

일정 크기의 블록으로 분할 관리되는 다수의 컨텐츠를 다수의 사용자 단말기에 분산 저장하고, 클라이언트가 상기 컨텐츠의 전송을 요청하면 상기 각 사용자 단말기를 통해 요청된 컨텐츠를 블록 단위로 전송하는 사용자 단말기를 이용한 컨텐츠 전송 시스템으로서,Contents using a user terminal for distributing and storing a plurality of contents divided into blocks of a predetermined size in a plurality of user terminals, and transmitting the requested contents in units of blocks when the client requests the transmission of the contents. As a transmission system, 상기 각 사용자 단말기에 저장되는 컨텐츠의 ID를 포함하는 상기 각 사용자 단말기의 정보를 저장하는 단말기 정보 테이블, 학습데이터를 통해 생성되며 전체 사용자 단말기의 전송속도에 따른 우선순위 정보인 랭킹정보, 각 클라이언트에게 제공 가능한 전체 컨텐츠의 리스트 및 각 클라이언트가 다운로드 받은 컨텐츠의 리스트를 저장하고, 학습데이터에 의해 상기 랭킹정보를 업데이트하는 CDN 사업자 시스템;The terminal information table for storing the information of each user terminal including the ID of the content stored in each user terminal, ranking information that is generated through the learning data and priority information according to the transmission speed of the entire user terminal, to each client A CDN provider system for storing a list of all contents that can be provided and a list of contents downloaded by each client, and updating the ranking information by learning data; 상기 CDN 사업자 시스템으로부터 상기 각 컨텐츠를 전송받아 저장하고, 각 클라이언트가 전송 요청하는 컨텐츠에 대하여 블록 단위로 전송하는 다수의 상기 사용자 단말기; 및A plurality of the user terminals receiving and storing the respective contents from the CDN operator system and transmitting the contents requested by each client in block units; And 상기 CDN 사업자 시스템으로부터 다운로드 받아야 할 컨텐츠의 ID를 포함하는 컨텐츠 정보 및 상기 다운로드 받아야 할 컨텐츠에 대한 랭킹정보를 수신하고, 상기 수신된 랭킹정보에 따라 상기 다운로드 받아야 할 컨텐츠를 구성하는 각 블록과 상기 랭킹정보에 포함된 각 사용자 단말기를 매핑한 후, 매핑된 각 사용자 단말기에 상기 컨텐츠의 각 블록의 전송을 요청하여 다운로드하는 클라이언트를 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.Receive content information including the ID of the content to be downloaded from the CDN operator system and ranking information for the content to be downloaded, and each block constituting the content to be downloaded according to the received ranking information and the ranking And mapping each user terminal included in the information, and then requesting and downloading a transmission of each block of the content to each mapped user terminal. 제1항에 있어서,The method of claim 1, 상기 클라이언트가, 상기 컨텐츠의 블록을 전송한 상기 각 사용자 단말기의 전송속도 및 병목이 발생한 블록에 대한 에러 리포트를 포함하는 로그 데이터를 상기 CDN 사업자 시스템으로 전송하고,The client transmits log data including the transmission rate of each of the user terminals that transmitted the block of the content and an error report about the block in which the bottle occurred, to the CDN provider system; 상기 CDN 사업자 시스템이, 상기 로그 데이터를 반영하여 상기 랭킹정보를 업데이트하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.And the CDN provider system updates the ranking information by reflecting the log data. 제1항에 있어서,The method of claim 1, 상기 CDN 사업자 시스템이,The CDN operator system, 전체 사용자 단말기에 대한 랭킹정보와 상기 단말기 정보 테이블을 매핑하여, 상기 클라이언트가 다운로드 받아야 할 컨텐츠를 저장하고 있는 일정 개수의 사용자 단말기의 랭킹정보를 추출하여 상기 클라이언트로 전송하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템The user terminal characterized in that the mapping of the ranking information for all the user terminal and the terminal information table, the ranking information of a predetermined number of user terminals storing the content to be downloaded by the client is extracted and transmitted to the client Content Delivery System 제1항에 있어서,The method of claim 1, 상기 클라이언트가,The client, 상기 수신된 랭킹정보에 포함된 각 사용자 단말기에 대하여, 상기 랭킹정보의 순위에 따라 다운로드 받아야 할 컨텐츠를 구성하는 각 블록을 순서대로 매핑하 는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.And for each user terminal included in the received ranking information, map each block constituting content to be downloaded according to the ranking of the ranking information in order. 제1항에 있어서,The method of claim 1, 상기 랭킹정보가, 상기 클라이언트가 상기 각 사용자 단말기에 접속하기 위한 접속정보를 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.And the ranking information includes access information for the client to access each of the user terminals. 제1항에 있어서,The method of claim 1, 상기 각 블록이 일정 크기의 서브 블록으로 분할 관리되고, 상기 각 블록과 상기 각 서브 블록이 인덱싱 정보에 의해 각기 인덱스되어 관리되는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.Wherein each block is divided and managed into sub-blocks having a predetermined size, and each block and each sub-block are indexed and managed according to indexing information, respectively. 제6항에 있어서,The method of claim 6, 상기 각 블록의 크기가 8Mb이고, 상기 각 서브 블록의 크기가 32Kb이며,The size of each block is 8Mb, the size of each sub-block is 32Kb, 상기 각 블록의 인덱싱 정보로 3Byte가 할당되고, 상기 각 서브 블록의 인덱싱 정보로 2Byte가 할당되는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.3 bytes are allocated as the indexing information of each block, and 2 bytes are allocated as the indexing information of each sub-block. 제6항에 있어서,The method of claim 6, 상기 클라이언트가,The client, 상기 각 사용자 단말기로부터 상기 컨텐츠의 각 블록을 수신하는 중에 특정 블록에서 병목이 발생할 경우, 상기 병목이 발생한 블록에 대하여, 상기 랭킹정보에 포함된 각 사용자 단말기 중 상기 병목이 발생한 블록을 전송한 사용자 단말기를 제외한 나머지 사용자 단말기에 대하여 상기 병목이 발생한 블록 중 다운로드되지 않은 각 서브 블록을 매핑한 후 매핑된 각 사용자 단말기에 상기 각 서브 블록의 전송을 요청하여 다운로드하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.When a bottleneck occurs in a specific block while receiving each block of the content from each user terminal, the user terminal transmitting the block in which the bottleneck occurs among the user terminals included in the ranking information with respect to the block in which the bottleneck occurs. Content mapping using the user terminal, after mapping each sub-block not downloaded among the block having the bottleneck for the remaining user terminal except for the request to download and request the transmission of each sub block to the mapped user terminal system. 제1항에 있어서,The method of claim 1, 상기 각 사용자 단말기에, 상기 CDN 사업자 시스템으로부터 상기 각 컨텐츠를 전송받아 상기 사용자 단말기의 저장영역에 저장하고 상기 클라이언트가 요청한 컨텐츠의 블록을 전송하는 에이전트가 설치되고,In each of the user terminal, an agent for receiving the respective content from the CDN operator system is stored in the storage area of the user terminal and transmitting a block of the content requested by the client, 상기 각 사용자 단말기의 에이전트에 WebDAV 클라이언트가 적용되고, 상기 CDN 사업자 시스템에 WebDAV 서버가 적용되는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.WebDAV client is applied to the agent of each user terminal, WebDAV server is applied to the CDN provider system, characterized in that the content delivery system using a user terminal. 제1항에 있어서,The method of claim 1, 상기 각 사용자 단말기와 상기 각 클라이언트가 지역별로 구분되고,Each of the user terminal and each client is divided by region, 상기 컨텐츠 전송 시스템이, 상기 CDN 사업자 시스템으로부터 전체 컨텐츠를 전송받아 저장하고 상기 클라이언트로부터 상기 컨텐츠의 전송을 요청받아 상기 각 사용자 단말기와 함께 상기 컨텐츠의 각 블록을 전송하는 지역 CDN 서버를 상기 각 지역마다 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.The local content delivery system, the local CDN server for receiving and storing the entire content from the CDN operator system, and receives the transmission of the content from the client to transmit each block of the content with each user terminal for each region Content delivery system using a user terminal comprising a. 제10항에 있어서,The method of claim 10, 상기 각 지역 CDN 서버가, 소속된 지역의 클라이언트로부터, 상기 컨텐츠의 블록을 전송한 상기 각 사용자 단말기 및 상기 각 지역 CDN 서버의 전송속도 및 병목이 발생한 블록에 대한 에러 리포트를 포함하는 로그 데이터를 수신하고, 상기 로그데이터를 분석하여 자체 랭킹정보를 포함하는 결과 리포트를 생성하여 상기 CDN 사업자 시스템으로 전송하고,Each regional CDN server receives log data including an error report of the transmission speed and the bottleneck of each user terminal and each local CDN server that transmitted the block of content from a client of the region to which the local CDN server belongs. Analyze the log data, generate a result report including its own ranking information, and transmit the result report to the CDN operator system; 상기 CDN 사업자 시스템이, 상기 결과 리포트를 반영하여 상기 랭킹정보를 업데이트하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 시스템.And the CDN service provider system updates the ranking information by reflecting the result report. 일정 크기의 블록으로 분할 관리되는 다수의 컨텐츠를 제공하는 CDN 사업자 시스템; 상기 CDN 사업자 시스템으로부터 각 컨텐츠를 전송받아 저장하고, 클라이언트의 요청에 의해 상기 저장된 컨텐츠를 전송하는 다수의 사용자 단말기; 및 상기 각 사용자 단말기에 컨텐츠의 전송을 요청하여 다운로드하는 클라이언트를 포함하는 컨텐츠 전송 시스템에서, 상기 각 컨텐츠를 상기 다수의 사용자 단말기에 분산 저장한 후 상기 클라이언트가 전송 요청한 컨텐츠를 상기 각 사용자 단말기를 통해 블록 단위로 전송하는 사용자 단말기를 이용한 컨텐츠 전송 방법으로서,CDN provider system for providing a plurality of content is divided into blocks of a predetermined size; A plurality of user terminals receiving and storing each content from the CDN operator system and transmitting the stored content at the request of a client; And a client for requesting and downloading the contents to the respective user terminals and downloading the contents, wherein the contents are distributed and stored in the plurality of user terminals, and the contents requested by the client are transmitted through the respective user terminals. A content transmission method using a user terminal to transmit in block units, 상기 CDN 사업자 시스템이, 전체 사용자 단말기의 전송속도에 따른 우선순위 정보를 나타내고 상기 각 사용자 단말기에 접속하기 위한 접속정보를 포함하는 랭킹정보를 학습데이터를 통해 생성하는 제 1 단계;A first step of the CDN operator system indicating priority information according to transmission speeds of all user terminals and generating ranking information through learning data including access information for accessing each user terminal; 상기 각 사용자 단말기가 저장된 컨텐츠를 전송할 수 있는 상태가 되면 상기 CDN 사업자 시스템에 유휴상태를 보고하는 제 2 단계;A second step of reporting an idle state to the CDN provider system when the user terminal is able to transmit the stored content; 상기 각 클라이언트가 온 상태가 되면 상기 CDN 사업자 시스템에 보고하고, 다운로드 받아야 할 컨텐츠가 있는지 여부를 확인하여 다운로드 받아야 할 컨텐츠가 있는 경우 미리 설정된 전송 요청 시점에 해당 컨텐츠의 전송을 요청하는 제 3 단계;A third step of reporting to the CDN operator system when each client is turned on, checking whether there is content to be downloaded, and requesting transmission of the corresponding content at a preset transmission request time when there is content to be downloaded; 상기 CDN 사업자 시스템이 상기 클라이언트가 다운로드 받아야 할 컨텐츠의 정보 및 상기 다운로드 받아야 할 컨텐츠에 대한 랭킹정보를 상기 클라이언트로 전송하는 제 4 단계;A fourth step of transmitting, by the CDN operator system, information of content to be downloaded by the client and ranking information about the content to be downloaded to the client; 상기 클라이언트가, 상기 수신된 랭킹정보에 포함된 각 사용자 단말기에 대하여, 상기 랭킹정보의 순서에 따라 다운로드 받아야 할 컨텐츠를 구성하는 각 블록을 순서대로 매핑하고, 상기 랭킹정보에 포함된 접속정보를 이용하여 각 사용자 단말기에 접속하여 매핑된 블록의 전송을 요청하는 제 5 단계;The client maps each block constituting the content to be downloaded according to the order of the ranking information to each user terminal included in the received ranking information in order, and uses the access information included in the ranking information. A fifth step of requesting transmission of the mapped block by accessing each user terminal; 상기 각 사용자 단말기가 전송 요청된 컨텐츠의 각 블록을 상기 클라이언트로 전송하는 제 6 단계; 및A sixth step in which each user terminal transmits each block of content requested to be transmitted to the client; And 상기 클라이언트가 다운로드 받아야 할 컨텐츠를 구성하는 전체 블록이 다운로드될 때까지 상기 제 5 단계 및 상기 제 6 단계를 반복 수행하는 제 7 단계를 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 방법.And a seventh step of repeating the fifth step and the sixth step until the entire block constituting the content to be downloaded by the client is downloaded. 제12항에 있어서,The method of claim 12, 상기 클라이언트가, 다운로드 받아야 할 컨텐츠를 구성하는 전체 블록의 다운로드가 완료되면, 상기 컨텐츠의 각 블록을 전송한 상기 각 사용자 단말기의 전송속도 및 병목이 발생한 블록에 대한 에러 리포트를 포함하는 로그 데이터를 상기 CDN 사업자 시스템으로 전송하는 제 8 단계; 및When the client completes the download of all the blocks constituting the content to be downloaded, the log data including the transmission rate of the respective user terminal that transmitted each block of the content and an error report for the block in which the bottleneck occurred An eighth step of transmitting to the CDN operator system; And 상기 CDN 사업자 시스템이, 상기 로그 데이터를 반영하여 상기 랭킹정보를 업데이트하는 제 9 단계를 더 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 방법.And the ninth step of the CDN operator system updating the ranking information by reflecting the log data. 제12항에 있어서,The method of claim 12, 상기 제 3 단계의 전송 요청 시점이, The transmission request time of the third step, 상기 클라이언트의 전원이 온 되었을 때, 상기 클라이언트가 컨텐츠의 전송을 미리 예약한 시간, 주기적으로 설정된 일정 시간 및 클라이언트가 일정 시간 동안 사용이 없는 유휴상태일 때 중 선택된 어느 하나인 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 방법.When the client is powered on, the user terminal is any one selected from the time in which the client scheduled the transmission of the content in advance, periodically set a predetermined time and when the client is idle for a certain time Content transmission method using. 제12항에 있어서,The method of claim 12, 상기 컨텐츠를 구성하는 각 블록이 인덱싱 정보에 의해 인덱스되어 관리되고,Each block constituting the content is indexed and managed by indexing information, 상기 제 5 단계에서, 상기 클라이언트가, 상기 각 사용자 단말기에 상기 컨텐츠의 ID 및 매핑된 블록의 인덱싱 정보를 포함하는 데이터 패킷을 전송하여 상기 각 블록의 전송을 요청하고,In the fifth step, the client transmits a data packet including the ID of the content and the indexing information of the mapped block to each user terminal to request transmission of each block, 상기 제 5 단계에서, 상기 각 사용자 단말기가, 상기 클라이언트로부터 전송된 컨텐츠 ID 및 블록의 인덱싱 정보와, 요청된 블록을 포함하는 데이터 패킷을 전송하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 방법.In the fifth step, each of the user terminal, the content ID transmitted from the client and the indexing information of the block, and the content transmission method using a user terminal, characterized in that for transmitting a data packet including the requested block. 제12항에 있어서,The method of claim 12, 상기 클라이언트가 상기 다운로드 받아야 할 컨텐츠의 각 블록의 다운로드에 대한 기준속도를 설정하는 제 10 단계를 더 포함하고,And a tenth step of setting, by the client, a reference speed for downloading of each block of content to be downloaded. 상기 제 6 단계가,The sixth step, 상기 클라이언트가 상기 상기 컨텐츠의 각 블록을 전송하는 상기 각 사용자 단말기의 전송속도를 모니터링하는 제 6-1 단계;Step 6-1 of the client monitoring a transmission rate of each user terminal transmitting each block of the content; 상기 각 사용자 단말기 중 특정 사용자 단말기의 전송속도가 상기 기준속도보다 떨어질 경우, 상기 클라이언트가 해당 사용자 단말기에 병목이 발생한 것으로 판단하는 제 6-2 단계;Step 6-2 of the client determining that the bottleneck occurs in the user terminal when the transmission speed of the specific user terminal among the user terminals is lower than the reference speed; 상기 클라이언트가, 상기 랭킹정보에 포함된 각 사용자 단말기 중 상기 병목이 발생한 사용자 단말기를 제외한 나머지 사용자 단말기에 대하여, 상기 병목이 발생한 사용자 단말기가 전송중이던 블록 중 다운로드되지 않은 각 서브 블록을 매 핑한 후 매핑된 각 사용자 단말기에 상기 각 서브 블록의 전송을 요청하는 제 6-3 단계; 및The client maps each sub-block not downloaded among the blocks transmitted by the bottleneck user terminal to the remaining user terminals except for the bottleneck user terminal among the user terminals included in the ranking information. 6-3, requesting each user terminal to transmit the respective subblocks; And 상기 병목이 발생한 사용자 단말기를 제외한 나머지 사용자 단말기가, 전송 요청된 각 서브 블록을 전송하는 제 6-4 단계를 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 방법.And a sixth to fourth step of transmitting each sub-block requested for transmission by the remaining user terminals except for the user terminal in which the bottleneck has occurred. 제12항에 있어서,The method of claim 12, 상기 제 4 단계가,The fourth step, 상기 CDN 사업자 시스템이, 상기 각 사용자 단말기가 저장하고 있는 컨텐츠의 ID를 단말기 정보 테이블과 상기 전체 사용자 단말기의 랭킹정보를 매핑하여, 상기 클라이언트가 다운로드 받아야 할 컨텐츠를 저장하고 있는 일정 개수의 사용자 단말기에 대한 랭킹정보를 생성하는 제 4-1 단계를 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 방법.The CDN operator system maps the ID of the content stored by each user terminal to the terminal information table and the ranking information of all the user terminals, and stores the content to be downloaded by the client to a predetermined number of user terminals. And a step 4-1 of generating ranking information for the user terminal. 일정 크기의 블록으로 분할 관리되는 다수의 컨텐츠를 제공하는 CDN 사업자 시스템; 상기 CDN 사업자 시스템으로부터 각 컨텐츠를 전송받아 저장하고, 클라이언트의 요청에 의해 상기 저장된 컨텐츠를 전송하는 다수의 사용자 단말기; 상기 각 사용자 단말기에 컨텐츠의 전송을 요청하여 다운로드하는 클라이언트; 및 상기 CDN 사업자 시스템으로부터 전체 컨텐츠를 전송받아 저장하고, 상기 클라이언트의 요청에 의해 상기 각 사용자 단말기와 함께 저장된 컨텐츠를 전송하는 지역 CDN 서 버를 포함하고, 상기 각 사용자 단말기, 상기 각 클라이언트 및 상기 각 지역 CDN 서버가 일정 지역 단위로 구분되어 배치되는 컨텐츠 전송 시스템에서, 상기 각 컨텐츠를 상기 다수의 사용자 단말기 및 지역 CDN 서버에 분산 저장한 후 상기 클라이언트가 전송 요청한 컨텐츠를 상기 각 사용자 단말기 및 상기 지역 CDN 서버를 통해 블록 단위로 전송하는 사용자 단말기를 이용한 컨텐츠 전송 방법으로서,CDN provider system for providing a plurality of content is divided into blocks of a predetermined size; A plurality of user terminals receiving and storing each content from the CDN operator system and transmitting the stored content at the request of a client; A client requesting and downloading the contents to the respective user terminals; And a local CDN server that receives and stores the entire contents from the CDN operator system, and transmits the contents stored together with the respective user terminals at the request of the client. In a content delivery system in which local CDN servers are divided and arranged in predetermined area units, each content is distributed and stored in the plurality of user terminals and local CDN servers, and then the content requested by the client is transmitted to each of the user terminals and the local CDN. A content transmission method using a user terminal for transmitting in block units through a server, 상기 CDN 사업자 시스템이, 상기 전체 사용자 단말기와 전체 지역 CDN 서버의 전송속도에 따른 우선순위 정보를 나타내고 상기 각 사용자 단말기 및 지역 CDN 서버에 접속하기 위한 접속정보를 포함하는 랭킹정보를 학습데이터를 통해 생성하는 제 1 단계;The CDN provider system generates priority information based on the transmission speeds of the entire user terminals and the entire local CDN servers and includes ranking information including access information for accessing the respective user terminals and the local CDN servers through the training data. A first step of making; 상기 각 사용자 단말기가 저장된 컨텐츠를 전송할 수 있는 상태가 되면 상기 CDN 사업자 시스템에 유휴상태를 보고하는 제 2 단계;A second step of reporting an idle state to the CDN provider system when the user terminal is able to transmit the stored content; 상기 각 클라이언트가 온 상태가 되면 상기 CDN 사업자 시스템에 보고하고, 다운로드 받아야 할 컨텐츠가 있는지 여부를 확인하여 다운로드 받아야 할 컨텐츠가 있는 경우 미리 설정된 전송 요청 시점에 해당 컨텐츠의 전송을 요청하는 제 3 단계;A third step of reporting to the CDN operator system when each client is turned on, checking whether there is content to be downloaded, and requesting transmission of the corresponding content at a preset transmission request time when there is content to be downloaded; 상기 CDN 사업자 시스템이 상기 클라이언트가 다운로드 받아야 할 컨텐츠의 정보 및 상기 다운로드 받아야 할 컨텐츠에 대한 랭킹정보를 상기 클라이언트로 전송하는 제 4 단계;A fourth step of transmitting, by the CDN operator system, information of content to be downloaded by the client and ranking information about the content to be downloaded to the client; 상기 클라이언트가, 상기 수신된 랭킹정보에 포함된 각 사용자 단말기 및 각 지역 CDN 서버에 대하여, 상기 랭킹정보의 순서에 따라 다운로드 받아야 할 컨텐츠 를 구성하는 각 블록을 순서대로 매핑하고, 상기 랭킹정보에 포함된 접속정보를 이용하여 각 사용자 단말기 및 각 지역 CDN 서버에 접속하여 매핑된 블록의 전송을 요청하는 제 5 단계;The client maps each block constituting content to be downloaded according to the order of the ranking information to each user terminal and each local CDN server included in the received ranking information in order, and includes the ranking information. A fifth step of requesting transmission of the mapped block by accessing each user terminal and each local CDN server using the accessed access information; 상기 각 사용자 단말기 및 상기 각 지역 CDN 서버가 전송 요청된 컨텐츠의 각 블록을 상기 클라이언트로 전송하는 제 6 단계;A sixth step of transmitting each block of content requested to be transmitted by the user terminal and each local CDN server to the client; 상기 클라이언트가 다운로드 받아야 할 컨텐츠를 구성하는 전체 블록이 다운로드될 때까지 상기 제 5 단계 및 상기 제 6 단계를 반복 수행하는 제 7 단계;A seventh step of repeating the fifth and sixth steps until the entire block constituting the content to be downloaded by the client is downloaded; 상기 클라이언트가, 다운로드 받아야 할 컨텐츠를 구성하는 전체 블록의 다운로드가 완료되면, 상기 컨텐츠의 각 블록을 전송한 상기 각 사용자 단말기 및 상기 각 지역 CDN 서버의 전송속도 및 병목이 발생한 블록에 대한 에러 리포트를 포함하는 로그 데이터를 상기 클라이언트가 소속된 지역의 지역 CDN 서버로 전송하는 제 8 단계;When the client completes the download of all blocks constituting the content to be downloaded, the client reports an error report about the transmission speed and bottlenecks of the respective user terminals and the local CDN servers that transmitted each block of the content. An eighth step of transmitting log data, including the log data, to a local CDN server of a region to which the client belongs; 상기 지역 CDN 서버가 상기 로그 데이터를 분석하여 자체 랭킹정보를 포함하는 결과 리포트를 생성하여 상기 CDN 사업자 시스템으로 전송하는 제 9 단계; 및A ninth step of the local CDN server analyzing the log data to generate a result report including its ranking information and transmitting the result report to the CDN operator system; And 상기 CDN 사업자 시스템이, 상기 결과 리포트를 반영하여 상기 랭킹정보를 업데이트하는 제 10 단계를 포함하는 것을 특징으로 하는 사용자 단말기를 이용한 컨텐츠 전송 방법.And a tenth step in which the CDN provider system updates the ranking information by reflecting the result report.
KR1020070092410A 2007-09-12 2007-09-12 Content delivery system and method using user terminal Expired - Fee Related KR100802331B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070092410A KR100802331B1 (en) 2007-09-12 2007-09-12 Content delivery system and method using user terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070092410A KR100802331B1 (en) 2007-09-12 2007-09-12 Content delivery system and method using user terminal

Publications (1)

Publication Number Publication Date
KR100802331B1 true KR100802331B1 (en) 2008-02-13

Family

ID=39342853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070092410A Expired - Fee Related KR100802331B1 (en) 2007-09-12 2007-09-12 Content delivery system and method using user terminal

Country Status (1)

Country Link
KR (1) KR100802331B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101993158B1 (en) * 2019-01-03 2019-06-27 넷마블 주식회사 Method and apparatus for selecting contents delivary network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000151595A (en) 1998-09-04 2000-05-30 America Online Inc Internet multimedia broadcast sysytem
KR20000058606A (en) * 2000-06-19 2000-10-05 김종열 Method and system for supplying various program of the web casting
KR20030039736A (en) * 2001-11-14 2003-05-22 주식회사 신지소프트 Charged-Contents Providing Method for Mobile Communication Device
WO2004003709A2 (en) 2002-06-28 2004-01-08 Bitarts Limited Computer program protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000151595A (en) 1998-09-04 2000-05-30 America Online Inc Internet multimedia broadcast sysytem
KR20000058606A (en) * 2000-06-19 2000-10-05 김종열 Method and system for supplying various program of the web casting
KR20030039736A (en) * 2001-11-14 2003-05-22 주식회사 신지소프트 Charged-Contents Providing Method for Mobile Communication Device
WO2004003709A2 (en) 2002-06-28 2004-01-08 Bitarts Limited Computer program protection

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101993158B1 (en) * 2019-01-03 2019-06-27 넷마블 주식회사 Method and apparatus for selecting contents delivary network

Similar Documents

Publication Publication Date Title
CN108199897B (en) OPC UA multi-server aggregation method supporting cache management
KR101072966B1 (en) Method, device and system for distributing file data
CN101426024B (en) A data flow control method, system and device
US20140059158A1 (en) Method, device and system for processing content
CN102137139A (en) Method and device for selecting cache replacement strategy, proxy server and system
CN111586120A (en) Internet of things gateway equipment, data transmission method, storage medium and installation method
CN107277561A (en) Content distributing network
CN101800731B (en) Network transmission management server, network transmission management method and network transmission system
CN103493086A (en) Method and apparatus for caching in a networked environment
CN103581245A (en) Content delivery method and system of content delivery network
CN102868935A (en) Scheduling method for responding multiple sources in content distribution network (CDN)
CN104717231A (en) Pre-distribution processing method and device of content distribution network
CN100536472C (en) A method, module and server to control access to network resource
KR20100060304A (en) Distributed content delivery system based on network awareness and method thereof
CN103179148A (en) Processing method and system for sharing enclosures in internet
CN102984203B (en) The raising method of buffer memory device utilization rate, Apparatus and system of based on cloud computing
CN101442475A (en) Distributed business acting method, network system and network appliance
CN102137138B (en) Method, device and system for cache collaboration
Chen et al. Analyzing and accelerating web access in a school in peri-urban india
CN106899639A (en) The acquisition methods of data resource, index server and communication system
CN101282231A (en) A Live Streaming Model of FBStream Based on P2P Network
CN103825916A (en) Resource downloading method and resource downloading system
CN105516238A (en) Data request method and device, node server, and CDN system
CN105227396B (en) A kind of inferior commending contents dissemination system and its method towards mobile communications network
CN115514818B (en) Resource configuration method and resource scheduling method for edge cloud

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20070912

PA0201 Request for examination
A302 Request for accelerated examination
PA0302 Request for accelerated examination

Patent event date: 20070918

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20070912

Patent event code: PA03021R01I

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20071122

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080130

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080201

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080201

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110131

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20111230

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130201

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130201

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20140129

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20150202

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20160201

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20180702

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20190131

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20190131

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20200603

Start annual number: 13

End annual number: 13

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20211112