KR100748090B1 - 고속 라우터에서의 패킷 처리 장치 및 그 방법 - Google Patents

고속 라우터에서의 패킷 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR100748090B1
KR100748090B1 KR1020060041694A KR20060041694A KR100748090B1 KR 100748090 B1 KR100748090 B1 KR 100748090B1 KR 1020060041694 A KR1020060041694 A KR 1020060041694A KR 20060041694 A KR20060041694 A KR 20060041694A KR 100748090 B1 KR100748090 B1 KR 100748090B1
Authority
KR
South Korea
Prior art keywords
packet
layer
processor
address
received
Prior art date
Application number
KR1020060041694A
Other languages
English (en)
Other versions
KR20070059833A (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 US11/634,730 priority Critical patent/US7729362B2/en
Publication of KR20070059833A publication Critical patent/KR20070059833A/ko
Application granted granted Critical
Publication of KR100748090B1 publication Critical patent/KR100748090B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/686Types of network addresses using dual-stack hosts, e.g. in Internet protocol version 4 [IPv4]/Internet protocol version 6 [IPv6] networks

Abstract

본 발명은 따른 고속 라우터에서의 패킷 처리창치 및 그 방법에 관한 발명으로서, 포워딩 프로세서의 입력단 프로세서에서 ARP(Address Resolution Protocol) 와 NDP(Neighbor Discovery Protocol) 관련 패킷을 복사해서 한 패킷은 제어프로세서로, 다른 한 패킷은 출력단 프로세서로 보내고, 출력단 프로세서에서는 계층2 주소 테이블 관리를 간접주소 테이블과 직접주소 테이블로 분리하여 관리하며, 간접주소 테이블은 입력단 프로세서 테이블의 넥스트홉 테이블에서 직접 인텍싱 되며, 직접주소 테이블은 목적지 IP 주소에 대한 해싱 테이블로 구성하므로써, 제어 프로세서와 포워딩 프로세서로 분리되어 있는 고속라우터에서 포워딩 프로세서가 차지하는 포워딩 정보 테이블의 메모리를 줄이고, 제어 프로세서와 포워딩 프로세서 사이의 IPC 메시지를 감소시켜 시스템 효율을 증대시킨다.
고속라우터, 간접주소 테이블, 직접주소 테이블, 계층2 주소 테이블

Description

고속 라우터에서의 패킷 처리 장치 및 그 방법{METHOD AND APPARATUS FOR PROCESSING PACKET IN HIGH SPEED ROUTER}
도 1은 일반적인 고속 라우터의 내부 블록 구성을 나타낸 도면이다.
도 2는 도 1에 도시한 고속 라우터의 각 프로세서가 관리하는 정보 테이블의 종래기술에 따른 구성을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 고속 라우터의 포워딩 및 계층2 주소 테이블 블록 구성을 포함한 패킷 처리 장치를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 고속 라우터의 입력단 프로세서에서의 패킷처리 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 고속 라우터의 출력단 프로세서에서의 패킷 처리 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 고속 라우터의 출력단 프로세서에서 ARP 응답 또는 NA 패킷처리 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
*도면의 주요 부분에 대한 부호의 설명*
100 : 제어 프로세서 200 : 이더넷 스위치
300 : 포워딩 프로세서 310 : 입력 프로세서
320 : 입력 네트워크 프로세서 330 : 스위치 패브릭
340 : 출력 프로세서 350 : 출력 네트워크 프로세서
110, 311 : 프리픽스 테이블 120, 312 : 넥스트홉 테이블
130 : 계층2 주소 테이블 341 : 계층2 간접 주소 테이블
342 : 계층2 직접 주소 테이블 343 : IPv4 패킷 큐
344 : IPv6 패킷 큐
본 발명은 고속 라우터에서의 패킷 처리 장치 및 그 방법에 관한 것이다.
일반적으로 이더넷에서 IP 패킷을 전송하기 위해서는 최종 출력단에서 계층2 주소를 알아야 하는데, 이때 상대방의 계층2 주소를 알아내기 위해 IPv4(Internet Protocol version 4)에서는 ARP(Address Resolution Protocol)를 사용하고, IPv6(Internet Protocol version 6)에서는 NDP(Neighbor Discovery Protocol)를 사용한다.
그리고, 일반적인 라우터에서는 라우팅 프로토콜이 구동되는 제어프로세서에서 패킷 포워딩을 모두 처리하기 때문에 라우팅 테이블과 계층 2 주소 정보가 하나의 프로세서에서 모두 이루어지는 간단한 구조를 갖는다. 하지만 고속 라우터에서는 제어프로세서, 입력프로세서 및 출력프로세서가 각기 자기역할을 하며 서로 다른 프로세서에서 구동되기 때문에 필요한 정보 테이블도 각자 갖게 된다. 따라서 이들 정보 테이블 사이의 동기를 맞추기 위한 복잡한 절차가 뒤따라야 한다.
도 1은 일반적인 고속 라우터의 내부 블록 구성을 개략적으로 나타낸 도면이다.
도 1에 도시된 바와 같이, 고속 라우터는 제어 프로세서(100)와 포워딩 프로세서(300)를 포함하고, 포워딩 프로세서(300)는 입력 네트워크 프로세서를 포함한 입력 프로세서(310), 출력 네트워크 프로세서(350)를 포함한 출력 프로세서(340), 스위치 패브릭(330)를 포함한다.
제어 프로세서(100)와 포워딩 프로세서(300)는 보통 이더넷 스위치(200)로 연결되어 패킷 또는 필요한 IPC(Inter Processor Communication)메시지를 주고 받을 수 있다.
여기서, 실제적인 입력 패킷의 포워딩은 포워딩 프로세서(300)의 입력 프로세서(310)와 출력 프로세서(340)에 포함되어 있는 입,출력 네트워크 프로세서(320, 350)에서 이루어진다.
포워딩 프로세서(300)의 입,출력 네트워크 프로세서(320, 350)는 스위치 패브릭(330)으로 연결되어 있고, 입력 프로세서(310)와 출력 프로세서(340)는 PCI 등의 내부 버스로 연결되어 있다.
한편, 상기한 포워딩 프로세서(300)는 고속 라우터의 용량에 따라 다수 개로 구성될 수 있다.
상기한 고속 라우터에서 포워딩 정보 테이블의 구성 및 포워딩 정보 테이블을 이용하여 패킷을 포워딩하는 종래 기술에 대하여 간단하게 설명해 보기로 하자.
도 2는 도 1에 도시한 고속 라우터의 각 프로세서가 관리하는 정보 테이블의 종래 기술에 따른 구성을 나타낸 도면이다. 여기서, 도 1에 도시된 구성요소와 동일한 구성요소에 대하여는 그 기능 및 동작이 동일 또는 유사하기 때문에 그 상세한 설명은 생략하기로 한다.
도 2에 도시된 바와 같이, 포워딩 프로세서(300)의 입력 프로세서(310)에서는 프리픽스(Prefix) 테이블(311)과 넥스트 홉(Next-Hop) 테이블(312)을 관리하고, 출력 프로세서(340)에서는 계층2 주소 테이블(341)을 관리한다.
그리고, 제어 프로세서(100)에서는 프리픽스 테이블(110), 넥스트홉 테이블(120) 및 계층2 주소 테이블(130)을 모두 관리한다.
또한, 포워딩 프로세서(300)의 입력 프로세서(310)와 입력 네트워크 프로세서(320)는 입력 프로세서(310)의 프리픽스 테이블(311)과 넥스트 홉 테이블(312)을 공유하며, 출력 네트워크 프로세서(350)는 출력 프로세서(340)의 계층2 주소 테이블(341)을 공유한다. 여기서, 제어 프로세서(100)의 프리픽스 테이블(110), 넥스트 홉 테이블(120) 및 계층 2 주소 테이블(130)에 저장된 정보와 포워딩 프로세서(300)내 입력 프로세서(310)의 프리픽스 테이블(311), 넥스트 홉 테이블(312) 및 출력 프로세서(340)의 계층2 주소 테이블(341)에 저장된 정보가 동일하도록 상호 동기가 이루어져야 한다.
또한, 포워딩 프로세서(300)의 입력 프로세서(310)에서 프리픽스 테이블(311)의 엔트리는 하나의 프리픽스에 대해 하나의 테이블 엔트리를 차지하며, 넥스트 홉 테이블(312)과 다대일로 맵핑된다.
넥스트 홉 테이블(312)은 출력 프로세서(340)의 계층2 주소 테이블(341)과 일대일 맵핑된다. 그런데 포워딩 패킷의 목적지 주소와 넥스트홉 의 주소가 같은 직접 라우팅(Direct Routing)의 경우에는 같은 프리픽스에 속하는 패킷의 경우에도 여러 개의 계층2 주소를 갖게 된다.
따라서 종래의 기술에서 직접 라우팅의 경우, 입력 프로세서(310)의 프리픽스 테이블(311)은 해당 프리픽스에 대해 하나의 테이블 엔트리가 할당되지 않고, 모든 호스트 주소에 대해 테이블 엔트리가 하나씩 할당된다. 예를 들어 24 프리픽스의 경우 프리픽스 테이블(311) 엔트리의 개수는 최대 256개로 증가되고 이에 따라 넥스트 홉 테이블(312) 엔트리의 개수도 증가될 수밖에 없다. 이는 라우터의 메모리 증대를 초래하는 문제점을 가지게 되는 것이다.
또한 포워딩을 위한 모든 테이블이 하나의 프로세서에 집약되어 있는 제어 프로세서(100)에서는 직접 라우팅의 경우에도 상기와 같은 문제가 발생하지 않는다. 이는 제어 프로세서(100)와 포워딩 프로세서(300)의 라우팅 테이블 동기를 위한 IPC 메시지가 복잡하게 되는 원인을 제공하는 문제점을 가지게 되는 것이다.
본 발명은 상기와 같은 종래기술에 따른 문제점을 해결하기 위한 것으로, 고속 라우터에서 직접 라우팅의 경우에 메모리 사용 효율을 높이고, 또한 계층2 주소 테이블의 동기화를 위한 제어 프로세서와 출력 프로세서 사이의 IPC 메시지를 제거함으로써, 효율적인 포워딩을 수행할 수 있도록 하는 고속 라우터에서의 패킷 처리 장치 및 그 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명에 따른 고속 라우터의 패킷 처리장치는 입력단 프로세서, 출력단 프로세서를 포함하는 포워딩 프로세서와 제어 프로세서를 포함하여 구성되는 고속 라우터의 패킷 처리장치로서, 여기에서 상기 포워딩 프로세서의 출력단 프로세서는 계층2 주소 테이블 관리를 입력단 프로세서의 넥스트홉 테이블에서 직접 인덱싱되는 계층2 간접주소 테이블 및 해당 패킷의 목적지 IP 주소에 대한 해싱 테이블로 구성되는 계층2 직접주소 테이블로 분리하여 관리할 수 있다.
상기 제어 프로세서는 프리픽스 테이블, 넥스트홉 테이블 및 계층2 주소 테이블을 포함하고, 상기 입력단 프로세서는 프리픽스 테이블과 넥스트홉 테이블을 포함하며, 상기 출력단 프로세서는 계층2 간접주소 테이블, 계층2 직접주소 테이블, IPv4 패킷 규 및 IPv6 패킷 큐를 포함한다.
상기 입력단 프로세서의 넥스트홉 테이블은 출력단 프로세서의 계층2 간접주소 테이블 및 계층2 직접주소 테이블 간의 참조를 구분하기 위하여 플래그 또는 인덱스를 갖는다.
상기 입력단 프로세서는, 상기 제어 프로세서의 계층2 주소 테이블과 출력단 프로세서의 계층2 직접 주소 테이블 및 간접 주소 테이블의 동기를 맞추기 위해 입력단 프로세서로부터 ARP 응답 또는 NA(Neighbor Advertisement) 패킷이 수신되면 패킷을 복사해서 제어 프로세서와 출력단 프로세서로 각각 전송한다.
상기 출력단 프로세서는, 상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있으면 패킷으로부터 목적지 IP 주소를 추출하고, 목적지 IP 주소에 대한 해싱값(Hashing Value)을 계산한 후, 계산된 해싱값에 따라 계층2 직접주소 테이블을 참조하여 계층2 해더를 생성하여 패킷을 포워딩한다.
상기 출력단 프로세서는, 상기 계산된 해싱값에 대해 계층2 직접주소 테이블 엔트리가 존재하지 않으면 목적지 IP 주소 해싱값에 따라 패킷을 상기 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장한 후, 수신된 패킷이 IPv4 패킷인 경우 ARP 요구 패킷을 전송하고, IPv6 패킷의 경우는 NS(Neighbor Solicitation) 패킷을 전송한다.
상기 출력단 프로세서는, 상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있지 않은 경우 상기 계층2 간접주소 테이블을 참조하여 테이블 엔트리가 존재하는지 판단하여 엔트리가 존재하지 않은 경우 수신된 패킷을 폐기하고, 계층2 간접주소 테이블 엔트리가 존재하고, 계층2 주소의 값이 존재하는 경우 계층2 헤더를 생성하여 패킷을 포워딩한다.
상기 출력단 프로세서는, 상기 계층2 간접주소 테이블 엔트리가 존재하고, 계층2 주소의 값이 존재하지 않은 경우, 수신된 패킷을 목적지 IP 주소 해싱 값에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, 패킷의 종류에 따라 ARP 요구 패킷 또는 NS 패킷을 전송한다.
상기 출력단 프로세서는, 상기 ARP 요구 패킷 및 NS 패킷에 따른 ARP 응답 또는 NA 패킷이 입력단 프로세서로부터 수신되면, 수신된 패킷에 대해 상기 계층2 간접주소 테이블에 해당 엔트리의 존재를 판단하여 해당 엔트리가 존재하면, 상기 계층2 간접주소 테이블 엔트리를 업데이트하고, 계층2 간접 주소 테이블에 해당 엔트리가 존재하지 않고 계층2 직접주소 테이블에 해당 엔트리가 존재하는 경우 상기 계층2 직접주소 테이블 엔트리를 업데이트 하며, 계층2 직접 주소 테이블에 해당 엔트리가 존재하지 않은 경우 새로운 엔트리를 추가한다.
상기 출력단 프로세서는, 상기 엔트리를 업데이트 또는 추가를 수행한 후, 상기 입력단 프로세서로부터 수신된 패킷이 ARP 응답 패킷인 경우 상기 IPv4 패킷 큐에 저장된 패킷을 포워딩하고, NA 패킷인 경우에는 IPv6 패킷 큐에 저장된 패킷을 포워딩한다.
또한, 본 발명에 따른 입력단 프로세서, 제어프로세서, 출력단 프로세서를 포함하는 고속 라우터에서의 패킷 처리장치의 다른 측면에 따르면, 상기 출력단 프로세서는, a) 상기 입력단 프로세서로부터 수신된 포워딩 패킷에 대한 목적지 IP 주소가 계층2 간접주소 테이블 또는 계층2 직접주소 테이블에 등록되어 있지 않은 경우 포워딩할 패킷을 패킷 종류에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, IPv4 패킷의 경우는 ARP 요구 패킷을 IPv6 패킷의 경우는 NS(Neighbor Solicitation)패킷을 상기 입력단 프로세서로 전송하고, b) 상기 입력단 프로세서로부터 상기 ARP 요구 패킷 또는 NS 패킷에 대한 ARP 응답 패킷 또는 NA 패킷이 수신되면, 계층 2 주소 학습(learning)을 수행하며, 학습된 계층 2 주소를 계층2 간접 주소 테이블 또는 계층2 직접주소 테이블에 업데이트한 후, 패킷 종류에 따라 상기 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장된 패킷을 순차적으로 포워딩한다.
상기 입력단 프로세서는, ARP 요구 패킷 또는 NS 패킷이 수신되면 수신된 패 킷을 상기 제어 프로세서로 전송하고, ARP 응답 패킷 또는 NA 패킷이 수신되면 수신된 패킷을 복사해서 하나의 패킷은 제어 프로세서로 전송하고, 또 다른 하나의 패킷은 상기 출력단 프로세서로 전송한다.
한편, 본 발명에 따른 입력단 프로세서, 제어프로세서, 출력단 프로세서를 포함하는 고속 라우터에서의 패킷 처리방법의 일 측면에 따르면, 상기 출력단 프로세서는, 상기 입력단 프로세서로부터 수신된 포워딩 패킷에 대한 목적지 IP 주소가 계층2 간접주소 테이블 또는 계층2 직접주소 테이블에 등록되어 있지 않은 경우 포워딩할 패킷을 패킷 종류에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, 상기 IPv4 패킷의 경우는 ARP 요구 패킷을 IPv6 패킷의 경우는 NS(Neighbor Solicitation)패킷을 전송하는 단계; 상기 입력단 프로세서로부터 상기 ARP 요구 패킷 또는 NS 패킷에 대한 ARP응답 패킷 또는 NA 패킷이 수신되면, 계층 2 주소 학습(learning)을 수행하며, 학습된 계층 2 주소를 계층2 간접 주소 테이블 또는 계층2 직접주소 테이블에 업데이트한 후, 패킷 종류에 따라 상기 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장된 패킷을 순차적으로 포워딩하는 단계를 포함할 수 있다.
상기 입력단 프로세서는 ARP 요구 패킷 또는 NS패킷이 수신되는 경우, 수신된 패킷을 상기 제어 프로세서로 전송하는 단계; 상기 전송된 ARP 요구 패킷 또는 NS 패킷에 대한 ARP 응답 패킷 또는 NA 패킷이 수신되면 수신된 패킷을 복사해서 하나의 패킷은 제어 프로세서로 전송하고, 또 다른 하나의 패킷은 상기 출력단 프로세서로 전송하는 단계를 포함한다.
상기 출력단 프로세서는, 상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는지를 판단하는 단계; 상기 판단 결과, 상기 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는 경우, 수신된 패킷으로부터 목적지 IP 주소를 추출한 후, 상기 추출된 목적지 IP 주소에 대한 해싱값을 계산하는 단계; 상기 계산된 해싱값에 대해 계층2 직접주소 테이블 엔트리가 존재하면 계층2 헤더를 생성해서 수신된 패킷을 포워딩하는 단계를 포함한다.
상기 포워딩하는 단계에서 출력단 프로세서는, 상기 계산된 해싱값에 대해 계층2 직접주소 테이블 엔트리가 존재하지 않으면 목적지 IP 주소 해싱값에 따라 패킷을 패킷의 종류에 따라 상기IPv4 패킷큐 또는 IPv6 패킷 큐에 저장한 후, 수신된 패킷이 IPv4 패킷인 경우 ARP 요구 패킷을 상기 입력단 프로세서로 전송하고, IPv6 패킷의 경우는 NS 패킷을 상기 입력단 프로세서로 전송하는 단계를 포함한다.
상기 판단하는 단계에서, 상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있지 않은 경우 상기 출력단 프로세서는 상기 계층2 간접주소 테이블을 참조하여 테이블 엔트리가 존재하는지 판단하는 단계; 상기 판단 결과, 엔트리가 존재하지 않은 경우 수신된 패킷을 폐기하고, 계층2 간접주소 테이블 엔트리가 존재하고 계층2 주소의 값이 존재하는 경우 계층2 헤더를 생성하여 목적지 IP 주소로 패킷을 포워딩하는 단계를 포함한다.
상기 계층2 간접주소 테이블 엔트리가 존재하고, 계층2 주소의 값이 존재하지 않은 경우, 수신된 패킷을 목적지 IP 주소 해싱 값에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, 패킷 종류에 따라 ARP 요구 패킷 또는 NS 패킷을 전송하 는 단계를 포함한다.
상기 ARP 요구 및 NS 패킷에 따른 ARP 응답 또는 NA 패킷이 입력단 프로세서로부터 수신되면, 상기 출력단 프로세서는 수신된 패킷에 대해 상기 계층2 간접주소 테이블 및 계층2 직접 주소 테이블에 해당 엔트리가 존재하는지를 판단하는 단계; 판단 결과, 수신된 패킷에 대해 상기 계층2 간접주소 테이블에 해당 엔트리가 존재하는 경우, 상기 계층2 간접주소 테이블 엔트리를 업데이트하고, 계층2 간접 주소 테이블에 해당 엔트리가 존재하지 않고 계층2 직접주소 테이블에 해당 엔트리가 존재하는 경우 상기 계층2 직접주소 테이블 엔트리를 업데이트 하며, 계층2 직접 주소 테이블에 해당 엔트리가 존재하지 않은 경우 새로운 엔트리를 상기 계층2 직접주소 테이블에 추가하는 단계를 포함한다.
상기 엔트리를 업데이트 또는 추가를 수행한 후, 상기 출력단 프로세서는 상기 입력단 프로세서로부터 수신된 패킷이 ARP 응답 패킷인 경우 상기 IPv4 패킷 큐에 저장된 패킷을 포워딩하고, NA 패킷인 경우에는 IPv6 패킷 큐에 저장된 패킷을 포워딩하는 단계를 포함한다.
이하, 본 발명에 따른 고속 라우터에서의 패킷 처리 장치 및 그 방법에 대한 바람직한 실시예에 대하여 첨부한 도면을 참조하여 상세하게 설명해 보기로 하자. 이때, 상세한 설명에 있어 도 1 및 도 2에 도시된 도면의 구성요소와 중복되는 동일한 구성요소에 대하여는 그 상세 설명을 생략하고 본원발명의 필수 구성요소 위주의 구성 및 동작에 대하여 상세하게 설명하기로 한다.
도 3은 본 발명의 일실시예에 따른 고속 라우터의 패킷 처리 장치에 대한 내부 블록 구성을 나타낸 도면이다.
도 3에 도시된 바와 같이, 본 발명에 따른 고속 라우터는, 제어 프로세서(100), 이더넷 스위치(200), 포워딩 프로세서(300)를 포함한다.
제어 프로세서(100)는 프리픽스 테이블(110), 넥스트 홉 테이블(120) 및 계층2 주소 테이블(130)을 포함한다.
포워딩 프로세서(300)는 입,출력 프로세서(310, 340), 입,출력 네트워크 프로세서(320, 350) 및 스위치 패브릭(330)을 포함한다.
포워딩 프로세서(300)의 입력 프로세서(310)는 프리픽스 테이블(311) 및 넥스트 홉 테이블(312)를 포함하고, 출력 프로세서(340)는 계층2 간접 주소 테이블(341), 계층2 직접 주소 테이블(342), IPv4 패킷 큐(343) 및 IPv6 패킷 큐(344)를 포함한다.
상기한 바와 같이, 본 발명에 따른 포워딩 프로세서(300)내 출력 프로세서(340)의 계층2 주소 테이블은 계층 2 간접주소 테이블(341)과 계층2 직접주소 테이블(342)로 분리되어 구성되어 있다. 이때, 상기 계층2 간접주소 테이블(341)은 입력 프로세서(310)의 넥스트 홉 테이블(312)에서 직접 인덱싱(Indexing) 되도록 하고, 상기 계층2 직접주소 테이블(342)은 목적지 인터넷 프로토콜 주소(IP)에 대한 해싱 테이블로 구성한다. 또한, 입력 프로세서(310)의 넥스트 홉 테이블(312)에 플래그를 추가하여 출력 프로세서(340)의 계층2 간접주소 테이블(341) 및 계층2 직접주소 테이블(342)의 참조를 구분하도록 한다.
한편, 포워딩 프로세서(300)내 출력 프로세서(340)의 IPv4 패킷 큐(343)과 IPv6 패킷 큐(344)를 두어 계층2 주소가 학습될 때까지의 각각의 패킷의 종류에 따라 패킷을 저장하도록 한다.
이하, 이와 같은 구성을 갖는 본 발명에 따른 고속 라우터에서의 패킷 처리 동작에 대하여 상세하게 설명한다.
먼저, 포워딩 될 패킷이 출력 프로세서(340)에 도착되면, 출력 네트워크 프로세서(350)는 도착된 패킷의 목적지 주소가 출력 프로세서(340)의 계층2 간접주소 테이블(341) 또는 계층2 직접주소 테이블(342)에 등록되어 있는지 여부를 참조하고, 등록되어 있지 않다면 포워딩할 패킷을 패킷의 종류에 따라 IPv4 패킷 큐(343) 또는 IPv6 패킷 큐(344)에 각각 저장한다.
이때, 출력 네트워크 프로세서(350)는 도착된 패킷이 IPv4 패킷인 경우에는 ARP 요구 패킷을 입력 네트워크 프로세서(320)로 전송하고, IPv6 패킷인 경우에는 NS(Neighbor Solicitation) 패킷을 전송하게 된다.
입력 네트워크 프로세서(320)는 ARP 요구 패킷 또는 NS 패킷이 수신되면, 이를 이더넷 스위치(200)를 통해 제어 프로세서(100)로 전송한다.
입력 네트워크 프로세서(320)는 상기 ARP 응답 패킷 또는 NA 패킷이 수신되면 수신된 패킷을 복사해서 하나의 패킷은 제어 프로세서(100)로 전달하고, 또 다른 하나의 패킷은 출력 네트워크 프로세서(350)로 전송하므로써, 제어 프로세서(100) 및 출력 네트워크 프로세서(350)에서, 상기 입력 네트워크 프로세서(320) 로부터 전송된 패킷에 따른 각각 계층 2 주소 학습(Learning)을 진행시킨다.
다음으로 제어 프로세서(100)는 이렇게 학습된 계층 2 주소를 계층2 주소 테이블(130)에 업데이트하고, 출력 네트워크 프로세서(350)는 출력 프로세서(340)의 계층2 직접주소 테이블(342)에 각각 업데이트하게 된다.
따라서, 출력 네트워크 프로세서(350)는 출력 프로세서(340)의 계층2 직접주소 테이블(342)에 저장된 목적지 주소를 이용하여 IPv4 패킷 큐(343) 또는 IPv6 패킷 큐(344)에 저장된 패킷을 포워딩하게 된다.
첨부한 도 4 내지 도 6을 참조하여 본 발명의 일실시예에 따른 고속 라우터에서의 패킷 포워딩 동작에 상응하는 패킷 포워딩 방법에 대하여 구체적이면서 단계적으로 설명해 보기로 하자.
도 4는 본 발명의 일실시예에 따른 고속 라우터의 입력단 프로세서에서의 패킷 처리 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 4에 도시된 바와 같이, 먼저 고속 라우터의 입력 네트웍 프로세서(320)는 외부로부터 입력되는 패킷을 수신한다(S101).
패킷이 수신되면, 입력 네트워크 프로세서(320)는 수신된 패킷이 ARP 응답 패킷 또는 NS 패킷인지를 판단한다(S102).
판단 결과, 수신된 패킷이 ARP 응답 패킷 또는 NS 패킷인 경우, 수신된 패킷을 복사하여 제어 프로세서(100)와 출력 프로세서(340)로 전송한다(S103, S104).
만약, 상기 수신된 패킷이 ARP 응답 패킷 또는 NS 패킷이 아닌 경우, 입력 네트워크 프로세서(320)는 입력 프로세서(310)의 프리픽스 테이블(311)을 참조하여 수신된 패킷이 포워딩될 패킷인지 판단한다(S105). 판단 결과, 수신된 패킷이 포워딩될 패킷인 경우에는, 출력 네트워크 프로세서(350)로 상기 패킷을 전송하지만, 상기 S105 단계에서 수신된 패킷이 포워딩 패킷이 아닌 경우에는, 수신된 패킷이 폐기될 패킷인지를 판단하게 된다(S107).
판단 결과, 수신된 패킷이 폐기될 패킷인 경우에는 수신된 패킷을 폐기 처리하고(S109), 수신된 패킷이 폐기될 패킷이 아닌 경우에는 수신된 패킷을 제어 프로세서(100)로 전송한다(S108).
여기에서, 상기 S106단계에서 수신된 포워딩 패킷을 출력 네트워크 프로세서(350)로 패킷을 전송할 경우에는 스위치 패브릭(330)을 통해 전송하고, 전송되는 패킷내에는 출력 프로세서(340)의 계층2 간접주소 테이블(341)을 가리키는 인덱싱 값을 포함한다. 또한, 계층2 간접주소 테이블(341)의 인덱싱 값과 함께 계층2 직접주소 테이블(342)의 참조 여부를 나타내는 플래그가 함께 출력 네트워크 프로세서(350)로 전송된다. 여기서, 상기 플래그는 0과 같은 특별한 인덱싱 값이 이 플래그를 대신하도록 하는 것도 바람직하다.
이하, 도 5를 참조하여 입력 네트워크 프로세서(320)로부터 패킷이 수신된 상태에서 출력 네트워크 프로세서(350)에서 패킷이 처리되는 방법에 대하여 설명한다.
도 5는 본 발명의 일실시예에 따른 출력 네트워크 프로세서(350)의 패킷 처리 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 5에 도시된 바와 같이, 먼저 스위치 패브릭(330)을 통해 입력 네트워크 프로세서(320)로부터 패킷을 수신한다(S201).
패킷이 수신되면 출력 네트워크 프로세서(350)는 수신된 패킷의 정보 중에서 계층2 직접 주소 참조 플래그가 설정되어있는지를 판단한다(S202).
판단 결과, 계층2 직접 주소 참조 플래그가 설정되어있는 경우, 수신된 패킷으로부터 목적지 IP 주소를 추출하고(S203), 추출된 목적지 IP 주소로부터 해싱 값을 계산하여(S204) 출력 프로세서(340)의 계층2 직접주소 테이블(342)을 참조하여 계층2 직접주소 테이블 엔트리가 존재하는지를 판단한다(S205, S206).
판단 결과, 계층2 직접주소 테이블 엔트리가 존재하는 경우, 계층2 직접주소 테이블 엔트리의 내용을 이용하여 계층2 헤더를 생성하여 수신된 패킷을 목적지로 전송한다(S207, S208).
그러나, 상기 S206에서 판단 결과 계층2 직접주소 테이블 엔트리가 존재하지 않은 경우, 포워딩할 패킷을 패킷의 종류에 따라 출력 프로세서(340)의 IPv4 또는 IPv6 패킷 큐(343 또는 344)에 저장하고(S209), IPv4 패킷의 경우는 ARP요구 패킷을 전송하고, IPv6 패킷의 경우는 NS 패킷을 전송한다(S210).
패킷 큐는 IPv4 및 IPv6 패킷에 대해 각각 존재하면 IP 주소에 대한 해싱 테이블로 구성된다. 해당 IP 주소에 대한 계층2 주소가 학습되면 큐(343 또는 344)에 저장된 패킷을 전송한다. 또한 큐의 개수는 라우터의 메모리 량에 따라 조절이 가능하다. ARP 요구 또는 NS에 따른 응답이 일정시간 동안 없는 경우에는 큐에 있는 패킷들은 폐기 처리하게 되는 것이다.
한편, 상기 S202단계에서의 판단 결과, 계층2 직접주소 참조 플래그가 설정되어 있지 않으면 계층2 간접 주소 테이블(341)을 참조하여 계층2 주소 테이블 엔트리가 존재하는지를 판단하게 된다(S211, S212).
판단 결과, 계층2 간접 주소 테이블(341)에 참조할 계층2 주소 테이블 엔트리가 존재하지 않으면 해당 패킷은 폐기하고(S214), 계층2 간접 주소 테이블(341)에 참조할 계층2 주소 테이블 엔트리가 존재하는 경우에는 엔트리 내용에서 계층2 주소가 존재하는지를 판단하게 되는 것이다(S213).
판단 결과, 계층2 주소가 존재하지 않는 경우 해당 패킷을 패킷의 종류에 따라 IPv4 패킷 큐(343) 또는 IPv6 패킷 큐(344)에 저장하고(S215), IPv4 패킷의 경우는 ARP요구 패킷을 전송하고, IPv6 패킷의 경우는 NS 패킷을 전송한다(S216).
그러나, 상기 S213 단계에서 계층2 주소 테이블 엔트리에 계층2 주소가 존재하는 경우에는 계층2 헤더를 생성해서(S207) 수신된 패킷을 다음 라우터로 전송하게 되는 것이다(S208).
이하, 도 6을 참조하여 출력 프로세서(340)에서의 계층2 주소 학습에 대한 처리 방법에 대하여 살펴보자.
도 6은 본 발명의 일실시예에 따른 고속 라우터의 출력단 프로세서에서 ARP 응답 또는 NA 패킷처리 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 6에 도시된 바와 같이, 입력 네트워크 프로세서(320)로부터 패킷이 수신되면(S301), 출력 프로세서(340)는 수신된 패킷이 ARP 응답 또는 NA인지를 판단한 다( S302).
판단 결과, 출력 프로세서(340)는 수신된 패킷이 ARP 응답 또는 NA 패킷이 아닌 경우에는 수신된 패킷을 무시하고 지속적으로 패킷을 입력 네트워크 프로세서(320)로부터 수신한다.
한편, S302 단계에서 수신된 패킷이 ARP 응답 또는 NA 패킷인 경우에 출력 프로세서(340)는 해당 패킷에 대한 목적지 주소에 대한 계층2 간접주소 테이블(341)에 해당 엔트리가 있는지를 판단한다(S303).
판단 결과, 계층2 간접주소 테이블(341)에 해당 엔트리가 존재하는 경우에는 계층2 간접주소 테이블(341)의 해당 엔트리를 업데이트 한 후(S304), 계층2 직접 주소 테이블(342)에 해당 엔트리가 있는지를 판단하게 되는 것이다(S305).
판단 결과, 계층2 직접주소 테이블(342)에 수신된 패킷에 대한 엔트리가 존재하는 경우 계층2 직접 주소 테이블(342) 엔트리를 업데이트하고(S308), 계층2 직접주소 테이블(342)에 수신된 패킷에 대한 엔트리가 존재하지 않는 경우 출력 프로세서(340)는 계층2 직접주소 테이블(342)에 새로운 엔트리를 추가한다(S306).
이와 같이 상기 S306 단계와 S308단계에서 계층2 직접주소 테이블(342)에 엔트리를 업데이트하거나 새로운 엔트리를 추가한 후 출력 프로세서(340)는 IPv4 패킷 큐(343) 또는 IPv6 패킷 큐(344)에 저장된 패킷을 순차적으로 목적지 IP 주소로 포워딩하게 되는 것이다(S307).
한편, 상기 S303 단계에서 계층2 간접주소 테이블(341)에 수신된 패킷에 대한 해당 엔트리가 존재하지 않는 경우에 출력 프로세서(340)는 상기 S305 단계로 피드백되어 S306, S307, S308 단계를 수행하게 되는 것이다.
상기한 바와 같은 본 발명에 따른 고속 라우터에서의 패킷 처리장치 및 그 방법은, 포워딩 프로세서의 입력단 프로세서에서 ARP(Address Resolution Protocol) 와 NDP(Neighbor Discovery Protocol)관련 패킷을 복사해서 한 패킷은 제어프로세서로 보내고, 다른 한 패킷은 출력단 프로세서로 보낸다. 출력단 프로세서에서는 계층2 주소 테이블 관리를 간접주소 테이블과 직접주소 테이블로 분리하여 관리하며, 간접주소 테이블은 입력단 프로세서 테이블의 넥스트 홉 테이블에서 직접 인텍싱 되며, 직접주소 테이블은 목적지 IP 주소에 대한 해싱 테이블로 구성하여 제어 프로세서와 포워딩 프로세서로 분리되어 있는 고속라우터에서 포워딩 프로세서가 차지하는 포워딩 정보 테이블의 메모리를 줄이고, 제어 프로세서와 포워딩 프로세서 사이의 IPC(Inter Processor Communication) 메시지를 감소시킴으로써 시스템 효율을 증대시킬 수 있는 것이다.

Claims (23)

  1. 입력단 프로세서, 출력단 프로세서를 포함하는 포워딩 프로세서와 제어 프로세서를 포함하는 고속 라우터의 패킷 처리 장치에 있어서,
    상기 포워딩 프로세서의 출력단 프로세서는 계층2 주소 테이블 관리를 입력단 프로세서의 넥스트홉 테이블에서 직접 인덱싱되는 계층2 간접주소 테이블 및 해당 패킷의 목적지 IP 주소에 대한 해싱 테이블로 구성되는 계층2 직접주소 테이블로 분리하여 관리하는 고속 라우터에서의 패킷 처리장치.
  2. 제1항에 있어서,
    상기 제어 프로세서는 프리픽스 테이블, 넥스트 홉 테이블 및 계층2 주소 테이블을 포함하여 구성되는 것을 특징으로 하는 고속 라우터에서의 패킷 처리장치.
  3. 제1항에 있어서,
    상기 포워딩 프로세서의 입력단 프로세서는 프리픽스 테이블과 넥스트 홉 테이블을 포함하여 구성되는 것을 특징으로 하는 고속 라우터에서의 패킷 처리장치.
  4. 제1항에 있어서,
    상기 포워딩 프로세서의 출력단 프로세서는 계층2 주소 테이블이 학습될 때까지 각각의 패킷의 종류에 따라 패킷을 저장하는 패킷 큐를 더 포함하는 것을 특 징으로 하는 고속 라우터에서의 패킷 처리장치.
  5. 제 4항에 있어서,
    상기 패킷 큐는 IPv4 패킷 큐 및 IPv6 패킷 큐인 것을 특징으로 하는 고속 라우터에서의 패킷 처리장치.
  6. 제 1항 또는 제 3항에 있어서,
    상기 입력단 프로세서는 그 프리픽스 테이블을 참조하여 포워딩 될 패킷을 출력단 프로세서로 전송하는 것을 특징으로 하는 고속 라우터의 패킷 처리장치.
  7. 제 1항 또는 제 3항에 있어서,
    상기 입력단 프로세서의 넥스트 홉 테이블은 출력단 프로세서의 계층2 간접주소 테이블 및 계층2 직접주소 테이블 간의 참조를 구분하기 위하여 플래그 또는 인덱스를 갖는 것을 특징으로 하는 고속 라우터의 패킷 처리장치.
  8. 제 1항 또는 제 3항에 있어서,
    상기 입력단 프로세서는 상기 제어 프로세서의 계층2 주소 테이블과 출력단 프로세서의 계층2 직접 주소 테이블 및 계층2 간접 주소 테이블간의 동기를 맞추기 위해 외부 라우터로부터 ARP 응답 또는 NA 패킷이 수신되면 패킷을 복사해서 제어 프로세서와 출력단 프로세서로 각각 전송하는 것을 특징으로 하는 고속 라우터의 패킷 처리장치.
  9. 제 1항 또는 제 4항에 있어서,
    상기 출력단 프로세서는 상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있으면 패킷으로부터 목적지 IP 주소를 추출하고, 목적지 IP 주소에 대한 해싱값을 계산한 후, 상기 계산된 해싱값에 대응하는 계층2 직접주소 테이블 엔트리가 존재하면 계층2 헤더를 생성한 다음 수신된 패킷을 포워딩하는 것을 특징으로 하는 고속 라우터의 패킷 처리 장치.
  10. 제 5항에 있어서,
    상기 출력단 프로세서는 상기 패킷 큐에 저장되는 패킷이 IPv4 패킷인 경우 ARS 요구 패킷을 외부 라우터로 전송하고, IPv6 패킷의 경우는 NS 패킷을 외부 라우터로 전송하는 것을 특징으로 하는 고속 라우터의 패킷 처리 장치.
  11. 제 10항에 있어서,
    상기 출력단 프로세서는 상기 ARP 요구 패킷 및 NS 패킷에 따른 ARP 응답 또는 NA 패킷이 입력단 프로세서로부터 수신되면, 수신된 패킷에 대해 상기 계층2 간접주소 테이블에 해당 엔트리의 존재를 판단하여 해당 엔트리가 존재하면, 상기 계층2 간접주소 테이블 엔트리를 업데이트하고, 계층2 직접주소 테이블에 해당 엔트리가 존재하는 경우 상기 계층2 직접주소 테이블 엔트리를 업데이트 하며, 계층2 직접 주소 테이블에 해당 엔트리가 존재하지 않은 경우 새로운 엔트리를 추가하는 고속 라우터에서의 패킷 처리장치.
  12. 제 11항에 있어서,
    상기 출력단 프로세서는, 상기 엔트리를 업데이트 또는 추가한 후, 상기 입력단 프로세서로부터 수신된 패킷이 ARP 응답 패킷인 경우 상기 IPv4 패킷 큐에 저장된 패킷을 포워딩하고, NA 패킷인 경우에는 IPv6 패킷 큐에 저장된 패킷을 포워딩하는 고속 라우터에서의 패킷 처리장치.
  13. 제 1항 또는 제 4항에 있어서,
    상기 출력단 프로세서는, 상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있지 않은 경우 상기 계층2 간접주소 테이블을 참조하여, 테이블 엔트리가 존재하지 않은 경우에는 수신된 패킷을 폐기하는 것을 특징으로 하는 고속 라우터의 패킷 처리장치.
  14. 제 1항 또는 제 4항에 있어서,
    상기 출력단 프로세서는, 상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있지 않은 경우, 상기 계층2 간접주소 테이블을 참조하여, 테이블 엔트리가 존재하고, 계층2 주소의 값이 존재하는 경우에는 계층2 헤더를 생성하여 패킷을 포워딩하고, 테이블 엔트리가 존재하지만, 계층2 주소의 값이 존재하지 않은 경우, 수신된 패킷을 목적지 IP 주소 해싱 값에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, 패킷의 종류에 따라 ARP 요구 패킷 또는 NS 패킷을 외부 라우터로 전송하는 것을 특징으로 하는 고속 라우터에서의 패킷 처리장치.
  15. 입력단 프로세서, 제어프로세서, 출력단 프로세서를 포함하는 고속 라우터에서의 패킷 처리장치에 있어서,
    상기 출력단 프로세서는,
    a) 상기 입력단 프로세서로부터 수신된 포워딩 패킷에 대한 목적지 IP 주소가 계층2 직접주소 테이블에 등록되어 있지 않은 경우 포워딩할 패킷을 패킷 종류에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, IPv4 패킷의 경우는 ARP 요구 패킷을 IPv6 패킷의 경우는 NS(Neighbor Solicitation)패킷을 전송하고,
    b) 상기 입력단 프로세서로부터 상기 ARP 요구 패킷 또는 NS 패킷에 대한 ARP 응답 패킷 또는 NA 패킷이 수신되면, 계층 2 주소 학습(learning)을 수행하며, 학습된 계층 2 주소를 계층2 간접 주소 테이블 또는 계층2 직접주소 테이블에 업데이트한 후, 패킷 종류에 따라 상기 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장된 패킷을 순차적으로 포워딩하는 고속 라우터에서의 패킷 처리장치.
  16. 제 15항에 있어서,
    상기 입력단 프로세서는,
    외부라우터로부터 ARP 요구 패킷 또는 NS 패킷이 수신되면 수신된 패킷을 상기 제어 프로세서로 전송하고,
    외부라우터로부터 ARP 응답 패킷 또는 NA 패킷이 수신되면 수신된 패킷을 복사해서 하나의 패킷은 제어 프로세서로 전송하고, 또 다른 하나의 패킷은 상기 출력단 프로세서로 전송하는 것을 특징으로 하는 고속 라우터에서의 패킷 처리장치.
  17. 입력단 프로세서, 제어프로세서 및 출력단 프로세서를 포함하는 고속 라우터에서의 패킷 처리방법에 있어서,
    상기 출력단 프로세서는, 상기 입력단 프로세서로부터 수신된 포워딩 패킷에 대한 목적지 IP 주소가 계층2 직접주소 테이블에 등록되어 있지 않은 경우 포워딩할 패킷을 패킷 종류에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, 상기 IPv4 패킷의 경우는 ARP 요구 패킷을 IPv6 패킷의 경우는 NS(Neighbor Solicitation)패킷을 외부라우터로 전송하는 단계; 및,
    상기 입력단 프로세서로부터 상기 ARP 요구 패킷 또는 NS 패킷에 대한 ARP응답 패킷 또는 NA 패킷이 수신되면, 계층 2 주소 학습(learning)을 수행하며, 학습된 계층 2 주소를 계층2 직접주소 테이블에 업데이트한 후, 패킷 종류에 따라 상기 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장된 패킷을 순차적으로 포워딩하는 단계를 포함하는 고속 라우터에서의 패킷 처리방법.
  18. 제 17항에 있어서,
    상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는지를 판단하는 단계;
    상기 판단 결과, 상기 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는 경우, 수신된 패킷으로부터 목적지 IP 주소를 추출한 후, 상기 추출된 목적지 IP 주소에 대한 해싱값을 계산하는 단계; 및
    상기 계산된 해싱값에 대해 계층2 직접주소 테이블 엔트리가 존재하면 계층2 헤더를 생성해서 수신된 패킷을 포워딩하는 단계를 더 포함하는 것을 특징으로 하는 고속 라우터의 패킷 처리 방법.
  19. 제 17항에 있어서,
    상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는지를 판단하는 단계;
    상기 판단 결과, 상기 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는 경우, 수신된 패킷으로부터 목적지 IP 주소를 추출한 후, 상기 추출된 목적지 IP 주소에 대한 해싱값을 계산하는 단계; 및
    상기 계산된 해싱값에 대해 계층2 직접주소 테이블 엔트리가 존재하지 않으면 목적지 IP 주소 해싱값에 따라 패킷을 패킷의 종류에 따라 상기 IPv4 패킷큐 또는 IPv6 패킷 큐에 저장한 후, 수신된 패킷이 IPv4 패킷인 경우 ARP 요구 패킷을 전송하고, IPv6 패킷의 경우는 NS 패킷을 전송하는 단계를 더 포함하는 것을 특징으로 하는 고속 라우터의 패킷 처리 방법.
  20. 제 17항에 있어서,
    상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는지를 판단하는 단계;
    상기 입력단 프로세서로부터 수신된 패킷에 상기 계층2 직접주소 참조 플래그가 설정되어 있지 않은 경우, 상기 출력단 프로세서는 계층2 간접주소 테이블을 참조하여 테이블 엔트리가 존재하는지 판단하는 단계;
    상기 판단 결과, 상기 계층2 간접주소 테이블 엔트리가 존재하지 않은 경우 상기 수신된 패킷을 폐기하고, 상기 계층2 간접주소 테이블 엔트리가 존재하고 계층2 주소의 값이 존재하는 경우 계층2 헤더를 생성하여 목적지 IP 주소로 패킷을 포워딩하는 단계를 더 포함하는 고속 라우터의 패킷 처리방법.
  21. 제 17항에 있어서,
    상기 입력단 프로세서로부터 수신된 패킷에 계층2 직접주소 참조 플래그가 설정되어 있는지를 판단하는 단계;
    상기 입력단 프로세서로부터 수신된 패킷에 상기 계층2 직접주소 참조 플래그가 설정되어 있지 않은 경우, 상기 출력단 프로세서는 계층2 간접주소 테이블을 참조하여 테이블 엔트리가 존재하는지 판단하는 단계;
    상기 판단 결과, 상기 계층2 간접주소 테이블 엔트리가 존재하지 않은 경우 상기 수신된 패킷을 폐기하고, 상기 계층2 간접주소 테이블 엔트리가 존재하고 계층2 주소의 값이 존재하지 않은 경우, 상기 수신된 패킷을 목적지 IP 주소 해싱 값에 따라 IPv4 패킷 큐 또는 IPv6 패킷 큐에 저장하고, 패킷 종류에 따라 ARP 요구 패킷 또는 NS 패킷을 상기 입력단 프로세서로 전송하는 단계를 포함하는 고속 라우터에서의 패킷 처리방법.
  22. 제 21항에 있어서,
    상기 ARP 요구 및 NS 패킷에 따른 ARP 응답 또는 NA 패킷이 입력단 프로세서로부터 수신되면, 상기 출력단 프로세서는 수신된 패킷에 대해 상기 계층2 간접주소 테이블 및 계층2 직접 주소 테이블에 해당 엔트리가 존재하는지를 판단하는 단계;
    판단 결과, 수신된 패킷에 대해 상기 계층2 간접주소 테이블에 해당 엔트리가 존재하는 경우, 상기 계층2 간접주소 테이블 엔트리를 업데이트하고, 계층2 간접 주소 테이블에 해당 엔트리가 존재하지 않고 계층2 직접주소 테이블에 해당 엔트리가 존재하는 경우 상기 계층2 직접주소 테이블 엔트리를 업데이트 하며, 계층2 직접 주소 테이블에 해당 엔트리가 존재하지 않은 경우 새로운 엔트리를 상기 계층2 직접주소 테이블에 추가하는 단계를 더 포함하는 것을 특징으로 하는 고속 라우터에서의 패킷 처리방법.
  23. 제 22항에 있어서,
    상기 엔트리를 업데이트 또는 추가를 수행한 후, 상기 출력단 프로세서는 상기 입력단 프로세서로부터 수신된 패킷이 ARP 응답 패킷인 경우 상기 IPv4 패킷 큐 에 저장된 패킷을 포워딩하고, NA 패킷인 경우에는 IPv6 패킷 큐에 저장된 패킷을 포워딩하는 단계를 더 포함하는 것을 특징으로 하는 고속 라우터에서의 패킷 처리방법.
KR1020060041694A 2005-12-07 2006-05-09 고속 라우터에서의 패킷 처리 장치 및 그 방법 KR100748090B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/634,730 US7729362B2 (en) 2005-12-07 2006-12-06 Method and apparatus for processing packet in high speed router

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050119124 2005-12-07
KR20050119124 2005-12-07

Publications (2)

Publication Number Publication Date
KR20070059833A KR20070059833A (ko) 2007-06-12
KR100748090B1 true KR100748090B1 (ko) 2007-08-09

Family

ID=38356091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060041694A KR100748090B1 (ko) 2005-12-07 2006-05-09 고속 라우터에서의 패킷 처리 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100748090B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015074324A1 (zh) * 2013-11-22 2015-05-28 上海斐讯数据通信技术有限公司 一种数据包快速转发方法及装置
US11271897B2 (en) 2018-11-05 2022-03-08 Samsung Electronics Co., Ltd. Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100867000B1 (ko) * 2006-11-15 2008-11-10 한국전자통신연구원 라우터에서의 패킷 포워딩 지연 감소 방법 및 장치
KR100912545B1 (ko) * 2007-09-21 2009-08-18 한국전자통신연구원 패킷 처리 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050075232A (ko) * 2004-01-16 2005-07-20 삼성전자주식회사 네트워크 프로세서에서의 ecmp 구현장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050075232A (ko) * 2004-01-16 2005-07-20 삼성전자주식회사 네트워크 프로세서에서의 ecmp 구현장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015074324A1 (zh) * 2013-11-22 2015-05-28 上海斐讯数据通信技术有限公司 一种数据包快速转发方法及装置
US11271897B2 (en) 2018-11-05 2022-03-08 Samsung Electronics Co., Ltd. Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table

Also Published As

Publication number Publication date
KR20070059833A (ko) 2007-06-12

Similar Documents

Publication Publication Date Title
US7039018B2 (en) Technique to improve network routing using best-match and exact-match techniques
US7369561B2 (en) Apparatus and method for route summarization and distribution in a massively parallel router
US7729362B2 (en) Method and apparatus for processing packet in high speed router
US6167444A (en) Method and system for exchanging routing information
CN108429680B (zh) 一种基于虚拟私有云的路由配置方法、系统、介质及设备
US20110235643A1 (en) Redirect checking in a network device
US7106740B1 (en) Nexthop to a forwarding table
US20210320863A1 (en) Packet processing method, apparatus, and device, and packet forwarding method, apparatus, and device
KR20040095632A (ko) 분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법
EP1547306B1 (en) Method and network device for hierachical prefix based routing
CN107547407B (zh) 报文传输方法、装置和实现装置
KR20020055287A (ko) 라우터 장치의 패킷 라우팅 방법
JP6098192B2 (ja) アドレス生成装置
KR20220047854A (ko) Sr 네트워크에서의 패킷 포워딩 방법, 장치 및 시스템
KR100748090B1 (ko) 고속 라우터에서의 패킷 처리 장치 및 그 방법
US8145790B2 (en) Method and device for using dynamic updates in a network
JP5050978B2 (ja) 伝送情報転送装置及び方法
KR100475436B1 (ko) 분산형 라우터 및 그 분산형 라우터의 에이알피 패킷 처리방법
US7843927B1 (en) Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device
EP4142227A1 (en) Method and apparatus for sending multicast message
JP3376941B2 (ja) ルータ装置
JP2005347969A (ja) パケット転送装置およびパケット転送方法
JP2005333220A (ja) ネットワークノード装置
US20230135615A1 (en) Mac-based routing
WO2023161666A1 (en) System and method for forwarding-information base compression by distribution in named data networks

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20120730

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee