KR20080071846A - 서비스 처리 시스템 - Google Patents

서비스 처리 시스템 Download PDF

Info

Publication number
KR20080071846A
KR20080071846A KR1020070010249A KR20070010249A KR20080071846A KR 20080071846 A KR20080071846 A KR 20080071846A KR 1020070010249 A KR1020070010249 A KR 1020070010249A KR 20070010249 A KR20070010249 A KR 20070010249A KR 20080071846 A KR20080071846 A KR 20080071846A
Authority
KR
South Korea
Prior art keywords
server
service
packet
session information
service request
Prior art date
Application number
KR1020070010249A
Other languages
English (en)
Other versions
KR100922306B1 (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 주식회사 타오네트웍스
Priority to KR1020070010249A priority Critical patent/KR100922306B1/ko
Publication of KR20080071846A publication Critical patent/KR20080071846A/ko
Application granted granted Critical
Publication of KR100922306B1 publication Critical patent/KR100922306B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0695Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address

Landscapes

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

Abstract

본 발명은 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고, 클라이언트로의 데이터 송신은 송신 서버가 전담하는 구성에 있어서, 클라이언트로부터의 하나의 서비스 요청 패킷에 응답하여, 복수 개의 송신 서버 중에서 하나의 송신 서버가 서비스 요청 패킷에 대응한 서비스 패킷을 클라이언트로 송신 중에 에러가 발생하더라도, 상기 복수 개의 송신 서버 중에서 에러가 발생한 하나의 송신 서버를 제외한 나머지 송신 서버에서 계속하여 서비스 패킷을 송신하여, 클라이언트가 지속적으로 서비스를 제공 받을 수 있는 방법을 제공한다.
클라이언트, 송신 서버, 수신 서버, 에러, 병목 현상

Description

서비스 처리 시스템 {SERVICE PROCESSING SYSTEM}
도 1은 본 발명의 일례에 따른 서비스 처리 시스템의 구성도를 도시한 도면이다.
도 2는 본 발명의 일례에 따른 수신 서버에 저장되어 있는 서버 리스트를 도시한 도이다.
도 3은 본 발명에 따른 서비스 요청 패킷을 도시한 도면이다.
도 4는 본 발명에 따른 세션 정보를 도시한 도면이다.
도 5는 본 발명에 따른 서비스 패킷을 도시한 도면이다.
도 6은 본 발명에 따른 일례에 따른 수신서버의 구성도를 도시한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 송수신 네트워크
110: 클라이언트
120: 수신 서버
125: 송신 서버 그룹
130: 제1 송신 서버
135: 제2 송신 서버
140: 서비스 요청 패킷
150: 세션 정보(제1 세션 정보)
155: 세션 정보(제2 세션 정보)
160: 서비스 패킷(제1 서비스 패킷)
165: 서비스 패킷(제2 서비스 패킷)
본 발명은 서비스 처리 시스템에 관한 것으로, 더욱 상세하게는 네트워크 가상화를 실현함에 있어서 송신 서버의 에러 및 고장 등에도 불구하고 클라이언트로부터의 서비스 요청을 안정적으로 처리할 수 있도록 한 서비스 처리 시스템에 관한 것이다.
여러 대의 컴퓨터가 작업을 분담하여 처리하는 환경을 분산 처리 환경이라고 한다. 분산 처리 환경에서는 네트워크를 통해 서로 자원을 공유하거나 주고 받을 수 있다. 클라이언트와 서버로 구성된 네트워크에서는 사용자의 단말기가 클라이언트로, 호스트 컴퓨터가 서버로 구성된 통신 시스템이다. 즉, 서비스를 요청하는 클라이언트와 이에 대응하는 서비스를 제공하는 서버가 원격 접속을 통하여 데이터 통신이 가능한 구조를 의미한다.
클라이언트는 데이터의 집중이나 자원의 공유가 목적인 작업을 위하여 서버에 접속한다. 그러나, 인터넷을 기반으로 한 네트워크 환경이 날이 갈수록 복잡해지고 있다. 예를 들어, HTTP(hypertext transfer protocol)라는 하나의 서비스를 받기 위해 사용자 클라이언트들은 인터넷 어느 공간상의 실제 HTTP 서버에 접속하여 원하는 서비스를 받게 된다. 즉 서버가 인터넷이라는 네트워크 환경에 접속만 되어있다면 사용자들은 그것의 물리적인 위치나 주소는 문제가 되지 않고 서비스를 받을 수 있다.
그러나 서버의 입장에서는 사용자 클라이언트들의 입장보다 더 복잡한 문제를 갖는다. 서비스를 안정적으로 그리고 지속적으로 많은 사용자들에게 제공하기 위해서 서버가 서비스를 처리할 수 있는 능력이 커야만 한다. 더 많은 사용자에게 정확한 서비스를 하기 위해서는 더 강력한 성능의 서버로 업그레이드하는 대신에, 복수 개의 서버를 설치하고 클라이언트로부터의 서비스 요청을 상기 복수 개의 서버에 할당하는 스위치가 사용되고 있다.
그러나, 네트워크에서 처리해야 하는 트래픽이 급증하게 되면서, 모든 패킷의 헤더를 처리해야만 하는 스위치에서 정체 현상이 빈번하게 발생하기 시작했다. 스위치에서 정체가 발생하면, 스위치는 수신된 패킷을 처리하지 못하고 이는 다시 클라이언트의 재전송을 초래하여 상황이 더욱 악화되기도 한다.
이에 대한 해결 방안으로서 연결 분배 방식이 사용되었다. 연결 분배 방식은 4계층(Layer-4: L4) 스위치에 의한 서버 부하 분산 방법으로, 연결되어 있는 각각의 서버의 로드(load)를 분석하여 각각의 서버로 로드를 분산시키는 방식이다.
L4 스위치에 의한 서버 부하 분산 방법은 DNS(domain name server)에 의존하지 않고 다수의 서버들을 하나의 가상 IP(Virtual IP: VIP) 주소로 묶어 사용자들에게는 VIP 만을 알려주고 IP 어드레스뿐 만 아니라, 4계층의 TCP/UDP 포트에서도 특정 서버에 장애가 발생하였을 경우에도 서버들간에 올바른 부하 분산이 가능하도록 한다.
그러나, 종래의 L4 스위치를 사용하는 연결 분배 방식은, L4 스위치가 모든 패킷(packet)을 수신하고 해당 패킷의 커넥션 튜플(connetion tuple)을 추출하여, 커넥션 튜플에 매핑 테이블(mapping table)이 존재하는 경우에 매핑 테이블에서 튜플에 맞는 서버를 추출하여 해당 서버로 패킷을 전달하게 된다. 따라서 모든 패킷이 L4 스위치를 거쳐가야 하므로 L4 스위치에 모든 부하가 집중되어 병목현상이 발생하는 단점이 있다.
또한, 클라이언트로부터 수신되는 사용자 요청 패킷뿐 아니라 복수 개의 서버에서 생성되어 클라이언트로 전달되는 서비스 패킷들도 모두 L4 스위치를 통과하기 때문에, L4 스위치에 병목 현상이 발생된다.
따라서, 본 발명은 L4, L7 스위치와 같은 장치의 사용 없이도, 클라이언트로부터 수신한 서비스 요청에는 수신 서버가 대응하고 클라이언트로의 응답에는 송신 서버가 전담하도록 하고, 수신 서버는 이후의 데이터 송신에 관여하지 않도록 함으로써, 부하를 분산 시켜 병목 현상을 해소하고 효율적인 데이터 통신이 가능한 서비스 처리 시스템을 제안하고자 한다.
또한, 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고 클라이언트로의 데이터 송신은 송신 서버가 전담하는 구성에 있어서, 복수 개의 송신 서버 중에 하나의 송신 서버가 클라이언트 측으로 서비스 패킷을 송신 중에 에러가 발생하더라도 복수 개의 송신 서버 중에 다른 하나의 서버에서 서비스 패킷의 제공이 가 능하여, 보다 안정적인 데이터 통신이 가능한 서비스 처리 시스템을 제안하고 한다.
본 발명은 상기와 같은 종래기술을 개선하기 위해 안출된 것으로서, L4, L7 스위치와 같은 부하 분산 장치의 사용 없이도 서버에 집중되는 부하를 분산시켜 병목 현상을 해소하고 효율적인 데이터 통신이 가능하도록 한 서비스 처리 시스템을 제공하는 것을 목적으로 한다.
또한 본 발명은, 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고, 클라이언트로의 데이터 송신은 송신 서버가 전담하므로, 특정한 지점에 병목 현상이 발생하지 않는 서비스 처리 시스템을 제공하는 것을 목적으로 한다.
또한 본 발명은 송신 서버와 수신 서버가 분리된 분산 환경에서 송신 서버의 장애 발생 시에도 사용자에게 서비스 장애를 인지하지 못하게 하면서 서비스를 계속 제공할 수 있도록 하는 것을 목적으로 한다.
또한 본 발명은, 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고, 클라이언트로의 데이터 송신은 송신 서버가 전담하는 구성에 있어서, 클라이언트로부터의 서비스 요청 패킷에 응답하여, 복수 개의 송신 서버 중에 하나의 송신 서버가 서비스 요청 패킷에 대응한 서비스 패킷을 클라이언트로 송신 중에 에러가 발생하더라도, 상기 복수 개의 송신 서버 중에서 에러가 발생한 하나의 송신 서버를 제외한 나머지 송신 서버에서 계속하여 서비스 패킷을 송신할 수 있으므로, 클라이언트는 이를 하나의 서버로부터 송신된 서비스 패킷들로 인식할 수 있도록 한 서비스 처리 시스템을 제공하는 것을 목적으로 한다.
또한 본 발명은, 이용하면 분산된 네트워크 자원을 하나의 네트워크 자원처럼 인식하여 사용하는 네트워크 가상화(network virtualization)가 가능하도록 하는 것을 목적으로 한다.
상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일측에 따른 서비스 처리 시스템은 복수 개의 서버 및 상기 복수 개의 서버와 물리적으로 구분되고, 상기 복수 개의 서버와 네트워크로 연결되어, 클라이언트로부터 서비스 요청 패킷을 수신하고 상기 서비스 요청 패킷에 대응한 세션 정보를 생성하여 상기 복수 개의 서버 중에서 선택된 제1 송신 서버에게 상기 세션 정보를 송신하는 수신 서버를 포함하고, 상기 제1 송신 서버는 상기 세션 정보에 따라, 상기 서비스 요청 패킷에 대응한 서비스 패킷을 생성하여 상기 클라이언트로 전송하고, 상기 수신 서버는 상기 제1 송신 서버에서 에러가 발생 하는 경우, 상기 복수 개의 서버로부터 선택된 제2 송신 서버로 상기 세션 정보를 송신하고, 상기 제2 송신 서버는 상기 세션 정보를 수신하여 상기 서비스 요청 패킷에 대응한 서비스 패킷을 상기 클라이언트로 전송한다.
본 발명의 또 다른 일측에 따르면, 클라이언트로부터 서비스 요청 패킷 및 제1 송신 서버의 서비스 패킷에 대한 서비스 패킷을 수신하는 수신 모듈, 상기 서비스 요청 패킷에 기초하여 세션 정보를 생성하고 상기 세션 정보를 상기 제1 송신 서버로 송신하는 송신 모듈, 상기 서비스 패킷에 기초하여 상기 제1 송신 서버의 에러 발생 여부를 판단하는 판단 모듈 및 상기 제1 송신 서버에 에러가 발생한 경우 상기 세션 정보를 제2 송신 서버로 송신하는 제어부를 포함한다.
본 발명의 또 다른 일측에 따르면, 복수 개의 서버 및 상기 복수 개의 서버와 물리적으로 구분되고, 상기 복수 개의 서버와 네트워크로 연결되어, 클라이언트로부터 서비스 요청 패킷을 수신하고 상기 서비스 요청 패킷에 대응한 제1 세션 정보 및 제2 세션 정보를 생성하고 상기 제1 세션 정보를 상기 복수 개의 서버 중에서 선택된 제1 송신 서버로 송신하고, 상기 제2 세션 정보를 상기 제1 송신 서버가 아닌 제2 송신 서버에게 송신하는 수신 서버를 포함하고, 상기 제1 송신 서버는 상기 제1 세션 정보에 따라, 상기 서비스 요청 패킷에 대응한 서비스 패킷을 생성하여 상기 클라이언트로 전송하고, 상기 제1 송신 서버에서 에러가 발생하는 경우에, 상기 제2 송신 서버는, 상기 수신 서버로부터 수신한 상기 제2 세션 정보에 따라 상기 서비스 요청 패킷에 대응한 서비스 패킷을 상기 클라이언트로 전송 한다.
본 발명의 또 다른 일측에 따르면, 클라이언트로부터 서비스 요청 패킷 및 제1 송신 서버의 제1 서비스 패킷에 대한 서비스 패킷을 수신하는 수신 모듈, 상기 서비스 요청 패킷에 기초하여 제1 세션 정보를 생성하고 상기 제1 세션 정보를 상기 제1 송신 서버로 송신하여 상기 제1 송신 서버가 상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신하도록 제어하고, 상기 서비스 요청 패킷에 기초하여 제2 세션 정보를 생성하고 상기 제2 세션 정보를 제2 송신 서버로 송신하는 송신 모듈, 상기 서비스 패킷에 기초하여 상기 제1 송신 서버의 에러 발생 여부를 판단하는 판단 모듈 및 상기 제1 송신 서버에 에러가 발생한 경우 상기 제2 송 신 서버가 상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신하도록 제어하는 제어부를 포함한다.
이하 첨부된 도면들 및 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일례에 따른 서비스 처리 시스템의 구성도를 도시한 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 서비스 처리 시스템은 수신 서버(120) 및 송신 서버 그룹(125)를 포함한다. 송신 서버 그룹(125)은 복수 개의 송신 서버로 구성된다. 송신 서버(130, 135)는 클라이언트(110)로부터의 서비스 요청 패킷(140)에 응답하는 서비스 패킷(160, 165)을 클라이언트(110)에게 송신할 뿐, 클라이언트(110)로부터 아무런 패킷을 수신하지는 않는다. 이는 외부적으로 수신 서버(120) 및 송신 서버 그룹(125)의 송신서버들(130, 135)이 동일한 대표 IP 주소를 사용하되, 외부로부터 상기 대표 IP 주소로 수신되는 패킷은 수신 서버(120)로만 전달되도록 함으로써 수행될 수 있다.
즉, 외부적으로 대표 IP 주소를 사용하는 서버는 수신 서버(120)로 설정되어 있으면, TCP/IP 네트워크의 동작에 의하여 대표 IP 주소를 목적지 네트워크 주소로 하는 패킷은 수신 서버(120)로만 수신된다.
송신 서버 그룹(125)은 제1 송신 서버(130) 및 제2 송신 서버(135)를 포함한 다. 수신 서버(120), 제1 송신 서버(130) 및 제2 송신 서버(135)는 송수신 네트워크(100)를 구성하며, 클라이언트(110)와 네트워크로 연결된다.
수신 서버(120)는 클라이언트(110)와 네트워크로 연결되어 상기 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신한다. 수신 서버(120)의 IP 주소를 대표 IP 주소로 설정하면, 대표 IP 주소를 목적지 네트워크 주소로 하는 클라이언트(110)로부터의 모든 서비스 요청 패킷(140)은 수신 서버(120)에 의하여 수신되고 송신 서버(130, 135)에는 수신되지 않는다.
수신 서버(120)는 제1 송신 서버(130) 및 제2 송신 서버(135)와 물리적으로 구분되고, 상기 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신하는 역할을 전담하지만, 상기 서비스 요청 패킷(140)에 대한 서비스 패킷(160, 165)을 상기 클라이언트(110)로 송신하지는 않는다. 또한, 송신 서버(130, 135)는 클라이언트(110)로부터 송신된 서비스 요청 패킷을 수신하지 않는다.
즉, 본 발명에서는 수신 서버(120)는 클라이언트(110)로부터의 데이터 수신을 전담하고, 송신 서버(130, 135)는 클라이언트(110)로의 데이터 송신을 전담한다. 이와 같이 본 발명에서는 클라이언트로부터의 데이터 수신과 데이터 송신이 각각 수신 서버(120) 및 송신 서버(130, 135)로 분리되어 수행됨으로써, 전체적인 네트워크 서비스에 있어서 한 지점에 병목이 발생되지 않도록 한다.
이를 위하여, 수신 서버(120)와 송신 서버(130, 135)는 물리적으로 분리되어 있으며, 수신 서버(120)는 제1 송신 서버(130) 및 제2 송신 서버(135)와 각각 네트워크로 연결된다.
예를 들어, 본 발명의 제1 실시예에서는, 수신 서버(120)는 송신 서버 그룹(125)에 포함되어 있는 복수 개의 서버의 리스트를 저장할 수 있다. 특히, 상기 서버의 리스트는 수신 서버(120) 내의 세션 버퍼(미도시)에 저장 될 수 있다.
또한, 본 발명의 제1 실시예에서는, 수신 서버(120)는 클라이언트(110)로부터 수신한 서비스 요청 패킷(140)을 이용하여, 이에 대응하는 세션 정보(150)를 생성하고 상기 송신 서버 그룹(125)을 구성하는 복수 개의 서버 중에서 선택된 하나의 서버 즉, 제1 송신 서버(130)로 상기 세션 정보(150)를 송신한다. 제1 송신 서버(130)는 수신 서버(120)로부터 세션 정보(150)를 수신하고, 클라이언트(110)로부터의 서비스 요청 패킷(140)에 대응한 서비스 패킷(160)을 생성하여 클라이언트(110)로 송신한다.
이때, 본 발명의 제1 실시예에서는, 제1 송신 서버(130)에서 에러(error)가 발생하여 클라이언트(110) 측으로 서비스 패킷(160)을 송신하지 못하게 되는 경우가 발생하면, 수신 서버(120)는 상기 복수 개의 서버에서 선택된 제2 송신 서버(135)로 세션 정보(155)를 송신한다. 따라서, 제2 송신 서버(135)는 세션 정보(155)를 수신하여 클라이언트(110)의 서비스 요청 패킷(140)에 대응한 서비스 패킷(160)을 클라이언트(110)로 송신할 수 있다.
본 발명의 제2 실시예에서는, 수신 서버(120)가 클라이언트(110)로부터 수신한 서비스 요청 패킷(140)을 이용하여, 송신 서버 그룹(125)을 구성하는 복수 개의 서버(130, 135) 모두에게로 세션 정보(150, 155)를 송신한다. 제1 송신 서버(130)는 수신 서버(120)로부터 제1 세션 정보(150)를 수신하고, 클라이언트(110)로부터 의 서비스 요청 패킷(140)에 대응한 서비스 패킷(160)을 생성하여 클라이언트(110)로 송신하지만, 제2 송신 서버(135)는 수신 서버(120)로부터 제2 세션 정보(155)를 수신만 할 뿐, 클라이언트(110) 측으로 서비스 패킷(165)을 생성하여 송신하지 않는다.
이때, 본 발명의 제2 실시예에서는, 제1 송신 서버(130)에서 에러가 발생하여 클라이언트(110) 측으로 서비스 패킷(160)을 송신하지 못하게 되는 경우가 발생하면, 제1 송신 서버(130)가 아닌 제2 송신 서버(135)가 미리 수신한 상기 제2 세션 정보(155)를 이용하여 클라이언트(110) 측으로 서비스 패킷(165)을 송신할 수 있다.
상기 제1 세션 정보(150) 및 상기 제2 세션 정보(155)에는, 상기 제1 송신 서버(130) 또는 상기 제2 송신 서버(135)가 상기 서비스 요청 패킷(140)에 대한 서비스 패킷(160, 165)을 상기 클라이언트로 송신할 것인가의 여부에 대한 정보를 포함하고 있다.
따라서, 본 발명의 제1 실시예 및 제2 실시예에서는, 제1 송신 서버(130)가 수신 서버(120)로부터 수신한 세션 정보(150)에 의해 클라이언트(110) 측으로 서비스 패킷(160)을 제공하다가, 제1 송신 서버(130)에 에러가 발생하더라도, 수신 서버(120)가 제2 송신 서버(135) 측으로 세션 정보(155)를 제공하여 제2 송신 서버(135)가 클라이언트(110) 측으로 서비스 패킷(165)을 제공한다. 그러므로, 클라이언트(110)는 서비스를 제공 중하던 서버에서 에러가 발생한 경우에도 제2 의 서버로부터 계속하여 서비스를 제공 받을 수 있다.
송신 서버 그룹(125)은 복수 개의 송신 서버(130, 135)로 구성된다. 도 1에 도시된 바와 같이, 복수 개의 송신 서버(130, 135)는 제1 송신 서버(130) 및 제2 송신 서버(135)로 구성될 수 있다. 상기 제1 송신 서버(130) 및 제2 송신 서버(135)는 상기 수신 서버(130)로부터 세션 정보(150)를 수신하여 이에 대한 응답으로서, 상기 서비스 요청 패킷(140)에 대한 서비스 패킷(160)을 생성하여 상기 클라이언트(110)로 송신한다.
실제에 있어서 클라이언트(110)는 서로 다른 송신 서버(130, 135)로부터 서비스 패킷(160)을 수신하지만, 이를 하나의 서버로부터 수신한 것처럼 인식되도록 하여야 한다. 이렇게 하여야, 클라이언트(110)의 프로그램에 아무런 수정 없이도, 통상적인 클라이언트-서버 환경과 같이 클라이언트(110)가 동작한다.
특히, 제1 송신 서버(130)에서 에러가 발생하여 클라이언트(110)로 서비스 패킷(160)을 송신하지 못하는 경우에도, 제2 송신 서버(135)가 클라이언트(110) 측으로 서비스 패킷(165)을 송신할 수 있으며, 클라이언트(110)가 하나의 서버로부터 서비스 패킷을 수신한 것처럼 인식될 수 있도록 한다.
클라이언트(110)는 상기 수신 서버(120)로 서비스 요청 패킷(140)을 송신한다. 상기 서비스 요청 패킷(140)에는 소스 네트워크 주소로서 클라이언트(110)의 네트워크 주소, 목적지 네트워크 주소로서 상기 송수신 네트워크(100)의 주소인 대표 네트워크 주소, 소스 포트(port) 번호로서 클라이언트(110)의 포트 번호, 목적지 포트 번호로서 송수신 네트워크(100)의 포트 번호를 사용한다.
이때, 상기 송수신 네트워크(100)의 주소인 대표 네트워크 주소는 상기 수신 서버(120)의 주소인데, 이와 같이 상기 수신 서버(120)의 주소를 대표 네트워크 주소로 취함으로써, 상기 클라이언트(110)가 상기 수신 서버(120)와 송신 서버 그룹(125)으로 이루어진 송수신 네트워크(100)를 하나의 서버로서 인식할 수 있으며, 상기 대표 네트워크 주소를 목적지 네트워크 주소로 하는 서비스 요청 패킷(140)이 상기 송수신 네트워크(100)의 수신 서버(120)로 수신 될 수 있다.
종래에는 클라이언트로부터의 서비스 요청을 수신하여 그에 상응하는 응답까지의 모든 송수신 과정이 하나의 서버에서 이루어지는 것과 비교하여, 본 발명에 따른 수신 서버(120)는 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신하지만 상기 서비스 요청 패킷(140)에 서비스 패킷(160)을 송신하지 않는다.
또한, 송신 서버 그룹(125)은 상기 클라이언트(110)로 서비스 패킷(160)을 송신할 수 있지만 클라이언트(110)로부터의 서비스 요청 패킷(140)은 수신하지 않는다. 이와 같이 본 발명에 따른 서비스 처리 시스템은 클라이언트(110)로부터의 서비스 요청 패킷(140)의 수신을 담당하는 수신 서버(120)와 상기 클라이언트(110)로 서비스 패킷의 송신을 담당하는 송신 서버 그룹(125)이 분리되어 수신과 송신 과정을 각각 전담한다.
특히, 본 발명의 제1 실시예에서는, 클라이언트(110)에서 서비스 요청 패킷(140)을 전송하면, 수신 서버(120)는 상기 클라이언트(110)로부터 상기 서비스 요청 패킷(140)을 수신하며, 그에 대응한 세션 정보(150)를 생성하여 상기 송신 서버 그룹(130)중에서 하나의 송신 서버 즉, 제1 송신 서버(130)를 선택하여 세션 정보(150)를 송신한다.
그러나, 제1 송신 서버(130)에서 에러가 발생하여 클라이언트(110) 측으로 서비스 패킷(160)을 송신할 수 없는 경우에는, 수신 서버(120)가 제2 송신 서버(135)로 세션 정보(155)를 송신하여 제2 송신 서버(135)로부터 클라이언트(110) 측으로 서비스 패킷(165)을 송신할 수 있도록 한다.
또한, 본 발명의 제2 실시예에서는, 클라이언트(110)에서 서비스 요청 패킷(140)을 전송하면, 수신 서버(120)는 상기 클라이언트(110)로부터 상기 서비스 요청 패킷(140)을 수신하며, 복수 개의 서버 중에서 선택된 제1 송신 서버(130)로 제1 세션 정보(150)를 송신하고, 상기 제1 송신 서버가 아닌 제2 송신 서버(135)로 제2 세션 정보(155)를 송신한다.
제1 송신 서버(130)에서 에러가 발생하여 클라이언트(110) 측으로 서비스 패킷(160)을 송신할 수 없는 경우에는, 제2 송신 서버(135)가 미리 수신한 상기 제2 세션 정보(155)를 이용하여 클라이언트(110) 측으로 서비스 패킷(165)을 송신할 수 있도록 한다.
수신 서버(120)로부터 송신 서버 그룹(125) 내의 제1 송신서버(130) 및 제2 송신 서버(135)로 송신하는 세션 정보(150, 155)에는, 제1 송신 서버(130) 및 제2 송신 서버(135)가 각각 상기 서비스 요청 패킷(140)에 대응하여 생성할 서비스 패킷에 관한 정보가 포함되어 있다.
또한, 상기 세션 정보(150, 155)는 상기 서비스 요청 패킷(140)의 소스 네트워크 주소를 포함하는데, 이때 상기 소스 네트워크 주소라 함은 상기 클라이언트(110)의 네트워크 주소를 말하며, 상기 세션 정보(150, 155)는 상기 서비스 요청 패킷(140)의 소스 포트 번호를 포함하는데, 상기 소스 포트 번호라 함은 상기 클라이언트(110)의 포트 번호를 말한다.
또한, 상기 세션 정보(150, 155)는 상기 서비스 요청 패킷(140)의 목적지 포트 번호를 포함하며, 상기 목적지 포트 번호는 송수신 네트워크(100)의 대표 포트 번호인 수신 서버(120)의 포트 번호를 말한다.
송신 서버 그룹(130)에 포함되어 있는 제1 송신 서버(130) 및 제2 송신 서버(135)는 상기 수신 서버(120)로부터 세션 정보(150, 155)를 각각 수신할 수 있다. 상기 세션 정보(150, 155)에는 요청 패킷의 네트워크 주소 및 포트 번호가 포함되어 있어, 송신 서버(130)가 클라이언트(110)로 서비스 패킷(160, 165)을 생성하여 송신하는 데에 사용된다.
제1 송신 서버(130) 및 제2 송신 서버(135)로부터 클라이언트(110)로 전송되는 서비스 패킷(160, 165)은, 서비스 패킷(160, 165)의 소스 포트 번호로서 세션 정보(150, 155)의 목적지 포트 번호인 송수신 네트워크(100)의 대표 포트 번호, 즉 수신 서버(120)의 포트 번호를 취하고, 서비스 패킷(160, 165)의 목적지 포트 번호로서 상기 세션 정보(150, 155)의 소스 포트 번호인 클라이언트(110)의 포트 번호를 취하고, 서비스 패킷(160, 165)의 소스 네트워크 주소로서 세션 정보(150, 155)의 목적지 네트워크 주소인 송수신 네트워크(100)의 대표 네트워크 주소, 즉 수신 서버(120)의 주소를 취하고, 서비스 패킷(160, 165)의 목적지 네트워크 주소로서 상기 세션 정보의 소스 네트워크 주소인 클라이언트(110)의 네트워크 주소를 취하여 구성된다.
다시 말해, 송신 서버(130)는 상기 세션 정보(150, 155)에 기초하여, 클라이언트(110)로부터 수신한 서비스 요청 패킷(140)의 소스 네트워크 주소를 서비스 패킷(160, 165)의 목적지 네트워크 주소로서 할당하고, 요청 패킷의 목적지 네트워크 주소를 서비스 패킷(160, 165)의 소스 네트워크 주소로 할당하고, 서비스 요청 패킷(140)의 소스 포트 번호를 서비스 패킷(160, 165)의 목적지 포트 번호로 할당하고, 서비스 요청 패킷(140)의 목적지 포트 번호를 서비스 패킷(160, 165)의 소스 포트 번호로 할당하여 서비스 패킷(160, 165)을 생성한다.
이렇게 함으로써, 클라이언트(110)는 송신 서버(130, 135)로부터 수신한 서비스 패킷(160, 165)을 자신이 서비스 요청 패킷(140)을 보낸 수신 서버(120)가 송신한 것으로 인식하게 된다.
즉, 클라이언트(110)는 송신 서버 및 수신 서버의 분리를 전혀 인식하지 못한 채 서비스 요청 패킷(140)에 대한 서비스 패킷(160, 165)을 수신할 수 있다.
따라서, 클라이언트(110)가 제1 송신 서버(130)로부터 서비스 패킷(160)의 수신 중에, 상기 제1 송신 서버(130)에서 에러가 발생하여 클라이언트(110) 측으로 서비스 패킷(160)이 송신되지 않는 경우에, 클라이언트(110)가 제2 송신 서버(135)로부터 송신된 서비스 패킷(165)을 수신할 수 있다.
그러므로, 클라이언트(110)는 프로그램의 별도의 수정 없이도 본 발명에 따라 원하는 서비스를 받을 수 있으며, 클라이언트(110) 측으로 서비스 패킷(160)을 송신하던 특정 송신 서버(제1 송신 서버: 130)에서의 에러 발생시에도 타 이동통신 단말기(제2 송신 서버: 135)로부터 서비스 패킷(165)을 수신할 수 있으므로, 보다 안정성 높은 서비스 환경을 제공할 수 있다.
제1 송신 서버(130)는 클라이언트(110)로 서비스 패킷(160)을 송신하며, 제1 송신 서버(130)에서 에러가 발생하는 경우에는 제2 송신 서버(135)에서 서비스 패킷(165)를 송신한다.
제1 송신 서버(130) 및 제2 송신 서버(135)에서 생성되어 클라이언트(110)로 송신되는 서비스 패킷(160)에는 클라이언트(110)에서 각 패킷의 식별이 가능하도록 시퀀스 넘버가 부여되어 있다.
클라이언트(110)는 상기 제1 송신 서버(130) 및 제2 송신 서버(135)로부터 시퀀스 넘버가 부여되어 있는 서비스 패킷(160, 165)을 수신한다. 이때, 클라이언트(110)는 소스 네트워크의 주소가 상기 수신 서버(120)의 주소이고 목적지 네트워크 주소가 클라이언트(110)로 되어 있는 서비스 패킷(160, 165)을 수신하므로, 클라이언트(110) 측에서는 하나의 서버에서 패킷의 송수신이 이루어지는 기존의 서버와의 차이점을 알 수 없다.
또한, 클라이언트(110)는 수신한 서비스 패킷(160, 165)에 대하여 수신 서버(120) 측으로 응답 패킷(미도시)을 송신한다. 응답 패킷(미도시)에는 송신 서버로부터 서비스 패킷(160, 165)이 제대로 수신되었는가의 여부가 포함된 정보가 포함되어 있다.
도 2는 본 발명의 일례에 따른 수신 서버에 저장되어 있는 서버 리스트를 도시한 도이다.
도 2에 도시된 바와 같이, 수신 서버(120)에 저장되어 있는 서버 리스트에 는, 제1 송신 서버(130)에서 에러가 발생하여 클라이언트(110) 측으로 서비스 패킷(160)을 송신 하지 못하는 경우에, 제1 송신 서버(130)를 대신하여 클라이언트(110) 측으로 서비스 패킷(160)을 송신할 수 있는 복수 개의 송신 서버가 저장되어 있다.
수신 서버(120)는 클라이언트(110)로부터 응답 패킷을 수신하여 송신 서버 그룹(125)에 포함되어 있는 복수 개의 각 서버의 상태를 알 수 있으며, 복수 개의 각 서버의 목록과 상태가 기록되어 있는 서버 리스트를 지속적으로 관리 및 저장한다.
따라서, 제1 송신 서버(130)에서 에러가 발생하여 클라이언트(110) 측으로 서비스 패킷(160)을 송신하지 못하는 경우에는, 도 2의 서버리스트에 있는 제2 송신 서버(135) 또는 제3 송신 서버 등의 다른 정상 상태의 송신 서버에서 서비스 패킷이 송신되므로, 클라이언트(110)는 안정적으로 원하는 서비스를 받을 수 있다.
도 3는 본 발명에 따른 서비스 요청 패킷을 도시한 도면이고, 도 4는 본 발명에 따른 세션 정보를 도시한 도면이며, 도 5는 본 발명에 따른 서비스 패킷을 도시한 도면이다.
클라이언트(110)로부터 송신되어 수신 서버(120)에서 수신하는 서비스 요청 패킷(140) 및 응답 패킷(미도시)은 도 3에 도시된 바와 같이, 소스 네트워크 주소(301), 목적지 네트워크 주소(302), 소스 포트 번호(303), 목적지 포트 번호(304) 및 데이터 필드(305)로 구성된다.
소스 네트워크 주소(301)는 클라이언트(110)의 네트워크 주소이며, 목적지 네트워크 주소(302)는 상기 서비스 요청 패킷(140)을 수신하는 송수신 네트워크(100)의 주소이며, 소스 포트 번호(303)는 클라이언트(110)의 포트 번호이고, 목적지 포트 번호(304)는 상기 서비스 요청 패킷을 수신하는 송수신 네트워크(100)의 포트 번호이다.
또한, 서비스 요청 패킷(140) 및 응답 패킷(미도시)에는 송신 서버(130, 135)로부터 수신한 서비스 패킷의 전송률 및 에러 발생 정보 등이 포함되어 있으므로, 수신 서버(120)가 복수 개의 서버로 구성된 서버리스트를 지속적으로 관리 및 저장할 수 있으며, 상기 서비스 패킷의 전송률 및 에러 발생 정보 등이 수신 서버(120)가 송신 서버(130, 135)로 송신할 세션 정보(150, 155)의 생성시에 필요한 정보로 사용된다.
도 4에 도시된 바와 같이, 상기 세션 정보(150, 155)는 상기 제1 송신 서버(130) 및 제2 송신 서버(135)가 각각 상기 서비스 요청 패킷(140)에 대응하여 생성할 서비스 패킷(160, 165)에 관한 정보를 포함하고 있다.
세션 정보(150, 155)는 패킷의 데이터 필드에 상기 서비스 요청 패킷의 소스 네트워크 주소(411), 소스 포트 번호(412), 목적지 포트 번호(413) 및 시퀀스 넘버(414)를 포함하여 구성된다. 또한, 세션 정보(150)는 서비스 패킷(160, 165)의 송신을 위한 연결 옵션, 전송 속도 등의 정보를 포함할 수 있다.
수신 서버(120)가 클라이언트(110)로부터 수신한 서비스 요청 패킷(140) 및 응답 패킷(미도시)에 포함되어 있는 정보를 이용하여 세션 정보(150, 155)를 생성한다.
따라서, 수신 서버(120)로부터 세션 정보(150, 155)를 수신한 송신 서버(130, 135)는, 수신 서버(120)의 제어에 의하여 클라이언트(110) 측으로 서비스 패킷(160, 165)을 송신할 수 있다.
도 5에 도시된 바와 같이, 송신 서버(130)는 상기 세션 정보(150, 155)에 기초하여, 데이터 필드(256)와 함께, 클라이언트(110)로부터 수신한 서비스 요청 패킷의 목적지 네트워크 주소(302)를 서비스 패킷의 소스 네트워크 주소(521)로서 할당하고, 요청 패킷의 소스 네트워크 주소(301)를 목적지 네트워크 주소(522)로 할당하고, 서비스 요청 패킷의 목적지 포트 번호(304)를 서비스 패킷의 소스 포트 번호(523)로 할당하며, 서비스 요청 패킷의 소스 포트 번호(303)를 서비스 패킷의 목적지 포트 번호(524)로 할당하여 서비스 패킷(160, 165)을 구성한다.
클라이언트(110)는 상기 송신 서버(130, 135)로부터 서비스 패킷(160, 165)을 수신하고, 수신된 서비스 패킷(160, 165)의 시퀀스 넘버(525)를 참조하여 데이터를 구성한다.
또한, 서비스 패킷(160, 165)을 수신하였음을 통지하는 응답 패킷(미도시)을 상기 송수신 네트워크(100) 전송하며, 수신을 전담하는 수신 서버(120)는 수신 서버(120)는 클라이언트(110)로부터 응답 패킷을 수신하여 송신 서버 그룹(125)에 포함되어 있는 복수 개의 각 서버의 상태를 알 수 있으며, 복수 개의 각 서버의 목록과 상태가 기록되어 있는 서버 리스트를 지속적으로 관리 및 저장한다.
따라서, 수신 서버(120)는 도 2에 도시된 바와 같이, 응답 패킷을 이용하여 복수 개의 서버로 구성된 서버리스트를 지속적으로 관리 및 저장할 수 있으므로, 특정 송신 서버의 에러 발생 시에 다른 송신 서버가 클라이언트(110) 측으로 서비스를 제공 할 수 있다.
도 6은 본 발명에 따른 일례에 따른 수신서버의 구성도를 도시한 도면이다.
본 발명의 수신 서버(600)를 제1 실시예와 제2 실시예로 구분하여 설명하면 다음과 같다.
도 6에 도시된 바와 같이, 본 발명에 제1 실시예에 따른 수신 서버(600)는 수신 모듈(610), 판단 모듈(620), 제어부(630), 송신 모듈(160)을 포함하여 구성된다.
본 발명의 제1 실시예에 따른 수신 모듈(610)은 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신할 수 있으며, 제1 송신 서버(130)의 서비스 패킷(160)에 대한 응답 패킷(미도시)을 수신할 수 있다. 상기 서비스 요청 패킷(140)은 클라이언트(110)가 서비스의 제공을 받기 위하여 송수신 네트워크(100) 측으로 송신한 것이다.
또한, 상기 응답 패킷에는 클라이언트(110)가 제1 송신 서버(130)로부터 서비스 패킷(160)을 수신하였는가의 여부에 관한 정보가 포함되어 있다. 즉, 응답 패킷에는 제1 송신 서버(130)로부터 송신된 서비스 패킷(160)의 수신이 정상적으로 이루어졌는가에 관한 정보가 포함되어 있다.
판단 모듈(620)은 수신 모듈(610)이 클라이언트(110)로부터 수신한 응답 패킷에 기초하여 제1 송신 서버(130)의 에러 발생 여부를 판단한다. 제1 송신 서버(130)로부터 송신된 서비스 패킷(160)이 클라이언트(110)로 정상적으로 수신되지 않는 경우에는, 클라이언트(110)에서 송신된 응답 패킷에 제1 송신 서버(130)에서 에러가 발생하였음을 나타내는 정보가 포함되어 있다.
따라서, 판단 모듈(620)은 응답 패킷의 정보를 분석하여 제1 송신 서버(130)의 에러 발생 여부를 판단할 수 있다.
제어부(630)는 판단 모듈(620)에서의 판단 결과, 제1 송신 서버(130)에서 에러가 발생하였다고 판단되는 경우에, 세션 정보(155)가 제2 송신 서버(135)로 송신되도록 명령 한다.
세션 정보(155)가 포함하는 정보는, 서비스 요청 패킷(140)의 소스 네트워크 주소, 서비스 요청 패킷(140)의 포트 번호, 서비스 요청 패킷의 목적지 포트 번호 및 서비스 요청 패킷의 목적지 네트워크 주소 등이 있다. 또한, 세션 정보(155)는 서비스 요청 패킷의 커넥션 시퀀스 넘버, 커넥션 연결 옵션 및 전송 속도 등의 정보가 포함될 수 있다.
따라서, 상기 세션 정보(155)를 수신하는 제2 송신 서버(135)는 제1 송신 서버(130)의 에러 발생시에, 상기 세션 정보(155)에 포함되어 있는 정보들을 이용하여 클라이언트(110) 측으로 서비스 패킷(165)을 송신할 수 있다.
송신 모듈(640)은 상기 판단 모듈(620)의 판단 결과에 의해 세션 정보(155)를 생성하고, 상기 제어부(630)의 명령에 의해 제2 송신 서버(135) 측으로 생성된 세션 정보(155)를 송신한다.
또한, 수신 서버(600)는 세션 버퍼(650)를 더 포함할 수 있다. 세션 버퍼(650)에는 판단 모듈(620)의 판단 결과에 의해 송신 모듈(640)에서 생성된 세션 정 보(155)를 저장할 수 있으며, 클라이언트(110)로부터 수신한 응답 패킷(140)의 정보를 이용하여 복수 개의 송신 서버(130, 135) 들의 상태 정보를 포함하고 있는 서버 리스트를 저장 및 관리할 수 있다.
본 발명의 수신 서버(600)의 제2 실시예를 설명하면 다음과 같다.
도 6에 도시된 바와 같이, 본 발명에 따른 제2 실시예에 또한 제1 실시예와 동일하게, 수신 서버(600)는 수신 모듈(610), 판단 모듈(620), 제어부(630), 송신 모듈(160)을 포함하여 구성된다.
본 발명의 제2 실시예에 따른 수신 모듈(610)은 클라이언트(110)로부터 서비스 요청 패킷(140)을 수신할 수 있으며, 제1 송신 서버(130)의 서비스 패킷(160)에 대한 응답 패킷(미도시)을 수신할 수 있다.
판단 모듈(620)은 수신 모듈(610)이 클라이언트(110)로부터 수신한 응답 패킷에 기초하여 제1 송신 서버(130)의 에러 발생 여부를 판단한다.
제1 송신 서버(130)로부터 송신된 서비스 패킷(160)이 클라이언트(110)로 정상적으로 수신되지 않는 경우에는, 클라이언트(110)에서 송신된 응답 패킷에 제1 송신 서버(130)에서 에러가 발생하였음을 나타내는 정보가 포함되어 있으므로, 판단 모듈(620)은 응답 패킷의 정보를 분석하여 제1 송신 서버(130)의 에러 발생 여부를 판단할 수 있다.
제어부(630)는 판단 모듈(620)에서의 판단 결과, 제1 송신 서버(130)에서 에러가 발생하였다고 판단되는 경우에, 제2 송신 서버(135)가 서비스 패킷(165)을 송신하도록 제어 한다.
세션 정보(155)가 포함하는 정보는, 서비스 요청 패킷(140)의 소스 네트워크 주소, 서비스 요청 패킷(140)의 포트 번호, 서비스 요청 패킷의 목적지 포트 번호 및 서비스 요청 패킷의 목적지 네트워크 주소 등이 있다. 또한, 세션 정보(155)는 서비스 요청 패킷의 커넥션 시퀀스 넘버, 커넥션 연결 옵션 및 전송 속도 등의 정보를 포함 할 수 있다.
제2 송신 서버(135)는 제1 송신 서버(130)의 에러 발생시에, 상기 세션 정보(155)에 포함되어 있는 정보들을 이용하여 클라이언트(110) 측으로 서비스 패킷(165)을 송신할 수 있다.
송신 모듈(640)은 수신 모듈(610)이 수신한 서비스 요청 패킷(140)에 기초하여 제1 세션 정보(150)를 생성하여 제1 송신 서버(130)로 송신하고, 제1 송신 서버(130)가 서비스 패킷(160)을 클라이언트(110)로 송신하도록 제어한다.
또한, 송신 모듈(640)은 수신 모듈(610)이 수신한 서비스 요청 패킷(140)에 기초하여 제2 세션 정보(155)를 생성하여 제2 송신 서버(135)로 송신한다.
세션 정보(155)가 포함하는 정보는, 서비스 요청 패킷(140)의 소스 네트워크 주소, 서비스 요청 패킷(140)의 포트 번호, 서비스 요청 패킷의 목적지 포트 번호 및 서비스 요청 패킷의 목적지 네트워크 주소 등이 있다. 또한, 세션 정보(155)는 서비스 요청 패킷의 커넥션 시퀀스 넘버, 커넥션 연결 옵션 및 전송 속도 등의 정보를 포함 할 수 있다.
특히, 제2 세션 정보(155)에는 상기 제1 송신 서버(130)가 정상적으로 동작할 경우에는 서비스 패킷(165)을 클라이언트(110)로 송신하지 않도록 하는 정보가 포함되어 있다. 또한, 제2 세션 정보(155)에는 제1 송신 서버(130)에 에러가 발생한 경우에는 제1 송신 서버(130)를 대신하여 클라이언트(110)로 서비스 패킷(165)을 송신하도록 하는 정보가 포함되어 있으므로, 제2 송신 서버(135)는 송신 모듈(640)에서 생성되어 송신된 제2 세션 정보(155)를 수신하여 클라이언트(110) 측으로 서비스 패킷(165)을 송신할 수 있다.
따라서, 클라이언트(110)는 서비스 패킷(160)을 제공하던 제1 송신 서버(130)의 에러 발생시에, 수신 서버(120)의 판단 및 제어에 의해서 제2 송신 서버(140)로부터 서비스 패킷(165)을 수신할 수 있으므로, 보다 안정성 높은 서비스 처리 시스템을 제공받을 수 있다.
본 발명에 따르면, L4, L7 스위치와 같은 부하 분산 장치의 사용 없이도 서버에 집중되는 부하를 분산시켜 병목 현상을 해소하고 효율적인 데이터 통신이 가능하다.
또한 본 발명에 따르면, 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고, 클라이언트로의 데이터 송신은 송신 서버가 전담하므로, 특정한 지점에 병목 현상이 발생하지 않는 분산 시스템이 제공된다. 특히, 종래의 L4 스위치 등이 수신되는 패킷뿐 아니라 송신하는 패킷도 모두 L4 스위치를 통하여야 하던 것에 비하여, 본 발명은 수신되는 패킷은 수신 서버로만 수신되고, 송신되는 패킷은 상기 수신 서버를 통하지 않고, 바로 송신 서버에 의하여 송신되므로, 종래기술에 따른 병목 현상의 문제가 해결된다.
또한 본 발명에 따르면, 송신 서버와 수신 서버가 분리된 분산 환경에서 송신 서버의 장애 발생 시에도 사용자에게 서비스 장애를 인지하지 못하게 하면서 서비스를 계속 제공할 수 있다.
또한 본 발명에 따르면, 클라이언트로부터의 데이터 수신은 수신 서버가 전담하고, 클라이언트로의 데이터 송신은 송신 서버가 전담하는 구성에 있어서, 클라이언트로부터의 서비스 요청 패킷에 응답하여, 복수 개의 송신 서버 중에 하나의 송신 서버가 서비스 요청 패킷에 대응한 서비스 패킷을 클라이언트로 송신 중에 에러가 발생하더라도, 상기 복수 개의 송신 서버 중에서 에러가 발생한 하나의 송신 서버를 제외한 나머지 송신 서버에서 계속하여 서비스 패킷을 송신할 수 있으므로, 클라이언트는 이를 하나의 서버로부터 송신된 서비스 패킷들로 인식할 수 있다.
또한, 본 발명을 이용하면 분산된 네트워크 자원을 하나의 네트워크 자원처럼 인식하여 사용하는 네트워크 가상화(network virtualization)가 가능하다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (31)

  1. 복수 개의 서버; 및
    상기 복수 개의 서버와 물리적으로 구분되고, 상기 복수 개의 서버와 네트워크로 연결되어, 클라이언트로부터 서비스 요청 패킷을 수신하고 상기 서비스 요청 패킷에 대응한 세션 정보를 생성하여 상기 복수 개의 서버 중에서 선택된 제1 송신 서버에게 상기 세션 정보를 송신하는 수신 서버
    를 포함하고,
    상기 제1 송신 서버는 상기 세션 정보에 따라, 상기 서비스 요청 패킷에 대응한 서비스 패킷을 생성하여 상기 클라이언트로 전송하고,
    상기 수신 서버는 상기 제1 송신 서버에서 에러가 발생 하는 경우, 상기 복수 개의 서버로부터 선택된 제2 송신 서버로 상기 세션 정보를 송신하고, 상기 제2 송신 서버는 상기 세션 정보를 수신하여 상기 서비스 요청 패킷에 대응한 서비스 패킷을 상기 클라이언트로 전송하는 것을 특징으로 하는 서비스 처리 시스템.
  2. 제1항에 있어서, 상기 세션 정보는,
    상기 복수 개의 송신 서버의 각각이 상기 서비스 요청 패킷에 대응하여 생성할 서비스 패킷에 관한 정보를 포함하고 있는 것을 특징으로 하는 서비스 처리 시스템.
  3. 제1항에 있어서, 상기 수신 서버는,
    상기 복수 개의 서버의 리스트를 저장하는 것을 특징으로 하는 서비스 처리 시스템.
  4. 제1항에 있어서,
    상기 서비스 요청 패킷에 대한 상기 서비스 패킷의 소스 주소는 상기 송신 서버 및 상기 수신 서버에 할당된 대표 네트워크 주소이고, 상기 대표 네트워크 주소를 목적지 네트워크 주소로 하는 패킷은 상기 수신 서버에 수신되는 것을 특징으로 하는 서비스 처리 시스템.
  5. 제1항에 있어서,
    상기 서비스 요청 패킷에 대응한 상기 세션 정보는 상기 서비스 요청 패킷의 소스 네트워크 주소 및 상기 서비스 요청 패킷의 소스 포트 번호를 포함하는 것을 특징으로 하는 서비스 처리 시스템.
  6. 제5항에 있어서,
    상기 서비스 요청 패킷에 대응한 상기 세션 정보는 상기 서비스 요청 패킷의 목적지 포트 번호를 포함하는 것을 특징으로 하는 서비스 처리 시스템.
  7. 제6항에 있어서,
    상기 서비스 요청 패킷에 대한 상기 서비스 패킷의 소스 포트 번호는 상기 세션 정보에 포함된 상기 서비스 요청 패킷의 목적지 포트 번호이고, 상기 서비스 패킷의 목적지 포트 번호는 상기 세션 정보에 포함된 상기 서비스 요청 패킷의 소스 포트 번호인 것을 특징으로 하는 서비스 처리 시스템.
  8. 제1항에 있어서,
    상기 서비스 요청 패킷에 대응한 상기 세션 정보는, 상기 서비스 패킷의 송신을 위한 시퀀스 넘버, 연결 옵션, 전송 속도 등의 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 서비스 처리 시스템.
  9. 제1항에 있어서, 상기 수신 서버는,
    상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신하지 않는 것을 특징으로 하는 서비스 처리 시스템.
  10. 제1항에 있어서, 상기 송신 서버는,
    상기 클라이언트로부터 상기 서비스 요청 패킷을 수신하지 않는 것을 특징으로 하는 서비스 처리 시스템.
  11. 클라이언트로부터 서비스 요청 패킷 및 제1 송신 서버의 서비스 패킷에 대한 서비스 패킷을 수신하는 수신 모듈;
    상기 서비스 요청 패킷에 기초하여 세션 정보를 생성하고 상기 세션 정보를 상기 제1 송신 서버로 송신하는 송신 모듈;
    상기 서비스 패킷에 기초하여 상기 제1 송신 서버의 에러 발생 여부를 판단하는 판단 모듈; 및
    상기 제1 송신 서버에 에러가 발생한 경우 상기 세션 정보를 제2 송신 서버로 송신하는 제어부
    를 포함하는 것을 특징으로 하는 수신 서버.
  12. 제11항에 있어서, 상기 세션 정보는,
    상기 서비스 요청 패킷의 소스 네트워크 주소, 상기 서비스 요청 패킷의 소스 포트 번호, 및 상기 서비스 요청 패킷의 목적지 포트 번호를 포함하는 것을 특징으로 하는 수신 서버.
  13. 제12항에 있어서, 상기 세션 정보는,
    상기 서비스 요청 패킷의 목적지 네트워크 주소를 더 포함하는 것을 특징으로 하는 수신 서버.
  14. 제12항에 있어서, 상기 세션 정보는,
    상기 서비스 요청 패킷의 커넥션 시퀀스 넘버, 커넥션 연결 옵션, 및 전송 속도 중 적어도 하나를 포함하는 것을 특징으로 하는 수신 서버.
  15. 제11항에 있어서,
    상기 세션 정보를 저장하는 세션 버퍼
    를 더 포함하는 것을 특징으로 하는 수신 서버.
  16. 복수 개의 서버; 및
    상기 복수 개의 서버와 물리적으로 구분되고, 상기 복수 개의 서버와 네트워크로 연결되어, 클라이언트로부터 서비스 요청 패킷을 수신하고 상기 서비스 요청 패킷에 대응한 제1 세션 정보 및 제2 세션 정보를 생성하고 상기 제1 세션 정보를 상기 복수 개의 서버 중에서 선택된 제1 송신 서버로 송신하고, 상기 제2 세션 정보를 상기 제1 송신 서버가 아닌 제2 송신 서버에게 송신하는 수신 서버
    를 포함하고,
    상기 제1 송신 서버는 상기 제1 세션 정보에 따라, 상기 서비스 요청 패킷에 대응한 서비스 패킷을 생성하여 상기 클라이언트로 전송하고,
    상기 제1 송신 서버에서 에러가 발생하는 경우에, 상기 제2 송신 서버는, 상기 수신 서버로부터 수신한 상기 제2 세션 정보에 따라 상기 서비스 요청 패킷에 대응한 서비스 패킷을 상기 클라이언트로 전송하는 것을 특징으로 하는 서비스 처리 시스템.
  17. 제16항에 있어서, 상기 제1 세션 정보 및 상기 제2 세션 정보는,
    상기 서비스 요청 패킷에 대응하여 상기 클라이언트로 송신될 서비스 패킷에 관한 정보를 포함하고 있는 것을 특징으로 하는 서비스 처리 시스템.
  18. 제16항에 있어서, 상기 제1 세션 정보 및 상기 제2 세션 정보는,
    상기 제1 송신 서버 또는 상기 제2 송신 서버가 상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신할지 여부에 대한 정보를 포함하는 것을 특징으로 하는 서비스 처리 시스템.
  19. 제16항에 있어서,
    상기 서비스 요청 패킷에 대한 상기 서비스 패킷의 소스 주소는 상기 제1 송신 서버, 상기 제2 송신 서버 및 상기 수신 서버에 할당된 대표 네트워크 주소이고, 상기 대표 네트워크 주소를 목적지 네트워크 주소로 하는 패킷은 상기 수신 서버에 수신되는 것을 특징으로 하는 서비스 처리 시스템.
  20. 제16항에 있어서,
    상기 제1 세션 정보 및 상기 제2 세션 정보는 상기 서비스 요청 패킷의 소스 네트워크 주소 및 상기 서비스 요청 패킷의 소스 포트 번호를 포함하는 것을 특징으로 하는 서비스 처리 시스템.
  21. 제20항에 있어서,
    상기 제1 세션 정보 및 상기 제2 세션 정보는 상기 서비스 요청 패킷의 목적지 포트 번호를 더 포함하는 것을 특징으로 하는 서비스 처리 시스템.
  22. 제21항에 있어서,
    상기 서비스 패킷의 소스 포트 번호는 상기 제1 세션 정보 또는 상기 제2 세션 정보에 포함된 상기 서비스 요청 패킷의 목적지 포트 번호이고, 상기 서비스 패킷의 목적지 포트 번호는 상기 제1 세션 정보 또는 상기 제2 세션 정보에 포함된 상기 서비스 요청 패킷의 소스 포트 번호인 것을 특징으로 하는 서비스 처리 시스템.
  23. 제21항에 있어서,
    상기 제1 세션 정보 및 상기 제2 세션 정보는, 상기 서비스 패킷의 송신을 위한 시퀀스 넘버, 연결 옵션, 전송 속도 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 서비스 처리 시스템.
  24. 제16항에 있어서, 상기 수신 서버는,
    상기 서비스 요청 패킷에 대한 서비스 패킷을 생성하여 상기 클라이언트로 송신하지 않는 것을 특징으로 하는 서비스 처리 시스템.
  25. 제16항에 있어서, 상기 송신 서버는,
    상기 클라이언트로부터 상기 서비스 요청 패킷을 수신하지 않는 것을 특징으로 하는 서비스 처리 시스템.
  26. 클라이언트로부터 서비스 요청 패킷 및 제1 송신 서버의 제1 서비스 패킷에 대한 서비스 패킷을 수신하는 수신 모듈;
    상기 서비스 요청 패킷에 기초하여 제1 세션 정보를 생성하고 상기 제1 세션 정보를 상기 제1 송신 서버로 송신하여 상기 제1 송신 서버가 상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신하도록 제어하고, 상기 서비스 요청 패킷에 기초하여 제2 세션 정보를 생성하고 상기 제2 세션 정보를 제2 송신 서버로 송신하는 송신 모듈;
    상기 서비스 패킷에 기초하여 상기 제1 송신 서버의 에러 발생 여부를 판단하는 판단 모듈; 및
    상기 제1 송신 서버에 에러가 발생한 경우 상기 제2 송신 서버가 상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신하도록 제어하는 제어부
    를 포함하는 것을 특징으로 하는 수신 서버.
  27. 제26항에 있어서, 상기 제2 세션 정보는,
    상기 제2 송신 서버가 상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신하지 않도록 하는 정보를 포함하는 것을 특징으로 하는 수신 서버.
  28. 제26항에 있어서, 상기 제어부는,
    상기 제1 송신 서버에 에러가 발생한 경우 상기 제1 송신 서버가 상기 서비스 요청 패킷에 대한 서비스 패킷을 상기 클라이언트로 송신하지 않도록 제어하는 것을 특징으로 하는 수신 서버.
  29. 제26항에 있어서, 상기 제1 세션 정보 및 상기 제2 세션 정보는,
    상기 서비스 요청 패킷의 소스 네트워크 주소, 상기 서비스 요청 패킷의 소스 포트 번호, 및 상기 서비스 요청 패킷의 목적지 포트 번호를 포함하는 것을 특징으로 하는 수신 서버.
  30. 제29항에 있어서, 상기 제1 세션 정보 및 상기 제2 세션 정보는,
    상기 서비스 요청 패킷의 목적지 네트워크 주소를 더 포함하는 것을 특징으로 하는 수신 서버.
  31. 제29항에 있어서, 상기 제1 세션 정보 및 상기 제2 세션 정보는,
    상기 서비스 요청 패킷의 커넥션 시퀀스 넘버, 커넥션 연결 옵션, 및 전송 속도 중 적어도 하나를 포함하는 것을 특징으로 하는 수신 서버.
KR1020070010249A 2007-01-31 2007-01-31 서비스 처리 시스템 KR100922306B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070010249A KR100922306B1 (ko) 2007-01-31 2007-01-31 서비스 처리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070010249A KR100922306B1 (ko) 2007-01-31 2007-01-31 서비스 처리 시스템

Publications (2)

Publication Number Publication Date
KR20080071846A true KR20080071846A (ko) 2008-08-05
KR100922306B1 KR100922306B1 (ko) 2009-10-21

Family

ID=39882448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070010249A KR100922306B1 (ko) 2007-01-31 2007-01-31 서비스 처리 시스템

Country Status (1)

Country Link
KR (1) KR100922306B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101421848B1 (ko) * 2009-09-30 2014-07-24 알까뗄 루슨트 엔터프라이즈 네트워크에서 할당된 클라우드 자원의 동적 로드 밸런싱 및 스케일링

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050062721A (ko) * 2003-12-22 2005-06-27 에스케이씨앤씨 주식회사 개선된 전송 기술을 포함한 무선 네트워크 시스템 및 그동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101421848B1 (ko) * 2009-09-30 2014-07-24 알까뗄 루슨트 엔터프라이즈 네트워크에서 할당된 클라우드 자원의 동적 로드 밸런싱 및 스케일링

Also Published As

Publication number Publication date
KR100922306B1 (ko) 2009-10-21

Similar Documents

Publication Publication Date Title
US11165879B2 (en) Proxy server failover protection in a content delivery network
US11336715B2 (en) Load balancing method, apparatus and system
US10735553B2 (en) Micro-services in a telecommunications network
US8762535B2 (en) Managing TCP anycast requests
EP3352431B1 (en) Network load balance processing system, method, and apparatus
US20030009559A1 (en) Network system and method of distributing accesses to a plurality of server apparatus in the network system
JP5853378B2 (ja) 通信切替システム、通信切替方法、及びプログラム
US10154004B2 (en) DHCP communications configuration system
EP2316206A2 (en) Distributed load balancer
KR100922306B1 (ko) 서비스 처리 시스템
US8559423B2 (en) Method and apparatus for packet processing
JP2012108685A (ja) 負荷分散システム
KR100920327B1 (ko) 서비스 처리 시스템
KR100890996B1 (ko) 분산 흐름 제어 시스템
KR100915424B1 (ko) 서비스 처리 시스템
WO2016119877A1 (en) Load balancing of data packet flows
EP3210116B1 (en) Queue handling
CN114157708B (zh) 会话迁移的控制方法、装置和vBRAS
KR100825963B1 (ko) 분산 흐름 제어 시스템
US10855592B2 (en) Flow based session drain director
Jayabal et al. Design and Implementation of Locally Distributed Web Server Systems using Load Balancer
JP5579127B2 (ja) パケット応答方法及び装置
JP2014039141A (ja) アプリケーション通信制御システムおよびアプリケーション通信制御方法
KR20100111443A (ko) 금융업무처리 시스템 및 그 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee