KR100798926B1 - 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법 - Google Patents

패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법 Download PDF

Info

Publication number
KR100798926B1
KR100798926B1 KR1020060121828A KR20060121828A KR100798926B1 KR 100798926 B1 KR100798926 B1 KR 100798926B1 KR 1020060121828 A KR1020060121828 A KR 1020060121828A KR 20060121828 A KR20060121828 A KR 20060121828A KR 100798926 B1 KR100798926 B1 KR 100798926B1
Authority
KR
South Korea
Prior art keywords
processor
packet
unit
command
data
Prior art date
Application number
KR1020060121828A
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 KR1020060121828A priority Critical patent/KR100798926B1/ko
Priority to US11/936,201 priority patent/US8451838B2/en
Application granted granted Critical
Publication of KR100798926B1 publication Critical patent/KR100798926B1/ko

Links

Images

Classifications

    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router 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/10Program control for peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

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

Abstract

본 발명은, 인터넷 프로토콜 패킷 스위치 시스템에서 패킷 전달에 대한 처리를 하드웨적으로 처리하기 위한 패킷 포워딩 장치를 구비하며, 이러한 패킷 포워딩 장치는 데이터 링크 계층과의 인터페이스를 통해 패킷을 송/수신하는 인터페이스부와, 상기 인터페이스부를 통해 수신된 패킷을 미리 설정된 로직을 이용하여 변환하는 버스 동작부와, 상기 변환된 패킷의 헤더를 분석하는 헤더 파싱부와, 상기 헤더 파싱부로부터 분석된 결과 및 상기 패킷을 전달받고, 외부 네트워크 검색 엔진 및 프로세서와 연동하여 상기 패킷을 전달하기 위한 명령을 제어하는 네트워크 검색 엔진 제어부를 포함하여 패킷 포워딩을 수행함을 특징으로 한다.
패킷 스위치 시스템, IPv6, 패킷 포워딩, 네트워크 검색 엔진(NSE), 데이터 검색, 프로세서 명령어.

Description

패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법{APPARATUS AND METHOD FOR FORWARDING PACKET IN PACKET SWITCH SYSTEM}
도 1은 일반적인 인터넷 프로토콜 버전 6(IPv6) 수신단의 구조를 도시한 구성도,
도 2는 일반적인 IPv6 기본 헤더 포맷 구성도,
도 3은 본 발명의 실시예에 따른 IPv6 패킷 포워딩 장치의 구조를 도시한 구성도,
도 4는 상기 도 3의 NSE 제어부의 구조를 도시한 구성도,
도 5는 본 발명의 실시예에 따라 NSE 제어부에서 프로세서 명령어를 처리하기 위한 과정을 도시한 흐름도,
도 6은 본 발명의 실시예들에 따라 NSE 제어부에서 중재 과정을 도시한 흐름도,
도 7은 본 발명의 실시예들에 따라 NSE 제어부에서 룩업 처리 과정을 도시한 흐름도.
본 발명은 패킷 포워딩 장치 및 방법에 관한 것으로서, 특히 패킷 스위치 시스템에서 소프트웨어적으로 처리하던 인터넷 프로토콜 버전 6 기반의 패킷 포워딩 과정들을 하드웨어적으로 처리하기 위한 패킷 포워딩 장치 및 방법에 관한 것이다.
인터넷의 대중화에 따른 폭발적인 데이터 트래픽(Traffic)과 IP 노드의 증가는 32비트 IPv4 주소 고갈 현상을 나타나게 하였으며, 이러한 문제를 해결하기 위해 1960년대 초 IETF는 IPv4 프로토콜을 대신할 프로토콜을 찾기 시작해서 IPv6을 만들었다. IPv6은 IPv4 로 축적된 경험들을 바탕으로 IPv4에 다른 모습들을 부가시켜서 설계되었다.
그런데 IPv6 구현의 대부분은 소프트웨어적으로 구현되어 있다. 즉, 종래의 소프트웨어적으로 구현된 IPv6의 경우 하부 계층(Layer)에서 전달받은 패킷을 메모리에 복사한 후 처리하는 개념이며, 각각의 계층 사이의 데이터 전송은 포인터를 이용한 메모리 버퍼 체이닝(Memory Buffer Chaining) 방식으로 구현된다. 때문에 이와 같은 기존의 IPv6 패킷 포워딩은 소프트웨어에 의해 처리됨으로써 시스템 성능에 영향을 주게 되며, 라인 속도(Wire Speed)를 유지하는데 어려움이 있었다.
도 1은 일반적인 인터넷 프로토콜 버전 6(IPv6) 수신단의 구조를 도시한 구성도이다.
종래의 IPv6 처리장치의 수신단은 데이터 링크층(Data Link Layer)과의 인터페이스를 제어하는 매체 접근 제어기(MAC : Media Access Control)(20), 입력된 데 이터에 대한 프로세싱을 하는 프로세서(11), 저장된 메모리 주소를 가지는 포인터(12), 입력된 데이터를 저장하는 메모리(13)를 포함한다.
이와 같은 구조를 갖는 IPv6 수신단은 먼저, 데이터 링크층(Data Link Layer)과 물리층(Physical Layer)의 처리를 하는 매체 접근 제어기(20)에 하나의 프레임이 쌓이게 되면, 매체 접근 제어기(20)는 CRC 첵섬(checksum)을 통해 프레임의 이상 유무를 판단한다. 이상이 없으면 매체 접근 제어기(20)는 내부의 전용 인터럽트 단자를 이용하여 패킷을 머신(10)에 쓰게 되고, 머신(10)내에서는 프로세서(11)가 포인터(12)를 이용하여 메모리(13)에 저장된 데이터를 가져와서 처리하고 다시 메모리(13)에 쓰는 방식으로 각각의 레이어마다 메모리 복사를 통해 처리가 이루어지게 된다.
한편, 종래 기술에 따른 IPv6 기본 헤더 포맷 구성은 첨부된 도 2에 도시된 바와 같으며, IPv6 표준 프로토콜의 헤더는 4비트의 버전(Version)필드, 8비트의 트래픽클래스(Traffic Class) 필드, QoS(Quality Of Service)와 관련된 20비트의 흐름 라벨(Flow Label) 필드, 내용물의 길이를 나타내는 16비트의 무 부호 정수 페이로드 길이(Payload Length) 필드, IPv6 헤더에서 다음에 이어지는 헤더의 유형을 정의하는 8비트의 NH(Next Header) 필드, 패킷을 전달하는 각각의 노드에서 1씩 감소하는 8비트의 무부호 정수 홉 리밋(Hop Limit) 필드, 패킷 전송자의 128비트 주소를 나타내는 발신지 주소(Source Address) 필드, 패킷 수신자의 128비트 주소를 나타내는 목적지 주소(Destination Address) 필드인 기본헤더 필드를 포함한다.
그러나 이와 같은 종래의 IPv6 소프트웨어로 구현시의 IPv6 처리장치는 패 킷을 저장해 둘 메모리가 필수적이며, 그에 따른 많은 메모리 액세스(Memory Access)로 인한 래이턴시(Latency)가 길어지는 단점이 있으므로 결과적으로 TCP/IP가 포팅된 머신에 적지 않은 오버헤드가 된다.
이러한 문제를 해결하기 위해 제안된 종래 기술 중 대한민국 특허(공개번호 10-2004-0065000) "IPv6 헤더 수신 장치 및 IPv6 헤더 처리 방법"은 단순한 헤더 정보들만을 처리하는데 하드웨어적으로 구현하였다. 하지만, 상기 기술은 여전히 패킷 포워딩을 위한 룩업 및 프로세싱을 소프트웨어적으로 처리해야 하는 단점이 있다.
또한, 종래에 IP 룩업 장치를 기반으로 하는 포워딩 제어 장치가 개발되었으나, 이는 룩업장치의 생성, 추가, 삭제 등의 제어 방법 위주로 구현을 하였으며, 실제 데이터 패스를 통한 IP 패킷 포워딩과 CPU 패스를 통한 룩업 테이블 업데이트 요청이 동시에 이루어지게 되면 IP 포워딩 패킷에 대한 손실이 발생하게 된다. 더욱이, 상기 장치는 외부 상용 메모리들을 이용하여 하드웨어 포워딩 장치인 듯 보이나 하드웨어 장치는 외부 메모리뿐이며, 실제 동작 및 상기 장치들을 처리하는 제어 프로세싱 과정은 소프트웨어 기반으로 동작한다.
또 다른 종래 기술로서, 이더넷 기반 라우터에서의 패킷 포워딩 처리 장치가 있으며, 이는 듀얼 포트 메모리를 이용하여 포워딩 제어 장치를 구현함으로써, 메모리 복사과정 없이 하드웨어적으로 패킷을 포워딩하여 라인 속도를 유지하도록 하였다. 그러나 포인터 중재기는 입력 패킷의 쓰기와 읽기를 제어하는 단순 듀얼 포트 메모리 중재 장치이며, 이 또한 입력 패킷이 포워딩 될 때, 룩업 테이블의 업데 이트를 허용하지 않는다. 즉, 패킷을 포워딩하고 있는 동안에 망 구성이 바뀌거나 룩업테이블의 업데이트가 필요할 때 패킷 포워딩을 중지해야 하거나 또는 중지하지 않을 때는 입력 패킷이 포워딩 될 때 패킷 손실을 유발하게 된다.
때문에 이러한 종래 기술에 따른 IPv6 패킷 처리장치는 IPv6 포워딩을 위해 소프트웨어적으로 처리하거나, 단순한 IPv6 헤더 처리 방법만을 하드웨어적으로 처리함으로서 실제 IPv6 포워딩에 있어 라인 속도를 유지하기가 어려워 시스템 성능에 상당한 영향을 주게 된다. 더욱이, 지속적으로 회선 속도가 빨라지고, 최근에는 기가비트 스위치가 주력으로 부상하고 있으며, 10기가비트 포트가 업 링크용으로 지원되는 스위치 구조가 대두되고 있는 추세에 시스템의 성능은 대단히 중요한 문제가 된다.
따라서 본 발명의 목적은 패킷 스위치 시스템에서 종래의 소프트웨어적으로 처리되던 IPv6 패킷 포워딩 과정을 하드웨어적으로 처리하기 위한 패킷 포워딩 장치 및 방법을 제공함에 있다.
상기 이러한 본 발명의 목적들을 달성하기 위한 장치는, 인터넷 프로토콜 서비스를 위한 패킷 스위치 시스템에서 패킷 전달에 대한 처리를 하드웨적으로 처리하기 위한 패킷 포워딩 장치로서, 데이터 링크 계층과의 인터페이스를 통해 패킷을 송/수신하는 인터페이스부와, 상기 인터페이스부를 통해 수신된 패킷을 미리 설정된 로직을 이용하여 변환하는 버스 동작부와, 상기 변환된 패킷의 헤더를 분석하는 헤더 파싱부와, 상기 헤더 파싱부로부터 분석된 결과 및 상기 패킷을 전달받고, 외부 네트워크 검색 엔진 및 프로세서와 연동하여 상기 패킷을 전달하기 위한 명령을 제어하는 네트워크 검색 엔진 제어부를 포함하는 것을 특징으로 한다.
상기 본 발명의 목적들을 달성하기 위한 방법은, 인터넷 프로토콜 서비스를 위한 패킷 스위치 시스템에서의 패킷 전달에 대한 처리를 하드웨어적으로 처리하기 위한 패킷 포워딩 장치에서, 입력되는 패킷을 포워딩하기 위한 방법으로서, 데이터 링크 계층과의 인터페이스를 통해 입력된 상기 패킷을 미리 설정된 로직을 이용하여 변환하는 과정과, 상기 변환된 패킷의 헤더를 분석하는 과정과, 상기 분석된 결과를 이용하여 상기 패킷 전달을 위한 데이터 검색 및 프로세서 명령을 제어하는 과정을 포함하는 것을 특징으로 한다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명의 실시예에서는 인터넷 프로토콜 버전 6(IPv6)을 기반으로 하는 패 킷 스위치 시스템을 적용하여 설명하며, 이러한 패킷 스위치 시스템에서 IPv6 패킷 포워딩을 위한 장치에 대해 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 IPv6 패킷 포워딩 장치의 구조를 도시한 구성도이다.
상기 도 3을 참조하면, IPv6 패킷 포워딩 장치는 인터페이스부(110)와, 버스 동작부(120)와, 헤더 파싱부(130)와, 망 검색 엔진 제어부(140)와, 지연부(150)와, 재정렬 헤더부(160)와, 제거부(170)를 구비하여 구성될 수 있으며, 매체 접근 제어기(MAC)(101), 외부 망 검색 엔진(NSE : Network Search Engine)(102), 프로세서 인터페이스(103) 및 네트워크 프로세서(104)와 연동할 수 있다.
상기 인터페이스부(110)는 수신부(110a) 및 송신부(110b)로 구분되며, 상기 수신부(110a)와 연동하는 상기 매체 접근 제어기(101)와, 상기 송신부(110b)와 연동하는 네트워크 프로세서(104)와의 인터페이스를 처리하며, 1기가비트 이더넷(Gigabit Ethernet) 또는 10기가비트 이더넷 MAC(317) 칩으로부터 SPI 인터페이스를 경유하여 입력되는 패킷(Ingress Packet)을 처리한다.
상기 버스 동작부(120)는 인터페이스부(110a)로부터 입력되는 패킷을 8비트 마스크(Mask) 패턴을 갖는 내부 버스로직으로 변환한다.
상기 헤더 파싱부(Header Parsing)(130) IPv6 흐름상태(Flow State)와 서비스 품질(QoS : Quality of Service)이 지원되도록 입력되는 IPv6 패킷의 헤더 부분을 분석(Parsing)하고, 분석된 결과 및 수신된 패킷을 상기 네트워크 검색 엔진 제어부로 전달한다.
상기 네트워크 검색 엔진(Network Search Engine 이하,NSE라 칭함) 제어부(140)는 IPv6 패킷 포워딩 장치가 외부 NSE(102)로의 읽기, 쓰기 및 검색 동작을 할 수 있도록 한다. 구체적으로, 상기 NSE 제어부(140)는 데이터 패스를 통한 IP 패킷 포워딩과 프로세서(CPU) 패스를 통한 룩업테이블 업데이트(데이터 검색 명령) 및 읽기/쓰기 액세스(프로세서 명령)가 중재되어 입력되는 IP 포워딩 패킷이 플로우 제어를 통해 손실 없이 패킷 포워딩 하도록 제어한다. 또한, 상기 NSE 제어부(140)는 최장 프릭픽스 매칭(LPM : Longest Prefix Matching), 서비스품질(QoS : Qoality of Service), 도스(DoS : Denial of Service) 등의 서비스를 지원하기 위해 싱글 서치 키 로딩 이외에 멀티 서치 키 로딩 기능을 제공한다.
상기 지연부(Pipe Delay)(150)는 외부 NSE(102)로부터의 룩업을 통해 얻은 인덱스들(Route ID, DoS ID, QoS ID 등의 결과)과 포워딩되는 IPv6 패킷 사이에 생기는 레이턴시(laytency)를 즉, 동기를 맞춰준다.
상기 재정렬 헤더부(Rearrange Header)(160)는 외부 네트워크 프로세서(Network Processor 또는 Packet Processor)(104)가 각종 플로우를 인식할 수 있도록 해쉬 값(Hash Value) 및 상기 외부 NSE(102)로부터 얻은 Route ID, DoS ID, QoS ID 등의 삽입 및 IPv6 패킷 헤더를 재정렬한다. 여기서 해쉬 함수가 이용하는 해쉬 키값은 입력되는 패킷의 4비트의 'Port number', 12비트의 'VLAN ID', 256비트의 'IPSA'와 'IPDA', 8비트의 'Next Header'및 상기'Next Heaer'의 값이 TCP 나 UDP를 나타낼 때는 32비트의 'L4 Port', 'Flow Label'이 0이 아닐 때는 'Flow Label'이 사용된다.
상기 제거부(Transitional Remove)(170)는 내부 처리를 하기 위해 삽입된 각종 오버헤드(Overhead)를 제거하고, 내부 버스의 마스크(Mask) 정보를 보고 패킷 내부의 마스크(Mask) 값이 0인 바이트를 제거한다.
이와 같은 구조를 갖는 상기 IPv6 포워딩 장치에서 상기 NSE 제어부(140)를 첨부된 도 4를 참조하여 보다 구체적으로 설명하기로 한다.
상기 도 4에 도시된 바와 같이, NSE 제어부(410)는 크게 NSE 파이프(PIPE)부(210), NSE 프로세서부(CPU)(220), NSE 중재부(ARB)(230), NSE 접근부(ACC)(240)로 구성될 수 있다.
상기 NSE 파이프부(210)는 내부버스를 통해 입력되는 패킷에서 검색을 위한 키 값을 제공하며, 입력되는 패킷으로부터 룩업을 위해 필요한 키 값을 추출하는 데이터 패스(DP) 키 검출기(221)를 포함한다.
상기 NSE 프로세서부(220)는 프로세서와의 인터페이스를 담당하며, 프로세서로부터의 읽기, 쓰기 명령(Command)을 수행하고, 각각의 명령에 대한 키 값을 발생한다. 그리고 상기 NSE 프로세서부(220)는 프로세서 명령어에 따른 키 값을 검출하는 프로세서(CPU) 키 검출기(221)와, 프로세서 인터페이스를 제어하는 제어기(222)와, 프로세서 명령어에 따라 쓰기 명령이면 외부 프로세서로부터 받은 외부 NSE 의 주소 및 데이터를 저장하고, 읽기 명령이면 외부 NSE 의 주소 및 외부 NSE 로부터의 받은 데이터를 저장하는 메모리(223) 및 각종 레지스터를 관리하는 레지스터 관리기(224)를 포함한다.
상기 NSE 중재부(230)는 입력되는 데이터 패킷에 대한 서치와 프로세서 읽 기, 쓰기 명령어에 대한 중재 및 클럭 경계(Clock boundary)를 통과할 때 생기는 위상차를 해결한다. 그리고 상기 NSE 중재부(230)는 데이터 패스 서치와 프로세서 명령어에 대한 중재 담당을 하는 중재기(231)와, 각종 데이터 검출에 필요한 키 값을 저장하고, 클럭 경계(Clock boundary)를 통과할 때 생기는 위상차를 해결해 주는 데이터 패스 홀드(DP hold)(232), 각종 프로세서 명령에 대한 명령 메시지 등을 저장하는 프로세서 패스 홀드(CPU hold)(233) 및 서치 결과 값을 받는 동안 패킷을 유지시키는 대기 룸(234)을 포함한다.
상기 NSE 접근부(240)는 외부 NSE(102)와 인터페이스하고, 실제 명령어에 대한 키 값들을 로딩하며, 외부 NSE 칩과 물리적 인터페이스 역할을 담당하는 입/출력기(nse io group)(241)와, 각종 데이터 검색 및 읽기(Read), 쓰기(Write) 명령어를 선택하는 명령어 선택기(command state machine)(242)를 포함한다.
상술한 바와 같은 구조를 갖는 본 발명의 실시예에 따른 패킷 스위치 시스템에서는 IPv6 포워딩 장치 기존의 소프트웨어적으로 이루어지던 패킷 전달에 대한 처리를 하드웨어적으로 처리할 수 있도록 구성되며, 이러한 하드웨적인 장치를 통해 입력되는 패킷을 손실 없이 전달하기 위한 처리 절차 즉, 패킷 포워딩 방법에 대해 설명하기로 한다.
IPv6 패킷 포워딩 장치에서 인터페이스부(110)는 데이터 링크 계층과의 인터페이스를 통해 패킷을 입력받아 버스 동작부(120)로 전달한다. 이에 따라 버스 동작부(120)는 8비트의 마스크 패턴을 갖는 내부 인터페이스 로직에 할당하여 상기 입력된 패킷을 변환한다. 이렇게 변환된 패킷은 헤더 파싱부(130)로 입력된다. 이에 따라 헤더 파싱부(130)는 IPv6 흐름 상태(Flow State)와 QoS가 지원되도록 입력된 패킷에서 IPv6 패킷 헤더를 추출하여 각각의 필드들을 분석 및 처리한 후 상기 분석된 결과 및 상기 패킷을 NSE 제어부(140)로 전달한다.
그러면 상기 NSE 제어부(140)는 전달된 분석 결과 이용하여 데이터 패스(DP)를 통한 IPv6 패킷 포워딩과 프로세서 패스를 통한 룩업테이블을 초기화/업데이트 즉, 데이터 검색 명령과, 프로세서 명령(읽기/쓰기 액세스)을 수행한다. 이때, NSE 제어부(140)는 상기 데이터 검색 명령 및 프로세서 명령을 우선순위에 따라 중재한다. 이에 따라 중재를 통해 입력되는 IPv6 포워딩 패킷이 플로우 제어를 통해 손실 없이 패킷 포워딩할 수 있다. 상기 데이터 검색 명령 시 상기 NSE 제어부(140)는 제어 신호에 따라 데이터 검색을 위한 키들을 조합하여 싱글 룩업(LPM)할 것인지 또는 멀티 룩업(LPM/QoS/DoS)할 것인지를 결정 및 입력된 패킷에서 IPv6 키 값들을 로딩하여 외부 NSE(102)로 전송할 때 생기는 위상차를 해결한다.
상기 NSE 제어부(140)로부터 전달된 패킷은 재정렬 헤더부(170)로 전달되고, 이때, 외부 네트워크 검색 엔진의 검색을 통해 얻은 인덱스들과 포워딩되는 패킷 사이에 발생하는 레이턴시를 맞춰서 상기 패킷을 동기화한다. 이때, 상기 재정렬 헤더부(170)는 외부의 프로세서(네트워크 프로세서(NP) 또는 패킷 프로세서(PP))(104)가 각종 플로우를 인식할 수 있도록 플로우(Flow)별 처리를 하기 위한 해쉬 값 및 룩업을 통해 제공된 인덱스를 상기 동기화된 패킷에 삽입하고, 상기 패킷의 헤더를 재정렬한다. 이후, 제거부(170)에서는 상기 재정렬된 헤더를 포함하는 패킷에서 내부 프로세싱을 위한 오버헤드 및 마스크(Mask) 값이 0인 부분을 제거한 후 외부 프로세서(104)로 상기 패킷을 전달한다.
이와 같은 IPv6 패킷 포워딩 장치의 패킷 포워딩 절차에서 NSE 제어부(140)에서의 동작에 대해 보다 구체적으로 설명하기로 한다. 우선, 상기 NSE 프로세서부(220)에서의 외부 프로세서 인터페이스(103)를 통해 입력된 프로세서 명령을 처리하기 위한 과정을 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 5는 본 발명의 실시예에 따라 NSE 제어부에서 프로세서 명령어를 처리하기 위한 과정을 도시한 흐름도이다.
상기 도 5를 참조하면, NSE 제어부(140) 내의 상기 NSE 프로세서부(220)는 301단계에서 전원이 인가되면 현재 상태를 IDLE 상태로 전환한다. 그런 다음 상기 NSE 프로세서부(220)는 외부의 프로세서 인터페이스부(103)를 통해 프로세서로부터 프로세서 명령어(또는 CUP 명령어라 함)가 입력되었는지를 확인한다. 확인한 결과, 프로세서 명령어가 입력되지 않은 경우에는 다시 301단계를 수행하고, 프로세서 명령어가 입력된 경우에는 303단계를 수행한다.
상기 303단계에서 상기 NSE 프로세서부(220)는 상기 입력된 프로세서 명령어가 쓰기 명령어인지를 확인하여 쓰기 명령어로 확인되면, 304단계에서 상기 NSE 프로세서부(220)는 쓰기 명령어를 수행한다. 이때, 상기 NSE 프로세서부(220)는 메모리(223)에 첫 번째 명령어가 쓰이기 시작하는 WRITE 1 단계 및 상기 메모리(223)에 마지막 명령어가 쓰이는 WRITE 2 단계로 구분하여 쓰기 명령어에 따른 쓰기를 수행 한다. 이후, 305단계에서 상기 NSE 프로세서부(220)는 상기 쓰기 명령어 수행이 종료되었는지를 확인하여 종료된 경우 다시 301단계를 수행하고, 그렇지 않은 경우 304단계를 다시 수행한다.
반면, 303단계에서 확인한 결과, 상기 입력된 프로세서 명령어가 쓰기 명령어가 아니면 306단계에서 상기 NSE 프로세서부(220)는 입력된 프로세서 명령어가 읽기 명령어인지를 확인한다. 만약, 읽기 명령어가 아닌 경우 다시 301단계로 진행하고, 그렇지 않은 경우 307단계에서 상기 NSE 프로세서부(220)는 입력된 명령어가 읽기 명령어 이면 읽기 명령어를 수행 한다. 이후, 308단계에서 상기 NSE 프로세서부(220)는 외부 NSE(102)로부터 응답(Ack)을 수신하였는지를 확인하는 READ WAIT를 수행한다. 이때, 상기 NSE 프로세서부(220)가 응답을 수신하면 301단계를 수행하고, 그렇지 않은 경우에는 308단계를 계속 수행한다.
이와 같이 NSE 프로세서부(220)는 프로세서 명령어 수행을 하고, NSE 중재부로 각 명령어에 대한 키 값을 발생한다. 따라서 상기 NSE 제어부의 NSE 중재부에서는 상기 발생된 키 값을 이용하여 각 프로세서 명령에 대한 명령 메시지 등을 저장하고, 프로세서 명령어에 대한 중재를 수행하며, 클럭 경계를 통과할 때 발생하는 위상차를 해결한다. 이러한 NSE 중재부의 중재 과정에 대해 첨부된 도면을 참조하여 설명하기로 한다.
도 6은 본 발명의 실시예들에 따라 NSE 제어부에서 중재 과정을 도시한 흐름도이다.
상기 도 6을 참조하면, 401단계에서 NSE 제어부(140)의 NSE 중재부(231)는 전원이 인가되면 IDLE 상태로 전환하고, 402단계에서 데이터 룩업 명령과 프로세서 명령의 우선순위를 결정하여 403단계에서 프로세서(CPU) 패스가 우선순위가 높은지를 확인한다. 만약, 데이터 패스의 우선순위가 높으면 409단계로 진행하고, 프로세서 패스의 우선순위가 높으면, 404단계에서 NSE 중재부(230)는 프로세서 패스 인에이블을 체크한다. 체크한 결과, 프로세서 패스 인에이블이 되어 있으면 405단계에서 NSE 중재부(230)는 프로세서 명령어를 처리하고, 406단계에서 외부 NSE(102)에서 응답(Ack) 또는 프로세서 쓰기 명령어 완료 응답(Ack) 신호를 감지한다. 만약, 응답 신호가 감지되지 않았다면 계속해서 감지하고, 응답 신호가 감지되면, 407단계에서 NSE 중재부(230)는 프로세서 명령어 처리를 완료한 후 동작을 종료한다.
반면, 404단계에서 패스 인에이블이 되지 않았으면 408단계에서 NSE 중재부(230)는 데이터 패스(DP) 인에이블을 체크하여 데이터 패스 인에이블되지 않았다면 401단계로 진행하여 대기하고, 그렇지 않은 경우 411단계로 진행한다.
한편, 데이터 패스의 우선순위가 높은 경우, 409단계에서 NSE 중재부(230)는 데이터 패스(DP) 인에이블을 체크하여 체크 결과가 데이터 패스 인에이블되지 않은 경우라면 410단계에서 프로세서 패스 인에이블을 체크한다. 체크한 결과, NSE 중재부(230)는 프로세서 패스 인에이블이 되지 않았다면 401단계로 진행하고, 그렇지 않은 경우 405단계로 진행하여 프로세서 명령어 처리를 수행한다.
반면, 상기 409단계에서 체크한 결과, 데이터 패스 인에이블된 경우에는 411 단계에서 NSE 중재부(230)는 첫 번째 데이터 패스(DP1)를 수행 즉, 첫 번째 검색 명령어를 처리하고, 412단계에서 두 번째 데이터 패스(DP2)를 수행 즉, 두 번째 검색 명령을 수행한다. 그런 다음 413단계에서 NSE 중재부(230)는 72/144 비트 검색인지를 확인하여 72/144 비트 검색이 아닌 경우에는 414단계에서 세 번째 및 네 번째 검색 명령어를 수행(DP3, DP4 수행)한다. 그런 다음 415단계에서 NSE 중재부(230)는 288비트 검색인지를 확인하여 288비트 검색이 아닌 경우 416단계에서 다섯 번째 내지 여덟 번째 명령어를 수행(DP5~DP8)한다. 반면, 415단계에서 확인한 결과, 288비트 검색인 경우에는 417단계로 진행한다.
반면, 413단계에서 확인한 결과, 72/144비트 검색인 경우에는 417단계에서 NSE 중재부(230)는 데이터 패스 외부 NSE(102)와의 데이터 패스를 초기화(WAIT_DP)를 수행한다. 그런 다음 418단계에서 NSE 중재부(230)는 데이터 패스 명령어 처리를 완료(DONE_DP)한다.
다음으로, NSE 제어부에서의 룩업 처리 과정에 대해 첨부된 도면을 참조하여 설명하기로 한다.
도 7은 본 발명의 실시예들에 따라 NSE 제어부에서 룩업 처리 과정을 도시한 흐름도이다.
상기 도 7을 참조하면, 501단계에서 NSE 제어부(140)는 전원이 인가되면 IDLE 상태로 전환한다. 그러면 502단계에서 NSE 제어부(140)는 NSE 중재부(230)를 통해 데이터 패스 룩업 명령이 인에이블되었는지를 확인한다. 확인한 결과, 데이터 패스 룩업 명령이 인에이블되지 않았으면 501단계로 진행하여 대기하고, 인에블된 경우 510단계에서 NSE 제어부(140)는 72비트 검색을 확인한다. 만약, 72비트 검색이 인에이블된 경우 511단계에서 NSE 제어부(140)는 72비트 키를 로딩한 후 501단계로 진행하여 대기한다.
반면, 72비트 검색이 인에이블되지 않은 경우 520단계에서 NSE 제어부(140)는 144 비트 검색을 확인하여 144 비트 검색이 인에이블된 경우 521단계에서 144 비트 키를 로딩하고, 144비트 검색이 인에이블되지 않은 경우 530단계로 진행하여 288비트 검색을 확인한다. 확인 결과, 288비트 검색이 인에이블된 경우 531단계에서 NSE 제어부(140)는 288비트 키 로딩을 위해 첫 번째 144비트 키를 로딩하고, 532단계에서 두 번째 144비트 키를 로딩한 후 501단계로 진행하여 대기한다.
상기 530단계에서 확인한 결과, 288비트 검색이 인에이블되지 않은 경우, 540단계에서 NSE 제어부(140)는 576비트 검색을 확인한다. 만약, 576 검색이 인에이블되지 않은 경우 501단계로 진행하여 대기하고, 576비트 검색이 인에이블된 경우 541단계 내지 544단계에서 NSE 제어부(140)는 576 비트 키 로딩을 위하여 차례로 첫 번째 내지 네 번째 144비트 키를 로딩한 후 501단계로 진행하여 대기한다.
이와 같이 상기 NSE 제어부(140)는 최장 프릭픽스 매칭(LPM : Longest Prefix Matching), 서비스품질(QoS : Qoality of Service), 도스(DoS : Denial of Service) 등의 서비스를 지원하기 위해 싱글 서치 키 로딩 및 멀티 서치 키 로딩 을 수행한다. 예를 들어 72비트/144비트 키 로딩은 IP 목적지 주소만을 이용한 단순 LPM 룩업을 위하여 사용되고, 288/576 비트 키 로딩은 LPM/QoS/DoS 룩업 등의 멀티 룩업을 하기 위해 사용된다. 여기서 상기 룩업 키로 사용되는 키 값들은 128비트의 IPv6 목적지 주소, 128비트의 IPv6 출발지 주소, 20비트의 Flow Label, 8비트의 next header, 8비트의 Traffic Class, 12비트의 Vlan ID, 4비트의 Port number, 16비트의 IPv6 Source Port, 16비트의 IPv6 Destination Port를 가진다. 따라서 상기 NSE 제어부(140)는 제어 신호에 따라 상기 키 값들을 조합하여 싱글 LPM 룩업을 할 것인지 LPM/QoS/DoS의 멀티 룩업을 할 것인지를 결정한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 발명청구의 범위뿐만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 소프트웨어에 의한 IPv6 처리를 하드웨적으로 처리하기 위해 IPv6 포워딩 장치를 제공함으로써, 시스템의 라인 속도(Line Speed)를 손실 없이 실현할 수 있으며, IPv6 패킷 처리를 위한 LPM(Longest Prefix Matching), QoS(Quality Of Service) 및 DoS(Denial Of Service) 룩업(Look-up) 등을 하드웨어적으로 제어함으로써 보다 쉽게 시스템을 구현 가능하고 구현에 따른 비용 절감 및 멀티미디어 응용의 시간 지연을 최소화하고, 성능을 향상시킬 수 있는 효과가 있다.

Claims (15)

  1. 인터넷 프로토콜 서비스를 위한 패킷 스위치 시스템에서 패킷 전달에 대한 처리를 하드웨적으로 처리하기 위한 패킷 포워딩 장치에 있어서,
    데이터 링크 계층과의 인터페이스를 통해 패킷을 송/수신하는 인터페이스부와,
    상기 인터페이스부를 통해 수신된 패킷을 미리 설정된 로직을 이용하여 변환하는 버스 동작부와,
    상기 변환된 패킷의 헤더를 분석하는 헤더 파싱부와,
    상기 헤더 파싱부로부터 분석된 결과 및 상기 패킷을 전달받고, 외부 네트워크 검색 엔진 및 프로세서와 연동하여 상기 패킷을 전달하기 위한 명령을 제어하는 네트워크 검색 엔진 제어부를 포함하는 것을 특징으로 하는 패킷 포워딩 장치.
  2. 제1항에 있어서,
    상기 전달되는 패킷의 동기화를 위한 지연부와,
    상기 동기화된 패킷에 플로우별 처리를 위한 정보를 삽입하고, 상기 패킷의 헤더를 재정렬하는 재정렬 헤더부와,
    상기 패킷에서 내부 프로세싱을 하기 위해 삽입된 오버헤드를 제거하는 제거부를 더 포함하는 것을 특징으로 하는 패킷 포워딩 장치.
  3. 제2항에 있어서,
    상기 제거부는 상기 패킷 내부의 마스크(Mask) 정보를 확인하여 상기 마스크 값이 0인 부분을 제거함을 특징으로 하는 패킷 포워딩 장치.
  4. 제2항에 있어서,
    상기 플로우별 처리를 위한 정보는 해쉬 값 및 룩업을 통해 제공되는 라우트 식별자(Route ID), 도스 인덱스(DoS Index) 및 서비스 품질 식별자(QoS ID)를 포함함을 특징으로 하는 패킷 포워딩 장치.
  5. 제1항에 있어서, 상기 네트워크 검색 엔진 제어부는,
    상기 헤더 파싱부에서 분석된 결과를 통해 상기 패킷에서 검색을 위한 키 값을 제공하는 네트워크 검색 엔진 파이프부와,
    외부 프로세서로부터 인터페이스된 프로세서 명령을 수행하고 상기 프로세서 명령에 따른 키 값을 발생하는 네트워크 검색 엔진 프로세서부와,
    상기 입력된 패킷에 대한 데이터 검색 및 상기 프로세서 명령을 중재하고, 상기 프로세서 명령에 따른 키 값을 저장하는 네트워크 검색 엔진 중재부와,
    외부 네트워크 검색 엔진과 인터페이스하고, 상기 프로세서 명령에 따른 키 값을 로딩하고, 상기 중재된 데이터 검색 및 프로세서 명령을 선택하는 네트워크 검색 엔진 접근부를 포함하는 것을 특징으로 하는 패킷 포워딩 장치.
  6. 제5항에 있어서, 상기 네트워크 검색 엔진 프로세서부는,
    상기 프로세서의 명령에 대한 키 값을 검출하는 프로세서 키 검출기와,
    상기 프로세서 명령에 따른 데이터 값들을 저장하는 메모리와,
    상기 프로세서 명령을 처리하기 위한 레지스터를 관리하는 레지스터 관리기와,
    상기 외부 프로세서와의 인터페이스 및 상기 프로세서 명령에 따른 수행을 제어하는 제어기를 포함하는 것을 특징으로 하는 패킷 포워딩 장치.
  7. 제5항에 있어서, 상기 네트워크 검색 엔진 중재부는,
    상기 데이터 검색에 필요한 키 값을 저장하고, 클럭 경계를 통과할 때 발생하는 위상차를 해결하는 데이터 패스 홀드와,
    상기 프로세서 명령에 대한 정보를 저장하는 프로세서 홀드와,
    상기 데이터 검색 및 상기 프로세서 명령을 중재하는 중재기와,
    상기 데이터 검색에 대한 결과값을 받는 동안 상기 패킷을 유지하는 대기 룸 을 포함하는 것을 특징으로 하는 패킷 포워딩 장치.
  8. 제5항에 있어서, 상기 네트워크 검색 엔진 접근부는,
    상기 외부 네트워크 검색 엔진과 인터페이스하는 입/출력기와,
    상기 중재된 상기 데이터 검색 및 프로세서 명령을 선택하여 선택된 결과를 상기 네트워크 검색 엔진 중재부로 전달하는 명령어 선택기를 포함하는 것을 특징으로 하는 패킷 포워딩 장치.
  9. 인터넷 프로토콜 서비스를 위한 패킷 스위치 시스템에서의 패킷 전달에 대한 처리를 하드웨어적으로 처리하기 위한 패킷 포워딩 장치에서, 입력되는 패킷을 포워딩하기 위한 방법에 있어서,
    데이터 링크 계층과의 인터페이스를 통해 입력된 상기 패킷을 미리 설정된 로직을 이용하여 변환하는 과정과,
    상기 변환된 패킷의 헤더를 분석하는 과정과,
    상기 분석된 결과를 이용하여 상기 패킷 전달을 위한 데이터 검색 및 프로세서 명령을 제어하는 과정을 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
  10. 제9항에 있어서,
    외부 네트워크 검색 엔진의 검색을 통한 상기 패킷의 동기를 맞추는 과정과,
    상기 동기화된 패킷에 플로우별 처리를 위한 정보를 삽입하고, 상기 패킷의 헤더를 재정렬하는 과정과,
    상기 패킷에서 내부 프로세싱을 하기 위해 삽입된 오버헤드를 제거하는 과정을 더 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
  11. 제9항에 있어서, 상기 패킷 전달을 위한 데이터 검색 및 프로세서 명령을 제어하는 과정은,
    상기 분석된 결과를 통해 상기 패킷에서 데이터 검색을 위한 키 값을 검출하는 단계와,
    외부 프로세서와 인터페이스를 통해 수신된 프로세서 명령을 수행하는 단계와,
    상기 입력된 패킷에 대한 데이터 검색 및 상기 프로세서 명령을 중재하는 단계와,
    상기 중재에 따라 상기 데이터 검색을 위한 룩업을 수행하는 단계와,
    상기 중재에 따라 상기 프로세서 명령에 따른 키 값을 로딩하는 단계를 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
  12. 제11항에 있어서, 상기 외부 프로세서와 인터페이스를 통해 수신된 프로세서 명령을 수행하는 단계는,
    상기 외부 프로세서로부터 프로세서 명령이 입력되면 상기 프로세서 명령에 대한 명령어 종류를 파악하는 단계와,
    상기 파악된 명령어에 대한 키 값을 발생하는 단계와,
    상기 발생된 키 값을 이용하여 상기 파악된 명령어를 수행하는 단계를 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
  13. 제11항에 있어서, 상기 입력된 패킷에 대한 데이터 검색 및 상기 프로세서 명령을 중재하는 단계는,
    상기 입력된 패킷에서 검출한 상기 데이터 검색을 위한 키 값을 저장하는 단계와,
    상기 프로세서 명령에 대한 명령 정보를 저장하는 단계와,
    상기 저장된 상기 데이터 검색을 위한 키 값 및 상기 명령 정보를 이용하여 상기 데이터 검색 및 프로세서 명령을 중재하는 단계와,
    상기 데이터 검색 결과를 받는 동안 상기 입력되는 패킷을 대기시키는 단계를 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
  14. 제13항에 있어서, 상기 데이터 검색 및 프로세서 명령을 중재하는 단계는,
    상기 데이터 검색에 대한 명령과 상기 프로세서 명령의 우선순위를 결정하는 단계와,
    상기 우선순위가 높은 명령의 데이터 패스 인에이블을 확인하는 단계와,
    상기 데이터 패스가 인에이블된 경우 데이터 패스 명령어를 처리하는 단계와,
    상기 데이터 패스 명령어 처리 시 미리 설정된 비트의 검색인 경우 외부 네트워크 검색 엔진과의 데이터 패스를 초기화하는 단계와,
    상기 우선순위가 높은 명령의 프로세서 패스 인에이블을 확인하는 단계와,
    상기 프로세서 패스가 인에이블된 경우 프로세서 패스 명령어를 처리하는 단계와,
    상기 프로세서 패스 명령어 처리 시 상기 외부 네트워크 검색 엔진으로부터의 응답 신호에 따라 상기 프로세서 패스 명령어 처리를 완료하는 단계를 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
  15. 제11항에 있어서, 상기 중재에 따라 상기 데이터 검색을 위한 룩업을 수행하는 단계는,
    상기 데이터 검색을 위한 데이터 패스 명령이 인에이블 되었는지를 확인하는 단계와,
    상기 데이터 패스 명령이 인에이블된 경우 미리 설정된 비트의 검색의 인에이블에 따라 해당 비트의 상기 검색을 위한 키 값을 로딩하는 단계를 포함하는 것을 특징으로 하는 패킷 포워딩 방법.
KR1020060121828A 2006-12-04 2006-12-04 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법 KR100798926B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060121828A KR100798926B1 (ko) 2006-12-04 2006-12-04 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법
US11/936,201 US8451838B2 (en) 2006-12-04 2007-11-07 Apparatus and method for forwarding packet in packet switch system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060121828A KR100798926B1 (ko) 2006-12-04 2006-12-04 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법

Publications (1)

Publication Number Publication Date
KR100798926B1 true KR100798926B1 (ko) 2008-01-29

Family

ID=39219614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060121828A KR100798926B1 (ko) 2006-12-04 2006-12-04 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법

Country Status (2)

Country Link
US (1) US8451838B2 (ko)
KR (1) KR100798926B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060681B2 (en) 2007-11-27 2011-11-15 Microsoft Corporation Interface protocol and API for a wireless transceiver
US8902886B2 (en) * 2009-04-23 2014-12-02 International Business Machines Corporation Canonicalization of network protocol headers
JP5333340B2 (ja) * 2010-04-30 2013-11-06 富士通株式会社 無線装置及びパケットの転送方法
US8886834B2 (en) * 2010-12-14 2014-11-11 Cisco Technology, Inc. Hot standby neighbor discovery protocol for internet protocol version 6
US20130212340A1 (en) * 2012-02-15 2013-08-15 International Business Machines Corporation Partition aware quality of service feature
US9282173B2 (en) * 2012-02-17 2016-03-08 Viavi Solutions Inc. Reconfigurable packet header parsing
US9264295B1 (en) 2012-03-02 2016-02-16 Big Switch Networks, Inc. Systems and methods for forwarding broadcast network packets with a controller
US20130343181A1 (en) * 2012-06-21 2013-12-26 Jonathan Stroud Systems and methods of data processing using an fpga-implemented hash function
US20130343377A1 (en) * 2012-06-21 2013-12-26 Jonathan Stroud Hash-based packet distribution in a computer system
US10505846B2 (en) * 2015-07-22 2019-12-10 Cisco Technology, Inc. Resilient segment routing service hunting with TCP session stickiness
US10574794B1 (en) 2019-07-12 2020-02-25 Coupang Corp. Systems and methods for interfacing networks regardless of communication scheme

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010076079A (ko) * 2000-01-25 2001-08-11 오길록 기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층패킷 포워딩 처리 방법 및 장치
KR20030087434A (ko) * 2002-05-10 2003-11-14 한국전자통신연구원 고속 라우터에서 분산 포워딩을 위한 테이블 관리 방법
KR20030089935A (ko) * 2002-05-20 2003-11-28 한국전자통신연구원 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법
US20060092974A1 (en) 2004-11-01 2006-05-04 Lucent Technologies Inc. Softrouter

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01270484A (ja) * 1988-04-22 1989-10-27 Toshiba Corp ディジタル構内交換機
US7035277B1 (en) * 2000-08-31 2006-04-25 Cisco Technology, Inc. Priority-based arbitration system for context switching applications
US7237031B2 (en) * 2002-03-07 2007-06-26 Sun Microsystems, Inc. Method and apparatus for caching protocol processing data
KR100475969B1 (ko) 2002-06-19 2005-03-17 (주) 위즈네트 IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛
KR100477698B1 (ko) 2003-01-13 2005-03-18 삼성전자주식회사 IPv6 헤더 수신 장치 및 IPv6 헤더 처리 방법
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
US7437354B2 (en) * 2003-06-05 2008-10-14 Netlogic Microsystems, Inc. Architecture for network search engines with fixed latency, high capacity, and high throughput
KR100552515B1 (ko) 2004-01-07 2006-02-14 삼성전자주식회사 패킷 처리 장치 및 방법
US7539750B1 (en) * 2004-03-30 2009-05-26 Extreme Networks, Inc. System and method for packet processor status monitoring
JP2006180246A (ja) 2004-12-22 2006-07-06 Matsushita Electric Ind Co Ltd Ipパケット処理装置
US7382844B2 (en) * 2005-02-11 2008-06-03 International Business Machines Corporation Methods to self-synchronize clocks on multiple chips in a system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010076079A (ko) * 2000-01-25 2001-08-11 오길록 기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층패킷 포워딩 처리 방법 및 장치
KR20030087434A (ko) * 2002-05-10 2003-11-14 한국전자통신연구원 고속 라우터에서 분산 포워딩을 위한 테이블 관리 방법
KR20030089935A (ko) * 2002-05-20 2003-11-28 한국전자통신연구원 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법
US20060092974A1 (en) 2004-11-01 2006-05-04 Lucent Technologies Inc. Softrouter

Also Published As

Publication number Publication date
US20080130648A1 (en) 2008-06-05
US8451838B2 (en) 2013-05-28

Similar Documents

Publication Publication Date Title
KR100798926B1 (ko) 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법
US8743882B1 (en) Packet header altering device
US7110400B2 (en) Random access memory architecture and serial interface with continuous packet handling capability
US6650642B1 (en) Network relaying apparatus and network relaying method capable of high-speed routing and packet transfer
US6731652B2 (en) Dynamic packet processor architecture
US7961733B2 (en) Method and apparatus for performing network processing functions
JP3640299B2 (ja) ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ
US6683885B1 (en) Network relaying apparatus and network relaying method
US7643511B2 (en) Frame alteration logic for network processors
US8094670B1 (en) Method and apparatus for performing network processing functions
US20080225874A1 (en) Stateful packet filter and table management method thereof
US20060174058A1 (en) Recirculation buffer for semantic processor
JPH11261649A (ja) データ処理装置及びそれを適用したルータ・ブリッジ
JP4182180B2 (ja) ネットワーク中継装置及びネットワーク中継方法
JP4700063B2 (ja) リアルタイムパケット処理システムおよび方法
KR100793349B1 (ko) Ppp 멀티링크를 지원하는 시스템에서의 멀티캐스트트래픽 포워딩 장치 및 제어방법
US7188250B1 (en) Method and apparatus for performing network processing functions
JP4921142B2 (ja) 通信装置
KR20010076079A (ko) 기가비트 이더넷 기반 라우터에서의 병렬처리형 3계층패킷 포워딩 처리 방법 및 장치
JP3645735B2 (ja) ネットワーク中継装置及びネットワーク中継方法
JP3645733B2 (ja) ネットワーク中継装置及びネットワーク中継方法
TWI825293B (zh) 應用在網路裝置中的電路
US9559987B1 (en) Method and apparatus for improving CAM learn throughput using a cache
JP3508057B2 (ja) レイヤ3スイッチ
JP2004336437A (ja) 映像受信回路および映像受信装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110104

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20111208

Year of fee payment: 20