KR100802331B1 - Content delivery system and method using user terminal - Google Patents
Content delivery system and method using user terminal Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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
본 발명은 컨텐츠 전송 네트워크(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
이와 같이 종래의 컨텐츠 전송 네트워크(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
도 2를 참조하면, CDN 사업자 시스템(100)은 클라이언트(120)가 요청한 컨텐츠를 제공하는 중앙집중형 시스템으로서, 각 사용자 단말기(110)의 단말기 정보 테 이블, 랭킹정보, CDN 사업자 시스템(100)의 전체 컨텐츠 리스트, 및 각 클라이언트(120)가 다운로드 받은 컨텐츠 리스트 등을 저장하고 있다. 이때, 클라이언트(120)와 사용자 단말기(110)는 결국 같은 객체이므로, 단말기 정보 테이블에 컨텐츠 리스트를 함께 포함하여 구성할 수도 있다. CDN 사업자 시스템(100)의 전체 컨텐츠 리스트 및 각 클라이언트(120)가 다운로드한 컨텐츠 리스트에는 각 컨텐츠의 식별정보(컨텐츠 ID)가 포함된다.Referring to FIG. 2, the
단말기 정보 테이블은 각 사용자 단말기(110)의 정보를 저장 및 관리하기 위한 테이블로서, 그 구성의 예를 들면 표 1과 같다.The terminal information table is a table for storing and managing information of each
표 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
한편, 본 발명에 따른 컨텐츠는 일정 크기의 블록으로 분할하여 관리되고, 각각의 블록은 다시 더 작은 크기의 서브 블록으로 분할하여 관리되며, 클라이언트(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
이러한 방식으로 관리되는 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
사용자 단말기(110)는 CDN 사업자 시스템(100)으로부터 컨텐츠를 전송받아 저장하고 있다가 각 클라이언트(120)의 요청에 의해 해당 컨텐츠를 전송해주는 단말기(예컨대, 셋탑박스, PC, 휴대전화 및 PDA 등)로서, CDN 사업자 시스템(100)으로부터 전송되는 컨텐츠를 저장장치의 저장영역에 저장하는 에이전트가 설치되어 있다. 사용자 단말기(110)의 에이전트는 CDN 사업자 시스템(100)으로부터 다운로드하여 설치할 수 있다.The
클라이언트(120)는 각 사용자 단말기(110)에 컨텐츠를 블록 단위로 요청하여 다운로드받는 단말기(예컨대, 셋탑박스, PC, 휴대전화 및 PDA 등)로서, 컨텐츠 전송 요청 및 다운로드를 위한 에이전트가 설치되어 있다. 클라이언트(120)의 에이전트 역시 CDN 사업자 시스템(100)으로부터 다운로드하여 설치할 수 있다. 이때 클라이언트(120)와 사용자 단말기(110)의 에이전트는 동일하게 구성할 수도 있다.The
그리고 클라이언트(120)의 에이전트는, CDN 사업자 시스템(100)으로부터 해당 클라이언트(120)가 다운로드하여야 할 컨텐츠(예컨대, 새로 업데이트된 컨텐츠)의 정보(식별정보 포함) 및 해당 컨텐츠에 대한 랭킹정보를 수신하고, 랭킹정보에 따라 해당 컨텐츠의 각 블록과 각 사용자 단말기(110)를 매핑한 후 각 사용자 단말기(110)에 해당 컨텐츠의 각 블록의 전송을 요청하여 다운로드한다.The agent of the
또한, 클라이언트(120)의 에이전트는 각 블록의 수신 중 특정 블록에서 병목이 발생할 경우, 병목이 발생한 블록에 대하여 각 사용자 단말기(110)에 서브블록의 전송을 요청하여 다운로드한다. 이때, 각 블록 및 서브블록의 식별은 인덱싱 정보에 의해 이루어진다.In addition, when a bottleneck occurs in a specific block during reception of each block, the agent of the
도 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
도 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
제 2 단계(S2): 클라이언트(120)의 에이전트는 클라이언트의 전원이 켜지면 CDN 사업자 시스템(100)에 이를 보고하고, 전송받을 컨텐츠가 있는지 확인하여 있으면 설정된 전송 요청 시점에 해당 컨텐츠의 전송을 요청한다. 이때, 클라이언트(120)의 컨텐츠 요청 시점은, 첫째 클라이언트의 전원이 온 되었을 때, 둘째 클라이언트가 컨텐츠 전송을 미리 예약한 시간, 셋째 주기적인 일정 시간 간격, 넷째 클라이언트의 에이전트가 클라이언트의 사용을 모니터링하여 일정 시간 사용이 없는 유휴상태(예를 들어, 30분 이상 유휴상태)일 때 등으로 설정할 수 있다.Second step (S2): The agent of the
특히, 네번째 유휴상태에 컨텐츠를 전송하는 경우를 살펴보면, 통상적으로 클라이언트(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
또한 두번째 예약된 시간 및 세번째 주기적인 시간 간격으로 컨텐츠를 다운로드하는 경우에는 해당 시점에 클라이언트(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
제 3 단계(S3): CDN 사업자 시스템(100)은 해당 클라이언트(120)가 전송받을 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 전송 요청한 클라이언트(120)로 전송한다.Third Step (S3): The
이때 컨텐츠 정보는 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
또한, 랭킹정보는 학습데이터를 통해 생성되는 각 사용자 단말기(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
한편, 랭킹정보가 적어도 하나 이상의 소스 노드(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
그리고 랭킹정보는 컨텐츠 별로 생성 및 관리되거나 각 컨텐츠의 각 블록별로 생성 및 관리될 수 있다. 이는 각 사용자 단말기(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
제 4 단계(S4): 클라이언트(120)는 랭킹정보의 각 사용자 단말기(110)의 순서대로 해당 컨텐츠의 각 블록을 매핑하고, 랭킹정보에 포함된 접속정보를 이용하여 각 사용자 단말기(110)에 접속하여 각 블록의 전송을 요청한다. 이때, 각 블록은 인덱싱 정보에 의해 식별된다.Fourth Step (S4): The
제 5 단계(S5): 각 사용자 단말기(110)는 요청된 컨텐츠의 각 블록을 해당 클라이언트(120)로 전송한다. 이때, 클라이언트(120)는 각 블록의 다운로드에 대한 기준속도를 설정하고, 각 사용자 단말기(110)의 전송속도를 모니터링한다. 그리고 특정 사용자 단말기의 전송속도가 기준속도보다 떨어질 경우, 클라이언트(120)는 해당 사용자 단말기(110)에 병목이 발생한 것으로 판단하고, 해당 사용자 단말기(110)가 전송중이던 블록에 대하여 나머지 사용자 단말기(110)에 서브 블록 단위로 전송 요청한다. 한편, 각 사용자 단말기(110)의 전송속도가 상이하므로 기준 속도를 획일적으로 설정하지 않고, 각 사용자 단말기(110)의 랭킹에 따라 차별적으로 설정할 수도 있다. 한편, 사용자 단말기(110)의 네트워크 속도가 전체적으로 저하되거나 장애가 발생할 경우, CDN 사업자 시스템(100)에서 해당 클라이언트(120)에 직접 컨텐츠를 전송하여 서비스 품질에 대한 안정성을 확보할 수도 있다.Fifth Step (S5): Each
한편, 각 사용자 단말기(110)가 각 컨텐츠에 대하여 전체 블록을 보유하지 않고 일부만을 보유하고 있는 경우에는 제4 단계(S4)에서 클라이언트(120)가 요청한 블록이 해당 사용자 단말기(110)에 없을 수 있다. 이 경우 해당 사용자 단말기(110)는 클라이언트(120)로 요청된 블록이 없음을 응답하고, 클라이언트(120)는 해당 사용자 단말기(110)를 제외한 랭킹정보의 나머지 사용자 단말기(110)를 이용하여 다운로드를 진행한다.On the other hand, if each
제 6 단계(S6): 클라이언트(120)는 해당 컨텐츠의 전체 블록이 수신되었는지 판단하며, 전체 블록이 수신될 때까지 제 4 단계(S4)와 제 5 단계(S5)를 반복 수행한다.Sixth Step S6: The
제 7 단계(S7): 클라이언트(120)는 전체 블록의 수신이 완료되면, CDN 사업자 시스템(100)으로 로그 데이터를 전송한다. 로그 데이터는, 각 사용자 단말기의 전송속도를 포함하며, 병목이 발생한 경우 병목이 발생한 블록(인덱싱 정보)과 해당 사용자 단말기 등의 정보, 즉 error report를 포함한다.Seventh Step S7: When the reception of the entire block is completed, the
제 8 단계(S8): CDN 사업자 시스템(100)은 로그 데이터를 분석하고 학습데이터를 랭킹정보에 반영하여 랭킹정보를 업데이트한다. 또한, CDN 사업자 시스템(100)은 각 사용자 단말기(110)의 컨텐츠 전송 내역을 통계 관리한다. Eighth Step (S8): The
이후, 클라이언트(120)가 컨텐츠 이용요금을 지불하면, CDN 사업자는 등록된 사용자와 정산하여 컨텐츠 전송에 따른 이익의 일부를 사용자에게 지불하도록 한다. 즉, CDN 사업자 시스템(100)은 각 사용자 단말기(120)의 컨텐츠 전송 횟수 및 전송량 등을 이용하여 사용자의 리소스 사용량을 산출한 후 이에 따른 보상을 각 사용자에게 지급한다. 이때, 사용자에게 지급되는 보상은 현금 또는 포인트 등 다양한 형태로 이루어질 수 있다.Thereafter, when the
이어서, 각 단계들의 구체적인 실시 형태에 대하여 보다 자세히 설명하면 다음과 같다.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
도 4에서는 클라이언트(120)가 다운로드 받아야 할 컨텐츠가 A, B, C, ... 인 경우를 가정한다.In FIG. 4, it is assumed that the content to be downloaded by the
먼저, 도 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
다운로드 완료 후 클라이언트(120)가 로그 데이터를 CDN 사업자 시스템(100)으로 전송하여 컨텐츠 A의 다운로드 완료를 보고하면, CDN 사업자 시스템(100)은 클라이언트(120)가 다음으로 다운로드하여야 할 컨텐츠(컨텐츠 B)의 정보와 컨텐츠 B에 대한 랭킹정보를 전송한다(S44,S45).After the download is completed, when the
이러한 과정은 해당 클라이언트가 다운로드 받아야 할 전체 컨텐츠를 다운로드할 때까지 반복 수행된다. 이와 같이 도 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
이에 반해, 도 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
클라이언트(120)는 컨텐츠 리스트 중 첫 번째 컨텐츠(컨텐츠 A)에 대하여 랭킹정보를 추출한 후 각 사용자 단말기(110)로부터 컨텐츠 A를 다운로드 받는다(S47). 이후, 클라이언트(120)는 컨텐츠 리스트 중 다음 컨텐츠(컨텐츠 B)에 대하여 랭킹정보를 추출한 후, 각 사용자 단말기(110)로부터 컨텐츠 B를 다운로드받는다(S48). 이때, 클라이언트(120)가 전체 랭킹정보로부터 각 컨텐츠에 대한 랭킹 정보를 추출할 수 있도록, CDN 사업자 시스템(100)은 컨텐츠 리스트, 전체 랭킹정보와 함께 각 컨텐츠를 구비하는 사용자 단말기(110)의 리스트를 전송하는 것이 바람직하다.The
컨텐츠 리스트의 전체 컨텐츠의 다운로드가 완료되면, 클라이언트(120)는 로그 데이터를 전송하고 다운로드 완료를 보고한다(S49). 한편, 각 컨텐츠의 전송이 완료될 때마다 로그 데이터를 전송하고 다운로드 완료를 보고할 수도 있다.When the download of the entire contents of the content list is completed, the
도 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
도 5를 참조하면, 클라이언트(120)가 컨텐츠 아이디(Contents ID)와 인덱싱(Indexing) 정보로 구성된 데이터 패킷을 전송하여 사용자 단말기(110)에 블록 전송을 요청하면, 사용자 단말기(110)는 요청된 컨텐츠의 블록을 전송한다. 이때 인덱싱(Indexing) 정보는 클라이언트가 전송을 요청하는 블록에 대한 인덱싱(Indexing) 정보이다. 이때, 클라이언트의 요청에 응답하여 사용자 단말기(110)가 전송하는 데이터 패킷은 도 5의 (a) 및 (b)와 같이 2가지 방식으로 구성할 수 있다. Referring to FIG. 5, when the
먼저, 도 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
도 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
먼저, 클라이언트(120)는 컨텐츠의 각 블록 전송을 사용자 단말기(110)에 요청함에 있어, 일정 기준 속도를 설정한다(예를 들어 2Mbps). 이때, 각 사용자 단말기(110)의 전송속도가 상이하므로 기준 속도를 획일적으로 설정하지 않고, 각 사용자 단말기(110)의 랭킹에 따라 차별적으로 설정할 수도 있다. 이후, 클라이언트(120)는 각 사용자 단말기(110)로부터 컨텐츠의 각 블록을 수신하면서 각 블록의 전송 속도를 확인하여 설정된 기준 속도보다 떨어지는 경우 병목이 발생한 것으로 판단한다(S5-1).First, the
이어 클라이언트(120)는 병목이 발생한 블록에 대하여 해당 사용자 단말기(110)를 제외한 나머지 사용자 단말기(110)에 해당 블록을 서브 블록 단위로 전송할 것을 요청한다(S5-2). 이때, 서브 블록 역시 인덱싱 정보를 이용하여 식별된다. 구체적으로, 클라이언트(120)는 병목이 발생한 사용자 단말기를 제외한 나머지 사용자 단말기에 대하여 랭킹정보에 따라 병목이 발생한 블록의 서브 블록을 각 사용자 단말기에 매핑한 후 각 사용자 단말기(110)에 각 서브 블록의 전송을 요청한다. 한편, 각 사용자 단말기(110)에 서브 블록을 전송 요청함에 있어서, 바람직하게는 병목이 발생한 사용자 단말기로부터 이미 전송받은 부분은 제외하고 나머지 서브 블록에 대하여 전송을 요청하도록 한다.Subsequently, the
이에 따라 각 사용자 단말기(110)는 전송중이던 블록의 전송을 중단하고, 병목이 발생한 블록의 각 서브 블록을 전송한다(S5-3). 이와 같이 서브블록 단위로 전송을 요청하고 전송하는 단계(S5-2, S5-3)는 해당 블록의 전체 서브 블록이 모두 전송될 때까지 반복된다(S5-4).Accordingly, each
해당 블록의 전체 서브 블록의 전송이 완료되면, 클라이언트(120)는 각 사용자 단말기(110)에 전송중이던 블록의 전송을 요청하고(S5-5), 각 사용자 단말기(110)는 전송중이던 블록을 전송한다(S5-6).When the transmission of all sub blocks of the block is completed, the
한편, 이후 나머지 블록에 대하여 사용자 단말기(110)를 매핑함에 있어서 병목이 발생한 사용자 단말기(110)를 제외하고, 나머지 사용자 단말기(110)에 전송을 요청할 수 있다.Meanwhile, except for the bottleneck in which the bottleneck occurs in mapping the
도 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
한편, 도 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
도 8을 참조하면, 클라이언트(120)의 에이전트는 특정 블록을 전송하는 사용자 단말기(110)에 병목이 발생하면, 해당 사용자 단말기(110)가 전송중이던 블록에 대하여 나머지 사용자 단말기(110)에 서브블록 단위로 전송을 요청한다.Referring to FIG. 8, when a bottleneck occurs in the
구체적으로, 도 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
각 사용자 단말기(110)는 전송중이던 블록의 전송을 중단한 후, 요청된 서브 블록을 전송한다. 이는 해당 컨텐츠에 대하여 각 블록이 순서대로 수신되는 것이 바람직하므로, 병목이 발생한 블록의 전송을 먼저 처리하기 위함이다. Each
한편, 이 경우 병목이 발생한 블록 이전의 블록(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
이후 병목이 발생한 사용자 단말기(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
제 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
제 2 실시예의 CDN 사업자 시스템(200), 사용자 단말기(210) 및 클라이언트(220)의 구성 및 동작은 제 1 실시예의 CDN 사업자 시스템(100), 사용자 단말기(110) 및 클라이언트(120)의 구성 및 동작과 동일하다. The configuration and operation of the
그리고 제 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
한편, 각 지역의 사용자 단말기(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
도 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
제 13 단계(S13)에서 CDN 사업자 시스템(200)은 해당 클라이언트(220)가 전송받을 컨텐츠의 정보와 해당 컨텐츠에 대한 랭킹정보를 전송한다. 이때, 랭킹정보에는 사용자 단말기(210)뿐만 아니라 지역 CDN 서버(204)도 포함되며, 해당 클라이언트(220)가 속한 지역뿐만 아니라 다른 지역의 사용자 단말기(220) 및 지역 CDN 서버(204)도 함께 포함될 수 있다. 그리고 랭킹정보는 학습데이터에 의해 생성되며, 통상적으로 지역이 가까우면 전송 속도가 높을 것이므로, 랭킹정보에는 클라이언트(220)와 동일 지역의 인접한 사용자 단말기(210) 및 지역 CDN 서버(204)가 포함될 가능성이 크다.In a thirteenth step S13, the
제 14 단계(S14)에서 클라이언트(220)는 랭킹정보에 따라 각 사용자 단말기 (210) 혹은 지역 CDN 서버(204)에 해당 컨텐츠의 각 블록의 전송을 요청하고, 제 15 단계(S15)에서 각 사용자 단말기(210) 혹은 지역 CDN 서버(220)는 요청된 컨텐츠의 각 블록을 전송한다.In operation 14 (S14), the
제 16 단계(S16)에서 클라이언트(220)는 해당 컨텐츠의 전체 블록이 수신되었는지 판단하며, 전체 블록이 수신될 때까지 제 14 단계(S14)와 제 15 단계(S15)를 반복 수행한다.In the sixteenth step S16, the
제 17 단계(S17)에서 클라이언트(220)는 전체 블록의 수신이 완료되면 해당 지역 CDN 서버(204)로 로그 데이터를 전송한다. 이때, 로그 데이터는, 각 사용자 단말기의 전송속도를 포함하며, 병목이 발생한 경우 병목이 발생한 블록(인덱싱 정보)과 해당 사용자 단말기(또는 지역 CDN 서버)의 정보를 포함하는 error report를 포함한다.In the seventeenth step S17, when the reception of the entire block is completed, the
그리고 제 18 단계(S18) 내지 제 20 단계(S20)에서 지역 CDN 서버(204)는 로그 데이터를 분석하여 결과 리포트(자체 랭킹정보)를 생성하고, 이를 CDN 사업자 시스템(200)으로 전송한다. CDN 사업자 시스템(200)은 결과 리포트를 랭킹정보에 반영하여 랭킹정보를 업데이트한다. 따라서, 제 2 실시예에서는 로그 수집에 따른 부담(cost)을 중앙에서 지역으로 분산시킬 수 있다. 또한, CDN 사업자 시스템(200)은 각 사용자 단말기(210)의 컨텐츠 전송 내역을 통계 관리하고, 클라이언트(220)가 컨텐츠 이용요금을 지불하면 사용자와 정산하여 컨텐츠 전송에 따른 이익의 일부를 지불한다.The
한편, 도 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)
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)
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)
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 |
-
2007
- 2007-09-12 KR KR1020070092410A patent/KR100802331B1/en not_active Expired - Fee Related
Patent Citations (4)
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)
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 |