KR100641655B1 - 부하 분산 시스템 및 그 방법 - Google Patents

부하 분산 시스템 및 그 방법 Download PDF

Info

Publication number
KR100641655B1
KR100641655B1 KR1020050051062A KR20050051062A KR100641655B1 KR 100641655 B1 KR100641655 B1 KR 100641655B1 KR 1020050051062 A KR1020050051062 A KR 1020050051062A KR 20050051062 A KR20050051062 A KR 20050051062A KR 100641655 B1 KR100641655 B1 KR 100641655B1
Authority
KR
South Korea
Prior art keywords
packet
load balancing
connection means
session
information
Prior art date
Application number
KR1020050051062A
Other languages
English (en)
Other versions
KR20060066603A (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 KR20060066603A publication Critical patent/KR20060066603A/ko
Application granted granted Critical
Publication of KR100641655B1 publication Critical patent/KR100641655B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 부하 분산 시스템 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 부하 분산을 위해 패킷 처리 및 세션 관리 기능을 제공하는 두개의 전용칩으로 구현되며, 상기 전용칩의 성능을 최대한 활용하기 위해 패킷 처리 및 세션 관리 기능도 내부에서 부하 분산을 통하여 수행함으로써, 패킷 처리를 고속화하여 시스템의 전체적인 성능을 향상시키며, 부가적으로 새로운 세션이 생성됨에 따라 고가용성 패킷을 생성함으로써, 제어 패킷의 교환 없이 고가용성을 제공할 수 있도록 하기 위한, 부하 분산 시스템 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 부하 분산 시스템에 있어서, 내/외부 네트워크로부터 네트워크 접속수단을 통하여 입력되는 패킷의 방화벽/서버로의 분산을 담당하며, 상기 방화벽/서버로부터 유입된 패킷을 상기 네트워크 접속수단으로 전달하기 위한 방화벽/서버 접속수단; 상기 방화벽/서버 접속수단으로부터 전달받은 패킷의 상기 내/외부 네트워크로의 분산을 담당하며, 상기 내/외부 네트워크로부터 유입된 패킷을 상기 방화벽/서버 접속수단으로 전달하기 위한 상기 네트워크 접속수단; 및 상기 방화벽/서버 접속수단 및 상기 네트워크 접속수단 간의 부하 분산 과정을 제어하기 위한 호스트 제어수단을 포함한다.
4. 발명의 중요한 용도
본 발명은 부하 분산 시스템 등에 이용됨.
부하 분산, 방화벽, 패킷 처리, 세션 생성 및 관리, 부하 분산 시스템

Description

부하 분산 시스템 및 그 방법{System and method for load balancing}
도 1 은 본 발명에 따른 부하 분산 시스템의 일실시예 구성도,
도 2 는 본 발명에 따른 부하 분산 시스템을 방화벽 부하 분산 시스템으로 이용할 경우의 실현 예시도,
도 3 은 본 발명에 따른 부하 분산 시스템을 서버 부하 분산 시스템으로 이용할 경우의 실현 예시도,
도 4 는 본 발명에 따른 부하 분산 시스템에서 네트워크 접속 모듈의 네트워크 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도,
도 5 는 본 발명에 따른 부하 분산 시스템에서 방화벽/서버 접속 모듈의 네트워크 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도,
도 6 은 본 발명에 따른 부하 분산 시스템에서 네트워크 접속 모듈의 스위치 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도,
도 7 은 본 발명에 따른 부하 분산 시스템에서 방화벽/서버 접속 모듈의 스위치 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도,
도 8 은 본 발명에 따른 부하 분산 시스템에서 네트워크 접속 모듈의 고가용 성 포트로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도,
도 9 는 본 발명에 따른 부하 분산 시스템에서 방화벽/서버 접속 모듈의 고가용성 포트로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도,
도 10 은 본 발명에 따른 부하 분산 시스템에서 각 모듈의 스위치 인터페이스로 입력된 패킷 중 고가용성 플래그가 설정된 패킷의 처리 과정에 대한 일실시예 흐름도이다.
*도면의 주요 부분에 대한 부호의 설명
10 : 호스트 프로세서 20 : 방화벽/서버 접속 모듈
30 : 네트워크 접속모듈 210, 310 : 호스트 프로세서 인터페이스
220, 320 : 메모리 230, 330 : 패킷 프로세서 유닛
240, 340 : 스위치 인터페이스 250, 350 : 패킷 입력큐
260, 360 : 프로세서 할당기 270, 370 : 네트워크 인터페이스
100 : 고가용성 시스템
본 발명은 부하 분산 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 부하 분산을 위해 패킷 처리 및 세션 관리 기능을 제공하는 두개의 전용칩으로 구 현되며, 상기 전용칩의 성능을 최대한 활용하기 위해 패킷 처리 및 세션 관리 기능도 내부에서 부하 분산을 통하여 수행함으로써, 패킷 처리를 고속화하여 시스템의 전체적인 성능을 향상시키며, 부가적으로 새로운 세션이 생성됨에 따라 고가용성 패킷을 생성함으로써, 제어 패킷의 교환 없이 고가용성을 제공할 수 있도록 하기 위한, 부하 분산 시스템 및 그 방법에 관한 것이다.
인터넷 트래픽의 급성장과 더불어 전송 기술의 고속화 뿐아니라 패킷 처리 기술의 고속화가 요구되고 있다. 라우터 등의 네트워크 장비들은 이러한 요구 사항을 반영하기 위하여 지속적인 기술 개발을 통하여 고속화가 많이 진행되어 왔지만 Layer 4 이상의 패킷 처리 기술을 요구하는 보안 시스템 및 서버 등은 하나의 패킷에 대하여 기본적으로 많은 시스템 시간을 소모하기 때문에 고속화에 많은 어려움이 있다.
따라서, 고속화된 네트워크에 비해 상대적으로 저속인 서버 및 보안 시스템 등을 연결하기 위한 방법으로 부하 분산 시스템의 필요성이 대두되었다. 즉, 부하 분산 시스템은 외부로부터의 트래픽을 여러대의 상대적으로 느린 보안 시스템 또는 서버 등으로 트래픽을 분산하여 주며 보안 시스템 또는 서버 등으로부터의 트래픽을 다중화하는 기능을 수행한다.
기존의 많은 부하 분산 시스템의 경우 소프트웨어적인 처리 방식으로 부하 분산을 처리하였다. 그러나, 종래의 소프트웨어적인 처리 방식은 소프트웨어적으로 처리함으로써 처리 성능이 좋지 않다는 문제점이 있었다.
따라서, 이에 대한 대안으로 하드웨어 기반 부하 분산 시스템 들이 등장하 고 있다. 그러나, 종래의 부하 분산 시스템에서는 각 패킷이 속한 플로우에 대한 상태를 유지하지 않고 매 패킷 마다 해쉬 기반 알고리즘이나 라운드 로빈 방식 등의 알고리즘에 의한 부하 분산이 이루어진다. 예를 들어, 해쉬 기반 방식은 패킷이 입력되게 되면 하드웨어적으로 패킷에 대한 해쉬값을 계산하게 되고 계산된 해쉬 값에 해당하는 포트로 패킷이 전송되도록 하는것이다. 또한, 부하 분산이 동작하도록 하기 위해서는 부하 분산 대상을 기준으로 앞 뒤 2개의 시스템이 요구되며, 그 2개의 시스템이 동일한 방식의 알고리즘에 의하여 부하 분산이 이루어져야만 한다.
따라서, 종래의 부하 분산 시스템에서 실제적인 부하만을 가지고 패킷의 부하를 분산할 경우에는 패킷의 순서 문제 뿐아니라 실질적으로 대상 시스템에서 정상적인 패킷 처리가 불가능하게 되는 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 부하 분산을 위해 패킷 처리 및 세션 관리 기능을 제공하는 두개의 전용칩으로 구현되며, 상기 전용칩의 성능을 최대한 활용하기 위해 패킷 처리 및 세션 관리 기능도 내부에서 부하 분산을 통하여 수행함으로써, 패킷 처리를 고속화하여 시스템의 전체적인 성능을 향상시키며, 부가적으로 새로운 세션이 생성됨에 따라 고가용성 패킷을 생성함으로써, 제어 패킷의 교환 없이 고가용성을 제공할 수 있도록 하기 위한, 부하 분산 시스템 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명은, 부하 분산 시스템에 있어서, 내/외부 네트워크로부터 네트워크 접속수단을 통하여 입력되는 패킷의 방화벽/서버로의 분산을 담당하며, 상기 방화벽/서버로부터 유입된 패킷을 상기 네트워크 접속수단으로 전달하기 위한 방화벽/서버 접속수단; 상기 방화벽/서버 접속수단으로부터 전달받은 패킷의 상기 내/외부 네트워크로의 분산을 담당하며, 상기 내/외부 네트워크로부터 유입된 패킷을 상기 방화벽/서버 접속수단으로 전달하기 위한 상기 네트워크 접속수단; 및 상기 방화벽/서버 접속수단 및 상기 네트워크 접속수단 간의 부하 분산 과정을 제어하기 위한 호스트 제어수단을 포함하는 것을 특징으로 한다.
한편, 본 발명의 방법은, 부하 분산 방법에 있어서, 네트워크 접속수단이 네트워크를 통하여 패킷이 입력됨에 따라 해쉬함수를 이용하여 부하를 분산시키고, 출력 포트를 결정하여 패킷을 전송하는 제 1 단계; 방화벽/서버 접속수단이 네트워크를 통하여 패킷이 입력됨에 따라 해쉬함수를 이용하여 부하를 분산시키고, 출력 포트를 결정하여 패킷을 전송하는 제 2 단계; 상기 네트워크 접속수단이 상기 방화벽/서버 접속수단을 통하여 패킷을 입력받음에 따라 출력 포트가 미결정된 패킷에 대하여 출력 포트를 결정하여 패킷을 전송하는 제 3 단계; 상기 방화벽/서버 접속 수단이 상기 네트워크 접속수단을 통하여 패킷을 입력받음에 따라 출력 포트가 미결정된 패킷에 대하여 출력 포트를 결정하여 패킷을 전송하는 제 4 단계; 상기 네트워크 접속수단의 고가용성 포트로 패킷이 입력됨에 따라 패킷을 처리하여 폐기하거나 전송하는 제 5 단계; 및 상기 방화벽/서버 접속수단의 고가용성 포트로 패킷이 입력됨에 따라 패킷을 처리하여 폐기하거나 전송하는 제 6 단계를 포함하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1 은 본 발명에 따른 부하 분산 시스템의 일실시예 구성도이다.
도 1 에 도시된 바와 같이, 본 발명에 따른 부하 분산 시스템은, 내/외부 네트워크로부터 네트워크 접속 모듈(30)을 통하여 전달받은 패킷의 방화벽/서버로의 분산을 담당하며, 상기 방화벽/서버로부터 전달받은 패킷을 상기 네트워크 접속 모듈(30)로 전달하기 위한 방화벽/서버 접속 모듈(20), 상기 방화벽/서버 접속 모듈(20)로부터 전달받은 패킷의 내/외부 네트워크로의 분산을 담당하며, 상기 내/외부 네트워크로부터 전달받은 패킷을 상기 방화벽/서버 접속 모듈(20)로 전달하기 위한 상기 네트워크 접속 모듈(30), 및 상기 방화벽/서버 접속 모듈(20)과 상기 네트워크 접속 모듈(30) 간의 부하 분산 과정을 제어하기 위한 호스트 프로세서(제어 프로세서 모듈)(10)을 포함한다.
방화벽/서버 접속 모듈(20)은 네트워크 인터페이스(270)를 통하여 방화벽 및 서버와 접속되며 네트워크 접속 모듈(30)은 네트워크 인터페이스(370)를 통하여 내/외부 네트워크와 접속된다.
상기 방화벽/서버 접속 모듈(20)은, 세션 관리 및 부하 분산 기능을 효율적으로 수행하기 위한 패킷 처리 기능을 수행하기 위한 다수의 패킷 프로세서 유닛(230), 상기 호스트 프로세서(제어 프로세서 모듈)(10)과의 인터페이스를 제공하기 위한 호스트 프로세서 인터페이스(210), 상기 네트워크 접속 모듈(30)과의 인터페이스를 제공하기 위한 스위치 인터페이스(240), 방화벽/서버와의 인터페이스를 제공하기 위한 네트워크 인터페이스(270), 부하 분산 알고리즘 (및 MAC 테이블)및 세션 관리 테이블을 저장하고 있는 메모리(220), 상기 네트워크 인터페이스(270)로부터 패킷을 입력받기 위한 패킷 입력 큐(250), 및 상기 패킷 입력 큐(250)에 입력된 패킷을 상기 다수의 패킷 프로세서 유닛(230)으로 할당하기 위한 프로세서 할당기(260)를 포함한다.
상기 네트워크 접속 모듈(30)은, 세션 관리 및 부하 분산 기능을 효율적으로 수행하기 위한 패킷 처리 기능을 수행하기 위한 다수의 패킷 프로세서 유닛(330), 상기 호스트 프로세서(제어 프로세서 모듈)(10)과의 인터페이스를 제공하기 위한 호스트 프로세서 인터페이스(310), 상기 방화벽/서버 접속 모듈(20)과의 인터페이 스를 제공하기 위한 스위치 인터페이스(340), 내/외부 네트워크와의 인터페이스를 제공하기 위한 네트워크 인터페이스(370), MAC 테이블 및 세션 관리 테이블을 저장하고 있는 메모리(320), 상기 네트워크 인터페이스(370)로부터 패킷을 입력받기 위한 패킷 입력 큐(350), 및 상기 패킷 입력 큐(350)에 입력된 패킷을 상기 다수의 패킷 프로세서 유닛(330)으로 할당하기 위한 프로세서 할당기(360)를 포함한다.
본 발명에서는 패킷 처리 성능을 높이기 위하여 다수의 패킷 프로세서 유닛(230, 330)을 사용한다. 각 패킷 프로세서 유닛(230, 330)은 전용화된 세션 생성 및 검색 엔진을 구비하고 있어 세션의 생성 및 검색을 고속으로 처리하는 것이 가능하다.
상기 패킷 프로세서 유닛(230, 330)은, 세션 검색부(232, 332), 세션 생성 및 관리부(233, 333), 부하 분산 처리부(234, 334), 및 패킷 처리부(231, 331)를 포함한다.
패킷 처리부(231, 331)는 유입된 패킷에 대하여 세션 검색부(232, 332), 세션 생성 및 관리부(233, 333), 부하 분산 처리부(234, 334)가 적절한 기능을 수행할 수 있도록 판단을 해주는 작업 및 세션 검색부(232, 332), 세션 생성 및 관리부(233, 333) 및 부하 부산 처리부(234, 334)로부터 출력되는 결과에 따른 패킷 처리를 담당한다.
세션 검색부(232, 332)는 본 발명에 의한 5-터플의 해쉬값에 의한 세션 테이블을 검색하여 패킷의 출력 정보를 획득하는 과정을 수행한다.
부하 분산 처리부(234, 334)는 세션이 생성되지 않은 세션의 첫 번째 패킷에 대하여 부하 분산 알고리즘에 의하여 출력 포트를 결정하는 과정을 수행한다.
세션 생성 및 관리부(233, 333)는 부하 분산 알고리즘에 의하여 획득한 출력 포트 정보를 포함한 세션 정보를 구축하고 유지하는 과정을 수행한다.
방화벽/서버 접속 모듈(20)의 네트워크 인터페이스(270)를 통하여 유입된 패킷은 세션 검색부(232)에 의하여 검색된 출력 포트 정보 또는 부하 분산 알고리즘에 의하여 선택된 출력 포트 정보를 기반으로 스위치 인터페이스(240)를 통하여 네트워크 접속 모듈(30)로 전달된다.
한편, 네트워크 접속 모듈(30)로부터 스위치 인터페이스(240)를 통하여 방화벽/서버 접속 모듈(20)로 유입된 패킷은 네트워크 접속 모듈(30)에서 출력 포트가 결정된 경우에는 그 정보에 따라 방화벽 또는 서버로 전달되며, 패킷의 출력 포트에 대한 정보를 가지고 있지 않은 경우에는 부하 분산 알고리즘에 의하여 출력 포트 정보를 추출하며 네트워크 인터페이스(270)를 통하여 방화벽 또는 서버로 전달된다.
마찬가지로, 네트워크 접속 모듈(30)의 네트워크 인터페이스(370)를 통하여 유입된 패킷은 세션 검색부(332)에 의하여 검색된 출력 포트 정보 또는 부하 분산 알고리즘에 의하여 선택된 출력 포트 정보를 기반으로 스위치 인터페이스(340)를 통하여 방화벽/서버 접속 모듈(20)로 전달된다.
한편, 방화벽/서버 접속 모듈(20)로부터 스위치 인터페이스(340)를 통하여 네트워크 접속 모듈(30)에 유입된 패킷은 방화벽/서버 모듈(20)에서 출력 포트가 결정된 경우에는 그 정보에 따라 내부 또는 외부 네트워크로 전달되며, 패킷의 출 력 포트에 대한 정보를 가지고 있지 않은 경우에는 MAC 테이블 검색에 의하여 출력 포트 정보를 추출하며 네트워크 인터페이스(37)를 통하여 내부 또는 외부 네트워크로 전달된다.
도 2 는 본 발명에 따른 부하 분산 시스템을 방화벽 부하 분산 시스템으로 이용할 경우의 실현 예시도이다.
도 3 은 본 발명에 따른 부하 분산 시스템을 서버 부하 분산 시스템으로 이용할 경우의 실현 예시도이다.
도 4 는 본 발명에 따른 부하 분산 시스템에서 네트워크 접속 모듈의 네트워크 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도이다.
우선, 유입된 패킷으로부터 5-터플(5-tuple : source IP, destination IP, protocol number, source port, destination port)을 추출한다(401).
이후, 상기 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득한다(402).
이후, 상기 획득한 해쉬값의 LSB 0번 비트의 값이 '0'인가를 판단한다(403).
상기 판단 결과(403), 해쉬값의 LSB 0번 비트의 값이 '0'이 아니면('1'이면) 세션 테이블 검색 플래그를 '1'로 설정하고(413), "407" 과정으로 진행한다.
한편, 상기 판단 결과(403), 해쉬값의 LSB 0번 비트의 값이 '0'이면, 5-터플에 대한 해쉬값을 키값으로 이용하여 세션 테이블을 검색한다(404). 이후, 일치하는 검색 결과가 있는지를 판단한다(405).
상기 판단 결과(405), 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출한다(406). 이후, 상기 유입된 패킷에 부가 헤더 정보로서 상기 추출한 출력 포트 정보 및 방화벽/서버 접속 모듈(20)에 전달될 필요가 있는 정보를 플래그 비트의 형태로 추가한다(407).
이후, 스위치 인터페이스(340)를 통하여 방화벽/서버 접속 모듈(20)로 패킷을 전송한다(408).
한편, 상기 판단 결과(405), 일치하는 검색 결과가 없음에 따라 부하 분산 알고리즘에 의하여 출력 포트 정보를 추출한다(409). 이후, 상기 추출한 포트 정보 및 5-터플에 대한 해쉬값을 이용하여 세션 테이블을 생성한다(410).
이 때, 새로운 세션이 생성되었기 때문에 해당 패킷을 방화벽/서버 접속 모듈(20)로 전송할 뿐만 아니라 고가용성 패킷을 생성하여 고가용성 장비가 해당 시스템과 동일한 세션 정보를 유지할 수 있도록 해줄 필요가 있다.
따라서, 원래의 패킷은 세션 검색 결과가 일치하는 경우 패킷을 전송하는 절차와 동일하게 "407" 및 "408" 과정을 통하여 패킷이 전송된다. 이 때, 원래의 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷이 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송되게 된다. 즉, 고가용성 패킷을 생성하고(411), 고가용성 포트를 통하여 패킷을 전송한다(412).
도 5 는 본 발명에 따른 부하 분산 시스템에서 방화벽/서버 접속 모듈의 네트워크 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도이다.
우선, 유입된 패킷으로부터 5-터플(5-tuple : source IP, destination IP, protocol number, source port, destination port)을 추출한다(501).
이후, 상기 추출한 정보를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득한다(502).
이후, 상기 획득한 해쉬값의 LSB 0번 비트의 값이 '1'인가를 판단한다(503).
상기 판단 결과(503), 해쉬값의 LSB 0번 비트의 값이 '1'이 아니면('0'이면), 세션 테이블 검색 플래그를 '1'로 설정하고(513), "507" 과정으로 진행한다.
한편, 상기 판단 결과(503), 해쉬값의 LSB 0번 비트의 값이 '1'이면, 5-터플에 대한 해쉬값을 키값으로 세션 테이블을 검색한다(504). 이후, 일치하는 검색 결과가 있는지를 판단한다(505).
상기 판단 결과(505), 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출한다(506). 상기 유입된 패킷에 부가 헤더 정보로서 상기 추출한 출력 포트 정보 및 네트워크 접속 모듈(30)에 전달될 필요가 있는 정보를 플래그 비트의 형태로 추가한다(507). 이후, 스위치 인터페이스(240)를 통하여 네트워크 접속 모듈(30)로 패킷을 전송한다(508).
한편, 상기 판단 결과(505), 일치하는 검색 결과가 없음에 따라 MAC 테이블을 검색하여 출력 포트 정보를 추출한다(509). 이후, 상기 추출한 포트 정보 및 5-터플에 대한 해쉬값을 이용하여 세션 테이블을 생성한다(510).
이 때, 새로운 세션이 생성되었기 때문에 해당 패킷을 네트워크 접속 모듈(30)로 전송할 뿐만 아니라 고가용성 패킷을 생성하여 고가용성 장비가 해당 시스 템과 동일한 세션 정보를 유지할 수 있도록 해줄 필요가 있다.
따라서, 원래의 패킷은 세션 검색 결과가 일치하는 경우 패킷을 전송하는 절차와 동일하게 "507" 및 "508" 과정을 통하여 패킷이 전송된다. 이 때, 원래의 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷이 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송되게 된다. 즉, 고가용성 패킷을 생성하고(511), 고가용성 포트를 통하여 패킷을 전송한다(512).
도 6 은 본 발명에 따른 부하 분산 시스템에서 네트워크 접속 모듈의 스위치 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도이다.
우선, 입력받은 패킷에서 부가 헤더의 플래그 중 고가용성 플래그가 '1'로 설정되어 있는지를 판단한다(601).
상기 판단 결과(601), 고가용성 플래그가 설정되어 있음에 따라 도 10 의 "1001" 부터 "1004" 과정까지 수행한다(602).
한편, 상기 판단 결과(601), 고가용성 플래그가 설정되어 있지 않음에 따라 입력받은 패킷의 부가 헤더의 플래그 중 세션 테이블 검색 플래그가 '1'로 설정되어 있는지를 판단한다(603).
상기 판단 결과(603), 세션 테이블 검색 플래그가 설정되어 있지 않음에 따라, 부가 헤더 정보로부터 출력 포트 정보를 추출하고(615), "609" 과정으로 진행한다.
한편, 상기 판단 결과(603), 세션 검색 플래그가 설정되어 있음에 따라, 입력받은 패킷으로부터 5-터플(5-tuple : source IP, destination IP, protocol number, source port, destination port)을 추출한다(604).
이후, 상기 추출한 정보를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하고(605), 상기 획득한 5-터플에 대한 해쉬값을 키값으로 이용하여 세션 테이블을 검색한다(606). 이후, 일치하는 검색 결과가 있는지를 판단한다(607).
상기 판단 결과(607), 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출한다(608).
이후, 패킷의 헤더 정보중 목적지 IP 주소가 변경될 필요가 있는 경우 IP 헤더의 변경을 수행하며(609), 네트워크 인터페이스(370)를 통하여 내/외부 네트워크로 패킷을 전송한다(610).
한편, 상기 판단 결과(607), 일치하는 검색 결과가 없음에 따라 MAC 테이블을 검색하여 출력 포트 정보를 결정한다(611). 상기 추출한 포트 정보 및 5-터플에 대한 해쉬값을 이용하여 세션 테이블을 생성한다(612).
이 때, 새로운 세션이 생성되었기 때문에 도 4 및 도 5 에서 설명한 네트워크 인터페이스(370)로 입력된 패킷에 대하여 새로운 세션이 생성될 경우 행하여진 동작과 유사하게 해당 패킷을 네트워크 인터페이스(370)를 통하여 내부 또는 외부 네트워크로 전송할 뿐 아니라 고가용성 패킷을 생성하여 고가용성 장비가 해당 시스템과 동일한 세션 정보를 유지할 수 있도록 해줄 필요가 있다.
따라서, 원래의 패킷은 세션 검색 결과가 일치하는 경우 패킷을 전송하는 절차와 동일하게 "609" 및 "610" 과정을 통하여 패킷이 전송된다. 이 때, 원래의 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷이 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송되게 된다. 즉, 고가용성 패킷을 생성하고(613), 고가용성 포트를 통하여 패킷을 전송한다(614).
도 7 은 본 발명에 따른 부하 분산 시스템에서 방화벽/서버 접속 모듈의 스위치 인터페이스로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도이다.
우선, 입력된 패킷의 부가 헤더의 플래그 중 고가용성 플래그가 '1'로 설정되어 있는지를 판단한다(701).
상기 판단 결과(701), 고가용성 플래그가 설정되어 있음에 따라 도 10 의 "1001" 과정부터 "1004" 과정까지 수행한다(702).
한편, 상기 판단 결과(701), 고가용성 플래그가 설정되어 있지 않음에 따라, 유입된 패킷의 부가 헤더의 플래그 중 세션 테이블 검색 플래그가 '1'로 설정되어 있는지를 판단한다(703).
상기 판단 결과(703), 세션 테이블 검색 플래그가 설정되어 있지 않음에 따라 부가 헤어 정보로부터 출력포트 정보를 추출하고(715), "709" 과정으로 진행한다.
한편, 상기 판단 결과(703), 세션 테이블 검색 플래그가 설정되어 있음에 따라, 유입된 패킷으로부터 5-터플(5-tuple : source IP, destination IP, protocol number, source port, destination port)을 추출한다(704).
이후, 상기 추출한 정보를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득한다(705).
이후, 5-터플에 대한 해쉬값을 키값으로 세션 테이블을 검색한다(706). 이후, 일치하는 검색 결과가 있는지를 판단한다(707).
상기 판단 결과(707), 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출한다(708).
이후, 패킷의 헤더 정보중 목적지 IP 주소가 변경될 필요가 있는 경우 IP 헤더의 변경을 수행하며(709), 네트워크 인터페이스(270)를 통하여 방화벽 또는 서버로 패킷을 전송한다(710).
한편, 상기 판단 결과(707), 일치하는 검색 결과가 없음에 따라 부하 분산 알고리즘에 의해 출력 포트 정보를 결정한다(711). 상기 추출한 포트 정보 및 5-터플에 대한 해쉬값을 이용하여 세션 테이블을 생성한다(712).
이 때, 새로운 세션이 생성되었기 때문에 도 4 및 도 5 에서 설명한 네트워크 인터페이스(370)로 입력된 패킷에 대하여 새로운 세션이 생성될 경우 행하여진 동작과 유사하게 해당 패킷을 네트워크 인터페이스(370)를 통하여 방화벽 또는 서버로 전송할 뿐 아니라 고가용성 패킷을 생성하여 고가용성 장비가 해당 시스템과 동일한 세션 정보를 유지할 수 있도록 해줄 필요가 있다.
따라서, 원래의 패킷은 세션 검색 결과가 일치하는 경우 패킷을 전송하는 절차와 동일하게 "709" 및 "710" 과정을 통하여 패킷이 전송된다. 이 때, 원래의 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷이 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송되게 된다. 고가용성 패킷을 생성하고(713), 고가용성 포트를 통하여 패킷을 전송한다(714).
도 8 은 본 발명에 따른 부하 분산 시스템에서 네트워크 접속 모듈의 고가용성 포트로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도이다.
우선, 유입된 패킷으로부터 5-터플(5-Tuple : source IP, destination IP, protocol number, source port, destination port)을 추출한다(801). 상기 추출한 정보를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득한다(802).
이후, 상기 획득한 해쉬값의 LSB 0번 비트의 값이 '0'인가를 판단한다(803).
상기 판단 결과(803), 해쉬값의 LSB 0번 비트가 '0'이면, 패킷에 부가 헤더 정보로서 주어진 출력 포트 정보 및 상기 획득한 5-터플에 대한 해쉬값을 키값으로 이용하여 세션 테이블을 생성한다(804). 이후, 패킷을 폐기하고(805), 종료한다.
한편, 상기 판단 결과(803), 해쉬값의 LSB 0번 비트가 '0'이 아니면('1'이면), 세션 테이블 검색 플래그를 '1'로 설정하고(806), 패킷에 부가 헤더 정보에 플래그 정보를 추가한 후(807), 스위치 인터페이스(340)를 통하여 방화벽/서버 접속 모듈(20)로 패킷을 전송하고(808), 종료한다.
도 9 는 본 발명에 따른 부하 분산 시스템에서 방화벽/서버 접속 모듈의 고가용성 포트로 패킷이 입력되는 경우 패킷 처리 과정에 대한 일실시예 흐름도이다.
우선, 입력된 패킷으로부터 5-터플(5-Tuple : source IP, destination IP, protocol number, source port, destination port)을 추출한다(901). 상기 추출한 정보를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득한다(902).
이후, 상기 획득한 해쉬값의 LSB 0번 비트의 값이 '0'인가를 판단한다(903).
상기 판단 결과(903), 해쉬값의 LSB 0번 비트가 '0'이면, 패킷에 부가 헤더 정보로서 주어진 출력 포트 정보 및 상기 획득한 5-터플에 대한 해쉬값을 키값으로 이용하여 세션 테이블을 생성한다(904). 이후, 패킷을 폐기하고(905), 종료한다.
한편, 상기 판단 결과(903), 해쉬값의 LSB 0번 비트가 '0'이 아니면('1'이면), 세션 테이블 검색 플래그를 '1'로 설정하고(906), 패킷에 부가 헤더 정보에 플래그 정보를 추가한 후(907), 스위치 인터페이스(240)를 통하여 네트워크 접속 모듈(30)로 패킷을 전송하고(908), 종료한다.
도 10 은 본 발명에 따른 부하 분산 시스템에서 네트워크 접속 모듈 또는 방화벽/서버 접속 모듈의 스위치 인터페이스로 입력된 패킷 중 고가용성 플래그가 설정된 패킷의 처리 과정에 대한 일실시예 흐름도이다.
우선, 입력된 패킷으로부터 5-터플(5-Tuple : source IP, destination IP, protocol number, source port, destination port)을 추출한다(1001). 상기 추출한 정보를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득한다(1002).
이후, 패킷에 부가 헤더 정보로서 주어진 출력 포트 정보 및 행하여진 5-터플에 대한 해쉬값을 이용하여 세션 테이블을 생성한다(1003).
이후, 패킷을 폐기하고(1004), 종료한다.
본 발명은 또한 세션 관리 기능을 가지는 상용칩 또는 FPGA 또는 ASIC등을 이용한 구현이 가능하다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 부하 분산을 위해 패킷 처리 및 세션 관리 기능을 제공하는 두개의 전용칩으로 구현되며, 패킷 처리 및 세션 관리 기능을 담당하는 전용칩의 성능을 최대한 활용하기 위해 패킷 처리 및 세션 관리 기능도 시스템 내부에서 부하 분산을 통하여 수행함으로써, 패킷 처리를 고속화하여 시스템의 전체적인 성능을 향상시킬 수 있는 효과가 있다.
또한, 본 발명은, 패킷 프로세서 유닛의 멀티캐스트 기능을 이용하여 새로운 세션이 생성될 때마다 고가용성 패킷도 생성하여 고가용성을 위한 타 부하 분산 시스템에 상기 고가용성 패킷을 전달함으로써 제어 프로세서간의 제어 메시지의 교환없이 완벽한 세션 동기화를 통해 고가용성(HA : High Ability)을 제공할 수 있는 효과가 있다.
또한, 본 발명은 기존 시스템이 2개가 존재하여야 실제적인 부하 분산을 제공할 수 있는 단점을 극복하고자 하나의 시스템에서 기존의 2개의 시스템에서 수행하는 역할을 모두 수행할 수 있도록 함으로써 가격 경쟁력을 향상시킬 수 있는 효과가 있다.

Claims (12)

  1. 부하 분산 시스템에 있어서,
    내/외부 네트워크로부터 네트워크 접속수단을 통하여 입력되는 패킷의 방화벽/서버로의 분산을 담당하며, 상기 방화벽/서버로부터 유입된 패킷을 상기 네트워크 접속수단으로 전달하기 위한 방화벽/서버 접속수단;
    상기 방화벽/서버 접속수단으로부터 전달받은 패킷의 상기 내/외부 네트워크로의 분산을 담당하며, 상기 내/외부 네트워크로부터 유입된 패킷을 상기 방화벽/서버 접속수단으로 전달하기 위한 상기 네트워크 접속수단; 및
    상기 방화벽/서버 접속수단 및 상기 네트워크 접속수단 간의 부하 분산 과정을 제어하기 위한 호스트 제어수단
    을 포함하는 부하 분산 시스템.
  2. 제 1 항에 있어서,
    상기 방화벽/서버 접속수단 및 상기 네트워크 접속수단은,
    고가용성 포트로부터 전달받은 고가용성 패킷을 처리하는 기능
    을 더 수행하는 것을 특징으로 하는 부하 분산 시스템.
  3. 제 2 항에 있어서,
    상기 방화벽/서버 접속수단은,
    세션 관리 및 부하 분산 기능을 효율적으로 수행하기 위한 패킷 처리 기능을 수행하기 위한 다수의 패킷 프로세싱 수단;
    상기 호스트 제어수단과의 인터페이스를 제공하기 위한 호스트 프로세서 연결수단;
    상기 네트워크 접속수단과의 인터페이스를 제공하기 위한 스위치 연결수단;
    방화벽/서버와의 인터페이스를 제공하기 위한 네트워크 연결수단;
    부하 분산 알고리즘 및 세션 관리 테이블을 저장하고 있는 저장수단;
    상기 네트워크 연결수단으로부터 패킷을 입력받기 위한 패킷 입력큐; 및
    상기 패킷 입력큐에 입력된 패킷을 상기 다수의 패킷 프로세싱 수단으로 할당하기 위한 패킷 프로세서 할당수단
    을 포함하는 부하 분산 시스템.
  4. 제 2 항에 있어서,
    상기 네트워크 접속수단은,
    세션 관리 및 부하 분산 기능을 효율적으로 수행하기 위한 패킷 처리 기능을 수행하기 위한 다수의 패킷 프로세싱 수단;
    상기 호스트 제어수단과의 인터페이스를 제공하기 위한 호스트 프로세서 연 결수단;
    상기 방화벽/서버 접속수단과의 인터페이스를 제공하기 위한 스위치 연결수단;
    내/외부 네트워크와의 인터페이스를 제공하기 위한 네트워크 연결수단;
    부하 분산 알고리즘 및 세션 관리 테이블을 저장하고 있는 저장수단;
    상기 네트워크 연결수단으로부터 패킷을 입력받기 위한 패킷 입력큐; 및
    상기 패킷 입력큐에 입력된 패킷을 상기 다수의 패킷 프로세싱 수단으로 할당하기 위한 패킷 프로세서 할당수단
    을 포함하는 부하 분산 시스템.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 다수의 패킷 프로세싱 수단은,
    5-터플(5-tuple)의 해쉬값에 의한 세션 테이블을 검색하여 패킷의 출력 정보를 획득하기 위한 세션 검색수단;
    세션이 생성되지 않은 세션의 첫번째 패킷에 대하여 부하 분산 알고리즘에 의하여 출력 포트를 결정하기 위한 부하 분산 처리수단;
    부하 분산 알고리즘에 의해 획득한 출력 포트 정보를 포함한 세션 정보를 구축하고 유지하기 위한 세션 생성 및 관리수단; 및
    상기 세션 검색수단, 상기 세션 생성 및 관리수단, 및 상기 부하 분산처리수 단이 적절한 기능을 수행할 수 있도록 판단하며 상기 세션 검색수단, 상기 세션 생성 및 관리수단, 및 상기 부하 분산 처리수단으로부터 출력되는 결과에 따른 패킷을 처리를 담당하기 위한 패킷 처리 수단
    을 포함하는 부하 분산 시스템.
  6. 부하 분산 방법에 있어서,
    네트워크 접속수단이 네트워크를 통하여 패킷이 입력됨에 따라 해쉬함수를 이용하여 부하를 분산시키고, 출력 포트를 결정하여 패킷을 전송하는 제 1 단계;
    방화벽/서버 접속수단이 네트워크를 통하여 패킷이 입력됨에 따라 해쉬함수를 이용하여 부하를 분산시키고, 출력 포트를 결정하여 패킷을 전송하는 제 2 단계;
    상기 네트워크 접속수단이 상기 방화벽/서버 접속수단을 통하여 패킷을 입력받음에 따라 출력 포트가 미결정된 패킷에 대하여 출력 포트를 결정하여 패킷을 전송하는 제 3 단계;
    상기 방화벽/서버 접속수단이 상기 네트워크 접속수단을 통하여 패킷을 입력받음에 따라 출력 포트가 미결정된 패킷에 대하여 출력 포트를 결정하여 패킷을 전송하는 제 4 단계;
    상기 네트워크 접속수단의 고가용성 포트로 패킷이 입력됨에 따라 패킷을 처리하여 폐기하거나 전송하는 제 5 단계; 및
    상기 방화벽/서버 접속수단의 고가용성 포트로 패킷이 입력됨에 따라 패킷을 처리하여 폐기하거나 전송하는 제 6 단계
    를 포함하는 부하부산 방법.
  7. 제 6 항에 있어서,
    상기 제 1 단계는,
    유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하는 단계;
    상기 획득한 해쉬값의 LSB 0번 비트의 값이 '0'인가를 판단하는 제 1 판단단계;
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트의 값이 '0' 임에 따라 해쉬값을 이용하여 세션 테이블을 검색하고, 일치하는 검색 결과가 있는지를 판단하는 제 2 판단단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출하고, 상기 유입된 패킷에 추출된 정보 및 '0'으로 설정된 플래그 비트를 부가 헤어 정보의 형태로 추가하는 단계;
    부가 헤더 정보가 추가된 패킷을 상기 네트워크 접속수단의 제 1 스위치 연결수단을 통하여 상기 방화벽/서버 접속수단으로 전송하는 전송단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 없음에 따라 부하 분산 알고리즘을 이용하여 출력 포트 정보를 추출하고, 상기 추출한 포트 정보 및 해쉬값을 이용하여 세션 테이블을 생성하는 세션 테이블 생성단계;
    세션 테이블이 생성됨에 따라 상기 유입된 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷을 생성하여 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송하는 단계; 및
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트의 값이 '0'이 아님에 따라 세션 테이블 검색 플래그를 설정하고, 상기 유입된 패킷에 '1'로 설정된 플래그를 부가 헤더 정보의 형태로 추가하고 상기 제 1 스위치 연결수단을 통하여 상기 방화벽/서버 접속수단으로 전송하는 전송단계
    를 포함하는 부하 분산 방법.
  8. 제 6 항에 있어서,
    상기 제 2 단계는,
    유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하는 단계;
    상기 획득한 해쉬값의 LSB 0번 비트의 값이 '1'인가를 판단하는 제 1 판단단계;
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트의 값이 '1' 임에 따라 해쉬값을 이용하여 세션 테이블을 검색하고, 일치하는 검색 결과가 있는지를 판단하는 제 2 판단단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출하고, 상기 유입된 패킷에 추출된 정보 및 '0'으로 설정된 플래그 비트를 부가 헤더 정보의 형태로 추가하는 단계;
    부가 헤더 정보가 추가된 패킷을 상기 방화벽/서버 접속수단의 제 2 스위치 연결수단을 통하여 상기 네트워크 접속수단으로 전송하는 전송단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 없음에 따라 MAC 테이블을 검색하여 출력 포트 정보를 추출하고, 상기 추출한 포트 정보 및 해쉬값을 이용하여 세션 테이블을 생성하는 세션 테이블 생성단계;
    세션 테이블이 생성됨에 따라 상기 유입된 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷을 생성하여 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송하는 단계; 및
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트의 값이 '1'이 아님에 따라 세션 테이블 검색 플래그를 설정하고, 상기 유입된 패킷에 '1'로 설정된 플래그를 부가 헤더 정보의 형태로 추가하고 상기 제 2 스위치 연결수단을 통하여 상기 네트워크 접속수단으로 전송하는 전송단계
    를 포함하는 부하 분산 방법.
  9. 제 6 항에 있어서,
    상기 제 3 단계는,
    유입된 패킷에 고가용성 플래그가 설정되어 있음에 따라, 유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하고, 패킷에 부가 헤더 정보로서 주어진 출력 포트 정보 및 해쉬값을 이용하여 세션 테이블을 생성하고, 상기 패킷을 폐기하는 단계;
    상기 유입된 패킷에 고가용성 플래그가 설정되어 있지 않음에 따라, 입력받은 패킷의 부가 헤더의 플래그 중 세션 테이블 검색 플래그가 '1'로 설정되어 있는지를 판단하는 제 1 판단단계;
    상기 제 1 판단단계의 판단 결과, 세션 검색 플래그가 설정되어 있음에 따라, 유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하는 단계;
    해쉬값을 이용하여 세션 테이블을 검색하고, 일치하는 검색 결과가 있는지를 판단하는 제 2 판단단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출하고, 상기 유입된 패킷의 헤더를 변경하여 상기 네트워크 접속수단의 제 1 네트워크 연결수단을 통하여 내부 또는 외부 네트워크로 전송하는 전송단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 없음에 따라 MAC 테 이블을 검색하여 출력 포트 정보를 추출하고, 상기 추출한 포트 정보 및 해쉬값을 이용하여 세션 테이블을 생성하는 세션 테이블 생성단계;
    세션 테이블이 생성됨에 따라 상기 유입된 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷을 생성하여 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송하는 단계; 및
    상기 제 1 판단단계의 판단 결과, 세션 테이블 검색 플래그가 설정되어 있지 않음에 따라 부가 헤더 정보로부터 출력 포트 정보를 추출하고, 상기 유입된 패킷의 헤더를 변경하여 상기 제 1 네트워크 연결수단을 통하여 내부 또는 외부 네트워크로 전송하는 전송단계
    를 포함하는 부하 분산 방법.
  10. 제 6 항에 있어서,
    상기 제 4 단계는,
    유입된 패킷에 고가용성 플래그가 설정되어 있음에 따라, 유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하고, 패킷에 부가 헤더 정보로서 주어진 출력 포트 정보 및 해쉬값을 이용하여 세션 테이블을 생성하고, 상기 패킷을 폐기하는 단계;
    상기 유입된 패킷에 고가용성 플래그가 설정되어 있지 않음에 따라, 입력받은 패킷의 부가 헤더의 플래그 중 세션 테이블 검색 플래그가 '1'로 설정되어 있는 지를 판단하는 제 1 판단단계;
    상기 제 1 판단단계의 판단 결과, 세션 검색 플래그가 설정되어 있음에 따라, 유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하는 단계;
    해쉬값을 이용하여 세션 테이블을 검색하고, 일치하는 검색 결과가 있는지를 판단하는 제 2 판단단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 있음에 따라 상기 검색 결과에 저장되어 있는 출력 포트 정보를 추출하고, 상기 유입된 패킷의 헤더를 변경하여 상기 방화벽/서버 접속수단의 제 2 네트워크 연결수단을 통하여 방화벽 또는 서버로 전송하는 전송단계;
    상기 제 2 판단단계의 판단 결과, 일치하는 검색 결과가 없음에 따라 MAC 테이블을 검색하여 출력 포트 정보를 추출하고, 상기 추출한 포트 정보 및 해쉬값을 이용하여 세션 테이블을 생성하는 세션 테이블 생성단계;
    세션 테이블이 생성됨에 따라 상기 유입된 패킷으로부터 필요한 정보만으로 구성된 고가용성 패킷을 생성하여 원래의 패킷과 멀티케스트 형태로서 고가용성 포트를 통하여 전송하는 단계; 및
    상기 제 1 판단단계의 판단 결과, 세션 테이블 검색 플래그가 설정되어 있지 않음에 따라 부가 헤더 정보로부터 출력 포트 정보를 추출하고, 상기 유입된 패킷의 헤더를 변경하여 상기 제 2 네트워크 연결수단을 통하여 상기 방화벽 또는 서버로 전송하는 전송단계
    를 포함하는 부하 분산 방법.
  11. 제 6 항에 있어서,
    상기 제 5 단계는,
    유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하는 단계;
    상기 획득한 해쉬값의 LSB 0번 비트의 값이 '0'인가를 판단하는 제 1 판단단계;
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트가 '0'임에 따라 패킷에 부가 헤더 정보로서 주어진 출력 포트 정보 및 상기 획득한 5-터플에 대한 해쉬값을 키값으로 이용하여 세션 테이블을 생성하고, 패킷을 폐기하는 단계; 및
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트가 '0'이 아님에 따라, 세션 테이블 검색 플래그를 '1'로 설정하고, 패킷에 부가 헤더 정보에 플래그 정보를 추가한 후, 상기 제 1 스위치 연결수단을 통하여 상기 방화벽/서버 접속수단으로 패킷을 전송하는 단계
    를 포함하는 부하 분산 방법.
  12. 제 6 항에 있어서,
    상기 제 6 단계는,
    유입된 패킷으로부터 추출한 정보(5-터플)를 기반으로 해쉬 함수를 수행하여 해쉬값을 획득하는 단계;
    상기 획득한 해쉬값의 LSB 0번 비트의 값이 '0'인가를 판단하는 제 1 판단단계;
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트가 '0'임에 따라 패킷에 부가 헤더 정보로서 주어진 출력 포트 정보 및 상기 획득한 5-터플에 대한 해쉬값을 키값으로 이용하여 세션 테이블을 생성하고, 패킷을 폐기하는 단계; 및
    상기 제 1 판단단계의 판단 결과, 해쉬값의 LSB 0번 비트가 '0'이 아님에 따라, 세션 테이블 검색 플래그를 '1'로 설정하고, 패킷에 부가 헤더 정보에 플래그 정보를 추가한 후, 상기 제 2 스위치 연결수단을 통하여 상기 네트워크 접속수단으로 패킷을 전송하는 단계
    를 포함하는 부하 분산 방법.
KR1020050051062A 2004-12-13 2005-06-14 부하 분산 시스템 및 그 방법 KR100641655B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040105094 2004-12-13
KR1020040105094 2004-12-13

Publications (2)

Publication Number Publication Date
KR20060066603A KR20060066603A (ko) 2006-06-16
KR100641655B1 true KR100641655B1 (ko) 2006-11-03

Family

ID=37161399

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050051062A KR100641655B1 (ko) 2004-12-13 2005-06-14 부하 분산 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100641655B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100907946B1 (ko) * 2007-07-30 2009-07-16 펌킨네트웍스코리아 (주) 동적 해싱 기반의 부하 분산 시스템 및 그 방법
CN111984415A (zh) * 2020-08-24 2020-11-24 北京亚鸿世纪科技发展有限公司 一种基于流水线转发模型的负载均衡方法及装置

Also Published As

Publication number Publication date
KR20060066603A (ko) 2006-06-16

Similar Documents

Publication Publication Date Title
US9450855B2 (en) Message routing mechanism for communication networks
CN102025643B (zh) 一种流表查找方法和装置
EP2965486B1 (en) Low latency server-side redirection of udp-based transport protocols traversing a client-side nat-firewall
US9172756B2 (en) Optimizing application performance in a network environment
US8290934B2 (en) Method and system for processing access control lists using a hashing scheme
CN101217493B (zh) 一种tcp数据包的传输方法
CN107948076B (zh) 一种转发报文的方法及装置
CN101572670B (zh) 一种基于流表的数据包处理方法、装置和网络系统
JP5544429B2 (ja) 複数のデータを処理するための方法および通信パケットをスイッチングするためのスイッチングデバイス
US20030195919A1 (en) Packet distributing system and method for distributing access packets to a plurality of server apparatuses
CN105791214B (zh) 一种RapidIO报文和以太网报文之间的转换方法和设备
CN107547391B (zh) 一种报文传输方法和装置
JP2021535678A (ja) パケット処理方法及び装置、及び、関連するデバイス
US9270570B2 (en) Remote message routing device and methods thereof
WO2014139481A1 (zh) 报文处理方法及设备
US10587515B2 (en) Stateless information centric forwarding using dynamic filters
US9391896B2 (en) System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
CN112910793A (zh) 用于七层负载均衡中连接复用的方法和负载均衡器
CN105991755B (zh) 业务报文分发方法及装置
WO2024037366A1 (zh) 转发规则下发方法、智能网卡及存储介质
KR100641655B1 (ko) 부하 분산 시스템 및 그 방법
WO2023186109A1 (zh) 节点访问方法以及数据传输系统
KR101530013B1 (ko) 효율적인 네트워크 주소 변환 및 애플리케이션 레벨 게이트웨이 프로세싱을 위한 장치 및 방법들
CN101699821B (zh) 一种分布式多核网络系统中地址解析协议实现的方法
CN108881257B (zh) 分布式搜索集群加密传输方法及加密传输分布式搜索集群

Legal Events

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