KR19980018141A - Gateways and Methods for Routing Incoming Messages Across Cluster Boundaries - Google Patents

Gateways and Methods for Routing Incoming Messages Across Cluster Boundaries Download PDF

Info

Publication number
KR19980018141A
KR19980018141A KR1019970025076A KR19970025076A KR19980018141A KR 19980018141 A KR19980018141 A KR 19980018141A KR 1019970025076 A KR1019970025076 A KR 1019970025076A KR 19970025076 A KR19970025076 A KR 19970025076A KR 19980018141 A KR19980018141 A KR 19980018141A
Authority
KR
South Korea
Prior art keywords
cluster
subset
message
node
boundary
Prior art date
Application number
KR1019970025076A
Other languages
Korean (ko)
Other versions
KR100255626B1 (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 포만 제프리 엘
Publication of KR19980018141A publication Critical patent/KR19980018141A/en
Application granted granted Critical
Publication of KR100255626B1 publication Critical patent/KR100255626B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Abstract

TCP 접속 라우터는, 캡슐화된 클러스터 각각을 다수의 가상 EC(VECs)로 분할하고, 구성가능한 정책(configurable policy)에 따라 현재의 서버 부하 메트릭(metrics)에 근거하여 VEC 내부의 착신 접속들을 동적으로 분배함으로써, 캡슐화된 클러스터들을 실행한다. 일 실시예에서, 접속 라우터는 클러스터의 동적 구성을 지원하여, VEC 클라이언트에 대해 인터럽트되지 않는 서비스를 제공하도록 투명하게 복구하는 것이 가능하다.The TCP connection router splits each encapsulated cluster into multiple virtual ECs (VECs) and dynamically distributes incoming connections within the VEC based on current server load metrics according to configurable policies. Thereby executing the encapsulated clusters. In one embodiment, the access router supports dynamic configuration of the cluster, making it possible to transparently recover to provide uninterrupted services for VEC clients.

Description

클러스터의 경계를 지나서 착신 메시지를 라우팅하는 방법 및 게이트웨이Gateways and Methods for Routing Incoming Messages Across Cluster Boundaries

본 발명은 네트워크화된 컴퓨터 처리에 관한 것으로, 더 구체적으로는, 일련의 원격 서비스를 지원하는 컴퓨터들의 클러스터화(clustering)에 관한 것이다.TECHNICAL FIELD The present invention relates to networked computer processing, and more particularly, to clustering of computers that support a series of remote services.

캡슐화된 클러스터(EC ; Encapsulated Cluster)는 일련의 서비스(예컨대, 웹 서비스, NFS 등)를 제공하는 다수의 서버 호스트와 접속 라우터(CR ; Connection Router) 노드를 갖는 것을 특징으로 한다. 캡슐화 및 클러스터화된 시스템의 일 예가 미국특허 제 5,371,852호에 METHOD AND APPARATUS FOR MAKING A CLUSTER OF COMPUTERS APPEAR AS A SINGLE HOST ON A COMPUTER NETWORK라는 제목으로 설명되어 있다.An encapsulated cluster (EC) is characterized by having a plurality of server hosts and connection router (CR) nodes that provide a set of services (eg, web services, NFS, etc.). An example of an encapsulated and clustered system is described in US Pat. No. 5,371,852 entitled METHOD AND APPARATUS FOR MAKING A CLUSTER OF COMPUTERS APPEAR AS A SINGLE HOST ON A COMPUTER NETWORK.

원격 클라이언트는 예를 들면 TCP/IP 프로토콜(예컨대 HTTP)을 이용하여 EC에게 서비스를 요구한다. 각각의 요구에 대한 서비스 시간은 서비스의 종류와, 해당 서버 어플리케이션의 이용 가능성에 따라 변한다. 그러므로, 접속들이 자연적으로 재빨리 한 곳에 편중되어 할당됨으로써, 이용가능한 EC 자원을 충분히 활용하지 못하게 되어, 요구에 대해 불필요한 지연을 초래한다.The remote client requests the service from the EC, for example using the TCP / IP protocol (eg HTTP). The service time for each request varies with the type of service and availability of the server application. Therefore, the connections are quickly and naturally allocated in one place, resulting in insufficient utilization of the available EC resources, resulting in unnecessary delays to the request.

종래 기술은 서버의 스케일링(scaling)과 관련하여 성능에 많은 문제가 있음을 보여준다. 예를 들면, NCSA's World Wide Web Server : Design and performance IEEE Computer, Volume 28, Number 11, November 1995, Pages 68-74를 참조하라. 웹(Web) 서버를 지원하기 위해 라운드 로빈(round-robin) DNS 즉, httpd 데몬(demons)을 이용하는 EC를 생각해보자. 서버는 http를 통해 비디오 스트림에 대한 액세스 서비스, 데이터베이스 조회 및, 정적인(static) 웹 페이지를 제공한다. 각종의 요구에 대한 서비스 시간은 제공되는 서비스의 종류와 관련된 실제 내용에 따라 광범위하게 변한다. 예를 들면, 복잡한 데이터베이스 조회는 사전 로드된(pre-loaded) 정적인 HTML 페이지를 제공하는 것보다 시간이 수십배 더 걸린다. 요구 처리 시간에 있어서의 이러한 불균형은 종종 서버 클러스터의 편중된 활용을 초래한다. 라운드 로빈 DNS와 관련된 문제는 콰(Kwa) 등에 의한 User Access Patterns to NCSA's Worldwide Web Server, Technical Report UIUCDSD-R-95-1394, Department of Computer Science, University of Illinois Urbana-Chapaign, Febrary 1995에 설명되어 있다.The prior art shows that there are many problems with performance in terms of scaling of servers. See, for example, NCSA's World Wide Web Server: Design and performance IEEE Computer, Volume 28, Number 11, November 1995, Pages 68-74. Consider an EC that uses round-robin DNS, or httpd daemons, to support a Web server. The server provides access services, database queries, and static web pages for the video stream over http. Service times for various needs vary widely depending on the actual content associated with the type of service provided. Complex database queries, for example, take tens of times longer than providing static HTML pages that are pre-loaded. This imbalance in demand processing time often results in unbalanced utilization of server clusters. Issues with round robin DNS are described in Kwa et al. In User Access Patterns to NCSA's Worldwide Web Server, Technical Report UIUCDSD-R-95-1394, Department of Computer Science, University of Illinois Urbana-Chapaign, Febrary 1995. .

종래의 기술은 자원을 동적으로 할당할 필요성이 있음을 보여준다. 예를 들면, 게르만 골드슈미트(German Goldszmit) 및 예치암 예메니(Yechiam Yemeni)에 의한 Evaluating Management Decisions via Delegation, The Third International Symposium on Integrated Network Management, San Francisco, CA, April 1993을 참조하라. EC는 통상적으로 호스트 집단(a collection of hosts)에 의한 단일 시스템 이미지(image)의 서비스 집단을 제공한다. 그러나 실제의 인스톨레이션(installations)에서는 서비스들이 특정한 사용자 정책(policy)에 따라 할당될 필요가 있으며, 이것은 동적일 수 있다. 예를 들면, 한 집단의 특정 호스트들이 상업적인 웹 서버의 안전한 거래를 위해 할당되고, 반면에 전용 하드웨어를 포함하는 다른 집단의 호스트들이 VOD(video on demand) 서비스를 지원할 수도 있다.The prior art demonstrates the need to dynamically allocate resources. See, for example, Evaluating Management Decisions via Delegation, The Third International Symposium on Integrated Network Management, San Francisco, CA, April 1993 by German Goldszmit and Yechiam Yemeni. The EC typically provides a collection of services of a single system image by a collection of hosts. In actual installations, however, services need to be assigned according to specific user policies, which can be dynamic. For example, one group of specific hosts may be allocated for the secure transaction of a commercial web server, while another group of hosts, including dedicated hardware, may support video on demand (VOD) services.

본 발명의 목적은 캡슐화된 클러스터의 전체 처리량을 개선하는 것이다.It is an object of the present invention to improve the overall throughput of encapsulated clusters.

본 발명의 다른 목적은 원격 서비스 요구의 전체적인 지연(aggregate delay)을 줄이는 것이다.Another object of the invention is to reduce the aggregate delay of remote service requests.

본 발명의 또다른 목적은, 접속 라우터가 오류로 동작하는 동안 네트워크 클라이언트가 서비스의 인터럽트를 경험하지 않도록 노드를 설계하는 수단을 제공하는 것이다.Another object of the present invention is to provide a means for designing a node such that a network client does not experience interruption of service while the access router is operating in error.

본 발명의 제 1 양상에 따르면, 캡슐화된 클러스터(EC)는 게이트웨이(Gateway) 노드와 서버 호스트를 구비하는 것을 특징으로 한다. 게이트웨이 노드는 (1) EC를 다수의 가상(virtual) EC(VECs)로 나누고, (2) 구성가능한 정책에 따라 현재의 서버 부하 메트릭(metrics)에 근거하여 VEC의 범위내에서 착신 접속을 동적으로 분배하며, (3) 클러스터의 동적 구성을 지원한다.According to a first aspect of the invention, the encapsulated cluster (EC) is characterized by having a gateway node and a server host. The gateway node can (1) divide the EC into multiple virtual ECs (VECs) and (2) dynamically establish incoming connections within the scope of the VEC based on current server load metrics according to configurable policies. (3) support dynamic configuration of clusters.

본 발명의 제 2 양상에 따르면, 클라이언트에 대해 인터럽트되지 않은 서비스를 제공하도록 게이트웨이 노드의 오류를 투명하게 복구할 수 있는 시스템 및 방법이 제공된다. 이 방법에 따르면, 클러스터 또는 VEC 내의 각각의 노드는 게이트웨이가 갖고 있는 상태 정보의 일부분을 복사하여 보유한다. 게이트웨이에 오류가 발생하면, 이 상태 정보는 백업 게이트웨이(backup gateway)로 전송된다.According to a second aspect of the present invention, a system and method are provided that can transparently recover from a failure of a gateway node to provide an uninterrupted service to a client. According to this method, each node in the cluster or VEC copies and holds a portion of the state information held by the gateway. If an error occurs in the gateway, this status information is sent to the backup gateway.

바람직한 실시예에서, EC는 (1) 단일 VEC(모든 원격 클라이언트에 대해 단일 IP 어드레스)처럼 보이거나, 또는 (2) 다중 VEC(즉, 다수의 단축형 IP 어드레스들)처럼 보일 수 있다. TCP-CR 노드는 이러한 다수의 IP 어드레스들을 소유하며, 이들에 대한 모든 TCP-CR 접속 요구들을 수신한다. 각각의 IP 어드레스는 VEC와 관련된다. TCP-CR은 VEC와 관련된 가중치에 따라 각각의 VEC 내부 호스트들에 대해 새로운 TCP 접속들을 분배한다. TCP-CR은 동적 구성(dynamic configuration)을 지원하여, VEC들의 동적 정의(dynamic definition)와, VEC와 관련된 가중치의 동적 구성과, VEC들의 자동 혹은 수동 관리(즉, 호스트, 서비스 등의 부가 또는 제거)를 허용한다. 이러한 해결책은 동적인 구성과 관련하여 서버 호스트를 부가 또는 제거하는 것을 가능하게 하면서도 네트워크에 저장된 서버명과 문제를 일으키지 않는다.In a preferred embodiment, the EC may look like (1) a single VEC (single IP address for all remote clients) or (2) multiple VECs (ie, multiple short IP addresses). The TCP-CR node owns these multiple IP addresses and receives all TCP-CR connection requests for them. Each IP address is associated with a VEC. TCP-CR distributes new TCP connections for each VEC internal hosts according to the weight associated with the VEC. TCP-CR supports dynamic configuration, allowing dynamic definition of VECs, dynamic configuration of weights associated with VECs, and automatic or manual management of VECs (ie, the addition or removal of hosts, services, etc.). Is allowed. This solution makes it possible to add or remove server hosts with respect to dynamic configuration, but without causing problems with server names stored on the network.

도 1은 종래의 캡슐화된 클러스터 시스템을 도시하는 도면1 illustrates a conventional encapsulated cluster system.

도 2는 종래의 메시지 스위치를 도시하는 도면2 illustrates a conventional message switch.

도 3은 본 발명의 일 실시예에 따라 가상 캡슐화된 클러스터 시스템을 도시하는 도면3 illustrates a virtually encapsulated cluster system in accordance with one embodiment of the present invention.

도 4는 본 발명의 다른 실시예에 따라 가상 캡슐화된 클러스터 시스템을 도시하는 도면4 illustrates a virtually encapsulated cluster system according to another embodiment of the invention.

도 5는 도 3 및 도 4의 집행자(executor)의 상세도5 is a detailed view of the executor of FIGS. 3 and 4;

도 6은 도 3 및 도 4의 매니저(manager)의 상세도FIG. 6 is a detailed view of the manager of FIGS. 3 and 4.

도 7a 내지 도 7c는 집행자의 순서도7A-7C are flowcharts of an executive

도 8은 집행자의 데이터 구조를 도시하는 도면8 illustrates a data structure of an executive

도 9는 매니저의 순서도9 is a flowchart of a manager

도 10은 본 발명의 일 실시예에 따라 고효율 게이트웨이를 갖는 클러스터를 도시하는 도면10 illustrates a cluster with a high efficiency gateway in accordance with one embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

105 내지 108 : 컴퓨터 노드109 : 게이트웨이105 to 108: computer node 109: gateway

110 : 상호 접속부130 : 원격 호스트110: interconnect 130: remote host

300 : TCP 접속 라우터310 : VEC 라우터300: TCP connection router 310: VEC router

320 : 매니저340 : 실행자320: manager 340: executor

1. 개론Introduction

본 발명의 가상 캡슐화된(virtual encapsulated) 클러스터 시스템은 미국특허 제 5,371,852호에 개시된 시스템을 개량하여 구현한 것이다. METHOD AND APPARATUS FOR MAKING A CLUSTER OF COMPUTERS AS A SINGLE HOST ON A NETWORK라는 명칭의 미국 특허 제 5,371,852호(1992년 10월 14일자 출원, S/N 제 960,742호)는 이하에 자세히 기록된 것처럼 본 명세서에서 전체로서 참조로 인용된다. 도 1은 미국특허 제 5,371,852호의 캡슐화된 클러스터의 일 실시예를 도시한다. 미국특허 제 5,371,852호의 시스템과 마찬가지로 본 발명의 시스템도 컴퓨터 클러스터의 경계(boundary)를 가로지르는 TCP 정보를 라우팅(routing)한다. 이 정보는 포트 유형(type) 메시지의 형태이다. 착신 메시지는 라우팅되고, 서버는 각각의 클러스터가 외부 호스트에 대해 마치 하나의 컴퓨터처럼 보이도록 응답한다. 본 발명의 시스템에서 하나의 클러스터는 다수의 가상 클러스터(가상 캡슐화된 클러스터)로 분할된다. 가상 캡슐화된 클러스터의 각각은 네트워크상에서 클러스터의 외부에 있는 다른 호스트들에 대해 단일 호스트처럼 보인다. 메시지들은 가상 캡슐화된 클러스터 각각의 구성원들에게 라우팅되어, 클러스터 노드의 집합간에 부하의 평형이 유지되도록 만든다.The virtual encapsulated cluster system of the present invention is an implementation of the system disclosed in US Pat. No. 5,371,852. US Patent No. 5,371,852, filed Oct. 14, 1992, S / N 960,742, entitled METHOD AND APPARATUS FOR MAKING A CLUSTER OF COMPUTERS AS A SINGLE HOST ON A NETWORK, is hereby incorporated by reference herein. It is incorporated by reference in its entirety. 1 illustrates one embodiment of an encapsulated cluster of US Pat. No. 5,371,852. Like the system of US Pat. No. 5,371,852, the system of the present invention routes TCP information across the boundary of a computer cluster. This information is in the form of a port type message. Incoming messages are routed, and the server responds with each cluster looking like a computer to the foreign host. In the system of the present invention, one cluster is divided into a plurality of virtual clusters (virtually encapsulated clusters). Each of the virtual encapsulated clusters looks like a single host to other hosts outside of the cluster on the network. The messages are routed to the members of each virtual encapsulated cluster, ensuring that the load is balanced among a set of cluster nodes.

도 3은 TCP 계열의 프로토콜용 접속 라우터 즉, TCP 접속 라우터(TCP-CR)(300)의 일 실시예를 도시한다. 이 장치는 상호 접속부(110)로 불리는 통신 링크에 의해 서로 접속되어 클러스터를 형성하는 두 개 이상의 컴퓨터 노드(105-109)를 포함한다. (본 발명의 일 실시예에서는 상호 접속부가 네트워크일 수 있음을 유의하기 바란다.) 클러스터내의 컴퓨터들중 하나는 게이트웨이(109)의 역할을 수행하며, 네트워크(120)라고 불리우는 다른 통신 링크를 통해 하나 이상의 외부 컴퓨터나 클러스터(즉, 호스트들)에 접속된다. 게이트웨이는 하나 이상의 네트워크에 접속될 수 있고, 클러스터내의 하나 이상의 노드들이 게이트웨이가 될 수 있다. 네트워크에 대한 각각의 게이트웨이 접속 즉, 경계(boundary)는 네트워크상에서 다수의 어드레스를 가질 수 있다. 각각의 게이트웨이는 TCP 접속 라우터(TCP-CR)를 가지며, TCP 접속 라우터(TCP-CR)는 매니저(320)와, 실행자(340)와, 선택 사양인 복구 매니저(Recovery Manager)(도 10 참조)로 구성된다. 매니저는 실행자(Excutor)에게 커맨드 요구들(344)을 보내고 그 응답들(346)을 평가함으로써 라우팅을 제어한다. 실행자는 미국특허 제 5,371,852호에 개시된 것과 비슷한 메시지 스위치(140)와 VEC 라우터(310)로 이루어진다.3 illustrates an embodiment of a TCP-based protocol connection router, that is, a TCP-connection router (TCP-CR) 300. The apparatus includes two or more computer nodes 105-109 connected to each other by a communication link called interconnect 110 to form a cluster. (Note that in one embodiment of the present invention the interconnect may be a network.) One of the computers in the cluster acts as a gateway 109, one over another communication link called the network 120. It is connected to the above external computer or cluster (ie hosts). The gateway may be connected to one or more networks, and one or more nodes in the cluster may be gateways. Each gateway connection, or boundary, to the network may have multiple addresses on the network. Each gateway has a TCP connection router (TCP-CR), which has a manager 320, an executor 340, and an optional recovery manager (see FIG. 10). It consists of. The manager controls routing by sending command requests 344 to the executioner and evaluating the responses 346. The implementer consists of a message switch 140 and a VEC router 310 similar to that disclosed in US Pat. No. 5,371,852.

도 4는 본 발명의 다른 실시예를 도시한다. 전술한 바람직한 실시예의 경우처럼, 클러스터의 노드(107)는 클라이언트(130)에게 곧장 그들의 응답을 통신한다. 그러나, 본 발명의 다른 실시예에서는 도 3에 도시된 것과 같은 전용의 상호 접속부(110)가 존재하지 않으며, 모든 클러스터 노드들은 외부 네트워크(120)에 의해 접속된다. TCP 접속 라우터는 전술한 바람직한 실시예의 것과 동일한 것이다. 예시한 요구(348)는 클라이언트(130)로부터 게이트웨이(109)를 통해서 외부 네트워크(120)를 경유해 클러스터 노드(107)로 간다. 그에 대응하는 응답(350)은 노드(107)로부터 외부 네트워크(120)를 경유해 클라이언트(130)로 곧장 보내진다.4 illustrates another embodiment of the present invention. As in the case of the preferred embodiment described above, the nodes 107 of the cluster communicate their responses directly to the client 130. However, in another embodiment of the present invention, there is no dedicated interconnect 110 as shown in FIG. 3, and all cluster nodes are connected by an external network 120. The TCP connection router is the same as that of the preferred embodiment described above. The illustrated request 348 goes from the client 130 to the cluster node 107 via the gateway 109 via the external network 120. The corresponding response 350 is sent straight from the node 107 to the client 130 via the external network 120.

매니저(320)의 구성요소는 접속 할당 정책을 구현하고, 가상 캡슐화된 클러스터의 동적 구성을 가능하게 한다. 매니저는 동적 피드백 제어 루프를 통해 각각의 캡슐화된 클러스터의 구성원들에 대한 현재의 부하를 모니터 및 평가한다. 매니저는 접속 할당 정책을 구현함으로써, 착신 접속을 가상 캡슐화된 클러스터 서버들의 전역에 지능적으로 분배하여 클라이언트 요구에 대한 서비스 속도를 증가시킨다. 클러스터 관리자(administrators)에 의해 구성될 수 있는 매니저 알고리즘을 통해 새로운 가중치 배정(new weight assignments)이 계산된다. 이러한 가중치 배정에 대한 판정 알고리즘의 입력에는 평가된 부하 메트릭과, 관리자에 의해 구성가능한 파라미터들(예컨대, 시간 임계치)이 포함된다. 착신된 접속들은 상기 입력들에 근거하여 각각의 VEC에 대해 동적으로 할당됨으로써, 클러스터 자원들이 클라이언트에 대해 가장 빠른 서비스를 제공하도록 할당되게 된다. 또한 매니저는 가상 캡슐화된 클러스터를 동적으로 구성하기 위해 관리자에 의해 이용되는 커맨드 인터페이스도 포함한다. 매니저에 대한 더 상세한 설명은 제 3절에 제공된다.The components of the manager 320 implement a connection allocation policy and enable dynamic configuration of the virtual encapsulated cluster. The manager monitors and evaluates the current load on the members of each encapsulated cluster through a dynamic feedback control loop. By implementing a connection allocation policy, the manager intelligently distributes incoming connections across virtually encapsulated cluster servers, increasing the speed of service for client requests. New weight assignments are calculated through a manager algorithm that can be configured by cluster administrators. The input of the decision algorithm for this weighting assignment includes the evaluated load metric and parameters configurable by the administrator (eg, time threshold). Incoming connections are dynamically allocated for each VEC based on the inputs so that cluster resources are allocated to provide the fastest service to the client. The manager also includes a command interface used by the manager to dynamically construct virtual encapsulated clusters. A more detailed description of the manager is provided in section 3.

만약 TCP 접속 라우터 노드(109)가 동작을 중지해야 한다면, 클러스터의 모든 노드들은 그들의 원격 클라이언트에 대해 서비스를 제공하는 것이 불가능해질 것이다. 이런 문제를 다루기 위해, 본 명세서에서는 복구 매니저(Recovery Manager)를 추가하여, 동작중이던 게이트웨이에 오류가 발생할 때, 지정된 백업 게이트웨이를 활성화하도록 하였고, 서버 노드가 복구 데이터를 보유하도록 강화했다. 클라이언트는 게이트웨이의 오류로부터 복구하기 위해서 어떠한 행위도 할 필요가 없으며, 클러스터로부터 인터럽트없이 계속 서비스를 수신한다. 복구 매니저에 대한 더욱 상세한 설명은 제 4절에 제공된다.If TCP connection router node 109 is to stop working, all nodes in the cluster will be unable to provide services to their remote clients. In order to deal with this problem, in this specification, a recovery manager is added to enable a designated backup gateway when an error occurs in a gateway in operation, and the server node retains recovery data. The client does not need to do anything to recover from the gateway's failure, and continues to receive service from the cluster without interruption. A more detailed description of the recovery manager is provided in Section 4.

2. 실행자2. Executor

도 5는 실행자(340)의 바람직한 실시예를 도시한다. 실행자는 커맨드 프로세서(540), 메시지 스위치(140), VEC 라우터(310)으로 구성된다. 커맨드 프로세서(540)는 실행자(340)에 대한 요구를 수신하여, 응답(346)을 되돌려준다. 커맨드 프로세서는 메시지 스위치(140) 및 VEC 라우터(310)와 상호동작하여 요구를 수행하고 응답을 구성(construct)한다. 커맨드 프로세서가 접속 테이블(510), VEC 테이블(550), 포트 테이블(520), 서버 테이블(530)중 어느 하나를 변경시킬 수도 있다. 메시지 스위치(140)와 접속 테이블(510)은 미국특허 제 5,371,852호에 개시된 것과 동일한 것이다. 본 발명의 바람직한 실시예에서는, VEC 라우터(310)가 착신 패킷을 변경시키지 않는다. 패킷들은 서버에게 보내지는데, 이때 서버가 응답들을 내부 노드를 통해 클라이언트에게 직접 전송하도록 구성된다.5 illustrates a preferred embodiment of the performer 340. The performer consists of a command processor 540, a message switch 140, and a VEC router 310. The command processor 540 receives a request for the executor 340 and returns a response 346. The command processor interacts with the message switch 140 and the VEC router 310 to fulfill the request and construct the response. The command processor may change one of the connection table 510, the VEC table 550, the port table 520, and the server table 530. The message switch 140 and the connection table 510 are the same as those disclosed in US Pat. No. 5,371,852. In a preferred embodiment of the present invention, the VEC router 310 does not change the incoming packet. Packets are sent to the server, where the server is configured to send responses directly to the client via an internal node.

메시지 스위치(140)는 미국특허 제 5,371,852호에 개시된 메시지 스위치와 본질적으로 동일한 것이다. 그러나, 본 발명에 의해 본 발명의 바람직한 실시예의 메시지 스위치가 최적화되며, 메시지 스위치에 대해 추가의 검사가 행해진다. 즉, 이 메시지 스위치는 메시지가 VEC 라우터에게 알려진 VEC에 대한 것인지를 반드시 검사해야 한다.The message switch 140 is essentially the same as the message switch disclosed in US Pat. No. 5,371,852. However, the present invention optimizes the message switch of the preferred embodiment of the present invention and further checks are made on the message switch. In other words, this message switch must check that the message is for a VEC known to the VEC router.

VEC 라우터는 외부 네트워크상의 클라이언트에게 각각의 VEC를 나타내는 일련의 어드레스를 보유하고 있다. VEC 라우터는 수신된 요구를 수정함이 없이 클러스터의 내부 노드들에게 요구들을 보낸다. 클러스터의 각각의 내부 노드는 하나 이상의 VEC와 관련되어 있고, 관련된 VEC들에 대한 요구만을 수신한다. 본 기술분야에서 잘 알려진 기술들을 이용하여, 본 발명에서는 내부 노드들이 VEC를 나타내는 어드레스로 보내진 패킷을 수용하여 클라이언트에게 직접 응답하도록 구성된다. 종래 기술에서, 메시지 스위치(140)는 착신하는 요구(도 1의 도면번호(140) 참조)에 대해 패킷 헤더를 재기입해야 했으며, 요구에 대한 응답(도 1의 도면번호(120) 참조)에 대해서도 패킷 헤더를 재기입해야 했다. 본 발명에서는 패킷 헤더를 재기입하는 것이 불필요하다. (종래의 기술은 본 발명의 기술과 같이 이용될 수 있다.) 본 발명의 성능이 종래 기술보다 더 좋은데, 그 이유는, 패킷 헤더가 재기입되지 않으며 응답 패킷은 게이트웨이 노드(109)를 통해서 전송되지 않기 때문이다. 응답 패킷이 TCP 접속 라우터를 통해 전송되지 않으므로, 메시지 스위치는 클러스터 내부의 노드로부터 어떠한 응답 패킷도 수신하지 않는다. 그 결과, 본 바람직한 실시예에서는, 헤더 재기입이 배제되고, 내부 노드로부터의 응답 패킷에 대한 검사도 배제된다.VEC routers have a set of addresses representing each VEC to clients on the external network. The VEC router sends requests to the internal nodes of the cluster without modifying the received request. Each internal node of the cluster is associated with one or more VECs and only receives requests for related VECs. Using techniques well known in the art, the present invention is configured to allow internal nodes to receive packets sent to addresses representing the VEC and respond directly to the client. In the prior art, the message switch 140 had to rewrite the packet header for an incoming request (see reference numeral 140 in FIG. 1) and in response to the request (see reference numeral 120 in FIG. 1). We also had to rewrite the packet header. In the present invention, it is not necessary to rewrite the packet header. (Prior art can be used with the technology of the present invention.) The performance of the present invention is better than the prior art, because the packet header is not rewritten and the response packet is sent through the gateway node 109. Because it is not. Since the response packet is not sent through the TCP connection router, the message switch does not receive any response packet from the node inside the cluster. As a result, in the present preferred embodiment, header rewriting is excluded, and inspection of response packets from internal nodes is also excluded.

본 개선책의 직접적인 결과는 VEC 라우터가 클라이언트와 서비스를 제공하는 내부 노드사이의 흐름을 절반만 조사한다는 것이다. 이것은 정확한 접속 테이블을 갖기 어렵게 한다. 이 문제를 해결하기 위해, 본 발명은 자신의 접속 테이블을 상세히 기술하는 두 개의 새로운 타이머 즉, 시효 경과(stale) 타임 아웃 및 종료(FIN) 타임 아웃을 이용한다. 이러한 두 개의 타이머와 통신 흐름 및 공지의 타이머를 이용하여, 접속 테이블이 정확하게 유지될 수 있다.The direct result of this improvement is that the VEC router only examines the flow between the client and the internal node providing the service. This makes it difficult to have an accurate connection table. To solve this problem, the present invention utilizes two new timers that describe their connection table in detail: the stale timeout and the FIN timeout. Using these two timers and the communication flow and known timers, the connection table can be maintained accurately.

접속 테이블의 엔트리(entries)는 두가지 상태중 하나 즉, 활성(ACTIVE)이거나 혹은 종료(FIN)인 것으로 간주된다. 새로운 접속이 설정될 때마다 접속 테이블의 엔트리가 생성되어 활성상태로 놓인다. 접속 테이블내에 엔트리가 존재하는 접속상에서 패킷이 흐를 때마다 접속 테이블 엔트리는 시각 검인(time stamped)된다. VEC 라우터가 클라이언트로부터 서비스를 제공하는 노드로의 FIN 흐름을 감지할 때, 관련된 접속 테이블 엔트리는 FIN 상태에 놓인다. (패킷은 FIN 상태인 접속상에서 계속 흐를 수도 있다.) 접속 테이블 엔트리는, 접속상에서 마지막 패킷이 클라이언트로부터 서버로 전송된 이후에 소정 시간이 경과했음을 FIN 타임 아웃 타이머가 식별할 때, 폐쇄되어 소거 가능해진다. 만약 FIN을 전송하지 않은 상태에서 클라이언트에 오류가 발생되었다면, 접속 기록 엔트리는 그대로 남아있는다. 시효 경과(stale) 타임 아웃은 접속 테이블 엔트리가 소거되기 전에 활성 대화(active conversation)상에서 마지막 패킷이 흐른 이후에 얼마나 기다렸는지를 나타낸다.Entries in the connection table are considered to be in one of two states: ACTIVE or FIN. Each time a new connection is established, an entry in the connection table is created and placed in an active state. Each time a packet flows on a connection that has an entry in the connection table, the connection table entry is time stamped. When the VEC router detects the FIN flow from the client to the serving node, the associated connection table entry is placed in the FIN state. (Packets may continue to flow on connections that are in the FIN state.) Connection table entries can be closed and erased when the FIN timeout timer identifies that a predetermined time has elapsed since the last packet was sent from the client to the server on the connection. Become. If the client fails without sending a FIN, the connection record entry remains. The stale timeout indicates how long the user has waited since the last packet on an active conversation before the connection table entry was cleared.

도 7a 내지 도 7c는 VEC 라우터(310)의 순서도를 도시한다. 도 7a에서, VEC 라우터는 패킷을 기다린다(단계(702)). 패킷이 수신되면, VEC 라우터는 이 패킷이 현재 존재하는 TCP 접속을 위한 것인지 혹은 새로운 TCP 접속을 위한 것인지 검사한다(단계(704)). 만약 패킷이 현존하는 TCP 접속을 위한 것이라면, 패킷이 FIN, SYN, RST중 어느 것인지 검사한다(단계(708)). FIN, SYN, RST는 모두 본 기술분야에서 잘 알려진 패킷 유형(type)이다. 만약 패킷이 이들중 어느 것도 아니라면, 접속과 관련된 내부 노드로 이 패킷을 전송한다(단계(722)). 그렇지 않다면, 패킷이 RST인지 검사한다(단계(710)). 만약 패킷이 RST이면, 접속을 리셋시켜 접속 테이블로부터 대화를 소거시키고(단계(712)), 패킷은 접속과 관련되어 있던 내부 노드로 전송된다(단계(722)). 만약 패킷이 RST가 아니라면, VEC 라우터(310)는 패킷이 SYN인지 조사한다(단계(714)). 만약 패킷이 SYN이면, 접속이 이미 존재할지라도 이 접속을 활성 상태로 만들도록 접속을 설정한다(단계(716)). 다음, VEC 라우터(310)는 패킷이 FIN인지 조사한다(단계(718)). 만약 패킷이 FIN이면, 접속은 FIN 상태에 놓인다(단계(720)). FIN 처리이후 혹은 패킷이 FIN이 아니었을 경우, 패킷은 접속(722)과 관련된 서버로 전송된다(단계(722)).7A-7C show a flowchart of the VEC router 310. In FIG. 7A, the VEC router waits for a packet (step 702). When a packet is received, the VEC router checks whether the packet is for an existing TCP connection or for a new TCP connection (step 704). If the packet is for an existing TCP connection, then it is checked whether the packet is FIN, SYN, or RST (step 708). FIN, SYN, RST are all well known packet types in the art. If the packet is not one of them, send this packet to the internal node associated with the connection (step 722). If not, then check if the packet is an RST (step 710). If the packet is an RST, the connection is reset to clear the conversation from the connection table (step 712), and the packet is sent to the internal node associated with the connection (step 722). If the packet is not an RST, the VEC router 310 checks if the packet is a SYN (step 714). If the packet is a SYN, the connection is set up to make this connection active even if the connection already exists (step 716). Next, the VEC router 310 checks if the packet is a FIN (step 718). If the packet is a FIN, the connection is placed in the FIN state (step 720). After FIN processing or if the packet was not a FIN, the packet is sent to the server associated with the connection 722 (step 722).

도 7b는 현재 존재하지 않는 접속일 경우의 순서도를 도시한다. 검사 단계(704)에서 현재 존재하지 않는 접속임을 발견하면, VEC 라우터는 먼저 이 패킷이 SYN인지를 조사한다(단계(724)). 만약 패킷이 SYN이 아니면, 이 패킷은 폐기된다(단계(726)). 만약 패킷이 SYN이면, 접속은 활성 상태로 설정되고(단계(728)), 서버가 선택되며(단계(730)), 패킷은 선택된 서버로 전송된다(단계(722)).7B shows a flowchart in the case of a connection that does not currently exist. If the check step 704 finds that the connection does not currently exist, the VEC router first checks if this packet is a SYN (step 724). If the packet is not SYN then it is discarded (step 726). If the packet is a SYN, the connection is established (step 728), the server is selected (step 730), and the packet is sent to the selected server (step 722).

도 7c는 새로운 접속을 위해 서버를 선택하는 처리에 관한 순서도이다. 본 발명에서, 이 기능은 가중화된 라우팅(weighted routing)에 의해 구현된다. 서버 선택을 논의하기 위해, VEC의 내부 노드들은 1에서 n까지 숫자가 부여된 것으로 간주된다. 예를 들면, VEC가 7개의 노드를 가질 때, 숫자는 1, 2, 3, 4, 5, 6, 7이 부여된다. 서버 선택을 논의하기 위해, 적용될 수 있는 가중치들에 대해 최대 허용치에서 1까지의 숫자가 부여되는 것으로 간주된다. 예를 들면, 최대 허용치가 5이면, 적용가능한 가중치들은 5, 4, 3, 2, 1이 될 것이다. 0은 특별한 값이다. 또한 가중치들은 내림차순으로 선택된다. 본 발명은 특정 서비스를 제공하는 각각의 내부 노드와 가중치를 연관시킨다. 노드들중 적어도 하나는 0이 아닌 최대 가중치를 갖거나, 또는 노드들 모두가 0인 가중치를 가질 것이다.7C is a flowchart of the process of selecting a server for a new connection. In the present invention, this function is implemented by weighted routing. To discuss server selection, the internal nodes of the VEC are considered numbered from 1 to n. For example, when the VEC has seven nodes, the numbers are assigned 1, 2, 3, 4, 5, 6, 7. To discuss server selection, it is assumed that a number from 1 to the maximum allowance is given for the weights that may be applied. For example, if the maximum allowable value is 5, the applicable weights will be 5, 4, 3, 2, 1. 0 is a special value. The weights are also selected in descending order. The present invention associates a weight with each internal node that provides a particular service. At least one of the nodes will have a non-zero maximum weight, or all of the nodes will have a weight of zero.

서버 선택 기능(단계(730))은 먼저 그다음으로 높은 서버에 대응하는 숫자와 현재에 적용가능한 가중치를 선택한다(단계(734)). 다음, 이 숫자가 너무 큰지를 검사한다(단계(735)). 만약 이 숫자가 그렇게 크지 않다면, 이 숫자에 대응하는 서버가 바람직한 선택인지를 검사한다(단계(746)). 이 검사는 이후에 자세히 설명될 것이다. 만약 숫자가 너무 크면, 처음의 서버와, 다음으로 낮은 가중치를 선택한다(단계(736)). 그 후, 위에서 선택된 그 다음으로 낮은 가중치가 0인지를 검사한다(단계(738)). 만약 이 가중치가 0이 아니라면, 현재 적격인 가중치를 대신해서 이용되고, 이 기능은 현재의 서버가 바람직한 선택인지 검사한다(단계(746)). 처음의 서버와 최대 가중치를 선택한 후, 이 기능은 패킷을 라우트할 수 있는 다른 서버가 있는지 검사한다(단계(742)). 이용가능한 노드들 모두가 0의 가중치를 가질 때, 이용가능한 서버는 존재하지 않는다. 만약 이용가능한 서버가 존재하지 않는다면, 서버를 선택함이 없이 패킷은 리턴된다(단계(744)). 만약 이용가능한 서버가 존재한다면, 이 기능은 이것이 바람직한 선택인지 검사한다(단계(746)). 바람직한 선택이란, 현재의 적격인 가중치보다 크거나 같은 가중치를 갖는 서버로서 정의된다. 만약 이것이 바람직한 선택이라면, 서버가 선택되고(단계(748)), VEC 라우터로 리턴된다(단계(750)). 만약 바람직한 선택이 아니라면, 알고리즘은 다음 서버를 선택한다(단계(734)).The server selection function (step 730) first selects the number corresponding to the next highest server and the weight currently applicable (step 734). Next, it is checked if this number is too large (step 735). If this number is not so large, it is checked if the server corresponding to this number is the preferred choice (step 746). This test will be described later in detail. If the number is too large, select the first server and the next lowest weight (step 736). Thereafter, it is checked if the next lowest weight selected above is zero (step 738). If this weight is non-zero, it is used in place of the currently eligible weight, and this function checks if the current server is the preferred choice (step 746). After selecting the first server and the maximum weight, the function checks if there is another server capable of routing the packet (step 742). When all of the available nodes have a weight of zero, no server is available. If no server is available, the packet is returned without selecting a server (step 744). If there is a server available, this function checks if this is the preferred choice (step 746). Preferred selection is defined as a server having a weight greater than or equal to the current qualifying weight. If this is the preferred choice, the server is selected (step 748) and returned to the VEC router (step 750). If not, the algorithm selects the next server (step 734).

최대 가중치가 0이 아니고 적어도 하나의 노드가 최대 가중치를 갖거나 또는 모든 노드들이 0인 가중치를 가지므로, 서버 선택 기능은 항상 종료할 것이다. 양(positive)의 가중치를 갖는 노드가 존재하는 경우, 서버를 선택하는 기능은 가중치의 비율에 근거하여 패킷을 분배한다. 예를 들어, 임의의 두 노드중 하나는 3의 가중치를 갖고 다른 것은 2의 가중치를 가질 경우, 2의 가중치를 갖는 노드가 두 패킷을 수신할 때마다 3의 가중치를 갖는 노드는 3개의 패킷을 가질 것이다.The server selection function will always terminate because the maximum weight is not zero and at least one node has the maximum weight or all nodes have a weight of zero. If there is a node with a positive weight, the function of selecting a server distributes the packet based on the ratio of the weights. For example, if one of the two nodes has a weight of 3 and the other has a weight of 2, each time a node with a weight of 2 receives two packets, the node with a weight of 3 receives three packets. Will have

도 8은 VEC 라우터에 의해 사용되는 데이터 구조의 일 실시예를 도시한다. VEC 테이블(550)은 외부 네트워크상의 VEC 어드레스에 해당하는 일련의 어드레스를 포함한다. 특히 VEC와 관련된 모든 파라미터들이 이 테이블에 포함된다. 각각의 VEC는 포트 테이블(520)과 관련되고, 포트 테이블은 VEC가 서비스를 제공중인 일련의 포트(802)를 포함한다. 각각의 포트 엔트리(802)는 시효 경과(stale) 타임 아웃(804), FIN 타임 아웃(806), 그 밖에 포트에 따라 고유한 속성(808)과 관련된다. 관련된 각각의 포트는 자신과 관련된 서비스를 제공하는데 이용되는 VEC 내부 노드들의 부분 집합이다. 노드 테이블(530)은 포트와 관련있는 노드들의 어드레스와, 이 노드들에 관련된 현재 가중치(822)와, 그 밖에 노드에 따라 고유한 정보(830)를 포함한다. (노드에 따라 고유한 정보의 일 예로서, 활성 상태인 접속의 개수, FIN상태인 접속의 개수, 종료된 접속의 전체 개수를 나타내는 카운터들을 들 수 있다.) 노드 테이블(530)은 또한 이 테이블내의 일련의 노드들에 대해 가중화된 라우팅을 구현하기 위해 서버를 선택하는 기능에 필요한 상태를 포함한다. 노드 테이블은 노드의 전체 개수(810)와, 최종 선택 노드(812)와, 현재 적격인 가중치(814)와, 최대 가중치(816)와, 가중치 한도(bound)(818)를 포함한다. 가중치 한도는 최대 가중치의 변화를 제한하는데 이용된다. 어떠한 노드도 가중치 한도보다 큰 값의 가중치를 갖지 못한다.8 illustrates one embodiment of a data structure used by a VEC router. The VEC table 550 includes a series of addresses corresponding to VEC addresses on the external network. In particular, all parameters related to VEC are included in this table. Each VEC is associated with a port table 520, which includes a series of ports 802 for which the VEC is serving. Each port entry 802 is associated with a stale timeout 804, a FIN timeout 806, and other unique attributes 808 depending on the port. Each related port is a subset of the VEC internal nodes that are used to provide services related to it. The node table 530 contains addresses of nodes associated with the port, current weights 822 associated with these nodes, and other information unique to the node 830. (An example of unique information per node may include counters that indicate the number of active connections, the number of connections in the FIN state, and the total number of terminated connections.) The node table 530 also includes this table. Contains the state needed for the ability to select a server to implement weighted routing for a series of nodes within. The node table includes a total number of nodes 810, a final selected node 812, a currently qualified weight 814, a maximum weight 816, and a weight bound 818. The weight limit is used to limit the change in maximum weight. No node has a weight greater than the weight limit.

3. 매니저3. Manager

접속 라우터 매니저(즉, 매니저(320))의 발명은 구성 가능한 정책에 따라 다수의 부하 메트릭을 이용하여 착신 접속을 동적으로 분배하는 방법 및 장치이다. 매니저는 클러스터 자원 할당을 최적화시키기 위해 실행자(340) 라우팅 알고리즘의 가중치를 동적으로 변경시키는 제어 루프를 제공한다. 본 발명의 목표는 현재의 클러스터 상태에 따라 착신 TCP 접속을 분배함으로써 클러스터의 총 처리량을 개선시키고 서비스 요구의 전체적인 지연을 줄이는 것이다. 그러므로, 본 발명은 서버의 활용을 개선하는 동시에 요구를 만족시킴에 있어서 지연을 줄이도록 서버 호스트에 대한 접속을 분배하는 방법을 설명한다.The invention of an access router manager (i.e., manager 320) is a method and apparatus for dynamically distributing incoming connections using multiple load metrics in accordance with configurable policies. The manager provides a control loop that dynamically changes the weight of the executor 340 routing algorithm to optimize cluster resource allocation. The aim of the present invention is to improve the total throughput of the cluster and reduce the overall delay of the service request by distributing the incoming TCP connection according to the current cluster state. Therefore, the present invention describes a method of distributing connections to a server host to reduce the delay in meeting the needs while improving the utilization of the server.

도 6은 5개의 노드(105, 106, 07, 108, 109)로 이루어진 클러스터(600) 내부의 본 발명에 따른 매니저(320)의 일 실시예를 도시한다. 도 6은 도 4의 다른 실시예의 네트워크 구성을 이용하고 있지만 도 3의 구성이 이용되는 것도 가능하다. 이들 노드중 하나가 게이트웨이(109)이고, 이 게이트웨이(109)는 외부 네트워크(120)에 접속되어 TCP 접속 라우터(300)(즉, 실행자(340) 및 매니저(320))를 실행한다. 매니저(320)는 5개의 포괄적인 구성요소 즉, 부하 매니저(Mbuddy)(610), 외부 제어 인터페이스(Callbuddy)(620), 클러스터 호스트 메트릭 매니저(호스트 모니터)(630), 전송(forward) 메트릭 발생기(FMG)(640), 사용자 프로그램 가능 메트릭 매니저(UPMM)(650)로 구성된다.6 illustrates one embodiment of a manager 320 in accordance with the present invention within a cluster 600 of five nodes 105, 106, 07, 108, and 109. Although FIG. 6 uses the network configuration of the other embodiment of FIG. 4, it is also possible to use the configuration of FIG. One of these nodes is gateway 109, which is connected to external network 120 to execute TCP connection router 300 (ie, executor 340 and manager 320). Manager 320 includes five comprehensive components: load manager (Mbuddy) 610, external control interface (Callbuddy) 620, cluster host metric manager (host monitor) 630, and forward metric generator. (FMG) 640, a user programmable metric manager (UPMM) 650.

부하 매니저(610)는 실행자에 대한 가중화 기능을 계산하기 위해 상이한 4종류의 메트릭, 즉, 입력 메트릭, 호스트 메트릭, 서비스 메트릭, 사용자 메트릭을 이용할 수 있다. 부하 매니저(610)는 이들 메트릭과, 실행자 인터페이스(346), 외부 제어 인터페이스(624), 호스트 모니터 인터페이스(634), FMG 인터페이스(644), UPMM 인터페이스(654)로부터 그 밖의 관련 정보들을 수신한다. 부하 매니저는 인터페이스(344)를 통해 각각의 VEC 포트 서버에 대해 실행자 라우팅 알고리즘과 관련된 가중치를 제어한다.The load manager 610 may use four different kinds of metrics, namely input metrics, host metrics, service metrics, and user metrics, to calculate the weighting function for the performer. The load manager 610 receives these metrics and other related information from the executor interface 346, the external control interface 624, the host monitor interface 634, the FMG interface 644, the UPMM interface 654. The load manager controls the weight associated with the performer routing algorithm for each VEC port server via interface 344.

부하 매니저(610)는 각각의 서버와 관련된 내부 카운터의 값들을 인터페이스(346)를 통해 전송할 것을 실행자(340)에게 주기적으로 요구할 것이다. 예를 들면, 각각의 서버에 대해 설정된 접속의 총 개수에 대한 카운터의 값을 주기적으로 요구할 것이다. 시간 T1 및 T2에 폴링된(polled) 서버의 두 카운터의 차를 구함으로써, 부하 매니저(610)는 메트릭의 변화량을 계산할 수 있고, 이렇게 계산된 메트릭의 변화량은 T1-T2 시간동안에 수신된 접속의 개수를 나타낸다. 이러한 입력 메트릭의 집단은 각각의 VEC와 각각의 포트 서비스에 대한 접속 요구의 특성 전송률에 대한 근사를 제공한다.The load manager 610 will periodically request the performer 340 to send the values of the internal counters associated with each server via the interface 346. For example, it will periodically ask for the value of the counter for the total number of connections established for each server. By obtaining the difference between the two counters of the servers polled at times T1 and T2, the load manager 610 can calculate the amount of change in the metric, so that the amount of change in the metric that is calculated during the time T1-T2 Indicates the number. This collection of input metrics provides an approximation for the characteristic rate of connection request for each VEC and each port service.

호스트 모니터(630)는 메시지 인터페이스(634)를 통해 클러스터내의 각각의 호스트의 상태에 대한 정보를 부하 매니저(610)에게 주기적으로 전송할 것이다. 이러한 상태 정보를 입수하는 방법으로 여러가지가 알려져 있다. 예를 들면, 호스트 모니터가 모니터링 에이전트(635)를 이용하여 호스트에 따라 고유한 메트릭을 평가하는 프로그램 스크립트를 실행할 수도 있다. 예를 들면, 스크립트는 네트워크 접속에 대한 메모리 버퍼의 현재 활용 레벨을 평가할 수도 있다. 만약 메트릭 레포트가 정책 고유의 임계 시간내에 수신되지 않으면, 해당 호스트 메트릭에는 소정 값이 주어지고, 매니저는 호스트에 접속 불가능하다고 판정하므로, 접속 요구가 더 이상 전송되지 않는다. 호스트 모니터(630)는 모든 모니터링 에이전트의 레포트를 조합하여 부하 매니저에게 제공한다.The host monitor 630 will periodically send information about the status of each host in the cluster to the load manager 610 via the message interface 634. Various methods are known for obtaining such state information. For example, the host monitor may use a monitoring agent 635 to execute program scripts that evaluate unique metrics based on the host. For example, the script may evaluate the current utilization level of the memory buffer for the network connection. If a metric report is not received within a policy specific threshold time, the host metric is given a predetermined value, and the manager determines that the host is inaccessible, so that the connection request is no longer sent. The host monitor 630 combines the reports of all monitoring agents and provides them to the load manager.

전송 메트릭 발생기(FMG)(640)는 게이트웨이(109) 컴퓨터에서 생긴 전송 요구를 이용하여 어플리케이션에 따라 고유한 메트릭 또는 서비스에 따라 고유한 메트릭을 발생 및 평가한다. 이러한 평가는 클러스터 호스트 서버의 각각에 대해 적당한 요구를 발생시켜서 그 응답 지연을 측정함으로써 이루어진다. 예를 들면, HTTP 서버상의 전송 지연 메트릭을 얻기 위해서, FMG는, 특정 포트(예컨대 포트(80))에 서비스를 제공하고 있는 클러스터내의 HTTP 서버 각각에 대해 HTTP GET / 요구를 발생시킬 수도 있다. 다음, FMG(640)는 HTTP 요구를 서비스함에 있어서 발생하는 지연을 측정하여 메트릭 벡터를 부하 매니저(610)로 보낼 것이다. 만약 상기 요구가 정책에 따라 고유한 임계 시간내에 응답되어지지 않으면, FMG는 해당 서비스 노드가 특정 서비스 유형의 새로운 요구를 일시적으로 수신하지 않은 것으로 표시할 것이다. 이 정보를 이용하여 매니저는 특정 호스트의 서비스를 일시적으로 제공받을 수 없다고 판정하고, 그러므로 이런 유형의 접속 요구는 더 이상 전송되지 않게 된다.The transmission metric generator (FMG) 640 generates and evaluates a unique metric according to a service or a unique metric according to an application using a transmission request generated by the gateway 109 computer. This evaluation is made by generating an appropriate request for each of the cluster host servers and measuring their response delays. For example, to obtain a transmission delay metric on an HTTP server, the FMG may issue an HTTP GET / request for each HTTP server in the cluster serving a particular port (eg, port 80). Next, the FMG 640 will measure the delay incurred in servicing the HTTP request and send the metric vector to the load manager 610. If the request is not answered within a unique threshold time according to the policy, the FMG will indicate that the service node has not temporarily received a new request of a particular service type. Using this information, the manager determines that a particular host's service is temporarily unavailable, so that this type of connection request is no longer sent.

사용자 프로그램 가능 메트릭 매니저(UPMM)(650)는 본 발명의 사용자가 접속의 관리로 간주되는 임의의 새로운 메트릭을 정의할 수 있도록 해준다. 이러한 메트릭은, 임의의 소정 클러스터 인스톨레이션이 실시하기를 원하는 임의의 정책들을 기술할 수도 있다. 예를 들면, 어떤 정책은 특정 클러스터 호스트 집단이 관리를 위해 특정한 시간동안은 어떠한 TCP 접속도 수신하지 않기를 요구할 수도 있다. UPMM(650)은 이러한 정책들을 메트릭으로서 인터페이스(654)를 통해 부하 매니저에게 통신한다.User Programmable Metric Manager (UPMM) 650 allows a user of the present invention to define any new metrics that are considered management of a connection. This metric may describe any policies that any given cluster installation wishes to enforce. For example, some policies may require that a particular cluster host cluster not receive any TCP connections for a certain time for management. The UPMM 650 communicates these policies as a metric via the interface 654 to the load manager.

외부 제어 인터페이스(620)의 구성요소는 관리자(administrators)가 부하 매니저(610)의 파라미터중 어떤 것을 동적으로 제어할 수 있도록 해준다. 외부 제어 인터페이스(620)는 관리자가 알고리즘을 구성하여 부하 매니저에 의해 구현되는 가중치 할당을 계산할 수 있도록 해준다. 예를 들면, 관리자는 현재 메트릭의 각각과 관련된 가중치들을 동적으로 변경시키는 것을 원할 수도 있다. 관리자는 예컨대 (1) 호스트 메트릭의 가중치를 높이고, (2) 서비스 메트릭의 가중치를 낮추며, (3) 각각의 입력 메트릭에 대해 실행자(340)를 폴링하는 빈도를 증가시키도록 선택할 수도 있다. 외부 제어 인터페이스(620)의 구성요소는 인터페이스(622)를 통해 관리자 요구를 수신하고, 인터페이스(624)를 통해 부하 매니저(610)에게 알린다.Components of the external control interface 620 allow administrators to dynamically control any of the parameters of the load manager 610. The external control interface 620 allows an administrator to configure an algorithm to calculate the weight assignments implemented by the load manager. For example, an administrator may want to dynamically change the weights associated with each of the current metrics. The administrator may, for example, choose to (1) increase the weight of the host metric, (2) lower the weight of the service metric, and (3) increase the frequency of polling the performer 340 for each input metric. Components of the external control interface 620 receive manager requests via interface 622 and inform load manager 610 via interface 624.

부하 매니저(610)의 구성요소는 서버와 접속 라우터 게이트웨이 노드 사이에 동적 피드백 제어 루프를 형성하는 부하 매니저이다. 부하 매니저는 실행자(610)의 라우팅 알고리즘의 가중치를 조정하여, 부하 메트릭에 따라 부하가 약하게 걸린 서버들이 자신의 유형에 맞는 착신 TCP 접속을 더 많이 수신하도록 한다. 위에서 정의된 것처럼 어떠한 일련의 부하 및 정책 메트릭이 주어지면, 부하 매니저는 각각의 VEC내의 각각의 포트의 각각의 서버에 대해 새로운 관련 가중치를 계산할 것이다.The components of the load manager 610 are load managers that form a dynamic feedback control loop between the server and the access router gateway node. The load manager adjusts the weight of the routing algorithm of the executor 610 to allow more heavily loaded servers to receive more incoming TCP connections for their type according to the load metric. Given any set of load and policy metrics as defined above, the load manager will calculate a new associated weight for each server of each port in each VEC.

가중치 할당은 다음과 같이 모든 VEC의 각각의 포트에 대해 계산된다.Weight assignment is calculated for each port of all VECs as follows.

(1) 실행중인 모든 서버에 대한 모든 전체 메트릭(aggregate metrics;AM)을 계산한다.(1) Calculate all aggregate metrics (AM) for all running servers.

(2) 실행중인 각각의 서버에 대한 모든 현재 가중치 비율(current weight proportions;CWP)을 계산한다.(2) Calculate all current weight proportions (CWPs) for each running server.

(2) 각각의 메트릭 M과 관련하여 각각의 서버 S에 대해 (전체 AM과 관련한) 메트릭 비율(metric proportion;MP)의 값을 계산한다.(2) Calculate the value of the metric proportion (MP) for each server S with respect to each metric M (relative to the total AM).

(3) 각각의 서버에 대해 새로운 가중치(new weight;NW)를 계산한다. 즉,(3) Calculate the new weight (NW) for each server. In other words,

(3a) 만약 서버가 정지되었으면, NW는 0으로 설정된다.(3a) If the server is stopped, NW is set to zero.

(3b) 만약 서버가 고정된 가중치 W를 가지면, W의 값을 NW로 이용한다.(3b) If the server has a fixed weight W, use the value of W as NW.

(3c) 이하의 수학식 1을 이용해 벡터 NWV를 계산한다. 이 때, 각각의 엔트리 NWV[i]는 단일 메트릭 M[i]에 근거한다.(3c) A vector NWV is calculated using Equation 1 below. At this time, each entry NWV [i] is based on a single metric M [i].

[수학식 1][Equation 1]

NWV[i] = AW + [(CWP - MP) / SF]NWV [i] = AW + [(CWP-MP) / SF]

단, AW는 가중치의 현재 범위내에서의 평균 가중치이고, SF는 평활화 계수(smoothing factor) 파라미터이다.However, AW is an average weight within the current range of weights, and SF is a smoothing factor parameter.

(3d) 이하의 수학식 2를 이용해 각각의 서버의 새로운 가중치 NW를 계산한다.(3d) A new weighted NW of each server is calculated using Equation 2 below.

[수학식 2][Equation 2]

NW = NWV[1]*W[1] + NWV[2]*W[2] + … + NWV[i]*W[i]NW = NWV [1] * W [1] + NWV [2] * W [2] +. + NWV [i] * W [i]

도 9는 매니저가 메트릭을 수신하여 본 발명을 이용해 가중치 할당을 계산하는 방법을 보여주는 순서도이다. 블록(910)에서 부하 매니저는 메시지 또는 타임 아웃 이벤트(event)를 기다린다. 판정 블록(920)에서는 발생된 이벤트의 종류를 판정한다. 만약 타임 아웃이라고 판정되어 값들을 새로 보충해야 할 필요가 있는 경우, 블록(930)에서 실행자에게 질의하여 일련의 카운터 값들을 획득함으로써 입력 메트릭을 제공한다(블록(935)). 만약 블록(920)에서 이벤트가 파라미터 갱신에 관한 요구라고 판정되면, 해당 파라미터가 갱신된다(블록(928)). 예를 들어, 관리자는 임의의 메트릭과 관련된 가중치나 혹은 폴링 주기를 갱신할 수도 있다. 만약 블록(920)에서 이벤트가 메트릭 갱신의 수신이었다고 판정되면, 블록(925)에서 메트릭이 검색(retrieve)되어 내부 변수들이 그에 따라 설정된다. 새로운 메트릭이 도착되면, 블록(490)에서 알고리즘이 모든 메트릭의 현재 비율과 현재 가중치를 계산할 것이다. 다음, 블록(950)에서, 전술한 수학식을 이용하여 서버 노드 각각에 대해 새로운 가중치 NW가 계산될 것이다. 이 블록은 새로운 가중치 벡터 NW[i]를 생성하고, 여기에서 각각의 서버 i는 가중치 엔트리를 갖는다. 판정 블록(960)은 계산된 새로운 가중치 벡터 NW[i]가 임의의 임계 함수에 의해 현재의 가중치 벡터와 상이한지를 판정한다. 만약 새로운 벡터가 상이하면, 블록(970)에서 새로운 가중치를 실행자에게 알리고, 그렇지 않으면, 알고리즘은 처음으로 되돌아가서 새로운 이벤트를 대기한다.9 is a flowchart illustrating a method for a manager to receive a metric and calculate a weight assignment using the present invention. In block 910 the load manager waits for a message or timeout event. The decision block 920 determines the type of event that has occurred. If it is determined that it is timed out and needs to be replenished, the input metric is provided by querying the performer at block 930 to obtain a series of counter values (block 935). If at block 920 it is determined that the event is a request for parameter update, the parameter is updated (block 928). For example, an administrator may update the weight or polling period associated with any metric. If at block 920 it is determined that the event was the reception of a metric update, at 925 the metric is retrieved and internal variables are set accordingly. When a new metric arrives, at block 490 the algorithm will calculate the current rate and current weight of all the metrics. Next, at block 950, a new weighted NW will be calculated for each server node using the equation above. This block generates a new weight vector NW [i], where each server i has a weight entry. Decision block 960 determines whether the calculated new weight vector NW [i] is different from the current weight vector by any threshold function. If the new vector is different, then inform the performer of the new weight at block 970, otherwise the algorithm returns to the beginning and waits for a new event.

4. 복구 매니저(Recovery Manager)4. Recovery Manager

게이트웨이의 기능에 오류가 발생했음을 검출하는 즉시, 지정된 백업 게이트웨이내의 복구 매니저가 활성화된다. 오류 검출은 예를 들면 에이 바이드(A. Bhide) 등의 A highly Available Netwotk File Server, USENIX Conference, Winter 1991, Dallas, Texas, Page 199, 또는 에프 쟈넌(F. Jahanian) 등에 의한 Processor Group Membership Protocols : Specification, Design and Implementation, Proceedings of the 12th Symposium of Reliable Distributed Systems, Pages 2-11, Princeton, New Jersey, October 1993, IEEE Computer Society에서 설명된 것과 같이 종래 방법으로 행해질 수 있다.As soon as it detects that an error has occurred in the function of the gateway, the recovery manager in the designated backup gateway is activated. Error detection is described, for example, by A. Bhide et al. In A Highly Available Netwotk File Server, USENIX Conference, Winter 1991, Dallas, Texas, or F. Jahanian et al. Specification, Design and Implementation, Proceedings of the 12th Symposium of Reliable Distributed Systems, Pages 2-11, Princeton, New Jersey, October 1993, IEEE Computer Society.

복구 매니저는, HA/NFS(4)에 개시된 것처럼, 우선 오류가 발생한 게이트웨이로부터 네트워크 접속을 제거한 다음, 모든 활성 서버 노드에게 질의하여 그들 내부의 섀도 접속 테이블(shadow connection tables)로부터 상태 정보를 입수하고, 이 정보로부터 게이트웨이의 메시지 스위치의 접속 테이블을 구성한다. 이러한 취득 프로세스(takeover process)는 기존의 접속이 상실되지 않도록 TCP/IP의 타임 아웃 간격내에 종료되어야만 한다. 이를 달성하기 위해, 내부 노드들은 신규한 하이브리드 알고리즘(이후에 설명됨)을 실행하여, 접속이 비활성화되는 시점을 감지하고 이 비활성화된 접속들을 노드 내부의 섀도 접속 테이블로부터 제거시킴으로써, 활성화된 접속만이 취득중인 게이트웨이(taking-over Gateway)에 대해 기술되도록 한다. 기능중인 모든 클러스터 노드들이 응답할 때(특정 시간내에 응답하지 않는 노드는 기능을 하지 않는 것으로 가정된다), 백업 게이트웨이내의 실행중인 복구 매니저는 자신의 네트워크 인터페이스가 클러스터 ip-어드레스에 주소지정된 패킷을 수신하도록 한다. 이 마지막 단계는 백업 게이트웨이가 동작중이도록 하는데 필요한 작업을 종료한다. 매니저 구성요소에 의해 이용되는 관련된 정적 구성 데이터는 1차 게이트웨이(primary Gateway)와 백업 게이트웨이 사이에서 공유되는 파일의 형태로 보유되며, 취득동안 백업에 의해 판독된다.The recovery manager, as disclosed in HA / NFS 4, first removes the network connection from the failed gateway, then queries all active server nodes to obtain state information from their shadow connection tables. From this information, the gateway's message switch connection table is constructed. This takeover process must be terminated within the timeout interval of TCP / IP so that existing connections are not lost. To achieve this, internal nodes implement a novel hybrid algorithm (described later) to detect when a connection is deactivated and to remove these deactivated connections from the shadow connection table inside the node, so that only active connections Allows the description of a taking-over gateway. When all functioning cluster nodes respond (assuming that a node that does not respond within a certain time is not functioning), the running recovery manager in the backup gateway receives a packet whose network interface is addressed to the cluster ip-address. Do it. This final step terminates the work required to keep the backup gateway running. The relevant static configuration data used by the manager component is retained in the form of a file shared between the primary gateway and the backup gateway and is read by the backup during acquisition.

자명하지만 받아들여질 수 없는 또다른 해결책으로서 접속 정보를 백업 게이트웨이에 복사하여 보유하는 것이 있다. 이것은 설정 및 종료된 각각의 접속상에서 1차 게이트웨이와 백업 게이트웨이 사이에 2단계(two-phase) 프로토콜을 필요로 하며, 구현 비용이 많이 드는 문제로 제외되었다.Another obvious but unacceptable solution is to copy and retain the connection information to the backup gateway. This requires a two-phase protocol between the primary and backup gateways on each established and terminated connection, and has been ruled out as a costly implementation.

도 10은 고효율 게이트웨이를 이용하여 캡슐화된 클러스터의 구성을 예시한다. 1차 게이트웨이(1050)는 외부 네트워크(120)에 대해 활성화되어 접속된다. 지정된 백업 게이트웨이(1030)는 네트워크(120)에 대해 비활성적인 물리적 접속을 포함한다. 정규 캡슐화된 클러스터 게이트웨이 구성요소 매니저(320) 및 실행자(340)에 덧붙여, 각각의 게이트웨이는 복구 매니저(1020)를 포함한다. (1차 게이트웨이는 오류 발생 및 복구 이후에 백업되어질 수도 있다.) 각각의 서버 노드(107)는 섀도 접속 테이블(1010)을 포함하고, 이 섀도 접속 테이블은 외부 네트워크(120)에 대한 활성 접속 정보를 보유한다.10 illustrates the configuration of an encapsulated cluster using a high efficiency gateway. The primary gateway 1050 is activated and connected to the external network 120. The designated backup gateway 1030 includes an inactive physical connection to the network 120. In addition to the regular encapsulated cluster gateway component manager 320 and the performer 340, each gateway includes a recovery manager 1020. (The primary gateway may be backed up after a failure and recovery.) Each server node 107 includes a shadow connection table 1010, which shadow active table information for the external network 120. Holds.

메시지(ip 패킷)은 특정 TCP 또는 UDP 프로토콜 포트로 인도되어 클러스터 게이트웨이에 도달한다. 게이트웨이 내부의 메시지 스위치는 메시지 라우팅 기능이 프로토콜 포트에 대해 인스톨되도록 한다. 관련 포트에 도달하는 각각의 메시지에 대해서 라우팅 기능이 호출되어, 메시지가 전송될 포트와 내부 노드를 선택할 책임을 담당한다. 설정된 접속과 이 접속을 유지하는 클러스터 노드를 기술하고 있는 정보는 게이트웨이내의 테이블에 기록되고, 이 테이블은 메시지 스위치에 의해 이용됨으로써, 설정된 접속상의 착신 패킷을 정확한 클러스터 노드로 보내게 된다.The message (ip packet) is directed to a specific TCP or UDP protocol port to reach the cluster gateway. Message switches inside the gateway allow message routing functions to be installed for protocol ports. For each message arriving at the relevant port, a routing function is called, responsible for selecting the port and internal node to which the message is sent. Information describing the established connection and the cluster node holding the connection is recorded in a table in the gateway, which is used by the message switch to send an incoming packet on the established connection to the correct cluster node.

예컨대 서버 포트가 메시지 스위치 기능을 인스톨했다는 것과 같은 비교적 정적인 정보가 보유되고 다른 매니저 구성 정보는 공유 파일로 보유되어, 1차 게이트웨이와 백업 게이트웨이에 의해 액세스될 수 있다. 현재의 접속 정보는 매우 빠르게 변화하고 본 명세서에서 설명된 기술에 따라 관리된다.Relatively static information, such as for example that the server port has installed the message switch function, is retained and other manager configuration information is held in a shared file that can be accessed by the primary gateway and backup gateway. Current connection information changes very quickly and is managed according to the techniques described herein.

각각의 내부 노드(107)는 자신의 접속을 위해(다른 노드에 대한 접속을 위해서가 아님) 게이트웨이 라우팅 테이블의 섀도 테이블(1010)를 보유한다. 이 섀도 테이블은, 노드가 취득동안에 백업 게이트웨이(1030)내의 복구 매니저(1020)로부터의 취득 게이트웨이의 요구에 응답하는데 이용된다. 이 테이블은 내부 노드가 취득 게이트웨이에 대해 응답하는데 걸리는 시간을 상당히 줄여주며, 이것은, 설정된 접속을 그대로 살려두기 위해서는 취득 게이트웨이가 타임 아웃 시간(즉, 접속 기반 프로토콜이 성공적으로 통신을 종료하기 위한 시간)내에 동작해야만 하므로 상당히 중요하다.Each internal node 107 maintains a shadow table 1010 of the gateway routing table for its own connection (not for another node). This shadow table is used by the node to respond to a request of an acquisition gateway from the recovery manager 1020 in the backup gateway 1030 during acquisition. This table considerably reduces the time it takes for an internal node to respond to an acquisition gateway, which means that the acquisition gateway times out in order to keep the established connection intact (ie, the time for the connection-based protocol to successfully terminate communication). This is important because it must work within.

내부 노드에 보유된 섀도와 게이트웨이내의 접속 테이블의 엔트리들을 위한 공간을 교정하기 위해, 본 명세서에서 다음과 같이 처리한다. 접속은 두 상태중 하나 즉, 활성상태이거나 혹은 종료(FIN)상태이다. 접속 테이블 엔트리들은 매번 참조될 때마다 시각 검인된다. FIN_TIME_OUT으로 불리우는 사용자 구성 가능 타이머가 보유된다. 이 타이머는 폐쇄되는 것으로 가정될 FIN 상태의 대화에 대한 최종 참조 이후의 시점을 나타낸다. 타이머는 서비스 어드레스나 또는 포트에 대해 전체적으로 적용될 수 있다. 활성 종결(close)(즉, 접속의 한쪽은 FIN을 보내지만 다른쪽은 계속해서 접속상태임)이 뜻하는 것은, 서버가 클라이언트에게 계속해서 데이터를 전송할 수 있고, 데이터 전송의 종료시 대화가 중단된다는 것이다. 클라이언트는, 클라이언트로부터 아무런 요구도 전송되지 않을 것임을 서버에게 말하기 위해 대화를 활성적으로 종결시킬 수 있다. 이 논의를 위해, 클라이언트의 요구가 라우터를 통해 보내지고 있다고 가정할 것이다. 이러한 프로토콜은 동작하는데, 왜냐하면 이후에 승인될 데이터를 서버가 계속해서 전송하기 때문이다. 라우터, 즉, 결과적으로 서버는 승인을 인식하고, 계속해서 접속 테이블 엔트리를 시각 검인할 것이다. 일단 서버가 클라이언트에 대한 데이터 전송을 완료하고 대화의 절반을 종결하면, 최종 승인이 클라이언트로부터 서버로 전송될 것이다. FIN_TIME_OUT 시간이 경과한 후에, 서버는 접속 엔트리를 소거할 수 있다. 제 2 타이머, 즉 STALE_TIME_OUT은 게이트에 보유된다. 활성 상태이면서도 STALE_TIME_OUT보다 긴 시간동안 활동이 활발하지 않은 모든 접속은 소거될 수 있다.In order to calibrate the space for the shadows held in the internal node and the entries in the connection table in the gateway, we process as follows. The connection is in one of two states: active or terminated (FIN). Connection table entries are visually checked each time they are referenced. A user configurable timer called FIN_TIME_OUT is held. This timer indicates the time after the last reference to the conversation in the FIN state to be assumed to be closed. The timer may be applied globally for a service address or port. Active close (that is, one side of the connection sends a FIN but the other side continues to be connected) means that the server can continue to send data to the client and the conversation stops at the end of the data transfer. will be. The client can actively terminate the conversation to tell the server that no request will be sent from the client. For this discussion, we will assume that the client's request is being sent through the router. This protocol works because the server continues to send data to be subsequently approved. The router, i.e., the server, will eventually acknowledge the acknowledgment and continue visually acknowledging the connection table entry. Once the server has finished sending data to the client and terminates half of the conversation, a final acknowledgment will be sent from the client to the server. After the FIN_TIME_OUT time has elapsed, the server may delete the connection entry. The second timer, STALE_TIME_OUT, is held at the gate. All connections that are active but have been inactive for longer than STALE_TIME_OUT can be dropped.

전술한 알고리즘(접속 재구성 알고리즘)은 또한 내부 노드에서 실행되어, 내부 노드가 백업 게이트웨이에 의한 취득 프로세스를 지원하기 위해 보유하는 접속 테이블의 섀도에서 엔트리들에 대한 공간을 교정한다. 이런 식으로, 섀도 테이블의 엔트리 개수를 가능한 작게 유지하여, 결국 취득 프로세스가 가능한 신속히 진행되도록 한다.The algorithm described above (connection reconfiguration algorithm) is also executed at the inner node to correct the space for entries in the shadow of the connection table held by the inner node to support the acquisition process by the backup gateway. In this way, the number of entries in the shadow table is kept as small as possible so that the acquisition process proceeds as quickly as possible.

디폴트로서, FIN_TIME_OUT은 TCP의 최소 세그먼트 길이(minimum segment length;MSL)의 3배인 값으로 설정되어야 한다. 디폴트 STALE_TIME_OUT은 TCP 시효 경과(stale) 타임 아웃보다 더 길어야 한다. 더욱 타당한 FIN_TIME_OUT값은 타이머가 관련된 프로토콜을 고려함으로써 산정될 수 있다.By default, FIN_TIME_OUT should be set to a value that is three times the minimum segment length (MSL) of TCP. The default STALE_TIME_OUT must be longer than the TCP stale timeout. A more reasonable FIN_TIME_OUT value can be estimated by considering the protocol with which the timer is associated.

백업 게이트웨이가 클러스터에 대한 게이트웨이로서 활성화되어야 한다고 판정될 때, 1차 게이트웨이에 오류가 발생했다고 판정(본 명세서에서는 설명되지 않았지만 (5)로 설명될 수 있는 유형의 어떤 수단에 의해)했기 때문이거나 혹은 명시된(explicit) 관리 판정에 의해, 백업 게이트웨이(1030)의 복구 매니저(1020)는 다음의 단계들을 취한다.When it is determined that the backup gateway should be activated as a gateway for the cluster, it is determined that an error has occurred in the primary gateway (by some means of the type which is not described herein but can be described as (5)) or By explicit management decision, the recovery manager 1020 of the backup gateway 1030 takes the following steps.

(1) (3)에 설명된 것과 같은 ip-어드레스 취득을 이용하여, 백업 게이트웨이가 1차 게이트웨이의 네트워크 접속을 제거한다. 이 단계는 게이트웨이가 다운(down)상태로 추정되는 네트워크로부터 메시지를 받아들이지 못하도록 보장하는 것을 필요로 한다. 이 단계가 없을 경우, 어떤 종류의 오류 즉, 부분적으로 오류가 발생한 게이트웨이가 계속해서 메시지를 수신하여 프로세스를 수행할 수 있게 되고, 이것은 시스템의 무결성(integrity)을 손상시킨다.(1) Using the ip-address acquisition as described in (3), the backup gateway removes the network connection of the primary gateway. This step requires ensuring that the gateway does not accept messages from the network that are supposed to be down. Without this step, some type of error, that is, a partially failed gateway, can continue to receive messages and carry out the process, which compromises the integrity of the system.

(2) 백업 게이트웨이는 클러스터의 기능중인 각각의 노드에게 각각의 노드에 할당된 모든 UDP 포트의 요구사항과, 클러스터 외부의 호스트와 자신 사이의 1차 게이트웨이를 통해 설정된 TCP 접속을 질의한다. 백업 게이트는 이것을 전용 ip계 프로토콜을 이용하여 수행한다. 각각의 노드에 보유된 섀도 접속 테이블은, 설정된 접속이 게이트 취득 동안에 타임 아웃되지 않을 확률을 증가시키면서 노드가 즉시 응답할 수 있도록 한다. 종결된 접속을 인식하여 이들 접속을 지원하는데 이용되는 공간을 교정하는 전술한 알고리즘은, 섀도 접속 테이블의 사이즈를 최소화시키고 게이트웨이 취득을 수행하는데 필요한 시간을 줄여준다.(2) The backup gateway queries each functioning node of the cluster for the requirements of all UDP ports assigned to each node, and the TCP connection established through the primary gateway between the host and itself outside the cluster. The backup gate does this using a dedicated ip protocol. The shadow connection table held at each node allows the node to respond immediately, increasing the probability that the established connection will not time out during gate acquisition. The algorithm described above, which recognizes terminated connections and corrects the space used to support these connections, minimizes the size of the shadow connection table and reduces the time required to perform gateway acquisition.

(3) 백업 게이트웨이가 기능중인 각각의 노드로부터의 응답을 기록하고, 백업 게이트웨이의 실행자(340)(도 10 참조)의 접속 테이블(510)(도 5 참조)에 노드의 UDP 포트와 TCP 접속을 기록한다.(3) The response from each node in which the backup gateway is functioning is recorded, and the UDP port and the TCP connection of the node are set in the connection table 510 (see FIG. 5) of the performer 340 (see FIG. 10) of the backup gateway. Record it.

(4) 기능중인 모든 클러스터 노드들이 응답할 때(특정 시간내에 응답하지 않는 노드들은 기능중이 아닌 것으로 가정된다), 백업 게이트웨이는 자신의 네트워크 인터페이스를 인에이블시켜 클러스터 ip-어드레스로 주소지정된 패킷을 수신한다. 이 최종 단계는 백업 게이트웨이를 동작 가능하도록 하는데 필요한 작업을 완료한다.(4) When all the functioning cluster nodes respond (assuming that nodes that do not respond within a certain time are not functioning), the backup gateway enables its network interface to send packets addressed to the cluster ip-address. Receive. This final step completes the work required to make the backup gateway operational.

본 발명은 바람직한 실시예를 통해 설명되었으므로, 본 기술 분야에 숙련된 사람이라면 다양한 수정이나 변경이 가능할 것이다. 따라서, 전술한 바람직한 실시예는 일 예로서 제공된 것일 뿐, 본 발명을 제한하려던 의도는 아님을 이해해야 한다. 본 발명의 범주는 첨부된 특허청구범위에 의해서만 한정된다.Since the present invention has been described through the preferred embodiments, various modifications or changes may be made by those skilled in the art. Accordingly, it should be understood that the above-described preferred embodiments are provided by way of example only, and are not intended to limit the present invention. It is intended that the scope of the invention only be limited by the appended claims.

본 발명에 따르면, TCP 접속 라우터는, 캡슐화된 클러스터 각각을 다수의 가상 EC(VECs)로 분할하고, 구성가능한 정책(configurable policy)에 따라 현재의 서버 부하 메트릭(metrics)에 근거하여 VEC 내부의 착신 접속들을 동적으로 분배함으로써, 캡슐화된 클러스터들을 실행한다. 이러한 접속 라우터는 클러스터의 동적 구성을 지원하여, VEC 클라이언트에 대해 인터럽트되지 않는 서비스를 제공하도록 투명하게 복구하는 것이 가능하다.According to the present invention, the TCP connection router divides each encapsulated cluster into a plurality of virtual ECs (VECs) and calls within the VEC based on current server load metrics in accordance with configurable policy. By dynamically distributing connections, it encapsulates encapsulated clusters. These access routers support dynamic configuration of clusters, allowing for transparent recovery to provide uninterrupted service for VEC clients.

Claims (13)

컴퓨터 노드들로 이루어져 하나 이상의 네트워크에 접속되어 있는 클러스터의 경계를 지나서 착신 메시지를 라우팅하는 방법에 있어서,A method for routing an incoming message across a boundary of a cluster consisting of computer nodes connected to one or more networks, ① 포트 유형(type) 메시지의 메시지 헤더에서 포트 번호와 목표 어드레스를 탐색 및 판독하는 단계와,(1) searching and reading a port number and a target address in a message header of a port type message; ② 상기 목표 어드레스에 근거하여, 컴퓨터 노드들의 부분 집합을 선택하는 단계와,Selecting a subset of computer nodes based on the target address; ③ 상기 포트 번호에 근거하여, 상기 부분 집합에서 가능한 복수의 목적지들중에 메시지의 라우팅 목적지―이 메시지 라우팅 목적지는 상기 부분 집합내의 컴퓨터 노드들중 하나임―를 결정하는 소정 기능을 선택하는 단계와,Selecting, based on the port number, a predetermined function for determining a routing destination of a message among a plurality of possible destinations in the subset, wherein the message routing destination is one of the computer nodes in the subset; ④ 상기 라우팅 목적지로 메시지를 보내는 단계와,④ sending a message to the routing destination; ⑤ 메시지가 상기 경계를 가로질러 라우팅되는 동안, 부분 집합에 속하는 적어도 하나의 구성 요소와 부분 집합의 개수를 동적으로 변경하는 단계를 포함하는⑤ dynamically changing the number of subsets and at least one component belonging to the subset while the message is routed across the boundary; 클러스터의 경계를 지나서 착신 메시지를 라우팅하는 방법.How to route incoming messages across the boundary of the cluster. 제 1 항에 있어서,The method of claim 1, 상기 선택 단계가 메시지 헤더내의 포트 번호와 프로토콜 식별자에 근거하여 이루어지는The selection step is based on the port number and protocol identifier in the message header 클러스터의 경계를 지나서 착신 메시지를 라우팅하는 방법.How to route incoming messages across the boundary of the cluster. 제 1 항에 있어서,The method of claim 1, 상기 부분 집합의 개수가 모니터링 기능에 의해 동적으로 변경되는The number of the subset is dynamically changed by the monitoring function. 클러스터의 경계를 지나서 착신 메시지를 라우팅하는 방법.How to route incoming messages across the boundary of the cluster. 제 1 항에 있어서,The method of claim 1, 상기 부분 집합의 구성 요소가 상기 모니터링 기능에 의해 동적으로 변경되는Components of the subset are dynamically changed by the monitoring function. 클러스터의 경계를 지나서 착신 메시지를 라우팅하는 방법.How to route incoming messages across the boundary of the cluster. 제 3 항에 있어서,The method of claim 3, wherein 상기 변경 단계가 상기 부분 집합의 구성원들을 적어도 한 번 대체시키는 단계와, 상기 부분 집합에 구성원을 추가하는 단계로 이루어지는The modifying step comprises replacing members of the subset at least once and adding members to the subset 클러스터의 경계를 지나서 착신 메시지를 라우팅하는 방법.How to route incoming messages across the boundary of the cluster. 컴퓨터 노드들로 이루어져 하나 이상의 네트워크에 접속되어 있는 클러스터를 지나서 착신 메시지를 투명하게 라우팅하는 게이트웨이에 있어서,A gateway that consists of computer nodes and transparently routes incoming messages across a cluster connected to one or more networks, ① 포트 유형(type) 메시지의 메시지 헤더에서 포트 번호와 목표 어드레스를 탐색 및 판독하고, 상기 목표 어드레스에 근거하여 컴퓨터 노드들의 부분 집합을 선택하는 수단과,Means for searching for and reading a port number and a target address in a message header of a port type message, and selecting a subset of computer nodes based on the target address; ② 상기 포트 번호에 근거하여, 상기 부분 집합에서 가능한 복수의 목적지들중에 메시지의 라우팅 목적지―이 메시지 라우팅 목적지는 상기 부분 집합내의 컴퓨터 노드들중 하나임―를 결정하는 소정 기능을 선택하는 수단과,Means for selecting a predetermined function for determining, based on the port number, a routing destination of a message among a plurality of possible destinations in the subset, wherein the message routing destination is one of the computer nodes in the subset; ③ 부분 집합의 적어도 하나의 구성 요소와 부분 집합의 개수를 동적으로 변경시키는 수단을 포함하는Means for dynamically changing the number of subsets and at least one component of the subset 클러스터를 지나서 착신 메시지를 투명하게 라우팅하는 게이트웨이.Gateway that transparently routes incoming messages across the cluster. 제 6 항에 있어서,The method of claim 6, 상기 부분 집합의 개수가 모니터링 기능에 의해 동적으로 변경되는The number of the subset is dynamically changed by the monitoring function. 클러스터를 지나서 착신 메시지를 투명하게 라우팅하는 게이트웨이.Gateway that transparently routes incoming messages across the cluster. 제 7 항에 있어서,The method of claim 7, wherein 상기 부분 집합의 구성 요소가 상기 모니터링 기능에 의해 동적으로 변경되는Components of the subset are dynamically changed by the monitoring function. 클러스터를 지나서 착신 메시지를 투명하게 라우팅하는 게이트웨이.Gateway that transparently routes incoming messages across the cluster. 제 7 항에 있어서,The method of claim 7, wherein 상기 변경이 상기 부분 집합의 구성원들을 적어도 한 번 대체시키고, 상기 부분 집합에 구성원을 추가하여 이루어지는The change is made by replacing members of the subset at least once and adding members to the subset 클러스터를 지나서 착신 메시지를 투명하게 라우팅하는 게이트웨이.Gateway that transparently routes incoming messages across the cluster. 컴퓨터 노드들로 이루어져 하나 이상의 네트워크에 접속되어 있는 클러스터의 경계 노드를 지나서 착신 메시지를 라우팅하는 방법에 있어서,A method of routing an incoming message past a boundary node of a cluster consisting of computer nodes connected to one or more networks, the method comprising: ① 상기 경계 노드에서,① at the boundary node, ㉠ 포트 유형(type) 메시지의 메시지 헤더에서 포트 번호를 탐색 및 판독하는 단계와,탐색 searching for and reading the port number in the message header of a port type message; ㉡ 상기 포트 번호에 근거하여, 가능한 복수의 목적지들중에 메시지의 라우팅 목적지―이 라우팅 목적지는 상기 클러스터내의 컴퓨터 노드들중 하나임―를 결정하는 소정 기능을 선택하는 단계와,Selecting a predetermined function that determines, based on the port number, a routing destination of the message among a plurality of possible destinations, the routing destination being one of the computer nodes in the cluster; ② 상기 경계 노드의 오류를 검출하는 단계와,(2) detecting an error of the border node; ③ 상기 오류 검출에 응답하여, 상기 클러스터내의 각각의 노드로부터의 상태 정보의 부분 집합들을 대체 경계 노드(alternate boundary node)로 전송하는 단계와,In response to the error detection, transmitting subsets of state information from each node in the cluster to an alternate boundary node; ① 상기 대체 경계 노드에서,① at the alternate boundary node, ㉠ 클러스터내의 노드들로부터의 상기 상태 정보의 상기 부분 집합들을 수집하는 단계와,Collecting the subsets of the state information from nodes in a cluster; ㉡ 상기 상태 정보를 이용하여, 오류 발생 이전의 상기 경계 노드의 동작 상태를 복구함으로써, 상기 대체 경계 노드가, 오류 발생 이전에 상기 경계 노드가 수행했던 것과 동일한 방식으로 메시지들을 분배하도록 만드는 단계를 포함하는Using the state information to recover the operational state of the border node prior to the failure, causing the alternate border node to distribute messages in the same manner as the border node did before the failure. doing 클러스터의 경계 노드를 지나서 착신 메시지를 라우팅하는 방법.How to route incoming messages past the edge nodes of the cluster. 제 10 항에 있어서,The method of claim 10, 포트 유형(type) 메시지의 메시지 헤더에서 포트 번호와 목표 어드레스를 탐색 및 판독하는 단계와,Searching and reading the port number and the target address in the message header of the port type message; 상기 목표 어드레스에 근거하여, 컴퓨터 노드들의 부분 집합을 선택하는 단계를 더 포함하되,Based on the target address, selecting a subset of computer nodes, 상기 라우팅 목적지는 상기 부분 집합에서만 선택되는The routing destination is selected only from the subset 클러스터의 경계 노드를 지나서 착신 메시지를 라우팅하는 방법.How to route incoming messages past the edge nodes of the cluster. 컴퓨터 노드들로 이루어진 클러스터의 경계 노드의 오류를 복구하는 시스템에 있어서,In a system for recovering from a failure of a boundary node of a cluster of computer nodes, ① 상기 경계 노드에서, 포트 유형(type) 메시지의 메시지 헤더에서 포트 번호를 탐색 및 판독하고, 상기 포트 번호에 근거하여, 가능한 복수의 목적지들중에 메시지의 라우팅 목적지―이 라우팅 목적지는 상기 클러스터내의 컴퓨터 노드들중 하나임―를 결정하는 소정 기능을 선택하는 수단과,At the border node, it searches for and reads a port number in the message header of a port type message, and based on the port number, a routing destination of the message among a plurality of possible destinations—this routing destination is a computer in the cluster. Means for selecting a predetermined function of determining one of the nodes; ② 상기 경계 노드의 오류를 검출하는 수단과,Means for detecting an error of the border node; ③ 대체 경계 노드(alternate boundary node)를 포함하되,(3) include alternate boundary nodes, 상기 대체 경계 노드는,The alternate boundary node, ㉠ 상기 오류 검출에 응답하여, 상기 클러스터내의 각각의 노드들로부터의 상태 정보의 부분 집합들을 수집하는 수단과,Means for collecting subsets of state information from respective nodes in the cluster in response to the error detection; ㉡ 상기 부분 집합으로부터 오류 발생 이전의 상기 경계 노드의 동작 상태를 복구함으로써, 상기 대체 경계 노드가, 오류 발생 이전에 상기 경계 노드가 수행했던 것과 동일한 방식으로 메시지들을 분배하도록 만드는 수단을 포함하는Means for restoring the operational state of the boundary node prior to the failure from the subset so that the alternate boundary node distributes the messages in the same manner as the boundary node did before the failure occurred; 클러스터의 경계 노드의 오류를 복구하는 시스템.A system that recovers from the failure of a boundary node in a cluster. 컴퓨터 노드들로 이루어진 클러스터에서 사용되는 경계 노드에 있어서,In a boundary node used in a cluster of computer nodes, ① 포트 유형(type) 메시지의 메시지 헤더에서 포트 번호를 탐색 및 판독하고, 상기 포트 번호에 근거하여, 가능한 복수의 목적지들중에 메시지의 라우팅 목적지―이 라우팅 목적지는 상기 클러스터내의 컴퓨터 노드들중 하나임―를 결정하는 소정 기능을 선택하는 수단과,Search for and read a port number from a message header of a port type message and, based on the port number, a routing destination of the message among a plurality of possible destinations, which routing destination is one of the computer nodes in the cluster. Means for selecting a predetermined function for determining ② 상기 클러스터의 활성 경계 노드의 오류에 응답하여, 상기 클러스터내의 각각의 노드들로부터의 상태 정보의 부분 집합들을 수집하는 수단과,Means for collecting subsets of state information from respective nodes in the cluster in response to an error of an active boundary node in the cluster; ③ 상기 부분 집합으로부터 오류 발생 이전의 상기 경계 노드의 동작 상태를 복구함으로써, 상기 경계 노드가, 오류 발생 이전에 상기 활성 경계 노드가 수행했던 것과 동일한 방식으로 메시지들을 분산시키도록 만드는 수단을 포함하는Means for restoring the operational state of the border node prior to the failure from the subset, such that the border node distributes the messages in the same manner as the active border node did before the error occurred. 클러스터에서 사용되는 경계 노드.Perimeter node used in a cluster.
KR1019970025076A 1996-08-23 1997-06-17 Recoverable virtual encapsulated cluster KR100255626B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/701,939 1996-08-23
US08/701,939 US5918017A (en) 1996-08-23 1996-08-23 System and method for providing dynamically alterable computer clusters for message routing

Publications (2)

Publication Number Publication Date
KR19980018141A true KR19980018141A (en) 1998-06-05
KR100255626B1 KR100255626B1 (en) 2000-05-01

Family

ID=24819290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970025076A KR100255626B1 (en) 1996-08-23 1997-06-17 Recoverable virtual encapsulated cluster

Country Status (6)

Country Link
US (2) US5918017A (en)
EP (1) EP0838931A3 (en)
JP (1) JP3452466B2 (en)
KR (1) KR100255626B1 (en)
CN (1) CN1146186C (en)
TW (1) TW340921B (en)

Families Citing this family (207)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324177B1 (en) * 1997-05-02 2001-11-27 Cisco Technology Method and apparatus for managing connections based on a client IP address
US6366558B1 (en) * 1997-05-02 2002-04-02 Cisco Technology, Inc. Method and apparatus for maintaining connection state between a connection manager and a failover device
US7039008B1 (en) 1997-05-02 2006-05-02 Cisco Technology, Inc. Method and apparatus for maintaining connection state between a connection manager and a failover device
US6115756A (en) * 1997-06-27 2000-09-05 Sun Microsystems, Inc. Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time
KR100311000B1 (en) * 1997-08-06 2001-11-15 윤종용 User participational webserver and communication method between multi-users
US6324161B1 (en) * 1997-08-27 2001-11-27 Alcatel Usa Sourcing, L.P. Multiple network configuration with local and remote network redundancy by dual media redirect
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US6308216B1 (en) * 1997-11-14 2001-10-23 International Business Machines Corporation Service request routing using quality-of-service data and network resource information
GB2334353B (en) * 1998-02-12 2002-08-07 Ibm An apparatus,method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction stat
US6359879B1 (en) * 1998-04-24 2002-03-19 Avici Systems Composite trunking
US6389465B1 (en) 1998-05-08 2002-05-14 Attachmate Corporation Using a systems network architecture logical unit activation request unit as a dynamic configuration definition in a gateway
US6173319B1 (en) * 1998-05-08 2001-01-09 Attachmate Corporation Using a systems network architecture logical unit activation request unit as a dynamic configuration definition in a gateway
US6260070B1 (en) 1998-06-30 2001-07-10 Dhaval N. Shah System and method for determining a preferred mirrored service in a network by evaluating a border gateway protocol
US6446121B1 (en) 1998-05-26 2002-09-03 Cisco Technology, Inc. System and method for measuring round trip times in a network using a TCP packet
US6370583B1 (en) * 1998-08-17 2002-04-09 Compaq Information Technologies Group, L.P. Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image
US6430610B1 (en) * 1998-09-02 2002-08-06 Steeleye Technology, Inc. TCP/IP address protection mechanism in a clustered server environment
US6253230B1 (en) * 1998-09-22 2001-06-26 International Business Machines Corporation Distributed scalable device for selecting a server from a server cluster and a switched path to the selected server
US6993591B1 (en) * 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
US6484206B2 (en) * 1998-10-07 2002-11-19 Nortel Networks Limited Efficient recovery of multiple connections in a communication network
US6597704B1 (en) 1998-10-07 2003-07-22 Nortel Networks Limited System for translating a message from a first transmission protocol to a second transmission protocol
US6618359B1 (en) 1998-10-07 2003-09-09 Nortel Networks Limited Error recovery in a mixed protocol networks
US6298381B1 (en) * 1998-10-20 2001-10-02 Cisco Technology, Inc. System and method for information retrieval regarding services
US6205477B1 (en) * 1998-10-20 2001-03-20 Cisco Technology, Inc. Apparatus and method for performing traffic redirection in a distributed system using a portion metric
US6430155B1 (en) * 1998-11-30 2002-08-06 Cisco Technology, Inc. Congestion avoidance on communications networks
US6671273B1 (en) 1998-12-31 2003-12-30 Compaq Information Technologies Group L.P. Method for using outgoing TCP/IP sequence number fields to provide a desired cluster node
US6549538B1 (en) * 1998-12-31 2003-04-15 Compaq Information Technologies Group, L.P. Computer method and apparatus for managing network ports cluster-wide using a lookaside list
US6665304B2 (en) * 1998-12-31 2003-12-16 Hewlett-Packard Development Company, L.P. Method and apparatus for providing an integrated cluster alias address
US6724724B1 (en) 1999-01-21 2004-04-20 Cisco Technology, Inc. System and method for resolving an electronic address
US8024761B1 (en) * 1999-04-01 2011-09-20 Cox Communications, Inc. Method and apparatus of load sharing and fault tolerance in an interactive video distribution system
US6795860B1 (en) 1999-04-05 2004-09-21 Cisco Technology, Inc. System and method for selecting a service with dynamically changing information
US6564261B1 (en) 1999-05-10 2003-05-13 Telefonaktiebolaget Lm Ericsson (Publ) Distributed system to intelligently establish sessions between anonymous users over various networks
US20030177182A1 (en) * 1999-06-14 2003-09-18 International Business Machines Corporation Ensuring a given transactional unit of work arrives at an appropriate server instance
US6751191B1 (en) * 1999-06-29 2004-06-15 Cisco Technology, Inc. Load sharing and redundancy scheme
US6667980B1 (en) 1999-10-21 2003-12-23 Sun Microsystems, Inc. Method and apparatus for providing scalable services using a packet distribution table
US7062556B1 (en) * 1999-11-22 2006-06-13 Motorola, Inc. Load balancing method in a communication network
JP2001156785A (en) * 1999-11-26 2001-06-08 Nec Corp Cell abort avoidance system and method in buffer
US6917626B1 (en) * 1999-11-30 2005-07-12 Cisco Technology, Inc. Apparatus and method for automatic cluster network device address assignment
US6636499B1 (en) 1999-12-02 2003-10-21 Cisco Technology, Inc. Apparatus and method for cluster network device discovery
US6735206B1 (en) 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for performing a fast service lookup in cluster networking
US6789213B2 (en) * 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6757836B1 (en) 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
US6862613B1 (en) 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
US6735205B1 (en) 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for fast packet forwarding in cluster networking
US6748437B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method for creating forwarding lists for cluster networking
US7340764B2 (en) * 2000-01-26 2008-03-04 Sony Corporation Data transmission system
GB2359693B (en) * 2000-02-26 2003-07-16 3Com Corp Network switch with truncated trie look-up facility
US6601101B1 (en) * 2000-03-15 2003-07-29 3Com Corporation Transparent access to network attached devices
US6970425B1 (en) * 2000-04-27 2005-11-29 At&T Corp. Method and apparatus for throttling and distributing data transmissions across a network
US8311927B2 (en) 2000-05-01 2012-11-13 Ndex Systems Inc. System and method for anonymously matching products or services with a consumer
US6847993B1 (en) 2000-05-31 2005-01-25 International Business Machines Corporation Method, system and program products for managing cluster configurations
US6839321B1 (en) 2000-07-18 2005-01-04 Alcatel Domain based congestion management
US6941384B1 (en) 2000-08-17 2005-09-06 International Business Machines Corporation Methods, systems and computer program products for failure recovery for routed virtual internet protocol addresses
US6996617B1 (en) 2000-08-17 2006-02-07 International Business Machines Corporation Methods, systems and computer program products for non-disruptively transferring a virtual internet protocol address between communication protocol stacks
US6996631B1 (en) * 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US6954784B2 (en) * 2000-08-17 2005-10-11 International Business Machines Corporation Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US7725587B1 (en) 2000-08-24 2010-05-25 Aol Llc Deep packet scan hacker identification
US7711790B1 (en) * 2000-08-24 2010-05-04 Foundry Networks, Inc. Securing an accessible computer system
US7155403B2 (en) * 2001-03-22 2006-12-26 International Business Machines Corporation System and method for leveraging procurement across companies and company groups
US7386495B2 (en) * 2001-03-23 2008-06-10 International Business Machines Corporation System and method for processing tax codes by company group
US8027892B2 (en) 2001-03-28 2011-09-27 International Business Machines Corporation System and method for automating invoice processing with positive confirmation
US7356496B2 (en) * 2001-03-22 2008-04-08 International Business Machines Corporation System and method for synchronizing ledger accounts by company group
US7283976B2 (en) * 2001-03-22 2007-10-16 International Business Machines Corporation System and method for invoice imaging through negative confirmation process
US6965938B1 (en) * 2000-09-07 2005-11-15 International Business Machines Corporation System and method for clustering servers for performance and load balancing
US7197480B1 (en) * 2000-09-07 2007-03-27 International Business Machines Corporation System and method for front end business logic and validation
US7293255B2 (en) * 2000-09-25 2007-11-06 Sun Microsystems, Inc. Apparatus and method for automated creation of resource types
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US6766354B1 (en) * 2000-09-28 2004-07-20 Intel Corporation Speed sensitive content delivery in a client-server network
US20020042839A1 (en) * 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US6965930B1 (en) 2000-10-20 2005-11-15 International Business Machines Corporation Methods, systems and computer program products for workload distribution based on end-to-end quality of service
US6963917B1 (en) 2000-10-20 2005-11-08 International Business Machines Corporation Methods, systems and computer program products for policy based distribution of workload to subsets of potential servers
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US7287090B1 (en) * 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US7512686B2 (en) * 2000-12-21 2009-03-31 Berg Mitchell T Method and system for establishing a data structure of a connection with a client
US7421505B2 (en) * 2000-12-21 2008-09-02 Noatak Software Llc Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation
US20020116397A1 (en) 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US20020116532A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet and identifying a data structure
US20020116605A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for initiating execution of software in response to a state
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7546369B2 (en) * 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
US20020129095A1 (en) * 2000-12-29 2002-09-12 Hatalkar Atul N. Broadcast communication system with dynamic client-group memberships
AU2002309479A1 (en) * 2001-01-11 2002-10-03 Nortel Networks Limtied Check pointing of processing context of network accounting components
US6937562B2 (en) 2001-02-05 2005-08-30 Ipr Licensing, Inc. Application specific traffic optimization in a wireless link
US7243077B2 (en) * 2001-03-02 2007-07-10 International Business Machines Corporation Method and computer program product for managing an internet trading network
US7171453B2 (en) * 2001-04-19 2007-01-30 Hitachi, Ltd. Virtual private volume method and system
US7711831B2 (en) * 2001-05-22 2010-05-04 International Business Machines Corporation Methods, systems and computer program products for source address selection
US20020178245A1 (en) * 2001-05-25 2002-11-28 David Funk Network element management
US7657643B2 (en) * 2001-06-15 2010-02-02 Cisco Technology, Inc. System and method for determining a preferred mirrored service in a network by evaluating a border gateway protocol
US7490165B1 (en) * 2001-07-18 2009-02-10 Cisco Technology, Inc. Method and apparatus for computing a path in a system with nodal and link diverse constraints
US7032048B2 (en) * 2001-07-30 2006-04-18 International Business Machines Corporation Method, system, and program products for distributed content throttling in a computing environment
US6772224B2 (en) * 2001-08-22 2004-08-03 Spatial Communications Technologies, Inc. Method and system for processing load distribution for a packetized telecommunication network entity
US7228337B1 (en) * 2001-09-11 2007-06-05 Cisco Technology, Inc. Methods and apparatus for providing a network service to a virtual machine
US7000016B1 (en) 2001-10-19 2006-02-14 Data Return Llc System and method for multi-site clustering in a network
US6938031B1 (en) 2001-10-19 2005-08-30 Data Return Llc System and method for accessing information in a replicated database
JP2003141057A (en) * 2001-11-06 2003-05-16 Mitsubishi Electric Corp Dma transfer control circuit
US7224669B2 (en) * 2002-01-22 2007-05-29 Mellandx Technologies Ltd. Static flow rate control
US7447755B1 (en) * 2002-03-18 2008-11-04 Blue Coat Systems, Inc. Method and apparatus for policy management in a network device
EP1540461A4 (en) * 2002-05-31 2007-10-03 Unisys Corp Improving transaction-processing performance by preferentially reusing frequently used processes
US7222178B2 (en) * 2002-05-31 2007-05-22 Unisys Corporation Transaction-processing performance by preferentially reusing frequently used processes
US7440394B2 (en) * 2002-06-24 2008-10-21 Nokia Corporation Method and system for redundant IP forwarding in a telecommunications network
US20040006640A1 (en) * 2002-07-03 2004-01-08 Inderieden Daniel W. Notification to routing protocols of changes to routing information base
US7000221B2 (en) * 2002-07-31 2006-02-14 International Business Machines Corporation Script evaluator
US7086061B1 (en) * 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US7152111B2 (en) * 2002-08-15 2006-12-19 Digi International Inc. Method and apparatus for a client connection manager
DE60324567D1 (en) * 2002-09-20 2008-12-18 Matsushita Electric Ind Co Ltd TES NETWORK ELEMENT FOR CONNECTING DATA COMMUNICATION NETWORKS
US8051176B2 (en) 2002-11-07 2011-11-01 Hewlett-Packard Development Company, L.P. Method and system for predicting connections in a computer network
US7483980B2 (en) * 2002-11-07 2009-01-27 Hewlett-Packard Development Company, L.P. Method and system for managing connections in a computer network
US7467194B1 (en) 2002-12-20 2008-12-16 Symantec Operating Corporation Re-mapping a location-independent address in a computer network
US8370523B1 (en) 2002-12-20 2013-02-05 Symantec Operating Corporation Managing routing information for a computer network
US7404006B1 (en) 2002-12-20 2008-07-22 Symantec Operating Corporation Publishing a network address in a computer network
US7406535B2 (en) * 2002-12-20 2008-07-29 Symantec Operating Corporation Role-based message addressing for a computer network
US7292585B1 (en) 2002-12-20 2007-11-06 Symantec Operating Corporation System and method for storing and utilizing routing information in a computer network
US7327741B1 (en) 2002-12-20 2008-02-05 Symantec Operating Corporation Detecting and breaking cycles in a computer network
US7653059B1 (en) 2002-12-20 2010-01-26 Symantec Operating Corporation Communication sessions for a computer network
US8275864B1 (en) 2002-12-20 2012-09-25 Symantec Operating Corporation Peer-to-peer network with recovery capability
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7590736B2 (en) 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7606929B2 (en) 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US8886705B1 (en) 2003-06-30 2014-11-11 Symantec Operating Corporation Goal-oriented storage management for a distributed data storage network
US7284147B2 (en) 2003-08-27 2007-10-16 International Business Machines Corporation Reliable fault resolution in a cluster
US9584360B2 (en) 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US7388839B2 (en) * 2003-10-22 2008-06-17 International Business Machines Corporation Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US7555527B1 (en) 2003-11-07 2009-06-30 Symantec Operating Corporation Efficiently linking storage object replicas in a computer network
US7680950B1 (en) 2003-11-07 2010-03-16 Symantec Operating Corporation Efficient search for storage objects in a network
US8060619B1 (en) 2003-11-07 2011-11-15 Symantec Operating Corporation Direct connections to a plurality of storage object replicas in a computer network
US7570600B1 (en) 2003-12-17 2009-08-04 Symantec Operating Corporation Overlay network with efficient routing and recovery
US7693991B2 (en) * 2004-01-16 2010-04-06 International Business Machines Corporation Virtual clustering and load balancing servers
US8224937B2 (en) * 2004-03-04 2012-07-17 International Business Machines Corporation Event ownership assigner with failover for multiple event server system
EP2339469A1 (en) * 2004-03-13 2011-06-29 Adaptive Computing Enterprises, Inc. System and method for a self-optimizing reservation in time of compute resources
EP1735706A4 (en) * 2004-03-13 2008-08-13 Cluster Resources Inc System and method of co-allocating a reservation spanning different compute resources types
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US7890629B2 (en) * 2004-03-13 2011-02-15 Adaptive Computing Enterprises, Inc. System and method of providing reservation masks within a compute environment
EP1725947A4 (en) * 2004-03-13 2008-08-06 Cluster Resources Inc System and method for providing advanced reservations in a compute environment
US7496651B1 (en) 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7284148B2 (en) * 2004-06-17 2007-10-16 International Business Machines Corporation Method and system for self-healing in routers
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US7533385B1 (en) 2004-07-07 2009-05-12 Sprint Communications Company Lp Virtualization and server imaging system for allocation of computer hardware and software
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US8019636B2 (en) * 2004-09-28 2011-09-13 International Business Machines Corporation Method, system and program product for planning and managing a call center study
US8495145B2 (en) * 2004-10-14 2013-07-23 Intel Corporation Controlling receipt of undesired electronic mail
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US7996455B2 (en) 2005-06-17 2011-08-09 Adaptive Computing Enterprises, Inc. System and method for providing dynamic roll-back reservations in time
JP4366323B2 (en) * 2005-03-15 2009-11-18 キヤノン株式会社 COMMUNICATION DEVICE AND ITS CONTROL METHOD
JP4356997B2 (en) * 2005-03-15 2009-11-04 キヤノン株式会社 Communication apparatus and communication method thereof
WO2006112980A2 (en) * 2005-03-16 2006-10-26 Cluster Resources, Inc. Reserving resources in an on-demand compute environment from a local compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US9225663B2 (en) 2005-03-16 2015-12-29 Adaptive Computing Enterprises, Inc. System and method providing a virtual private cluster
US9160792B2 (en) * 2005-04-05 2015-10-13 International Business Machines Corporation On-demand global server load balancing system and method of use
US7725901B2 (en) * 2005-04-14 2010-05-25 International Business Machines Corporation Method and system for performance balancing in a distributed computer system
US7895308B2 (en) * 2005-05-11 2011-02-22 Tindall Steven J Messaging system configurator
US7688739B2 (en) * 2005-08-02 2010-03-30 Trilliant Networks, Inc. Method and apparatus for maximizing data transmission capacity of a mesh network
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7707314B2 (en) * 2005-11-21 2010-04-27 Limelight Networks, Inc. Domain name resolution resource allocation
US20070118667A1 (en) * 2005-11-21 2007-05-24 Limelight Networks, Inc. Domain name resolution based dynamic resource assignment
US20070136465A1 (en) * 2005-12-12 2007-06-14 Fernandes Lilian S Method for allowing multiple authorized applications to share the same port
CN100461697C (en) * 2006-04-18 2009-02-11 华为技术有限公司 Service take-over method based on device disaster tolerance, service switching device and backup machine
US8539075B2 (en) 2006-04-21 2013-09-17 International Business Machines Corporation On-demand global server load balancing system and method of use
US20080043759A1 (en) * 2006-08-17 2008-02-21 Northrop Grumman Systems Corporation System, Apparatus, Method and Computer Program Product for an Intercom System
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US9846846B2 (en) * 2006-11-14 2017-12-19 International Business Machines Corporation Method and system for analyzing contact studies
US8209417B2 (en) * 2007-03-08 2012-06-26 Oracle International Corporation Dynamic resource profiles for clusterware-managed resources
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US7996510B2 (en) * 2007-09-28 2011-08-09 Intel Corporation Virtual clustering for scalable network control and management
US20090144446A1 (en) * 2007-11-29 2009-06-04 Joseph Olakangil Remediation management for a network with multiple clients
US7856500B2 (en) * 2008-07-11 2010-12-21 International Business Machines Corporation Method for placing composite applications in a federated environment
US8533333B2 (en) * 2008-09-03 2013-09-10 Microsoft Corporation Shared hosting using host name affinity
TW201018140A (en) * 2008-10-16 2010-05-01 Chunghwa Telecom Co Ltd System and method for protecting data of network user
EP2380335B1 (en) * 2009-01-16 2013-07-03 Telefonaktiebolaget LM Ericsson (publ) Systems and methods for recovering from the failure of a gateway server
US20100250646A1 (en) * 2009-03-25 2010-09-30 Microsoft Corporation Mechanism for geo distributing application data
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9231785B2 (en) 2009-12-18 2016-01-05 At&T Intellectual Property I, L.P. Method and apparatus for clearing hang calls
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US8774010B2 (en) 2010-11-02 2014-07-08 Cisco Technology, Inc. System and method for providing proactive fault monitoring in a network environment
US8559341B2 (en) 2010-11-08 2013-10-15 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US8982733B2 (en) 2011-03-04 2015-03-17 Cisco Technology, Inc. System and method for managing topology changes in a network environment
US8670326B1 (en) 2011-03-31 2014-03-11 Cisco Technology, Inc. System and method for probing multiple paths in a network environment
US8612541B2 (en) 2011-04-29 2013-12-17 Blue Coat Systems, Inc. Method and apparatus for multi-tenant policy management in a network device
US8724517B1 (en) 2011-06-02 2014-05-13 Cisco Technology, Inc. System and method for managing network traffic disruption
US8830875B1 (en) 2011-06-15 2014-09-09 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9450846B1 (en) 2012-10-17 2016-09-20 Cisco Technology, Inc. System and method for tracking packets in a network environment
CN102932485B (en) * 2012-11-20 2016-03-30 无锡城市云计算中心有限公司 The querying method of server connection state and device
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
JP6256904B2 (en) 2013-04-18 2018-01-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Apparatus and method for distributing processing requests
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9397926B2 (en) * 2014-08-05 2016-07-19 Dell Products L.P. Peer-influenced aggregate member selection
US10268467B2 (en) 2014-11-11 2019-04-23 A10 Networks, Inc. Policy-driven management of application traffic for providing services to cloud-based applications
US10681145B1 (en) * 2014-12-22 2020-06-09 Chelsio Communications, Inc. Replication in a protocol offload network interface controller
US10834056B2 (en) * 2018-07-31 2020-11-10 Ca, Inc. Dynamically controlling firewall ports based on server transactions to reduce risks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4112488A (en) * 1975-03-07 1978-09-05 The Charles Stark Draper Laboratory, Inc. Fault-tolerant network with node branching
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5319774A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Recovery facility for incomplete sync points for distributed application
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
US5261096A (en) * 1991-03-01 1993-11-09 Bull Hn Information Systems Inc. Interprocess message passing method in a distributed digital data system
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
EP0582373B1 (en) * 1992-07-17 1999-10-06 Sun Microsystems, Inc. Method and apparatus for implementing self-organization in a wireless local area network
US5371852A (en) * 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US5459864A (en) * 1993-02-02 1995-10-17 International Business Machines Corporation Load balancing, error recovery, and reconfiguration control in a data movement subsystem with cooperating plural queue processors
KR0128271B1 (en) * 1994-02-22 1998-04-15 윌리암 티. 엘리스 Remote data duplexing
US5644706A (en) * 1994-06-20 1997-07-01 Microsoft Corporation Failure detection and reporting for a computer mail gateway
JP3365705B2 (en) * 1995-05-24 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション Distributed data processing system
US6047323A (en) * 1995-10-19 2000-04-04 Hewlett-Packard Company Creation and migration of distributed streams in clusters of networked computers

Also Published As

Publication number Publication date
US5918017A (en) 1999-06-29
EP0838931A2 (en) 1998-04-29
CN1175147A (en) 1998-03-04
US6496866B2 (en) 2002-12-17
KR100255626B1 (en) 2000-05-01
TW340921B (en) 1998-09-21
JPH1093655A (en) 1998-04-10
US20020166080A1 (en) 2002-11-07
JP3452466B2 (en) 2003-09-29
EP0838931A3 (en) 2003-12-03
CN1146186C (en) 2004-04-14

Similar Documents

Publication Publication Date Title
KR100255626B1 (en) Recoverable virtual encapsulated cluster
Hunt et al. Network dispatcher: A connection router for scalable internet services
US6880089B1 (en) Firewall clustering for multiple network servers
US6970913B1 (en) Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US6112248A (en) Method and system for dynamically balancing network traffic using address resolution protocol
US7343413B2 (en) Method and system for optimizing a network by independently scaling control segments and data flow
US6779039B1 (en) System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers
US20050071469A1 (en) Method and system for controlling egress traffic load balancing between multiple service providers
US7058015B1 (en) Distributed solution for regulating network traffic
US20040103194A1 (en) Method and system for server load balancing
JPWO2003007160A1 (en) Mobile communication system and communication method
JP7313480B2 (en) Congestion Avoidance in Slice-Based Networks
CA2959511A1 (en) Network service aware routers, and applications thereof
Bays et al. Flow based load balancing: Optimizing web servers resource utilization
an Goldszmidt et al. Load Distribution for Scalable Web Servers: Summer Olympics 1996-A Case Study
Saifullah et al. Open flow-based server load balancing using improved server health reports
Cisco Configuring IP Services
Cisco Designing SRB Internetworks
Cisco Designing SRB Internetworks
Cisco Designing SRB Internetworks
Cisco Designing SRB Internetworks
Ghorab et al. Sdn-based service discovery and assignment framework to preserve service availability in telco-based multi-access edge computing
Thakur A Novel Load Balancing approach in Software Defined Network
Nguyen et al. Saco: A service chain aware SDN controller-switch mapping framework
Tajedin et al. DTE: Dynamic traffic engineering in software defined data center networks

Legal Events

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

Payment date: 20031217

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee