KR20100135855A - 서버 고장 상황에서 클라이언트 어플리케이션의 더 빠른 복구를 가능하게 하는 방법 - Google Patents

서버 고장 상황에서 클라이언트 어플리케이션의 더 빠른 복구를 가능하게 하는 방법 Download PDF

Info

Publication number
KR20100135855A
KR20100135855A KR1020107024139A KR20107024139A KR20100135855A KR 20100135855 A KR20100135855 A KR 20100135855A KR 1020107024139 A KR1020107024139 A KR 1020107024139A KR 20107024139 A KR20107024139 A KR 20107024139A KR 20100135855 A KR20100135855 A KR 20100135855A
Authority
KR
South Korea
Prior art keywords
node
server
client
fallover
notification
Prior art date
Application number
KR1020107024139A
Other languages
English (en)
Other versions
KR101419579B1 (ko
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 KR20100135855A publication Critical patent/KR20100135855A/ko
Application granted granted Critical
Publication of KR101419579B1 publication Critical patent/KR101419579B1/ko

Links

Images

Classifications

    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

클라이언트 노드에서 실행되는 클라이언트 어플리케이션을 위해 서버로 동작하는 서버 노드의 고장(failure)을 상기 클라이언트 어플리케이션에 통지함에 의하여 멀티노드(multinode) 데이터 처리 시스템에서 폴오버 조건으로(in fallover conditions) 복구 시기(recovery times)를 개선하는 시스템 및 방법이 제공된다. 본 발명에서 이러한 통지는 서버 노드를 위한 백업으로서 동작하는 폴오버 노드에 의해서 제공된다. 클라이언트 어플리케이션이 서버로부터 오랜 시간 동안 응답 받지 못하면, 상기 클라이언트 어플리케이션은 서버에서 고장이 발생한 것으로 가정하고 재접속을 시도한다. 본 발명은 시스템 레벨 소프트웨어가 상기 서버의 고장에 관하여 주도적으로(proactively) 상기 클라이언트 어플리케이션에 통지하게 함으로서 상기 클라이언트 어플리케이션에 의해서 시도되는 재접속의 속도를 높인다(speeds-up). 이렇게 함으로서 상기 클라이언트 어플리케이션을 위한 복구를 더 신속하게 할 수 있다.

Description

서버 고장 상황에서 클라이언트 어플리케이션의 더 빠른 복구를 가능하게 하는 방법{METHOD FOR ENABLING FASTER RECOVERY OF CLIENT APPLICATIONS IN THE EVENT OF SERVER FAILURE}
본 발명은 일반적으로 멀티노드(multimode) 데이타 프로세싱 시스템 및 방법에 관한 것이다. 좀더 구체적으로, 본 발명은 서버 고장 상황에서 복구 시간을 개선 하기 위한 시스템 및 방법에 관한 것이다. 좀더 구체적으로, 본 발명은 폴오버 노드(fallover node)가 고장 통지(failure notification)를 제공하는 시스템에 관한 것이며, 이 시스템에서 고장 통지는 고장난 노드(failed node)에 의한 업무 수행이 없음에 기초한 고장 결정을 기다릴 필요가 없게 한다. 서버는 여러 개의 노드들을 포함할 수 있을지라도, 여기서는, 그리고 첨부된 청구항에서는 용어 “노드”와 “서버”는 서로 번갈아 사용된다.
HACMP(고 가용 클러스터 관리 프로그램(High Availability Cluster Management Program))와 같은 클러스터웨어(clusterware) 어플리케이션들에는, 지능적인(intelligent) 클라이언트 어플리케이션들이 많이 있는데, 이들은 기본 서버가 고장 났을 경우에 자동적으로 백업 서버에 재접속을 할 수 있을 만큼 지능적이다. 이러한 재접속은 클라이언트와의 통신에 사용하고 있는(interacting) 기본 서버의 IP(Internet Protocol)주소를 동적으로 백업 서버로 옮기므로서 가능하게 된다. 따라서, 클라이언트 어플리케이션들은 서버 고장 때문에 동작을 멈추거나(killed) 다시 시작하지 않아도 된다. 클러스터웨어의 이러한 능력을 여기서는 “폴오버(fallover)”라 한다. 그런데, 문제는, 기본 서버가 고장이 나더라도, 클라이언트와 서버 사이에 존재하는 TCP(전송 제어 프로토콜(transmission control protocol))접속은 곧 바로 종료되지 않고 종료되는데 시간이 좀 걸린다는 것이다. 이는 일차적으로 클라이언트 어플리케이션이 서버의 고장을 알지 못하기 때문에 발생하는 일이며 그래서 클라이언트 어플리케이션은 TCP 재송신(retransmit) 카운터가 만료(expire)될 때까지 계속 재송신하며, 결국 TCP 재송신(retransmit) 카운터가 만료(expire)되어야, TCP 접속이 종료된다. 이 때문에, 백업 서버로 재접속을 시도하기 전 클라이언트 어플리케이션들이 서버의 고장 발생을 인식을 하기까지 시간이 많이 소요된다. 이러한 사실로부터, 종래의 기술에는 전술한 결함들과 한계들을 극복하기 위한 필요성이 존재하였다.
전술한 지연은 서버 고장 발생을 클라이언트에 적시에(timely) 통지함으로써 피할 수 있다. 클라이언트가 서버 고장에 관하여 이러한 통지를 받으면 곧 바로 재접속을 할 수 있게 될 것이다. 본 발명의 바람직한 실시 예는, 클라이언트 어플리케이션에 의해서, 클러스터 내의 하나 혹은 그 이상의 백업 서버들로 재접속을 할 때, 그러한 재접속 프로세스의 속도를 높이기 위한 메커니즘을 제공한다. 클라이언트와 서버(아마도 고장난 노드) 사이에 존재하는 TCP접속들 모두를 신속히 종료시키기 위해서는 클라이언트가 서버 고장이 발생하자마자 해당 TCP 접속에 대한 RST 패킷(Reset Packet) 을 받는 것이 바람직하다. 이러한 RST 패킷을 생성할 것으로 기대되는 노드의 고장에도 불구하고, 본 발명의 방법은 여전히 우선적으로 이러한 RST 패킷을 생성한다. 이를 달성하기 위해서는, 폴오버가 제공되면 곧 바로 폴오버 노드(백업 서버)는 이 RST 패킷을 우선적으로(preferably) 클라이언트로 전송한다. 실제로, 폴오버 노드는 클라이언트를 위해서 고장난 노드인 것처럼 행세한다.
본 발명의 한 실시 예에 따라, 폴오버 조건으로 복구를 개선하기 위한 방법이 제공되며, 상기 방법은, 클라이언트 노드 상에서 실행 중인 클라이언트 어플리케이션을 위한 서버로 동작하는 서버 노드의 고장에 관한 통지를 상기 클라이언트 어플리케이션으로 전송하는 단계를 포함한다. 이러한 통지는 상기 서버 노드를 위한 백업으로 동작하는 상기 폴오버 노드에 의해서 제공된다.
고장에 관한 통지를 전송하기 위해서 상기 폴오버 노드는 상기 서버 노드로 가장하는 것이 바람직하다. 본 발명의 바람직한 실시 예에 따라, 데이터 패킷이 클라이언트 어플리케이션으로부터 수신된다. 이 패킷은 전송 정보를 결정하기 위해 억세스되며 전송정보는 서버 노드에 관한 고장을 클라이언트 어플리케이션에 전송하기 위해 사용된다.
본 발명의 바람직한 실시 예에 따르면, 상기 데이터 패킷은 상기 서버 노드에 대한 데이터 패킷의 오리지널 전송(original transmission)에 관한 수신확인(acknowledgement)을 클라이언트 어플리케이션이 수신하지 못했을 때 상기 클라이언트 어플리케이션에 의해 재전송된 것이다. 한 실시 예에서, 폴오브 노드는 상기 클라이언트 노드에 상기 폴오버 노드가 상기 서버 노드를 위해서 업무를 인수 했음을 알린다.
추가적인 특징들과 장점들이 본 발명의 기술을 통해서 실현될 것이다. 본 발명의 다른 실시 예들 및 특징들이 이하에서 상세히 설명될 것이며 이들은 청구항들의 일부로서 고려될 것이다.
본 발명의 다양한 실시 예들에서 반복 언급되는 바람직한 목적들은 이들 목적들 중 어느 것 혹은 모두가 개별적으로 혹은 집단으로 본 발명의 가장 일반적인 실시 예에서 혹은 본 발명의 어느 특정 실시 예들에서 필수적 특징들로 존재함을 암시하거나 제안하려는 의도는 없다.
본 발명의 바람직한 실시 예들이 지금부터 아래의 도면들을 참조하여 설명될 것이지만, 이들은 오직 하나의 예로써만 설명될 것이다.
도 1은 본 발명에서 채용된 기본 노드 구성 환경 사이의 접속들을 도시한 블록 다이어그램이며,이는 또한 본 발명의 바람직한 실시 예의 동작에서 발생하는 상황들(events)의 시퀀스를 도시한다.
도 2 는 본 발명의 바람직한 실시 예의 프로세스에서 통상적으로 발생하는 상황들의 시퀀스를 도시하는 플로우 챠트이다.
전술한 바와 같이, 클라이언트는, 예를 들어 TCP 프로토콜을 사용하는 서버와 통신 중일 수 있다. 만일 서버에 고장이 발생한다 하더라도 클라이언트는 그러한 사실을 인지하지 못할 수 있다. 클라이언트가 송출하는 패킷들에 대해서 아무런 수신확인(acknowledgememt)이 없다 하더라도, 클라이언트는 TCP 재전송 카운터(retransmit counter)가 만료될 때까지 계속 재전송을 시도할 것이다. 이러한 동작은 시간이 좀 흐른 뒤에 종료될 것이다. 따라서 (이러한 상황에서는) 클라이언트와 서버 사이의 접속은 강제로 종료되어 리세트되는 것이 바람직하다. TCP 프로토콜은 RESET(RST) 선택(option)을 가지고 있다. 두 당사자들(예를 들어 클라이언트, 서버)이 통신을 하는 중일 때, 만일 제1 당사자가 다른 당사자가 통신을 중단한 사실을 인지하였다면 상기 제1 당사자는 RST를 송출하여 상기 다른 당사자가 접속을 리세트 하도록 강제할 수 있다. 그런데, 문제는 클라이언트(제1 당사자)가 문제가 발생하였다는 사실(통신 중단)을 일정 기간 동안(for quite some time) 인지하지 못할 수 있다는 것이다. 클라이언트가 문제가 발생하였다는 사실을 나중에 인지하였을 때 상기 클라이언트는 재접속을 시도하여 폴오버 노드에 접속될 것이다.
본 발명의 바람직한 실시 예에 따르면, 본 발명은 클라이언트와 통신 중인 서버 노드를 감시하는 백업(혹은 폴오버) 서버를 이용한다. 폴오버 노드는 서버 노드에 고장이 발생한 사실을 인지하면, 상기 서버 노드의 주소를 인수한다(take over). 여기에서 폴오버(백업) 서버는 인수 받은 IP 주소 상의 모든 트래픽을 살펴 보아서 그 중에서 상기 서버 노드 상에서 실행되기 위해 사용된 어플리케이션으로 향한 것(즉 주소 지정된 것)은 없는지를 알아보고, (만약에 없다면) 상기 IP 주소로 상기 백업 노드 상에서 재가동된다. 만일 그러한 것이 발견된다면, 상기 백업 서버는 상기 서버 노드 행세를 할 것이다.
그러나, 폴오버 노드는 서버 노드가 보유하는 접속들에 관한 지식을 갖고 있지 않다. 폴오버 노드는(따라서) 누가 그러한 접속들을 보유하고 있으며, 그 접속들이 어떠한 종류인지 알지 못한다. 그러므로, 폴오버 노드는 서버 노드가 누구(클라이언트)와 접속을 갖고 있는지를 추론하여 그러한 클라이언트들을 폴오버 노드에 접속하도록 촉구(encourage)할 (RST 옵션 사용하여) 필요가 있다. 당연히, 이러한 동작은 서버 노드에 재접속될 것으로 기대하는 모든 그러한 클라이언트들에게는 알려져있다(transparent).
이것이 잘되어 가려면, RST 패킷이 서버 노드로부터 왔다고하는 믿음이 클라이언트에게 있어야 한다. TCP 접속에서 모든(every) 패킷은 시퀀스 번호(sequence number)와 “ASK” 번호를 갖는데, 이는 데이터가 수신처에 전송이 끝났을 때(the end of the transmission)에 정확한 순서를 유지하고 있음(properly ordered)을 보증한다. 만일 TCP가, 어느 때던지, 정확하지 않은 시퀀스 번호 혹은 ACK 번호를 갖는 패킷을 수신했을 때는, 즉시 그 패킷을 버린다. 그래서, 어떤 어플리케이션 "A"가 다른 두 어플리케이션 "B"와 "C"사이에 존재하는 TCP 접속 상에 패킷들을 송신할 수 있으려면, 어플리케이션 "A"는 클라이언트로 송신될 TCP 시퀀스에서의 다음 패킷을 위한 시퀀스 번호, ACK 번호, 그리고 TCP 헤더 정보를 결정해야 한다.
비슷하게, 백업 서버(폴오버 노드)가 RST(Reset)패킷을 클라이언트로 송신할 수 있으려면, 그러한 RST 패킷을 위한 적절한 TCP 헤더 정보를 결정해야 한다. TCP 접속에서, 통신 중인 당사자들 중 어느 한 편이 FIN 패킷(전송의 끝을 표시하기 위해 TCP에서 사용된다.) 혹은 RST 패킷을 전송함에 의하여 접속을 종료함이 없이 동작을 중단(die)했을 때, 다른 당사자는 과거 패킷들(the old packets)을 다시 재전송하기 시작한다.
바람직한 실시 예에서, 폴오버 노드는 서버의 주소를 인수받는다. 그러므로 폴오버 노드는 고장난 노드로부터 IP 주소를 획득하면(활성화 조치에 의해서) 곧 클라이언트로부터 재전송된 패킷들의 일부를 수신한다. 백업 서버(폴오버 노드)는 클라이언트부터 막 수신된 재전송된 패킷을 사용하여 시퀀스에서 다음 패킷의 TCP 헤더 정보를 획득한다. 이 TCP 헤더 정보는 백업 서버가, 예를 들어, RST 패킷이 어떤 시퀀스 번호를 사용해야 하는지, RST 패킷이 어디로 전송되어야 하는지를 결정하는 것을 가능하게 한다.
어떤 어플리케이션이던지 가공하지 않은 IP 소켓들(raw IP sockets)을 사용하여 패킷을 작성하고(handcraft) 그것을 다른 두 어플리케이션들 사이에서 존재하는 TCP 접속 상에 전송할 수 있다. 이 새롭게 작성된 패킷은 자신과 동급의 어플리케이션(its peer application)에 의해서 송신된 것으로 간주되므로 수신처의 입장에서는(for the receiver) 진짜 패킷(genuine packet)인 것처럼 보인다. 본 발명에서, HACMP같은 클러스터웨어는 가공하지 않은 IP 소켓을 사용하여 RST 패킷을 만들고 이를 클라이언트로 전송한다. 이 RST패킷은 과거의 TCP 접속(the old TCP connection)을 즉시 중단시켜서, 그 결과 다시 클라이언트가 신속하게 재접속을 할 수 있도록 한다.
본 발명에서는, 기존의 클라이언트 어플리케이션들 혹은 TCP 스택(stack) 그 자체 어느 쪽도 변경할 필요가 없다. TCP 접속이 TCP 접속 타임 아웃(TCP connection time-out)에 의해서 종료되던지 혹은 RST 패킷에 의해서 종료되던지 상관없이, 클라이언트 어플리케이션은 그러한 종료를 갑작스런(abrupt) 종료로 보고 재접속을 시도한다.
도 1은, 본 발명의 바람직한 실시 예에 따라, 본 발명에서 이벤트들 혹은 상황들의 시퀀스를 도시한다. 특히, 원 "1"은 클라이언트 노드 (100)이 서버 노드 (200)과 통신 중인 초기 상태(initial state)를 나타낸다. 원 "2"는 서버 노드 (200)이 고장나서 폴오버 노드 (300)로 폴오버가 넘어온 상황(event)를 나타낸다. 원 "3"은 폴오버 노드 (300)이 서버 노드 (200)의 고장 사실을 클라이언트 노드 (100)에 통지하고 통신 기능을 인수하는 상황을 나타낸다. 원 "4"는 클라이언트 노드 (100)이 이제 폴오버 노드 (300)에 접속된 상태를 나타낸다. 어플리케이션 레벨 소프트웨어는 통상적으로 노드 고장들에 관하여 알지 못하므로 노드 (200)에서의 고장 표시 수신에는 많은 시간이 걸리는데, 도시된 프로세스는 클라이언트 (100) 상에서 실행 중인 어플리케이션이 노드 (200)의 고장 표시를 기다려야 하는 필요성을 피할 수 있게 한다. 폴오버 프로세스는 시스템 레벨 속도로(at system level speeds) 실행되어서, 우선순위 부여(priorities)가 더 빨리 일어나는데, 이러한 사실은 TCP 접속들의 프로토콜 구조와 함께 클라이언트 기반의 서버 어플리케이션(a client based server application)에 더 빠른 통지를 가능하게 한다.
도 2는 본 발명의 프로세스에서 일어나는 상황들의 통상적인 시퀀스를 도시한다. 이 프로세스는 서버 노드 (200)의 고장으로 시작된다(triggered)(단계 (101)). 시스템 레벨 소프트웨어는 이러한 고장을 상당히 빠르게 검출하여 폴오버(혹은 백업) 노드 (300)에 폴오버를 제공한다(단계 (102)). 그 다음에 폴오버 노드(300)은 클라이언트 노드 (100)에 통지를 한다(단계 (103)). 그 다음에 클라이언트 노드 (100)은 서버 노드 (200)에 대한 접속을 종료시킨다(단계 (104)).
본 발명은 전술한 프로세스를 수행하기 위해서 머신 판독가능 명령들의 형태로된 소프트웨어를 또한 포함한다. 또한 본 발명은 전술한 프로세스를 수행하기 위해서 해당 메모리 내에 그러한 명령들을 저장하는 데이터 처리 시스템도 포함한다.
지금까지 본 발명은 특정 바람직한 실시 예들에 따라 상세히 기술되었으나, 그러한 실시예들은 이 분야의 통상의 지식을 가진자들에 의해서 많은 수정과 변경들이 만들어질 수 있을 것이다. 따라서, 첨부된 청구항들은 그러한 수정과 변경들이 본 발명의 정신과 범위 내에 포함되도록 작성되었다.

Claims (42)

  1. 폴오버 조건으로(fallover conditions) 복구를 개선하기 위한 방법에서, 상기 방법은 :
    클라이언트 노드 상에서 실행되는 클라이언트 어플리케이션을 위한 서버로 동작하는 서버 노드의 고장에 관한 통지를 상기 클라이언트 어플리케이션에 전송하는 단계(sending)를 포함하되,
    상기 통지는 상기 서버 노드를 위한 백업(backup)으로 동작하는 폴오버 노드(fallover node)에 의해서 제공되는
    방법.
  2. 제 1항에서, 상기 방법은, 상기 서버에 대한 접속을 종료하는(terminating) 단계를 더 포함하는
    방법.
  3. 제 1항 또는 제 2항에서, 상기 방법은, 상기 서버 노드와 원래 관련된(originally associated) IP 주소를 상기 폴오버 노드에서 활성화 시키는(activating) 단계를 더 포함하는
    방법.
  4. 제 3항에서, 상기 방법은, 상기 클라이언트 노드에 재전송된 패킷들(retransmitted packets)을, 상기 폴오버 노드에서, 수신하는(receiving) 단계를 더 포함하는
    방법.
  5. 제 4항에서, 상기 방법은, TCP 헤더 정보(header information)를, 상기 폴오버 노드에서, 획득하는(obtaining) 단계를 더 포함하는
    방법.
  6. 제 5항에서, 상기 헤더 정보는 패킷 시퀀스 번호(packet sequence number)를 포함하는
    방법.
  7. 제 5항 또는 제 6항에서, 상기 방법은, 상기 폴오버 노드에서 리셋(RST) 패킷을 작성하는(constructing) 단계를 더 포함하는
    방법.
  8. 제 7항에서, 상기 RST 패킷 작성은 가공하지 않은 소켓들(raw sockets)을 사용하는
    방법.
  9. 제 7항 또는 제 8항에서, 상기 방법은, 상기 RST 패킷을 상기 클라언트 노드 상에서 실행 중인 상기 어플리케이션에 전송하는(transmitting) 단계를 더 포함하는
    방법.
  10. 제 7항, 제 8항, 또는 제 9항에서, 상기 방법은, 상기 클라이언트 노드로부터 상기 서버 노드로의 접속(connection)을 종료하는(terminating) 단계를 더 포함하는
    방법.
  11. 제 10항에서, 상기 방법은, 상기 어플리케이션에 의해서 재접속을 시도하는 단계를 더 포함하는
    방법.
  12. 제 1항 내지 제 11항 중 어느 한 항에서, 상기 서버 노드와 상기 클라이언트 노드는 전송 제어 프로토콜(TCP)에 의해서 통신하는
    방법.
  13. 제 1항 내지 제 11항 중 어느 한 항에서, 상기 폴오버 노드는 상기 서버 노드의 고장 사실을 상기 클라이언트 노드 상에서 실행 중인 어플리케이션에 통지하는
    방법.
  14. 제 13항에서, 상기 폴오버 노드가 상기 서버 노드에 관한 업무를 인수하였다는 사실을 상기 클라이언트 노드에 통지하도록 상기 폴오버 노드가 동작하는
    방법.
  15. 제 1항 내지 제 14항 중 어느 한 항에서, 상기 방법은 상기 서버 노드의 고장(failure)에 의해서 시작되는(triggered)
    방법.
  16. 제 1항 내지 제 15항 중 어느 한 항에서, 상기 통지는 TCP 접속을 통해서 제공되는 통지보다 더 앞서(earlier) 제공되는
    방법.
  17. 제 1항 내지 제 16항 중 어느 한 항에서, 상기 폴오버 노드는 고장에 관한 상기 통지를 전송하기 위해서 서버 노드로 가장하며(masquerade), 상기 방법은 :
    상기 클라이언트 어플리케이션으로부터 데이터 패킷을 수신하는 단계 ; 및
    전송 정보를 결정하기 위해서 상기 데이터 패킷에 접근하는 단계를 포함하되,
    고장에 관한 통지를 전송하는 단계는
    상기 서버의 고장에 관한 통지를 상기 클라이언트 어플리케이션에 전송하기 위해 상기 전송정보를 사용하는 단계를 포함하는
    방법.
  18. 제 17항에서, 상기 데이터 패킷은 상기 데이터 패킷의 오리지널 전송에 관한 수신확인(acknowledgement)을 상기 클라이언트 어플리케이션이 수신하지 못했을 때 상기 클라이언트 어플리케이션에 의해서 재전송된 데이터 패킷인
    방법.
  19. 적어도 3개의 노드들을 포함하는 멀티노드 데이터 처리 시스템에서, 클라이언트 노드 상에서 실행되는 클라이언트 어플리케이션을 위한 서버로 동작하는 서버 노드의 고장에 관한 통지를 상기 클라이언트 어플리케이션에 전송하기 위하여 상기 노드들의 메모리에 프로그램 명령들을 포함하되, 상기 통지는 상기 서버 노드를 위한 백업(backup)으로 동작하는 폴오버 노드(fallover node)에 의해서 제공되는
    시스템.
  20. 제 19항에서, 상기 시스템은, 상기 서버에 대한 접속을 종료하는(terminating) 수단을 더 포함하는
    시스템.
  21. 제 19항 또는 제 20항에서, 상기 시스템은, 상기 서버 노드와 원래 관련된(originally associated) IP 주소를 상기 폴오버 노드에서 활성화 시키는(activating) 수단을 더 포함하는
    시스템.
  22. 제 21항에서, 상기 시스템은, 상기 클라이언트 노드에 재전송된 패킷들(retransmitted packets)을, 상기 폴오버 노드에서, 수신하는(receiving) 수단을 더 포함하는
    시스템.
  23. 제 22항에서, 상기 시스템은, TCP 헤더 정보(header information)를, 상기 폴오버 노드에서, 획득하는(obtaining) 수단을 더 포함하는
    시스템.
  24. 제 23항에서, 상기 헤더 정보는 패킷 시퀀스 번호(packet sequence number)를 포함하는
    시스템.
  25. 제 23항 또는 제 24항에서, 상기 시스템은, 상기 폴오버 노드에서 RST 패킷을 작성하는(constructing) 수단을 더 포함하는
    시스템.
  26. 제 25항에서, 상기 RST 패킷 작성은 가공하지 않은 소켓들(raw sockets)을 사용하는
    시스템.
  27. 제 25항 또는 제 26항에서, 상기 시스템은, 상기 RST 패킷을 상기 클라언트 노드 상에서 실행 중인 상기 어플리케이션에 전송하는(transmitting) 수단을 더 포함하는
    시스템.
  28. 제 25항, 제 26항, 또는 제 27항에서, 상기 시스템은, 상기 클라이언트 노드로부터 상기 서버 노드로의 접속(connection)을 종료하는(terminating) 수단을 더 포함하는
    시스템.
  29. 제 28항에서, 상기 시스템은, 상기 어플리케이션에 의해서 재접속을 시도하는 수단을 더 포함하는
    시스템.
  30. 제 19항 내지 제 29항 중 어느 한 항에서, 상기 서버 노드와 상기 클라이언트 노드는 전송 제어 프로토콜(TCP)에 의해서 통신하는
    시스템.
  31. 제 19항 내지 제29항 중 어느 한 항에서, 상기 폴오버 노드는 상기 서버 노드의 고장 사실을 상기 클라이언트 노드 상에서 실행 중인 어플리케이션에 통지하는
    시스템.
  32. 제 31항에서, 상기 폴오버 노드가 상기 서버 노드에 관한 업무를 인수하였다는 사실을 상기 클라이언트 노드에 통지하는 수단을 상기 폴오버 노드 포함하는
    시스템.
  33. 제 19항 내지 제 32항 중 어느 한 항에서, 상기 시스템은, 상기 서버 노드의 고장(failure)에 의해서 시작되는(triggered)
    방법.
  34. 제 19항 내지 제 33항 중 어느 한 항에서, 상기 통지는 TCP 접속을 통해서 제공되는 통지보다 더 앞서(earlier) 제공되는
    시스템.
  35. 제 19항 내지 제 34항 중 어느 한 항에서, 상기 폴오버 노드는 고장에 관한 상기 통지를 전송하기 위해서 서버 노드로 가장하며(masquerade), 상기 시스템은 :
    상기 클라이언트 어플리케이션으로부터 데이터 패킷을 수신하는 수단 ; 및
    전송 정보를 결정하기 위해서 상기 데이터 패킷에 접근하는 수단을 포함하되,
    고장에 관한 통지를 전송하는 수단은
    상기 서버의 고장에 관한 통지를 상기 클라이언트 어플리케이션에 전송하기 위해 상기 전송정보를 사용하는 수단을 포함하는
    시스템.
  36. 제 35항에서, 상기 데이터 패킷은 상기 데이터 패킷의 오리지널 전송에 관한 수신확인(acknowledgement)을 상기 클라이언트 어플리케이션이 수신하지 못했을 때 상기 클라이언트 어플리케이션에 의해서 재전송된 데이터 패킷인
    시스템.
  37. 제 19항 내지 제 36항 중 어느 한 항에서, 상기 서버 노드와 상기 클라이언트 노드 상에서 실행 중인 상기 어플리케이션은 초기에는(initially) TCP 접속을 통해서 접속되는
    시스템.
  38. 머신 판독가능 매체(machine readable medium)에서, 클라이언트 노드 상에서 실행 중인 클라이언트 어플리케이션을 위한 서버로서 동작하는 서버 노드의 고장에 관한 통지를 상기 클라이언트 어플리케이션에 전송하는 명령들을 그 안에(thereon) 포함하되, 상기 통지는 상기 서버 노드를 위한 백업(backup)으로 동작하는 폴오버 노드(fallover node)에 의해서 제공되는
    머신 판독가능 매체.
  39. 제 38항에서, 상기 서버 노드와 상기 클라이언트 노드 상에서 실행 중인 상기 어플리케이션은 초기에는(initially) TCP 접속을 통해서 접속되는
    머신 판독가능 매체.
  40. 제 38항 또는 제 39항에서, 상기 폴오버 노드는 고장에 관한 상기 통지를 전송하기 위해서 서버 노드로 가장하며(masquerade), 상기 머신 판독가능 매체는 :
    상기 클라이언트 어플리케이션으로부터 데이터 패킷을 수신하기 위한 명령들 ; 및
    전송 정보를 결정하기 위해서 상기 데이터 패킷에 접근하기 위한 명령들을 포함하되,
    고장에 관한 통지를 전송하기 위한 명령들은
    상기 서버의 고장에 관한 통지를 상기 클라이언트 어플리케이션에 전송하기 위해 상기 전송정보를 사용하기 위한 명령들을 포함하는
    머신 판독가능 매체.
  41. 제 40항에서, 상기 데이터 패킷은 상기 데이터 패킷의 오리지널 전송에 관한 수신확인(acknowledgement)을 상기 클라이언트 어플리케이션이 수신하지 못했을 때 상기 클라이언트 어플리케이션에 의해서 재전송된 데이터 패킷인
    머신 판독가능 매체.
  42. 컴퓨터 프로그램에 있어서, 상기 프로그램이 컴퓨터상에서 실행될 때 제 1항 내지 제 18항 중 어느 한 항의 방법을 수행하도록 준비된 프로그램 코드 수단을 포함하는
    컴퓨터 프로그램.
KR1020107024139A 2008-04-02 2009-03-10 서버 고장 상황에서 클라이언트 어플리케이션의 더 빠른 복구를 가능하게 하는 방법 KR101419579B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/061,185 2008-04-02
US12/061,185 US7971099B2 (en) 2008-04-02 2008-04-02 Method for enabling faster recovery of client applications in the event of server failure
PCT/EP2009/052803 WO2009121689A1 (en) 2008-04-02 2009-03-10 Method for enabling faster recovery of client applications in the event of server failure

Publications (2)

Publication Number Publication Date
KR20100135855A true KR20100135855A (ko) 2010-12-27
KR101419579B1 KR101419579B1 (ko) 2014-07-14

Family

ID=40929637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107024139A KR101419579B1 (ko) 2008-04-02 2009-03-10 서버 고장 상황에서 클라이언트 어플리케이션의 더 빠른 복구를 가능하게 하는 방법

Country Status (8)

Country Link
US (1) US7971099B2 (ko)
EP (1) EP2274898B1 (ko)
JP (1) JP5695558B2 (ko)
KR (1) KR101419579B1 (ko)
CN (1) CN102047643B (ko)
BR (1) BRPI0911284B1 (ko)
CA (1) CA2706579C (ko)
WO (1) WO2009121689A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9450804B2 (en) * 2009-09-03 2016-09-20 At&T Intellectual Property I, L.P. Anycast aware transport for content distribution networks
US8555105B2 (en) * 2010-04-12 2013-10-08 International Business Machines Corporation Fallover policy management in high availability systems
US9591080B2 (en) 2012-09-17 2017-03-07 Tencent Technology (Shenzhen) Company Limited Method of establishing a network socket with a data server
CN103685398B (zh) * 2012-09-17 2015-08-19 腾讯科技(深圳)有限公司 通信连接建立方法及通信系统
CN104426703B (zh) * 2013-09-11 2018-08-31 深圳市东方博雅科技有限公司 一种服务器升级方法及系统
US20150215158A1 (en) * 2014-01-28 2015-07-30 Qualcomm Incorporated Discriminating or prioritizing users during failover in a voip system
JP6575318B2 (ja) * 2015-11-18 2019-09-18 富士通株式会社 ネットワーク制御装置、クラスタシステムおよび制御プログラム
CN105808391A (zh) * 2016-04-05 2016-07-27 浪潮电子信息产业股份有限公司 一种热替换cpu节点的方法及装置
CN106357744A (zh) * 2016-08-29 2017-01-25 浪潮(北京)电子信息产业有限公司 Smb客户端重连集群的方法、系统及smb客户端
CN110383775B (zh) * 2017-03-30 2021-03-30 华为技术有限公司 数据传输方法和通信设备
EP3884620A1 (en) 2018-11-21 2021-09-29 Telefonaktiebolaget LM Ericsson (publ) Fast session restoration for latency sensitive middleboxes

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0537903A2 (en) 1991-10-02 1993-04-21 International Business Machines Corporation Distributed control system
US5805785A (en) 1996-02-27 1998-09-08 International Business Machines Corporation Method for monitoring and recovery of subsystems in a distributed/clustered system
US6189111B1 (en) 1997-03-28 2001-02-13 Tandem Computers Incorporated Resource harvesting in scalable, fault tolerant, single system image clusters
US6023706A (en) 1997-07-11 2000-02-08 International Business Machines Corporation Parallel file system and method for multiple node file access
US5963963A (en) 1997-07-11 1999-10-05 International Business Machines Corporation Parallel file system and buffer management arbitration
US6223231B1 (en) * 1998-11-12 2001-04-24 Sun Microsystems, Inc. Method and apparatus for highly-available processing of I/O requests while application processing continues
US6523130B1 (en) 1999-03-11 2003-02-18 Microsoft Corporation Storage system having error detection and recovery
US6651242B1 (en) * 1999-12-14 2003-11-18 Novell, Inc. High performance computing system for distributed applications over a computer
US6675217B1 (en) 2000-07-06 2004-01-06 Microsoft Corporation Recovery of cluster consistency following failover
US6970939B2 (en) 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US6871296B2 (en) 2000-12-29 2005-03-22 International Business Machines Corporation Highly available TCP systems with fail over connections
US20020107966A1 (en) 2001-02-06 2002-08-08 Jacques Baudot Method and system for maintaining connections in a network
JP2003084996A (ja) * 2001-09-11 2003-03-20 Hitachi Ltd ホストコンピュータの切替方法
US7076555B1 (en) * 2002-01-23 2006-07-11 Novell, Inc. System and method for transparent takeover of TCP connections between servers
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
JP3932994B2 (ja) * 2002-06-25 2007-06-20 株式会社日立製作所 サーバ引継システムおよびその方法
US7197660B1 (en) 2002-06-26 2007-03-27 Juniper Networks, Inc. High availability network security systems
US7152180B2 (en) * 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US20040153700A1 (en) * 2003-01-02 2004-08-05 Nixon Mark J. Redundant application stations for process control systems
US7251745B2 (en) * 2003-06-11 2007-07-31 Availigent, Inc. Transparent TCP connection failover
US20050086342A1 (en) 2003-09-19 2005-04-21 Andrew Burt Techniques for client-transparent TCP migration
US7386624B2 (en) * 2003-10-23 2008-06-10 International Business Machines Corporation Method, system and article for dynamic real-time stream aggregation in a network
US7401256B2 (en) * 2004-04-27 2008-07-15 Hitachi, Ltd. System and method for highly available data processing in cluster system
US20050254508A1 (en) * 2004-05-13 2005-11-17 Nokia Corporation Cooperation between packetized data bit-rate adaptation and data packet re-transmission
US20050283529A1 (en) * 2004-06-22 2005-12-22 Wan-Yen Hsu Method and apparatus for providing redundant connection services
EP1719056A4 (en) * 2004-08-26 2009-04-08 Availigent Inc METHOD AND SYSTEM FOR PROVIDING HIGH AVAILABILITY TO COMPUTING APPLICATIONS
US20060129666A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation Selective device reset method for device sharing with fail-over
US7844691B2 (en) 2004-12-30 2010-11-30 Xstor Systems, Inc. Scalable distributed storage and delivery
JP4516439B2 (ja) * 2005-02-01 2010-08-04 富士通株式会社 中継プログラム、中継方法および中継装置
US7668962B2 (en) * 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
JP2007312227A (ja) * 2006-05-19 2007-11-29 Canon Inc 情報処理システム及びその制御方法、並びに該制御方法を実行するプログラム
US9009327B2 (en) * 2007-08-03 2015-04-14 Citrix Systems, Inc. Systems and methods for providing IIP address stickiness in an SSL VPN session failover environment

Also Published As

Publication number Publication date
EP2274898B1 (en) 2014-04-30
BRPI0911284A2 (pt) 2016-07-26
US7971099B2 (en) 2011-06-28
CN102047643A (zh) 2011-05-04
WO2009121689A1 (en) 2009-10-08
BRPI0911284B1 (pt) 2021-03-02
JP5695558B2 (ja) 2015-04-08
KR101419579B1 (ko) 2014-07-14
EP2274898A1 (en) 2011-01-19
US20090254775A1 (en) 2009-10-08
CA2706579A1 (en) 2009-10-08
CA2706579C (en) 2016-07-19
CN102047643B (zh) 2015-01-28
JP2011518486A (ja) 2011-06-23

Similar Documents

Publication Publication Date Title
KR101419579B1 (ko) 서버 고장 상황에서 클라이언트 어플리케이션의 더 빠른 복구를 가능하게 하는 방법
US20070130324A1 (en) Method for detecting non-responsive applications in a TCP-based network
JP2004032224A (ja) サーバ引継システムおよびその方法
WO2015119934A1 (en) System and method for reliable multicast data transport
CN108234087B (zh) 数据传输方法及发送端
US20080162703A1 (en) Dynamic client/server session recovery in a heterogenous computer network
US20110078313A1 (en) Method and system for managing a connection in a connection oriented in-order delivery environment
CN111147573A (zh) 一种数据传输的方法和装置
CN113986501A (zh) 实时数据库api无中断调用方法、系统、存储介质及服务器
JP2008097326A (ja) Snmpシーケンス管理方法、マネージャ装置及びエージェント装置
KR102352428B1 (ko) 단말 및 그 통신 방법
WO2012132101A1 (ja) 情報処理装置、および障害対応プログラム
CN115801642A (zh) 基于状态控制的rdma通讯管理模块、方法、设备及介质
JP5123968B2 (ja) 通信制御方法、通信制御プログラムおよびマスタ通信装置
CN114500021A (zh) 一种攻击检测方法、装置、电子设备及存储介质
Cisco SNASW
Cisco Stream Control Transmission Protocol (SCTP) Release 2
JP7120678B1 (ja) 通信処理装置、通信処理システム、障害通知方法及び障害通知プログラム
US20110078255A1 (en) Method and system for managing a connection in a connection oriented in-order delivery environment
CN111224803A (zh) 一种堆叠系统中多主检测方法及堆叠系统
Paris et al. A high performance erlang TCP/IP stack
CN105897450B (zh) 用于进行Diameter连接管理的方法和装置
Liqing et al. TCP optimization implementation of a small embedded system
CN116366535A (zh) 基于tcp的数据链路聚合方法及装置、可读存储介质、终端
CN114070781A (zh) 一种数据通信方法、装置、系统及计算机设备

Legal Events

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

Payment date: 20170705

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180626

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190703

Year of fee payment: 6