KR20000000010A - Load balancer and method of content-based policy routing thereby - Google Patents

Load balancer and method of content-based policy routing thereby Download PDF

Info

Publication number
KR20000000010A
KR20000000010A KR1019980047905A KR19980047905A KR20000000010A KR 20000000010 A KR20000000010 A KR 20000000010A KR 1019980047905 A KR1019980047905 A KR 1019980047905A KR 19980047905 A KR19980047905 A KR 19980047905A KR 20000000010 A KR20000000010 A KR 20000000010A
Authority
KR
South Korea
Prior art keywords
client
web server
connection
web
load balancer
Prior art date
Application number
KR1019980047905A
Other languages
Korean (ko)
Other versions
KR100268838B1 (en
Inventor
김상욱
송영관
류철
유현종
Original Assignee
김상돈
주식회사 신텔정보통신
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김상돈, 주식회사 신텔정보통신 filed Critical 김상돈
Priority to KR1019980047905A priority Critical patent/KR100268838B1/en
Publication of KR20000000010A publication Critical patent/KR20000000010A/en
Application granted granted Critical
Publication of KR100268838B1 publication Critical patent/KR100268838B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PURPOSE: A load balancer is provided to perform content-based load balancing in connection between client and web server. CONSTITUTION: The load balancer has a client table and a web server table. Clients are registered in the client table by client information comprising internet protocol address of client, port number of client, and web server pointer, Web servers are registered in the web server table by web server information comprising internet protocol address of web server, port number of web server, and web server pointer. The load balancer determinate a client and a web server to be connected according to the client table and web server table.

Description

부하 분산기 및 그 부하 분산기에 의한 내용기반 정책 라우팅 방법Load Balancer and Content-based Policy Routing Method by Load Balancer

본 발명은 컴퓨터 네트워크에 있어서 인터넷(Internet)에 관한 것으로, 특히 웹사이트에서 임의의 클라이언트(client)와 특정 웹서버(web server) 사이에서 트래픽(traffic)을 고려한 중계를 실시하는 부하 분산기 및 그 부하 분산기의 동작을 제어하는 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to the Internet in a computer network, and more particularly, to a load balancer for carrying out relaying in consideration of traffic between an arbitrary client and a specific web server in a website and its load. A method of controlling the operation of a spreader is provided.

인터넷상에는 수많은 클라이언트들과 다양한 웹서버들이 존재하는데, 이들이 서로 원활하게 웹 서비스를 요구 및 제공하기 위해서는 그들 사이에서 각 웹서버의 성능을 고려한 중계가 이루어져야 한다.There are numerous clients and various web servers on the Internet, and in order for them to smoothly request and provide web services, relaying considering the performance of each web server is required.

브렌델(Brendel) 외 3인(Kring, Liu, Marino)이 발명하고 레조네이트사(Resonate, Inc.)에서 미합중국특허청에 1996년 8월 5일자로 출원하여 1998년 6월 30일자로 발행된 미합중국특허 제5,774,660호에는 분산 자원 다중노드 네트워크에서 자원기반 부하 분산을 위한 지연된 자원결합에 관한 월드와이드 웹서버(World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network) 기술이 개시되어 있다. 상기 미합중국특허 제5,774,660호에 따르면, 가상 접속(virtual connection)을 이용한 '자원기반 부하 분산'이라는 것은 사용자의 웹 서비스 요구 내용을 분석하여 적절한 웹서버로 전송시켜준다는 의미이다.United States Patent, invented by Brendel and three others (Kring, Liu, Marino), filed on August 5, 1996, and filed on June 5, 1996, with the United States Patent Office by Resonate, Inc. No. 5,774,660 describes a world-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node. network) technology. According to US Pat. No. 5,774,660, 'resource-based load balancing' using a virtual connection means that a user's web service request is analyzed and transmitted to an appropriate web server.

한편, 공지의 TCP(Transport Control Protocol) 접속 순서에 따르면, 처음 보내지는 SYN은 클라이언트가 웹서버에게 접속을 맺을 준비가 되어 있는지 묻는 메시지이다. SYN / ACK는 웹서버가 현재 접속을 맺을 준비가 되어 있고, 클라이언트에게 보낼 준비가 되어 있는지 묻는 메시지이다. ACK는 클라이언트가 메시지를 보낼 준비가 되었음을 알려주는 메시지이다. PUSH는 클라이언트가 웹 서비스를 받기 원하는 실재 내용을 담은 질의 메시지이다.On the other hand, according to the known TCP (Transport Control Protocol) connection sequence, the first SYN is a message asking whether the client is ready to establish a connection to the web server. SYN / ACK is a message asking if the web server is currently ready to make a connection and is ready to send it to the client. The ACK is a message indicating that the client is ready to send a message. PUSH is a query message containing the actual content that the client wants to receive the web service.

사용자가 원하는 웹 서비스 요구의 내용을 부하 분산기(load balancer)에서 알아내기 위해서는 상기와 같은 TCP 접속 순서에서 알 수 있듯이 여러 전처리 단계를 거쳐야만 한다. 즉, SYN, SYN/ACK, ACK 단계를 거치고 나서야 실제로 사용자가 원하는 웹 서비스 요구 내용(PUSH)을 알 수 있다. 그리고 자원기반 부하 분산을 하려면 실제로 서비스할 웹서버를 결정하기 위해 사용자의 서비스 요구 내용을 알아야 한다. 그러므로 웹서버를 결정하기 전까지는 접속을 위해서 그 어떤 웹서버와도 전처리 단계를 진행할 수 없다. 이런 문제를 해결하기 위해서 클라이언트로부터 들어오는 접속 요청을 부하 분산기(load balancer)가 받아서 가상 접속을 이루고, 이후 실제로 웹 서비스 요구 내용이 도착하면 그때 비로소 내용을 분석하여 실제로 서비스할 웹서버를 결정(실제 접속)하는 것이다.In order to find out the content of the web service request that the user wants in the load balancer, it has to go through several preprocessing steps as shown in the above TCP connection sequence. That is, only after going through SYN, SYN / ACK, and ACK steps, can the user actually know the desired web service request (PUSH). And resource-based load balancing requires knowing the user's service requirements to determine which web server to actually serve. Therefore, you can't go through any preprocessing steps with any web server until you decide on it. To solve this problem, a load balancer receives a connection request from a client and establishes a virtual connection. After that, when the web service request actually arrives, the web server analyzes the content and decides which web server to actually serve. )

상기 미합중국특허 제5,774,660호에 개시된 기술은 이러한 가상 접속을 이용하여 사용자 웹 서비스 요구 내용을 알아내기까지 부하 분산기가 실제 웹서버와의 접속을 지연시키는 기술이다. 그런데 이 기술은 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: 이하 HTTP라 함.) 1.0을 지원하는 바, 원활한 웹 서비스를 지원하지 못하는 기술적인 한계를 가지고 있다. 즉, 현재 거의 모든 웹서버들이 웹 서비스 성능의 향상을 위해서 지원하고 있는 지속적 연결(persistent connection)을 지원할 수 없다는 것이다.The technique disclosed in US Pat. No. 5,774,660 is a technique in which the load balancer delays the connection with the actual web server until the user web service request is determined using the virtual connection. However, this technology supports Hypertext Transfer Protocol (HTTP) 1.0, which has technical limitations in not supporting smooth web services. In other words, almost all web servers cannot support the persistent connections currently supported to improve web service performance.

여기서 지속적 연결이란 월드와이드 웹에서 사용하는 HTTP 1.1에서 지원하는 기술이다. 사용자가 하나의 특정 웹서버로 여러 개의 웹 서비스 요구를 보낼 경우 매 요구마다 접속을 맺고 끊게 되는데, 지속적 연결은 하나의 웹 서비스 요구를 처리한 후 일정 시간의 타이머(timer)를 설정하여 타임아웃(time out)될 때까지 그 사용자와의 접속을 계속 유지함으로써 타임 아웃되기 전에 사용자의 다른 요구가 도착하면 그때까지 유지되어 있던 접속을 그대로 이용하여 웹 서비스 요구 패킷을 전송하는 방법을 말한다. 이러한 지속적 연결을 사용하면 불필요한 접속 설정 및 종료를 줄여줌으로써 시간이 절약되어 보다 빠른 웹 서비스를 제공할 수 있게 된다.Here, persistent connection is a technology supported by HTTP 1.1 used on the worldwide web. When a user sends several web service requests to a specific web server, the connection is established and disconnected for each request. A persistent connection processes a single web service request and sets a timer for a certain amount of time. It is a method of transmitting a web service request packet by using the connection maintained until then when another request of the user arrives before the time out by continuing to maintain the connection with the user until time out. This persistent connection saves time by reducing unnecessary connection setup and termination, resulting in faster web services.

그런데 상기 미합중국특허 제5,774,660호에 따르면, 실제 서비스를 제공할 웹서버를 결정하면 해당 웹서버와 매번 새로운 접속을 실시한다. 그러므로 지속적 연결에 정식으로 위배되는 처리단계를 거치게 되는 것이다.However, according to US Patent No. 5,774,660, if a web server to provide a real service is determined, a new connection is made with the web server every time. Therefore, the processing steps that formally violate the continuous connection.

하지만 지속적 연결 상태에서 자원기반 부하 분산기능을 제공하려면 기술적으로 많은 문제점을 가지고 있다. 무엇보다도 지속적 연결이라는 것은 하나의 사용자로부터 들어오는 여러 개의 웹 서비스 요구를 처음에 설정한 접속의 웹서버로 일괄적으로 전송함으로써 전체적인 성능을 향상시키는 것이 핵심인데, 그와는 반대로However, there are many technical problems in providing resource-based load balancing in a persistent connection state. Above all, persistent connection is the key to improving overall performance by sending multiple web service requests from one user to the web server of the initially established connection.

기능은 각 웹 서비스 요구 패킷의 URL에 들어있는 객체(object)을 분석하여 적절한 웹서버를 새롭게 선택하여 전송하는 것이다. 그러므로 기존의 부하 분산기들은 정반대의 동작 원리를 갖고 있는 두 가지 기술을 동시에 적절히 채용할 수 없었다.The function is to analyze the object contained in the URL of each web service request packet, and select and send a new appropriate web server. Therefore, the existing load balancers could not properly adopt two technologies with the opposite principle of operation.

한 예로, 자원기반 부하 분산기능을 지속적 연결 상태에서 지원하기 위해 지속적 연결 상태의 동작 원리대로 웹 서비스요구 패킷을 무조건 이미 접속을 맺고 있는 웹서버로 전송하고, 만약 웹서버 계획(planning)에 의해서 원하는 객체가 해당 웹서버에 없을 경우에는 웹서버가 능동적으로 필요로 하는 객체를 로컬 네트워크에서 가져오도록 하는 방법이 있었다. 그러나 이러한 방법은 진정한 의미로 부하 분산기가 지속적 연결 상태에서 자원기반 부하 분산기능을 지원한다고 할 수 없으며, 로컬 네트워크의 부하를 가중시키는 심각한 문제를 갖고 있다.For example, in order to support resource-based load balancing in a persistent connection state, a web service request packet is unconditionally transmitted to a web server that is already connected according to the principle of the persistent connection state. If the object does not exist on the web server, there is a way to have the web server actively retrieve the object from the local network. However, this method is not true that the load balancer supports resource-based load balancing in a continuous connection, and has a serious problem of increasing the load on the local network.

따라서 본 발명의 목적은 웹사이트에서 클라이언와 웹서버 사이에 지속적 연결을 유지하면서 자원기반 부하 분산기능을 수행할 수 있는 부하분산기를 제공함에 있다.Accordingly, an object of the present invention is to provide a load balancer capable of performing a resource-based load balancing function while maintaining a continuous connection between a client and a web server in a website.

본 발명의 다른 목적은 웹사이트에서 부하 분산기가 클라이언와 웹서버 사이에 지속적 연결을 유지하면서 자원기반 부하 분산기능을 수행할 수 있도록 제어하는 내용기반 정책 라우팅(Content-Based Policy Routing: 이하 CPR이라 함.) 방법을 제공함에 있다.Another object of the present invention is content-based policy routing (hereinafter referred to as CPR) for controlling a load balancer to perform a resource-based load balancing function while maintaining a persistent connection between a client and a web server in a website. ) To provide a method.

상기한 목적을 달성하기 위한 본 제1발명은 웹사이트에서 다수의 클라이언트들과 다수의 웹서버들 사이에서 트래픽을 고려한 중계를 실시하는 부하 분산기에 있어서, 클라이언트 인터넷 프로토콜 어드레스, 클라이언트 포트번호 및 웹서버 포인터 등을 포함하는 클라이언트 정보를 이용하여 상기 클라이언트들을 등록하기 위한 클라이언트 테이블과, 웹서버 인터넷 프로토콜 어드레스, 웹서버 포트번호 및 클라이언트 포인터 등을 포함하는 웹서버 정보를 이용하여 상기 웹서버들을 등록하기 위한 웹서버 테이블을 구비하고, 상기 클라이언트 정보 혹은 상기 웹서버 정보를 참조하여 임의의 클라이언트 혹은 임의의 웹서버와의 접속 여부를 판단함을 특징으로 한다.The present invention for achieving the above object is a load balancer for relaying traffic between a plurality of clients and a plurality of web servers in a web site, the client Internet protocol address, client port number and web server A client table for registering the clients using client information including a pointer, and the like, for registering the web servers using web server information including a web server internet protocol address, a web server port number, and a client pointer. It is provided with a web server table, it characterized in that it is determined whether the connection to any client or any web server by referring to the client information or the web server information.

상기한 목적을 달성하기 위한 본 제2발명은 웹사이트에서, 클라이언트 테이블 및 서버 테이블을 구비한 부하 분산기가 다수의 클라이언트들과 웹서버들 사이에서 자원기반 부하 분산기능을 클라이언트와 웹서버의 지속적 연결을 유지하면서 지원하기 위한 내용기반 정책 라우팅 방법에 있어서, 임의의 한 클라이언트와 상기 부하 분산기 사이에 초기 접속이 이루어지는 세션 시작 과정과, 상기 세션 시작후 상기 클라이언트와 부하 분산기 사이에 가상 접속이 이루어지는 가상 접속 과정과, 상기 가상 접속 상태에서 상기 클라이언트로부터 소정의 웹 서비스 요구 패킷이 처음으로 수신되면 상기 부하 분산기가 그 패킷의 유니폼 리소스 로케이터를 분석하여 운영자가 설정한 정책에 의해 클라이언트가 요구한 웹 서비스를 제공할 웹서버를 결정하여 그 웹서버와 접속한 다음 수신한 패킷을 전송하는 초기 전송 과정과, 상기 가상 접속 상태에서 상기 클라이언트로부터 소정의 웹 서비스 요구 패킷이 다수 번째로 수신되면 상기 부하 분산기가 그 패킷의 유니폼 리소스 로케이터를 분석하여 운영자가 설정한 정책에 의해 클라이언트가 요구한 웹 서비스를 제공할 웹서버를 결정하고, 해당 클라이언트의 웹서버 테이블을 검색하여 상기 결정된 웹서버가 이전에 이미 서비스한 적이 있고 그 서비스 후 현재까지 접속 상태를 유지하고 있는 웹서버인지 확인하는 과정과, 상기 웹서버가 현재까지 접속 상태를 유지하고 있는 웹서버이면 그 접속을 재사용하여 바로 패킷을 전송하는 과정과, 상기 웹서버가 최초로 서비스하거나 접속 상태가 유지되고 있지 않으면 새로 접속을 실시한 다음 패킷을 전송하는 과정으로 이루어짐을 특징으로 한다.The present invention for achieving the above object is a web site, the load balancer having a client table and a server table is a resource-based load balancing function between a plurality of clients and web servers continuous connection of the client and the web server In the content-based policy routing method for supporting and maintaining, a session initiation process in which an initial connection is made between any one client and the load balancer, and a virtual connection in which a virtual connection is made between the client and the load balancer after the session is started. Process, and when a predetermined web service request packet is first received from the client in the virtual connection state, the load balancer analyzes the uniform resource locator of the packet to provide the web service requested by the client according to a policy set by an operator. By deciding which web server to do After the initial transmission process of connecting with the web server and transmitting the received packet, if the predetermined web service request packet is received from the client a plurality of times in the virtual connection state, the load balancer analyzes the uniform resource locator of the packet. The policy set by the operator determines the web server to provide the web service requested by the client, and searches the web server table of the client to determine the web server that the determined web server has already serviced before and after that service until now. Checking whether the web server maintains the web server; and, if the web server maintains the current connection to the web server, reusing the connection to transmit the packet immediately, and if the web server is in service or connected for the first time. If not maintained, make a new connection and send a packet. Characterized by a made of an.

도 1은 본 발명의 실시 예에 따른 부하 분산기를 중심으로 서로 접속 가능한 다수의 클라이언트들 및 다수의 웹서버들의 관계를 나타낸 도면1 is a view showing a relationship between a plurality of clients and a plurality of web servers that can be connected to each other around a load balancer according to an embodiment of the present invention

도 2는 상기 도 1중 부하 분산기에 구비된 클라이언트 테이블 및 웹서버 테이블의 예를 나타낸 도면2 is a diagram illustrating an example of a client table and a web server table provided in the load balancer of FIG.

도 3a∼도 3d는 부하 분산기의 분산 방법에 따른 부하 분산의 예를 나타낸 도면3A to 3D are diagrams showing examples of load balancing according to a load balancing method.

도 4a∼도 4c는 본 발명의 실시 예에 따른 부하 분산기가 지속적 연결 상태에서의 CPR 기능을 수행하는 과정을 나타낸 순서도4A to 4C are flowcharts illustrating a process of performing a CPR function by a load balancer in a continuous connection state according to an embodiment of the present invention.

도 5a∼도 5c는 본 발명의 실시 예에 따른 부하 분산기의 동작 순서를 나타낸 흐름도5A to 5C are flowcharts illustrating an operation procedure of a load balancer according to an embodiment of the present invention.

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, in adding reference numerals to the components of each drawing, it should be noted that the same reference numerals have the same reference numerals as much as possible even if displayed on different drawings. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

네트워크 어드레스 변환(Network Address Translation: 이하 NAT이라 함.) 알고리즘이란 IP 규격에 정의되어 있는 소스/목적지 어드레스(source/destination address)를 임의로 조작하는 기술을 말한다. 부하 분산기는 이러한 NAT 알고리즘을 사용하여 일반 사용자들이 가상 IP 어드레스로 보내는 웹 서비스 요구 패킷을 중간에서 가로채서, 분산 알고리즘을 이용하여 실제 설치되어 있는 웹서버들 중 하나의 특정 IP 어드레스로 목적지 어드레스를 변환한다. 다시 말해서, NAT 알고리즘을 부하 분산기에 적용하여 사용함으로써 웹 서비스를 원하는 사용자들은 여러 대의 실제 웹서버들의 IP 어드레스들을 모르더라도 대표로 사용되는 가상 IP 어드레스 하나만 알면 원하는 웹 서비스를 제공받을 수 있다.Network Address Translation (NAT) algorithm refers to a technique for arbitrarily manipulating a source / destination address defined in the IP standard. The load balancer uses this NAT algorithm to intercept web service request packets sent by end users to the virtual IP address in the middle, and uses a distributed algorithm to translate the destination address to a specific IP address of one of the web servers actually installed. do. In other words, by applying the NAT algorithm to the load balancer, users who want web services can be provided with the desired web service without knowing the IP addresses of several real web servers.

내용기반 정책 라우팅(Content-based Policy Routing: 이하 CPR이라 함.)이란 사용자들이 요구한 웹 서비스의 내용을 담고 있는 URL 패킷을 분석하여 특정 객체를 선택한 패킷을 부하 분산기의 운영자가 설정한 정책에 의해서 특정 웹서버로 전송하는 기술을 말한다.Content-based Policy Routing (hereinafter referred to as CPR) refers to a packet that selects a specific object by analyzing a URL packet containing the contents of a web service requested by users based on a policy set by the load balancer operator. It is a technology to transmit to a specific web server.

본 발명의 실시 예에 따른 부하 분산기는 이러한 CPR 기술을 이용함으로써 하드디스크의 비효율성 문제를 해결한다. 여기서 하드디스크의 비효율성 문제란 각각의 웹서버들이 동일한 서비스 객체들을 저장하고 있어야만 하는 것을 말하는데, 이는 여러 대의 웹서버들을 운영하려면 사용자들의 패킷이 어느 웹서버로 전송될지 알아야함에도 불구하고 기존에는 그것을 알 수 없었던 데서 기인한다.The load balancer according to the embodiment of the present invention solves the inefficiency problem of the hard disk by using the CPR technology. Hard disk inefficiency here means that each web server must store the same service objects, which means that if you want to run multiple web servers, you need to know which web servers your packets will be sent to. It originates from what could not be.

본 발명의 실시 예에 따른 부하 분산기의 지속적 연결 상태에서 내용기반 정책 라우팅은 웹서버가 지속적 연결 기능을 지원할 수 있도록 동작하고 있으면 사용자의 웹 서비스 요구가 들어올 때 이 패킷을 유지되고 있는 접속을 이용해서 전송한다. 이때 무조건적으로 전송하는 것이 아니라 CPR 기술을 적용해서 웹 서비스 요구 패킷의 URL 내용을 분석하여 만약 CPR에 의해 다른 웹서버로 전송될 필요가 있을 경우에는 기존의 접속은 그대로 유지한 상태에서 새로운 웹서버로 접속을 맺고 그 새로운 웹서버와 지속적 연결을 유지한다. 그 후에 다시 새롭게 들어온 웹 서비스 요구 패킷의 URL 내용이 처음의 웹서버로 전송되어야 한다면 유지시키고 있던 처음 웹서버와의 접속을 이용하여 패킷을 전송한다. 이와 같이 사용자의 웹 서비스 요구 패킷마다 URL 내용을 분석하여 웹 서비스를 제공할 웹서버를 결정하므로 CPR 기능을 완벽하게 지원하는 동시에 CPR에 의해서 결정되는 웹서버마다 접속을 유지시킴으로써 지속적 연결 또한 완벽하게 지원할 수 있다.In the persistent connection state of the load balancer according to the embodiment of the present invention, if the web server is operating to support the persistent connection function, the content-based policy routing uses the connection that maintains this packet when the user requests the web service. send. At this time, rather than sending unconditionally, it analyzes the URL contents of the web service request packet by applying CPR technology and if it needs to be sent to another web server by CPR, it keeps the existing connection to the new web server. Establish a connection and maintain a persistent connection with the new web server. After that, if the URL contents of the newly received web service request packet should be transmitted to the first web server, the packet is transmitted using the connection with the first web server that was maintained. In this way, by analyzing the URL content for each web service request packet of the user to determine the web server to provide the web service, it is possible to fully support the CPR function and maintain the connection for each web server determined by the CPR. Can be.

도 1은 본 발명의 실시 예에 따른 부하 분산기를 중심으로 서로 접속 가능한 다수의 클라이언트들 및 다수의 웹서버들의 관계를 나타낸 것이다. 본 실시 예는 하나의 부하 분산기와 m개의 클라이언트들과 n개의 웹서버들로 구성한 상태를 나타낸 것이다. 상기 부하 분산기는 클라이언트 테이블과 웹서버 테이블 및 NAT 테이블을 구비한다. 상기 클라이언트 테이블에는 m개의 클라이언트가 등록되고, 도시된 바에 따르면 상기 m개의 클라이언트가 접속을 맺게 되는 웹서버는 총 n개이므로 상기 웹서버 테이블에는 상기 n개의 웹서버가 등록된다. 상기 클라이언트 테이블과 상기 웹서버 테이블은 포인터(pointer)를 이용하여 상호 매칭(matching)된다. 그러므로 웹서버 테이블에 등록되어 있는 하나의 웹서버를 클라이언트 테이블에 등록되어 있는 여러 클라이언트가 지정할 수 있다.1 illustrates a relationship between a plurality of clients and a plurality of web servers that can be connected to each other around a load balancer according to an exemplary embodiment of the present invention. This embodiment shows a state composed of one load balancer, m clients, and n web servers. The load balancer includes a client table, a web server table, and a NAT table. M clients are registered in the client table, and as shown in the figure, n web servers are registered in the web server table because the total number of web servers to which the m clients make a connection is. The client table and the web server table are matched with each other using a pointer. Therefore, a single web server registered in the web server table can be designated by multiple clients registered in the client table.

상기 클라이언트 테이블에 저장된 클라이언트 정보는 적어도 클라이언트 IP어드레스, 클라이언트 포트번호 및 웹서버 포인터 등을 포함한다. 마찬가지로, 상기 웹서버 테이블에 저장된 웹서버 정보는 적어도 웹서버 IP어드레스, 웹서버 포트번호 및 클라이언트 포인터 등을 포함한다.The client information stored in the client table includes at least a client IP address, a client port number and a web server pointer. Similarly, the web server information stored in the web server table includes at least a web server IP address, a web server port number and a client pointer.

도 2는 상기 도 1중 부하 분산기에 구비된 클라이언트 테이블 및 웹서버 테이블의 예를 나타낸 것이다. 본 실시 예에서는 클라이언트 1이 세 차례에 걸쳐 패킷(pkt1∼pkt3)을 전송한다고 가정하고, 처음 패킷 1(pkt1)은 웹서버 1로, 다음 패킷 2(pkt)는 웹서버 2로, 마지막으로 패킷 3(pkt3)은 다시 웹서버 1로 전송한다고 가정한 경우이다. 후술하는 바에 따르면, 처음 웹서버 1과 웹서버 2로 해당 패킷을 전송할 때에는 실제로 접속을 실시하지만 패킷 3(pkt3)을 웹서버 1로 전송할 때에는 접속을 실시하지 않아도 된다. 처음 패킷 1(pkt1)을 웹서버 1로 전송할 때 실시한 접속이 그때까지 유지되기 때문이다. 이러한 역할이 바로 본 발명의 실시 예에 따른 내용기반 정책 라우팅 방법에 의해 수행되는 것이다.FIG. 2 illustrates an example of a client table and a web server table provided in the load balancer of FIG. 1. In the present embodiment, it is assumed that client 1 transmits packets (pkt1 to pkt3) three times, first packet 1 (pkt1) to web server 1, next packet 2 (pkt) to web server 2, and finally packet 3 (pkt3) is assumed to be transmitted to Web server 1 again. As will be described later, when the packet is first transmitted to the web server 1 and the web server 2, the connection is actually performed. However, when the packet 3 (pkt3) is transmitted to the web server 1, the connection is not required. This is because the connection made when first sending packet 1 (pkt1) to Web server 1 is maintained until then. This role is played by the content-based policy routing method according to an embodiment of the present invention.

도 3a∼도 3d는 부하 분산기의 분산 방법에 따른 부하 분산의 예를 나타낸 도면이다. 도시된 텍스트 서버와 이미지 서버는 각각 도 2의 웹서버 1과 웹서버 2에 해당한다. 도 3a는 초기 설정 상태를 나타낸다. 도 3b는 클라이언트가 부하 분산기를 통해 텍스트 서버에 웹 서비스를 요구한 경우를 나타낸다. 이때 상기 부하 분산기는 상기 텍스트 서버와 지속적 연결을 설정한다. 도 3c는 상기 도 3b의 상태에서 상기 클라이언트가 상기 부하 분산기를 통해 이미지 서버에 웹 서비스를 요구한 경우를 나타낸다. 이때 상기 부하 분산기는 상기 텍스트 서버와의 지속적 연결은 그대로 유지한 채 상기 이미지 서버와의 지속적 연결을 설정한다. 도 3d는 상기 도 3c의 상태에서 상기 클라이언트가 상기 부하 분산기를 통해 다시 텍스트 서버에 웹 서비스를 요구한 경우를 나타낸다. 이때 상기 부하 분산기는 상기 텍스트 서버와 그때까지 유지하고 있던 지속적 연결을 재사용하면 되므로 채 상기 이미지 서버와의 지속적 연결을 설정한다.3A to 3D are diagrams showing examples of load balancing according to a load balancing method. The illustrated text server and image server correspond to web server 1 and web server 2 of FIG. 2, respectively. 3A shows an initial setting state. 3B illustrates a case where a client requests a web service from a text server through a load balancer. At this time, the load balancer establishes a persistent connection with the text server. 3C illustrates a case where the client requests a web service from the image server through the load balancer in the state of FIG. 3B. In this case, the load balancer establishes a continuous connection with the image server while maintaining a continuous connection with the text server. FIG. 3D illustrates a case where the client requests a web service from the text server again through the load balancer in the state of FIG. 3C. In this case, the load balancer establishes a continuous connection with the image server since the load balancer may reuse the persistent connection maintained up to that time.

도 4a∼도 4c는 본 발명의 실시 예에 따른 부하 분산기가 지속적 연결 상태에서의 CPR 기능을 수행하는 과정을 나타낸 순서도로서, 전술한 도 2 및 도 3a∼도 3d에 나타낸 바와 마찬가지로 사용자(클라이언트)가 세 개의 웹 서비스 요구 패킷을 보내온 경우 어떤 순서로 처리되는가를 가정하여 도식화 한 것이다.4A to 4C are flowcharts illustrating a process of performing a CPR function in a load balancer in a continuous connection state according to an embodiment of the present invention. As shown in FIGS. 2 and 3A to 3D, a user (client) is shown. Figure 3 illustrates the order in which three web service request packets are sent.

상기 순서도에 따르면, 크게 9개의 과정들로 다음과 같이 구분된다. 먼저, 클라이언트와 부하 분산기 사이에 초기 접속이 이루어지는 세션(session) 시작 과정이 수행된다. 다음으로, 상기 클라이언트와 부하 분산기 사이에 가상 접속이 이루어지는 가상 접속 과정이 수행된다. 이때부터 상기 클라이언트와 부하 분산기 사이에는 지속적 연결 상태가 유지된다. 다음으로, 상기 클라이언트가 부하 분산기를 통해 웹서버 1에 접속하는 과정이 수행된다. 다음으로, 상기 웹서버 1로부터 부하 분산기를 통해 클라이언트로 응답이 전달되어 제1세션이 완성되는 제1세션 완성 과정이 수행된다. 다음으로, 상기 클라이언트가 부하 분산기를 통해 웹서버 2에 접속하는 과정이 수행된다. 다음으로, 상기 웹서버 2로부터 부하 분산기를 통해 클라이언트로 응답이 전달되어 제2세션이 완성되는 제2세션 완성 과정이 수행된다. 다음으로, 상기 클라이언트가 부하 분산기를 통해 다시 웹서버 1에 서비스를 요구하는 경우에는 접속 과정을 수행하지 않고 바로 상기 웹서버 1로부터 부하 분산기를 통해 클라이언트로 응답이 전달되어 제3세션이 완성되는 제3세션 완성 과정이 수행된다. 도시된 바에 따르면, 상기 제3세션 완성 과정을 수행하기 전에 부하 분산기와 웹서버 사이에 SYN'(2), SYN'(2)/ACK'(2), ACK'(2)를 주고받는 과정이 없다.According to the flowchart, there are nine major processes. First, a session initiation process in which an initial connection is made between a client and a load balancer is performed. Next, a virtual access process is performed in which a virtual connection is made between the client and the load balancer. From then on, a persistent connection is maintained between the client and the load balancer. Next, a process of accessing the web server 1 through the load balancer is performed. Next, a response is transmitted from the web server 1 to the client through the load balancer, and a first session completion process is performed in which the first session is completed. Next, a process of accessing the web server 2 through the load balancer is performed. Next, a response is transmitted from the web server 2 to the client through the load balancer, and a second session completion process of completing the second session is performed. Next, when the client requests a service from the web server 1 through the load balancer again, the response is transferred from the web server 1 to the client through the load balancer without performing an access process, thereby completing the third session. 3 Session completion is performed. As shown in the figure, a process of exchanging SYN '(2), SYN' (2) / ACK '(2), and ACK' (2) between the load balancer and the web server before performing the third session completion process is performed. none.

이는 상기 부하 분산기와 상기 웹서버 1 사이에 그때까지 접속이 유지되기 때문이다. 다음으로, 상기 웹서버 1로부터 종료 메시지(finish message: 이하 FIN이라 함.)를 수신한 부하 분산기가 상기 웹서버 1과의 지속적 연결을 끊는 과정이 수행된다. 이때 상기 부하 분산기는 클라이언트에게는 상기 FIN을 전송하지 않음으로써 클라이언트와의 지속적 연결은 계속 유지한다. 이는 상기 FIN에 타임아웃 정보가 포함되지 않은 경우이다. 도시된 바에 따르면, 웹서버는 T6 시점에서 타이머를 구동하게 되며, 정해진 시간(예: T15 시점)이 경과하면 상기 FIN에 타임아웃 정보를 포함시켜 전송한다. 단, 정해진 시간이 경과하기 전에 동일 클라이언트로부터 다른 패킷이 수신되는 경우에는 그 시점에서 타이머를 리셋한다.This is because the connection is maintained between the load balancer and the web server 1 until then. Next, the load balancer receiving the finish message (hereinafter referred to as a FIN) from the web server 1 performs a process of disconnecting the continuous connection with the web server 1. At this time, the load balancer does not transmit the FIN to the client, thereby maintaining the continuous connection with the client. This is a case where timeout information is not included in the FIN. As shown, the web server drives the timer at time T6, and transmits the timeout information in the FIN after a predetermined time (for example, time T15). However, if another packet is received from the same client before the predetermined time elapses, the timer is reset at that time.

한편, 웹서버로부터 전달된 FIN에 타임아웃 정보를 포함한 경우 그 수신한 FIN을 부하 분산기가 그때까지 클라이언트와 유지하고 있던 지속적 연결을 통해 클라이언트로 전달한 다음, 모든 지속적 연결을 끊는 세션 종료 과정을 수행한다.On the other hand, when the timeout information is included in the FIN delivered from the web server, the received FIN is transmitted to the client through the persistent connection that the load balancer has maintained with the client until then, and the session termination process is performed to disconnect all persistent connections. .

도 5a∼도 5c는 본 발명의 실시 예에 따른 부하 분산기의 동작 순서를 나타낸 흐름도이다.5A to 5C are flowcharts illustrating an operation procedure of a load balancer according to an embodiment of the present invention.

도 5a는 외부에서 부하 분산기로 패킷을 보낸 경우 부하 분산기가 그 패킷을 수신하고 분석하는 과정들을 나타낸 것이다.FIG. 5A illustrates a process in which the load balancer receives and analyzes the packet when the packet is sent from the outside to the load balancer.

단계 1: 외부에서 부하 분산기로 패킷을 보내게 되면, 부하 분산기는 들어온 패킷의 목적지 어드레스가 가상 IP인가 혹은 소스 어드레스가 부하 분산기에 등록되어 있는 웹서버들 중의 하나인가 확인한다. 상기 부하 분산기에서 처리할 패킷은 클라이언트로부터 들어온 패킷과 부하 분산기에 등록되어 있는 웹서버들 중 하나로부터 들어온 패킷이다. 그리고 클라이언트로부터 들어온 모든 패킷은 일련의 처리단계를 거치기 위해서는 반드시 목적지 어드레스가 가상 IP이어야만 하고 웹서버로부터 들어온 패킷의 소스 어드레스는 부하 분산기에 등록되어 있는 웹서버들 중 하나를 가지고 있어야만 한다. 그러므로 만약 상기 조건에 만족되면 단계 3으로 진행하고, 만족되지 않으면 단계 2로 진행한다.Step 1: When sending a packet to the load balancer from outside, the load balancer checks whether the destination address of the incoming packet is a virtual IP or the source address is one of the web servers registered with the load balancer. The packet to be processed by the load balancer is a packet from one of a client and a web server registered with the load balancer. All packets coming from the client must go through a series of processing steps and the destination address must be a virtual IP and the source address of the packets coming from the web server must have one of the web servers registered in the load balancer. Therefore, if the condition is satisfied, the process proceeds to step 3, and if not, the process proceeds to step 2.

단계 2: 적절하지 않은 패킷이 들어온 것이므로 부하 분산기로 들어온 패킷을 무시한다.Step 2: Ignore the packets that came into the load balancer because they did not contain the proper packets.

단계 3: 들어온 패킷의 소스 어드레스가 부하 분산기에 등록되어 있는 웹서버들 중 하나인가 확인한다. 만일 들어온 패킷의 소스 어드레스가 부하 분산기에 등록되어 있는 웹서버들 중 하나이면 제7단계로 진행하고, 그렇지 않으면 클라이언트로부터 들어온 것이므로 단계 4로 진행한다.Step 3: Verify that the source address of the incoming packet is one of the web servers registered with the load balancer. If the source address of the incoming packet is one of the web servers registered in the load balancer, the flow proceeds to step 7; otherwise, the flow proceeds to step 4 since the incoming address is from the client.

단계 4: 제1변수 FromServer를 '0'으로 설정하여 클라이언트로부터 들어온 패킷임을 표시한다.Step 4: Set the first variable FromServer to '0' to indicate that the packet is from a client.

단계 5: 현재 웹 서비스 요구 패킷을 보낸 클라이언트가 부하 분산기의 클라이언트 테이블(table)에 등록되어 있는지 확인한다. 만약 등록되어 있으면 단계 8로 진행되고, 그렇지 않으면 단계 6으로 진행한다.Step 5: Verify that the client that sent the current web service request packet is registered in the load balancer's client table. If so, go to step 8; otherwise, go to step 6.

단계 6: 클라이언트로부터 처음 패킷을 받았다는 의미로 클라이언트 상태(status)를 '1'로 설정하고, 그 클라이언트를 부하 분산기의 클라이언트 테이블에 등록한다.Step 6: Set the client status to '1', meaning that it received the first packet from the client, and register the client in the load balancer's client table.

단계 7: 패킷을 보낸 웹서버가 부하 분산기의 웹서버 테이블에 등록된 것이므로, 상기 제1변수 FromServer를 '1'로 설정하고 단계 8로 진행된다.Step 7: Since the web server that sent the packet is registered in the web server table of the load balancer, the first variable FromServer is set to '1' and the process proceeds to step 8.

단계 8: 제1변수 FromServer의 값이 1인지 여부를 확인한다. 이때 만약 상기 제1변수 FromServer의 값이 '1'이면 현재 들어온 패킷이 웹서버로부터 들어왔음을 의미하므로 단계 10으로 진행하고, 그렇지 않으면 클라이언트로부터 패킷이 온 것이므로 단계 9로 진행한다.Step 8: Check whether the value of the first variable FromServer is 1 or not. In this case, if the value of the first variable FromServer is '1', it means that the current packet comes from the web server, and so the process proceeds to step 10. Otherwise, the packet is from the client.

단계 9: 해당 클라이언트의 클라이언트 상태값을 비교한다. 클라이언트 상태값이 '1'이면 단계 33으로 진행하고, '2'이면 단계 40으로, '3'이면 단계 43으로 마지막으로 '4'이면 단계 53으로 진행된다.Step 9: Compare the client status values for that client. If the client status value is '1', the process proceeds to step 33; if '2' proceeds to step 40; if '3', then proceeds to step 43;

도 5b는 상기 도 5a에서의 분석 결과, 부하 분산기에 수신된 패킷이 웹서버로부터 전송된 것일 경우 그 처리 과정들을 나타낸 것이다.FIG. 5B illustrates the processing when the packet received in the load balancer is transmitted from the web server as a result of the analysis in FIG. 5A.

단계 10: 패킷이 웹서버로부터 들어온 상태에서 클라이언트 상태값을 확인한다. 웹서버가 패킷을 보내오는 경우는 반드시 클라이언트 상태 '2'보다 큰 값일 경우이다. 만약, '1', '2'이면 단계 11로 진행된다. 그렇지 않고, 클라이언트 상태가 '3'이면 단계 12로 진행하고, '4'이면 단계 19로 진행한다.Step 10: Check the client status with the packet coming from the web server. If the web server sends a packet, the value must be greater than '2'. If '1', '2' proceeds to step 11. Otherwise, if the client state is '3', the process proceeds to step 12; if '4', the process proceeds to step 19.

단계 11: 클라이언트 상태가 '1', '2'인 상태에서 웹서버로부터 패킷을 받은 것이므로 해당 패킷을 무시한다.Step 11: Since the packet is received from the web server with the client status '1' or '2', the packet is ignored.

단계 12: 현재 웹서버가 보낸 패킷의 내용이 'SYN / ACK'인지 확인한다. 만약, 맞으면 단계 13으로 진행되고 그렇지 않으면, 단계 17로 진행된다.Step 12: Check whether the content of the packet sent by the current web server is 'SYN / ACK'. If yes, go to Step 13; otherwise, go to Step 17.

단계 13: 현재 클라이언트 상태를 '4'로 설정한다.Step 13: Set the current client state to '4'.

단계 14: 웹서버로부터 들어온 패킷에 대한 부하 분산기 내에 있는 NAT 테이블을 참조하여 원래 웹 서비스 요구 패킷을 보낸 클라이언트의 IP 어드레스를 찾아낸다.Step 14: Look up the NAT table in the load balancer for packets coming from the web server to find the IP address of the client that sent the original web service request packet.

단계 15: ACK를 웹서버로 보내기 위한 패킷을 새로 만들고, 단계 14에서 찾아낸 클라이언트의 IP 어드레스를 소스 어드레스에 설정하여 패킷을 웹서버로 전송한다.Step 15: Create a new packet for sending an ACK to the web server, and set the IP address of the client found in step 14 to the source address to send the packet to the web server.

단계 16: 클라이언트의 원래 웹 서비스 요구 패킷(PUSH)을 웹서버로 전송한다.Step 16: Send the client's original web service request packet (PUSH) to the web server.

단계 17: 웹서버로부터 받은 패킷의 내용이 'SYN / ACK'가 아닌 상태이다. 이런 경우는 비정상적인 것이므로 해당 클라이언트와 연결되어 있는 웹서버들과의 접속과 해당 클라이언트와의 접속을 리셋시킨다.Step 17: The content of the packet received from the web server is not 'SYN / ACK'. In this case, because it is abnormal, the connection with the web servers connected with the client and the connection with the client are reset.

단계 18: 부하 분산기내의 클라이언트 테이블에서 리셋시킨 클라이언트를 삭제하고, 연결되어 있는 웹서버들 중에서 다른 클라이언트에게 영향을 주지 않는 범위(그 웹서버에 다른 클라이언트가 접속중일 수도 있기 때문이다.) 내에서 웹서버들을 웹서버 테이블에서 삭제한다.Step 18: Delete the reset client from the client table in the load balancer, and within the bounds of other connected web servers that do not affect other clients (because other clients may be connecting to that web server). Delete web servers from the web server table.

단계 19: 부하 분산기가 웹서버로부터 패킷을 받았고, 현재 클라이언트 상태가 '4'인 상태이다. 이 단계에서는 현재 받은 패킷의 내용이 'FIN'인지 확인한다. 만약, 'FIN'이 아니면 단계 20으로 진행되고 그렇지 않으면, 단계 28로 진행된다.Step 19: The load balancer has received a packet from the web server and the current client state is '4'. In this step, check whether the contents of the packet currently received are 'FIN'. If it is not 'FIN', the process proceeds to step 20; otherwise, the process proceeds to step 28.

단계 20: 웹서버로부터 받은 패킷의 내용이 'ACK'인지 확인한다. 만약 맞으면, 단계 23으로 진행되고 그렇지 않으면, 단계 21로 진행된다.Step 20: Check whether the content of the packet received from the web server is 'ACK'. If yes, go to Step 23; otherwise, go to Step 21.

단계 21: 웹서버가 보낸 패킷이 클라이언트가 보낸 웹 서비스 요구에 대한 응답내용을 담은 패킷이므로, 단계 47에서 저장한 웹 서비스 요구 패킷의 소스 어드레스를 가상 IP 어드레스로 설정한 후 원본 응답 패킷의 내용을 새로운 패킷에 복사하고 단계 22로 진행된다.Step 21: Since the packet sent by the web server is a packet containing the response to the web service request sent by the client, the source address of the web service request packet stored in step 47 is set as the virtual IP address, and the contents of the original response packet are set. Copy to a new packet and proceed to step 22.

단계 22: 웹 서비스 요구 패킷을 보낸 클라이언트로 새로 만들어진 응답 패킷을 전송한다.Step 22: Send the newly created response packet to the client that sent the web service request packet.

단계 23: 웹서버로부터 받은 패킷의 내용이 'ACK'인 경우이다. 웹서버가 'ACK'를 전송하는 경우는 웹서버의 해당 접속이 타임아웃되어 웹서버가 'FIN'을 보내고, 이에 대한 'ACK / FIN'을 부하 분산기가 웹서버로 보낸 후, 다시 그 웹서버가 'ACK / FIN'에 대한 'ACK'를 보낸 것이다. 이런 경우, 부하 분산기에서는 현재 'ACK'를 보낸 웹서버가 클라이언트와 접속을 유지하고 있던 마지막 웹서버인가 확인한다. 만약, 마지막 웹서버였다면 단계 25로 진행하고 그렇지 않으면, 단계 24로 진행한다.Step 23: The content of the packet received from the web server is 'ACK'. When the web server sends an 'ACK', the web server's connection times out and the web server sends a 'FIN', and the 'ACK / FIN' is sent to the web server after the load balancer sends it to the web server. Will send 'ACK' for 'ACK / FIN'. In this case, the load balancer checks to see if the web server that sent the 'ACK' is the last web server to maintain a connection with the client. If it was the last web server, go to step 25; otherwise, go to step 24.

단계 24: 현재 'ACK'를 보낸 웹서버가 그 클라이언트와 접속을 유지하고 있던 마지막 웹서버가 아닌 경우이므로 부하 분산기와 상기 클라이언트 사이의 접속은 그대로 계속 유지되어야 한다. 그러므로 부하 분산기는 다른 클라이언트에게 영향을 주지 않는다면 상기 웹서버를 부하 분산기내의 웹서버 테이블에서 삭제한다.Step 24: Since the web server currently sending the 'ACK' is not the last web server maintaining the connection with the client, the connection between the load balancer and the client should remain intact. Therefore, the load balancer deletes the web server from the web server table in the load balancer unless it affects other clients.

단계 25: 웹서버가 보낸 'ACK'를 클라이언트로 전송하기 위해서 부하 분산기에 있는 NAT 테이블을 참조하여 패킷의 소스 어드레스를 가상 IP 어드레스로 설정한다.Step 25: Set the source address of the packet to the virtual IP address by referring to the NAT table in the load balancer to send the 'ACK' sent by the web server to the client.

단계 26: 해당 클라이언트로 웹서버로부터 받은 'ACK'를 전송한다.Step 26: Send an 'ACK' received from the web server to the client.

단계 27: 해당 클라이언트와 접속을 유지하고 있던 마지막 웹서버가 접속 종료를 요청한 경우이므로, 클라이언트를 부하 분산기내의 클라이언트 테이블에서 삭제하고 다른 클라이언트에게 영향을 주지 않는다면 'ACK'를 보낸 웹서버를 웹서버 테이블에서 삭제한다.Step 27: Since the last web server maintaining the connection with the client requested the termination of the connection, the client is deleted from the client table in the load balancer and the web server sending the 'ACK' is not affected if the other client is not affected. Delete from the table.

단계 28: 해당 클라이언트와 관련된 모든 정보를 정리한다.Step 28: Clean up all information related to the client.

단계 29: 웹서버로부터 'FIN'을 받은 경우이다. 현재 'FIN'을 전송한 웹서버가 클라이언트와 접속을 유지하고 있던 마지막 웹서버인가 확인한다. 만약, 마지막 웹서버였다면 단계 30으로 진행하고 그렇지 않으면, 단계 32로 진행한다.Step 29: Receive 'FIN' from web server. Check that the web server that sent the 'FIN' is the last web server to keep the client connected. If it was the last web server, go to step 30; otherwise, go to step 32.

단계 30: 웹서버로부터 받은 'FIN'을 클라이언트로 전송하기 위해서 부하 분산기의 NAT 테이블을 참조하여 패킷의 소스 어드레스를 가상 IP 어드레스로 설정한다.Step 30: In order to transmit the 'FIN' received from the web server to the client, set the source address of the packet to the virtual IP address by referring to the NAT table of the load balancer.

단계 31: 웹서버로부터 받은 'FIN'을 클라이언트로 전송한다.Step 31: Send 'FIN' received from the web server to the client.

단계 32': 웹서버로부터 받은 'FIN'이 최종 웹서버가 아닌 다른 웹서버로부터 들어온 경우이다. 이 경우 해당 웹서버로 'ACK / FIN'을 전송하기 위해 소스 어드레스를 가상 IP 어드레스로 설정한다.Step 32 ':' FIN 'received from a web server comes from a web server other than the final web server. In this case, the source address is set as a virtual IP address to send 'ACK / FIN' to the web server.

단계 32: 'FIN'을 보냈던 웹서버로 'ACK / FIN'을 전송한다.Step 32: Send 'ACK / FIN' to the web server that sent 'FIN'.

도 5c는 상기 도 5a에서의 분석 결과, 부하 분산기에 수신된 패킷이 클라이언트로부터 전송된 것일 경우 그 처리 과정들을 나타낸 것이다.FIG. 5C shows the processing when the packet received in the load balancer is transmitted from the client as a result of the analysis in FIG. 5A.

단계 33: 클라이언트가 부하 분산기와 접속을 맺기 위해서 처음으로 패킷을 보내온 경우이다. 이때, 패킷의 내용은 'SYN'이다. 제대로 'SYN'가 들어왔으면 단계 34로 진행하고, 그렇지 않으면 단계 38로 진행한다.Step 33: The client first sends a packet to establish a connection with a load balancer. At this time, the content of the packet is 'SYN'. If 'SYN' has been entered correctly proceed to step 34, otherwise proceed to step 38.

단계 34: 클라이언트로부터 제대로 'ACK'를 받았으므로, 클라이언트에 대한 세션(session)이 셋업 된다. 이때부터 부하 분산기에서는 상기 클라이언트에 대한 정보 관리를 시작한다.Step 34: Since the 'ACK' is properly received from the client, a session is established for the client. At this point, the load balancer starts managing information for the client.

단계 35: 클라이언트 상태를 '2'로 설정한다.Step 35: Set the client status to '2'.

단계 36: 클라이언트로부터 받은 'SYN'에 대한 응답을 위해서 새로운 패킷을 만들고, 부하 분산기내의 NAT 테이블에 현재 클라이언트에 대한 정보를 등록한 후, 소스 어드레스에 가상 IP를 설정한다.Step 36: Create a new packet to respond to the 'SYN' received from the client, register the information about the current client in the NAT table in the load balancer, and set the virtual IP at the source address.

단계 37: 'ACK'에 대한 응답으로 NAT를 거친 새로운 패킷의 내용을 'SYN / ACK'로 설정한 후, 패킷을 클라이언트로 전송한다. 이 내용에서 알 수 있듯이 클라이언트와 접속을 맺는 것은 실제 웹서버가 아니라 부하 분산기 이다. 이것을 가상 접속이라고 한다. 단계 37에서 가상 접속이 완료된 것이 아니라 가상 접속을 시도하는 단계이다.Step 37: Set the contents of the new packet passed through NAT as 'SYN / ACK' in response to the 'ACK', and transmit the packet to the client. As you can see, it is the load balancer, not the actual web server, that connects with the client. This is called a virtual connection. In step 37, the virtual connection is not completed but a virtual connection is attempted.

단계 38: 클라이언트로부터 처음으로 받은 패킷의 내용이 'ACK'가 아닌 경우이므로 잘못된 패킷을 받은 것이다. 따라서, 클라이언트와의 접속을 리셋시킨다.Step 38: Since the content of the first packet received from the client is not 'ACK', an invalid packet was received. Thus, the connection with the client is reset.

단계 39: 리셋된 클라이언트에 대한 정보를 부하 분산기내의 클라이언트 테이블에서 삭제한다.Step 39: Delete information about the reset client from the client table in the load balancer.

단계 40: 단계37에서 클라이언트로 보낸 'SYN/ACK'에 대한 응답으로 클라이언트가 'ACK'를 보낸 경우이다. 만약, 클라이언트가 정확히 'ACK'를 보냈다면 단계 41로 진행되고 그렇지 않으면, 단계 38로 진행된다.Step 40: When the client sends an 'ACK' in response to the 'SYN / ACK' sent to the client in step 37. If the client sent 'ACK' exactly, step 41 proceeds; otherwise, step 38 goes.

단계 41: 클라이언트로부터 단계 37에서 보낸 'SYN/ACK'에 대한 응답으로 'ACK'를 받았으므로 클라이언트와 부하 분산기간의 가상 접속이 이루어진 것이다.Step 41: Since the client receives an 'ACK' in response to the 'SYN / ACK' sent in step 37, the virtual connection of the load balancing period is established with the client.

단계 42: 가상 접속이 완성되었다는 의미에서 클라이언트 상태를 '3'으로 설정한다.Step 42: Set the client state to '3' in the sense that the virtual connection is completed.

단계 43: 클라이언트가 단계 38에서 보았듯이 'ACK'를 보낸 후에 이어서 실제 웹 서비스 요구 패킷(PUSH)을 보냈는가 확인하는 단계이다. 클라이언트는 'ACK'를 보낸 후 접속이 이루어진 것으로 생각하고 원하는 웹 서비스 요구(PUSH)를 보내온다. 보내온 내용이 웹 서비스 요구(PUSH)가 맞으면 단계 44로 진행되고, 아니면 단계 38로 진행된다.Step 43: After the client sends an 'ACK' as shown in step 38, it checks to see if it actually sent the actual web service request packet (PUSH). The client thinks that the connection is made after sending an 'ACK' and sends the desired web service request (PUSH). If the sent content matches the web service request (PUSH), the process proceeds to step 44; otherwise, the process proceeds to step 38.

단계 44: 클라이언트가 보낸 웹 서비스 요구 내용을 담고 있는 URL의 내용을 분석하여 부하 분산기 운용자가 설정한 규칙(예: 도 3a를 참조하면, 이미지 파일은 이미지서버로 전송하고 그외 파일은 텍스트서버로 전송하라는 규칙)에 패킷 내용을 적용시킬 준비를 한다.Step 44: Analyzes the contents of the URL containing the web service request sent by the client and sets the rules set by the load balancer operator (e.g., referring to FIG. 3A). The image file is transmitted to the image server and the other files are transmitted to the text server. To apply the contents of the packet.

단계 45: 단계 44에서 분석한 URL의 내용을 부하 분산기 운용자가 설정한 규칙과 비교하여 클라이언트가 요구한 내용을 서비스할 웹서버를 결정한다.Step 45: Compare the contents of the URL analyzed in Step 44 with the rules set by the load balancer operator to determine the web server to serve the contents requested by the client.

단계 46: 단계 45에서 결정된 웹서버가 부하 분산기내에 있는 클라이언트 테이블의 해당 클라이언트 정보들 즉, 클라이언트와 접속을 맺는 웹서버 정보에 등록되어 있는지 확인한다. 이 정보는 클라이언트로부터 웹 서비스 요구가 들어올 경우 CPR에 의해서 결정되어지는 웹서버가 새로운 웹서버일 경우 등록을 한다. 결정된 웹서버가 해당 클라이언트의 정보들 중에서 웹서버 정보에 등록되어 있다면 이미 부하 분산기와 결정된 웹서버간에 접속이 있는 것을 의미하고 이때는 새로 접속을 만들지 않는다. 만약 결정된 웹서버가 웹서버 정보에 없다면 새로 접속을 만들게 된다. 현재 결정된 웹서버가 등록되어 있으면 단계 50으로 진행되고 그렇지 않으면, 단계 47로 진행된다.Step 46: Check if the web server determined in step 45 is registered in the corresponding client information of the client table in the load balancer, that is, the web server information making a connection with the client. This information is registered when the web server determined by CPR is a new web server when a web service request comes from a client. If the determined web server is registered in the web server information among the client information, it means that there is already a connection between the load balancer and the determined web server. In this case, no new connection is made. If the determined web server is not in the web server information, a new connection is made. If the currently determined web server is registered, the process proceeds to step 50; otherwise, the process proceeds to step 47.

단계 47: CPR에 의해서 결정된 웹서버가 클라이언트의 웹서버 정보에 없으므로 웹서버 정보에 현재의 웹서버를 등록한다.Step 47: Since the web server determined by the CPR is not in the client's web server information, register the current web server in the web server information.

단계 48: 분산기와 새로운 웹서버 사이에 접속을 맺기 위해 새로운 패킷을 만들고, 소스 어드레스를 클라이언트 IP 어드레스로 하여 그 내용에 'ACK'를 설정하고 웹서버로 패킷을 전송한다.Step 48: Create a new packet to establish a connection between the distributor and the new web server, set 'ACK' to its content with the source address as the client IP address and send the packet to the web server.

단계 49: 클라이언트가 보낸 웹 서비스 요구 패킷을 부하 분산기내에 저장을 한다.Step 49: Store the web service request packet sent by the client in the load balancer.

단계 50: CPR에 의해 결정된 웹서버가 클라이언트의 웹서버 정보에 이미 등록되어 있는 경우이다. 이것은 부하 분산기와 웹서버간에 이미 접속이 설정되어 있는 상태이므로 별도로 접속을 만드는 단계를 거치지 않고 기존의 접속을 이용하여 패킷을 전송할 수 있음을 의미한다. 따라서, 현재 패킷의 목적지 어드레스를 결정된 웹서버의 IP 어드레스로 설정한다.Step 50: The web server determined by the CPR is already registered in the client's web server information. This means that the connection is already established between the load balancer and the web server, so that the packet can be transmitted using the existing connection without going through the step of making a separate connection. Therefore, the destination address of the current packet is set to the determined IP address of the web server.

단계 51: 클라이언트로부터 받은 웹 서비스 요구 패킷(PUSH)을 결정된 웹서버로 전송한다.Step 51: Send a web service request packet (PUSH) received from the client to the determined web server.

단계 52: 웹서버로 웹 서비스 요구 패킷을 보냈다는 의미로 클라이언트 상태를 '4'로 설정한다.Step 52: Set the client state to '4' indicating that the web service request packet is sent to the web server.

단계 53: 클라이언트가 보낸 정보의 내용이 'ACK / FIN'인지 확인하는 단계이다. 현재 클라이언트 상태가 '4'이므로 웹 서비스 요구 패킷을 웹서버로 전송했거나, 그에 대한 응답을 클라이언트가 받은 상태이다. 따라서, 그 내용이 'ACK / FIN'이라면 클라이언트가 더 이상의 웹 서비스 요구를 보내지 않아서 웹서버의 접속 타이머가 타임아웃되어 종료를 원한다는 의미로 'FIN'을 클라이언트로 보내는데, 이에 대해 동의했다는 의미로 클라이언트가 'ACK / FIN'을 보낸 것이다. 이럴 경우에는 단계 54로 진행된다. 그러나, 클라이언트가 보낸 내용이 'ACK / FIN'이 아니라면 그 내용은 새로운 웹 서비스 요구 패킷이 될 것이다. 이 경우에는 단계 56으로 진행된다.Step 53: Check whether the content of the information sent from the client is 'ACK / FIN'. Since the current client status is '4', the web service request packet has been sent to the web server or the client has received a response. Therefore, if the content is 'ACK / FIN', it sends 'FIN' to the client, meaning that the client does not send any more web service requests and the connection timer of the web server times out and wants to terminate. Will send 'ACK / FIN'. In this case, step 54 is reached. However, if the message sent by the client is not 'ACK / FIN', it will be a new web service request packet. In this case, step 56 is reached.

단계 54: 클라이언트 또한 웹서버가 보낸 접속 종료 요청에 동의를 한 것이므로, ' ACK / FIN'을 웹서버로 보내기 위해서 패킷의 목적지 어드레스를 실제 웹서버의 IP 어드레스로 설정한다.Step 54: Since the client has also agreed to the connection termination request sent by the web server, set the destination address of the packet to the IP address of the actual web server in order to send 'ACK / FIN' to the web server.

단계 55: 클라이언트로부터 받은 'ACK / FIN'을 웹서버로 전송하는 단계이다.Step 55: Transmit 'ACK / FIN' received from the client to the web server.

단계 56: 클라이언트 상태가 '4'인 상태에서 클라이언트가 보낸 내용이 'ACK / FIN'이 아니므로 클라이언트가 새로운 웹 서비스 요구 패킷을 보낸 것이다. 따라서, 클라이언트와 가상 접속만 이루어진 상태와 같으므로 클라이언트 상태를 '3'으로 설정하고 단계 43으로 진행된다.Step 56: The client sends a new web service request packet because the content sent by the client is not 'ACK / FIN' with the client status '4'. Therefore, since only the virtual connection with the client is made, the client state is set to '3' and the process proceeds to step 43.

부연하면, 전술한 도 4a∼도 4c의 각 과정은 상기한 도 5a∼도 5c에 의거 다음과 같은 순서로 실시된다.Incidentally, the above-described processes of FIGS. 4A to 4C are performed in the following order based on FIGS. 5A to 5C described above.

세션 시작 과정: 1→3→4→5→6→8→9→33→34→35.Session start process: 1 → 3 → 4 → 5 → 6 → 8 → 9 → 33 → 34 → 35.

가상 접속 과정: 36→37→1→3→4→5→8→9→40→41→42.Virtual connection process: 36 → 37 → 1 → 3 → 4 → 5 → 8 → 9 → 40 → 41 → 42.

클라이언트와 웹서버 1 연결 과정: 1→3→4→5→8→9→43→44→45→46→47→ 48→49→1→3→7→8→10→12→13→14→15→16.Client and web server 1 connection process: 1 → 3 → 4 → 5 → 8 → 9 → 43 → 44 → 45 → 46 → 47 → 48 → 49 → 1 → 3 → 7 → 8 → 10 → 12 → 13 → 14 → 15 → 16.

제1세션 완성 과정: 1→3→7→8→10→19→20→21→22.Session 1 is completed: 1 → 3 → 7 → 8 → 10 → 19 → 20 → 21 → 22.

클라이언트와 웹서버 2 연결 과정: 1→3→4→5→8→9→53→56→43→44→45Client and Web Server 2 connection process: 1 → 3 → 4 → 5 → 8 → 9 → 53 → 56 → 43 → 44 → 45

→46→47→48→49→1→3→7→8→10→12→13→14→15→16.→ 46 → 47 → 48 → 49 → 1 → 3 → 7 → 8 → 10 → 12 → 13 → 14 → 15 → 16.

제2세션 완성 과정: 1→3→7→8→10→19→20→21→22.Session 2 completed: 1 → 3 → 7 → 8 → 10 → 19 → 20 → 21 → 22.

제3세션 완성 과정: 1→3→4→5→8→9→53→56→43→44→45→46→50→51→52 →1→3→7→8→10→19→20→21→22.Session 3 completed: 1 → 3 → 4 → 5 → 8 → 9 → 53 → 56 → 43 → 44 → 45 → 46 → 50 → 51 → 52 → 1 → 3 → 7 → 8 → 10 → 19 → 20 → 21 → 22.

부하 분산기가 웹서버 1과의 지속적 연결을 끊는 과정: 1→3→7→8→10→19 →29→32→1→3→7→8→10→19→20→23→24.The process by which the load balancer disconnects the persistent connection with Web Server 1: 1 → 3 → 7 → 8 → 10 → 19 → 29 → 32 → 1 → 3 → 7 → 8 → 10 → 19 → 20 → 23 → 24.

웹서버로부터 전달된 종료메시지(FIN)를 수신한 부하 분산기가 그때까지 유지하고 있던 클라이언트와의 지속적 연결을 끊는 세션 종료 과정: 1→3→7→8→10 →19→29→30→31→1→3→4→5→8→9→53→54→55→1→3 →7→8→10→19→20→23→25→26→27→28.Session termination process where the load balancer receiving the end message (FIN) sent from the web server disconnects the persistent connection with the client that has been maintained until then: 1 → 3 → 7 → 8 → 10 → 19 → 29 → 30 → 31 → 1 → 3 → 4 → 5 → 8 → 9 → 53 → 54 → 55 → 1 → 3 → 7 → 8 → 10 → 19 → 20 → 23 → 25 → 26 → 27 → 28.

한편, 운영자가 CPR에 사용될 특정 객체들과 그 특정 객체를 담고 있는 패킷을 처리할 웹서버를 임의로 지정할 수 있다. 또한 특정 객체의 범위를 최대한 확장하여 확장자와 디렉토리(directory)를 모두 선택할 수 있으며, 특별한 경우를 위한 예외(exception) 항목을 두어 확장자나 디렉토리에서 설정할 수 없는 특정 객체를 선택할 수 있고, 운영자가 설정한 정책에 대해서 논리곱(AND)/논리합(OR) 연산기능을 두어 선택 조건의 선택을 폭을 넓힐 수도 있다.On the other hand, the operator can arbitrarily designate specific objects to be used for CPR and a web server to process packets containing the specific objects. In addition, you can select both the extension and directory by extending the scope of a specific object as much as possible. You can select specific objects that cannot be set in the extension or directory by setting exceptions for special cases. An AND / OR logic function may be provided for the policy to further expand the selection of the selection condition.

다른 한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.On the other hand, in the detailed description of the present invention has been described with respect to specific embodiments, various modifications are possible without departing from the scope of the invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the scope of the following claims, but also by the equivalents of the claims.

상술한 바와 같이 부하 분산기의 지속적 연결 상태에서 내용기반 정책 라우팅 방법을 이용하면 지속적 연결 상태를 지원함으로써 얻을 수 있는 효과인 보다 빠른 웹 서비스의 제공과 CPR 기능을 제공함으로써 얻을 수 있는 효과인 운용자가 보다 원활한 서버 운영 규칙을 수립할 수 있다는 점과 여러 대의 서버들에 동일한 서비스 내용을 저장함으로써 발생했던 자원의 비효율 문제를 해결주는 효과를 동시에 얻을 수 있다. 또한 파급기술인 리다이렉팅(redirecting) 기법에 의해 네트워크 서버의 과부하로 인해 고가의 서버를 추가 구입해야 하는 문제를 여러 대의 저가 서버들로 분산처리 함으로써 고성능의 네트워크 서버를 여러 대 사용할 때처럼 고품질의 네트워크 서비스를 제공할 수 있는 효과가 있다. 또 다른 파급기술인 고장감내(fault-tolerance) 기능에 의해 365일 24시간 지속적인 서비스를 제공할 수 있도록 해주는 장점도 있다.As described above, using the content-based policy routing method in the continuous connection state of the load balancer allows the operator, which is an effect that can be obtained by providing a faster web service and providing a CPR function, which is an effect obtained by supporting the persistent connection state. It is possible to establish smooth server operating rules and to simultaneously solve the problem of resource inefficiency caused by storing the same service content on multiple servers. In addition, by distributing the problem of additional expensive server due to overload of network server by spreading technology redirecting to several low-cost servers, high-quality network service like when using high-performance network server There is an effect that can provide. Another ripple technology, fault-tolerance, provides the ability to provide continuous service 24 hours a day, 365 days a year.

Claims (4)

웹사이트에서 다수의 클라이언트들과 다수의 웹서버들 사이에서 트래픽을 고려한 중계를 실시하는 부하 분산기에 있어서,In a load balancer that performs traffic relaying between multiple clients and multiple web servers in a website, 클라이언트 인터넷 프로토콜 어드레스, 클라이언트 포트번호 및 웹서버 포인터 등을 포함하는 클라이언트 정보를 이용하여 상기 클라이언트들을 등록하기 위한 클라이언트 테이블과,A client table for registering the clients using client information including a client internet protocol address, a client port number and a web server pointer; 웹서버 인터넷 프로토콜 어드레스, 웹서버 포트번호 및 클라이언트 포인터 등을 포함하는 웹서버 정보를 이용하여 상기 웹서버들을 등록하기 위한 웹서버 테이블을 구비하고,A web server table for registering the web servers using web server information including a web server internet protocol address, a web server port number, a client pointer, and the like, 상기 클라이언트 정보 혹은 상기 웹서버 정보를 참조하여 임의의 클라이언트 혹은 임의의 웹서버와의 접속 여부를 판단함을 특징으로 하는 부하 분산기.And determining whether to connect with any client or any web server by referring to the client information or the web server information. 웹사이트에서, 클라이언트 테이블 및 서버 테이블을 구비한 부하 분산기가 다수의 클라이언트들과 웹서버들 사이에서 자원기반 부하 분산기능을 클라이언트와 웹서버의 지속적 연결을 유지하면서 지원하기 위한 내용기반 정책 라우팅방법에 있어서,In a web site, a load balancer with client tables and server tables is a content-based policy routing method for supporting resource-based load balancing between multiple clients and web servers while maintaining a continuous connection between the client and the web server. In 클라이언트와 부하 분산기 사이에 가상 접속이 이루어진 상태에서 웹 서비스 요구 패킷의 유니폼 리소스 로케이터를 분석하여 운영자가 설정한 웹서버를 알아내어 그 웹서버와 접속한 다음 수신한 패킷을 전송하고 현재의 연결을 지속적으로 유지하기 위해 그 접속 정보를 상기 서버 테이블에 저장하는 초기 전송 과정과,While the virtual connection is established between the client and the load balancer, it analyzes the uniform resource locator of the web service request packet to find out the web server set by the operator, connects with the web server, transmits the received packet, and continues the current connection. An initial transmission process of storing the connection information in the server table in order to maintain 상기 가상 접속 상태에서 상기 클라이언트로부터 소정의 웹 서비스 요구 패킷이 다수 번째로 수신되면 그 패킷의 유니폼 리소스 로케이터를 분석하여 운영자가 설정한 웹서버를 알아내고, 해당 클라이언트의 서버 테이블을 검색하여 상기 알아낸 웹서버가 이전에 이미 서비스한 적이 있고 그 서비스후 현재까지 접속 상태를 유지하고 있는 웹서버인지 확인하는 과정과,When the predetermined web service request packet is received from the client a plurality of times in the virtual connection state, the uniform resource locator of the packet is analyzed to find a web server set by an operator, and the server table of the client is searched to find the web server. Check whether the web server has already been serviced before and remains connected to the server after the service; 상기 웹서버가 현재까지 접속 상태를 유지하고 있는 웹서버이면 그 접속을 재사용하여 바로 패킷을 전송하는 과정과,If the web server is a web server that maintains the connection state until now, the process of reusing the connection to send a packet immediately, 상기 웹서버가 최초로 서비스하거나 접속 상태가 유지되고 있지 않으면 새로 접속을 실시한 다음 패킷을 전송하는 과정으로 이루어짐을 특징으로 하는 방법.If the web server is the first service or the connection state is not maintained, the method comprising the step of performing a new connection and then transmitting a packet. 제2항에 있어서,The method of claim 2, 임의의 한 클라이언트와 상기 부하 분산기 사이에 초기 접속이 이루어지는 세션 시작 과정과,A session initiation process in which an initial connection is made between any one client and the load balancer, 상기 세션 시작후 상기 클라이언트와 부하 분산기 사이에 가상 접속이 이루어지는 가상 접속 과정을 더 포함함을 특징으로 하는 방법.And a virtual connection process in which a virtual connection is made between the client and the load balancer after starting the session. 제2항에 있어서,The method of claim 2, 임의의 웹서버로부터 종료 메시지를 수신하면 타임아웃 정보가 포함되어 있는지 여부를 체크하는 과정과,Receiving a termination message from a web server, checking whether timeout information is included; 타임아웃 정보가 포함되어 있지 않으면 해당 클라이언트와의 지속적 연결을 계속 유지하기 위해 상기 클라이언트에게는 상기 종료 메시지를 전송하지 않고 상기 서버에 응답만 하는 과정과,If the timeout information is not included, responding to the server without transmitting the termination message to the client to maintain a continuous connection with the client; 타임아웃 정보가 포함되어 있으면 상기 종료 메시지를 해당 클라이언트로 전달한 다음, 상기 클라이언트와의 지속적 연결을 끊는 과정을 더 포함함을 특징으로 하는 방법.If the timeout information is included, transmitting the termination message to the corresponding client, and then disconnecting the continuous connection with the client.
KR1019980047905A 1998-11-07 1998-11-07 Load balancer and content-based policy routing method thereof KR100268838B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980047905A KR100268838B1 (en) 1998-11-07 1998-11-07 Load balancer and content-based policy routing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980047905A KR100268838B1 (en) 1998-11-07 1998-11-07 Load balancer and content-based policy routing method thereof

Publications (2)

Publication Number Publication Date
KR20000000010A true KR20000000010A (en) 2000-01-15
KR100268838B1 KR100268838B1 (en) 2000-10-16

Family

ID=19557658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980047905A KR100268838B1 (en) 1998-11-07 1998-11-07 Load balancer and content-based policy routing method thereof

Country Status (1)

Country Link
KR (1) KR100268838B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020022923A (en) * 2000-09-21 2002-03-28 문홍주 Method for Database of a Load Balancing Equipment and Its System
KR20020022907A (en) * 2000-09-21 2002-03-28 문홍주 Method for Performance Improvement and High-speed Operation of a Load Balancing Equipment and Its System
KR100368108B1 (en) * 2000-07-13 2003-01-15 (주) 멀티웨이브 Load balancer
KR20030010409A (en) * 2001-07-27 2003-02-05 주식회사 트리플다이스 Multi Player Online Game system
KR100445738B1 (en) * 1999-03-31 2004-08-25 인터내셔널 비지네스 머신즈 코포레이션 Using virtual urls for load balancing
KR100869421B1 (en) * 2001-02-26 2008-11-24 아바야 커뮤니케이션 이스라엘 리미티드 Splicing persistent connections
CN113572828A (en) * 2021-07-13 2021-10-29 壹药网科技(上海)股份有限公司 System for improving client load balance based on URL grouping granularity

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010057769A (en) * 1999-12-23 2001-07-05 오길록 Method for load balancing of the homogeneous java application server using java servlet in the world wide web
US8239445B1 (en) * 2000-04-25 2012-08-07 International Business Machines Corporation URL-based sticky routing tokens using a server-side cookie jar
KR20020030952A (en) * 2000-10-19 2002-04-26 손창원 A Load Balancing Method for Application Services based on TCP Connection in the Clustered Internet Server Environment
KR100459951B1 (en) * 2000-11-04 2004-12-03 주식회사 다산네트웍스 Method and apparatus of server load balancing using MAC address translation

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100445738B1 (en) * 1999-03-31 2004-08-25 인터내셔널 비지네스 머신즈 코포레이션 Using virtual urls for load balancing
KR100368108B1 (en) * 2000-07-13 2003-01-15 (주) 멀티웨이브 Load balancer
KR20020022923A (en) * 2000-09-21 2002-03-28 문홍주 Method for Database of a Load Balancing Equipment and Its System
KR20020022907A (en) * 2000-09-21 2002-03-28 문홍주 Method for Performance Improvement and High-speed Operation of a Load Balancing Equipment and Its System
KR100869421B1 (en) * 2001-02-26 2008-11-24 아바야 커뮤니케이션 이스라엘 리미티드 Splicing persistent connections
KR20030010409A (en) * 2001-07-27 2003-02-05 주식회사 트리플다이스 Multi Player Online Game system
CN113572828A (en) * 2021-07-13 2021-10-29 壹药网科技(上海)股份有限公司 System for improving client load balance based on URL grouping granularity
CN113572828B (en) * 2021-07-13 2024-04-09 壹药网科技(上海)股份有限公司 System for improving client load balance based on URL grouping granularity

Also Published As

Publication number Publication date
KR100268838B1 (en) 2000-10-16

Similar Documents

Publication Publication Date Title
JP3875574B2 (en) Connection of persistent connection
US6622157B1 (en) Extending network services using mobile agents
US7103651B2 (en) Method and apparatus for discovering client proximity network sites
US7111006B2 (en) System and method for providing distributed database services
US8224986B1 (en) Methods and apparatus for redirecting requests for content
Apostolopoulos et al. Design, implementation and performance of a content-based switch
US6411986B1 (en) Internet client-server multiplexer
US7433958B2 (en) Packet relay processing apparatus
US8892768B2 (en) Load balancing apparatus and load balancing method
USRE44918E1 (en) Method and apparatus for equalizing load of streaming media server
US7624184B1 (en) Methods and apparatus for managing access to data through a network device
US20020049842A1 (en) Load balancing method and system
EP1244262B1 (en) Redirection of client requests
KR100268838B1 (en) Load balancer and content-based policy routing method thereof
US20030126198A1 (en) Method and apparatus for discovering client proximity using race type translations
JP2003108537A (en) Load dispersing method and system of service request to server on network
Kogias et al. Bypassing the load balancer without regrets
US7564848B2 (en) Method for the establishing of connections in a communication system
EP1327195A1 (en) Method and apparatus for dynamic determination of optimum connection of a client to content servers
CN108848175B (en) Method and device for establishing TCP connection
Gan et al. LSMAC: An improved load sharing network service dispatcher

Legal Events

Date Code Title Description
G15R Request for early opening
G15R Request for early opening
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20040719

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee