JP3494028B2 - Search system - Google Patents

Search system

Info

Publication number
JP3494028B2
JP3494028B2 JP25081098A JP25081098A JP3494028B2 JP 3494028 B2 JP3494028 B2 JP 3494028B2 JP 25081098 A JP25081098 A JP 25081098A JP 25081098 A JP25081098 A JP 25081098A JP 3494028 B2 JP3494028 B2 JP 3494028B2
Authority
JP
Japan
Prior art keywords
node
search
leaf
bits
bit
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP25081098A
Other languages
Japanese (ja)
Other versions
JP2000083056A (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 JP25081098A priority Critical patent/JP3494028B2/en
Publication of JP2000083056A publication Critical patent/JP2000083056A/en
Application granted granted Critical
Publication of JP3494028B2 publication Critical patent/JP3494028B2/en
Anticipated expiration legal-status Critical
Application status is Expired - Fee Related legal-status Critical

Links

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】この発明は、インターネットの中継装置の一つであり、中継するパケットに付けられたInternet Protocol層の宛先アドレス(宛先IPアドレス)を検査し中継先を決定するルータにおいて、その内部の記憶装置に格納された複数の宛先IPアドレスで構成されるルーチングテーブルから、 BACKGROUND OF THE INVENTION [0001] [Technical Field of the Invention The present invention is one of the Internet relay device, the destination address of the Internet Protocol layer attached to the packet to relay (destination IP address) the router to determine the test relay destination, the routing table consisting of a plurality of destination IP address stored in the storage device therein,
中継するパケットに付けられた宛先IPアドレスを検索するために用いられる検索方式に関するものである。 It relates retrieval method used to find the destination IP address attached to the packet to be relayed. 【0002】 【従来の技術】図11は、ルータ内に格納されたルーチングテーブルの内容の例を示す図である。 [0002] FIG. 11 is a diagram showing an example of the contents of the routing table stored in the router. 図に示されるルーチングテーブルの各エントリにおいて、 ・1a、1b、1c等1はエントリの検索キーの一部である宛先ネットワークIPアドレス、 ・2a、2b、2c等2はエントリの検索キーの一部であるネットワークマスク、 ・4a、4b、4c等4はエントリの情報であり、中継先ルータを示す宛先IPアドレスで構成される。 In each entry in the routing table shown in FIG, · 1a, 1b, which is part destination network IP address of the search keys 1c, etc. 1 entry, · 2a, 2b, 2c, etc. 2 Some search key entry network mask, · 4a is, 4b, 4c, etc. 4 is information of an entry, composed of a destination IP address indicating the relay destination router. 宛先ネットワークIPアドレス1とネットワークマスク2の組は、宛先IPアドレスのグループに相当する。 The set of the destination network IP address 1 and network mask 2 corresponds to a group of destination IP addresses. 例えば、 ・宛先ネットワークIPアドレス1b:0x80050 For example, - the destination network IP address 1b: 0x80050
000 ・ネットワークマスク2b:0xFFFF0000の組は、 ・宛先IPアドレス:0x80050000〜0x80 000 network mask 2b: 0xFFFF0000 set is, Destination IP address: 0x80050000~0x80
05FFFFのグループに相当する。 It corresponds to a group of 05FFFF. 各々は、 ・宛先IPアドレス & ネットワークマスク = 宛先ネットワークIPアドレスの関係式で関係付けられる。 Each is associated with a relational expression Destination IP address and Network Mask = destination network IP address. 【0003】ルータは、中継するパケットに付けられた宛先IPアドレス、即ち検索データに対し、ルーチングテーブルの中から、前記関係式が成り立つ宛先ネットワークIPアドレス1とネットワークマスク2の組、即ち検索キーを検索し、成り立つ組がある場合、前記検索キーを持つエントリの中継先ルータを示す宛先IPアドレス4、即ちエントリの情報を用いて宛先ルータへパケットを中継する。 [0003] router, the destination IP address attached to the packet to be relayed, i.e. to search data, from the routing table, the relationship is established destination network IP address 1 and the network mask 2 set, i.e. the search key search, if there is a true combination, relays the packet to the destination router by using the information of the destination IP address 4, i.e. the entry indicating the relay destination router entry with the search key. 【0004】前記検索で、検索データに対し、前記関係式が成り立つ検索キーが複数ある場合、前記複数の検索キーのネットワークマスク2のうち、「1」で示されるビットの数が最も多いネットワークマスク2を持つエントリが求めるエントリとなる。 [0004] In the search, to the search data, when the search key the relationship is established there are a plurality, of network masks 2 of the plurality of search keys, highest network mask number of bits indicated by "1" the entry of entry with two seek. これをロンゲストマッチと呼ぶ。 This is referred to as the longest match. 例えば、検索データを0x80209000とした場合、前記検索データに対し、図11に示すルーチングテーブルの中で前記関係式が成り立つ検索キーは、 ・宛先ネットワークIPアドレス1aとネットワークマスク2aの検索キーと、 ・宛先ネットワークIPアドレス1cとネットワークマスク2cの検索キーと、 ・宛先ネットワークIPアドレス1eとネットワークマスク2eの検索キーであるが、前記検索キーのネットワークマスク2うち、1で示されるビットの数が最も多いネットワークマスク2eを持つエントリが求めるエントリとなる。 For example, when the 0x80209000 search data, the relative search data, the search key that the relationship is established in the routing table shown in FIG. 11, a search key, the destination network IP address 1a and network mask 2a, & and search key of the destination network IP address 1c and network mask 2c, is a search key, the destination network IP address 1e and network mask 2e, among network mask 2 of the search key, the highest number of bits indicated by 1 the entry of entry with a network mask 2e seek. 【0005】ルータのルーチングテーブルに対する従来の検索方式の一つに、「A Tree−Based R [0005] One of the conventional search method for a router routing tables, "A Tree-Based R
outing Table for Berkeley outing Table for Berkeley
Unix」(Technical Report、U Unix "(Technical Report, U
niversity ofCalifornia、 B niversity ofCalifornia, B
erkeley)に示される基数検索法を応用したPa Pa which applies the radix search method shown in erkeley)
tricia Trieと呼ばれる検索方式がある。 There is a search method called tricia Trie. 図12は、前記従来の検索方式にほぼ基づいて、図11に示されるルーチングテーブルに対し構成した検索木を示す図である。 12, the substantially based on the conventional search method is a diagram showing a search tree that is configured for routing table shown in FIG. 11. 【0006】図において、 ・3a、3b、3c等の3は検索木の節であるノード、 ・5a、5b、5c等の5はリーフで、前記エントリの宛先ネットワークIPアドレス1とネットワークマスク2を格納する。 [0006] In view, · 3a, 3b, 3 is a section of the search tree node 3c etc., · 5a, 5b, 5 of 5c such a leaf, the destination network IP address 1 and network mask 2 of the entry Store. ・6は中継するパケットに付けられた宛先IPアドレスである検索データ、 ・7a、7b、7c、等の7は各ノード3に付き、次のノード3を決定するために検索データ6に対し検査するビットを示すビット番号である。 2.6 inspection to search data 6 to determine search data is the destination IP address attached to the packet to be relayed, - 7a, 7b, 7c, 7 are attached to each node 3 etc., the next node 3 a bit number indicating a bit. また、リーフ5は、図11に示されるルーチングテーブルの各エントリの、宛先ネットワークIPアドレス1と、ネットワークマスク2と、中継先ルータを示す宛先IPアドレス4とからなる。 Also, leaf 5, each entry in the routing table shown in FIG. 11, the destination network IP address 1, the network mask 2 and a destination IP address 4 which shows a relay destination router. 但し、図12では、簡単化のため、前記中継先ルータを示す宛先IPアドレス4の記述を省略している。 However, in FIG. 12, for simplicity, it is omitted the description of the destination IP address 4 indicating the relay destination router. 以降の検索木を示す図も同様である。 It shows a subsequent search tree is also the same. 【0007】図12に示される検索木は、宛先ネットワークIPアドレス1のMSB側ビットから順に各ビットを「0」と「1」に場合分けし、「0」を左、「1」を右として、場合分けを節の分岐で表現したものである。 [0007] The search tree shown in Figure 12, and case analysis of each bit from the MSB side bits of the destination network IP address 1 in order to "1" and "0", "0" left, as a right to "1" , it is a representation of the case analysis at the branch of the section.
ノード3は、前記の節に相当し、最大1つのリーフ5および下位に最大2つのノード3を持つ。 Node 3 corresponds to the section, with a maximum of two nodes 3 up to one leaf 5 and lower. ノード3とリーフ5は、次の2つの規則に従って置かれる。 Node 3 and leaves 5 are placed according to the following two rules. ・ルーチングテーブルの宛先ネットワークIPアドレス1で、MSB側の値の等しいものが複数存在する場合、 Routine in grayed table of the destination network IP address 1, if equal the value of the MSB side there are a plurality,
1つ置く。 Place 1. このノード3に付くビット番号7は、前記複数の宛先ネットワークIPアドレス1において、MSB Bit number 7 attaching to the node 3, the plurality of destination network IP address 1, MSB
側から見て最初に異なるビットの番号である。 First is the number of different bit when viewed from the side. ・ルーチングテーブルのエントリに対し、1つ置く。 Routine to the entry of grayed table, put one. このノード3に付くビット番号7は、前記エントリのネットワークマスク2において、MSB側から見て最初に0 Bit number 7 attaching to the node 3 is the network mask 2 of the entry, the first as seen from the MSB side 0
となるビットの番号である。 Is a bit number of which becomes. このノード3は、前記エントリの宛先ネットワークIPアドレス1とネットワークマスク2からなるリーフ5を持つ。 The node 3 has a leaf 5 consisting of the destination network IP address 1 and network mask 2 of the entry. なお、ビット番号7 It should be noted that the bit number 7
は、MSB側から順に0より始まる。 Starts from 0 in order from the MSB side. 【0008】次に、図13のフローチャートを用いて、 [0008] Next, with reference to the flowchart of FIG. 13,
従来のPatricia Trie検索方式による検索の流れを説明する。 The flow of the search by the conventional Patricia Trie search method will be described. フローチャートにおいて、 ・ステップ101で、出発点を頂点のノード3とし、ステップ102に進む。 In the flowchart, in step 101, the starting point and node 3 of vertices, the process proceeds to step 102. ・ステップ102で、前記ノード3に対するリーフ5の有無を検査する。 - in step 102, to check whether the leaf 5 with respect to the node 3. 有の場合、ステップ103に進み、無の場合、ステップ104に進む。 For Yes, the process proceeds to step 103, the case of no, the process proceeds to step 104. ・ステップ103で、前記リーフ5の宛先ネットワークIPアドレス1とエントリのネットワークマスク2の組をスタックに積み、ステップ104に進む。 - in step 103, loading a set of network mask 2 in the destination network IP address 1 and entry of the leaf 5 in stack, processing proceeds to step 104. なお、スタックとは、最後に積んだ情報を最初に取り出すことができる一時的な記憶場所を指す。 It should be noted that the stack and refers to a temporary storage place where you can take out the last laden information first. 【0009】・ステップ104で、検索データ6に対し、前記ノード3のビット番号7で示されるビット値を検査し、「0」であればステップ105に進み、「1」 [0009] - in a step 104, to search data 6, examines the bit value indicated by the bit number 7 of the node 3, the process proceeds to step 105 if it is "0", "1"
であればステップ106に進む。 If the process proceeds to step 106. ・ステップ105で、前記ノード3に対する左の下位のノード3の有無を検査する。 - in step 105, to check whether a node 3 of the lower left with respect to the node 3. 有の場合、ステップ107 In the case of Yes, step 107
に進み、無の場合、ステップ111に進む。 Advances, in the case of no, the process proceeds to step 111. ・ステップ106で、前記ノード3に対する右の下位のノード3の有無を検査する。 - in step 106, to check whether a node 3 of the right lower with respect to the node 3. 有の場合、ステップ108 In the case of Yes, step 108
に進み、無の場合、ステップ111に進む。 Advances, in the case of no, the process proceeds to step 111. ・ステップ107で、前記左の下位のノード3に移動し、ステップ102に再び戻る。 - in step 107, it moves to the lower node 3 of the left, returns to step 102. ・ステップ108で、前記右の下位のノード3に移動し、ステップ102に再び戻る。 - in step 108, it moves to the lower node 3 of the right returns to step 102. 【0010】・ステップ111で、前記スタック内の宛先ネットワークIPアドレス1とエントリのネットワークマスク2の組の有無を検査する。 [0010] - in a step 111, to check whether the set of network mask 2 in the destination network IP address 1 and an entry in the stack. 有の場合、ステップ112に進む。 In the case of Yes, the process proceeds to step 112. 無の場合、ステップ115に進む。 In the case of no, the process proceeds to step 115. ・ステップ112で、前記スタックの最後に積んだ宛先ネットワークIPアドレス1とネットワークマスク2の組を取り出し、ステップ113に進む。 - in step 112, retrieves the last set of the destination network IP address 1 and network mask 2 laden of the stack, the process proceeds to step 113. ・ステップ113で、前記検索データ6と前記ネットワークマスク2をビット毎にAND演算した結果と前記宛先ネットワークIPアドレス1を比較する。 - in step 113, it compares the destination network IP address 1 and a result of the network mask 2 and the search data 6 AND operation for each bit. 両者が等しい場合、ステップ114に進み、両者が異なる場合、再びステップ111に戻る。 If they are equal, the process proceeds to step 114, if they are different, returns to step 111. ・ステップ114に進んだ場合、前記ステップ113で前記検索データ6と比較した宛先ネットワークアドレス1とネットワークマスク2の組が求めるエントリである。 · When step 114 is an entry which the search data 6 destination network address 1 was compared to the network mask 2 set in the step 113 is determined. ・ステップ115に進んだ場合、求めるエントリは、ルーチングテーブルに存在しない。 If the process proceeds, to step 115, entry of finding is not present in the routing table. 【0011】次に図12に示す検索木を用いて、従来のPatricia Trie検索方式による検索の例を示す。 [0011] Next, using the search tree shown in FIG. 12 shows an example of a search by a conventional Patricia Trie search method. 検索データ6を0x8020A324とする。 The search data 6, 0x8020A324. 前記検索データ6とノード3のビット番号7との対応を以下に2進表記で示す。 The correspondence between the bit number 7 in the search data 6 and node 3 shown in binary notation as follows. ビット番号: 0 ‥ 4 ‥ 8 ‥ 12 ‥ 検索データ: 1000 0000 0010 000 Bit number: 0 ‥ 4 ‥ 8 ‥ 12 ‥ search data: 1000 0000 0010 000
0 ‥ ‥ 16 ‥ 20 ‥ 24 ‥ 28 ‥ ‥ 1010 0011 0010 0100 【0012】以下の手順で検索が実行される。 0 search in ‥ ‥ 16 ‥ 20 ‥ 24 ‥ 28 ‥ ‥ 1010 0011 0010 0100 [0012] The following procedure is performed. (1)図12に示す検索木の頂点のノード3aから出発する。 (1) starting from the node 3a of the vertices of the search tree shown in Figure 12. (2)前記ノード3aは、リーフ5aを持つので、前記リーフ5aの宛先ネットワークIPアドレス1aとネットワークマスク2aの組をスタックに積む。 (2) the node 3a because with leaf 5a, gain set of the destination network IP address 1a and network mask 2a of the leaf 5a to the stack. (3)前記ノード3aのビット番号7aは0なので、前記検索データ6のビット0を検査し、「1」なので右のノード3hに進む。 (3) Bit No. 7a of the node 3a is 0, so check the bit 0 of the search data 6, the process proceeds to "1" because the right node 3h. (4)前記ノード3hのビット番号7hは1なので、前記検索データ6のビット1を検査し、「0」なので左のノード3iに進む。 (4) bits Number 7h of the node 3h is because 1 checks the bit 1 of the search data 6, go to "0", so the left node 3i. (5)前記ノード3iのビット番号7iは10なので、 (5) the bit number 7i of the node 3i is 10 because,
前記検索データ6のビット10を検査し、「1」なので右のノード3cに進む。 Examines bit 10 of the search data 6, the process proceeds to "1" because the right node 3c. (6)前記ノード3cは、リーフ5cを持つので、前記リーフ5cの宛先ネットワークIPアドレス1cとネットワークマスク2cの組をスタックに積む。 (6) the node 3c, since with leaf 5c, gain set of the destination network IP address 1c and network mask 2c of the leaf 5c in the stack. 【0013】(7)前記ノード3cのビット番号7cは16なので、前記検索データ6のビット16を検査し、 [0013] (7) bit numbers 7c of the node 3c is so 16 examines the bit 16 of the search data 6,
「1」なので右のノード3kに進む。 "1", so proceed to the right of the node 3k. (8)前記ノード3kのビット番号7kは19なので、 (8) bit number 7k of the node 3k is because 19,
前記検索データ6のビット19を検査し、「0」なので左のノード3dに進む。 Examines bit 19 of the search data 6, go to "0", so the left node 3d. (9)前記ノード3dは、リーフ5dを持つので、前記リーフ5dの宛先ネットワークIPアドレス1dとネットワークマスク2dの組をスタックに積む。 (9) the node 3d, since with leaf 5d, gain set of the destination network IP address 1d and network mask 2d of the leaf 5d to the stack. (10)前記ノード3dのビット番号7kは20なので、前記検索データ6のビット20を検査し、「0」なので左のノード3に進もうとするが、存在しないので、 (10) bit number 7k of the node 3d 20 so examines the bit 20 of the search data 6, but when you Susumo to "0", so the left node 3, does not exist,
ノード3dで検索木のなぞりを終える。 Finish a tracing of the search tree at the node 3d. このときのスタックの内容を以下に示す。 It shows the contents of the stack at this time is below. 宛先ネットワークIPアドレス/ネットワークマスク最後に積んだ内容: 0x80208000/xFFFFF000 最後から2番目に積んだ内容: 0x80200000/xFFFF0000 最初に積んだ内容: 0x00000000/x00000000 【0014】(11)スタックの最後に積んだ宛先ネットワークIPアドレス1dとネットワークマスク2dの組を取り出し、前記検索データ6と前記ネットワークマスク2dをビット毎にAND演算した結果と前記宛先ネットワークIPアドレス1dを比較する。 Laden to the destination network IP address / network mask last contents: 0x80208000 / xFFFFF000 content-laden second from the last: 0x80200000 / xFFFF0000 first laden content: 0x00000000 / x00000000 [0014] (11) destination laden at the end of the stack taking out a set of network IP addresses 1d and network mask 2d, the search data 6 and the results of the network mask 2d and aND operation for each bit and compares the destination network IP address 1d. (12)(0x8020A324)&(0xFFFFF (12) (0x8020A324) & (0xFFFFF
000)≠0x80208000 前記式の結果から、スタックの最後から2番目に積んだ宛先ネットワークIPアドレス1cとネットワークマスク2cの組を取り出し、前記検索データ6と前記ネットワークマスク2cをビット毎にAND演算した結果と前記宛先ネットワークIPアドレス1cを比較する。 000) ≠ from 0x80208000 said expression results, taken out from the end of the destination network IP address 1c and network mask 2c laden in the second set of stacks, result of the AND operation of the network mask 2c and the search data 6 for each bit and comparing the destination network IP address 1c. (13)(0x8020A324)&(0xFFFF0 (13) (0x8020A324) & (0xFFFF0
000)=0x80200000 前記式の結果から、前記宛先ネットワークIPアドレス1cと前記ネットワークマスク2cの組が、求めるエントリであり、検索を終了する。 From 000) = 0x80200000 said expression results, the set of the destination network IP address 1c and the network mask 2c is a entry to determine, the search ends. 【0015】前記の従来のPatricia Trie [0015] The conventional Patricia Trie
検索方式による検索において、検索木のなぞりを終えた後、スタックに積んだエントリを、後に積んだエントリから順に取り出し、検索データ6と比較することにより、ロンゲストマッチが実現される。 In the search by the search method, after finishing a tracing of the search tree, the laden entry to the stack, taken from the laden entry after in order, by comparing the search data 6, the longest match is achieved. 【0016】 【発明が解決しようとする課題】従来のPatrici [Problems that the Invention is to Solve] [0016] Conventional Patrici
a Trie検索方式による検索は、以上のように実行されるので、検索に要する時間の最大値は、検索木の長さの最大値(図12の例では、5)に比例する。 Search by a Trie search policy, since it is performed as described above, the maximum time required for the search, (in the example of FIG. 12, 5) Find maximum length of the tree is proportional to. また、 Also,
ルーチングテーブルのエントリの内容に関わらず、検索木の長さの最大値は、検索データのビット数(前記の例では、32)を超えることはない。 Regardless of the content of the entries in the routing table, maximum length of the search tree, (in the above example, 32) of the number of bits search data does not exceed a. 従って、ルーチングテーブルのエントリの内容に関わらず、検索に要する時間の最大値は、検索データのビット数で規定することができる。 Therefore, regardless of the content of the entries in the routing table, the maximum value of the time required for the search can be specified by the number of bits of the search data. 【0017】しかし、逆に言えば、検索データのビット数が多くなると、検索に要する時間の最大値は、これに比例して長くなる。 [0017] However, conversely, when the number of bits of the search data is increased, the maximum value of the time required for the search becomes longer in proportion thereto. 前記の例では、IPアドレスはバージョン4で規定される32ビットのアドレスであったが、次世代のバージョン6で規定されるIPアドレスは128ビットである。 In the above example, IP address, but was 32-bit address defined in version 4, IP address, defined by next-generation version 6 is 128 bits. このため、前記バージョン6のI Therefore, I of the Version 6
Pアドレスに対し、従来のPatricia Trie For P address, the conventional Patricia Trie
検索方式を適用すると、検索に要する時間の最大値は、 Applying the search method, the maximum time required for the search,
前記バージョン4のIPアドレスに対して検索に要する時間の最大値の4倍となり、ルータの中継遅延、中継スループット等の性能が低下する問題があった。 The version is four times the maximum value of the time required for searching for the four of IP address, the relay delay router performance such as relay throughput is a problem of decrease. 【0018】一方、基数検索法を応用したものに、ノードにおいて、検索データのビットを一度に複数検査するマルチウェイ基数検索法がある。 Meanwhile, in an application of the radix search method in a node, there is a multiway radix search method for a plurality of bits of the search data at a time inspection. 前記マルチウェイ基数検索法では、検索時間の最大値を短縮できることが知られている。 Wherein the multi-way radix search method, it is known that can shorten the maximum value of search time. しかし、前記マルチウェイ基数検索法には、 However, to the multi-way radix search method,
前記の例に示した可変長のネットワークマスクに対応できない問題があり、また前記のロンゲストマッチに対応できない問題があった。 There is a problem that can not correspond to the variable length network mask shown in the example above, also it has a problem that can not correspond to said longest match. 【0019】この発明は上記のような問題を解決するためになされたもので、検索時間の最大値を短縮しつつ、 [0019] The present invention has been made to solve the above problems, while reducing the maximum value of search time,
可変長のネットワークマスクに対応し、ロンゲストマッチに対応する検索方式を得ることを目的とする。 Corresponding to the variable length of the network mask, an object of the present invention to provide a search system that corresponds to the longest match. また、 Also,
以上の目的を達成すると共に、検索に用いる検索木を、 Together to achieve the above object, a search tree to be used for search,
ルータ等、検索を実行する装置内のメモリ等の記憶装置上に構成した場合、記憶装置上のできるだけ少ない領域で検索木を構成する検索方式を得ることを目的とする。 Router or the like, when configured in a storage device such as a memory in the apparatus to perform a search, and to obtain a search method for the construction of the search tree with as little space on the storage device. 【0020】 【課題を解決するための手段】第1の発明に関わる検索方式は、検索テーブルの可変長の検索キーを格納するリーフと、前記リーフを持たず次のノードと接続されるノードと、前記リーフを持ち次のノードと接続されないノードとで探索木を構成し、前記ノードに対し、次のノードを特定するために検査する検索データのビット番号を付け、各ノードで一度に検査するビット数をNビット(N≧2)にし、可変長の検索キーを格納するリーフのうち、長さがNビットの整数倍の検索キーを格納するリーフに対して、ノードを1個置き、長さがNビットの整数倍でない検索キーを格納するリーフに対して、ノードを2の(N−M)乗個、(ただし、Mは検索キーの長さをNで除した余り)置いた検索木を構成し、この検索木を用い [0020] Means for Solving the Problems] search scheme according to the first invention comprises a leaf for storing the variable-length search key of the search table, the node connected to the next node without the leaf constitutes a search tree with said not connected to the have the following node leaf node, said node, with a bit number of the search data to be examined to identify the next node is examined at a time in each node to the number of bits N bits (N ≧ 2), of the leaf for storing the variable-length search key, on the leaf length to store an integer multiple search key of N bits, place one node, long on the leaf for storing the search key is not an integer multiple of Saga N bits, node 2 (N-M) th power of, (wherein, M represents the remainder obtained by dividing the length of the search key in N) search placed tree constitutes a, using this search tree て、基数検索を行うものである。 Te, and it performs a radix search. 【0021】第2の発明に関わる検索方式は、検索テーブルの可変長の検索キーを格納するリーフと、前記リーフを持たず次のノードと接続されるノードと、前記リーフを持ち次のノードと接続されるノードと、前記リーフを持ち次のノードと接続されないノードとで検索木を構成し、前記ノードに対し、次のノードを特定するために検査する検索データのビット番号を付け、各ノードで一度に検査するビット数をNビット(N≧2)にし、可変長の検索キーを格納するリーフのうち、長さがNビットの整数倍の検索キーを格納するリーフに対して、ノードを1個置き、長さがNビットの整数倍でない検索キーを格納するリーフに対して、ノードを2の(N−M)乗個、(ただし、Mは検索キーの長さをNで除した余り) The search method according to the second invention comprises a leaf for storing the variable-length search key of the search table, the node connected to the next node without the leaf, and the next node has the leaf a connection node being said to constitute the search tree and the have the following nodes are not connected to the node leaves, said node, with a bit number of the search data to be examined to identify the next node, each node in the test to the number of bits N bits (N ≧ 2) at a time, out of the leaf which stores variable-length search key, on the leaf length to store an integer multiple search key of N bits, the node every one, on the leaf for storing the search key length is not an integer multiple of N bits, node 2 (N-M) th power of, (where, M is the length of the search key divided by N remainder)
置き、前記ノードが、他のリーフに対するノードと重複する場合、より短い検索キーを格納するリーフに対するノードを置かず、より長い検索キーを格納するリーフに対するノードを置いた検索木を用いて、基数検索を行うものである。 Place the node, if that overlap with node for other leaf, without placing the node to the leaf for storing a shorter search key, using the search tree at a node for a leaf for storing a longer search key, Radix Search and performs. 【0022】第3の発明に関わる検索方式は、1個のリーフに対し、ノードを1個置く場合、リーフを記憶する記憶装置に、前記リーフを1個格納し、前記1個のノードと、前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、1個のリーフに対し、ノードを複数個置く場合、記憶装置に前記リーフを1個格納し、前記複数のノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納することによって検索木を構成し、この検索木を用いて、基数検索を行うものである。 The search method according to a third invention, with respect to one leaf, when put a node, a storage device for storing a leaf, the leaf is stored one, said one node, stores both the address value of the storage device for identifying the location of the leaf, to one leaf, when placing a plurality of nodes, the leaf is stored one in the storage device, said plurality of nodes, said address value of the memory device in each of identifying the location of the leaf and constitutes a search tree by storing both using this search tree, and performs radix search. 【0023】第4の発明に関わる検索方式は、1個のリーフに対し、ノードを1個置く場合、前記記憶装置に前記リーフを1個格納し、前記1個のノードと、前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、1個のリーフに対し、ノードを複数個置く場合、 The search method according to the fourth invention, with respect to one leaf, when put a node, the leaf is stored one in said storage device, said and one node, storage of the leaf the address value of the memory device to identify the location to store both, to one leaf, when placing a plurality of nodes,
前記記憶装置に前記リーフを1個格納すると共に、前記複数のノードが、全て次のノードと接続されるノードの場合、前記複数のノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、前記複数のノードに、次のノードと接続されるノードと次のノードと接続されないノードが含まれる場合、 Stores one said leaf to said storage device, said plurality of nodes, when all the nodes connected to the next node, and the plurality of nodes, storage identifying the location of the leaf in each of the stores the address value of the device together, the plurality of nodes, if they contain not connected to the node and the next node to be connected to the next node node,
前記次のノードと接続されるノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、前記次のノードと接続されないノードを、 A node connected to the next node, both store the address value of the storage device for identifying the location of the leaf in each of the, the node which is not connected to the next node,
前記次のノードと接続されるノードのいずれかで代用し、 【0024】前記複数個のノードが、全て次のノードと接続されないノードの場合、前記次のノードと接続されない複数のノードを共通に1個格納し、前記ノードと共に、前記リーフの格納位置を特定する記憶装置のアドレス値を格納することによって検索木を構成し、この検索木を用いて、基数検索を行うものである。 Substituted on one of the nodes to be connected to the next node, [0024] the plurality of nodes, when all the nodes which are not connected to the next node, the common multiple nodes which are not connected to the next node 1 stores, together with the node, configure the search tree by storing the address value of the storage device for identifying the location of the leaf, using the search tree, and performs radix search. 【0025】第5の発明に関わる検索方式は、検索中に到着するノード毎に、ノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較を逐次または並行して行い、前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて基数検索を行うものである。 The search method according to a fifth aspect of the present invention, if each node arriving in the search, along with performing bit examination of the search data corresponding to the bit number assigned to the node, the node has a leaf, the compares the search data and leaf sequentially or in parallel, in the comparison, and performs radix search except bits of the previously once comparison already the search data from the comparison target. 【0026】第6の発明に関わる検索方式は、検索テーブルの可変長の検索キーを格納するリーフと、前記リーフを持たず次のノードと接続されるノードと、前記リーフを持ち次のノードと接続されないノードと、で検索木を構成し、前記ノードに対し、次のノードを決定するために検査する検索データのビット番号を付け、各ノードで一度に検査するビット数を1ビットにし、検索中に到着するノード毎にノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較とを逐次または並行して行い、前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて基数検索を行うものである。 The search method according to a sixth invention is a leaf for storing the variable-length search key of the search table, the node connected to the next node without the leaf, and the next node has the leaf constitute a not connected node, in a search tree, said node, with a bit number of the search data to be examined to determine the next node, the number of bits to be examined at a time in each node in one bit, the search with inspecting the bit for the corresponding search data bit number assigned to a node for each node arriving in, if the node has a leaf, performs a comparison of the search data and the leaf sequentially or in parallel , in the comparison, and it performs radix search except bits of the previously once comparison already the search data from the comparison target. 【0027】第7の発明に関わる検索方式は、検索中に到着するノード毎に、ノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較、または、前記ノードがリーフを持たない場合、 The search scheme according to the seventh aspect, when each node arriving in the search, along with performing bit examination of the search data corresponding to the bit number assigned to the node, the node has a leaf, the leaf and comparison of the search data, or if the node has no leaves,
その下位のいずれかのノードが持つリーフと前記検索データの前記ノードに付けたビット番号までの比較、を逐次または並行して行い、前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて基数検索を行うものである。 Perform comparison to the bit number assigned to the node of the search data and a leaf with one of the nodes of the lower order, sequentially or in parallel, in the comparison, the bits of the previously once comparison already said search data and it performs radix search except from the comparison target. 【0028】第8の発明に関わる探索方式は、検索テーブルの可変長の検索キーを格納するリーフと、前記リーフを持たず次のノードと接続されるノードと、前記リーフを持ち次のノードと接続されるノードと、前記リーフを持ち次のノードと接続されないノードとで検索木を構成し、前記ノードに対し、次のノードを決定するために検査する検索データのビット番号を付け、各ノードで一度に検査するビット数を1ビットにし、検索中に到着するノード毎に、ノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較、または、前記ノードがリーフを持たない場合、その下位のいずれかのノードが持つリーフと前記検索データの前記ノードに付け The search system according to the eighth aspect of the present invention, a leaf for storing the variable-length search key of the search table, the node connected to the next node without the leaf, and the next node has the leaf a connection node being said to constitute the search tree and the have the following nodes are not connected to the node leaves, said node, with a bit number of the search data to be examined to determine the next node, each node in examines the number of bits in one bit at a time, if each node arriving in the search, the inspected bits of the search data corresponding to the bit number assigned to the node, the node has a leaf, the leaf a comparison of the search data, or if the node has no leaves, attached to the node of the leaf and the search data any node subordinate has ビット番号までの比較、を逐次または並行して行い、前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて、基数検索を行うものである。 Comparison to the bit number, the performed sequentially or in parallel, in the comparison, excluded from the scope of the previously once compare bits of the comparison already the search data, and performs radix search. 【0029】 【発明の実施の形態】実施の形態1. [0029] [OF THE PREFERRED EMBODIMENTS Embodiment 1. 本実施の形態による検索方式は、各エントリのネットワークマスクが可変長であるが、いかなるエントリの組み合わせについても、ロンゲストマッチの関係にないエントリからなるルーチングテーブル対し適用しようとするものである。 Search method according to this embodiment, although the network mask for each entry a variable length, for the combination of any entry, it is intended to routing table against applied consisting of entries not in relation longest match. 宛先ネットワークIPアドレスの割り当て方によっては、 Depending how to assign the destination network IP address,
ロンゲストマッチの関係にないエントリからなるルーチングテーブルを構成できる。 You can configure the routing table consisting not in the longest match relationship entry. 図1は、本実施の形態によるルーチングテーブルの例を示す。 Figure 1 shows an example of a routing table according to the present embodiment. なお、各エントリのネットワークマスクは可変長であるが、いかなるエントリの組み合わせについても、ロンゲストマッチの関係にない。 It should be noted that, although the network mask of each entry is a variable length, with respect to a combination of any entry, not in the relationship of the longest match. 【0030】図2は、本実施の形態1による検索方式に基づいて、図1に示されるルーチングテーブルの内容に対して、検索木を構成した例を示す図である。 [0030] Figure 2 is based on the search method of the first embodiment, the contents of the routing table shown in FIG. 1 is a diagram showing an example in which the search tree. 図において、1p、1q、1r、等1は宛先ネットワークIPアドレス、2p、2q、2r、等2はネットワークマスク、6 In FIG, 1p, 1q, 1r, etc. 1 destination network IP address, 2p, 2q, 2r, etc. 2 network mask, 6
は検索データ、 ・ 13o、13p、13q、等13は検索木の節であるノード、 ・ 5p、5q、5r、等5はリーフ、 ・17o、17p、17q、等17はビット番号で、各ノード13に付き、次のノード13を決定するために検索データ6に対し一度に検査する連続するNビット(図2 Search data, · 13o is, 13p, 13q, nodes etc. 13 is a section of the search tree, · 5p, 5q, 5r, etc. 5 leaf, · 17o, 17p, 17q, etc. 17 is a bit number, each node per 13, successive N bit to search data 6 to determine the next node 13 to check at once (Fig. 2
の例ではN=2)のうち、先頭のビットを示す。 In this example N = 2) of indicates the start of a bit. 【0031】図2に示される検索木は、宛先ネットワークIPアドレス1のMSB側ビットから順に各ビットを「00」、「01」、「10」、「11」に場合分けし、前記場合分けを節の左から右への4分岐で表現したものである。 The search tree shown in FIG. 2, "00" each bit in order from the MSB side bits of the destination network IP address 1, "01", "10", and if divided into "11", the case analysis it is a representation of four branches from the left of the section to the right. ノード13は、前記の節に相当し、最大1 Node 13 corresponds to the section, up to 1
つのリーフ5または下位に最大4つのノード13を持つ。 One leaf 5 or lower with up to four nodes 13. 【0032】次に、ノード13とリーフ5の置き方について説明する。 [0032] Next, a description will be given of how to place the node 13 and the leaf 5. まず、ルーチングテーブルの各エントリの宛先ネットワークIPアドレス1とネットワークマスク2を先頭からNビット(図2の例ではN=2)単位に区切る。 First, (in the example of FIG. 2 N = 2) the destination network IP address 1 and network mask 2 from the first N bits of each entry in the routing table separate units. ここでは、前記Nビットの単位をNビット単位と呼ぶ。 Here, it referred to the unit of the N-bit and N-bit units. ノード13とリーフ5は、次の3つの規則に従って置かれる。 Node 13 and leaves 5 are placed according to the following three rules. 【0033】・ 規則1:ルーチングテーブルの宛先ネットワークIPアドレス1で、あるNビット単位を境に、MSB側の値の等しいものが複数存在する場合、ノード13を1つ置く。 [0033] - Rule 1: the destination network IP address 1 of the routing table, the boundary of a certain N-bit units, if equal values ​​of MSB side there are a plurality, placing node 13 by one. このノード13には、ビット番号17として、前記複数の宛先ネットワークIPアドレス1で、MSB側から見て最初に異なるビットが含まれるNビット単位の先頭のビットの番号を付ける。 The node 13, as a bit number 17, the a plurality of destination network IP address 1, prefixed number of bits of the N-bit unit including the first differing bit as viewed from the MSB side. このノード13には、リーフ5を置かない。 The node 13, not put leaf 5. 【0034】・規則2:ルーチングテーブルのネットワークマスク2で、1で示されるビットの数をNで除した余りが0のエントリに対し、ノード13を1つ置く。 [0034] - Rule 2: routine network mask 2 of grayed table, with respect to the entry of the remainder number of bits divided by N is 0 represented by 1, putting one node 13. このノード13には、ビット番号17として、前記ネットワークマスク2で、MSB側から見て最初に0となるビットの番号を付ける。 The node 13, as a bit number 17, in the network mask 2, put the first becomes zero bit number as seen from the MSB side. このノード13には、前記エントリの情報からなるリーフ5を置く。 The node 13, put leaf 5 consisting of information of the entry. 【0035】・規則3:ルーチングテーブルのネットワークマスク2で、1で示されるビットの数をNで除した余りがM(1≦M<N)のエントリに対し、まず、ノード13を1個置く(ノードAとする)。 [0035] - Rule 3: Network Mask 2 of the routing table, to the entry of the remainder number of bits divided by N is M (1 ≦ M <N) represented by 1, firstly, put the node 13 (referred to as a node a). ノードAには、 The node A,
ビット番号17として、前記ネットワークマスク2で、 As the bit number 17, in the network mask 2,
MSB側から見て最初に0となるビットが含まれるNビット単位の先頭のビットの番号を付ける。 When viewed from the MSB side prefixed number of bits of the first 0 and N-bit units contained bits made. ノードAには、リーフ5を置かない。 The node A, do not put the leaf 5. ノードAと、他のエントリに対し置いたノード13が重複する(同一の位置に置く必要がある)場合、両ノード13の役割を合わせ持つノード13を1個置く。 Node and A, node 13 overlap placed to other entry (should be in the same position), the Put a node 13 having both the roles of both nodes 13. さらに、前記ノードAの下位に、ノード13を2のN−M乗個置く。 Further, the lower of the node A, the node 13 puts second N-M-th power. これらのノード13には、ビット番号17として、前記ノードAに付けたビット番号+Nのビット番号を付ける。 These nodes 13, as bit number 17, put a bit number of the bit number + N which attached to the node A. これらのノード13 These nodes 13
には、前記エントリの情報からなるリーフ5を各ノード13毎に置く。 To put the leaf 5 consisting of information of the entry for each node 13. なお、ビット番号17は、MSB側から順に0より始まる。 It should be noted that the bit number 17, starting from 0 in order from the MSB side. 【0036】N=2とした図2の例では、ノード13 [0036] In the example of FIG. 2 and N = 2, the node 13
o、13vは、前記規則1に該当し、ノード13p、1 o, 13v may correspond to the rules 1, node 13p, 1
3q、13s、13tは、前記規則2に該当し、ノード13r、13uは、前記規則3に該当する。 3q, 13s, 13t may correspond to the rule 2, node 13r, 13u corresponds to the rule 3. なお、ノード13oについては、宛先ネットワークIPアドレス1 Incidentally, the node for 13o, the destination network IP address 1
の先頭のNビット単位の前に、さらにNビット単位が存在し、前記2つのNビット単位を境に、MSB側の値の等しいものが複数存在すると見なし、規則1を適用する。 Before the start of the N bits of the further presence of N bits, the boundary of the two N-bit units, assumed equal value of the MSB side there are a plurality, the rule applies 1. また、前記ノード13rが持つリーフ5rの宛先ネットワークIPアドレス1r、ネットワークマスク2r Further, the node 13r has leaf 5r of the destination network IP address 1r, network mask 2r
は、前記ノード13uが持つリーフ5uの宛先ネットワークIPアドレス1u、ネットワークマスク2uと、各々同一である。 , The node 13u has leaf 5u destination network IP address 1u, and network mask 2u, are each identical. 【0037】図3は、この実施の形態1による検索手順をフローチャートで示したもので、検索は、図2に示す検索木を用いた。 [0037] Figure 3 shows the search procedure according to the first embodiment in the flowchart, the search was used a search tree shown in Figure 2. 図3において、ステップ101で、出発点を頂点のノード3とし、ステップ102に進む。 3, in step 101, the starting point and node 3 of vertices, the process proceeds to step 102. ステップ102で、前記ノード3に対するリーフ5の有無を検査する。 In step 102, to check whether the leaf 5 with respect to the node 3. 有の場合、ステップ103に進み、無の場合、ステップ206に進む。 In the case of Yes, the process proceeds to step 103, the case of no, the process proceeds to step 206. ステップ103で、前記リーフ5の宛先ネットワークIPアドレス1とエントリのネットワークマスク2の組をスタック(図示せず)に積み、ステップ206に進む。 In step 103, loading a set of network mask 2 in the destination network IP address 1 and entry of the leaf 5 to the stack (not shown), the process proceeds to step 206. なお、スタックとは、最後に積んだ情報を最初に取り出すことができる一時的な記憶場所を指す。 It should be noted that the stack and refers to a temporary storage place where you can take out the last laden information first. 【0038】ステップ206で、検索データ6に対し、 [0038] In step 206, with respect to the search data 6,
前記ノード3のビット番号7で示されるビット値を検査し、「00」であれば最左のノードの有無を検査する(ステップ207)。 Examining the bit value indicated by the bit number 7 of the node 3, to inspect the presence or absence of the leftmost node if "00" (step 207). 最左のノードがあれば、最左のノードに移動したあとステップ102に再び戻る。 If the top left of the node, again returns after step 102 that has moved to the top left of the node. 最左のノードがなければ、ステップ111に進む。 If the leftmost node, the process proceeds to step 111. 「01」であれば左から2番目のノードの有無を検査する。 If the "01" to inspect the presence or absence of the second node from the left. 左から2番目のノードがあれば、左から2番目のノードに移動したあとステップ102に再び戻る。 If the second node is from the left, returns after the step 102 has been moved from the left to the second node. 左から2番目のノードがなければ、ステップ111に進む。 If the second node is from the left, the process proceeds to step 111. 「10」であれば右から2番目のノードの有無を検査する。 To inspect the presence or absence of the second node from the right if it is "10". 右から2 From right 2
番目のノードがあれば、右から2番目のノードに移動したあとステップ102に再び戻る。 If there is th node, it returns after the step 102 has been moved to the second node from the right. 右から2番目のノードがなければ、ステップ111に進む。 If the second node from the right, the process proceeds to step 111. 「11」であれば最も右のノードの有無を検査する(ステップ20 If "11" to check whether the rightmost node (step 20
8)。 8). 最右のノードがあれば、最右のノードに移動(ステップ210)したあとステップ102に再び戻る。 If the rightmost node, returns after the step 102 has moved (step 210) to the rightmost node. 最右のノードがなければ、ステップ111に進む。 If the rightmost node, the process proceeds to step 111. 【0039】ステップ111で、前記スタック内の宛先ネットワークIPアドレス1とエントリのネットワークマスク2の組の有無を検査する。 [0039] In step 111, to check whether the set of network mask 2 in the destination network IP address 1 and an entry in the stack. 有の場合、ステップ1 In the case of Yes, step 1
12に進む。 Proceed to 12. 無の場合、ステップ115に進む。 In the case of no, the process proceeds to step 115. ステップ112で、前記スタックの最後に積んだ宛先ネットワークIPアドレス1とネットワークマスク2の組を取り出し、ステップ113に進む。 In step 112, retrieves the last destination network IP address 1 and the network mask 2 set laden of the stack, the process proceeds to step 113. ステップ113で、前記検索データ6と前記ネットワークマスク2をビット毎にAND演算した結果と前記宛先ネットワークIPアドレス1を比較する。 In step 113, it compares the destination network IP address 1 and a result of the network mask 2 and the search data 6 AND operation for each bit. 両者が等しい場合、ステップ114に進み、両者が異なる場合、再びステップ111に戻る。 If they are equal, the process proceeds to step 114, if they are different, returns to step 111.
ステップ114に進んだ場合、前記ステップ113で前記検索データ6と比較した宛先ネットワークアドレス1 When step 114, the destination network address 1 in comparison with the search data 6 in step 113
とネットワークマスク2の組が求めるエントリである。 That the entry set seeks the network mask 2.
ステップ115に進んだ場合、求めるエントリは、ルーチングテーブルに存在しない。 When step 115, the entry of finding is not present in the routing table. 次に、図2に示す検索木を用いて、この実施の形態1による検索の例を示す。 Next, using a search tree shown in FIG. 2 shows an example of a search by the first embodiment. 検索データ6を0xD0000000とする。 The search data 6, 0xD0000000. 【0040】以下の手順で検索が実行される。 The search by the following procedure is executed. (1)図2に示す検索木の頂点のノード13oから出発する。 (1) starting from the node 13o vertices of the search tree shown in Figure 2. (2)前記ノード13oのビット番号17oは0なので、前記検索データ6のビット0とビット1を検査し、 (2) Bit No. 17o of the node 13o is 0, so check the bits 0 and 1 of the search data 6,
「11」なので最も右のノード13vに進む。 So "11", the flow goes to the most right of the node 13v. (3)前記ノード13vのビット番号17vは2なので、前記検索データ6のビット2とビット3を検査し、 (3) the bit number 17v of the node 13v is 2 examines the bits 2 and 3 of the search data 6,
「01」なので左から2番目のノード13uに進む。 Proceeds from the left, so "01" to the second node 13u. 【0041】(4)前記ノード13uは、リーフ5uを持つので、前記リーフ5uの宛先ネットワークIPアドレス1uとネットワークマスク2uの組をスタックに積む。 [0041] (4) The node 13u, because with leaf 5u, gain destination network IP address 1u a set of network mask 2u of the leaf 5u stack. (5)前記ノード13uのビット番号17uは4なので、前記検索データ6のビット4とビット5を検査し、 (5) the bit number 17u of the node 13u is 4, checks the bits 4 and 5 of the search data 6,
「00」なので最も左のノード13に進もうとするが、 But when you Susumo to "00", so the left-most node 13,
存在しないので、ノード13uで検索木のなぞりを終える。 Because it does not exist, finish a tracing of the search tree node 13u. (6)スタックの最後に積んだ宛先ネットワークIPアドレス1uとネットワークマスク2uの組を取り出し、 (6) Take out the last laden destination network IP address 1u a set of network mask 2u stack,
前記検索データ6と前記ネットワークマスク2uをビット毎にAND演算した結果と前記宛先ネットワークIP The results of said search data 6 the network mask 2u AND operation for each bit destination network IP
アドレス1uを比較する。 To compare the address 1u. (7)(0xD0000000)&(0xE00000 (7) (0xD0000000) & (0xE00000
00)=0xC0000000 前記式の結果から前記宛先ネットワークIPアドレス1 Wherein from 00) = 0xC0000000 said expression results destination network IP address 1
uと前記ネットワークマスク2uの組が、求めるエントリであり、検索を終了する。 u the set of the network mask 2u is a entry to determine, the search ends. 【0042】この実施の形態1による検索方式は、以上のように実行される。 The search method according to the first embodiment is executed as described above. 図2に示すこの実施の形態1による検索木の長さは、最大2であり、検索に要する時間の最大値は、この検索木の長さに比例する。 The length of the search tree in accordance with this Embodiment 1 shown in FIG. 2 is a maximum of 2, the maximum value of the time required for searching is proportional to the length of the search tree. ここで、検索木の長さとは、頂点のノードから端のノードまでなぞる際に、経由するノードの数(端のノードを含む)を指す。 Here, the length of the search tree, when tracing from the top node to node of the edge, refers to the number of nodes through (including the node of the edge). 例えば、図2において、ノード13oからノード1 For example, in FIG. 2, the node from the node 13o 1
3tまでの長さは2である。 Length to 3t is 2. 経由する各ノード毎の処理量はほぼ等しいため、全体の検索に要する時間は、経由するノードの数にほぼ比例する。 Since the processing amount for each node is approximately equal to over, the time required for the entire search, is approximately proportional to the number of nodes through. 【0043】一方、図12は、従来のPatricia [0043] On the other hand, FIG. 12, the conventional Patricia
Trie検索方式に基づいて、図11に示されるルーチングテーブルに対し構成した検索木を示す図である。 Based on Trie search method is a diagram showing a search tree that is configured for routing table shown in FIG. 11.
図12に示す従来の検索木の長さは、最大5であり、検索に要する時間の最大値は、この検索木の長さに比例する。 The length of the conventional search tree shown in FIG. 12 is a maximum of 5, the maximum value of the time required for searching is proportional to the length of the search tree. 従って、図1に示されるルーチングテーブルによれば、この実施の形態1による検索に要する時間の最大値は、従来の検索方式の検索に要する時間の最大値に比較し、半分である。 Therefore, according to the routing table shown in FIG. 1, the maximum value of the time required for retrieval by the first embodiment, compared to the maximum value of the time required to search a conventional search method is half. 【0044】以上を一般的に考えた場合、従来の検索方式の検索に要する時間の最大値は、ルーチングテーブルのエントリの内容に関わらず、検索データ6のビット数で規定されるが、この実施の形態1による検索方式に要する時間の最大値は、検索データ6のビット数/N(図2の例ではN=2)で規定され、従来の検索方式に比較し、1/Nに削減される。 [0044] When considering more in general, the maximum value of the time required to search the conventional search method, regardless of the content of the entries in the routing table, but is defined by the number of bits of the search data 6, this embodiment the maximum value of the time required to by the embodiment 1 search policy (in the example of FIG. 2 N = 2) bits / N of the search data 6 are defined by, in comparison with the conventional search method, is reduced to 1 / N that. また、この実施の形態1による検索方式は、以上に示したように、可変長のネットワークマスクに対応することが可能である。 The search method according to the first embodiment, as shown above, it is possible to correspond to the variable length network mask. なお、以上では、N=2の例を示したが、この実施の形態1による検索方式は、N≧3の場合についても同様に適用可能であり、同様の効果を奏する。 In the above, the example of N = 2, the search system according to the first embodiment is also applicable to the case of N ≧ 3, the same effects. 【0045】実施の形態2. [0045] Embodiment 2. この実施の形態2による検索方式は、各エントリのネットワークマスクが可変長であり、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し適用しようとするものである。 Search method according to the second embodiment, the network mask of each entry has a variable length, it is intended to apply to routing table containing an entry in the relation of longest match one or more sets. 図4は、この実施の形態2によるルーチングテーブルの例を示す。 Figure 4 shows an example of a routing table according to the second embodiment. このルーチングテーブルでは、各エントリのネットワークマスクが可変長であり、ロンゲストマッチの関係にあるエントリを1組以上含む。 In this routing table is a network mask of each entry is a variable length, including the entry in the relationship of the longest match one or more sets. 【0046】図5は、この実施の形態2による検索方式に基づいて、図4に示されるルーチングテーブルに対し構成した検索木を示す図である。 [0046] FIG. 5 is based on a search method according to the second embodiment shows a search tree that is configured for routing table shown in FIG. なお、図5における各構成要素に付与された符号は、実施の形態1の図2に示す各構成要素に付与された符号と同一で説明を省く。 Incidentally, reference numerals given to the components in FIG. 5, not described in identical code attached to each component shown in FIG. 2 of the first embodiment. また、図5の例でも、次のノード13を決定するために検索データ6に対し一度に検査する連続するNビットとして、N=2の場合を示している。 Further, in the example of FIG. 5, as N successive bits inspected at once to search data 6 to determine the next node 13, shows the case of N = 2. 【0047】この実施の形態2による図5に示される検索木も、実施の形態1と同様に、宛先ネットワークIP The search tree shown in Figure 5 according to the second embodiment also, similarly to the first embodiment, the destination network IP
アドレス1のMSB側ビットから順に各ビットを「0 Each bit from the MSB side bits of the address 1 in the order "0
0」、「01」、「10」、「11」に場合分けし、前記場合分けを節の左から右への4分岐で表現したものである。 0 "," 01 "," 10 "," 11 when divided into ", in which was represented by four branches of the case analysis from the left of the section to the right. ノード13は、前記の節に相当し、最大1つのリーフ5および下位に最大4つのノード13を持つ。 Node 13 corresponds to the section, with up to four nodes 13 up to one leaf 5 and lower. 【0048】この実施の形態2によるノード13とリーフ5は、実施の形態1で述べた規則1〜3に加え、以下の2つの規則に従って置かれる。 The nodes 13 and leaves 5 according to the second embodiment, in addition to the rules 1 to 3 described in the first embodiment, are placed according to the following two rules. ・規則4:あるエントリに対し実施の形態1で述べた規則1に従って置いたノード13と、他のエントリに対し規則2または規則3に従って置いたノード13が重複する(同一の位置に置く必要がある)場合、両ノード13 - Rule 4: a node 13 placed according to the rules 1 described in the first embodiment with respect to an entry, must nodes 13 placed according to the rules 2 or Rule 3 to other entries placed in duplicate (same position some) cases, both nodes 13
の役割を合わせ持つノード13を1個置く。 Put a node 13 having both of the role. このノード13には、後者のエントリに対するリーフ5を置く。 The node 13, put leaf 5 for the latter entry. ・規則5:あるエントリに対し実施の形態1で述べた規則2または規則3に従って置いたノード13と、他のエントリに対し規則3に従って置いたノード13が複数個重複する場合、重複している前記ノード13の中から、 - Rule 5: the node 13 placed according to the rules 2 or Rule 3 described in the first embodiment with respect to an entry, the node 13 placed according to the rules 3 to other entries may be multiple overlapping, the overlapping from among the nodes 13,
ネットワークマスク2の1の数が最も多いエントリに対する前記ノード13を置き、他のエントリに対する前記ノード13を置かない。 Place the node 13 the number of first network mask 2 for highest entry, not place the node 13 with respect to other entries. このノード13には、前者のエントリに対するリーフ5を置く。 The node 13, put leaf 5 of the former to the entry. なお、実施の形態1では、規則4、規則5が該当する場合はない。 In the first embodiment, Rule 4, not when the Rule 5 is applicable. 【0049】N=2とした図5の例では、ノード13v [0049] In the example of FIG. 5 and N = 2, node 13v
は、前記規則4に該当し、ノード13p、13q、13 Is to correspond to the rule 4, node 13p, 13q, 13
s、13tは、実施の形態1で述べた規則2に該当し、 s, 13t is applicable to Rule 2 described in the first embodiment,
ノード13rは、実施の形態1で述べた規則3に該当し、ノード13wは、前記規則5に該当する。 Node 13r is correspond to rule 3 as described in the first embodiment, the node 13w corresponds to the rule 5. ノード1 Node 1
3wについては、ネットワークマスク2wに対するノード13とネットワークマスク2rに対するノード13が重複するが、1の数がより多いネットワークマスク2w For 3w, although the node 13 for a node 13 and network mask 2r to the network mask 2w overlap, the number of 1 is greater network mask 2w
に対し、ノード13wを置いたものである。 The other hand, is intended to put the node 13w. 【0050】図5に示すこの実施の形態2による検索木を用いた検索手順については、実施の形態1で述べた検索手順と同様である。 The search procedure using a search tree according to the second embodiment is shown in FIG. 5, it is similar to the search procedure described in the first embodiment. 【0051】次に、図5に示す検索木を用いて、この実施の形態2による検索の例を示す。 Next, using a search tree shown in FIG. 5 shows an example of a search according to the second embodiment. 検索データ6を0x The search data 6 0x
D0000000とする。 And D0000000. 以下の手順で検索が実行される。 Search the following steps are executed. (1)図5に示す検索木の頂点のノード13oから出発する。 (1) starting from the node 13o vertices of the search tree shown in FIG. (2)前記ノード13oのビット番号17oは0なので、前記検索データ6のビット0とビット1を検査し、 (2) Bit No. 17o of the node 13o is 0, so check the bits 0 and 1 of the search data 6,
「11」なので最も右のノード13vに進む。 So "11", the flow goes to the most right of the node 13v. (3)前記ノード13vは、リーフ5vを持つので、前記リーフ5vの宛先ネットワークIPアドレス1vとネットワークマスク2vの組をスタックに積む。 (3) the node 13v, because with leaf 5v, gain destination network IP address 1v a set of network mask 2v of the leaf 5v stack. (4)前記ノード13vのビット番号17vは2なので、前記検索データ6のビット2とビット3を検査し、 (4) bit number 17v of the node 13v is 2 examines the bits 2 and 3 of the search data 6,
「01」なので左から2番目のノード13wに進む。 Proceeds from the left, so "01" to the second node 13w. 【0052】(5)前記ノード13wは、リーフ5wを持つので、前記リーフ5wの宛先ネットワークIPアドレス1wとネットワークマスク2wの組をスタックに積む。 [0052] (5) The node 13w, since with leaf 5w, gain destination network IP address 1w a set of network mask 2w of the leaf 5w stack. (6)前記ノード13wのビット番号17wは4なので、前記検索データ6のビット4とビット5を検査し、 (6) bit number 17w of the node 13w is 4, checks the bits 4 and 5 of the search data 6,
「00」なので最も左のノード13に進もうとするが、 But when you Susumo to "00", so the left-most node 13,
存在しないので、ノード13wで検索木のなぞりを終える。 Because it does not exist, finish a tracing of the search tree node 13w. (7)スタックの最後に積んだ宛先ネットワークIPアドレス1wとネットワークマスク2wの組を取り出し、 (7) Take out the last laden destination network IP address 1w a set of network mask 2w stack,
前記検索データ6と前記ネットワークマスク2wをビット毎にAND演算した結果と前記宛先ネットワークIP The results of said search data 6 the network mask 2w AND operation for each bit destination network IP
アドレス1wを比較する。 To compare the address 1w. (8)(0xD0000000)&(0xF00000 (8) (0xD0000000) & (0xF00000
00)=0xD0000000 前記式の結果から前記宛先ネットワークIPアドレス1 Wherein from 00) = 0xD0000000 the expression results destination network IP address 1
wと前記ネットワークマスク2wの組が、求めるエントリであり、検索を終了する。 w the set of the network mask 2w is the entry to seek, to end the search. 【0053】前記検索キー6に対し、 ・リーフ5vの宛先ネットワークIPアドレス1vとネットワークマスク2vの組、 ・リーフ5rの宛先ネットワークIPアドレス1rとネットワークマスク2rの組、 ・リーフ5wの宛先ネットワークIPアドレス1wとネットワークマスク2wの組、の3組で比較条件を満足するが、前記検索では、1で示される数が最も多いネットワークマスク2wからなるリーフ5wを検索することができた。 [0053] with respect to the search key 6, Reef 5v of the destination network IP address 1v and network mask 2v set, leaf 5r of the destination network IP address 1r and network mask 2r set, leaf 5w destination network IP address of 1w and network mask 2w set, satisfying the comparison condition in triplicate, but in the search, it was possible to find the leaf 5w number represented by 1 is made of highest network mask 2w. このように、この実施の形態2による検索方法は、ロンゲストマッチに対応している。 Thus, the search method according to the second embodiment corresponds to the longest match. 【0054】この実施の形態2による検索方式は、以上のように実行されるので、実施の形態1と同様に、検索方式に要する時間の最大値は、検索データ6のビット数/N(図5の例ではN=2)で規定され、従来の検索方式に比較し、1/Nに削減される。 [0054] Since the search method according to the second embodiment is executed as described above, as in the first embodiment, the maximum value of the time required for the search method, the number of bits / N (Figure search data 6 the fifth example is defined by N = 2), compared with the conventional search method, it is reduced to 1 / N. また、この実施の形態2による検索方式は、以上に示したように、可変長のネットワークマスクに対応すると共に、ロンゲストマッチに対応することが可能である。 The search method according to the second embodiment, as shown above, along with the corresponding variable length network mask, it is possible to correspond to the longest match. 【0055】なお、以上では、N=2の例を示したが、 [0055] In the above, the example of N = 2,
この実施の形態2による検索方式は、N≧3の場合についても同様に適用可能であり、同様の効果を奏する。 Search method according to the second embodiment is also applicable to the case of N ≧ 3, the same effects. 【0056】実施の形態3. [0056] Embodiment 3. この実施の形態3による検索方式は、リ−フの共通化を計りリーフの数を削減するものである。 Search method according to the third embodiment, the re - is to reduce the number of leaf scale to standardize off. また、各エントリのネットワークマスクが可変長であるが、いかなるエントリの組み合わせについても、ロンゲストマッチの関係にないエントリからなるルーチングテーブル、および各エントリのネットワークマスクが可変長であり、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブル、のどちらに対しても適用しようとするものである。 Although the network mask for each entry a variable length, for the combination of any entry, the routing table consists of entries that are not in the relationship of the longest match, and network mask of each entry is a variable length, the longest match routing table comprising one or more pairs of entries in the relationship, but also to be applied to either. 図6は、この実施の形態3を説明するために用いるルーチングテーブルの内容の例を示す図である。 Figure 6 is a diagram showing an example of the contents of the routing table used for explaining the third embodiment. 図6に示すルーチングテーブルでは、各エントリのネットワークマスクが可変長であり、ロンゲストマッチの関係にあるエントリを1組以上含む。 The routing table shown in FIG. 6, includes a network mask of each entry has a variable length, the entry in the relation of longest match one or more sets. 【0057】図7は、この実施の形態3による検索木構成方式に基づいて、図6に示されるルーチングテーブルに対し構成した検索木を示す図である。 [0057] Figure 7 is based on the search tree configuration method according to the third embodiment, shows a search tree that is configured for routing table shown in FIG. なお、図7における各構成要素に付与された符号は、実施の形態1の図2に示す各構成要素に付与された符号と同一で説明を省く。 Incidentally, reference numerals given to the components in FIG. 7, not described in identical code attached to each component shown in FIG. 2 of the first embodiment. また、図7の例でも、次のノード13を決定するために検索データ6に対し一度に検査する連続するNビットとして、N=2の場合を示している。 Further, in the example of FIG. 7, as N successive bits inspected at once to search data 6 to determine the next node 13, shows the case of N = 2. 【0058】この実施の形態3によるノード13とリーフ5は、実施の形態1で述べた規則1〜3、および実施の形態2で述べた規則4、5に従って置かれる。 [0058] node 13 and the leaf 5 according to the third embodiment are placed according to the rules 4 and 5 described in Rule 1-3, and Embodiment 2 described in the first embodiment. 但し、 However,
実施の形態1で述べた規則3に示すリーフ5の置き方を以下のように変形する。 The way of placing the leaf 5 shown in Rule 3 described in Embodiment 1 will be modified as follows. ・規則3の変形:ノード13の置き方、ビット番号17 - Rule 3 variants: how to place the node 13, the bit number 17
の付け方は規則3と同様。 Is about how the same manner as Rule 3. この1つのエントリに対する複数のノード13には、前記エントリの情報からなるリーフ5を各ノード間で共通に1個置く。 The plurality of nodes 13 for the one entry, put a leaf 5 which consists of the information of the entry in common between the nodes. 【0059】N=2とした図7の例では、ノード13r [0059] In the example of FIG. 7 and N = 2, node 13r
と13uが、実施の形態1で述べた規則3に該当し、リーフ5rを共通に1個持つ。 And 13u are correspond to rule 3 as described in the first embodiment, with one leaf 5r in common. 図7に示すこの実施の形態3による検索木を用いた検索手順については、実施の形態1で述べた検索手順と同様である。 For search procedure using a search tree according to the third embodiment shown in FIG. 7, it is similar to the search procedure described in the first embodiment. 【0060】この実施の形態3による検索木構成方式は、以上のように実行されるので、検索木を構成するリーフの数は、ルーチングテーブルのエントリ数に等しくなり、実施の形態1または実施の形態2による検索木構成方式に比較し、検索木を構成するリーフの数を削減することが可能である。 [0060] Since the search tree configuration method according to the third embodiment is performed as described above, the number of leaves that make up the search tree is equal to the number of entries in the routing table, the embodiment 1 or embodiment compared to the search tree configuration method according to a second, it is possible to reduce the number of leaves that make up the search tree. 【0061】なお、以上では、N=2の例を示したが、 [0061] In the above, the example of N = 2,
この実施の形態3による検索方式は、N≧3の場合についても同様に適用可能であり、同様の効果を奏する。 Search method according to the third embodiment is also applicable to the case of N ≧ 3, the same effects. 【0062】実施の形態4. [0062] Embodiment 4. この実施の形態4による検索方式は、ノードの共通化を計りノードの数を削減するものである。 Search method according to the fourth embodiment is to reduce the number of nodes weighed common node. また、各エントリのネットワークマスクが可変長であるが、いかなるエントリの組み合わせについても、ロンゲストマッチの関係にないエントリからなるルーチングテーブル、または各エントリのネットワークマスクが可変長であり、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブル、のどちらに対しても適用しようとするものである。 Although the network mask for each entry a variable length, for the combination of any entry, longest match of the routing table consists of no entry in the relationship or network mask of each entry, is a variable length, the longest match routing table comprising one or more pairs of entries in the relationship, but also to be applied to either. 【0063】図8は、この実施の形態4による検索木構成方式に基づいて、図6に示されるルーチングテーブルに対し構成した検索木を示す図である。 [0063] Figure 8 is based on the search tree configuration method according to the fourth embodiment shows a search tree that is configured for routing table shown in FIG. なお、図8における各構成要素に付与された符号は、実施の形態1の図2に示す各構成要素に付与された符号と同一で説明を省く。 Incidentally, reference numerals given to the components in FIG. 8, not described in identical code attached to each component shown in FIG. 2 of the first embodiment. また、図8の例でも、次のノード13を決定するために検索データ6に対し一度に検査する連続するNビットとして、N=2の場合を示している。 Further, in the example of FIG. 8, as N successive bits inspected at once to search data 6 to determine the next node 13, shows the case of N = 2. 【0064】この実施の形態4によるノード13とリーフ5は、実施の形態1で述べた規則1〜3、および実施の形態2で述べた規則4、5に従って置かれる。 [0064] node 13 and the leaf 5 according to the fourth embodiment is placed according to the rules 4 and 5 described in Rule 1-3, and Embodiment 2 described in the first embodiment. さらに、以下の規則に従って置かれる。 Furthermore, it placed according to the following rules. 1つのエントリに対し、実施の形態1で述べた規則3、または実施の形態2 For one entry, Rule 3 described in the first embodiment or the second embodiment,
で述べた規則4または規則5に従って置いた複数のノード13が、 ・規則6:全て次のノードと接続されているノード(内部ノード)からなる場合、前記各内部ノードには、前記エントリの情報からなるリーフ5を前記内部ノード間で共通に1個置く。 In the plurality of nodes 13 placed according to the rules 4 or rule 5 mentioned is - Rule 6: If all of nodes that are connected to the next node (internal node), the in each internal node, information of the entry leaf 5 consisting put in common between the internal node. ・規則7:内部ノードと次のノードと接続されているノード(外部ノード)からなる場合、 −前記内部ノードには、前記エントリの情報からなるリーフ5を前記内部ノード間で共通に1個置き、−前記外部ノードを、前記内部ノードのいずれか1個で代用する。 - Rule 7: If consisting of the internal node and the next node and the connected node (external node), - to the internal node, placing one leaf 5 consisting of information of the entry in common between the internal node , - said external node, to substitute any one of the said internal node. ・規則8:全て外部ノードからなる場合、 −前記外部ノードを、前記外部ノードのいずれか1個で代表し、 −前記外部ノードの代表には、前記エントリの情報からなるリーフ5を1個置く。 - Rule 8: If all made from the external node, - the external node, representative either in one of said external node, - Representative of the external node, put a leaf 5 which consists of the information of the entry . 【0065】N=2とした図8の例では、ノード13r [0065] In the example of FIG. 8 and N = 2, node 13r
が前記の規則7に該当し、図7に示す実施の形態3による検索木のノード13uが、図8に示す実施の形態4による検索木のノード13rで代用される。 There corresponds to the rule 7, node 13u of the search tree according to the third embodiment shown in FIG. 7 is replaced with the node 13r search tree according to the fourth embodiment shown in FIG. 図8に示すこの実施の形態4による検索木を用いた検索手順については、実施の形態1で述べた検索手順と同様である。 For search procedure using a search tree according to the fourth embodiment shown in FIG. 8 is similar to the search procedure described in the first embodiment. 【0066】次に、図8に示す検索木を用いて、実施の形態4による検索の例を示す。 Next, using a search tree shown in FIG. 8 shows an example of a search according to the fourth embodiment. 検索データ6を0xD0 The search data 6 0xD0
000000とする。 000000 to. 以下の手順で検索が実行される。 Search the following steps are executed. (1)図8に示す検索木の頂点のノード13oから出発する。 (1) starting from the node 13o vertices of the search tree shown in FIG. (2)前記ノード13oのビット番号17oは0なので、前記検索データ6のビット0とビット1を検査し、 (2) Bit No. 17o of the node 13o is 0, so check the bits 0 and 1 of the search data 6,
「11」なので最も右のノード13vに進む。 So "11", the flow goes to the most right of the node 13v. (3)前記ノード13vのビット番号17vは2なので、前記検索データ6のビット2とビット3を検査し、 (3) the bit number 17v of the node 13v is 2 examines the bits 2 and 3 of the search data 6,
「01」なので最も左のノード13rに進む。 Go to "01", so the left-most node 13r. (4)前記ノード13rは、リーフ5rを持つので、前記リーフ5rの宛先ネットワークIPアドレス1rとネットワークマスク2rの組をスタックに積む。 (4) The node 13r Since with a leaf 5r, gain set of the destination network IP address 1r and network mask 2r of the leaf 5r stack. 【0067】(5)前記ノード13rのビット番号17 [0067] (5) the bit number of the node 13r 17
rは4なので、前記検索データ6のビット4とビット5 r is 4, the bit of the search data 6 4 and bit 5
を検査し、「00」なので最も左のノード13zに進む。 Check the, proceed to the most since "00" left of the node 13z. (6)前記ノード13zは、リーフ5zを持つので、前記リーフ5zの宛先ネットワークIPアドレス1zとネットワークマスク2zの組をスタックに積む。 (6) the node 13z, because with leaf 5z, gain destination network IP address 1z a set of network mask 2z of the leaf 5z stack. (7)前記ノード13zのビット番号17zは6なので、前記検索データ6のビット6とビット7を検査し、 (7) bit number 17z of the node 13z is so 6 examines the bits 6 and 7 of the search data 6,
「00」なので最も左のノード13に進もうとするが、 But when you Susumo to "00", so the left-most node 13,
存在しないので、ノード13zで検索木のなぞりを終える。 Because it does not exist, finish a tracing of the search tree node 13z. (8)スタックの最後に積んだ宛先ネットワークIPアドレス1zとネットワークマスク2zの組を取り出し、 (8) takes out the last laden destination network IP address 1z a set of network mask 2z stack,
前記検索データ6と前記ネットワークマスク2zをビット毎にAND演算した結果と前記宛先ネットワークIP The results of said search data 6 the network mask 2z AND operation for each bit destination network IP
アドレス1zを比較する。 To compare the address 1z. 【0068】(9)(0xD0000000)&(0x [0068] (9) (0xD0000000) & (0x
FC000000)≠0xC0000000 前記式の結果から、スタックの最後から2番目に積んだ宛先ネットワークIPアドレス1rとネットワークマスク2rの組を取り出し、前記検索データ6と前記ネットワークマスク2rをビット毎にAND演算した結果と前記宛先ネットワークIPアドレス1rを比較する。 FC000000) ≠ from 0xC0000000 said expression results, taken out from the end of the destination network IP address 1r and network mask 2r laden in the second set of stacks, result of the AND operation of the network mask 2r and the search data 6 for each bit and comparing the destination network IP address 1r. (10)(0xD0000000)&(0xE0000 (10) (0xD0000000) & (0xE0000
000)=0xC0000000 前記式の結果から、前記宛先ネットワークIPアドレス1rと前記ネットワークマスク2rの組が、求めるエントリであり、検索を終了する。 From 000) = 0xC0000000 said expression results, the destination network IP address 1r and the set of the network mask 2r is the entry to determine, the search ends. 【0069】この実施の形態4による検索木構成方式は、以上のように実行されるので、実施の形態1〜3のいずれかによる検索木構成方式に比較し、検索木を構成するノードの数を削減することが可能である。 [0069] The number of nodes search tree configuration method according to the fourth embodiment, since it is performed as described above, for comparing the search tree configuration method according to any of the first to third embodiments, which constitute the search tree it is possible to reduce the. 【0070】なお、以上では、N=2の例を示したが、 [0070] In the above, the example of N = 2,
この実施の形態4による検索方式は、N≧3の場合についても同様に適用可能であり、同様の効果を奏する。 Search method according to the fourth embodiment is also applicable to the case of N ≧ 3, the same effects. 【0071】実施の形態5. [0071] Embodiment 5. この実施の形態5による検索方式は、検索時間の短縮、メモリアクセス回数の削減およびビット幅の削減を計るものである。 Search method according to the fifth embodiment, reduction of the search time, but to measure the reduction of reduction and the bit width of the memory access count. また、各エントリのネットワークマスクが可変長であり、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し適用しようとするものである。 The network mask for each entry has a variable length, it is intended to apply to routing table containing an entry in the relation of longest match one or more sets. 例えば、 For example,
図4に示すルーチングテーブルに対し、この実施の形態5における検索方式に基づき構成した検索木は、N=2 To routing table shown in FIG. 4, configured search tree based on the search method in the fifth embodiment, N = 2
の場合、図5に示す検索木と同様である。 For the same as the search tree shown in FIG. 【0072】次に、図9のフローチャートを用いて、この実施の形態5による検索方式の流れを説明する。 Next, with reference to the flowchart of FIG. 9, the flow of the search system according to the fifth embodiment. なお、図9は、N=2の場合の例である。 Incidentally, FIG. 9 is an example in the case of N = 2. フローチャートにおいて、ステップ201で、出発点を頂点のノード1 In the flowchart, in step 201, the node of the vertex starting point 1
3とし、ステップ202に進む。 3 and then proceeds to step 202. ステップ202で、前記ノード13に対するリーフ5の有無を検査する。 In step 202, to check whether the leaf 5 with respect to the node 13. 有の場合、ステップ203に進み、無の場合、ステップ20 In the case of Yes, the process proceeds to step 203, the case of no, step 20
6に進む。 Proceed to 6. ステップ203で、検索データ6と前記リーフ5の宛先ネットワークIPアドレス1を、以前比較済みのビットの次のビット、すなわち前回比較時に使用したネットワークマスク2のMSB側から見て最初に0となるビットから、前記リーフ5のネットワークマスク2の In step 203, the destination network IP address 1 of the and the search data 6 leaf 5, the next bit of the previous comparison already bits, that is, initially 0 as viewed from the MSB side of the network mask 2 used in the previous comparison bit from the leaf 5 of the network mask 2
MSB側から見て最後に1となるビットまで比較する。 When viewed from the MSB side compared to the end in the 1 bit. 両者が等しい場合、ステップ204に進み、両者が異なる場合、ステップ211に進む。 If they are equal, the process proceeds to step 204, if they are different, the process proceeds to step 211. 【0073】ここで、前回比較時に使用したネットワークマスク2については、ネットワークマスク格納用レジスタ(レジスタ1とし、図示せず)に一時的に記憶してあるものを使用する(下記ステップ204参照)。 [0073] Here, the network mask 2 used in the previous comparison, (a register 1, not shown) network mask storage register used which are temporarily stored in (see below step 204). このレジスタ1の初期値は、0x00000000である。 The initial value of this register 1 is 0x00000000.
ステップ204で、前記リーフ5のネットワークマスク2をレジスタ1に格納し、ステップ205に進む。 In step 204, stores the network mask 2 of the leaf 5 into the register 1, the process proceeds to step 205. ステップ205で、前記リーフ5の内容をリーフ格納用レジスタ(レジスタ2とする)に格納し、ステップ206に進む。 In step 205, stores the contents of the leaf 5 leaf storage register (the register 2), the process proceeds to step 206. ステップ206で、検索データ6に対し、前記ノード13のビット番号17が含まれる2ビット単位のビットの値全てを検査し、「00」でればステップ207 In step 206, to search data 6 examines all values ​​of bits of 2-bit unit including the bit number 17 of the node 13, "00" Dere If step 207
に進む。 Proceed to. ステップ207で、前記ノード13に対する最も左の下位のノード13の有無を検査する。 In step 207, to check whether the lower node 13 of the leftmost relative to the node 13. 有の場合、 In the case of Yes,
ステップ209に進み、無の場合、ステップ211に進む。 The procedure proceeds to step 209, the case of no, the process proceeds to step 211. 【0074】ステップ209で、前記最も左の下位のノード13に移動し、ステップ202に再び戻る。 [0074] In step 209, the most moved to the left of the lower node 13, it returns to step 202. 以上のステップ206、207、209は、2ビット単位のビットの値が「00」の場合を述べたが、「01」、「1 Above steps 206,207,209, although bits of the 2-bit units mentioned in the case of "00", "01", "1
0」、「11」の場合もそのビットの値に応じて、同様な手順を踏む。 0 ", depending on the value of the bit in the case of" 11 ", go through the same procedure. ステップ211で、レジスタ2にリーフ5が格納されているか検査する。 In step 211, the register 2 leaf 5 is examined whether it is stored. 有の場合、ステップ2 In the case of Yes, step 2
12に進む。 Proceed to 12. 無の場合、ステップ213に進む。 In the case of no, the process proceeds to step 213. ステップ212に進んだ場合、前記レジスタ2に格納されたリーフ5が求めるエントリである。 When step 212 is an entry which is a leaf 5 which is stored in the register 2 obtains. ステップ213に進んだ場合、求めるエントリは、ルーチングテーブルに存在しない。 If it proceeds to step 213, entry ask is, it does not exist in the routing table. 【0075】なお、前記ステップ205では、レジスタ2にリーフ5の内容を格納したが、検索木を例えばルータ等検索を実行する装置内のメモリ等の記憶装置上に構成した場合、レジスタ2に、前記リーフ5の内容の代わりに、リーフ5が格納されている記憶装置上のアドレス情報を格納してもよい。 [0075] In step 205, when it stores the contents of the leaf 5 to register 2, which is configured in a storage device such as a memory in the device for executing a search tree for example router or the like search, the register 2, instead of the contents of the leaf 5 may store the address information in the storage device leaves 5 are stored. 【0076】次に、図5に示す検索木を用いて、この実施の形態5による検索の例を示す。 Next, using a search tree shown in FIG. 5 shows an example of a search by the fifth embodiment. 検索データ6を0x The search data 6 0x
D0000000とする。 And D0000000. 以下の手順で検索が実行される。 Search the following steps are executed. (1)図5に示す検索木の頂点のノード13oから出発する。 (1) starting from the node 13o vertices of the search tree shown in FIG. (2)前記ノード13oのビット番号17oは0なので、前記検索データ6のビット0とビット1を検査し、 (2) Bit No. 17o of the node 13o is 0, so check the bits 0 and 1 of the search data 6,
「11」なので最も右のノード13vに進む。 So "11", the flow goes to the most right of the node 13v. (3)前記ノード13vは、リーフ5vを持つので、検索データ6と前記リーフ5vの宛先ネットワークIPアドレス1vを、以前比較済みのビットの次のビット(今回初めての比較なのでビット0)から、前記リーフ5v (3) the node 13v Since with a leaf 5 v, the destination network IP address 1v said the search data 6 leaf 5 v, the next bit of the previous comparison already bit (bit 0 because the first comparison time), the leaf 5v
のネットワークマスク2vのMSB側から見て最後に1となるビット(ビット1)まで比較する。 When viewed from the MSB side of the network mask 2v compared to the last a 1-bit (bit 1). (4)前記の結果、両者は「11」と一致するので、前記ネットワークマスク2vをレジスタ1に格納し、前記リーフ5vをレジスタ2に格納する。 (4) the results, since they are consistent with "11", and stores the network mask 2v in register 1, and stores the leaf 5v to register 2. 【0077】(5)前記ノード13vのビット番号17 [0077] (5) the bit number of the node 13v 17
vは2なので、前記検索データ6のビット2とビット3 v is 2, bit 2 and bit 3 of the search data 6
を検査し、「01」なので左から2番目のノード13w Check the, "01", so the second node from the left 13w
に進む。 Proceed to. (6)前記ノード13wは、リーフ5wを持つので、検索データ6と前記リーフ5wの宛先ネットワークIPアドレス1wを、前回比較時に使用したネットワークマスク2vのMSB側から見て最初に0となるビット(ビット2)から、前記リーフ5wのネットワークマスク2wの (6) the node 13w, since with leaf 5w, first becomes 0 when viewed the destination network IP address 1w of the the search data 6 leaf 5w, from the MSB side of the network mask 2v used in the previous comparison bit ( bits 2), the network mask 2w of the leaf 5w
MSB側から見て最後に1となるビット(ビット3)まで比較する。 When viewed from the MSB side compared to the end in a 1-bit (bit 3). (7)前記の結果、両者は「01」と一致するので、前記ネットワークマスク2wをレジスタ1に格納し、前記リーフ5wをレジスタ2に格納する。 (7) the results, since they are consistent with "01", and stores the network mask 2w in register 1, and stores the leaf 5w to register 2. (8)前記ノード13wのビット番号17wは4なので、前記検索データ6のビット4とビット5を検査し、 (8) bit number 17w of the node 13w is 4, checks the bits 4 and 5 of the search data 6,
「00」なので最も左のノード13に進もうとするが、 But when you Susumo to "00", so the left-most node 13,
存在しないので、ノード13wで検索木のなぞりを終える。 Because it does not exist, finish a tracing of the search tree node 13w. (9)レジスタ2のリーフ5の有無を検査し、リーフ5 (9) to check the presence or absence of leaf 5 of the register 2, leaf 5
wがあるので、リーフ5wが、求めるエントリであり、 Because there is a w, leaf 5w is the entry to seek,
検索を終了する。 To end the search. 【0078】この実施の形態5による検索方式は、図9 [0078] search method according to the fifth embodiment, FIG. 9
に示す処理をハードウェアで実行した場合、ステップ2 If the processing shown in the run in hardware, Step 2
02〜205の処理とステップ206〜210の処理を並行して実施することが可能であり、従来の検索方式に比較し、検索時間を短縮することが可能である。 The processing performed in steps 206 to 210 of from 02 to 205 can be implemented in parallel, compared with the conventional search method, it is possible to shorten the search time. また、 Also,
この実施の形態5による検索方式は、リーフ5を持つノード13を経由する毎に、以前比較済みのビットを比較の対象としないため、比較処理毎のメモリアクセス回数の削減および検索木を格納するメモリビット幅の削減でき、さらに検索時間の短縮およびハードウェア規模の縮小を図ることができる。 Search method according to the fifth embodiment, each passing through a node 13 with a leaf 5, since it does not be compared with previous comparison already bits, stores the reduction and search trees of the memory access count for each comparison process reduction of the memory bit width can, can be further shortened and reduced hardware scale of search time. 【0079】メモリアクセス回数の削減およびメモリビット幅の削減の例を以下に示す。 [0079] An example of a reduction of reduction and memory bit width of the memory access count below. 例えば、128ビットの検索データ6を対象とした検索を実行する場合、以前ビット0〜95を比較済みならば、次の比較では、ビット96〜127を比較すれば良い。 For example, to perform a search that targets the search data 6 of 128 bits, if compared already earlier bits 0 to 95, the following comparison, may be compared bits 96-127. また、検索木を構成するメモリを32ビット幅で構成した場合、前記図9のステップ203で前記ビット96〜127の比較に要する前記メモリのリード回数は、リーフ5の宛先ネットワークIPアドレス1のビット96〜127に対し、1 Further, when configuring the memory constituting the search tree 32 bits wide, read count of the memory required for the comparison of the bit 96 to 127 in step 203 of FIG. 9, the bit of the destination network IP address 1 of the leaf 5 for 96-127, 1
回、リーフ5のネットワークマスク2のビット96〜1 Times, bit network mask 2 of the leaf 5 96-1
27に対し、1回、合計2回である。 For 27, once, a total of two times. もしも、前記図9 If, FIG. 9
のステップ203に進む毎に、全128ビットを比較した場合は、リーフ5の宛先ネットワークIPアドレス1 Every advancing to step 203, when compared with all the 128 bits, the destination network IP address 1 of the leaf 5
のビット0〜127に対し、4回、リーフ5のネットワークマスク2のビット0〜127に対し、4回、合計8 To bits 0 to 127, four times, for the bit 0 to 127 network mask 2 leaf 5, 4 times, total 8
回であり、後者のメモリアクセス回数は、前者に比較し4倍である。 A times, the latter number of memory accesses is four times as compared to the former. 【0080】一方、後者の場合で、前記メモリのリード回数を前者と同等にしようとすると、検索木を構成するメモリを128ビット幅で構成する必要がある。 [0080] On the other hand, in the latter case, an attempt to read the number of the memory equal to the former, it is necessary to configure the memory constituting the search tree 128 bits wide. 【0081】以上のように、この実施の形態5による検索方式は、全体の検索時間の短縮および全体のハードウェア規模の縮小を同時に図ることが可能である。 [0081] As described above, the search system according to the fifth embodiment, it is possible to enhance the overall search time reduction and a reduction in the overall hardware scale at the same time. また、 Also,
前記メモリアクセス回数の削減やメモリのビット幅の削減は、前記図9に示す処理をソフトウェアで実行した場合にも得られる効果である。 The reduction of the reduction and the bit width of the memory of the memory access count is an effect is also obtained in the case of executing the processing shown in FIG. 9 in software. 【0082】なお、以上では、N=2の例を示したが、 [0082] In the above, the example of N = 2,
この実施の形態5による検索方式は、N≧3の場合についても同様に適用可能であり、同様の効果を奏する。 Search method according to the fifth embodiment is also applicable to the case of N ≧ 3, the same effects. また、この実施の形態5による検索方式は、N=1の場合についても同様に適用可能であり、同様の効果を奏する。 The search method according to the fifth embodiment is also applicable for the case of N = 1, the same effects. 【0083】実施の形態6. [0083] Embodiment 6. この実施の形態6による検索方式は、メモリアクセス回数を減らし検索時間を短くするものである。 Search method according to the sixth embodiment is to shorten the search time reduce the memory access count. また、各エントリのネットワークマスクが可変長であるが、いかなるエントリの組み合わせについても、ロンゲストマッチの関係にないエントリからなるルーチングテーブル、または、各エントリのネットワークマスクが可変長であり、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブル、のどちらに対しても適用しようとするものである。 Although the network mask for each entry a variable length, for the combination of any entry, longest match of the routing table consists of no entry in the relationship or, a network mask of each entry is a variable length, longest match routing table comprising one or more pairs of entries in the relationship, for both are intended to apply. 【0084】例えば、図1に示すルーチングテーブルに対し、この実施の形態6による検索方式に基づき構成した検索木は、N=2の場合、図2に示す検索木と同様であり、また、例えば、図4に示すルーチングテーブルに対し、この実施の形態6による検索方式に基づき構成した検索木は、N=2の場合、図5に示す検索木と同様である。 [0084] For example, with respect to the routing table shown in FIG. 1, structure search tree based on the search system according to the sixth embodiment, for N = 2, it is similar to the search tree shown in FIG. 2, also, e.g. , to the routing table shown in FIG. 4, configured search tree based on the search system according to the sixth embodiment, for N = 2, it is similar to the search tree shown in FIG. 【0085】次に、図10のフローチャートを用いて、 [0085] Next, with reference to the flowchart of FIG. 10,
この実施の形態6による検索方式の流れを説明する。 The flow of the search system according to the sixth embodiment will be described. なお、図10は、N=2の場合の例である。 Incidentally, FIG. 10 is an example in the case of N = 2. フローチャートにおいて、ステップ221で、ネットワークマスク2 In the flowchart, in step 221, network mask 2
として、現在のノード13のビット番号17を展開した値を記憶し、 宛先ネットワークIPアドレス1として、現在のノード13よりも下位のノード13のいずれかが持つリーフ5の宛先ネットワークIPアドレス1を記憶し、ステップ203に進む。 As, stores the expanded value of bit number 17 of the current node 13, the destination as a network IP address 1, stores the destination network IP address 1 of the leaf 5 with either lower node 13 than the current node 13 then, the process proceeds to step 203. 【0086】前記の展開とは、前記ビット番号17の値だけ、MSB側から1を並べ、それ以降0を並べたネットワークマスク2を作成することを指す。 [0086] and the deployment, only the value of the bit number 17, arranged one from the MSB side, it refers to creating a network mask 2 formed by arranging 0 thereafter. 例えば、前記ビット番号17が2の場合、ネットワークマスク2は0 For example, if the bit number 17 is 2, the network mask 2 0
xC000000となる。 The xC000000. 次に、ステップ222で、前記ノード13に対するリーフ5の有無を検査する。 Next, at step 222, to check whether the leaf 5 with respect to the node 13. 有の場合、ステップ205に進み、無の場合、ステップ20 In the case of Yes, the process proceeds to step 205, the case of no, step 20
6に進む。 Proceed to 6. なお、その他のステップは、図9に示される実施の形態5の検索の流れを示すフローチャートで、同一番号が付けられるステップと同一である。 The other step is a flowchart showing the flow of search of the fifth embodiment shown in FIG. 9 are identical to the steps of the same are numbered. 但し、図9 However, as shown in FIG. 9
と図10では、ステップ202とステップ204の進む先が異なる。 In Figure 10, the destination of travel of step 202 and step 204 differs from. 【0087】次に、図2に示す検索木を用いて、この実施の形態6による検索の例を示す。 Next, using a search tree shown in FIG. 2 shows an example of a search by the sixth embodiment. 検索データ6を0x The search data 6 0x
D0000000とする。 And D0000000. 以下の手順で検索が実行される。 Search the following steps are executed. (1)図2に示す検索木の頂点のノード13oから出発する。 (1) starting from the node 13o vertices of the search tree shown in Figure 2. (2)前記ノード13oは、リーフ5を持たないので、 (2) the node 13o, since no leaf 5,
ネットワークマスク2として、前記ノード13oに付くビット番号17oを展開した0x00000000を使用し、宛先ネットワークIPアドレス1として、例えば、ノード13rが持つリーフ5rの宛先ネットワークIPアドレス1rを使用し、検索データ6と前記リーフ5rの宛先ネットワークIPアドレス1rを、以前比較済みの次のビット(今回初めての比較なのでビット0) As the network mask 2, using 0x00000000 deploying the bit number 17o stick to the node 13o, as the destination network IP address 1, for example, using the destination network IP address 1r leaf 5r having the node 13r, and the search data 6 wherein the destination network IP address 1r leaf 5r, previous comparison already next bit (bit 0 because the first comparison time)
から、前記ノード13oに付くビット番号17oを展開したネットワークマスク2のMSB側から見て最後に1となるビットまで比較する。 From comparing until finally a 1 bit when viewed from MSB side of the network mask 2 deploying the bit number 17o stick to the node 13o. 【0088】但し、前記ネットワークマスク2の値は全て0なので、比較するビットはない。 [0088] However, the value of the network mask 2 so all 0, no bits to be compared. 従って、両者は無条件に一致すると見なす。 Therefore, when both match unconditionally considered. (3)前記の結果、前記ネットワークマスク2をレジスタ1に格納する。 (3) the results, to store the network mask 2 to the register 1. (4)前記ノード13oのビット番号17oは0なので、前記検索データ6のビット0とビット1を検査し、 (4) bit number 17o of the node 13o is 0, so check the bits 0 and 1 of the search data 6,
「11」なので最も右のノード13vに進む。 So "11", the flow goes to the most right of the node 13v. 【0089】(5)前記ノード13vは、リーフ5を持たないので、ネットワークマスク2として、前記ノード13vに付くビット番号17vを展開した0xC000 [0089] (5) The node 13v Since no leaf 5, a network mask 2, the expansion of the bit number 17v stick to the node 13v 0xC000
0000を使用し、宛先ネットワークIPアドレス1として、例えば、ノード13tが持つリーフ5tの宛先ネットワークIPアドレス1tを使用し、検索データ6と前記リーフ5tの宛先ネットワークIPアドレス1t Using 0000 as the destination network IP address 1, for example, node 13t using the destination network IP address 1t leaf 5t with the destination network IP address 1t of the search data 6 the leaf 5t
を、前回比較時に使用したネットワークマスク2のMSB The, MSB of the network mask 2 was used in the previous comparison
側から見て最初に0となるビット(ビット0)から、前記ノード13vに付くビット番号17vを展開したネットワークマスク2のMSB側から見て最後に1となるビット(ビット1)まで比較する。 From the beginning to 0 the bits as viewed from the side (bit 0) is compared to the node look a bit number 17v from the MSB side of the network mask 2 was expanded stick to 13v finally becomes 1 bit (bit 1). 【0090】(6)前記の結果、両者は「11」と一致するので、前記ネットワークマスク2をレジスタ1に格納する。 [0090] (6) the results, since they are consistent with "11", and stores the network mask 2 to the register 1. (7)前記ノード13vのビット番号17vは2なので、前記検索データ6のビット2とビット3を検査し、 (7) bit number 17v of the node 13v is 2 examines the bits 2 and 3 of the search data 6,
「01」なので左から2番目のノード13uに進む。 Proceeds from the left, so "01" to the second node 13u. (8)前記ノード13uは、リーフ5uを持つので、検索データ6と前記リーフ5uの宛先ネットワークIPアドレス1uを、前回比較時に使用したネットワークマスク2のMSB側から見て最初に0となるビット(ビット2)から、前記リーフ5uのネットワークマスク2uの (8) The node 13u, because with leaf 5u, first becomes 0 search data 6 and the destination network IP address 1u of the leaf 5u, as viewed from the MSB side of the network mask 2 used in the previous comparison bit ( bits 2), the network mask 2u of the leaf 5u
MSB側から見て最後に1となるビット(ビット2)まで、すなわちビット2を比較する。 Finally up to 1 the bits (bit 2) when viewed from the MSB side, namely comparing the bit 2. 【0091】(9)前記の結果、両者は「0」と一致するので、前記ネットワークマスク2uをレジスタ1に格納し、前記リーフ5uをレジスタ2に格納する。 [0091] (9) the results, since they are consistent with "0", and stores the network mask 2u to register 1, and stores the leaf 5u to register 2. (10)前記ノード13uのビット番号17uは4なので、前記検索データ6のビット4とビット5を検査し、 (10) bit number 17u of the node 13u is 4, checks the bits 4 and 5 of the search data 6,
「00」なので最も左のノード13に進もうとするが、 But when you Susumo to "00", so the left-most node 13,
存在しないので、ノード13uで検索木のなぞりを終える。 Because it does not exist, finish a tracing of the search tree node 13u. (11)レジスタ2のリーフ5の有無を検査し、リーフ5uがあるので、リーフ5u(リーフ5rと同内容) (11) checks for register 2 leaf 5, there is a leaf 5u, leaf 5u (leaf 5r same content)
が、求めるエントリであり、検索を終了する。 There is an entry to seek, to end the search. 【0092】この実施の形態6による検索方式は、前記図10に示す処理をハードウェアで実行した場合、ステップ202〜205および221、222の処理とステップ206〜210の処理を並行して実施することが可能であり、従来の検索方式に比較し、検索時間を短縮することが可能である。 [0092] search method according to the sixth embodiment, when the process shown in FIG. 10 executed by hardware, implemented in parallel processing performed in steps 206 to 210 in steps 202-205 and 221 and 222 it is possible, compared with the conventional search method, it is possible to shorten the search time. また、この実施の形態6による検索方式では、前記ステップ203に進む毎に、ノード1 Also, the search method according to the sixth embodiment, each flow proceeds to step 203, node 1
3がリーフ5を持つか持たないかに関わらず、比較を実施し、以前比較済みのビットを比較の対象としないため、図10に示す処理をハードウェアで実行した場合、 3 regardless of whether or not they have the leaf 5, and comparison made, for not be compared with previous comparison already bits when executing the processing shown in FIG. 10 in hardware,
比較処理毎のメモリアクセス回数の削減および検索木を格納するメモリビット幅の削減が可能となり、さらに検索時間の短縮およびハードウェア規模の縮小を図ることが可能である。 Reduction of the memory bit width for storing the reduction and search tree memory access count of the comparison process each becomes possible and it is possible to further shorten and reduce the hardware scale of search time. 【0093】比較処理毎のメモリアクセス回数の削減およびメモリビット幅の削減の例を以下に示す。 [0093] Examples of reducing reduction and memory bit width of the memory access count for each comparison process described below. この実施の形態6による検索方式と実施の形態5による検索方式において、検索木を構成するメモリに対し、検索データ6の比較処理に要するリード回数を比較する。 In the search method according to a fifth search method as in accordance with the sixth embodiment, the memory constituting the search tree, to compare the read count required for the comparison processing of the search data 6. 例えば、 For example,
128ビットの検索データ6を対象とした検索を実行し、検索木を構成するメモリを32ビット幅で構成し、 Perform a search that targets 128 bits of the search data 6, constitutes a memory constituting the search tree 32 bits wide,
ある検索データ6に対し、検索を開始してから、リーフ5を持たないビット番号7が32、64、96の各ノード13を経由し、最後に、リーフ5を持つビット番号7 Respect to a certain retrieval data 6, since the start of the search, bit number 7 with no leaf 5 via the respective node 13 of 32,64,96, finally, the bit number with leaf 5 7
が128のノード13に到達した場合を想定する。 There is assumed a case that has reached the node 13 of 128. 【0094】この実施の形態6による検索方式では、各ノード13を経由する毎に、比較処理を行うため、ビット32のノード13で、ビット128のノードが持つリーフ5の宛先ネットワークIPアドレス1のビット0〜 [0094] In the search system according to the sixth embodiment, each time passing through each node 13, for performing the comparison process, the node 13 of bit 32, of the leaf 5 with node bit 128 of the destination network IP address 1 bit 0
31に対し、1回、ビット64のノード13で、前記宛先ネットワークIPアドレス1のビット32〜63に対し、1回、ビット96のノード13で、前記宛先ネットワークIPアドレス1のビット64〜95に対し、1 To 31, once, at the node 13 of bit 64, to bits 32-63 of the destination network IP address 1, once, at the node 13 of bit 96, bit 64 to 95 of the destination network IP address 1 against, 1
回、ビット128のノード13で、前記宛先ネットワークIPアドレス1のビット96〜127に対し、1回、 Times, the node 13 of bit 128, for the bit 96 to 127 of the destination network IP address 1, once,
前記ノード13で、前記リーフ5のネットワークマスク2のビット96〜127に対し、1回、合計5回リードする。 In the node 13, for the bit 96 to 127 of the network mask 2 of the leaf 5, once, to read a total of 5 times. 【0095】一方、実施の形態5による検索方式では、 [0095] On the other hand, in the search method according to the fifth embodiment,
ビット128のノード13に到達したときのみ比較処理を行うため、ビット128のノード13で、前記ノード13が持つリーフ5の宛先ネットワークIPアドレス1 Since the comparison process is performed only when it reaches the node 13 of bit 128, the node 13 of bit 128, the destination network IP address 1 of the leaf 5 in which the node 13 has
のビット0〜127に対し、4回、前記ノード13で、 The relative bit 0-127, four times, with the node 13,
前記リーフ5のネットワークマスク2のビット0〜12 Bits 0-12 of the network mask 2 of the leaf 5
7に対し、4回、合計8回リードする。 For 7, four times, to lead a total of eight times. 【0096】以上のように、前者のメモリアクセス回数の方が、後者に比較し少ない。 [0096] As described above, towards the number of memory accesses of the former is smaller compared to the latter. また、前者では、検索処理中にリードが分散するが、後者では、検索処理の最後にリードが集中するので、ハードウェア処理により、ノードのなぞりと前記比較処理に要するリードを並行して実施すれば、前者の全体の検索時間は、後者の全体の検索時間に比較しさらに短縮される。 Further, in the former, but the lead during the search process is distributed, in the latter, since the retrieval processing of the last read is concentrated, by hardware processing, it is performed in parallel leads required for the comparison process with the tracing of the node in the former the overall search time is further reduced as compared to the latter overall search time. 【0097】一方、後者の場合で、リードが集中しても検索時間を前者と同等にしようとすると、検索木を構成するメモリを128ビット幅で構成する必要があり、ハードウェア規模が増大する。 [0097] On the other hand, in the latter case, an attempt to lead the even search time to concentrate equivalent to the former, it is necessary to configure the memory constituting the search tree 128 bits wide hardware scale increases . 【0098】さらに、前者は、後者に比較し、比較の結果が不一致の場合に、検索結果を早期に知ることができ、平均検索時間が短縮される。 [0098] In addition, the former, as compared to the latter, when the result of comparison is a mismatch, the search results can be known at an early stage, the average search time is shortened. 【0099】以上のように、この実施の形態6による検索方式は、全体の検索時間の短縮および全体のハードウェア規模の縮小を同時に図ることが可能である。 [0099] As described above, the search system according to the sixth embodiment, it is possible to enhance the overall search time reduction and a reduction in the overall hardware scale at the same time. 【0100】なお、以上では、N=2の例を示したが、 [0100] In the above, the example of N = 2,
この実施の形態6による検索方式は、N≧3の場合についても同様に適用可能であり、同様の効果を奏する。 Search method according to the sixth embodiment is also applicable to the case of N ≧ 3, the same effects. また、この実施の形態6による検索方式は、N=1の場合についても同様に適用可能であり、同様の効果を奏する。 The search method according to the sixth embodiment is also applicable for the case of N = 1, the same effects. 【0101】 【発明の効果】以上のように第1の発明によれば、ネットワークマスクが可変長で、全てロンゲストマッチの関係にないエントリからなるルーチングテーブル対し、各ノードで一度に検査するビット数をNビット(N≧2) [0102] According to the first invention as described above, according to the present invention, a network mask of variable length, against the routing table consisting of entries not in relation to all longest match, inspected at a time in each node bit the number of N bits (N ≧ 2)
にし、可変長のネットワークマスクを格納するリーフのうち、長さがNビットの整数倍でないネットワークマスクを格納するリーフに対して、ノードを複数個置いた検索木を用いて、基数検索を行うようにしたので、可変長のネットワークマスクに対応することが可能であると共に、検索に要する時間の最大値が、 検索データのビット数/N で規定され、従来の検索方式に比較し、1/Nに削減することができ、ルータ等の検索を実行する装置の中継性能を向上できる。 To, of the leaf for storing the variable length network mask, on the leaf length to store the network mask not an integer multiple of N bits, using the search tree at a plurality of nodes, to perform radix search since the, with may correspond to the variable length network mask, the maximum value of the time required for the search is defined by the number of bits / N of the search data, as compared with the conventional search method, 1 / N It can be reduced to, thereby improving the relay performance of the device executing the search such as a router. 【0102】第2の発明によれば、ネットワークマスクが可変長で、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し、各ノードで一度に検査するビット数をNビット(N≧2)にし、可変長のネットワークマスクを格納するリーフのうち、長さがNビットの整数倍でないネットワークマスクを格納するリーフに対して、ノードを複数個置き、前記ノードが、他のリーフに対するノードと重複する場合、より短いネットワークマスクを格納するリーフに対するノードを置かず、より長いネットワークマスクを格納するリーフに対するノードを置いた検索木を用いて、基数検索を行うようにしたので、ロンゲストマッチに対応することが可能であり、ルータ等の検索を実行する装置の機能を向上できる。 [0102] According to the second invention, a network mask of variable length, longest match of the entries in the relationship to the routing table including one or more pairs, the number of bits to be examined at a time in each of the nodes N bits (N ≧ 2) in, and out of the leaf for storing the variable length network mask, on the leaf length to store the network mask not an integer multiple of N bits, place a plurality of nodes, said nodes, for other leaf If overlapping with nodes, without putting the node to the leaf for storing the shorter network mask, using the search tree at a node for a leaf for storing a longer network mask, since to perform the radix search, longest matches may correspond, can improve the function of the apparatus to perform searches such as a router. 【0103】第3の発明によれば、ネットワークマスクが可変長で、全てロンゲストマッチの関係にないエントリからなるルーチングテーブル、または、ネットワークマスクが可変長で、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し、各ノードで一度に検査するビット数をNビット(N≧2)にし、1個のリーフに対し、ノードを複数個置く場合、リーフを記憶する記憶装置に、前記リーフを1個格納し、 [0103] According to the third invention, the network mask of variable length, all longest match of the routing table consists of no entry in the relationship, or the network mask of variable length, the entry in the relation of longest match to a routing table comprising one or more pairs, the number of bits to be examined at a time in each node to N bits (N ≧ 2), to one leaf, when placing a plurality of nodes, a storage device for storing the leaf, the leaf stored one,
前記複数のノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納するようにしたので、検索木を構成するリーフの数を削減することができ、ルータ等の検索を実行する装置に搭載されるメモリ等の記憶装置の規模を縮小できる。 Wherein a plurality of nodes. Thus store both the address value of the storage device for identifying the location of the leaf in each of the, it is possible to reduce the number of leaves that make up the search tree, such as a router Search can be reduced the size of the storage device such as a memory that is mounted to an apparatus for performing. 【0104】第4の発明によれば、ネットワークマスクが可変長で、全てロンゲストマッチの関係にないエントリからなるルーチングテーブルに対し、または、ネットワークマスクが可変長で、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し、 [0104] According to a fourth aspect of the present invention, the network mask of variable length, with respect to the routing table of entries that are not in the relationship of all longest match, or the network mask of variable length, the relation of longest match to a routing table that includes an entry one or more sets,
各ノードで一度に検査するビット数をNビット(N≧ The number of bits to be examined at a time in each of the nodes N bits (N ≧
2)にし、1個のリーフに対し、ノードを複数個置き、 To 2), with respect to one of the leaf, place a plurality of nodes,
前記複数のノードに、次のノードと接続されるノード(内部ノード)と次のノードと接続されないノード(外部ノード)が含まれる場合、記憶装置に、 ・前記リーフを1個格納すると共に、 ・前記内部ノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、 ・前記外部ノードを、前記内部ノードのいずれかで代用するようにしたので、検索木を構成するノードの数を削減でき、ルータ等の検索を実行する装置に搭載されるメモリ等の記憶装置の規模を縮小できる。 It said plurality of nodes, if they contain a node connected to the next node (internal node) and not connected to the next node node (external node), the storage device, the-the leaf as well as one store, - and said internal node, both store the address value of the storage device for identifying the location of the leaf in each of the, the-said external node, since so as to substitute any of the internal node, the search tree It reduces the number of nodes forming, can reduce the size of the storage device such as a memory that is mounted to an apparatus for performing a search of the router or the like. 【0105】第5の発明によれば、ネットワークマスクが可変長で、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し、各ノードで一度に検査するビット数をNビット(N≧2)にし、検索中に到着するノード毎に・ノードに付けたビット番号に該当する検索データのビットの検査と、 ・前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較を逐次または並行して行い、前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除くようにしたので、ルータ等の検索を実行する装置に搭載されるメモリ等の記憶装置のアクセス回数の削減、およびメモリ等の記憶装置のアクセスビット幅の削減が可能となり、全体の検索時間の短縮、および全体のハードウェア規模の縮小を [0105] According to the fifth invention, the network mask of variable length, longest match of the entries in the relationship to the routing table including one or more pairs, the number of bits to be examined at a time in each of the nodes N bits (N ≧ 2) to sequentially inspected and bit search data corresponding to the bit number assigned to the nodes for each node to arrive during the search, if-the node has leaf, a comparison of the search data and the leaf or concurrently performed, in Comparative. Thus excluded from the subject of the previously once compare bits of the comparison already the search data, the storage device such as a memory that is mounted to an apparatus for performing a search of the router or the like reduction of the number of accesses, and reduced access bit width of a storage device such as a memory becomes possible, reducing the total search time, and a reduction in the overall hardware scale 図ることができる。 It is possible to achieve.
また、ルータ等の検索を実行する装置の中継性能を向上できる。 Further, it is possible to improve the relay performance of the device executing the search such as a router. 【0106】第6の発明によれば、ネットワークマスクが可変長で、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し、各ノードで一度に検査するビット数を1ビットにし、検索中に到着するノード毎に・ノードに付けたビット番号に該当する検索データのビットの検査と、 ・前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較を逐次または並行して行い、前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象としないようにしたので、ルータ等の検索を実行する装置に搭載されるメモリ等の記憶装置のアクセス回数の削減、およびメモリ等の記憶装置のアクセスビット幅の削減が可能となり、全体の検索時間の短縮、および全体のハードウェア規模の縮小を図ることが [0106] According to the sixth aspect, a network mask of variable length, with respect to the routing table including an entry in the relation of longest match one or more pairs, the number of bits to be examined at a time in each node 1 bit, inspection and bits of the search data corresponding to the bit number assigned to the node to node for each arriving during the search, if-the node has leaf, compares the search data and the leaf sequentially or in parallel , in the comparison, since to avoid the subject of earlier time compared bits of the comparison already the search data, reducing the number of accesses a storage device such as a memory that is mounted to an apparatus for performing a search of the router or the like, and reduced access bit width of a storage device such as a memory becomes possible, reducing the total search time, and is possible to achieve a reduction in the overall hardware scale できる。 it can.
また、ルータ等の検索を実行する装置の中継性能を向上できる。 Further, it is possible to improve the relay performance of the device executing the search such as a router. 【0107】第7の発明によれば、 ・ネットワークマスクが可変長で、全てロンゲストマッチの関係にないエントリからなるルーチングテーブルに対し、または、ネットワークマスクが可変長で、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し、各ノードで一度に検査するビット数をNビット(N≧2)にし、検索中に到着するノード毎に・ノードに付けたビット番号に該当する検索データのビットの検査と、 ・以下のいずれか−前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較−前記ノードがリーフを持たない場合、その下位のいずれかのノードが持つリーフと前記検索データの前記ノードに付けたビット番号までの比較を逐次または並行して行い、前記比較で、以前に一度比較済 [0107] According to the seventh aspect of the present invention, in the network mask is variable length, to the routing table of entries that are not in the relationship of all longest match, or, network mask is a variable length, in the relationship of the longest match to a routing table that includes an entry one or more sets, search the number of bits to be examined at a time in each node to N bits (N ≧ 2), corresponding to the bit number assigned to the nodes for each node to arrive during the search If the node has a leaf, the leaf and comparison of the search data - - inspection and bits of data, one of the following, if the node has no leaves, and leaves any node subordinate has perform the search compared to the bit number assigned to the node of data sequentially or in parallel, in the comparison, previously once already comparison の前記検索データのビットを比較の対象としないようにしたので、さらに、ルータ等の検索を実行する装置に搭載されるメモリ等の記憶装置に対し、前記比較処理毎のアクセス回数の削減が可能となり、ルータ等の検索を実行する装置の中継性能を向上できる。 Wherein since the bit of the search data to not be compared in further to the storage device such as a memory that is mounted to an apparatus for performing a search of the router or the like, it can be reduced access count for each of the comparison next, it is possible to improve the relay performance of the device executing the search such as a router. 【0108】第8の発明によれば、 ・ネットワークマスクが可変長で、全てロンゲストマッチの関係にないエントリからなるルーチングテーブルに対し、または、 ・ネットワークマスクが可変長で、ロンゲストマッチの関係にあるエントリを1組以上含むルーチングテーブルに対し、各ノードで一度に検査するビット数を1ビットにし、検索中に到着するノード毎に・ノードに付けたビット番号に該当する検索データのビットの検査と、・以下のいずれか−前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較−前記ノードがリーフを持たない場合、その下位のいずれかのノードが持つリーフと前記検索データの前記ノードに付けたビット番号までの比較を逐次または並行して行い、前記比較で、以前に一度比較済みの前記 [0108] According to the invention of the eighth, network mask is a variable length, to the routing table of entries that are not in the relationship of all longest match, or, in the network mask is variable length, the longest match of the relationship in some respect the routing table comprising one or more pairs of entries, the number of bits to be examined at a time in each node to one bit, the search data corresponding to the bit number assigned to the nodes for each node arriving during searching for bit and testing, one of the following - - If the node has a leaf, the leaf and comparison of the search data - the node may not have the leaf, one of its subordinate nodes leaf and the retrieval of data with makes a comparison to a bit number assigned to the node sequentially or in parallel, in the comparison, the previously once comparison already said 索データのビットを比較の対象としないようにしたので、さらに、ルータ等の検索を実行する装置に搭載されるメモリ等の記憶装置に対し、前記比較処理毎のアクセス回数の削減が可能となり、ルータ等の検索を実行する装置の中継性能を向上できる。 Since the bit of the search data to not be compared, furthermore, to the storage device such as a memory that is mounted to an apparatus for performing a search of the router or the like, it is possible to reduce the number of accesses for each of the comparison process, It can be improved relay performance of the device executing the search such as a router.

【図面の簡単な説明】 【図1】 実施の形態1による検索方式の説明で用いるルーチングテーブルの例である。 BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is an example of a routing table used in the description of the search method according to the first embodiment. 【図2】 実施の形態1による検索木の構成の例である。 Figure 2 is an example of a configuration of a search tree according to the first embodiment. 【図3】 実施の形態1による検索手順をフローチャートで示した例である。 Figure 3 is an example showing a flow chart of the search procedure according to the first embodiment. 【図4】 実施の形態2による検索方式の説明で用いるルーチングテーブルの例である。 Figure 4 is an example of a routing table used in the description of the search method according to a second embodiment. 【図5】 実施の形態2による検索木の構成の例である。 Figure 5 is an example of a configuration of a search tree according to the second embodiment. 【図6】 実施の形態3による検索方式の説明で用いるルーチングテーブルの例である。 6 is an example of a routing table used in the description of the search method according to the third embodiment. 【図7】 実施の形態3による検索木の構成の例である。 7 is an example of a configuration of a search tree according to the third embodiment. 【図8】 実施の形態4による検索木の構成の例である。 8 is an example of a configuration of a search tree according to the fourth embodiment. 【図9】 実施の形態5による検索手順をフローチャートで示した例である。 9 is an example showing a flow chart of the search procedure according to the fifth embodiment. 【図10】 実施の形態6による検索手順を示すフローチャートで示した例である。 10 is an example showing a flow chart illustrating a search procedure according to the sixth embodiment. 【図11】 従来の検索方式の説明で用いるルーチングテーブルの例である。 11 is an example of a routing table used in the description of the conventional search method. 【図12】 従来の検索方式で用いる検索木の構成の例である。 12 is an example of a configuration of a search tree used in the conventional search method. 【図13】 従来の検索方式の検索の流れを示すフローチャートである。 13 is a flowchart illustrating a flow of a search of a conventional search method. 【符号の説明】 1、1a〜1z 宛先ネットワークIPアドレス、2、2a〜2z ネットワークマスク、3、3a〜3z、13a〜13z [Reference Numerals] 1,1a~1z destination network IP address, 2,2A~2z network mask, 3,3a~3z, 13a~13z
ノード、4、4a〜4z 中継先ルータの宛先IPアドレス、5、5a〜5z Node, 4,4A~4z destination IP address of the relay destination router, 5,5A~5z
リーフ、6 Leaf, 6
検索データ、7、7a〜7z ビット番号 Search data, 7,7a~7z bit number

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特許3284064(JP,B2) 曽田 他2名,マルチウェイ化ツリー によるIPルーチングテーブルの高速検 索方式,1998年電子情報通信学会通信ソ サイエティ大会 講演論文集2,1998年 9月 7日,B−7−124 鹿島 他4名,IPルーチングテーブ ルのハードウェアによる高速検索方式, 1998年電子情報通信学会通信ソサイエテ ィ大会 講演論文集2,1998年 9月 7日,B−7−123 (58)調査した分野(Int.Cl. 7 ,DB名) H04L 12/56 100 G06F 17/30 419 ────────────────────────────────────────────────── ─── of the front page continued (56) reference No. 3284064 (JP, B2) Soda and two others, high-speed search method of IP routing table due to the multi-way-tree, 1998 Institute of Electronics, information and communication Engineers communication Soviet Saieti Conference paper collecting 2, September 7, 1998, B-7-124 Kashima and four other people, fast search system based on IP routing table of hardware, 1998 Institute of Electronics, information and communication Engineers communication Sosaiete I Conference papers 2, 1998 9 month 7 days, B-7-123 (58) investigated the field (Int.Cl. 7, DB name) H04L 12/56 100 G06F 17/30 419

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】 検索テーブルの可変長の検索キーを格納するリーフと、 前記リーフを持たず次のノードと接続されるノードと、 前記リーフを持ち次のノードと接続されないノードとで探索木を構成し、 前記ノードに対し、次のノードを特定するために検査する検索データのビット番号を付け、 各ノードで一度に検査するビット数をNビット(N≧ (57) Patent Claims 1. A leaf for storing the variable-length search key of the search table, the node connected to the next node without the leaf, has the leaf next node constitute the search tree in the unconnected node, said node, with a bit number of the search data to be examined to identify the next node, N bits (N ≧ the number of bits to be examined at a time on each node
    2)にし、 可変長の検索キーを格納するリーフのうち、長さがNビットの整数倍の検索キーを格納するリーフに対して、ノードを1個置き、 長さがNビットの整数倍でない検索キーを格納するリーフに対して、ノードを2の(N−M)乗個、(ただし、 To 2), of the leaf for storing the variable-length search key, on the leaf length to store an integer multiple search key of N bits, place one node, not an integral multiple of N bits in length on the leaf for storing the search keys, node 2 (N-M) th power of, (where
    Mは検索キーの長さをNで除した余り)置いた検索木を構成し、この検索木を用いて、基数検索を行うことを特徴とする検索方式。 Search scheme M is configured to search tree the length of the search key placed too) divided by N, using this search tree, and performing radix search. 【請求項2】 検索テーブルの可変長の検索キーを格納するリーフと、 前記リーフを持たず次のノードと接続されるノードと、 前記リーフを持ち次のノードと接続されるノードと、 前記リーフを持ち次のノードと接続されないノードとで検索木を構成し、 前記ノードに対し、次のノードを特定するために検査する検索データのビット番号を付け、各ノードで一度に検査するビット数をNビット(N≧2)にし、 可変長の検索キーを格納するリーフのうち、長さがNビットの整数倍の検索キーを格納するリーフに対して、ノードを1個置き、 長さがNビットの整数倍でない検索キーを格納するリーフに対して、ノードを2の(N−M)乗個、(ただし、 And leaves wherein storing variable-length search key of the search table, the node connected to the next node without the leaf, the node connected to the next node having the leaf, the leaf the have to configure the search tree and the next node and unconnected node, said node, with a bit number of the search data to be examined to identify the next node, the number of bits to be examined at a time on each node the N bits (N ≧ 2), of the leaf for storing the variable-length search key, on the leaf length to store an integer multiple search key of N bits, place one node, length N on the leaf for storing the search key is not an integer multiple of bits, nodes 2 (N-M) th power of, (where
    Mは検索キーの長さをNで除した余り)置き、前記ノードが、他のリーフに対するノードと重複する場合、より短い検索キーを格納するリーフに対するノードを置かず、より長い検索キーを格納するリーフに対するノードを置いた検索木を用いて、基数検索を行うことを特徴とする検索方式。 M puts much) the length of the search key divided by N, stores the node, if that overlap with node for other leaf, without placing the node to the leaf for storing a shorter search key, a longer search key using the search tree at a node for a leaf of the search system which is characterized in that the base search. 【請求項3】 1個のリーフに対し、ノードを1個置く場合、リーフを記憶する記憶装置に、前記リーフを1個格納し、 前記1個のノードと、前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、 1個のリーフに対し、ノードを複数個置く場合、記憶装置に前記リーフを1個格納し、 前記複数のノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納することによって検索木を構成し、 この検索木を用いて、基数検索を行うことを特徴とする請求項1または請求項2に記載の検索方式。 To 3. A single leaf, if put a node, a storage device for storing a leaf, the leaf is stored one, identifying the the one node, a storage position of the leaf both stores the address value of the memory device, to one leaf, when placing a plurality of nodes, the leaf is stored one in the storage device, wherein a plurality of nodes, the storage position of the leaf in each of the configure the search tree by storing both the address value of the particular storage device, using the search tree, the search method according to claim 1 or claim 2, characterized in that the base search. 【請求項4】 1個のリーフに対し、ノードを1個置く場合、前記記憶装置に前記リーフを1個格納し、 前記1個のノードと、前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、 1個のリーフに対し、ノードを複数個置く場合、前記記憶装置に前記リーフを1個格納すると共に、 前記複数のノードが、全て次のノードと接続されるノードの場合、前記複数のノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、 前記複数のノードに、次のノードと接続されるノードと次のノードと接続されないノードが含まれる場合、前記次のノードと接続されるノードと、前記の各々に前記リーフの格納位置を特定する記憶装置のアドレス値を共に格納し、前記次のノードと接続されないノー To 4. A single leaf, if put a node, the leaf is stored one in said storage device, the address of the memory device wherein the one node, identifying the location of the leaf store values ​​together, to one leaf, when placing a plurality of nodes, and stores one of the leaf in the storage device, the plurality of nodes, if the node are all connected to the next node , said plurality of nodes, both store the address value of the storage device for identifying the location of the leaf in each of the, to the plurality of nodes, not connected to the node and the next node to be connected to the next node when included nodes, the node connected to the next node, both store the address value of the storage device for identifying the location of the leaf in each of the, not connected to the next node nO を、前記次のノードと接続されるノードのいずれかで代用し、 前記複数個のノードが、全て次のノードと接続されないノードの場合、前記次のノードと接続されない複数のノードを共通に1個格納し、前記ノードと共に、前記リーフの格納位置を特定する記憶装置のアドレス値を格納することによって検索木を構成し、この検索木を用いて、 And substituted on one of the nodes to be connected to the next node, the plurality of nodes, when all the nodes which are not connected to the next node, the common multiple nodes which are not connected to the next node 1 and pieces stored, together with the node, configure the search tree by storing the address value of the storage device for identifying the location of the leaf, using the search tree,
    基数検索を行うことを特徴とする請求項1または請求項2に記載の検索方式。 Search method according to claim 1 or claim 2, characterized in that the base search. 【請求項5】 検索中に到着するノード毎に、ノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、 前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較を逐次または並行して行い、 前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて基数検索を行うことを特徴とする請求項2に記載の検索方式。 5. For each node arriving in the search, the inspected bits of the search data corresponding to the bit number assigned to the node, if the node has a leaf, a comparison of the search data and the leaf It performed sequentially or in parallel, the search method according to claim 2, wherein the comparison, and performing a radix search excluded from the scope of the previously once compare bits of the comparison already the search data. 【請求項6】 検索テーブルの可変長の検索キーを格納するリーフと、 前記リーフを持たず次のノードと接続されるノードと、 前記リーフを持ち次のノードと接続されないノードと、 6. A leaf for storing the variable-length search key of the search table, the node connected to the next node without the leaf, and the not connected to have the following nodes leaf nodes,
    で検索木を構成し、 前記ノードに対し、次のノードを決定するために検査する検索データのビット番号を付け、各ノードで一度に検査するビット数を1ビットにし、 検索中に到着するノード毎にノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、 前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較とを逐次または並行して行い、 前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて基数検索を行うことを特徴とする検索方式。 Nodes in constitutes a search tree, said node, with a bit number of the search data to be examined to determine the next node, the number of bits to be examined at a time in each node to 1 bit arrives during the search with inspecting the bit for the corresponding search data bit number assigned to the node for each, if the node has a leaf, performs a comparison of the search data and the leaf sequentially or in parallel, in the comparison, search method which is characterized in that the base search with the exception of the bits of the previously once comparison already the search data from the comparison target. 【請求項7】 検索中に到着するノード毎に、ノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、 前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較、または、前記ノードがリーフを持たない場合、その下位のいずれかのノードが持つリーフと前記検索データの前記ノードに付けたビット番号までの比較、を逐次または並行して行い、 前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて基数検索を行うことを特徴とする請求項1または請求項2に記載の検索方式。 7. A per node arriving in the search, the inspected bits of the search data corresponding to the bit number assigned to the node, if the node has a leaf, comparison of the search data and the leaf, or, if the node has no leaves, it performs comparisons up to bit number assigned to the node of the leaf and the search data any node subordinate has, sequentially or in parallel, in the comparison, previously Search method according to claim 1 or claim 2, characterized in that the base search time except for bit comparison already the search data from the comparison target. 【請求項8】 検索テーブルの可変長の検索キーを格納するリーフと、 前記リーフを持たず次のノードと接続されるノードと、 前記リーフを持ち次のノードと接続されるノードと、 前記リーフを持ち次のノードと接続されないノードとで検索木を構成し、 前記ノードに対し、次のノードを決定するために検査する検索データのビット番号を付け、各ノードで一度に検査するビット数を1ビットにし、 検索中に到着するノード毎に、ノードに付けたビット番号に該当する検索データのビットの検査を行なうと共に、 前記ノードがリーフを持つ場合、前記リーフと前記検索データの比較、または、前記ノードがリーフを持たない場合、その下位のいずれかのノードが持つリーフと前記検索データの前記ノードに付けたビット番号までの比較、を 8. A leaf for storing the variable-length search key of the search table, the node connected to the next node without the leaf, the node connected to the next node having the leaf, the leaf the have to configure the search tree and the next node and unconnected node, said node, with a bit number of the search data to be examined to determine the next node, the number of bits to be examined at a time on each node to 1 bit for each node to arrive during the search, the inspected bits of the search data corresponding to the bit number assigned to the node, if the node has a leaf, comparison of the search data and the leaf, or , if the node has no leaves, compared to the bit number assigned to the node of the leaf and the search data any node subordinate has the 逐次または並行して行い、 前記比較で、以前に一度比較済みの前記検索データのビットを比較の対象から除いて、基数検索を行うことを特徴とする検索方式。 Performed sequentially or in parallel, in the comparison, with the exception of the bits of the previously once comparison already the search data from the target of the comparison, search method and performing radix search.
JP25081098A 1998-09-04 1998-09-04 Search system Expired - Fee Related JP3494028B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25081098A JP3494028B2 (en) 1998-09-04 1998-09-04 Search system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25081098A JP3494028B2 (en) 1998-09-04 1998-09-04 Search system

Publications (2)

Publication Number Publication Date
JP2000083056A JP2000083056A (en) 2000-03-21
JP3494028B2 true JP3494028B2 (en) 2004-02-03

Family

ID=17213396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25081098A Expired - Fee Related JP3494028B2 (en) 1998-09-04 1998-09-04 Search system

Country Status (1)

Country Link
JP (1) JP3494028B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101401090B (en) * 2004-04-19 2010-08-25 加利福尼亚大学董事会 Deep packet filtering device and deep packet filtering method
US7508771B2 (en) * 2005-04-01 2009-03-24 International Business Machines Corporation Method for reducing latency in a host ethernet adapter (HEA)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
曽田 他2名,マルチウェイ化ツリーによるIPルーチングテーブルの高速検索方式,1998年電子情報通信学会通信ソサイエティ大会 講演論文集2,1998年 9月 7日,B−7−124
鹿島 他4名,IPルーチングテーブルのハードウェアによる高速検索方式,1998年電子情報通信学会通信ソサイエティ大会 講演論文集2,1998年 9月 7日,B−7−123

Also Published As

Publication number Publication date
JP2000083056A (en) 2000-03-21

Similar Documents

Publication Publication Date Title
Zane et al. CoolCAMs: Power-efficient TCAMs for forwarding engines
US6275861B1 (en) Method and apparatus to identify flows in data systems
US6298340B1 (en) System and method and computer program for filtering using tree structure
US6424650B1 (en) Network address filter device
US6467019B1 (en) Method for memory management in ternary content addressable memories (CAMs)
US6389419B1 (en) Storing and retrieving connection information using bidirectional hashing of connection identifiers
US7827218B1 (en) Deterministic lookup using hashed key in a multi-stride compressed trie structure
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US6754832B1 (en) Security rule database searching in a network security environment
US7571156B1 (en) Network device, storage medium and methods for incrementally updating a forwarding database
DE60305035T2 (en) data structures adapting the longest prefix followed using tree-like &#34;bitmap&#34;
US7539031B2 (en) Inexact pattern searching using bitmap contained in a bitcheck command
US7237058B2 (en) Input data selection for content addressable memory
CN100432991C (en) Method and apparatus for longest match address lookup
US5983223A (en) Method and apparatus for determining a longest matching prefix from a dictionary of prefixes
KR100441317B1 (en) Method and apparatus for classifying data packets
EP2486704B1 (en) Configurable frame processing pipeline in a packet switch
US20110038375A1 (en) Efficient tcam-based packet classification using multiple lookups and classifier semantics
EP0993144A2 (en) High-speed multicast system
US8782739B2 (en) Access list key compression
US5956721A (en) Method and computer program product for classifying network communication packets processed in a network stack
US7054315B2 (en) Efficiency masked matching
Kumar et al. Advanced algorithms for fast and scalable deep packet inspection
US6564211B1 (en) Fast flexible search engine for longest prefix match
Becchi et al. Memory-efficient regular expression search using state merging

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees