KR20060102077A - 네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법 - Google Patents

네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법 Download PDF

Info

Publication number
KR20060102077A
KR20060102077A KR1020050023827A KR20050023827A KR20060102077A KR 20060102077 A KR20060102077 A KR 20060102077A KR 1020050023827 A KR1020050023827 A KR 1020050023827A KR 20050023827 A KR20050023827 A KR 20050023827A KR 20060102077 A KR20060102077 A KR 20060102077A
Authority
KR
South Korea
Prior art keywords
packet
function
ipv6
received
amount
Prior art date
Application number
KR1020050023827A
Other languages
English (en)
Other versions
KR100636280B1 (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 KR1020050023827A priority Critical patent/KR100636280B1/ko
Priority to US11/385,825 priority patent/US20060251071A1/en
Publication of KR20060102077A publication Critical patent/KR20060102077A/ko
Application granted granted Critical
Publication of KR100636280B1 publication Critical patent/KR100636280B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B45/00Alarm locks
    • E05B45/06Electric alarm locks
    • E05B45/08Electric alarm locks with contact making inside the lock or in the striking plate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

본 발명은 네트워크 프로세서를 사용하여 IP 패킷을 처리하는 경우, 수신되는 패킷의 종류별 패킷량에 따라 네트워크 프로세서의 쓰레드의 기능을 동적으로 할당함으로써 네트워크 프로세서의 사용효율을 향상시키고 패킷 처리 속도를 증가시킬 수 있는 네트워크 프로세서를 사용한 IP 패킷 처리 장치 및 방법에 관한 것이다.
IPv6(Internet Protocol version 6) 멀티캐스트, 네트워크 프로세서(Network Processor), 쓰레드(thread)

Description

네트워크 프로세서를 사용한 IP 패킷 처리 장치 및 방법{APPARATUS AND METHOD FOR IP PACKET PROCESSING USING NETWORK PROCESSOR}
도 1은 일반적인 네트워크 프로세서를 포함하는 IP 패킷 처리 장치의 구성도.
도 2는 종래기술에 따른 네트워크 프로세서의 사용예를 보이는 도면.
도 3은 본 발명에 따른 네트워크 프로세서의 사용예를 보이는 도면.
도 4는 본 발명의 일 실시예에 따른 네트워크 프로세서에 대한 기능 할당 과정을 보이는 순서흐름도.
도 5는 본 발명의 다른 실시예에 따른 네트워크 프로세서에 대한 기능 할당 과정을 보이는 순서흐름도.
도 6은 할당된 기능에 따라 동작하는 네트워크 프로세서의 동작 과정을 보이는 순서흐름도.
본 발명은 네트워크 프로세서를 사용한 IP 패킷 처리 장치 및 방법에 관한 것으로, 특히 네트워크 프로세서의 이용효율을 향상시키고 패킷 처리 속도를 향상시킬 수 있는 IP 패킷 처리 장치 및 방법에 관한 것이다.
일반적으로 네트워크 장비(network device)들은 ASIC을 사용하여 개발되어 왔다. 그런데, ASIC(Application Specific Integrated Circuit) 스위치 칩을 사용하여 개발된 네트워크 장비들은, 경우에는 ASIC 스위치 칩에서 제공하는 기능들만을 사용할 수 있으며, 이 기능들을 사용하고자 할 때는 ASIC 스위치 칩에서 제공하는 레지스터(register) 값들의 설정을 통하여만 사용할 수 있었다. 따라서, 기존의 기능을 변경하거나 새로운 기능을 구현할 수 있는 여지가 없었던 것이다. 즉, 기존에 네트워크 구성을 위해 사용되던, 실리콘 칩을 기반으로 하는, 미리 개발된 ASIC 기반 네트워크 장비는, 새로운 기능이나 성능 향상이 사실상 불가능하고 패킷 처리 용량의 한계를 나타내고 있다. 그 결과 기존의 네트워크 장비는 음성과 데이터의 통합, 유무선 인터넷의 통합 등 새로운 형태의 서비스 출현으로 인해 데이터 전송량과 지원하는 서비스의 종류가 날로 증가하고 있는 현재의 네트워크에 사용하기에는 적합하지 않게 되었다.
이에 따라 차세대 실리콘 칩인 네트워크 프로세서를 기반으로 한 새로운 네트워크 장비가 출현하게 되었다. 네트워크 프로세서는 입력 사용자 인터페이스, 즉 입력포트에서 받은 패킷을 출력 사용자 인터페이스, 즉 출력포트로 보내기 전에 다양한 방법으로 패킷을 처리할 수 있는 프로그래머블 프로세서로서 ASIC 수준의 고성능 패킷 처리 용량을 제공하는 동시에 프로그램을 통해 네트워크 사용자의 다 양한 요구를 즉시 반영할 수 있는 장점을 가지는 특화된 패킷 처리 프로세서이다. 즉, 네트워크 프로세서는 라우터, 스위치 등의 네트워크 장비에서 포트간 트래픽 전송 및 지능형 스위칭 기능을 하는 프로그래밍 기능이 가능하여 다양한 멀티미디어 인터넷 트래픽 서비스를 제공해 줄 수 있는 비메모리 반도체로 차세대 네트워크 장비의 핵심 부품이라고 할 수 있다. 일반적으로 네트워크 프로세서는 복수의 마이크로 엔진을 포함하도록 구성될 수 있으며, 마이크로 엔진은 각각 복수의 쓰레드를 포함하도록 구성될 수 있다. 물론 하나의 쓰레드만을 포함하는 네트워크 프로세서를 사용할 수도 있지만 이는 효율적이지 못하므로 사용되지 않음이 일반적이다. 네트워크 프로세서의 일 예를 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 1은 일반적인 네트워크 프로세서를 포함하는 IP 패킷 처리 장치의 구성도이다.
도 1은, 각각 8개씩의 쓰레드를 가지는 8개의 마이크로 엔진(101 내지 108)을 포함하는 네트워크 프로세서를 도시하고 있다. 도 1에 도시된 네트워크 프로세서는 각각 4개씩의 마이크로 엔진(101 내지 104)(105 내지 108)을 가지는 2개의 마이크로 엔진 클러스터(100-1 및 100-2)를 포함하도록 구성되어 있다. 네트워크 프로세서의 쓰레드는 작업의 단위로, 하나의 쓰레드에 하나의 패킷이 할당되어 처리될 수 있다. 이와 같은 네트워크 프로세서를 사용한 패킷 처리를 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 2는 종래기술에 따른 네트워크 프로세서의 사용예를 보이는 도면이다.
도 2는 특히, IPv4 패킷 및 IPv6 패킷이 혼재하는 네트워크에서의 네트워크 프로세서 사용예를 보이고 있다. 도 2에 도시된 바와 같이, 네트워크 프로세서의 8개의 마이크로 엔진(101 내지 108)은, 패킷 수신부(Packet Rx)(101), 패킷 분류부(Ethernet Decap/classify)(102), IPv6 패킷 포워더(IPv6 Unicast/Multicast Forwarder)(103), IPv4 패킷 포워더(108), 멀티캐스트 패킷 복사부(Multicast Packet Copier)(106), 패킷 큐(Packet Queue Manager)(104), 패킷 스케쥴러(Packet Scheduler)(105), 패킷 송신부(Packet Tx and Ethernet Encap)(107)로 사용될 수 있다. 도 2에서는 네트워크 프로세서의 사용에 대한 이해를 돕기 위해 각각의 기능부들에 각각의 기능을 수행하기 위해 사용되는 마이크로 엔진(101 내지 108)의 참조번호를 부가하였음을 밝혀 둔다.
패킷 수신부(101)는 미디어 인터페이스를 통해 입력되는 패킷에 대해 프레임 재조립을 수행한다.
패킷 분류부(102)는 입력되는 패킷을 디캡슐레이션하고 각 패킷의 헤더를 참조하여 수신된 패킷을 종류 및 QoS에 따른 서비스 등급 등을 분류한다. 패킷 분류부(102)는 수신된 패킷이 IPv4 패킷인지, IPv6 패킷인지를 판단하고 그 판단 결과에 따라 해당 패킷을 IPv6 패킷 포워더(103) 또는 IPv4 패킷 포워더(108)에 출력한다. 한편, 패킷 분류부(102)는 수신된 패킷이 ARP(Address Resolution Protocol) 패킷인 경우, 해당 패킷을 인텔 Xscale 코어(110)에 출력한다. IPv6 패킷 포워더(103)는 유니캐스트 패킷에 대해서는 LPM(Longest Prefix Match)을 수행하여 패킷 큐(104)에 출력하고, 멀티캐스트 패킷에 대해서는 라우트 테이블을 검색하여 출력 인터페이스의 개수를 알아낸 후, 해당 개수만큼 패킷의 복사를 수행하기 위해 멀티 캐스트 패킷 복사부(106)에 출력한다. IPv4 패킷 포워더(108)는 L3 어드레싱을 기본으로 IPv4 패킷을 포워딩하여 패킷 큐(104)에 출력한다. 여기서 패킷 분류부(102), IPv6 패킷 포워더(103) 및 IPv4 패킷 포워더(108)를 패킷 포워더(200)라고 통칭할 수 있다.
패킷 큐(104) 및 패킷 스케쥴러(105)는 IPv6 패킷 포워더(103) 또는 IPv4 패킷 포워더(108)에서 포워딩된 패킷에 대한 버퍼링 및 스케쥴링을 수행하여 패킷 송신부(107)에 출력한다. 패킷 송신부(107)는 입력받은 패킷을 인캡슐레이션하고 해당 출력 인터페이스로 송신한다.
멀티캐스트 패킷 복사부(106)는 IPv6 멀티캐스트 패킷을 목적지의 수만큼 복사하는 기능을 수행한다. 멀티캐스트 패킷 복사부(106)는 IPv6 패킷 포워더(103)의 라우트 룩업 결과에 의해 해당 멀티캐스트 패킷이 둘 이상의 출력 인터페이스로 전송될 필요가 있다고 판단되는 경우에만 필요한 개수만큼 패킷을 복사한다. 멀티캐스트 패킷 복사부(106)에서 복사된 패킷들 역시 패킷 큐(104)를 거쳐 패킷 송신부(107)에서 인캡슐레이션되어 네트워크를 통해 송신된다.
네트워크 프로세서의 마이크로 엔진(101 내지 108) 또는 쓰레드들은 각각의 기능을 할당받고 할당받은 기능을 수행하였다.
그런데, 이와 같이 네트워크 프로세서의 각 마이크로 엔진들(101 내지 108)에 고정적으로 기능을 할당하여 IPv4 패킷 및 IPv6 패킷을 처리하는 경우 다음과 같은 문제점이 발생할 수 있다.
네트워크를 통해 전송되는 IPv4 패킷 또는 IPv6 패킷의 양은 수시로 변화할 수 있으며, IPv6 유니캐스트 패킷의 양 또는 IPv6 멀티캐스트 패킷의 양 또한 수시로 변화할 수 있다. 그런데, IPv6 멀티캐스트 패킷의 양이 특히 많은 경우에는, 멀티캐스트 패킷 복사부(106)에 오버헤드가 발생할 수 있다. 그 이유는, IPv6 멀티캐스트 패킷의 경우 출력 인터페이스의 개수에 따라 패킷을 복사하여야 하기 때문이다. 즉, 수신되는 IPv4 패킷 또는 IPv6 유니캐스트 패킷의 양에 비해 수신되는 IPv6 멀티캐스트 패킷의 양이 많은 경우, 패킷 복사부(106)에서는 오버헤드가 발생하고, 패킷 포워더(200)에서는 사용되지 않는 쓰레드가 있을 수 있다.
즉, 종래에는 네트워크 프로세서를 사용하는 경우 네트워크 프로세서가 효율적으로 사용되지 못하는 문제점이 있었다.
따라서 본 발명의 목적은 네트워크 프로세서를 사용하는 IP 패킷 처리에 있어서 상기 네트워크 프로세서의 사용 효율 및 패킷 처리 속도를 향상시킬 수 있는 IP 패킷 처리 장치 및 방법을 제공함에 있다.
이와 같은 목적들을 달성하기 위해 본 발명은; 네트워크 프로세서를 사용하여 수신되는 IP(Internet Protocol) 패킷을 처리하는 IP 패킷 처리 장치에 있어서, 할당된 기능에 따른 동작을 수행하는 적어도 하나의 쓰레드와, 수신되는 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지를 판단하는 패킷 분류부와, 상기 판단 결과에 따라 수신되는 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양과 수신되는 IPv6 멀티캐스트 패킷의 양을 각각 측정하고, 측정된 패킷 량 에 따라 상기 쓰레드에 할당할 기능을 결정하고, 결정된 기능을 상기 쓰레드에 할당하는 제어부를 포함함을 특징으로 하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치를 제안한다.
또한 본 발명은; 동적 기능 할당이 가능한 쓰레드를 포함하는 네트워크 프로세서를 사용한 IP 패킷 처리 방법에 있어서, 수신되는 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지를 판단하는 제 1 과정과, 상기 판단 결과에 따라 수신되는 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양과 IPv6 멀티캐스트 패킷의 양을 각각 측정하는 제 2 과정과, 상기 측정된 패킷 량에 따라 상기 동적 기능 할당이 가능한 쓰레드에 할당할 기능을 결정하고, 결정된 기능을 상기 쓰레드에 할당하여 상기 쓰레드가 할당된 기능에 따라 동작하도록 하는 제 3 과정을 포함함을 특징으로 하는 네트워크 프로세서를 사용한 IP 패킷 처리 방법을 제안한다.
이하 본 발명의 바람직한 실시예들을 첨부된 도면의 참조와 함께 상세히 설명한다. 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
이하 설명하는 본 발명은, 네트워크 프로세서를 사용하는 IP 패킷 처리 장치에 있어서, 수신되는 패킷의 종류별 패킷 량에 따라 네트워크 프로세서의 마이크로 엔진 및 쓰레드, 즉 네트워크 프로세서의 자원을 동적으로 할당함으로써 네트워크 프로세서의 사용 효율을 향상시키고 그에 따라 패킷 처리 속도를 증가시킬 수 있는 네트워크 프로세서를 사용하는 IP 패킷 처리 장치에 관한 것이다.
하기에서는 인텔사의 IXP2400 네트워크 프로세서를 사용하는 실시예를 들어 본 발명을 설명하도록 한다. IXP2400은 네트워크 프로세서 내에 인스트럭션 캐쉬 메모리(instruction cache memory)를 제공하여 사용자들로 하여금 프로그램 코딩을 할 수 있게 하는 새로운 개념을 도입하였다. 즉, 네트워크 프로세서를 적용할 어플리케이션의 용도에 맞게 네트워크 프로세서를 구현할 수 있게 된 것이다. 이러한 프로그램을 마이크로 코드라 한다. 마이크로 코드는 IXP2400에서 실행 가능한 어셈블리 언어이다. 마이크로 코드의 수행 방식은, 구현된 코드를 인스트럭션 캐쉬 메모리로 다운로드하면, 네트워크 프로세서 내의 각 마이크로 엔진들은 자신이 수행할 명령을 인스트럭션 캐쉬 메모리로부터 전달받고 수행하게 된다. 네트워크 프로세서 내의 마이크로 엔진은 8개로 구성되어 있고 사용자의 의도에 맞게 개수를 선택하여 용도에 따라서 각 마이크로 엔진의 마이크로 코드를 구현하게 된다.
도 1은 IXP2400 네트워크 프로세서의 블록 다이어그램을 보여준다. 도 1에 도시된 바와 같이 IXP2400 네트워크 프로세서는 8개의 멀티쓰레드 패킷 프로세싱 마이크로 엔진들(101 내지 108)), 인텔 Xscale 코어(110), 미디어 스위치 패브릭(114), SRAM 컨트롤러(118), DRAM 컨트롤러(120), 스크래치 패드 메모리(116), PCI 컨트롤러(112) 등으로 구성된다. 8개의 마이크로 엔진(101 내지 108)은 프로그래머블 패킷 프로세서로써, 각 엔진 당 8개까지의 멀티 쓰레딩을 지원한다. 각 마이 크로 엔진(101 내지 108)은 하드웨어로 다양한 네트워크 처리 기능을 수행하고, OC-48 와이어 속도로 데이터를 처리한다. 인텔 Xscale 코어(110)는 예외 패킷 처리, 복잡한 알고리즘 수행, 라우트 테이블 유지 등의 고성능 처리를 위한 32비트 RISC(Reduced Instruction Set Computing) 코어이고, SRAM 컨트롤러(118), DRAM 컨트롤러(120)는 라우팅 테이블이나 다양한 데이터 구조를 담고 있는 SRAM, DRAM에 효율적으로 접근할 수 있도록 관리하여 준다. 미디어 스위치 패브릭(114)은 프레이머와 MAC(Media Access Control) 디바이스 또는 스위치 패브릭에 연결된다. PCI 컨트롤러(112)는 PCI 버스를 통해 연결되는 외부 호스트 프로세서 또는 다른 칩들과의 통신을 관리할 수 있다.
한편, 상기 8개의 멀티쓰레드 패킷 프로세싱 마이크로 엔진들(101 내지 108)은 각각 패킷 수신, 패킷 포워딩, IPv6 멀티캐스트 패킷 복사, 패킷 큐 관리, 패킷 스케쥴링, 패킷 송신 등의 기능을 할당받아 동작할 수 있다. 본 발명은, 마이크로 엔진들(101 내지 108)에 대한 기능 할당에 있어서, 수신되는 IPv4/IPv6 유니캐스트 패킷의 양과 수신되는 IPv6 멀티캐스트 패킷의 양을 고려하여 패킷 포워딩 또는 IPv6 멀티캐스트 패킷 복사를 수행할 마이크로 엔진 및 쓰레드를 결정하고, 그 결정에 따라 마이크로 엔진 및 쓰레드에 해당 기능을 할당할 수 있도록 한다. 이하 네트워크 프로세서에 대한 기능 할당이 동적으로 이루어지는, 본 발명에 따른 네트워크 프로세서를 사용한 IP 패킷 처리 장치를 첨부한 도면을 참조하여 설명하도록 한다.
도 3은 본 발명에 따른 네트워크 프로세서의 사용예를 보이는 도면이다.
도 3에 도시된 바와 같이, 네트워크 프로세서의 8개의 마이크로 엔진들(101 내지 108)은, 패킷 수신부(Packet Rx)(101), 패킷 분류부(Ethernet Decap/classify)(102), IPv4 패킷 및 IPv6 패킷 포워더(IPv6 Unicast/Multicast Forwarder)(103), 멀티캐스트 패킷 복사부(Multicast Packet Copier)(106), 패킷 큐(Packet Queue Manager)(104), 패킷 스케쥴러(Packet Scheduler)(105), 패킷 송신부(Packet Tx and Ethernet Encap)(107)로 사용될 수 있다.
도 3에서 패킷 수신부(101)는 미디어 인터페이스를 통해 입력되는 패킷에 대해 프레임 재조립을 수행한다.
패킷 분류부(102)는 입력되는 패킷을 디캡슐레이션하고 각 패킷의 헤더를 참조하여 수신된 패킷을 종류 및 QoS에 따른 서비스 등급 등을 분류한다. 패킷 분류부(102)는 수신된 패킷이 IPv4 패킷인지, IPv6 패킷인지를 판단할 수 있다. IPv6/IPv4 패킷 포워더(103)는 IPv6 유니캐스트 패킷에 대해서는 LPM(Longest Prefix Match)을 수행하여 패킷 큐(104)에 출력하고, IPv6 멀티캐스트 패킷에 대해서는 라우트 테이블을 검색하여 출력 인터페이스의 개수를 알아낸 후, 해당 개수만큼 패킷의 복사를 수행하기 위해 멀티캐스트 패킷 복사부(106)에 출력한다. 또, IPv6/IPv4 패킷 포워더(103)는 IPv4 패킷에 대해서는, L3 어드레싱을 기본으로 패킷을 포워딩하여 패킷 큐(104)에 출력한다.
패킷 큐(104)는 패킷 타입 트래픽에 대해 SRAM 큐에 대해 enqueue/dequeue 연산을 수행하고, 패킷 스케쥴러(105)는 적절한 알고리즘에 따라 미디어 스위치 패브릭 인터페이스로 전송되어야 할 패킷을 선택하고 패킷 큐(104)에 dequeue 요청을 할 수 있다. 패킷 송신부(107)는 패킷 페이로드에 2계층 헤더를 추가하는 인캡슐레이션을 수행한 후, 패킷을 하나 또는 여러 개의 MPKT로 나눠서 미디어 스위치 패브릭(114)을 통해 전송한다.
멀티캐스트 패킷 복사부(106)는 IPv6 멀티캐스트 패킷을 해당 출력 인터페이스의 수만큼 복사하는 기능을 수행한다. 멀티캐스트 패킷 복사부(106)는 IPv6 패킷 포워더(103)의 라우트 룩업 결과에 의해 해당 멀티캐스트 패킷이 둘 이상의 출력 인터페이스로 전송될 필요가 있다고 판단되는 경우에만 필요한 개수만큼 패킷을 복사한다. 멀티캐스트 패킷 복사부(106)에서 복사된 패킷들 역시 패킷 큐(104)를 거쳐 패킷 송신부(107)에서 인캡슐레이션되어 네트워크를 통해 송신된다.
전술한 바와 같이, 도 3에서 네트워크 프로세서의 8개의 마이크로 엔진들(101 내지 108) 중 7개의 마이크로 엔진들(101 내지 107)에는 기능이 할당되어 있지만, 나머지 하나의 마이크로 엔진(108)에는 그 기능이 할당되어 있지 않다. 이하 상기 그 기능이 할당되어 있지 않은 마이크로 엔진을 "가변 기능 마이크로 엔진"이라고 칭하기로 한다. 여기서 가변 기능 마이크로 엔진(108)은 패킷 디캡슐레이션 및 등급화, IPv6 유니캐스트/IPv6 멀티캐스트 패킷 포워딩 및 IPv4 패킷 포워딩의 패킷 포워딩 기능과 IPv6 멀티캐스트 패킷 복사 기능의 어느 쪽이든, 할당되는 기능을 수행할 수 있다. 상기 가변 기능 마이크로 엔진(108)은 수신되는 IPv6 멀티캐스트 패킷이 많은 경우에는 IPv6 멀티캐스트 패킷 복사 기능을 할당받고, 수신되는 IPv4/IPv6 유니캐스트 패킷이 많은 경우에는 패킷 포워딩 기능을 할당받아 동작할 수 있다.
하기에서는 수신되는 종류별 패킷량을 측정하고, 그 측정 결과에 따른 상기 가변 기능 마이크로 엔진(108)에 대한 기능 할당에 대해 기술하도록 한다.
수신되는 IP 패킷의 종류는 패킷 분류부(102)에서 구분될 수 있다. 패킷 분류부(102)는 수신된 패킷의 헤더를 참조하여 수신된 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지 등을 판단할 수 있다. 수신되는 패킷의 종류에 따른 패킷 량의 측정은, 각 패킷이 수신될 때마다 해당 패킷에 대한 카운트 값을 증가시킴으로써 수행될 수 있다. 인텔 Xscale 코어(110)가 이와 같은 카운트 값 증가를 통한 패킷 량의 측정 등을 수행하는, 본 발명을 위한 제어부로서의 기능을 수행할 수 있다.
즉, 본 발명에 따른 네트워크 프로세서를 사용한 IP 패킷 처리 장치의 제어부는 IPv4 패킷 또는 IPv6 유니캐스트 패킷이 수신되면 IPv4 패킷 및 IPv6 유니캐스트 패킷 양을 측정하기 위한 카운트 값을 1 증가시키고, IPv6 멀티캐스트 패킷이 수신되면 IPv6 멀티캐스트 패킷 양을 측정하기 위한 카운트 값을 1 증가시킨다. 제어부는 이와 같이 카운트된 각 패킷에 대한 카운트 값을 사용하여 상기 가변 기능 마이크로 엔진(108)에 어떤 기능을 할당할지를 판단한다. 제어부는, IPv4/IPv6 유니캐스트 패킷의 카운트 값이 소정의 기준 값을 초과할 정도로 높은 경우에는 상기 가변 기능 마이크로 엔진(108)에 패킷 포워더 기능을 할당하고, IPv6 멀티캐스트 패킷의 카운트 값이 소정의 기준 값을 초과할 정도로 높은 경우에는 상기 가변 기능 마이크로 엔진(108)에 멀티캐스트 패킷 복사 기능을 할당한다. 한편, 제어부는 IPv4/IPv6 유니캐스트 패킷량과 IPv6 멀티캐스트 패킷량의 비율에 따라 가변 기 능 마이크로 엔진(108)에 할당할 기능을 결정할 수도 있다. 이때, 상기 소정의 기준 값 또는 IPv4/IPv6 유니캐스트 패킷과 IPv6 멀티캐스트 패킷의 비율이 어느 정도일 때 상기 가변 기능 마이크로 엔진(108)에 어떤 기능을 할당할 것인지 등은 시스템의 특성에 따라 바람직한 기준이 선택될 수 있을 것이므로, 그에 대한 구체적인 설명은 생략하기로 한다. 또한, 제어부는 상기 가변 기능 마이크로 엔진(108)에 대한 기능 할당에 있어서, 상기 가변 기능 마이크로 엔진(108)의 8개의 쓰레드 모두에 패킷 포워더 기능 또는 멀티캐스트 패킷 복사 기능을 할당하지 않고, 일부의 쓰레드에 대해서는 패킷 포워더 기능을 할당하고 일부에 대해서는 멀티캐스트 패킷 복사 기능을 할당하도록 구현될 수도 있다. 이는 기능의 할당이 쓰레드별로 이루어질 수 있기 때문이다. 가변 기능 마이크로 엔진(108)에 대한 기능의 할당은 각 쓰레드에 대응하는 특정 레지스터 값을 변경함으로써 수행될 수 있다. 가변 기능 마이크로 엔진(108)의 쓰레드는 할당받은 기능을 수행한다. 이로써 네트워크 프로세서에 대한, 수신되는 패킷의 종류별 패킷량에 따른 동적인 자원할당이 가능하게 된다.
이하 본 발명에 따른 네트워크 프로세서를 사용한 IP 패킷 처리 장치의 동작을 첨부한 도면을 참조하여 설명하도록 한다.
도 4 및 도 5는 마이크로 엔진의 8개의 쓰레드 각각에 포워더 기능과 멀티캐스트 패킷 복사 기능 중 어느 기능을 할당할지를 판단하고, 실제 8개의 쓰레드에 동적으로 기능을 할당하는 단계를 보여준다. 두 도면들 중 도 4는 측정된 패킷의 종류별 패킷량을 소정의 기준값과 비교하여 가변 기능 마이크로 엔진(108)에 어떤 기능을 할당할지를 결정하는 실시예에 따른 순서흐름도이고, 도 5는 측정된 IPv4/IPv6 유니캐스트 패킷의 양과 IPv6 멀티캐스트 패킷의 양을 서로 비교하고 그 결과에 따라 가변 기능 마이크로 엔진(108)에 어떤 기능을 할당할지를 결정하는 실시예에 따른 순서도이다. 먼저 도 4에 도시된 실시예에 대해 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따른 네트워크 프로세서에 대한 기능 할당 과정을 보이는 순서흐름도이다.
제 400단계에서는 패킷을 수신하고, 제 402단계에서는 수신되는 패킷의 종류를 판단한다. 수신된 패킷이 IPv6 멀티캐스트 패킷이라고 판단되는 경우에는, 제 404단계에서 IPv6 멀티캐스트 패킷 량을 측정하기 위한 카운트 값을 1 증가시킨다. 제 406단계에서는 상기 카운트 값을 참조하여 수신된 IPv6 멀티캐스트 패킷을 하나의 마이크로 엔진에서 처리 가능한지를 판단한다. 수신된 IPv6 멀티캐스트 패킷이 하나의 마이크로 엔진에서 처리될 수 없을 정도의 양이라고 판단되는 경우, 가변 기능 마이크로 엔진(108)의 쓰레드들에 대해, 전체 패킷에 대한 IPv6 멀티캐스트 패킷의 비율에 따라 적절한 수의 쓰레드에 멀티캐스트 패킷 복사 기능을 할당하는 제 408단계를 수행한다. 제 406단계의 판단 결과, 수신된 IPv6 멀티캐스트 패킷이 하나의 마이크로 엔진에서 처리 가능한 양이라고 판단되는 경우에는 가변 기능 마이크로 엔진(108)에 대한 기능 할당을 수행하지 않는다. 제 408단계에서의 가변 기능 마이크로 엔진(108)에 대한 기능 할당 후에는 제 410단계에서 IPv6 멀티캐스트 카운트 값을 리셋한다.
한편, 제 402단계에서의 판단 결과 수신된 패킷이 IPv6 멀티캐스트 패킷이 아닌, IPv4 패킷 또는 IPv6 유니캐스트 패킷이라고 판단되는 경우에는, IPv4/IPv6 유니캐스트 패킷 카운트 값을 1 증가시키는 제 420단계가 수행된다. 제 422단계에서는 수신된 IPv4/IPv6 유니캐스트 패킷이 두 개의 마이크로 엔진에서 처리 가능한 양인지를 판단한다. 수신된 IPv4/IPv6 유니캐스트 패킷을 두 개의 마이크로 엔진에서 처리할 수 없다고 판단되는 경우에는, 가변 기능 마이크로 엔진(108)의 쓰레드들에 대해, 전체 패킷에 대한 IPv4/IPv6 유니캐스트 패킷의 비율에 따라 적절한 수의 쓰레드에 패킷 포워더 기능을 할당하는 제 424단계를 수행한다. 제 424단계의 수행 후에는 IPv4/IPv6 유니캐스트 패킷 카운트 값을 리셋하는 제 426단계를 수행한다.
도 5는 본 발명의 다른 실시예에 따른 네트워크 프로세서에 대한 기능 할당 과정을 보이는 순서흐름도이다.
도 5에서는 IPv4/IPv6 유니캐스트 패킷량과 IPv6 멀티캐스트 패킷량의 비교에 의해 가변 기능 마이크로 엔진에 할당할 기능이 결정된다. 제 500단계 내지 제 506단계는 도 4의 설명과 유사하므로 그 설명을 생략하도록 한다.
제 508단계에서는 IPv4/IPv6 유니캐스트 패킷의 카운트 값과 IPv6 멀티캐스트 패킷의 카운트 값의 비율을 판단하고, 제 510단계에서는 그 비율에 따라 가변 기능 마이크로 엔진(108)의 쓰레드들 중 적절한 수의 쓰레드에 멀티캐스트 패킷 복사 기능 또는 패킷 포워더 기능을 할당한다.
도 6은 할당된 기능에 따라 동작하는 네트워크 프로세서의 동작 과정을 보이는 순서흐름도이다.
도 6의 제 600단계에서 가변 기능 마이크로 엔진(108)의 쓰레드는 자신에게 기능이 할당될 때까지 대기한다. 가변 기능 마이크로 엔진(108)의 쓰레드는 자신에게 기능이 할당되면, 할당된 기능에 따라 동작하게 되는데, 제 602단계에서 자신에게 패킷 포워더 기능이 할당되었다고 판단되면, 제 610단계에서 IPv4/IPv6 유니캐스트 패킷 포워더 기능을 수행한다. 한편, 가변 마이크로 엔진(108)의 쓰레드는 제 604단계에서 자신에게 IPv6 멀티캐스트 패킷 복사 기능이 할당되었다고 판단되면, 제 606단계에서 입력되는 IPv6 멀티캐스트 패킷 복사 기능을 수행한다.
상기에서는 각각 8개씩의 쓰레드를 가지는 8개의 마이크로 엔진을 포함하는 인텔 IXP2400 네트워크 프로세서에 대해 상기 8개의 마이크로 엔진들 중 하나의 마이크로 엔진의 쓰레드가 수행할 기능을, 수신되는 IPv6 멀티캐스트 패킷과 IPv4/IPv6 유니캐스트 패킷의 양을 고려하여 동적으로 할당하는 예를 들어 본 발명에 따른 네트워크 프로세서를 사용한 IP 패킷 처리 장치 및 방법을 설명하였다. 그러나 본 발명은 인텔 IXP2400 네트워크 프로세서가 아닌 다른 네트워크 프로세서를 사용하는 IP 패킷 처리 장치 및 방법에 대해서도 확장 적용할 수 있다. 또한, 본 발명은 앞서 언급한 쓰레드의 개수 및 마이크로 엔진의 개수 등에 의해서도 한정되지 않는다. 물론, 가변 기능 마이크로 엔진으로 설정될 마이크로 엔진의 개수 하나로 한정되지 않는다.
전술한 바와 같이 본 발명을 적용함으로써 패킷 처리를 위해 사용되는 네트 워크 프로세서를 효율적으로 사용할 수 있게 되며, 그에 따라 패킷 처리 속도가 향상될 수 있다.

Claims (22)

  1. 네트워크 프로세서를 사용하여 수신되는 IP(Internet Protocol) 패킷을 처리하는 IP 패킷 처리 장치에 있어서,
    할당된 기능에 따른 동작을 수행하는 적어도 하나의 쓰레드와,
    수신되는 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지를 판단하는 패킷 분류부와,
    상기 판단 결과에 따라 수신되는 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양과 수신되는 IPv6 멀티캐스트 패킷의 양을 각각 측정하고, 측정된 패킷 량에 따라 상기 쓰레드에 할당할 기능을 결정하고, 상기 결정된 기능을 상기 쓰레드에 할당하는 제어부를 포함하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  2. 제 1항에 있어서, 상기 쓰레드는 패킷 포워더 기능 또는 IPv6 멀티캐스트 패킷 복사 기능을 할당받고 할당된 기능에 따른 동작을 수행하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  3. 제 1항에 있어서, 상기 패킷 분류부는 수신되는 패킷의 헤더를 참조하여 해당 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지를 판단하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  4. 제 1항에 있어서, 상기 제어부는 상기 수신되는 패킷이 IPv4 패킷 또는 IPv6 유니캐스트 패킷이라고 판단되는 경우에는 IPv4 패킷 및 IPv6 유니캐스트 패킷을 측정하기 위한 카운트 값을 1 증가시키고, 상기 수신되는 패킷이 IPv6 멀티캐스트 패킷이라고 판단되는 경우에는 IPv6 멀티캐스트 패킷을 측정하기 위한 카운트 값을 1 증가시킴으로써 수신되는 패킷의 종류별 패킷량을 측정하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  5. 제 1항에 있어서, 상기 제어부는 상기 측정된 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양이 소정의 기준 값 이상이면 상기 쓰레드에 패킷 포워더 기능을 할당하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  6. 제 1항에 있어서, 상기 제어부는 상기 측정된 IPv6 멀티캐스트 패킷의 양이 소정의 기준 값 이상이면 상기 쓰레드에 멀티캐스트 패킷 복사 기능을 할당하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  7. 제 1항에 있어서, 상기 제어부는 수신되는 IPv4 패킷 및 IPv6 유니캐스트 패킷량과 수신되는 IPv6 멀티캐스트 패킷량의 비율에 따라 상기 쓰레드에 패킷 포워더 기능을 할당할지 멀티캐스트 패킷 복사 기능을 할당할지를 결정하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  8. 제 1항에 있어서, 상기 제어부는 상기 수신된 패킷의 종류별 패킷량에 따라 상기 쓰레드의 일부에는 패킷 포워더 기능을 할당하고, 그 나머지 쓰레드에는 멀티캐스트 패킷 복사 기능을 할당하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  9. 제 1항에 있어서, 상기 제어부는 상기 쓰레드에 대응하는 특정 레지스터의 값을 설정함으로써 상기 쓰레드에 기능을 할당하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  10. 각각 8개씩의 쓰레드를 가지는 8개의 마이크로 엔진을 포함하는 인텔 IXP2400 네트워크 프로세서를 사용하여 수신되는 IP 패킷을 처리하는 IP 패킷 처리 장치에 있어서,
    할당된 기능에 따른 동작을 수행하는 제 1 마이크로 엔진과,
    수신되는 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지를 판단하는 패킷 분류부로 동작하는 제 2 마이크로 엔진과,
    상기 판단 결과에 따라 수신되는 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양과 수신되는 IPv6 멀티캐스트 패킷의 양을 각각 측정하고, 측정된 패킷 량에 따라 상기 제 1 마이크로 엔진에 할당할 기능을 결정하고, 상기 결정된 기능을 상기 제 1 마이크로 엔진에 할당하는 제어부를 포함하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  11. 제 10항에 있어서, 상기 마이크로 엔진은 패킷 포워더 기능 또는 IPv6 멀티캐스트 패킷 복사 기능을 할당받고 할당된 기능에 따른 동작을 수행하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  12. 제 10항에 있어서, 상기 패킷 분류부는 수신되는 패킷의 헤더를 참조하여 해당 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지를 판단하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  13. 제 10항에 있어서, 상기 제어부는 상기 측정된 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양이 소정의 기준 값 이상이면 상기 마이크로 엔진에 패킷 포워더 기능을 할당하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  14. 제 10항에 있어서, 상기 제어부는 상기 측정된 IPv6 멀티캐스트 패킷의 양이 소정의 기준 값 이상이면 상기 마이크로 엔진에 멀티캐스트 패킷 복사 기능을 할당하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  15. 제 10항에 있어서, 상기 제어부는 상기 수신되는 IPv4 패킷 및 IPv6 유니캐스트 패킷량과 수신되는 IPv6 멀티캐스트 패킷량의 비율에 따라 상기 마이크로 엔진에 패킷 포워더 기능을 할당할지 멀티캐스트 패킷 복사 기능을 할당할지를 결정하는 네트워크 프로세서를 사용한 IP 패킷 처리 장치.
  16. 제 10항에 있어서, 상기 제어부는 상기 수신되는 패킷의 종류별 패킷량에 따라 상기 마이크로 엔진의 8개의 쓰레드들 중의 일부에는 패킷 포워더 기능을 할당하고, 그 나머지 쓰레드에는 멀티캐스트 패킷 복사 기능을 할당하는 네트워크 프로 세서를 사용한 IP 패킷 처리 장치.
  17. 동적 기능 할당이 가능한 쓰레드를 포함하는 네트워크 프로세서를 사용한 IP 패킷 처리 방법에 있어서,
    수신되는 패킷이 IPv4 패킷인지, IPv6 유니캐스트 패킷인지, IPv6 멀티캐스트 패킷인지를 판단하는 제 1 과정과,
    상기 판단 결과에 따라 수신되는 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양과 IPv6 멀티캐스트 패킷의 양을 각각 측정하는 제 2 과정과,
    상기 측정된 패킷 량에 따라 상기 동적 기능 할당이 가능한 쓰레드에 할당할 기능을 결정하고, 결정된 기능을 상기 쓰레드에 할당하여 상기 쓰레드가 할당된 기능에 따라 동작하도록 하는 제 3 과정을 포함하는 네트워크 프로세서를 사용한 IP 패킷 처리 방법.
  18. 제 17항에 있어서, 상기 제 1 과정의 패킷 판단 과정은 수신되는 패킷의 헤더를 참조하여 수행되는 네트워크 프로세서를 사용한 IP 패킷 처리 방법.
  19. 제 17항에 있어서, 상기 제 2 과정의 패킷량 측정은, 각 패킷이 수신될 때마 다 수시되는 패킷의 종류에 따라 해당 패킷의 카운트 값을 1씩 증가시킴으로써 수행되는 네트워크 프로세서를 사용한 IP 패킷 처리 방법.
  20. 제 17항에 있어서, 상기 제 3 과정에서는 상기 측정된 IPv4 패킷 및 IPv6 유니캐스트 패킷의 양이 소정의 기준 값 이상이면 상기 쓰레드에 패킷 포워더 기능을 할당하는 네트워크 프로세서를 사용한 IP 패킷 처리 방법.
  21. 제 17항에 있어서, 상기 제 3 과정에서는 상기 측정된 IPv6 멀티캐스트 패킷의 양이 소정의 기준 값 이상이면 상기 쓰레드에 멀티캐스트 패킷 복사 기능이 할당되는 네트워크 프로세서를 사용한 IP 패킷 처리 방법.
  22. 제 17항에 있어서, 상기 제 3 과정에서는 상기 측정된 패킷의 종류별 패킷량에 따라 상기 쓰레드의 일부에는 패킷 포워더 기능이 할당되고, 그 나머지 쓰레드에는 멀티캐스트 패킷 복사 기능이 할당되는 네트워크 프로세서를 사용한 IP 패킷 처리 방법.
KR1020050023827A 2005-03-22 2005-03-22 네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법 KR100636280B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050023827A KR100636280B1 (ko) 2005-03-22 2005-03-22 네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법
US11/385,825 US20060251071A1 (en) 2005-03-22 2006-03-22 Apparatus and method for IP packet processing using network processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050023827A KR100636280B1 (ko) 2005-03-22 2005-03-22 네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060102077A true KR20060102077A (ko) 2006-09-27
KR100636280B1 KR100636280B1 (ko) 2006-10-19

Family

ID=37393960

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050023827A KR100636280B1 (ko) 2005-03-22 2005-03-22 네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US20060251071A1 (ko)
KR (1) KR100636280B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734883B1 (ko) * 2005-12-09 2007-07-03 한국전자통신연구원 분산형 IPv4 기반 라우터에 IPv6 포워딩 및 외부인터페이스 정보를 구축하는 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407701C (zh) * 2005-06-25 2008-07-30 华为技术有限公司 一种网络处理器
US20080259800A1 (en) * 2007-04-16 2008-10-23 Alan Clark Method and System for Correlating Streams within a Packet Network
KR100912545B1 (ko) * 2007-09-21 2009-08-18 한국전자통신연구원 패킷 처리 장치 및 방법
KR101172887B1 (ko) * 2008-12-22 2012-08-10 한국전자통신연구원 서비스 품질 제공 시스템 및 그 시스템에서의 이동 단말에 대한 서비스 품질 제공 방법
US8369325B2 (en) * 2009-06-30 2013-02-05 Oracle America, Inc. Method and apparatus for packet classification and spreading in a virtualized system
US8954992B2 (en) * 2013-03-15 2015-02-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Distributed and scaled-out network switch and packet processing
US9160760B2 (en) * 2014-01-06 2015-10-13 Cisco Technology, Inc. Anomaly detection in a computer network

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3797013B2 (ja) 1999-04-12 2006-07-12 セイコーエプソン株式会社 画像処理方法、印刷装置、画像処理システムおよび記録媒体
US6665495B1 (en) * 2000-10-27 2003-12-16 Yotta Networks, Inc. Non-blocking, scalable optical router architecture and method for routing optical traffic
US7215639B2 (en) * 2001-08-31 2007-05-08 4198638 Canada Inc. Congestion management for packet routers
US7117497B2 (en) 2001-11-08 2006-10-03 Honeywell International, Inc. Budget transfer mechanism for time-partitioned real-time operating systems
US7397762B1 (en) * 2002-09-30 2008-07-08 Nortel Networks Limited System, device and method for scheduling information processing with load-balancing
US7415540B2 (en) * 2002-12-31 2008-08-19 Intel Corporation Scheduling processing threads
US20040246956A1 (en) * 2003-06-06 2004-12-09 Meng David Qiang Parallel packet receiving, routing and forwarding
US7457246B2 (en) * 2004-12-22 2008-11-25 Intel Corporation Adaptive threads assignment for receiving packets

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734883B1 (ko) * 2005-12-09 2007-07-03 한국전자통신연구원 분산형 IPv4 기반 라우터에 IPv6 포워딩 및 외부인터페이스 정보를 구축하는 방법

Also Published As

Publication number Publication date
KR100636280B1 (ko) 2006-10-19
US20060251071A1 (en) 2006-11-09

Similar Documents

Publication Publication Date Title
US11677851B2 (en) Accelerated network packet processing
KR100636280B1 (ko) 네트워크 프로세서를 사용한 ip 패킷 처리 장치 및 방법
US7701849B1 (en) Flow-based queuing of network traffic
US10057387B2 (en) Communication traffic processing architectures and methods
US9344377B2 (en) Packet processing architecture
JP6188093B2 (ja) 通信トラフィック処理アーキテクチャおよび方法
CN105900063B (zh) 多处理环境中的调度方法和装置
TWI333763B (en) Network device for processing data on a data network and method thereof
CN108270813B (zh) 一种异构多协议栈方法、装置及系统
CN111522653A (zh) 基于容器的网络功能虚拟化平台
US7920573B2 (en) Data relay device, data relay method, and computer product
WO2011044396A2 (en) Method and apparatus for supporting network communications
US8160105B2 (en) Apparatus and method for processing IP packet fragmentation in routing system using network processor
TWI323108B (en) Powerful and expandable pipeline architecture for a network device
US20200336573A1 (en) Network switching with co-resident data-plane and network interface controllers
Ahn et al. Isolation schemes of virtual network platform for cloud computing
KR20180134219A (ko) 가상머신 패킷의 처리방법과 그 장치
WO2002005494A1 (en) High speed packet processing architecture
JP5817458B2 (ja) 転送処理装置
Zeng et al. Middlenet: A high-performance, lightweight, unified nfv and middlebox framework
US20230040655A1 (en) Network switching with co-resident data-plane and network interface controllers
CN113225257B (zh) 一种upf数据处理的方法、系统及存储介质
JP2019009630A (ja) ネットワーク負荷分散装置および方法
JP2003158523A (ja) パケット通信装置
Lin et al. Bondingplus: real-time message channel in linux ethernet environment using regular switching hub

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee