KR20130093843A - 다중 프로세서 기반의 패킷 처리 장치 및 그 방법 - Google Patents

다중 프로세서 기반의 패킷 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR20130093843A
KR20130093843A KR1020120008092A KR20120008092A KR20130093843A KR 20130093843 A KR20130093843 A KR 20130093843A KR 1020120008092 A KR1020120008092 A KR 1020120008092A KR 20120008092 A KR20120008092 A KR 20120008092A KR 20130093843 A KR20130093843 A KR 20130093843A
Authority
KR
South Korea
Prior art keywords
packet
distribution scheme
processors
network
network packet
Prior art date
Application number
KR1020120008092A
Other languages
English (en)
Other versions
KR101429114B1 (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 KR1020120008092A priority Critical patent/KR101429114B1/ko
Publication of KR20130093843A publication Critical patent/KR20130093843A/ko
Application granted granted Critical
Publication of KR101429114B1 publication Critical patent/KR101429114B1/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin

Landscapes

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

Abstract

본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치가 개시된다. 상기 장치는 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식 중 지정된 분배 방식에 따라 분배된 패킷을 처리하기 위한 복수의 프로세서들; 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식을 결정하고, 상기 복수의 프로세서들 중 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하기 위한 패킷 스케줄러; 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하기 위한 부하 측정부; 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 부하 측정부에 의해 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하기 위한 부하 분산부를 포함할 수 있다. 본 발명은 복수의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다. 또한, 패킷 처리율에 따라 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경함으로써, 프로세서들 간의 부하 밸런싱을 달성하고, 나아가 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 해결될 수 있다.

Description

다중 프로세서 기반의 패킷 처리 장치 및 그 방법{APPARATUS AND METHOD FOR PROCESSING PACKET USING MULTIPROCESSR}
본 발명은 다중 프로세서 기반의 패킷 처리 장치 및 방법에 관한 것으로서, 더 구체적으로는 다양한 네트워크 패킷 분배 방식을 혼용함으로써 부하 밸런싱 및 네트워크 패킷의 병목 현상을 해결할 수 있는 다중 프로세서 기반의 패킷 처리 장치 및 방법에 관한 것이다.
다중 프로세서를 이용하는 네트워크 장비는 패킷이 수신되면, 이를 프로세싱하기 위해 각각의 프로세서로 분배하게 된다. 도 1은 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다. 도시되는 바와 같이, 상기 장치(100)는 외부로부터 네트워크 패킷을 수신하기 위한 네트워크 인터페이스(110), 네트워크 인터페이스(110)에 의해 수신된 패킷을 각각의 프로세서(140)로 분배하기 위한 패킷 스케줄러(110), 각각의 프로세서(140)로 분배된 패킷을 저장하기 위한 복수의 큐(130) 및 복수의 큐(130)에 각각 대응하고, 대응하는 큐(130)에 저장된 패킷을 처리하기 위한 복수의 프로세서(140)를 포함할 수 있다. 패킷 스케줄러(120)에 패킷들이 입력되면, 패킷 스케줄러(110)는 이러한 패킷들을 큐(130)에 저장함으로써, 상기 큐(130)에 대응하는 프로세서(140)에 분배할 수 있다. 이러한 패킷 분배에는 다양한 방법이 사용될 수 있다. 그 중에서도, 수신되는 패킷을 균등하게 각각의 프로세서에 분배하는 라운드 로빈(round robin) 분배 방식, 패킷에 관한 정보(예를 들어, 출발지 IP 주소, 출발지 포트, 목적지 IP 주소, 목적지 포트 등)에 따라 분배하는 세션 기반의 분배 방식 등이 많이 이용되고 있다.
이 중 라운드 로빈 분배 방식은 복수의 프로세서 각각에게 패킷을 균등하게 분배하는 것으로서, 각각의 프로세서의 활용도를 높일 수 있다. 그러나, 라운드 로빈 분배 방식은 동일한 세션에 속하는 패킷들이 입력된 순서대로 출력되는 것을 보장하지는 않는다. 도 2는 라운드 로빈 분배 방식에 따라 패킷을 분배하는 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다. 도시되는 바와 같이, "A", "B", "C", "D", "E"의 패킷이 순서대로 패킷 스케줄러에 입력되되면, 패킷 스케줄러는 상기 패킷들을 복수의 프로세서들에 균등하게 분배하게 된다. 이때, "C" 패킷의 처리 시간이 다른 패킷의 처리 시간 보다 긴 경우에는 패킷들의 입력 순서와 상이하게, "A", "B", "D", "C", "E"의 패킷이 순서대로 출력될 수 있다. 이는 패킷 처리 장치가 방화벽이나 IPS(intrusion prevension system) 등과 같은 보안 처리를 수행하고 패킷의 목적지로 패킷을 전송하는데 있어, 패킷의 처리 목적에 따라 패킷이 패킷 처리 장치 내에 머무르는 시간이 상이하기 때문이다. 예를 들어, 스위치나 라우터 등과 같이 동일 플로우의 패킷들에 대한 처리 방법이 동일한 경우 패킷 처리 시간이 일정하지만, IPS나 백신(anti-virus) 등과 같은 장비들은 패킷의 크기와 패킷 내부의 내용에 따라 처리 시간이 상이해질 수 있다. 이러한 경우 입력 패킷과 출력 패킷의 순서가 바뀌는, 비순차적(out of sequence) 패킷의 전달이 발생할 수 있다. 특히, TCP(transmission control protocol) 세션의 경우 순차적인 패킷의 전달 보장은 전송 효율에 있어서 매우 중요한 요소인데, TCP 세션에서 비순차적인 패킷의 전달이 발생하는 경우, TCP는 이를 복구하기 위한 일련의 복구 알고리즘을 수행하게 되고, 이에 따라 전송 효율이 저하되는 문제점이 있다.
이와 달리, 동일한 세션에 속하는 모든 패킷들을 동일한 프로세서에 전송하여 처리하게 하는 세션 기반의 방식의 경우, 비순차적 패킷 전달의 문제로부터 자유롭다. 세션 기반의 방식의 경우, 패킷의 IP 주소를 해시(hash)한 값에 따라 패킷을 처리할 프로세서를 결정하기 때문에, 동일한 세션에 속하는 모든 패킷을 동일한 프로세서에서 처리하게 되므로 순차적인 패킷 전달이 보장되고 또한 프로세서 캐쉬도 효율적으로 사용할 수 있다. 그러나, 세션 기반 방식은 입력 패킷이 모든 프로세서에게 균등하게 분산되지 않으므로 라운드 로빈 분배 방식에 비해 프로세서의 활용도가 떨어지는 문제점이 있다. 도 3은 세션 기반의 분배 방식에 따라 패킷을 분배하는 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다. "A", "B", "C", "D", "E"의 패킷이 패킷 스케줄러에 입력되면 상기 패킷들의 세션에 따라 대응하는 프로세서로 패킷을 분배하게 된다. 이때, "A", "B", "D", "E"의 패킷이 동일한 세션에 속하거나, 상기 패킷들의 세션이 상이하더라도 세션 기반의 프로세서 알고리즘에 따라 동일한 프로세서에 선택되는 경우, 도시되는 바와 같이, 상기 패킷들은 하나의 프로세서(프로세서1)에 집중됨으로써, 전체 처리 효율을 감소시킬 수 있다. 즉, 특정한 세션에 속하는 패킷의 양이 많거나 처리 시간이 오래 걸리는 경우 또는 특정 프로세서로 할당되는 세션이 많은 경우 네트워크 패킷의 병목 현상이 발생할 수 있다.
이와 같이, 라운드 로빈 분배 방식은 다중 프로세서의 성능을 최대한으로 활용할 수 있지만 비순차적 패킷의 전달이라는 문제가 발생할 수 있는 반면에, 세션 기반의 분배 방식의 경우 비순차적 패킷의 전달의 문제로부터 자유롭지만, 특정한 프로세서에 패킷이 집중되는 경우 병목 현상이 발생할 수 있다. 따라서, 이러한 패킷 분배 방식을 혼용함으로써, 다중 프로세서를 최대한 활용함과 동시에 네트워크 패킷의 병목 현상을 방지할 수 있는 기술이 요구된다.
본 발명은 상기 문제점들을 해결하기 위한 것으로서, 다중 프로세서의 활용도를 높이고, 네트워크 패킷의 병목 현상을 방지하는데 그 목적이 있다.
본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치가 개시된다. 상기 장치는 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식 중 지정된 분배 방식에 따라 분배된 패킷을 처리하기 위한 복수의 프로세서들; 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식을 결정하고, 상기 복수의 프로세서들 중 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하기 위한 패킷 스케줄러; 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하기 위한 부하 측정부; 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 부하 측정부에 의해 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하기 위한 부하 분산부를 포함할 수 있다.
본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 방법이 개시된다. 상기 방법은 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로서 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식을 선택하는 단계; 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식이 지정된 복수의 프로세서들 중 상기 선택된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하는 단계; 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는 단계; 및 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하는 단계를 포함할 수 있다.
본 발명은 복수의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다. 또한, 패킷 처리율에 따라 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경함으로써, 프로세서들 간의 부하 밸런싱을 달성하고, 나아가 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 해결될 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다.
도 2는 라운드 로빈 분배 방식에 따라 패킷을 분배하는 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다.
도 3은 세션 기반의 분배 방식에 따라 패킷을 분배하는 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다.
도 4는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치를 도시한다.
도 5는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 방법을 도시한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 설명함으로써, 본 발명을 상세히 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치(400)를 도시한다. 상기 장치(400)는 복수의 프로세서들을 이용하여 네트워크 패킷을 처리하기 위한 모든 장치들을 포함하며, 이러한 장치(400)에는 방화벽, 침입 탐지 시스템(intrusion detection system), 침입 차단 시스템(intrusion prevention system) 등 네트워크 보안 장치가 포함될 수 있다. 도시되는 바와 같이, 상기 장치(400)는 네트워크 패킷을 처리하기 위한 복수의 프로세서들(410), 네트워크 패킷을 복수의 프로세서들(410)에 분배하기 위한 패킷 스케줄러(420), 복수의 프로세서들(410)의 부하를 측정하기 위한 부하 측정부(430) 및 복수의 프로세서들(410)에 대한 네트워크 패킷 분배 방식을 변경하여 부하 밸런싱을 달성하기 위한 부하 분산부(440)를 포함할 수 있다.
복수의 프로세서들(410)은 상기 장치(400) 내로 입력되는 네트워크 패킷을 처리하기 위한 것으로서, 복수의 프로세서들(410) 각각에 대해 특정한 네트워크 패킷 분배 방식이 정의되어 있다. 네트워크 패킷 분배 방식은 패킷 스케줄러(420)가 복수의 프로세서들(410) 중 네트워크 패킷을 분배할 프로세서를 선택하는 방법을 의미하며, 이러한 네트워크 패킷 분배 방식에는 라운드 로빈 분배 방식, 세션 기반의 분배 방식 등이 포함될 수 있다. 네트워크 패킷의 종류나 목적 등에 따라 각각의 네트워크 패킷에 적합한 패킷 분배 방식이 상이할 수 있으므로, 복수의 프로세서들에 대해 하나의 네트워크 패킷 분배 방식만이 지정되던 종래의 기술과 달리, 본 발명은 각각의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다.
패킷 스케줄러(420)는 상기 장치(440)로 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로 결정할 수 있다. 이때, 패킷 스케줄러(420)는 네트워크 패킷의 플로우(flow) 정보에 기초하여 네트워크 패킷 분배 방식을 결정하기 때문에, 입력되는 네트워크 패킷 각각에 대해 개별적으로 네트워크 패킷 분배 방식을 결정할 수 있다.
일 실시예에서, 네트워크 패킷의 플로우 정보는 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나를 포함할 수 있다. 즉, 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 네트워크 패킷 분배 방식이 결정될 수 있다. 예를 들어, 네트워크 패킷의 프로토콜이 UDP인 경우, 세션 기반의 분배 방식이 선택되고, 다른 프로토콜의 네트워크 패킷에 대해서는 라운드 로빈 분배 방식이 선택될 수 있다. 이는 예시적인 것으로서, 본 발명이 적용되는 실시예에 따라 다양한 방법으로 네트워크 패킷의 분배 방식이 결정될 수 있다.
계속해서, 패킷 스케줄러(420)는 상기 복수의 프로세서들(410) 중 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배할 수 있다. 여기서 상기 대응하는 프로세서는 상기 대응하는 프로세서에 대해 지정된 네트워크 패킷 분배 방식이 상기 패킷 스케줄러(420)에 의해 결정된 네트워크 패킷의 분배 방식과 동일한 프로세서를 의미한다. 상기 동일한 프로세서가 복수 개 존재하는 경우, 상기 동일한 프로세서에 대해 지정된 네트워크 패킷 분배 방식에 따라 하나의 적절한 프로세서가 선택될 수 있다.
일 실시예에서, 패킷 스케줄러(420)가 라운드 로빈 분배 방식을 네트워크 패킷 분배 방식으로 결정한 경우, 패킷 스케줄러(420)는 네트워크 패킷의 분배 방식으로서 라운드 로빈 분배 방식이 지정된 프로세서들 중 하나에 네트워크 패킷을 분배할 수 있다. 구체적으로, 패킷 스케줄러(420)는 네트워크 패킷이 입력되는 순서에 따라 라운드 로빈 분배 방식이 지정된 프로세서들에 균등하게 전송할 수 있다.
일 실시예에서, 패킷 스케줄러(420)가 세션 기반의 분배 방식을 네트워크 패킷 분배 방식으로 결정한 경우, 패킷 스케줄러(420)는 네트워크 패킷의 분배 방식으로서 세션 기반의 분배 방식이 지정된 프로세서들 중 하나에 네트워크 패킷을 분배할 수 있다. 구체적으로, 패킷 스케줄러(420)는 네트워크 패킷의 플로우 정보를 해시(hash)하여 해시 값을 생성하고, 상기 해시 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로(modulo) 연산을 수행한 후, 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 네트워크 패킷을 분배할 수 있다. 예를 들어, 상기 해시 값이 154이고, 4 개의 프로세서에 대해 세션 기반의 분배 방식이 지정된 경우, 모듈로 연산 결과는 2에 해당하므로, 상기 4 개의 프로세서 중 2 번째 프로세서로 네트워크 패킷을 분배할 수 있다. 이는 예시적인 것으로서, 본 발명이 적용되는 실시예에 따라 다양한 방법으로 세션 기반의 분배 방식을 구현할 수 있다.
패킷 스케줄러(420)는 복수의 프로세서들(410) 중 패킷 스케줄링 기능을 수행하는 임의의 프로세서이거나, 복수의 프로세서들(410)과는 별개의 프로세서일 수 있다. 또한, 패킷 스케줄러(420)는 외부 네트워크로부터 네트워크 패킷을 수신하기 위한 네트워크 인터페이스(도시되지 않음)에 통합될 수 있다.
부하 측정부(430)는 복수의 프로세서들(410) 각각의 패킷 처리율을 측정할 수 있다. 상기 패킷 처리율은 네트워크 패킷의 처리로 인해 각 프로세서에 가해지는 부하를 나타낼 수 있다. 일 실시예에서, 상기 패킷 처리율은
Figure pat00001
에 의해 계산될 수 있다. 다른 실시예에서, 상기 패킷 처리율은
Figure pat00002
에 의해 계산될 수 있다. 여기서 큐는 각각의 프로세서에 포함되어 있는 버퍼로서, 각 프로세서에 분배된 네트워크 패킷을 임시 저장할 수 있다. 한편, 부하 측정으로 인한 시스템 성능 저하를 방지하기 위해 부하 측정부(430)는 일정한 주기로 복수의 프로세서들(410)의 패킷 처리율을 측정할 수 있다.
부하 분산부(440)는 부하 측정부(430)에 의해 측정된 패킷 처리율에 기초하여 복수의 프로세서들(410)의 부하 밸런싱을 달성하도록 복수의 프로세서들(410)에 지정된 네트워크 패킷 분배 방식을 변경할 수 있다.
일 실시예에서, 부하 분산부(440)는 복수의 프로세서들(410) 중 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식으로 변경할 수 있다. 여기서 소정의 임계치는 예를 들어, 90%일 수 있다. 상기 소정의 임계치는 예시적인 적으로서, 본 발명이 적용되는 실시예에 따라 다양한 임계치가 적용될 수 있다. 소정의 임계치를 초과한 프로세서의 패킷 처리율은 상기 프로세서에 가해지는 부하가 다른 프로세서의 부하에 비해 크다는 점을 나타내므로, 상기 프로세서와 동일한 네트워크 패킷 분배 방식이 지정된 프로세서의 수를 증가시킴으로써, 부하 밸런싱을 달성할 수 있다. 또한 세션 기반의 분배 방식이 지정된 프로세서에 다량의 세션이 할당됨으로써 병목 현상이 발생하더라도, 부하 분산부(440)에 의해 세션 기반의 분배 방식이 지정된 프로세서의 수가 증가하게 되면 모듈러 연산을 수행하기 위한 프로세서의 수가 달라지므로, 상기 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 용이하게 해결될 수 있다.
도 5는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 방법(500)을 도시한다. 상기 방법(500)은 복수의 프로세서들을 이용하여 네트워크 패킷을 처리하기 위한 모든 장치들에 의해 수행되는 것으로서, 이러한 장치에는 방화벽, 침입 탐지 시스템(intrusion detection system), 침입 차단 시스템(intrusion prevention system) 등 네트워크 보안 장치가 포함될 수 있다.
상기 방법(500)은 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로서 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식을 선택하는 단계(510); 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식이 지정된 복수의 프로세서들 중 상기 선택된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하는 단계(520); 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는 단계(530); 및 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하는 단계(540)를 포함할 수 있다.
일 실시예에서, 단계(510)는 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 수행될 수 있다.
일 실시예에서, 단계(530)에서 상기 패킷 처리율은
Figure pat00003
에 의해 계산되거나 상기 패킷 처리율은
Figure pat00004
에 의해 계산될 수 있다. 또한, 단계(530)는 부하 측정으로 인한 전체적인 성능 저하를 방지하기 위해 일정한 주기로 반복 수행될 수 있다.
일 실시예에서, 단계(540)는 상기 복수의 프로세서들 중 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식으로 변경하는 단계를 포함할 수 있다. 여기서 소정의 임계치는 예를 들어, 90%일 수 있다. 상기 소정의 임계치는 예시적인 적으로서, 본 발명이 적용되는 실시예에 따라 다양한 임계치가 적용될 수 있다.
일 실시예에서, 단계(510)에서 세션 기반의 분배 방식을 상기 네트워크 패킷의 네트워크 패킷 분배 방식으로 선택한 경우, 단계(520)는, 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나의 해시 값을 생성하는 단계; 상기 생성된 해시 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로 연산을 수행하는 단계; 및 상기 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 상기 네트워크 패킷을 분배하는 단계를 포함할 수 있다.
본 발명은 복수의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다. 또한, 패킷 처리율에 따라 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경함으로써, 프로세서들 간의 부하 밸런싱을 달성하고, 나아가 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 해결될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (14)

  1. 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식 중 지정된 분배 방식에 따라 분배된 패킷을 처리하기 위한 복수의 프로세서들;
    입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식을 결정하고, 상기 복수의 프로세서들 중 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하기 위한 패킷 스케줄러;
    상기 복수의 프로세서들 각각의 패킷 처리율을 측정하기 위한 부하 측정부;
    상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 부하 측정부에 의해 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하기 위한 부하 분산부
    를 포함하는, 다중 프로세서 기반의 패킷 처리 장치.
  2. 제 1 항에 있어서,
    상기 패킷 스케줄러는 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 네트워크 패킷 분배 방식을 결정하는,
    다중 프로세서 기반의 패킷 처리 장치.
  3. 제 1 항에 있어서,
    상기 부하 측정부는 주기적으로 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는,
    다중 프로세서 기반의 패킷 처리 장치.
  4. 제 1 항에 있어서,
    상기 부하 분산부는 상기 복수의 프로세서들 중 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식으로 변경하는,
    다중 프로세서 기반의 패킷 처리 장치.
  5. 제 4 항에 있어서,
    상기 패킷 처리율은
    Figure pat00005
    에 의해 계산되는,
    다중 프로세서 기반의 패킷 처리 장치.
  6. 제 4 항에 있어서,
    상기 복수의 프로세서 각각은 분배된 네트워크 패킷을 저장하기 위한 큐(queue)를 포함하고,
    상기 패킷 처리율은
    Figure pat00006
    에 의해 계산되는,
    다중 프로세서 기반의 패킷 처리 장치.
  7. 제 1 항 또는 제 4 항에 있어서,
    상기 패킷 스케줄러가 세션 기반의 분배 방식을 상기 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로 결정한 경우, 상기 패킷 스케줄러는 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나를 해시(hash)한 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로(modulo) 연산을 수행하여, 상기 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 상기 네트워크 패킷을 분배하는,
    다중 프로세서 기반의 패킷 처리 장치.
  8. 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로서 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식을 선택하는 단계;
    세션 기반의 분배 방식 또는 라운드 로빈 분배 방식이 지정된 복수의 프로세서들 중 상기 선택된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하는 단계;
    상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는 단계; 및
    상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하는 단계
    를 포함하는, 다중 프로세서 기반의 패킷 처리 방법.
  9. 제 8 항에 있어서,
    상기 선택하는 단계는,
    상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 수행되는,
    다중 프로세서 기반의 패킷 처리 방법.
  10. 제 8 항에 있어서,
    상기 패킷 처리율을 측정하는 단계는 일정한 주기로 반복 수행되는,
    다중 프로세서 기반의 패킷 처리 방법.
  11. 제 8 항에 있어서,
    상기 네트워크 패킷 분배 방식을 변경하는 단계는,
    상기 복수의 프로세서들 중 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식으로 변경하는 단계를 포함하는,
    다중 프로세서 기반의 패킷 처리 방법.
  12. 제 11 항에 있어서,
    상기 패킷 처리율은
    Figure pat00007
    에 의해 계산되는,
    다중 프로세서 기반의 패킷 처리 방법.
  13. 제 11 항에 있어서,
    상기 복수의 프로세서 각각에 분배된 네트워크 패킷은 상기 복수의 프로세서 각각의 큐에 임시 저장되며,
    상기 패킷 처리율은
    Figure pat00008
    에 의해 계산되는,
    다중 프로세서 기반의 패킷 처리 방법.
  14. 제 8 항 또는 제 11 항에 있어서,
    상기 선택하는 단계에서 세션 기반의 분배 방식을 상기 네트워크 패킷의 네트워크 패킷 분배 방식으로 선택한 경우, 상기 네트워크 패킷을 분배하는 단계는,
    상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나의 해시 값을 생성하는 단계;
    상기 생성된 해시 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로 연산을 수행하는 단계; 및
    상기 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 상기 네트워크 패킷을 분배하는 단계를 포함하는,
    다중 프로세서 기반의 패킷 처리 방법.
KR1020120008092A 2012-01-27 2012-01-27 다중 프로세서 기반의 패킷 처리 장치 및 그 방법 KR101429114B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120008092A KR101429114B1 (ko) 2012-01-27 2012-01-27 다중 프로세서 기반의 패킷 처리 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120008092A KR101429114B1 (ko) 2012-01-27 2012-01-27 다중 프로세서 기반의 패킷 처리 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20130093843A true KR20130093843A (ko) 2013-08-23
KR101429114B1 KR101429114B1 (ko) 2014-08-13

Family

ID=49217864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120008092A KR101429114B1 (ko) 2012-01-27 2012-01-27 다중 프로세서 기반의 패킷 처리 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR101429114B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160080266A (ko) * 2014-12-29 2016-07-07 주식회사 시큐아이 Cpu 부하 분산 패킷 처리 장치 및 방법
KR20210009010A (ko) * 2019-07-16 2021-01-26 엘지전자 주식회사 차량용 방화벽 제공 장치
CN116436855A (zh) * 2023-06-12 2023-07-14 建信金融科技有限责任公司 数据信息处理方法、装置、电子设备和介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092798A (ja) * 1999-09-21 2001-04-06 Matsushita Electric Ind Co Ltd 負荷分散型マルチプロセッサシステム及び方法
JP3716753B2 (ja) * 2001-03-21 2005-11-16 日本電気株式会社 マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム
KR100702773B1 (ko) * 2004-12-28 2007-04-03 주식회사 케이티 라운드-로빈 방식을 통해 부하를 분배하는 BcN망의 옥타브 스위치 및 이를 이용한 부하 분배 방법
KR20110067377A (ko) * 2009-12-14 2011-06-22 한국전자통신연구원 게임 서버의 로드 밸런싱 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160080266A (ko) * 2014-12-29 2016-07-07 주식회사 시큐아이 Cpu 부하 분산 패킷 처리 장치 및 방법
KR20210009010A (ko) * 2019-07-16 2021-01-26 엘지전자 주식회사 차량용 방화벽 제공 장치
CN116436855A (zh) * 2023-06-12 2023-07-14 建信金融科技有限责任公司 数据信息处理方法、装置、电子设备和介质
CN116436855B (zh) * 2023-06-12 2023-09-12 建信金融科技有限责任公司 数据信息处理方法、装置、电子设备和介质

Also Published As

Publication number Publication date
KR101429114B1 (ko) 2014-08-13

Similar Documents

Publication Publication Date Title
US10623309B1 (en) Rule processing of packets
US20210336885A1 (en) Phantom queue link level load balancing system, method and device
US10579407B2 (en) Systems and methods for deploying microservices in a networked microservices system
US20140025823A1 (en) Methods for managing contended resource utilization in a multiprocessor architecture and devices thereof
US9419908B2 (en) Network congestion management using flow rebalancing
US9781041B2 (en) Systems and methods for native network interface controller (NIC) teaming load balancing
US7020713B1 (en) System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
EP2730067B1 (en) Method and apparatus for load balancing
US9032524B2 (en) Line-rate packet filtering technique for general purpose operating systems
CN109218216B (zh) 链路聚合流量分配方法、装置、设备及存储介质
US11005814B2 (en) Network security
US11102127B2 (en) Load balancing among network links using an efficient forwarding scheme
JP6277853B2 (ja) 制御装置、通信装置、および、通信方法
CN105159779B (zh) 提高多核cpu数据处理性能的方法和系统
CN107241280A (zh) 基于信誉的网络流量的动态优先级排序
KR101429114B1 (ko) 다중 프로세서 기반의 패킷 처리 장치 및 그 방법
Prakash et al. Server-based dynamic load balancing
CN103685321A (zh) 数据包转发和安全防护检测系统、负载均衡方法及装置
KR101448951B1 (ko) 패킷 처리 장치 및 방법
US20170244638A1 (en) Control apparatus, control method and control system
KR20180060353A (ko) 가상 머신 QoS 보장형 무손실 부하 분산 시스템 및 방법
JP2012044281A (ja) セキュリティ装置及びフロー特定方法
CN108377254B (zh) 负载均衡中的一致流指派的方法及设备
Addanki et al. Fair dropping for multi-resource fairness in software routers Extended Abstract
US20200177509A1 (en) System and method for anycast load balancing for distribution system

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
FPAY Annual fee payment

Payment date: 20180802

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 6