KR20030075016A - Routing table using class segmentation algorithm, searching method and apparatus thereby. - Google Patents

Routing table using class segmentation algorithm, searching method and apparatus thereby. Download PDF

Info

Publication number
KR20030075016A
KR20030075016A KR1020020014091A KR20020014091A KR20030075016A KR 20030075016 A KR20030075016 A KR 20030075016A KR 1020020014091 A KR1020020014091 A KR 1020020014091A KR 20020014091 A KR20020014091 A KR 20020014091A KR 20030075016 A KR20030075016 A KR 20030075016A
Authority
KR
South Korea
Prior art keywords
network address
value
class
information
data
Prior art date
Application number
KR1020020014091A
Other languages
Korean (ko)
Other versions
KR100420957B1 (en
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 KR10-2002-0014091A priority Critical patent/KR100420957B1/en
Publication of KR20030075016A publication Critical patent/KR20030075016A/en
Application granted granted Critical
Publication of KR100420957B1 publication Critical patent/KR100420957B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/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/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • 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

Landscapes

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

Abstract

PURPOSE: A routing table data structure using a class division method, and a method and an apparatus for retrieving a routing path by a routing table are provided to retrieve the routing table composed using the class division method. CONSTITUTION: Prefix information composed as a network address and valid length information is received(710). A class is judged using a length of the prefix to be retrieved(720). It moves to an index tree corresponding to the class, and the first data corresponding to the class are received(730). The received first data are compared with one byte of the network address(740). It moves to a next node, a key value is read, and a next one byte value of the prefix is read(750). It is judged whether a data node of a last destination address path is searched(760). If the data node of the last destination address path is searched, an external interface path value corresponding to the data node is outputted(770).

Description

클래스 분할 기법을 이용한 라우팅 테이블, 라우팅 테이블을 이용한 라우팅 경로 검색방법 및 장치{Routing table using class segmentation algorithm, searching method and apparatus thereby.}Routing table using class segmentation algorithm, searching method and apparatus thereby.

본 발명은 라우터가 관리하는 라우팅 테이블 구성을 위한 자료구조에 관한것으로, 구체적으로는 자료구조를 제시하고 이 라우팅 테이블을 이용한 경로검색 방법 및 장치를 제공하는 것에 관한 것이다.The present invention relates to a data structure for configuring a routing table managed by a router, and more particularly, to a data structure for providing a route search method and apparatus using the routing table.

종래에 사용되는 라우팅 테이블(routing table)을 위한 자료구조 구성방식에서는 수정된 선형해쉬(MLH, Modified Linear Hashing), 래딕스(Radix) 알고리즘, 높이균형이진트리(AVL, Adelson-Velskii-Landis) 알고리즘 등이 있다. 각 자료구조 방식의 특징을 보면, 수정된 선형 해쉬 알고리듬과 높이균형이진트리(AVL) 알고리듬은 소요되는 메모리가 적은 반면, 래딕스(radix) 자료구조 방식은 자료구조의 방식은 검색시간이 빠르다는 점을 들 수 있다. 수정된 선형 해쉬 알고리듬의 경우 해쉬 트리(Hash tree)를 이용한 해슁(hashing) 방식을 사용하므로 자료검색의 시간이 상대적으로 오래 걸린다.In the conventional structure of data structures for routing tables, the modified linear hash (MLH), the Radix algorithm, and the Adelson-Velskii-Landis (AVL) algorithm Etc. The characteristics of each data structure show that the modified linear hash algorithm and the height-balanced binary tree (AVL) algorithm require less memory, whereas the radix data structure method uses a faster data retrieval time. There is a point. The modified linear hash algorithm takes a relatively long time since data retrieval uses a hashing method using a hash tree.

래딕스(radix) 자료구조의 방식은 빠른 검색시간을 가지나, 메모리 사용면에서 낭비를 가져온다. 왜냐하면 래딕스(radix) 방식을 이용한 자료구조는 트리구조가 이진 트리이고, 아이피 버전4 (IPv4) 의 주소 32비트에 대한 정보를 모두 갖고 있어야 하므로 테이블은 최대 232개의 노드를 가져야 하기 때문이다. 다시 말해 라우터가 패킷을 보내기 위한 정보를 얻기 위해 단 한번의 테이블의 접근만이 필요하게 되지만, 232개의 방대한 기억공간이 필요하다는 것이다.Radix data structures have a fast search time, but are a waste of memory. Because the data structure using the Radix method is a binary tree, the table must have up to 232 nodes because all the information about 32 bits of IP version 4 (IPv4) must be included. In other words, the router only needs access to one table to get the information to send the packet, but 232 large amounts of storage.

그리고 라우팅 탐색 속도에 있어서 비효율적이다. 왜냐하면, 기억공간이 방대하므로 다음 홉(hop) 에 관한 정보를 얻기 위해 라우팅 테이블을 검색할 경우, 비트 단위로 비교하는 횟수가 많아지고 테이블의 구조가 이진 트리 형식으로 되어 있어 루트 노드를 경유해서 각 노드들을 지나가야 하기 때문이다. 또한 찾고자 하는 목적지 주소에 대한 정보가 미리 등록되어 있지 않았을 때, 최악의 경우는 루트(root) 노드에서 리프(leaf) 노드까지 경유해야 등록되어 있지 않다는 것을 알 수 있게 된다.And it is inefficient in routing search speed. Because the storage space is huge, when searching the routing table to obtain information about the next hop, the number of bit comparisons is increased and the structure of the table is in the form of a binary tree. Because you have to go through the nodes. In addition, when the information about the destination address to be searched for is not registered in advance, the worst case is that it is not registered through the root node to the leaf node.

그리고, 래딕스(radix) 알고리즘의 문제점은 라우팅 테이블의 균형성에 관한 것이다. 라우팅 테이블의 구조는 이진 트리 형식으로 되어 있으므로 트리의 모양이 균형 트리가 아닌 경사 트리로 만들어 질 수 있다. 즉 균형 트리가 아닌 경사 트리를 이루게 되면 경유해야 하는 노드의 수가 증가되며, 이로 인해 평균 탐색시간과 최대 탐색시간이 증가되고, 새로운 노드를 추가하거나 삭제하는 등의 갱신 작업에 소요되는 시간 또한 증가하게 된다. 또한 라우팅 테이블을 위한 트리를 구성할 때, 값을 가지지 않는 노드, 즉 허수 노드가 발생한다. 따라서, 불필요한 노드의 생성에서 오는 기억공간의 낭비와 접근해야 하는 노드 수의 증가로 인한 탐색속도의 증가를 초래하게 된다.And the problem with the Radix algorithm is related to the balancing of routing tables. The structure of the routing table is in the form of a binary tree, so the shape of the tree can be made into a sloped tree rather than a balanced tree. In other words, forming a slope tree rather than a balanced tree increases the number of nodes that must pass through, which increases the average search time and the maximum search time, and also increases the time required for updating such as adding or deleting new nodes. do. Also, when constructing a tree for a routing table, nodes with no values, that is, imaginary nodes, occur. Therefore, it leads to an increase in search speed due to waste of storage space resulting from unnecessary node creation and an increase in the number of nodes to be accessed.

도 1은 종래의 래딕스(radix)방식을 이용한 라우팅 테이블의 트리구조 도면이다. 도 1에서 보는 바와 같이 래딕스(Radix) 방식에서는 다수의 네트워크에 대한 주소정보가 프리픽스(prefix)와 프리픽스 길이(prefix length)에 의해 분배되어 하나의 커다란 이진 트리 구조를 이루므로 검색속도를 저하시키는 요인이 된다.1 is a tree structure diagram of a routing table using a conventional radix method. As shown in FIG. 1, in the Radix method, address information of a plurality of networks is distributed by a prefix and a prefix length to form a large binary tree structure, thereby reducing search speed. It becomes a factor.

즉 프리픽스 길이값까지의 프리픽스를 가지고 각 노드의 프리픽스를 비트단위로 비교하여 검색하기 때문에 항상 루트를 경유해야 한다. 따라서 비트단위의 비교횟수가 많으며, 비트단위로 비교하기 위한 추가 연산작업이 필요하게 된다. 또한 래딕스(radix) 방식에서는 새로운 프리픽스를 갖는 노드의 추가 시, 허수노드를 생성시켜야 하는 경우가 발생하게 된다.In other words, the prefix of the prefix length value is compared and the prefix of each node is searched by bit. As a result, the number of bit-by-bit comparisons is high, and additional computation is required to compare bit by bit. In addition, in the radix method, when a node having a new prefix is added, a imaginary node needs to be created.

예를 들어, 추가하려는 노드의 프리픽스 중 이미 존재하는 노드의 프리픽스 길이보다 하나 큰(prefix length+1) 값의 위치의 비트가 기수 값이 되어 0일 때는 좌측, 1일 때는 우측으로 분배된다. 도1에서 프리픽스 값이 127.182.113.10이며 프리픽스 길이가 32인 노드 A(110)가 존재하지 않는다고 가정 할 때, 이 노드를 추가 시키는 과정은 다음과 같다.For example, a bit of a position having a prefix length + 1 greater than the prefix length of an existing node among the prefixes of the node to be added becomes an odd value and is distributed to the left when 0 and to the right when 1. In FIG. 1, assuming that a node A 110 having a prefix value of 127.182.113.10 and a prefix length of 32 does not exist, a process of adding this node is as follows.

루트 노드(101)의 프리픽스 길이 값은 0이므로 A(110)의 프리픽스 첫번째 비트에 의해 좌측노드(102)로 이동하게 된다. 좌측 노드(102)의 프리픽스 길이는 8이므로 8비트 즉 1바이트를 A(110)와 비교한다. 1바이트가 127로 같으므로 A(110)의 9번째 비트 값이 1이므로 우측 노드(103)로 이동하게 된다. 우측 노드(103)의 프리픽스 길이가 24이므로 3바이트를 A(110)와 비교한다. 3바이트가 127,182,113으로 같으므로 A(110)의 25번째 비트 값이 0이므로 좌측노드로 이동하게 되나 좌측노드가 존재하지 않으므로 이 위치에 추가하게 된다.Since the prefix length value of the root node 101 is 0, it moves to the left node 102 by the prefix first bit of the A 110. Since the prefix length of the left node 102 is 8, 8 bits, or 1 byte, are compared with the A 110. Since one byte is equal to 127, the ninth bit value of the A 110 is 1, and therefore, it moves to the right node 103. Since the prefix length of the right node 103 is 24, 3 bytes are compared with A110. Since the three bytes are equal to 127,182,113, the 25th bit value of A110 is 0, so it moves to the left node, but since the left node does not exist, it is added to this position.

그러나 이미 위와 같이 구성된 라우팅 테이블에 다시 프리픽스와 프리픽스 길이가 127.182.133.2/32인 B를 또 다시 추가하게 되면 A의 위치와 충돌하게 된다. 따라서 A와 B의 마지막 같은 비트 값을 갖는 위치까지를 프리픽스 길이로 하는 허수의 부모노드를 생성하여 추가시킨 다음 A와 B를 좌측, 우측으로 재배치 시켜야 한다. 즉 프리픽스와 프리픽스 길이가 127.182.133.0/27인 C노드를 생성하여 A와 B의 부모노드로서 원래 A의 위치에 위치시켜야 한다. 이렇게 되면 도 2에서 보는 것과 같은 구조를 허수노드도 가지게 되므로 메모리의 낭비를 초래한다. 또한 기존의 래딕스(radix) 방식은 이진 트리가 가지는 불균형성(unbalancing) 문제를 가지고 있어 노드비교 횟수와 검색시간의 증가를 가져온다.However, if B is added again with the prefix and prefix length 127.182.133.2/32 to the routing table configured as above, it will collide with the position of A. Therefore, we need to create an imaginary parent node with prefix lengths up to the last bit position of A and B, and then reposition A and B to the left and right. In other words, a C node having a prefix and a prefix length of 127.182.133.0/27 should be created and positioned at the original A position as the parent node of A and B. In this case, since the imaginary node also has a structure as shown in FIG. 2, it causes a waste of memory. In addition, the existing radix method has an unbalancing problem of binary trees, resulting in an increase in node comparison times and search time.

따라서 라우팅 테이블을 구성하기 위한 자료구조에 있어, 래딕스(radix) 방식의 이진 트리로 구성됨에 따라 생기는 문제점을 해결하고 높이균형이진트리(AVL) 가 가지는 오버헤드 문제를 해결하기 위한 대체 알고리즘 모색이 필요하다.Therefore, in the data structure to construct the routing table, it is necessary to find an alternative algorithm to solve the problems caused by the Radix-type binary tree and the overhead problem of the height-balanced binary tree (AVL). need.

상기한 문제를 해결하기 위해 본 발명에서는 라우터가 관리하는 라우팅 테이블 구성을 위한 자료구조를 보다 효율적으로 관리하기 위해 클래스 분할 기법을 제시하고, 클래스 분할 기법을 사용하기 위한 자료구조를 제공하며, 클래스 분할 기법을 이용하여 구성된 라우팅 테이블을 검색하는 방법과 장치를 제공하는 것을 목적으로 한다.In order to solve the above problems, the present invention proposes a class partitioning scheme to more efficiently manage a data structure for routing table configuration managed by a router, provides a data structure for using a class partitioning scheme, and classifies a partition. It is an object of the present invention to provide a method and apparatus for searching a configured routing table using a scheme.

도 1은 종래의 래딕스(radix)방식을 이용한 라우팅 테이블의 트리구조 도면.1 is a tree structure diagram of a routing table using a conventional radix method.

도 2는 종래의 래딕스(radix)방식을 이용한 라우팅 테이블의 노드구조 도면.2 is a diagram illustrating a node structure of a routing table using a conventional radix method.

도 3은 종래의 래딕스(radix)방식을 이용한 라우팅 테이블의 노드에서 프리픽스(prefix)부분을 표현한 구조 도면.3 is a structural diagram showing a prefix portion of a node of a routing table using a conventional radix method;

도 4는 본 발명의 클래스 분할 방식의 클래스별 디렉터리 구조 도면.4 is a diagram of a directory structure for each class of the class division method of the present invention.

도 5는 본 발명의 클래스 분할 방식에서의 라우팅 테이블의 트리 구조 도면.5 is a tree structure diagram of a routing table in the class division scheme of the present invention.

도 6은 본 발명의 클래스 분할 방식에서의 라우팅 테이블의 인덱스노드 구조도면.6 is a diagram illustrating an index node structure of a routing table in the class partitioning method of the present invention.

도 7은 본 발명의 라우팅 테이블의 검색방법 흐름 도면.7 is a flow chart of a method for searching a routing table of the present invention.

도 8은 본 발명의 라우팅 테이블 검색장치 도면.8 is a diagram of a routing table search apparatus of the present invention.

상기한 목적을 이루기 위하여 본 발명에서는, 복수의 네트워크 주소정보를 그 유효길이정보에 따라서 클래스별로 구분하고 각각의 클래스는, 상기 네트워크 주소정보를 바이트 단위로 분할하여 순차적으로 저장하고 있는 인덱스 노드로 이루어진 인덱스 트리; 및 상기 네트워크 주소정보를 저장하고 있는 데이터 노드로 이루어진 데이터 트리를 구비하는 것을 특징으로 하는 라우팅 테이블 자료구조를 제공한다.In order to achieve the above object, in the present invention, a plurality of network address information is divided into classes according to the effective length information, and each class is composed of an index node that divides the network address information into byte units and stores them sequentially. Index tree; And a data tree comprising a data node storing the network address information.

상기한 목적을 이루기 위하여 본 발명에서는, 복수의 네트워크 주소정보를 그 유효길이정보에 따라서 클래스별로 구분하고, 각각의 클래스는 상기 네트워크주소정보를 바이트 단위로 분할하여 순차적으로 저장하고 있는 인덱스 노드로 이루어진 인덱스 트리와 상기 목적지 네트워크 주소정보를 저장하고 있는 데이터 노드로 이루어진 데이터 트리로 구성된 데이터베이스에 상기 네트워크 주소에 대한 정보를 미리 저장하는 단계; 검색하고자 하는 특정 네트워크 주소 정보와 특정 네트워크 주소의 유효검색 비트수를 나타내는 유효길이 정보를 입력받는 단계; 상기 단계에서의 유효길이 정보에 따라 특정 네트워크 주소의 클래스를 결정하는 단계; 상기 단계에서 결정된 클래스에 해당하는 인덱스 노드값을 데이터베이스로부터 읽어 검색하고자 하는 특정 목적지 네트워크 주소 정보값의 상위 1 바이트와 비교하여 일치여부를 판단하는 단계; 상기 단계에서 일치여부를 판단한 결과 일치하면 일치하는 경우에 대한 인덱스 노드값을 읽고 일치하지 않으면 일치하지 않는 경우에 대한 인덱스 노드값을 읽어 검색하고자 하는 특정 목적지 네트워크 주소정보값의 다음 1바이트와 비교하는 단계; 및 상기 단계에서 인덱스 노드값이 존재하지 않고, 특정 목적지 네트워크에 해당되는 데이터의 링크값이 존재하는 경우, 그 값에 해당되는 외부 인터페이스 경로값을 출력하는 단계를 포함하는 라우팅 테이블 검색방법을 제공한다.In order to achieve the above object, in the present invention, a plurality of network address information is divided into classes according to its effective length information, and each class is composed of an index node that sequentially stores the network address information by dividing it into byte units. Storing information about the network address in advance in a database consisting of a data tree consisting of an index tree and a data node storing the destination network address information; Receiving specific network address information to be searched and valid length information indicating the number of valid search bits of the specific network address; Determining a class of a specific network address according to the effective length information in the step; Reading the index node value corresponding to the class determined in the above step from the database and comparing the index node value with the upper 1 byte of the specific destination network address information value to be searched to determine whether there is a match; As a result of determining whether there is a match in the above step, the index node value for the case of matching is read if the match is found, and the index node value for the case of not matching is read, and compared with the next byte of the specific destination network address information value to be searched step; And outputting an external interface path value corresponding to the index node value when the index node value does not exist and the link value of the data corresponding to the specific destination network exists. .

상기한 목적을 이루기 위하여 본 발명에서는, 복수의 네트워크 주소정보를 그 유효길이정보에 따라서 클래스별로 구분하고, 각각의 클래스는 상기 네트워크 주소정보를 바이트 단위로 분할하여 순차적으로 저장하고 있는 인덱스 노드로 이루어진 인덱스 트리와 목적지 네트워크 주소정보를 저장하고 있는 데이터 노드로 이루어진 데이터 트리로 구성된 라우팅 테이블 저장부;. 검색하고자 하는 특정 네트워크 주소 정보와 특정 네트워크 주소의 검색시 유효한 비트수를 나타내는 유효길이 정보를 입력받는 입력부; 상기 입력부에서의 유효길이 정보에 따라 특정 네트워크 주소의 클래스를 결정하는 클래스 결정부; 상기 클래스 결정부에서 결정된 클래스에 해당하는 인덱스 노드값을 상기 라우팅테이블 저장부로부터 읽어 검색하고자 하는 특정 목적지 네트워크 주소 정보값의 상위 1 바이트와 비교하여 일치여부를 판단하여 다음 읽을 인덱스 노드값을 결정하는 링크결정부; 및 상기 링크결정부에서 인덱스 노드값이 존재하지 않고, 특정 목적지 네트워크에 해당되는 데이터값만 존재하는 경우, 그 값에 해당되는 외부 인터페이스 경로값을 출력하고, 그렇지 않은 경우, 상기 라우팅 테이블 저장부로부터 다음 인덱스 노드값을 읽어 일치여부를 판단하는 경로값 출력부를 포함하는 라우팅 테이블 검색장치를 제공한다.In order to achieve the above object, in the present invention, a plurality of network address information is divided into classes according to the effective length information, and each class is composed of an index node that sequentially stores the network address information by dividing it into byte units. A routing table storage configured of a data tree comprising an index tree and a data node storing destination network address information; An input unit for receiving specific network address information to be searched and valid length information indicating a valid number of bits when searching for a specific network address; A class determination unit that determines a class of a specific network address according to the effective length information of the input unit; The index node value corresponding to the class determined by the class determining unit is read from the routing table storage unit and compared with the upper 1 byte of a specific destination network address information value to be searched to determine whether to match and determine the next index node value to be read. A link determination unit; And if there is no index node value in the link determination unit and only data values corresponding to a specific destination network exist, outputting an external interface path value corresponding to the value; otherwise, from the routing table storage unit. A routing table retrieval apparatus including a route value output unit configured to read a next index node value and determine a match is provided.

도 2는 종래의 래딕스(radix)방식을 이용한 라우팅 테이블의 노드구조 도면이다.2 is a diagram illustrating a node structure of a routing table using a conventional radix method.

라우트 노드는, 피(p)(210), 테이블(table)(220), 페어런트(parent)(230), 링크 어레이[2](link[2])(240), 록(lock)(250), 인포(info)(260), 애그리게이트(aggregate)(270)로 구성된다.The route node may include a p 210, a table 220, a parent 230, a link array [2] 240, and a lock 250. , Info 260, and aggregate 270.

최상위 필드 부분 피(p)(210)는 프리픽스 구조체이며, 그 구조체는 패밀리(family)(211), 사피(safi)(212), 프리픽스 길이(prefix length)(213), 패딩(padding)(214)으로 구성된다.The top field portion p 210 is a prefix structure, which is a family 211, a safi 212, a prefix length 213, and a padding 214. It is composed of

두 번째 부분인 테이블(table)(220)은 라우팅 테이블 구조체의 포인트로 선언되어, 테이블의 위치를 가리킨다. 세 번째 부분인 페어런트(parent)(230)는 자신의 상위 노드의 포인트를 가진다. 즉 현재노드의 부모 노드의 주소를 나타내는 것이다. 네 번째 부분인 링크 어레이[2](link[2])(240)는 두 개의 하위 노드 링크 포인트를 가지는데, 링크 어레이[0](link[0])은 왼쪽에 있는 자식 노드를 가리키고, 링크 어레이[1](link[1])은 오른쪽의 자식 노드를 가리킨다. 다섯번째 부분은 록(lock)(250)으로써 테이블을 검색하여 찾고자 하는 대상 노드를 찾았을 경우 그 노드의 록(lock)을 증가시키며, 록(lock)값이 0이 되면, 현재 해당되는 그 노드를 삭제시키는데 사용되는 일종의 인덱스이다. 여섯번째 부분 인포(info)(260)는 패킷을 전송하는 대에 관한 정보를 가지고 있는 주소의 포인트를 가진다. 마지막 부분 애그리게이트(aggregate)(270)는 라우트 테이블 노드의 애그리게이트(aggregate)의 포인트 주소를 가진다. 여기서 애그리게이트(aggregate)는 아이피(IP, Internet Protocol) 주소/IP 네트워크 마스크(network mask) 의 쌍(pair)에 의해 정해지는 범위이다. 예를 들면, 255.255.0.0의 네트워크 마스크(network mask)가 있는 X.X.X.X의 클래스B(Class B)의 주소 범위는 X.X.0.0에서 X.X.255.255까지 모든 IP주소를 포함한다.The second part, table 220, is declared as a point in the routing table structure, indicating the location of the table. The third part, parent 230, has its parent node's point. That is, it represents the address of the parent node of the current node. The fourth part, link array [2] (240), has two subnode link points, link array [0] (link [0]) points to the child node on the left, and link Array [1] (link [1]) points to the child node on the right. The fifth part is the lock 250, which searches the table and finds the target node to find. It increases the lock of the node. If the lock value is 0, the node that is currently applicable An index used to delete a. The sixth partial info 260 has a point of address that contains information about when the packet is being sent. The last partial aggregate 270 has the point address of the aggregate of the route table node. In this case, the aggregate is a range determined by a pair of IP (Internet Protocol) addresses / IP network masks. For example, the address range of Class B of X.X.X.X with a network mask of 255.255.0.0 includes all IP addresses from X.X.0.0 to X.X.255.255.

프리픽스의 구조의 패밀리(family)(211)부분은 프리픽스가 아이피 버전4(IPv4)인지, 아이피 버전6(IPv6)인지를 구별하는 것으로 에이에프_아이넷(AF_INET), 에이에프_아이넷6(AF_INET6), 에이에프_언스펙(AF_UNSPEC)의 값을 가지며, 에이에프_아이넷(AF_INET)일 때는 IPv4, 에이에프_아이넷6(AF_INET6) 이면 IPv6, 에이에프_언스펙(AF_UNSPEC)일 경우엔 규격(Specification)에 정의 되어 있지 않다는 것을 뜻한다.The family (211) part of the structure of the prefix distinguishes whether the prefix is IP version 4 (IPv4) or IP version 6 (IPv6). AF_INET, AF_INET6, and AF It has a value of AF_UNSPEC, IPv4 for AF_INET, IPv6 for AF_INET6, and IPv6 for AF_INET6, and it is not defined in the specification. It means.

두 번째 부분인 사피(SAFI, Subsequent Address Family Identifier)(212)는 유니캐스트(unicast)나 멀티캐스트(muticast) 또는 유니캐스트(unicast), 멀티캐스트(multicast) 둘 다 지원하는지에 대한 정보를 가지고 있다. 세 번째 부분인 프리픽스길이(213)부분은 유효한 프리픽스 길이를 나타내는 것이다. 네 번째 부분은 패딩(padding)(214)으로써 일정한 크기로 패킷을 맞춰주기 위하여 사용된다. 프리픽스의 마지막 부분은 유니언(union)으로 선언되어 있는 유(u)(215) 로, 패밀리(family)의 값에 따라 다른 값을 가지게 된다.The second part, the Subsequent Address Family Identifier (SAFI) 212, contains information about whether unicast, multicast, unicast, or multicast are supported. . The third part, the prefix length 213 part, indicates a valid prefix length. The fourth part is padding 214, which is used to fit the packet to a certain size. The last part of the prefix is u (215), which is declared as a union, and will have different values depending on the value of the family.

도 3은 종래의 래딕스(radix)방식을 이용한 라우팅 테이블의 노드에서 프리픽스(prefix)부분을 표현한 구조 도면이다. 즉, 도 2에서 프리픽스(prefix) 부분을 다시 자료구조의 형태로 표현한 것이다.3 is a structural diagram showing a prefix portion in a node of a routing table using a conventional radix method. That is, the prefix part of FIG. 2 is expressed again in the form of a data structure.

도 4는 본 발명의 클래스 분할 방식의 클래스별 디렉터리 구조 도면이다. 도 4에서 보는 바와 같이 본 발명의 클래스 분할 자료구조 방식에서는 각 클래스별 디렉터리는 각각 클래스에 할당된 트리를 가리키는 지시자를 인자로 가지고 있고, 수정된 선형 해쉬 알고리듬(MLH)처럼 확장되는 것이 아니며 4개의 클래스 A, B, C, D로 고정되어 있다.4 is a diagram illustrating a directory structure for each class of the class division method of the present invention. As shown in FIG. 4, in the class partitioning data structure method of the present invention, each class directory has an indicator indicating a tree allocated to each class as an argument, and does not extend like the modified linear hash algorithm (MLH). It is fixed in classes A, B, C, and D.

도 4에서 보면, A클래스는 데이터 트리(410)를 가지며, 나머지 클래스들은 인덱스 트리(420)를 가진다. 이처럼 각 클래스에 해당하는 트리는 크게 두 가지로 형태로 구분되어 진다. 첫번째는 인덱스 트리(410)이며, 두 번째는 데이터 트리(420)이다.In FIG. 4, class A has a data tree 410, and the remaining classes have an index tree 420. Like this, the tree corresponding to each class is divided into two types. The first is index tree 410 and the second is data tree 420.

즉, 클래스 분할 알고리즘에서 노드는 데이터 노드와 인덱스 노드로 구분되고 인덱스 노드로 구성되어진 트리가 인덱스 트리이다. 이 인덱스 트리는 실제 데이터가 들어 있는 데이터 트리를 가리키는 지시자를 가지고 있다. 또한 인덱스 트리나 데이터 트리는 높이균형이진트리(AVL)로 구성되어 트리의 균형을 유지한다.That is, in the class partitioning algorithm, nodes are divided into data nodes and index nodes, and a tree composed of index nodes is an index tree. This index tree has an indicator that points to the data tree that contains the actual data. In addition, the index tree or data tree is composed of a height balanced binary tree (AVL) to balance the tree.

높이균형이진트리(AVL) 알고리듬은 서브트리의 높이를 1 이하의 값으로 유지하는 이진트리로 구성하여 검색하는 방식으로 좌우 서브트리의 높이가 거의 같아져 트리 전체의 높이가 낮기 때문에 이진검색트리로 구성한 것보다 비교횟수가 줄어들어 검색시간이 빠르다는 장점을 가지고 있다.The height balanced binary tree (AVL) algorithm consists of a binary tree that maintains the height of the subtree at a value less than or equal to 1, and the height of the left and right subtrees is almost the same. Compared with the configuration, the number of comparisons is reduced, so the search time is faster.

도 5는 본 발명의 클래스 분할 방식에서의 라우팅 테이블의 트리 구조 도면이다. 도 5에서 라우팅 테이블에서 프리픽스와 프리픽스 길이가 127.182.113.0/24(534)를 찾고자 하는 경우를 설명한다.5 is a tree structure diagram of a routing table in the class partitioning method of the present invention. In FIG. 5, a case in which the prefix and the prefix length are to find 127.182.113.0/24 (534) in the routing table will be described.

프리픽스가 127.182.113.0 이고 프리픽스 길이, 즉 유효길이 정보가 24이므로 C 클래스라고 판단한다. 따라서 도 5에서 보는 것과 같이 인덱스 노드의 키(key)값이 127인 C 클래스 인덱스 트리(531)로 이동하여 프리픽스의 1바이트 값, 즉 127과 키(key)값을 비교하여 다음 이동할 인덱스 노드를 찾는다.Since the prefix is 127.182.113.0 and the prefix length, that is, the effective length information is 24, it is determined that it is a C class. Therefore, as shown in FIG. 5, the index node moves to the C class index tree 531 having a key value of 127, and compares the one-byte value of the prefix, that is, 127 and the key value, to determine the index node to be moved next. Find.

127.182.113.0/24의 1바이트 값은 127이므로 127을 키(key)값으로 가지는 인덱스노드와 그 값을 비교하면 일치하므로 좌측 인덱스 노드(532)로 이동하여 킷값으로 저장되어 있는 82를 네트워크 주소정보의 다음 1바이트, 즉 182와 비교한다.Since the one-byte value of 127.182.113.0/24 is 127, the index node having 127 as the key value is compared with the value. Therefore, it moves to the left index node 532 and replaces 82 stored as a kit value with network address information. Is compared to the next one byte of, i.e., 182.

82와 182는 일치하지 않으므로 오른쪽 인덱스 노드(533)으로 이동하여 비교하면 네트워크 주소정보 182와 인덱스 노드(533) 키 값이 182로 일치하므로 이 노드가 가리키는 데이터 트리에서 127.182.113.0/24인 데이터 노드(534)를 찾을 수있게 된다.82 and 182 do not match, so go to the right index node 533 and compare it, so the network address information 182 and index node 533 key value matches 182, so the data node pointed to by this node is 127.182.113.0/24 in the data tree. (534) can be found.

도 6은 본 발명의 클래스 분할 방식에서의 라우팅 테이블의 인덱스노드 구조도면이다. 데이터 노드는 기존의 구조 방식을 그대로 따르며 인덱스 노드는 키(key)(610), 좌측 링크(left link)(620), 우측링크(right link)(630), 균형값(balance value)(640), 데이터 링크(data link)(650)의 5바이트(byte)의 크기를 가지게 된다.6 is a diagram of an index node structure of a routing table in the class partitioning method of the present invention. The data node follows the conventional structure, and the index node has a key 610, a left link 620, a right link 630, and a balance value 640. In this case, the data link has a size of 5 bytes of the data link 650.

인덱스 노드는 데이터 링크(data link)를 이용하여 라우팅 경로에 관련된 정보를 가지고 있는 데이터 노드를 가리키며, 해당 클래스의 네트워크 주소 정보를 바이트 단위로 분할한 프리픽스값을 키(key)값으로 가진다An index node refers to a data node having information related to a routing path using a data link, and has a prefix value obtained by dividing the network address information of the corresponding class by byte as a key value.

본 발명에서는 루트노드를 디렉터리 형식으로 하여 4개의 클래스의 링크를 유지하며 검색할 프리픽스 길이값에 따라 클래스를 결정하고 클래스의 루트노드로 이동한다. 이동한 클래스가 A클래스일 경우 데이터 노드를 바이트 단위로 비교 검색하여 프리픽스와 프리픽스 길이가 같은 노드를 찾으며, B, C 혹은 D일 경우는 인덱스 노드를 바이트 단위로 비교 순회하여 데이터 노드로 이동한다.In the present invention, the root node is in the form of a directory, and the link of the four classes is maintained and the class is determined according to the prefix length value to be searched and moved to the root node of the class. If the moved class is class A, data nodes are compared and searched in byte units to find nodes having the same prefix and prefix length. In the case of B, C, or D, index nodes are compared in byte units and moved to the data nodes.

도 7은 본 발명의 라우팅 테이블의 검색방법 흐름 도면이다. 이 흐름도를 설명하면 다음과 같다. 네트워크 주소와 유효길이정보로 이루어진 프리픽스(prefix) 정보를 입력받는다(710). 네트워크 주소는 32 비트로 구성되어 있고, 이 32 비트의 주소가 프리픽스 정보이고, 이중에서 검색시 유효한 비트수를 나타내는 것이 유효길이 정보이다.7 is a flowchart illustrating a search method of a routing table according to the present invention. This flowchart is described as follows. A prefix information consisting of a network address and valid length information is received (710). The network address is composed of 32 bits, and the 32-bit address is prefix information, and the valid length information indicates the number of bits valid when searching.

검색하고자 하는 프리픽스의 길이를 보고 클래스를 판단한다(720). 프리픽스길이 정보, 즉 유효길이 정보가 8 인 경우 클래스 A, 16 인 경우 클래스 B, 24 인 경우 클래스 C, 32 인 경우 클래스 D 라고 판단한다.The class is determined based on the length of the prefix to be searched (720). Prefix length information, that is, valid length information is class A for 8, class B for 16, class C for 24, and class D for 32.

클래스에 해당하는 인덱스 트리로 이동한다. 그리고, 클래스에 해당하는 제 1 데이터를 입력받는다(730). 즉 클래스에 해당하는 첫 번째 키(key) 정보값을 입력받는다. 이 키(key) 정보는 네트워크 주소의 최상위 1 바이트가 된다. 즉, 129.254.113.0 네트워크인 경우 그 값은 129 가 된다.Navigate to the index tree for the class. In operation 730, first data corresponding to a class is received. That is, the first key information value corresponding to the class is received. This key information becomes the most significant 1 byte of the network address. That is, in the case of 129.254.113.0 network, the value is 129.

입력받은 제 1 데이터와 네트워크주소의 1바이트를 비교한다(740). 이렇게 비교하는 것은 클래스의 인덱스 노드를 선택하여 다음 읽어들일 키 값을 결정하기 위함이다. 만일 비교하여 그 값이 일치하면 인덱스 트리의 우측으로, 일치하지 않으면 인덱스 트리의 좌측으로 이동하도록 한다.The input first data is compared with one byte of the network address (740). The comparison is to select the index node of the class to determine the next key value to read. If it compares, the value moves to the right side of the index tree, and if it does not match, it moves to the left side of the index tree.

다음 노드로 이동하여 키값을 읽고 프리픽스의 다음 1 바이트값을 읽어들인다(750). 즉, 네트워크 주소의 상위 8 비트가 일치하면 다음 하위 8 비트를 비교하는 것이다.It moves to the next node, reads the key value, and reads the next 1 byte value of the prefix (750). That is, if the upper 8 bits of the network address match, the next lower 8 bits are compared.

최종 목적지 주소경로의 데이터 노드를 찾았는지 판단한다(760). 만일 최종 목적지 경로 주소의 데이터 노드가 찾아졌으면 그에 해당하는 외부 인터페이스 경로값을 출력하고(770), 그렇지 않으면 다음 인덱스 노드의 키값을 읽어 판단과정을 다시 수행한다.It is determined whether a data node of the final destination address path is found (760). If the data node of the final destination path address is found, the corresponding external interface path value is output (770), otherwise, the key value of the next index node is read and the process is performed again.

도 8은 상기의 방법을 수행하기 위한 라우팅 테이블 검색장치 도면이다. 라우팅 테이블 검색장치는 주소정보입력부(810), 클래스결정부(820), 라우팅테이블 저장부(830), 링크결정부(840), 및 경로값출력부(850)로 구성된다.8 is a diagram of a routing table search apparatus for performing the above method. The routing table retrieval apparatus includes an address information input unit 810, a class determination unit 820, a routing table storage unit 830, a link determination unit 840, and a path value output unit 850.

주소정보입력부(810)는 검색하고자 하는 네트워크 주소정보, 즉 프리픽스(prefix)와 유효길이정보(prefix length)를 입력받는 기능을 한다. 클래스 결정부(820)는 입력받는 유효길이정보를 보고 클래스를 판단하는 기능을 한다. 즉 유효길이정보값이 8 이면 클래스 A, 16 이면 클래스 B, 24 이면 클래스 C, 32 이면 클래스 D로 결정한다. 라우팅 테이블 저장부(830)는 여러 네트워크에 대한 라우팅 테이블 정보를 저장하고 있다. 라우팅 테이블 저장부(830)는 클래스 분할 기법을 사용하여 각 클래스별 디렉터리는 각각 클래스에 할당된 트리를 가리키는 지시자를 인자로 가지고 있고, 수정된 선형 해쉬 알고리듬(MLH)처럼 확장되는 것이 아니며 4개의 클래스 A, B, C, D로 고정되어 있다.The address information input unit 810 receives network address information to be searched, that is, a prefix and a prefix length. The class determining unit 820 determines a class based on the received valid length information. That is, if the effective length information value is 8, it is determined as class A, if 16, class B, if 24, class C, and if 32, class D. The routing table storage unit 830 stores routing table information for various networks. The routing table storage unit 830 uses a class partitioning scheme, and each class directory has an indicator indicating a tree allocated to each class as an argument, and is not extended like the modified linear hash algorithm (MLH) and is divided into four classes. It is fixed to A, B, C, and D.

링크결정부(840)는 클래스결정부(820)에서 판단한 클래스에 해당하는 프리픽스(prefix)의 키(key) 값을 읽어 그 값을 네트워크 주소의 1바이트를 비교하여 일치하는가의 여부에 따라 다음 읽어들일 노드의 키(key) 값을 결정하는 기능을 한다. 경로값출력부(850)는 링크결정부(840)에서 결정한 링크에 데이터가 존재하지 않고 최종 목적지 네트워크 정보만 가지고 있는 경우, 해당 목적지 네트워크에 대한 외부 인터페이스 경로를 출력하고, 링크값이 존재하는 경우 그 링크로 이동하여 다음 링크를 결정하는 것을 다시 수행하도록 하는 기능을 한다.The link determination unit 840 reads the key value of the prefix corresponding to the class determined by the class determination unit 820, and then reads the value according to whether or not the value is matched by comparing 1 byte of the network address. It determines the key value of the node to enter. The path value output unit 850 outputs an external interface path to the corresponding destination network when there is no data on the link determined by the link determination unit 840 and has only the final destination network information, and the link value exists. It moves to that link and performs the function of determining the next link again.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 테이블의 자료구조들은 컴퓨터로 읽을 수 있는 기록매체에 저장된 형태로 구현할 수 있다. 상기 컴퓨터로읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. In addition, the data structures of the table may be implemented in a form stored in a computer-readable recording medium. The computer-readable recording medium may be a magnetic storage medium (for example, ROM, floppy disk, hard disk, etc.), an optical reading medium (for example, CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.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.

상술한 바와 같이 본 발명은, 라우팅 프로토콜의 자료구조를 클래스화 하여 노드 검색 시 불필요한 비교 횟수를 줄임으로서 검색속도를 증가시키는데 그 효과가 있다. 프리픽스 길이에 따라 프리픽스를 4개의 레벨로 나눈 디렉터리 구조를 갖게 하고 라우팅 테이블의 접근 방식을 클래스별로 나눔으로써, 노드 검색 시 비교 횟수를 줄여 빠른 검색이 가능하다. 그리고 라우팅 테이블의 노드구조를 데이터 노드와 인덱스 노드로 분리하여 구성함으로써, 허수노드에서 오는 메모리 낭비를 줄일 수 있다.As described above, the present invention has an effect of increasing the search speed by classifying the data structure of the routing protocol to reduce the number of unnecessary comparisons when searching for nodes. By having the directory structure divided into four levels according to the prefix length and dividing the approach of the routing table by class, it is possible to search faster by reducing the number of comparisons when searching for nodes. In addition, the node structure of the routing table is divided into data nodes and index nodes to reduce memory waste from imaginary nodes.

또한 라우팅 프로토콜 자료구조의 클래스화와 노드 구조의 데이터 노드, 인덱스 노드 분리를 통하여 바이트 단위의 비교, 검색이 가능하므로 검색속도를 높일수 있다. 이 때, 인덱스 트리와 데이터 트리를 높이균형이진트리(AVL) 트리로 구성하여 트리의 균형을 유지함으로써 노드의 비교횟수를 줄임과 동시에 평균검색시간과 최대검색시간의 감소 효과가 있다. 본 발명에서 제시하는 라우팅 테이블의 자료구조, 방법 및 장치를 이용함으로써, 경로 선택의 신속성과 메모리의 낭비를 줄일 수 있다.In addition, through the classification of routing protocol data structure, separation of data structure of node structure, and index node, comparison and search by byte unit are possible, so that the search speed can be increased. At this time, the index tree and the data tree are composed of a height balanced binary tree (AVL) tree to maintain the balance of the tree, reducing the number of comparisons of nodes and reducing the average search time and the maximum search time. By using the data structure, method, and apparatus of the routing table proposed in the present invention, it is possible to reduce the speed of path selection and the waste of memory.

Claims (4)

복수의 네트워크 주소정보를 그 유효길이정보에 따라서 클래스별로 구분하고 각각의 클래스는,A plurality of network address information is divided into classes according to the effective length information, and each class is 상기 네트워크 주소정보를 바이트 단위로 분할하여 순차적으로 저장하고 있는 인덱스 노드로 이루어진 인덱스 트리; 및An index tree composed of index nodes which divide the network address information into byte units and sequentially store the network address information; And 상기 네트워크 주소정보를 저장하고 있는 데이터 노드로 이루어진 데이터 트리를 구비하는 것을 특징으로 하는 라우팅 테이블.And a data tree consisting of data nodes storing said network address information. 제1항에 있어서 상기 인덱스 노드는,The method of claim 1, wherein the index node, 클래스의 네트워크 주소의 1바이트 값을 저장하고 있는 키정보값;A key information value that stores a one-byte value of a network address of a class; 좌측 인덱스 트리에 대한 위치정보를 저장하고 있는 좌측링크값;A left link value storing position information on the left index tree; 우측 인덱스 트리에 대한 위치정보를 저장하고 있는 우측링크값;A right link value storing position information on the right index tree; 상기 좌측링크의 트리 구조와 상기 우측링크의 트리 구조가 서로 균형을 이루도록 하는 계수를 저장하고 있는 균형값; 및A balance value storing coefficients for balancing the tree structure of the left link and the tree structure of the right link; And 네트워크 주소정보를 저장하고 있는 데이터 노드에 대한 위치정보를 저장하고 있는 데이터 링크값을 가지는 것을 특징으로 하는 라우팅 테이블.And a data link value storing location information of a data node storing network address information. (a) 복수의 네트워크 주소정보를 그 유효길이정보에 따라서 클래스별로 구분하고, 각각의 클래스는 상기 네트워크 주소정보를 바이트 단위로 분할하여 순차적으로 저장하고 있는 인덱스 노드로 이루어진 인덱스 트리와 상기 목적지 네트워크 주소정보를 저장하고 있는 데이터 노드로 이루어진 데이터 트리로 구성된 데이터베이스에 상기 네트워크 주소에 대한 정보를 미리 저장하는 단계;.(a) A plurality of network address information is divided into classes according to the effective length information, and each class divides the network address information into byte units and stores the index tree and the destination network address sequentially. Storing information about the network address in advance in a database composed of a data tree consisting of data nodes storing information; (b) 검색하고자 하는 특정 네트워크 주소 정보와 특정 네트워크 주소의 유효검색 비트수를 나타내는 유효길이 정보를 입력받아, 상기 유효길이 정보에 따라 특정 네트워크 주소의 클래스를 결정하는 단계;(b) receiving specific network address information to be searched and valid length information indicating the number of valid search bits of the specific network address, and determining a class of a specific network address according to the valid length information; (c) 상기 (b) 단계에서 결정된 클래스에 해당하는 인덱스 노드값을 상기 (a) 단계에서의 데이터베이스로부터 읽어 검색하고자 하는 특정 목적지 네트워크 주소 정보값의 상위 1 바이트와 비교하여 일치여부를 판단하는 단계;(c) comparing the index node value corresponding to the class determined in the step (b) from the database in the step (a) with the upper 1 byte of the specific destination network address information value to be searched and determining whether there is a match; ; (d) 상기 (c) 단계에서 일치여부를 판단한 결과 일치하면 일치하는 경우에 대한 인덱스 노드값을 읽고 일치하지 않으면 일치하지 않는 경우에 대한 인덱스 노드값을 읽어 검색하고자 하는 특정 목적지 네트워크 주소정보값의 다음 1바이트와 비교하는 단계; 및(d) As a result of the determination in the step (c), if the match is found, the index node value for the matching case is read, and if it does not match, the index node value for the case of mismatching is read. Comparing with the next 1 byte; And (e) 상기 (d) 단계에서 인덱스 노드값이 존재하지 않고, 특정 목적지 네트워크에 해당되는 데이터의 링크값이 존재하는 경우, 그 값에 해당되는 외부 인터페이스 경로값을 출력하는 단계를 포함하는 라우팅 테이블 검색 방법.(e) if the index node value does not exist in step (d) and a link value of data corresponding to a specific destination network exists, outputting an external interface path value corresponding to the value; Search method. 복수의 네트워크 주소정보를 그 유효길이정보에 따라서 클래스별로 구분하고, 각각의 클래스는 상기 네트워크 주소정보를 바이트 단위로 분할하여 순차적으로 저장하고 있는 인덱스 노드로 이루어진 인덱스 트리와 목적지 네트워크 주소정보를 저장하고 있는 데이터 노드로 이루어진 데이터 트리로 구성된 라우팅 테이블 저장부;.A plurality of network address information is divided into classes according to their effective length information, and each class stores an index tree consisting of index nodes storing the network address information in byte units and storing the destination network address information sequentially. Routing table storage consisting of a data tree consisting of a data node; 검색하고자 하는 특정 네트워크 주소 정보와 특정 네트워크 주소의 검색시 유효한 비트수를 나타내는 유효길이 정보를 입력받아, 상기 유효길이 정보에 따라 특정 네트워크 주소의 클래스를 결정하는 클래스 결정부;A class determination unit which receives specific network address information to be searched and valid length information indicating a valid number of bits when searching for a specific network address, and determines a class of a specific network address according to the valid length information; 상기 클래스 결정부에서 결정된 클래스에 해당하는 인덱스 노드값을 상기 라우팅테이블 저장부로부터 읽어 검색하고자 하는 특정 목적지 네트워크 주소 정보값의 상위 1 바이트와 비교하여 일치여부를 판단하여 다음 읽을 인덱스 노드값을 결정하는 링크결정부; 및The index node value corresponding to the class determined by the class determining unit is read from the routing table storage unit and compared with the upper 1 byte of a specific destination network address information value to be searched to determine whether to match and determine the next index node value to be read. A link determination unit; And 상기 링크결정부에서 인덱스 노드값이 존재하지 않고, 특정 목적지 네트워크에 해당되는 데이터값만 존재하는 경우, 그 값에 해당되는 외부 인터페이스 경로값을 출력하고, 그렇지 않은 경우, 상기 라우팅 테이블 저장부로부터 다음 인덱스 노드값을 읽어 일치여부를 판단하는 경로값 출력부를 포함하는 라우팅 테이블 검색 장치.If there is no index node value in the link determination unit and only a data value corresponding to a specific destination network exists, an external interface path value corresponding to the value is output. Routing table search apparatus including a route value output unit for reading the index node value to determine whether a match.
KR10-2002-0014091A 2002-03-15 2002-03-15 Routing table using class segmentation algorithm, searching method and apparatus thereby. KR100420957B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0014091A KR100420957B1 (en) 2002-03-15 2002-03-15 Routing table using class segmentation algorithm, searching method and apparatus thereby.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0014091A KR100420957B1 (en) 2002-03-15 2002-03-15 Routing table using class segmentation algorithm, searching method and apparatus thereby.

Publications (2)

Publication Number Publication Date
KR20030075016A true KR20030075016A (en) 2003-09-22
KR100420957B1 KR100420957B1 (en) 2004-03-02

Family

ID=32224932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0014091A KR100420957B1 (en) 2002-03-15 2002-03-15 Routing table using class segmentation algorithm, searching method and apparatus thereby.

Country Status (1)

Country Link
KR (1) KR100420957B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040103495A (en) * 2003-05-30 2004-12-08 마이크로소프트 코포레이션 Positional access using a b-tree
KR100887104B1 (en) * 2007-06-12 2009-03-04 건국대학교 산학협력단 Apparatus and method for organizing a segment tree for routing ip packet
US7801883B2 (en) 2005-01-19 2010-09-21 Samsung Electronics Co., Ltd. Method and apparatus for improving data processing speed through storage of record information of identity module

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2518894C (en) * 2005-06-23 2014-06-10 Cognos Incorporated Request routing system for and method of request routing
KR102244260B1 (en) * 2015-06-02 2021-04-26 엘에스일렉트릭(주) METHOD OF ROUTING RAPIEnet NETWORK

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040103495A (en) * 2003-05-30 2004-12-08 마이크로소프트 코포레이션 Positional access using a b-tree
US7801883B2 (en) 2005-01-19 2010-09-21 Samsung Electronics Co., Ltd. Method and apparatus for improving data processing speed through storage of record information of identity module
KR100887104B1 (en) * 2007-06-12 2009-03-04 건국대학교 산학협력단 Apparatus and method for organizing a segment tree for routing ip packet

Also Published As

Publication number Publication date
KR100420957B1 (en) 2004-03-02

Similar Documents

Publication Publication Date Title
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
EP2040184B1 (en) Database and database processing methods
EP1623347B1 (en) Comparison tree data structures and lookup operations
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US7089240B2 (en) Longest prefix match lookup using hash function
US6434144B1 (en) Multi-level table lookup
KR100586461B1 (en) Method, Hardware Architecture and Recording Medium for Searching IP Address by Using Pipeline Binary Tree
US7423981B2 (en) Method and apparatus for an incremental update of a longest prefix match lookup table
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US7403494B2 (en) Method for generating nodes in multiway search tree and search method using the same
US20060083247A1 (en) Prefix lookup using address-directed hash tables
US20070115968A1 (en) Default route coding
US10148571B2 (en) Jump on a match optimization for longest prefix match using a binary search tree
JP4995125B2 (en) How to search fixed length data
WO2003069509A2 (en) Efficient ipv4/ipv6 best matching prefix method and apparatus
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US7233579B1 (en) Routing table for forwarding Internet Protocol (IP) packets through a communications network
US20030009474A1 (en) Binary search trees and methods for establishing and operating them
US6925503B2 (en) Method and system for performing a longest prefix match search
KR100420957B1 (en) Routing table using class segmentation algorithm, searching method and apparatus thereby.
CN110995876B (en) Method and device for storing and searching IP
KR20050066903A (en) Packet forwarding apparatus and method for address lookup algorithm with three routing step tables in high speed router system
CN115086221B (en) Message processing method, device, forwarding equipment and storage medium
KR100424244B1 (en) Longest matching prefix lookup
CN115714752A (en) Packet classification method and device, forwarding chip and electronic equipment

Legal Events

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

Payment date: 20090202

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee