KR100919256B1 - 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치 - Google Patents

3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치

Info

Publication number
KR100919256B1
KR100919256B1 KR1020070087852A KR20070087852A KR100919256B1 KR 100919256 B1 KR100919256 B1 KR 100919256B1 KR 1020070087852 A KR1020070087852 A KR 1020070087852A KR 20070087852 A KR20070087852 A KR 20070087852A KR 100919256 B1 KR100919256 B1 KR 100919256B1
Authority
KR
South Korea
Prior art keywords
entry
fib
lpm
lpm table
forwarding
Prior art date
Application number
KR1020070087852A
Other languages
English (en)
Other versions
KR20090022484A (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 KR1020070087852A priority Critical patent/KR100919256B1/ko
Publication of KR20090022484A publication Critical patent/KR20090022484A/ko
Application granted granted Critical
Publication of KR100919256B1 publication Critical patent/KR100919256B1/ko

Links

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/748Address table lookup; Address filtering using longest matching prefix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한 네트워크 장치에 관한 것으로, 이 장치는 포워딩 정보 베이스(forwarding information base : 이하, FIB); 상기 FIB를 참조하도록 하는 필드 값이 기록된 적어도 하나의 엔트리를 포함하는 최장 프리픽스 매칭(longest prefix matching : 이하, LPM) 테이블; 및 수신 패킷의 목적 주소와 매칭되는 엔트리가 상기 FIB를 참조하도록 하는 필드 값이 기록된 엔트리인 경우, 상기 FIB를 검색하여 상기 수신 패킷을 다음 홉으로 포워딩하는 포워딩부를 포함한다. 본 발명에 따르면, 효율적으로 3계층 스위칭을 수행할 수 있다.

Description

3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한 네트워크 장치 {apparatus for having layer 3 switching function and network apparatus for having switching function }
본 발명은 3계층(layer 3) 스위칭 기술에 관한 것으로, 보다 상세하게는 효율적인 3계층 스위칭을 위한 장치에 관한 것이다.
3계층 스위칭은 한 네트워크로부터 수신되는 패킷을 최종 목적지까지의 도달을 위해 OSI(Open Systems Interconnection)의 3계층 상에서 다음 단계의 해당 네트워크(즉, 다음 홉)로 포워딩(전달)하는 것을 의미한다. 3계층 스위칭 기능을 구비한 장치의 예로는, 3계층 스위치, 라우터, 이더넷-수동 광 가입자망(Ethernet - Passive Optical Network : E-PON)의 광망 모듈(optical network unit : ONU) 등을 들 수 있다. 본 절에서는 3계층 스위칭 기능을 구비한 장치를 편의상, 라우터라고 표현하여 설명하고자 한다.
라우터가 3계층 스위칭을 수행하기 위해서는, 각 네트워크에 도달하는 경로에 대한 정보, 그 경로의 메트릭(예컨대, 홉수, 비용 등) 등과 같은 라우팅 정보를 사전에 획득해야 한다. 이러한 라우팅 정보를 획득하는 방법으로는, 관리자가 직접 입력하는 정적(static) 라우팅 방법과 라우터 간에 자신이 아는 라우팅 정보를 서로 교환하는 라우팅 프로토콜을 통하여 획득하는 동적(dynamic) 라우팅 방법이 있다. 라우팅 프로토콜의 예로는, 라우팅 정보 프로토콜(Routing Information Protocol : RIP), 최단 경로 우선(Open Shortest Path First : OSPF) 프로토콜, 경계 경로 프로토콜(Border Gateway Protocol : BGP) 등이 있다.
동적 라우팅 환경하에서, 라우터의 동적 라우팅 데몬은 상술한 교환을 통하여 얻어진 라우팅 정보를 엔트리(entry)로서 포함하는 RIB를 구축하게 된다. 라우터는 이러한 RIB의 엔트리들 중에서, 메트릭 면에서 최적인 엔트리를 추출하여 FIB를 구축한다. 즉, RIB에서 유효하다고 선택된 루트(route)만이 엔트리로서 FIB에 포함되는 것이다. 구체적으로, FIB에는 각 네트워크 주소와 라우터의 해당 출력 포트 및 다음 홉의 라우터 정보 등이 묶인 엔트리들이 포함된다.
한편, FIB를 이용한 스위칭 방식(즉, 소프트웨어 기반의 스위칭 방식)도 가능하지만, 보다 신속한 검색을 위해, 최장 프리픽스 매칭(longest prefix matching : 이하, LPM) 테이블을 사용하는 하드웨어 기반의 스위칭 방식이 도입되었다.
하드웨어 기반의 스위칭 방식에 따르면, FIB의 엔트리들 중 일부가 저장된 LPM 테이블을 검색(lookup)하여 스위칭을 수행한다. 이러한 검색에는 LPM 알고리즘이 사용되는데, 이 알고리즘은 FIB의 엔트리들 중, 수신 패킷의 목적 주소(destination address)의 상위 비트 순으로 가장 많이 일치하는 네트워크 주소를 가진 엔트리를 선택하여 다음 홉을 결정하는 방법이다. 한편, 수신 패킷의 목적 주소와 일치하는 엔트리가 LPM 테이블에 없는 경우를 대비하기 위해 0.0.0.0/0과 같은 디폴트 엔트리를 구비한다. 이 경우, 디폴트 엔트리에 기록된 다음 홉으로 패킷 포워딩이 이루어진다.
상술한 바와 같은 라우팅 프로토콜, RIB, FIB, LPM 테이블 간의 개념적인 관계를 도 1에 도시하였다.
도 2a 및 도 2b는 3계층 스위칭 기능을 구비한 장치의 구성을 예시하는 블록도이다.
도 2a의 장치(200)를 설명하면 다음과 같다. CPU(205)는 장치(200)에 대한 전반적인 제어를 수행하며, 동적 라우팅 데몬에 의한 RIB 구축 작업, FIB 구축 작업을 수행하여, 제1 저장소자(210)에 저장한다. 제1 저장소자의 예로는, 저렴하면서 고용량을 가진 SDRAM을 들 수 있다.
스위칭 칩(215)은 CPU(205)로부터 FIB의 엔트리들을 제공받아, 제2 저장소자(220)에 LPM 테이블을 구축하며, 상기 구축된 LPM 테이블을 검색하여 수신 패킷을 다음 홉으로 포워딩한다. 즉, 수신 패킷은 4개의 포트(225, 230, 235, 240) 중 어느 하나를 통하여 스위칭 칩(215)에 입력되며, 어느 하나를 통하여 출력된다.
도 2b의 장치(250)에 포함된 CPU(255), 제1 저장소자(260), 스위칭 칩(265), 제2 저장소자(270), 포트(275, 280, 285, 290)의 기능은 도 2a의 해당 구성과 동일하며, 다만, 제1 저장소자(270)가 스위칭 칩(265)에 포함되어 하나의 칩으로 이루어지는 것이 다를 뿐이다.
도1, 도 2a 및 도 2b를 참조하면, RIB와 FIB는 CPU(205, 255)를 통하여 소프트웨어적으로 구축되며, LPM 테이블은 스위칭 칩(215, 265)를 통해 하드웨어적으로 구축됨을 알 수 있다. 또한, 스위칭 칩(215, 265)이 FIB를 검색하려면 CPU(205, 255)의 도움을 받아야 하는 반면, LPM 테이블은 직접 액세스할 수 있음을 알 수 있다.
한편, RIB에는 라우팅 프로토콜에 따라 수만 내지 수십만 개의 엔트리들이 포함되므로, 이들을 취합/선별하여 구축된 FIB라 하더라도 최소한 수만 개 이상의 엔트리들이 포함된다. 하지만, 현실적으로 문제가 되는 부분은 FIB의 수만 개의 엔트리들을 LPM 테이블 즉, 제2 저장소자(220, 270)에 포함시키는 과정에서 발생한다.
고속 스위칭을 위해, 제2 저장소자(220, 270)는 일반적으로 SDRAM의 형태인 제1 저장 소자(210, 260) 보다 훨씬 빠른 액세스 속도를 지원해야 하며, 경우에 따라 CAM(Content Addressable Memory) 등과 같은 특유의 구조를 가져야 하기 때문에, 가격 및 저장용량 면에서 제약이 있다. 따라서, 상용 장치에서는 LPM 테이블에 포함되는 엔트리의 수가 수만 개 이하로 제한되어 있으며, 그 결과, FIB의 모든 엔트리들을 LPM 테이블에 포함시키는 것이 불가능하다는 문제가 발생한다.
이를 해결하기 위한 종래의 방법으로는, FIB의 엔트리들을 LPM 테이블이 지원 가능한 만큼만 저장하는 방법, 충분한 LPM 테이블을 지원할 수 있는 제2 저장 소자(220, 270)를 구비하는 방법, LPM 테이블의 용량에 따라 망 구성을 제한하는 방법이 있었다. 그러나, 첫째 방법은 일부 엔트리가 LPM 테이블에 반영되지 않아 잘못된 패킷 포워딩을 유발하며, 둘째 방법은 장치 비용 면에서 불리하며, 셋째 방법은 원하는 네트워크를 구성하는 데 제약으로 작용한다는 문제점이 있다.
따라서, 이러한 문제점을 해결하기 위해, 상술한 하드웨어 제약 사항 하에서 3계층 스위칭을 효율적으로 수행할 수 있도록 하는 방안이 요구된다.
본 발명이 이루고자 하는 기술적 과제는, 효율적인 스위칭을 위한 장치를 제공하는 데 있다.
상기의 기술적 과제를 이루기 위해 본 발명의 제1 측면은 포워딩 정보 베이스(forwarding information base : 이하, FIB); 상기 FIB를 참조하도록 하는 필드 값이 기록된 적어도 하나의 엔트리를 포함하는 최장 프리픽스 매칭(longest prefix matching : 이하, LPM) 테이블; 및 수신 패킷의 목적 주소와 매칭되는 엔트리가 상기 FIB를 참조하도록 하는 필드 값이 기록된 엔트리인 경우, 상기 FIB를 검색하여 상기 수신 패킷을 다음 홉으로 포워딩하는 포워딩부를 포함하는 3계층 스위칭 기능을 구비한 장치를 제공한다.
상기의 기술적 과제를 이루기 위해 본 발명의 제2 측면은 FIB; LPM 테이블; 및 수신 패킷의 목적 주소와 매칭되는 엔트리가 상기 LPM 테이블에 없는 경우, 자동적으로 상기 FIB를 검색하여 상기 수신 패킷을 다음 홉으로 포워딩하는 포워딩부를 포함하는 3계층 스위칭 기능을 구비한 장치를 제공한다.
상기의 기술적 과제를 이루기 위해 본 발명의 제3 측면은 제1포워딩 테이블; 및 상기 제1포워딩 테이블보다 우선으로 패킷 포워딩에 사용되며, 네트워크 주소 필드; 및 상기 네트워크 주소 필드의 네트워크 주소에 대응하는 다음 홉을 나타내는 다음 홉 필드로 이루어지고, 상기 다음 홉 필드 중 적어도 하나에 상기 제 1 포워딩 테이블이 설정되어 있는 제2 포워딩 테이블을 포함하는 스위칭 기능을 구비한 네트워크 장치를 제공한다.
이하, 상기 기술적 과제를 해결하기 위한 본 발명의 실시예들이 첨부된 도면을 참조하여 설명된다.
도 3은 본 발명의 일실시예에 따라 LPM 테이블을 캐쉬(cache)처럼 활용하는 개념을 설명하기 위한 도면으로, 보다 상세하게는 LPM 테이블에 활성 엔트리가 최대한 포함될 수 있도록 LPM 테이블을 관리하는 개념을 설명하기 위한 도면이다.
도 3을 참조하면, FIB로부터 활성 엔트리가 LPM 테이블에 추가로 저장되며, LPM 테이블로부터 비활성(inactive) 엔트리가 삭제되는 것을 알 수 있다.
여기서, 활성(active) 엔트리라 함은 사용 가능성 예컨대, 히트 확률(hit probability)이 높은 엔트리를 의미한다. 사용 가능성이 높은 엔트리라 함은 패킷 포워딩에 사용 중이거나, 사용되리라 기대되는 엔트리를 의미한다. 비활성(inactive) 엔트리라 함은 상술한 활성 엔트리의 속성에 반대되는 속성을 가진 엔트리이다.
도 3에서 LPM 테이블에 추가되는 엔트리(즉, 활성 엔트리)의 예로는 바로 이전에 FIB에서 검색(lookup)되어 패킷 포워딩에 사용된 엔트리를 의미한다. 또한, 도 3에서 LPM 테이블로부터 삭제되는 엔트리(즉, 비활성 엔트리)의 예로는 LPM 테이블에서의 사용 빈도가 낮은 등의 이유로 사용 가능성이 작은 엔트리를 들 수 있다.
즉, 사용 가능성의 고저를 검출하는 방법은 활성 엔트리와 비활성 엔트리를 구분하여 결정하는 방법(바꿔 말하면, 삭제할 엔트리를 결정하는 방법 및 추가할 엔트리를 결정하는 방법)이라 볼 수 있으며, 이에 대해서는 후술한다.
도 4는 본 발명의 일실시예에 따른 3계층 스위칭 기능을 구비한 장치를 도시한 블록도이다. 본 실시예의 장치는, 3계층 스위칭 기능을 구비한 장치로서, 그 예로는, 3계층 스위치, 라우터, E-PON에서의 ONU 등을 들 수 있으나, 반드시 이에 한정되는 것은 아니다.
도 4를 참조하면, 본 실시예의 장치는 FIB(400), LPM 테이블(410), 관리부(420), 및 포워딩부(430)를 포함하여 이루어진다.
도 4에 도시된 장치는 도 2a 및 도 2b에 예시된 구현 상의 장치의 구성요소와도 대응될 수 있다. 예컨대, 관리부(420) 및 포워딩부(430)는 스위칭 칩(215, 265)에 대응되며, LPM 테이블(410)은 제2 저장소자(270)에 대응되며, FIB(400)는 CPU(205, 255)에 의해 제1 저장소자(210, 260)에 저장/관리되는 데이터베이스에 대응된다. 다만, 도 4에 도시된 장치가 도 2a 및 도 2b에 예시된 장치의 구조에만 국한되어 적용되는 것이 아님은 이 분야에 종사하는 자라면 충분히 이해할 수 있다.
도 4를 참조하여 본 실시예의 장치를 설명하면 다음과 같다.
FIB(400)에는 도 1에서 설명한 바와 같이 유효한 루트가 엔트리로서 저장된다.
LPM 테이블(410)에는 FIB(400)의 엔트리들 중에서, 사용 가능성이 높은 엔트리들이 관리부(420)의 제어를 통해 저장된다. 바람직하게, 관리부(420)는 LPM 테이블(410)에 없으나 사용 가능성이 높은 FIB(400)의 엔트리를 선택하여 LPM 테이블(410)에 삽입한다. 또한, 바람직하게, 관리부(420)는 LPM 테이블(410)의 엔트리 중 사용 가능성이 낮은 엔트리를 선택하여 삭제한다. 보다 구체적이면서 효과적인 삽입/삭제 방법에 대해서는 후술한다.
포워딩부(430)는 수신 패킷의 목적 주소와 LPM 알고리즘 상으로 매칭되는 엔트리를 LPM 테이블(410) 상에서 검색하여 다음 홉으로 포워딩한다. 이하에서는, "LPM 알고리즘 상으로 매칭한다"는 표현을 "매칭한다"로 편의상 칭하여 본 발명을 설명하고자 한다.
바람직하게, 포워딩부(430)는 LPM 테이블(410) 상에 목적 주소와 매칭되는 엔트리가 없으면, FIB(400)을 검색하여 수신 패킷을 다음 홉으로 포워딩한다. 이러한 단계별 포워딩 개념을 도 5a 및 5b를 참조하여 구체적으로 설명한다.
도 5a 및 도 5b는 본 발명의 일실시예에 따라 사용되는 LPM 테이블(410)을 나타내는 블록도로서, LPM 테이블(410)을 우선적으로 검색한 후, 필요시 추가적으로 FIB(400)을 검색하여 패킷 포워딩을 수행하는 과정을 설명하기 위한 도면이다. 구체적으로, 도 5a는 본 발명의 제1 실시예에 따른 단계별 검색 방법을 설명하기 위한 도면이며, 도 5b는 본 발명의 제2 실시예에 따른 단계별 검색 방법을 설명하기 위한 도면이다.
설명의 편의상, 도 5a 및 도 5b에는 LPM 테이블의 엔트리로서 네트워크 주소 및 다음 홉에 대한 정보만을 도시하였으나, 부가적으로 다양한 필드들이 각 엔트리에 부가될 수 있음은 이 분야에 종사하는 자라면 충분히 이해할 수 있다.
도 5a에 도시된 LPM 테이블의 디폴트 엔트리에는, 포워딩부(430)로 하여금 다음 홉에 대한 정보는 FIB(400)를 참조하도록 설정되어 있다. 따라서, 포워딩부(430)는 수신 패킷의 목적 주소와 매칭되는 LPM 테이블의 엔트리가 없어 디폴트 엔트리를 선택하게 되는 경우, FIB(400)를 검색하여 상기 수신 패킷의 다음 홉을 결정한 후, 포워딩을 수행하게 된다.
도 5b에 도시된 LPM 테이블에는 도 5a와는 달리 디폴트 엔트리가 없다. 도 5b에 도시된 LPM 테이블이 있는 환경 하에서, 포워딩부(430)는 수신 패킷의 목적 주소와 매칭되는 LPM 테이블의 엔트리가 없으면, 자동적으로 FIB(400)를 검색하여 상기 수신 패킷의 다음 홉을 결정한 후, 포워딩을 수행한다.
도 5a 및 도 5b에 도시된 LPM 테이블(410) 및 상술한 동작을 수행하는 포워딩부(430)을 구비한 본 실시예의 장치(즉, 제1, 2 실시예에 따른 단계별 검색 방법이 적용된 장치)는 LPM 테이블(410)외에 부가적으로 FIB(400)를 활용하여 스위칭을 수행하므로, 하드웨어 기반의 스위칭만을 수행하는 종래의 방법에 비해, 보다 유효적절한 스위칭을 수행할 수 있으며, 소프트웨어 기반의 스위칭만을 수행하는 종래의 방법에 비해, 전반적으로 보다 고속의 스위칭을 수행할 수 있다는 효과를 도출한다.
이하에서는, FIB(400)의 엔트리들 중에서 사용 가능성이 높은 엔트리가 LPM 테이블(410)에 존재하도록, 관리부(420)가 LPM 테이블(410)을 관리하는 방법을 설명하고자 한다.
본 발명의 제1 실시예에 따른 관리부(420)의 관리 방법은 LPM 테이블(410)에는 없고, FIB(400)에 있는 엔트리들 중에서, 사용 가능성이 높은 엔트리를 LPM 테이블(410)에 삽입하는 방법이다. 여기서, 사용 가능성이 높은 엔트리를 결정하는 방법의 일례로는, FIB(400)에서 검색되어 포워딩에 사용된 엔트리의 사용 빈도를 모니터링하여, LPM 테이블(410)에 삽입할 엔트리를 결정하는 방법이다. 예컨대, FIB(400)를 통한 패킷 포워딩에 사용된 엔트리를 관리부(420)가 LPM 테이블(410)에 삽입한다.
본 발명의 제2 실시예에 따른 관리부(420)의 관리 방법은 LPM 테이블(410)의 엔트리들 중 사용 가능성이 낮은 엔트리를 삭제하는 방법이다. 여기서, 사용 가능성이 낮은 엔트리를 결정하는 방법의 일례로는, 관리부(420)가 LPM 테이블(410)의 각 엔트리의 사용 빈도를 모니터링하여 삭제할 엔트리를 결정하는 방법이다. 이를 위해, 바람직하게, 관리부(420)는 LPM 테이블(410)의 각 엔트리의 사용 이력을 기록하는 필드(이하, 사용 필드)를 LPM 테이블(410)에 두어 관리하며, 이러한 사용 필드를 기초로, 사용 가능성의 고저 또는 사용 빈도를 검출한다. 사용 필드를 기초로 한 사용 가능성의 고저 또는 사용 빈도의 검출 방법은 도 6을 참조하여 설명한다.
도 6은 본 발명의 일실시예에 따라 사용 필드를 주기적으로 모니터링하는 과정을 설명하기 위한 도면이다.
도 6을 참조하면, t0의 시점(time point)에서 관리부(420)는 LPM 테이블(410)에 대한 초기화 과정을 수행한다. 초기화 과정의 결과, LPM 테이블(410)의 엔트리가 설정되며, 히트 비트가 0로 설정된다. 여기서, 히트 비트는 상술한 사용 필드의 일실시예이다.
도 6을 참조하면, 또한, t0와 t1 사이에 두 개의 수신 패킷이 포워딩부(430)에 입력되고, 포워딩부(430)가 상기 두 개의 수신 패킷의 목적 주소와 매칭되는 LPM 테이블(410)의 엔트리(10.1.x.x 및 10.1.1.x )를 검색하여 다음 홉으로 포워딩하였음을 알 수 있다. 여기서, 관리부(420)는 10.1.x.x 및 10.1.1.x의 엔트리가 사용되었음을 기록하기 위해 해당 엔트리의 히트 비트의 값을 1로 설정한다.
t1의 시점에 관리부(420)는 LPM 테이블(410)을 모니터링하여, 각 엔트리의 사용 이력(즉, 히트 비트의 값)을 획득한 후, 각 엔트리의 히트 비트의 값을 0으로 설정하는 클리어링(clearing) 작업을 수행한다.
t2, t3의 시점에 관리부(420)는 마찬가지로 모니터링 및 클리어링 작업을 수행한다.
상술한 바와 같이, 관리부(420)는 주기적으로 LPM 테이블(410)의 히트 비트들을 모니터링하여 사용 가능성 또는 사용 빈도를 검출할 수 있는 것이다.
이러한 주기적 모니터링 결과를 기초로 사용 가능성이 작은 엔트리를 검출하는 바람직한 제1 실시예는, 일회 내지 수회 모니터링 결과, 연속 비사용 횟수가 소정 임계치 이상인 엔트리를, 사용 가능성이 작은 엔트리로 결정하는 방법이다.
이러한 주기적 모니터링 결과를 기초로 사용 가능성이 작은 엔트리를 검출하는 바람직한 제2 실시예는, 일회 내지 수회 모니터링 결과를 기초로, 확률적으로 사용 가능성을 산출하는 방법이다. 일례로, 관리부(420)는 모니터링 횟수 대비 누적 비사용 횟수가 소정 임계치 이상인 엔트리를 사용 가능성이 작은 엔트리로 결정한다.
이와 같은 과정으로 사용 가능성이 작다고 검출된 엔트리는 관리부(420)에 의해 LPM 테이블(410)로부터 삭제된다. 예컨대, 도 6에서, 10.x.x.x의 엔트리가 LPM 테이블(410)로부터 삭제될 수 있는 것이다.
도 7은 본 발명의 일실시예에 따라 히트 비트가 기록되며 캐쉬처럼 활용하는 LPM 테이블을 나타내는 도면이다.
도 7에 예시된 LPM 테이블은, 디폴트 엔트리에는 FIB를 참조하도록 기록되어 있으며, 히트 비트가 1인 엔트리만을 포함하고 있다. 즉, LPM 테이블에서, 사용되지 않아 히트 비트가 0이 되는 엔트리는 삭제되며, FIB를 참조하여 스위칭에 사용된 FIB의 엔트리는 LPM 테이블에 추가되어 히트 비트가 1로 기록되는 것이다.
이하에서는, 보다 효율적인 스위칭을 위해, 본 발명의 일실시예에 따라 관련 엔트리들을 묶어서 LPM 테이블(410)로부터 삭제하는 방법(이하, 묶음 삭제 방법)을 설명하고자 한다.
먼저, 엔트리를 하나 단위로 LPM 테이블(410)로부터 삭제하는 경우 발생될 수 있는 상황을 설명한다. 이러한 상황의 예로는, LPM 테이블(410)이 엔트리1 = {네트워크 주소 : 10.1.x.x -> 다음 홉 : B}, 엔트리2 = {네트워크 주소 : 10.1.1.x -> 다음 홉 : C}를 엔트리로서 포함하고 있을 때, 관리부(420)가 엔트리2를 사용 가능성이 낮은 엔트리로 결정하여 삭제하는 상황을 들 수 있다.
엔트리2가 삭제된 후에 목적 주소가 10.1.1.2인 패킷이 수신되었을 때, 포워딩부(430)는 LPM 테이블(410)을 검색하여, 이 목적 주소와 LPM 관점에서 매칭되는 엔트리가 엔트리1임을 확인한 후, B에 해당하는 홉으로 전달하게 된다. 즉, 엔트리2의 삭제로 인해, LPM 관점에서 매칭되는 엔트리는 엔트리1이 되어, 바람직하지 않은 패킷 포워딩이 발생하게 되는 것이다. 왜냐하면, 상기 수신 패킷이 전달되어야 할 바람직한 다음 홉은 엔트리2의 C에 해당하는 홉이기 때문이다.
이와는 달리, 엔트리1도 함께 삭제되었다면, 도 5a 및 도 5b에서 설명한 본 발명의 일실시예에 따라 포워딩부(430)는 FIB(400)를 참조하게 되고, 그 결과, 상기 수신 패킷이 바람직한 다음 홉인 C로 전달 될 수 있음을 알 수 있다.
따라서, 이러한 특성을 이용하기 위하여, 바람직하게, 관리부(420)는 사용 가능성이 낮은 것으로 결정된 엔트리를 연관된 엔트리와 함께 묶어서 삭제한다. 여기서, 연관된 엔트리라 함은, LPM 트리 상에서 상 하위의 관계를 가지는 엔트리를 의미한다. 바람직하게, 관리부(420)는 사용 가능성이 낮은 것으로 결정된 엔트리를 그 엔트리보다 LPM 트리상에서 소정 단계 상위의 엔트리까지 묶어서 삭제한다. 이에 대한 구체적인 설명은 도 8을 참조하여 설명한다.
도 8은 본 발명의 일실시예에 따른 묶음 처리(삭제/삽입) 과정을 설명하기 위한 LPM 트리를 예시한다.
도 8에 예시된 LPM 트리 상에는 10.x.x.x 엔트리 노드(node), 10.1.x.x 엔트리 노드 등이 존재하는데, 이 엔트리 노드들은 FIB(400) 및 LPM 테이블(410) 상에 있는 10.x.x.x에 해당하는 엔트리, 10.1.x.x에 해당하는 엔트리 등에 대응한다.
일례로, 도 8에서 10.1.x.x가 사용 가능성이 낮은 경우, 상술한 본 발명의 묶음 삭제 방법에 따라 관리부(420)는 10.1.x.x를 그 상위 엔트리인 10.x.x.x와 묶어서 LPM 테이블(410)에서 삭제한다.
다른 예로, 도 8에서 10.1.1.x가 사용 가능성이 낮은 경우, 상술한 본 발명의 묶음 삭제 방법에 따라 관리부(420)는 10.1.1.x를 그 상위 엔트리인 10.1.x.x와 묶어서 LPM 테이블(410)에서 삭제하거나, 관리부(420)는 10.1.1.x를 최상위 엔트리에 이르는 모든 엔트리 즉, 10.1.x.x 및 10.x.x.x를 묶어서 LPM 테이블(410)에서 삭제한다.
여기서, 묶여져서 삭제되는 엔트리의 수가 클 수록, LPM 테이블(410)의 저장 공간을 더 확보할 수 있는 반면에, 그 만큼 FIB(400)를 통한 패킷 포워딩이 많아지므로 전반적으로 스위칭 속도가 저하된다는 특성이 있음을 알 수 있다. 따라서, 바람직하게, 이러한 특성을 고려하여 묶여져서 삭제되는 엔트리의 수를 결정한다.
이하에서는, 보다 효율적인 스위칭을 위해, 본 발명의 일실시예에 따라 관련 엔트리들을 묶어서 LPM 테이블(410)에 삽입하는 방법(이하, 묶음 삽입 방법)을 설명하고자 한다.
먼저, 엔트리를 하나 단위로 LPM 테이블(410)에 삽입하는 경우 발생될 수 있는 상황을 설명한다. 이러한 상황의 예로는, 엔트리1 = {네트워크 주소 : 10.1.x.x -> 다음 홉 : B}, 엔트리2 = {네트워크 주소 : 10.1.1.x -> 다음 홉 : C}가 FIB(400)에만 있고, 관리부(420)가 엔트리1의 사용 가능성이 높음을 검출한 후, 엔트리1을 LPM 테이블(410)에 삽입하는 상황을 들 수 있다.
엔트리1만이 삽입된 후에 목적 주소가 10.1.1.2인 패킷이 수신되었을 때, 포워딩부(430)는 LPM 테이블(410)을 검색하여, 이 목적 주소와 LPM 관점에서 매칭되는 엔트리가 엔트리1임을 확인한 후, B에 해당하는 홉으로 전달하게 된다. 즉, 엔트리2가 LPM 테이블(410)에 없음으로 인해, LPM 관점에서 매칭되는 엔트리는 엔트리1이 되어, 바람직하지 않은 패킷 포워딩이 발생하게 되는 것이다. 왜냐하면, 상기 수신 패킷이 전달되어야 할 바람직한 다음 홉은 엔트리2의 C에 해당하는 홉이기 때문이다.
이와 달리, 엔트리2도 함께 LPM 테이블(410)에 삽입되었다면, 당연히 상기 수신 패킷은 바람직한 다음 홉인 C로 전달 될 수 있음을 알 수 있다.
따라서, 이러한 특성을 이용하기 위하여, 바람직하게, 관리부(420)는 사용 가능성이 높은 것으로 결정된 FIB(400)의 엔트리를 연관된 엔트리와 함께 묶어서 LPM 테이블(410)에 삽입한다. 여기서, 연관된 엔트리라 함은, LPM 트리 상에서 상 하위의 관계를 가지는 엔트리를 의미한다.
바람직하게, 관리부(420)는 사용 가능성이 높은 것으로 결정된 엔트리를 그 엔트리보다 LPM 트리상에서 소정 단계 하위의 엔트리까지 묶어서 LPM 테이블(410)에 삽입한다. 예컨대, 도 8에서, 10.x.x.x의 엔트리가 사용 가능성이 높다고 결정되면, 10.1.x.x와 묶거나, 10.1.x.x 및 10.1.1.x와 함께 묶어서 LPM 테이블(410)에 삽입한다.
한편, 삽입될 엔트리 묶음의 수는 삭제될 엔트리 묶음의 수와 마찬가지의 특성(스위칭 속도와 저장 공간 간의 트레이드 오프 관계)을 가지므로, 이에 대해서는 별도의 설명을 생략한다.
이하에서는, 본 발명의 실시예에 따라 대표 엔트리를 이용하는 스위칭 방법(이하, 대표 엔트리 이용 방법)을 설명하고자 한다.
바람직하게, 상술한 본 발명의 묶음 삭제 방법을 수행함에 있어서, 관리부(420)는 본 발명의 제1 실시예에 따른 대표 엔트리 이용 방법에 따라 삭제 대상인 엔트리들 중에서 대표 엔트리만을 남겨, FIB(400)를 통한 패킷 포워딩이 이루어지도록 수행한다.
도 9a 및 도 9b는 본 발명의 제1 실시예에 따른 대표 엔트리 이용 방법에 따라 대표 엔트리가 적용된 LPM 테이블을 이용하여 패킷 포워딩을 수행하는 개념을 설명하기 위한 도면이다.
도 9a는 대표 엔트리의 적용 이전의 LPM 테이블(410)의 상태를 나타낸다. 도 9a에 도시된 LPM 테이블(410)의 상태에서, 관리부(420)가 10.1.x.x의 엔트리가 사용 가능성이 낮은 엔트리로 결정한 경우, 상술한 본 발명의 묶음 삭제 방법을 수행할 경우, 관리부(420)는 10.1.x.x와 함께 그 상위 엔트리인 10.x.x.x를 묶어서 삭제하게 된다. 다만, 본 발명의 제1 실시예에 따른 대표 엔트리 이용 방법에서는, 삭제될 대상인 최상위 엔트리를 LPM 테이블(410) 상에 남겨두되, FIB(400)를 통한 스위칭이 이루어 지도록, 최상위 엔트리의 다음 홉 필드에 기록한다. 그 결과, LPM 테이블(400)의 상태는 도 9b의 LPM 테이블(400)의 상태로 갱신된다.
그 결과, 10.1.2.2의 목적 주소인 패킷, 및 10.2.1.1의 목적 주소인 패킷은 FIB(400)을 참조하여 포워딩이 이루어지게 된다.
한편, 본 발명의 제2 실시예에 따른 대표 엔트리 이용 방법으로 관리부(420)는 LPM 테이블(410)에는 없는 FIB(400)의 엔트리들 중에서, 적어도 두개의 엔트리를 묶고, 상기 묶여진 두개의 엔트리를 대표하는 엔트리(이하, 대표 엔트리)를 LPM 테이블(410)에 삽입하되, 대표 엔트리에는 FIB(400)를 통한 패킷 포워딩이 이루어지도록 기록한다. 그 기록 결과는 마찬가지로 도 9b의 LPM 테이블(400)의 상태와 같다. 다만, 상술한 제1 실시예와는 다른 점은, 대표 엔트리 적용 이전에 LPM 테이블(400)에는 도 9a와는 달리 10.1.x.x 및 10.x.x.x가 없었다는 점이다.
본 발명의 제1, 제2 실시예에 따른 대표 엔트리 이용 방법을 수행하는 데 있어서, 디폴트 엔트리의 사용 방법에는 제한이 없다. 예컨대, 본 발명의 제1, 제2 실시예에 따른 대표 엔트리 이용 방법에서는 디폴트 엔트리에 해당하는 다음 홉을 D로 설정하는 일반적인 디폴트 엔트리 사용 방법, 도 5a 및 도 5b에서 설명한 디폴트 엔트리 사용 방법 등 모두 적용 가능한 것이다.
이러한 본원 발명인 방법 및 장치는 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.
본 발명에 따르면, 효율적으로 3계층 스위칭을 수행할 수 있으며, 그 결과 다음의 효과를 도출한다. 첫째, 제한적인 하드웨어 LPM 테이블을 갖는 장치에서, 방대한 크기의 FIB를 지원할 수 있게 되어 보다 효율적이고 경제적인 망의 구성이 가능해진다. 둘째, 방대한 FIB를 지원하기 위해 큰 사이즈의 하드웨어 LPM 테이블을 가져야 한다는 제약에서 벗어날 수 있기 때문에, 저렴한 비용으로 높은 성능의 스위칭 장치를 구현할 수 있다.
도 1은 라우팅 프로토콜, RIB, FIB, LPM 테이블 간의 관계를 개념적으로 나타내는 도면이다.
도 2a 및 도 2b는 3계층 스위칭 기능을 구비한 장치의 구성을 예시하는 블록도이다.
도 3은 본 발명의 일실시예에 따라 LPM 테이블을 캐쉬(cache)처럼 활용하는 개념을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 3계층 스위칭 기능을 구비한 장치를 도시한 블록도이다.
도 5a 및 도 5b는 본 발명의 일실시예에 따라 사용되는 LPM 테이블을 나타내는 블록도이다.
도 6은 본 발명의 일실시예에 따라 사용 필드를 주기적으로 모니터링하는 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따라 히트 비트가 기록되며 캐쉬처럼 활용하는 LPM 테이블을 나타내는 도면이다.
도 8은 본 발명의 일실시예에 따른 묶음 처리 과정을 설명하기 위한 LPM 트리를 예시한다.
도 9a 및 도 9b는 본 발명의 제1 실시예에 따른 대표 엔트리 이용 방법에 따라 대표 엔트리가 적용된 LPM 테이블을 이용하여 패킷 포워딩을 수행하는 개념을 설명하기 위한 도면이다.

Claims (15)

  1. 삭제
  2. 삭제
  3. 포워딩 정보 베이스(forwarding information base : 이하, FIB);
    상기 FIB를 참조하도록 하는 필드 값이 기록된 적어도 하나의 엔트리를 포함하는 최장 프리픽스 매칭(longest prefix matching : 이하, LPM) 테이블;
    수신 패킷의 목적 주소와 매칭되는 엔트리가 상기 FIB를 참조하도록 하는 필드 값이 기록된 엔트리인 경우, 상기 FIB를 검색하여 상기 수신 패킷을 다음 홉으로 포워딩하는 포워딩부; 및
    상기 LPM 테이블을 관리하는 관리부를 포함하고,
    상기 관리부는, 상기 FIB에서 검색되어 포워딩에 사용된 엔트리를 상기 LPM 테이블에 삽입하는 것을 특징으로 하는 3계층 스위칭 기능을 구비한 장치.
  4. 포워딩 정보 베이스(forwarding information base : 이하, FIB);
    상기 FIB를 참조하도록 하는 필드 값이 기록된 적어도 하나의 엔트리를 포함하는 최장 프리픽스 매칭(longest prefix matching : 이하, LPM) 테이블;
    수신 패킷의 목적 주소와 매칭되는 엔트리가 상기 FIB를 참조하도록 하는 필드 값이 기록된 엔트리인 경우, 상기 FIB를 검색하여 상기 수신 패킷을 다음 홉으로 포워딩하는 포워딩부; 및
    상기 LPM 테이블을 관리하는 관리부를 포함하고,
    상기 관리부는,
    상기 FIB에서 검색되어 포워딩에 사용된 엔트리를 상기 LPM 테이블에 삽입하고, 상기 LPM 테이블의 각 엔트리의 사용 빈도를 모니터링하여, 상기 LPM 테이블로부터 비사용 회수가 소정의 임계치 이상인 엔트리를 삭제하는 것을 특징으로 하는 3계층 스위칭 기능을 구비한 장치.
  5. 삭제
  6. 제4항에 있어서, 상기 관리부는,
    상기 LPM 테이블의 각 엔트리의 사용 이력을 기록하는 필드(이하, 사용 필드)를 상기 LPM 테이블에 두고, 상기 사용 필드를 통하여 사용 빈도를 모니터링하는 것을 특징으로 하는 3계층 스위칭 기능을 구비한 장치.
  7. 제6항에 있어서, 상기 관리부는,
    상기 각 엔트리의 상기 사용 필드를 주기적으로 클리어링 및 모니터링하여, 연속 비사용 횟수가 소정 임계치 이상인 엔트리를 상기 LPM 테이블로부터 삭제하는 것을 특징으로 하는 3계층 스위칭 기능을 구비한 장치.
  8. 제6항에 있어서, 상기 관리부는,
    상기 각 엔트리의 상기 사용 필드를 주기적으로 클리어링 및 모니터링하여, 모니터링 횟수 대비 누적 비사용 횟수가 소정 임계치 이상인 엔트리를 상기 LPM 테이블로부터 삭제하는 것을 특징으로 하는 3계층 스위칭 기능을 구비한 장치.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020070087852A 2007-08-30 2007-08-30 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치 KR100919256B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070087852A KR100919256B1 (ko) 2007-08-30 2007-08-30 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070087852A KR100919256B1 (ko) 2007-08-30 2007-08-30 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치

Publications (2)

Publication Number Publication Date
KR20090022484A KR20090022484A (ko) 2009-03-04
KR100919256B1 true KR100919256B1 (ko) 2009-09-30

Family

ID=40692350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070087852A KR100919256B1 (ko) 2007-08-30 2007-08-30 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치

Country Status (1)

Country Link
KR (1) KR100919256B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331373B2 (en) * 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048640A (ko) * 2000-12-18 2002-06-24 오길록 서비스 품질을 지원하는 아이피 패킷 포워딩 분산 처리장치 및 그 방법
KR20050038489A (ko) * 2003-10-22 2005-04-27 한국전자통신연구원 이더넷 스위치 및 이더넷 스위치의 주소 테이블 관리방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048640A (ko) * 2000-12-18 2002-06-24 오길록 서비스 품질을 지원하는 아이피 패킷 포워딩 분산 처리장치 및 그 방법
KR20050038489A (ko) * 2003-10-22 2005-04-27 한국전자통신연구원 이더넷 스위치 및 이더넷 스위치의 주소 테이블 관리방법

Also Published As

Publication number Publication date
KR20090022484A (ko) 2009-03-04

Similar Documents

Publication Publication Date Title
JP5624331B2 (ja) コンピュータ実施方法
CA2434876C (en) Method and apparatus for ternary content addressable memory (tcam) table management
JP5525273B2 (ja) 階層的に構造化された可変長識別子を有するパケットを転送するためのシステム
US9178806B2 (en) High-speed content routing
US9680747B2 (en) Internet protocol and Ethernet lookup via a unified hashed trie
US7260096B2 (en) Method and router for forwarding internet data packets
EP2793436B1 (en) Content router forwarding plane architecture
Banerjee et al. Tag-in-tag: Efficient flow table management in sdn switches
US8767757B1 (en) Packet forwarding system and method using patricia trie configured hardware
JP4015628B2 (ja) フォーワーディング情報を動的に管理する分散構造ルータ及びその方法
US8059658B1 (en) Method and system for automatic expansion and contraction of IP host forwarding database
JP6373021B2 (ja) 異なるように構成された最長プレフィックスマッチテーブルを処理するための装置および方法
US20090327316A1 (en) Dynamic Tree Bitmap for IP Lookup and Update
US10467217B2 (en) Loop detection in cuckoo hashtables
CN106803809B (zh) 一种报文转发的方法和装置
Luo et al. A hybrid IP lookup architecture with fast updates
US6925503B2 (en) Method and system for performing a longest prefix match search
EP3384642B1 (en) Forwarding table compression
US20080123663A1 (en) Method and apparatus for managing ternary content addressable memory entries for use in a data packet routing device
KR100919256B1 (ko) 3계층 스위칭 기능을 구비한 장치 및 스위칭 기능을 구비한네트워크 장치
KR100890354B1 (ko) 3계층 스위칭을 위한 포워딩 테이블을 관리하는 장치 및포워딩 테이블 관리 알고리즘
CN104539537B (zh) 一种路由查找方法和装置
US7706298B2 (en) Route dependency selective route download
US20180054386A1 (en) Table lookup method for determing set membership and table lookup apparatus using the same
KR20090022473A (ko) 3계층 스위칭을 위한 포워딩 테이블

Legal Events

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

Payment date: 20120905

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131016

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140912

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150901

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170904

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 10