KR101854377B1 - 고속 패킷 처리 시스템 및 그 제어방법 - Google Patents

고속 패킷 처리 시스템 및 그 제어방법 Download PDF

Info

Publication number
KR101854377B1
KR101854377B1 KR1020160149422A KR20160149422A KR101854377B1 KR 101854377 B1 KR101854377 B1 KR 101854377B1 KR 1020160149422 A KR1020160149422 A KR 1020160149422A KR 20160149422 A KR20160149422 A KR 20160149422A KR 101854377 B1 KR101854377 B1 KR 101854377B1
Authority
KR
South Korea
Prior art keywords
packet
data buffer
hashing
packet processing
hashing index
Prior art date
Application number
KR1020160149422A
Other languages
English (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 KR1020160149422A priority Critical patent/KR101854377B1/ko
Priority to US15/595,150 priority patent/US10187330B2/en
Application granted granted Critical
Publication of KR101854377B1 publication Critical patent/KR101854377B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • 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
    • 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/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Abstract

본 발명에 따른 고속 패킷 처리 시스템은 패킷을 수신 또는 송신하는 네트워크 인터페이스 카드장치 드라이버, 운영 체제 영역 상에 배치되며, 상기 패킷이 저장될 수 있도록 상기 패킷에 대응하여, 미리 할당된(Pre-allocated) 적어도 하나 이상의 데이터 버퍼와 상기 데이터 버퍼와 분리되어 있으며, 상기 패킷에 대응하여, 순차적으로 상기 데이터 버퍼와 연결되는 단일 전용헤드(dedicated skb)를 포함하는 메모리 및 상기 패킷이 수신되는 경우, 상기 단일 전용헤드를 상기 데이터 버퍼에 순차적으로 연결시키며, 상기 패킷에 대응되는 수신(Rx) 디스크립터에 기초하여, 상기 수신(Rx) 디스크립터에 대응하는 상기 데이터 버퍼에 상기 패킷을 순차적으로 저장하는 패킷 처리부를 포함한다.

Description

고속 패킷 처리 시스템 및 그 제어방법{Express packet processing system and the controlling method thereof}
본 발명은 고속 패킷 처리 시스템 및 그 제어방법에 관한 것이다.
기존 운영 체제에서의 패킷 처리는 수신되는 패킷마다 메모리를 할당 또는 해제해야 하고, 각 패킷들이 순차적으로 처리되기 때문에 하나의 패킷을 처리하는데 많은 중앙처리장치(central processing unit, CPU)와 메모리 자원 및 시간이 필요하다. 또한, 패킷 전송에 불필요한 작업들을 거쳐야 하기 때문에, 빠른 속도, 예컨대 10Gbps의 네트워크에 적용될 경우, 급격하게 성능이 저하되는 문제가 있었다.
이와 같이, 기존 운영 체제의 낮은 패킷 처리 성능을 개선하기 위한 기법들이 제시되었지만, 고속으로 패킷 처리가 가능한 대신에 상당한 중앙처리장치(CPU), 메모리 자원이 필요하다는 단점이 있었다.
대한민국 공개특허 제2007-0023408호
본 발명은 운영 체제 영역 상에서, 패킷이 저장될 수 있도록 상기 패킷에 대응하여, 미리 할당된(Pre-allocated) 적어도 하나 이상의 데이터 버퍼와 상기 데이터 버퍼와 분리되어 있으며 상기 패킷에 대응하여 순차적으로 상기 데이터 버퍼와 연결되는 단일 전용헤드(dedicated skb)를 통해 상기 패킷 처리의 효율성을 높일 수 있는 고속 패킷 처리 시스템 및 그 제어방법에 관한 것이다.
고속 패킷 처리 시스템은 패킷을 수신 또는 송신하는 네트워크 인터페이스 카드(network interface card, NIC), 운영 체제 영역 상에 배치되며 상기 패킷이 저장될 수 있도록 상기 패킷에 대응하여 미리 할당된(Pre-allocated) 적어도 하나 이상의 데이터 버퍼와 상기 데이터 버퍼와 분리되어 있으며 상기 패킷에 대응하여 순차적으로 상기 데이터 버퍼와 연결되는 단일 전용헤드(dedicated skb)를 포함하는 메모리 및 상기 패킷이 수신되는 경우, 상기 단일 전용헤드를 상기 데이터 버퍼에 순차적으로 연결시키며, 상기 패킷에 대응되는 수신(Rx) 디스크립터에 기초하여, 상기 수신(Rx) 디스크립터에 대응하는 상기 데이터 버퍼에 상기 패킷을 순차적으로 저장하는 패킷 처리부를 포함한다.
고속 패킷 처리 시스템의 제어방법은 네트워크 인터페이스 카드를 통해, 패킷이 수신되는 제 1 단계 및 패킷 처리부를 통해, 운영 체제 영역 상에서, 상기 패킷에 대응하여, 메모리를 구성하는 미리 할당된(Pre-allocated) 적어도 하나 이상의 데이터 버퍼에 상기 패킷을 순차적으로 저장하는 제 2 단계를 포함한다.
본 발명에 따른 고속 패킷 처리 시스템은, 기존의 운영 체제에서의 패킷이 수신될 때마다 메모리를 할당 또는 해제해야 하고 하나의 패킷이 처리될 때까지 다음 패킷들이 기다려야 하기 때문에 연속적으로 많은 양의 패킷들이 수신될 때, 이를 한 번에 처리하기 어려운 문제를 개선하기 위해 고정 메모리를 활용하여 수신되는 패킷들을 처리하고, 고정 메모리를 다수 활용하여 한꺼번에 여러 개의 패킷이 처리 가능하도록 함으로써, 패킷 처리의 효율성을 극대화 하였다.
또한, 고속 패킷 처리를 위한 기존의 기법들은 폴링방식을 사용하고, 빠른 패킷처리를 이해 대용량의 메모리를 필요로 하는 단점이 있었는바, 본 발명에 따른 고속 패킷 처리 시스템은 하나의 메모리를 고정적으로 패킷 처리에 사용하여 처리되는 패킷의 수가 늘어나더라도 필요한 메모리는 늘어나지 않으며, 폴링방식이 아닌 기존 운영체제에서의 NAPI(a new API) 방식을 활용하여, 패킷이 수신될 때에만 중앙처리장치를 사용하여, 패킷 처리에 필요한 메모리를 최소화하고, 필요한 중앙처리장치시간을 단축하여, 패킷 처리를 위한 자원사용을 효과적으로 감소시킬 수 있다.
도 1은 본 발명의 일 실시 예에 따른 고속 패킷 처리 시스템의 기능을 개략적으로 나타낸 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 고속 패킷 처리 시스템의 메모리 할당방식을 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 고속패킷 전달경로를 나타낸 도면이다.
도 4는 본 발명의 일 실시 예에 따른 패킷정보관리를 나타낸 도면이다.
본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시 예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, "일면", "타면", "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다.
본 발명을 설명함에 있어서, 본 발명의 요지를 불필요하게 흐릴 수 있는 관련된 공지 기술에 대한 상세한 설명은 생략하며, 실시 예가 다른 경우에도 동일 번호는 동일한 부품 또는 소재를 나타낸다.
이하, 도면을 참조하여, 본 발명인 고속 패킷 처리 시스템에 대해 보다 상세히 설명할 것이며, 패킷(Packet)은 정보기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록으로 패킷을 지원하지 않는 컴퓨터 통신연결은 단순히 바이트, 문자열, 비트를 독립적으로 연속하여 데이터를 전송한다. 데이터가 패킷으로 형식이 바뀔 때, 네트워크는 장문메시지를 더 효과적이고 신뢰성 있게 보낼 수 있다. 디스크립터(descriptor)는 패킷의 저장장치 주소, 길이, 상태필드를 저장하는 자료구조이다.
도 1은 본 발명의 일 실시 예에 따른 고속 패킷 처리 시스템의 기능을 개략적으로 나타낸 블록도이며, 도 2는 본 발명의 일 실시 예에 따른 고속 패킷 처리 시스템의 메모리 할당방식을 나타낸 도면이다. 도 3은 본 발명의 일 실시 예에 따른 고속 패킷 전달경로를 나타낸 도면이며, 도 4는 본 발명의 일 실시 예에 따른 패킷정보관리를 나타낸 도면이다.
도 1에 도시된 바와 같이, 본 발명인 고속 패킷 처리 시스템은 네트워크 인터페이스 카드(network interface card, NIC) 또는 상기 네트워크 인터페이스 카드의 장치 드라이버(120)(이하, NIC 장치 드라이버라 함), 패킷이 송신 또는 수신되는 메모리(110) 및 메모리(110)에 상기 패킷을 저장하는 패킷 처리부(100)를 포함한다. 여기서, 상기 고속 패킷 처리 시스템이 장치 드라이버(120)를 포함한다는 것은 장치 드라이버(120)의 동작을 수행하는 구성(장치 드라이버 모듈 등으로 명칭될 수 있음)을 포함함을 의미할 수도 있다.
상기 네트워크 인터페이스 카드(NIC)는 컴퓨터, 네트워크 내에서 컴퓨터끼리 통신하는데 쓰이는 하드웨어의 하나로, 대한민국에서는 랜카드라고 흔히 말하며, OSI 계층 1(물리계층)과 계층 2(데이타 링크 계층) 장치를 가지는데, 맥(MAC) 주소를 사용하여, 낮은 수준의 주소할당 시스템을 제공하고, 네트워크 매개체로 물리적인 접근을 가능하게 한다.
사용자들이 케이블을 연결하거나 무선으로 연결하여 네트워크에 접속할 수 있으며, 네트워크 인터페이스 카드의 장치 드라이버(120)에는 패킷을 수신하는 수신(Rx) 드라이버(미도시)와 유저영역의 애플리케이션(130)에서 처리가 끝난 상기 패킷을 송신하는 송신(Tx) 드라이버(미도시)를 포함할 수 있다. 그러나, 본 발명에서는 패킷 처리 동작이 어플리케이션(130)이 아닌 운영체제 영역에서 수행되도록 하여 패킷 처리 동작이 보다 빠르게 수행될 수 있다. 여기서, 운영체제 영역은 커널 영역과 동일하거나 유사한 의미로 사용될 수 있다.
메모리(110)는 운영 체제 영역 상에 배치되며, 상기 패킷이 저장될 수 있도록 상기 패킷에 대응하여 미리 할당된(Pre-allocated) 적어도 하나 이상의 데이터 버퍼(111~113)와 데이터 버퍼(111~113)와 분리(decoupled)되어 있으며 상기 패킷에 대응하여 순차적으로 상기 데이터 버퍼(111~113)와 연결되는 단일 전용헤드(dedicated skb)(115)를 포함한다. 여기에서, 'skb'는 운영체제에서 사용되는 패킷의 자료구조로서, 패킷의 정보를 저장하고 있는 데이터 버퍼(111~113)와 분리된다. 또한, 메모리(110)가 운영 체제 영역 상에 배치된다는 것은 운영 체제 또는 커널이 메모리(110)에 접근할 수 있도록 구현됨을 의미할 수 있다.
메모리(110)는 각각의 데이터 버퍼(111~113)와 대응되며, 데이터 버퍼(111~113)의 가상주소(Virtual address)와 기할당된 DMA 주소(Dynamic memory allocation address)를 수용할 수 있는 적어도 하나 이상의 데이터 버퍼 디스크립터(114a)로 구성되는 데이타 버퍼큐(114)를 더 포함한다.
여기에서, 데이터 버퍼 디스크립터(114a)는 데이터 버퍼(111~113) 각각의 가상주소와 DMA 주소를 수용할 수 있으며, 원형 큐의 형태로 구성된 데이터 버퍼큐(114)에 삽입된다.
패킷 처리부(100)는 상기 패킷이 수신되는 경우, 단일 전용헤드(dedicated skb)를 데이터 버퍼(111~113)에 순차적으로 연결시키며(또는 매핑시키며), 상기 패킷에 대응되는 수신(Rx) 디스크립터(121a~121c)에 기초하여, 수신(Rx) 디스크립터(121a~121c)에 대응하는 데이터 버퍼(111~113)에 상기 패킷을 순차적으로 저장한다. 여기에서, 데이터 버퍼(111~113)에는 실제 패킷이 저장된 DMA 주소가 저장되어 있고, 패킷의 처리가 완료되면 패킷 처리부(100)는 데이터 버퍼(111~113)와 해당하는 DMA 주소와의 매핑을 해지(또는 해제)한다.
즉, 도 2에 도시된 바와 같이, 패킷을 수신할 때마다 메모리(110)를 할당하는 기존의 방식과는 달리 미리 패킷을 저장할 데이터 버퍼(111~113))를 할당해 놓은 후, 미리 할당해 놓은 데이터 버퍼(111~113)에 패킷정보를 저장한다. 중장처리장치(CPU)의 코어별로 지정된 데이터 버퍼큐(114)를 가지며, 하나의 전용헤드(115)가 여러 데이터 버퍼(111~113)를 순차적으로 가리키는 방식으로 수신되는 패킷을 처리한다(고속 메모리 할당).
패킷 처리부(100)는 패킷이 수신된 경우, 단일 헤드(115)에 상기 패킷이 저장될 데이터 버퍼(111~113)의 가상주소를 할당함으로써, 단일 헤드(115)를 제 1 데이터 버퍼(111), 제 2 데이터 버퍼(112) 및 제 3 데이터 버퍼(113)에 순차적으로 연결할 수 있다.
그리고, 패킷 처리부(100)는 수신(Rx) 드라이버의 기능콜(function call)에 의해, 상기 패킷들에 대해, 체크섬 계산(ip_checksum), 방화벽 필터링(firewall_pre_routing), 목적지 주소 확인(ip_route_lookup), TTL(Time to live) 감소(decrease_TTL), 방화벽 전달정책 확인(firewall_forward) 및 송신인터페이스 확인(neighbor_lookup) 프로세스를 순차적으로 수행할 수 있다(고속 패킷 전달 경로).
즉, 도 3에 도시된 바와 같이, 패킷 처리부(100)는 패킷 처리 표준인 RFC 1812에 입각하여, 상기 패킷의 체크섬(checksum)을 계산하는 단계(S120), 방화벽(firewall)을 필터링 하는 단계(S130), 상기 패킷의 목적지 주소를 확인하는 단계(S140), TTL(Time to live)을 감소하는 단계(S150), 방화벽(firewall) 전달 정책을 확인하는 단계(S160) 및 송신(Tx) 인터페이스를 확인하는 단계(S180)를 수행할 수 있다. 상술된 단계들은 함수 포인터의 형태로 구현될 수 있는바, 추가적인 작업이 필요한 경우에는 이를 함수 형태로 추가 또는 제거가 용이하다.
또한, 상기 단계들은 성능 저하를 발생시키지 않도록 효율적으로 수행되어야 하는데, 멀티코어 환경에서 스핀락으로 인한 성능저하를 방지하기 위해 컨트롤러(102)(CPU) 코어마다 변수를 관리하며, 컨트롤러(102)(CPU) 코어가 서로 다른 변수를 캐시에 저장하고 있기 때문에, 멀티코어 환경에서 쉽게 발생할 수 있는 문제인 False sharing을 방지할 수 있다.
하지만, 방화벽(firewall)을 필터링 하는 단계(S130), 상기 패킷의 목적지 주소를 확인하는 단계(S140) 등은 여러 패킷들에 한꺼번에 적용될 수 있는 특징이 있다. 예를 들어, 동일한 목적지 주소를 가지는 패킷들이 연속적으로 수신될 때 패킷들마다 패킷의 목적지 주소를 확인하는 단계(S140)를 수행하는 것이 비효율적이다.
따라서, 도 4에 도시된 바와 같이, 패킷 처리부(100)는 패킷에 대한 5-튜플(Turple)정보의 해싱결과인 제 1 해싱 인덱스(Index)로 구성되는 해싱 테이블(103a)과 상기 제 1 해싱 인덱스(index)에 체인형식으로 링크되는 패킷 데이터(103b, 103c)를 포함하는 패킷정보관리 데이터 베이스(103)와 네트워크 인터페이스 카드(101)로부터 전송된 제 2 해싱 인덱스를 패킷정보관리 데이터 베이스(103)의 해싱 테이블(103a)의 제 1 해싱 인덱스와 비교하여, 상기 제 1 해싱 인덱스와 상기 제 2 해싱 인덱스가 동일한 경우 상기 제 1 해싱 인덱스에 링크된 패킷 데이터(103b, 103c)를 상기 패킷에 적용하는 컨트롤러(102)를 포함할 수 있다. 네트워크 인터페이스 카드(101)는 수신되는 각각의 패킷에 대한 5-튜플 정보를 해싱하여, 상기 각각의 패킷에 대응되는 제 2 해싱 인덱스를 산출하여 출력할 수 있다.
여기서, 패킷의 5-튜플 정보는 패킷의 출발지와 목적지 주소, 출발지와 목적지 포트번호 및 L4 프로토콜 식별자로 구성될 수 있으나, 네트워크 인터페이스 카드(101)에서 하드웨어적으로 5-튜플 정보의 해싱 값을 계산하여 반환하기 때문에 해싱을 위한 별도의 처리가 필요하지 않다. 패킷데이터(103b, 103c)에는 목적지 주소, 방화벽 필터링 결과 및 송신 인터페이스 등에 대한 정보를 포함할 수 있으나, 이에 한정되는 것은 아니다.
네트워크 인터페이스 카드(101)와 컨트롤러(102)는 상기에서 설명한 기능을 수행하기 위한 알고리즘을 포함할 수 있으며, 펌웨어, 소프트웨어 또는 하드웨어(예를 들면, 반도체칩 또는 응용집적회로(application-specific integrated circuit))에서 구현될 수 있다.
이상 본 발명을 구체적인 실시 예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명에 따른 고속 패킷 처리 시스템 및 그 제어방법은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당해 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함은 명백하다고 할 것이다.
본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속하는 것으로 본 발명의 구체적인 보호범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.
100 : 패킷 처리부
101 : 네트워크 인터페이스 카드
102 : 컨트롤러
110 : 메모리
120 : 네트워크 인터페이스 카드 장치 드라이버

Claims (9)

  1. 패킷을 수신 또는 송신하는 네트워크 인터페이스 카드;
    운영 체제에 의해 접근 가능하며, 상기 패킷이 저장될 수 있도록 상기 패킷에 대응하여 미리 할당된(Pre-allocated) 적어도 하나 이상의 데이터 버퍼와 상기 데이터 버퍼와 분리되어 있으며 상기 패킷에 대응하여 순차적으로 상기 데이터 버퍼와 연결되는 단일 전용헤드(dedicated skb)를 포함하는 메모리; 및
    상기 패킷이 수신되는 경우, 상기 단일 전용헤드를 상기 데이터 버퍼에 순차적으로 연결시키며, 상기 패킷에 대응되는 수신(Rx) 디스크립터(descriptor)에 기초하여 상기 수신(Rx) 디스크립터에 대응하는 상기 데이터 버퍼에 상기 패킷을 순차적으로 저장하는 패킷 처리부를 포함하고,
    상기 패킷 처리부는,
    수신(Rx) 드라이버의 기능콜(function call)에 의해, 상기 패킷들에 대해 체크섬 계산, 방화벽 필터링, 목적지 주소 확인, TTL(Time to live)감소, 방화벽 전달정책 확인 및 송신인터페이스 확인 프로세스를 순차적으로 수행하며,
    상기 패킷 처리부는
    패킷에 대한 5-튜플(Turple) 정보의 해싱결과인 제 1 해싱 인덱스(index)로 구성되는 해싱 테이블과 상기 제 1 해싱 인덱스에 체인형식으로 링크되는 패킷 데이터를 포함하는 패킷정보관리 데이터 베이스; 및
    상기 네트워크 인터페이스 카드로부터 전송된 제 2 해싱 인덱스를 상기 제 1 해싱 인덱스와 비교하여, 상기 제 1 해싱 인덱스와 상기 제 2 해싱 인덱스가 동일한 경우 상기 제 1 해싱 인덱스에 링크된 패킷 데이터를 상기 패킷에 적용하는 컨트롤러를 포함하고,
    상기 네트워크 인터페이스 카드는 각각의 패킷에 대한 5-튜플 정보를 해싱하여 상기 각각의 패킷에 대응되는 상기 제 2 해싱 인덱스를 산출하는,
    고속 패킷 처리 시스템.
  2. 청구항 1에 있어서,
    상기 메모리는,
    각각의 데이터 버퍼와 대응되며, 상기 데이터 버퍼의 가상주소와 기할당된 DMA(dynamic memory allocation) 주소를 수용할 수 있는 적어도 하나 이상의 데이터 버퍼 디스크립터로 구성되는 데이터 버퍼큐를 더 포함하는,
    고속 패킷 처리 시스템.
  3. 청구항 2에 있어서,
    상기 데이터 버퍼큐는,
    원형 큐의 형태로 구성되며, 상기 데이터 버퍼 디스크립터는 상기 원형 큐에 삽입되는,
    고속 패킷 처리 시스템.
  4. 삭제
  5. 삭제
  6. 네트워크 인터페이스 카드를 통해, 패킷이 수신되는 제 1 단계; 및
    패킷처리부를 통해, 운영 체제 영역 상에서 상기 패킷에 대응하여 메모리를 구성하는 미리 할당된(Pre-allocated) 적어도 하나 이상의 데이터 버퍼에 상기 패킷을 순차적으로 저장하는 제 2 단계를 포함하고,
    상기 제 2 단계는,
    상기 패킷이 수신되는 경우, 상기 패킷에 대응되는 상기 적어도 하나 이상의 데이터 버퍼에 단일 전용헤드를 순차적으로 연결하는 단계;
    상기 패킷에 대응되는 수신(Rx) 디스크립터에 기초하여, 상기 수신(Rx) 디스크립터에 대응하는 상기 데이터 버퍼에 상기 패킷을 순차적으로 저장하는 단계
    상기 패킷의 체크섬(checksum)을 계산하는 단계;
    방화벽(firewall)을 필터링 하는 단계;
    상기 패킷의 목적지 주소를 확인하는 단계;
    TTL(Time to live)을 감소하는 단계;
    방화벽(firewall) 전달 정책을 확인하는 단계; 및
    송신(Tx) 인터페이스를 확인하는 단계를 포함하며,
    상기 패킷의 목적지 주소를 확인하는 단계는,
    네트워크 인터페이스 카드를 통해, 각각의 패킷에 대한 5-튜플 정보를 해싱하여 상기 각각의 패킷에 대응되는 제 2 해싱 인덱스를 산출하는 단계; 및
    컨트롤러를 통해, 상기 네트워크 인터페이스 카드로부터 전송된 상기 제 2 해싱 인덱스를 패킷정보관리 데이터 베이스에 저장되어 있는 해싱 테이블의 제 1 해싱 인덱스와 비교하여, 상기 제 1 해싱 인덱스와 상기 제 2 해싱 인덱스가 동일한 경우 상기 제 1 해싱 인덱스에 링크된 패킷 데이터를 상기 패킷에 적용하는 단계를 포함하는,
    고속 패킷 처리 시스템의 제어방법.
  7. 삭제
  8. 삭제
  9. 삭제
KR1020160149422A 2016-11-10 2016-11-10 고속 패킷 처리 시스템 및 그 제어방법 KR101854377B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160149422A KR101854377B1 (ko) 2016-11-10 2016-11-10 고속 패킷 처리 시스템 및 그 제어방법
US15/595,150 US10187330B2 (en) 2016-11-10 2017-05-15 High-speed packet processing system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160149422A KR101854377B1 (ko) 2016-11-10 2016-11-10 고속 패킷 처리 시스템 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR101854377B1 true KR101854377B1 (ko) 2018-05-03

Family

ID=62064200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160149422A KR101854377B1 (ko) 2016-11-10 2016-11-10 고속 패킷 처리 시스템 및 그 제어방법

Country Status (2)

Country Link
US (1) US10187330B2 (ko)
KR (1) KR101854377B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009278364A (ja) * 2008-05-14 2009-11-26 Canon Inc パケット受信装置及びその処理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100518813B1 (ko) 2003-02-15 2005-10-05 삼성전자주식회사 패킷 메모리 관리 장치를 가지는 패킷 포워딩 시스템 및 그의 동작방법
TWI250751B (en) * 2004-10-01 2006-03-01 Realtek Semiconductor Corp Apparatus and method for IP allocation
US7957379B2 (en) 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
KR100917861B1 (ko) 2007-12-15 2009-09-18 한국전자통신연구원 데이터 고속 수신처리를 위한 매체 접근 제어 장치 및 그방법
US9143566B2 (en) * 2008-01-16 2015-09-22 Netapp, Inc. Non-disruptive storage caching using spliced cache appliances with packet inspection intelligence
US9407577B2 (en) * 2011-03-23 2016-08-02 Nec Corporation Communication control system, switch node and communication control method
KR101280910B1 (ko) 2011-12-15 2013-07-02 한국전자통신연구원 고속 패킷 처리를 위한 네트워크 프로세서 기반 2단계 침입탐지장치 및 방법
KR101328621B1 (ko) 2012-06-13 2013-11-21 주식회사 시큐아이 패킷 전달 방법 및 시스템
JP6070712B2 (ja) * 2012-10-01 2017-02-01 富士通株式会社 情報処理装置及び性能解析データの収集方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009278364A (ja) * 2008-05-14 2009-11-26 Canon Inc パケット受信装置及びその処理方法

Also Published As

Publication number Publication date
US20180131641A1 (en) 2018-05-10
US10187330B2 (en) 2019-01-22

Similar Documents

Publication Publication Date Title
US20220255884A1 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic)
US10868699B2 (en) Method for generating forwarding information, controller, and service forwarding entity
CN107113240B (zh) 可扩展虚拟局域网报文发送方法、计算机设备和可读介质
JP4150336B2 (ja) 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成
JP3734704B2 (ja) パケット分類エンジン
US6718393B1 (en) System and method for dynamic distribution of data traffic load through multiple channels
US9407550B2 (en) Method and system for controlling traffic over a computer network
JP3640299B2 (ja) ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ
JP4903815B2 (ja) 通信ネットワークを通じたトラフィック分配を向上させる方法およびシステム
US8634415B2 (en) Method and system for routing network traffic for a blade server
EP3573297B1 (en) Packet processing method and apparatus
US7801046B2 (en) Method and system for bandwidth control on a network interface card
US7660322B2 (en) Shared adapter
US10341264B2 (en) Technologies for scalable packet reception and transmission
CN115858160B (zh) 远程直接内存访问虚拟化资源分配方法及装置、存储介质
US20060176893A1 (en) Method of dynamic queue management for stable packet forwarding and network processor element therefor
US9584446B2 (en) Memory buffer management method and system having multiple receive ring buffers
US10601738B2 (en) Technologies for buffering received network packet data
US9401879B1 (en) Systems and methods for sending and receiving information via a network device
US8488489B2 (en) Scalable packet-switch
US9137158B2 (en) Communication apparatus and communication method
JP2008181387A (ja) I/oバスシステム及びその管理方法
KR101854377B1 (ko) 고속 패킷 처리 시스템 및 그 제어방법
US9985886B2 (en) Technologies for network packet pacing during segmentation operations
US20190273693A1 (en) Technologies for pacing network packet transmissions

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant