KR101270743B1 - Apparatus and Method for hybrid BD for hardware load balancing of network security system - Google Patents

Apparatus and Method for hybrid BD for hardware load balancing of network security system Download PDF

Info

Publication number
KR101270743B1
KR101270743B1 KR1020110121838A KR20110121838A KR101270743B1 KR 101270743 B1 KR101270743 B1 KR 101270743B1 KR 1020110121838 A KR1020110121838 A KR 1020110121838A KR 20110121838 A KR20110121838 A KR 20110121838A KR 101270743 B1 KR101270743 B1 KR 101270743B1
Authority
KR
South Korea
Prior art keywords
buffer descriptor
host system
processing
network interface
interface card
Prior art date
Application number
KR1020110121838A
Other languages
Korean (ko)
Other versions
KR20130056089A (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 KR1020110121838A priority Critical patent/KR101270743B1/en
Publication of KR20130056089A publication Critical patent/KR20130056089A/en
Application granted granted Critical
Publication of KR101270743B1 publication Critical patent/KR101270743B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card

Landscapes

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

Abstract

본 발명은 하이브리드 버퍼 디스크립터 처리 장치로, 기가 비트 또는 10 기가 비트 환경의 데이터 패킷이 인터넷 및 네트워크 망으로부터 입력됨에 따라 이를 호스트 시스템에서 처리하도록 내부의 버퍼 디스크립터 및 호스트 시스템의 버퍼 디스크립터에 저장하는 네트워크 인터페이스 카드와, 상기 네트워크 인터페이스 카드에 포함된 버퍼 디스크립터와 동일한 구조의 버퍼 디스크립터를 포함하여, 상기 네트워크 인터페이스 카드에 의해 저장된 데이터 패킷을 내부의 버퍼 디스크립터로부터 읽어서 처리하는 호스트 시스템을 포함한다.The present invention relates to a hybrid buffer descriptor processing apparatus, comprising: a network interface for storing a data packet of a gigabit or 10 gigabit environment in an internal buffer descriptor and a buffer descriptor of a host system to be processed by a host system as it is input from the Internet and a network. And a host system including a card and a buffer descriptor having the same structure as the buffer descriptor included in the network interface card, for reading and processing data packets stored by the network interface card from an internal buffer descriptor.

Figure R1020110121838
Figure R1020110121838

Description

네트워크 보안 시스템의 하드웨어 부하 분산을 위한 하이브리드 버퍼 디스크립터 처리 장치 및 방법{Apparatus and Method for hybrid BD for hardware load balancing of network security system}Apparatus and Method for hybrid BD for hardware load balancing of network security system

본 발명은 네트워크 보안 기술에 관한 것으로, 특히 하드웨어 부하 분산을 위한 버퍼 디스크립터 처리 장치 및 방법에 관한 것이다.
The present invention relates to network security technology, and more particularly, to an apparatus and method for processing a buffer descriptor for hardware load balancing.

전 세계 네트워크 기술 및 네트워크망의 발전으로 인해 최근 고성능 컴퓨팅, 가상화, VoD(Video on demand), 스토리지, 비디오 및 VoIP(Voice over IP)와 같은 다양한 광대역 서비스가 출현하였다. 이에 따라 급격히 증가하는 트래픽을 처리하기 위해 통신망의 액세스 속도 증가가 요구되고 있다. Advances in global network technologies and networks have led to the emergence of various broadband services such as high performance computing, virtualization, video on demand (VOD), storage, video and voice over IP (VoIP). Accordingly, in order to handle the rapidly increasing traffic, the access speed of the communication network is increasing.

그런데, 약 40년 전 설계된 현재의 인터넷 및 네트워크 기술은 이러한 급격히 증가하는 트래픽 처리 요구를 충족시키기에는 보안 취약, 사용자 이동성 지원 부족, 효율적인 컨텐츠 전달 취약 등의 문제점을 가진다. However, current Internet and network technologies designed about 40 years ago have problems such as security weakness, lack of user mobility support, and efficient content delivery weakness to meet such rapidly increasing traffic processing needs.

특히, 스마트폰, 스마트 TV 등과 같은 인터넷 및 네트워크 접속 디바이스의 폭발적인 증가와 대용량 비디오 트래픽으로 인한 트래픽 폭증 현상에 대한 대처 방안 및 DDoS 등의 네트워크 침해 사태에 대한 근본적인 대처 방안의 문제가 중요시되고 있다. In particular, the problems of the explosive growth of the Internet and network access devices such as smart phones, smart TVs, and the like to cope with the traffic explosion caused by massive video traffic, and the fundamental countermeasures against network breaches such as DDoS are becoming important.

네트워크 데이터 패킷 처리 및 보안상의 문제로 인해 네트워크상에서의 침입 시도는 갈수록 증가되고 다변화됨으로써, 이에 대한 대응으로 침입 탐지 시스템 및 침입 방지 시스템 등의 네트워크 보안 시스템들이 개발되었다. Due to network data packet processing and security problems, intrusion attempts on the network have increased and diversified. Accordingly, network security systems such as intrusion detection systems and intrusion prevention systems have been developed.

하지만, 고속화된 네트워크 망 환경과 대용량 데이터 트래픽의 유동으로 인해 대다수의 네트워크 보안 시스템들은 네트워크상으로부터 유입되는 데이터 패킷을 수집하고 분석하여 처리한 후 실시간으로 안정적인 패킷 데이터 전송 제공과 시스템의 성능저하로 인한 어려움을 겪고 있다.However, due to the high speed network environment and the flow of large data traffic, most network security systems collect, analyze and process data packets coming from the network, and then provide stable packet data transmission in real time. I'm having a hard time.

따라서, 기가 비트 환경 또는 10 기가 비트의 고속화된 네트워크 망에서 이동하는 데이터 패킷과 대용량의 데이터 패킷을 손실없이 수신하여 고속의 패킷 처리 성능을 지원하는 네트워크 보안 시스템(IPS/IDS)은 하드웨어 시스템의 부하를 분산시켜줌으로써 네트워크 보안 시스템의 성능을 향상시키며, 이로 인해 네트워크 상에서 유입되는 데이터 패킷을 수집하고 처리하여 안정적인 데이터 패킷 전송은 물론, 인터넷 및 네트워크를 통한 침입탐지/침입방지 등의 보안시스템 성능을 향상시킬 수 있어야 한다. Therefore, a network security system (IPS / IDS) that supports high-speed packet processing by receiving data packets and large data packets moving in a gigabit environment or a 10-gigabit high-speed network without loss of hardware system load It improves the performance of the network security system by distributing the data, thereby collecting and processing the data packets coming from the network, thereby improving the security system performance such as stable data packet transmission and intrusion detection / intrusion prevention through the Internet and the network. You should be able to.

이와 같은 이유로 보안 시스템에서의 하드웨어 부하 분산에 대한 기술의 중요성이 증가하고 있다. 이러한 네트워크 보안 시스템에 장착되어지는 네트워크 인터페이스 카드(Network Interface Card: NIC)는 하드웨어 부하 분산을 위해 전통적으로 하드웨어를 기반으로 하는 버퍼 디스크립터(Buffer Descriptor: BD)를 이용해왔다.For this reason, the importance of technology for hardware load balancing in security systems is increasing. Network Interface Cards (NICs) in these network security systems have traditionally used hardware-based buffer descriptors (BDs) for hardware load balancing.

하드웨어를 기반으로 하는 BD(Buffer Descriptor) 방식은 네트워크 인터페이스 카드로 유입되는 데이터 패킷을 위해 카드 자체의 BD에 패킷 데이터를 저장하고, 패킷 데이터의 처리를 위해 호스트 시스템에 직접 메모리 액세스(Direct Memory Access : DMA)를 요청한다.The hardware-based BD (Buffer Descriptor) method stores the packet data in the BD of the card itself for data packets flowing into the network interface card, and directly accesses the host system to process the packet data. DMA).

인터럽트를 사용하여 시스템은 DMA 영역에 네트워크 인터페이스 카드의 BD(Buffer Descriptor)를 호출하여 패킷 데이터를 읽어서 처리하는 방식이다. 이러한 하드웨어 기반의 BD(Buffer Descriptor) 방식은 패킷 데이터를 네트워크 인터페이스 카드로부터 호스트 시스템이 읽어와야 하며, 이로 인해 인터페이스에 대한 입출력(I/O)이 증가하고, 이로 인한 시스템의 성능이 저하되는 문제점을 가지고 있다.Using interrupts, the system calls the BD (Buffer Descriptor) of the network interface card in the DMA area to read and process packet data. This hardware-based BD (Buffer Descriptor) method requires that the host system read the packet data from the network interface card, which increases the input / output (I / O) to the interface, thereby reducing the performance of the system. Have.

소프트웨어를 기반으로 하는 BD(Buffer Descriptor) 방식은 하드웨어를 기반으로 하는 BD(Buffer Descriptor) 방식과 달리 BD와 DMA를 모두 호스트 시스템에서 제공하는 방식이다. 네트워크 인터페이스 카드로부터 유입되는 패킷 데이터를 호스트 시스템의 BD를 네트워크 인터페이스 카드가 확인하여 패킷 데이터를 저장하며, 저장된 패킷 데이터를 DMA한 후, 패킷 데이터의 처리를 위해 호스트 시스템이 DMA 영역으로부터 패킷 데이터를 읽어들이는 방식을 취한다. Software-based BD (Buffer Descriptor) method, unlike hardware-based BD (Buffer Descriptor) method, provides both BD and DMA in the host system. The network interface card checks the BD of the host system for the packet data flowing from the network interface card, and stores the packet data. After DMA the stored packet data, the host system reads the packet data from the DMA area to process the packet data. Take the way.

이러한 소프트웨어 기반의 BD(Buffer Descriptor) 방식은 네트워크 인터페이스 카드로부터 유입되는 데이터 패킷을 DMA하기 위해 네트워크 인터페이스 카드에서 호스트 시스템 BD에 대한 입출력(I/O) 시간이 증가한다는 문제점을 가지고 있다.The software-based BD (Buffer Descriptor) method has a problem in that input / output (I / O) time for the host system BD is increased in the network interface card in order to DMA data packets flowing from the network interface card.

이렇듯 네트워크 보안 시스템을 위한 네트워크 인터페이스 카드의 하드웨어 부하 분산을 위한 하드웨어 기반 BD방식과 소프트웨어 BD방식은 모두 전술한 바와 같이 문제점을 가지고 있다. As described above, both the hardware-based BD method and the software BD method for hardware load balancing of a network interface card for a network security system have problems.

즉, 네트워크상에서 유입되는 고속의 대용량 패킷 데이터의 양을 처리하기 위해서 하드웨어 기반 BD 방식은 하드웨어 자체의 BD 증가에 따른 비용 증가를 소프트웨어 BD 방식은 패킷 데이터 입출력(I/O)에 따른 시간 증가의 문제 등으로 인해 패킷 데이터 처리는 물론, 수집과 분석 및 안정적인 패킷 데이터 전송에 대한 문제점으로 인해 보안시스템 자체의 성능 및 신뢰성을 보장받을 수 없다.
In other words, in order to handle the large amount of high-speed packet data flowing in the network, the hardware-based BD method increases the cost according to the increase of the hardware itself, while the software BD method increases the time due to the packet data input / output (I / O). Due to problems such as packet data processing, collection and analysis, and stable packet data transmission, performance and reliability of the security system itself cannot be guaranteed.

본 발명은 네트워크 보안 시스템의 하드웨어 부하를 분산시키는 하드웨어 기반 BD 방식과 소프트웨어 기반 BD 방식을 혼용한 Hybrid BD 처리 장치 및 방법을 제공한다.
The present invention provides a hybrid BD processing apparatus and method using a hardware-based BD scheme and a software-based BD scheme to distribute the hardware load of the network security system.

본 발명은 하이브리드 버퍼 디스크립터 처리 장치로, 기가 비트 또는 10 기가 비트 환경의 데이터 패킷이 인터넷 및 네트워크 망으로부터 입력됨에 따라 이를 호스트 시스템에서 처리하도록 내부의 버퍼 디스크립터 및 호스트 시스템의 버퍼 디스크립터에 저장하는 네트워크 인터페이스 카드와, 상기 네트워크 인터페이스 카드에 포함된 버퍼 디스크립터와 동일한 구조의 버퍼 디스크립터를 포함하여, 상기 네트워크 인터페이스 카드에 의해 저장된 데이터 패킷을 내부의 버퍼 디스크립터로부터 읽어서 처리하는 호스트 시스템을 포함함을 특징으로 한다.The present invention relates to a hybrid buffer descriptor processing apparatus, comprising: a network interface for storing a data packet of a gigabit or 10 gigabit environment in an internal buffer descriptor and a buffer descriptor of a host system to be processed by a host system as it is input from the Internet and a network. And a host system including a card and a buffer descriptor having the same structure as the buffer descriptor included in the network interface card, for reading and processing data packets stored by the network interface card from an internal buffer descriptor.

본 발명은 네트워크 인터페이스 카드에서의 하이브리드 버퍼 디스크립터 처리 방법에 있어서, 기가 비트 또는 10 기가 비트 환경의 데이터 패킷이 수신됨에 따라, 내부의 버퍼 디스크립터 영역에 대한 사용 가능 여부를 확인하는 단계와, 패킷 데이터의 처리를 위해 호스트 시스템에 직접 메모리 액세스를 요청하는 단계와, 내부의 버퍼 디스크립터의 영역 사용이 가능한 것으로 확인되면, 수신된 패킷 데이터를 내부의 버퍼 디스크립터에 저장하고 사용 여부에 대한 플래그를 전환시키는 단계와, 인터페이스를 거쳐 호스트 시스템의 버퍼 디스크립터의 사용 여부에 대한 플래그를 전환시키는 단계와, 호스트 시스템에 인터럽트를 발생시켜 패킷 처리를 수행하는 단계를 포함함을 특징으로 한다.The present invention provides a method for processing a hybrid buffer descriptor in a network interface card, the method comprising: checking availability of an internal buffer descriptor area as a data packet of a gigabit or 10 gigabit environment is received; Requesting direct memory access to the host system for processing; if it is determined that the area of the internal buffer descriptor is available, storing the received packet data in the internal buffer descriptor and switching a flag for whether or not to use it; And switching a flag indicating whether or not to use the buffer descriptor of the host system through an interface, and generating an interrupt to the host system to perform packet processing.

본 발명은 호스트 시스템에서의 하이브리드 버퍼 디스크립터 처리 방법으로, 패킷 데이터의 처리를 위하여 내부의 버퍼 디스크립터의 사용 가능 여부를 확인하는 단계와, 직접 메모리 액세스를 통해 패킷 데이터를 처리하는 단계와, 상기 버퍼 디스크립터의 모든 패킷 데이터 처리가 완료되면, 내부의 버퍼 디스크립터 및 네트워크 인터페이스 카드에 포함된 버퍼 디스크립터의 사용 여부에 대한 플래그를 원래대로 복원하는 단계를 포함한다.
The present invention relates to a hybrid buffer descriptor processing method in a host system, the method comprising: checking whether an internal buffer descriptor is available for processing packet data, processing packet data through direct memory access, and the buffer descriptor When all the packet data processing of is completed, and restoring a flag as to whether or not the buffer descriptor contained in the internal buffer descriptor and the network interface card.

본 발명은 침입탐지/침입 방지 등의 보안 시스템에 장착된 네트워크 인터페이스 카드로 수신되는 패킷 데이터의 처리를 위해 호스트 시스템에서 네트워크 인터페이스 카드의 BD 영역에 대한 입출력 횟수를 줄여 하드웨어 부하를 분산시킬 수 있으며, 이에 따라 호스트 시스템의 성능을 향상시킬 수 있게 된다. The present invention can distribute the hardware load by reducing the number of input and output to the BD area of the network interface card in the host system for processing the packet data received by the network interface card installed in the security system, such as intrusion detection / intrusion prevention, As a result, the performance of the host system can be improved.

또한, BD 영역에 대한 DMA시에 호스트 시스템 내의 MBD를 이용하여 DMA를 할당하며, 네트워크 인터페이스 카드의 BD와 MBD가 논리적으로 동기화된 상태를 유지하며 이를 통해 고속의 패킷 처리를 수행할 수 있게 된다. In addition, the DMA is allocated using the MBD in the host system during the DMA for the BD area, and the BD and the MBD of the network interface card are kept in a logically synchronized state, thereby enabling high-speed packet processing.

따라서, 종래의 하드웨어 기반 BD 방식과 소프트웨어 BD 방식에서의 하드웨어 부하 분산에 대한 문제점을 보완하여 호스트 시스템의 하드웨어 부하를 효율적으로 분산시킬 수 있게 된다. Therefore, it is possible to efficiently distribute the hardware load of the host system by supplementing the problems of hardware load balancing in the conventional hardware-based BD software and the software BD system.

이는 호스트 시스템의 성능 향상 뿐만 아니라, 이를 통해 손실없는 패킷의 수집, 분석 및 처리가 가능하게 되며 종래의 BD 사용 방식에 따른 시스템의 유지보수 비용 절감의 효과도 얻을 수 있게 된다.
This not only improves the performance of the host system, but also enables lossless packet collection, analysis, and processing, thereby reducing the maintenance cost of the system according to the conventional BD usage.

도 1은 일반적인 하드웨어 기반 BD의 일 예를 도시한 도면이다.
도 2는 일반적인 소프트웨어 기반 BD의 일 예를 도시한 도면이다.
도 3은 본 발명의 바람직한 실시 예에 따른 Hybrid BD의 처리 장치에 대한 도면이다.
도 4는 본 발명의 바람직한 실시 예에 따른 Hybrid BD의 처리 방법을 설명하기 위한 도면이다.
1 is a diagram illustrating an example of a general hardware-based BD.
2 is a diagram illustrating an example of a general software-based BD.
3 is a diagram of a hybrid BD processing apparatus according to a preferred embodiment of the present invention.
4 is a view for explaining a method of processing a Hybrid BD according to a preferred embodiment of the present invention.

이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout.

본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.In the following description of the present invention, when it is determined that detailed descriptions of related known functions or configurations may unnecessarily obscure the gist of the embodiments of the present invention, the detailed description thereof will be omitted.

또한, 명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
In addition, the terms used throughout the specification are terms defined in consideration of functions in the embodiments of the present invention, and may be sufficiently modified according to the intention, custom, etc. of the user or operator, and the definitions of these terms are defined in the present invention. It should be made based on the contents throughout the specification.

도 1은 일반적인 하드웨어 기반의 BD 방식을 설명하기 위한 신호 흐름도이다.1 is a signal flow diagram illustrating a general hardware-based BD scheme.

도 1을 참조하면, 데이터 패킷이 인터넷 및 네트워크 망(110)으로부터 네트워크 인터페이스 카드(NIC)(120)로 수신됨에 따라, 네트워크 인터페이스 카드(120)는 101 단계에서 카드 내의 BD(130)로 영역 사용의 가능 여부를 확인한다. 즉, BD가 비어 있는지를 확인한다.Referring to FIG. 1, as data packets are received from the Internet and network 110 to a network interface card (NIC) 120, the network interface card 120 uses the area as a BD 130 in the card in step 101. Check for availability. In other words, it is checked whether the BD is empty.

그리고, 네트워크 인터페이스 카드(120)는 102 단계에서 패킷 데이터에 대한 처리를 위하여 호스트 시스템(160)의 DMA(140)를 요청한다. In operation 102, the network interface card 120 requests the DMA 140 of the host system 160 to process the packet data.

한편, 네트워크 인터페이스 카드(120)는 101 단계의 확인 결과 카드 내의 BD(130)의 영역 사용이 가능한 것으로 확인되면, 103 단계에서 수신한 패킷 데이터를 BD(130)에 저장하고 사용 여부에 대한 플래그를 '사용중'으로 전환시킨다. On the other hand, if the network interface card 120 confirms that the area of the BD 130 in the card is available in step 101, the network interface card 120 stores the packet data received in the step 130 in the BD 130 and sets a flag for use. Switch it to busy.

네트워크 인터페이스 카드(120)는 104 단계에서 호스트 시스템에서의 패킷 데이터 처리를 위해 디바이스 드라이버(150)에 인터럽트를 발생시킨다.The network interface card 120 generates an interrupt to the device driver 150 for packet data processing in the host system in step 104.

호스트 시스템(160)의 디바이스 드라이버(150)는 105 단계에서 패킷 데이터의 처리를 위하여 하드웨어 BD(130)를 읽어 DMA한다. 그리고, 106 단계에서 DMA의 내용을 읽어 패킷 처리를 수행한다. 패킷 처리의 수행이 끝나면 호스트 시스템(150)의 디바이스 드라이버(150)는 107 단계에서 다시 네트워크 인터페이스 카드의 BD(130)를 호출하여 처리된 영역의 BD 플래그를 '사용 가능'으로 복원시킨다.The device driver 150 of the host system 160 reads and DMAs the hardware BD 130 to process packet data in step 105. In step 106, the contents of the DMA are read and packet processing is performed. After the packet processing is completed, the device driver 150 of the host system 150 calls the BD 130 of the network interface card again in step 107 to restore the BD flag of the processed area to 'usable'.

도 2는 일반적인 소프트웨어 기반 BD의 일 예를 도시한 도면이다.2 is a diagram illustrating an example of a general software-based BD.

도 2를 참조하면, 데이터 패킷이 인터넷 및 네트워크 망(210)으로부터 네트워크 인터페이스 카드(NIC)(220)로 수신되면, 네트워크 인터페이스 카드(220)는 201 단계에서 호스트 시스템의 BD(230) 영역에 대한 사용 가능 여부를 확인한다. 즉, BD(230)가 비어 있는지를 확인한다.Referring to FIG. 2, when a data packet is received from the Internet and the network 210 to the network interface card (NIC) 220, the network interface card 220 may be configured for the BD 230 area of the host system in step 201. Check availability. That is, it is checked whether the BD 230 is empty.

네트워크 인터페이스 카드(220)는 202 단계에서 패킷 데이터의 처리를 위해 DMA(240)를 요청한다.The network interface card 220 requests the DMA 240 for processing the packet data in step 202.

한편, 네트워크 인터페이스 카드(220)는 201 단계의 확인 결과 BD(230)의 영역 사용이 가능한 것으로 확인되면, 203 단계에서 수신된 패킷 데이터를 BD(230)에 저장하고 사용 여부에 대한 플래그를 '사용중'으로 전환시킨다. On the other hand, if the network interface card 220 confirms that the area of the BD 230 is available in step 201, the network interface card 220 stores the packet data received in the step 230 in the BD 230 and sets a flag indicating whether or not to use it. Switch to '.

그리고, 네트워크 인터페이스 카드(220)는 204 단계에서 호스트 시스템의 디바이스 드라이버(250)에 인터럽트를 발생시켜 패킷 처리를 수행한다. In operation 204, the network interface card 220 generates an interrupt to the device driver 250 of the host system to perform packet processing.

호스트 시스템(260)의 디바이스 드라이버(250)는 205 단계에서 패킷 데이터의 처리를 위하여 BD(230) 영역을 확인하여, 206 단계에서 DMA(240)로부터 처리할 패킷 데이터를 읽어온다.The device driver 250 of the host system 260 checks the BD 230 region for processing the packet data in step 205, and reads the packet data to be processed from the DMA 240 in step 206.

그리고, 디바이스 드라이버(250)는 207 단계에서 처리된 BD 영역의 플래그를 '사용 가능'으로 전환시키고, BD 영역의 모든 패킷 데이터 처리가 완료되면, 208 단계에서 네트워크 인터페이스 카드에 BD(230) 영역의 사용 가능함을 알리게 된다.Then, the device driver 250 switches the flag of the BD area processed in step 207 to 'usable', and when all packet data processing in the BD area is completed, the device driver 250 displays the BD 230 area in the network interface card in step 208. You will notice that it is available.

전술한 바와 같이 하드웨어 BD 및 소프트웨어 BD를 포함하는 일반적인 BD 방식은 IPS 시스템에서 네트워크 인터페이스 카드를 인라인(inline) 모드로 사용할때, 타임 아웃(timeout)을 통해 패킷 수신에 대한 플래그 처리를 수행하였다. 따라서, 플래그 전환 및 처리를 위한 시스템의 직접적인 호출 및 인터럽트 발생으로 인해, 기가 비트 이상의 10 기가 비트 환경 네트워크 망에서는 패킷 처리시에 상당한 시스템의 부하가 발생하며 성능이 저하되고, 이로 인해 안정적인 패킷 처리의 문제점이 발생한다.As described above, in the general BD scheme including the hardware BD and the software BD, when the network interface card is used in the inline mode in the IPS system, a flag processing for packet reception is performed through timeout. Therefore, due to the system's direct call and interrupt generation for flag switching and processing, in a 10 Gigabit environment network network with more than Gigabit, there is considerable system load during packet processing and performance is degraded. A problem occurs.

따라서, 이러한 문제점을 극복하기 위해 본 발병의 Hybrid BD 방식은 IPS 시스템에서 사용하는 네트워크 인터페이스 카드를 이용하여 인라인(inline) 모드 수행시 패킷 처리에 대한 부분을 타임 아웃(timeout) 방식의 플래그 처리 방식이 아닌 하드웨어 BD와 소프트웨어 BD를 이용하여 각각의 처리에 대한 동기화를 통해 패킷 처리에 대한 플래그 전환을 소프트웨어 BD를 통해 직접적인 시스템의 호출 과정을 줄이고, 이로 인한 시간을 줄임으로써 침입탐지/침입방지 시스템의 부하를 분산시켜 시스템의 성능을 향상시킬 수 있다.Accordingly, in order to overcome this problem, the hybrid BD method of the present invention uses a network interface card used in an IPS system, and uses a timeout flag processing method for packet processing when performing an inline mode. By using hardware BD and software BD instead of each process, the flag switching for packet processing can be reduced through the software BD, which reduces the process of calling the system directly, thereby reducing the time required for intrusion detection / intrusion prevention system load. To improve the performance of the system.

도 3은 본 발명의 바람직한 실시 예에 따른 Hybrid BD 처리 장치의 구성 및 동작을 설명하기 위한 도면이다.3 is a view for explaining the configuration and operation of the hybrid BD processing apparatus according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 바람직한 실시 예에 따른 하이브리드 BD 처리 장치는 네트워크 인터페이스 카드(315) 및 호스트 시스템(370)을 포함한다.Referring to FIG. 3, a hybrid BD processing apparatus according to a preferred embodiment of the present invention includes a network interface card 315 and a host system 370.

네트워크 인터페이스 카드(315)는 기가 비트 또는 10 기가 비트 환경의 데이터 패킷이 인터넷 및 네트워크 망(310)으로부터 입력됨에 따라 이를 호스트 시스템에서 처리하도록 버퍼 디스크립터에 저장하고, 호스트 시스템(370)은 네트워크 인터페이스 카드(315)에 의해 저장된 데이터 패킷을 읽어서 처리한다.The network interface card 315 stores a data packet of a gigabit or 10 gigabit environment in a buffer descriptor to be processed by the host system as it is input from the Internet and the network 310, and the host system 370 stores the network interface card. The data packet stored at 315 is read and processed.

이를 위해 네트워크 인터페이스 카드(315)는 내부에 BD(330)를 포함한다. 그리고, 본 발명의 바람직한 실시 예에 따라 호스트 시스템(370)은 네트워크 인터페이스 카드 내의 BD(330) 영역과 동일한 구조의 MBD(340)에 패킷 데이터가 저장되어진다. To this end, the network interface card 315 includes a BD 330 therein. According to a preferred embodiment of the present invention, the host system 370 stores packet data in the MBD 340 having the same structure as the BD 330 area of the network interface card.

네트워크 인터페이스 카드(NIC)(320)로 수신되면, 네트워크 인터페이스 카드(320)는 301 단계에서 호스트 시스템의 BD(330) 영역에 대한 사용 가능 여부를 확인한다. 즉, BD(330)가 비어 있는지를 확인한다.When received by the network interface card (NIC) 320, the network interface card 320 checks whether the BD 330 area of the host system is available in step 301. That is, it is checked whether the BD 330 is empty.

네트워크 인터페이스 카드(320)는 302 단계에서 패킷 데이터의 처리를 위해 DMA(350)를 요청한다.The network interface card 320 requests the DMA 350 for processing the packet data in step 302.

한편, 네트워크 인터페이스 카드(320)는 301 단계의 확인 결과 BD(330)의 영역 사용이 가능한 것으로 확인되면, 303 단계에서 수신된 패킷 데이터를 BD(330)에 저장하고 사용 여부에 대한 플래그를 '사용중'으로 전환시킨다. On the other hand, if the network interface card 320 confirms that the area of the BD 330 is available as a result of step 301, the network interface card 320 stores the packet data received in the step 303 in the BD 330 and sets a flag indicating whether the network interface card is used. Switch to '.

네트워크 인터페이스 카드(320)는 304 단계에서 인터페이스(PCIe)를 거쳐 호스트 시스템(370)의 MBD(340)의 사용 여부에 대한 플래그를 '사용중'으로 전환시킨다. The network interface card 320 converts a flag of whether the MBD 340 of the host system 370 into 'in use' through the interface PCIe in step 304.

그리고, 네트워크 인터페이스 카드(320)는 305 단계에서 호스트 시스템의 디바이스 드라이버(360)에 인터럽트를 발생시켜 패킷 처리를 수행한다. In operation 305, the network interface card 320 generates an interrupt to the device driver 360 of the host system to perform packet processing.

호스트 시스템(370)의 디바이스 드라이버(360)는 306 단계에서 패킷 데이터의 처리를 위하여 MBD(340) 영역의 사용 가능 여부를 확인한다. 그리고, 307 단계에서 DMA(350)로부터 처리할 패킷 데이터를 읽어온다. In operation 306, the device driver 360 of the host system 370 checks whether the MBD 340 area is available for processing the packet data. In operation 307, the packet data to be processed is read from the DMA 350.

그리고, 디바이스 드라이버(360)는 BD 영역의 모든 패킷 데이터 처리가 완료되면, 308 단계에서 MBD(340) 영역의 사용 여부에 대한 플래그를 '사용 가능'으로 복원한다. 또한, 309 단계에서 처리가 완료된 BD(309) 영역에 대한 플래그 전환은 MBD를 통하여 카드 내의 BD 영역의 플래그를 전환시켜 BD 영역의 사용 가능함을 알리게 된다. When all packet data processing of the BD area is completed, the device driver 360 restores the flag of whether the MBD area 340 is used to 'usable' in step 308. In addition, the flag switching of the BD 309 area which has been processed in step 309 indicates that the BD area is available by switching the flag of the BD area in the card through the MBD.

도 4는 본 발명의 바람직한 실시 예에 따른 Hybrid BD 방법에 대한 흐름도이다.4 is a flowchart illustrating a hybrid BD method according to a preferred embodiment of the present invention.

도 4를 참조하면, 인터넷 또는 네트워크 망으로부터 침입탐지/침입방지 등의 보안 시스템에 장착되어 있는 네트워크 인터페이스 카드는 410 단계에서 네트워크상의 패킷을 수신한다. Referring to FIG. 4, in step 410, a network interface card installed in a security system such as intrusion detection / intrusion prevention from the Internet or a network network receives a packet on a network.

420 단계에서 네트워크 인터페이스 카드로 수신된 패킷 데이터는 카드 내의 BD 영역에 저장되며, 호스트 시스템 내의 MBD 영역에는 하드웨어 BD 영역의 주소와 사이즈 정보가 저장된다. The packet data received by the network interface card in step 420 is stored in the BD area of the card, and the address and size information of the hardware BD area are stored in the MBD area of the host system.

그리고, 430 단계에서 네트워크 인터페이스 카드는 BD 영역이 사용 가능한지를 판단한다. 즉, BD 영역의 가용 사이즈만큼 패킷 데이터가 저장되었는지를 판단한다. In operation 430, the network interface card determines whether the BD area is available. In other words, it is determined whether packet data is stored as much as the available size of the BD area.

430 단계의 판단 결과 가용 사이즈만큼 패킷 데이터가 저장된 것으로 판단될 경우, 440 단계에서 네트워크 인터페이스 카드는 패킷 데이터의 처리를 위해 인터페이스(PCIe)를 거쳐 호스트 시스템에 DMA를 요청한다.If it is determined in step 430 that the packet data is stored as much as the available size, in step 440, the network interface card requests a DMA from the host system via the interface PCIe to process the packet data.

네트워크 인터페이스 카드 내의 BD 영역에 데이터가 채워지면, 네트워크 인터페이스 카드는 450 단계에서 사용된 BD 영역의 플래그를 '사용중'으로 세팅하며 호스트 시스템 내의 MBD에도 사용된 MBD 영역에 대한 플래그를 '사용중'으로 세팅한다. When data is filled in the BD area in the network interface card, the network interface card sets the flag of the BD area used in step 450 to 'in use' and sets the flag for the MBD area used in the MBD in the host system to 'in use'. do.

플래그 세팅이 완료되면 네트워크 인터페이스 카드는 460 단계에서 호스트 시스템에 패킷 처리를 위한 인터럽트를 발생시킨다. When the flag setting is completed, the network interface card generates an interrupt for packet processing to the host system in step 460.

그러면, 인터럽트를 수신한 호스트 시스템의 디바이스 드라이버는 470 단계에서 패킷 처리를 위해 MBD 영역이 사용되어졌는지 확인한다.Then, the device driver of the host system receiving the interrupt checks whether the MBD region is used for packet processing in step 470.

상기 470 단계의 확인 결과 패킷 처리를 위해 MBD 영역이 사용되어졌는지를 판단한다. As a result of checking in step 470, it is determined whether the MBD region is used for packet processing.

470 단계의 확인 결과 사용되어지지 않은 것으로 판단될 경우, 호스트 시스템의 디바이스 드라이버는 480 단계에서 DMA로부터 데이터를 읽어 처리한다. If it is determined in step 470 that it is not used, the device driver of the host system reads data from the DMA and processes it in step 480.

그러나, 470 단계의 확인 결과 사용되고 있는 것으로 확인될 경우 490 단계로 진행한다.However, if it is confirmed that the check in step 470 is in use, the process proceeds to step 490.

490 단계에서 호스트 시스템의 디바이스 드라이버는 MBD영역의 플래그를 다시 사용 가능하도록 플래그를 복귀시키고, 호스트 시스템 내의 MBD는 인터페이스(PCIe)를 통해 네트워크 인터페이스 카드 내의 BD영역의 플래그를 전환시킴으로써 다시 네트워크 인터페이스 카드 내의 BD영역을 사용할 수 있도록 한다.In step 490, the device driver of the host system returns a flag so that the flag of the MBD area is available again, and the MBD in the host system switches back the flag of the BD area in the network interface card through the interface PCIe. BD area can be used.

Claims (6)

삭제delete 기가 비트 또는 10 기가 비트 환경의 데이터 패킷이 인터넷 및 네트워크 망으로부터 입력됨에 따라 이를 호스트 시스템에서 처리하도록 내부의 버퍼 디스크립터 및 호스트 시스템의 버퍼 디스크립터에 저장하는 네트워크 인터페이스 카드와,
상기 네트워크 인터페이스 카드에 포함된 버퍼 디스크립터와 동일한 구조의 버퍼 디스크립터를 포함하여, 상기 네트워크 인터페이스 카드에 의해 저장된 데이터 패킷을 내부의 버퍼 디스크립터로부터 읽어서 처리하는 호스트 시스템을 포함하되,
상기 네트워크 인터페이스 카드는
기가 비트 또는 10 기가 비트 환경의 데이터 패킷이 수신됨에 따라, 내부의 버퍼 디스크립터 및 상기 호스트 시스템에 포함된 버퍼 디스크립터의 사용이 가능할 경우 사용 여부 플래그를 전환하고, 상기 호스트 시스템에 직접 메모리 액세스 요청한 후 호스트 시스템에 인터럽트 신호를 전송함을 특징으로 하는 하이브리드 버퍼 디스크립터 처리 장치.
A network interface card which stores data packets in a gigabit or 10 gigabit environment as input from the Internet and a network, in an internal buffer descriptor and a buffer descriptor of the host system for processing by the host system;
Including a buffer descriptor having the same structure as the buffer descriptor included in the network interface card, including a host system for reading and processing data packets stored by the network interface card from the internal buffer descriptor,
The network interface card
As a data packet of a gigabit or 10 gigabit environment is received, the internal buffer descriptor and the buffer descriptor included in the host system are switched when the buffer packet is available, and the host system is directly requested to access the memory after the host descriptor is switched. Hybrid buffer descriptor processing device, characterized in that for transmitting an interrupt signal to the system.
제 2항에 있어서, 상기 호스트 시스템은
내부에 포함된 버퍼 디스크립터가 사용 가능할 경우, 직접 메모리 액세스를 수행하여 데이터 패킷을 처리함을 특징으로 하는 하이브리드 버퍼 디스크립터 처리 장치.
3. The system of claim 2, wherein the host system
Hybrid buffer descriptor processing apparatus, characterized in that for processing the data packet by performing a direct memory access when the buffer descriptor contained therein is available.
제 2항에 있어서, 상기 호스트 시스템은
처리가 완료된 네트워크 인터페이스 카드의 버퍼 디스크립터에 대한 플래그 전환 및 내부의 버퍼 디스크립터에 대한 플래그 전환을 수행함을 특징으로 하는 하이브리드 버퍼 디스크립터 처리 장치.
3. The system of claim 2, wherein the host system
And a flag switching for a buffer descriptor of a network interface card which has been processed and a flag switching for an internal buffer descriptor.
네트워크 인터페이스 카드에서의 하이브리드 버퍼 디스크립터 처리 방법에 있어서,
기가 비트 또는 10 기가 비트 환경의 데이터 패킷이 수신됨에 따라, 내부의 버퍼 디스크립터 영역에 대한 사용 가능 여부를 확인하는 단계와,
패킷 데이터의 처리를 위해 호스트 시스템에 직접 메모리 액세스를 요청하는 단계와,
내부의 버퍼 디스크립터의 영역 사용이 가능한 것으로 확인되면, 수신된 패킷 데이터를 내부의 버퍼 디스크립터에 저장하고 사용 여부에 대한 플래그를 전환시키는 단계와,
인터페이스를 거쳐 호스트 시스템의 버퍼 디스크립터의 사용 여부에 대한 플래그를 전환시키는 단계와,
호스트 시스템에 인터럽트를 발생시켜 패킷 처리를 수행하는 단계를 포함함을 특징으로 하는 네트워크 인터페이스 카드에서의 하이브리드 버퍼 디스크립터 처리 방법.
A method for processing a hybrid buffer descriptor in a network interface card,
As a data packet in a gigabit or 10 gigabit environment is received, checking availability of an internal buffer descriptor area;
Requesting direct memory access to the host system for processing packet data;
If it is determined that the area of the internal buffer descriptor is available, storing the received packet data in the internal buffer descriptor and switching a flag for whether or not to use the internal buffer descriptor;
Switching a flag for whether or not the host system uses a buffer descriptor through an interface,
Generating an interrupt in the host system to perform packet processing.
호스트 시스템에서의 하이브리드 버퍼 디스크립터 처리 방법에 있어서,
패킷 데이터의 처리를 위하여 내부의 버퍼 디스크립터의 사용 가능 여부를 확인하는 단계와,
직접 메모리 액세스를 통해 패킷 데이터를 처리하는 단계와,
상기 버퍼 디스크립터의 모든 패킷 데이터 처리가 완료되면, 내부의 버퍼 디스크립터 및 네트워크 인터페이스 카드에 포함된 버퍼 디스크립터의 사용 여부에 대한 플래그를 원래대로 복원하는 단계를 포함함을 특징으로 하는 하이브리드 버퍼 디스크립터 처리 방법.
In the hybrid buffer descriptor processing method in the host system,
Checking whether an internal buffer descriptor is available for processing the packet data;
Processing packet data through direct memory access,
Restoring a flag as to whether a buffer descriptor included in an internal buffer descriptor and a network interface card is used when all packet data processing of the buffer descriptor is completed.
KR1020110121838A 2011-11-21 2011-11-21 Apparatus and Method for hybrid BD for hardware load balancing of network security system KR101270743B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110121838A KR101270743B1 (en) 2011-11-21 2011-11-21 Apparatus and Method for hybrid BD for hardware load balancing of network security system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110121838A KR101270743B1 (en) 2011-11-21 2011-11-21 Apparatus and Method for hybrid BD for hardware load balancing of network security system

Publications (2)

Publication Number Publication Date
KR20130056089A KR20130056089A (en) 2013-05-29
KR101270743B1 true KR101270743B1 (en) 2013-06-03

Family

ID=48664316

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110121838A KR101270743B1 (en) 2011-11-21 2011-11-21 Apparatus and Method for hybrid BD for hardware load balancing of network security system

Country Status (1)

Country Link
KR (1) KR101270743B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102206847B1 (en) 2019-07-18 2021-01-25 메가존클라우드 주식회사 System and method for hybrid security
KR20220061500A (en) 2020-11-06 2022-05-13 주식회사 윈스 Apparatus and method for distributed processing of identical packet in high-speed network security equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010094292A (en) * 2000-04-06 2001-10-31 윤종용 Packet transmission apparatus using buffer discripter
KR20040110540A (en) * 2003-06-19 2004-12-31 삼성전자주식회사 Apparatus and method interfacing a data for a network electronic device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010094292A (en) * 2000-04-06 2001-10-31 윤종용 Packet transmission apparatus using buffer discripter
KR20040110540A (en) * 2003-06-19 2004-12-31 삼성전자주식회사 Apparatus and method interfacing a data for a network electronic device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102206847B1 (en) 2019-07-18 2021-01-25 메가존클라우드 주식회사 System and method for hybrid security
KR20220061500A (en) 2020-11-06 2022-05-13 주식회사 윈스 Apparatus and method for distributed processing of identical packet in high-speed network security equipment
US11582133B2 (en) 2020-11-06 2023-02-14 Wins Co., Ltd. Apparatus and method for distributed processing of identical packet in high-speed network security equipment

Also Published As

Publication number Publication date
KR20130056089A (en) 2013-05-29

Similar Documents

Publication Publication Date Title
US11095758B2 (en) Methods and apparatus for virtualized hardware optimizations for user space networking
CN102402487B (en) Zero copy message reception method and system
US7515596B2 (en) Full data link bypass
US8392565B2 (en) Network memory pools for packet destinations and virtual machines
RU2589398C2 (en) Data-fast-distribution method and device
García-Dorado et al. High-performance network traffic processing systems using commodity hardware
CN108023829B (en) Message processing method and device, storage medium and electronic equipment
CN114244560B (en) Flow processing method and device, electronic equipment and storage medium
CN101478549B (en) Operation method for memory sharing media server and functional module construction
US20140082119A1 (en) Processing data packets from a receive queue in a remote direct memory access device
CN104281493A (en) Method for improving performance of multiprocess programs of application delivery communication platforms
US9621633B2 (en) Flow director-based low latency networking
WO2023103419A1 (en) Message queue-based method and apparatus for sending 5g messages in batches, and electronic device
Wu et al. A transport-friendly NIC for multicore/multiprocessor systems
US7114011B2 (en) Multiprocessor-scalable streaming data server arrangement
WO2014004192A1 (en) Performing emulated message signaled interrupt handling
Hanford et al. Characterizing the impact of end-system affinities on the end-to-end performance of high-speed flows
KR101270743B1 (en) Apparatus and Method for hybrid BD for hardware load balancing of network security system
CN102594769B (en) Method and system for transmitting network media data
US7746856B2 (en) Method, apparatus and system for optimizing packet throughput for content processing systems on chips
CN113055493B (en) Data packet processing method, device, system, scheduling device and storage medium
JP2023522742A (en) Deep packet analysis
WO2016197659A1 (en) Packet reception method, device and system for network media stream
Tang et al. Towards high-performance packet processing on commodity multi-cores: current issues and future directions
US20220303230A1 (en) Operations to copy portions of a packet

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: 20160527

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170529

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 7