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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2183—Cache 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
본 발명은 컨텐츠 전송시스템 및 방법, 그 캐시서버에 관한 것으로, 특히 캐시서버에서 컨텐츠 데이터를 일정크기의 조각으로 분할하여 해당 크기로 구분된 복수의 캐시서버의 각 구분영역에 저장하고 클라이언트의 요청에 응답하여 분할 저장된 조각을 메모리로 불러들여 전송하는 복수의 캐시서버를 이용한 컨텐츠 전송시스템 및 방법, 그 캐시서버에 관한 것이다.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
네트워크(400)는 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n), 컨텐츠서버(200) 및 클라이언트(300) 서로 간의 데이터 송수신을 위한 통신망을 의미한다.The
클라이언트(300)는 네트워크(400)로 연결된 서버로부터 정보를 제공받는 컴퓨터 등을 의미한다. 클라이언트(300)는 브라우저에 특정 컨텐츠를 요청(request)하는 URL(Uniform Resource Locater) 등이 입력되면, DNS(Domain Name Server) 등의 네임서버에 액세스(access)하여 도메인명을 해당 컨텐츠를 제공하는 컨텐츠서버(200) 또는 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n) 중 하나의 캐시서버의 IP 주소로 변환하고 해당 IP 주소에 대응되는 서버로 접속하는 역할을 한다.The
컨텐츠서버(200)는 컨텐츠 제공자가 제공하는 웹페이지 및 객체(object) 등 을 저장하고 있다가 클라이언트(300)로부터의 컨텐츠 요청이 있을 경우 응답하는 역할을 하는 서버이다. 즉, 컨텐츠서버(200)는 클라이언트(300)로부터 요청된 컨텐츠를 전송하는 역할을 하며, 컨텐츠서버(200)가 보유한 컨텐츠 중 일부를 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n) 중 하나의 캐시서버로 전송하여 저장하도록 한다. 이를 통해, 제1캐시서버 내지 제n캐시서버(100-1 내지 100-n) 중 하나의 캐시서버에서 클라이언트(300)의 요청에 따른 컨텐츠를 신속하게 제공하는 것이 가능하게 된다.The
제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
본 발명에서는, 제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
이때, 제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
그리고 제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
제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
이때 각 조각을 메모리로 불러들이는 과정은, 예를 들어, 제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
각각의 조각을 수신한 캐시서버(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
이후, 제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
본 발명의 일 실시예에서는, 예를 들어, 제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 /
입출력부(110)는 데이터 송수신을 위한 인터페이스를 갖는다.The input /
데이터 조각 저장소(130)는 제1캐시서버(100-1)에 저장되는 컨텐츠 데이터 조각의 저장소이다. 데이터 조각 저장소(130)는 일정크기로 분할된 컨텐츠 데이터 조각을 저장하기 위해 해당 크기의 구분영역으로 분할된 저장공간을 갖는다.The
제어모듈(120)은 입출력부(110)를 통해 송수신되는 데이터 및 데이터 조각 저장소(130)에 저장되는 데이터를 제어하는 모듈이다. 본 실시예에서, 제어모듈(120)은 컨텐츠 데이터 조각을 데이터 조각 저장소(130)의 각 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역으로부터 불러들이고 클라이언트(300)로 전송하는데 활용하기 위한 메모리(125)를 포함하고 있다.The
본 발명의 제어모듈(120)은 입출력부(110)를 통해 컨텐츠 데이터를 수신하면 일정크기의 조각으로 분할하여 데이터 조각 저장소(130)의 각 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 분산 저장한다. 더하여, 각 조각을 저장하는 각 구분영역의 시작주소 정보를 메모리(125)에 저장할 수 있다.When the
이후, 입출력부(110)를 통해 클라이언트(300)로부터 분할 저장한 컨텐츠 데이터에 대한 요청을 받으면, 클라이언트(300)로 전송하는 데이터 패킷 페이로드 각각에 포함할 컨텐츠 데이터 조각의 개수를 결정한다.Thereafter, when the
그리고 제어모듈(120)은 데이터 조각 저장소(130)의 각 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 각 구분영역에 분산 저장된 컨텐츠 데이터 조각을 순차적으로 메모리(125)로 불러들인다. 예를 들어, 각 컨텐츠 데이터 조각은 메모리(125)가 보유한 각 조각이 저장된 구분영역의 시작주소 정보를 참조하여 메모리(125)로 불러들일 수 있다.The
본 실시예에서 메모리(125)는 제어모듈에 속하는 것으로 도시되었으나 제1캐시서버(100-1) 내 별도의 장치에 포함될 수도 있으며, 컨텐츠 데이터 조각을 메모리(125)로 불러들이는 과정은 상기한 바와 동일하므로 자세한 설명을 생략하기로 한다.Although the
메모리(125)로 불러들인 데이터 조각이 상기 결정한 조각의 개수와 같아지면, 제어모듈(120)은 해당 개수의 데이터 조각을 데이터 패킷의 페이로드에 포함하여 입출력부(110)를 통해 클라이언트(300)로 전송한다. 그리고 제어모듈(120)은 클라이언트(300)로 전송한 조각의 전송횟수를 계수한다.If the data fragments loaded into the
본 발명의 일 실시예에서는, 제어모듈(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
그리고 메모리(125)에 남아있는 조각을 제외한 나머지 조각을 데이터 조각 저장소(130)의 구분영역 및 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n) 데이터 조각 저장소의 구분영역으로부터 메모리(125)로 다시 불러들여, 다시 결정한 조각의 개수씩 컨텐츠 데이터 조각을 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송한다.The remaining pieces, except for the pieces remaining in the
본 발명의 다른 실시예에서는, 제어모듈(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
이후, 제어모듈(120)이 입출력부(110)를 통해 임의의 클라이언트로부터 컨텐츠 데이터에 대한 요청을 수신하면, 네트워크(400) 트래픽 상황을 고려하여 하나의 데이터 패킷 페이로드에 포함할 조각의 개수를 다시 결정한다.Thereafter, when the
그리고 메모리(125)에 남아있는 조각을 제외한 나머지 조각을 데이터 조각 저장소(130)의 구분영역, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)의 메모리 및 데이터 조각 저장소의 구분영역으로부터 메모리(125)로 다시 불러들여, 다시 결정한 조각의 개수씩 컨텐츠 데이터 조각을 데이터 패킷의 페이로드에 포함하여 임의의 클라이언트로 전송한다.The remaining fragments other than the fragments remaining in the
제어모듈(120)이 클라이언트(300)로 컨텐츠 데이터를 전송하는 과정에 대해서는 도 3을 참조하여 좀 더 상세하게 설명하기로 한다.A process of transmitting the content data to the
도 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
본 실시예에서 조각정보 테이블(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
데이터 사이즈(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
조각 사이즈 항목을 참조하면, '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
이를 위해, 메모리(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
그리고 데이터 패킷의 페이로드에 '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
이후, 제어모듈(120)은 'slice3' 내지 'slice10'까지의 조각들을 두 조각씩 순차적으로 메모리(125)로 불러들여 마찬가지 방법으로 클라이언트(300)로 전송한다. 두 조각씩 전송함과 동시에 각 두 개의 조각에 대응되는 전송횟수를 계수한 결과 임계치인 '80'을 초과하지 않는다면, 해당 조각들은 메모리(125)에서 삭제하여 메모리(125)의 사용 가능한 공간을 확보한다. 이때, 제어모듈(120)은 메모리(125)의 남아있는 저장용량을 참조하여, 임계치를 동적으로 설정할 수 있을 것이다.Thereafter, the
그리고 제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
본 발명의 다른 실시예에서는, 메모리에 '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
본 발명의 일 실시예에 따른 컨텐츠 전송과정에 대해서는 도 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
단계(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
단계(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
단계(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
그리고, 제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
이후, 임의의 클라이언트로부터 단계(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
본 발명의 다른 실시예에서, 단계(S445)에서는, 단계(S440)에서 계수한 결과 전송횟수가 임계치를 초과한 조각 중 제1캐시서버(100-1)의 데이터 조각 저장 소(130)에 존재하는 조각을 제외한 나머지 조각을 메모리(125)에서 삭제할 수 있다. 이 경우, 제2캐시서버 내지 제n캐시서버(100-2 내지 100-n)로 메시지를 전송하여 전송횟수가 임계치를 초과하는 조각을 각 캐시서버 내부의 메모리에서 삭제하지 않을 것을 요청할 수 있다.In another embodiment of the present invention, in step S445, the
이후, 임의의 클라이언트로부터 단계(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
본 발명에 의하면, 캐시서버가 복수의 캐시서버 데이터 저장소에 저장된 컨텐츠 조각을 일정 개수씩 메모리로 불러들여 클라이언트로 전송함으로써, 컨텐츠 전송이 불완전하게 종료된 경우 발생하는 분할손을 최소화할 수 있고 네트워크 트래픽 상황에 따라 적절한 데이터 양을 선택하여 전송할 수 있으며, 분할된 데이터 조각을 분할된 크기로 구분된 저장소에 저장하여 빠르게 메모리로 불러들이고 전송하는 것이 가능하고, 단일 캐시서버의 데이터 조각 저장소에서 컨텐츠 데이터를 메모리로 불러들여 전송하는 것보다 더 빠른 속도로 컨텐츠 데이터를 전송할 수 있으며, 상대적으로 요청이 많은 조각을 메모리에 저장하여 신속히 클라이언트로 제공하는 것이 가능하다.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)
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)
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)
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 |
-
2008
- 2008-10-30 KR KR1020080107413A patent/KR101128292B1/en active IP Right Grant
Patent Citations (4)
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 |