KR101916856B1 - 패킷 처리 장치 및 방법 - Google Patents

패킷 처리 장치 및 방법 Download PDF

Info

Publication number
KR101916856B1
KR101916856B1 KR1020170003641A KR20170003641A KR101916856B1 KR 101916856 B1 KR101916856 B1 KR 101916856B1 KR 1020170003641 A KR1020170003641 A KR 1020170003641A KR 20170003641 A KR20170003641 A KR 20170003641A KR 101916856 B1 KR101916856 B1 KR 101916856B1
Authority
KR
South Korea
Prior art keywords
stored
packet
packets
storage
user area
Prior art date
Application number
KR1020170003641A
Other languages
English (en)
Other versions
KR20180082221A (ko
Inventor
이현준
강승원
Original Assignee
주식회사 시큐아이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 시큐아이 filed Critical 주식회사 시큐아이
Priority to KR1020170003641A priority Critical patent/KR101916856B1/ko
Publication of KR20180082221A publication Critical patent/KR20180082221A/ko
Application granted granted Critical
Publication of KR101916856B1 publication Critical patent/KR101916856B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Landscapes

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

Abstract

본 발명은 네트워크로부터 패킷을 수신하는 통신부, 데이터를 저장하는 저장부 및 상기 수신되는 패킷을 구동 시스템(Operating System; 이하 OS)에 의해 생성되는 가상 메모리의 사용자 영역에 저장하여 로우 데이터 처리를 수행하고, 상기 사용자 영역에 저장된 패킷들의 양이 기설정된 대용량 단위에 도달하면, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장하는 제어부를 포함하는 것을 특징으로 하는 패킷 처리 장치에 관한 것이다.

Description

패킷 처리 장치 및 방법{Packet processing apparatus and method}
본 발명은 패킷 처리 장치 및 방법에 관한 것으로, 보다 구체적으로 네트워크로부터 수신되는 대용량 트래픽을 고속으로 수집하고 저장하는 패킷 처리 장치 및 방법에 관한 것이다.
대용량의 트래픽이 흘러다니는 네트워크에서 패킷 처리 장치가 누락 없이 패킷을 수집하고 저장하기 위해서는 많은 어려움이 존재한다.
첫째, 패킷 처리 장치 내에서 패킷을 수신하는 네트워크 인터페이스 카드(Network Interface Card; NIC)의 패킷 수신 능력이 네트워크의 패킷 송신 속도에 못 미치는 경우, NIC가 네트워크로부터 송신되는 패킷을 모두 수신하지 못하고 누락시키는 문제가 발생할 수 있다.
둘째, 수집된 패킷을 저장부에 저장하는 과정에서 문제가 발생할 수 있다. 구체적으로, 네트워크에서 10Gbps로 패킷이 수신되는 경우, 약 1280Mbytes/sec의 속도로 패킷 처리 데이터를 저장부에 저장해야 한다. 그러나 저장부를 구성하는 HDD의 최대 성능은 80~160Mbytes/sec으로 실제 네트워크 패킷 수신 속도에 대응하여 필요한 저장 속도보다 매우 부족하다. 이 경우, 수집되는 패킷의 저장이 누락되는 문제가 발생할 수 있다.
이러한 문제들을 해결하기 위해서는 hash 기반 세션 밸런싱을 통한 분산 및 연속쓰기 방식을 사용할 수 있다.
그럼에도 불구하고 여전히 네트워크로부터 수신되는 대용량 패킷을 손실 없이 수집하고 저장하는 것은, 성능적인 제약으로 인하여 매우 어려운 실정이다.
본 발명은 상기한 문제를 해결하기 위한 것으로, 대량의 트래픽이 처리되는 대용량 네트워크에서 누락 없이 패킷(트래픽)들을 수집하고, 수집된 트래픽을 저장하는 패킷 처리 장치 및 방법을 제공한다.
상술한 과제를 해결하기 위한 본 발명에 따른 패킷 처리 장치는, 네트워크로부터 패킷을 수신하는 통신부, 데이터를 저장하는 저장부 및 상기 수신되는 패킷을 구동 시스템(Operating System; 이하 OS)에 의해 생성되는 가상 메모리의 사용자 영역에 저장하여 로우 데이터 처리를 수행하고, 상기 사용자 영역에 저장된 패킷들의 양이 기설정된 대용량 단위에 도달하면, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장하는 제어부를 포함하는 것을 특징으로 한다.
또한, 상기 가상 메모리는, 상기 제어부에 의하여 구동되는 커널을 통하여 접근 가능하도록 허용된 영역으로, 상기 커널을 통하여 수행되는 제어 동작을 위한 데이터가 저장되는 커널 영역 및 사용자가 접근 가능한 데이터가 저장되며, 사용자 어플리케이션 및 사용자 프로그램을 통하여 수행되는 제어되는 데이터가 저장되는 상기 사용자 영역으로 구성되는 것을 특징으로 한다.
또한, 상기 로우 데이터 처리는, 네트워크 드라이버의 상기 커널 영역에 저장된 패킷에 대한 처리와 동일한 동작으로, 데이터 형식 변환, 인캡슐레이션을 포함하는 것을 특징으로 한다.
또한, 상기 제어부는, 수집 프로그램을 구동하여 상기 수신되는 패킷을 상기 사용자 영역에 저장하여 상기 로우 데이터 처리를 수행하고, 저장 프로그램을 구동하여 상기 로우 데이터 처리가 수행된 패킷을 상기 사용자 영역에 구성되는 버퍼에 누적하여 저장하는 것을 특징으로 한다.
또한, 상기 제어부는, 상기 저장 프로그램을 통하여 상기 버퍼에 저장된 패킷들의 양이 상기 기설정된 대용량 단위에 도달하면, 상기 버퍼에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장하는 것을 특징으로 한다.
또한, 상기 기설정된 대용량 단위는, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장할 때, 상기 저장부의 최대 저장 성능을 만족하도록 설정되는 것을 특징으로 한다.
또한, 상기 저장부는, 복수의 저장 장치를 포함하는 것을 특징으로 한다.
또한, 상기 제어부는, 상기 복수의 저장 장치 각각에 대응하는 복수의 저장 프로그램을 구동하여 상기 로우 데이터 처리가 수행된 패킷을, 상기 복수의 저장 프로그램 각각의 버퍼에 분산하여 저장하는 것을 특징으로 한다.
또한, 상기 제어부는, 패킷 정보에 관한 해쉬 함수의 처리값이 동일한 적어도 하나의 패킷을 동일한 저장 프로그램의 버퍼에 저장하는 것을 특징으로 한다.
또한, 상술한 과제를 해결하기 위한 본 발명에 따른 패킷 처리 방법은, 네트워크로부터 수신되는 패킷을 구동 시스템(Operating System; 이하 OS)에 의해 생성되는 가상 메모리의 사용자 영역에 저장하는 단계, 상기 저장된 패킷을 로우 데이터 처리하여 상기 사용자 영역의 버퍼에 저장하는 단계 및 상기 버퍼에 저장된 패킷들의 양이 기설정된 대용량 단위에 도달하면, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 저장부에 연속으로 저장하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 가상 메모리는, 커널을 통하여 접근 가능하도록 허용된 영역으로, 상기 커널을 통하여 수행되는 제어 동작을 위한 데이터가 저장되는 커널 영역 및 사용자가 접근 가능한 데이터가 저장되며, 사용자 어플리케이션 및 사용자 프로그램을 통하여 수행되는 제어되는 데이터가 저장되는 상기 사용자 영역으로 구성되는 것을 특징으로 한다.
또한, 상기 로우 데이터 처리를 수행하는 단계는, 네트워크 드라이버의 상기 커널 영역에 저장된 패킷에 대한 처리와 동일한 동작으로, 데이터 형식 변환, 인캡슐레이션 중 적어도 하나를 수행하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 저장된 패킷을 로우 데이터 처리하여 상기 사용자 영역의 버퍼에 저장하는 단계는, 수집 프로그램을 구동하여 상기 수신되는 패킷을 상기 사용자 영역에 저장하여 상기 로우 데이터 처리를 수행하는 단계 및 저장 프로그램을 구동하여 상기 로우 데이터 처리가 수행된 패킷을 상기 버퍼에 누적하여 저장하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 기설정된 대용량 단위는, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장할 때, 상기 저장부의 최대 저장 성능을 만족하도록 설정되는 것을 특징으로 한다.
또한, 상기 저장부는, 복수의 저장 장치를 포함하는 것을 특징으로 한다.
또한, 상기 저장된 패킷을 로우 데이터 처리하여 상기 사용자 영역의 버퍼에 저장하는 단계는, 상기 복수의 저장 장치 각각에 대응하는 복수의 저장 프로그램을 구동하여 상기 로우 데이터 처리된 패킷을, 상기 복수의 저장 프로그램 각각의 버퍼에 분산하여 저장하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 로우 데이터 처리된 패킷을, 상기 복수의 저장 프로그램 각각의 버퍼에 분산하여 저장하는 단계는, 상기 패킷의 패킷 정보에 대해 해쉬 함수를 처리하는 단계 및 상기 해쉬 함수의 처리값에 대응하는 저장 프로그램의 버퍼에 상기 패킷을 저장하는 것을 특징으로 한다.
본 발명에 따른 패킷 처리 장치 및 방법은, 대용량 네트워크로부터 수신되는 대량의 패킷을 효과적으로 수집하고 저장할 수 있도록 한다.
도 1은 일반적인 패킷 처리 방법을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 패킷 처리 장치의 구성을 나타낸 블록도이다.
도 3은 본 발명에 따른 패킷 처리 방법을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 패킷 처리 방법에 있어서 분산 저장 실시 예를 설명하기 위한 도면이다.
도 5는 본 발명에 따른 패킷 처리 방법을 나타낸 순서도이다.
본 명세서의 실시 예를 설명함에 있어 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우, 그 상세한 설명은 생략될 수 있다.
본 명세서에서 사용되는 "포함한다," "포함할 수 있다." 등의 표현은 개시된 해당 기능, 동작, 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작, 구성요소 등을 제한하지 않는다. 또한, 본 명세서에서, "포함하다." 또는 "가지다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.  
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명을 설명한다.
네트워크 내에서 동작하는 패킷 처리 장치가 네트워크를 흘러다니는 트래픽(패킷)들을 별도로 저장하지 않고 실시간으로 분석하는 것은 물리적으로 한계가 있다. 또한, 실시간 분석 방법에 있어서는 이미 처리가 끝난 패킷에 대한 로우 데이터(DATA)를 별도로 저장하지 않기 때문에, 과거에 패킷 처리 장치를 거쳐간 패킷에 대한 데이터를 심층적으로 분석할 수 없다.
패킷 처리 장치를 거쳐간 패킷들이 모두 저장되어 있으면, 특정 시점 또는 특정 기간에 대하여 패킷 흐름을 그대로 재현하거나, 패킷으로부터 로우 데이터를 추출하여 패킷에 대한 심층적인 분석을 수행할 수도 있게 된다. 이러한 분석을 위해서는, 네트워크로부터 패킷 처리 장치로 유입되는 모든 패킷이 패킷 처리 장치에서 수집되고, 저장되어야 한다.
대용량 네트워크 내에서는, 패킷 처리 장치의 시간당 처리할 수 있는 패킷 양(패킷 처리 속도)가 패킷 처리 장치로 유입되는 패킷의 양에 못 미치는 경우, 유입되는 모든 패킷을 수집하여 저장하지 못할 수 있다.
도 1은 일반적인 패킷 처리 방법을 설명하기 위한 도면이다.
도 1을 참조하면, 일반적인 패킷 처리 장치(10)에서 네트워크 인터페이스 카드(Network Interface Card; 이하 NIC)(11)를 통하여 수신된 패킷은 구동 시스템(Operating System; 이하 OS)에서 제공하는 가상 메모리의 커널 영역(Kernel)(12)으로 입력된다.
커널 영역(12)에서는 네트워크 드라이버를 통해 입력된 패킷에 대한 로우 데이터 처리가 수행되며, 처리된 패킷은 OS 가상 메모리의 사용자 영역(user space)(13)으로 전달된다.
구체적으로, 네트워크 드라이버는 커널 영역(12) 내에서, NIC(11)로부터 입력되는 패킷을 저장할 저장 영역을 준비한 후, NIC(11)에게 해당 저장 영역에 패킷을 저장할 것을 명령한다. 이후에, 네트워크 드라이버는 해당 저장 영역을 주기적으로 로드하다가, 해당 저장 영역에서 NIC(11)가 저장한 패킷이 로드되면, 로드된 패킷을 처리하여 사용자 영역(13)으로 전달한다.
사용자 영역(13)에서 구동되는 수집 프로그램(14)은, 커널 영역(12)으로부터 전달되는 패킷을 처리하여 실제 저장 장치(15)에 저장한다.
이러한 패킷 처리 방법에 있어서, NIC(11)를 통하여 수신된 패킷이 커널 영역(12)에서 네트워크 드라이버를 통해 처리된 뒤 사용자 영역(13)으로 전달되기까지는 복잡한 로직들을 거쳐야 하기 때문에 패킷 처리에 대한 성능 저하가 발생할 수 있다.
또한, 수집 프로그램(14)이 수집된 패킷을 저장 장치(15)에 저장할 때, 저장 장치(15)의 성능 제약에 따라, 실제로 저장되지 못하고 누락되는 패킷이 발생할 수 있다.
결과적으로, 이러한 일반적인 패킷 처리 방법은, 대용량 네트워크로부터 모든 패킷을 수집/저장하는 데에 적합하지 않다.
따라서, 본 발명에서는 커널(12) 처리에 의해 발생하는 성능 저하를 방지하고, 최대 성능으로 패킷을 저장할 수 있도록 하는 패킷 처리 장치를 제공한다.
도 2는 본 발명에 따른 패킷 처리 장치의 구성을 나타낸 블록도이고, 도 3은 본 발명에 따른 패킷 처리 방법을 설명하기 위한 도면이다.
도 2를 참조하면, 본 발명에 따른 패킷 처리 장치(100)는 통신부(110), 제어부(120) 및 저장부(130)를 포함하여 구성될 수 있다.
통신부(110)는 외부와 데이터 통신을 수행한다. 통신부(110)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 송신기와, 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 수신기 등을 포함할 수 있다.
본 발명의 다양한 실시 예에서, 통신부(110)는 NIC(111)를 포함하여 구성될 수 있으며, NIC(111)를 통하여 네트워크로부터 패킷을 수신할 수 있다. NIC(111)는 네트워크로부터 수신된 패킷을 제어부(120)로 전달할 수 있다.
제어부(120)는 패킷 처리 장치(100)로 수신되는 패킷을 수집하고 저장하기 위하여 패킷 처리 장치(100)의 각 구성 요소들을 제어한다.
제어부(120)는 기설치된 OS가 구동됨에 따라 제어 동작을 수행할 수 있다. OS 구동에 의하여 제어부(120)는 가상 메모리를 생성하고, 생성된 가상 메모리를 구분하여 커널 영역(121)과 사용자 영역(122)으로 할당한다. 커널 영역(121)은 제어부(120)가 구동하는 커널만 접근 가능하도록 허용된 영역으로, 커널을 통하여 수행되는 제어 동작을 위한 데이터들이 저장된다. 사용자 영역(122)은 사용자가 접근 가능한 데이터가 저장되는 영역으로, 사용자 어플리케이션, 사용자 프로그램 등을 통하여 수행되는 제어 동작을 위한 데이터들이 저장된다.
커널에 의하여 수행되는 제어 동작에 있어서는, 복수 개의 데이터 처리가 병렬로 수행될 수 있다. 이 과정에서 문맥 전환이 발생한다.
구체적으로, 제어부(120)는 커널을 통해 커널 영역(121)에 저장된 제1 데이터 처리를 일정한 시간 동안 수행한 후에, 해당 시간 동안 처리된 상태의 제1 데이터를 커널 영역(121)에 다시 임시로 저장한다. 이후에 제어부(120)는 커널 영역(121)에 저장된 제2 데이터 처리를 일정한 시간 동안 수행하고, 해당 시간 동안 처리된 상태의 제2 데이터를 커널 영역(121)에 다시 임시로 저장한 후, 이전에 임시 저장된 제1 데이터를 다시 로드하여 제1 데이터 처리를 이어서 수행한다.
이러한 문맥 전환에 의하여, 커널 영역(121)에서 데이터 처리를 수행하는 경우, 성능 저하 문제가 발생할 수 있다.
본 발명에 다양한 실시 예에서, 이러한 문제를 해결하기 위해 제어부(120)는 NIC(111)로부터 수신되는 패킷을 사용자 영역(122)에 저장하고, 사용자 영역(122)에 접근하여 어 동작을 수행할 수 있다. 이를 위하여, 제어부(120)는 사용자 영역(122)에 접근하여 제어 동작을 수행할 수 있도록 구성되는 수집 프로그램(122-1) 및 저장 프로그램(122-2)을 실행하여 패킷 처리 및 저장을 수행할 수 있다.
구체적으로, 제어부(120)는 수집 프로그램(122-1)을 통하여 NIC(111)로부터 패킷을 직접 수집하여, 사용자 영역(122)에 저장할 수 있다. 이를 위하여, 수집 프로그램(122-1)은 커널 바이패스(kernel bypass) 네트워크를 이용할 수 있다.
또한, 제어부(120)는 수집 프로그램(122-1)을 통하여 사용자 영역(122)에 저장된 패킷을 처리할 수 있다. 이때, 수집 프로그램(122-1)을 통하여 수행되는 패킷의 처리는, 커널 영역(121)에서 구동되는 네트워크 드라이버에 의하여 수행되는 패킷의 로우 데이터 처리와 동일한 것으로, 데이터 형식 변환, 인캡슐레이션 등을 포함할 수 있다.
이후에, 제어부(120)는 저장 프로그램(122-2)을 통하여, 수집 프로그램(121-1)에서 처리된 패킷을 사용자 영역(122)에 구성되는 버퍼에 저장할 수 있다.
저장부(130)는 적어도 하나의 저장 장치(예를 들어, HDD)로 구성될 수 있다. 저장 장치는 전달되는 데이터를 처리하여 저장하기 위한 최대 성능을 가지며, 예를 들어 최대 성능은 80~160Mbytes/sec일 수 있다.
일 실시 예에서, 네트워크로부터 1Gbps 속도로 패킷이 수신되는 경우, 이를 bytes 단위로 환산하면 128Mbytes/sec가 된다. 따라서, 저장 장치가 최대 성능으로 데이터 저장을 수행할 수 있다면, 1Gbps 속도의 대용량 네트워크로부터 수신되는 패킷들을 누락됨이 없이 처리 및 저장할 수 있다.
일반적인 저장 장치는 데이터를 저장 장치에 연속 쓰기 할 때 최대 성능으로 데이터 저장을 수행할 수 있다. 따라서, 본 발명에서 저장 프로그램(122-2)은 수집 프로그램(121-1)에서 처리된 패킷을 사용자 영역(122)에 구성되는 버퍼에 누적하여 저장하였다가, 저장된 패킷들이 대용량 단위로 모이면, 저장 장치에 연속 쓰기로 한꺼번에 저장할 수 있다.
저장 프로그램(122-2)이 버퍼에 누적하는 패킷들의 대용량 단위는 패킷 처리 장치(100)의 관리자 등에 의하여 미리 설정되거나 제어부(120)에서 구동되는 OS의 공급자 등, 저장 장치의 제조자 등에 의하여 미리 설정될 수 있다. 또한, 대용량 단위는 저장 장치에 연속 쓰기로 패킷들을 저장할 때, 저장 장치의 최대 성능을 발휘할 수 있도록 설정될 수 있다.
본 발명의 다양한 실시 예에서, 저장부(130)는 도 4에 도시된 바와 같이 복수의 저장 장치들(131, 132, 133, 134)을 포함하여 구성될 수 있다. 이 경우, 제어부(120)는 사용자 영역(122)에서 저장 장치들(131, 132, 133, 134)에 각각 대응하는 복수의 저장 프로그램들(122-2', 122-2'', 122-2''', 122-2'''')을 구동할 수 있다. 제어부(120)는 사용자 영역(122)에서 처리되는 패킷들을 복수의 저장 장치들(131, 132, 133, 134)로 분산하여 저장할 수 있다.
구체적으로, 제어부(120)는 수집 프로그램(121)을 통하여 처리된 패킷을 복수의 저장 프로그램들(122-2', 122-2'', 122-2''', 122-2'''')로 분산하여 전달할 수 있다. 각각의 저장 프로그램들(122-2', 122-2'', 122-2''', 122-2'''')은 버퍼에 저장된 패킷들을 대용량 단위로 각각에 대응하는 저장 장치들(131, 132, 133, 134)에 저장할 수 있다.
이때, 수집 프로그램(121)은 동일한 종류의 패킷을 하나의 저장 프로그램으로 전달할 수 있다. 그에 따라, 동일한 종류의 패킷은 동일한 저장 장치에 저장될 수 있다. 이는, 제어부(120)가 추후에 저장부(130)에 저장된 패킷을 분석하기 위해 이용하는 경우, 동일한 패킷을 보다 용이하게 검색할 수 있도록 한다.
이를 위하여, 수집 프로그램(121)은 입력된 패킷들에 관한 정보를 해쉬 함수로 처리하여, 해쉬 함수 처리값이 동일한 패킷을 동일한 저장 프로그램으로 전달할 수 있다. 다양한 실시 예에서, 해쉬 함수 처리를 위한 정보는, 패킷의 출발지 주소, 목적지 주소, 출발지 포트, 목적지 포트 등을 포함할 수 있다.
도 5는 본 발명에 따른 패킷 처리 방법을 나타낸 순서도이다.
도 5를 참조하면, 본 발명에 따른 패킷 처리 장치(100)는, NIC(111)를 통하여 수신되는 패킷을 OS에서 제공하는 가상 메모리의 사용자 영역(122)에 저장한다(501).
즉, 본 발명에 따른 패킷 처리 장치(100)는 NIC(111)를 통하여 수신되는 패킷을 커널을 거치지 않고 즉시 사용자 영역(122)으로 전달하여, 사용자 영역(122)에서 패킷 처리가 수행되도록 한다.
다음으로, 패킷 처리 장치(100)는 사용자 영역(122)에 저장된 패킷의 로우 데이터 처리를 수행한다(502).
패킷 처리 장치(100)는 사용자 영역(122)에 접근하여 제어 동작을 수행할 수 있도록 구성되는 수집 프로그램(122-1)을 실행하여, 저장된 패킷의 로우 데이터 처리를 수행한다. 일 예로, 패킷 처리 장치(100)는 저장된 패킷에 대하여 데이터 형식 변환, 인캡슐레이션 등의 처리를 수행할 수 있다.
이후에, 패킷 처리 장치(100)는 처리된 패킷을 사용자 영역(122) 내의 버퍼에 저장한다(503).
패킷 처리 장치(100)는 사용자 영역(122)에 접근하여 제어 동작을 수행할 수 있도록 구성되는 저장 프로그램(122-2)을 실행하여 처리된 패킷을 버퍼에 저장한다.
버퍼 내에 저장된 패킷의 양이 기설정된 대용량 단위에 도달하는 경우(504), 패킷 처리 장치(100)는 대용량 단위로 버퍼 내에 저장된 패킷을 저장 장치에 반영구적으로 저장한다(505).
본 발명의 다양한 실시 예에서, 패킷 처리 장치(100)는 사용자 영역(122)의 버퍼 내에 처리된 패킷을 누적하여 저장하였다가, 저장된 패킷의 양이 기설정된 대용량 단위에 도달하는 경우, 연속 쓰기로 저장 장치에 한꺼번에 저장할 수 있다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 패킷 처리 장치
110: 통신부
111: 네트워크 인터페이스 카드
120: 제어부
121: 커널 영역
122: 사용자 영역
122-1: 수집 프로그램
122-2: 저장 프로그램
130: 저장부

Claims (17)

  1. 네트워크로부터 패킷을 수신하는 통신부;
    데이터를 저장하는 저장부; 및
    상기 수신되는 패킷을 구동 시스템(Operating System; 이하 OS)에 의해 생성되는 가상 메모리의 사용자 영역에 저장하여 로우 데이터 처리를 수행하고, 상기 사용자 영역에 저장된 패킷들의 양이 기설정된 대용량 단위에 도달하면, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장하는 제어부를 포함하되,
    상기 로우 데이터 처리는,
    상기 패킷에 대한 데이터 형식 변환, 인캡슐레이션 중 적어도 하나를 포함하고,
    상기 제어부는,
    상기 사용자 영역에 저장된 패킷들의 양이 상기 기설정된 대용량 단위에 도달하면, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부의 최대 저장 속도에 따라 상기 저장부에 연속 쓰기로 저장하며,
    상기 가상 메모리는,
    상기 제어부에 의하여 구동되는 커널을 통하여 접근 가능하도록 허용된 영역으로, 상기 커널을 통하여 수행되는 제어 동작을 위한 데이터가 저장되는 커널 영역; 및
    사용자가 접근 가능한 데이터가 저장되며, 사용자 어플리케이션 및 사용자 프로그램을 통하여 제어되는 데이터가 저장되는 상기 사용자 영역으로 구성되는 것을 특징으로 하는 패킷 처리 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 로우 데이터 처리는,
    네트워크 드라이버의 상기 커널 영역에 저장된 패킷에 대한 처리와 동일한 동작인 것을 특징으로 하는 패킷 처리 장치.
  4. 제1항에 있어서, 상기 제어부는,
    수집 프로그램을 구동하여 상기 수신되는 패킷을 상기 사용자 영역에 저장하여 상기 로우 데이터 처리를 수행하고, 저장 프로그램을 구동하여 상기 로우 데이터 처리가 수행된 패킷을 상기 사용자 영역에 구성되는 버퍼에 누적하여 저장하는 것을 특징으로 하는 패킷 처리 장치.
  5. 제4항에 있어서, 상기 제어부는,
    상기 저장 프로그램을 통하여 상기 버퍼에 저장된 패킷들의 양이 상기 기설정된 대용량 단위에 도달하면, 상기 버퍼에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장하는 것을 특징으로 하는 패킷 처리 장치.
  6. 제1항에 있어서, 상기 기설정된 대용량 단위는,
    상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장할 때, 상기 저장부의 상기 최대 저장 속도를 만족하도록 설정되는 것을 특징으로 하는 패킷 처리 장치.
  7. 제1항에 있어서, 상기 저장부는,
    복수의 저장 장치를 포함하는 것을 특징으로 하는 패킷 처리 장치.
  8. 제7항에 있어서, 상기 제어부는,
    상기 복수의 저장 장치 각각에 대응하는 복수의 저장 프로그램을 구동하여 상기 로우 데이터 처리가 수행된 패킷을, 상기 복수의 저장 프로그램 각각의 버퍼에 분산하여 저장하는 것을 특징으로 하는 패킷 처리 장치.
  9. 제8항에 있어서, 상기 제어부는,
    패킷 정보에 관한 해쉬 함수의 처리값이 동일한 적어도 하나의 패킷을 동일한 저장 프로그램의 버퍼에 저장하는 것을 특징으로 하는 패킷 처리 장치.
  10. 네트워크로부터 수신되는 패킷을 구동 시스템(Operating System; 이하 OS)에 의해 생성되는 가상 메모리의 사용자 영역에 저장하는 단계;
    상기 저장된 패킷을 로우 데이터 처리하여 상기 사용자 영역의 버퍼에 저장하는 단계; 및
    상기 버퍼에 저장된 패킷들의 양이 기설정된 대용량 단위에 도달하면, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 저장부에 연속으로 저장하는 단계를 포함하되,
    상기 로우 데이터 처리는,
    상기 패킷에 대한 데이터 형식 변환, 인캡슐레이션 중 적어도 하나를 포함하고,
    상기 사용자 영역에 저장된 대용량 단위의 패킷들을 저장부에 연속으로 저장하는 단계는,
    상기 사용자 영역에 저장된 패킷들의 양이 상기 기설정된 대용량 단위에 도달하면, 상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부의 최대 저장 속도에 따라 상기 저장부에 연속 쓰기로 저장하는 단계를 포함하며,
    상기 가상 메모리는,
    커널을 통하여 접근 가능하도록 허용된 영역으로, 상기 커널을 통하여 수행되는 제어 동작을 위한 데이터가 저장되는 커널 영역; 및
    사용자가 접근 가능한 데이터가 저장되며, 사용자 어플리케이션 및 사용자 프로그램을 통하여 제어되는 데이터가 저장되는 상기 사용자 영역으로 구성되는 것을 특징으로 하는 패킷 처리 방법.
  11. 삭제
  12. 제10항에 있어서, 상기 로우 데이터 처리는,
    네트워크 드라이버의 상기 커널 영역에 저장된 패킷에 대한 처리와 동일한 동작인 것을 특징으로 하는 패킷 처리 방법.
  13. 제10항에 있어서, 상기 저장된 패킷을 로우 데이터 처리하여 상기 사용자 영역의 버퍼에 저장하는 단계는,
    수집 프로그램을 구동하여 상기 수신되는 패킷을 상기 사용자 영역에 저장하여 상기 로우 데이터 처리를 수행하는 단계; 및
    저장 프로그램을 구동하여 상기 로우 데이터 처리가 수행된 패킷을 상기 버퍼에 누적하여 저장하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  14. 제10항에 있어서, 상기 기설정된 대용량 단위는,
    상기 사용자 영역에 저장된 대용량 단위의 패킷들을 상기 저장부에 연속으로 저장할 때, 상기 저장부의 최대 저장 속도를 만족하도록 설정되는 것을 특징으로 하는 패킷 처리 방법.
  15. 제10항에 있어서, 상기 저장부는,
    복수의 저장 장치를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  16. 제15항에 있어서, 상기 저장된 패킷을 로우 데이터 처리하여 상기 사용자 영역의 버퍼에 저장하는 단계는,
    상기 복수의 저장 장치 각각에 대응하는 복수의 저장 프로그램을 구동하여 상기 로우 데이터 처리된 패킷을, 상기 복수의 저장 프로그램 각각의 버퍼에 분산하여 저장하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  17. 제16항에 있어서, 상기 로우 데이터 처리된 패킷을, 상기 복수의 저장 프로그램 각각의 버퍼에 분산하여 저장하는 단계는,
    상기 패킷의 패킷 정보에 대해 해쉬 함수를 처리하는 단계; 및
    상기 해쉬 함수의 처리값에 대응하는 저장 프로그램의 버퍼에 상기 패킷을 저장하는 것을 특징으로 하는 패킷 처리 방법.
KR1020170003641A 2017-01-10 2017-01-10 패킷 처리 장치 및 방법 KR101916856B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170003641A KR101916856B1 (ko) 2017-01-10 2017-01-10 패킷 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170003641A KR101916856B1 (ko) 2017-01-10 2017-01-10 패킷 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180082221A KR20180082221A (ko) 2018-07-18
KR101916856B1 true KR101916856B1 (ko) 2018-11-08

Family

ID=63049114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170003641A KR101916856B1 (ko) 2017-01-10 2017-01-10 패킷 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101916856B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100768942B1 (ko) * 2007-04-09 2007-10-19 삼정정보통신(주) 영상 처리 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101478619B1 (ko) * 2008-02-27 2015-01-06 삼성전자주식회사 가상화 기술을 이용한 데이터 입출력 방법 및 장치
KR102327782B1 (ko) * 2015-05-29 2021-11-18 한국과학기술원 전자 장치 및 커널 데이터 접근 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100768942B1 (ko) * 2007-04-09 2007-10-19 삼정정보통신(주) 영상 처리 장치

Also Published As

Publication number Publication date
KR20180082221A (ko) 2018-07-18

Similar Documents

Publication Publication Date Title
US8996720B2 (en) Method and apparatus for mirroring frames to a remote diagnostic system
US20060277295A1 (en) Monitoring system and monitoring method
CN102648455A (zh) 服务器和流控制程序
US7499470B2 (en) Sequence-preserving deep-packet processing in a multiprocessor system
CN103067218B (zh) 一种高速网络数据包内容分析装置
CN107395521B (zh) 一种基于物联网的大数据信息处理方法及系统
US10397353B2 (en) Context enriched distributed logging services for workloads in a datacenter
US11847108B2 (en) System and method for capturing data to provide to a data analyser
US20140115183A1 (en) Information processing method, recording medium, and information processing apparatus
US9509627B2 (en) Resource over-subscription
CN110391989B (zh) 一种进行数据传输的方法和装置
JP2012004781A (ja) 構成情報取得方法、仮想プローブおよび構成情報取得制御装置
CN104954165A (zh) 一种链路分析的方法、设备及系统
CN116418700A (zh) 一种基于dpdk的分布式数据捕获方法
KR101916856B1 (ko) 패킷 처리 장치 및 방법
US9716673B2 (en) Packet storage method and packet storage apparatus
CN111131479B (zh) 流量处理方法、装置及分流器
CN105681230A (zh) 一种业务链中的数据处理方法及设备
CN109358820B (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
CN103558995A (zh) 一种存储控制芯片及磁盘报文传输方法
CN110830385A (zh) 一种捕包处理方法、网络设备、服务器及存储介质
US20150304200A1 (en) Traffic information collection system and collection control node
CN105099745A (zh) 一种业务流程的跟踪方法及装置
CN107465569A (zh) 一种SAS Switch整机柜抓取节点phy error count的方法及系统
JP2010178299A (ja) フレームキャプチャシステムおよびフレームキャプチャ方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)