KR20090022473A - Forwarding table for layer 3 switching - Google Patents

Forwarding table for layer 3 switching Download PDF

Info

Publication number
KR20090022473A
KR20090022473A KR1020070087835A KR20070087835A KR20090022473A KR 20090022473 A KR20090022473 A KR 20090022473A KR 1020070087835 A KR1020070087835 A KR 1020070087835A KR 20070087835 A KR20070087835 A KR 20070087835A KR 20090022473 A KR20090022473 A KR 20090022473A
Authority
KR
South Korea
Prior art keywords
entry
forwarding table
forwarding
lpm
lpm table
Prior art date
Application number
KR1020070087835A
Other languages
Korean (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 KR1020070087835A priority Critical patent/KR20090022473A/en
Publication of KR20090022473A publication Critical patent/KR20090022473A/en

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/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

Abstract

A forwarding table for 3-layer switching is provided to overcome the restriction that the big size of hardware LPM table must be equipped, thereby realizing a cheap switching device having excellent performance. A forwarding table for 3-layer switching comprises an FIB(400), an LPM table(410), a management unit(420) and a forwarding unit(430). In the LPM table, entries of the FIB in which the possibility of being used is high are stored through the control of the management unit. The entries having the high possibility are determined by monitoring the number of times entries are used for forwarding. The management unit selects the entries which have the high possibility of being used and does not exist in the LPM table, and then inserts the selected entries into the LPM table.

Description

3계층 스위칭을 위한 포워딩 테이블 {forwarding table for layer 3 switching }Forwarding table for layer 3 switching}

도 1은 라우팅 프로토콜, RIB, FIB, LPM 테이블 간의 관계를 개념적으로 나타내는 도면이다.1 is a diagram conceptually illustrating a relationship between a routing protocol, a RIB, an FIB, and an LPM table.

도 2a 및 도 2b는 3계층 스위칭 기능을 구비한 장치의 구성을 예시하는 블록도이다.2A and 2B are block diagrams illustrating the configuration of a device having a three-layer switching function.

도 3은 본 발명의 일실시예에 따라 LPM 테이블을 캐쉬(cache)처럼 활용하는 개념을 설명하기 위한 도면이다.3 is a view for explaining the concept of using the LPM table as a cache (cache) according to an embodiment of the present invention.

도 4는 본 발명의 일실시예에 따른 3계층 스위칭 기능을 구비한 장치를 도시한 블록도이다.4 is a block diagram illustrating an apparatus having a three-layer switching function according to an embodiment of the present invention.

도 5a 및 도 5b는 본 발명의 일실시예에 따라 사용되는 LPM 테이블을 나타내는 블록도이다.5A and 5B are block diagrams illustrating an LPM table used according to an embodiment of the present invention.

도 6은 본 발명의 일실시예에 따라 사용 필드를 주기적으로 모니터링하는 과정을 설명하기 위한 도면이다.6 is a diagram illustrating a process of periodically monitoring a usage field according to an embodiment of the present invention.

도 7은 본 발명의 일실시예에 따라 히트 비트가 기록되며 캐쉬처럼 활용하는 LPM 테이블을 나타내는 도면이다.FIG. 7 is a diagram illustrating an LPM table in which a hit bit is recorded and used as a cache according to an embodiment of the present invention.

도 8은 본 발명의 일실시예에 따른 묶음 처리 과정을 설명하기 위한 LPM 트 리를 예시한다.8 illustrates an LPM tree for explaining a bundle processing process according to an embodiment of the present invention.

도 9a 및 도 9b는 본 발명의 제1 실시예에 따른 대표 엔트리 이용 방법에 따라 대표 엔트리가 적용된 LPM 테이블을 이용하여 패킷 포워딩을 수행하는 개념을 설명하기 위한 도면이다.9A and 9B are diagrams for describing a concept of performing packet forwarding using an LPM table to which a representative entry is applied according to the representative entry using method according to the first embodiment of the present invention.

본 발명은 3계층(layer 3) 스위칭 기술에 관한 것으로, 보다 상세하게는 효율적으로 3계층 스위칭을 수행하기 위한 포워딩 테이블에 관한 것이다.The present invention relates to layer 3 switching technology, and more particularly, to a forwarding table for efficiently performing layer 3 switching.

3계층 스위칭은 한 네트워크로부터 수신되는 패킷을 최종 목적지까지의 도달을 위해 OSI(Open Systems Interconnection)의 3계층 상에서 다음 단계의 해당 네트워크(즉, 다음 홉)로 포워딩(전달)하는 것을 의미한다. 3계층 스위칭 기능을 구비한 장치의 예로는, 3계층 스위치, 라우터, 이더넷-수동 광 가입자망(Ethernet - Passive Optical Network : E-PON)의 광망 모듈(optical network unit : ONU) 등을 들 수 있다. 본 절에서는 3계층 스위칭 기능을 구비한 장치를 편의상, 라우터라고 표현하여 설명하고자 한다.Layer 3 switching means forwarding (delivering) a packet from one network to the next network (i.e. next hop) on the third layer of Open Systems Interconnection (OSI) to reach its final destination. Examples of devices having a three-layer switching function include a three-layer switch, a router, and an optical network unit (ONU) of an Ethernet-Passive Optical Network (E-PON). . In this section, a device having a three-layer switching function will be described as a router for convenience.

라우터가 3계층 스위칭을 수행하기 위해서는, 각 네트워크에 도달하는 경로에 대한 정보, 그 경로의 메트릭(예컨대, 홉수, 비용 등) 등과 같은 라우팅 정보를 사전에 획득해야 한다. 이러한 라우팅 정보를 획득하는 방법으로는, 관리자가 직접 입력하는 정적(static) 라우팅 방법과 라우터 간에 자신이 아는 라우팅 정보를 서 로 교환하는 라우팅 프로토콜을 통하여 획득하는 동적(dynamic) 라우팅 방법이 있다. 라우팅 프로토콜의 예로는, 라우팅 정보 프로토콜(Routing Information Protocol : RIP), 최단 경로 우선(Open Shortest Path First : OSPF) 프로토콜, 경계 경로 프로토콜(Border Gateway Protocol : BGP) 등이 있다.In order for a router to perform three-layer switching, routing information such as information about a route reaching each network, a metric (eg, hop count, cost, etc.) of the route must be obtained in advance. As a method of obtaining such routing information, there are a static routing method directly input by an administrator and a dynamic routing method obtained through a routing protocol for exchanging routing information between routers. Examples of routing protocols include Routing Information Protocol (RIP), Open Shortest Path First (OSPF) protocol, and Border Gateway Protocol (BGP).

동적 라우팅 환경하에서, 라우터의 동적 라우팅 데몬은 상술한 교환을 통하여 얻어진 라우팅 정보를 엔트리(entry)로서 포함하는 RIB를 구축하게 된다. 라우터는 이러한 RIB의 엔트리들 중에서, 메트릭 면에서 최적인 엔트리를 추출하여 FIB를 구축한다. 즉, RIB에서 유효하다고 선택된 루트(route)만이 엔트리로서 FIB에 포함되는 것이다. 구체적으로, FIB에는 각 네트워크 주소와 라우터의 해당 출력 포트 및 다음 홉의 라우터 정보 등이 묶인 엔트리들이 포함된다.Under the dynamic routing environment, the router's dynamic routing daemon establishes a RIB that contains routing information obtained through the above-described exchange as an entry. The router extracts the best entry in terms of metrics from among the entries of the RIB to construct the FIB. That is, only routes selected as valid in the RIB are included in the FIB as entries. Specifically, the FIB includes entries that bind each network address, a corresponding output port of the router, router information of the next hop, and the like.

한편, FIB를 이용한 스위칭 방식(즉, 소프트웨어 기반의 스위칭 방식)도 가능하지만, 보다 신속한 검색을 위해, 최장 프리픽스 매칭(longest prefix matching : 이하, LPM) 테이블을 사용하는 하드웨어 기반의 스위칭 방식이 도입되었다. On the other hand, a switching scheme using FIB (i.e., a software-based switching scheme) is possible, but a hardware-based switching scheme using a longest prefix matching (LPM) table has been introduced for faster searching. .

하드웨어 기반의 스위칭 방식에 따르면, FIB의 엔트리들 중 일부가 저장된 LPM 테이블을 검색(lookup)하여 스위칭을 수행한다. 이러한 검색에는 LPM 알고리즘이 사용되는데, 이 알고리즘은 FIB의 엔트리들 중, 수신 패킷의 목적 주소(destination address)의 상위 비트 순으로 가장 많이 일치하는 네트워크 주소를 가진 엔트리를 선택하여 다음 홉을 결정하는 방법이다. 한편, 수신 패킷의 목적 주소와 일치하는 엔트리가 LPM 테이블에 없는 경우를 대비하기 위해 0.0.0.0/0과 같 은 디폴트 엔트리를 구비한다. 이 경우, 디폴트 엔트리에 기록된 다음 홉으로 패킷 포워딩이 이루어진다.According to the hardware-based switching scheme, some of the entries of the FIB look up the stored LPM table to perform switching. This search uses the LPM algorithm, which selects among the entries in the FIB that have the most matching network address in the order of the higher bits of the destination address of the incoming packet to determine the next hop. to be. On the other hand, a default entry such as 0.0.0.0/0 is provided in case there is no entry in the LPM table that matches the destination address of the received packet. In this case, packet forwarding takes place to the next hop recorded in the default entry.

상술한 바와 같은 라우팅 프로토콜, RIB, FIB, LPM 테이블 간의 개념적인 관계를 도 1에 도시하였다.The conceptual relationship between the routing protocol, the RIB, the FIB, and the LPM table as described above is illustrated in FIG. 1.

도 2a 및 도 2b는 3계층 스위칭 기능을 구비한 장치의 구성을 예시하는 블록도이다.2A and 2B are block diagrams illustrating the configuration of a device having a three-layer switching function.

도 2a의 장치(200)를 설명하면 다음과 같다. CPU(205)는 장치(200)에 대한 전반적인 제어를 수행하며, 동적 라우팅 데몬에 의한 RIB 구축 작업, FIB 구축 작업을 수행하여, 제1 저장소자(210)에 저장한다. 제1 저장소자의 예로는, 저렴하면서 고용량을 가진 SDRAM을 들 수 있다.The apparatus 200 of FIG. 2A is described below. The CPU 205 performs overall control of the apparatus 200, performs RIB establishment by the dynamic routing daemon, and FIB establishment, and stores the same in the first repository 210. An example of the first reservoir is an inexpensive and high capacity SDRAM.

스위칭 칩(215)은 CPU(205)로부터 FIB의 엔트리들을 제공받아, 제2 저장소자(220)에 LPM 테이블을 구축하며, 상기 구축된 LPM 테이블을 검색하여 수신 패킷을 다음 홉으로 포워딩한다. 즉, 수신 패킷은 4개의 포트(225, 230, 235, 240) 중 어느 하나를 통하여 스위칭 칩(215)에 입력되며, 어느 하나를 통하여 출력된다.The switching chip 215 receives the entries of the FIB from the CPU 205, constructs an LPM table in the second repository 220, searches the constructed LPM table, and forwards the received packet to the next hop. That is, the received packet is input to the switching chip 215 through any one of the four ports (225, 230, 235, 240), and is output through any one.

도 2b의 장치(250)에 포함된 CPU(255), 제1 저장소자(260), 스위칭 칩(265), 제2 저장소자(270), 포트(275, 280, 285, 290)의 기능은 도 2a의 해당 구성과 동일하며, 다만, 제1 저장소자(270)가 스위칭 칩(265)에 포함되어 하나의 칩으로 이루어지는 것이 다를 뿐이다.Functions of the CPU 255, the first reservoir 260, the switching chip 265, the second reservoir 270, and the ports 275, 280, 285 and 290 included in the device 250 of FIG. It is the same as the corresponding structure of FIG. 2A, except that the first reservoir 270 is included in the switching chip 265 and constitutes one chip.

도1, 도 2a 및 도 2b를 참조하면, RIB와 FIB는 CPU(205, 255)를 통하여 소프트웨어적으로 구축되며, LPM 테이블은 스위칭 칩(215, 265)를 통해 하드웨어적으로 구축됨을 알 수 있다. 또한, 스위칭 칩(215, 265)이 FIB를 검색하려면 CPU(205, 255)의 도움을 받아야 하는 반면, LPM 테이블은 직접 액세스할 수 있음을 알 수 있다.1, 2A and 2B, it can be seen that the RIB and the FIB are built in software through the CPUs 205 and 255, and the LPM table is built in hardware through the switching chips 215 and 265. . It can also be seen that the switching chips 215 and 265 need to be assisted by the CPUs 205 and 255 to retrieve the FIB while the LPM table is directly accessible.

한편, RIB에는 라우팅 프로토콜에 따라 수만 내지 수십만 개의 엔트리들이 포함되므로, 이들을 취합/선별하여 구축된 FIB라 하더라도 최소한 수만 개 이상의 엔트리들이 포함된다. 하지만, 현실적으로 문제가 되는 부분은 FIB의 수만 개의 엔트리들을 LPM 테이블 즉, 제2 저장소자(220, 270)에 포함시키는 과정에서 발생한다.On the other hand, since the RIB includes tens of thousands to hundreds of thousands of entries according to a routing protocol, the RIB includes at least tens of thousands of entries even if the FIB is constructed by collecting / selecting them. However, a problem that arises in reality occurs in the process of including tens of thousands of entries of the FIB in the LPM table, that is, the second repository (220, 270).

고속 스위칭을 위해, 제2 저장소자(220, 270)는 일반적으로 SDRAM의 형태인 제1 저장 소자(210, 260) 보다 훨씬 빠른 액세스 속도를 지원해야 하며, 경우에 따라 CAM(Content Addressable Memory) 등과 같은 특유의 구조를 가져야 하기 때문에, 가격 및 저장용량 면에서 제약이 있다. 따라서, 상용 장치에서는 LPM 테이블에 포함되는 엔트리의 수가 수만 개 이하로 제한되어 있으며, 그 결과, FIB의 모든 엔트리들을 LPM 테이블에 포함시키는 것이 불가능하다는 문제가 발생한다.For high-speed switching, the second reservoirs 220 and 270 must support much faster access speeds than the first storage elements 210 and 260, which are generally in the form of SDRAM, and in some cases, content addressable memory (CAM) and the like. Since they must have the same unique structure, there are limitations in terms of price and storage capacity. Therefore, in the commercial apparatus, the number of entries included in the LPM table is limited to tens of thousands or less, and as a result, a problem arises that it is impossible to include all the entries of the FIB in the LPM table.

이를 해결하기 위한 종래의 방법으로는, FIB의 엔트리들을 LPM 테이블이 지원 가능한 만큼만 저장하는 방법, 충분한 LPM 테이블을 지원할 수 있는 제2 저장 소자(220, 270)를 구비하는 방법, LPM 테이블의 용량에 따라 망 구성을 제한하는 방법이 있었다. 그러나, 첫째 방법은 일부 엔트리가 LPM 테이블에 반영되지 않아 잘못된 패킷 포워딩을 유발하며, 둘째 방법은 장치 비용 면에서 불리하며, 셋째 방법은 원하는 네트워크를 구성하는 데 제약으로 작용한다는 문제점이 있다.Conventional methods for solving this problem include a method of storing entries of the FIB only as long as the LPM table can be supported, a method having second storage elements 220 and 270 capable of supporting a sufficient LPM table, and a capacity of the LPM table. There was a way to limit the network configuration. However, in the first method, some entries are not reflected in the LPM table, causing false packet forwarding, the second method is disadvantageous in terms of device cost, and the third method is a limitation in configuring a desired network.

따라서, 이러한 문제점을 해결하기 위해, 상술한 하드웨어 제약 사항 하에서 3계층 스위칭을 효율적으로 수행할 수 있도록 하는 방안이 요구된다.Therefore, in order to solve this problem, a method for efficiently performing three-layer switching under the hardware constraints described above is required.

본 발명이 이루고자 하는 기술적 과제는, 효율적으로 3계층 스위칭을 수행하기 위한 포워딩 테이블을 제공하는 데 있다.An object of the present invention is to provide a forwarding table for efficiently performing three-layer switching.

상기의 기술적 과제를 이루기 위해 본 발명의 제1 측면은 별도의 포워딩 테이블을 참조하도록 하는 필드 값이 기록된 엔트리를 적어도 하나 포함하는 3계층 스위칭을 위한 포워딩 테이블을 제공한다.In order to achieve the above technical problem, a first aspect of the present invention provides a forwarding table for three-layer switching including at least one entry in which a field value is recorded to refer to a separate forwarding table.

상기의 기술적 과제를 이루기 위해 본 발명의 제2 측면은 네트워크 주소 필드; 다음 홉 필드; 및 상기 네트워크 주소 필드의 사용여부를 나타내는 필드를 포함하고 있고, 상기 다음 홉 필드 중 적어도 하나는 외부의 포워드 정보를 참조하도록 하는 값을 가지고 있는 포워딩 테이블을 제공한다.In order to achieve the above technical problem, a second aspect of the present invention provides a network address field; Next hop field; And a field indicating whether the network address field is used, and at least one of the next hop fields provides a forwarding table having a value for referring to external forward information.

이하, 상기 기술적 과제를 해결하기 위한 본 발명의 실시예들이 첨부된 도면을 참조하여 설명된다. Hereinafter, embodiments of the present invention for solving the above technical problem are described with reference to the accompanying drawings.

도 3은 본 발명의 일실시예에 따라 LPM 테이블을 캐쉬(cache)처럼 활용하는 개념을 설명하기 위한 도면으로, 보다 상세하게는 LPM 테이블에 활성 엔트리가 최대한 포함될 수 있도록 LPM 테이블을 관리하는 개념을 설명하기 위한 도면이다.3 is a view for explaining the concept of using the LPM table as a cache (cache) according to an embodiment of the present invention, in more detail the concept of managing the LPM table to include the maximum number of active entries in the LPM table; It is a figure for demonstrating.

도 3을 참조하면, FIB로부터 활성 엔트리가 LPM 테이블에 추가로 저장되며, LPM 테이블로부터 비활성(inactive) 엔트리가 삭제되는 것을 알 수 있다.Referring to FIG. 3, it can be seen that an active entry is additionally stored in the LPM table from the FIB, and an inactive entry is deleted from the LPM table.

여기서, 활성(active) 엔트리라 함은 사용 가능성 예컨대, 히트 확률(hit probability)이 높은 엔트리를 의미한다. 사용 가능성이 높은 엔트리라 함은 패킷 포워딩에 사용 중이거나, 사용되리라 기대되는 엔트리를 의미한다. 비활성(inactive) 엔트리라 함은 상술한 활성 엔트리의 속성에 반대되는 속성을 가진 엔트리이다.In this case, the active entry means an entry having high availability, for example, a hit probability. A highly available entry means an entry that is in use or expected to be used for packet forwarding. An inactive entry is an entry whose attributes are opposite to those of the above-mentioned active entry.

도 3에서 LPM 테이블에 추가되는 엔트리(즉, 활성 엔트리)의 예로는 바로 이전에 FIB에서 검색(lookup)되어 패킷 포워딩에 사용된 엔트리를 의미한다. 또한, 도 3에서 LPM 테이블로부터 삭제되는 엔트리(즉, 비활성 엔트리)의 예로는 LPM 테이블에서의 사용 빈도가 낮은 등의 이유로 사용 가능성이 작은 엔트리를 들 수 있다.In FIG. 3, an example of an entry added to the LPM table (ie, an active entry) refers to an entry that was previously looked up in the FIB and used for packet forwarding. In addition, as an example of an entry (that is, an inactive entry) deleted from the LPM table in FIG. 3, an entry with a low possibility of use may be used due to a low use frequency in the LPM table.

즉, 사용 가능성의 고저를 검출하는 방법은 활성 엔트리와 비활성 엔트리를 구분하여 결정하는 방법(바꿔 말하면, 삭제할 엔트리를 결정하는 방법 및 추가할 엔트리를 결정하는 방법)이라 볼 수 있으며, 이에 대해서는 후술한다.In other words, the method of detecting the high and low availability can be regarded as a method of determining active and inactive entries separately (in other words, determining an entry to delete and determining an entry to add), which will be described later. .

도 4는 본 발명의 일실시예에 따른 3계층 스위칭 기능을 구비한 장치를 도시한 블록도이다. 본 실시예의 장치는, 3계층 스위칭 기능을 구비한 장치로서, 그 예로는, 3계층 스위치, 라우터, E-PON에서의 ONU 등을 들 수 있으나, 반드시 이에 한정되는 것은 아니다.4 is a block diagram illustrating an apparatus having a three-layer switching function according to an embodiment of the present invention. The apparatus of the present embodiment is a device having a three-layer switching function, and examples thereof include a three-layer switch, a router, and an ONU in an E-PON, but are not necessarily limited thereto.

도 4를 참조하면, 본 실시예의 장치는 FIB(400), LPM 테이블(410), 관리부(420), 및 포워딩부(430)를 포함하여 이루어진다.Referring to FIG. 4, the apparatus of the present embodiment includes an FIB 400, an LPM table 410, a manager 420, and a forwarding unit 430.

도 4에 도시된 장치는 도 2a 및 도 2b에 예시된 구현 상의 장치의 구성요소와도 대응될 수 있다. 예컨대, 관리부(420) 및 포워딩부(430)는 스위칭 칩(215, 265)에 대응되며, LPM 테이블(410)은 제2 저장소자(270)에 대응되며, FIB(400)는 CPU(205, 255)에 의해 제1 저장소자(210, 260)에 저장/관리되는 데이터베이스에 대응된다. 다만, 도 4에 도시된 장치가 도 2a 및 도 2b에 예시된 장치의 구조에만 국한되어 적용되는 것이 아님은 이 분야에 종사하는 자라면 충분히 이해할 수 있다.The apparatus shown in FIG. 4 may also correspond to components of the apparatus in the implementation illustrated in FIGS. 2A and 2B. For example, the management unit 420 and the forwarding unit 430 correspond to the switching chips 215 and 265, the LPM table 410 corresponds to the second reservoir 270, and the FIB 400 corresponds to the CPU 205. 255) corresponds to a database stored / managed by the first repositories 210 and 260. However, it will be understood by those skilled in the art that the apparatus illustrated in FIG. 4 is not limited to the structure of the apparatus illustrated in FIGS. 2A and 2B.

도 4를 참조하여 본 실시예의 장치를 설명하면 다음과 같다.The apparatus of this embodiment will be described with reference to FIG. 4 as follows.

FIB(400)에는 도 1에서 설명한 바와 같이 유효한 루트가 엔트리로서 저장된다.In the FIB 400, a valid route is stored as an entry as described in FIG.

LPM 테이블(410)에는 FIB(400)의 엔트리들 중에서, 사용 가능성이 높은 엔트리들이 관리부(420)의 제어를 통해 저장된다. 바람직하게, 관리부(420)는 LPM 테이블(410)에 없으나 사용 가능성이 높은 FIB(400)의 엔트리를 선택하여 LPM 테이블(410)에 삽입한다. 또한, 바람직하게, 관리부(420)는 LPM 테이블(410)의 엔트리 중 사용 가능성이 낮은 엔트리를 선택하여 삭제한다. 보다 구체적이면서 효과적인 삽입/삭제 방법에 대해서는 후술한다.Among the entries of the FIB 400, highly available entries are stored in the LPM table 410 through the control of the management unit 420. Preferably, the management unit 420 selects an entry of the FIB 400 that is not in the LPM table 410 but is highly available, and inserts the entry into the LPM table 410. In addition, the manager 420 selects and deletes an entry having low availability from among the entries in the LPM table 410. More specific and effective insertion / deletion methods will be described later.

포워딩부(430)는 수신 패킷의 목적 주소와 LPM 알고리즘 상으로 매칭되는 엔트리를 LPM 테이블(410) 상에서 검색하여 다음 홉으로 포워딩한다. 이하에서는, "LPM 알고리즘 상으로 매칭한다"는 표현을 "매칭한다"로 편의상 칭하여 본 발명을 설명하고자 한다.The forwarding unit 430 searches for an entry matching the destination address of the received packet on the LPM algorithm on the LPM table 410 and forwards it to the next hop. Hereinafter, the present invention will be described for convenience by referring to the expression "matching on the LPM algorithm" as "matching".

바람직하게, 포워딩부(430)는 LPM 테이블(410) 상에 목적 주소와 매칭되는 엔트리가 없으면, FIB(400)을 검색하여 수신 패킷을 다음 홉으로 포워딩한다. 이러한 단계별 포워딩 개념을 도 5a 및 5b를 참조하여 구체적으로 설명한다.Preferably, if there is no entry matching the destination address on the LPM table 410, the forwarding unit 430 searches for the FIB 400 and forwards the received packet to the next hop. This step-by-step forwarding concept will be described in detail with reference to FIGS. 5A and 5B.

도 5a 및 도 5b는 본 발명의 일실시예에 따라 사용되는 LPM 테이블(410)을 나타내는 블록도로서, LPM 테이블(410)을 우선적으로 검색한 후, 필요시 추가적으로 FIB(400)을 검색하여 패킷 포워딩을 수행하는 과정을 설명하기 위한 도면이다. 구체적으로, 도 5a는 본 발명의 제1 실시예에 따른 단계별 검색 방법을 설명하기 위한 도면이며, 도 5b는 본 발명의 제2 실시예에 따른 단계별 검색 방법을 설명하기 위한 도면이다.5A and 5B are block diagrams illustrating an LPM table 410 used in accordance with an embodiment of the present invention. After the LPM table 410 is first searched, an additional FIB 400 may be additionally searched if necessary. A diagram for describing a process of performing forwarding. Specifically, FIG. 5A is a diagram for explaining a step-by-step search method according to a first embodiment of the present invention, and FIG. 5B is a diagram for explaining a step-by-step search method according to a second embodiment of the present invention.

설명의 편의상, 도 5a 및 도 5b에는 LPM 테이블의 엔트리로서 네트워크 주소 및 다음 홉에 대한 정보만을 도시하였으나, 부가적으로 다양한 필드들이 각 엔트리에 부가될 수 있음은 이 분야에 종사하는 자라면 충분히 이해할 수 있다.5A and 5B show only the information of the network address and the next hop as an entry in the LPM table, but it is understood by those skilled in the art that various fields may additionally be added to each entry. Can be.

도 5a에 도시된 LPM 테이블의 디폴트 엔트리에는, 포워딩부(430)로 하여금 다음 홉에 대한 정보는 FIB(400)를 참조하도록 설정되어 있다. 따라서, 포워딩부(430)는 수신 패킷의 목적 주소와 매칭되는 LPM 테이블의 엔트리가 없어 디폴트 엔트리를 선택하게 되는 경우, FIB(400)를 검색하여 상기 수신 패킷의 다음 홉을 결정한 후, 포워딩을 수행하게 된다. In the default entry of the LPM table shown in FIG. 5A, the forwarding unit 430 is set to refer to the FIB 400 for information on the next hop. Therefore, when the forwarding unit 430 selects a default entry because there is no entry in the LPM table matching the destination address of the received packet, the forwarding unit 430 searches the FIB 400 to determine the next hop of the received packet, and then performs forwarding. Done.

도 5b에 도시된 LPM 테이블에는 도 5a와는 달리 디폴트 엔트리가 없다. 도 5b에 도시된 LPM 테이블이 있는 환경 하에서, 포워딩부(430)는 수신 패킷의 목적 주소와 매칭되는 LPM 테이블의 엔트리가 없으면, 자동적으로 FIB(400)를 검색하여 상기 수신 패킷의 다음 홉을 결정한 후, 포워딩을 수행한다.There is no default entry in the LPM table shown in FIG. 5B unlike FIG. 5A. Under the environment of the LPM table shown in FIG. 5B, if there is no entry of the LPM table matching the destination address of the received packet, the forwarding unit 430 automatically searches the FIB 400 to determine the next hop of the received packet. After that, forwarding is performed.

도 5a 및 도 5b에 도시된 LPM 테이블(410) 및 상술한 동작을 수행하는 포워딩부(430)을 구비한 본 실시예의 장치(즉, 제1, 2 실시예에 따른 단계별 검색 방법이 적용된 장치)는 LPM 테이블(410)외에 부가적으로 FIB(400)를 활용하여 스위칭을 수행하므로, 하드웨어 기반의 스위칭만을 수행하는 종래의 방법에 비해, 보다 유효적절한 스위칭을 수행할 수 있으며, 소프트웨어 기반의 스위칭만을 수행하는 종래의 방법에 비해, 전반적으로 보다 고속의 스위칭을 수행할 수 있다는 효과를 도출한다.5A and 5B and the LPM table 410 and the forwarding unit 430 for performing the above-described operation (ie, a device to which the stepwise search method according to the first and second embodiments is applied). Since the switching is performed by using the FIB 400 in addition to the LPM table 410, it is possible to perform more effective switching than the conventional method of performing only hardware-based switching, and only software-based switching. Compared to the conventional method of performing, the effect that the overall faster switching can be performed.

이하에서는, FIB(400)의 엔트리들 중에서 사용 가능성이 높은 엔트리가 LPM 테이블(410)에 존재하도록, 관리부(420)가 LPM 테이블(410)을 관리하는 방법을 설명하고자 한다.Hereinafter, a method of managing the LPM table 410 by the management unit 420 will be described so that an entry highly available among the entries of the FIB 400 exists in the LPM table 410.

본 발명의 제1 실시예에 따른 관리부(420)의 관리 방법은 LPM 테이블(410)에는 없고, FIB(400)에 있는 엔트리들 중에서, 사용 가능성이 높은 엔트리를 LPM 테이블(410)에 삽입하는 방법이다. 여기서, 사용 가능성이 높은 엔트리를 결정하는 방법의 일례로는, FIB(400)에서 검색되어 포워딩에 사용된 엔트리의 사용 빈도를 모니터링하여, LPM 테이블(410)에 삽입할 엔트리를 결정하는 방법이다. 예컨대, FIB(400)를 통한 패킷 포워딩에 사용된 엔트리를 관리부(420)가 LPM 테이블(410)에 삽입한다.The management method of the management unit 420 according to the first embodiment of the present invention is not in the LPM table 410, and among the entries in the FIB 400, a method of inserting a highly usable entry into the LPM table 410. to be. Here, one example of a method for determining an entry with high availability is a method of determining an entry to be inserted into the LPM table 410 by monitoring the frequency of use of the entry retrieved by the FIB 400 and used for forwarding. For example, the manager 420 inserts an entry used for packet forwarding through the FIB 400 into the LPM table 410.

본 발명의 제2 실시예에 따른 관리부(420)의 관리 방법은 LPM 테이블(410)의 엔트리들 중 사용 가능성이 낮은 엔트리를 삭제하는 방법이다. 여기서, 사용 가능성이 낮은 엔트리를 결정하는 방법의 일례로는, 관리부(420)가 LPM 테이블(410)의 각 엔트리의 사용 빈도를 모니터링하여 삭제할 엔트리를 결정하는 방법이다. 이를 위해, 바람직하게, 관리부(420)는 LPM 테이블(410)의 각 엔트리의 사용 이력을 기록하는 필드(이하, 사용 필드)를 LPM 테이블(410)에 두어 관리하며, 이러한 사용 필드를 기초로, 사용 가능성의 고저 또는 사용 빈도를 검출한다. 사용 필드를 기초로 한 사용 가능성의 고저 또는 사용 빈도의 검출 방법은 도 6을 참조하여 설명한다.The management method of the management unit 420 according to the second embodiment of the present invention is a method of deleting entries with low availability among the entries of the LPM table 410. Here, as an example of a method for determining an entry with low availability, the management unit 420 monitors the frequency of use of each entry in the LPM table 410 to determine an entry to delete. To this end, preferably, the management unit 420 manages a field (hereinafter referred to as a use field) for recording a use history of each entry of the LPM table 410 in the LPM table 410 and manages it based on the use field. Detect the high or low frequency of availability. A method of detecting the high or low frequency of use based on the use field will be described with reference to FIG. 6.

도 6은 본 발명의 일실시예에 따라 사용 필드를 주기적으로 모니터링하는 과정을 설명하기 위한 도면이다. 6 is a diagram illustrating a process of periodically monitoring a usage field according to an embodiment of the present invention.

도 6을 참조하면, t0의 시점(time point)에서 관리부(420)는 LPM 테이블(410)에 대한 초기화 과정을 수행한다. 초기화 과정의 결과, LPM 테이블(410)의 엔트리가 설정되며, 히트 비트가 0로 설정된다. 여기서, 히트 비트는 상술한 사용 필드의 일실시예이다.Referring to FIG. 6, the manager 420 performs an initialization process on the LPM table 410 at a time point t0. As a result of the initialization process, an entry in the LPM table 410 is set, and the hit bit is set to zero. Here, the hit bit is one embodiment of the use field described above.

도 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로 설정한다.Referring to FIG. 6, two received packets are input to the forwarding unit 430 between t0 and t1, and the forwarding unit 430 of the LPM table 410 matches the destination addresses of the two received packets. You can see that the entries 10.1.xx and 10.1.1.x were searched and forwarded to the next hop. Here, the management unit 420 sets the value of the hit bit of the entry to 1 to record that entries of 10.1.x.x and 10.1.1.x are used.

t1의 시점에 관리부(420)는 LPM 테이블(410)을 모니터링하여, 각 엔트리의 사용 이력(즉, 히트 비트의 값)을 획득한 후, 각 엔트리의 히트 비트의 값을 0으로 설정하는 클리어링(clearing) 작업을 수행한다.At the time t1, the management unit 420 monitors the LPM table 410, obtains the usage history (that is, the value of the hit bit) of each entry, and then sets the value of the hit bit of each entry to 0 ( clearing).

t2, t3의 시점에 관리부(420)는 마찬가지로 모니터링 및 클리어링 작업을 수행한다.At the time t2 and t3, the management unit 420 similarly performs the monitoring and clearing work.

상술한 바와 같이, 관리부(420)는 주기적으로 LPM 테이블(410)의 히트 비트들을 모니터링하여 사용 가능성 또는 사용 빈도를 검출할 수 있는 것이다. As described above, the manager 420 may periodically monitor the hit bits of the LPM table 410 to detect availability or frequency of use.

이러한 주기적 모니터링 결과를 기초로 사용 가능성이 작은 엔트리를 검출하는 바람직한 제1 실시예는, 일회 내지 수회 모니터링 결과, 연속 비사용 횟수가 소정 임계치 이상인 엔트리를, 사용 가능성이 작은 엔트리로 결정하는 방법이다.A first preferred embodiment for detecting an entry with low usability based on such periodic monitoring results is a method for determining an entry whose number of consecutive non-uses is greater than or equal to a predetermined threshold as a result of one to several monitoring as an entry with low usability.

이러한 주기적 모니터링 결과를 기초로 사용 가능성이 작은 엔트리를 검출하는 바람직한 제2 실시예는, 일회 내지 수회 모니터링 결과를 기초로, 확률적으로 사용 가능성을 산출하는 방법이다. 일례로, 관리부(420)는 모니터링 횟수 대비 누적 비사용 횟수가 소정 임계치 이상인 엔트리를 사용 가능성이 작은 엔트리로 결정한다.A second preferred embodiment of detecting an entry with low availability based on such periodic monitoring results is a method of probabilistically calculating availability based on one to several monitoring results. In one example, the management unit 420 determines that an entry whose cumulative non-use count is greater than or equal to a predetermined number of times of monitoring as an entry having a low possibility of use.

이와 같은 과정으로 사용 가능성이 작다고 검출된 엔트리는 관리부(420)에 의해 LPM 테이블(410)로부터 삭제된다. 예컨대, 도 6에서, 10.x.x.x의 엔트리가 LPM 테이블(410)로부터 삭제될 수 있는 것이다.The entry detected as having low availability in this process is deleted by the management unit 420 from the LPM table 410. For example, in FIG. 6, an entry of 10.x.x.x may be deleted from the LPM table 410.

도 7은 본 발명의 일실시예에 따라 히트 비트가 기록되며 캐쉬처럼 활용하는 LPM 테이블을 나타내는 도면이다. FIG. 7 is a diagram illustrating an LPM table in which a hit bit is recorded and used as a cache according to an embodiment of the present invention.

도 7에 예시된 LPM 테이블은, 디폴트 엔트리에는 FIB를 참조하도록 기록되어 있으며, 히트 비트가 1인 엔트리만을 포함하고 있다. 즉, LPM 테이블에서, 사용되지 않아 히트 비트가 0이 되는 엔트리는 삭제되며, FIB를 참조하여 스위칭에 사용된 FIB의 엔트리는 LPM 테이블에 추가되어 히트 비트가 1로 기록되는 것이다.The LPM table illustrated in FIG. 7 is recorded in the default entry so as to refer to the FIB and includes only an entry having a hit bit of 1. FIG. That is, in the LPM table, an entry that is not used and the hit bit becomes 0 is deleted, and an entry of the FIB used for switching with reference to the FIB is added to the LPM table so that the hit bit is written as 1.

이하에서는, 보다 효율적인 스위칭을 위해, 본 발명의 일실시예에 따라 관련 엔트리들을 묶어서 LPM 테이블(410)로부터 삭제하는 방법(이하, 묶음 삭제 방법)을 설명하고자 한다.Hereinafter, for more efficient switching, a method of grouping and deleting related entries from the LPM table 410 according to an embodiment of the present invention will be described.

먼저, 엔트리를 하나 단위로 LPM 테이블(410)로부터 삭제하는 경우 발생될 수 있는 상황을 설명한다. 이러한 상황의 예로는, LPM 테이블(410)이 엔트리1 = {네트워크 주소 : 10.1.x.x -> 다음 홉 : B}, 엔트리2 = {네트워크 주소 : 10.1.1.x -> 다음 홉 : C}를 엔트리로서 포함하고 있을 때, 관리부(420)가 엔트리2를 사용 가능성이 낮은 엔트리로 결정하여 삭제하는 상황을 들 수 있다.First, a situation that may occur when an entry is deleted from the LPM table 410 by one unit will be described. As an example of this situation, the LPM table 410 has entries 1 = {network address: 10.1.xx-> next hop: B}, entry 2 = {network address: 10.1.1.x-> next hop: C} When included as an entry, there is a situation in which the management unit 420 determines entry 2 as an entry with low availability and deletes it.

엔트리2가 삭제된 후에 목적 주소가 10.1.1.2인 패킷이 수신되었을 때, 포워딩부(430)는 LPM 테이블(410)을 검색하여, 이 목적 주소와 LPM 관점에서 매칭되는 엔트리가 엔트리1임을 확인한 후, B에 해당하는 홉으로 전달하게 된다. 즉, 엔트리2의 삭제로 인해, LPM 관점에서 매칭되는 엔트리는 엔트리1이 되어, 바람직하지 않은 패킷 포워딩이 발생하게 되는 것이다. 왜냐하면, 상기 수신 패킷이 전달되어야 할 바람직한 다음 홉은 엔트리2의 C에 해당하는 홉이기 때문이다. When the packet having the destination address of 10.1.1.2 is received after the entry 2 is deleted, the forwarding unit 430 searches the LPM table 410 and confirms that the entry matching the destination address and the LPM from the viewpoint is entry 1. In other words, it passes to the hop corresponding to B. In other words, due to deletion of entry 2, the matching entry becomes L1 in terms of LPM, which causes undesirable packet forwarding. This is because the preferred next hop to which the received packet should be forwarded is the hop corresponding to C of entry2.

이와는 달리, 엔트리1도 함께 삭제되었다면, 도 5a 및 도 5b에서 설명한 본 발명의 일실시예에 따라 포워딩부(430)는 FIB(400)를 참조하게 되고, 그 결과, 상기 수신 패킷이 바람직한 다음 홉인 C로 전달 될 수 있음을 알 수 있다.Alternatively, if entry 1 is also deleted, the forwarding unit 430 refers to the FIB 400 according to the embodiment of the present invention described with reference to FIGS. 5A and 5B, and as a result, the received packet is a preferred next hop. It can be seen that it can be passed in C.

따라서, 이러한 특성을 이용하기 위하여, 바람직하게, 관리부(420)는 사용 가능성이 낮은 것으로 결정된 엔트리를 연관된 엔트리와 함께 묶어서 삭제한다. 여기서, 연관된 엔트리라 함은, LPM 트리 상에서 상 하위의 관계를 가지는 엔트리를 의미한다. 바람직하게, 관리부(420)는 사용 가능성이 낮은 것으로 결정된 엔트리를 그 엔트리보다 LPM 트리상에서 소정 단계 상위의 엔트리까지 묶어서 삭제한다. 이에 대한 구체적인 설명은 도 8을 참조하여 설명한다.Thus, to take advantage of this feature, the manager 420 preferably deletes the entries determined to be low in availability together with the associated entries. Here, the associated entry refers to an entry having a relationship between upper and lower on the LPM tree. Preferably, the management unit 420 deletes the entries determined to be low in availability, up to the entry of a predetermined step in the LPM tree rather than the entries. A detailed description thereof will be described with reference to FIG. 8.

도 8은 본 발명의 일실시예에 따른 묶음 처리(삭제/삽입) 과정을 설명하기 위한 LPM 트리를 예시한다.8 illustrates an LPM tree for explaining a bundle processing (delete / insert) process according to an embodiment of the present invention.

도 8에 예시된 LPM 트리 상에는 10.x.x.x 엔트리 노드(node), 10.1.x.x 엔트리 노드 등이 존재하는데, 이 엔트리 노드들은 FIB(400) 및 LPM 테이블(410) 상에 있는 10.x.x.x에 해당하는 엔트리, 10.1.x.x에 해당하는 엔트리 등에 대응한다.In the LPM tree illustrated in FIG. 8, there are 10.xxx entry nodes, 10.1.xx entry nodes, etc., which correspond to 10.xxx on the FIB 400 and the LPM table 410. It corresponds to an entry, an entry corresponding to 10.1.xx, and the like.

일례로, 도 8에서 10.1.x.x가 사용 가능성이 낮은 경우, 상술한 본 발명의 묶음 삭제 방법에 따라 관리부(420)는 10.1.x.x를 그 상위 엔트리인 10.x.x.x와 묶어서 LPM 테이블(410)에서 삭제한다.For example, when 10.1.xx in FIG. 8 is unlikely to be used, the management unit 420 binds 10.1.xx to its upper entry 10.xxx in the LPM table 410 according to the above-described bundle deletion method of the present invention. Delete it.

다른 예로, 도 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)에서 삭제한다.As another example, when 10.1.1.x in FIG. 8 is unlikely to be used, the management unit 420 bundles 10.1.1.x with its upper entry 10.1.xx according to the above-described bundle deletion method of the present invention, and thus the LPM table. In operation 410, the management unit 420 deletes 10.1.1.x from the LPM table 410 by binding all entries up to the highest entry, that is, 10.1.xx and 10.xxx.

여기서, 묶여져서 삭제되는 엔트리의 수가 클 수록, LPM 테이블(410)의 저장 공간을 더 확보할 수 있는 반면에, 그 만큼 FIB(400)를 통한 패킷 포워딩이 많아지므로 전반적으로 스위칭 속도가 저하된다는 특성이 있음을 알 수 있다. 따라서, 바람직하게, 이러한 특성을 고려하여 묶여져서 삭제되는 엔트리의 수를 결정한다.Here, the larger the number of entries that are bundled and deleted, the more the storage space of the LPM table 410 can be secured, while the more the packet forwarding through the FIB 400, the more the switching speed is reduced overall. It can be seen that. Thus, preferably, this property is taken into account to determine the number of entries that are bundled and deleted.

이하에서는, 보다 효율적인 스위칭을 위해, 본 발명의 일실시예에 따라 관련 엔트리들을 묶어서 LPM 테이블(410)에 삽입하는 방법(이하, 묶음 삽입 방법)을 설명하고자 한다.Hereinafter, for more efficient switching, a method (bundle insertion method) of inserting relevant entries into the LPM table 410 according to an embodiment of the present invention will be described.

먼저, 엔트리를 하나 단위로 LPM 테이블(410)에 삽입하는 경우 발생될 수 있는 상황을 설명한다. 이러한 상황의 예로는, 엔트리1 = {네트워크 주소 : 10.1.x.x -> 다음 홉 : B}, 엔트리2 = {네트워크 주소 : 10.1.1.x -> 다음 홉 : C}가 FIB(400)에만 있고, 관리부(420)가 엔트리1의 사용 가능성이 높음을 검출한 후, 엔트리1을 LPM 테이블(410)에 삽입하는 상황을 들 수 있다.First, a situation that may occur when an entry is inserted into the LPM table 410 as a unit will be described. An example of this situation is that entry1 = {network address: 10.1.xx-> next hop: B}, entry2 = {network address: 10.1.1.x-> next hop: C} is only present in FIB 400 A situation in which the management unit 420 inserts the entry 1 into the LPM table 410 after detecting that the entry 1 is highly available.

엔트리1만이 삽입된 후에 목적 주소가 10.1.1.2인 패킷이 수신되었을 때, 포워딩부(430)는 LPM 테이블(410)을 검색하여, 이 목적 주소와 LPM 관점에서 매칭되는 엔트리가 엔트리1임을 확인한 후, B에 해당하는 홉으로 전달하게 된다. 즉, 엔트리2가 LPM 테이블(410)에 없음으로 인해, LPM 관점에서 매칭되는 엔트리는 엔트리1이 되어, 바람직하지 않은 패킷 포워딩이 발생하게 되는 것이다. 왜냐하면, 상 기 수신 패킷이 전달되어야 할 바람직한 다음 홉은 엔트리2의 C에 해당하는 홉이기 때문이다. When only a packet having a destination address of 10.1.1.2 is received after only entry 1 is inserted, the forwarding unit 430 searches the LPM table 410 to confirm that the entry matching the destination address and LPM is Entry 1 In other words, it passes to the hop corresponding to B. That is, since entry 2 is not in the LPM table 410, the matching entry becomes L1 in terms of LPM, which causes undesirable packet forwarding. This is because the preferred next hop to which the received packet should be forwarded is the hop corresponding to C of entry2.

이와 달리, 엔트리2도 함께 LPM 테이블(410)에 삽입되었다면, 당연히 상기 수신 패킷은 바람직한 다음 홉인 C로 전달 될 수 있음을 알 수 있다.Alternatively, if entry 2 is also inserted into the LPM table 410, it can be seen that the received packet can of course be forwarded to C, which is the desired next hop.

따라서, 이러한 특성을 이용하기 위하여, 바람직하게, 관리부(420)는 사용 가능성이 높은 것으로 결정된 FIB(400)의 엔트리를 연관된 엔트리와 함께 묶어서 LPM 테이블(410)에 삽입한다. 여기서, 연관된 엔트리라 함은, LPM 트리 상에서 상 하위의 관계를 가지는 엔트리를 의미한다. Thus, to take advantage of this feature, the manager 420 preferably inserts the entries of the FIB 400 determined to be highly available together with the associated entries and inserts them into the LPM table 410. Here, the associated entry refers to an entry having a relationship between upper and lower on the LPM tree.

바람직하게, 관리부(420)는 사용 가능성이 높은 것으로 결정된 엔트리를 그 엔트리보다 LPM 트리상에서 소정 단계 하위의 엔트리까지 묶어서 LPM 테이블(410)에 삽입한다. 예컨대, 도 8에서, 10.x.x.x의 엔트리가 사용 가능성이 높다고 결정되면, 10.1.x.x와 묶거나, 10.1.x.x 및 10.1.1.x와 함께 묶어서 LPM 테이블(410)에 삽입한다.Preferably, the management unit 420 bundles an entry determined to be highly available to the LPM table 410 by binding an entry below a predetermined step on the LPM tree rather than the entry. For example, in FIG. 8, if it is determined that an entry of 10.x.x.x is highly available, it is bundled with 10.1.x.x or with 10.1.x.x and 10.1.1.x and inserted into the LPM table 410.

한편, 삽입될 엔트리 묶음의 수는 삭제될 엔트리 묶음의 수와 마찬가지의 특성(스위칭 속도와 저장 공간 간의 트레이드 오프 관계)을 가지므로, 이에 대해서는 별도의 설명을 생략한다.On the other hand, since the number of entry bundles to be inserted has the same characteristics (trade-off relationship between switching speed and storage space) as the number of entry bundles to be deleted, a separate description thereof will be omitted.

이하에서는, 본 발명의 실시예에 따라 대표 엔트리를 이용하는 스위칭 방법(이하, 대표 엔트리 이용 방법)을 설명하고자 한다.Hereinafter, a switching method using a representative entry (hereinafter, referred to as a representative entry method) according to an embodiment of the present invention will be described.

바람직하게, 상술한 본 발명의 묶음 삭제 방법을 수행함에 있어서, 관리 부(420)는 본 발명의 제1 실시예에 따른 대표 엔트리 이용 방법에 따라 삭제 대상인 엔트리들 중에서 대표 엔트리만을 남겨, FIB(400)를 통한 패킷 포워딩이 이루어지도록 수행한다.Preferably, in performing the above-described bundle deletion method of the present invention, the management unit 420 leaves only the representative entry among the entries to be deleted according to the method of using the representative entry according to the first embodiment of the present invention, and the FIB 400 Packet forwarding is performed.

도 9a 및 도 9b는 본 발명의 제1 실시예에 따른 대표 엔트리 이용 방법에 따라 대표 엔트리가 적용된 LPM 테이블을 이용하여 패킷 포워딩을 수행하는 개념을 설명하기 위한 도면이다.9A and 9B are diagrams for describing a concept of performing packet forwarding using an LPM table to which a representative entry is applied according to the representative entry using method according to the first embodiment of the present invention.

도 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)의 상태로 갱신된다.9A shows the state of the LPM table 410 before application of the representative entry. In the state of the LPM table 410 illustrated in FIG. 9A, when the manager 420 determines that an entry of 10.1.xx is low in availability, the manager 420 is executed when the above-described method for deleting a bundle of the present invention is performed. ) Deletes 10.1.xx by binding its parent entry 10.xxx. However, in the method of using the representative entry according to the first embodiment of the present invention, the top hop entry to be deleted is left on the LPM table 410, but the next hop field of the top entry is performed so that switching through the FIB 400 is performed. To record. As a result, the state of the LPM table 400 is updated to the state of the LPM table 400 of FIG. 9B.

그 결과, 10.1.2.2의 목적 주소인 패킷, 및 10.2.1.1의 목적 주소인 패킷은 FIB(400)을 참조하여 포워딩이 이루어지게 된다.As a result, the packet which is the destination address of 10.1.2.2 and the packet which is the destination address of 10.2.1.1 are forwarded with reference to the 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가 없었다는 점이다.Meanwhile, in the representative entry usage method according to the second embodiment of the present invention, the management unit 420 bundles at least two entries among the entries of the FIB 400 that are not present in the LPM table 410, and binds the two entries that are bundled together. Representative entries (hereinafter referred to as representative entries) are inserted into the LPM table 410, and the representative entries are recorded so that packet forwarding through the FIB 400 is performed. The recording result is similar to that of the LPM table 400 of FIG. 9B. However, unlike the first embodiment described above, the LPM table 400 does not have 10.1.x.x and 10.x.x.x before the representative entry is applied, unlike FIG. 9A.

본 발명의 제1, 제2 실시예에 따른 대표 엔트리 이용 방법을 수행하는 데 있어서, 디폴트 엔트리의 사용 방법에는 제한이 없다. 예컨대, 본 발명의 제1, 제2 실시예에 따른 대표 엔트리 이용 방법에서는 디폴트 엔트리에 해당하는 다음 홉을 D로 설정하는 일반적인 디폴트 엔트리 사용 방법, 도 5a 및 도 5b에서 설명한 디폴트 엔트리 사용 방법 등 모두 적용 가능한 것이다.In performing the representative entry usage method according to the first and second embodiments of the present invention, there is no limitation on the usage method of the default entry. For example, in the representative entry usage method according to the first and second embodiments of the present invention, the general default entry usage method for setting the next hop corresponding to the default entry to D, the default entry usage method described in FIGS. 5A and 5B, etc. It is applicable.

이러한 본원 발명인 방법 및 장치는 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.Such a method and apparatus of the present invention have been described with reference to the embodiments shown in the drawings for clarity, but these are merely exemplary, and various modifications and equivalent other embodiments are possible to those skilled in the art. Will understand. Therefore, the true technical protection scope of the present invention will be defined by the appended claims.

본 발명에 따르면, 효율적으로 3계층 스위칭을 수행할 수 있으며, 그 결과 다음의 효과를 도출한다. 첫째, 제한적인 하드웨어 LPM 테이블을 갖는 장치에서, 방대한 크기의 FIB를 지원할 수 있게 되어 보다 효율적이고 경제적인 망의 구성이 가능해진다. 둘째, 방대한 FIB를 지원하기 위해 큰 사이즈의 하드웨어 LPM 테이블을 가져야 한다는 제약에서 벗어날 수 있기 때문에, 저렴한 비용으로 높은 성능의 스위칭 장치를 구현할 수 있다.According to the present invention, three-layer switching can be efficiently performed, resulting in the following effects. First, in a device with a limited hardware LPM table, it is possible to support a large size of FIB to enable a more efficient and economical network configuration. Second, the high-performance switching device can be implemented at low cost because it can be freed from the constraint of having a large hardware LPM table to support a large FIB.

Claims (14)

3계층 스위칭을 위한 포워딩 테이블에 있어서,In a forwarding table for three-layer switching, 별도의 포워딩 테이블을 참조하도록 하는 필드 값이 기록된 엔트리를 적어도 하나 포함하는 것을 특징으로 하는 3계층 스위칭을 위한 포워딩 테이블.And at least one entry having recorded field values for referring to a separate forwarding table. 제1항에 있어서, 상기 참조하도록 하는 필드 값이 기록된 엔트리는The entry of claim 1, wherein the entry in which the field value to be referred to is recorded. 디폴트 엔트리를 포함하는 것을 특징으로 하는 3계층 스위칭을 위한 포워딩 테이블.A forwarding table for layer 3 switching, comprising a default entry. 제2항에 있어서, 상기 참조하도록 하는 필드 값이 기록된 엔트리는The entry of claim 2, wherein the entry in which the field value to be referred to is recorded. 상기 디폴트 엔트리를 제외한 나머지 엔트리들 중 적어도 하나의 엔트리를 포함하는 것을 특징으로 하는 3계층 스위칭을 위한 포워딩 테이블.And at least one of the remaining entries other than the default entry. 제1항에 있어서, 상기 참조하도록 하는 필드 값이 기록된 엔트리는The entry of claim 1, wherein the entry in which the field value to be referred to is recorded. 디폴트 엔트리를 제외한 나머지 엔트리들 중 적어도 하나의 엔트리를 포함하는 것을 특징으로 하는 3계층 스위칭을 위한 포워딩 테이블.And at least one of the remaining entries except for the default entry. 제1항에 있어서, 상기 참조하도록 하는 필드 값이 기록된 엔트리는The entry of claim 1, wherein the entry in which the field value to be referred to is recorded. LPM 트리 상에서 소정 단계로 연속된 상하위 엔트리 노드들을 대표하는 엔트 리(이하, 대표 엔트리)를 포함하는 것을 특징으로 하는 3계층 스위칭을 위한 포워딩 테이블. A forwarding table for three-layer switching, comprising an entry (hereinafter, representative entry) representing upper and lower entry nodes consecutive in a predetermined step on the LPM tree. 제5항에 있어서, 상기 대표 엔트리의 네트워크 주소 필드에는The network address field of claim 5, wherein 상기 연속된 상하위 엔트리 노드들 중에서 최상위 엔트리 노드에 해당하는 네트워크 주소가 기록된 것을 특징으로 하는 3계층 스위칭을 위한 포워딩 테이블을 관리하는 장치.And a network address corresponding to the highest entry node of the consecutive upper and lower entry nodes is recorded. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 별도의 포워딩 테이블은The method of any one of claims 1 to 6, wherein the separate forwarding table is 포워딩 정보 베이스(forwarding information base : 이하, FIB)을 포함하는 것을 특징으로 하는 3계층 스위칭을 위한 포워딩 테이블.A forwarding table for three-layer switching, comprising a forwarding information base (FIB). 네트워크로부터 수신된 패킷을 최종목적지까지 도달시키기 위해 다음 홉으로 전달하기 위한 사용되는 포워딩 테이블에 있어서,A forwarding table used for forwarding a packet received from a network to the next hop to reach its destination. 네트워크 주소 필드;Network address field; 다음 홉 필드; 및Next hop field; And 상기 네트워크 주소 필드의 사용여부를 나타내는 필드를 포함하고 있고,A field indicating whether the network address field is used or not; 상기 다음 홉 필드 중 적어도 하나는 외부의 포워드 정보를 참조하도록 하는 값을 가지고 있는 것을 특징으로 하는 포워딩 테이블. At least one of the next hop fields has a value for referring to external forward information. 제8항에 있어서, 상기 사용여부를 나타내는 필드는The method of claim 8, wherein the field indicating whether or not to use 모두 사용된 상태를 나타내도록 설정된 것을 특징으로 하는 포워딩 테이블.A forwarding table, characterized in that it is set to indicate the used state. 제8항 또는 제9항에 있어서, 상기 외부의 포워드정보를 참조하도록 설정된 다음홉필드에 해당하는 네트워크주소필드는 네트워크 주소가 디폴트 형태로 설정된 것을 특징으로 하는 포워딩 테이블.10. The forwarding table of claim 8 or 9, wherein a network address field corresponding to a next hop field set to reference the external forward information is set in a default form. 제10항에 있어서, 상기 외부의 포워드정보를 참조하도록 설정된 다음 홉 필드에 해당하는 네트워크 주소 필드는 네트워크 주소가 IP(Internet Protocol) 주소 형태로 설정된 것을 특징으로 하는 포워딩 테이블.The forwarding table of claim 10, wherein the network address field corresponding to the next hop field set to refer to the external forward information is set in the form of an IP address. 제11항에 있어서, 상기 외부의 포워드정보는 포워드정보베이스(Forward Information Base: FIB)인 것을 특징으로 하는 포워딩 테이블.12. The forwarding table of claim 11, wherein the external forward information is a forward information base (FIB). 제12항에 있어서, 상기 포워딩 테이블은 최장 프리픽스 매칭 (Longest Prefix Matching: LPM) 테이블인 것을 특징으로 하는 포워딩 테이블.13. The forwarding table of claim 12, wherein the forwarding table is a Longest Prefix Matching (LPM) table. 제13항에 있어서, 상기 사용여부를 나타내는 필드는 상기 네트워크주소가 포워딩에 사용된 빈도를 통해 사용된 상태를 나타내도록 설정된 것을 특징으로 하는 포워딩 테이블.The forwarding table of claim 13, wherein the field indicating whether the network is used is set to indicate a state in which the network address is used through a frequency used for forwarding.
KR1020070087835A 2007-08-30 2007-08-30 Forwarding table for layer 3 switching KR20090022473A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070087835A KR20090022473A (en) 2007-08-30 2007-08-30 Forwarding table for layer 3 switching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070087835A KR20090022473A (en) 2007-08-30 2007-08-30 Forwarding table for layer 3 switching

Publications (1)

Publication Number Publication Date
KR20090022473A true KR20090022473A (en) 2009-03-04

Family

ID=40692339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070087835A KR20090022473A (en) 2007-08-30 2007-08-30 Forwarding table for layer 3 switching

Country Status (1)

Country Link
KR (1) KR20090022473A (en)

Similar Documents

Publication Publication Date Title
JP5624331B2 (en) Computer implementation method
EP2793436B1 (en) Content router forwarding plane architecture
US7260096B2 (en) Method and router for forwarding internet data packets
JP5525273B2 (en) System for forwarding packets with hierarchically structured variable length identifiers
US9178806B2 (en) High-speed content routing
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
US8059658B1 (en) Method and system for automatic expansion and contraction of IP host forwarding database
JP6373021B2 (en) Apparatus and method for processing differently configured longest prefix match tables
US10467217B2 (en) Loop detection in cuckoo hashtables
KR20190033631A (en) Compressed forwarding table
US20080107114A1 (en) Method and apparatus for forwarding service in a data communication device
CN106803809B (en) Message forwarding method and device
Luo et al. A hybrid IP lookup architecture with fast updates
EP3384642B1 (en) Forwarding table compression
US6925503B2 (en) Method and system for performing a longest prefix match search
KR100919256B1 (en) apparatus for having layer 3 switching function and network apparatus for having switching function
KR100890354B1 (en) Apparatus for managing forwarding table for layer 3 switching and algorithm for managing forwarding table
CN104539537B (en) A kind of method for searching route and device
JP5182146B2 (en) Route determination program, management apparatus, and network system
US7706298B2 (en) Route dependency selective route download
KR20090022473A (en) Forwarding table for layer 3 switching
JP2018056739A (en) Switch, and communication method
Wang et al. Efficient entry-reduction algorithm for TCAM-based IP forwarding engine
Bongiovanni et al. XOR-based schemes for fast parallel IP lookups

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application