KR101493073B1 - Method for setting upstream server and apparatus thereof - Google Patents
Method for setting upstream server and apparatus thereof Download PDFInfo
- Publication number
- KR101493073B1 KR101493073B1 KR20130128101A KR20130128101A KR101493073B1 KR 101493073 B1 KR101493073 B1 KR 101493073B1 KR 20130128101 A KR20130128101 A KR 20130128101A KR 20130128101 A KR20130128101 A KR 20130128101A KR 101493073 B1 KR101493073 B1 KR 101493073B1
- Authority
- KR
- South Korea
- Prior art keywords
- server
- upstream
- request
- upstream server
- cache
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 다단계의 캐시 서버를 이용하여 컨텐츠를 제공하는 네트워크 환경에서, 업스트림(upstream) 서버를 설정하는 방법 및 그 장치에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and apparatus for setting up an upstream server in a network environment for providing contents using a multi-stage cache server.
통신 기술의 발달로 네트워크를 통하여 다양한 컨텐츠들이 디지털화되면서 인터넷을 통해 컨텐츠 공유가 이루어지고 있으며, 글로벌 서비스 또는 대형 서비스를 제공할 때, 서비스 대상 국가에서 서비스 속도 향상을 위해서 캐시 서버를 이용하는 것이 일반적이다. 캐시 서버는 서비스 이용자의 요청에 대해서, 캐시 서버가 가지고 있지 않은 콘텐츠는 원본 웹 서버에 요청해서 받은 다음 서비스 이용자에게 전달함과 동시에 캐시 서버에도 저장을 해서 다음에 동일한 컨텐츠에 대한 요청이 들어오면 원본 웹 서버에 요청 없이 직접 서비스를 제공한다.With the development of communication technology, various contents are being digitized through a network, and contents are shared through the Internet. When providing a global service or a large service, it is common to use a cache server to improve a service speed in a service target country. In response to a request from the service user, the cache server receives content requested by the cache server from the original web server, and then delivers the content to the service user at the same time, stores the same in the cache server, Provide the service directly to the web server without request.
캐시 서버가 동일한 컨텐츠에 대한 요청에 대하여 원본 웹 서버로의 요청 없이 응답을 하기 위해 서비스 이용자에 전달한 데이터를 캐시 서버 저장소에 저장하는 기능을 캐싱(caching)이라고 한다. Caching is the function of the cache server to store the data that it delivers to the service user in order to make a response to the request for the same content without a request to the original web server in the cache server repository.
글로벌 서비스를 제공할 때 원본 웹 서버가 위치한 네트워크와 서비스 이용자가 접속하는 캐시 서버가 위치한 네트워크의 연결 속도가 서비스에 충분하지 않을 수 있다. 이러한 경우, 양쪽의 네트워크에서 네트워크 연결 속도가 원활한 위치에 캐시 서버가 추가적으로 설치되고, 추가된 캐시 서버를 경유해서 서비스가 제공되도록 네트워크 구축이 이루어진다. 이때, 서비스 이용자가 접속하는 캐시 서버를 말단 캐시 서버(Edge Cache Server)하고, 경유하는 캐시 서버를 부모 캐시 서버(Parent Cache Server)라고 한다. 예를 들어, 한국에 원본 웹 서버를 두고 프랑스에서 서비스를 할 경우, 프랑스에 위치한 말단 캐시 서버와 한국의 원본 웹 서버를 직접 연결하지 않고, 미국에 추가적으로 부모 캐시 서버를 구축하여 미국의 부모 캐시 서버를 경유하여 서비스가 제공되도록 한다. When providing a global service, the connection speed between the network where the original web server is located and the network where the cache server to which the service user accesses is located may not be sufficient for the service. In this case, the cache server is additionally installed at a smooth network connection speed in both networks, and the network is constructed so that the service is provided via the added cache server. At this time, a cache server to which the service user accesses is called an edge cache server, and a passing cache server is called a parent cache server. For example, if you have an original web server in Korea and a service in France, you do not directly connect the terminal cache server in France with the original Korean web server in France, but additionally build a parent cache server in the US, So that the service can be provided.
캐시 서버와 원본 웹서버 사이의 네트워크 연결 속도뿐 아니라, 대형의 서비스 제공을 하는 경우 캐시 서버의 대수가 너무 많아지면, 원본 웹 서버로 요청하는 컨텐츠 용량이 증가하게 되며, 원본 웹 서버의 부하가 증가되면 서비스에 지장을 초래할 수 있다. 이러한 경우에도 서비스 이용자가 접속하는 말단 캐시 서버와 원본 웹서버 사이에 부모 캐시 서버를 두고, 이를 경유해서 서비스가 되도록 네트워크 구축을 하면, 원본 웹 서버에 요청되는 컨텐츠 양은 감소하게 되어 안정적인 서비스를 가능하게 한다.In addition to the speed of the network connection between the cache server and the source web server, if the number of cache servers is too large when providing a large service, the amount of content requested to the source web server increases and the load of the source web server increases This can lead to service interruption. Even in such a case, if a parent cache server is placed between the terminal cache server and the original web server to which the service user accesses, and the network is constructed to be a service through the cache server, the amount of contents requested to the original web server is reduced, do.
또한 보다 원활한 서비스 제공을 위하여, 부모 캐시 서버를 1 단계 이상 사용하는 네트워크를 구축할 수 있다. Also, in order to provide smooth service, it is possible to construct a network that uses one or more parent cache servers.
CDN(contents delivery network) 사업자의 경우 각 국가별로 캐시 서버를 구성 운영하면서, 최적의 네트워크를 구성해서 운영하고 있다. 도 1은 CDN을 기반으로 컨텐츠 서비스를 제공하는 것을 나타낸 예시도이다. CDN (contents delivery network) operators configure and operate an optimal network while configuring cache servers for each country. 1 is an exemplary diagram illustrating a content service based on a CDN.
서로 다른 국가(예를 들어, 싱가포르, 독일)에 위치한 원본 웹 서버들과 연계하여 한국에서 서비스를 제공하는 경우, 도 1에서와 같이, 부모 캐시 서버를 네트워크 환경, 비용, 성능상의 이유로 해서 1 단계 이상 사용하는 네트워크를 구축할 수 있다. 일본에 부모 캐시 서버를 구축하고 홍콩에 부모 캐시 서버를 구축하고, 미국에 부모 캐시 서버를 구축한다. 이때, 한국의 말단 캐시 서버가 일본의 부모 캐시 서버와 홍콩 부모 캐시 서버를 통하여 싱가포르의 원본 웹 서버와 연결되도록 하는 경로(서비스 1을 위한 경로)를 구축할 수 있다. 또한 한국의 말단 캐시 서버가 일본의 부모 캐시 서버와 미국의 부모 캐시 서버를 통하여 독일의 원본 웹 서버와 연결되도록 하는 경로(서비스 2를 위한 경로)를 구축할 수 있다. In case of providing services in Korea in connection with original web servers located in different countries (for example, Singapore and Germany), as shown in FIG. 1, You can build a network that uses more than that. Build a parent cache server in Japan, build a parent cache server in Hong Kong, and build a parent cache server in the United States. At this time, it is possible to construct a route (route for service 1) in which a Korean terminal cache server is connected to a Singaporean original web server through a Japanese parent cache server and a Hong Kong parent cache server. It is also possible to construct a path (route for service 2) in which a Korean terminal cache server is connected to a German original web server through a Japanese parent cache server and a US parent cache server.
부모 캐시 서버가 1 단계 이상 구축된 네트워크 상태에서, 서비스 이용자로부터 요청을 받은 캐시 서버는 캐싱되지 않은 컨텐츠에 대해서는 해당 컨텐츠를 가지고 있는 서버에 요청을 해서 받아야 한다. 해당 컨텐츠를 가지고 있는 서버는 원본 웹 서버가 될 수도 있고, 다른 캐시 서버(부모 캐시 서버)가 될 수도 있는데, 이러한 서버를 업스트림 서버(Upstream Server)라고 정의한다.In the network state in which the parent cache server is constructed in more than one stage, the cache server receiving the request from the service user must receive a request from the server having the content for the uncached contents. The server having the content may be a source web server or another cache server (parent cache server), which is defined as an upstream server.
도 1에서, 한국의 말단 캐시 서버는 서비스 1 및 서비스 2에 대한 업스트림 서버로 일본 캐시 서버를 사용하라는 설정이 필요하고, 일본의 캐시 서버는 서비스 1에 대해서는 홍콩 캐시 서버를 업스트림 서버로 사용하고, 서비스 2에 대해서는 미국의 캐시 서버를 업스트림 서버로 사용하라는 설정이 필요하다. 홍콩의 캐시 서버는 서비스 1에 대해서 상가포르의 원본 웹서버를 업스트림 서버로 사용하라는 설정이 필요하며, 미국의 캐시 서버는 독일의 원본 웹서버를 업스트림 서버로 사용하라는 설정이 필요하다.1, it is necessary for the Korean terminal cache server to use a Japanese cache server as an upstream server for Service 1 and Service 2, and a Japanese cache server uses a Hong Kong cache server as an upstream server for Service 1, For service 2, it is necessary to set the US cache server as an upstream server. The cache server in Hong Kong needs to be configured to use Sangafort's original web server as the upstream server for service 1, and the US cache server needs to be set to use the German original web server as the upstream server.
이와 같이 각 단계별로 구축된 캐시 서버마다 서비스 제공을 위한 업스트림 서버를 별도로 설정해야 함으로, 각 캐시 서버별로 설정에 따른 처리 부하가 발생하며, 서비스 경로를 변경하고자 할 때마다 캐시 서버별 처리 과정이 수행됨으로써 신속한 서비스 제공이 어렵다. Since each cache server constructed for each step needs to separately set an upstream server for providing services, a processing load is generated according to each cache server, and a processing process for each cache server is performed whenever a service path is changed It is difficult to provide a rapid service.
본 발명이 해결하고자 하는 과제는 복수의 단계별로 캐시 서버가 구축되어 있는 네트워크를 통하여 서비스가 제공되는 경우, 서비스 제공을 위한 업스트림 서버를 용이하게 설정할 수 있는 방법 및 그 장치를 제공하는 것이다. SUMMARY OF THE INVENTION It is an object of the present invention to provide a method and apparatus for easily configuring an upstream server for providing a service when a service is provided through a network in which a cache server is constructed in a plurality of steps.
또한 본 발명이 해결하고자 하는 과제는 말단 캐시 서버와 부모 캐시 서버 중에서 말단 캐시 서버에서만 업스트림 서버를 설정할 수 있는 방법 및 그 장치를 제공하는 것이다. Another object of the present invention is to provide a method and apparatus for configuring an upstream server only in a terminal cache server among a terminal cache server and a parent cache server.
위의 기술적 과제를 위한 본 발명의 특징에 따른 업스트림 서버 설정 방법은 캐시 서버와 원본 웹 서버 사이에 적어도 하나의 다른 캐시 서버가 존재하는 네트워크 환경에서, 캐시 서버에 대한 업스트림 서버를 설정하는 방법에서, 컨텐츠를 요구하는 요청을 수신하는 단계; 상기 요청으로부터 적어도 하나의 업스트림 서버 주소를 포함하는 업스트림 서버 설정 정보를 획득하는 단계; 및 상기 업스트림 서버 설정 정보로부터 획득한 서버 주소에 대응하는 업스트림 서버로 상기 요청을 전달하는 단계를 포함한다. According to an aspect of the present invention, there is provided a method of configuring an upstream server for a cache server in a network environment in which at least one other cache server exists between a cache server and a source web server, Receiving a request for content; Obtaining upstream server configuration information including at least one upstream server address from the request; And transmitting the request to an upstream server corresponding to the server address obtained from the upstream server setting information.
상기 요청을 전달하는 단계에서 상기 업스트림 서버는 상기 원본 웹 서버 또는 상기 요청을 수신한 캐시 서버와 상기 원본 웹 서버 사이에 위치되는 다른 캐시 서버일 수 있다. In the step of transmitting the request, the upstream server may be the original web server or another cache server located between the source web server and the cache server receiving the request.
상기 업스트림 서버 설정 정보는 주소 식별자에 의하여 구분되면서 순차적으로 배열된 복수의 업스트림 서버 주소들을 포함하며, 상기 획득하는 단계는 상기 업스트림 서버 설정 정보에서 가장 마지막에 배열된 서버 주소를 획득하는 단계를 더 포함할 수 있다. Wherein the upstream server configuration information includes a plurality of upstream server addresses that are sequentially arranged while being distinguished by an address identifier, and the acquiring step further includes acquiring a server address arranged last in the upstream server configuration information can do.
상기 요청을 전달하는 단계는 상기 업스트림 서버 설정 정보에서 상기 획득한 서버 주소를 삭제한 다음에 상기 업스트림 서버 설정 정보를 상기 요청에 포함시키는 단계; 상기 업스트림 서버 설정 정보에 상기 획득한 서버 주소 이외의 다른 서버 주소가 존재하지 않는 경우, 상기 요청에서 상기 업스트림 서버 설정 정보를 삭제하는 단계; 및 상기 요청을 상기 업스트림 서버로 전달하는 단계를 포함할 수 있다. Wherein the step of forwarding the request includes deleting the obtained server address from the upstream server configuration information and then including the upstream server configuration information in the request; Deleting the upstream server setting information from the request when the server address other than the obtained server address does not exist in the upstream server setting information; And forwarding the request to the upstream server.
한편, 상기 업스트림 서버 설정 정보를 획득하는 단계는 상기 수신된 요청이 헤더를 포함하는지를 판단하는 단계; 상기 요청이 헤더를 포함하는 경우, 상기 헤더가 상기 업스트림 서버 설정 정보를 포함하는지를 판단하는 단계; 및 상기 헤더가 상기 업스트림 서버 설정 정보를 포함하는 경우, 상기 업스트림 서버 설정 정보를 획득하는 단계를 포함할 수 있다. The acquiring of the upstream server configuration information may include: determining whether the received request includes a header; Determining whether the header includes the upstream server configuration information if the request includes a header; And acquiring the upstream server configuration information when the header includes the upstream server configuration information.
이때, 상기 업스트림 서버 설정 정보를 획득하는 단계는 상기 헤더가 상기 업스트림 서버 설정 정보를 포함하지 않는 경우, 업스트림 서버 설정을 위한 정보가 있는지를 판단하는 단계; 및 상기 정보가 있는 경우, 업스트림 서버 설정 정보를 생성하는 단계를 더 포함할 수 있다. If the header does not include the upstream server configuration information, the step of acquiring the upstream server configuration information may include determining whether there is information for setting up the upstream server; And if the information is present, generating upstream server setting information.
또한 상기 요청을 전달하는 단계는 상기 생성된 업스트림 서버 설정 정보가 하나의 업스트림 서버 주소만을 포함하는 경우에는, 상기 하나의 업스트림 서버 주소에 대응하는 업스트림 서버로 상기 요청을 전달하는 단계; 및 상기 생성된 업스트림 서버 설정 정보가 둘 이상의 업스트림 서버 주소를 포함하는 경우에는, 상기 생성된 업스트림 서버 설정 정보를 상기 요청에 포함시킨 다음에 상기 요청을 전달하는 단계를 더 포함할 수 있다. The step of delivering the request may further include, when the generated upstream server configuration information includes only one upstream server address, transmitting the request to the upstream server corresponding to the one upstream server address; And if the generated upstream server configuration information includes two or more upstream server addresses, the server may include the generated upstream server configuration information in the request and then forward the request.
상기 업스트림 서버 설정 정보를 생성하는 것은 클라이언트에 연결된 말단 캐시 서버에서만 수행될 수 있다. Generating the upstream server configuration information may be performed only in the terminal cache server connected to the client.
본 발명의 다른 특징에 따른 업스트림 서버 설정 방법은, 말단 캐시 서버와 원본 웹 서버 사이에 적어도 하나의 부모 캐시 서버가 존재하는 네트워크 환경에서, 컨텐츠 제공을 위한 업스트림 서버를 설정하는 방법에서, 상기 말단 캐시 서버가 캐싱되지 않은 컨텐츠에 대한 서비스 제공을 위하여, 적어도 하나의 업스트림 서버 주소를 포함하는 업스트림 서버 설정 정보를 생성하는 단계; 상기 말단 캐시 서버가 상기 생성된 업스트림 서버 설정 정보를 클라이언트로부터 수신한 요청에 포함시켜 자신의 업스트림 서버에 해당하는 부모 캐시 서버로 전달하는 단계; 및 상기 부모 캐시 서버는 수신된 요청에 포함된 업스트림 서버 설정 정보로부터 자신의 업스트림 서버--상기 업스트림 서버는 상기 원본 웹 서버 또는 상기 요청을 수신한 캐시 서버와 상기 원본 웹 서버 사이에 위치되는 다른 캐시 서버임--를 확인하고, 상기 요청을 자신의 업스트림 서버로 전달하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method for setting up an upstream server for providing content in a network environment in which at least one parent cache server exists between a terminal cache server and a source web server, Generating, by the server, upstream server configuration information including at least one upstream server address, for providing services for un-cached content; The end cache server including the generated upstream server configuration information in a request received from a client and transmitting the request to a parent cache server corresponding to the upstream server; And the parent cache server receives, from the upstream server configuration information included in the received request, its own upstream server, the upstream server receives the original web server or another cache located between the source web server and the cache server receiving the request, Server, and forwarding the request to its upstream server.
상기 요청을 자신의 업스트림 서버로 전달하는 단계는 상기 부모 캐시 서버가 상기 업스트림 서버 설정 정보에서 자신의 업스트림 서버 주소를 삭제한 다음에 상기 업스트림 서버 설정 정보를 상기 요청에 포함시키는 단계; 상기 부모 캐시 서버가 상기 업스트림 서버 설정 정보에 자신의 업스트림 서버 주소 이외의 다른 서버 주소가 존재하지 않는 경우, 상기 요청에서 상기 업스트림 서버 설정 정보를 삭제하는 단계; 및 상기 부모 캐시 서버가 상기 요청을 자신의 업스트림 서버로 전달하는 단계를 포함할 수 있다. The step of forwarding the request to the upstream server of the parent server includes the upstream server configuration information in the request after the parent cache server deletes its upstream server address from the upstream server configuration information; If the parent cache server does not have a server address other than its own upstream server address in the upstream server configuration information, deleting the upstream server configuration information from the request; And the parent cache server communicating the request to its upstream server.
상기 업스트림 서버 설정 정보는 주소 식별자에 의하여 구분되면서 순차적으로 배열된 복수의 업스트림 서버 주소들을 포함하며, 상기 요청을 자신의 업스트림 서버로 전달하는 단계는 상기 부모 캐시 서버는 상기 업스트림 서버 설정 정보에서 가장 마지막에 배열된 서버 주소를 자신의 업스트림 서버 주소로 획득하는 단계를 더 포함할 수 있다. Wherein the upstream server configuration information comprises a plurality of upstream server addresses that are sequentially arranged while being distinguished by an address identifier, and the step of forwarding the request to the upstream server includes receiving, from the upstream server, And obtaining the server address arranged in the upstream server address as its upstream server address.
또한 본 발명의 다른 특징에 따른 업스트림 서버 설정 장치는, 캐시 서버와 원본 웹 서버 사이에 적어도 하나의 다른 캐시 서버가 존재하는 네트워크 환경에서, 캐시 서버에 대한 업스트림 서버를 설정하는 장치에서, 클라이언트 또는 다른 캐시 서버로부터 수신되는 HTTP 요청을 수신하는 HTTP 요청 수신부; 상기 수신된 HTTP 요청의 헤더를 분석하여, 수신된 HTTP 요청에 헤더가 존재하고 상기 헤더에 업스트림 서버 설정 정보가 포함되어 있는지를 확인하는 헤더 분석부; 상기 수신된 HTTP 요청에 상기 업스트림 서버 설정 정보가 존재하는 경우, 상기 업스트림 서버 설정 정보로부터 해당 캐시 서버의 업스트림 서버--상기 업스트림 서버는 상기 원본 웹 서버 또는 상기 요청을 수신한 캐시 서버와 상기 원본 웹 서버 사이에 위치되는 다른 캐시 서버임--를 확인하는 서버 설정 정보 변경 처리부; 및 상기 수신된 HTTP 요청을 상기 확인된 업스트림 서버로 전달하는 요청 전달부를 포함한다. According to another aspect of the present invention, there is provided an apparatus for setting up an upstream server for a cache server in a network environment in which at least one other cache server exists between a cache server and a source web server, An HTTP request receiving unit for receiving an HTTP request received from a cache server; A header analyzer for analyzing a header of the received HTTP request to confirm whether a header exists in the received HTTP request and whether the header includes upstream server setting information; If the upstream server setting information exists in the received HTTP request, the upstream server of the corresponding cache server from the upstream server setting information, the upstream server transmits the original web server or the cache server receiving the request, A server setting information change processing unit for confirming whether the cache server is another cache server located between the servers; And a request delivery unit for delivering the received HTTP request to the identified upstream server.
또한 상기 업스트림 서버 설정 장치는, 상기 수신된 HTTP 요청에 업스트림 서버 설정 정보가 존재하지 않고 업스트림 서버 설정을 해야 하는 경우, 업스트림 서버 주소 정보들을 포함하는 업스트림 서버 설정 정보를 생성하고 상기 수신된 HTTP 요청에 추가하는 서버 설정 정보 추가부를 더 포함할 수 있다. The upstream server setting device may further include upstream server setting information including upstream server address information when upstream server setting information does not exist in the received HTTP request and upstream server setting information is to be set, And may further include a server setting information adding section for adding the server setting information.
상기 서버 설정 정보 변경 처리부는 상기 업스트림 서버 설정 정보에서 해당 업스트림 서버 주소를 삭제하거나, 업스트림 서버 설정 정보를 삭제하는 처리를 수행하고, 상기 요청 전달부는 상기 업스트림 서버 설정 정보가 변경되거나 삭제된 HTTP 요청을 전달할 수 있다. The server setting information change processing unit deletes the upstream server address or deletes the upstream server setting information from the upstream server setting information, and the request forwarding unit transmits the HTTP request, in which the upstream server setting information is changed or deleted .
상기 업스트림 서버 설정 정보는 주소 식별자에 의하여 구분되면서 순차적으로 배열된 복수의 업스트림 서버 주소들을 포함하며, 상기 서버 설정 정보 변경 처리부는 상기 업스트림 서버 설정 정보에서 가장 마지막에 배열된 서버 주소를 자신의 업스트림 서버 주소로 획득할 수 있다. The upstream server setting information includes a plurality of upstream server addresses that are sequentially arranged while being distinguished by an address identifier, and the server setting information change processing unit updates the server address arranged last in the upstream server setting information to its upstream server Address.
본 발명의 실시 예에 따르면, 복수의 단계별로 캐시 서버가 구축되어 있는 네트워크를 통하여 서비스가 제공되는 경우, 각 단계별 캐시 서버들이 업스트림 서버를 설정할 필요 없이, 말단 캐시 서버만 서비스 제공을 위한 업스트림 서버를 설정하는 것을 통하여 서비스 제공이 원활하게 이루어질 수 있다. According to the embodiment of the present invention, when a service is provided through a network in which a plurality of cache servers are built, a cache server for each stage does not need to set up an upstream server, The service can be smoothly provided through setting.
특히, 말단 캐시 서버에서의 업스트림 서버 설정 과정을 통하여 서비스 제공이 이루어짐으로써, 서비스 경로가 변경되는 경우에도 간단하고 용이하게 업스트림 서버 설정을 수행할 수 있다. 부모 캐시 서버에서의 업스트림 서버 설정 과정 없이 서비스 경로가 변경됨으로써, 캐시 서버에 대한 관리가 단순해지며, 부모 캐시 서버나 원본 웹 서버가 변경되는 경우에도 용이하게 서비스 제공을 위한 캐시 서버 구성을 변경할 수 있다. Particularly, since the service is provided through the upstream server setting process in the end cache server, the upstream server setting can be easily and easily performed even when the service path is changed. Changing the service path without changing the upstream server settings in the parent cache server simplifies management of the cache server and makes it easier to change the cache server configuration for service provisioning even when the parent cache server or the original web server changes have.
도 1은 CDN(contents delivery network)을 기반으로 컨텐츠 서비스를 제공하는 것을 나타낸 예시도이다.
도 2는 본 발명의 실시 예에 따른 컨텐츠 서비스가 이루어지는 네트워크 환경을 나타낸 도이다.
도 3은 본 발명의 실시 예에 따른 업스트림 설정 방법의 흐름도이다.
도 4는 본 발명의 실시 예에 따른 업스트림 설정 장치의 구조를 나타낸 도이다. 1 is an exemplary diagram illustrating a content service based on a contents delivery network (CDN).
2 is a diagram illustrating a network environment in which a content service is performed according to an embodiment of the present invention.
3 is a flowchart of an upstream setting method according to an embodiment of the present invention.
4 is a diagram illustrating a structure of an upstream setting apparatus according to an embodiment of the present invention.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise.
이하, 도면을 참조하여 본 발명의 실시 예에 따른 컨텐츠 저장 방법 및 이를 이용한 캐시 서버에 대하여 설명한다. Hereinafter, a method of storing contents according to an embodiment of the present invention and a cache server using the method will be described with reference to the drawings.
도 2는 본 발명의 실시 예에 따른 컨텐츠 서비스가 이루어지는 네트워크 환경을 나타낸 도이다. 2 is a diagram illustrating a network environment in which a content service is performed according to an embodiment of the present invention.
첨부한 도 2에서와 같이, 복수의 캐시 서버들이 단계별로 구축되어 있는 네트워크 환경에서, 서비스 이용자 즉, 클라이언트(100)는 말단 캐시 서버(200)를 통하여 원본 웹 서버(300)로부터 컨텐츠를 제공받는다. 말단 캐시 서버(200)와 원본 웹 서버(300) 사이에 적어도 하나 이상의 부모 캐시 서버(410, 420, 대표 번호로 '400'을 부여함)가 위치된다. 이러한 구조로 이루어지는 네트워크 환경에서, 말단 캐시 서버(200)와 부모 캐시 서버(400) 그리고 원본 웹 서버(300)는 물리적으로 떨어진 위치에 구축될 수 있다. 예를 들어, 원본 웹 서버(300)는 한국에 위치되고, 말단 캐시 서버(200)는 프랑스에 위치되고, 부모 캐시 서버(410, 420)는 미국이나 일본 등에 위치될 수 있다. 2, in a network environment in which a plurality of cache servers are constructed step by step, the service user, that is, the
말단 캐시 서버(200)는 클라이언트(100)와 직접적으로 연결되어 클라이언트(100)로부터의 요청에 대응하는 컨텐츠를 클라이언트(100)에 제공한다. The
부모 캐시 서버(400)는 말단 캐시 서버(200)로부터 전달되는 요청에 대응하는 컨텐츠를 말단 캐시 서버(200)에 제공한다. The
원본 웹 서버(300)는 요청된 컨텐츠를 제공하는 원본(origin) 웹 서버로, 컨텐츠 제공을 요구하는 요청에 대응하는 컨텐츠를 제공한다. The
말단 캐시 서버(200)나 부모 캐시 서버(400)는 클라이언트의 요청에 대응하는 컨텐츠가 캐싱되어 있는 경우에는 자체 캐싱 저장소에 캐싱되어 있는 해당 컨텐츠를 제공한다. 클라이언트의 요청에 대응하는 컨텐츠가 캐싱되어 있지 않은 경우, 캐싱되지 않은 컨텐츠에 대해서는 해당 컨텐츠를 가지고 있는 서버에 요청을 해서 받아서 제공한다. 해당 컨텐츠를 제공해줄 수 있는 서버는 업스트림 서버(Upstream Server)라고 할 수 있는데, 원본 웹 서버(200) 또는 다른 캐시 서버(부모 캐시 서버)가 업스트림 서버가 될 수 있다. The
클라이언트로부터의 요청에 대응하는 컨텐츠를 제공하기 위해서, 업스트림 서버가 설정되어 있어야, 말단 캐시 서버(200)나 부모 캐시 서버(400)가 캐싱되지 않은 컨텐츠에 대한 요청을 업스트림 서버로 전달하면서 해당 컨텐츠를 요청할 수 있다. In order to provide the content corresponding to the request from the client, the upstream server must be set up so that the
본 발명의 실시 예에서는 위에 기술된 바와 같은 네트워크 환경에서, 도 2에서와 같이, 말단 캐시 서버(200)가 업스트림 서버를 설정하며, 서비스 경유가 이루어지는 부모 캐시 서버에서는 추가적인 업스트림 서버 설정 과정이 수행되지 않는다. In the embodiment of the present invention, in the network environment as described above, the
말단 캐시 서버(200)는 클라이언트(100)로부터 제공받은 요청에 대응하는 컨텐츠가 캐싱되어 있지 않은 경우에, 업스트림 서버를 결정하여 부모 캐시 서버로 클라이언트의 요청을 전달하면서 컨텐츠를 요청한다. 이때, 말단 캐시 서버로부터 부모 캐시 서버로 전달되는 요청에 말단 캐시 서버가 설정한 업스트림 서버에 대한 정보가 포함된다. When the content corresponding to the request provided from the
클라이언트(100)로부터 말단 캐시 서버(200)로 전달되는 요청은 HTTP(Hypertext Transfer Protocol) 요청으로 URL(uniform resource locator)에 대응하는 컨텐츠를 요청하는 것이다. 이러한 HTTP 요청은 기본 URL 이외에 GET 파라미터/POST 파라미터나 HTTP 헤더(Header)를 포함한다. 이러한 HTTP 헤더는 HTTP 요청에 포함될 수도 있고 포함되지 않을 수도 있다. HTTP 헤더의 정보 즉, 헤더 정보는 클라이언트가 서버로 요청하는 방법을 나타내는 요청 방법(method)(예를 들어, GET, POST 등) 및 HTTP 버전(HTTP/1.1 등)을 나타내는 요청 파일 정보, 요청을 한 서버에 대한 도메인을 포함하는 호스트 정보, 클라이언트 소프트웨어 등의 이름과 버전을 나타내는 사용자 에이전트(user-agent) 정보, 클라이언트가 허용할 수 있는 파일 형식을 나타내는 파일 형식 정보(Accept) 등을 포함한다. HTTP 헤더에 포함되는 이러한 정보들을 각각 헤더라고 명명할 수 있다. A request transmitted from the
클라이언트(100)로부터 말단 캐시 서버(200)로 전달되는 HTTP 요청의 헤더는 예를 들어, 다음과 같은 사항들을 포함한다. The header of the HTTP request transmitted from the
이러한 정보를 포함하는 HTTP 요청을 수신한 말단 캐시 서버(200)는 업스트림 서버 설정 정보를 추가적으로 HTTP 요청에 포함시켜 부모 캐시 서버로 전달한다. 말단 캐시 서버(200)는 특정 원본 웹 서버에 대한 요청에 대해서, 이러한 요청에 대한 컨텐츠를 제공할 업스트림 서버들을 설정하고, 설정된 업스트림 서버들에 대한 정보를 HTTP 요청에 포함시킨다. The
구체적으로, 특정 원본 웹 서버에 대한 요청에 대하여 적어도 1 단계 이상의 부모 캐시 서버를 경유하여 서비스가 제공되어야 하는 경우, 각 단계의 부모 캐시 서버에 대한 업스크림 서버를 설정한다. 예를 들어, 1 단계의 부모 캐시 서버를 경유할 경우(클라이언트 -> 말단 캐시 서버 -> 1단계 부모 캐시 서버 -> 원본 웹서버 순으로 연결)에는 부모 캐시 서버에 대하여 원본 웹 서버를 업스트림 서버로 설정한다. 그리고 2 단계의 부모 캐시 서버들을 경유할 경우(클라이언트 -> 말단 캐시 서버 -> 1단계 부모 캐시 서버 -> 2단계 부모 캐시 서버 -> 원본 웹서버 순으로 연결)에는, 제1 단계의 부모 캐시 서버에 대해서 업스트림 서버를 설정한다. 이때, 업스트림 서버는 제2 단계의 부모 캐시 서버로 기능하며, 제2 단계의 부모 캐시 서버에 대해서 원본 웹 서버를 업스트림 서버로 설정한다. 또한 3 단계의 부모 캐시 서버들을 경유할 경우(클라이언트 -> 말단 캐시 서버 -> 1단계 부모 캐시 서버 -> 2단계 부모 캐시 서버 -> 3단계 부모 캐시 서버 -> 원본 웹서버 순으로 연결)에는, 제1 단계의 부모 캐시 서버에 대해서 업스트림 서버를 설정한다. 이때, 업스트림 서버는 제2 단계의 부모 캐시 서버로 기능하며, 제2 단계의 부모 캐시 서버에 대해서 업 스트림 서버를 설정한다. 제2 단계의 부모 캐시 서버에 대한 업 스트림 서버는 제3 단계의 부모 캐시 서버로 기능하며, 제3 단계의 부모 캐시 서버에 대해서 원본 웹 서버를 업스트림 서버로 설정한다.Specifically, if a service is to be provided via at least one parent cache server for a request to a specific original web server, an upscream server for each parent cache server is set up. For example, if you pass through the first-level parent cache server (Client-> End Cache Server-> Step 1 Parent Cache Server-> Source Web Server), the source Web server is referred to as the upstream server Setting. In the case of passing through the parent cache servers of the second level (client -> end cache server -> first level parent cache server -> second level parent cache server -> source web server) Configure the upstream server for. At this time, the upstream server functions as the parent cache server in the second step, and the original web server is set as the upstream server with respect to the parent cache server in the second step. In addition, when passing through three parent cache servers (client -> end cache server -> one level parent cache server -> two level parent cache server -> three level parent cache server -> source web server) An upstream server is set for the parent cache server in the first step. At this time, the upstream server functions as the parent cache server of the second stage, and sets up the upstream server to the parent cache server of the second stage. The upstream server for the parent cache server in the second stage functions as a parent cache server in the third stage, and the original web server is set as the upstream server for the parent cache server in the third stage.
말단 캐시 서버(200)는 설정된 업스트림 서버들에 대한 정보를 HTTP 요청에 포함시키고, 업스트림 서버 설정 정보가 포함된 HTTP 요청을 자신의 업스트림 서버로 전달한다. The
도 2에서, 원본 웹 서버(300)는 한국에 위치되고, 말단 캐시 서버(200)는 프랑스에 위치되고, 부모 캐시 서버(410)는 미국에 위치되고, 부모 캐시 서버(420)는 일본에 위치되고, 원본 웹 서버에 대한 도메인 네임이 "img.domain.com"이라고 가정할 경우, 말단 캐시 서버(200)는 "img.domain.com" 에 대해서 미국의 부모 캐시 서버(410)를 자신의 업스트림 서버로 사용하면서, 미국의 캐시 서버(410)는 일본의 부모 캐시 서버(420)를 업스트림 서버로 사용하고, 일본의 부모 캐시 서버(420)는 한국의 원본 웹서버(300)를 업스트림 서버로 사용하라는 정보를 HTTP 요청의 헤더에 포함시켜 전송한다. 2, the
이 경우, 말단 캐시 서버(200)로부터 미국의 부모 캐시 서버(410)로 전달되는 HTTP 요청의 헤더는 다음과 같은 정보를 포함한다. In this case, the header of the HTTP request transmitted from the
여기서, X-Upstream-Server는 업스트림 서버 설정 정보이며, 업스트림 서버 헤더라고도 명명될 수 있다. 이러한 업스트림 서버 설정 정보는 경유해야 할 부모 캐시 서버와 최종 원본 웹 서버에 대한 서버 주소를 포함한다. 각 서버 주소들을 별도의 식별자 예를 들어 ";"에 의하여 구분될 수 있다. 이때, 원본 웹 서버 주소, 그리고 경유해야 할 부모 캐시 서버의 주소의 순서대로 기재될 수 있으며, 경유해야 할 부모 캐시 서버의 주소들은 원본 웹 서버에 인접한 순서대로 기재될 수 있다. Here, the X-Upstream-Server is upstream server setting information and may also be referred to as an upstream server header. This upstream server configuration information includes the server address for the parent cache server and the final source web server to pass through. Each server address can be distinguished by a separate identifier, for example, "; ". In this case, the source web server address and the address of the parent cache server to be passed through may be listed in order. The addresses of the parent cache server to be passed through may be listed in order adjacent to the original web server.
한편, 식별자로 ";" 대신에, ","와 같은 다른 형태의 식별자를 시용할 수 있다. 또한 식별자 ";"에 대하여 추가적으로 ","의 식별자를 사용하여, ","의 식별자는 추가적인 정보를 나타내는 것으로 사용할 수도 있다. 예를 들어, 업스트림 서버 설정 정보를 "1.1.1.1,1.1.1.2; 와 같은 형태로 기재하여, 업스트림 서버에 대한 요청을 "1.1.1.1"과 “1.1.1.2” 2대의 서버에 대해서 나누어서 요청하는 부하 분산과, 1.1.1.1 서버가 연결이 안될 경우 나머지 서버인 1.1.1.2 서버에 요청하는 장애 극복을 나타낼 수 있다. On the other hand, Alternatively, other types of identifiers such as "," can be used. Further, the identifier of ", " may be used as an identifier of ", ", and the identifier of", " For example, the upstream server configuration information is written as "1.1.1.1,1.1.1.2;" and requests for the upstream server are divided into two servers "1.1.1.1" and "1.1.1.2" Load balancing, and 1.1.1.1 server failover to the remaining 1.1.1.2 servers if the server fails to connect.
한편, 업스트림 서버 설정 정보에 기재된 단계별로 경유해야 하는 서버들 중에서, 하나의 서버로의 연결이 실패하는 경우, 해당 서버로의 연결을 수행하지 않고 다음 단계의 서버로 연결을 수행하는 것으로 설정할 수 있다. 예를 들어, 업스트림 서버 설정 정보를 "1.1.1.1; 2.2.2.2;"와 같은 형태로 기재한 경우, "2.2.2.2" 서버로의 연결이 실패하면 "1.1.1.1"서버로의 연결을 수행하는 것으로 설정할 수 있다. On the other hand, when the connection to one server fails among the servers to be passed through in the step described in the upstream server setting information, the connection to the next server may be established without performing connection to the server . For example, if the upstream server configuration information is described as "1.1.1.1; 2.2.2.2;" and the connection to the "2.2.2.2" server fails, the connection to the "1.1.1.1" server is performed .
한편, 말단 캐시 서버(200)로부터 HTTP 요청을 받은 부모 캐시 서버는 요청에 대응하는 컨텐츠가 캐싱되어 있지 않은 경우, HTTP 요청에 포함된 업스트림 서버 설정 정보를 토대로 자신의 업스트림 서버를 확인하고, 해당 업스트림 서버로 HTTP 요청을 전달한다. 이때, 부모 캐시 서버는 HTTP 요청에 포함된 업스트림 서버 설정 정보에서 자신에 관련된 업스트림 서버의 주소는 삭제하여 HTTP 요청을 전달할 수 있다. 예를 들어, 부모 캐시 서버는 업스트림 서버 설정 정보(X-Upstream-Server)에서, 마지막에 기재된 서버 주소를 자신의 업스트림 서버로 확인하고, 이후 HTTP 요청 전달시, 업스트림 서버 설정 정보(X-Upstream-Server)에서 마지막에 기재된 서버 주소를 삭제하고 HTTP 요청을 전달한다. On the other hand, when the content corresponding to the request is not cached, the parent cache server receiving the HTTP request from the
위의 예로부터, 미국의 부모 캐시 서버(410)는 "X-Upstream-Server: [한국의 원본 웹서버 주소]; [일본의 부모 캐시 서버 주소]"로부터 식별자 ";"을 토대로 서버 주소들을 구분하고, 마지막으로 기재된 서버 주소인 일본의 부모 캐시 서버를 업스트림 서버로 설정하고, 일본의 부모 캐시 서버로 HTTP 요청을 전달한다. From the above example, the
미국의 부모 캐시 서버(410)에서 일본의 부모 캐시 서버(420)로 전달되는 HTTP 요청의 헤더는 다음과 같은 정보를 포함한다.The header of the HTTP request transmitted from the US
일본의 부모 캐시 서버(420)는 미국의 부모 캐시 서버(410)로부터 전달받은 위와 같은 HTTP 요청을 토대로, 대응하는 컨텐츠가 캐싱되어 있지 않은 경우 한국의 원본 웹서버로 HTTP 요청을 전달한다. 이 경우에도, 일본의 부모 캐시 서버(420)는 "X-Upstream-Server: [한국의 원본 웹서버 주소];"로부터 식별자 ";"을 토대로 마지막으로 기재된 서버 주소인 한국의 원본 웹 서버를 업스트림 서버로 설정하고, HTTP 요청에서 자신의 업스트림 서버 주소를 제거하고 한국의 원본 웹 서버(300)로 HTTP 요청을 전달한다. The Japanese
일본의 부모 캐시 서버(420)에서 한국의 원본 웹 서버(300)로 되는 HTTP 요청의 헤더는 다음과 같은 정보를 포함한다.The header of the HTTP request from the Japanese
일본의 부모 캐시 서버(420)가 전달받은 HTTP 요청의 "X-Upstream-Server: [한국의 원본 웹서버 주소];"에는 하나의 서버 주소만 기재되어 있으므로, 결국 한국의 원본 웹 서버(300)로 전달되는 HTTP 요청의 헤더에는 업스트림 서버 설정 정보 "X-Upstream-Server"가 삭제된다. Only one server address is listed in "X-Upstream-Server: [Korean original web server address]" of the HTTP request received from the
이후, 한국의 원본 웹 서버(300)는 전달받은 HTTP 요청을 토대로 해당 컨텐츠를 응답한다. 응답된 컨텐츠는 HTTP 요청이 전달된 과정을 따라 역순으로 처리되어 클라이언트(100)로 제공된다. 예를 들어, 한국의 원본 웹 서버(300)는 HTTP 요청에 대한 응답을 일본의 부모 캐시 서버(420)로 전달하고, 일본의 부모 캐시 서버(420)는 해당 응답을 미국의 부모 캐시 서버(410)로 전달하며, 미국의 부모 캐시 서버(410)는 해당 응답을 프랑스의 말단 캐시 서버(200)로 전달하며, 말단 캐시 서버(200)는 해당 응답을 최종적으로 서비스 이용자인 클라이언트(100)에 전달한다. Then, the Korean
이러한 과정을 통하여 클라이언트(100)는 요청한 컨텐츠를 제공받게 되며, 말단 캐시 서버에서 업스트림 서버를 설정하는 과정만으로 복수의 부모 캐시 서버들을 단계별로 경유하여 컨텐츠 제공 서비스가 이루어진다. 서비스를 제공받는 경로를 변경하고자 하는 경우에도 말단 캐시 서버에서 서비스 제공을 위한 업스트림 서버들을 변경하기만 하면 됨으로, 보다 간단하고 용이하게 다양한 경로를 통하여 글로벌 컨텐츠 서비스를 제공할 수 있다. Through this process, the
한편, 업스트림 서버 설정 정보에 버전 정보를 추가하여, 해당 업스트림 서버 설정 정보가 언제 생성된 것인지를 확인할 수 있도록 할 수 있다. 이 경우, 업스트림 서버 설정 정보에 포함된 버전 정보가 최신형이 아닌 경우에는 해당 업스트림 서버 설정 정보를 무시할 수 있다. 또한, 버전 정보가 이전 설정된 업스트림 서버 설정 정보에 포함된 버전 정보와 동일한 경우에는, 이전 설정된 업스트림 서버 설정 정보를 그대로 사용할 수 있다. On the other hand, version information may be added to the upstream server setting information so that it can be confirmed when the upstream server setting information is generated. In this case, if the version information included in the upstream server setting information is not the latest type, the upstream server setting information can be ignored. If the version information is the same as the version information included in the previously set upstream server setting information, the previously set upstream server setting information can be used as it is.
각 캐시 서버에서 본 발명의 실시 예에 따른 업스트림 서버 설정 방법은 다음과 같이 수행된다. An upstream server setting method in each cache server according to an embodiment of the present invention is performed as follows.
도 3은 본 발명의 실시 예에 따른 업스트림 서버 설정 방법의 흐름도이다. 3 is a flowchart of an upstream server setting method according to an embodiment of the present invention.
캐시 서버는 클라이언트(100)로부터 컨텐츠 제공을 요구하는 요청 즉, HTTTP 요청을 수신한다(S100). 캐시 서버는 수신된 HTTP 요청을 검사하여 헤더가 존재하는지를 판단한다(S110).The cache server receives a request for providing content from the
수신된 HTTP 요청이 헤더를 포함하는 경우, 헤더에 포함된 정보를 체크하여 업스트림 서버 설정 정보가 존재하는지를 판단한(S120). If the received HTTP request includes a header, information included in the header is checked to determine whether upstream server setting information exists (S120).
HTTP 요청의 헤더에 업스트림 서버 설정 정보 즉, 업스트림 서버 헤더가 존재하는 경우, 캐시 서버는 업스트림 서버 헤더에 포함된 업스트림 서버 주소를 토대로 자신의 업스트림 서버를 확인하고, 업스트림 서버 설정 정보를 변경하거나 삭제한다(S130). 예를 들어, 업스트림 서버 설정 정보에서 자신의 업스트림 서버에 대한 주소를 삭제하는 변경 처리를 한다. 또는 업스트림 서버 설정 정보에서 자신의 업스트림 서버에 대한 주소를 삭제하여 어떠한 서버 주소도 남지 않는 경우에는 업스트림 서버 설정 정보 자체를 삭제한다. 즉, 업스트림 서버 헤더를 삭제한다. If there is upstream server setting information, that is, an upstream server header, in the header of the HTTP request, the cache server identifies the upstream server based on the upstream server address included in the upstream server header, and changes or deletes the upstream server setting information (S130). For example, in the upstream server configuration information, change processing is performed to delete the address for the upstream server. Or deletes the address of the upstream server in the upstream server setting information and deletes the upstream server setting information itself if no server address is left. That is, it deletes the upstream server header.
그리고 HTTP 요청이 캐싱되지 않은 컨텐츠에 대한 것인 경우, 확인된 업스트림 서버로 변경되거나 삭제된 업스트림 서버 설정 정보를 포함하는 HTTP 요청을 자신의 업스트림 서버로 전달한다. 이후, 캐시 서버는 업스트림 서버로부터 HTTP 요청에 대한 HTTP 응답을 수신하고(S140), 수신된 HTTP 응답을 HTTP 요청을 제공한 대상(클라이언트 또는 다른 캐시 서버)로 전달한다(S150). If the HTTP request is for non-cached content, the HTTP request including upstream server setting information changed or deleted to the confirmed upstream server is transmitted to its upstream server. Thereafter, the cache server receives an HTTP response to the HTTP request from the upstream server (S140), and transfers the received HTTP response to the object (client or another cache server) providing the HTTP request (S150).
한편, 단계(120)에서, HTTP 요청의 헤더에 업스트림 서버 설정 정보 즉, 업스트림 서버 헤더가 존재하지 않는 경우, 캐시 서버는 해당 HTTP 요청에 대해서 말단 캐시 서버로 동작하기 위해서 업스트림 서버 설정이 이루어져야 하는지를 판단한다(S160). 예를 들어, 캐시 서버는 HTTP 요청에 포함된 호스트(Host) 헤더의 내용에 대해서 업스트림 서버 설정 정보가 캐시 서버에 존재하는 경우, 업스트림 서버 설정이 이루어져야 하는 것으로 판단한다. If there is no upstream server setting information in the header of the HTTP request, that is, if the upstream server header does not exist in the header of the HTTP request, the cache server determines whether the upstream server setting should be made to operate as a terminal cache server (S160). For example, the cache server determines that the upstream server setting information needs to be set when the upstream server setting information exists in the cache server with respect to the contents of the host header included in the HTTP request.
업스트림 서버 설정 정보를 분석하여, 캐싱되지 않은 컨텐츠를 제공받기 위한 업스트림 서버가 몇 단계 존재하는지를 판단한다(S170). 업스트림 서버가 하나만 존재하는 경우에는, HTTP 요청을 자신의 업스트림 서버로 전달하고 업스트림 서버로부터 HTTP 요청에 대한 HTTP 응답을 수신하며, 수신된 HTTP 응답을 HTTP 요청을 제공한 대상(클라이언트 또는 다른 캐시 서버)로 전달한다(S140, S150). It is determined whether there are several upstream servers for receiving the un-cached contents (S170). If there is only one upstream server, it forwards the HTTP request to its upstream server, receives the HTTP response for the HTTP request from the upstream server, and sends the received HTTP response to the target (client or other cache server) (S140, S150).
반면, 캐싱되지 않은 컨텐츠를 제공받기 위한 업스트림 서버가 2 단계 이상 존재하는 경우에는, 업스트림 서버 설정 정보를 HTTP 요청에 헤더로 포함시키고(S180), 자신의 업스트림 서버로 HTTP 요청을 전달한다. 이후, 업스트림 서버로부터 HTTP 요청에 대한 HTTP 응답을 수신하며, 수신된 HTTP 응답을 HTTP 요청을 제공한 대상(클라이언트 또는 다른 캐시 서버)로 전달한다(S140, S150). On the other hand, if there are two or more upstream servers for receiving unencrypted content, upstream server setting information is included as a header in the HTTP request (S180), and the HTTP request is transmitted to the upstream server. Thereafter, the HTTP response to the HTTP request is received from the upstream server, and the received HTTP response is transmitted to the object (client or another cache server) providing the HTTP request (S140, S150).
한편, 단계(S110)에서, 수신된 HTTP 요청을 검사하여 업스트림 서버 설정 정보가 없으면서, 호스트 헤더 내용에 대해서 말단 캐시 서버로 동작하기 위한 업스트림 서버 설정이 캐시 서버 내부에 존재하지 않는 경우에는, HTTP 요청을 제공한 대상(클라이언트 또는 다른 캐시 서버)으로 잘못된 HTTP 요청으로 판단되었음을 나타내는 응답을 전달한다(S190).On the other hand, if it is determined in step S110 that there is no upstream server setting information and no upstream server setting for operating as a terminal cache server with respect to the host header content exists in the cache server by checking the received HTTP request, (Client or another cache server) that has received the response (S190).
도 4는 본 발명의 실시 예에 따른 업스트림 서버 설정 장치의 구조를 나타낸 도이다. 4 is a diagram illustrating a structure of an upstream server setting apparatus according to an embodiment of the present invention.
첨부한 도 4에서와 같이, 본 발명의 실시 예에 따른 업스트림 서버 설정 장치(10)는 HTTP 요청 수신부(11), 헤더 분석부(12), 서버 설정 정보 추가부(13), 서버 설정 정보 변경 처리부(14), 요청 전달부(15), 응답 수신부(16), 응답 전달부(17)를 포함한다. 4, the upstream server setting apparatus 10 according to the embodiment of the present invention includes an HTTP
HTTP 요청 수신부(11)는 클라이언트 또는 다른 캐시 서버로부터 수신되는 HTTP 요청을 수신한다. The HTTP
헤더 분석부(12)는 수신된 HTTP 요청의 헤더를 분석한다. 수신된 HTTP 요청에 헤더가 존재하는지를 판단하고, 헤더에 업스트림 서버 설정 정보인 업스트림 서버 헤더가 존재하는지를 판단한다. The
서버 설정 정보 추가부(13)는 수신된 HTTP 요청에 업스트림 서버 헤더가 존재하지 않고, 업스트림 서버 설정을 해야 하는 경우, 업스트림 서버 주소 정보들을 포함하는 업스트림 서버 설정 정보를 HTTP 요청에 추가한다. The server setting
서버 설정 정보 변경 처리부(14)는 수신된 HTTP 요청에 업스트림 서버 헤더가 존재하는 경우, 해당 캐시 서버의 업스트림 서버를 확인하고 업스트림 서버 헤더에 대응하는 업스트림 서버 설정 정보에서 해당 업스트림 서버 주소를 삭제하거나, 업스트림 서버 설정 정보를 삭제하는 등의 처리를 수행한다. The server setting information
요청 전달부(15)는 수신된 HTTP 요청을 업스트림 서버로 전달한다. 특히, 업스트림 서버 설정 정보가 변경되거나 삭제된 HTTP 요청을 전달하거나, 또는 업스트림 서버 설정 정보가 추가된 HTTP 요청을 전달한다. The
응답 수신부(16)는 업스트림 서버로부터 HTTP 요청에 대응하는 응답을 수신한다. 응답 전달부(17)는 수신된 응답을 HTTP 요청을 제공한 대상(클라이언트 또는 다른 캐시 서버)로 전달한다. The
이러한 구조로 이루어지는 업스트림 서버 설정 장치(10)는 말단 캐시 서버나 부모 캐시 서버에 구현될 수 있다. 부모 캐시 서버에 포함되는 형태로 구현되는 경우, 업스트림 서버 설정 장치(10)는 서버 설정 정보 추가부(13)를 포함하지 않을 수 있다. The upstream server setting apparatus 10 having such a structure can be implemented in a terminal cache server or a parent cache server. The upstream server setting apparatus 10 may not include the server setting
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.The embodiments of the present invention are not limited to the above-described apparatuses and / or methods, but may be implemented through a program for realizing functions corresponding to the configuration of the embodiment of the present invention, a recording medium on which the program is recorded And such an embodiment can be easily implemented by those skilled in the art from the description of the embodiments described above.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.
Claims (15)
컨텐츠를 요구하는 요청을 수신하는 단계;
상기 요청으로부터 적어도 하나의 업스트림 서버 주소를 포함하는 업스트림 서버 설정 정보를 획득하는 단계; 및
상기 업스트림 서버 설정 정보로부터 획득한 서버 주소에 대응하는 업스트림 서버로 상기 요청을 전달하는 단계
를 포함하고,
상기 요청을 전달하는 단계에서 상기 업스트림 서버는 상기 원본 웹 서버 또는 상기 요청을 수신한 캐시 서버와 상기 원본 웹 서버 사이에 위치되는 다른 캐시 서버인, 업스트림 서버 설정 방법.In a network environment in which at least one other cache server exists between a cache server and a source web server, in a method of setting up an upstream server for a cache server,
Receiving a request for content;
Obtaining upstream server configuration information including at least one upstream server address from the request; And
Transmitting the request to the upstream server corresponding to the server address obtained from the upstream server setting information
Lt; / RTI >
Wherein the upstream server is the original web server or another cache server located between the cache server receiving the request and the source web server in the step of transmitting the request.
상기 업스트림 서버 설정 정보는 주소 식별자에 의하여 구분되면서 순차적으로 배열된 복수의 업스트림 서버 주소들을 포함하며,
상기 획득하는 단계는 상기 업스트림 서버 설정 정보에서 가장 마지막에 배열된 서버 주소를 획득하는 단계를 더 포함하는, 업스트림 서버 설정 방법.The method according to claim 1,
Wherein the upstream server configuration information includes a plurality of upstream server addresses sequentially sorted by the address identifiers,
Wherein the acquiring further comprises acquiring a server address arranged last in the upstream server setting information.
상기 요청을 전달하는 단계는
상기 업스트림 서버 설정 정보에서 상기 획득한 서버 주소를 삭제한 다음에 상기 업스트림 서버 설정 정보를 상기 요청에 포함시키는 단계;
상기 업스트림 서버 설정 정보에 상기 획득한 서버 주소 이외의 다른 서버 주소가 존재하지 않는 경우, 상기 요청에서 상기 업스트림 서버 설정 정보를 삭제하는 단계; 및
상기 요청을 상기 업스트림 서버로 전달하는 단계
를 포함하는, 업스트림 서버 설정 방법.The method according to claim 1,
The step of delivering the request
Adding the upstream server configuration information to the request after deleting the obtained server address from the upstream server configuration information;
Deleting the upstream server setting information from the request when the server address other than the obtained server address does not exist in the upstream server setting information; And
Forwarding the request to the upstream server
The method comprising the steps of:
상기 업스트림 서버 설정 정보를 획득하는 단계는
상기 수신된 요청이 헤더를 포함하는지를 판단하는 단계;
상기 요청이 헤더를 포함하는 경우, 상기 헤더가 상기 업스트림 서버 설정 정보를 포함하는지를 판단하는 단계;
상기 헤더가 상기 업스트림 서버 설정 정보를 포함하는 경우, 상기 업스트림 서버 설정 정보를 획득하는 단계
를 포함하는, 업스트림 서버 설정 방법.The method according to claim 1,
The step of acquiring the upstream server setting information
Determining whether the received request includes a header;
Determining whether the header includes the upstream server configuration information if the request includes a header;
If the header includes the upstream server configuration information, acquiring the upstream server configuration information
The method comprising the steps of:
상기 업스트림 서버 설정 정보를 획득하는 단계는
상기 헤더가 상기 업스트림 서버 설정 정보를 포함하지 않는 경우, 업스트림 서버 설정을 위한 정보가 있는지를 판단하는 단계; 및
상기 정보가 있는 경우, 업스트림 서버 설정 정보를 생성하는 단계
를 더 포함하는, 업스트림 서버 설정 방법.6. The method of claim 5,
The step of acquiring the upstream server setting information
Determining whether there is information for setting up an upstream server when the header does not include the upstream server configuration information; And
If the information is present, generating upstream server setting information
Further comprising the steps of:
상기 요청을 전달하는 단계
상기 생성된 업스트림 서버 설정 정보가 하나의 업스트림 서버 주소만을 포함하는 경우에는, 상기 하나의 업스트림 서버 주소에 대응하는 업스트림 서버로 상기 요청을 전달하는 단계; 및
상기 생성된 업스트림 서버 설정 정보가 둘 이상의 업스트림 서버 주소를 포함하는 경우에는, 상기 생성된 업스트림 서버 설정 정보를 상기 요청에 포함시킨 다음에 상기 요청을 전달하는 단계
를 더 포함하는, 업스트림 서버 설정 방법.The method according to claim 6,
The step of delivering the request
Transferring the request to an upstream server corresponding to the one upstream server address when the generated upstream server configuration information includes only one upstream server address; And
If the generated upstream server configuration information includes two or more upstream server addresses, then the generated upstream server configuration information is included in the request and then the request is transmitted
Further comprising the steps of:
상기 업스트림 서버 설정 정보를 생성하는 것은 클라이언트에 연결된 말단 캐시 서버에서만 수행되는, 업스트림 서버 설정 방법.The method according to claim 6,
Wherein the generating of the upstream server configuration information is performed only in a terminal cache server connected to the client.
상기 말단 캐시 서버가 캐싱되지 않은 컨텐츠에 대한 서비스 제공을 위하여, 적어도 하나의 업스트림 서버 주소를 포함하는 업스트림 서버 설정 정보를 생성하는 단계;
상기 말단 캐시 서버가 상기 생성된 업스트림 서버 설정 정보를 클라이언트로부터 수신한 요청에 포함시켜 자신의 업스트림 서버에 해당하는 부모 캐시 서버로 전달하는 단계; 및
상기 부모 캐시 서버는 수신된 요청에 포함된 업스트림 서버 설정 정보로부터 자신의 업스트림 서버--상기 업스트림 서버는 상기 원본 웹 서버 또는 상기 요청을 수신한 캐시 서버와 상기 원본 웹 서버 사이에 위치되는 다른 캐시 서버임--를 확인하고, 상기 요청을 자신의 업스트림 서버로 전달하는 단계
를 포함하는, 업스트림 서버 설정 방법.A method for setting up an upstream server for providing content in a network environment in which at least one parent cache server exists between a root cache server and a source web server,
Generating, by the end cache server, upstream server configuration information including at least one upstream server address, in order to provide a service for non-cached content;
The end cache server including the generated upstream server configuration information in a request received from a client and transmitting the request to a parent cache server corresponding to the upstream server; And
Wherein the parent cache server receives, from the upstream server configuration information included in the received request, its own upstream server, the upstream server receives the original web server or another cache server located between the cache server receiving the request and the source web server And forwarding the request to its upstream server
The method comprising the steps of:
상기 요청을 자신의 업스트림 서버로 전달하는 단계는
상기 부모 캐시 서버가 상기 업스트림 서버 설정 정보에서 자신의 업스트림 서버 주소를 삭제한 다음에 상기 업스트림 서버 설정 정보를 상기 요청에 포함시키는 단계;
상기 부모 캐시 서버가 상기 업스트림 서버 설정 정보에 자신의 업스트림 서버 주소 이외의 다른 서버 주소가 존재하지 않는 경우, 상기 요청에서 상기 업스트림 서버 설정 정보를 삭제하는 단계; 및
상기 부모 캐시 서버가 상기 요청을 자신의 업스트림 서버로 전달하는 단계
를 포함하는, 업스트림 서버 설정 방법.10. The method of claim 9,
The step of forwarding the request to its upstream server
Including the upstream server configuration information in the request after the parent cache server deletes its upstream server address from the upstream server configuration information;
If the parent cache server does not have a server address other than its own upstream server address in the upstream server configuration information, deleting the upstream server configuration information from the request; And
The parent cache server communicating the request to its upstream server
The method comprising the steps of:
상기 업스트림 서버 설정 정보는 주소 식별자에 의하여 구분되면서 순차적으로 배열된 복수의 업스트림 서버 주소들을 포함하며,
상기 요청을 자신의 업스트림 서버로 전달하는 단계는
상기 부모 캐시 서버는 상기 업스트림 서버 설정 정보에서 가장 마지막에 배열된 서버 주소를 자신의 업스트림 서버 주소로 획득하는 단계를 더 포함하는, 업스트림 서버 설정 방법.11. The method of claim 10,
Wherein the upstream server configuration information includes a plurality of upstream server addresses sequentially sorted by the address identifiers,
The step of forwarding the request to its upstream server
Wherein the parent cache server further comprises the step of acquiring the server address arranged last in the upstream server configuration information as its upstream server address.
클라이언트 또는 다른 캐시 서버로부터 수신되는 HTTP 요청을 수신하는 HTTP 요청 수신부;
상기 수신된 HTTP 요청의 헤더를 분석하여, 수신된 HTTP 요청에 헤더가 존재하고 상기 헤더에 업스트림 서버 설정 정보가 포함되어 있는지를 확인하는 헤더 분석부;
상기 수신된 HTTP 요청에 상기 업스트림 서버 설정 정보가 존재하는 경우, 상기 업스트림 서버 설정 정보로부터 해당 캐시 서버의 업스트림 서버-- 상기 업스트림 서버는 상기 원본 웹 서버 또는 상기 요청을 수신한 캐시 서버와 상기 원본 웹 서버 사이에 위치되는 다른 캐시 서버임--를 확인하는 서버 설정 정보 변경 처리부; 및
상기 수신된 HTTP 요청을 상기 확인된 업스트림 서버로 전달하는 요청 전달부
를 포함하는, 업스트림 서버 설정 장치.In a network environment in which at least one other cache server exists between a cache server and a source web server, in an apparatus for setting up an upstream server for a cache server,
An HTTP request receiver for receiving an HTTP request received from a client or another cache server;
A header analyzer for analyzing a header of the received HTTP request to confirm whether a header exists in the received HTTP request and whether the header includes upstream server setting information;
If the upstream server setting information exists in the received HTTP request, the upstream server of the corresponding cache server from the upstream server setting information, the upstream server transmits the original web server or the cache server receiving the request, A server setting information change processing unit for confirming whether the cache server is another cache server located between the servers; And
A request delivery unit for delivering the received HTTP request to the identified upstream server,
And an upstream server setting device.
상기 수신된 HTTP 요청에 업스트림 서버 설정 정보가 존재하지 않고 업스트림 서버 설정을 해야 하는 경우, 업스트림 서버 주소 정보들을 포함하는 업스트림 서버 설정 정보를 생성하고 상기 수신된 HTTP 요청에 추가하는 서버 설정 정보 추가부를 더 포함하는, 업스트림 서버 설정 장치.The method of claim 12, wherein
A server setting information adding unit for generating upstream server setting information including upstream server address information and adding the server setting information to the received HTTP request when upstream server setting information does not exist in the received HTTP request and upstream server setting is required An upstream server setting device.
상기 서버 설정 정보 변경 처리부는 상기 업스트림 서버 설정 정보에서 해당 업스트림 서버 주소를 삭제하거나, 업스트림 서버 설정 정보를 삭제하는 처리를 수행하고,
상기 요청 전달부는 상기 업스트림 서버 설정 정보가 변경되거나 삭제된 HTTP 요청을 전달하는, 업스트림 서버 설정 장치.The method of claim 12, wherein
The server setting information change processing unit deletes the upstream server address or deletes the upstream server setting information from the upstream server setting information,
Wherein the request forwarding unit delivers an HTTP request in which the upstream server setting information is changed or deleted.
상기 업스트림 서버 설정 정보는 주소 식별자에 의하여 구분되면서 순차적으로 배열된 복수의 업스트림 서버 주소들을 포함하며,
상기 서버 설정 정보 변경 처리부는 상기 업스트림 서버 설정 정보에서 가장 마지막에 배열된 서버 주소를 자신의 업스트림 서버 주소로 획득하는, 업스트림 서버 설정 장치.
The method of claim 12, wherein
Wherein the upstream server configuration information includes a plurality of upstream server addresses sequentially sorted by the address identifiers,
Wherein the server setting information change processing unit obtains a server address arranged last in the upstream server setting information as its upstream server address.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130128101A KR101493073B1 (en) | 2013-10-25 | 2013-10-25 | Method for setting upstream server and apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130128101A KR101493073B1 (en) | 2013-10-25 | 2013-10-25 | Method for setting upstream server and apparatus thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101493073B1 true KR101493073B1 (en) | 2015-02-13 |
Family
ID=52593450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20130128101A KR101493073B1 (en) | 2013-10-25 | 2013-10-25 | Method for setting upstream server and apparatus thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101493073B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040022025A (en) * | 2002-09-06 | 2004-03-11 | 한국전자통신연구원 | Method and apparatus for providing multimedia contents capable of changing a media into the other media |
US20060167979A1 (en) | 2004-12-21 | 2006-07-27 | Harald Fuchs | Mapping of a content request for a cache server |
US20110231515A1 (en) * | 2004-10-29 | 2011-09-22 | Akamai Technologies, Inc. | Transparent Session Persistence Management by a Server in a Content Delivery Network |
-
2013
- 2013-10-25 KR KR20130128101A patent/KR101493073B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040022025A (en) * | 2002-09-06 | 2004-03-11 | 한국전자통신연구원 | Method and apparatus for providing multimedia contents capable of changing a media into the other media |
US20110231515A1 (en) * | 2004-10-29 | 2011-09-22 | Akamai Technologies, Inc. | Transparent Session Persistence Management by a Server in a Content Delivery Network |
US20060167979A1 (en) | 2004-12-21 | 2006-07-27 | Harald Fuchs | Mapping of a content request for a cache server |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11811657B2 (en) | Updating routing information based on client location | |
CN109618005B (en) | Method for calling server and proxy server | |
CN106031130B (en) | Content distribution network framework with edge proxies | |
CN108737515B (en) | Request routing in a networked environment | |
EP2266064B1 (en) | Request routing | |
JP6302050B2 (en) | System and method for improved discovery | |
US9712422B2 (en) | Selection of service nodes for provision of services | |
EP2356577B1 (en) | Request routing and updating routing information utilizing client location information | |
US10567332B2 (en) | Content delivery network optimization system | |
US20170244616A1 (en) | Unobtrusive Methods and Systems for Collecting Information Transmitted over a Network | |
US20140304386A1 (en) | Routing client requests | |
US10897450B2 (en) | Communication method and communication apparatus | |
US11750694B2 (en) | CDN-based client messaging | |
US10848586B2 (en) | Content delivery network (CDN) for uploading, caching and delivering user content | |
CN112565406B (en) | Gray release method, gray release system and electronic equipment | |
JP2015197920A (en) | System and method for device registration and discovery in content-centric network | |
JP5213066B2 (en) | Device for changing the EPR representing a web service endpoint | |
KR20140125224A (en) | Method and node apparatus for collecting information in contents network based on information centric networking | |
JP5716745B2 (en) | Data transfer system | |
KR101493073B1 (en) | Method for setting upstream server and apparatus thereof | |
CN109716310A (en) | Server unit, transmitting device and program for content distribution system | |
JP5803924B2 (en) | Data transfer system | |
KR20220073422A (en) | Method and Apparatus for Defining Path of a Packet in Information-Centric Networking for Data Producer Mobility | |
Shen et al. | Freeweb: P2p-assisted collaborative censorship-resistant web browsing | |
KR20220075985A (en) | System ndn-based communication supporting mobility of publisher and method for the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180206 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190207 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20200206 Year of fee payment: 6 |