KR20150057498A - 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법 - Google Patents

고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법 Download PDF

Info

Publication number
KR20150057498A
KR20150057498A KR1020130140916A KR20130140916A KR20150057498A KR 20150057498 A KR20150057498 A KR 20150057498A KR 1020130140916 A KR1020130140916 A KR 1020130140916A KR 20130140916 A KR20130140916 A KR 20130140916A KR 20150057498 A KR20150057498 A KR 20150057498A
Authority
KR
South Korea
Prior art keywords
memory block
memory
queue
block address
engine
Prior art date
Application number
KR1020130140916A
Other languages
English (en)
Other versions
KR101541349B1 (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 KR1020130140916A priority Critical patent/KR101541349B1/ko
Priority to US14/547,157 priority patent/US20150169454A1/en
Publication of KR20150057498A publication Critical patent/KR20150057498A/ko
Application granted granted Critical
Publication of KR101541349B1 publication Critical patent/KR101541349B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mathematical Physics (AREA)

Abstract

본 발명은 메모리풀 방식을 적용하여, 패킷 전달 방식의 효율성을 크게 향상시킬 수 있는 패킷 전달 시스템 및 그 전달 방법에 관한 것으로, 본 발명에 따른 내부에 적어도 하나 이상의 메모리 블록을 포함하여, NIC로 입력된 패킷 정보를 보관하는 메모리풀, 상기 메모리 블록의 할당 및 해제를 제어하고, 큐 또는 엔진의 요청에 따라 메모리 블록의 정보를 업데이트하고, 메모리 블록 주소를 전달하는 메모리 할당 관리부, 상기 메모리 할당 관리부에 메모리 블록을 요청하여, 수신된 메모리 블록 주소를 외부에 전달하는 큐 및 상기 큐에서 상기 메모리 블록 주소를 수신하여, 패킷 정보를 참조하여, 사전에 정의된 분석 작업을 실시하는 엔진을 포함하는 것을 기술적 특징으로 하며, 이를 통해 패킷 복사 절차에 따른 연산 시간 및 메모리 공간의 증가 문제를 해소할 수 있을 뿐만 아니라 데이터 전달의 효율성을 크게 증대시킬 수 있는 효과를 기대할 수 있다.

Description

고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법{System and method for transferring packet in network}
본 발명은 Transparent 모드에서 동작하는 네트워크 장비에서 패킷 분석 시, 요구되는 패킷 전달 버퍼 기술에 관한 것으로, 더 상세하게는 메모리풀 방식을 적용하여, 패킷 전달 방식의 효율성을 크게 향상시킬 수 있는 패킷 전달 시스템 및 그 전달 방법에 관한 것이다.
현재 인터넷을 개인의 라이프 스타일부터 기업의 사업 영역까지 전 분야에 걸쳐 막대한 영향력을 행사하고 있다. 주변을 둘러보면 웹 커뮤니티를 통해 서로의 일상을 공유하거나 무선 인터넷을 즐기는 모습도 흔히 볼 수 있다. 이러한 인터넷의 사용이 늘어남에 따라 보안 위협의 종류 및 그로 인한 피해의 규모도 크게 증가하고 있으며, 인터넷 초기의 단순 해킹이나 바이러스 중심에서 최근에는 웜, 스파이웨어, 트로이목마, DDoS, 애플리케이션 취약점 공격 등으로 발전하면서 그 기법의 종류 및 복잡성 및 파괴력이 증가하고 있으며, 이러한 보안 위협에 대한 대안으로 통합 보안 시스템의 개발이 활발히 진행되고 있다.
통합 보안 시스템의 동작 모드는 Route 모드 및 Transparent 모드가 있으며, Route 모드는 네트워크 세그먼트를 분리하여, 통합 보안 시스템이 라우터 장비와 같이, 동작하는 것이며, 라우팅 프로토콜을 지원해야 하며, Transparent 모드는 네트워크 세그먼트를 분리하지 않고, Bridge 장비와 같이, 사용하는 것이며, Transparent 모드의 동작에서는 기존 네트워크의 변경 없이 설치가 가능한 장점이 있다.
종래 NIC에서 분석 엔진으로의 패킷 전달 방식으로는 [도 5a]와 같이, NIC(10)와 분석 엔진(50) 사이에 두 개의 입력 큐(46)와 출력 큐(47)를 두어, 입력 큐의 크기만큼 패킷이 채워지면 [도 5b]와 같이, 입력 큐(46)와 출력 큐(47)를 교체하여 분석 엔진에서 출력 큐에 담긴 패킷을 사용하는 버퍼 스위칭 큐(BSQ-Buffer Switching Queue) 방식을 사용하며, 출력 큐(47)의 패킷이 모두 사용 된 이후에는 [도 5b]와 같이, 입력 큐(46)와 출력 큐(47)를 전환하여 다시 입력 큐(46)와 출력 큐(47) 작업을 수행한다.
이러한 종래 BSQ 방식에서는 입력 큐(46)에서의 입력이 출력 큐(47)에서의 출력이 각각 이루어지므로 출력 큐(47)에서의 출력 큐(47)성능이 저하되는 경우 [도 5c]에 도시된 바와 같이, 버퍼 스위칭이 늦어지게 되고 분석 엔진(50)으로의 패킷 전달이 지연될 수 있다.
또한, [도 6]에 도시된 바와 같이, 종래 BSQ 방식을 병렬 엔진 구조에 적용하면, 분석을 위한 패킷을 엔진으로 전달하기 위해 시스템 함수를 호출하여 NIC 로부터 패킷을 일일히 해당 엔진의 큐에 복사하는 작업을 거쳤다. 그러나 이는 각 엔진별 고정된 큐를 필요로 하며 복사 속도가 느리기 때문에 엔진이 늘어나는 과정과 동시에 리소스를 많이 점유하였으며 고성능이 요구되는 장비에 반복적인 처리 부하가 발생하는 문제점이 있다.
또한, [도 7]에 도시된 바와 같이, 종래 BSQ 방식을 직렬 엔진 구조에 적용하면, 앞단 엔진에서 분석을 마친 후 뒷단 엔진으로 패킷 정보를 전달하기 위해 패킷의 데이터를 복사 하는 과정을 거쳤다. 엔진의 depth에 비례하여 복사가 반복적으로 일어나기 때문에 연결된 엔진 구조의 복잡도 및 처리 시간에 따라 전체적인 성능 저하가 발생하는 문제점이 있다.
미국 등록특허 공보 7565496B1, 2009. 07. 21, 9쪽 내지 11쪽.
본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 제안된 것으로, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템의 목적은, 메모리풀을 패킷 전달 시스템에 적용하여, 패킷 복사 절차에 따른 연산 시간 및 메모리 공간의 증가 문제를 해소하도록 하는데 있다.
또 다른 목적은, 병렬 엔진 구조에서 하나의 메모리풀을 다수의 큐가 동시에 참조함으로써, 데이터 복사에 소요되는 시간을 단축하는데 있다.
또 다른 목적은, 직렬 엔진 구조에서 메모리 블록에 대한 소유 권한을 뒷단의 메모리 할당 관리부에 부여하고, 내부 메모리 블록과 전달 받은 메모리 블록을 교환하는 방식을 적용하는데 있다.
본 발명에 따른 고성능 네트워크 장비의 패킷 전달 방법의 목적은 NIC에 전달된 패킷을 메모리풀에 저장하여, 메모리 블록 주소를 통해 패킷 정보를 참조할 수 있는 방법을 제공하는데 있다.
본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템은 내부에 적어도 하나 이상의 메모리 블록을 포함하여, NIC로 입력된 패킷 정보를 보관하는 메모리풀, 상기 메모리 블록의 할당 및 해제를 제어하고, 큐 또는 엔진의 요청에 따라 메모리 블록의 정보를 업데이트하고, 메모리 블록 주소를 전달하는 메모리 할당 관리부, 상기 메모리 할당 관리부에 메모리 블록을 요청하여, 수신된 메모리 블록 주소를 외부에 전달하는 큐 및 상기 큐에서 상기 메모리 블록 주소를 수신하여, 패킷 정보를 참조하여, 사전에 정의된 분석 작업을 실시하는 엔진을 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템은 엔진이 복수 개로 구성되되, 병렬 구조일 경우, 상기 메모리풀의 상기 메모리 블록 주소를 공유하여, 참조하는 것을 특징으로 한다.
또한, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템은 엔진이 복수 개로 구성되되, 직렬 구조일 경우, 뒷단의 엔진도 별도의 메모리풀을 포함하며, 앞단의 엔진으로부터 상기 메모리 블록 주소가 전달되면 뒷단의 특정한 내부 메모리 블록 주소와 전달되는 메모리 블록 주소를 교환하는 것을 특징으로 한다.
또한, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템에 있어서, 메모리 할당 관리부는 상기 메모리 블록 주소의 교환 시, 앞단 엔진에서 전달되는 메모리 블록 주소를 참조하는 타 엔진이 있는지 여부를 확인 후, 해당 메모리 블록 주소를 참조하는 엔진이 없을 경우, 뒷단의 메모리풀에 상기 메모리 블록의 소유 권한을 부여하는 것을 특징으로 한다.
본 발명에 따른 고성능 네트워크 장비의 패킷 전달 방법은 (a) NIC에 입력되는 패킷을 읽어 메모리풀에 내부 메모리 블록에 저장하는 단계, (b) 메모리 할당 관리부에 큐의 메모리 블록 주소(MBP)에 대한 요청이 발생하면, 상기 메모리풀을 조회하여, 상기 큐에 메모리 블록 주소를 전달하는 단계, (c) 상기 큐에 엔진의 메모리 블록 주소에 대한 요청이 발생하면 큐 내부를 조회하여, 조회된 메모리 블록 주소를 상기 엔진에 전달하는 단계 및 (d) 상기 엔진을 이용하여, 상기 (c) 단계에서 전달된 상기 메모리 블록 주소에 해당하는 패킷 정보를 참조하여, 사전에 정의된 패킷 분석 작업을 수행하는 단계를 포함하는 것을 특징으로 한다.
이상에서 설명한 바와 같이, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템은 메모리풀을 패킷 전달 시스템에 적용함으로써, 패킷 복사 절차에 따른 연산 시간 및 메모리 공간의 증가 문제를 해소할 수 있을 뿐만 아니라 데이터 전달의 효율성을 크게 증대시킬 수 있는 효과가 있다.
또한, 병렬 엔진 구조에서 하나의 메모리풀을 다수의 큐가 동시에 참조함으로써, 데이터 복사에 소요되는 시간을 단축할 수 있으며, 엔진별로 개별 패킷 입력 버퍼를 구비하지 않아도 되므로, 메모리 공간 할당을 1/n 수준으로 절약할 수 있는 효과가 있다.
또한, 직렬 엔진 구조에서 메모리 블록에 대한 소유 권한을 뒷단의 메모리 할당 관리부에 부여하여, 내부 메모리 블록과 전달 받은 메모리 블록을 교환하는 방식을 적용함으로써, 패킷 전달 과정의 부하를 줄일 수 있으며, 장비의 분석 성능을 향상시킬 수 있는 효과가 있다.
본 발명에 따른 고성능 네트워크 장비의 패킷 전달 방법은 NIC에 전달된 패킷을 메모리풀에 저장하여, 메모리 블록 주소를 통해 패킷 정보를 참조할 수 있는 방법을 제공함으로써, 엔진 구조의 복잡도를 낮추고 전체적인 패킷 전달 성능을 향상시킬 수 있는 효과가 있다.
도 1은 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템의 전체 구성을 나타내는 구성도.
도 2는 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템을 적용한 병렬 엔진 구조의 개념도.
도 3은 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템을 적용한 직렬 엔진 구조의 개념도.
도 4는 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 방법의 상세 흐름을 나타내는 흐름도.
도 5a 내지 도 5c는 종래 BSQ 방식의 패킷 전달 방법을 설명하는 개념도.
도 6은 종래 BSQ 방식에 있어서, 병렬 엔진 구조의 개념도.
도 7은 종래 BSQ 방식에 있어서, 직렬 엔진 구조의 개념도.
이하, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법을 실시하기 위한 구체적인 내용을 설명하면 다음과 같다.
[도 1]은 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템의 전체 구성을 나타내는 도면으로, 메모리풀(20), 메모리 할당 관리부(30), 큐(41~44) 및 엔진(51~54)을 포함한다.
상기 메모리풀(20)은 내부에 적어도 하나 이상의 메모리 블록을 포함하여, NIC(10)로 입력된 패킷 정보를 보관하며, 상기 메모리 할당 관리부(30)은 상기 메모리 블록의 할당 및 해제를 제어하고, 큐 또는 엔진의 요청에 따라 메모리 블록의 정보를 업데이트하고, 메모리 블록 주소(MBP)를 전달한다.
상기 큐(41~44)는 상기 메모리 할당 관리부(30)에 메모리 블록을 요청하여, 수신된 메모리 블록 주소를 상기 엔진(51~54)에 전달하며, 상기 엔진(51~54)는 큐(41~44)에서 상기 메모리 블록 주소를 수신하여, 패킷 정보를 참조하여, 사전에 정의된 분석 작업을 실시한다.
[도 2]는 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템을 적용한 병렬 엔진 구조의 개념도로 패킷을 복사하는 대신 메모리풀(20) 내 메모리 블록이라는 고정 크기의 버퍼에 패킷 정보를 보관하고 큐(41~43)에 메모리 블록 주소를 전달하여 데이터를 참조하여 사용한다.
각 엔진별로 요구되는 패킷 입력 버퍼가 없으므로 메모리 공간 할당을 1/n 수준으로 절약하였으며 여러 큐(41~43)가 동시에 메모리 블록 참조가 가능하기 때문에 데이터 복사에 걸리는 시간을 단축할 수 있는 것이다.
[도 3]은 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템을 적용한 직렬 엔진 구조의 개념도로 제1엔진(51)에서 제1메모리풀(21)을 사용하여 분석 후 뒷단의 제2엔진(52)에 메모리 블록 주소를 전달한다. 뒷단의 제2엔진(52)은 별도의 제2메모리풀(22)을 가지고 있으며 앞단에서 메모리 블록 주소가 넘어올 경우 다른 큐의 메모리 블록 참조 여부를 확인 후 해당 메모리 블록에 대한 소유 권한을 획득한다. 권한을 획득 후 내부 메모리 블록과 전달 받은 메모리 블록을 교환함으로써 패킷 전달 과정의 부하를 줄이고 장비의 분석 성능을 향상시킬 수 있는 것이다.
이상에서 설명한 바와 같이, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템을 적용 시, 메모리풀을 이용하여 패킷을 전달함으로써, 패킷 복사 절차에 따른 연산 시간 및 메모리 공간의 증가 문제를 해소할 수 있을 뿐만 아니라 데이터 전달의 효율성을 크게 증대시킬 수 있는 효과를 누릴 수 있는 것이다.
[도 4]는 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 시스템에 있어서, 패킷 전달 방법의 상세 흐름을 나타내는 도면으로 그 내용을 설명하면 다음과 같다.
먼저, 상기 NIC(10)에 입력되는 패킷을 읽어 메모리풀에 내부 메모리 블록에 저장하는 단계(S10)를 수행하고, 이때, 상기 메모리 할당 관리부(30)은 메모리 블록에 주소를 할당하게 된다.
다음으로, 상기 메모리 할당 관리부(30)에 상기 큐(40)의 메모리 블록 주소(MBP)에 대한 요청이 발생하면, 상기 메모리풀(20)을 조회하여, 상기 큐에 메모리 블록 주소를 전달하는 단계(S20)를 수행한다.
상기 S20 단계를 상세하게 설명하면 상기 큐(40)의 메모리 블록 주소(MBP)에 대한 요청인지 여부를 확인하는 단계(S21)를 수행하고, 상기 메모리풀(20)을 조회하여, 요청에 응답할 메모리 블록을 선택하는 단계(S22)를 수행하고, 선택된 상기 메모리 블록을 사용할 상기 큐(40)의 정보를 메모리 블록 정보에 업데이트 하는 단계(S23)를 수행하고, 상기 큐(40)에 메모리 블록 주소를 전달하는 단계(S24)를 수행한다.
또한, 상기 S24 단계를 통해 메모리 블록 주소를 전달받은 상기 큐(40)는 순차적으로 메모리 블록 주소를 저장하는 단계(S30)를 수행한다.
또한, 상기 큐(40)에 엔진(50)의 메모리 블록 주소에 대한 요청이 발생하면 큐 내부를 조회하여, 조회된 메모리 블록 주소를 상기 엔진에 전달하는 단계(S30)를 수행한다.
상기 S30 단계를 상세하게 설명하면 상기 엔진(50)에서 큐(40)에 메모리 블록 주소를 요청 시, 상기 큐(40)를 조회하는 단계(S31)를 수행하고, 상기 큐(40)에 메모리 블록 주소가 존재하는지 여부를 확인하여, 내부에 메모리 블록 주소가 존재하는 경우, 해당 메모리 블록 주소를 상기 엔진(50)에 전달하는 단계(S32)를 수행하고, 내부에 메모리 블록 주소가 존재하지 않는 경우에는 상기 메모리 할당 관리부에 메모리 블록 주소를 요청하는 단계(S33)를 수행한다.
또한, 상기 엔진(50)을 이용하여, 상기 S33 단계에서 전달된 상기 메모리 블록 주소에 해당하는 패킷 정보를 참조하여, 사전에 정의된 패킷 분석 작업을 수행하는 단계(S40)를 수행한다.
상기 S40 단계 이후에 메모리 블록 주소의 사용이 종료되고, 다음 엔진이 존재하는지 여부를 확인하여, 다음 엔진이 존재하는 경우, 다음 엔진의 메모리 할당 관리부에 상기 메모리 블록 주소를 전달하는 단계(S41)를 수행하고, 다음 엔진이 존재하지 않는 경우, 상기 큐(40)에 사용한 메모리 블록 주소의 해제 명령을 전송하는 단계(S42)를 수행하고, 상기 큐(40)에 새로운 메모리 블록 주소를 요청하는 단계(S43)를 수행한다.
상기 S42 단계 이후에 상기 큐(40)는 메모리 블록 주소의 해제 명령인지 여부를 확인(S50)하여, 메모리 블록 주소의 해제 명령으로 확인되면 상기 메모리 할당 관리부(30)에 사용한 메모리 블록 주소의 해제 명령을 전달하는 단계(S51)를 수행한다.
상기 S51 단계 이후에 상기 메모리 할당 관리부(30)는 상기 큐에서 전달된 명령이 메모리 블록 주소의 해제 명령인지 확인하는 단계(S61)를 수행하고, 해제 명령된 상기 메모리 블록 주소에 대해 다른 큐에서 사용 중인지 여부를 판단하는 단계(S62)를 수행하고, 다른 큐에서 사용하는 경우, 상기 메모리 블록 정보를 업데이트 하는 단계(S63)를 수행하고, 다른 큐에서 사용하지 않는 경우, 메모리 블록을 초기화하는 단계(S64)를 수행한다.
또한, 상기 엔진(50)에서 뒷단의 상기 메모리 할당 관리부(30)에 메모리 블록 주소를 전달(S70)하는 경우, 메모리 블록 정보를 검사하여, 다른 큐(40)의 사용이 여부를 확인(S71)하고, 사용하는 큐가 없는 경우 현재 메모리 할당 관리부의 메모리 블록 주소와 앞단 엔진에서 전달 받은 메모리 블록 주소를 교환하는 단계(S72)를 수행하고, 앞단의 메모리 할당 관리부에게 교환 명령과 현재 메모리 할당 관리부의 메모리 블록 주소를 전달하는 단계(S72)를 수행한다.
또한, 앞단의 메모리 할당 관리부는 뒷단의 메모리 할당 관리부로부터 메모리 블록 주소의 교환 명령을 받으면(S80) 메모리 블록 정보를 확인하여, 다른 큐의 사용여부를 확인하는 단계(S81)를 수행하고, 사용하는 큐가 없는 경우, 뒷단의 메모리 블록 주소와 현재의 메모리 블록 주소를 교환하는 단계(S82)를 수행한다.
이상에서 설명한 바와 같이, 본 발명에 따른 고성능 네트워크 장비의 패킷 전달 방법을 적용 시, NIC에 전달된 패킷을 메모리풀에 저장하여, 메모리 블록 주소를 통해 패킷 정보를 참조하고, 다단계의 엔진 구조일 경우, 메모리 블록 주소를 교환할 수 있는 방법을 제공함으로써, 엔진 구조의 복잡도를 낮추고 전체적인 패킷 전달 성능을 향상시킬 수 있는 효과를 누릴 수 있다.
이상 본 발명의 실시예로 설명하였으나 본 발명의 기술적 사상이 상기 실시예로 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범주에서 다양한 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법으로 구현할 수 있다.
10 : NIC
11 : 패킷입력부
20 : 메모리풀
21, 22 : 제1메모리풀, 제2메모리풀
30 : 메모리 할당 관리부
31, 32 : 제1메모리 할당 관리부, 제2메모리 할당 관리부
40 : 큐
41 ~ 44 : 제1큐 내지 제4큐
45 : 종래 BSQ 방식의 큐
46 : 종래 입력큐
47 : 종래 출력큐
50 : 엔진
51 ~ 54 : 제1엔진 내지 제4엔진

Claims (12)

  1. 내부에 적어도 하나 이상의 메모리 블록을 포함하여, NIC로 입력된 패킷 정보를 보관하는 메모리풀;
    상기 메모리 블록의 할당 및 해제를 제어하고, 큐 또는 엔진의 요청에 따라 메모리 블록의 정보를 업데이트하고, 메모리 블록 주소를 전달하는 메모리 할당 관리부;
    상기 메모리 할당 관리부에 메모리 블록을 요청하여, 수신된 메모리 블록 주소를 외부에 전달하는 큐 및
    상기 큐에서 상기 메모리 블록 주소를 수신하여, 패킷 정보를 참조하여, 사전에 정의된 분석 작업을 실시하는 엔진을 포함하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 시스템.
  2. 제1항에 있어서,
    상기 엔진이 복수 개로 구성되되, 병렬 구조일 경우, 상기 메모리풀의 상기 메모리 블록 주소를 공유하여, 참조하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 시스템.
  3. 제1항에 있어서,
    상기 엔진이 복수 개로 구성되되, 직렬 구조일 경우, 뒷단의 엔진도 별도의 메모리풀을 포함하며, 앞단의 엔진으로부터 상기 메모리 블록 주소가 전달되면 뒷단의 특정한 내부 메모리 블록 주소와 전달되는 메모리 블록 주소를 교환하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 시스템.
  4. 제3항에 있어서,
    상기 메모리 할당 관리부는,
    상기 메모리 블록 주소의 교환 시, 앞단 엔진에서 전달되는 메모리 블록 주소를 참조하는 타 엔진이 있는지 여부를 확인 후, 해당 메모리 블록 주소를 참조하는 엔진이 없을 경우, 뒷단의 메모리풀에 상기 메모리 블록의 소유 권한을 부여하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 시스템.
  5. (a) NIC에 입력되는 패킷을 읽어 메모리풀에 내부 메모리 블록에 저장하는 단계;
    (b) 메모리 할당 관리부에 큐의 메모리 블록 주소(MBP)에 대한 요청이 발생하면, 상기 메모리풀을 조회하여, 상기 큐에 메모리 블록 주소를 전달하는 단계;
    (c) 상기 큐에 엔진의 메모리 블록 주소에 대한 요청이 발생하면 큐 내부를 조회하여, 조회된 메모리 블록 주소를 상기 엔진에 전달하는 단계 및
    (d) 상기 엔진을 이용하여, 상기 (c) 단계에서 전달된 상기 메모리 블록 주소에 해당하는 패킷 정보를 참조하여, 사전에 정의된 패킷 분석 작업을 수행하는 단계를 포함하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
  6. 제1항에 있어서,
    상기 (b) 단계는,
    (b-1) 상기 메모리풀을 조회하여, 요청에 응답할 메모리 블록을 선택하는 단계;
    (b-2) 선택된 상기 메모리 블록을 사용할 상기 큐의 정보를 메모리 블록 정보에 업데이트 하는 단계;
    (b-3) 상기 큐에 메모리 블록 주소를 전달하는 단계 및
    (b-4) 전달된 메모리 블록 주소를 순차적으로 저장하는 단계를 포함하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
  7. 제5항에 있어서,
    상기 (c) 단계는,
    (c-1) 큐 내부를 조회 시, 메모리 블록 주소가 존재하지 않는 경우, 상기 (b) 단계로 돌아가 재수행하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
  8. 제5항에 있어서,
    상기 (d) 단계 이후에,
    (d-1) 메모리 블록 주소의 사용이 종료되고, 다음 엔진이 존재하는지 여부를 확인하여, 다음 엔진이 존재하는 경우, 다음 엔진의 메모리 할당 관리부에 상기 메모리 블록 주소를 전달하는 단계를 수행하고,
    (d-2) 상기 (d-1) 단계에서 다음 엔진이 존재하지 않는 경우, 상기 큐에 사용한 메모리 블록 주소의 해제 명령을 전송하는 단계 및
    (d-3) 상기 큐에 새로운 메모리 블록 주소를 요청하는 단계를 더 포함하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
  9. 제8항에 있어서,
    상기 (d-2) 단계 이후에
    (d-4) 큐를 이용하여, 상기 메모리 할당 관리부에 사용한 메모리 블록 주소의 해제 명령을 전달하는 단계를 더 포함하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
  10. 제9항에 있어서,
    상기 (d-3) 단계 이후에,
    (e-1) 메모리 할당 관리부에서 상기 큐에서 해제 명령된 메모리 블록 주소에 대해 다른 큐에서 사용 중인지 여부를 판단하는 단계를 수행하고,
    (e-2) 상기 (e-1) 단계에서 다른 큐에서 사용하는 경우, 상기 메모리 블록 정보를 업데이트 하는 단계를 수행하고,
    (e-3) 상기 (e-1) 단계에서 다른 큐에서 사용하지 않는 경우, 메모리 블록을 초기화하는 단계를 더 포함하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
  11. 제8항에 있어서,
    상기 (d-1) 단계 이후에,
    (f-1) 메모리 블록 정보를 검사하여, 다른 큐의 사용 여부를 확인하는 단계를 수행하고,
    (f-2) 상기 (f-1) 단계에서, 사용하는 큐가 없는 경우, 현재 메모리 할당 관리부의 메모리 블록 주소와 앞단 엔진에서 전달 받은 메모리 블록 주소를 교환하는 단계 및
    (f-3) 앞단의 메모리 할당 관리부에게 교환 명령과 현재 메모리 할당 관리부의 메모리 블록 주소를 전달하는 단계를 더 포함하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
  12. 제11항에 있어서,
    상기 (f-3) 단계 이후에,
    (g-1) 교환 명령된 메모리 블록 주소에 대해 다른 큐가 사용 중인지 여부를 확인하는 단계를 수행하고,
    (g-2) 사용하는 큐가 없는 경우, 뒷단의 메모리 블록 주소와 현재의 메모리 블록 주소를 교환하는 단계 더 수행하는 것을 특징으로 하는 고성능 네트워크 장비의 패킷 전달 방법.
KR1020130140916A 2013-11-19 2013-11-19 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법 KR101541349B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130140916A KR101541349B1 (ko) 2013-11-19 2013-11-19 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법
US14/547,157 US20150169454A1 (en) 2013-11-19 2014-11-19 Packet transfer system and method for high-performance network equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130140916A KR101541349B1 (ko) 2013-11-19 2013-11-19 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법

Publications (2)

Publication Number Publication Date
KR20150057498A true KR20150057498A (ko) 2015-05-28
KR101541349B1 KR101541349B1 (ko) 2015-08-05

Family

ID=53368601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130140916A KR101541349B1 (ko) 2013-11-19 2013-11-19 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법

Country Status (2)

Country Link
US (1) US20150169454A1 (ko)
KR (1) KR101541349B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297732A (zh) * 2019-06-14 2019-10-01 杭州迪普科技股份有限公司 一种fpga状态的检测方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153618A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 一种内存分配的处理方法及装置
WO2018022083A1 (en) * 2016-07-29 2018-02-01 Hewlett Packard Enterprise Development Lp Deliver an ingress packet to a queue at a gateway device

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6364144A (ja) * 1986-09-04 1988-03-22 Hitachi Ltd 記憶装置間デ−タ転送方式
US4958341A (en) * 1988-03-31 1990-09-18 At&T Bell Laboratories Integrated packetized voice and data switching system
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
US6856619B1 (en) * 2000-03-07 2005-02-15 Sun Microsystems, Inc. Computer network controller
US7222150B1 (en) * 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
US7002980B1 (en) 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
US20040010612A1 (en) * 2002-06-11 2004-01-15 Pandya Ashish A. High performance IP processor using RDMA
ATE435452T1 (de) * 2003-07-10 2009-07-15 Computer Ass Think Inc System und verfahren zum puffern von daten variabler länge
US20050041631A1 (en) * 2003-08-20 2005-02-24 Naveen Aerrabotu Apparatus and method for primary link packet control
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US7457861B1 (en) * 2003-12-05 2008-11-25 Unisys Corporation Optimizing virtual interface architecture (VIA) on multiprocessor servers and physically independent consolidated NICs
US7787476B2 (en) * 2004-03-03 2010-08-31 Mitsubishi Electric Corporation Layer 2 switch network system
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US20060064508A1 (en) * 2004-09-17 2006-03-23 Ramesh Panwar Method and system to store and retrieve message packet data in a communications network
US20060072563A1 (en) * 2004-10-05 2006-04-06 Regnier Greg J Packet processing
US8392565B2 (en) 2006-07-20 2013-03-05 Oracle America, Inc. Network memory pools for packet destinations and virtual machines
US8638790B2 (en) * 2008-06-23 2014-01-28 Qualcomm Incorporated Method and apparatus for managing data services in a multi-processor computing environment
US7895466B2 (en) * 2008-09-02 2011-02-22 Telefonaktiebolaget L M Ericsson (Publ) DMA assisted data backup and restore
US9015430B2 (en) * 2010-03-02 2015-04-21 Symantec Corporation Copy on write storage conservation systems and methods
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
WO2012109679A2 (en) * 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for application direct virtual memory management
US9094864B2 (en) * 2011-03-02 2015-07-28 Qualcomm Incorporated Architecture for WLAN offload in a wireless device
US9338726B2 (en) * 2012-10-15 2016-05-10 Qualcomm Incorporated Cooperative data mules

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297732A (zh) * 2019-06-14 2019-10-01 杭州迪普科技股份有限公司 一种fpga状态的检测方法及装置
CN110297732B (zh) * 2019-06-14 2024-01-23 杭州迪普科技股份有限公司 一种fpga状态的检测方法及装置

Also Published As

Publication number Publication date
KR101541349B1 (ko) 2015-08-05
US20150169454A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
JP6335363B2 (ja) 仮想クラウドインフラストラクチャへの仮想セキュリティ装置アーキテクチャの提供
CN108667730B (zh) 基于负载均衡的报文转发方法、装置、存储介质和设备
US9535871B2 (en) Dynamic routing through virtual appliances
US10469596B2 (en) Method and apparatus for dynamic destination address control in a computer network
US9454392B2 (en) Routing data packets between virtual machines using shared memory without copying the data packet
EP3913893A1 (en) Method and apparatus for processing data message
US20140146705A1 (en) Managing a dynamically configurable routing scheme for virtual appliances
US11689631B2 (en) Transparent network service migration across service devices
US8887280B1 (en) Distributed denial-of-service defense mechanism
US20130174218A1 (en) Security policy enforcement system and security policy enforcement method
US10181031B2 (en) Control device, control system, control method, and control program
CN105490995A (zh) 一种在nvo3网络中nve转发报文的方法和设备
KR101200906B1 (ko) 네트워크 기반 고성능 유해사이트 차단 시스템 및 방법
KR101541349B1 (ko) 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
US9426091B2 (en) Distributed switch with conversational learning
Yamanaka et al. A technique for full flow virtualization of multi-tenant OpenFlow networks
US11991142B1 (en) Providing cloud-aware security for an application level network device
CN117714115A (zh) 一种攻击防护方法、装置、服务器及存储介质
JP6069236B2 (ja) アプリケーション識別システムの転送削減方法、アプリケーション識別装置およびアプリケーション識別プログラム

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

Payment date: 20180730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 5