KR20080102889A - Traffic partition processing apparatus and method thereof, multiprocessing system - Google Patents

Traffic partition processing apparatus and method thereof, multiprocessing system Download PDF

Info

Publication number
KR20080102889A
KR20080102889A KR1020070049922A KR20070049922A KR20080102889A KR 20080102889 A KR20080102889 A KR 20080102889A KR 1020070049922 A KR1020070049922 A KR 1020070049922A KR 20070049922 A KR20070049922 A KR 20070049922A KR 20080102889 A KR20080102889 A KR 20080102889A
Authority
KR
South Korea
Prior art keywords
packet
traffic
host
memory
network
Prior art date
Application number
KR1020070049922A
Other languages
Korean (ko)
Other versions
KR100871731B1 (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 KR1020070049922A priority Critical patent/KR100871731B1/en
Publication of KR20080102889A publication Critical patent/KR20080102889A/en
Application granted granted Critical
Publication of KR100871731B1 publication Critical patent/KR100871731B1/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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

A traffic division processing unit, a method and an apparatus thereof including a multiprocessing system are provided to improve the packet process performance of entire system by simultaneously performing a packet analysis software in two or more processes. A dividing unit(120) classifies a received packet. An I/O bus processing unit(130) performs DMA(Direct Memory Access) to a packet memory of two or more packet memory in the classified host. The packet is classified according to predefined method according to a kind of application. A network interface unit receives a packet from network and outputted to the dividing unit. The host includes a plurality of processes and packet memory.

Description

트래픽 분할 처리 장치 및 그 방법과 그 장치를 포함하는 다중처리 시스템{Traffic partition processing apparatus and method thereof, multiprocessing system}Traffic partition processing apparatus and method, and multiprocessing system including same apparatus

도 1은 종래 다중처리 시스템의 구성도.1 is a block diagram of a conventional multiprocessing system.

도 2는 본 발명에 따른 다중처리 시스템의 구성도.2 is a block diagram of a multi-processing system according to the present invention.

도 3은 본 발명에 따른 트래픽 분할 처리 장치의 블록도.3 is a block diagram of a traffic splitting apparatus according to the present invention;

도 4는 본 발명에 따른 트래픽 분할 처리 방법의 흐름도.4 is a flowchart of a traffic segmentation processing method according to the present invention;

본 발명은 SMP(Symmetric Multiprocessing) 시스템에 관한 것으로, 특히 SMP 시스템에서 고속의 네트워크 트래픽을 처리하기 위한 장치 및 방법에 관한 것이다.The present invention relates to a symmetric multiprocessing (SMP) system, and more particularly, to an apparatus and method for processing high-speed network traffic in an SMP system.

SMP 시스템은 메모리를 공유하는 여러 개의 프로세서를 장착하여 시스템에서 처리하는 작업을 분산하여 전체적인 시스템의 성능을 향상시키는 시스템으로, 현재 출시되고 있는 대부분의 서버 시스템에 적용된 기술이다. SMP 시스템에서는 프로세서가 메모리와 입출력 버스 및 데이터 패스를 공유한다. 그리고 하나의 프로세서가 SMP 시스템에 장착된 프로세서들을 관리함으로써, 하나의 시스템으로 보이도 록 한다. 이러한 SMP 시스템은 많은 사용자 또는 작업이 수행될 필요가 있는 경우에, 여러 사용자나 작업을 각각 다른 프로세서에서 분할 처리하도록 하므로 성능 향상을 꾀할 수 있는 장점을 지닌다.The SMP system is a system that improves the performance of the overall system by distributing the processing in the system by installing multiple processors that share memory, and is applied to most server systems on the market. In SMP systems, processors share memory, input and output buses, and data paths. In addition, one processor manages processors installed in the SMP system, so that one processor is viewed as one system. Such an SMP system has the advantage of improving performance because a large number of users or tasks need to be performed, so that different users or tasks can be divided into different processors.

그러나 현재까지 개발된 SMP 시스템의 단점은 각 작업에 대한 분할 단위가 프로세스 또는 쓰레드(thread) 단위로 한정되어 있다는 점이다. 즉, 하나의 응용 프로그램이 여러 프로세스를 사용하여 동시에 실행되지 않으며, 특정 시점에서 보았을 때 하나의 프로그램은 하나의 프로세서에서만 실행된다. 이를 해결하기 위해 하나의 프로그램을 여러 개의 프로세서에서 수행하도록 하는 기법이 병렬 프로그램 또는 병렬 시스템이라는 분야로 많은 연구가 이루어져 왔으나, 현재까지 실용화되지 못하고 있다.However, the disadvantage of the SMP system developed so far is that the partition unit for each task is limited to a process or thread unit. That is, one application program does not run simultaneously using several processes, and at one point in time, one program runs only on one processor. In order to solve this problem, a lot of researches have been conducted in the field of parallel programs or parallel systems to execute a program on multiple processors.

앞서 설명한 것과 같이 프로세서의 성능을 향상시키는 것과 더불어 여러 개의 프로세서를 하나의 시스템에 장착하여 시스템의 성능을 향상시키는 방법으로 발전하고 있으며, 네트워크 통신 기술 분야 또한 지속적인 발전을 이루어 현재 수십Gbps의 트래픽을 송수신할 수 있는 전송 기술이 상용화되어 사용되고 있다.In addition to improving the performance of the processor as described above, the system has been developed to improve the performance of the system by mounting several processors in a single system. The network communication technology is also continuously developing and transmitting and receiving several tens of Gbps of traffic. A transmission technology that can be used is commercially used.

네트워크 통신 기술이 고속화됨에 따라 네트워크 시스템은 더 많은 트래픽을 처리하도록 요구되는데, 요구사항의 복잡성과 가변성으로 인하여 하드웨어 방식의 처리 시스템보다는 소프트웨어로 처리하는 유연한 구조를 갖는 SMP 시스템을 이용하는 서버 플랫폼을 이용하는 경우가 많다.As network communication technology becomes faster, network systems are required to handle more traffic. When using a server platform using an SMP system having a flexible structure that is processed by software rather than a hardware-based processing system due to the complexity and variability of requirements. There are many.

그러나 SMP 서버 플랫폼을 사용하는 소프트웨어 방법의 네트워크 시스템은 앞서 설명한 다중처리(multiprocessing) 시스템의 한계, 즉 네트워크 인터페이스를 통해 수신되는 트래픽을 처리하기 위해서는 하나의 프로세스에서 수신 패킷을 순차적으로 처리해야 하므로, 시스템의 성능은 서버 플랫폼에 장착된 다수의 프로세서들의 합이 아니라 하나의 프로세서의 성능에 의해 제한된다.However, the network system of the software method using the SMP server platform has a limitation of the multiprocessing system described above, that is, in order to process the traffic received through the network interface, the received packet must be processed sequentially in one process. The performance of is limited by the performance of one processor rather than the sum of the multiple processors mounted on the server platform.

이러한 프로세서의 성능 제한으로 인하여 기존의 SMP 서버 플랫폼을 사용하는 네트워크 시스템은 수Gbps이하의 트래픽을 처리할 수 있을 뿐이다. 이와 같은 이유로 종래 소프트웨어 방식의 네트워크 시스템은 다수의 프로세서를 갖고 있음에도 불구하고, 10Gbps 이상의 트래픽을 분석하고 처리하지 못한다.Due to the performance limitations of these processors, network systems using existing SMP server platforms can only handle traffic under several Gbps. For this reason, although a conventional software network system has a large number of processors, it cannot analyze and process traffic of more than 10 Gbps.

도 1은 종래 네트워크 보안 시스템의 구성도이다.1 is a block diagram of a conventional network security system.

SMP 서버 플랫폼은 두 개의 프로세서(프로세서0, 프로세서1)를 장착하고 있으며, 하나의 네트워크 인터페이스 카드(Network Interface Card, NIC)가 서버 시스템의 PCI 버스를 통해서 장착되어 있다. 네트워크 인터페이스 카드가 수신한 패킷이 DMA(Direct Memory Access)를 통하여 시스템의 패킷 메모리 영역으로 전달되면, 패킷 처리 소프트웨어가 이를 읽어 들여 처리하는 작업을 실행하게 되는 데, 패킷 처리 소프트웨어(application)는 프로세서 0 혹은 프로세서 1 중 어느 하나의 프로세서에만 탑재되어 있다.The SMP server platform is equipped with two processors (processor 0 and processor 1), and one network interface card (NIC) is mounted through the server system's PCI bus. When the packet received by the network interface card is transferred to the packet memory area of the system through DMA (Direct Memory Access), the packet processing software reads and processes the packet, and the packet processing software executes the processor 0. Alternatively, only one processor of processor 1 is mounted.

이러한 네트워크 보안 시스템 구조에서는 SMP 시스템에 두 개의 프로세서가 장착되어 있음에도 불구하고, 패킷 분석 소프트웨어는 두 개의 프로세서를 모두 사용하지 못하고 하나의 프로세서만을 사용하게 된다.In this network security system architecture, although the SMP system is equipped with two processors, the packet analysis software does not use both processors but uses only one processor.

본 발명은 이러한 배경에서 도출된 것으로, 고속의 트래픽을 분석하고 처리 할 수 있도록 지원하는 트래픽 분할 처리 장치 및 방법, 그리고 그 장치를 포함하는 다중처리 시스템을 제공함을 목적으로 한다.SUMMARY OF THE INVENTION The present invention was derived from this background, and an object thereof is to provide a traffic splitting processing apparatus and method for supporting high speed traffic analysis and processing, and a multiprocessing system including the apparatus.

전술한 기술적 과제는 본 발명에 따라, 수신된 패킷을 구분하는 구분부; 및 상기 구분된 패킷을 호스트의 둘 이상의 패킷 메모리들 중 해당되는 패킷 메모리로 DMA(Direct Memory Access)하는 입출력 버스 처리부;를 포함하는 트래픽 분할 처리 장치에 의해 달성된다.The above technical problem is classified according to the present invention; And an input / output bus processing unit for directing DMA to the corresponding packet memory among two or more packet memories of the host.

상기 구분부는, 상기 호스트에서 실행되는 어플리케이션 유형에 따라 사전에 정의된 방식으로 패킷을 구분함이 바람직하다.The division unit may classify the packet in a predefined manner according to the type of application executed in the host.

상기 트래픽 분할 처리 장치는, 패킷 메모리별 대응되는 DMA 버퍼;를 더 포함하며, 상기 입출력 버스 처리부는 상기 구분된 패킷에 매칭되는 DMA 버퍼를 이용하여 해당 패킷 메모리로 패킷을 DMA함이 바람직하다.The traffic partition processing apparatus may further include a DMA buffer corresponding to each packet memory, wherein the input / output bus processing unit DMAs the packet to the corresponding packet memory using a DMA buffer matching the divided packet.

한편, 본 발명의 다른 분야에 따르면, 전술한 기술적 과제는 네트워크 회선으로부터 패킷을 수신하는 단계와; 상기 수신된 패킷을 구분하는 단계와; 상기 구분된 패킷을 호스트의 둘 이상의 패킷 메모리들 중 해당되는 패킷 메모리로 DMA하는 단계;를 포함하는 트래픽 분할 처리 방법에 의해서도 달성된다.On the other hand, according to another field of the present invention, the above technical problem comprises the steps of receiving a packet from a network line; Classifying the received packet; DMA to the corresponding packet memory of the two or more packet memories of the host; is also achieved by the traffic partition processing method comprising a.

한편, 본 발명의 또 다른 분야에 따르면, 전술한 기술적 과제는 다수의 프로세서 및 패킷 메모리들을 포함하는 호스트와; 네트워크 회선으부터 패킷을 수신하는 네트워크 인터페이스부와, 상기 수신된 패킷을 구분하는 구분부와, 상기 구분된 패킷에 각각 대응되는 DMA 버퍼들과, 상기 구분된 패킷에 대응되는 DMA 버퍼를 이 용하여 그 DMA 버퍼에 매칭되는 상기 호스트의 패킷 메모리로 해당 패킷을 DMA하는 입출력 버스 처리부를 포함하는 트래픽 분할 처리 장치;를 포함하는 다중처리 시스템에 의해서도 달성된다.On the other hand, according to another field of the present invention, the above technical problem is a host including a plurality of processors and packet memories; A network interface unit for receiving a packet from a network line, a divider for dividing the received packet, DMA buffers corresponding to the divided packets, and a DMA buffer corresponding to the divided packets are used. It is also achieved by a multi-processing system including a traffic partition processing apparatus including an input and output bus processing unit for DMA the packet to the packet memory of the host matched to the DMA buffer.

전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면을 참조하여 설명되는 바람직한 실시예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.The foregoing and further aspects of the present invention will become more apparent through the preferred embodiments described with reference to the accompanying drawings. Hereinafter, the present invention will be described in detail to enable those skilled in the art to easily understand and reproduce the present invention.

도 2는 본 발명에 따른 다중처리 시스템의 구성도이다.2 is a block diagram of a multiprocessing system according to the present invention.

여기서 다중처리 시스템은 네트워크 보안 시스템 또는 트래픽 관리 시스템으로 활용된다.The multiprocessing system is utilized as a network security system or a traffic management system.

트래픽 분할 처리 장치(100)는 네트워크 트래픽을 수집하고 분할하여 다중화된 패킷 메모리로 전송함으로써, 프로세서0과 프로세서1 모두에서 패킷 분석 소프트웨어(어플리케이션0, 어플리케이션1)를 동시에 실행할 수 있도록 한다.The traffic segmentation processing apparatus 100 collects, divides, and transmits network traffic to the multiplexed packet memory, thereby simultaneously executing packet analysis software (application 0 and application 1) on both processor 0 and processor 1.

일 실시예에 있어서, 트래픽 분할 처리 장치(100)는 네트워크 인터페이스 카드의 역할을 겸한다. 따라서 트래픽 분할 처리 장치(100)는 네트워크 회선으로부터 직접 패킷을 수신할 수 있다. 그렇지 않은 경우, 트래픽 분할 처리 장치(100)는 도시된 바와 달리 호스트(200) 내에 위치하여 네트워크 인터페이스 카드로부터 패킷을 수신하도록 구현될 수도 있다.In one embodiment, the traffic splitting apparatus 100 also serves as a network interface card. Therefore, the traffic splitting apparatus 100 may receive a packet directly from a network line. Otherwise, the traffic segmentation processing apparatus 100 may be implemented to be located in the host 200 and receive a packet from a network interface card, as shown.

호스트(200)는 SMP(Symmetric Multiprocessing) 기반의 서버로서, 분석 소프트웨어(어플리케이션0, 어플리케이션1)가 다중화된 패킷 메모리에 따라 상호 독립 적으로 프로세서를 점유하여 수신된 패킷을 분석하고 관리할 수 있도록 한다. 이를 위해 패킷 메모리들은 논리적으로 구분되거나, 물리적으로 구분된다.The host 200 is a symmetric multiprocessing (SMP) -based server, which allows analysis software (application 0 and application 1) to independently occupy a processor according to multiplexed packet memories to analyze and manage received packets. . To this end, packet memories are logically or physically separated.

한편, 호스트(200)에 포함된 구성인 버스 중재부(BUS Arbiter)(210), 입출력 버스 컨트롤러(I/O BUS Controller)(220) 및 입출력 버스 인터페이스(I/O BUS Interface)(230)와 같은 구성들은 신호 및 데이터의 입출력, 버스 사용권 제어 등을 담당하는 구성들이다.Meanwhile, a bus arbiter 210, an I / O bus controller 220, and an I / O bus interface 230, which are components included in the host 200, may be used. The same components are in charge of input and output of signals and data, and control of bus usage rights.

도 3은 본 발명에 따른 트래픽 분할 처리 장치의 블록도이다.3 is a block diagram of a traffic splitting apparatus according to the present invention.

트래픽 분할 처리 장치(100)는 네트워크 인터페이스부(110), 패킷 구분부(120), 입출력 버스 처리부(130) 및 DMA 버퍼들(140)을 포함한다.The traffic splitting apparatus 100 includes a network interface unit 110, a packet separator 120, an input / output bus processor 130, and DMA buffers 140.

네트워크 인터페이스부(110)는 네트워크 물리 계층인 MAC과 PHY로 구성된다. 이러한 네트워크 인터페이스부(110)는 네트워크 회선으로부터 패킷을 수신하는데, 예를 들어 스플리터(splitter)를 통해 패킷을 수신한다. 여기서 네트워크 인터페이스부(110)는 기존의 네트워크 인터페이스 카드의 역할을 수행한다.The network interface unit 110 is composed of a network physical layer MAC and PHY. The network interface unit 110 receives a packet from a network circuit, for example, receives a packet through a splitter. Here, the network interface unit 110 serves as a conventional network interface card.

일 예로, 본 발명에 따른 트래픽 분할 처리 장치(100)는 네트워크 인터페이스 카드의 형식으로 호스트(200)에 장착될 수 있으며, 이러한 경우 주로 PCI 인터페이스 카드 형식으로 장착될 것이다. 그러나 네트워크 인터페이스 카드가 별도로 구현될 경우에, 네트워크 인터페이스부(110)는 트래픽 분할 처리 장치(100)에서 제외된다.For example, the traffic splitting apparatus 100 according to the present invention may be mounted in the host 200 in the form of a network interface card, and in this case, the traffic splitting apparatus 100 may be mounted in the form of a PCI interface card. However, when the network interface card is implemented separately, the network interface unit 110 is excluded from the traffic splitting apparatus 100.

패킷 구분부(120)는 네트워크 인터페이스부(110)에서 수신한 패킷을 소정 기준에 따라 구분한다. 본 실시예에 있어서, 패킷 구분부(120)는 호스트(200)에서 실행되는 어플리케이션 유형에 따라 사전에 정의된 방식으로 패킷을 구분한다.The packet separator 120 classifies the packet received by the network interface unit 110 according to a predetermined criterion. In the present embodiment, the packet separator 120 classifies packets in a predefined manner according to the type of application executed in the host 200.

본 실시예에 있어서, 어플리케이션 유형이 트래픽을 분석하는 유형이라면, 패킷 구분 방식은 어플리케이션에서 요구하는 트래픽 구분 방식에 따라 구분을 해주어야 한다. 예를 들어, IP 5-tuple을 사용하는 방법이 있을 수 있고, 단순히 피어-투-피어(peer-to-peer)를 구분할 수 있도록 IP source address와 destination address를 이용하는 방법을 사용할 수도 있다.In the present embodiment, if the application type is a type for analyzing the traffic, packet classification should be classified according to the traffic classification required by the application. For example, there may be a method of using IP 5-tuple, or a method of using an IP source address and a destination address to distinguish a peer-to-peer.

어플리케이션 유형이 제어 연결과 데이터 연결이 구분되어 처리되어야 하는 경우에는 특정 프로토콜에 해당하는 제어 연결을 DMA 채널 0번으로, 제어 연결에 따르는 데이터 연결은 DMA 1번 채널로 받는 경우가 있을 수 있다. 대표적인 예로, CDMA 망에서 R-P 인터페이스와 Pi 인터페이스를 구분하여 수신하는 것이 될 수 있다.If the application type needs to be handled separately from the control connection and data connection, the control connection corresponding to a specific protocol may be received as DMA channel 0, and the data connection according to the control connection may be received as DMA channel 1. As a representative example, in the CDMA network, the R-P interface and the Pi interface may be separately received.

어플리케이션 유형별 패킷 구분 방식을 아래와 같이 정의해 볼 수 있다.We can define the packet classification method by application type as below.

1) 어플리케이션 유형: 트래픽 관리 시스템1) Application Type: Traffic Management System

→ 구분 방법1: IPv4 or IPv6 5-tuple (sourceAddress, destinationAddress, protocol, transportDestinationPort, transportSourcePort)→ Category 1: IPv4 or IPv6 5-tuple (sourceAddress, destinationAddress, protocol, transportDestinationPort, transportSourcePort)

→ 구분 방법2: Peer-to-peer (sourceAddress, destinationAddress)→ Category 2: Peer-to-peer (sourceAddress, destinationAddress)

2) 어플리케이션 유형: IDS, IPS 및 Firewall 시스템2) Application Types: IDS, IPS, and Firewall Systems

→ 구분 방법1: IPv4 or IPv6 5-tuple→ Category 1: IPv4 or IPv6 5-tuple

→ 구분 방법2: 특정 프로토콜 또는 패킷 패턴에 따른 분류→ classification method 2: classification according to a specific protocol or packet pattern

3) 어플리케이션 유형: CDMA 호 모니터링 시스템3) Application Type: CDMA Call Monitoring System

→ 구분 방법: 호 제어 관련 패킷(A11, A10 패킷)과 데이터 관련 패킷→ Classification: call control related packets (A11 and A10 packets) and data related packets

4) 어플리케이션 유형: WCDMA 호 모니터링 시스템4) Application Type: WCDMA Call Monitoring System

→ 구분 방법: 호 제어 관련 패킷(GTP 패킷)과 데이터 관련 패킷(L2TP)→ Classification: call control related packet (GTP packet) and data related packet (L2TP)

5) 기타 등등 사용자 요구 사항에 따라 많이 있을 수 있음5) There can be many according to user requirements and so on

일 예로 IPv4 5-tuple을 이용한 해시를 이용하여 패킷의 트래픽 플로우를 구분하는 방법에 대해 예를 들면, 패킷 구분부(120)는 패킷의 네트워크 계층 헤더 및 전송 계층 헤더로부터 정보를 추출하고, 해시, 체크섬, CRC 등의 방법으로 연산을 수행하여 패킷의 트래픽 플로우를 구분할 수 있다. For example, a method of classifying a packet traffic flow using a hash using IPv4 5-tuple, for example, the packet separator 120 extracts information from a network layer header and a transport layer header of a packet, The traffic flow of the packet may be distinguished by performing an operation by a checksum or a CRC.

일반적인 네트워크 보안 시스템 및 트래픽 관리 장치에서 하나의 프로세스에서 처리해야 하는 패킷은 네트워크 호스트간 통신되는 세션이며, 이러한 사실이 고려되어 패킷이 구분된 것이다.In a typical network security system and traffic management apparatus, a packet to be processed in one process is a session that is communicated between network hosts, and the packet is divided in consideration of this fact.

입출력 버스 처리부(130)는 패킷 구분부(120)에서 구분된 트래픽 플로우와 매칭되는 DMA 버퍼(140)를 이용하여 호스트의 패킷 메모리로 패킷을 DMA한다. 도 2에서 DMA 버퍼(140)는 그 수가 N개까지 확장 가능한 구조로 되어 있으나, 호스트(200)에 장착된 프로세서의 개수와 비례하여 확장될 수 있을 것이다. 또한 DMA 버퍼(140)의 수는 패킷 구분부(120)에 의해 구분되는 트래픽 플로우의 개수와 일치함이 바람직하다.The I / O bus processor 130 DMAs the packet to the packet memory of the host by using the DMA buffer 140 matching the traffic flow classified by the packet separator 120. In FIG. 2, the number of DMA buffers 140 is expandable to N. However, the DMA buffers 140 may be expanded in proportion to the number of processors mounted in the host 200. In addition, the number of DMA buffers 140 preferably matches the number of traffic flows separated by the packet separator 120.

이 같이 본 발명에 따른 트래픽 분할 처리 장치(100)는 같은 플로우 세션에 속한 패킷들을 동일한 패킷 메모리로 DMA 되도록 보장하여, 네트워크 분석 소프트웨어(어플리케이션0, 어플리케이션1)에서 상호 독립적으로 프로세서(프로세서0, 프 로세서1)를 점유하여 트래픽을 분석할 수 있도록 한다.As such, the traffic splitting apparatus 100 according to the present invention guarantees that the packets belonging to the same flow session are DMAed to the same packet memory, so that the network analysis software (Application0, Application1) is independent of each other. Occupies the processor 1) so that traffic can be analyzed.

도 4는 본 발명에 따른 트래픽 분할 처리 방법의 흐름도이다.4 is a flowchart of a traffic segmentation processing method according to the present invention.

우선 네트워크 인터페이스부(110)가 네트워크 회선을 통해 전송되는 패킷을 수신한다(단계 S410). 패킷 구분부(120)는 수신된 패킷을 파싱하고, 파싱된 정보로부터 패킷을 구분한다(단계 S420)(단계 S430). 패킷 구분 방식은 어플리케이션 유형에 따라 사전에 정의된 방식으로 이루어지며, 이는 상술한 바와 같다. 입출력 버스 처리부(130)는 트래픽 플로우별 매칭되는 DMA 버퍼를 이용하여 호스트(200)의 해당 패킷 메모리로 패킷을 DMA한다(단계 S440).First, the network interface unit 110 receives a packet transmitted through a network line (step S410). The packet separator 120 parses the received packet and classifies the packet from the parsed information (step S420) (step S430). The packet classification is performed in a predefined manner according to the application type, as described above. The input / output bus processor 130 DMAs the packet to the corresponding packet memory of the host 200 using the DMA buffer matched for each traffic flow (step S440).

트래픽 분할 처리 장치(100)는 네트워크 회선으로부터 수신한 패킷에 대해서 전술한 과정을 반복 수행한다.The traffic splitting apparatus 100 repeats the above-described process with respect to the packet received from the network line.

한편, 전술한 네트워크 패킷 저장 방법은 컴퓨터 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 네트워크 패킷 저장 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.On the other hand, the above-described network packet storage method can be created by a computer program. Codes and code segments constituting the program can be easily inferred by a computer programmer in the art. In addition, the program is stored in a computer readable media, and read and executed by a computer to implement a network packet storage method. The information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관 점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

상술한 바와 같이 본 발명은 10Gbps 이상의 고속의 네트워크 트래픽을 SMP 서버 시스템에서 수신하여 분석하고자 할 때 트래픽 분할 전송을 이용하여 시스템에 장착된 여러 개의 프로세서들을 효율적으로 이용할 수 있게 한다.As described above, the present invention makes it possible to efficiently use a plurality of processors installed in the system by using traffic split transmission when receiving and analyzing high-speed network traffic of 10 Gbps or more in the SMP server system.

한편, 소프트웨어를 각 프로세서에서 실행될 수 있도록 다중화하여 구현함에 의해 트래픽을 분할하여 분산 처리할 수도 있다. 그러나 10Gbps 이상의 고속 트래픽을 분석해야 하는 경우에는 메모리 접근에서 버틀넥(bottleneck)이 발생하므로, 소프트웨어만을 다중화하여 성능 향상을 기하기가 어렵다.On the other hand, by multiplexing the software so that it can be executed on each processor, traffic can be divided and distributed. But if you need to analyze high-speed traffic of 10Gbps or more, a bottleneck occurs in the memory access, so it is difficult to improve performance by multiplexing only software.

따라서 본 발명에서는 전술한 바와 같은 트래픽 분할 장치 및 방법을 적용하여 수신되는 패킷을 분할하고 다중화된 패킷 메모리로 DMA함으로써, 메모리의 버틀넥(bottleneck)을 해소하여 전체적인 시스템의 성능을 향상시킨다.Accordingly, in the present invention, by applying the above-described traffic splitting apparatus and method, the received packet is divided and DMA into the multiplexed packet memory, thereby eliminating the bottleneck of the memory and improving the performance of the overall system.

소프트웨어적인 방법으로 트래픽을 분할 처리하는 방식과 본 발명에 따른 트래픽 분할 처리 방식의 차이점은 다음과 같다. 본 계산 방법에서는 설명의 편의성을 위해서 다음과 같은 가정을 하였다. The difference between the traffic splitting method in a software way and the traffic splitting method according to the present invention is as follows. In this calculation method, the following assumptions are made for convenience of explanation.

『SMP 시스템의 각 프로세서에서 실행되는 분석 소프트웨어는 프로세서의 점유유을 100% 이상 차지하는 양의 연산을 지속적으로 수행한다』`` Analytical software running on each processor in the SMP system continuously performs an amount of computation that takes up more than 100% of the processor's occupancy. ''

실제 트래픽 관리 시스템에서도 보다 정밀한 분석을 위해서 더욱더 많은 프 로세서 연산을 필요로 하는 경우가 많다.Even real traffic management systems often require more processor operations for more precise analysis.

《소프트웨어적으로 분산 처리하는 경우》《Distributed by software》

소프트웨어만을 다중화하여 수신되는 트래픽을 분산 처리하는 경우에는 다음과 같은 메모리 접근 관점에서 보았을 때 다음과 같이 유추할 수 있다. 단, 비교의 편의성을 위해서 두 개의 프로세서가 장착된 SMP 시스템에서 소프트웨어를 두 개로 분산 처리하도록 구성한 것으로 가정하고, 10Gbps 이상의 고속의 네트워크 트래픽을 네트워크 인터페이스 카드에서 수신하여 분석하는 것으로 가정한다.In the case of decentralizing the received traffic by multiplexing only the software, it can be inferred as follows from the viewpoint of memory access. However, for convenience of comparison, it is assumed that the SMP system equipped with two processors is configured to distribute the software in two, and it is assumed that high-speed network traffic of 10Gbps or more is received and analyzed by the network interface card.

(1) 네트워크 인터페이스 카드에서 수신한 패킷을 호스트의 패킷 메모리로 전송(사용된 메모리 대역폭: 10Gbps)(1) Send the packet received from the network interface card to the host's packet memory (used memory bandwidth: 10Gbps)

(2) 분석 소프트웨어에서 패킷 메모리에 수신된 패킷에 접근(사용된 메모리 대역폭: 10Gbps)(2) Access to packets received in packet memory from analysis software (memory bandwidth used: 10 Gbps)

(3) 두 번째 분석 소프트웨어에서 패킷 메모리에 수신된 패킷에 접근(사용된 메모리 대역폭: 10Gbps)(3) Access to packets received in packet memory in the second analysis software (memory bandwidth used: 10 Gbps)

위의 메모리 접근에 대한 계산은 각 분석 소프트웨어가 공유 메모리를 이용하여 메모리 복사를 하지 않고 패킷 메모리에 접근하는 가정하에 계산한 것이다. 메모리 복사를 하거나 커널의 프로토콜 스택을 사용하는 경우 이보다 더 많은 메모리 접근이 이루어져 성능이 더욱 저하되므로 고려하지 않는다.The calculations for memory access above are based on the assumption that each analysis software accesses the packet memory without copying the memory using shared memory. If you do a memory copy or use the kernel's protocol stack, you don't consider it because there are more memory accesses than this, which further degrades performance.

위와 같이 소프트웨어를 이용하여 트래픽을 분산 처리하는 경우에 패킷 메모리로의 접근은 모두 30Gbps(1+2+3)의 대역폭이 소모된다.In case of distributing traffic using software as above, all access to packet memory consumes 30Gbps (1 + 2 + 3) bandwidth.

《트래픽 분할 방식을 이용하여 분산 처리하는 경우》《Distributed by using traffic partitioning method》

앞에서 설명한 소프트웨어적으로 분산 처리하는 경우와 동일한 가정하에 트래픽 분할 방식을 이용하여 분산 처리하는 경우 다음과 같은 메모리 접근이 필요하다.In the case of distributed processing using the traffic partitioning method under the same assumption as the distributed software described above, the following memory access is required.

(1) 트래픽 분할 처리 장치에서 수신한 패킷을 호스트의 다중화된 패킷 메모리로 전송(사용된 메모리 대역폭: 10Gbps)(1) Send the packet received by the traffic splitting processing unit to the multiplexed packet memory of the host (used memory bandwidth: 10Gbps)

(2) 분석 소프트웨어에서 패킷 메모리에 수신된 패킷에 접근(사용된 메모리 대역폭: 5Gbps)(2) Access to packets received in packet memory from analysis software (memory bandwidth used: 5 Gbps)

(3) 두 번째 분석 소프트웨어에서 패킷 메모리에 수신된 패킷에 접근(사용된 메모리 대역폭: 5Gbps)(3) Access to packets received in packet memory in the second analysis software (memory bandwidth used: 5 Gbps)

위의 메모리 접근에 대한 계산은 수신되는 패킷이 각 50%씩 각 소프트웨어로 분산되는 것으로 표시하였으나, 이것은 네트워크의 트래픽 특성과 트래픽을 구분하는 방법에 따라 편차가 발생할 수 있다. 그러나 두 개의 소프트웨어에서 처리하는 트래픽의 합이 10Gbps라는 점에서, 트래픽 분석을 위한 패킷 메모리로의 접근에 필요한 대역폭은 최대 10Gbps로 일정하다.The calculation for the memory access above indicates that the received packets are distributed to each software by 50% each, but this may cause a deviation depending on the traffic characteristics of the network and the method of distinguishing the traffic. However, because the sum of the traffic handled by the two software is 10Gbps, the bandwidth required for access to the packet memory for traffic analysis is constant up to 10Gbps.

이러한 방식으로 트래픽을 분할 처리하는 것은 메모리 연산을 하나의 분석 소프트웨어에서 처리하는 것과 같이 동일하게 유지하고, 각 프로세서에서 분석 소프트웨어를 실행할 수 있도록 하므로 전체적인 시스템의 성능을 향상시킨다.Segmenting traffic in this way improves the overall system performance by keeping memory operations the same as those processed by one analysis software and allowing the analysis software to run on each processor.

패킷 메모리 접근과 프로세서 개수가 두 개인 경우를 가정하면 이론적으로 2 배의 성능 향상을 이룰 수 있으나, 소프트웨어의 실행 코드가 메모리에 있다는 점을 고려하면 대략 1.5배의 성능 향상을 기대할 수 있다.Assuming that the packet memory access and the number of processors are two, theoretically, the performance can be twice as high, but considering that the software's executable code is in memory, we can expect about 1.5 times the performance.

그리고 앞의 예에서는 두 개의 프로세서가 장착된 시스템을 가정하였으나, 두 개 이상의 프로세서가 장착된 시스템에서 프로세서 수만큼 분산 처리하는 것을 고려하면, 소프트웨어적 분산 처리 방식에서는 증가된 분석 소프트웨어의 개수만큼 패킷 메모리 접근이 증가하지만, 본 발명에 따른 트래픽 분할 방식을 이용하는 경우 전체적인 합에서 패킷 메모리의 접근은 일정하게 유지하면서 분석 소프트웨어의 개수를 증가시켜 성능을 더욱 향상시킬 수 있다.In the previous example, a system equipped with two processors is assumed. However, considering that the processor is distributed as many as the number of processors in a system equipped with two or more processors, the software distributed processing method increases the packet memory by the number of increased analysis software. Although the access is increased, the traffic segmentation method according to the present invention can further improve performance by increasing the number of analysis software while keeping the access of the packet memory constant in the total sum.

Claims (8)

수신된 패킷을 구분하는 구분부; 및A separator for classifying the received packet; And 상기 구분된 패킷을 호스트의 둘 이상의 패킷 메모리들 중 해당되는 패킷 메모리로 DMA(Direct Memory Access)하는 입출력 버스 처리부;An input / output bus processing unit for directing the divided packets to a corresponding packet memory among two or more packet memories of a host; 를 포함하는 것을 특징으로 하는 트래픽 분할 처리 장치.Traffic partition processing apparatus comprising a. 제1항에 있어서,The method of claim 1, 상기 구분부는, 상기 호스트에서 실행되는 어플리케이션 유형에 따라 사전에 정의된 방식으로 패킷을 구분하는 것을 특징으로 하는 트래픽 분할 처리 장치.The division unit, the traffic splitting apparatus, characterized in that for classifying the packet in a predefined manner according to the type of application running on the host. 제1항에 있어서,The method of claim 1, 패킷 메모리별 대응되는 DMA 버퍼;를 더 포함하며,And a corresponding DMA buffer for each packet memory. 상기 입출력 버스 처리부는, 상기 구분된 패킷에 매칭되는 DMA 버퍼를 이용하여 해당 패킷 메모리로 패킷을 DMA하는 것을 특징으로 하는 트래픽 분할 처리 장치.And the I / O bus processing unit DMAs the packet to a corresponding packet memory using a DMA buffer matched with the divided packet. 제1항 내지 제3항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 네트워크 회선으부터 패킷을 수신하여 상기 구분부로 출력하는 네트워크 인터페이스부;A network interface unit for receiving a packet from a network line and outputting the packet to the division unit; 를 더 포함하는 것을 특징으로 하는 트래픽 분할 처리 장치.Traffic partition processing apparatus further comprises. 네트워크 회선으로부터 패킷을 수신하는 단계와;Receiving a packet from a network circuit; 상기 수신된 패킷을 구분하는 단계와;Classifying the received packet; 상기 구분된 패킷을 호스트의 둘 이상의 패킷 메모리들 중 해당되는 패킷 메모리로 DMA하는 단계;DMA the divided packet to a corresponding one of two or more packet memories of a host; 를 포함하는 것을 특징으로 하는 트래픽 분할 처리 방법.Traffic segmentation processing method comprising a. 제5항에 있어서,The method of claim 5, 상기 구분 단계는, 상기 호스트에서 실행되는 어플리케이션 유형에 따라 사전에 정의된 방식으로 패킷을 구분하는 것을 특징으로 하는 트래픽 분할 처리 방법.The dividing step may be configured to classify packets according to a predefined method according to an application type executed in the host. 다수의 프로세서 및 패킷 메모리들을 포함하는 호스트와;A host including a plurality of processors and packet memories; 네트워크 회선으부터 패킷을 수신하는 네트워크 인터페이스부와, 상기 수신된 패킷을 구분하는 구분부와, 상기 구분된 패킷에 각각 대응되는 DMA 버퍼들과, 상기 구분된 패킷에 대응되는 DMA 버퍼를 이용하여 그 DMA 버퍼에 매칭되는 상기 호스트의 패킷 메모리로 해당 패킷을 DMA하는 입출력 버스 처리부를 포함하는 트래픽 분할 처리 장치;A network interface unit for receiving packets from a network line, a division unit for distinguishing the received packets, DMA buffers corresponding to the divided packets, and a DMA buffer corresponding to the divided packets A traffic partition processing unit including an input / output bus processing unit for DMAs the packet to the packet memory of the host matched to a DMA buffer; 를 포함하는 것을 특징으로 하는 다중처리 시스템.Multi-processing system comprising a. 제7항에 있어서, The method of claim 7, wherein 상기 구분부는, 상기 호스트에서 실행되는 어플리케이션 유형에 따라 사전에 정의된 방식으로 패킷을 구분하는 것을 특징으로 하는 다중처리 시스템.The division unit, the multi-processing system, characterized in that for classifying the packet in a predefined manner according to the type of application running on the host.
KR1020070049922A 2007-05-22 2007-05-22 Network interface card and traffic partition processing method in the card, multiprocessing system KR100871731B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070049922A KR100871731B1 (en) 2007-05-22 2007-05-22 Network interface card and traffic partition processing method in the card, multiprocessing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070049922A KR100871731B1 (en) 2007-05-22 2007-05-22 Network interface card and traffic partition processing method in the card, multiprocessing system

Publications (2)

Publication Number Publication Date
KR20080102889A true KR20080102889A (en) 2008-11-26
KR100871731B1 KR100871731B1 (en) 2008-12-05

Family

ID=40288502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070049922A KR100871731B1 (en) 2007-05-22 2007-05-22 Network interface card and traffic partition processing method in the card, multiprocessing system

Country Status (1)

Country Link
KR (1) KR100871731B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101292873B1 (en) * 2009-12-21 2013-08-02 한국전자통신연구원 Network interface card device and method of processing traffic by using the network interface card device
US9594584B2 (en) 2014-03-31 2017-03-14 Electronics And Telecommunications Research Institute Apparatus and method for mapping of tenant based dynamic processor
KR20180126255A (en) * 2017-05-17 2018-11-27 단국대학교 산학협력단 A network interface controller with data storage capability and a computing system including the same
KR20190116034A (en) * 2018-04-04 2019-10-14 주식회사 해시블록 Network interface apparatus and data processing method for network interface apparauts thereof
KR102283969B1 (en) * 2020-11-24 2021-07-30 (주) 시스메이트 Inline Network System and Packet Processing Method thereof for Improving Bidirectional Packet Processing Performance

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102016626B1 (en) * 2018-06-26 2019-08-30 (주) 시스메이트 Network interface apparatus using jumbo frame with high speed and low delay
KR102016627B1 (en) * 2018-06-26 2019-08-30 (주) 시스메이트 Network interface apparatus using jumbo frame

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997035393A1 (en) * 1996-03-15 1997-09-25 Hitachi, Ltd. Data separating device
KR100279744B1 (en) * 1998-10-22 2001-02-01 정선종 Single-Chip Multiprocessor Microprocessor with Synchronized Dedicated Register File
KR20040072952A (en) * 2003-02-11 2004-08-19 삼성전자주식회사 Apparatus and method for reassembling of fragmentation packet data
US7840731B2 (en) 2004-08-25 2010-11-23 Cisco Technology, Inc. Accelerated data switching on symmetric multiprocessor systems using port affinity
US20060090016A1 (en) * 2004-10-27 2006-04-27 Edirisooriya Samantha J Mechanism to pull data into a processor cache
KR100619720B1 (en) 2005-05-16 2006-09-06 엘지전자 주식회사 Communication apparatus for multi processor and method thereof

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101292873B1 (en) * 2009-12-21 2013-08-02 한국전자통신연구원 Network interface card device and method of processing traffic by using the network interface card device
US8644308B2 (en) 2009-12-21 2014-02-04 Electronics And Telecommunications Research Institute Network interface card device and method of processing traffic using the network interface card device
US9594584B2 (en) 2014-03-31 2017-03-14 Electronics And Telecommunications Research Institute Apparatus and method for mapping of tenant based dynamic processor
KR20180126255A (en) * 2017-05-17 2018-11-27 단국대학교 산학협력단 A network interface controller with data storage capability and a computing system including the same
KR20190116034A (en) * 2018-04-04 2019-10-14 주식회사 해시블록 Network interface apparatus and data processing method for network interface apparauts thereof
KR102283969B1 (en) * 2020-11-24 2021-07-30 (주) 시스메이트 Inline Network System and Packet Processing Method thereof for Improving Bidirectional Packet Processing Performance

Also Published As

Publication number Publication date
KR100871731B1 (en) 2008-12-05

Similar Documents

Publication Publication Date Title
US10997106B1 (en) Inter-smartNIC virtual-link for control and datapath connectivity
Scholz et al. Performance implications of packet filtering with linux ebpf
US10063446B2 (en) Netflow collection and export offload using network silicon
US9407577B2 (en) Communication control system, switch node and communication control method
US8140704B2 (en) Pacing network traffic among a plurality of compute nodes connected using a data communications network
US6625150B1 (en) Policy engine architecture
KR100871731B1 (en) Network interface card and traffic partition processing method in the card, multiprocessing system
US7519707B2 (en) Facilitating monitoring and simultaneously analyzing of network events of multiple hosts via a single network interface
EP2359565B1 (en) Reassembling streaming data across multiple packetized communication channels
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
US8571848B2 (en) System and method of network emlation for test of on-line server processing heavy traffic
Moreno et al. Commodity packet capture engines: Tutorial, cookbook and applicability
US20070168452A1 (en) Method of processing data, a network analyser card, a host and an intrusion detection system
US9356844B2 (en) Efficient application recognition in network traffic
US7403525B2 (en) Efficient routing of packet data in a scalable processing resource
Qiao et al. Joint effects of application communication pattern, job placement and network routing on fat-tree systems
KR20120062174A (en) Apparatus and method for dynamic processing a variety of characteristics packet
Garcia et al. An nsh-enabled architecture for virtualized network function platforms
US8050266B2 (en) Low impact network debugging
KR101837935B1 (en) Receiving packet storage apparatus for improving data search performance based on whole packet storage and method therefor
US7424653B2 (en) System and method for error capture and logging in computer systems
KR101499668B1 (en) Device and method for fowarding network frame in virtual execution environment
Shen et al. Paragraph: Subgraph-level network function composition with delay balanced parallelism
Larin et al. Tools for Capturing and Processing High-Speed Network Traffic
Deri Modern packet capture and analysis: Multi-core, multi-gigabit, and beyond

Legal Events

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

Payment date: 20120921

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131125

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141125

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151125

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20171227

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191125

Year of fee payment: 12