KR100624681B1 - 분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법 - Google Patents

분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법 Download PDF

Info

Publication number
KR100624681B1
KR100624681B1 KR1020040023894A KR20040023894A KR100624681B1 KR 100624681 B1 KR100624681 B1 KR 100624681B1 KR 1020040023894 A KR1020040023894 A KR 1020040023894A KR 20040023894 A KR20040023894 A KR 20040023894A KR 100624681 B1 KR100624681 B1 KR 100624681B1
Authority
KR
South Korea
Prior art keywords
data packet
packet
format
processor
destination address
Prior art date
Application number
KR1020040023894A
Other languages
English (en)
Other versions
KR20040095632A (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 삼성전자주식회사
Publication of KR20040095632A publication Critical patent/KR20040095632A/ko
Application granted granted Critical
Publication of KR100624681B1 publication Critical patent/KR100624681B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/02Counting; Calculating
    • G09B19/025Counting; Calculating with electrically operated apparatus or 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06CDIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
    • G06C1/00Computing aids in which the computing members form at least part of the displayed result and are manipulated directly by hand, e.g. abacuses or pocket adding devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching

Abstract

본 발명은 데이터 패킷을 N 개의 인터페이싱 주변 장치로 전송하고, 데이터 패킷을 그 인터페이싱 주변 장치로부터 수신하는 라우터에 관한 것으로, 라우터는 N 개의 인터페이싱 주변 장치 중 하나에 연결된 PMD로부터 제 1 데이터 패킷을 수신하고 제 1 데이터 패킷의 포맷이 IPv4, IPv6 및 MPLS 중 하나인지를 결정하는 제 1 패킷 프로세서를 구비한다. 제 1 패킷 프로세서는 IPv4 포맷, IPv6 포맷 및 MPLS 포맷의 데이터 패킷 목적지 주소(정보)를 포함하는 통합 포워딩 테이블에서 제 1 데이터 패킷의 목적지 주소(정보)를 룩업하여 제 1 데이터 패킷의 목적지를 결정한다.

Description

분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법{Apparatus and method for combining forwarding tables in a distributed architecture router}
도 1은 본 발명에 따른 통합 포워딩 테이블을 구현하는 분산 구조 라우터의 일예를 나타낸 도면.
도 2는 본 발명의 일실시예에 따른 분산 구조 라우터에서 라우팅 노드의 선택된 부분의 일예를 나타낸 도면.
도 3은 본 발명에 따른 통합 포워딩 테이블의 일예를 나타낸 도면.
도 4는 본 발명의 일실시예에 따른 IOP의 전송 엔진 동작의 일예를 나타낸 흐름도.
도 5는 본 발명에 따른 분산 구조 라우터 각 단에서의 패킷 포맷 상태의 일예를 나타낸 도면.
본 발명은 대규모 병렬 라우터에 관한 것으로, 특히 상이한 타입의 데이터 패킷 트래픽을 포워딩(Forwarding)하기 위해 통합 포워딩 테이블(Forwarding Table) 및 단일 포워딩 엔진(Single Forwarding Engine)을 사용하는 분산 구조 라우터에 관한 것이다.
증가하는 인터넷 사용자 수, 이들 사용자로부터의 각종 서비스 요구, VoIP(Voice-over-IP) 또는 스트리밍 애플리케이션(Streaming Application)과 같은 새로운 서비스의 구현, 및 모바일 인터넷의 개발로 인해 인터넷 트래픽이 폭발적으로 증가하고 있다.
서브네트워크 또는 다른 라우터에 연결된 중계 노드로서 작용하는 종래의 라우터는 패킷을 처리하고 그 목적지를 결정하고 패킷을 목적지로 전송하는데 요구되는 시간이 보통 네트워크 경로 상에서의 전송 시간보다 짧은 상황에서 그 역할을 수행하게 된다.
그러나, 최근에 광대역폭 네트워크 경로의 패킷 전송 능력 및 인터넷 트래픽의 증가에 따라 종래 라우터의 처리 용량을 초과한다. 따라서, 라우터는 점점 인터넷에서 주요 병목 현상의 원인이 되고 있는 것이다.
초기 라우터는 공유 버스를 통한 패킷 전송 및 라우팅 테이블 계산과 같은 모든 작업을 호스트의 CPU가 수행하도록 컴퓨터 호스트 상에 구현되었다. 이 단순 구조는 CPU에 집중된 부하 및 버스 상에서 폭주의 존재로 인해 불충분한 것으로 판명되었다. 따라서, 라우터 공급자는 집중 구조에 비해 효율적인 패킷 처리를 제공하는 분산 라우터 구조를 개발하게 된 것이다.
분산 라우터 구조에서는, 집중된 CPU에 의해 이전에 수행된 대다수의 기능이 라인 카드로 분산되고, 고속 크로스바 스위치가 공유 버스를 대체하게 된다.
데이터 패킷이 라우터에 도착했을 때, 포워딩 엔진(Forwarding Engine)은 데이터 패킷의 목적지를 결정하기 위해 포워딩 테이블을 이용한다.
종래의 IP 라우터는 각각의 타입에 대한 트래픽(예를 들면, IPv4, IPv6, MPLS 등) 전용의 포워딩 테이블을 이용한다. 그러나, 전용 포워딩 테이블을 이용하는 것은 종래의 라우터가 다수의 포워딩 테이블을 관리해야 하고, 다수의 포워딩 테이블을 유지하기 위해 매우 많은 양의 메모리를 필요로 함을 의미한다. 따라서, 종래 라우터의 코스트가 추가적인 하드웨어로 인해 증가되는 문제점이 발생하게 되는 것이다.
또한, 라우터는 각각의 타입에 대한 트래픽용 포워딩 엔진을 갖게 되는데, 만약, 단일 포워딩 엔진이 사용되면, 각각의 트래픽 타입에 하나씩 다수의 프로세스가 사용되어야 하며, 따라서 처리될 수 있는 트래픽의 양이 제한된다. 이를 방지하기 위하여 종래 라우터는 각각의 타입의 트래픽에 대해 다수의 포워딩 엔진(또는 프로세스)를 사용하기 때문에 트래픽을 정확한 포워딩 엔진으로 라우팅하기 위해 추가적으로 복잡성 문제가 제기될 수 있다.
또한, 종래 방법은 각각의 트래픽 타입에 하나씩 다수의 포워딩 테이블이 구성되어야 하기 때문에 보다 많은 테이블 공간을 요구한다. 일반적으로, 이들 테이블은 드문드문(sparsely) 점유되며, 따라서 이들 테이블을 하나의 테이블로 폴딩(Folding)함으로써 공간 절약이 이루어질 수 있다.
실제 포워딩 엔트리를 위한 공간은 동적으로 할당되지만, 테이블 검색 구성 은 각각의 트래픽 타입에 대해 복제된다. 테이블 검색 구성은 포워딩 테이블 엔트리보다 작지만 고가의 고속 메모리에 저장된다. 이들 테이블의 부분들은 동적으로 할당되기보다는 통계적으로 할당되어, 상딩히 큰 테이블의 복제가 이루어지게 되는 것이다. 부가적으로, 각각의 트래픽 타입에 대해 별개의 포워딩 엔진을 이용하는 종래 방법은 변화하는 트래픽 혼재에 대해 자동적으로 조절되지 않게 되는 문제점이 있다.
그러므로, 당해 기술 분야에서는 개선된 인터넷 프로토콜(IP) 라우터가 필요하게 된다. 특히, 인터넷 프로토콜(IP) 데이터 트래픽 각각의 타입에 대해 전용 포워딩 테이블을 요구하지 않는 대규모 병렬 분산 구조 라우터가 필요하면서, 다수의 IP 데이터 트래픽 타입에 대해 다수의 포워딩 엔진을 사용하지 않는 라우터가 필요한 것이다.
따라서, 본 발명은 상기한 종래 기술에 따른 제반 문제점을 해결하기 위한 것으로, 본 발명의 목적은, N개의 인터페이싱 주변 장치에 데이터 패킷을 전송할 수 있고 그 인터페이싱 주변 장치로부터 데이터 패킷을 수신할 수 있는 통신 네트워크용 라우터를 제공함에 있다.
즉, 본 발명은 전송 테이블 처리를 간단화하여 단일 포워딩 엔진 내에서 단일 포워딩 프로세스를 야기하는 통합 포워딩 테이블을 제공한다. 따라서, 본 발명은 IPv4(Internet Protocol versoin 4) 패킷, IPv6(Internet Protocol version 6) 패킷, MPLS 패킷이 통합 포워딩 테이블을 이용하는 단일 포워딩 엔진 및 포워딩 프로세스에 의해 전송되도록 한다. 이는 단일 라우터 내에서 다수의 트래픽 타입을 전송하는 비용 및 복잡성을 감소시킨다. 또한, 프로세싱 엔진의 할당이 패킷 타입에 기초하지 않기 때문에 변화하는 패킷 타입 혼재에 자동적으로 적응하게 되는 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 측면에 따르면, N 개의 인터페이싱 주변 장치에 데이터 패킷을 전송할 수 있고 그 인터페이싱 주변 장치로부터 데이터 패킷을 수신할 수 있는 통신 네트워크용 라우터에 있어서, 상기 N 개의 인터페이싱 주변 장치 중 하나에 연결된 PMD 모듈로부터 제 1 데이터 패킷을 수신하고, 상기 제 1 데이터 패킷의 포맷이 IPv4, IPv6 및 MPLS 중 하나인지를 결정하며, IPv4 포맷, IPv6 포맷 및 MPLS 포맷 데이터 패킷의 목적지 주소(정보)를 포함하는 통합 포워딩 테이블에서 상기 제 1 데이터 패킷의 목적지 주소를 룩업하여 상기 제 1 데이터 패킷의 목적지를 결정하는 제 1 패킷 프로세서를 포함할 수 있다.
상기 제1 패킷 프로세서는, 상기 제 1 데이터 패킷이 IPv4 타입의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 IPv4 헤더 내의 목적지 주소를 이용하여 데이터 패킷의 목적지를 결정한다.
상기 제1 패킷 프로세서는, 상기 IPv4 헤더 목적지 주소를 이용하여 상기 제 1 데이터 패킷을 상기 라우터 내의 제2 패킷 프로세서로 포워딩한다.
상기 제 1 패킷 프로세서는, 상기 제 1 데이터 패킷이 IPv6 포맷이라는 결정에 응답하여 상기 제 1 데이터 패킷을 상기 라우터 내의 분류 모듈로 포워딩하고, 상기 분류 모듈은 상기 제 1 데이터 패킷의 IPv6 헤더 내의 목적지 주소를 IPv6 룩업 인덱스 값으로 변환하고, 상기 IPv6 룩업 인덱스 값을 상기 제 1 패킷 프로세서로 리턴한다.
상기 제 1 패킷 프로세서는, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 IPv6 룩업 인덱스 값을 이용하여 상기 목적지를 결정한다.
상기 제1패킷 프로세서는, 상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터 내의 제 2 패킷 프로세서로 포워딩한다.
상기 제1패킷 프로세서는, 상기 제1 데이터 패킷이 MPLS 타입의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 MPLS 라벨 내의 목적지 주소를 이용하여 상기 목적지를 결정한다.
상기 제1 패킷 프로세서는, 상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩한다.
또한, 본 발명의 다른 측면에 따르면, 데이터 패킷을 통신 네트워크와 연관된 인터페이싱 주변 장치로 전송할 수 있고 데이터 패킷을 상호간 그리고 그 인터페이싱 주변 장치로부터 수신할 수 있는 복수의 라우터를 구비하는 통신 네트워크 에 있어서, 상기 복수의 라우터 중 제 1 라우터는, 상기 인터페이싱 주변 장치 중 적어도 하나의 주변장치 또는 상기 복수의 라우터 중 제2 라우터에 연결된 PMD 모듈로부터 제1 데이터 패킷을 수신하고, 상기 제1 데이터 패킷의 포맷이 IPv4, IPv6 및 MPLS 중 적어도 하나의 데이터 패킷인지를 결정하며, IPv4 포맷, IPv6 포맷 및 MPLS 포맷의 데이터 패킷의 목적지 주소를 포함하는 통합 포워딩 전송 테이블에서 상기 제1 데이터 패킷의 목적지 주소를 룩업하여 상기 제1 데이터 패킷의 목적지를 결정하는 제 1 패킷 프로세서를 포함할 수 있다.
한편, 본 발명의 또 다른 측면에 따르면, 공통 버스 상으로 데이터 패킷을 서로 교환할 수 있는 복수의 프로세서를 구비하는 라우터에서 데이터 패킷을 포워딩하는 방법에 있어서, N 개의 인터페이싱 주변 장치 중 적어도 하나의 주변 장치에 연결된 PMD 모듈로부터의 제 1 데이터 패킷을 제 1 패킷 프로세서에서 수신하는 단계; 상기 제 1 데이터 패킷의 포맷이 IPv4, IPv6 및 MPLS 포맷중 적어도 하나의 의 데이터 패킷 포맷인지를 상기 제 1 패킷 프로세서에서 결정하는 단계; 및 IPv4 포맷, IPv6 포맷 및 MPLS 포맷의 데이터 패킷의 목적지 주소를 포함하는 통합 포워딩 테이블에서 상기 제 1 데이터 패킷의 목적지 주소를 룩업하여 상기 제 1 데이터 패킷의 목적지를 상기 제 1 패킷 프로세서에서 결정하는 단계를 포함할 수 있다.
상기 제1 데이터 패킷이 IPv4 포맷의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 IPv4 헤더 내의 목적지 주소를 이용하여 상기 데이터 패킷의 목적지를 결정하는 단계를 더 포함한다.
상기 IPv4 헤더 목적지 주소를 이용하여 상기 제 1 패킷 프로세서로부터의 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 단계를 더 포함한다.
상기 제 1 데이터 패킷이 IPv6 포맷의 데이터 패킷인 경우, 상기 제 1 패킷 프로세서로부터의 제 1 데이터 패킷을 상기 라우터의 분류 모듈로 포워딩하는 단계를 더 포함하되, 상기 분류 모듈은 상기 제 1 데이터 패킷의 IPv6 헤더 내의 목적지 주소를 IPv6 룩업 인덱스 값으로 변환하고, 상기 IPv6 룩업 인덱스 값을 상기 제 1 패킷 프로세서로 리턴한다.
상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 IPv6 룩업 인덱스 값을 이용하여 상기 목적지 주소를 상기 제 1 패킷 프로세서에서 결정하는 단계를 더 포함한다.
상기 제 1 패킷 프로세서로부터의 상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 단계를 더 포함한다.
상기 제 1 데이터 패킷이 MPLS 포맷의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 MPLS 라벨 내의 목적지 주소를 이용하여 상기 목적지를 결정하는 단계를 더 포함한다.
상기 제 1 패킷 프로세서로부터의 상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 단계를 더 포함한다.
이하, 본 발명에 따른 분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법에 대하여 첨부한 도면을 참조하여 상세하게 살펴보기로 하자.
이하에서 설명되는 도 1 내지 도 5, 및 각종 실시예는 예시에 불과하며, 어떠한 방식으로도 본 발명의 범위를 제한하는 것으로 해석되어서는 안 된다. 당해 기술 분야에서 숙련된 자들은 본 발명의 원리들이 적절하게 배열된 분산형 라우터에서 구현될 수 있음을 이해하게 된다.
도 1은 본 발명에 따른 통합 포워딩 테이블을 구현하는 분산 구조 라우터(100)의 일예를 나타낸 도면이다.
도 1에 도시된 바와 같이, 분산 구조 라우터(100)는 한쌍의 고속 스위치 구조(155a,155b)를 구비하는 스위치(150)에 의해 접속되는 라우팅 노드(110,120,130,140)를 포함하는 최대 N 개의 독립 RN(Routing Node)을 이용하여 확장성(scalability) 및 고성능을 제공한다.
각각의 RN은 IOP(Input/Output Processor) 모듈, 및 하나 이상의 PMD(Physical Medium Device) 모듈을 포함한다. 즉, RN(110)은 PMD 모듈(112)(PMD-a로 표시됨), PMD 모듈(114)(PMD-b로 표시됨), 및 IOP 모듈(126)을 포함하고, RN(120)은 PMD 모듈(122)(PMD-a로 표시됨), PMD 모듈(124)(PMD-b로 표시됨), 및 IOP 모듈(126)을 포함한다.
또한, RN(130)은 PMD 모듈(132)(PMD-a로 표시됨), PMD 모듈(134)(PMD-b로 표시됨), 및 IOP 모듈(136)을 포함하고, RN(140)은 PMD 모듈(142)(PMD-a로 표시됨), PMD 모듈(144)(PMD-b로 표시됨), 및 IOP 모듈(146)을 포함하는 것이다.
IOP 모듈(116,126,136,146) 각각은 라우터(190) 및 네트워크(195)와 같은 인접 라우터 또는 서브넷으로부터 인입되는 인터넷 프로토콜(IP) 패킷 및 MPLS 패킷을 버퍼링한다. 부가적으로, IOP 모듈(116,126,136,146) 각각은 요청된 서비스를 분류하고, 패킷 헤더로부터 목적지 주소를 룩업하며, 패킷을 출력 IOP 모듈로 전송한다. 또한, 각각의 IOP 모듈(116, 126, 136, 146)은 라우팅 프로토콜 패킷 및 공급된 정적 라우트로부터 결정되는 내부 라우팅 테이블을 유지하고 라우팅 테이블로부터 최적의 데이터 경로를 계산한다.
각각의 IOP 모듈(116, 126, 136, 146)은 PMD 모듈 중 적어도 하나로부터 인입되는 패킷을 처리한다. 그리고, 각각의 PMD 모듈은 IP 네트워크(또는 ATM 스위치)로부터 인입되는 패킷(또는 셀)을 IOP 모듈에서 처리되도록 프레이밍(frame)하고 버스 변환 기능을 수행한다.
IOP 모듈 및 PMD 모듈(들)로 구성되고 한쌍의 고속 스위치 구조(155a,155b)에 의해 링크된 RN(110,120,130,140) 각각은 본래 라우터 자체와 동일하다. 따라서, 분산 구조 라우터(100)는 고속 링크(즉, 스위치 구조(155a, 155b)가 각 블록에 연결된 한 세트의 RN 구축 블록으로 생각할 수 있다. 한쌍의 고속 스위치 구조(155a,155b)는 IOP 모듈간의 패킷 스위칭을 지원하고, 각각 고속 스위치 구조(155a,155b)에 위치된 스위치 프로세서(SWP)(160a,160b)는 시스템 관리를 지원하게 되는 것이다.
전통적인 라우터와는 달리, 분산 구조 라우터(100)는 각각의 RN(110,120,130,140)의 동작을 모니터링하는 효율적인 메카니즘을 요구한다.
분산 구조 라우터(100)는 각각의 RN(110, 120, 130, 140)에 대해 일관된 링크 상태 데이터베이스를 유지함으로써 모든 독립 RN들이 단일 라우터로서 작용하도록 하는 라우팅 조정 프로토콜(“유연하게 연결된 통합 환경(loosely-unified environment:LUE) 프로토콜”이라고 함)을 구현한다. 유연하게 연결된 환경(LUE) 프로토콜은 OSPF(Open Shortest Path First) 라우팅 프로토콜의 설계 개념에 기초하며, RN(110,120,130,140) 중에서 지정된 RN을 선택하고 전체 라우팅 테이블을 동기화시키기 위해 RN(110,120,130,140) 각각에서 그리고 SWP(160a,160b)에서 병렬로 실행된다.
주지된 바와 같은 데몬(Deamon)은 프로세싱 노드에서 연속적으로 동작하고 클라이언트 시스템에 자원을 제공하는 에이전트 프로그램이며, 또한, 데몬은 유틸리티 기능으로서 사용되는 배경 프로세스인 것이다.
도 2는 본 발명의 일실시예에 따른 분산 구조 라우터(100)에서 라우팅 노드(120)의 선택된 부분의 일예를 나타낸 도면이다.
도 2에 도시된 바와 같이, 라우팅 노드(120)는 PMD 모듈(122), PMD 모듈(124) 및 IOP 모듈(126)을 포함한다.
그리고, PMD 모듈(122)(PMD-a로 표시됨)은 물리 계층 회로(Physical Layer Circuitary)(211), PMD 프로세서(213)(예컨대, IXP 1240 프로세서), 및 PCI (peripheral component interconnect) 브리지(212)를 포함할 수 있다.
또한, PMD 모듈(124)(PMD-b로 표시됨)은 물리 계층 회로(221), PMD 프로세서(223)(예컨대, IXP 1240 프로세서), 및 PCI (peripheral component interconnect) 브리지(222)를 포함한다.
IOP 모듈(126)은 분류 모듈(Classification Module)(230)(예컨대, MPC 8245 프로세서), 시스템 프로세서(240)(예컨대, MPC 8245 프로세서), 네트워크 프로세서(260)(예컨대, IXP 1200 또는 IXP 1240 프로세서), PCI 브리지(270), 및 기가비트 이더넷 커넥터(Gigabit Ethernet connectoer:GbE)(280)를 포함하고, 분류 모듈(230)은 CAM(content addressable memory)(231), 분리 프로세서(232)(예컨대, MPC 8245 프로세서), 및 분류 엔진(Classification Engine)(233)을 포함한다. 여기서, 분류 엔진(233)은 상태 그래프 프로세서(State Graph Processor)이다.
PCI 버스(290)는 PCI 브리지(212,222,270), 분류 프로세서(232), 및 시스템 프로세서(240)를 연결하고, 네트워크 프로세서(260)는 패킷 포워딩을 수행하는 마이크로엔진을 포함한다. 여기서, 네트워크 프로세서(260)는 포워딩 테이블 룩업 동작을 수행하기 위해 통합 포워딩 테이블(Unified Forwarding Table:UFT)(261)을 사용한다.
각 IOP 모듈(예컨대, IOP 모듈(126))의 네트워크 프로세서(예컨대, 네트워크 프로세서(260))는 통합 포워딩 테이블(예컨대, UFT(261))을 이용하여 패킷 포워딩을 수행한다.
분산 구조 라우터(100)는 IPv4, IPv6 및 MPLS 패킷 타입용 포워딩 테이블을 조합함으로써 이 3 개의 패킷 타입의 포워딩을 통합하며, 따라서 단일 포워딩 엔진 및 단일 포워딩 프로세스가 모든 패킷 타입에 대해 사용될 수 있는 것이다.
또한, 분산 구조 라우터(100)는 쓰루풋(throughput)이 보다 많은 프로세싱 파워(Processing Power)를 요구하면, 병렬 동작하는 다수의 포워딩 엔진이 사용될 수 있고, 여기서 다수의 포워딩 엔진의 각각은 모든 데이터 타입에 대해 동작하며, 이에 의해 변화하는 트래픽 혼재에 자동적으로 적응할 수 있다.
한편, 본 발명에 따른 제어 플랜(Control Plane)은 IPv6 및 MPLS 패킷에 대해 IPv4 터널을 설정하고 데이터 플랜(Data Plane)은 IPv4 터널을 이용하여 분산 구조 라우터(100) 내에서 패킷을 전송한다.
도 3은 본 발명에 따른 통합 포워딩 테이블(261)의 일예를 나타낸 도면이다.
도 3에 도시된 바와 같이, IPv4, IPv6 및 MPLS 패킷 포워딩의 통합은 분산 구조 라우터(100) 내의 터널링 기술을 이용하여 이루어지는 것이기 때문에 도 3은 포워딩 엔진 검색에서 입력을 위해 사용되는 주소 공간의 분할을 예시한 도면이다.
통합 포워딩 테이블(261)은 주소 공간(305), 주소 공간(310), 주소 공간(315), 및 주소 공간(320)을 구비한다. 주소 공간(305)은 00000000(hex)에서부터 000FFFFF(hex)까지의 주소 범위, 총 1,048,576개의 주소를 커버할 수 있으며, 주소 공간(310)은 00100000(hex)에서부터 001FFFFF(hex)까지의 주소 범위, 총 1,048,576개의 주소를 커버할 수 있다.
또한, 주소 공간(310)은 IPv6 태그를 이용하여 인덱스되고, 주소 공간(315)은 00200000(hex)에서부터 00FFFFFF(hex)까지의 주소 범위, 총 14,680,064개의 주소를 커버할 수 있으며, 주소 공간(315)은 예비(Reserved) 공간이다.
한편, 주소 공간(320)은 01000000(hex)에서부터 FFFFFFFF(hex)까지의 주소 범위, 총 4,278,190,080개의 주소를 커버하며, 주소 공간(320)은 IPv4 주소를 이용하여 인덱스되는 것이다.
IPv4 헤더 내의 목적지 주소는 통합 포워딩 테이블(UFT)(261)의 주소 공간(320)의 룩업 인덱스로서 직접 사용된다. IPv4 주소는 제로("0")가 아닌 주소의 8 개의 최상위 비트(MSB) 중 적어도 하나에 의해 식별될 수 있다. 따라서, IPv4 주소는 UFT(261)의 룩업 인덱스 공간의 상위(Upper)를 점유하게 되는 것이다. 여기서, 제로 네트워크 주소는 유효하지 않다. 그래서, 주소의 8 개의 MSB 모두가 제로이면, 이 기준은 상이한 패킷 타입을 식별하는데 사용되며, 통합 포워딩 테이블(261)의 나머지 인덱스 공간은 다른 모든 패킷 타입들 사이에서 분할되는 것이다.
분산 구조 라우터(100)에서 MPLS 라벨(Label)은 20 비트 길이이고 계층 2(Layer 2)와 계층 3(Layer 3) 헤더 사이에 존재하며, 또한, MPLS 라벨은 인덱스의 하위 20 비트로 시프트된다. 따라서, MPLS 주소는 제로인 상위 12 비트에 의해 식별되고, UFT(261)의 룩업 인덱스 공간의 하위(Bottom)에 존재한다.
IPv4와 MPLS 인덱스 사이의 공간은 다른 트래픽 타입들을 위해 할당될 수 있다. 도 3에서, 상위 경계(Upper Boundary)는 임의적이지만 대략 100만 인덱스 값의 할당이 가능한 IPv6 주소를 위해 준비된다. 나머지 공간은 예비이고 내부 라우트를 포함하여 다른 트래픽 타입들을 위해 사용될 수 있다.
IPv6 목적지 주소는 IPv6 헤더에 주어진 목적지 주소로부터 메모리 주소 공간(310)의 할당된 주소의 범위 내에 속하는 인덱스로 변환되어야 한다. 이는 콘텐 트 주소지정 메모리(Content Addressable Memory:CAM)(231)와 조합하여 분류 엔진(233)을 이용하여 수행된다.
도 4는 본 발명의 일실시예에 따른 IOP 모듈(126)의 포워딩 엔진의 동작을 일예를 나타낸 도면이다.
도 4에 도시된 바와 같이, 데이터 패킷은 PMD 모듈(122,124)로부터 또는 스위치(150)로부터 IOP 모듈(126)내 네트워크 프로세서(260)의 마이크로엔진에 도달할 수 있다(프로세스 스텝 405). 초기에, 네트워크 프로세서(260)는 수신된 데이터 패킷이 PMD 모듈(122 또는 124)로부터 또는 스위치(150)로부터 수신된 데이터 패킷인지를 결정한다(프로세스 스텝 410).
수신된 패킷이 PMD 모듈(122 또는 124)로부터 수신된 데이터 패킷이면, 네트워크 프로세서(260)는 IFD(Interface Description)의 패킷 타입을 검사한다(프로세스 스텝 415).
한편, 네트워크 프로세서(260)의 마이크로엔진은 수신된 데이터 패킷 타입이 IPv6 타입의 데이터 패킷 타입으로 결정되면, 네트워크 프로세서(260)는 데이터 패킷을 주소 변환을 위해 분류 모듈(230)로 포워딩한다(프로세스 스텝 420).
분류 엔진(CE)(233)은 IPv6 헤더로부터 목적지 주소를 추출하고 추출된 목적지 주소를 분류 다이제스트(Classification Digest)에 배치하고, 분류 다이제스트는 상기 추출된 목적지 주소를 콘텐트 주소 지정 메모리(CAM)(231)로 제공된다.
CAM(231)은 IPv6 목적지 주소를 일치 결과로서 리턴되는 포워딩 테이블 인덱스로 변환하고, CM(230)은 일치 결과를 패킷 헤더에 배치한 후, 데이터 패킷은 포 워딩을 위해 네트워크 프로세서(260)에 리턴되는 것이다.
네트워크 프로세서(260)의 마이크로엔진에서 수신된 데이터 패킷의 타입이 IPv6 데이터 패킷 타입이 아닌 것으로 결정하면, 네트워크 프로세서(260)는 패킷 타입이 분류를 요구하는 다른 패킷 타입인지를 결정한다(프로세스 스텝 425).
만약, 패킷 타입이 상기 다른 패킷 타입이면, 네트워크 프로세서(260)는 상기한 바와 같이 주소 변환을 위해 데이터 패킷을 분류 모듈(230)로 포워딩한다.
수신된 패킷이 PMD 모듈(122 또는 124)로부터 전송된 데이터 패킷이 아니면(프로세스 스텝 410), 또는 데이터 패킷이 분류를 요구하지 않으면(프로세스 스텝 425), 또는 데이터 패킷이 분류 모듈(230)로부터 리턴되면, 네트워크 프로세서(260)는 데이터 패킷이 IPv6 패킷인지를 결정한다(프로세스 스텝 430).
수신된 데이터 패킷이 IPv6 데이터 패킷이면, 네트워크 프로세서(260)는 UFT(261)의 주소 공간(310)에서 룩업을 수행하기 위한 IPv6 태그를 사용하기 위하여 데이터 패킷을 설정한다(프로세스 스텝 435). 다음에 네트워크 프로세서(260)는 룩업을 수행하고(프로세스 스텝 460), 목적지 주소가 존재하는지를 결정한다(프로세스 스텝 465).
만약, 목적지 주소가 존재하면, 네트워크 프로세서(260)는 수신된 데이터패킷을 목적지로 포워딩한다. 그러나, 목적지 주소가 존재하지 안으면, 네트워크 프로세서(260)는 수신된 데이터 패킷을, 디폴트 라우트가 존재하면 디폴트 라우트로, 또는 예외 처리를 위해 제어 플랜 큐(Control Plane Queue)로 포워딩한다.
한편, 수신된 데이터 패킷이 IPv6 타입의 데이터 패킷이 아니면(프로세스 스 텝 430)이면, 네트워크 프로세서(260)는 데이터 패킷이 MPLS 타입의 데이터 패킷인지를 결정한다(프로세스 스텝 440).
만약, 수신된 데이터 패킷이 MPLS 타입의 데이터 패킷인 경우, 네트워크 프로세서(260)는 UFT(261)의 주소 공간(305)에서 룩업을 수행하기 위한 MPLS 헤더의 MPLS 라벨을 사용하기 위해 데이터 패킷을 설정한다(프로세스 스텝 445).
그리고, 네트워크 프로세서(260)는 룩업을 수행하고(프로세스 스텝 460), 목적지 주소가 존재하는지를 판단한다(프로세스 스텝 465).
만약, 목적지 주소가 존재한다고 판단되면, 네트워크 프로세서(260)는 패킷을 목적지로 포워딩한다. 그러나, 목적지 주소가 존재하지 않으면, 네트워크 프로세서(260)는 데이터 패킷을, 디폴트 라우트가 존재하면 디폴트 라우트에 또는 예외 처리를 위해 제어 플랜 큐에 포워딩한다.
데이터 패킷이 MPLS 타입의 데이터 패킷이 아니면(프로세스 스텝 440), 네트워크 프로세서(260)는 데이터 패킷이 IPv4 타입의 패킷인지를 판단한다(프로세스 스텝 450).
만약 데이터 패킷이 IPv4 타입의 데이터 패킷이라고 판단되면, 네트워크 프로세서(260)는 UFT(261)의 주소 공간(320)에서 룩업을 수행하기 위한 IPv4 헤더 내의 목적지 주소를 사용하기 위해 데이터 패킷을 설정한다(프로세스 스텝 455).
다음에, 네트워크 프로세서(260)는 룩업을 수행하고(프로세스 스텝 460), 목적지 주소가 존재하는지를 판단한다(프로세스 스텝 465). 만약 목적지 주소가 존재하는 경우, 네트워크 프로세서(260)는 패킷을 해당 목적지 주소에 상응하는 목적지 로 포워딩한다.
그러나, 목적지 주소가 존재하지 않는 경우, 네트워크 프로세서(260)는 데이터 패킷을, 디폴트 라우트가 존재하면 디폴트 라우트에, 또는 예외 처리를 위해 제어 플랜 큐로 포워딩한다.
도 5는 본 발명의 일실시예에 따른 분산 구조 라우터(100)의 각 단에서의 패킷 포맷 상태를 나타난 도면이다.
도 5에 도시된 바와 같이, 각 데이터 패킷(501-508)은 대표적인 데이터 패킷의 스텝별 진행을 예시한다.
MPLS 라벨은 단지 예시를 위해 데이터 패킷(501-508)에 옵션으로 포함됨을 주의해야 한다. 또한, MPLS 라벨은 IPv4 및 IPv6 데이터 패킷을 제공받을 수 없다.
도 5에 도시된 바와 같이, 데이터 패킷(501)은 외부 네트워크 장치로부터 PMD 모듈(122)에 의해 초기에 수신된다. 그리고 데이터 패킷(501)은 레이어 2 캡슐화 필드(Layer 2 Encapsulation Field), MPLS 라벨 (옵션) 및 인터넷 프로토콜(IP) 패킷을 포함한다.
PMD 모듈(122)의 PMD 프로세서(213)는 레이어 2 캡슐화 필드를 제거하고, PMD 모듈(122)이 IOP 모듈(126)로 포워딩하는 데이터 패킷(502)을 형성하기 위해 IFD 필드를 부가한다.
만약, 뷴류가 필요하면, IOP 모듈(126)의 네트워크 프로세서(260)는 네트워크 프로세서(260)가 IOP(126)의 분류 모듈(230)에 전송하는 데이터 패킷(503)을 형성하기 위해 HE LS(Header Extention Least Significant) 워드(Word)를 IFD 필드, MPLS 라벨(옵션), 및 IP 패킷에 부가한다.
다음에, 분류 모듈(230)은 헤더 확장(HE)의 나머지를 부가하여 CAM(231)으로부터의 매칭 주소에 채워, CM(230)이 네트워크 프로세서(260)에 다시 포워딩하는 데이터 패킷(504)을 형성한다.
그리고, 네트워크 프로세서(260)는 통합 포워딩 테이블(261)에서 목적지 주소를 룩업하기 위해 데이터 패킷(504)의 헤더 확장 필드(Header Extention Field) 및 IFD 필드를 사용한다. 일단 목적지 주소가 결정되면, 네트워크 프로세서(260)는 출력 인터페이스를 위해 패킷을 포매팅한다.
또한, 목적지 주소가 상이한 IOP 모듈을 통해 액세스되면, 헤더 확장 및 IFD 필드가 드롭(drop)되고 이더넷 캡슐화(Ethernet Encapsulation)가 부가되어, IOP 모듈(126)이 스위치(150)로 전송하는 데이터 패킷(505)을 형성한다.
한편, 목적지 주소가 동일한 IOP의 부분이면, 헤더 확장 필드가 드롭되고 IFD를 가진 패킷이 IOP 모듈(126)에 의해 PMD(122) 또는 PMD(124)로 포워딩한다.
다음에, 데이터 패킷(505)은 스위치(150)를 통과하며, 출력에서, 스위치(151)가 데이터 패킷(505)과 동일한 데이터 패킷(506)을 IOP 모듈(136)로 포워딩한다.
IOP 모듈(136)의 네트워크 프로세서(560)는 네트워크 프로세서(260)와 유사한 것으로, 네트워크 프로세서(560)는 데이터 패킷(506)의 이더넷 캡슐화 필드를 제거하고 IOP 모듈(136)이 PMD 모듈(132)에 전송하는 데이터 패킷(507)을 형성하기 위해 IFD 필드를 부가한다.
마지막으로, PMD 프로세서(513)는 IFD 필드를 제거하고 레이어 2 캡슐화 필드를 부가하여 데이터 패킷(508)을 형성하고, PMD 모듈(132)은 데이터 패킷(508)을 네트워크의 외부 장치로 전송한다.
상기에서 설명한 바와 같이, CM(230)은 IPv6 목적지 주소를 전송 테이블 룩업 인덱스로 변환하고 데이터 패킷이 네트워크 프로세서(260)의 마이크로엔진으로 리턴된다. 전송 엔진은 패킷 타입을 고찰하고 패킷 헤더로부터 룩업 인덱스를 얻는다.
IPv4 패킷에, IPv4 헤더에 제공된 목적지 주소가 사용되고, MPLS 패킷에, MPLS 라벨이 사용되며, 또한, IPv6 패킷에, 패킷 헤더의 CM(230)에 의해 리턴된 IPv6 룩업 인덱스가 사용된다.
IPv4 전송을 위해 사용되는 목적지 주소는 IP 패킷의 시작 부분에 있는 IPv4 헤더 내에 있고, MPLS 전송을 위해 사용되는 MPLS 라벨은 레이어 2 헤더와 레이어 3 헤더 사이에 위치한다.
본래, MPLS 데이터 패킷 및 IPv6 데이터 패킷은 일부 경우에서 분류 모듈(230)에 의한 분류를 통해 결정된 포워딩 인덱스를 이용하여 분산 구조 라우터(100) 내에서 터널링되고, 포워딩 테이블 룩업이 인덱스에 대해 수행된다.
따라서, 단일 포워딩 테이블이 모든 트래픽 타입을 위해 사용될 수 있으며, 데이터 패킷은 UFT(261)에서의 룩업의 결과에 기초하여 포워딩된다. 만약, 룩업이 실패하면, 패킷이 디폴트 라우트가 존재하면 디폴트 라우트로 또는 예외 처리를 위해 제어 플랜으로 전송된다.
분산 구조 라우터(100)는 IOP 시스템 프로세서(240)에서의 제어 플랜 처리를 통해 라우트를 처리한다. 정적 라우트(static route)는 준비(provisioning)를 통해 설정되고, 동적 라우트는 RIP, OSPF 및 BGP와 같은 표준 라우팅 프로토콜을 통해 처리된다.
또한, MPLS 라우트는 LDP(Label Distribution Protocol)를 통해 통계적으로 준비 또는 처리되고, 유연하게 통합된 환경(LUE) 프로세스는 통합 전송 테이블(261)을 구축하기 위해 라우트 정보를 사용한다.
분산 구조 라우터(100)는 분산 라우트이므로, LUE 프로세스는 분산 구조 라우터(100) 내에서 통합 포워딩 테이블을 분산시켜야 한다.
상기한 바와 같은 본 발명에 따른 분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법은, 라우터를 통해 비(non)-IPv4 데이터 패킷을 전송하기 위해 터널링 프로세스를 이용하고, 이는 단일 전송 테이블의 사용을 가능하게 한다.
또한, UFT는 단일 포워딩 엔진 및 포워딩 프로세스가 다수의 트래픽 타입을 위해 사용되도록 모든 포워딩 테이블을 통합할 수 있는 것이다.
결국, 본 발명은, IPv4(Internet Protocol versoin 4) 패킷, IPv6(Internet Protocol version 6) 패킷, MPLS 패킷이 통합 포워딩 테이블을 이용하는 단일 전송 엔진 및 전송 프로세스에 의해 포워딩되도록 한다. 이는 단일 라우터 내에서 다수의 트래픽 타입을 전송하는 비용 및 복잡성을 감소시키며, 또한, 프로세싱 엔진의 할당이 패킷 타입에 기초하지 않기 때문에 변화하는 패킷 타입 혼재에 자동적으로 적응하게 되는 것이다.
본 발명은 실시예를 가지고 설명되었지만, 각종 변화들 및 수정들이 당해 분야의 숙련자들에게 제시될 수 있기 때문에 본 발명은 권리는 첨부된 특허청구범위를 통해 해석되어져야 할 것이다.

Claims (24)

  1. N 개의 인터페이싱 주변 장치에 데이터 패킷을 전송할 수 있고 그 인터페이싱 주변 장치로부터 데이터 패킷을 수신할 수 있는 통신 네트워크용 라우터에 있어서,
    상기 N 개의 인터페이싱 주변 장치 중 하나에 연결된 PMD 모듈로부터 제 1 데이터 패킷을 수신하고, 상기 제 1 데이터 패킷의 포맷이 IPv4, IPv6 및 MPLS 중 하나인지를 결정하며, IPv4 포맷, IPv6 포맷 및 MPLS 포맷의 데이터 패킷 타입용 포워딩 테이블을 조합하여 각 패킷 타입의 포워딩을 통합 처리 가능하도록 상기 각 포맷의 데이터 패킷에 대한 목적지 주소를 포함하는 통합 포워딩 테이블에서 상기 제 1 데이터 패킷의 목적지 주소를 룩업하여 상기 제 1 데이터 패킷의 목적지를 결정하는 제 1 패킷 프로세서를 포함하는 라우터.
  2. 제1항에 있어서,
    상기 제1 패킷 프로세서는,
    상기 제 1 데이터 패킷이 IPv4 타입의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 IPv4 헤더 내의 목적지 주소를 이용하여 상기 목적지를 결정하는 라우터.
  3. 제2항에 있어서,
    상기 제1 패킷 프로세서는,
    상기 IPv4 헤더 목적지 주소를 이용하여 상기 제 1 데이터 패킷을 상기 라우터 내의 제2 패킷 프로세서로 포워딩하는 라우터.
  4. 제1항에 있어서,
    상기 제 1 패킷 프로세서는, 상기 제 1 데이터 패킷이 IPv6 포맷이라는 결정에 응답하여 상기 제 1 데이터 패킷을 상기 라우터 내의 분류 모듈로 포워딩하고,
    상기 분류 모듈은 상기 제 1 데이터 패킷의 IPv6 헤더 내의 목적지 주소를 IPv6 룩업 인덱스 값으로 변환하고, 상기 IPv6 룩업 인덱스 값을 상기 제 1 패킷 프로세서로 리턴하는 라우터.
  5. 제4항에 있어서,
    상기 제 1 패킷 프로세서는,
    상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 IPv6 룩업 인덱스 값을 이용하여 상기 목적지를 결정하는 라우터.
  6. 제5항에 있어서,
    상기 제1패킷 프로세서는,
    상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터 내의 제 2 패킷 프로세서로 포워딩하는 라우터.
  7. 제1항에 있어서,
    상기 제1패킷 프로세서는,
    상기 제1 데이터 패킷이 MPLS 타입의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 MPLS 라벨 내의 목적지 주소를 이용하여 상기 목적지를 결정하는 라우터.
  8. 제7항에 있어서,
    상기 제1 패킷 프로세서는,
    상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 라우터.
  9. 데이터 패킷을 통신 네트워크와 연관된 인터페이싱 주변 장치로 전송할 수 있고 데이터 패킷을 상호간 그리고 그 인터페이싱 주변 장치로부터 수신할 수 있는 복수의 라우터를 구비하는 통신 네트워크에 있어서,
    상기 복수의 라우터 중 제 1 라우터는,
    상기 인터페이싱 주변 장치 중 적어도 하나의 주변장치 또는 상기 복수의 라우터 중 제2 라우터에 연결된 PMD 모듈로부터 제1 데이터 패킷을 수신하고, 상기 제1 데이터 패킷의 포맷이 IPv4, IPv6 및 MPLS 중 적어도 하나의 데이터 패킷인지를 결정하며, IPv4 포맷, IPv6 포맷 및 MPLS 포맷의 데이터 패킷 타입용 포워딩 테이블을 조합하여 각 패킷 타입의 포워딩을 통합 처리 가능하도록 상기 각 포맷의 데이터 패킷에 대한 목적지 주소를 포함하는 통합 포워딩 전송 테이블에서 상기 제1 데이터 패킷의 목적지 주소를 룩업하여 상기 제1 데이터 패킷의 목적지를 결정하는 제 1 패킷 프로세서를 포함하는 통신 네트워크.
  10. 제9항에 있어서,
    상기 제1 패킷 프로세서는,
    상기 제1 데이터 패킷이 IPv4 포맷의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 IPv4 헤더 내의 목적지 주소를 이용하여 상기 목적지를 결정하는 통신 네트워크.
  11. 제10항에 있어서,
    상기 제 1 패킷 프로세서는,
    상기 IPv4 헤더 목적지 주소를 이용하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 통신 네트워크.
  12. 제9항에 있어서,
    상기 제 1 패킷 프로세서는,
    상기 제 1 데이터 패킷이 IPv6 포맷의 데이터 패킷인 경우, 상기 제 1 데이터 패킷을 상기 라우터의 분류 모듈로 포워딩하고,
    상기 분류 모듈은 상기 제 1 데이터 패킷의 IPv6 헤더 내의 목적지 주소를 IPv6 룩업 인덱스 값으로 변환하고, 상기 IPv6 룩업 인덱스 값을 상기 제 1 패킷 프로세서로 리턴하는 통신 네트워크.
  13. 제12항에 있어서,
    상기 제1 패킷 프로세서는,
    상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 IPv6 룩업 인덱스 값을 이용하여 상기 목적지를 결정하는 통신 네트워크.
  14. 제13항에 있어서,
    상기 제1패킷 프로세서는,
    상기 제1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터 내의 제 2 패킷 프로세서로 포워딩하는 통신 네트워크.
  15. 제9항에 있어서,
    상기 제1 패킷 프로세서는,
    상기 제 1 데이터 패킷이 MPLS 포맷이라는 결정에 응답하여, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 MPLS 라벨의 목적지 주소를 이용하여 상기 목적지를 결정하는 통신 네트워크.
  16. 제15항에 있어서,
    상기 제1 패킷 프로세서는,
    상기 제1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 통신 네트워크.
  17. 공통 버스 상으로 데이터 패킷을 서로 교환할 수 있는 복수의 프로세서를 구비하는 라우터에서 데이터 패킷을 포워딩하는 방법에 있어서,
    N 개의 인터페이싱 주변 장치 중 적어도 하나의 주변 장치에 연결된 PMD 모듈로부터의 제 1 데이터 패킷을 제 1 패킷 프로세서에서 수신하는 단계;
    상기 제 1 데이터 패킷의 포맷이 IPv4, IPv6 및 MPLS 포맷중 적어도 하나의 의 데이터 패킷 포맷인지를 상기 제 1 패킷 프로세서에서 결정하는 단계; 및
    IPv4 포맷, IPv6 포맷 및 MPLS 포맷의 데이터 패킷 타입용 포워딩 테이블을 조합하여 각 패킷 타입의 포워딩을 통합 처리 가능하도록 상기 각 포맷의 데이터 패킷에 대한 목적지 주소를 포함하는 통합 포워딩 테이블에서 상기 제 1 데이터 패킷의 목적지 주소를 룩업하여 상기 제 1 데이터 패킷의 목적지를 상기 제 1 패킷 프로세서에서 결정하는 단계를 포함하는 라우터에서의 데이터 패킷 전송 방법.
  18. 제17항에 있어서,
    상기 제1 데이터 패킷이 IPv4 포맷의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 IPv4 헤더 내의 목적지 주소를 이용하여 상기 목적지를 결정하는 단계를 더 포함하는 라우터에서의 데이터 패킷 포워딩 방법.
  19. 제18항에 있어서,
    상기 IPv4 헤더 목적지 주소를 이용하여 상기 제 1 패킷 프로세서로부터의 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 단계를 더 포함하는 라우터에서의 데이터 패킷 포워딩 방법.
  20. 제17항에 있어서,
    상기 제 1 데이터 패킷이 IPv6 포맷의 데이터 패킷인 경우, 상기 제 1 패킷 프로세서로부터의 제 1 데이터 패킷을 상기 라우터의 분류 모듈로 포워딩하는 단계를 더 포함하되,
    상기 분류 모듈은 상기 제 1 데이터 패킷의 IPv6 헤더 내의 목적지 주소를 IPv6 룩업 인덱스 값으로 변환하고, 상기 IPv6 룩업 인덱스 값을 상기 제 1 패킷 프로세서로 리턴하는 라우터에서의 데이터 패킷 포워딩 방법.
  21. 제20항에 있어서,
    상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 IPv6 룩업 인덱스 값을 이용하여 상기 목적지 주소를 상기 제 1 패킷 프로세서에서 결정하는 단계를 더 포함하는 라우터에서의 데이터 패킷 포워딩 방법.
  22. 제21항에 있어서,
    상기 제 1 패킷 프로세서로부터의 상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 단계를 더 포함하는 라우터에서의 데이터 패킷 포워딩 방법.
  23. 제17항에 있어서,
    상기 제 1 데이터 패킷이 MPLS 포맷의 데이터 패킷인 경우, 상기 포워딩 테이블에서 상기 목적지 주소를 룩업하기 위해 상기 제 1 데이터 패킷의 MPLS 라벨 내의 목적지 주소를 이용하여 상기 목적지를 결정하는 단계를 더 포함하는 라우터에서의 데이터 패킷 포워딩 방법.
  24. 제23항에 있어서,
    상기 제 1 패킷 프로세서로부터의 상기 제 1 데이터 패킷을 IPv4 포맷으로 터널링 패킷에 캡슐화하여 상기 제 1 데이터 패킷을 상기 라우터의 제 2 패킷 프로세서로 포워딩하는 단계를 더 포함하는 라우터에서의 데이터 패킷 포워딩 방법.
KR1020040023894A 2003-05-08 2004-04-07 분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법 KR100624681B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/431,770 2003-05-08
US10/431,770 US7558268B2 (en) 2003-05-08 2003-05-08 Apparatus and method for combining forwarding tables in a distributed architecture router

Publications (2)

Publication Number Publication Date
KR20040095632A KR20040095632A (ko) 2004-11-15
KR100624681B1 true KR100624681B1 (ko) 2006-09-19

Family

ID=33416525

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040023894A KR100624681B1 (ko) 2003-05-08 2004-04-07 분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법

Country Status (2)

Country Link
US (1) US7558268B2 (ko)
KR (1) KR100624681B1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
WO2005020525A1 (ja) * 2003-08-20 2005-03-03 Nippon Telegraph And Telephone Corporation プロトコル高速化装置
US8223778B2 (en) * 2003-11-19 2012-07-17 Intel Corporation Routing table architecture
US20050144416A1 (en) * 2003-12-29 2005-06-30 Intel Corporation, A Delaware Corporation Data alignment systems and methods
US7440460B2 (en) * 2004-03-05 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) * 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
KR100734883B1 (ko) * 2005-12-09 2007-07-03 한국전자통신연구원 분산형 IPv4 기반 라우터에 IPv6 포워딩 및 외부인터페이스 정보를 구축하는 방법
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
CN100596095C (zh) 2006-02-23 2010-03-24 华为技术有限公司 层次化移动IPv6快速切换方法和系统
US20070233867A1 (en) * 2006-03-28 2007-10-04 Narasimhan Ganapathiraman Method and apparatus for preserving MAC addresses across a reboot
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
KR100778348B1 (ko) * 2006-12-07 2007-11-22 한국전자통신연구원 IPv6 라우터의 라인 카드에서 터널 포워딩 정보 구축방법
US20090279441A1 (en) 2007-01-11 2009-11-12 Foundry Networks, Inc. Techniques for transmitting failure detection protocol packets
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) * 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
KR100912545B1 (ko) * 2007-09-21 2009-08-18 한국전자통신연구원 패킷 처리 장치 및 방법
US20090080428A1 (en) * 2007-09-25 2009-03-26 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US8509236B2 (en) 2007-09-26 2013-08-13 Foundry Networks, Llc Techniques for selecting paths and/or trunk ports for forwarding traffic flows
KR100908843B1 (ko) * 2007-12-07 2009-07-21 한국전자통신연구원 라우팅 시스템에서의 포워딩 테이블 구성 방법
WO2009142751A2 (en) * 2008-05-21 2009-11-26 Luis Filipe Pereira Valente System and method for discovery of network entities
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US8448221B2 (en) * 2010-03-12 2013-05-21 Mcafee, Inc. System, method, and computer program product for displaying network events in terms of objects managed by a security appliance and/or a routing device
US8751686B2 (en) * 2011-10-05 2014-06-10 Cisco Technology, Inc. Forwarding IPv6 packets based on shorter addresses derived from their IPv6 destination addresses
US9992111B2 (en) * 2016-01-21 2018-06-05 Cisco Technology, Inc. Router table scaling in modular platforms

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030002570A (ko) * 2001-06-29 2003-01-09 한국전자통신연구원 다양한 서비스 아이피 패킷 포워딩을 위한병렬룩업제어장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3224963B2 (ja) * 1994-08-31 2001-11-05 株式会社東芝 ネットワーク接続装置及びパケット転送方法
JP2001333091A (ja) * 2000-05-23 2001-11-30 Fujitsu Ltd 通信装置
US20020126672A1 (en) * 2001-01-10 2002-09-12 Nelson Chow Method and apparatus for a flexible and reconfigurable packet classifier using content addressable memory
CN100367730C (zh) * 2001-02-14 2008-02-06 克利尔斯皮德科技有限公司 一种互连系统
SG108302A1 (en) * 2001-08-13 2005-01-28 Ntt Docomo Inc Packet transmission system, and apparatus and method for controlling packet transmission route
US7277431B2 (en) * 2002-10-31 2007-10-02 Brocade Communications Systems, Inc. Method and apparatus for encryption or compression devices inside a storage area network fabric
US7440460B2 (en) * 2004-03-05 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030002570A (ko) * 2001-06-29 2003-01-09 한국전자통신연구원 다양한 서비스 아이피 패킷 포워딩을 위한병렬룩업제어장치 및 방법

Also Published As

Publication number Publication date
KR20040095632A (ko) 2004-11-15
US7558268B2 (en) 2009-07-07
US20040223502A1 (en) 2004-11-11

Similar Documents

Publication Publication Date Title
KR100624681B1 (ko) 분산 구조 라우터의 포워딩 테이블 조합 장치 및 방법
US11283707B2 (en) Segment routing with fast reroute for container networking
US7369561B2 (en) Apparatus and method for route summarization and distribution in a massively parallel router
US7362763B2 (en) Apparatus and method for classifying traffic in a distributed architecture router
JP4076586B2 (ja) マルチレイヤ・ネットワーク要素用のシステムおよび方法
US6683885B1 (en) Network relaying apparatus and network relaying method
JP4060378B2 (ja) 多層分散ネットワーク要素
US7787466B1 (en) Nexthop to a forwarding table
US7830892B2 (en) VLAN translation in a network device
US7436775B2 (en) Software configurable cluster-based router using stock personal computers as cluster nodes
JP2002314571A (ja) スイッチングノードのための分類およびタグ付け規則
US7822024B2 (en) Apparatus and method for performing security and classification in a multiprocessor router
US7787461B2 (en) System and a method for processing field frames for multiprotocol use in a communications network
US7813346B1 (en) Filter-based forwarding in a network
WO2022007702A1 (zh) 一种报文处理方法及网络设备
US6671277B1 (en) Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control
JP7273125B2 (ja) BIERv6パケットを送信するための方法および第1のネットワークデバイス
JP2024504845A (ja) パケット処理方法および関連装置
US20060002394A1 (en) Route computing system
CN114401222A (zh) 一种基于策略路由的数据转发方法、装置及存储介质
US8094665B1 (en) Packet forwarding using intermediate policy information
US7620042B2 (en) Apparatus and method for inter-processor communications in a multiprocessor routing node
WO2023169364A1 (zh) 路由生成方法、数据报文的转发方法及装置
US10715440B1 (en) Distributed next hop resolution
KR100624475B1 (ko) 네트워크 구성요소 및 패킷 포워딩 방법

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150828

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160830

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee