KR101128292B1 - System and method for content delivery using multiple cache server, and cache server thereof - Google Patents

System and method for content delivery using multiple cache server, and cache server thereof Download PDF

Info

Publication number
KR101128292B1
KR101128292B1 KR1020080107413A KR20080107413A KR101128292B1 KR 101128292 B1 KR101128292 B1 KR 101128292B1 KR 1020080107413 A KR1020080107413 A KR 1020080107413A KR 20080107413 A KR20080107413 A KR 20080107413A KR 101128292 B1 KR101128292 B1 KR 101128292B1
Authority
KR
South Korea
Prior art keywords
pieces
cache server
data
memory
fragments
Prior art date
Application number
KR1020080107413A
Other languages
Korean (ko)
Other versions
KR20100048316A (en
Inventor
장현민
Original Assignee
에스케이플래닛 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이플래닛 주식회사 filed Critical 에스케이플래닛 주식회사
Priority to KR1020080107413A priority Critical patent/KR101128292B1/en
Publication of KR20100048316A publication Critical patent/KR20100048316A/en
Application granted granted Critical
Publication of KR101128292B1 publication Critical patent/KR101128292B1/en

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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory

Abstract

본 발명은 복수의 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버에 관한 것으로, 캐시서버가 컨텐츠 데이터를 수신하고 일정크기의 조각으로 분할하여 복수의 캐시서버에 포함된 데이터 조각 저장소의 저장영역을 해당 일정크기로 구분한 각 구분영역에 저장한 후 클라이언트로부터의 요청을 받으면, 하나의 데이터 패킷의 페이로드에 포함할 조각의 개수를 결정하여 저장된 조각을 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 메모리로 불러들임과 동시에 클라이언트로 전송하게 되며, 이를 통해, 컨텐츠의 불완전 전송에 따른 분할손을 최소화하고 네트워크 트래픽 상황에 따라 적절한 양의 데이터 전송이 가능하며 데이터의 전송 속도를 높일 수 있다.The present invention relates to a content delivery system and method using a plurality of cache servers, and a cache server, the storage area of the data fragment storage included in the plurality of cache servers by receiving the content data, divided into pieces of a certain size Is stored in each partitioned area with the corresponding schedule size, and upon receiving a request from the client, the number of pieces to be included in the payload of one data packet is determined and the stored pieces are stored in the order of the pieces corresponding to the content data. Therefore, it is sequentially loaded into the memory and transmitted to the client, thereby minimizing the fragmentation loss due to incomplete transmission of contents, enabling the appropriate amount of data transmission according to network traffic conditions, and increasing the data transmission speed. .

CDN, 캐시서버, 복제서버, 고스트서버 CDN, Cache Server, Replication Server, Ghost Server

Description

복수의 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버{System and method for content delivery using multiple cache server, and cache server thereof}System and method for content delivery using multiple cache servers, and cache server TECHNICAL FIELD

본 발명은 컨텐츠 전송시스템 및 방법, 그 캐시서버에 관한 것으로, 특히 캐시서버에서 컨텐츠 데이터를 일정크기의 조각으로 분할하여 해당 크기로 구분된 복수의 캐시서버의 각 구분영역에 저장하고 클라이언트의 요청에 응답하여 분할 저장된 조각을 메모리로 불러들여 전송하는 복수의 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버에 관한 것이다.The present invention relates to a content delivery system and method, and a cache server thereof. Particularly, a cache server divides content data into pieces of a predetermined size and stores them in each partition of a plurality of cache servers divided by a corresponding size, and requests a client's request. The present invention relates to a content delivery system and method using a plurality of cache servers for retrieving and storing divided fragments into memory, and a cache server thereof.

일반적으로 컨텐츠 제공자(CP: Content Provider)의 웹 서버가 클라이언트에 제공할 컨텐츠(예컨대, 동영상, 음악, 파일 등)의 수는 매우 많다. 웹 서버가 이들의 일부 또는 전부를 다수의 클라이언트들 각각에게 일대일로 제공하기에는 많은 부하가 발생한다. 왜냐하면, 웹 서버는 단일의 ISP(Internet Service Provider)에 연결되어 있는데 반하여 컨텐츠를 요구하는 클라이언트는 다수의 ISP에 존재하기 때문이다.In general, the number of contents (eg, videos, music, files, etc.) that a content provider (CP) provides to a client is very large. There is a heavy load for a web server to provide some or all of these to each of the multiple clients one-to-one. This is because a web server is connected to a single Internet Service Provider (ISP), whereas clients requesting content exist in multiple ISPs.

따라서 ISP들 간의 트래픽은 컨텐츠 제공자와 클라이언트가 늘어남에 따라 기하급수적으로 증가하게 되고, 트래픽 혼잡으로 인한 전송지연 및/또는 전송실패율이 높아진다. 최악의 경우에는 웹 서버의 기능장애(fail-over)가 발생하기도 한다.Therefore, traffic between ISPs increases exponentially as the number of content providers and clients increases, and transmission delay and / or transmission failure rate due to traffic congestion increases. In the worst case, the web server may fail over.

이러한 문제점을 극복하기 위해 도입된 것이 CDN(Content Delivery Network)이다. CDN이란 클라이언트들로부터 멀리 떨어져 있는 컨텐츠 제공자의 웹 서버에 집중되어 있는 컨텐츠, 예를 들어 그림, 배너, 비디오 또는 오디오와 같이 용량이 크거나 클라이언트들의 요구가 빈번한 컨텐츠를 다수의 ISP 상호 접속점(PoP: Point of Presence)에 광역적으로 분산 배치된 호스트 서버에 미리 저장해 놓고, 클라이언트의 요구가 있을 경우 해당 이용자와 가장 근접한 호스트 서버의 경로를 반환함으로써 클라이언트가 그 반환된 경로를 통해 호스트 서버에 접속한 후 컨텐츠를 제공받을 수 있도록 한 서비스이다. 여기서 호스트 서버는 캐시서버, 복제서버 또는 고스트서버(이하, 캐시서버로 칭함)로 다양하게 일컬어진다.The CDN (Content Delivery Network) has been introduced to overcome this problem. A CDN is a collection of content that is concentrated on a content provider's web server that is remote from clients, such as pictures, banners, video, or audio. Point-of-presence is stored in the host server which is widely distributed, and the client connects to the host server through the returned path by returning the path of the host server closest to the user when requested by the client. This service allows you to receive content. The host server is variously referred to as a cache server, a replication server, or a ghost server (hereinafter referred to as a cache server).

종래에 캐시서버가 클라이언트로 특정 컨텐츠 전송하는 경우, 내부에 저장된 해당 컨텐츠의 저장주소를 참조하여 메모리로 불러들이고, 이를 기설정된 크기로 분할하여 전송하는 방식을 사용하여 왔다. 이러한 경우 컨텐츠 데이터의 크기에 관계없이 전체 파일을 메모리로 로드해야 하며, 전체 파일의 전송이 완료되지 않은 시점에서 클라이언트가 컨텐츠 요청을 중단하는 경우 전체적은 효율을 떨어뜨리게 되는 분할손이 발생하게 된다. 또한, 네트워크 트래픽에 관계없이 일정크기의 데이터 패킷을 전송함으로써 효율적인 네트워크 관리가 힘들다는 문제가 있다.Conventionally, when a cache server transmits a specific content to a client, the cache server refers to a storage address of the content stored therein and loads it into a memory, and divides it into a predetermined size and transmits the content. In this case, the entire file must be loaded into the memory regardless of the size of the content data, and when the client stops the content request at the time when the transfer of the entire file is not completed, a splitting loss is caused. In addition, there is a problem that efficient network management is difficult by transmitting data packets of a certain size regardless of network traffic.

본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 캐시서버가 컨텐츠 데이터를 일정크기의 조각으로 분할하여 해당 크기로 구분된 복수의 캐시서버의 각 구분영역에 분산 저장하고, 실시간으로 데이터 패킷에 포함되는 조각의 개수를 결정하여 클라이언트로부터의 컨텐츠 요청을 수신한 캐시서버 메모리로 불러들임과 동시에 해당 개수만큼씩 순차적으로 클라이언트로 전송할 수 있는 복수의 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버를 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above-described problems, and the cache server divides the content data into pieces of a certain size, stores them in each partition of the plurality of cache servers divided by the corresponding size, and stores the data in real time. Content delivery system and method using a plurality of cache server that can determine the number of fragments included in the packet to be loaded into the cache server memory receiving the content request from the client and to sequentially transmit the number of pieces to the client by the corresponding number, The purpose is to provide a cache server.

상기와 같은 목적을 달성하기 위한 본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법은, 캐시서버가 컨텐츠서버로부터 컨텐츠 데이터를 수신하고 일정크기의 조각으로 분할하여 상기 일정크기로 구분된 상기 캐시서버 데이터 조각 저장소의 각 구분영역 및 하나 이상의 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 분산하여 저장하는 저장단계, 상기 캐시서버가 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 결정하는 결정단계, 및 상기 캐시서버가 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 내부의 메모리로 불러들임과 동시에, 상기 결정한 조각의 개수씩 데이터 패킷의 페 이로드에 상기 불러들인 조각을 포함하여 상기 클라이언트로 전송하는 전송단계; 를 포함한다.Content delivery method using a plurality of cache server of the present invention for achieving the above object, the cache server receives the content data from the content server, divided into pieces of a certain size, the cache server data divided into the predetermined size A storage step of distributing and storing each partition of the fragment storage and one or more other cache server data in the fragment storage; fragments to be included in one data packet when the cache server receives a request for the content data from a client A determination step of determining the number of pieces, and each piece of the pieces stored in each partition of the cache server data piece storage and pieces stored in each partition of the other cache server data piece storage each piece corresponding to the content data. Sequentially lit into internal memory At the same time as the rudder, the step of transmitting to the client including the retrieved fragment in the payload of the data packet by the number of the determined pieces; It includes.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 저장단계는, 상기 분할한 조각을 저장하는 각 구분영역의 시작주소 정보를 대응되는 상기 메모리에 저장하는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the storing step is characterized in that for storing the start address information of each divided area for storing the divided pieces in the corresponding memory.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 전송단계는, 상기 각 구분영역의 시작주소 정보를 참조하여 상기 저장된 조각을 상기 메모리로 불러들이는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the transmitting step is characterized in that the stored fragments are loaded into the memory with reference to the start address information of each division area.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 일정크기는, 최대전송단위를 특정 정수로 나눈 크기인 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the predetermined size is characterized in that the maximum transmission unit divided by a specific integer.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 결정단계는, 네트워크 트래픽을 고려하여 상기 조각의 개수를 결정하는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the determining step is characterized in that the number of the pieces are determined in consideration of network traffic.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 결정단계는, 상기 조각의 개수와 상기 일정크기를 곱한 값이 최대전송단위를 초과하지 않도록 상기 조각의 개수를 결정하는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the determining step, characterized in that the number of the pieces are determined so that the value multiplied by the number of pieces and the predetermined size does not exceed the maximum transmission unit. .

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 전송단계는, 상기 캐시서버가 상기 다른 캐시서버로 상기 다른 캐시서버 각각이 저장한 조각에 대한 요청을 하고, 상기 요청을 수신한 상기 다른 캐시서버 각각이 대응되는 데이터 조각 저장소의 각 구분영역에 저장된 조각을 내부에 포함된 메모리에 불 러들임과 동시에 상기 캐시서버로 전송하며, 상기 캐시서버가 상기 다른 캐시서버에서 전송한 조각을 수신하여 상기 캐시서버 내부의 메모리로 불러들이는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the transmitting step, the cache server makes a request for the pieces stored in each of the other cache server to the other cache server, the receiving the request Each of the other cache servers loads the fragments stored in each partition of the corresponding data fragment storage into the memory included therein and simultaneously transmits the fragments to the cache server, and the cache server receives the fragments transmitted from the other cache servers. To be loaded into the memory of the cache server.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 전송단계는, 상기 전송과 동시에 상기 전송한 조각에 대한 전송횟수를 계수하는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the transmitting step is characterized in that the number of transmissions for the transmitted fragments at the same time as the transmission.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 전송단계는, 상기 계수한 결과 전송횟수가 임계치를 초과하는 조각을 제외한 나머지 조각을 상기 메모리에서 삭제하는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the transmitting step, characterized in that the remaining pieces except for the pieces whose transmission frequency exceeds the threshold value as a result of the counting is characterized in that deleted from the memory.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 캐시서버는, 상기 나머지 조각을 상기 메모리에서 삭제한 후 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 캐시서버 내부의 메모리로 다시 불러들임과 동시에, 상기 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 캐시서버의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 임의의 클라이언트로 전송하는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the cache server is included in one data packet when receiving the request for the content data from any client after deleting the remaining pieces from the memory. The number of fragments is re-determined, and the fragments stored in each division region of the cache server data fragment storage and the fragments stored in each division region of the other cache server data fragment storage among the remaining remaining fragments correspond to the content data. At the same time, the fragments existing in the memory of the cache server and the remaining fragments are reloaded in the payload of the data packet by the number of fragments determined again, in the order of the fragments. To send to any client, including .

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 전송 단계는, 상기 계수한 결과 전송횟수가 임계치를 초과한 조각 중 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 제외한 나머지 조각을 상기 캐시서버 내부의 메모리에서 삭제하고, 상기 다른 캐시서버로 메시지를 송신하여 상기 전송횟수가 임계치를 초과하는 조각 중 상기 다른 캐시서버로부터 불러들인 조각을 상기 다른 캐시서버 내부의 메모리에서 삭제하지 않도록 요청하는 것을 특징으로 한다.In the content transmission method using a plurality of cache servers of the present invention, the transmission step, the remaining pieces except the pieces stored in each partition area of the cache server data piece storage of the pieces of the counted number of transmissions exceeded a threshold value; Deletes from the memory inside the cache server and sends a message to the other cache server so as not to delete, from the memory inside the other cache server, a piece imported from the other cache server among the pieces whose transmission frequency exceeds a threshold. Characterized by request.

본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송방법에 있어서, 상기 캐시서버는, 상기 나머지 조각을 상기 메모리에서 삭제하고 상기 요청을 한 후 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각, 상기 다른 캐시서버 내부의 메모리에 존재하는 조각, 및 상기 다른 캐시서버 내부의 메모리에 존재하지 않는 조각 중 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 캐시서버 내부의 메모리로 다시 불러들임과 동시에, 상기 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 캐시서버의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 임의의 클라이언트로 전송하는 것을 특징으로 한다.In the content transmission method using a plurality of cache server of the present invention, the cache server, if the request for the content data from any client after deleting the remaining pieces from the memory and making the request, one data The number of fragments to be included in the packet is determined again, and among the remaining fragments, fragments stored in each partition of the cache server data fragment storage, fragments present in memory of the other cache server, and internally, the other cache server. Among the fragments that do not exist in the memory of the fragments stored in each partition of the other cache server data fragment storage is sequentially loaded back into the memory of the cache server in the order of each fragment corresponding to the content data, The payload of the data packet is determined by the number of pieces determined again. And a fragment present in the cache server's memory and the remaining fragments re-loaded to the arbitrary client.

상기와 같은 목적을 달성하기 위한 본 발명의 본 발명의 복수의 캐시서버를 이용한 컨텐츠 전송시스템은, 컨텐츠를 제공하는 컨텐츠서버, 및 상기 컨텐츠서버로부터 컨텐츠 데이터를 수신하면 일정크기의 조각으로 분할하여 상기 일정크기로 구분된 내부의 데이터 조각 저장소의 각 구분영역 및 하나 이상의 다른 캐시서버의 데이터 조각 저장소의 각 구분영역에 분산 저장하고, 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 결정하며, 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 내부의 메모리로 불러들임과 동시에, 상기 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 불러들인 조각을 포함하여 상기 클라이언트로 전송하는 캐시서버를 포함한다.Content delivery system using a plurality of cache server of the present invention for achieving the above object, the content server for providing the content, and when receiving the content data from the content server is divided into pieces of a certain size to the It is distributed and stored in each division of the internal data fragment storage divided into a certain size and each division of the data fragment storage of one or more other cache servers, and is included in one data packet when a request for the content data is received from a client. Determine the number of pieces to be sliced, and sequentially store pieces stored in each partition of the cache server data piece storage and pieces stored in each partition of the other cache server data piece storage according to the order of each piece corresponding to the content data. Into the internal memory at the same time, By the number of pieces specified by including the pieces which are loaded on the payload of the data packet includes a cache server that is transmitted to the client.

상기와 같은 목적을 달성하기 위한 본 발명의 캐시서버는, 데이터 송수신을 위한 입출력부, 일정크기의 컨텐츠 데이터의 조각을 상기 일정크기로 구분된 구분영역에 저장하는 데이터 조각 저장소, 및 상기 입출력부를 통해 컨텐츠 데이터를 수신하면 상기 일정크기의 조각으로 분할하여 내부의 데이터 조각 저장소의 각 구분영역 및 하나 이상의 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 분산 저장하고, 상기 입출력부를 통해 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 결정하며, 상기 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순 서에 따라 순차적으로 내부의 메모리로 불러들임과 동시에, 상기 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 불러들인 조각을 포함하여 상기 입출력부를 통해 상기 클라이언트로 전송하는 제어모듈을 포함한다.The cache server of the present invention for achieving the above object, through the input and output unit for transmitting and receiving data, a data fragment storage for storing a piece of content data of a predetermined size in the divided area divided into the predetermined size, and through the input and output unit Upon receiving the content data, the content data is divided into pieces of the predetermined size and distributed and stored in each partition of the internal data fragment storage and at least one other cache server data fragment storage. Upon receiving the request, the number of fragments to be included in one data packet is determined, and the fragments stored in each division of the data fragment storage and the fragments stored in each division of the other cache server data fragment storage are stored in the content data. Sequentially in the order of the corresponding pieces And a control module which loads the loaded fragments into the payload of the data packet by the number of the determined fragments and transmits them to the client through the input / output unit.

본 발명의 캐시서버에 있어서, 상기 제어모듈은, 상기 분할한 조각을 저장하는 각 구분영역의 시작주소 정보를 대응되는 상기 메모리에 저장하는 것을 특징으로 한다.In the cache server of the present invention, the control module is configured to store start address information of each division area for storing the divided pieces in a corresponding memory.

본 발명의 캐시서버에 있어서, 상기 전송단계는, 상기 각 구분영역의 시작주소 정보를 참조하여 상기 저장된 조각을 상기 메모리로 불러들이는 것을 특징으로 한다.In the cache server of the present invention, the transmitting step refers to loading the stored fragment into the memory by referring to the start address information of each division area.

본 발명의 캐시서버에 있어서, 상기 제어모듈은, 상기 입출력부를 통해 상기 다른 캐시서버로 상기 다른 캐시서버 각각이 저장한 조각에 대한 요청을 하고, 상기 요청을 수신한 상기 다른 캐시서버 각각이 데이터 조각 저장소의 각 구분영역에 저장된 조각을 내부에 포함된 메모리에 불러들임과 동시에 상기 입출력부로 전송하며, 상기 제어모듈이 상기 입출력부를 통해 상기 다른 캐시서버에서 전송한 조각을 수신하여 상기 제어모듈 내부의 메모리로 불러들이는 것을 특징으로 한다.In the cache server of the present invention, the control module makes a request for a fragment stored by each of the other cache servers to the other cache server through the input / output unit, and each of the other cache servers receiving the request is a data fragment. The pieces stored in each division area of the storage are loaded into the memory included therein and transmitted to the input / output unit, and the control module receives the pieces transmitted from the other cache server through the input / output unit to receive the pieces of memory in the control module. It is characterized by a call to.

본 발명의 캐시서버에 있어서, 상기 제어모듈은, 상기 전송과 동시에 상기 전송한 조각에 대한 전송횟수를 계수하는 것을 특징으로 한다.In the cache server of the present invention, the control module is characterized in that the number of transmissions for the transmitted fragments at the same time as the transmission.

본 발명의 캐시서버에 있어서, 상기 제어모듈은, 상기 계수한 결과 전송횟수가 임계치를 초과하는 조각을 제외한 나머지 조각을 상기 메모리에서 삭제하는 것을 특징으로 한다.In the cache server of the present invention, the control module may delete the remaining pieces from the memory except for the pieces whose transmission count exceeds the threshold.

본 발명의 캐시서버에 있어서, 상기 제어모듈은, 상기 나머지 조각을 상기 메모리에서 삭제한 후 상기 입출력부를 통해 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 제어모듈 내부의 메모리로 다시 불러들임과 동시에, 상기 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 제어모듈 내부의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 입출력부를 통해 상기 임의의 클라이언트로 전송하는 것을 특징으로 한다.In the cache server of the present invention, the control module, after deleting the remaining pieces from the memory, the number of pieces to be included in one data packet when receiving a request for the content data from any client through the input and output unit; Re-determining, and in accordance with the order of each piece corresponding to the content data, the pieces stored in each divided area of the data piece storage and the pieces stored in each divided area of the other cache server data piece storage among the remaining pieces are deleted. At the same time, re-loading into the memory of the control module at the same time, the input and output including the fragment present in the memory of the control module and the remaining re-loaded pieces in the payload of the data packet by the number of the pieces determined again Sent to the arbitrary client via .

본 발명의 캐시서버에 있어서, 상기 제어모듈은, 상기 계수한 결과 전송횟수가 임계치를 초과한 조각 중 상기 데이터 조각 저장소의 각 구분영역에 저장된 조각을 제외한 나머지 조각을 상기 제어모듈 내부의 메모리에서 삭제하고, 상기 다른 캐시서버로 메시지를 송신하여 상기 전송횟수가 임계치를 초과하는 조각 중 상기 다른 캐시서버로부터 불러들인 조각을 상기 다른 캐시서버 내부의 메모리에서 삭제하지 않도록 요청하는 것을 특징으로 한다.In the cache server of the present invention, the control module deletes, from the memory inside the control module, the remaining pieces, except for the pieces stored in each division area of the data piece storage, among the pieces whose transmission count exceeds the threshold. And transmitting a message to the other cache server so as not to delete the fragment retrieved from the other cache server among the pieces whose transmission frequency exceeds a threshold from the memory inside the other cache server.

본 발명의 캐시서버에 있어서, 상기 제어모듈은, 상기 나머지 조각을 상기 메모리에서 삭제하고 상기 요청을 한 후 상기 입출력부를 통해 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 데이터 조각 저장 소의 각 구분영역에 저장된 조각, 상기 다른 캐시서버 내부의 메모리에 존재하는 조각, 및 상기 다른 캐시서버 내부의 메모리에 존재하지 않는 조각 중 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 제어모듈 내부의 메모리로 다시 불러들임과 동시에, 상기 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 제어모듈 내부의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 입출력부를 통해 상기 임의의 클라이언트로 전송하는 것을 특징으로 한다.In the cache server of the present invention, the control module deletes the remaining pieces from the memory and makes a request and receives the request for the content data from any client through the input / output unit in one data packet. The number of fragments to be re-determined and pieces of the remaining fragments stored in each partition of the data fragment storage, fragments existing in the memory inside the other cache server, and fragments existing in the memory inside the other cache server are not present. Among the fragments, the fragments stored in each division area of the other cache server data fragment storage are sequentially loaded back into the memory inside the control module according to the order of the respective fragments corresponding to the content data, and at the same time, In the control module in the payload of the data packet by the number Including fragments and pieces, which are the rest of the back up to the present in the memory through the input and output characterized by transmitting to the arbitrary client.

본 발명에 의하면, 캐시서버가 데이터 저장소에 저장된 컨텐츠 조각을 일정 개수씩 메모리로 불러들여 클라이언트로 전송함으로써, 컨텐츠 전송이 불완전하게 종료된 경우 발생하는 분할손을 최소화할 수 있고 네트워크 트래픽 상황에 따라 적절한 데이터 양을 선택하여 전송할 수 있으며, 단일 캐시서버의 데이터 조각 저장소에서 컨텐츠 데이터를 메모리로 불러들여 전송하는 것보다 더 빠른 속도로 컨텐츠 데이터를 전송할 수 있고, 분할된 데이터 조각을 분할된 크기로 구분된 저장소에 저장하여 빠르게 메모리로 불러들이고 전송하는 것이 가능하고, 다른 조각에 비해 상대적으로 요청이 많은 조각을 메모리에 저장하여 신속히 클라이언트로 제공하는 것이 가능해 진다.According to the present invention, the cache server loads a certain number of pieces of content stored in the data store into the memory and transmits the pieces of content to the client, thereby minimizing the splitting loss that occurs when the content transmission is incompletely terminated. You can select and transfer the amount of data, and transfer the content data at a faster rate than bringing the content data into memory from the data fragment store of a single cache server and sending the divided data pieces into divided sizes. It can be stored in a repository, quickly loaded into memory, and sent, and a piece of memory that is requested more than other pieces can be stored in memory and quickly delivered to the client.

이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, in describing in detail the operating principle of the preferred embodiment of the present invention, if it is determined that the detailed description of the related known functions or configurations may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, the same reference numerals are used for parts having similar functions and functions throughout the drawings.

도 1은 본 발명의 일 실시예에 따른 컨텐츠 전송시스템의 구성도이다. 도 1을 참조하면, 본 실시예에 따른 컨텐츠 제공시스템은 네트워크(400)를 통해 데이터 송수신 가능한 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n), 컨텐츠서버(200) 및 클라이언트(300)를 포함하여 구성된다.1 is a block diagram of a content delivery system according to an embodiment of the present invention. Referring to FIG. 1, the content providing system according to the present embodiment includes a first cache server to n-th cache servers 100-1 to 100-n, a content server 200, and a client capable of transmitting and receiving data through a network 400. And 300.

네트워크(400)는 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n), 컨텐츠서버(200) 및 클라이언트(300) 서로 간의 데이터 송수신을 위한 통신망을 의미한다.The network 400 refers to a communication network for transmitting and receiving data between the first cache server to the nth cache server 100-1 to 100-n, the content server 200, and the client 300.

클라이언트(300)는 네트워크(400)로 연결된 서버로부터 정보를 제공받는 컴퓨터 등을 의미한다. 클라이언트(300)는 브라우저에 특정 컨텐츠를 요청(request)하는 URL(Uniform Resource Locater) 등이 입력되면, DNS(Domain Name Server) 등의 네임서버에 액세스(access)하여 도메인명을 해당 컨텐츠를 제공하는 컨텐츠서버(200) 또는 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n) 중 하나의 캐시서버의 IP 주소로 변환하고 해당 IP 주소에 대응되는 서버로 접속하는 역할을 한다.The client 300 refers to a computer that receives information from a server connected to the network 400. When the client 300 inputs a Uniform Resource Locater (URL) for requesting specific content into a browser, the client 300 accesses a name server such as a domain name server (DNS) to provide a corresponding content for a domain name. It converts to the IP address of one of the content server 200 or the first cache server to the n-th cache server (100-1 to 100-n) and the server corresponding to the IP address.

컨텐츠서버(200)는 컨텐츠 제공자가 제공하는 웹페이지 및 객체(object) 등 을 저장하고 있다가 클라이언트(300)로부터의 컨텐츠 요청이 있을 경우 응답하는 역할을 하는 서버이다. 즉, 컨텐츠서버(200)는 클라이언트(300)로부터 요청된 컨텐츠를 전송하는 역할을 하며, 컨텐츠서버(200)가 보유한 컨텐츠 중 일부를 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n) 중 하나의 캐시서버로 전송하여 저장하도록 한다. 이를 통해, 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n) 중 하나의 캐시서버에서 클라이언트(300)의 요청에 따른 컨텐츠를 신속하게 제공하는 것이 가능하게 된다.The content server 200 is a server that stores web pages and objects provided by the content provider and responds to content requests from the client 300. That is, the content server 200 serves to transmit the content requested from the client 300, and some of the contents held by the content server 200 are first cache servers to nth cache servers 100-1 to 100-. n) to be transmitted to and stored in one of the cache server. Through this, it is possible to quickly provide the content according to the request of the client 300 in one cache server of the first cache server to n-th cache server (100-1 to 100-n).

제1캐시서버(cache server) 내지 제n캐시서버(100-1 내지 100-n)는 예를 들어, 복제서버(replication server) 또는 고스트서버(ghost server) 등으로 불리며, 컨텐츠서버(200)가 저장 및 관리하는 컨텐츠 데이터의 복사본을 저장하여 클라이언트(300)로부터의 컨텐츠 요청이 있을 경우 신속하게 제공하는 역할을 한다.The first cache server to the n-th cache server (100-1 to 100-n), for example, is called a replication server (ghost server) or a ghost server (ghost server), the content server 200 is It stores a copy of the content data to be stored and managed to provide a prompt when there is a content request from the client (300).

본 발명에서는, 제1캐시서버(100-1)가 컨텐츠서버(200)로부터 컨텐츠 데이터를 수신하면 일정크기의 조각으로 분할하고 해당 일정크기로 구분된 제1캐시서버(100-1)의 데이터 조각 저장소의 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)의 데이터 조각 저장소의 구분영역 각각에 분산 저장한다. 제1캐시서버(100-1)가 분할한 데이터 조각을 저장하는 경우에는 각 조각이 저장된 각 구분영역의 시작주소 정보를 제1캐시서버(100-1) 또는 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n) 내부의 메모리에 저장하여, 향후 데이터 조각 저장소의 각 구분영역에서 해당 시작주소 정보를 참조하여 메모리로 불러들이도록 할 수 있다.In the present invention, when the first cache server 100-1 receives the content data from the content server 200, the first cache server 100-1 is divided into pieces of a predetermined size and the data pieces of the first cache server 100-1 divided into the corresponding sizes. The storage area is divided and stored in each of the division areas of the data fragment storage of the second cache server to the n-th cache server (100-2 to 100-n). When the first cache server 100-1 stores the fragmented data fragments, the first cache server 100-1 or the first cache server to the n-th cache server store the start address information of each partition in which the fragments are stored. (100-1 to 100-n) may be stored in an internal memory, so that each partition area of the data fragment storage may be loaded into the memory with reference to corresponding start address information.

이때, 제1캐시서버(100-1)는 컨텐츠 데이터를 일정크기의 조각으로 분할하 고, 예를 들어, 분할된 조각의 순번을 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n)의 개수인 'n'으로 나누어, 나머지가 '1'인 제1조각을 제1캐시서버(100-1)의 데이터 조각 저장소에 저장하고, 나머지가 '2' 내지 '0'인 조각을 제2캐시서버(100-2) 내지 제n캐시서버(100-n)의 데이터 조각 저장소에 각각으로 전송하여 분산 저장하도록 할 수 있을 것이다.At this time, the first cache server 100-1 divides the content data into pieces of a predetermined size, and, for example, the first cache server to the nth cache server 100-1 to 100- n) divided by 'n', the first fragment having the remainder '1' is stored in the data fragment storage of the first cache server 100-1, and the remaining fragments of the '2' through '0'. The data fragment storage of the second cache server 100-2 to the nth cache server 100-n may be transmitted to each of the distributed storage.

이때, 컨텐츠 데이터를 분할하는 일정크기는, 예를 들어, 최대전송단위(MTU: Maximum Transfer Unit)를 특정 정수로 나는 크기일 수 있다. 최대전송단위는 TCP/IP(Transmission Control Protocol/Internet Protocol) 네트워크 등과 같이 패킷 또는 프레임 기반의 네트워크에서 전송 가능한 최대 데이터량을 의미한다.In this case, the predetermined size for dividing the content data may be, for example, a size in which a maximum transfer unit (MTU) is obtained as a specific integer. The maximum transmission unit refers to the maximum amount of data that can be transmitted in a packet or frame based network, such as a Transmission Control Protocol / Internet Protocol (TCP / IP) network.

이후, 제1캐시서버(100-1)가 클라이언트(300)로부터 컨텐츠 데이터에 대한 요청을 수신하면 클라이언트(300)로 전송하는 하나의 데이터 패킷마다 포함하여 전송할 조각의 개수를 결정한다. 이때, 결정되는 조각의 개수는, 예를 들어, 네트워크(400) 트래픽이 많은 경우 상대적으로 작은 값을, 반대로 네트워크(400) 트래픽이 적은 경우 상대적으로 큰 값을 갖도록 결정될 수 있다.Thereafter, when the first cache server 100-1 receives a request for content data from the client 300, the first cache server 100-1 determines the number of pieces to be transmitted, including one data packet transmitted to the client 300. In this case, the number of pieces determined may be, for example, a relatively small value when the network 400 traffic is high, and conversely, a relatively large value when the network 400 traffic is low.

그리고 제1캐시서버(100-1)가 하나의 데이터 패킷에 포함하여 전송할 조각의 개수를 결정함에 있어서는, 예를 들어, 결정되는 조각의 개수와 데이터를 분할하는데 이용한 일정크기와의 곱이 최대전송단위를 초과하지 않도록 결정할 수 있다. 하나의 데이터 패킷에 포함되는 데이터량이 최대전송단위를 초과하는 경우 네트워크(400) 상에 존재하는 라우터 등에서 다시 데이터 패킷을 분할하고 라우팅하여야 하므로 전송시간의 지연을 초래할 수 있기 때문이다.In determining the number of pieces to be transmitted by the first cache server 100-1 in one data packet, for example, the product of the determined number of pieces and a predetermined size used to divide the data is the maximum transmission unit. It can be determined not to exceed. This is because when the amount of data included in one data packet exceeds the maximum transmission unit, the data packet must be divided and routed again by a router existing on the network 400, which may cause a delay in transmission time.

제1캐시서버(100-1)가 조각의 개수를 결정하고 나면, 데이터 조각 저장소의 각 구분영역에 저장한 컨텐츠 데이터 조각을 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 메모리로 불러들인다. 즉, 제1캐시서버(100-1)는 제1캐시서버(100-1) 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 저장된 조각을 컨텐츠 데이터가 분할된 순서를 고려하여 순차적으로 제1캐시서버(100-1) 내부의 메모리로 불러들인다. 이때, 각 조각을 저장한 각 구분영역의 시작주소 정보를 참조하여 메모리로 불러들일 수 있음은 상기한 바와 같으며, 이를 통해 일반 캐시서버와 같은 file I/O(Input/Output) 동작이 필요없게 되어 고속으로 클라이언트(300)로 전송하는 것이 가능해 진다.After the first cache server 100-1 determines the number of pieces, the pieces of content data stored in each division area of the data piece storage are sequentially loaded into the memory according to the order of each piece corresponding to the content data. That is, the first cache server 100-1 is a fragment stored in each division area of the first cache server 100-1 data fragment storage and the second cache server to n-th cache server 100-2 to 100-n. The fragments stored in each division area of the data fragment storage are sequentially loaded into the memory of the first cache server 100-1 in consideration of the order in which the content data is divided. In this case, as described above, it can be loaded into the memory by referring to the start address information of each partition in which each fragment is stored, thereby eliminating the need for file I / O (Input / Output) operation like a general cache server. It is possible to transmit to the client 300 at high speed.

이때 각 조각을 메모리로 불러들이는 과정은, 예를 들어, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 저장된 조각의 경우, 제1캐시서버(100-1)가 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)로 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 각각이 저장한 조각에 대한 전송요청을 하고, 이를 수신한 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 각각이 데이터 조각 저장소의 각 구분영역에 저장된 조각을 내부에 포함된 메모리에 불러들임과 동시에 제1캐시서버(100-1)로 전송하는 방식으로 이루어질 수 있다. At this time, the process of loading each piece into the memory, for example, in the case of the pieces stored in each partition of the second cache server to the n-th cache server (100-2 to 100-n) data fragment storage, the first cache The server 100-1 stores the second cache server through the nth cache server 100-2 through 100-n in pieces stored by each of the second cache server through the nth cache server 100-2 through 100-n. The second cache server to the n-th cache server (100-2 to 100-n) receiving the request for the transmission of the pieces stored in each partition of the data fragment storage in the memory contained therein at the same time The first cache server 100-1 may be transmitted in a manner of transmitting.

이러한 방식을 통해 제1캐시서버(100-1)의 데이터 조각 저장소에 모든 조각을 저장해 놓고 이를 메모리에 불러들여 전송하는 것보다 더 빠른 응답속도를 가질 수 있다. 즉, 모든 데이터 조각을 하나의 데이터 조각 저장소에 저장해 놓고 각 조 각의 저장주소를 참조하여 순차적으로 메모리로 불러들이는 데 소요되는 시간이 크기 때문에, 복수의 캐시서버에 데이터 조각을 분산 저장한 후 각 캐시서버의 메모리에 하나의 조각씩을 불러들이고, 하나의 캐시서버에서 이를 수신하여 클라이언트(300)로 전송하는 것이 응답속도가 더 빠르게 된다.In this manner, all fragments are stored in the data fragment storage of the first cache server 100-1, and the response speed is faster than that of the fragments stored in the memory. In other words, it takes a long time to store all data fragments in one data fragment storage and load them into memory sequentially by referring to each fragment's storage address. Recalling a piece in the memory of each cache server, receiving it from one cache server and transmitting to the client 300 is faster response.

각각의 조각을 수신한 캐시서버(100-1)는 결정한 개수만큼의 데이터 조각을 수신할 때마다 순차적으로 데이터 패킷의 페이로드에 포함하여 클라이언트(300)로 전송한다.Each time the cache server 100-1 receiving each fragment receives the determined number of pieces of data, the cache server 100-1 sequentially includes the fragments in the payload of the data packet and transmits the fragments to the client 300.

이후, 제1캐시서버(100-1)가 클라이언트(300)로 컨텐츠 데이터 조각을 포함한 데이터 패킷을 전송하면, 제1캐시서버(100-1)는 전송한 조각에 대한 전송횟수를 계수(count)하는 동작을 할 수 있다. 예를 들어, 처음으로 전송된 조각이라면 전송횟수가 '1'이 되고, 기존에 전송되어 계수된 전송횟수 정보가 메모리 또는 데이터 조각 저장소 등에 저장되어 있다면 해당 전송횟수에 더하기 '1'을 할 수 있을 것이다.Thereafter, when the first cache server 100-1 transmits a data packet including a fragment of content data to the client 300, the first cache server 100-1 counts the number of transmissions for the transmitted fragment. Can be done. For example, if the first fragment is transmitted, the number of transmissions is '1'. If the transmission number information, which has been previously transmitted and counted, is stored in the memory or data fragment storage, it can be added to '1'. will be.

본 발명의 일 실시예에서는, 예를 들어, 제1캐시서버(100-1)에서 계수한 결과 특정 조각에 대한 전송횟수가 임계치를 초과하는 경우, 해당 특정 조각을 제외한 나머지 조각을 메모리에서 삭제한다. In one embodiment of the present invention, for example, when the number of transmissions for a particular piece exceeds the threshold as a result of counting in the first cache server 100-1, the remaining pieces except for the particular piece are deleted from the memory. .

이후, 제1캐시서버(100-1)가 임의의 클라이언트로부터 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 데이터 조각의 개수를 다시 결정하고, 삭제한 나머지 조각 중 제1캐시서버(100-1) 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 저장된 조각을 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 제1캐시서버(100-1) 내부의 메모리로 다시 불러들인다. 그리고 제1캐시서버(100-1)는 내부의 메모리에 기 존재하는 조각 및 다시 불러들인 조각을 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송하게 된다.Then, when the first cache server 100-1 receives a request for content data from any client, the first cache server 100-1 re-determines the number of pieces of data to be included in one data packet, and among the remaining pieces of the first cache server ( 100-1) fragments stored in each partition of the data fragment storage and fragments stored in each partition of the second cache server to n-th cache servers 100-2 to 100-n, respectively, corresponding to the content data. In order for the pieces to be sequentially loaded back into the memory of the first cache server (100-1). In addition, the first cache server 100-1 may include the pieces of pieces that are already present in the internal memory and the pieces that have been reloaded into the payload of the data packet by the number of pieces that have been re-determined and transmitted to an arbitrary client.

본 발명의 다른 실시예에서는, 예를 들어, 전송횟수가 임계치를 초과하는 조각 중 제1캐시서버(100-1) 데이터 조각 저장소의 각 구분영역에 저장된 조각을 제외한 나머지 조각을 제1캐시서버(100-1) 내부의 메모리에서 삭제하고, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)로 메시지를 송신하여 전송횟수가 임계치를 초과하는 조각 중 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)로부터 불러들인 조각을 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 내부의 메모리에서 삭제하지 않도록 요청한다. In another embodiment of the present invention, for example, among the pieces whose transmission frequency exceeds the threshold, the remaining pieces of the pieces except for the pieces stored in each partition of the first cache server 100-1 data piece storage are stored in the first cache server ( 100-1) Deleted from the internal memory and sending a message to the second cache server to the n-th cache server (100-2 to 100-n), the second cache server to the nth of the pieces of the transmission frequency exceeds the threshold Requests not to delete the pieces retrieved from the cache servers 100-2 to 100-n from the memory inside the second cache servers to the nth cache servers 100-2 to 100-n.

이후, 제1캐시서버(100-1)가 임의의 클라이언트로부터 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 데이터 조각의 개수를 다시 결정하고, 삭제한 나머지 조각 중 제1캐시서버(100-1) 데이터 조각 저장소의 각 구분영역에 저장된 조각, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 내부의 메모리에 존재하는 조각, 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 내부의 메모리에 존재하지 않는 조각 중 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 저장된 조각을 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 제1캐시서버(100-1) 내부의 메모리로 다시 불러들 인다. 그리고 제1캐시서버(100-1)는 내부의 메모리에 기 존재하는 조각 및 다시 불러들인 조각을 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송하게 된다.Then, when the first cache server 100-1 receives a request for content data from any client, the first cache server 100-1 re-determines the number of pieces of data to be included in one data packet, and among the remaining pieces of the first cache server ( 100-1) Fragments stored in each partition of the data fragment storage, fragments in the memory of the second cache server to n-th cache server (100-2 to 100-n), and second cache server to n-th cache Among the pieces that do not exist in the memory inside the servers 100-2 to 100-n, pieces stored in each division area of the second cache server to the nth cache server 100-2 to 100-n data fragment storage are stored in the content data. According to the order of each piece corresponding to the sequentially loaded back into the memory of the first cache server (100-1). In addition, the first cache server 100-1 may include the pieces of pieces that are already present in the internal memory and the pieces that have been reloaded into the payload of the data packet by the number of pieces that have been re-determined and transmitted to an arbitrary client.

만일 동일한 동영상 컨텐츠에 대한 데이터 조각 간의 전송횟수의 편차가 크다면, 예를 들어, 다수의 클라이언트가 동영상의 앞부분을 시청하고 뒷부분은 시청하지 않아서 앞부분에 해당하는 데이터 조각의 전송횟수가 상대적으로 크기 때문일 수 있다. 이러한 경우, 전송횟수가 상대적으로 높은 부분에 해당하는 데이터 조각을 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n)의 메모리에 남겨두고, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 각각은 제1캐시서버(100-1)로부터 전송 요청을 수신하면 내부의 메모리에 존재하는 조각을 제1캐시서버(100-1)로 신속히 전달할 수 있게 된다.If the number of transfers between data fragments for the same video content is large, for example, it is because a large number of clients watch the front part of the video and do not watch the back part, so the data fragments corresponding to the front part are relatively large. Can be. In this case, the pieces of data corresponding to the relatively high number of transmissions are left in the memory of the first to n-th cache servers 100-1 to 100-n, and the second to n-th cache servers ( Each of the 100-2 to 100-n may receive a transfer request from the first cache server 100-1 and quickly transfer a fragment existing in the internal memory to the first cache server 100-1.

본 발명의 일 실시예에 따른 제1캐시서버(100-1)의 구성에 대해서는 도 2를 참조하여 좀 더 상세히 설명하기로 한다.The configuration of the first cache server 100-1 according to an embodiment of the present invention will be described in more detail with reference to FIG. 2.

도 2는 본 발명의 일 실시예에 따른 도 1에 도시된 제1캐시서버(100-1)의 구성도이다. 도 1 및 도 2를 참조하면 제1캐시서버(100-1)는 입출력부(110), 제어모듈(120), 데이터 조각 저장소(130) 및 메모리(125)를 포함하여 구성된다.2 is a configuration diagram of the first cache server 100-1 shown in FIG. 1 according to an embodiment of the present invention. 1 and 2, the first cache server 100-1 includes an input / output unit 110, a control module 120, a data fragment storage 130, and a memory 125.

입출력부(110)는 데이터 송수신을 위한 인터페이스를 갖는다.The input / output unit 110 has an interface for transmitting and receiving data.

데이터 조각 저장소(130)는 제1캐시서버(100-1)에 저장되는 컨텐츠 데이터 조각의 저장소이다. 데이터 조각 저장소(130)는 일정크기로 분할된 컨텐츠 데이터 조각을 저장하기 위해 해당 크기의 구분영역으로 분할된 저장공간을 갖는다.The data fragment storage 130 is a repository of content data fragments stored in the first cache server 100-1. The data fragment storage 130 has a storage space divided into division areas of a corresponding size to store pieces of content data divided into a predetermined size.

제어모듈(120)은 입출력부(110)를 통해 송수신되는 데이터 및 데이터 조각 저장소(130)에 저장되는 데이터를 제어하는 모듈이다. 본 실시예에서, 제어모듈(120)은 컨텐츠 데이터 조각을 데이터 조각 저장소(130)의 각 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역으로부터 불러들이고 클라이언트(300)로 전송하는데 활용하기 위한 메모리(125)를 포함하고 있다.The control module 120 is a module for controlling data stored in the data fragment storage 130 and data transmitted and received through the input / output unit 110. In the present embodiment, the control module 120 divides the content data fragments into each division region of the data fragment storage 130 and each division of the second cache server to the nth cache server 100-2 to 100-n data fragment storage. It contains memory 125 for use in retrieving from the area and transferring it to the client 300.

본 발명의 제어모듈(120)은 입출력부(110)를 통해 컨텐츠 데이터를 수신하면 일정크기의 조각으로 분할하여 데이터 조각 저장소(130)의 각 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 분산 저장한다. 더하여, 각 조각을 저장하는 각 구분영역의 시작주소 정보를 메모리(125)에 저장할 수 있다.When the control module 120 of the present invention receives the content data through the input / output unit 110, the control module 120 divides the data into pieces of a predetermined size and divides each division area of the data piece storage 130 and the second cache server to the nth cache server 100. -2 to 100-n) Distributed storage in each partition of the data fragment storage. In addition, the start address information of each divided area for storing each piece may be stored in the memory 125.

이후, 입출력부(110)를 통해 클라이언트(300)로부터 분할 저장한 컨텐츠 데이터에 대한 요청을 받으면, 클라이언트(300)로 전송하는 데이터 패킷 페이로드 각각에 포함할 컨텐츠 데이터 조각의 개수를 결정한다.Thereafter, when the client 300 receives the request for the content data, which is divided and stored from the client 300, the number of pieces of content data to be included in each data packet payload transmitted to the client 300 is determined.

그리고 제어모듈(120)은 데이터 조각 저장소(130)의 각 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 분산 저장된 컨텐츠 데이터 조각을 순차적으로 메모리(125)로 불러들인다. 예를 들어, 각 컨텐츠 데이터 조각은 메모리(125)가 보유한 각 조각이 저장된 구분영역의 시작주소 정보를 참조하여 메모리(125)로 불러들일 수 있다.The control module 120 distributes the content data fragments distributed in each division region of the data fragment storage 130 and each division region of the second cache server to the n th cache servers 100-2 to 100-n. It is sequentially loaded into the memory 125. For example, each piece of content data may be loaded into the memory 125 with reference to the start address information of the divided region in which each piece held by the memory 125 is stored.

본 실시예에서 메모리(125)는 제어모듈에 속하는 것으로 도시되었으나 제1캐시서버(100-1) 내 별도의 장치에 포함될 수도 있으며, 컨텐츠 데이터 조각을 메모리(125)로 불러들이는 과정은 상기한 바와 동일하므로 자세한 설명을 생략하기로 한다.Although the memory 125 is shown as belonging to the control module in the present embodiment, it may be included in a separate device in the first cache server 100-1, and the process of importing a piece of content data into the memory 125 may be described above. Since the description is the same as that, detailed description will be omitted.

메모리(125)로 불러들인 데이터 조각이 상기 결정한 조각의 개수와 같아지면, 제어모듈(120)은 해당 개수의 데이터 조각을 데이터 패킷의 페이로드에 포함하여 입출력부(110)를 통해 클라이언트(300)로 전송한다. 그리고 제어모듈(120)은 클라이언트(300)로 전송한 조각의 전송횟수를 계수한다.If the data fragments loaded into the memory 125 are the same as the determined number of fragments, the control module 120 includes the corresponding number of data fragments in the payload of the data packet and the client 300 through the input / output unit 110. To send. And the control module 120 counts the number of times of transmission of the pieces sent to the client (300).

본 발명의 일 실시예에서는, 제어모듈(120)에서 계수한 결과 특정 조각에 대한 전송횟수가 임계치를 초과하면, 제어모듈(120)은 임계치를 초과한 해당 조각을 제외한 나머지 조각을 메모리(125)에서 삭제한다. 이후, 제어모듈(120)이 입출력부(110)를 통해 임의의 클라이언트로부터 컨텐츠 데이터에 대한 요청을 수신하면, 네트워크(400) 트래픽 상황을 고려하여 하나의 데이터 패킷 페이로드에 포함할 조각의 개수를 다시 결정한다.In one embodiment of the present invention, if the number of transmissions for a particular piece as a result of counting in the control module 120 exceeds the threshold, the control module 120 stores the remaining pieces except the corresponding piece exceeding the threshold memory 125 Delete from Thereafter, when the control module 120 receives a request for content data from any client through the input / output unit 110, the number of pieces to be included in one data packet payload in consideration of network 400 traffic conditions is determined. Decide again.

그리고 메모리(125)에 남아있는 조각을 제외한 나머지 조각을 데이터 조각 저장소(130)의 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 구분영역으로부터 메모리(125)로 다시 불러들여, 다시 결정한 조각의 개수씩 컨텐츠 데이터 조각을 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송한다.The remaining pieces, except for the pieces remaining in the memory 125, are stored in the partition area of the data piece storage 130 and the partition area of the second cache server to the nth cache server 100-2 to 100-n data piece storage. The content data fragment is included in the payload of the data packet by the number of pieces determined again, and is transmitted to the arbitrary client.

본 발명의 다른 실시예에서는, 제어모듈(120)에서 계수한 결과 특정 조각에 대한 전송횟수가 임계치를 초과하면, 제어모듈(120)은 임계치를 초과한 해당 조각 중 데이터 조각 저장소(130)에 저장된 조각을 제외한 나머지 조각을 메모리(125)에서 삭제한다. 그리고 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)로 메시지 등을 송신하여, 임계치를 초과한 해당 조각 중 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 내부의 메모리에 존재하는 조각을 삭제하지 않을 것을 요청한다.In another embodiment of the present invention, if the number of transmissions for a particular piece as a result of counting in the control module 120 exceeds the threshold, the control module 120 is stored in the data piece storage 130 of the pieces exceeding the threshold The remaining pieces other than the pieces are deleted from the memory 125. The second cache server through the n-th cache server 100-2 to 100-n transmits a message and the like, and the second cache server through the n-th cache server 100-2 through 100-n among the pieces exceeding the threshold. Requests not to delete any fragments from internal memory.

이후, 제어모듈(120)이 입출력부(110)를 통해 임의의 클라이언트로부터 컨텐츠 데이터에 대한 요청을 수신하면, 네트워크(400) 트래픽 상황을 고려하여 하나의 데이터 패킷 페이로드에 포함할 조각의 개수를 다시 결정한다.Thereafter, when the control module 120 receives a request for content data from any client through the input / output unit 110, the number of pieces to be included in one data packet payload in consideration of network 400 traffic conditions is determined. Decide again.

그리고 메모리(125)에 남아있는 조각을 제외한 나머지 조각을 데이터 조각 저장소(130)의 구분영역, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)의 메모리 및 데이터 조각 저장소의 구분영역으로부터 메모리(125)로 다시 불러들여, 다시 결정한 조각의 개수씩 컨텐츠 데이터 조각을 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송한다.The remaining fragments other than the fragments remaining in the memory 125 are divided into a partition area of the data fragment storage 130 and a memory and data fragment storage of the second cache servers to the nth cache servers 100-2 to 100-n. The content data pieces are included in the payload of the data packet by the number of pieces determined again, and then transferred to the memory 125 from the area.

제어모듈(120)이 클라이언트(300)로 컨텐츠 데이터를 전송하는 과정에 대해서는 도 3을 참조하여 좀 더 상세하게 설명하기로 한다.A process of transmitting the content data to the client 300 by the control module 120 will be described in more detail with reference to FIG. 3.

도 3은 도 2에 도시된 제어모듈(120)이 참조하는 조각정보 테이블(310)의 구성도이다. 조각정보 테이블(310)은 제어모듈(120)이 데이터 조각 저장소(130)의 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 구분영역으로부터 메모리(125)로 컨텐츠 데이터 조각을 불러오고, 메모리(125)에서 컨텐츠 데이터 조각을 삭제하는데 참조하는 테이블의 일 예이며, 본 발명의 기술적 범위는 아래의 설명에 한정되는 것이 아니다. 조각정보 테이블(310)은 실시예에 따라 데이터 조각 저장소(310), 메모리(125) 또는 제1캐시서버(100-1) 내부/외부의 저장소에 저장될 수 있다.3 is a block diagram of a piece information table 310 referenced by the control module 120 shown in FIG. The fragment information table 310 is a control module 120 by the control module 120 from the partition of the data fragment storage 130 and the partition of the second cache server to the n-th cache server (100-2 to 100-n) data fragment storage memory ( 125 is an example of a table referred to to load the content data piece and deletes the content data piece from the memory 125, and the technical scope of the present invention is not limited to the following description. The piece information table 310 may be stored in the data piece storage 310, the memory 125, or a storage inside / outside the first cache server 100-1 according to an embodiment.

본 실시예에서 조각정보 테이블(310)을 참조하면, 컨텐츠, 데이터 사이즈, 조각 사이즈, 조각정보, 전송횟수 및 캐시서버 항목을 포함한다.Referring to the fragment information table 310 in the present embodiment, the fragment information table 310 includes content, data size, fragment size, fragment information, transmission frequency, and cache server item.

컨텐츠 항목은 데이터 조각 저장소(130)에 저장되는 컨텐츠 데이터 조각의 컨텐츠 정보를 포함한 필드이다.The content item is a field including content information of the content data fragment stored in the data fragment storage 130.

데이터 사이즈(size) 항목은 각 컨텐츠의 크기를 나타내는 필드이다.The data size item is a field indicating the size of each content.

조각 사이즈 항목은 컨텐츠를 분할한 일정크기를 나타내는 필드이다.The fragment size item is a field indicating a constant size obtained by dividing the content.

조각정보 항목은 각 컨텐츠 데이터에 대응되는 데이터 조각정보를 포함한 필드이다.The piece information item is a field including data piece information corresponding to each piece of content data.

전송횟수 항목은 각 조각들이 클라이언트로 전송된 횟수를 나타내는 필드이다.The transmit count item is a field indicating the number of times each piece has been sent to the client.

캐시서버 항목은 각 조각이 저장된 캐시서버를 나타내는 항목이다.The cache server item is an item that represents the cache server where each piece is stored.

컨텐츠 항목을 참조하면, 데이터 조각 저장소(130)에 저장된 컨텐츠가 'movie.mpg'임을 알 수 있다. 그리고 'movie.mpg' 컨텐츠의 데이터 사이즈는 '10 Mb(Megabyte)'이다.Referring to the content item, it can be seen that the content stored in the data fragment storage 130 is 'movie.mpg'. The data size of the 'movie.mpg' content is '10 Mb (Megabyte) '.

조각 사이즈 항목을 참조하면, 'movie.mpg' 컨텐츠는 데이터 사이즈가 '1 Mb'인 조각들로 분할되어 저장되었음 알 수 있다. 조각정보 항목을 참조하면, 'movie.mpg' 컨텐츠를 분할한 조각은 'slice1', 'slice2', 'slice3', ..., 'slice10' 임을 나타내고 있다.Referring to the fragment size item, it can be seen that the 'movie.mpg' content is divided into pieces having a data size of '1 Mb' and stored. Referring to the fragment information item, the fragment in which the 'movie.mpg' content is divided is 'slice1', 'slice2', 'slice3', ..., 'slice10'.

그리고 'slice1' 조각의 전송횟수는 '100', 'slice2' 조각의 전송횟수는 '100', 'slice3' 조각의 전송횟수는 '40', ..., 'slice10' 조각의 전송횟수는 '20'이다. 또한, 'slice1' 조각은 제1캐시서버(100-1)에, 'slice2' 조각은 제2캐시서버(100-2)에, 'slice3' 조각은 제3캐시서버에, ..., 'slice10' 조각은 제10캐시서버에, 각각 저장되어 있음을 알 수 있다.The number of pieces of 'slice1' is' 100 ', the number of pieces of' slice2 'is' 100', the number of pieces of 'slice3' is' 40 ', ..., the number of pieces of' slice10 'is' 20 '. In addition, the 'slice1' piece to the first cache server 100-1, the 'slice2' piece to the second cache server 100-2, the 'slice3' piece to the third cache server, ..., ' It can be seen that the slice10 'slices are stored in the tenth cache server, respectively.

조각정보 테이블(310)에서 'movie.mpg' 컨텐츠는 처음부터 순차적으로 'slice1', 'slice2', 'slice3', ..., 'slice10'의 조각으로 분할되었으며, 'slice1' 및 'slice2' 조각의 전송횟수가 가장 크고 'slice10' 조각으로 갈수록 전송횟수가 작아지고 있다. 예를 들어, 'movie.mpg'의 컨텐츠를 임의의 클라이언트로 전송하여 사용자 등이 시청하는 도중 해당 컨텐츠의 시청을 중단하는 경우가 빈번하다면, 시간적으로 'movie.mpg' 컨텐츠의 앞부분에 해당하는 'slice1' 및 'slice2' 조각의 전송횟수는 상대적으로 높을 수 있고, 재생 순서가 늦은 조각의 경우 전송횟수가 상대적으로 작을 수 있는 것이다.In the fragment information table 310, the 'movie.mpg' content is divided into slices of 'slice1', 'slice2', 'slice3', ..., 'slice10' sequentially from the beginning, and 'slice1' and 'slice2' The number of transfers of the fragments is the largest and the number of transfers is decreasing as the slice10 slices go. For example, if the content of 'movie.mpg' is transmitted to an arbitrary client and the user or the user frequently stops watching the content while watching, the 'corresponding to the front of the' movie.mpg 'content in time The number of transfers of the slice1 'and' slice2 'pieces may be relatively high, and for the pieces with a slow playing order, the number of transfers may be relatively small.

예를 들어, 제1캐시서버(100-1)가 클라이언트로(300)로 'movie.mpg' 컨텐츠를 전송하는 경우, 제어모듈(120)에서 하나의 데이터 패킷 페이로드에 두 개의 조각이 포함되도록 결정했다고 가정하자. 이후, 제어모듈(120)은 데이터 조각 저장소(130)의 각 구분영역에서 순차적으로 'slice1' 및 'slice2' 조각을 메모리(125)로 불러들인다. For example, when the first cache server 100-1 transmits 'movie.mpg' content to the client 300, the control module 120 includes two fragments in one data packet payload. Suppose you decide. Thereafter, the control module 120 sequentially loads the 'slice1' and 'slice2' pieces into the memory 125 in each division area of the data piece storage 130.

이를 위해, 메모리(125) 또는 조각정보 테이블(310)은 'slice1' 조각이 저장된 데이터 조각 저장소(130)의 구분영역의 시작주소 정보를 포함하고 있을 수 있고, 제어모듈(120)이 해당 시작주소 정보를 참조하여 각 조각을 메모리(125)로 불러들일 수 있다. 이때, 'slice2' 조각은 제2캐시서버(100-2)에 저장되어 있으므로, 제1캐시서버(100-1)가 제2캐시서버(100-2)로 'slice2' 조각을 요청하고 수신하는 방식으로 메모리(125)에 불러들이게 되며, 제1캐시서버(100-1)의 메모리(125) 또는 제2캐시서버(100-2) 내부의 메모리가 보유한, 'slice2' 조각을 저장한 구분영역의 시작주소 정보를 참조하여 메모리(125)로 불러들일 수 있다.To this end, the memory 125 or the piece information table 310 may include the start address information of the partition area of the data piece storage 130 in which the 'slice1' piece is stored, and the control module 120 includes the start address. Each piece may be loaded into the memory 125 with reference to the information. At this time, since the 'slice2' fragment is stored in the second cache server 100-2, the first cache server 100-1 requests and receives the 'slice2' fragment from the second cache server 100-2. The partition area storing the 'slice2' fragments, which are loaded into the memory 125 and held by the memory 125 of the first cache server 100-1 or the memory inside the second cache server 100-2. With reference to the start address information of may be loaded into the memory 125.

그리고 데이터 패킷의 페이로드에 'slice1' 및 'slice2' 조각을 포함하여 클라이언트(300)로 전송하고, 조각정보 테이블(310)의 'slice1' 및 'slice2' 조각에 대응되는 전송횟수 정보 '100'을 계수하여 '101'의 값을 저장한다. 만일 임계치가 '80'으로 설정되어 있다면, 계수한 결과 'slice1' 및 'slice2' 조각의 전송횟수가 '80'을 초과하게 되어, 'slice1' 및 'slice2' 조각은 메모리(125)에 남겨둔다.Then, the 'slice1' and 'slice2' pieces are included in the payload of the data packet and transmitted to the client 300, and the transmission count information '100' corresponding to the 'slice1' and 'slice2' pieces of the fragment information table 310 is displayed. Count the value and store the value of '101'. If the threshold is set to '80', the counting results in the number of transfers of the 'slice1' and 'slice2' pieces exceeding '80', leaving the 'slice1' and 'slice2' pieces in the memory 125.

이후, 제어모듈(120)은 'slice3' 내지 'slice10'까지의 조각들을 두 조각씩 순차적으로 메모리(125)로 불러들여 마찬가지 방법으로 클라이언트(300)로 전송한다. 두 조각씩 전송함과 동시에 각 두 개의 조각에 대응되는 전송횟수를 계수한 결과 임계치인 '80'을 초과하지 않는다면, 해당 조각들은 메모리(125)에서 삭제하여 메모리(125)의 사용 가능한 공간을 확보한다. 이때, 제어모듈(120)은 메모리(125)의 남아있는 저장용량을 참조하여, 임계치를 동적으로 설정할 수 있을 것이다.Thereafter, the control module 120 sequentially loads the pieces from slice3 to slice10 into the memory 125 by two pieces and transmits the pieces to the client 300 in the same manner. If two pieces are transmitted at the same time and the number of transmissions corresponding to each of the two pieces is counted, the pieces are deleted from the memory 125 to free space in the memory 125 unless the threshold '80' is exceeded. do. In this case, the control module 120 may dynamically set the threshold value with reference to the remaining storage capacity of the memory 125.

그리고 제1캐시서버(100-1)가 임의의 클라이언트로부터 'movie.mpg' 컨텐츠 에 대한 요청을 수신하면, 제어모듈(120)은 하나의 데이터 패킷 페이로드에 포함할 조각의 개수를 다시 결정한다. 만일, 조각의 개수로 3개의 조각이 결정되었다면, 제어모듈(120)은 제3캐시서버 데이터 조각 저장소의 구분영역으로부터 'slice3'의 조각을 메모리(125)로 불러들이고, 메모리(125)에 남아있는 'slice1', 'slice2' 및 제3캐시서버로부터 불러들인 'slice3'의 조각을 데이터 패킷의 페이로드에 포함하여 클라이언트(300)로 전송한다. 'movie.mpg'에 대응되는 나머지 조각들을 전송하는 과정은 상기한 바와 같으므로 자세한 설명을 생략하기로 한다.When the first cache server 100-1 receives a request for 'movie.mpg' content from an arbitrary client, the control module 120 determines the number of pieces to be included in one data packet payload. . If three pieces are determined by the number of pieces, the control module 120 loads pieces of slice3 from the partition of the third cache server data piece store into the memory 125 and remains in the memory 125. The pieces of 'slice1', 'slice2' and 'slice3' imported from the third cache server are included in the payload of the data packet and transmitted to the client 300. Since the process of transmitting the remaining pieces corresponding to 'movie.mpg' is as described above, a detailed description thereof will be omitted.

본 발명의 다른 실시예에서는, 메모리에 'slice1'의 조각만 남겨두고, 제1캐시서버(100-1)가 제2캐시서버(100-2)로 제2캐시서버(100-2) 내부의 메모리에 저장된 'slice2'의 조각을 삭제하지 않을 것을 요청하여, 제2캐시서버(100-2) 내부의 메모리에 'slice2'의 조각이 존재하도록 할 수 있다.In another embodiment of the present invention, the first cache server 100-1 is the second cache server 100-2 to the second cache server 100-2, leaving only the slice of 'slice1' in the memory. By requesting not to delete the fragment of 'slice2' stored in the memory, the fragment of 'slice2' may exist in the memory of the second cache server 100-2.

이후, 제1캐시서버(100-1)가 임의의 클라이언트로부터 'movie.mpg'의 컨텐츠 데이터에 대한 요청을 수신하고, 결정된 조각의 개수가 3이라면, 제2캐시서버(100-2)로 제2캐시서버(100-2) 내부의 메모리에 저장된 'slice2'의 조각을 전송할 것을 요청하고, 제3캐시서버로 제3캐시서버 데이터 조각 저장소의 구분영역에 저장된 'slice3' 조각을 전송할 것을 요청한다. 제1캐시서버(100-1)는 해당 조각들을 수신하여 메모리(125)에 불러들이게 되면, 메모리(125)에 존재하는 'slice1', 제2캐시서버(100-2)의 메모리로부터 불러들인 'slice2' 및 제3캐시서버 데이터 조각 저장소의 구분영역으로부터 불러들인 'slice3'의 조각을 데이터 패킷의 페이로드에 포함하여 클라이언트(300)로 전송한다. 이후의 조각을 전송하는 과정은 상기한 바와 같으므로 자세한 설명을 생략하기로 한다.Thereafter, the first cache server 100-1 receives a request for content data of 'movie.mpg' from an arbitrary client, and if the determined number of pieces is 3, the first cache server 100-1 sends a request to the second cache server 100-2. 2 cache server 100-2 requests to send a slice of 'slice2' stored in the internal memory, and requests to send a 'slice3' piece stored in a partition of the third cache server data fragment storage to the third cache server. . When the first cache server 100-1 receives the pieces and loads them into the memory 125, 'slice1' existing in the memory 125 and 'loaded from the memory of the second cache server 100-2' A slice of 'slice3', which is loaded from a slice region of slice2 'and a third cache server data slice store, is included in the payload of the data packet and transmitted to the client 300. Since the process of transmitting the subsequent pieces is as described above, a detailed description thereof will be omitted.

본 발명의 일 실시예에 따른 컨텐츠 전송과정에 대해서는 도 4를 참조하여 좀 더 상세하게 설명하기로 한다.A content transmission process according to an embodiment of the present invention will be described in more detail with reference to FIG. 4.

도 4는 본 발명의 일 실시예에 따른 컨텐츠 전송방법의 흐름도이다. 도 1, 도 2 및 도 4를 참조하면, 제1캐시서버(100-1)는 컨텐츠서버(200)로부터 컨텐츠 데이터를 수신하면(S410), 일정크기로 분할하여 해당 일정크기로 분할된 제1캐시서버(100-1) 데이터 조각 저장소(130)의 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 구분영역에 저장한다(S415). 4 is a flowchart illustrating a content transmission method according to an embodiment of the present invention. 1, 2 and 4, when the first cache server 100-1 receives content data from the content server 200 (S410), the first cache server 100-1 is divided into a predetermined size and divided into a predetermined size. The cache server 100-1 stores the partitioned area of the data fragment storage 130 and the partitioned area of the second cache server to the nth cache servers 100-2 to 100-n data fragment storage (S415).

단계(S415)에서는 각 조각을 저장하는 구분영역의 시작주소 정보를 캐시서버(100) 내부의 메모리(125) 및/또는 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 내부의 메모리 등에 저장할 수 있다.In step S415, the start address information of the partition area for storing each piece is stored in the memory 125 and / or the second cache server to the nth cache server 100-2 to 100-n in the cache server 100. Can be stored in memory, etc.

단계(S415)에서 컨텐츠 데이터를 나누는 일정크기가 최대전송단위를 특정 정수로 나눈 크기일 수 있음은 상기한 바와 같다.As described above, the predetermined size dividing the content data in step S415 may be the size obtained by dividing the maximum transmission unit by a specific integer.

제1캐시서버(100-1)가 클라이언트(300)로부터 단계(S415)에서 저장한 컨텐츠 데이터에 대한 요청을 수신하면(S420), 클라이언트(300)로 전송하는 하나의 데이터 패킷 페이로드에 포함할 컨텐츠 데이터 조각의 개수를 결정한다(S425). 단계(S425)에서는, 예를 들어, 네트워크(400) 트래픽을 고려하여 조각의 개수를 결정할 수 있다. 또한, 상기한 바와 같이, 컨텐츠 데이터를 나누는 일정크기와 조각의 개수의 곱이 최대전송단위를 초과하지 않도록 조각의 개수를 결정할 수 있다.When the first cache server 100-1 receives a request for the content data stored in the step S415 from the client 300 (S420), the first cache server 100-1 includes the data packet payload transmitted to the client 300. The number of pieces of content data is determined (S425). In step S425, for example, the number of fragments may be determined in consideration of network 400 traffic. In addition, as described above, the number of pieces may be determined so that the product of the predetermined size dividing the content data and the number of pieces does not exceed the maximum transmission unit.

단계(S425)에서 조각의 개수를 결정한 제1캐시서버(100-1)에서는 단계(S415)에서 저장한 컨텐츠 데이터 조각을 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 메모리(125)로 불러들이고(S430), 단계(S425)에서 결정한 개수의 조각씩 하나의 데이터 패킷 페이로드에 포함하여 클라이언트(300)로 전송한다(S435). 단계(S430)에서는 각 캐시서버의 메모리 등에 저장된 각 구분영역의 시작주소 정보를 참조하여 메모리로 불러들일 수 있다.In the first cache server 100-1 determining the number of pieces in step S425, the pieces of content data stored in step S415 are sequentially loaded into the memory 125 according to the order of each piece corresponding to the content data. In step S430, the number of pieces determined in step S425 is included in one data packet payload and transmitted to the client 300 (S435). In operation S430, the start address information of each divided area stored in the memory of each cache server may be referred to and loaded into the memory.

그리고, 제1캐시서버(100-1)는 단계(S435)에서 클라이언트(300)로 전송한 조각의 전송횟수를 계수하고(S440), 계수한 결과 전송횟수가 임계치를 초과한 조각을 제외한 나머지 조각을 메모리(125)에서 삭제한다(S445). In addition, the first cache server 100-1 counts the number of transmissions of the pieces transmitted to the client 300 in step S435 (S440), and counts the remaining pieces except the pieces in which the counted number of transmissions exceeds the threshold. Is deleted from the memory 125 (S445).

이후, 임의의 클라이언트로부터 단계(S415)에서 저장한 컨텐츠 데이터에 대한 요청을 수신하면(S450), 단계(S425)와 마찬가지로 임의의 클라이언트로 전송하는 데이터 패킷 페이로드에 포함할 조각의 개수를 다시 결정한다(S455).Then, when receiving a request for the content data stored in step S415 from any client (S450), as in step S425, the number of pieces to be included in the data packet payload to be sent to any client is determined again. (S455).

단계(S455)에서 조각의 개수를 결정한 제1캐시서버(100-1)는 단계(S445)에서 삭제한 조각을 제1캐시서버(100-1) 데이터 조각 저장소(130)의 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)의 데이터 조각 저장소의 구분영역으로부터 제1캐시서버(100-1) 내부의 메모리(125)로 불러들이고(S460), 메모리(125)에 기존에 남아있던 조각과의 순서를 고려하여 단계(S455)에서 결정된 조각의 개수씩 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송한다(S465).In operation S455, the first cache server 100-1 determining the number of fragments may delete the fragments deleted in operation S445 and the partition area of the data fragment storage 130 of the first cache server 100-1 and the second portion. From the partition of the data fragment storage of the cache server to n-th cache server (100-2 to 100-n) to the memory 125 inside the first cache server (100-1) (S460), memory 125 In consideration of the order of the fragments remaining in the previous step, the number of fragments determined in step S455 is included in the payload of the data packet and transmitted to an arbitrary client (S465).

본 발명의 다른 실시예에서, 단계(S445)에서는, 단계(S440)에서 계수한 결과 전송횟수가 임계치를 초과한 조각 중 제1캐시서버(100-1)의 데이터 조각 저장 소(130)에 존재하는 조각을 제외한 나머지 조각을 메모리(125)에서 삭제할 수 있다. 이 경우, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)로 메시지를 전송하여 전송횟수가 임계치를 초과하는 조각을 각 캐시서버 내부의 메모리에서 삭제하지 않을 것을 요청할 수 있다.In another embodiment of the present invention, in step S445, the data fragment storage 130 of the first cache server 100-1 is present among the pieces whose transmission counts exceeded the threshold as counted in step S440. The remaining pieces except for the piece may be deleted from the memory 125. In this case, by transmitting a message to the second cache server to the n-th cache server (100-2 to 100-n) it may be requested not to delete a fragment whose transmission frequency exceeds the threshold in the memory of each cache server.

이후, 임의의 클라이언트로부터 단계(S415)에서 저장한 컨텐츠 데이터에 대한 요청을 수신하면(S450), 단계(S425)와 마찬가지로 임의의 클라이언트로 전송하는 데이터 패킷 페이로드에 포함할 조각의 개수를 다시 결정한다(S455).Then, when receiving a request for the content data stored in step S415 from any client (S450), as in step S425, the number of pieces to be included in the data packet payload to be sent to any client is determined again. (S455).

단계(S455)에서 조각의 개수를 결정한 제1캐시서버(100-1)는 단계(S445)에서 삭제한 조각을 제1캐시서버(100-1)의 데이터 조각 저장소(130)의 구분영역, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)의 메모리 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 구분영역으로부터 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 메모리(125)로 불러들이고(S460), 메모리(125)에 기존에 남아있던 조각과의 순서를 고려하여 단계(S455)에서 결정된 조각의 개수씩 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송한다(S465).The first cache server 100-1 determining the number of fragments in operation S455 may include a segmentation area of the data fragment storage 130 of the first cache server 100-1 with the fragments deleted in operation S445. Corresponding to the content data from the memory of the second cache server to the n-th cache server (100-2 to 100-n) and the partition area of the second cache server to n-th cache server (100-2 to 100-n) data fragment storage The payload of the data packet is sequentially loaded into the memory 125 according to the order of the pieces (S460) and the number of pieces determined in step S455 in consideration of the order of the pieces remaining in the memory 125. Included in the transmission to any client (S465).

본 발명에 의하면, 캐시서버가 복수의 캐시서버 데이터 저장소에 저장된 컨텐츠 조각을 일정 개수씩 메모리로 불러들여 클라이언트로 전송함으로써, 컨텐츠 전송이 불완전하게 종료된 경우 발생하는 분할손을 최소화할 수 있고 네트워크 트래픽 상황에 따라 적절한 데이터 양을 선택하여 전송할 수 있으며, 분할된 데이터 조각을 분할된 크기로 구분된 저장소에 저장하여 빠르게 메모리로 불러들이고 전송하는 것이 가능하고, 단일 캐시서버의 데이터 조각 저장소에서 컨텐츠 데이터를 메모리로 불러들여 전송하는 것보다 더 빠른 속도로 컨텐츠 데이터를 전송할 수 있으며, 상대적으로 요청이 많은 조각을 메모리에 저장하여 신속히 클라이언트로 제공하는 것이 가능하다.According to the present invention, the cache server loads a predetermined number of pieces of content stored in a plurality of cache server data stores into a memory and transmits them to the client, thereby minimizing fragmentation loss caused when the content transmission is incompletely terminated and network traffic. Depending on the situation, it is possible to select and transfer the appropriate amount of data.It is possible to store the divided data fragments in the divided partitions and to load and transfer them in memory quickly. Content data can be transferred at a faster rate than loaded into memory and can be delivered to the client quickly by storing a relatively high volume of fragments in memory.

도 1은 본 발명의 일 실시예에 따른 컨텐츠 전송시스템의 구성도이다.1 is a block diagram of a content delivery system according to an embodiment of the present invention.

도 2는 도 1에 도시된 제1캐시서버의 구성도이다.FIG. 2 is a configuration diagram of the first cache server shown in FIG. 1.

도 3은 도 2에 도시된 제어모듈이 참조하는 조각정보 테이블의 구성도이다.3 is a block diagram of a piece information table referenced by the control module shown in FIG.

도 4는 본 발명의 일 실시예에 따른 컨텐츠 전송방법의 흐름도이다.4 is a flowchart illustrating a content transmission method according to an embodiment of the present invention.

Claims (22)

캐시서버가 컨텐츠서버로부터 컨텐츠 데이터를 수신하고 일정크기의 조각으로 분할하여 상기 일정크기로 구분된 상기 캐시서버 데이터 조각 저장소의 각 구분영역 및 하나 이상의 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 분산하여 저장하는 저장단계;The cache server receives the content data from the content server, divides the data into pieces of a predetermined size, and distributes the data to each partition of the cache server data fragment storage and the partitions of one or more other cache server data fragment storage. A storing step of storing; 상기 캐시서버가 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 결정하는 결정단계; 및Determining, by the cache server, the number of pieces to be included in one data packet when receiving a request for the content data from a client; And 상기 캐시서버가 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 내부의 메모리로 불러들임과 동시에, 상기 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 불러들인 조각을 포함하여 상기 클라이언트로 전송하는 전송단계; 를 포함하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.The cache server sequentially stores the fragments stored in each partition of the cache server data fragment storage and the fragments stored in each partition of the other cache server data fragment storage in the order of each fragment corresponding to the content data. And transmitting the received fragments to the client by including the retrieved fragments in the payload of the data packet by the determined number of fragments. Content transmission method using a plurality of cache server comprising a. 제1항에 있어서, 상기 저장단계는The method of claim 1, wherein the storing step 상기 분할한 조각을 저장하는 각 구분영역의 시작주소 정보를 대응되는 상기 메모리에 저장하는 것을 특징으로 하는 캐시서버를 이용한 컨텐츠 전송방법.And storing the start address information of each divided area for storing the divided pieces in the corresponding memory. 제2항에 있어서, 상기 전송단계는The method of claim 2, wherein the transmitting step 상기 각 구분영역의 시작주소 정보를 참조하여 상기 저장된 조각을 상기 메모리로 불러들이는 것을 특징으로 하는 캐시서버를 이용한 컨텐츠 전송방법.And the stored fragments are loaded into the memory by referring to the start address information of each division area. 제1항에 있어서, 상기 일정크기는The method of claim 1, wherein the predetermined size 최대전송단위(maximum transfer unit)를 특정 정수로 나눈 크기인 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.Content transfer method using a plurality of cache server, characterized in that the maximum transfer unit (maximum transfer unit) divided by a specific integer size. 제1항에 있어서, 상기 결정단계는The method of claim 1, wherein the determining step 네트워크 트래픽을 고려하여 상기 조각의 개수를 결정하는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.Determining the number of fragments in consideration of network traffic. 제1항에 있어서, 상기 결정단계는The method of claim 1, wherein the determining step 상기 조각의 개수와 상기 일정크기를 곱한 값이 최대전송단위를 초과하지 않도록 상기 조각의 개수를 결정하는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.And determining the number of fragments such that the number of fragments multiplied by the predetermined size does not exceed a maximum transmission unit. 제1항에 있어서, 상기 전송단계는The method of claim 1, wherein the transmitting step 상기 캐시서버가 상기 다른 캐시서버로 상기 다른 캐시서버 각각이 저장한 조각에 대한 요청을 하고, 상기 요청을 수신한 상기 다른 캐시서버 각각이 대응되는 데이터 조각 저장소의 각 구분영역에 저장된 조각을 내부에 포함된 메모리에 불 러들임과 동시에 상기 캐시서버로 전송하며, 상기 캐시서버가 상기 다른 캐시서버에서 전송한 조각을 수신하여 상기 캐시서버 내부의 메모리로 불러들이는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.The cache server makes a request to the other cache server for a piece stored by each of the other cache servers, and each of the other cache servers receiving the request stores pieces stored in each partition of the corresponding data piece storage. And a plurality of cache servers, wherein the plurality of cache servers are loaded into an included memory and transmitted to the cache server, and the cache server receives a fragment transmitted from the other cache server and loads the fragment into the memory inside the cache server. Content transmission method using. 제7항에 있어서, 상기 전송단계는The method of claim 7, wherein the transmitting step 상기 전송과 동시에 상기 전송한 조각에 대한 전송횟수를 계수(count)하는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.And counting the number of transmissions of the transmitted fragments at the same time as the transmission. 제8항에 있어서, 상기 전송단계는The method of claim 8, wherein the transmitting step 상기 계수한 결과 전송횟수가 임계치를 초과하는 조각을 제외한 나머지 조각을 상기 메모리에서 삭제하는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.And deleting the remaining fragments from the memory except for the fragments whose transmission frequency exceeds the threshold as a result of the counting. 제9항에 있어서, 상기 캐시서버는The method of claim 9, wherein the cache server 상기 나머지 조각을 상기 메모리에서 삭제한 후 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 캐시서버 내부의 메모리로 다시 불러들임과 동시에, 상기 다시 결 정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 캐시서버의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 임의의 클라이언트로 전송하는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.After deleting the remaining pieces from the memory and receiving a request for the content data from any client, the number of pieces to be included in one data packet is determined again, and the cache server data piece storage of the remaining pieces is deleted. The fragments stored in each partition of the partition and each of the other cache server data fragment storage of the fragments in the order of each of the pieces corresponding to the content data are sequentially loaded back into the memory of the cache server, Using a plurality of cache server, characterized in that for each of the number of pieces of the re-determined pieces, the payload of the data packet including the fragments existing in the memory of the cache server and the remaining fragments to be recalled to the arbitrary client. How to send content. 제8항에 있어서, 상기 전송단계는The method of claim 8, wherein the transmitting step 상기 계수한 결과 전송횟수가 임계치를 초과한 조각 중 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 제외한 나머지 조각을 상기 캐시서버 내부의 메모리에서 삭제하고, 상기 다른 캐시서버로 메시지를 송신하여 상기 전송횟수가 임계치를 초과하는 조각 중 상기 다른 캐시서버로부터 불러들인 조각을 상기 다른 캐시서버 내부의 메모리에서 삭제하지 않도록 요청하는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.Among the fragments whose transmission count exceeds the threshold, the remaining fragments, except the fragments stored in each division area of the cache server data fragment storage, are deleted from the memory inside the cache server, and a message is sent to the other cache server. And requesting not to delete, from the memory inside the other cache server, the piece loaded from the other cache server among the pieces whose transmission frequency exceeds a threshold. 제11항에 있어서, 상기 캐시서버는The method of claim 11, wherein the cache server 상기 나머지 조각을 상기 메모리에서 삭제하고 상기 요청을 한 후 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각, 상기 다른 캐시서버 내부의 메모리에 존재하는 조각, 및 상기 다른 캐시서버 내부의 메모리에 존재하지 않는 조각 중 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 캐시서버 내 부의 메모리로 다시 불러들임과 동시에, 상기 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 캐시서버의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 임의의 클라이언트로 전송하는 것을 특징으로 하는 복수의 캐시서버를 이용한 컨텐츠 전송방법.After deleting the remaining pieces from the memory and making the request, when receiving a request for the content data from any client, the number of pieces to be included in one data packet is determined again, and the cache among the remaining pieces is deleted. A fragment stored in each partition of the server data fragment storage, a fragment existing in the memory inside the other cache server, and a fragment not present in the memory inside the other cache server, in each partition of the other cache server data fragment storage. The stored fragments are sequentially reloaded into the memory of the cache server according to the order of the fragments corresponding to the content data, and at the same time, the pieces of the determined fragments are present in the payload of the data packet in the memory of the cache server. Piece and the rest of the pieces Also the content delivery method using a plurality of cache servers, characterized in that transmitting by the arbitrary client. 컨텐츠를 제공하는 컨텐츠서버; 및A content server providing content; And 상기 컨텐츠서버로부터 컨텐츠 데이터를 수신하면 일정크기의 조각으로 분할하여 상기 일정크기로 구분된 내부의 데이터 조각 저장소의 각 구분영역 및 하나 이상의 다른 캐시서버의 데이터 조각 저장소의 각 구분영역에 분산 저장하고, 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 결정하며, 상기 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 내부의 메모리로 불러들임과 동시에, 상기 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 불러들인 조각을 포함하여 상기 클라이언트로 전송하는 캐시서버; 를 포함하는 복수의 캐시서버를 이용한 컨텐츠 전송시스템.When the content data is received from the content server, the content data is divided into pieces of a predetermined size and distributed and stored in each partition of the internal data fragment storage partitioned by the predetermined size and in each partition of the data fragment storage of one or more other cache servers. Upon receiving a request for the content data from a client, the number of fragments to be included in one data packet is determined, and the fragments stored in each partition of the cache server data fragment storage and each partition of the other cache server data fragment storage. The pieces stored in are sequentially loaded into the internal memory according to the order of the pieces corresponding to the content data, and the determined number of pieces are transmitted to the client including the retrieved pieces in the payload of the data packet. A cache server; Content delivery system using a plurality of cache server comprising a. 데이터 송수신을 위한 입출력부;Input and output unit for transmitting and receiving data; 일정크기의 컨텐츠 데이터의 조각을 상기 일정크기로 구분된 구분영역에 저장하는 데이터 조각 저장소; 및A data fragment storage for storing pieces of content data having a predetermined size in a divided area divided by the predetermined size; And 상기 입출력부를 통해 컨텐츠 데이터를 수신하면 상기 일정크기의 조각으로 분할하여 내부의 데이터 조각 저장소의 각 구분영역 및 하나 이상의 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 분산 저장하고, 상기 입출력부를 통해 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 결정하며, 상기 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 내부의 메모리로 불러들임과 동시에, 상기 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 불러들인 조각을 포함하여 상기 입출력부를 통해 상기 클라이언트로 전송하는 제어모듈; 을 포함하는 캐시서버.When the content data is received through the input / output unit, the content data is divided into pieces of the predetermined size and distributed and stored in each division area of the internal data fragment storage and each division area of one or more other cache server data fragment storages, and from the client through the input / output unit. When the request for the content data is received, the number of pieces to be included in one data packet is determined, and pieces stored in each partition of the data fragment storage and pieces stored in each partition of the other cache server data fragment storage are determined. At the same time as the pieces of the pieces corresponding to the content data are sequentially loaded into the internal memory, at the same time, including the loaded pieces in the payload of the data packet by the number of pieces determined to be transmitted to the client through the input and output unit A control module; Cache server comprising a. 제14항에 있어서, 상기 제어모듈은The method of claim 14, wherein the control module 상기 분할한 조각을 저장하는 각 구분영역의 시작주소 정보를 대응되는 상기 메모리에 저장하는 것을 특징으로 하는 캐시서버.And storing the start address information of each divided area for storing the divided pieces in the corresponding memory. 제15항에 있어서, 상기 제어모듈은The method of claim 15, wherein the control module 상기 각 구분영역의 시작주소 정보를 참조하여 상기 저장된 조각을 상기 메모리로 불러들이는 것을 특징으로 하는 캐시서버.The cache server, characterized in that for loading the stored pieces into the memory with reference to the start address information of each of the divided areas. 제14항에 있어서, 상기 제어모듈은 The method of claim 14, wherein the control module 상기 입출력부를 통해 상기 다른 캐시서버로 상기 다른 캐시서버 각각이 저장한 조각에 대한 요청을 하고, 상기 요청을 수신한 상기 다른 캐시서버 각각이 데이터 조각 저장소의 각 구분영역에 저장된 조각을 내부에 포함된 메모리에 불러들임과 동시에 상기 입출력부로 전송하며, 상기 제어모듈이 상기 입출력부를 통해 상기 다른 캐시서버에서 전송한 조각을 수신하여 상기 제어모듈 내부의 메모리로 불러들이는 것을 특징으로 하는 캐시서버.A request is made to each of the other cache servers through the input / output unit for the pieces stored in each of the other cache servers, and each of the other cache servers receiving the request includes pieces stored in each partition of the data fragment storage. And a memory server, which is loaded into a memory and simultaneously transmitted to the input / output unit, wherein the control module receives a fragment transmitted from the other cache server through the input / output unit and loads the fragment into the memory inside the control module. 제17항에 있어서, 상기 제어모듈은The method of claim 17, wherein the control module 상기 전송과 동시에 상기 전송한 조각에 대한 전송횟수를 계수하는 것을 특징으로 하는 캐시서버.And a count of the number of transmissions for the transmitted fragments simultaneously with the transmission. 제18항에 있어서, 상기 제어모듈은The method of claim 18, wherein the control module 상기 계수한 결과 전송횟수가 임계치를 초과하는 조각을 제외한 나머지 조각을 상기 메모리에서 삭제하는 것을 특징으로 하는 캐시서버.And discarding the remaining fragments from the memory except for the fragment whose transmission count exceeds the threshold. 제19항에 있어서, 상기 제어모듈은The method of claim 19, wherein the control module 상기 나머지 조각을 상기 메모리에서 삭제한 후 상기 입출력부를 통해 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 데이터 조각 저장소의 각 구분영역에 저장된 조각 및 상기 다른 캐시서버 데이터 조 각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 제어모듈 내부의 메모리로 다시 불러들임과 동시에, 상기 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 제어모듈 내부의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 입출력부를 통해 상기 임의의 클라이언트로 전송하는 것을 특징으로 하는 캐시서버.After deleting the remaining pieces from the memory and receiving a request for the content data from any client through the input / output unit, the number of pieces to be included in one data packet is determined again. Pieces stored in each section of the fragment storage and pieces stored in each section of the other cache server data fragment storage are sequentially loaded back into the memory inside the control module according to the order of each piece corresponding to the content data. At the same time, the pieces of the determined pieces are transmitted to the arbitrary client through the input / output unit including the pieces existing in the memory inside the control module and the remaining pieces loaded in the payload of the data packet. Cache server. 제18항에 있어서, 상기 제어모듈은The method of claim 18, wherein the control module 상기 계수한 결과 전송횟수가 임계치를 초과한 조각 중 상기 데이터 조각 저장소의 각 구분영역에 저장된 조각을 제외한 나머지 조각을 상기 제어모듈 내부의 메모리에서 삭제하고, 상기 다른 캐시서버로 메시지를 송신하여 상기 전송횟수가 임계치를 초과하는 조각 중 상기 다른 캐시서버로부터 불러들인 조각을 상기 다른 캐시서버 내부의 메모리에서 삭제하지 않도록 요청하는 것을 특징으로 하는 복수의 캐시서버.Among the pieces whose transmission count exceeds the threshold value, the remaining pieces except for the pieces stored in each division area of the data piece storage are deleted from the memory inside the control module, and the message is transmitted to the other cache server to transmit the pieces. And a plurality of cache servers requesting not to delete from the memory inside the other cache server among the pieces whose number of times exceeds the threshold. 제21항에 있어서, 상기 제어모듈은The method of claim 21, wherein the control module 상기 나머지 조각을 상기 메모리에서 삭제하고 상기 다른 캐시서버로 메시지를 송신하여 상기 전송횟수가 임계치를 초과하는 조각 중 상기 다른 캐시서버로부터 불러들인 조각을 상기 다른 캐시서버 내부의 메모리에서 삭제하지 않도록 요청을 한 후 상기 입출력부를 통해 임의의 클라이언트로부터 상기 컨텐츠 데이터에 대한 요청을 수신하면 하나의 데이터 패킷에 포함할 조각의 개수를 다시 결정하고, 상기 삭제한 나머지 조각 중 상기 데이터 조각 저장소의 각 구분영역에 저장된 조각, 상기 다른 캐시서버 내부의 메모리에 존재하는 조각, 및 상기 다른 캐시서버 내부의 메모리에 존재하지 않는 조각 중 상기 다른 캐시서버 데이터 조각 저장소의 각 구분영역에 저장된 조각을 상기 컨텐츠 데이터에 대응되는 각 조각의 순서에 따라 순차적으로 상기 제어모듈 내부의 메모리로 다시 불러들임과 동시에, 상기 다시 결정한 조각의 개수씩 데이터 패킷의 페이로드에 상기 제어모듈 내부의 메모리에 존재하는 조각 및 상기 다시 불러들인 나머지 조각을 포함하여 상기 입출력부를 통해 상기 임의의 클라이언트로 전송하는 것을 특징으로 하는 캐시서버.Delete the remaining fragments from the memory and send a message to the other cache server to request that the fragments retrieved from the other cache server from the fragments whose transmission frequency exceeds a threshold not be deleted from the memory inside the other cache server. After receiving a request for the content data from any client through the input / output unit, the number of pieces to be included in one data packet is determined again, and the pieces of the remaining pieces are stored in each divided area of the data piece storage. A piece stored in each division area of the other cache server data piece storage among pieces, pieces existing in the memory inside the other cache server, and pieces not existing in the memory inside the other cache server, respectively; Recall sequentially according to the order of the pieces Simultaneously reloading into the memory inside the control module, the payload of the data packet by the number of the pieces determined again includes the pieces present in the memory inside the control module and the remaining pieces reloaded through the input / output unit. Cache server, characterized in that for transmitting to any client.
KR1020080107413A 2008-10-30 2008-10-30 System and method for content delivery using multiple cache server, and cache server thereof KR101128292B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080107413A KR101128292B1 (en) 2008-10-30 2008-10-30 System and method for content delivery using multiple cache server, and cache server thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080107413A KR101128292B1 (en) 2008-10-30 2008-10-30 System and method for content delivery using multiple cache server, and cache server thereof

Publications (2)

Publication Number Publication Date
KR20100048316A KR20100048316A (en) 2010-05-11
KR101128292B1 true KR101128292B1 (en) 2012-03-23

Family

ID=42275091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080107413A KR101128292B1 (en) 2008-10-30 2008-10-30 System and method for content delivery using multiple cache server, and cache server thereof

Country Status (1)

Country Link
KR (1) KR101128292B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150133437A (en) 2014-05-20 2015-11-30 한국전자통신연구원 Method for arranging cache positioned at subscriber network and system thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030044866A (en) * 2001-11-30 2003-06-09 가부시키가이샤 엔.티.티.도코모 Content distribution system, description data distribution apparatus, content location management apparatus, data conversion apparatus, reception terminal apparatus, and content distribution method
KR20060057563A (en) * 2006-05-08 2006-05-26 서필정 The system and method that fragments data into unit and transmits it between client and server
KR100849639B1 (en) 2007-03-21 2008-08-01 주식회사 에이스엠이 Method for encoding and decoding moving picture file and recording medium having the method embodied program
KR20100048315A (en) * 2008-10-30 2010-05-11 에스케이텔레콤 주식회사 System and method for content delivery using cache server, and cache server thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030044866A (en) * 2001-11-30 2003-06-09 가부시키가이샤 엔.티.티.도코모 Content distribution system, description data distribution apparatus, content location management apparatus, data conversion apparatus, reception terminal apparatus, and content distribution method
KR20060057563A (en) * 2006-05-08 2006-05-26 서필정 The system and method that fragments data into unit and transmits it between client and server
KR100849639B1 (en) 2007-03-21 2008-08-01 주식회사 에이스엠이 Method for encoding and decoding moving picture file and recording medium having the method embodied program
KR20100048315A (en) * 2008-10-30 2010-05-11 에스케이텔레콤 주식회사 System and method for content delivery using cache server, and cache server thereof

Also Published As

Publication number Publication date
KR20100048316A (en) 2010-05-11

Similar Documents

Publication Publication Date Title
US10771527B2 (en) Caching and streaming of digital media content subsets
US11194719B2 (en) Cache optimization
KR101066872B1 (en) System and method for content delivery using cache server, and cache server thereof
KR101028639B1 (en) Managed object replication and delivery
US8745262B2 (en) Adaptive network content delivery system
US9015275B2 (en) Partial object distribution in content delivery network
US7979509B1 (en) Clustered network acceleration devices having shared cache
US9525730B2 (en) Method and apparatus for processing server load balancing by using the result of hash function
US9736236B2 (en) System and method for managing buffering in peer-to-peer (P2P) based streaming service and system for distributing application for processing buffering in client
KR20130088774A (en) System and method for delivering segmented content
EP2359536A1 (en) Adaptive network content delivery system
EP2853074B1 (en) Methods for optimizing service of content requests and devices thereof
EP3613183B1 (en) Content based byte-range caching using a dynamically adjusted chunk size
US10999371B2 (en) Request multiplexing
KR101128292B1 (en) System and method for content delivery using multiple cache server, and cache server thereof
JP5729659B2 (en) Media streaming method and media controller
KR101150725B1 (en) Method for storing data using content server and cache server, content server and content delivery system thereof
KR101131787B1 (en) Method for updating data stored in cache server, cache server and content delivery system thereof
EP3745680B1 (en) Apparatus and method for transmitting content
CN110784775A (en) Video fragment caching method and device and video-on-demand system
CN110036607B (en) Method and request router for dynamic pooling of resources in a content distribution network
KR101135032B1 (en) System and method for content delivery using cache server and settop box data storage

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150309

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160302

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200220

Year of fee payment: 9