KR101429114B1 - Apparatus and method for processing packet using multiprocessr - Google Patents

Apparatus and method for processing packet using multiprocessr Download PDF

Info

Publication number
KR101429114B1
KR101429114B1 KR1020120008092A KR20120008092A KR101429114B1 KR 101429114 B1 KR101429114 B1 KR 101429114B1 KR 1020120008092 A KR1020120008092 A KR 1020120008092A KR 20120008092 A KR20120008092 A KR 20120008092A KR 101429114 B1 KR101429114 B1 KR 101429114B1
Authority
KR
South Korea
Prior art keywords
packet
processors
distribution scheme
network
network packet
Prior art date
Application number
KR1020120008092A
Other languages
Korean (ko)
Other versions
KR20130093843A (en
Inventor
정연권
Original Assignee
주식회사 시큐아이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 시큐아이 filed Critical 주식회사 시큐아이
Priority to KR1020120008092A priority Critical patent/KR101429114B1/en
Publication of KR20130093843A publication Critical patent/KR20130093843A/en
Application granted granted Critical
Publication of KR101429114B1 publication Critical patent/KR101429114B1/en

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

본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치가 개시된다. 상기 장치는 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식 중 지정된 분배 방식에 따라 분배된 패킷을 처리하기 위한 복수의 프로세서들; 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식을 결정하고, 상기 복수의 프로세서들 중 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하기 위한 패킷 스케줄러; 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하기 위한 부하 측정부; 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 부하 측정부에 의해 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하기 위한 부하 분산부를 포함할 수 있다. 본 발명은 복수의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다. 또한, 패킷 처리율에 따라 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경함으로써, 프로세서들 간의 부하 밸런싱을 달성하고, 나아가 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 해결될 수 있다.A multiprocessor based packet processing apparatus in accordance with an embodiment of the present invention is disclosed. The apparatus comprising: a plurality of processors for processing packets distributed according to a designated one of a session-based distribution scheme or a round-robin distribution scheme; A packet scheduler for determining a network packet distribution scheme for an incoming network packet and distributing the network packet to a processor corresponding to the determined network packet distribution scheme among the plurality of processors; A load measuring unit for measuring packet throughput of each of the plurality of processors; Determining a network packet distribution for the plurality of processors based on a specified network packet distribution scheme for each of the plurality of processors and a packet throughput measured by the load measurement unit to achieve load balancing of the plurality of processors, And a load balancer for changing the scheme. The present invention can mix various network packet distribution schemes by designating a network packet distribution scheme to a plurality of processors individually, thereby achieving efficiency of network packet distribution. In addition, by changing the designated network packet distribution scheme for the processors according to the packet throughput, achieving load balancing between the processors, and furthermore, the bottleneck caused by allocating a large number of sessions to one processor can be resolved.

Description

다중 프로세서 기반의 패킷 처리 장치 및 그 방법{APPARATUS AND METHOD FOR PROCESSING PACKET USING MULTIPROCESSR}[0001] APPARATUS AND METHOD FOR PROCESSING PACKET USING MULTIPROCESSR [0002]

본 발명은 다중 프로세서 기반의 패킷 처리 장치 및 방법에 관한 것으로서, 더 구체적으로는 다양한 네트워크 패킷 분배 방식을 혼용함으로써 부하 밸런싱 및 네트워크 패킷의 병목 현상을 해결할 수 있는 다중 프로세서 기반의 패킷 처리 장치 및 방법에 관한 것이다.The present invention relates to a multiprocessor based packet processing apparatus and method, and more particularly, to a multiprocessor based packet processing apparatus and method capable of solving a load balancing and a bottleneck of a network packet by using various network packet distribution schemes .

다중 프로세서를 이용하는 네트워크 장비는 패킷이 수신되면, 이를 프로세싱하기 위해 각각의 프로세서로 분배하게 된다. 도 1은 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다. 도시되는 바와 같이, 상기 장치(100)는 외부로부터 네트워크 패킷을 수신하기 위한 네트워크 인터페이스(110), 네트워크 인터페이스(110)에 의해 수신된 패킷을 각각의 프로세서(140)로 분배하기 위한 패킷 스케줄러(110), 각각의 프로세서(140)로 분배된 패킷을 저장하기 위한 복수의 큐(130) 및 복수의 큐(130)에 각각 대응하고, 대응하는 큐(130)에 저장된 패킷을 처리하기 위한 복수의 프로세서(140)를 포함할 수 있다. 패킷 스케줄러(120)에 패킷들이 입력되면, 패킷 스케줄러(110)는 이러한 패킷들을 큐(130)에 저장함으로써, 상기 큐(130)에 대응하는 프로세서(140)에 분배할 수 있다. 이러한 패킷 분배에는 다양한 방법이 사용될 수 있다. 그 중에서도, 수신되는 패킷을 균등하게 각각의 프로세서에 분배하는 라운드 로빈(round robin) 분배 방식, 패킷에 관한 정보(예를 들어, 출발지 IP 주소, 출발지 포트, 목적지 IP 주소, 목적지 포트 등)에 따라 분배하는 세션 기반의 분배 방식 등이 많이 이용되고 있다.When a packet is received, the network equipment using the multiprocessor is distributed to each processor to process it. 1 shows an example of a multiprocessor based packet processing apparatus. As shown, the apparatus 100 includes a network interface 110 for receiving network packets from the outside, a packet scheduler 110 for distributing packets received by the network interface 110 to each processor 140 A plurality of queues 130 for storing packets distributed to each processor 140 and a plurality of queues 130 for processing packets stored in corresponding queues 130, (140). When packets are entered into the packet scheduler 120, the packet scheduler 110 may distribute these packets to the corresponding processor 140 in the queue 130 by storing them in the queue 130. Various methods can be used for such packet distribution. Among them, a round robin distribution scheme that distributes received packets evenly to each processor, a packet distribution method based on information (e.g., source IP address, source port, destination IP address, destination port, etc.) And a session-based distribution method for distributing the contents.

이 중 라운드 로빈 분배 방식은 복수의 프로세서 각각에게 패킷을 균등하게 분배하는 것으로서, 각각의 프로세서의 활용도를 높일 수 있다. 그러나, 라운드 로빈 분배 방식은 동일한 세션에 속하는 패킷들이 입력된 순서대로 출력되는 것을 보장하지는 않는다. 도 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는 이를 복구하기 위한 일련의 복구 알고리즘을 수행하게 되고, 이에 따라 전송 효율이 저하되는 문제점이 있다. The round-robin distribution scheme distributes packets evenly to each of the plurality of processors, thereby increasing the utilization of each processor. However, the round robin distribution scheme does not guarantee that packets belonging to the same session are output in the order in which they are input. 2 shows an example of a multiprocessor based packet processing apparatus for distributing packets according to a round robin distribution scheme. As shown, when packets of "A", "B", "C", "D", "E" are sequentially entered into the packet scheduler, the packet scheduler distributes the packets evenly . In this case, when the processing time of the "C" packet is longer than the processing time of other packets, packets of "A "," B ", "D "," C & As shown in FIG. This is because the packet processing apparatus performs security processing such as a firewall or intrusion pre- vention system (IPS), and transmits packets to the destination of the packet, because the time for the packet to stay in the packet processing apparatus differs according to the processing purpose of the packet. For example, if the processing method of packets of the same flow such as a switch or a router is the same, the processing time of the packet is constant. However, devices such as IPS and anti-virus are classified according to the size of the packet and the contents of the packet The processing time may be different. In this case, the out-of-sequence packet transmission may occur, in which the order of the input packet and the output packet is changed. In particular, in the case of TCP (Transmission Control Protocol) sessions, ensuring forwarding of sequential packets is a very important factor in transmission efficiency. When a non-sequential packet is transmitted in a TCP session, TCP performs a series of recovery Algorithm is performed, and thus the transmission efficiency is lowered.

이와 달리, 동일한 세션에 속하는 모든 패킷들을 동일한 프로세서에 전송하여 처리하게 하는 세션 기반의 방식의 경우, 비순차적 패킷 전달의 문제로부터 자유롭다. 세션 기반의 방식의 경우, 패킷의 IP 주소를 해시(hash)한 값에 따라 패킷을 처리할 프로세서를 결정하기 때문에, 동일한 세션에 속하는 모든 패킷을 동일한 프로세서에서 처리하게 되므로 순차적인 패킷 전달이 보장되고 또한 프로세서 캐쉬도 효율적으로 사용할 수 있다. 그러나, 세션 기반 방식은 입력 패킷이 모든 프로세서에게 균등하게 분산되지 않으므로 라운드 로빈 분배 방식에 비해 프로세서의 활용도가 떨어지는 문제점이 있다. 도 3은 세션 기반의 분배 방식에 따라 패킷을 분배하는 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다. "A", "B", "C", "D", "E"의 패킷이 패킷 스케줄러에 입력되면 상기 패킷들의 세션에 따라 대응하는 프로세서로 패킷을 분배하게 된다. 이때, "A", "B", "D", "E"의 패킷이 동일한 세션에 속하거나, 상기 패킷들의 세션이 상이하더라도 세션 기반의 프로세서 알고리즘에 따라 동일한 프로세서에 선택되는 경우, 도시되는 바와 같이, 상기 패킷들은 하나의 프로세서(프로세서1)에 집중됨으로써, 전체 처리 효율을 감소시킬 수 있다. 즉, 특정한 세션에 속하는 패킷의 양이 많거나 처리 시간이 오래 걸리는 경우 또는 특정 프로세서로 할당되는 세션이 많은 경우 네트워크 패킷의 병목 현상이 발생할 수 있다. On the other hand, the session-based scheme, which allows all packets belonging to the same session to be transmitted to the same processor for processing, is free from the problem of non-sequential packet delivery. In the case of the session-based method, since a processor to process a packet is determined according to a hash value of an IP address of a packet, all packets belonging to the same session are processed by the same processor, The processor cache can also be used efficiently. However, the session-based scheme has a problem that the utilization of the processor is lower than that of the round-robin distribution scheme because the input packets are not evenly distributed to all the processors. Figure 3 illustrates an example of a multiprocessor based packet processing device that distributes packets according to a session-based distribution scheme. When packets of "A", "B", "C", "D", and "E" are input to the packet scheduler, If packets of "A", "B", "D", "E" belong to the same session or if the sessions of the packets are different, Likewise, the packets may be concentrated in one processor (processor 1), thereby reducing overall processing efficiency. That is, when a packet belonging to a specific session is large in amount or takes a long processing time, or when there are many sessions allocated to a specific processor, a network packet bottleneck may occur.

이와 같이, 라운드 로빈 분배 방식은 다중 프로세서의 성능을 최대한으로 활용할 수 있지만 비순차적 패킷의 전달이라는 문제가 발생할 수 있는 반면에, 세션 기반의 분배 방식의 경우 비순차적 패킷의 전달의 문제로부터 자유롭지만, 특정한 프로세서에 패킷이 집중되는 경우 병목 현상이 발생할 수 있다. 따라서, 이러한 패킷 분배 방식을 혼용함으로써, 다중 프로세서를 최대한 활용함과 동시에 네트워크 패킷의 병목 현상을 방지할 수 있는 기술이 요구된다. As described above, although the round robin distribution scheme can maximize the performance of the multi-processor, the problem of non-sequential packet delivery may arise, while the session-based distribution scheme is free from the problem of non-sequential packet delivery, A bottleneck can occur when packets are concentrated on a particular processor. Therefore, by using these packet distribution schemes in combination, there is a need for techniques that can maximize the utilization of multiple processors while preventing bottlenecks of network packets.

본 발명은 상기 문제점들을 해결하기 위한 것으로서, 다중 프로세서의 활용도를 높이고, 네트워크 패킷의 병목 현상을 방지하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to enhance utilization of multiple processors and to prevent bottleneck of network packets.

본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치가 개시된다. 상기 장치는 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식 중 지정된 분배 방식에 따라 분배된 패킷을 처리하기 위한 복수의 프로세서들; 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식을 결정하고, 상기 복수의 프로세서들 중 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하기 위한 패킷 스케줄러; 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하기 위한 부하 측정부; 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 부하 측정부에 의해 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하기 위한 부하 분산부를 포함할 수 있다.A multiprocessor based packet processing apparatus in accordance with an embodiment of the present invention is disclosed. The apparatus comprising: a plurality of processors for processing packets distributed according to a designated one of a session-based distribution scheme or a round-robin distribution scheme; A packet scheduler for determining a network packet distribution scheme for an incoming network packet and distributing the network packet to a processor corresponding to the determined network packet distribution scheme among the plurality of processors; A load measuring unit for measuring packet throughput of each of the plurality of processors; Determining a network packet distribution for the plurality of processors based on a specified network packet distribution scheme for each of the plurality of processors and a packet throughput measured by the load measurement unit to achieve load balancing of the plurality of processors, And a load balancer for changing the scheme.

본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 방법이 개시된다. 상기 방법은 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로서 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식을 선택하는 단계; 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식이 지정된 복수의 프로세서들 중 상기 선택된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하는 단계; 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는 단계; 및 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하는 단계를 포함할 수 있다.A multiprocessor based packet processing method in accordance with an embodiment of the present invention is disclosed. The method includes selecting a session-based distribution scheme or a round-robin distribution scheme as a network packet distribution scheme for input network packets; Distributing the network packet to a processor corresponding to the selected network packet distribution scheme among a plurality of processors to which a session-based distribution scheme or a round-robin distribution scheme is designated; Measuring a packet throughput of each of the plurality of processors; And varying a designated network packet distribution scheme for the plurality of processors based on the designated network packet distribution scheme and the measured packet throughput for each of the plurality of processors to achieve load balancing of the plurality of processors Step < / RTI >

본 발명은 복수의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다. 또한, 패킷 처리율에 따라 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경함으로써, 프로세서들 간의 부하 밸런싱을 달성하고, 나아가 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 해결될 수 있다.The present invention can mix various network packet distribution schemes by designating a network packet distribution scheme to a plurality of processors individually, thereby achieving efficiency of network packet distribution. In addition, by changing the designated network packet distribution scheme for the processors according to the packet throughput, achieving load balancing between the processors, and furthermore, the bottleneck caused by allocating a large number of sessions to one processor can be resolved.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다.
도 2는 라운드 로빈 분배 방식에 따라 패킷을 분배하는 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다.
도 3은 세션 기반의 분배 방식에 따라 패킷을 분배하는 다중 프로세서 기반의 패킷 처리 장치의 예시를 도시한다.
도 4는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치를 도시한다.
도 5는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 방법을 도시한다.
BRIEF DESCRIPTION OF THE DRAWINGS A brief description of each drawing is provided to more fully understand the drawings recited in the description of the invention.
1 shows an example of a multiprocessor based packet processing apparatus.
2 shows an example of a multiprocessor based packet processing apparatus for distributing packets according to a round robin distribution scheme.
Figure 3 illustrates an example of a multiprocessor based packet processing device that distributes packets according to a session-based distribution scheme.
4 illustrates a multiprocessor based packet processing apparatus according to an embodiment of the present invention.
FIG. 5 illustrates a multiprocessor based packet processing method in accordance with an embodiment of the present invention.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.In order to fully understand the present invention, operational advantages of the present invention, and objects achieved by the practice of the present invention, reference should be made to the accompanying drawings and the accompanying drawings which illustrate preferred embodiments of the present invention.

본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. These embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. The present invention is not limited to these embodiments. Rather, these embodiments are provided so that this disclosure will be more thorough and complete, and will fully convey the concept of the invention to those skilled in the art to which the present invention pertains.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 설명함으로써, 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the embodiments of the present invention with reference to the accompanying drawings.

도 4는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 장치(400)를 도시한다. 상기 장치(400)는 복수의 프로세서들을 이용하여 네트워크 패킷을 처리하기 위한 모든 장치들을 포함하며, 이러한 장치(400)에는 방화벽, 침입 탐지 시스템(intrusion detection system), 침입 차단 시스템(intrusion prevention system) 등 네트워크 보안 장치가 포함될 수 있다. 도시되는 바와 같이, 상기 장치(400)는 네트워크 패킷을 처리하기 위한 복수의 프로세서들(410), 네트워크 패킷을 복수의 프로세서들(410)에 분배하기 위한 패킷 스케줄러(420), 복수의 프로세서들(410)의 부하를 측정하기 위한 부하 측정부(430) 및 복수의 프로세서들(410)에 대한 네트워크 패킷 분배 방식을 변경하여 부하 밸런싱을 달성하기 위한 부하 분산부(440)를 포함할 수 있다.4 illustrates a multiprocessor based packet processing device 400 in accordance with an embodiment of the present invention. The device 400 includes all devices for processing network packets using a plurality of processors and such devices 400 may include a firewall, an intrusion detection system, an intrusion prevention system, etc. A network security device may be included. As shown, the apparatus 400 includes a plurality of processors 410 for processing network packets, a packet scheduler 420 for distributing network packets to a plurality of processors 410, a plurality of processors (not shown) A load measuring unit 430 for measuring a load of the plurality of processors 410 and a load balancer 440 for changing a network packet distribution scheme for the plurality of processors 410 to achieve load balancing.

복수의 프로세서들(410)은 상기 장치(400) 내로 입력되는 네트워크 패킷을 처리하기 위한 것으로서, 복수의 프로세서들(410) 각각에 대해 특정한 네트워크 패킷 분배 방식이 정의되어 있다. 네트워크 패킷 분배 방식은 패킷 스케줄러(420)가 복수의 프로세서들(410) 중 네트워크 패킷을 분배할 프로세서를 선택하는 방법을 의미하며, 이러한 네트워크 패킷 분배 방식에는 라운드 로빈 분배 방식, 세션 기반의 분배 방식 등이 포함될 수 있다. 네트워크 패킷의 종류나 목적 등에 따라 각각의 네트워크 패킷에 적합한 패킷 분배 방식이 상이할 수 있으므로, 복수의 프로세서들에 대해 하나의 네트워크 패킷 분배 방식만이 지정되던 종래의 기술과 달리, 본 발명은 각각의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다.A plurality of processors 410 are for processing network packets input into the apparatus 400, and a specific network packet distribution scheme is defined for each of the plurality of processors 410. [ The network packet distribution scheme refers to a method by which the packet scheduler 420 selects a processor to distribute network packets among the plurality of processors 410. The network packet distribution scheme includes a round robin distribution scheme, May be included. Unlike the prior art in which only one network packet distribution method is designated for a plurality of processors because the packet distribution method suitable for each network packet may be different depending on the type and purpose of the network packet, By assigning the network packet distribution scheme to the processor individually, it is possible to mix various network packet distribution schemes, thereby achieving the efficiency of network packet distribution.

패킷 스케줄러(420)는 상기 장치(440)로 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로 결정할 수 있다. 이때, 패킷 스케줄러(420)는 네트워크 패킷의 플로우(flow) 정보에 기초하여 네트워크 패킷 분배 방식을 결정하기 때문에, 입력되는 네트워크 패킷 각각에 대해 개별적으로 네트워크 패킷 분배 방식을 결정할 수 있다.The packet scheduler 420 may determine the network packet distribution scheme for the network packets that are input to the device 440. At this time, since the packet scheduler 420 determines the network packet distribution method based on the flow information of the network packet, the packet scheduler 420 can individually determine the network packet distribution method for each input network packet.

일 실시예에서, 네트워크 패킷의 플로우 정보는 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나를 포함할 수 있다. 즉, 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 네트워크 패킷 분배 방식이 결정될 수 있다. 예를 들어, 네트워크 패킷의 프로토콜이 UDP인 경우, 세션 기반의 분배 방식이 선택되고, 다른 프로토콜의 네트워크 패킷에 대해서는 라운드 로빈 분배 방식이 선택될 수 있다. 이는 예시적인 것으로서, 본 발명이 적용되는 실시예에 따라 다양한 방법으로 네트워크 패킷의 분배 방식이 결정될 수 있다.In one embodiment, the flow information of the network packet may include at least one of a sender IP address, a sender port number, a recipient IP address, a recipient port number, and a protocol of a network packet. That is, the network packet distribution scheme can be determined based on at least one of a sender IP address, a sender port number, a receiver IP address, a receiver port number, and a protocol of a network packet. For example, if the protocol of the network packet is UDP, a session-based distribution scheme may be selected and a round robin distribution scheme may be selected for network packets of other protocols. This is illustrative, and the manner of distribution of network packets can be determined in various ways according to the embodiment to which the present invention is applied.

계속해서, 패킷 스케줄러(420)는 상기 복수의 프로세서들(410) 중 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배할 수 있다. 여기서 상기 대응하는 프로세서는 상기 대응하는 프로세서에 대해 지정된 네트워크 패킷 분배 방식이 상기 패킷 스케줄러(420)에 의해 결정된 네트워크 패킷의 분배 방식과 동일한 프로세서를 의미한다. 상기 동일한 프로세서가 복수 개 존재하는 경우, 상기 동일한 프로세서에 대해 지정된 네트워크 패킷 분배 방식에 따라 하나의 적절한 프로세서가 선택될 수 있다.Subsequently, the packet scheduler 420 may distribute the network packet to the processor corresponding to the determined network packet distribution method among the plurality of processors 410. [ Wherein the corresponding processor means a processor in which the network packet distribution scheme specified for the corresponding processor is the same as the distribution scheme of the network packet determined by the packet scheduler 420. [ If there are a plurality of the same processors, one suitable processor may be selected according to the designated network packet distribution scheme for the same processor.

일 실시예에서, 패킷 스케줄러(420)가 라운드 로빈 분배 방식을 네트워크 패킷 분배 방식으로 결정한 경우, 패킷 스케줄러(420)는 네트워크 패킷의 분배 방식으로서 라운드 로빈 분배 방식이 지정된 프로세서들 중 하나에 네트워크 패킷을 분배할 수 있다. 구체적으로, 패킷 스케줄러(420)는 네트워크 패킷이 입력되는 순서에 따라 라운드 로빈 분배 방식이 지정된 프로세서들에 균등하게 전송할 수 있다.In one embodiment, if the packet scheduler 420 determines a round robin distribution scheme as a network packet distribution scheme, the packet scheduler 420 may send a network packet to one of the specified processors as a distribution scheme of the network packets, Can be distributed. In particular, the packet scheduler 420 may transmit the round robin distribution scheme to the specified processors evenly according to the order in which the network packets are input.

일 실시예에서, 패킷 스케줄러(420)가 세션 기반의 분배 방식을 네트워크 패킷 분배 방식으로 결정한 경우, 패킷 스케줄러(420)는 네트워크 패킷의 분배 방식으로서 세션 기반의 분배 방식이 지정된 프로세서들 중 하나에 네트워크 패킷을 분배할 수 있다. 구체적으로, 패킷 스케줄러(420)는 네트워크 패킷의 플로우 정보를 해시(hash)하여 해시 값을 생성하고, 상기 해시 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로(modulo) 연산을 수행한 후, 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 네트워크 패킷을 분배할 수 있다. 예를 들어, 상기 해시 값이 154이고, 4 개의 프로세서에 대해 세션 기반의 분배 방식이 지정된 경우, 모듈로 연산 결과는 2에 해당하므로, 상기 4 개의 프로세서 중 2 번째 프로세서로 네트워크 패킷을 분배할 수 있다. 이는 예시적인 것으로서, 본 발명이 적용되는 실시예에 따라 다양한 방법으로 세션 기반의 분배 방식을 구현할 수 있다.In one embodiment, if the packet scheduler 420 determines a session-based distribution scheme as a network packet distribution scheme, the packet scheduler 420 may determine that the session-based distribution scheme, as a distribution scheme of network packets, Packets can be distributed. Specifically, the packet scheduler 420 hashes the flow information of the network packet to generate a hash value, and performs a modulo operation on the hash value with the number of processors assigned to the session-based distribution scheme And distribute the network packet to the processor specified by the module operation result among the processors to which the session-based distribution method is designated. For example, if the hash value is 154 and a session-based distribution scheme is specified for four processors, the result of the modulo operation corresponds to 2, so that the network packet can be distributed to the second of the four processors have. This is illustrative, and a session-based distribution scheme can be implemented in various ways according to an embodiment to which the present invention is applied.

패킷 스케줄러(420)는 복수의 프로세서들(410) 중 패킷 스케줄링 기능을 수행하는 임의의 프로세서이거나, 복수의 프로세서들(410)과는 별개의 프로세서일 수 있다. 또한, 패킷 스케줄러(420)는 외부 네트워크로부터 네트워크 패킷을 수신하기 위한 네트워크 인터페이스(도시되지 않음)에 통합될 수 있다.The packet scheduler 420 may be any processor that performs a packet scheduling function among the plurality of processors 410 or may be a processor separate from the plurality of processors 410. [ In addition, the packet scheduler 420 may be integrated into a network interface (not shown) for receiving network packets from an external network.

부하 측정부(430)는 복수의 프로세서들(410) 각각의 패킷 처리율을 측정할 수 있다. 상기 패킷 처리율은 네트워크 패킷의 처리로 인해 각 프로세서에 가해지는 부하를 나타낼 수 있다. 일 실시예에서, 상기 패킷 처리율은

Figure 112012006712317-pat00001
에 의해 계산될 수 있다. 다른 실시예에서, 상기 패킷 처리율은
Figure 112012006712317-pat00002
에 의해 계산될 수 있다. 여기서 큐는 각각의 프로세서에 포함되어 있는 버퍼로서, 각 프로세서에 분배된 네트워크 패킷을 임시 저장할 수 있다. 한편, 부하 측정으로 인한 시스템 성능 저하를 방지하기 위해 부하 측정부(430)는 일정한 주기로 복수의 프로세서들(410)의 패킷 처리율을 측정할 수 있다.The load measuring unit 430 may measure the packet throughput of each of the plurality of processors 410. [ The packet throughput may indicate a load applied to each processor due to processing of a network packet. In one embodiment, the packet throughput is
Figure 112012006712317-pat00001
Lt; / RTI > In another embodiment, the packet throughput is
Figure 112012006712317-pat00002
Lt; / RTI > Here, the queue is a buffer included in each processor, and can temporarily store network packets distributed to each processor. Meanwhile, in order to prevent deterioration of the system performance due to the load measurement, the load measuring unit 430 may measure the packet throughput of the plurality of processors 410 at regular intervals.

부하 분산부(440)는 부하 측정부(430)에 의해 측정된 패킷 처리율에 기초하여 복수의 프로세서들(410)의 부하 밸런싱을 달성하도록 복수의 프로세서들(410)에 지정된 네트워크 패킷 분배 방식을 변경할 수 있다. The load balancing unit 440 may change the network packet distribution scheme assigned to the plurality of processors 410 to achieve load balancing of the plurality of processors 410 based on the packet throughput measured by the load measuring unit 430 .

일 실시예에서, 부하 분산부(440)는 복수의 프로세서들(410) 중 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식으로 변경할 수 있다. 여기서 소정의 임계치는 예를 들어, 90%일 수 있다. 상기 소정의 임계치는 예시적인 적으로서, 본 발명이 적용되는 실시예에 따라 다양한 임계치가 적용될 수 있다. 소정의 임계치를 초과한 프로세서의 패킷 처리율은 상기 프로세서에 가해지는 부하가 다른 프로세서의 부하에 비해 크다는 점을 나타내므로, 상기 프로세서와 동일한 네트워크 패킷 분배 방식이 지정된 프로세서의 수를 증가시킴으로써, 부하 밸런싱을 달성할 수 있다. 또한 세션 기반의 분배 방식이 지정된 프로세서에 다량의 세션이 할당됨으로써 병목 현상이 발생하더라도, 부하 분산부(440)에 의해 세션 기반의 분배 방식이 지정된 프로세서의 수가 증가하게 되면 모듈러 연산을 수행하기 위한 프로세서의 수가 달라지므로, 상기 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 용이하게 해결될 수 있다.In one embodiment, the load balancer 440 may be configured to determine whether a packet processing rate of one of the plurality of processors 410 exceeds a predetermined threshold, a network different from the network packet distribution scheme specified for the one processor The network packet distribution scheme of the processor for which the packet distribution scheme is designated can be changed to the network packet distribution scheme designated for the one processor. Where the predetermined threshold may be, for example, 90%. The predetermined thresholds are illustrative, and various thresholds may be applied according to the embodiment to which the present invention is applied. Since the packet throughput of a processor that exceeds a predetermined threshold indicates that the load applied to the processor is larger than that of other processors, the same network packet distribution scheme as the processor increases the number of designated processors, Can be achieved. In addition, even if a bottleneck occurs due to the assignment of a large number of sessions to a processor for which a session-based distribution scheme is assigned, if the number of processors designated by the session-based distribution scheme increases by the load balancer 440, The bottleneck caused by allocating the large number of sessions to one processor can be easily solved.

도 5는 본 발명의 일 실시예에 따라 다중 프로세서 기반의 패킷 처리 방법(500)을 도시한다. 상기 방법(500)은 복수의 프로세서들을 이용하여 네트워크 패킷을 처리하기 위한 모든 장치들에 의해 수행되는 것으로서, 이러한 장치에는 방화벽, 침입 탐지 시스템(intrusion detection system), 침입 차단 시스템(intrusion prevention system) 등 네트워크 보안 장치가 포함될 수 있다. Figure 5 illustrates a multiprocessor based packet processing method 500 in accordance with an embodiment of the present invention. The method 500 is performed by all devices for processing network packets using a plurality of processors, such as firewalls, intrusion detection systems, intrusion prevention systems, etc. A network security device may be included.

상기 방법(500)은 입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로서 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식을 선택하는 단계(510); 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식이 지정된 복수의 프로세서들 중 상기 선택된 네트워크 패킷 분배 방식에 대응하는 프로세서로 상기 네트워크 패킷을 분배하는 단계(520); 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는 단계(530); 및 상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 각각에 대해 지정된 네트워크 패킷 분배 방식 및 상기 측정된 패킷 처리율에 기초하여, 상기 복수의 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경하는 단계(540)를 포함할 수 있다.The method (500) includes selecting (510) a session-based distribution scheme or a round-robin distribution scheme as a network packet distribution scheme for incoming network packets; Distributing (520) the network packet to a processor corresponding to the selected network packet distribution scheme among a plurality of processors to which a session-based distribution scheme or a round-robin distribution scheme is designated; Measuring (530) packet throughput of each of the plurality of processors; And varying a designated network packet distribution scheme for the plurality of processors based on the designated network packet distribution scheme and the measured packet throughput for each of the plurality of processors to achieve load balancing of the plurality of processors Step 540 may be included.

일 실시예에서, 단계(510)는 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 수행될 수 있다. In one embodiment, step 510 may be performed based on at least one of the sender IP address, sender port number, recipient IP address, recipient port number, and protocol of the network packet.

일 실시예에서, 단계(530)에서 상기 패킷 처리율은

Figure 112012006712317-pat00003
에 의해 계산되거나 상기 패킷 처리율은
Figure 112012006712317-pat00004
에 의해 계산될 수 있다. 또한, 단계(530)는 부하 측정으로 인한 전체적인 성능 저하를 방지하기 위해 일정한 주기로 반복 수행될 수 있다.In one embodiment, at step 530, the packet throughput is
Figure 112012006712317-pat00003
Or the packet throughput is calculated by
Figure 112012006712317-pat00004
Lt; / RTI > In addition, step 530 may be repeated at a constant period to prevent overall performance degradation due to load measurements.

일 실시예에서, 단계(540)는 상기 복수의 프로세서들 중 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 하나의 프로세서에 대해 지정된 네트워크 패킷 분배 방식으로 변경하는 단계를 포함할 수 있다. 여기서 소정의 임계치는 예를 들어, 90%일 수 있다. 상기 소정의 임계치는 예시적인 적으로서, 본 발명이 적용되는 실시예에 따라 다양한 임계치가 적용될 수 있다. In one embodiment, step 540 includes a network packet distribution scheme that is different than the network packet distribution scheme specified for the one processor if the packet throughput of one of the plurality of processors exceeds a predetermined threshold And changing the network packet distribution scheme of the designated processor to the network packet distribution scheme specified for the one processor. Where the predetermined threshold may be, for example, 90%. The predetermined thresholds are illustrative, and various thresholds may be applied according to the embodiment to which the present invention is applied.

일 실시예에서, 단계(510)에서 세션 기반의 분배 방식을 상기 네트워크 패킷의 네트워크 패킷 분배 방식으로 선택한 경우, 단계(520)는, 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나의 해시 값을 생성하는 단계; 상기 생성된 해시 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로 연산을 수행하는 단계; 및 상기 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 상기 네트워크 패킷을 분배하는 단계를 포함할 수 있다.In one embodiment, if a session-based distribution scheme is selected as the network packet distribution scheme of the network packet in step 510, step 520 may include determining a sender IP address, a sender port number, a recipient IP address, Generating a hash value of at least one of a recipient port number and a protocol; Performing a modulo operation on the generated hash value with the number of processors assigned a session-based distribution scheme; And distributing the network packet to a processor of which the session-based distribution scheme is designated by the modulo operation result.

본 발명은 복수의 프로세서에 개별적으로 네트워크 패킷 분배 방식을 지정함으로써 다양한 네트워크 패킷 분배 방식을 혼용하고, 이를 통해 네트워크 패킷 분배의 효율성을 달성할 수 있다. 또한, 패킷 처리율에 따라 프로세서들에 대해 지정된 네트워크 패킷 분배 방식을 변경함으로써, 프로세서들 간의 부하 밸런싱을 달성하고, 나아가 다량의 세션이 하나의 프로세서에 할당됨으로써 발생하는 병목 현상을 해결될 수 있다.The present invention can mix various network packet distribution schemes by designating a network packet distribution scheme to a plurality of processors individually, thereby achieving efficiency of network packet distribution. In addition, by changing the designated network packet distribution scheme for the processors according to the packet throughput, achieving load balancing between the processors, and furthermore, the bottleneck caused by allocating a large number of sessions to one processor can be resolved.

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. As described above, an optimal embodiment has been disclosed in the drawings and specification. Although specific terms have been employed herein, they are used for purposes of illustration only and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will appreciate that various modifications and equivalent embodiments are possible without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

Claims (14)

세션 기반의 분배 방식 및 라운드 로빈 분배 방식 중 어느 하나의 네트워크 패킷 분배 방식이 각각 지정되어 지정된 네트워크 패킷 분배 방식에 따라 네트워크 패킷을 처리하기 위한 복수의 프로세서들;
입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식을 결정하고, 상기 결정된 네트워크 패킷 분배 방식에 대응하는 프로세서들 중 어느 하나의 프로세서로 상기 네트워크 패킷을 분배하기 위한 패킷 스케줄러;
상기 복수의 프로세서들 각각의 패킷 처리율을 측정하기 위한 부하 측정부;
상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 중 적어도 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 적어도 하나의 프로세서에 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 적어도 하나의 프로세서에 지정된 네트워크 패킷 분배 방식으로 변경하는 부하 분산부
를 포함하는, 다중 프로세서 기반의 패킷 처리 장치.
A plurality of processors for processing a network packet according to a designated network packet distribution scheme, each of which is assigned a network packet distribution scheme of either a session-based distribution scheme or a round-robin distribution scheme;
A packet scheduler for determining a network packet distribution scheme for incoming network packets and distributing the network packets to one of the processors corresponding to the determined network packet distribution scheme;
A load measuring unit for measuring packet throughput of each of the plurality of processors;
A network packet distribution different from a network packet distribution scheme assigned to the at least one processor when the packet throughput of at least one of the plurality of processors exceeds a predetermined threshold to achieve load balancing of the plurality of processors, A load distributing unit for distributing a network packet distribution scheme of a designated processor to a network packet distribution scheme assigned to the at least one processor,
Wherein the packet processing apparatus is a multi-processor based packet processing apparatus.
제 1 항에 있어서,
상기 패킷 스케줄러는 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 네트워크 패킷 분배 방식을 결정하는,
다중 프로세서 기반의 패킷 처리 장치.
The method according to claim 1,
Wherein the packet scheduler determines a network packet distribution scheme based on at least one of a sender IP address, a sender port number, a recipient IP address, a recipient port number, and a protocol of the network packet.
A multiprocessor based packet processing device.
제 1 항에 있어서,
상기 부하 측정부는 주기적으로 상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는,
다중 프로세서 기반의 패킷 처리 장치.
The method according to claim 1,
Wherein the load measuring unit periodically measures the packet throughput of each of the plurality of processors,
A multiprocessor based packet processing device.
삭제delete 제 1 항에 있어서,
상기 패킷 처리율은
Figure 112014026431195-pat00005
에 의해 계산되는,
다중 프로세서 기반의 패킷 처리 장치.
The method according to claim 1,
The packet throughput
Figure 112014026431195-pat00005
Lt; / RTI >
A multiprocessor based packet processing device.
제 1 항에 있어서,
상기 복수의 프로세서 각각은 분배된 네트워크 패킷을 저장하기 위한 큐(queue)를 포함하고,
상기 패킷 처리율은
Figure 112014026431195-pat00006
에 의해 계산되는,
다중 프로세서 기반의 패킷 처리 장치.
The method according to claim 1,
Each of the plurality of processors including a queue for storing distributed network packets,
The packet throughput
Figure 112014026431195-pat00006
Lt; / RTI >
A multiprocessor based packet processing device.
제 1 항에 있어서,
상기 패킷 스케줄러가 세션 기반의 분배 방식을 상기 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로 결정한 경우, 상기 패킷 스케줄러는 상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나를 해시(hash)한 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로(modulo) 연산을 수행하여, 상기 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 상기 네트워크 패킷을 분배하는,
다중 프로세서 기반의 패킷 처리 장치.
The method according to claim 1,
If the packet scheduler determines a session-based distribution scheme as a network packet distribution scheme for the network packet, the packet scheduler determines at least one of a sender IP address, a sender port number, a receiver IP address, a receiver port number, Based on a number of processors assigned a session-based distribution scheme for a hash value of one of a plurality of processors assigned to the session-based distribution scheme, And distributing the network packet to the network.
A multiprocessor based packet processing device.
입력되는 네트워크 패킷에 대한 네트워크 패킷 분배 방식으로서 세션 기반의 분배 방식 또는 라운드 로빈 분배 방식을 선택하는 단계;
상기 세션 기반의 분배 방식 및 상기 라운드 로빈 분배 방식 중 어느 하나의 네트워크 패킷 분배 방식이 각각 지정된 복수의 프로세서들 내에서, 상기 선택된 네트워크 패킷 분배 방식에 대응하는 프로세서들 중 어느 하나의 프로세서로 상기 네트워크 패킷을 분배하는 단계;
상기 복수의 프로세서들 각각의 패킷 처리율을 측정하는 단계; 및
상기 복수의 프로세서들의 부하 밸런싱을 달성하도록, 상기 복수의 프로세서들 중 적어도 하나의 프로세서의 패킷 처리율이 소정의 임계치를 초과하는 경우, 상기 적어도 하나의 프로세서에 지정된 네트워크 패킷 분배 방식과는 상이한 네트워크 패킷 분배 방식이 지정된 프로세서의 네트워크 패킷 분배 방식을 상기 적어도 하나의 프로세서에 지정된 네트워크 패킷 분배 방식으로 변경하는 단계
를 포함하는, 다중 프로세서 기반의 패킷 처리 방법.
Selecting a session-based distribution scheme or a round-robin distribution scheme as a network packet distribution scheme for input network packets;
In the plurality of processors each of which is assigned one of the session-based distribution method and the round-robin distribution method, to one of the processors corresponding to the selected network packet distribution method, ; ≪ / RTI >
Measuring a packet throughput of each of the plurality of processors; And
A network packet distribution different from a network packet distribution scheme assigned to the at least one processor when the packet throughput of at least one of the plurality of processors exceeds a predetermined threshold to achieve load balancing of the plurality of processors, Modifying a network packet distribution scheme of a designated processor to a network packet distribution scheme assigned to the at least one processor
Lt; RTI ID = 0.0 > 1, < / RTI >
제 8 항에 있어서,
상기 선택하는 단계는,
상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나에 기초하여 수행되는,
다중 프로세서 기반의 패킷 처리 방법.
9. The method of claim 8,
Wherein the selecting comprises:
Wherein the at least one of the network packets includes at least one of a sender IP address, a sender port number, a recipient IP address, a recipient port number,
A multiprocessor based packet processing method.
제 8 항에 있어서,
상기 패킷 처리율을 측정하는 단계는 일정한 주기로 반복 수행되는,
다중 프로세서 기반의 패킷 처리 방법.
9. The method of claim 8,
Wherein the step of measuring the packet throughput is repeatedly performed at a predetermined period,
A multiprocessor based packet processing method.
삭제delete 제 8 항에 있어서,
상기 패킷 처리율은
Figure 112014026431195-pat00007
에 의해 계산되는,
다중 프로세서 기반의 패킷 처리 방법.
9. The method of claim 8,
The packet throughput
Figure 112014026431195-pat00007
Lt; / RTI >
A multiprocessor based packet processing method.
제 8 항에 있어서,
상기 복수의 프로세서 각각에 분배된 네트워크 패킷은 상기 복수의 프로세서 각각의 큐에 임시 저장되며,
상기 패킷 처리율은
Figure 112014026431195-pat00008
에 의해 계산되는,
다중 프로세서 기반의 패킷 처리 방법.
9. The method of claim 8,
Wherein network packets distributed to each of the plurality of processors are temporarily stored in a queue of each of the plurality of processors,
The packet throughput
Figure 112014026431195-pat00008
Lt; / RTI >
A multiprocessor based packet processing method.
제 8 항에 있어서,
상기 선택하는 단계에서 세션 기반의 분배 방식을 상기 네트워크 패킷의 네트워크 패킷 분배 방식으로 선택한 경우, 상기 네트워크 패킷을 분배하는 단계는,
상기 네트워크 패킷의 발신자 IP 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 포트 번호 및 프로토콜 중 적어도 하나의 해시 값을 생성하는 단계;
상기 생성된 해시 값에 대해 세션 기반의 분배 방식이 지정된 프로세서의 개수로 모듈로 연산을 수행하는 단계; 및
상기 세션 기반의 분배 방식이 지정된 프로세서 중 상기 모듈로 연산 결과가 지정하는 프로세서에 상기 네트워크 패킷을 분배하는 단계를 포함하는,
다중 프로세서 기반의 패킷 처리 방법.
9. The method of claim 8,
Wherein, in the selecting step, when the session-based distribution method is selected as the network packet distribution method of the network packet,
Generating a hash value of at least one of a sender IP address, a sender port number, a receiver IP address, a receiver port number, and a protocol of the network packet;
Performing a modulo operation on the generated hash value with the number of processors assigned a session-based distribution scheme; And
Wherein the session-based distribution scheme distributes the network packet to a processor specified by the modulo operation result among the specified processors.
A multiprocessor based packet processing method.
KR1020120008092A 2012-01-27 2012-01-27 Apparatus and method for processing packet using multiprocessr KR101429114B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120008092A KR101429114B1 (en) 2012-01-27 2012-01-27 Apparatus and method for processing packet using multiprocessr

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120008092A KR101429114B1 (en) 2012-01-27 2012-01-27 Apparatus and method for processing packet using multiprocessr

Publications (2)

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

Family

ID=49217864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120008092A KR101429114B1 (en) 2012-01-27 2012-01-27 Apparatus and method for processing packet using multiprocessr

Country Status (1)

Country Link
KR (1) KR101429114B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101683818B1 (en) * 2014-12-29 2016-12-20 주식회사 시큐아이 Packet processing apparatus and method for cpu load balancing
KR102289876B1 (en) * 2019-07-16 2021-08-12 엘지전자 주식회사 Firewall Providing Device for Vehicle
CN116436855B (en) * 2023-06-12 2023-09-12 建信金融科技有限责任公司 Data information processing method, device, electronic equipment and medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092798A (en) * 1999-09-21 2001-04-06 Matsushita Electric Ind Co Ltd Load distribution multi-processor system and method
JP2002278945A (en) * 2001-03-21 2002-09-27 Nec Corp Method and system for distributing transaction load between computers with multi-processor configuration and program
KR20060075324A (en) * 2004-12-28 2006-07-04 주식회사 케이티 Octave switch dividing a load using discriminated round-robin scheduling method and method thereof
KR20110067377A (en) * 2009-12-14 2011-06-22 한국전자통신연구원 Method of load balancing for game server and apparatus using the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092798A (en) * 1999-09-21 2001-04-06 Matsushita Electric Ind Co Ltd Load distribution multi-processor system and method
JP2002278945A (en) * 2001-03-21 2002-09-27 Nec Corp Method and system for distributing transaction load between computers with multi-processor configuration and program
KR20060075324A (en) * 2004-12-28 2006-07-04 주식회사 케이티 Octave switch dividing a load using discriminated round-robin scheduling method and method thereof
KR20110067377A (en) * 2009-12-14 2011-06-22 한국전자통신연구원 Method of load balancing for game server and apparatus using the same

Also Published As

Publication number Publication date
KR20130093843A (en) 2013-08-23

Similar Documents

Publication Publication Date Title
US20210336885A1 (en) Phantom queue link level load balancing system, method and device
US20140025823A1 (en) Methods for managing contended resource utilization in a multiprocessor architecture and devices thereof
US9680870B2 (en) Software-defined networking gateway
US9419908B2 (en) Network congestion management using flow rebalancing
EP2730067B1 (en) Method and apparatus for load balancing
US11005814B2 (en) Network security
US9032524B2 (en) Line-rate packet filtering technique for general purpose operating systems
US11102127B2 (en) Load balancing among network links using an efficient forwarding scheme
US9888033B1 (en) Methods and apparatus for detecting and/or dealing with denial of service attacks
JP6277853B2 (en) Control device, communication device, and communication method
Hua et al. Scheduling heterogeneous flows with delay-aware deduplication for avionics applications
KR101429114B1 (en) Apparatus and method for processing packet using multiprocessr
CN107241280A (en) The dynamic prioritization of network traffics based on prestige
US10063481B1 (en) Network endpoint congestion management
US10547560B1 (en) Monitoring network communications queues
CN103685321B (en) Packet forwards and safety protection detection, load-balancing method and device
US20200314014A1 (en) Advanced load balancing based on bandwidth estimation
KR101448951B1 (en) Apparatus and method for processing packet
US20170244638A1 (en) Control apparatus, control method and control system
Belhareth et al. Understanding TCP cubic performance in the cloud: A mean-field approach
US8441953B1 (en) Reordering with fast time out
Manesh et al. Evaluating the suitability of server network cards for software routers
CN108377254B (en) Method and apparatus for consistent flow assignment in load balancing
US20200177509A1 (en) System and method for anycast load balancing for distribution system
Zhao et al. A Congestion Control Algorithm for Datacenters

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