KR100814077B1 - An ip address lookup method using priority-trie and apparatus for relaying packets therefor - Google Patents

An ip address lookup method using priority-trie and apparatus for relaying packets therefor Download PDF

Info

Publication number
KR100814077B1
KR100814077B1 KR1020060098166A KR20060098166A KR100814077B1 KR 100814077 B1 KR100814077 B1 KR 100814077B1 KR 1020060098166 A KR1020060098166 A KR 1020060098166A KR 20060098166 A KR20060098166 A KR 20060098166A KR 100814077 B1 KR100814077 B1 KR 100814077B1
Authority
KR
South Korea
Prior art keywords
prefix
priority
address
tri
node
Prior art date
Application number
KR1020060098166A
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 KR1020060098166A priority Critical patent/KR100814077B1/en
Application granted granted Critical
Publication of KR100814077B1 publication Critical patent/KR100814077B1/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/54Organization of routing tables
    • 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

Abstract

An IP(Internet Protocol) address lookup method using priority-trie and a packet relay apparatus providing the same are provided to replace empty nodes with priority prefix on the basis of a priority-trie structure, thereby improving a search rate and extension. An IP address search method comprises the following steps of: extracting a destination IP address of a received packet(S100); searching for a network address matching the extracted destination IP address for a longest time from a routing table in which an output port according the network address is designated(S102); and designating the output port corresponding to the searched network address as the output port to transmit the received packet(S104).

Description

우선순위 트라이를 이용한 IP 주소 검색 방법 및 이를 제공하는 패킷 중계 장치{An IP address lookup method using priority-trie and apparatus for relaying packets therefor}An IP address lookup method using priority-trie and apparatus for relaying packets therefor}

도 1은 IP 주소 검색 방법을 설명하기 위한 프리픽스 집합의 일 예,1 is an example of a prefix set for explaining an IP address searching method;

도 2는 상기 프리픽스 집합을 이용하여 종래의 이진 트라이 구조를 구축한 일 예,2 is an example of building a conventional binary tri structure using the prefix set;

도 3은 본 발명의 일 실시예에 따른 패킷 중계 장치의 블록도,3 is a block diagram of a packet relay apparatus according to an embodiment of the present invention;

도 4는 상기 패킷 중계 장치에 포함된 인터페이스의 상세 블록도,4 is a detailed block diagram of an interface included in the packet relay apparatus;

도 5는 본 발명의 일 실시예에 따른 우선순위 트라이를 이용한 IP 주소 검색 방법을 도시한 흐름도,5 is a flowchart illustrating a method of searching for an IP address using priority trie according to an embodiment of the present invention;

도 6은 도 1에 도시된 프리픽스 집합을 이용하여 본 발명에 따른 우선순위 트라이 구조를 구축한 일 예,6 is an example of constructing a priority tri structure according to the present invention using the prefix set shown in FIG. 1;

도 7은 본 발명에 따른 우선순위 기반 트라이 구조를 가진 라우팅 테이블의 일 예,7 is an example of a routing table having a priority based tri structure according to the present invention;

도 8은 종래의 이진 트라이 구조와 본 발명에 따른 우선순위 트라이 구조의 메모리 액세스 횟수를 비교한 도면,8 is a view comparing the number of memory accesses of the conventional binary tri structure and the priority tri structure according to the present invention;

도 9 내지 도 11은 본 발명에 따른 우선순위 트라이를 구축하는 방법, 검색 하는 방법 및 업데이트 하는 방법을 구현한 의사 코드(pseudo code)의 일 예,9 to 11 are examples of pseudo code implementing a method of constructing, searching, and updating a priority trie according to the present invention;

도 12 내지 도 14는 본 발명에 따른 우선순위 트라이 구조의 성능을 평가한 실험 결과들을 도시한다.12 to 14 show experimental results of evaluating the performance of the priority tri structure according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

10: 인터페이스 20: 스위치 패브릭10: interface 20: switch fabric

11: 패킷 송수신부 12: 프레임 해석부11: packet transceiver 12: frame analyzer

13: 어드레스 룩업 처리부 14: 패킷 분류 처리부13: Address lookup processing unit 14: Packet classification processing unit

15: 전송 제어부 15: transmission control unit

본 발명은 패킷 중계 장치에서의 IP 주소 검색(IP address lookup) 방법에 관한 것으로, 우선순위 트라이를 이용하여 효과적으로 IP 주소를 검색하는 방법을 제안한다.The present invention relates to an IP address lookup method in a packet relay apparatus, and proposes a method of effectively searching for an IP address using a priority tree.

최근 인터넷 사용의 폭발적인 증가에 따라 인터넷 트래픽이 빠르게 증가하고 있다. 이에 따라 라우터(router)와 같은 패킷 중계 장치가 고속으로 패킷 포워딩(packet forwarding)을 수행할 것이 요구된다. 고속의 패킷 포워딩을 위해서는 라우터의 IP 주소 검색 효율을 개선하는 것이 필수적이다. 패킷들의 도착 비율과 라우팅 테이블의 크기가 급격히 증가하는 환경 하에서 입력되는 각 패킷이 회선 속도(wire-speed)로 처리될 것이 요구되기 때문이다.Recently, with the explosive increase in the use of the Internet, Internet traffic is increasing rapidly. Accordingly, it is required that a packet relay device such as a router performs packet forwarding at high speed. Improving the router's IP address lookup efficiency is essential for high speed packet forwarding. This is because each packet to be input is required to be processed at wire-speed under an environment in which the arrival rate of the packets and the size of the routing table increase rapidly.

여기서 IP 주소 검색(IP address lookup)이란, 입력되는 패킷이 최종 목적지에 포워딩 되도록 수신된 패킷의 목적지 IP 주소(인터넷 프로토콜 주소)를 이용하여 출력 포트를 결정하는 것을 의미한다. IP 주소는 네트워크 부분과 호스트 부분의 2 단계 계층구조를 가지며, 이중 네트워크 부분을 프리픽스(prefix)라고 부른다. 이하에서는 IP 주소 중 네트워크 부분을 프리픽스로 통칭한다.Here, the IP address lookup means that the output port is determined using the destination IP address (Internet Protocol address) of the received packet so that the incoming packet is forwarded to the final destination. An IP address has a two-level hierarchy of network parts and host parts, and the dual network part is called a prefix. Hereinafter, the network portion of the IP address is collectively called a prefix.

종래에는 클래스별로 일정한 길이를 가지는 프리픽스를 사용하였으나 고정길이를 가진 클래스 구조로 인해 IP 주소가 낭비되는 문제점이 있었다. 이를 개선하여 최근에는 클래스 구분 없는 라우팅 구조(Classless inter-domain routing : 이하 CIDR 이라 칭함)를 사용하여 임의의 길이의 프리픽스와 주소의 결합을 허용하게 되었다. 따라서 IP 주소에서 프리픽스의 길이가 가변함에 따라 라우터가 IP 주소의 특정 네트워크 경로를 찾기 위해서는 라우팅 테이블에서 입력 패킷의 목적지 주소와 일치하는 가장 긴 프리픽스를 검색할 것이 요구된다. 이 때 IP 주소 검색을 위하여 가장 길게 일치하는 프리픽스(the longest matching prefix: 이하 LMP 라 약칭함) 또는 가장 잘 일치하는 프리픽스(the best matching prefix : 이하 BMP 라 약칭함)를 결정하는 것이 필요하며, 이를 위해 프리픽스의 길이와 값이라는 2 가지 요소를 모두 고려해야 한다.Conventionally, a prefix having a certain length for each class is used, but there is a problem in that an IP address is wasted due to a class structure having a fixed length. Improvements have recently been made to allow combinations of arbitrary length prefixes and addresses using classless inter-domain routing (CIDR). Therefore, as the length of the prefix in the IP address varies, the router needs to find the longest prefix in the routing table that matches the destination address of the input packet in order to find the specific network path of the IP address. At this time, it is necessary to determine the longest matching prefix (abbreviated as LMP) or the best matching prefix (abbreviated as BMP) for IP address retrieval. To take into account both factors, the length of the prefix and the value.

CIDR 구조의 IP 주소 검색을 위해 가장 대표적으로 사용되는 종래 기술은 트라이(trie) 구조를 이용한 이진 검색(binary search) 방법이다. 트라이는 길이에 따라 선형검색을 적용하는 트리 기반의 데이터 구조를 가리킨다. CIDR 형태의 IP 주소에서 프리픽스의 길이와 값을 표현하기 위해 트라이 구조를 사용한다. 즉, 각 프리픽스는 트라이의 하나의 노드에 존재하며 해당 노드의 레벨은 프리픽스의 길이에 상당한다. 트라이 구조에서의 검색은 트라이의 루트 노드로부터 출발하여 입력된 패킷의 목적지 IP 주소의 MSB(Most Significant Bit)로부터 순차적으로 검사하여 검사된 비트가 0이면 왼쪽 자식 노드를 가르키는 포인터를 따라, 1이면 오른쪽 자식노드를 가르키는 포인터를 따라 내려가며, 트라이의 리프를 만날 때 까지 같은 과정을 반복한다. The conventional technique most representatively used for IP address search of the CIDR structure is a binary search method using a trie structure. A tri is a tree-based data structure that uses linear search along its length. Tri-structures are used to represent prefix lengths and values in CIDR-type IP addresses. That is, each prefix exists in one node of the tri and the level of that node corresponds to the length of the prefix. The search in the tri-structure is checked sequentially from the Most Significant Bit (MSB) of the destination IP address of the incoming packet, starting from the root node of the tri, and if the checked bit is 0, it follows the pointer pointing to the left child node. Follow the same pointer down to the right child node and repeat the process until you meet the leaf of the tri.

한편, 도 1은 IP 주소 검색 방법을 설명하기 위한 프리픽스 집합의 일 예를 나타내고, 도 2는 상기 프리픽스 집합을 이용하여 종래의 이진 트라이 구조를 구축한 일 예를 도시한다.Meanwhile, FIG. 1 shows an example of a prefix set for explaining an IP address searching method, and FIG. 2 shows an example of building a conventional binary tri structure using the prefix set.

도 2에서 검은색으로 표시된 노드들은 프리픽스들을 나타내며, 흰색으로 표시된 노드들은 프리픽스가 지정되지 않은 빈 내부 노드들을 나타낸다. 예를 들어 도 1의 프리픽스 집합에서 P2인 프리픽스 1000*은 트라이 구조를 이용하면 도 2의 P2로 표시된 검은색 노드로 표현된다. P2 노드는 1000*이라는 값을 가지며 그 길이가 4이므로 루트 노드로부터 4번째 레벨에 위치한다. Nodes marked in black in FIG. 2 represent prefixes, and nodes marked in white represent empty internal nodes with no prefix assigned. For example, the prefix 1000 * that is P2 in the prefix set of FIG. 1 is represented by a black node denoted by P2 of FIG. The P2 node has a value of 1000 * and its length is 4, so it is located at the fourth level from the root node.

이러한 트라이 구조의 첫 번째 문제점은, 프리픽스의 길이가 트라이의 레벨에 해당하므로 짧은 길이의 프리픽스들은 트라이의 상위 레벨에 저장되고 길이가 긴 프리픽스들은 트라이의 하위 레벨에 저장된다는 점이다. 즉, 짧은 프리픽스 일수록 상위 레벨에 저장되어 길이가 더 긴 프리픽스보다 먼저 비교되므로, 검색시 일치하는 노드를 발견한 경우라도 리프 노드에 도달할 때까지 검색이 계속 수행되어야 한다. 중간에 일치하는 프리픽스 노드를 만나더라도 하위 레벨에 더 길게 일 치하는 프리픽스가 존재할 가능성이 있기 때문이다. 따라서 매번 리프 노드까지 검색을 수행해야 하므로 메모리 액세스 횟수가 증가하고 검색 시간이 길어지는 문제점이 있다. 또한, 트라이에 빈 내부 노드들이 다수 포함됨으로써 메모리 액세스 횟수가 늘어 검색시간이 길어지며 메모리 공간을 낭비하는 문제점도 발생한다.The first problem with this tri structure is that short length prefixes are stored at the top level of the tri and long length prefixes are stored at the lower level of the trie because the length of the prefix corresponds to the level of the tri. That is, shorter prefixes are stored at a higher level and compared before longer prefixes. Therefore, even when a matching node is found during a search, the search must continue until a leaf node is reached. This is because even if a matching prefix node is encountered in the middle, there may be a longer matching prefix at a lower level. Therefore, since the search must be performed every leaf node, the number of memory accesses increases and the search time becomes long. In addition, the tri node includes a large number of empty internal nodes, which increases the number of memory accesses, thereby increasing search time and wasting memory space.

따라서 전술한 문제점을 해결하기 위한 본 발명의 목적은 검색 시간과 요구되는 메모리 크기를 줄일 수 있는 효과적인 IP 주소 검색 방법을 제공하는 것이다.Accordingly, an object of the present invention to solve the above problems is to provide an effective IP address search method that can reduce the search time and the required memory size.

또한, 본 발명의 다른 목적은 검색 시간과 요구되는 메모리 크기를 줄일 수 있는 효과적인 IP 주소 검색 방법을 적용한 패킷 중계 장치를 제공하는 것이다.In addition, another object of the present invention is to provide a packet relay apparatus applying an effective IP address search method that can reduce the search time and the required memory size.

본 발명에 따라 전술한 목적은, 패킷 포워딩을 위한 IP 주소 검색 방법에 있어서 (a) 수신된 패킷의 목적지 IP 주소를 추출하는 단계; (b) 목적지 주소에 따른 출력 포트가 지정된 라우팅 테이블로부터 추출된 목적지 주소와 가장 길게 일치하는 네트워크 주소를 검색하는 단계; 및 (c) 검색된 네트워크 주소에 대응하는 출력 포트를 수신된 패킷을 전송할 출력 포트로 지정하는 단계를 포함하며, 검색하는 단계는 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조를 이용하여 이루어지는 것을 특징으로 하는 IP 주소 검색 방법에 의해 달성된다.According to the present invention, the above object is achieved by the method of IP address retrieval for packet forwarding, comprising: (a) extracting a destination IP address of a received packet; (b) searching for a network address whose output port according to the destination address is the longest match with the destination address extracted from the designated routing table; And (c) designating an output port corresponding to the retrieved network address as an output port to which the received packet is to be sent, wherein the retrieving comprises priority priority generated based on the network addresses included in the routing table. -trie) is achieved by the IP address retrieval method characterized in that it is made using the structure.

여기서, 우선순위 트라이 구조는 길이가 긴 프리픽스 일수록 먼저 비교되도록 일반 트라이 구조의 빈 내부 노드를 이용하여 길이가 긴 프리픽스를 높은 레벨 에 할당함으로써 구축되는 것이 바람직하며,Here, the priority tri structure is preferably constructed by assigning a long prefix to a high level using empty internal nodes of the general tri structure so that the longer prefix is compared first.

또한, 우선순위 트라이 구조는 일반 트라이 구조의 각각의 빈 내부 노드를 해당 빈 내부 노드가 루트 노드인 서브 트리에 속하는 프리픽스들 중 가장 긴 프리픽스로 대체함으로써 구축되는 것이 특히 바람직하다.Further, the priority tri structure is particularly preferably constructed by replacing each bean inner node of the general tri structure with the longest one of the prefixes belonging to the subtree whose bin inner node is the root node.

나아가, 네트워크 주소를 검색하는 단계는 (b1) 추출된 목적지 주소를 우선순위 트라이 구조의 각 노드들과 비교하는 단계; (b2) 비교결과 추출된 목적지 주소가 일반 노드와 일치하는 경우에는 일치하는 일반 노드의 프리픽스를 현재까지 일치된 가장 긴 프리픽스로서 저장하고 검색을 계속하며, (b3) 비교결과 추출된 목적지 주소가 우선순위 트라이 구조에서 빈 노드에 대체된 우선순위 프리픽스와 일치하거나 또는 리프(leaf)를 만나면 검색을 종료하는 단계; 및 (b4) 우선순위 프리픽스와 일치하여 검색이 종료된 경우에는 해당 우선순위 프리픽스를 추출된 목적지 주소와 가장 길게 일치하는 프리픽스로 반환하고, 리프를 만나 종료된 경우에는 저장된 현재까지 일치된 가장 긴 프리픽스를 추출된 목적지 주소와 가장 길게 일치하는 프리픽스로 반환하는 단계를 포함하는 것이 바람직하다.Further, retrieving the network address may include (b1) comparing the extracted destination address with each node of the priority tri structure; (b2) If the destination address extracted as a result of the comparison matches the general node, the prefix of the matching general node is stored as the longest prefix matched so far, and the search continues, (b3) The destination address extracted as a result of the comparison takes precedence. Terminating the search if it matches a priority prefix or replaces a leaf in the rank tri structure with an empty prefix; And (b4) if the search is terminated by matching the priority prefix, the priority prefix is returned as the longest matching prefix with the extracted destination address; It is preferable to include the step of returning the prefix to the longest matching the extracted destination address.

한편, 본 발명의 일 양상에 따르면 전술한 목적은, IP 주소 검색을 위한 라우팅 테이블을 구축하는 방법에 있어서 (a) 네트워크 주소를 나타내는 프리픽스들을 각각 자신의 길이에 해당하는 레벨의 노드들로서 저장하여 일반 트라이 구조를 구축하는 단계; 및 (b) 일반 트라이 구조로부터 길이가 긴 프리픽스 일수록 먼저 비교되도록 구조된 우선순위 기반 트라이 구조를 재구축하는 단계를 포함하는 것을 특징으로 하는 라우팅 테이블 구축 방법에 의해 달성된다.Meanwhile, according to an aspect of the present invention, in the method for constructing a routing table for IP address retrieval, (a) storing the prefixes representing network addresses as nodes having a level corresponding to their length, respectively, Building a tri structure; And (b) reconstructing the priority-based tri-structure structured so that the longer prefix from the general tri-structure is compared first.

한편, 본 발명의 일 양상에 따르면 전술한 목적은, IP 주소 검색을 위한 라우팅 테이블을 업데이트하는 방법에 있어서 (a) 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조에서 하나의 프리픽스를 삭제하는 경우 삭제될 노드를 빈 내부 노드로 만드는 단계; 및 (b) 빈 내부 노드를 제거하기 위하여 소정의 주기로 라우팅 테이블에 대하여 우선순위 기반 트라이 구조를 재구축하는 단계를 포함하는 것을 특징으로 하는 라우팅 테이블 업데이트 방법에 의해 달성된다.Meanwhile, according to an aspect of the present invention, the above object is a method for updating a routing table for IP address retrieval (a) priority-trie generated based on network addresses included in the routing table. Making a node to be deleted an empty internal node when deleting one prefix from the structure; And (b) reconstructing the priority based tri structure for the routing table at predetermined intervals to remove empty internal nodes.

한편, 본 발명의 다른 양상에 따르면 전술한 목적은, IP 주소 검색을 위한 라우팅 테이블을 업데이트하는 방법에 있어서 (a) 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조에서 하나의 프리픽스를 삽입하는 경우, 삽입될 프리픽스의 길이가 자신과 일치하는 우선순위 프리픽스의 길이보다 긴 경우 삽입될 프리픽스가 우선순위 프리픽스의 위치를 차지하도록 배치하는 단계; 및 (b) 삽입될 프리픽스의 일반적인 위치를 이미 다른 우선순위 프리픽스가 차지하고 있는 경우 삽입될 프리픽스가 다른 우선순위 프리픽스의 위치를 차지하도록 재배치하는 단계를 포함하는 것을 특징으로 하는 라우팅 테이블 업데이트 방법에 의해 달성된다.Meanwhile, according to another aspect of the present invention, the above object is a method for updating a routing table for IP address retrieval (a) priority-trie generated based on network addresses included in the routing table. When inserting one prefix in the structure, arranging the prefix to be inserted occupies the position of the priority prefix when the length of the prefix to be inserted is longer than the length of the priority prefix corresponding to the prefix; And (b) relocating the prefix to be inserted to occupy the position of another priority prefix if the general position of the prefix to be inserted is already occupied by another priority prefix. do.

한편, 본 발명의 일 양상에 따르면 전술한 목적은, IP 주소 검색을 위한 패킷 중계 장치에 있어서, 수신된 패킷의 목적지 IP 주소를 추출하는 프레임 해석부; 및 네트워크 주소에 따른 출력 포트가 지정된 라우팅 테이블로부터 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소를 검색하고 검색된 네트워크 주소에 대응하는 출력 포트를 수신된 패킷을 전송할 출력 포트로 지정하는 어드레스 룩업 처리부를 포함하며, 어드레스 룩업 처리부는 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조를 이용하여 IP 주소 검색을 수행하는 것을 특징으로 하는 패킷 중계 장치에 의해 달성된다.On the other hand, according to an aspect of the present invention, the above object is a packet relay apparatus for IP address search, the frame analysis unit for extracting the destination IP address of the received packet; And an address lookup processing unit for retrieving a network address whose longest output port is matched with a destination IP address extracted from a specified routing table and specifying an output port corresponding to the retrieved network address as an output port to which a received packet is to be transmitted. And the address lookup processing unit is configured to perform an IP address search using a priority-trie structure generated based on network addresses included in a routing table.

이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. Hereinafter, with reference to the accompanying drawings will be described a preferred embodiment of the present invention; In the following description of the present invention, if it is determined that detailed descriptions of related well-known functions or configurations may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, terms to be described below are terms defined in consideration of functions in the present invention, which may vary according to intention or custom of a user or an operator. Therefore, the definition should be made based on the contents throughout the specification.

먼저, 패킷 중계 장치의 구조를 살펴보고, 본 발명에 따른 IP 주소 검색 방법을 상세히 설명한다.First, the structure of the packet relay apparatus will be described, and the IP address searching method according to the present invention will be described in detail.

도 3은 본 발명의 일 실시예에 따른 패킷 중계 장치의 블록도이다. 패킷 중계 장치는 복수의 입력 포트 중 하나와 복수의 출력 포트 중 하나를 연결하여 입력된 패킷을 지정된 출력 포트로 출력하는 중계 장치로서, 라우터(router)가 대표적이다. 3 is a block diagram of a packet relay apparatus according to an embodiment of the present invention. A packet relay device is a relay device that connects one of a plurality of input ports and one of a plurality of output ports to output an input packet to a designated output port, and a router is representative.

도 3을 참조하면, 본 발명에 따른 패킷 중계 장치는 복수의 인터페이스(10) 와 스위치 패브릭(switch fabric)(20)을 구비한다. 그 밖에 관리 콘트롤러(management controller)나 루트 콘트롤러(route controller)와 같은 제어부가 더 포함될 수 있다. 패킷 중계 장치는 복수의 입력 포트와 복수의 출력 포트가 구비되어 복수의 입력 포트 중 하나로 입력된 패킷을 스위치 패브릭(20)을 거쳐 지정된 출력 포트로 출력할 수 있다. 본 발명에 따른 IP 주소 검색 기능은 인터페이스(10)에서 담당한다. Referring to FIG. 3, the packet relay apparatus according to the present invention includes a plurality of interfaces 10 and a switch fabric 20. In addition, a controller such as a management controller or a route controller may be further included. The packet relay apparatus may include a plurality of input ports and a plurality of output ports to output a packet input to one of the plurality of input ports to the designated output port via the switch fabric 20. The IP address retrieval function according to the invention is responsible for the interface 10.

도 4는 상기 패킷 중계 장치에 포함된 인터페이스의 상세 블록도이다. 도 4를 참조하면, 인터페이스(10)는 패킷 송수신부(transponder/transceiver)(11), 프레임 해석부(framer)(12), 어드레스 룩업 처리부(lookup processor)(13) 및 전송 제어부(traffic manager)(15)를 구비한다. 그 밖에 패킷 분류 처리부(packet classification processor)(14), CPU, 메모리를 더 구비한다. 4 is a detailed block diagram of an interface included in the packet relay apparatus. Referring to FIG. 4, the interface 10 includes a packet transmitter / receiver 11, a frame analyzer 12, an address lookup processor 13, and a transmission manager. (15) is provided. In addition, a packet classification processor 14, a CPU, and a memory are further provided.

패킷 송수신부(transponder/transceiver)(11)는 입력 포트를 통해 패킷을 수신하고 출력 포트를 통해 패킷을 송신한다. 프레임 해석부(framer)(12)는 입력된 패킷의 시작과 끝을 알아내고 패킷을 해석하여 각 계층의 헤더를 분리하며 근원지 주소, 목적지 주소, 근원지 포트, 목적지 포트 등을 해석한다. 특히, 패킷 포워딩을 위해 필요한 목적지 IP 주소를 추출해 낸다.The packet transmitter / receiver 11 receives a packet through an input port and transmits a packet through an output port. The frame analysis unit 12 detects the start and end of the input packet, analyzes the packet, separates the header of each layer, and analyzes the source address, the destination address, the source port, and the destination port. In particular, it extracts the destination IP address needed for packet forwarding.

어드레스 룩업 처리부(lookup processor)(13)는 입력 포트를 통해 수신된 패킷의 목적지 IP 주소를 참조하여 상기 수신된 패킷을 전송할 출력 포트를 지정한다. 어드레스 룩업 처리부(13)는 네트워크 주소에 따른 출력 포트가 지정된 라우팅 테이블로부터 수신된 패킷에 포함된 목적지 IP 주소와 가장 길게 일치하는 네트 워크 주소를 검색하며, 본 발명에 따른 우선순위 트라이(priority-trie) 구조를 이용하여 IP 주소 검색을 수행한다. 구체적인 우선순위 기반 트라이 구조는 후술한다.The address lookup processor 13 designates an output port to which the received packet is transmitted by referring to a destination IP address of the packet received through the input port. The address lookup processor 13 searches for a network address whose output port corresponding to the network address is the longest match with the destination IP address included in the packet received from the specified routing table, and prioritizes the priority-trie according to the present invention. IP address lookup using the A specific priority based tri structure will be described later.

전송 제어부(traffic manager)(15)는 어드레스 룩업 처리부(13)에서 검색된 네트워크 주소에 대응하는 출력포트를 제어한다. 그 밖에 패킷 분류 처리부(packet classification processor)(14)는 패킷을 분류하는 규칙들이 저장된 패킷 분류 테이블로부터 수신된 패킷의 플로우 조건에 매치하는 규칙을 검색한다. 라우터와 같은 패킷 중계 장치에 패킷 분류 처리부를 포함할 것인지 여부는 설계자의 선택 사항이다. The traffic manager 15 controls the output port corresponding to the network address retrieved by the address lookup processor 13. In addition, the packet classification processor 14 searches for a rule matching the flow condition of the received packet from the packet classification table in which the rules for classifying the packet are stored. Whether to include a packet classification processing unit in a packet relay device such as a router is a designer's option.

이상에서 살펴본 패킷 중계 장치의 구조에 기초하여 본 발명에 따른 우선순위 트라이를 이용한 IP 주소 검색 방법을 설명한다.An IP address retrieval method using a priority trie according to the present invention will be described based on the structure of the packet relay apparatus described above.

도 5를 참조하면, 먼저 패킷 중계 장치로 수신된 패킷을 해석하여 목적지 IP 주소를 추출하고(S100), 후술하는 우선순위 기반 트라이 구조를 가진 라우팅 테이블로부터 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소를 검색한다(S102). 라우팅 테이블은 네트워크 주소에 따른 출력 포트를 지정한 테이블로서, 각 엔트리들은 본 발명에 따른 우선순위 기반 트라이 구조로 저장되어 있다. 즉, 각 엔트리들은 길이가 긴 프리픽스 일수록 먼저 비교되도록 일반 트라이 구조의 빈 내부 노드를 이용하여 길이가 긴 프리픽스를 높은 레벨에 할당한 우선순위 기반 트라이 구조에 따라 저장된다. 이에 따라 IP 주소 검색 시에 트라이의 리프 노드까지 도달하기 전이라도 우선순위 프리픽스와 일치하는 노드를 발견하면 검색을 종료할 수 있다. 보다 구체적인 검색방법은 후술한다. 이제 라우팅 테이블을 참조하여 검색된 네트워크 주소에 대응하는 출력포트를 수신된 패킷을 출력할 포트로 지정한다(S104). Referring to FIG. 5, first, a packet received by the packet relay apparatus is interpreted to extract a destination IP address (S100), and a network that matches the longest destination IP address extracted from a routing table having a priority-based tri-structure described later. Search for the address (S102). The routing table is a table designating an output port according to a network address, and each entry is stored in a priority based tri structure according to the present invention. That is, each entry is stored according to a priority-based tri-structure, in which long prefixes are assigned to high levels using empty internal nodes of a general tri-structure so that longer prefixes are compared first. Accordingly, even when a node matching the priority prefix is found even before reaching the leaf node of the tree at the time of IP address search, the search can be terminated. A more specific search method will be described later. Now, referring to the routing table, the output port corresponding to the retrieved network address is designated as a port to output the received packet (S104).

이하, 본 발명에 따른 우선순위 트라이 구조를 보다 구체적으로 살펴본다.Hereinafter, the priority tri structure according to the present invention will be described in more detail.

본 발명에서는 보다 긴 프리픽스를 보다 높은 레벨에 할당하기 위하여 일반 트라이에 존재하는 빈 내부 노드를 사용할 것을 제안한다. 즉, 빈 노드를 그 빈 노드가 루트인 서브 트리에 속하는 프리픽스들 중 가장 길이가 긴 프리픽스에 결합하는 것이다. 이에 따라 빈 내부 노드들은 모두 제거되며 트라이의 깊이는 감소하고 검색은 보다 효율적으로 수행된다. 이 때 빈 내부 노드에 결합된 프리픽스들을 우선순위 프리픽스(priority-prefix)라고 칭한다. 이와 같이 빈 내부 노드들을 그 자신의 길이보다 같거나 보다 길이가 긴 프리픽스들에 할당하기 때문에 본 발명에 따르면 프리픽스가 중복될 필요가 없다. The present invention proposes to use an empty internal node present in the regular tri to assign a longer prefix to a higher level. That is, the bin node is combined with the longest prefix among prefixes belonging to the subtree whose root node is the root. This eliminates all empty internal nodes, reduces the depth of the trie, and makes searching more efficient. At this time, the prefixes bound to the bean internal nodes are called priority-prefixes. In this way, the prefixes do not need to be duplicated according to the present invention because the empty internal nodes are allocated to prefixes that are equal to or longer than their own lengths.

도 6은 도 1에 도시된 프리픽스 집합을 이용하여 본 발명에 따른 우선순위 트라이 구조를 구축한 일 예이다. 도 6을 참조하면, 검은 색 노드들은 자신의 레벨에 배치된 일반 프리픽스(ordinary prefix)들을 나타내고, 흰색 노드들은 빈 내부 노드를 이용하여 보다 긴 프리픽스를 보다 높은 레벨에 할당한 우선순위 프리픽스(priority prefix)를 나타낸다. 6 illustrates an example of constructing a priority tri structure according to the present invention using the prefix set shown in FIG. 1. Referring to FIG. 6, black nodes represent ordinary prefixes placed at their level, and white nodes use a priority internal prefix to assign a longer prefix to a higher level using an empty internal node. ).

한편, 전술한 도 2에는 도 1에 도시된 동일한 프리픽스 집합을 이용하여 종 래의 일반 트라이 구조를 구축한 예가 도시되어 있다. 먼저 도 2에 도시된 일반 트라이에서 가장 길이가 긴 프리픽스는 P4로 100110*이라는 값을 가지며 가장 하위 레벨에 저장되어 있다. 이를 본 발명에 따른 우선순위 트라이 구조로 재구축한 결과가 도 6에 도시되어 있다. 도 6을 참조하면, 이제 가장 하위 레벨에 저장되어 있던 프리픽스 P4가 빈 내부 노드인 루트 노드에 할당되며 우선순위 프리픽스가 된 것을 확인할 수 있다. 2 illustrates an example in which a conventional general tri structure is constructed using the same prefix set shown in FIG. 1. First, the longest prefix in the general tri in FIG. 2 has a value of 100110 * as P4 and is stored at the lowest level. The result of reconstructing this into the priority tri structure according to the present invention is shown in FIG. 6. Referring to FIG. 6, it can be seen that the prefix P4 stored at the lowest level is now assigned to the root node which is an empty internal node and becomes a priority prefix.

이와 같이 빈 노드를 그 빈 노드가 루트인 서브 트리에 속하는 프리픽스들 중 가장 길이가 긴 프리픽스에 결합하는 방식으로 도 2에 도시된 일반 트라이를 재구축하여 우선순위 트라이를 구축하면 도 6과 같은 결과가 얻어진다. 즉, 본 발명에 따르면 길이가 긴 프리픽스 일수록 상위 레벨의 빈 노드에 저장된다. 도 2 및 도 6을 대비하여 보면 프리픽스 P0, P2, P3, P4, P5, P7이 빈 내부 노드에 할당되어 우선순위 프리픽스가 된 것을 알 수 있다. 여기서 동일한 길이를 가진 두 개의 프리픽스가 존재하는 경우 좌측 프리픽스를 우선하는 것으로 가정한다. 이에 따라 빈 내부 노드들이 모두 제거되고 트라이의 깊이가 감소하여 보다 효율적인 검색을 수행할 수 있다.As such, when the empty node is reconstructed in the normal tri as shown in FIG. 2 by constructing the priority node by combining the empty node with the longest prefix among the prefixes belonging to the subtree whose root node is the root, the result is as shown in FIG. Is obtained. That is, according to the present invention, a longer prefix is stored in an empty node of a higher level. 2 and 6, the prefixes P0, P2, P3, P4, P5, and P7 are allocated to empty internal nodes to become priority prefixes. Here, if two prefixes having the same length exist, it is assumed that the left prefix has priority. As a result, all empty internal nodes are removed and the depth of the trie is reduced, thereby enabling more efficient searching.

도 7은 도 6에 도시된 우선순위 기반 트라이 구조를 가진 라우팅 테이블의 일 예가 도시되어 있다. 도 7을 참조하면, 첫 번째 열은 메모리 주소이며 임의의 값이 될 수 있다. 두 번째 열은 프리픽스가 우선순위 프리픽스(1)인지 아니면 일반 프리픽스(0)인지를 나타낸다. 프리픽스와 그 길이는 각각 세 번째 열과 네 번째 열에 저장된다. 다섯 번째 열과 여섯 번째 열은 현재 노드의 왼쪽 및 오른쪽에 있는 자식노드가 저장된 메모리 주소를 의미한다. 마지막 열은 프리픽스에 상응하는 출력 포트이며, 본 예에서는 설명의 편의를 위해 간단히 프리픽스 이름을 저장하였다. 도시된 바와 같이 제안된 알고리즘에서 라우팅 테이블의 엔트리 수는 N으로서, N개의 프리픽스를 저장하기 위하여 N개의 엔트리를 사용하였다. 이는 내부에 빈 노드가 하나도 존재하지 않음을 나타낸다.FIG. 7 illustrates an example of a routing table having a priority based tri structure shown in FIG. 6. Referring to FIG. 7, the first column is a memory address and may be any value. The second column indicates whether the prefix is a priority prefix (1) or a general prefix (0). The prefix and its length are stored in the third and fourth columns, respectively. The fifth and sixth columns represent the memory addresses where child nodes on the left and right of the current node are stored. The last column is the output port that corresponds to the prefix. For this example, the prefix name is simply stored for ease of explanation. As shown, in the proposed algorithm, the number of entries in the routing table is N, and N entries are used to store N prefixes. This indicates that there are no empty nodes inside.

도 8은 종래의 이진 트라이 구조와 본 발명에 따른 우선순위 트라이 구조의 메모리 액세스 횟수를 비교한 도면이다.8 is a view comparing the number of memory accesses of the conventional binary tri structure and the priority tri structure according to the present invention.

도 8을 참조하면, 도 2에 도시된 일반 트라이 구조의 메모리 액세스 횟수에 비하여 도 6에 도시된 우선순위 트라이 구조의 메모리 액세스 횟수가 훨씬 줄어든 것을 확인 할 수 있다. 특히, 우선순위 프리픽스로 마크된 프리픽스 P0, P2, P3, P4, P5, P7이 상위 레벨의 빈 내부 노드들에 할당됨에 따라 메모리 액세스 횟수가 상당히 줄어든 것을 알 수 있다. 이와 같이 본 발명에 따른 우선순위 트라이 구조를 이용하면 빈 내부 노드들이 모두 제거되고 트라이의 깊이가 감소하여 메모리 공간을 절약할 뿐 아니라 메모리 액세스 횟수를 줄일 수 있어 보다 효율적인 검색을 수행할 수 있다.Referring to FIG. 8, it can be seen that the number of memory accesses of the priority tri structure shown in FIG. 6 is much reduced compared to the number of memory accesses of the general tri structure shown in FIG. 2. In particular, it can be seen that as the prefixes P0, P2, P3, P4, P5, and P7 marked with the priority prefix are allocated to the higher level empty internal nodes, the number of memory accesses is significantly reduced. As described above, using the priority tri structure according to the present invention, all empty internal nodes are removed and the depth of the trie is reduced, thereby saving memory space and reducing the number of memory accesses, thereby enabling more efficient searching.

도 9 내지 도 11은 본 발명에 따른 우선순위 트라이를 구축하는 방법, 검색하는 방법, 및 업데이트 하는 방법을 구현한 의사 코드(pseudo code)의 일 예이다.9 to 11 are examples of pseudo code implementing the method of constructing, searching for, and updating the priority trie according to the present invention.

도 9를 참조하면, 본 발명에 따른 우선수위 기반의 트라이를 구축하는 방법은 첫째 프리픽스의 길이가 노드의 레벨에 해당하는 일반 이진 트라이를 구축하는 과정(BuildBinaryTire), 둘째 보다 긴 프리픽스를 보다 높은 레벨에 할당하기 위하 여 일반 이진 트라이에 존재하는 빈 내부 노드를 사용하여 우선순위 트라이를 재구축하는 과정(BuildPriorityTrie)으로 이루어진다.Referring to FIG. 9, a method of constructing a priority-based trie according to the present invention includes a process of building a general binary trie whose length of a first prefix corresponds to a level of a node (BuildBinaryTire), and a second longer prefix. This is done by rebuilding the priority tri (BuildPriorityTrie) using an empty internal node that exists in the regular binary tri to assign to.

여기서 우선순위 트라이를 재구축하는 과정을 도 9를 참조하여 상세히 살펴보면, 먼저 일반 이진 트라이를 검색(traverse)하여 만약 빈 노드가 아닌 노드(non-empty node)를 발견하면 일반 노드로 마크하고, 만약 빈 노드(empty node)를 발견하면 그 빈 노드가 루트인 서브 트리, 즉 E(x)에 속하는 프리픽스들을 정렬하고 그 정렬된 프리픽스들 중 가장 길이가 긴 프리픽스, 즉 P(x)를 트라이에서 제거한 후에 P(x)를 그 빈 노드에 저장한다. 이제 P(x)가 저장된 노드는 우선순위 노드(priority node)로 마크된다. 이 때 P(x)는 현재 자신의 프리픽스 길이보다 높은 레벨로 이동하여야 함에 주의한다. 이와 같은 과정을 일반 이진 트라이의 모든 노드를 검색하거나 또는 일반 이진 트라이에 더 이상 빈 노드가 포함되어 있지 않을 때까지 반복한다. 우선순위 트라이 재구축 과정이 완료되면 빈 노드가 모두 제거되기 때문에 트라이에 포함된 노드의 수는 프리픽스들의 수와 같아지게 된다. Here, the process of rebuilding the priority tris will be described in detail with reference to FIG. 9. First, if a general non-empty node is found, the general binary tri is traversed. If it finds an empty node, it sorts the prefixes belonging to the subtree rooted at that root, E ( x ), and removes the longest prefix of that sorted prefix, P ( x ), from the trie. We then store P ( x ) in that empty node. The node where P ( x ) is stored is now marked as a priority node. Note that P ( x ) must move to a level higher than its current prefix length. This process is repeated until all nodes in the regular binary tree are retrieved or until the regular binary tree no longer contains empty nodes. Since all empty nodes are removed when the priority tri rebuild process is complete, the number of nodes in the tri is equal to the number of prefixes.

한편, 도 10은 본 발명에 따른 우선순위 트라이를 검색하는 방법을 구현한 의사 코드의 일 예가 도시된다.On the other hand, Figure 10 shows an example of the pseudo code implementing the method for searching the priority tri in accordance with the present invention.

도 10을 참조하면, 먼저 루트 노드에서 시작하여 입력된 IP 주소를 우선순위 트라이에 저장된 노드들과 비교한다. 비교결과 입력된 주소가 일반 노드와 일치하는 경우에는 일치하는 일반 노드의 프리픽스를 현재까지 일치된 가장 긴 프리픽스로서 저장하고 검색을 계속한다. Referring to FIG. 10, first, an IP address inputted at a root node is compared with nodes stored in a priority tri. If the address entered matches the normal node, the prefix of the matching general node is stored as the longest prefix matched so far and the search continues.

비교결과 추출된 주소가 우선순위 트라이 구조에서 빈 노드에 대체된 우선순 위 프리픽스와 일치하거나 또는 리프(leaf)를 만나면 검색을 종료한다.The search is terminated when the extracted address matches the priority prefix replaced by an empty node in the priority tri-structure or meets a leaf.

이 때, 우선순위 프리픽스와 일치하여 검색이 종료된 경우에는 해당 우선순위 프리픽스를 상기 추출된 주소와 가장 길게 일치하는 네트워크 주소로 반환하면 된다. 본 발명에 따른 우선순위 기반 트라이는 길이가 긴 프리픽스가 보다 상위 레벨에 저장되도록 재구축되어 있기 때문에, 검색 중 우선순위 프리픽스와 일치하였다는 것은 해당 서브 트리에서 가장 길게 일치하는 노드임을 보장하게 되며, 따라서 더 이상 하위 노드들과 비교할 필요가 없어지기 때문이다. 이에 따라 검색을 위한 메모리 액세스 횟수를 획기적으로 줄일 수 있게 된다.In this case, when the search is terminated in accordance with the priority prefix, the corresponding priority prefix may be returned to the network address that has the longest match with the extracted address. Since the priority based tri according to the present invention is rebuilt to store the long prefix at a higher level, matching with the priority prefix during the search ensures that it is the longest matching node in the subtree. Therefore, it is no longer necessary to compare with subordinate nodes. As a result, the number of memory accesses for searching can be significantly reduced.

한편, 리프를 만나 종료된 경우에는 현재까지 일치된 가장 긴 프리픽스를 상기 추출된 주소와 가장 길게 일치하는 네트워크 주소로 반환하면 된다.On the other hand, when the end of the leaf meets, the longest prefix that has been matched so far may be returned as the network address that has the longest match with the extracted address.

한편, 도 11은 본 발명에 따른 우선순위 트라이를 업데이트하는 방법을 구현한 의사 코드의 일 예가 도시된다.Meanwhile, FIG. 11 shows an example of pseudo code implementing the method of updating the priority trie according to the present invention.

참고로, 도시되지는 않았지만, 본 발명에 따른 우선순위 트라이에서 하나의 프리픽스를 삭제하기 위하여 삭제될 노드를 빈 내부 노드로 만들고, 빈 내부 노드를 제거하기 위하여 소정의 주기로 상기 라우팅 테이블에 대하여 우선순위 기반 트라이 구조를 재구축하는 것이 바람직하다. 구체적으로는 삭제할 프리픽스를 찾아 도 7에 도시된 라우팅 테이블의 엔트리 중 처음 세 필드, 즉 메모리 주소, 일반 노드인지 우선순위 노드인지를 나타내는 마크 정보 및 해당 프리픽스 값을 삭제하여 빈 노드로 만든다. 이 노드는 하위 레벨까지 검색을 계속할 수 있도록 여전히 자식 노드에 대한 포인터를 저장하고 있기 때문에 그 노드를 유지해야 한다. 만약 적절한 주기로 전체 라우팅 테이블을 재구축한다고 가정하면 프리픽스를 삭제함에 따라 빈 노드의 숫자가 문제가 되진 않을 것이다.For reference, although not shown, a node to be deleted is made an empty internal node to delete one prefix in a priority tri according to the present invention, and the priority is given to the routing table at predetermined intervals to remove the empty internal node. It is desirable to rebuild the base tri structure. Specifically, the prefix to be deleted is found, and the first three fields of the entry of the routing table shown in FIG. 7, that is, the memory address, the mark information indicating whether the node is a general node or the priority node, and the prefix value are deleted to make the empty node. You must keep this node because it still stores a pointer to the child node so that you can continue searching down to the lower level. If we assume that we rebuild the entire routing table at a reasonable interval, the number of free nodes will not matter as we delete the prefix.

한편, 제안된 알고리즘에서 하나의 프리픽스를 삽입하기 위하여 도 11에 도시된 업데이트 절차를 수행한다. Meanwhile, the update procedure shown in FIG. 11 is performed to insert one prefix in the proposed algorithm.

도 11을 참조하면, 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조에서 하나의 프리픽스를 삽입하는 경우, 삽입에 의해 복수의 노드들이 영향을 받는 두 가지 경우가 있다. 첫 번째는 삽입될 프리픽스가 우선순위 프리픽스와 일치하면서 그 길이가 우선순위 프리픽스보다 긴 경우이다. 두 번째는 삽입될 프리픽스의 일반적인 위치를 다른 우선순위 프리픽스가 이미 차지하고 있는 경우이다. 이러한 경우들에서 삽입될 프리픽스는 우선순위 프리픽스의 위치를 차지한다. 삽입될 프리픽스에 의하여 자리를 빼앗긴 우선순위 프리픽스들에 대하여 동일한 절차가 반복된다.Referring to FIG. 11, when a prefix is inserted in a priority-trie structure generated based on network addresses included in a routing table, two cases where a plurality of nodes are affected by the insertion There is. The first is when the prefix to be inserted matches the priority prefix and its length is longer than the priority prefix. The second is when another priority prefix already occupies the general position of the prefix to be inserted. In these cases the prefix to be inserted occupies the position of the priority prefix. The same procedure is repeated for priority prefixes deprived by the prefix to be inserted.

다른 모든 경우들에서 삽입될 프리픽스는 리프 노드에 저장되거나 또는 라우팅 테이블에 있는 기존의 프리픽스가 대체된다.  In all other cases, the prefix to be inserted is stored in the leaf node or the existing prefix in the routing table is replaced.

도 12 내지 도 14는 본 발명에 따른 우선순위 트라이 구조의 성능을 평가한 실험 결과들을 도시한다.12 to 14 show experimental results of evaluating the performance of the priority tri structure according to the present invention.

도시된 실험결과들은 백본 라우터의 실제 라우팅 테이블에 대하여 시뮬레이션을 수행한 결과를 나타낸다. 도 12 및 도 13은 제안된 우선순위 이진 트라이 및 우선순위 기반 멀티 비트 트라이(2 비트의 경우)의 성능 평가 결과를 보여준다. The experimental results shown represent simulation results for the actual routing table of the backbone router. 12 and 13 show the performance evaluation results of the proposed priority binary tri and priority based multi-bit tri (in case of 2 bits).

각각 N은 라우팅 프리픽스의 수, N P는 라우팅 프리픽스들 중 우선순위 프리픽스의 수, D는 최대 프리픽스 길이, D p는 제안된 우선순위 트라이의 깊이, Ta는 주소 검색을 위한 평균 메모리 액세스 횟수, M은 다양한 크기의 라우팅 데이터를 위해 요구되는 메모리의 크기를 나타낸다. 처음 3개의 라우팅 테이블에 대하여 도 12의 우선순위 프리픽스의 수에 나타난 바와 같이, 프리픽스들의 90% 이상이 우선순위 프리픽스로 저장된다. 이는 일반 이진 트라이가 많은 빈 노드들을 가지고 있음을 의미한다. Each N is the number of routing prefix, N P is a routing prefix of the number of the priority prefix, D is the maximum prefix length, D p is the depth of the proposed priority tri, T a is the average memory access for address searches, M represents the size of memory required for routing data of various sizes. As indicated by the number of priority prefixes in FIG. 12 for the first three routing tables, more than 90% of the prefixes are stored as priority prefixes. This means that a regular binary tree has many empty nodes.

본 제안된 알고리즘에 따르면 우선순위 프리픽스 노드들이 많아질수록 검색 성능은 더 좋아질 것으로 예측된다. 평균 메모리 액세스 횟수도 약 16-23이며, 라우팅 테이블의 크기가 증가하더라도 크게 나빠지지 않는다. 도 13에서 2 비트는 2 비트 트라이에서와 동일한 것으로 간주된다. 2 비트 트라이에서는 별도의 노드들이 생성되는 것을 알 수 있다. 트라이 깊이 면에서 제안된 알고리즘의 성능, 즉 평균 메모리 액세스 횟수, 요구되는 메모리 크기는 라우팅 테이블의 크기가 커지더라도 크게 나빠지지 않는다. 즉, 제안된 우선순위 트라이 구조는 커다란 라우팅 데이터에 대하여 확장성(scalability) 면에서 좋은 성능을 가진다.According to the proposed algorithm, the more priority prefix nodes, the better the search performance. The average number of memory accesses is about 16-23, and the size of the routing table does not increase significantly. In FIG. 13 two bits are considered to be the same as in a two bit tri. It can be seen that two nodes are created with separate nodes. In terms of tri depth, the performance of the proposed algorithm, that is, the average number of memory accesses and the required memory size, does not deteriorate significantly as the size of the routing table increases. In other words, the proposed priority tri-structure has good scalability for large routing data.

한편, 도 14는 112K 엔트리와 225K 엔트리를 가진 이진 검색 구조를 시뮬레이션한 결과를 도시한다. 최악의 경우의 메모리 액세스 횟수(T max), 평균 메모리 액세스 횟수(Ta), 요구되는 메모리 크기(M), 및 필요한 엑스트라 노드의 수(N extra) 면에서의 성능 비교를 나타낸다. 도시된 바와 같이 제안된 우선순위 기반의 멀티 비트 트라이는 최악의 경우의 메모리 액세스 횟수 면(T max)에서 최고의 성능을 나타내며, 종래의 BSR(Binary search on range) 및 본 발명에서 제안된 우선순위 기반의 멀티 비트 트라이는 평균 메모리 액세스 횟수 면(Ta)에서 최고의 성능을 나타낸다. 요구되는 메모리의 크기 면(M)에서, BSR 및 제안된 우선순위 기반의 이진 트라이가 최고의 성능을 나타낸다. On the other hand, Figure 14 shows the results of simulating a binary search structure with 112K entries and 225K entries. Performance comparisons are given in terms of worst case memory access number T max , average memory access number T a, required memory size M , and number of extra nodes needed ( N extra ). As shown, the proposed priority-based multi-bit trial exhibits the best performance in terms of the worst-case memory access times ( T max ), and is based on the conventional binary search on range (BSR) and the priority-based proposed in the present invention. The multi-bit tris of Cs show the best performance in terms of average memory access times ( T a). In terms of the size of memory required ( M ), the BSR and the proposed priority based binary tris show the best performance.

한편, 종래의 BSR 알고리즘은 각 분리 구간별 최선 정합 프리픽스를 미리 계산하기 때문에 인크리멘털 업데이트(incremental update)를 제공하지 못한다. 반면 제안된 알고리즘은 인크리멘털 업데이트(incremental update)를 제공할 수 있다.On the other hand, the conventional BSR algorithm does not provide incremental update because it calculates the best matching prefix for each separation section in advance. On the other hand, the proposed algorithm can provide incremental update.

전술한 본 발명에 따른 IP 주소 검색 방법은 패킷 중계 장치 내에서 하드웨어적으로 구현될 수 있다. 패킷 중계 장치에서의 IP 주소 검색은 입력된 모든 패킷에 대하여 실시간으로 처리되어야 하므로, 실시간으로 IP 주소 검색을 수행하기 위하여 본 발명을 하드웨어 구조로 설계 구현하는 것이 적절하다. The above-described IP address retrieval method according to the present invention can be implemented in hardware in a packet relay apparatus. Since the IP address search in the packet relay apparatus must be processed in real time for all the input packets, it is appropriate to design and implement the present invention in a hardware structure to perform the IP address search in real time.

한편, 본 발명에 따른 IP 주소 검색 방법은 컴퓨터 프로그램으로도 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 IP 주소 검색 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다. On the other hand, the IP address retrieval method according to the present invention can also be created by a computer program. Codes and code segments constituting the program can be easily inferred by a computer programmer in the art. In addition, the program is stored in a computer readable media, and read and executed by a computer to implement the IP address retrieval method. The information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

전술한 바와 같이 본 발명에 따르면, 검색 시간을 줄일 수 있을 뿐만 아니라 소요되는 메모리의 크기도 줄일 수 있는 효과적인 IP 주소 검색 방법 및 이를 적용한 패킷 중계 장치가 제공된다.As described above, the present invention provides an effective IP address retrieval method and a packet relay apparatus using the same, which can reduce retrieval time and reduce the size of memory required.

본 발명에 따르면 우선순위 트라이를 이용한 새로운 IP 주소 검색 방법이 제공된다. 즉, 제안된 알고리즘은 트리 구조에 기초하지만 빈 내부노드들이 우선순위 프리픽스(priority prefix)로 대체된다. 따라서, 제안된 알고리즘에서 가장 길게 일치하는 프리픽스(LMP)의 검색은, 입력된 프리픽스가 일반 프리픽스 노드보다 우선순위 프리픽스 노드에 일치하는 경우에 더 일찍 종료되기 때문에 보다 효율적으로 수행된다. 효율성 평가 결과는 구조된 우선순위 트라이가 요구되는 메모리, 검색 속도 및 확장성 면에서 매우 좋은 성능을 가짐을 보여준다.According to the present invention, a new IP address retrieval method using a priority trie is provided. That is, the proposed algorithm is based on the tree structure, but empty inner nodes are replaced with priority prefixes. Thus, the search for the longest matching prefix (LMP) in the proposed algorithm is performed more efficiently because the input prefix ends earlier if it matches the priority prefix node than the normal prefix node. The results of the efficiency assessment show that the structured priority tree has very good performance in terms of memory, search speed and scalability required.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

Claims (13)

패킷 포워딩을 위한 IP 주소 검색 방법에 있어서,In the IP address retrieval method for packet forwarding, (a) 수신된 패킷의 목적지 IP 주소를 추출하는 단계;(a) extracting a destination IP address of the received packet; (b) 네트워크 주소에 따른 출력 포트가 지정된 라우팅 테이블로부터 상기 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소를 검색하는 단계; 및(b) retrieving a network address whose output port according to the network address is the longest match from the extracted destination IP address; And (c) 상기 검색된 네트워크 주소에 대응하는 출력 포트를 상기 수신된 패킷을 전송할 출력 포트로 지정하는 단계를 포함하며,(c) designating an output port corresponding to the retrieved network address as an output port to which the received packet is to be sent; 상기 검색하는 단계는 상기 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조를 이용하여 이루어지는 것을 특징으로 하는 IP 주소 검색 방법.The searching is performed by using a priority-trie structure generated based on network addresses included in the routing table. 제1항에 있어서,The method of claim 1, 상기 우선순위 트라이 구조는 길이가 긴 프리픽스 일수록 먼저 비교되도록 일반 트라이 구조의 빈 내부 노드를 이용하여 길이가 긴 프리픽스를 높은 레벨에 할당함으로써 구축되는 것을 특징으로 하는 IP 주소 검색 방법.Wherein the priority tri structure is constructed by allocating a long prefix to a higher level using empty internal nodes of a general tri structure such that longer prefixes are compared first. 제1항에 있어서,The method of claim 1, 상기 우선순위 트라이 구조는 일반 트라이 구조의 각각의 빈 내부 노드를 해당 빈 내부 노드가 루트 노드인 서브 트리에 속하는 프리픽스들 중 가장 긴 프리픽 스로 대체함으로써 구축되는 것을 특징으로 하는 IP 주소 검색 방법.Wherein the priority tri structure is constructed by replacing each bean inner node of the general tri structure with the longest one of the prefixes belonging to the subtree whose bin inner node is the root node. 제1항에 있어서, 상기 (b) 단계는,According to claim 1, wherein step (b), (b1) 상기 추출된 목적지 IP 주소를 상기 우선순위 트라이 구조의 각 노드들과 비교하는 단계;(b1) comparing the extracted destination IP address with respective nodes of the priority tri structure; (b2) 비교결과 상기 추출된 목적지 IP 주소가 일반 노드와 일치하는 경우에는 상기 일치하는 일반 노드의 프리픽스를 현재까지 일치된 가장 긴 프리픽스로서 저장하고 검색을 계속하며, (b2) if the extracted destination IP address matches the general node, as a result of the comparison, the prefix of the matching general node is stored as the longest prefix matched so far, and the search continues; (b3) 비교결과 상기 추출된 목적지 IP 주소가 상기 우선순위 트라이 구조에서 빈 노드에 대체된 우선순위 프리픽스와 일치하거나 또는 리프(leaf)를 만나면 검색을 종료하는 단계; 및(b3) terminating the search if the extracted destination IP address matches a priority prefix substituted for an empty node or meets a leaf in the priority tri-structure; And (b4) 상기 우선순위 프리픽스와 일치하여 검색이 종료된 경우에는 해당 우선순위 프리픽스를 상기 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소로 반환하고, 상기 리프를 만나 종료된 경우에는 상기 저장된 현재까지 일치된 가장 긴 프리픽스를 상기 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소로 반환하는 단계를 포함하는 것을 특징으로 하는 IP 주소 검색 방법.(b4) If the search is terminated by matching the priority prefix, the corresponding priority prefix is returned to the network address that has the longest match with the extracted destination IP address; comprising the step of returning the longest prefix match with the network address to the longest match with the extracted destination IP address, IP address search method. IP 주소 검색을 위한 라우팅 테이블을 구축하는 방법에 있어서,In the method for building a routing table for IP address lookup, (a) 네트워크 주소를 나타내는 프리픽스들을 각각 자신의 길이에 해당하는 레벨의 노드들로서 저장하여 일반 트라이 구조를 구축하는 단계; 및(a) storing a prefix representing a network address as nodes of a level corresponding to a length of each to construct a general tri-structure; And (b) 상기 일반 트라이 구조로부터 길이가 긴 프리픽스 일수록 먼저 비교되도록 구조된 우선순위 기반 트라이 구조를 재구축하는 단계를 포함하는 것을 특징으로 하는 라우팅 테이블 구축 방법.and (b) reconstructing the priority-based tri-structure structured so that the longer prefix from the general tri-structure is compared first. 제5항에 있어서, 상기 (b) 단계는, The method of claim 5, wherein step (b) comprises: 상기 (a) 단계에서 구축된 일반 트라이 구조의 경로에서 첫 번째로 만난 빈 노드에 가장 길이가 긴 프리픽스를 저장하고 상기 빈 노드에 저장된 프리픽스를 우선순위 프리픽스로 마크하는 과정을 상기 일반 트라이 구조에 빈 노드가 없어질 때까지 반복하는 것을 특징으로 하는 라우팅 테이블 구축 방법.Storing the longest prefix in the first empty node in the path of the general tri structure constructed in step (a) and marking the prefix stored in the empty node as a priority prefix in the empty tri-structure. Routing table construction method characterized in that iterate until the node disappears. IP 주소 검색을 위한 라우팅 테이블을 업데이트하는 방법에 있어서,A method of updating a routing table for IP address lookup, the method comprising: (a) 상기 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조에서 하나의 프리픽스를 삭제하는 경우 상기 삭제될 프리픽스를 빈 내부 노드로 만드는 단계; 및comprising the steps of: (a) creating a prefix to be deleted by the blank internal node when deleting a prefix from the network address of the first generation on the basis of the ranking tri (priority-trie) structures included in the routing table; And (b) 상기 빈 내부 노드를 제거하기 위하여 소정의 주기로 상기 라우팅 테이블에 대하여 우선순위 기반 트라이 구조를 재구축하는 단계를 포함하는 것을 특징으로 하는 라우팅 테이블 업데이트 방법.(b) reconstructing a priority-based tri-structure for the routing table at predetermined intervals to remove the empty internal node. 제7항에 있어서, 상기 (b) 단계는,The method of claim 7, wherein step (b), 상기 라우팅 테이블에 포함된 길이가 긴 프리픽스 일수록 먼저 비교되도록 상기 빈 내부 노드를 이용하여 길이가 긴 프리픽스를 높은 레벨에 할당하여 우선순위 기반 트라이 구조를 재구축하는 것을 특징으로 하는 라우팅 테이블 업데이트 방법.The longest prefix included in the routing table is configured to reconstruct a priority-based tri-structure by allocating a long prefix to a high level using the empty internal node so as to be compared first. IP 주소 검색을 위한 라우팅 테이블을 업데이트하는 방법에 있어서,A method of updating a routing table for IP address lookup, the method comprising: (a) 상기 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조에서 하나의 프리픽스를 삽입하는 경우, 상기 삽입될 프리픽스가 우선순위 프리픽스와 일치하면서 그 길이가 상기 우선순위 프리픽스의 길이보다 긴 경우 상기 삽입될 프리픽스가 상기 우선순위 프리픽스의 위치를 차지하도록 배치하는 단계; 및(a) When a prefix is inserted in a priority-trie structure generated based on network addresses included in the routing table, the prefix to be inserted coincides with the priority prefix and its length is equal to the priority prefix. Arranging the prefix to be inserted occupies the position of the priority prefix when it is longer than a length of the priority prefix; And (b) 상기 삽입될 프리픽스의 위치를 이미 다른 우선순위 프리픽스가 차지하고 있는 경우 상기 삽입될 프리픽스가 상기 다른 우선순위 프리픽스의 위치를 차지하도록 배치하는 단계를 포함하는 것을 특징으로 하는 라우팅 테이블 업데이트 방법.and (b) arranging the prefix to be inserted occupy the position of the other priority prefix when the position of the prefix to be inserted is already occupied by another priority prefix. IP 주소 검색을 위한 패킷 중계 장치에 있어서,In the packet relay device for retrieving an IP address, 수신된 패킷의 목적지 IP 주소를 추출하는 프레임 해석부; 및A frame analyzer extracting a destination IP address of the received packet; And 네트워크 주소에 따른 출력 포트가 지정된 라우팅 테이블로부터 상기 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소를 검색하고 상기 검색된 네트워크 주소에 대응하는 출력 포트를 상기 수신된 패킷을 전송할 출력 포트로 지정하는 어드레스 룩업 처리부를 포함하며,An address lookup that retrieves a network address whose longest output port matches a extracted destination IP address from a specified routing table and designates an output port corresponding to the retrieved network address as an output port to which the received packet is to be sent A processing unit, 상기 어드레스 룩업 처리부는 상기 라우팅 테이블에 포함된 네트워크 주소들에 기초하여 생성된 우선순위 트라이(priority-trie) 구조를 이용하여 상기 네트워크 주소 검색을 수행하는 것을 특징으로 하는 패킷 중계 장치.And the address lookup processing unit performs the network address search using a priority-trie structure generated based on network addresses included in the routing table. 제10항에 있어서,The method of claim 10, 상기 우선순위 트라이 구조는 길이가 긴 프리픽스 일수록 먼저 비교되도록 일반 트라이 구조의 빈 내부 노드를 이용하여 길이가 긴 프리픽스를 높은 레벨에 할당함으로써 구축되는 것을 특징으로 하는 패킷 중계 장치.And the priority tri structure is constructed by allocating a long prefix to a high level using empty internal nodes of a general tri structure so that longer prefixes are compared first. 제10항에 있어서,The method of claim 10, 상기 우선순위 트라이 구조는 일반 트라이 구조의 각각의 빈 내부 노드를 해당 빈 내부 노드가 루트 노드인 서브 트리에 속하는 프리픽스들 중 가장 긴 프리픽스로 대체하여 구축되는 것을 특징으로 하는 패킷 중계 장치.And the priority tri structure is constructed by replacing each bean inner node of a general tri structure with the longest prefix among prefixes belonging to a subtree whose bin inner node is a root node. 제10항에 있어서, 상기 어드레스 룩업 처리부는,The method of claim 10, wherein the address lookup processing unit, 상기 추출된 목적지 IP 주소를 상기 우선순위 트라이 구조의 각 노드들과 비교하여 상기 추출된 목적지 IP 주소가 일반 노드와 일치하는 경우에는 상기 일치하는 일반 노드의 프리픽스를 현재까지 일치된 가장 긴 프리픽스로서 저장하고 검색을 계속하고 상기 추출된 목적지 IP 주소가 상기 우선순위 트라이 구조에서 빈 노 드에 대체된 우선순위 프리픽스와 일치하거나 또는 리프(leaf)를 만나면 검색을 종료하되,The extracted destination IP address is compared with each node of the priority tri structure, and when the extracted destination IP address matches a general node, the prefix of the matching general node is stored as the longest prefix matched so far. And continue the search and terminate the search if the extracted destination IP address matches the priority prefix replaced by an empty node or meets a leaf in the priority tri-structure, 상기 우선순위 프리픽스와 일치하여 검색이 종료된 경우에는 해당 우선순위 프리픽스를 상기 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소로 반환하고, 상기 리프를 만나 종료된 경우에는 상기 저장된 현재까지 일치된 가장 긴 프리픽스를 상기 추출된 목적지 IP 주소와 가장 길게 일치하는 네트워크 주소로 반환하는 것을 특징으로 하는 패킷 중계 장치.If the search is terminated by matching the priority prefix, the corresponding priority prefix is returned to the network address that matches the extracted destination IP address for the longest time. And return a long prefix to a network address that matches the extracted destination IP address longest.
KR1020060098166A 2006-10-09 2006-10-09 An ip address lookup method using priority-trie and apparatus for relaying packets therefor KR100814077B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060098166A KR100814077B1 (en) 2006-10-09 2006-10-09 An ip address lookup method using priority-trie and apparatus for relaying packets therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060098166A KR100814077B1 (en) 2006-10-09 2006-10-09 An ip address lookup method using priority-trie and apparatus for relaying packets therefor

Publications (1)

Publication Number Publication Date
KR100814077B1 true KR100814077B1 (en) 2008-03-14

Family

ID=39398878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060098166A KR100814077B1 (en) 2006-10-09 2006-10-09 An ip address lookup method using priority-trie and apparatus for relaying packets therefor

Country Status (1)

Country Link
KR (1) KR100814077B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101094033B1 (en) 2010-04-12 2011-12-19 중앙대학교 산학협력단 Apparatus and method for registering node and searching floating ip using distributed network
WO2022250264A1 (en) * 2021-05-28 2022-12-01 (주)모니터랩 Method and apparatus for comparing ip addresses

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237061B1 (en) 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
KR20010098110A (en) * 2000-04-28 2001-11-08 안종석 IP address look-up method using a bit-vector table
KR20030044506A (en) * 2001-11-30 2003-06-09 한국전자통신연구원 LPM-based CAM look-up-table managing method, the apparatus thereof and the recording medium thereof
KR20040003258A (en) * 2002-07-02 2004-01-13 삼성전자주식회사 Internet protocol address look-up method
KR20050036457A (en) * 2003-10-16 2005-04-20 한국전자통신연구원 Internet protocol address lookup method using a trie

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237061B1 (en) 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
KR20010098110A (en) * 2000-04-28 2001-11-08 안종석 IP address look-up method using a bit-vector table
KR20030044506A (en) * 2001-11-30 2003-06-09 한국전자통신연구원 LPM-based CAM look-up-table managing method, the apparatus thereof and the recording medium thereof
KR20040003258A (en) * 2002-07-02 2004-01-13 삼성전자주식회사 Internet protocol address look-up method
KR20050036457A (en) * 2003-10-16 2005-04-20 한국전자통신연구원 Internet protocol address lookup method using a trie

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101094033B1 (en) 2010-04-12 2011-12-19 중앙대학교 산학협력단 Apparatus and method for registering node and searching floating ip using distributed network
WO2022250264A1 (en) * 2021-05-28 2022-12-01 (주)모니터랩 Method and apparatus for comparing ip addresses

Similar Documents

Publication Publication Date Title
KR100745693B1 (en) Method for ternary contents address memory table management
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
EP2040184B1 (en) Database and database processing methods
KR100586461B1 (en) Method, Hardware Architecture and Recording Medium for Searching IP Address by Using Pipeline Binary Tree
Ruiz-Sánchez et al. Survey and taxonomy of IP address lookup algorithms
US7356033B2 (en) Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures
EP1358739B1 (en) Method and apparatus for routing table management
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
US20100293327A1 (en) TCAM Management Approach That Minimize Movements
US8284787B2 (en) Dynamic tree bitmap for IP lookup and update
US20170366459A1 (en) Jump on a Match Optimization for Longest Prefix Match using a Binary Search Tree
KR100512949B1 (en) Apparatus and method for packet classification using Field Level Trie
JP3570323B2 (en) How to store prefixes for addresses
CN103780491A (en) Method for realizing IPv6 fast route lookup
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
KR20120081090A (en) Method and device for improving scalabilty of longest prefix match
KR100814077B1 (en) An ip address lookup method using priority-trie and apparatus for relaying packets therefor
Veeramani et al. Efficient IP lookup using hybrid trie-based partitioning of TCAM-based open flow switches
KR100686732B1 (en) Method for foriming database for routing data packet from plural prefix and method for routing and router using the method
KR100560420B1 (en) Internet protocol address lookup method using a trie
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
KR100420957B1 (en) Routing table using class segmentation algorithm, searching method and apparatus thereby.
EP3319279B1 (en) Ip routing lookup
Pao et al. Enabling incremental updates to LC-trie for efficient management of IP forwarding tables
SE521907C2 (en) Method and system for fast IP route search to determine where an IP datagram with a given destination address should be forwarded

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
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160309

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170905

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee