(57)【要約】【課題】受信パケットについて転送先経路を検索用情報に基づき決定する検索処理を改善する。【解決手段】検索用情報は木構造に対応付けられる。各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、各エントリは、それに対応付けられたマスク用プレフィックスのマスク長さの情報とソート・キーとを含み、ソート順に従って木構造内のいずれかのノードに割当てられる。各ノードはそれらのエントリに基づく枝により１階層下の別々のノードへリンクされる。抽出手段２６は、受信パケットの送信先アドレスを抽出し、検索手段２７は、検索制御手段２９の指示による検索対象ノード２８において抽出アドレスと最大一致するプレフィックスの情報をもつエントリを検索する。経路決定手段３０は、ノード別検索処理の終了後、今回の全検索対象ノードの最大一致プレフィックスの中で最大長のものに基づき受信パケットの転送先経路を決定する。【選択図】      図５
2004328433.tif 000002
【特許請求の範囲】
【請求項１】
受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶する記憶装置、及び前記検索用情報に基づいて受信パケットの転送先経路を検索する経路検索装置を含み、
前記検索用情報は木構造に対応付けられたものであり、
該木構造における各ノードは１個以上のエントリを有し、
各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、
各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含み、
ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされ、
前記経路検索装置は、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
各検索対象ノードにおいて該検索対象ノードの中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索手段、
前記ノード内一致エントリ検索手段に検索対象ノードを指示する検索制御手段であって各検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御手段、及び
ノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定手段、
を有していることを特徴とする通信制御装置。
【請求項２】
ソート・キーのソート順とはソート・キーの昇順又は降順であることを特徴とする請求項１記載の通信制御装置。
【請求項３】
枝により１個下の階層のノードへのリンクを設定されているノードにおいて、該ノードのエントリ・リストの一端のエントリについては２個、その他の各エントリについて各１個の枝が対応付けられていることを特徴とする請求項１記載の通信制御装置。
【請求項４】
前記木を構築する木構築装置を有し、
前記木構築装置は、
マスク用プレフィックスＣに対してそれに対応付け可能なソート・キーの最小値及び最大値をそれぞれＣｓ＿ｍｉｎ及びＣｓ＿ｍａｘとして算出する算出手段、
マスク用プレフィックスＣに対して対応付けるソート・キーＣｓをＣｓ＿ｍｉｎ≦Ｃｓ≦Ｃｓ＿ｍａｘの条件下で設定するソート・キー設定手段、及び
各マスク用プレフィックスについて前記ソート・キー設定手段の設定したソート・キーに基づき各ノードのエントリを決定し該決定に基づく木構造を生成する木構造生成手段、
を有していることを特徴とする請求項１記載の通信制御装置。
【請求項５】
２個のマスク用プレフィックスＣ１，Ｃ２に対してそれらＣ１，Ｃ２に対応付けるソート・キーをＣ１ｓ，Ｃ２ｓとし、また、それらＣ１，Ｃ２に対応付け可能な最小ソート・キーをＣ１ｓ＿ｍｉｎ，Ｃ２ｓ＿ｍｉｎ、及び最大ソート・キーをＣ１ｓ＿ｍａｘ，Ｃ２ｓ＿ｍａｘとして、
前記ソート・キー設定手段は、Ｃ１ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍａｘ≦Ｃ１ｓ＿ｍａｘ（ただし、Ｃ１ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍａｘ＝Ｃ１ｓ＿ｍａｘは除外する。）が成り立つとき、Ｃ１ｓを、Ｃ１ｓ＿ｍｉｎからＣ１ｓ＿ｍａｘまでの範囲内でかつＣ２ｓ＿ｍｉｎからＣ２ｓ＿ｍａｘまでの範囲外となる条件下で設定する、
ことを特徴とする請求項４記載の通信制御装置。
【請求項６】
前記木構造生成手段は、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が同一の葉ノードに属する標準木構造に対して、同一マスク用プレフィックス由来のソート・キーは各葉ノードにおいて１個のみとなるように、同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力することを特徴とする請求項１記載の通信制御装置。
【請求項７】
少なくとも１個のエントリに対応付けられているマスク用プレフィックスには、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックスと、ビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとが含まれ、
ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス、及び／又はビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスは、デフォルト転送先経路に対応付けられていることを特徴とする請求項１記載の通信制御装置。
【請求項８】
ビット長さが０ビットであるマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶手段、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索手段、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定手段、
を有していることを特徴とする通信制御装置。
【請求項９】
ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及びビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及び／又はビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶手段、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索手段、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定手段、
を有していることを特徴とする通信制御装置。
【請求項１０】
受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶する記憶装置、及び前記検索用情報に基づいて受信パケットの転送先経路を検索する経路検索装置を含み、
前記検索用情報は第１の情報部分と第２の情報部分とから成り、
所定の自然数ｕを定義し、
マスク用プレフィックスの各ビットの番号を、ＭＳＢを１番としてＭＳＢからＬＳＢへの順番で定義し、
ｕビット以下及びｕ＋１ビット以上のマスク用プレフィックスをそれぞれ短い及び長いマスク用プレフィックスと呼ぶことにし、
長いマスク用プレフィックスについて、１番からｕ番までの部分及びｕ＋１番から最終番までの部分をそれぞれ上位側マスク用プレフィックス部分及び下位側マスク用プレフィックス部分と呼ぶことにし、
同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスをマスク用プレフィックス群とし（ただし、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスが１個である場合は、該長いマスク用プレフィックスが属するマスク用プレフィックス群の要素としてのマスク用プレフィックスは１個のみとなる。）、
前記第１の情報部分は短いマスク用プレフィックス及び上位側マスク用プレフィックス部分に係る情報を含み、
第１の情報部分は１個のテーブル構造で記憶され、
該テーブル構造は、ｕビットの相互に異なるソート・キーをもつエントリを含み、
各テーブル構造に含まれているエントリには第１及び第２のテーブル構造用エントリが含まれ、第１のテーブル構造用エントリは、そのソート・キーの１番からｗ（ｗはｕ以下の自然数）番までの全ビット値が、該第１のテーブル構造用エントリに対応付けられている小さいマスク用プレフィックスと同一であり、第２のテーブル構造用エントリは、そのソート・キーの全ビットが、該第２のテーブル構造用エントリに対応付けられている上位側マスク用プレフィックス部分と同一であり、
前記第２の情報部分は下位側マスク用プレフィックス部分に係る情報を含み、
第２の情報部分は少なくとも１個の木構造で記憶され、
各木構造は、各マスク用プレフィックス群に対応付けられるとともに、対応付けられたマスク用プレフィックス群に属する長いマスク用プレフィックスの上位側マスク用プレフィックス部分に等しいソート・キーをもつエントリであって前記テーブル構造に含まれるエントリからリンクを設定されており、
各木構造における各ノードは１個以上のエントリを有し、
各長いマスク用プレフィックスの下位側マスク用プレフィックス部分は少なくとも１個のエントリに対応付けられ、
木構造の各エントリは、それに対応付けられた下位側マスク用プレフィックス部分のビット数（以下、「下位側マスク用プレフィックス部分マスク長」と言う。）の情報とソート・キーとを含み、
木構造のエントリのビット数は、全部の下位側マスク用プレフィックス部分の下位側マスク用プレフィックス部分マスク長の内の最大下位側マスク用プレフィックス部分マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられている下位側マスク用プレフィックス部分と同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされ、
前記経路検索装置は、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
抽出アドレスについて１番からｕ番までのビット列部分及びｕ＋１番以降のビット列部分をそれぞれ第１及び第２の抽出アドレス部分と呼ぶことにしテーブル構造の各エントリと第１の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索するテーブル構造用経路検索装置、木構造の各エントリと第２の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する木構造用経路検索装置、
前記テーブル構造用経路検索装置及び前記木構造用経路検索装置を制御する制御装置、及び
前記テーブル構造用経路検索装置及び前記木構造用経路検索装置の検索結果に基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終的に決定する最終決定装置、
を有し、
前記テーブル構造用経路検索装置は、
第１の抽出アドレス部分の上位側ビット列部分と一致するソート・キーをもつエントリを該当エントリとして検索する検索手段、及び
前記検索手段が検索した該当エントリについて所定の木構造へリンクが設定されていればその旨及びリンク先の木構造を前記制御装置へ通知する通知手段、
を有し、
前記木構造用経路検索装置は、
前記木構造の各検索対象ノードにおいて該検索対象ノードの中で第２の抽出アドレス部分の上位側ビット列部分と一致する下位側マスク用プレフィックス部分の情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でビット長さが最大の下位側マスク用プレフィックス部分の情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索手段、
前記ノード内一致エントリ検索手段に検索対象ノードを指示する検索制御手段であって各検索対象ノードにおける各エントリのソート・キーと第２の抽出アドレス部分との対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御手段、及び
ノード別検索処理の終了後、第２の抽出アドレス部分に係る複数個のノード内一致エントリに対応の下位側マスク用プレフィックス部分の中で最大ビット長さのものを決定する下位側マスク用プレフィックス部分決定手段、
を有し、
前記制御装置は、
前記アドレス抽出手段が抽出した今回の抽出アドレスに対して前記木構造用経路検索装置に先駆けてテーブル構造用経路検索装置に検索処理を指示する第１の指示手段、及び
前記テーブル構造用経路検索装置の前記通知手段から通知があったときは前記木構造用経路検索装置に検索対象木構造として前記通知手段から通知のあったものを指定して今回の抽出アドレスに係る検索処理を指示する第２の指示手段、
を有し、
前記最終決定装置は、
前記第２の指示手段が前記木構造用経路検索装置に検索処理を指示しなかったときは、前記テーブル構造用経路検索装置の検索手段が検索した該当エントリに係る短いマスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終決定し、
前記第２の指示手段が前記木構造用経路検索装置に検索処理を指示したときは、前記木構造用経路検索装置が検索対象木構造とした木構造のリンク元のテーブル構造のエントリに係る上位側マスク用プレフィックス部分と前記木構造用経路検索装置の前記下位側マスク用プレフィックス部分決定手段が決定した下位側マスク用プレフィックス部分とに基づく長いマスク用プレフィックスを、今回の抽出アドレスに係る受信パケットの転送先経路として最終決定する、
ことを特徴とする通信制御装置。
【請求項１１】
受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶し、前記検索用情報に基づいて受信パケットの転送先経路を検索する通信制御方法であって、
前記検索用情報は木構造に対応付けられたものであり、
該木構造における各ノードは１個以上のエントリを有し、
各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、
各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含み、
ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる、
通信制御方法であって、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
各検索対象ノードにおいて該検索対象ノードの中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索ステップ、
前記ノード内一致エントリ検索ステップにおける検索対象ノードを決める検索制御ステップであって各検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御ステップ、及び
ノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定ステップ、を有していることを特徴とする通信制御方法。
【請求項１２】
前記木構造では、同一階層に属する各ノードのエントリ数は、等しく設定されていることを特徴とする請求項１１記載の通信制御方法。
【請求項１３】
マスク用プレフィックスＣに対してそれに対応付け可能なソート・キーの最小値及び最大値をそれぞれＣｓ＿ｍｉｎ及びＣｓ＿ｍａｘとして算出する算出ステップ、
マスク用プレフィックスＣに対して対応付けるソート・キーＣｓをＣｓ＿ｍｉｎ≦Ｃｓ≦Ｃｓ＿ｍａｘの条件下で設定するソート・キー設定ステップ、及び
各マスク用プレフィックスについて前記ソート・キー設定ステップの設定したソート・キーに基づき各ノードのエントリを決定し該決定に基づく木構造を生成する木構造生成ステップ、
を有していることを特徴とする請求項１１記載の通信制御方法。
【請求項１４】
前記木構造生成ステップでは、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が、ルート・ノードから葉ノードへ至る検索経路における上階層のノードと下階層ノードとの両方に存在する標準木構造に対して、該下位階層のノードにおける同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力することを特徴とする請求項１１記載の通信制御方法。
【請求項１５】
少なくとも１個のエントリに対応付けられているマスク用プレフィックスにはビット長さが０ビットのマスク用プレフィックスが含まれ、該ビット長さが０ビットのマスク用プレフィックスはデフォルト転送先経路に対応付けられていることを特徴とする請求項１１記載の通信制御方法。
【請求項１６】
ビット長さが０ビットであるマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶ステップ、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索ステップ、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定ステップ、
を有していることを特徴とする通信制御方法。
【請求項１７】
ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及びビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及び／又はビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶ステップ、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索ステップ、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定ステップ、
を有していることを特徴とする通信制御方法。
【請求項１８】
受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶し、前記検索用情報に基づいて受信パケットの転送先経路を検索する通信制御方法において、
前記検索用情報は第１の情報部分と第２の情報部分とから成り、
所定の自然数ｕを定義し、
マスク用プレフィックスの各ビットの番号を、ＭＳＢを１番としてＭＳＢからＬＳＢへの順番で定義し、
ｕビット以下及びｕ＋１ビット以上のマスク用プレフィックスをそれぞれ短い及び長いマスク用プレフィックスと呼ぶことにし、
長いマスク用プレフィックスについて、１番からｕ番までの部分及びｕ＋１番から最終番までの部分をそれぞれ上位側マスク用プレフィックス部分及び下位側マスク用プレフィックス部分と呼ぶことにし、
同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスをマスク用プレフィックス群とし（ただし、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスが１個である場合は、該長いマスク用プレフィックスが属するマスク用プレフィックス群の要素としてのマスク用プレフィックスは１個のみとなる。）、
前記第１の情報部分は短いマスク用プレフィックス及び上位側マスク用プレフィックス部分に係る情報を含み、
第１の情報部分は１個のテーブル構造で記憶され、
該テーブル構造は、ｕビットの相互に異なるソート・キーをもつエントリを含み、
各テーブル構造に含まれているエントリには第１及び第２のテーブル構造用エントリが含まれ、第１のテーブル構造用エントリは、そのソート・キーの１番からｗ（ｗはｕ以下の自然数）番までの全ビット値が、該第１のテーブル構造用エントリに対応付けられている小さいマスク用プレフィックスと同一であり、第２のテーブル構造用エントリは、そのソート・キーの全ビットが、該第２のテーブル構造用エントリに対応付けられている上位側マスク用プレフィックス部分と同一であり、
前記第２の情報部分は下位側マスク用プレフィックス部分に係る情報を含み、
第２の情報部分は少なくとも１個の木構造で記憶され、
各木構造は、各マスク用プレフィックス群に対応付けられるとともに、対応付けられたマスク用プレフィックス群に属する長いマスク用プレフィックスの上位側マスク用プレフィックス部分に等しいソート・キーをもつエントリであって前記テーブル構造に含まれるエントリからリンクを設定されており、
各木構造における各ノードは１個以上のエントリを有し、
各長いマスク用プレフィックスの下位側マスク用プレフィックス部分は少なくとも１個のエントリに対応付けられ、
木構造の各エントリは、それに対応付けられた下位側マスク用プレフィックス部分のビット数（以下、「下位側マスク用プレフィックス部分マスク長」と言う。）の情報とソート・キーとを含み、
木構造のエントリのビット数は、全部の下位側マスク用プレフィックス部分の下位側マスク用プレフィックス部分マスク長の内の最大下位側マスク用プレフィックス部分マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられている下位側マスク用プレフィックス部分と同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされ、
前記通信制御方法は、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
抽出アドレスについて１番からｕ番までのビット列部分及びｕ＋１番以降のビット列部分をそれぞれ第１及び第２の抽出アドレス部分と呼ぶことにしテーブル構造の各エントリと第１の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索するテーブル構造用経路検索ステップ、
木構造の各エントリと第２の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する木構造用経路検索ステップ、
前記テーブル構造用経路検索ステップ及び前記木構造用経路検索ステップを制御する制御ステップ、及び
前記テーブル構造用経路検索ステップ及び前記木構造用経路検索ステップの検索結果に基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終的に決定する最終決定ステップ、
を有し、
前記テーブル構造用経路検索ステップは、
第１の抽出アドレス部分の上位側ビット列部分と一致するソート・キーをもつエントリを該当エントリとして検索する検索ステップ、及び
前記検索ステップにおいて検索した該当エントリについて所定の木構造へリンクが設定されていればその旨及びリンク先の木構造を前記制御ステップへ通知する通知ステップ、
を有し、
前記木構造用経路検索ステップは、
前記木構造の各検索対象ノードにおいて該検索対象ノードの中で第２の抽出アドレス部分の上位側ビット列部分と一致する下位側マスク用プレフィックス部分の情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でビット長さが最大の下位側マスク用プレフィックス部分の情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索ステップ、
前記ノード内一致エントリ検索ステップにおける検索対象ノードを決める検索制御ステップであって各検索対象ノードにおける各エントリのソート・キーと第２の抽出アドレス部分との対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御ステップ、及び
ノード別検索処理の終了後、第２の抽出アドレス部分に係る複数個のノード内一致エントリに対応の下位側マスク用プレフィックス部分の中で最大ビット長さのものを決定する下位側マスク用プレフィックス部分決定ステップ、
を有し、
前記制御ステップは、
前記アドレス抽出ステップにおいて抽出した今回の抽出アドレスに対して前記木構造用経路検索ステップの検索処理の実行に先駆けてテーブル構造用経路検索ステップにおける検索処理の実行を指示する第１の指示ステップ、及び
前記テーブル構造用経路検索ステップの前記通知ステップから通知があったときは前記木構造用経路検索ステップに検索対象木構造として前記通知ステップから通知のあったものを指定して今回の抽出アドレスに係る検索処理の実行を指示する第２の指示ステップ、
を有し、
前記最終決定ステップは、
前記第２の指示ステップにおける前記木構造用経路検索ステップにおける検索処理の実行を指示しなかったときは、前記テーブル構造用経路検索ステップの検索ステップにおいて検索した該当エントリに係る短いマスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終決定し、
前記第２の指示ステップにおいて前記木構造用経路検索ステップにおける検索処理の実行を指示したときは、前記木構造用経路検索ステップが検索対象木構造とした木構造のリンク元のテーブル構造のエントリに係る上位側マスク用プレフィックス部分と前記木構造用経路検索ステップの前記下位側マスク用プレフィックス部分決定ステップにおいて決定した下位側マスク用プレフィックス部分とに基づく長いマスク用プレフィックスを、今回の抽出アドレスに係る受信パケットの転送先経路として最終決定する、
ことを特徴とする通信制御方法。
【請求項１９】
請求項１１〜１８のいずれかに記載の通信制御方法の各ステップを  コンピュータに実行させるための通信制御プログラム。
【請求項２０】
受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報に係る通信制御用データ構造であって、
前記検索用情報は木構造に対応付けられたものであり、
該木構造における各ノードは１個以上のエントリを有し、
各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、
各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含み、
ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる、
ことを特徴とする通信制御用データ構造。
【請求項２１】
ソート・キーのソート順とはソート・キーの昇順又は降順であることを特徴とする請求項２０記載の通信制御用データ構造。
【請求項２２】
前記木構造では、同一階層に属する各ノードのエントリ数は、等しく設定されていることを特徴とする請求項２１記載の通信制御用データ構造。
【請求項２３】
枝により１個下の階層のノードへのリンクを設定されているノードにおいて、該ノードのエントリ・リストの一端のエントリについては２個、その他の各エントリについて各１個の枝が対応付けられていることを特徴とする請求項２０記載の通信制御用データ構造。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定する通信制御装置、通信制御方法、通信制御プログラム、及び通信制御用データ構造に係り、詳しくはマスク用プレフィックスの検出を能率化できる通信制御装置、通信制御方法、通信制御プログラム、及び通信制御用データ構造に関するものである。
【０００２】
【従来の技術】
ＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ４）などのＩＰ（インターネット・プロトコル：Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を超えて通信する場合、プロトコルに宛先ＩＰアドレスを入れてルーターに送り、ルーターに転送してもらうことで目的のアドレスと通信を行う。ネットワーク・ルーター、Ｌ３スイッチ等のルーター製品において十数万を超えるＩＰアドレスをサポートできるシステムは、多くのサーバーやクライアントをサポートできる反面、ＩＰアドレスから該当する転送先Ｐｏｒｔ等を特定するために保持している全てのＩＰアドレスを検索した上でＩＰアドレスに対応した転送先Ｐｏｒｔなどを探し出さなければならなかった。
【０００３】
従来技術について共に、ＩＰアドレス検索分野における基本的概念について説明する。
［ルーター］
ルーターは送られてきたプロトコルの宛先ＩＰアドレス情報に従って適切な転送先にそのプロトコルを転送する機器である。
【０００４】
［ＩＰアドレス構造］
ＩＰｖ４のＩＰアドレスはＣＩＤＲ（Ｃｌａｓｓｌｅｓｓ  Ｉｎｔｅｒ−Ｄｏｍａｉｎ  Ｒｏｕｔｉｎｇ）構成になっており、プレフィックスとホストアドレス合計３２Ｂｉｔ（ビット）からできており、その境界は１Ｂｉｔ単位で可変でありＩＰアドレスによって異なっている。
【０００５】
［ルーティング・テーブル］
ルーターは固定されたルーティング情報やＲＩＰ（Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）といったルーティング情報を得るプロトコルによって得たルーティング情報を基に、プレフィックス（ルーターでは、該プレフィックスのことを「ネット・ワークアドレス」とも言う。）をキーとするデータベースであるルーティング・テーブルをつくる。このプレフィックスは集約（アグリゲート）された物を含んでいる。集約とはプレフィックスの上位ビットが共通で同じ宛先になる複数のエントリを１個のより短いマスクのプレフィックスエントリとして置き換えることを示す。
【０００６】
ルーターは転送するプロトコルの宛先ＩＰアドレスを基にこのルーティング・テーブルを検索して対応するルーティング情報を得、それに基づいてプロトコルの転送を行う。このときルーティング・テーブルの検索キーとしてはプレフィックスが使われることになる。
【０００７】
しかし、プレフィックスは可変長であり、マスク情報はプロトコルには含まれない。そこで、ルーティング・テーブルの中で一致するプレフィックスの内、最も長いプレフィックスのエントリを採用する。
【０００８】
以上、ＩＰｖ４ルーターの動作についての説明を行った。この検索処理はマスクが可変長であるのでパトリシア木を逐次検索する方法やその一部をＣＡＭ（連想メモリ）を使って高速化した方法などが使われている。
【０００９】
一方、特許文献１では、ネットワーク・アドレスを解決するためのハードウェア装置を簡略化するために、送信先アドレスを最上位ビットから所定ビット数ずつ分割し、下位側の分割部分程、木構造の下位側の階層のノードとなるように、分割部分を木構造のノードに対応付け、また、ノードの種類として、経路情報に対応する経路ノードの他に、経路情報に対応しない中継ノード及び境界ノードを設定することを開示する。
【００１０】
【特許文献１】
特開２０００−３４９８１１
【００１１】
【発明が解決しようとする課題】
従来のＩＰｖ４ルーターでは、バックボーン・ルーターなどでは１２８ｋエントリの転送テーブルが必要でＣＡＭに入れるには大き過ぎ、最大３２ステップのパトリシア木を逐次検索では処理時間がかかり過ぎて、インターネット通信のレイテンシーが大きくなる原因となっている。
【００１２】
特許文献１の検索装置では、木構造の階層数は送信先アドレスの分割数以上となるので、ＩＰｖ６のように、ＩＰアドレスが１２８ビットと膨大になる場合には、木構造の階層数は大幅に増大する。また、木構造の階層数は、経路情報に対応しない中継ノード及び境界ノードの存在によって、増大するので、多重の入れ子関係になっているマスク用プレフィックスが存在する場合、すなわち、Ｐｒ１⊂Ｐｒ２⊂Ｐｒ３⊂・・・（Ｐｒ１，Ｐｒ２，・・・はマスク長は異なるが、Ｐｒ１のマスク用プレフィックスはＰｒ２の上位側ビット列部分に一致し、Ｐｒ２のマスク用プレフィックスはＰｒ３の上位側ビット列部分に一致し、・・・）である場合も、木構造の階層数は大幅に増大する。木構造の階層数の増大は、送信先アドレスからネットワーク・アドレスを決定するまでに必要な対比判断のステップ数を増大させ、検索時間の増大原因になり、不利である。また、各ノードのエントリ数は１個に限定され、各ノードから下位のノードへのリンクは最大２個であり、的確な検索結果を得るためには、経路ノード間に多数の中継ノードを挿入する必要がある。さらに、マスク用プレフィックスの個数だけ葉ノードが必要になり、木構造全体のノード個数は、マスク用プレフィックスの個数に、葉ノード以外の経路ノード、中継ノード及び境界ノードの個数が加算された値になり、膨大となって、木構造を複雑化する。
【００１３】
本発明の目的は、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報に係る木構造について、マスク用プレフィックスの個数に対して階層数及びノード数を低減して、全体の処理時間の短縮を図る通信制御装置、通信制御方法、通信制御プログラム、及び通信制御用データ構造を提供することである。
【００１４】
【課題を解決するための手段】
本発明の通信制御装置は、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶する記憶装置、及び前記検索用情報に基づいて受信パケットの転送先経路を検索する経路検索装置を含む。前記検索用情報は木構造に対応付けられたものである。該木構造における各ノードは１個以上のエントリを有している。各マスク用プレフィックスは少なくとも１個のエントリに対応付けられている。各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含む。ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定されている。ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定される。エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられる。各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもつ。  葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる。前記経路検索装置は、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、各検索対象ノードにおいて該検索対象ノードの中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索手段、前記ノード内一致エントリ検索手段に検索対象ノードを指示する検索制御手段であって各検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御手段、及びノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定手段、を有している。
【００１５】
本通信制御装置の経路検索装置における各手段はソフトウェア及びハードウェアのいずれによっても実現可能である。本通信制御装置は、例えばルーターであるが、これに限定されず、ブリッジ等、他の通信制御装置を包含する。ルーターでは、送信先アドレスはＩＰアドレスであり、ＩＰアドレスは受信パケットとしてのＩＰパケットのヘッダに記入されている。また、ルーターでは、マスク用プレフィックスに対応するものを、ネットワーク・アドレス及び目的ネットワーク・プレフィックス（Ｄｅｓｔｉｎａｔｉｏｎ  Ｎｅｔｗｏｒｋ  ｐｒｅｆｉｘ）と呼ぶこともある。
【００１６】
本発明において、経路検索装置のノード内一致エントリ検索手段は、検索対象ノードにおいて、該検索対象ノードに属する全部のエントリを抽出アドレスに対して照合し、検索制御手段は、次の検索対象ノードを、最大数が現在の（ｃｕｒｒｅｎｔ）検索対象ノードのエントリの総数＋１個となる個数のノードの中から決める。結果、検索情報に対応付ける木構造は、ノード数及び階層数が低減し、受信パケットの次の転送先経路の検索にかかる時間を短縮できる。
【００１７】
一致比較をハードウェアで実現する場合には、１個又は複数個の階層のノードがもつエントリの総数は等しくすることが好ましく、これにより、ハードウェア製の比較器を共用できる。
【００１８】
なお、発明の実施の形態で詳述するように、検索情報としての木構造を改善するために、１個のマスク用プレフィックスに対応付けるエントリの個数を減少、すなわちエントリを間引きすることがある。エントリの間引きにより、必須のエントリの個数は、木構造が含むことのできるエントリの最大個数より小さくなることがあり、最下層のノードまで検索しなくても、上位の階層のノードのみの検索により今回のマスク用プレフィックスが確定する場合がある。そのような場合には、最下層のノードまでの検索を適宜、中止して、終了時刻を早めることができる。それ故に、本発明における葉ノードは、最下層のノードに限定されない。それより下層のノードへのリンクの無いノードは、木構造の最下層のノードでなくても、葉ノードになり得る。また、或るノードからそれより１階層下のノードへのリンク数は、該或るノードのエントリの総数ｍとし、ｍ＋１に限定されず、ｍ＋１未満にしても、正確な検索結果を得ることがてきる場合もある。
【００１９】
本発明の通信制御方法によれば、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶し、前記検索用情報に基づいて受信パケットの転送先経路を検索する。前記検索用情報は木構造に対応付けられたものである。該木構造における各ノードは１個以上のエントリを有している。各マスク用プレフィックスは少なくとも１個のエントリに対応付けられている。各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含む。ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定される。ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定される。エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられる。各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもつ。葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる。該通信制御方法は、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、各検索対象ノードにおいて該検索対象ノードの中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索ステップ、前記ノード内一致エントリ検索ステップにおける検索対象ノードを決める検索制御ステップであって各検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御ステップ、及びノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定ステップ、を有している。
【００２０】
本発明の通信制御プログラムは、通信制御方法の各ステップを  コンピュータに実行させる。
【００２１】
通信制御用データ構造は、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報に係る。前記検索用情報は木構造に対応付けられたものである。該木構造における各ノードは１個以上のエントリを有している。各マスク用プレフィックスは少なくとも１個のエントリに対応付けられる。各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含む。ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定される。ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定される。エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられる。各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもつ。葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる。
【００２２】
【発明の実施の形態】
以降、本発明を実施の形態及び実施例について具体的に説明する。なお、本発明は実施の形態及び実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【００２３】
図１は通信制御装置１０の接続図である。通信制御装置１０は例えばインターネットに組み込まれる。通信制御装置１０は例えばルーターである。各通信制御装置１０は１個又は複数個の他の通信制御装置１０へ通信制御装置間通信路１２を介して接続されているとともに、ローカル通信路１４を介して１個又は複数個のホスト１６へ接続されている。各通信制御装置１０は、ローカル通信路１４を介してホスト１６から受信したパケットに対して、該パケットの転送先を決定する。例えば、各通信制御装置１０は、他の通信制御装置１０から受信したパケットをローカル通信路１４又は別の他の通信制御装置１０へ転送したり、ローカル通信路１４を介して受信した外部宛て先用のパケットについては他の通信制御装置１０へ転送したりする。なお、図１では、ローカル通信路１４を通信制御装置間通信路１２とは別個に図示しているが、図示の通信制御装置間通信路１２がローカル通信路１４を含む場合もある。
【００２４】
図２は通信制御装置１０の構成図である。通信制御装置１０は、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶する記憶装置２０、検索用情報に基づいて受信パケットの転送先経路を検索する経路検索装置２１、及び検索用情報に対応付けられた木を構築する木構築装置２２を含む。木構築装置２２は、木を一旦、構築した後も、エントリの追加及び削除等に伴って、木を更新する。通信制御装置１０は、その他の構成要素として、記憶装置２０の検索用情報を更新する検索用情報更新装置２２を含む。記憶装置２０は例えば不揮発性のＩＣメモリから成る。
【００２５】
図３は検索用情報に対応付けられている木構造を示す。図３において、○はノードＮを表し、上下のノードＮを接続している線は枝を表す。該木構造は、記憶装置２０が記憶している検索用情報に対応付けられており、検索用ノード及び枝を含む。各親ノードは、１個以上の枝を介して直系の各子ノードへリンクしている。木構造において、各階層は、上から順番に第１階層，第２階層，・・・，第ｎ階層と言うことにし、唯一のルート・ノードは最上位階層としての第１階層に存在する。
【００２６】
図４は図３の各ノードにおけるエントリ・テーブルを例示している。各ノードは少なくとも１個のエントリを有し、図４に係るノードでは、該ノードがもつエントリ数は例えば３となっている。木構造における各ノードは１個以上のエントリを有し、各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含む。逆に言うと、木構造に含まれる全部のエントリは所定のマスク用プレフィックスに対応付けられている。各エントリそれに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含む。例えば、図４の１行目のエントリでは、ソート・キーが”０１０１０１００”、マスク長が”５”となっているので、マスク用プレフィックスは、”０１０１０１００”の上からマスク長分だけ抽出した”０１０１０”となる。
【００２７】
ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上の所定値とされる。例えば、図４の例では、ソート・キーのビット数は８とされているが、全マスク用プレフィックスのマスク長の内の最大マスク長が５であれば、ソート・キーのビット数は５以上のどの数であってもよい。
【００２８】
説明の便宜上、「上位側ビット列部分」及び「下位側ビット列部分ビット列」の語句を使用する。「上位側ビット列部分」及び「下位側ビット列部分」とは、基になるビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ言うものとする。各ソート・キーについてその所定ビット数の上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定される。図４の２行目のソート・キー”０１０１１０００”について、説明すると、該ソート・キーに対応付けられているマスク用プレフィックスは、該ソート・キーの上から４桁までの”０１０１”である。
【００２９】
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートされている。図４ではソート・キーは昇順で配列されている。葉ノード（図３では、第ｎ階層のノード）以外の各ノードは、該ノードのエントリ・リストの一端のエントリに対しては２個の枝及びその他の各エントリに対しては１個の枝により１個下の階層の各ノードへリンクを設定可能とされる。リンクは具体的には各エントリに対応付けられたポインタにより達成される。リンク方式には例えば２種類がある。或るノードのエントリ・リストのエントリのソート・キーＥ１，Ｅ２，・・・，Ｅｎ、及び該ノードのリンク先の各ノードにおけるエントリのソート・キーの範囲をＶｏｌ［１］，Ｖｏｌ［２］，・・・，Ｖｏｌ［Ｎ＋１］とすると、第１のリンク方式（図３３）では、Ｖｏｌ［１］＜Ｅ１≦Ｖｏｌ［２］＜Ｅ２≦・・・，＜Ｅｎ≦Ｖｏｌ［Ｎ＋１］となり、第２のリンク方式（図示せず）では、Ｖｏｌ［１］≦Ｅ１＜Ｖｏｌ［２］≦Ｅ２＜・・・，≦Ｅｎ＜Ｖｏｌ［Ｎ＋１］となる。
【００３０】
なお、それぞれ別々のマスク用プレフィックスに対応付けられている複数個のエントリに対して、それらエントリが有しているソート・キーが同一である場合がある。そのような場合でも、エントリが情報として有しているマスク長が異なれば、各エントリが対応付けられているマスク用プレフィックスを異なるものに設定できる。
【００３１】
図５は経路検索装置２１の構成図である。アドレス抽出手段２６は、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）。ノード内一致エントリ検索手段２７は、各検索対象ノード２８において該検索対象ノード２８の中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し、該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとし、また、該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとする。検索制御手段２９は、ノード内一致エントリ検索手段２７に検索対象ノード２８を指示するものであって、各検索対象ノード２８における各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し、該選択したリンクに係るノードを次の検索対象ノード２８に決定し、リンクが無い場合には、ノード別検索処理の終了と判断する。転送先経路決定手段３０は、ノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する。換言すると、転送先経路決定手段３０は、ノード別検索処理の終了後、木構造の各階層におけるノード内一致エントリ検索手段２７の検出に係るマスク用プレフィックスの中で最大マスク長のマスク用プレフィックスに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する。
【００３２】
なお、ノード別検索処理が終了した時点で、全部の検索対象ノード２８においてノード内一致エントリが無かった場合もあり得る。そのような場合は、転送先経路決定手段３０は、今回の受信パケットに対してその転送先経路を決定する情報は経路検索装置２１の検索用情報内には存在しないと判断する。
【００３３】
図６は木構築装置２２の構成図である。木構築装置２２は、マスク用プレフィックス３４に基づき記憶装置２０に格納する木を構築する。木構造では、各ノードは、木構造全体のエントリをそれらのソート・キーに基づいてソートした順番に従ってエントリを割当てられている（後で、図３１を参照して詳述。）。一例としての木構造では、同一階層に属する各ノードのエントリ数は、等しく設定されている。
【００３４】
算出手段３５は、マスク用プレフィックスＣに対してそれに対応付け可能なソート・キーの最小値及び最大値をそれぞれＣｓ＿ｍｉｎ及びＣｓ＿ｍａｘとして算出する。この具体例を述べると、マスク用プレフィックスＣが”０１０１”であって、ソート・キーのビット数が８ビットであるとき、最小ソート・キーＣｓ＿ｍｉｎは、上位４ビットの”０１０１”に対して残りの下位４ビットを”００００”とする”０１０１００００”であり、最大ソート・キーＣｓ＿ｍａｘは、上位４ビットの”０１０１”に対して残りの下位４ビットを”１１１１”とする”０１０１１１１１”である。ソート・キー設定手段３６は、マスク用プレフィックスＣに対して対応付けるソート・キーＣｓをＣｓ＿ｍｉｎ≦Ｃｓ≦Ｃｓ＿ｍａｘの条件下で設定する。この具体例を述べると、マスク用プレフィックスＣが”０１０１”であって、ソート・キーのビット数が８ビットであるとき、ソート・キーＣｓは、０１０１００００≦Ｃｓ≦０１０１１１１１であり、例えばＣｓ＝０１０１０００１である。木構造生成手段３７は、各マスク用プレフィックスについてソート・キー設定手段３６の設定したソート・キーに基づき各ノードのエントリを決定し、該決定に基づく木構造を生成する。木構造生成手段３７の生成した木構造は、木構造構築装置２２の出力とされて、記憶装置２０に格納される。
【００３５】
２個のマスク用プレフィックスＣ１，Ｃ２に対してそれらＣ１，Ｃ２に対応付けるソート・キーをＣ１ｓ，Ｃ２ｓとし、また、それらＣ１，Ｃ２に対応付け可能な最小ソート・キーをＣ１ｓ＿ｍｉｎ，Ｃ２ｓ＿ｍｉｎ、及び最大ソート・キーをＣ１ｓ＿ｍａｘ，Ｃ２ｓ＿ｍａｘとする。ソート・キー設定手段３６は、Ｃ１ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍａｘ≦Ｃ１ｓ＿ｍａｘ（ただし、Ｃ１ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍａｘ＝Ｃ１ｓ＿ｍａｘは除外する。）が成り立つとき、Ｃ１ｓを、Ｃ１ｓ＿ｍｉｎからＣ１ｓ＿ｍａｘまでの範囲内でかつＣ２ｓ＿ｍｉｎからＣ２ｓ＿ｍａｘまでの範囲外となる条件下で設定する。木構造生成手段３７は、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が同一の葉ノードに属する標準木構造に対して、同一マスク用プレフィックス由来のソート・キーは各葉ノードにおいて１個のみとなるように、同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力する。木構造生成手段３７は、また、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が、ルート・ノードから葉ノードへ至る検索経路における上階層のノードと下階層ノードとの両方に存在する標準木構造に対して、該下位階層のノードにおける同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力する。
【００３６】
木構造では、１個のマスク用プレフィックスが対応付けられているソート・キーが複数個、存在するときがあり、これが原因となって、抽出アドレスが、そのマスク用プレフィックスの検索過程において、同一マスク用プレフィックス由来の複数個のエントリと繰返し対比されることがある。一方、通信制御装置１０では、各検索対象ノードでは、該検索対象ノードに属する全部のソート・キーが抽出アドレスに対して照合される。また、通信制御装置１０では、抽出アドレスについての検索対象ノードは、ルート・ノードから葉ノードへ至る検索経路に含まれる全部のノードとなる。したがって、上述の間引きを行っても、検索をしなければならないエントリが検索から漏れる事態が防止され、また、エントリの総数が減ることによる木構造の小型化が達成可能となる。
【００３７】
改善した通信制御装置１０では、通信制御装置１０にデフォルト・ルートを実装する。デフォルト・ルートとは、通信制御装置１０が装備するルーティング・テーブルにマスク用プレフィックスが見つからないＩＰアドレスの転送先として使われる転送先のことを言うものとし、マスク長が０ビットのプレフィックスとして考えることができる。デフォルト・ルートの実装により、通信制御装置１０は、今回の受信パケットの転送先経路に関する検索情報を装備していない場合の例外処理の実施を省略できるとともに、経路検索装置２１に係るコミュニケーション情報として「見つからなかった」という特異値を設ける必要がなくなる。通信制御装置１０において、デフォルト・ルートは、通信制御装置１０より上位の所定の通信制御装置への経路選択に設定しておき、該上位の通信制御装置において今回の受信パケットについての転送先経路の決定を委託することになる。デフォルト・ルートの第１の実装方法では、木構築装置２２が構築する木構造に、ビット長さが０ビットのマスク用プレフィックスに対応付けたエントリが含まれるようにすることである。ＩＰｖ４などでは、マスク用プレフィックスのマスク長について１から３２までの値を取り得る。つまり、計３２個のマスク用プレフィックスが存在し、エントリのマスク長情報は５ビットで表現できる。しかし、第１の実装方法によりマスク長が０ビットのマスク用プレフィックスを追加すると、マスク用プレフィックスのマスク長は全部で３３個となり、エントリのマスク長情報は６ビットとなり、ビット長さが増大して不利となる。これを克服する第２の実装方法では、デフォルト・ルートを、２進数で０ｘｘｘ・・・のマスク用プレフィックス及び／又は１ｘｘｘ・・・のマスク用プレフィックスに対応付けることである。すなわち、木構築装置２２が構築する木構造に、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックスと、ビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとが含まれるようにすることである。なお、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックスと、ビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとのいずれか一方が、すでに、デフォルト・ルート以外の通信路に設定されているのであれば、該通信路を優先して割り当て、他方がデフォルト・ルートに割当てられる。また、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックスと、ビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとの両方が、すでに、デフォルト・ルート以外の通信路にそれぞれ設定されているのであれば、それら通信路への割り当てを保持し、デフォルト・ルートに係るマスク用プレフィックスの割当ては不要である。
【００３８】
デフォルト・ルートの実装は、転送先経路を決定するために使用する検索用情報を木構造以外の構造で保持する通信制御装置にも適用可能である。図７は通信制御装置１００の機能ブロック図である。マスク用プレフィックス情報記憶手段１０１は、ビット長さが０ビットであるマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶する。ビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してある。アドレス抽出手段１０２は、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）。説明の便宜上、抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにする。検索手段１０３は、上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する。転送先経路決定手段１０４は、該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する。
【００３９】
なお、マスク用プレフィックス情報記憶手段１０１は、ビット長さが０ビットであるマスク用プレフィックス（以下、適宜、「マスク用プレフィックスＤｅ」と言う。）に係る情報を含むマスク用プレフィックス情報に代えて、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス（以下、適宜、「マスク用プレフィックスＤｅ０」と言う。）及びビット長さが１ビットでかつビット値が”１”のマスク用プレフィックス（以下、適宜、「マスク用プレフィックスＤｅ１」と言う。）に係る情報を含むマスク用プレフィックス情報を記憶してもよい。マスク用プレフィックスＤｅ０及び／又はマスク用プレフィックスＤｅ１はデフォルト転送先経路に設定してある。
【００４０】
図８は通信制御装置１２０の機能ブロック図である。通信制御装置１２０は、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶する記憶装置１２１、及び検索用情報に基づいて受信パケットの転送先経路を検索する経路検索装置１２２を含む。検索用情報は第１の情報部分１２６と第２の情報部分１２７とから成る。所定の自然数ｕを定義し、マスク用プレフィックスの各ビットの番号を、ＭＳＢを１番としてＭＳＢからＬＳＢへの順番で定義する。また、ｕビット以下及びｕ＋１ビット以上のマスク用プレフィックスをそれぞれ短い及び長いマスク用プレフィックスと呼ぶことにする。長いマスク用プレフィックスについて、１番からｕ番までの部分及びｕ＋１番から最終番までの部分をそれぞれ上位側マスク用プレフィックス部分及び下位側マスク用プレフィックス部分と呼ぶことにする。同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスをマスク用プレフィックス群とする（ただし、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスが１個である場合は、該長いマスク用プレフィックスが属するマスク用プレフィックス群の要素としてのマスク用プレフィックスは１個のみとなる。）。第１の情報部分１２６は短いマスク用プレフィックス及び上位側マスク用プレフィックス部分に係る情報を含む。
【００４１】
第１の情報部分１２６は１個のテーブル構造で記憶されている。該テーブル構造の具体例については、図１２〜図１４において後述する。該テーブル構造は、ｕビットの相互に異なるソート・キーをもつエントリを含む。各テーブル構造に含まれているエントリには第１及び第２のテーブル構造用エントリが含まれ、第１のテーブル構造用エントリは、そのソート・キーの１番からｗ（ｗはｕ以下の自然数）番までの全ビット値が、該第１のテーブル構造用エントリに対応付けられている小さいマスク用プレフィックスと同一であり、第２のテーブル構造用エントリは、そのソート・キーの全ビットが、該第２のテーブル構造用エントリに対応付けられている上位側マスク用プレフィックス部分と同一である。
【００４２】
第２の情報部分１２７は下位側マスク用プレフィックス部分に係る情報を含む。第２の情報部分１２７は少なくとも１個の木構造で記憶されている。この木構造は図３で前述したとおりである。各木構造は、各マスク用プレフィックス群に対応付けられるとともに、対応付けられたマスク用プレフィックス群に属する長いマスク用プレフィックスの上位側マスク用プレフィックス部分に等しいソート・キーをもつエントリであってテーブル構造に含まれるエントリからリンクを設定されている。ただし、図３の木構造では、各エントリがマスク用プレフィックス全体に対して割当てられているのに対し、第２の情報部分１２７における木構造は、マスク用プレフィックス群に対応付けて割当てられている。各木構造における各ノードは１個以上のエントリを有している。各長いマスク用プレフィックスの下位側マスク用プレフィックス部分は少なくとも１個のエントリに対応付けられている。木構造の各エントリは、それに対応付けられた下位側マスク用プレフィックス部分のビット数（以下、「下位側マスク用プレフィックス部分マスク長」と言う。）の情報とソート・キーとを含む。木構造のエントリのビット数は、全部の下位側マスク用プレフィックス部分の下位側マスク用プレフィックス部分マスク長の内の最大下位側マスク用プレフィックス部分マスク長以上に設定されている。ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられている下位側マスク用プレフィックス部分と同一に設定されている。エントリは、それらがもつソート・キーのソート順に基づいて木構造の所定のノードに割当てられている。各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもつ。葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされている。
【００４３】
経路検索装置１２２では、アドレス抽出手段１３０は、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）。テーブル構造用経路検索装置１３１は、抽出アドレスについて１番からｕ番までのビット列部分及びｕ＋１番以降のビット列部分をそれぞれ第１及び第２の抽出アドレス部分と呼ぶことにしテーブル構造の各エントリと第１の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する。木構造用経路検索装置１３２は、木構造の各エントリと第２の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する。制御装置１３３は、テーブル構造用経路検索装置１３１及び木構造用経路検索装置１３２を制御する。最終決定装置１３４は、テーブル構造用経路検索装置１３１及び木構造用経路検索装置１３２の検索結果に基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終的に決定する。なお、図８では、木構造用経路検索装置１３２は１個しか図示されていないが、木構造用経路検索装置１３２はマスク用プレフィックス群の個数だけ存在する。
【００４４】
図９はテーブル構造用経路検索装置１３１の詳細な機能ブロック図である。テーブル構造用経路検索装置１３１では、検索手段１３８は、第１の抽出アドレス部分の上位側ビット列部分と一致するソート・キーをもつエントリを該当エントリとして検索する。通知手段１３９は、検索手段が検索した該当エントリについて所定の木構造へリンクが設定されていれば、その旨及びリンク先の木構造を制御装置１３３へ通知する。
【００４５】
図１０は木構造用経路検索装置１３２の詳細な機能ブロック図である。木構造用経路検索装置１３２の基本的構造は図５の経路検索装置２１のものとほぼ同一である。すなわち、木構造用経路検索装置１３２のノード内一致エントリ検索手段１４１、検索制御手段１４３及び下位側マスク用プレフィックス部分決定手段１４４はそれぞれ図５の経路検索装置２１のノード内一致エントリ検索手段２７、検索制御手段２９及び転送先経路決定手段３０に対応する。相違点は、木構造用経路検索装置１３２は経路検索装置２１におけるアドレス抽出手段２６を装備していないこと、及び木構造用経路検索装置１３２は、マスク用プレフィックス全体ではなく、各マスク用プレフィックス群に対応付けられており、かつ各マスク用プレフィックス群に属するマスク用プレフィックスの下位側マスク用プレフィックス部分に係る木構造について経路探索を行うものであることである。木構造用経路検索装置１３２において、ノード内一致エントリ検索手段１４１は、木構造の各検索対象ノード１４２において該検索対象ノード１４２の中で第２の抽出アドレス部分の上位側ビット列部分と一致する下位側マスク用プレフィックス部分の情報をもつエントリを該当エントリとして検索し、該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとし、また、該当エントリが複数個であれば該当エントリの中でビット長さが最大の下位側マスク用プレフィックス部分の情報をもつエントリをノード内一致エントリとする。検索制御手段１４３は、ノード内一致エントリ検索手段１４１に検索対象ノード１４２を指示し、各検索対象ノード１４２における各エントリのソート・キーと第２の抽出アドレス部分との対比に基づいてリンクを選択し、該選択したリンクに係るノードを次の検索対象ノード１４２に決定し、リンクが無い場合にはノード別検索処理の終了と判断する。下位側マスク用プレフィックス部分決定手段１４４は、ノード別検索処理の終了後、第２の抽出アドレス部分に係る複数個のノード内一致エントリに対応の下位側マスク用プレフィックス部分の中で最大ビット長さのものを決定する。
【００４６】
図１１は制御装置１３３の機能ブロック図である。制御装置１３３において、第１の指示手段１４５は、アドレス抽出手段１３０が抽出した今回の抽出アドレスに対して木構造用経路検索装置１３２に先駆けてテーブル構造用経路検索装置１３１に検索処理を指示する。第２の指示手段１４６は、テーブル構造用経路検索装置１３１の通知手段１３９から通知があったときは、木構造用経路検索装置１３２に検索対象木構造として通知手段１３９から通知のあったものを指定して今回の抽出アドレスに係る検索処理を指示する。
【００４７】
最終決定装置１３４（図８）は、第２の指示手段１４６が木構造用経路検索装置１３２に検索処理を指示しなかったときは、テーブル構造用経路検索装置１３１の検索手段が検索した該当エントリに係る短いマスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終決定する。最終決定装置１３４は、また、第２の指示手段１４６が木構造用経路検索装置１３２に検索処理を指示したときは、木構造用経路検索装置１３２が検索対象木構造とした木構造のリンク元のテーブル構造のエントリに係る上位側マスク用プレフィックス部分と木構造用経路検索装置１３２の下位側マスク用プレフィックス部分決定手段が決定した下位側マスク用プレフィックス部分とに基づく長いマスク用プレフィックスを、今回の抽出アドレスに係る受信パケットの転送先経路として最終決定する。
【００４８】
図１２は複数個のマスク用プレフィックスからデフォルト・ルート及びソート・キーを生成する具体例を示している。実際のＩＰｖ４では、ＩＰアドレスが３２ビットになっているが、説明の便宜上、ＩＰアドレスのビット長さが６ビットであると仮定し、また、前述の自然数ｕを３と仮定する。図１２（ａ）は、ビット長さがまちまちの９個のマスク用プレフィックスが昇順で例示されている。図１２（ｂ）及び（ｃ）は、図１２（ａ）のマスク用プレフィックスをそれぞれｕビット以下のマスク用プレフィックス及びｕ＋１ビット以上のマスク用プレフィックスを集めたものである。番号１，６，７，８のマスク用プレフィックスは短いマスク用プレフィックスであり、これに対して、番号２，３，４，５，９のマスク用プレフィックスは長いマスク用プレフィックスとなる。例えば番号９の長いマスク用プレフィックスにおいて、１番から３番までのビット列”１１０”は上位側マスク用プレフィックス部分となり、４番以降のビット列としての”０”は下位側マスク用プレフィックス部分となる。
【００４９】
図１３は検索用情報を１個のテーブル構造と少なくとも１個の木構造とに分けて持つ場合のテーブル構造を示している。該テーブル構造は、ビット長さがｕビットでかつ相互に値の異なるソート・キーをもつ計８個のエントリをもつ。各エントリは、ソート・キーに関連付けて、木構造へのリンク付けのためのポインタ、及び短いマスク用プレフィックスの候補を備える。各短いマスク用プレフィックスは、該マスク用プレフィックスの全部のビット番号において等しいビット値であるソート・キーをもつ１個のエントリに対応付けられている。また、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックス同士は、マスク用プレフィックス群を構成し、各マスク用プレフィックス群は、該群に係る上位側マスク用プレフィックス部分と等しいソート・キーをもつエントリに、該群に係る木構造へのポインタにより関連付けられている。短いマスク用プレフィックス同士は、テーブル構造において必ず別々のエントリに対応付けられる。テーブル構造における検索処理において、木構造へのポインタが設定されていないエントリが、今回の抽出アドレスに対応するソート・キーをもつエントリであると判断された場合には、該エントリに対応付けられた短いマスク用プレフィックスが、今回の受信パケットの転送先経路を決定する因子となる。テーブル構造における検索処理において、木構造へのポインタが設定されているエントリが、今回の抽出アドレスに対応するソート・キーをもつエントリであると判断された場合には、該エントリにリンク付けされた木構造について検索が次に実施される。そして、該木構造における検索処理の結果、今回の抽出アドレスの第２の抽出アドレス部分に対して、該第２の抽出アドレス部分の上位側ビット列部分と一致する下位側マスク用プレフィックス部分が見つからなければ、該検索対象木構造のリンク元のエントリに係る短いマスク用プレフィックスに基づき今回の受信パケットの転送先経路が決定される。また、見つかれば、見つかった下位側マスク用プレフィックス部分に係る長いマスク用プレフィックスに基づき今回の受信パケットの転送先経路が決定される。
【００５０】
図１４は図１３のエントリにリンク付けされた各木構造に下位側マスク用プレフィックス部分が属しているマスク用プレフィックスの集合を示している。図１４（ａ）及び（ｂ）は図１３のそれぞれＴｒｅｅ−Ａ及びＴｒｅｅ−Ｂに下位側マスク用プレフィックス部分が属しているマスク用プレフィックスの集合である。
【００５１】
図１５は通信制御方法のフローチャートである。該通信制御方法では、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶し、検索用情報に基づいて受信パケットの転送先経路を検索する。
【００５２】
各ステップの前提となる検索用情報について説明する。検索用情報は木構造に対応付けられたものである。該木構造における各ノードは１個以上のエントリを有している。各マスク用プレフィックスは少なくとも１個のエントリに対応付けられている。各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含む。ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定されている。ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定される。エントリは、それらがもつソート・キーのソート順に基づいて木構造の所定のノードに割当てられる。各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートされている。葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる。
【００５３】
図１５のＳ４２（アドレス抽出ステップ）では、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）。Ｓ４３（ノード内一致エントリ検索ステップ）では、各検索対象ノードにおいて該検索対象ノードの中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し、該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとし、また、該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとする。Ｓ４４，Ｓ４５（検索制御ステップ）では、Ｓ４３（ノード内一致エントリ検索ステップ）へ検索対象ノードを指示する。Ｓ４４，４５では、各検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し、該選択したリンクに係るノードを次の検索対象ノードに決定し、また、リンクが無い場合にはノード別検索処理の終了と判断する。すなわち、Ｓ４４では、現在の（カレントの：ｃｕｒｒｅｎｔ）検索対象ノードが葉ノードであるか否かを判定し、判定結果が正であれば、Ｓ４６へ進み、否であれば、Ｓ４５へ進む。Ｓ４５では、検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し、該選択したリンクに係るノードを次の検索対象ノードに決定してから、Ｓ４３へ戻る。Ｓ４６（転送先経路決定ステップ）では、ノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する。換言すると、Ｓ４６では、ノード別検索処理の終了後、木構造の各階層に対してＳ４３の検出に係るマスク用プレフィックスの中で最大マスク長のマスク用プレフィックスに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する。
【００５４】
木構造の具体例は次の通りである。各ノードは、木構造全体のエントリをそれらのソート・キーに基づいてソートした順番に従ってエントリを割当てられている。同一階層に属する各ノードのエントリ数は、等しく設定されている。枝により１個下の階層のノードへのリンクを設定されているノードにおいて、該ノードのエントリ・リストの一端のエントリについては２個、その他の各エントリについて各１個の枝が対応付けられている。
【００５５】
図１６は木構造構築方法のフローチャートである。Ｓ５１（算出ステップ）では、マスク用プレフィックスＣに対してそれに対応付け可能なソート・キーの最小値及び最大値をそれぞれＣｓ＿ｍｉｎ及びＣｓ＿ｍａｘとして算出する。Ｓ５２（ソート・キー設定ステップ）では、マスク用プレフィックスＣに対して対応付けるソート・キーＣｓをＣｓ＿ｍｉｎ≦Ｃｓ≦Ｃｓ＿ｍａｘの条件下で設定する。Ｓ５３（木構造生成ステップ）では、各マスク用プレフィックスについてＳ５２（ソート・キー設定ステップ）において設定したソート・キーに基づき各ノードのエントリを決定し、該決定に基づく木構造を生成する。
【００５６】
さらに、２個のマスク用プレフィックスＣ１，Ｃ２に対してそれらＣ１，Ｃ２に対応付けるソート・キーをＣ１ｓ，Ｃ２ｓとし、また、それらＣ１，Ｃ２に対応付け可能な最小ソート・キーをＣ１ｓ＿ｍｉｎ，Ｃ２ｓ＿ｍｉｎ、及び最大ソート・キーをＣ１ｓ＿ｍａｘ，Ｃ２ｓ＿ｍａｘとする。Ｓ５２（ソート・キー設定ステップ）では、Ｃ１ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍａｘ≦Ｃ１ｓ＿ｍａｘ（ただし、Ｃ１ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍａｘ＝Ｃ１ｓ＿ｍａｘは除外する。）が成り立つとき、Ｃ１ｓを、Ｃ１ｓ＿ｍｉｎからＣ１ｓ＿ｍａｘまでの範囲内でかつＣ２ｓ＿ｍｉｎからＣ２ｓ＿ｍａｘまでの範囲外となる条件下で設定する。
【００５７】
また、好ましくは、Ｓ５３（木構造生成ステップ）では、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が同一の葉ノードに属する標準木構造に対して、同一マスク用プレフィックス由来のソート・キーは各葉ノードにおいて１個のみとなるように、同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力する。Ｓ５３（木構造生成ステップ）の別の態様では、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が、ルート・ノードから葉ノードへ至る検索経路における上階層のノードと下階層ノードとの両方に存在する標準木構造に対して、該下位階層のノードにおける同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力する。
【００５８】
図１７はプログラムを実行するためのハードウェア構成図である。前述した図１５及び図１６並びに後述する図１８〜図２２に関連する方法の各ステップは例えば図１７のハードウェアを使用して実行される。システム・バス５５には、ＣＰＵ５６、主記憶装置５７及び入出力制御装置５８が接続される。前述した方法は、コード化されたプログラムとして実行可能となっている。入出力制御装置５８には、ハード・ディスク・インターフェース等が含まれ、ＣＰＵ５６が実行する各種プログラムはハード・ディスク装置等にストアされている。プログラムは、ＣＰＵ５６において実行されるのに先立ち、主記憶装置５７にストアされる。ＣＰＵ５６は、主記憶装置５７の命令行を順次、読み出して、該プログラムを実行する。
【００５９】
改善した通信制御方法としてデフォルト・ルート実装通信制御方法について説明する。デフォルト・ルート実装通信制御方法におけるデフォルト・ルート及びその実装の利点は、先に、改善した通信制御装置１０において説明したとおりである。
【００６０】
デフォルト・ルートの実装は、転送先経路を決定するために使用する検索用情報を木構造以外の構造で保持する通信制御方法にも適用可能である。図１８はデフォルト・ルート実装通信制御方法のフローチャートである。Ｓ１５１（マスク用プレフィックス情報記憶ステップ）では、ビット長さが０ビットであるマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶する。ビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してある。Ｓ１５２（アドレス抽出ステップ）では、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）。説明の便宜上、抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにする。Ｓ１５３（検索ステップ）では、上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する。Ｓ１５４（転送先経路決定ステップ）では、該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する。
【００６１】
なお、マスク用プレフィックス情報記憶ステップ１０１は、ビット長さが０ビットであるマスク用プレフィックス（以下、適宜、「マスク用プレフィックスＤｅ」と言う。）に係る情報を含むマスク用プレフィックス情報に代えて、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス（以下、適宜、「マスク用プレフィックスＤｅ０」と言う。）及びビット長さが１ビットでかつビット値が”１”のマスク用プレフィックス（以下、適宜、「マスク用プレフィックスＤｅ１」と言う。）に係る情報を含むマスク用プレフィックス情報を記憶してもよい。マスク用プレフィックスＤｅ０及び／又はマスク用プレフィックスＤｅ１はデフォルト転送先経路に設定してある。
【００６２】
別の通信制御方法について説明する。この別の通信制御方法は、受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報に基づいて受信パケットの転送先経路を検索する（図１９）。検索用情報は第１の情報部分と第２の情報部分とから成る。所定の自然数ｕを定義し、マスク用プレフィックスの各ビットの番号を、ＭＳＢを１番としてＭＳＢからＬＳＢへの順番で定義し、ｕビット以下及びｕ＋１ビット以上のマスク用プレフィックスをそれぞれ短い及び長いマスク用プレフィックスと呼ぶことにし、長いマスク用プレフィックスについて、１番からｕ番までの部分及びｕ＋１番から最終番までの部分をそれぞれ上位側マスク用プレフィックス部分及び下位側マスク用プレフィックス部分と呼ぶことにし、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスをマスク用プレフィックス群とする（ただし、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスが１個である場合は、該長いマスク用プレフィックスが属するマスク用プレフィックス群の要素としてのマスク用プレフィックスは１個のみとなる。）。第１の情報部分は短いマスク用プレフィックス及び上位側マスク用プレフィックス部分に係る情報を含み、第１の情報部分は１個のテーブル構造で記憶されている。該テーブル構造は、ｕビットの相互に異なるソート・キーをもつエントリを含む。各テーブル構造に含まれているエントリには第１及び第２のテーブル構造用エントリが含まれ、第１のテーブル構造用エントリは、そのソート・キーの１番からｗ（ｗはｕ以下の自然数）番までの全ビット値が、該第１のテーブル構造用エントリに対応付けられている小さいマスク用プレフィックスと同一であり、第２のテーブル構造用エントリは、そのソート・キーの全ビットが、該第２のテーブル構造用エントリに対応付けられている上位側マスク用プレフィックス部分と同一であり、ソート・キーとに係るエントリが含まれている。第２の情報部分は下位側マスク用プレフィックス部分に係る情報を含む。第２の情報部分は少なくとも１個の木構造で記憶されている。各木構造は、各マスク用プレフィックス群に対応付けられるとともに、対応付けられたマスク用プレフィックス群に属する長いマスク用プレフィックスの上位側マスク用プレフィックス部分に等しいソート・キーをもつエントリであってテーブル構造に含まれるエントリからリンクを設定されていている。各木構造における各ノードは１個以上のエントリを有している。各長いマスク用プレフィックスの下位側マスク用プレフィックス部分は少なくとも１個のエントリに対応付けられている。木構造の各エントリは、それに対応付けられた下位側マスク用プレフィックス部分のビット数（以下、「下位側マスク用プレフィックス部分マスク長」と言う。）の情報とソート・キーとを含む。木構造のエントリのビット数は、全部の下位側マスク用プレフィックス部分の下位側マスク用プレフィックス部分マスク長の内の最大下位側マスク用プレフィックス部分マスク長以上に設定されている。ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられている下位側マスク用プレフィックス部分と同一に設定されている。エントリは、それらがもつソート・キーのソート順に基づいて木構造の所定のノードに割当てられている。各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもつ。葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされている。
【００６３】
図１９は別の通信制御方法のフローチャートである。Ｓ１６８（アドレス抽出ステップ）では、受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）。抽出アドレスについて１番からｕ番までのビット列部分及びｕ＋１番以降のビット列部分をそれぞれ第１及び第２の抽出アドレス部分と呼ぶことにする。Ｓ１６９（テーブル構造用経路検索ステップ）では、テーブル構造の各エントリと第１の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する。Ｓ１７０（木構造用経路検索ステップ）では、木構造の各エントリと第２の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する。Ｓ１７１（制御ステップ）では、テーブル構造用経路検索ステップ及び木構造用経路検索ステップを制御する。Ｓ１７２（最終決定ステップ）では、テーブル構造用経路検索ステップ及び木構造用経路検索ステップの検索結果に基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終的に決定する。
【００６４】
図２０は図１９のＳ１６９（テーブル構造用経路検索ステップ）の詳細なフローチャートである。Ｓ１７５（検索ステップ）では、第１の抽出アドレス部分の上位側ビット列部分と一致するソート・キーをもつエントリを該当エントリとして検索する。Ｓ１７６（通知ステップ）では、検索ステップにおいて検索した該当エントリについて所定の木構造へリンクが設定されていれば、その旨及びリンク先の木構造をＳ１７１（制御ステップ）へ通知する。
【００６５】
図２１は図１９のＳ１７０（木構造用経路検索ステップ）の詳細なフローチャートである。Ｓ１８０（ノード内一致エントリ検索ステップ）では、木構造の各検索対象ノードにおいて該検索対象ノードの中で第２の抽出アドレス部分の上位側ビット列部分と一致する下位側マスク用プレフィックス部分の情報をもつエントリを該当エントリとして検索し、該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとし、また、該当エントリが複数個であれば該当エントリの中でビット長さが最大の下位側マスク用プレフィックス部分の情報をもつエントリをノード内一致エントリとする。Ｓ１８１（検索制御ステップ）では、ノード内一致エントリ検索ステップにおける検索対象ノードを指示するとともに、各検索対象ノードにおける各エントリのソート・キーと第２の抽出アドレス部分との対比に基づいてリンクを選択し、該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する。Ｓ１８２（下位側マスク用プレフィックス部分決定ステップ）では、ノード別検索処理の終了後、第２の抽出アドレス部分に係る複数個のノード内一致エントリに対応の下位側マスク用プレフィックス部分の中で最大ビット長さのものを決定する。
【００６６】
図２２は図１９のＳ１７１（制御ステップ）の詳細なフローチャートである。Ｓ１８６（第１の指示ステップ）では、Ｓ１６８（アドレス抽出ステップ）において抽出した今回の抽出アドレスに対してＳ１７０（木構造用経路検索ステップ）の検索処理の実行に先駆けてＳ１６９（テーブル構造用経路検索ステップ）における検索処理の実行を指示する。Ｓ１８７（第２の指示ステップ）では、Ｓ１６９（テーブル構造用経路検索ステップ）のＳ１７６（通知ステップ）から通知があったときは、Ｓ１７０（木構造用経路検索ステップ）に検索対象木構造としてＳ１７６（通知ステップ）から通知のあったものを指定して今回の抽出アドレスに係る検索処理の実行を指示する。
【００６７】
図１９のＳ１７２（最終決定ステップ）について、その詳細を述べる。Ｓ１７２（最終決定ステップ）では、Ｓ１８７（第２の指示ステップ）においてＳ１７０（木構造用経路検索ステップ）に検索処理の実行を指示しなかったときは、Ｓ１６９（テーブル構造用経路検索ステップ）のＳ１７５（検索ステップ）において検索した該当エントリに係る短いマスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終決定する。Ｓ１７２（最終決定ステップ）では、また、Ｓ１８７（第２の指示ステップ）においてＳ１７０（木構造用経路検索ステップ）に検索処理の実行を指示したときは、Ｓ１７０（木構造用経路検索ステップ）において検索対象木構造とした木構造のリンク元のテーブル構造のエントリに係る上位側マスク用プレフィックス部分とＳ１７０（木構造用経路検索ステップ）のＳ１８２（下位側マスク用プレフィックス部分決定ステップ）において決定した下位側マスク用プレフィックス部分とに基づく長いマスク用プレフィックスを、今回の抽出アドレスに係る受信パケットの転送先経路として最終決定する。
【００６８】
【実施例】
図２３以降の図は本発明の実施例に関する。
【００６９】
図２３はＩＰｖ４のＩＰアドレスの構成を示す。ＩＰアドレスは、３２ビットからなり、上位ビット列部分及び下位ビット列部分に２分割され、上位ビット列部分はプレフィックス（ＩＰでは、ネットワーク・アドレスとも言う）を表し、下位ビット列部分はホスト番号を表す。プレフィックスとホスト番号との合計のビット数は３２ビットに決められているが、プレフィックスのビット数、すなわちマスク長は、受信したパケットごとに変化するとともに、その情報は受信パケット内に含まれておらず、通信制御装置は、今回受信したパケットのプレフィックスが何であるかを、自ら検出する必要がある。
【００７０】
ソートされたＩＰ検索木とその検索機構とを中心に説明する。主要点は、マスク長によるトポロジカルな木構造（パトリシア木）を採用せず、必要に応じて１個のエントリを複数のエントリに分割することにより、すべてのエントリを平等で構造をもたないエントリ集合に直すことである。このエントリ集合を高速に検索するために、以下の検索木が実装される。
【００７１】
（１）転送テーブルから検索木を作る方法
（１−１）転送テーブルを展開して１次元のソートされたリストを作る。
転送テーブルの各プレフィックスを基にしてＩＰアドレスに相当するキー・データを作り、このキーに従って昇順ソートを行い１次元のリストを作る（具体例は、図２５を参照して、後述。）。
【００７２】
キー・データはプレフィックスに続くビットを継ぎ足して、ＩＰアドレスと同じ長さ（図２５では、説明の簡略化上、ＩＰアドレスの長さは８ビットであると仮定している。）にしたものである。継ぎ足すデータはマスクによって一致検索対象とならない下位ビット（ホストアドレス領域）であり、次のように決める。基本方法１：自身のマスク長より長いマスク長のプレフィックスをもちかつ自身のマスク長までのビット値が一致するプレフィックスの情報をもつエントリが他にないものの場合、ＡＬＬ”０”などの任意の値を埋める。例：図２５の第２行のプレフィックス”１０１００１”に対してソート・キーを”１０１００１０”に設定。
【００７３】
これ以外の場合は次の基本方法２となる。
基本方法２：自身が排他的に適応される複数のＩＰアドレス連続領域を考える。それぞれの連続領域内のＩＰ値１個を代表値として任意に選ぶ。この操作を、プレフィックスがカバーする領域全体にわたって行うことで複数に分割したエントリとする。例：図２５のプレフィックス”１０１０”に対して、Ｂ１，Ｂ２，Ｂ３のソート・キーを設定。
【００７４】
図２４はＩＰアドレスを８Ｂｉｔとした転送テーブルの例である。図２５は図２４の転送テーブルを基本方法１，２で展開し、かつソート・キーでソートしたテーブルである。図２６にこれらとＩＰアドレスとの関係を示す。基本方法１に対応するのは、Ａ１、Ｄ１、Ｅ１であり、基本方法２に対応するのは、Ｂ１、Ｂ２、Ｂ３及びＣ１、Ｃ２である。このように展開すると、Ｎエントリの転送テーブルは最大で２×Ｎ−１エントリに展開される。これは、次のような理由から理解される。すなわち、マスク長が短いもの（カバーするＩＰアドレス領域の広いもの）から順次上記基本方法１，２でテーブルを構築していく過程を考える。そうすると転送テーブルの１個のエントリを展開する過程は基本方法１によって足されることになる。一方そのエントリが、すでにあるエントリのカバーする領域と重なる場合、すでにあるエントリについて基本方法２の処理を再度実行することになる。結果としてこの過程は必ず次の▲１▼〜▲４▼のいずれかになる。なお、図２７〜図３０において、中間に”／”が挿入されている数値において、”／”より前の二進数はプレフィックスを表し、”／”より後の数値はマスク長を意味し、”／”の無い二進数はソート・キーを表す。
▲１▼図２７：それまでに作ったエントリ（代表値０１１０１００１をもつエントリ）と独立なエントリ（代表値０１１１０１００をもつエントリ）が１個、足される場合、１エントリが足される（図２７）。
▲２▼図２８：包含関係のエントリ（代表値０１１０１００１をもつエントリ）がすでにあり、その片端部を置き換える場合、１エントリ（代表値０１１０１０１０をもつエントリ）が足される。このとき置き換え対象エリアの代表値（０１１０１００１）が新たに足されるエリア内にある場合は別の値（０１１０１０１０）に選び直す。
▲３▼図２９：包含関係のエントリ（代表値０１１０１００１をもつエントリ）がすでにあり、そのエントリを２個に分断して、新たにこのエントリ（代表値０１１０１０１０をもつエントリ）が足される場合、２エントリ（代表値０１１０１００１，０１１０１１１１に対応する２個のエントリ）が足される。新たなエリアがすでにある代表値と干渉する場合はその代表値を別の値に選びなおす。
▲４▼図３０：すでに他のエントリ（代表値０１１０１００１をもつエントリ）が同じ領域を占有しており、それを置き換える場合、エントリは、置き換えられ、増えない。
【００７５】
このことから、このような順番で構築する限り、１個のエントリを増やすたびに、エントリ総数は最大で２エントリ増えることになる（▲３▼）。また最初のエントリはその追加に対するエントリ増大数は１個にしかならない（▲１▼）ので、エントリ総数は最大で２×Ｎ−１エントリになる。また最終形は、範囲内で任意の代表値を選ぶ自由度以外、一意であり、構築の順序によらないので、常にこの値を超えないことが分かる。このようにして得られた１次元のリストは目的のＩＰアドレスに対して、一致する値のエントリがある場合、それが目的の検索対象となり、そうでない場合でも、（ａ）該目的のＩＰアドレスより小さくかつ該目的のＩＰアドレスに最も近い代表値をもつエントリ又は▲２▼該目的のＩＰアドレスより大きくかつ該目的のＩＰアドレスに最も近い代表値をもつエントリのいずれか一方が目的の検索対象となる。そのためこれらを発見する検索を行うことができれば、目的の検索が達成される。これはソートされたデータに、新たに１個のデータを加える位置を探す操作と、同じものである。
【００７６】
（１−２）展開した１次元のソート・キー・リストから検索木を作る。
このソート・キー・リストを検索木構造に展開し、検索機構で用いる。検索木は次のような構造からなる。
（ａ）根（ルート。木の始まり。木につき１個ある。）から葉（リーフ。木の末端部。）までの高さが一定。
（ｂ）葉と根を含んだ各ノードにはレベル（木構造の階層）毎に一定の数のエントリを持ったソート済みエントリ・テーブルを持つ。
（ｃ）葉を除いた各ノードのエントリ・テーブルにはキーとの大小関係から次のレベルのノードに対するポインタをキーの数＋１個持つ。
【００７７】
この構造に（１−１）の１次元の昇順ソート・キー・リストのデータを図３１のように展開する（高さが３で。各ノードは２個のエントリと３個のポインタをもつ例）。図３１では、各エントリは最初のＰの文字とそれに続く順番とで表している。図３１の展開方法は、底辺の階層を上からｄ番の階層とし、ｄ番の階層の各ノードの最大エントリ数ｎｄ、その上の階層の各ノードのエントリ数ｎｄ−１、そのまた上の階層のエントリ数ｎｄ−２とする。そして、各エントリを次のように各ノードへ割当てる。
１〜ｎｄ番のエントリ：ｄ番の階層の１番のノード。
ｎｄ＋１番のエントリ：ｄ−１番の階層の１番のノード。
ｎｄ＋２〜２・ｎｄ＋２番のエントリ：ｄ番の階層の２番のノード。
２・ｎｄ＋３のエントリ：２≦ｎｄ−１であるならば、ｄ−１番の階層の１番のノード。
２・ｎｄ＋４〜３・ｎｄ＋４番のエントリ：ｄ番の階層の３番のノード。
３・ｎｄ＋５のエントリ：３≦ｎｄ−１であるならば、ｄ−１番の階層の１番のノード。ｎｄ−１＜３であるならば、ｄ−２番の階層の１番のノード。
３・ｎｄ＋５〜４・ｎｄ＋５番のエントリ：ｄ番の階層の３番のノード。
・・・
【００７８】
すなわち、連続順番のｎｄ個のエントリが最下層のノードに割当てられると、その次のエントリは原則では、１個だけ上の階層の新規又は既存のノードへ割当てられる。もし、１個上の階層のノードが、これ以上のエントリの割当て不能であるときは、例外として、そのまた上の階層の階層のノードと言うように、新規又は既存の、エントリの割当て可能な、ノードへエントリを割当てる。そして、上の階層に割当てられたエントリの次のエントリからｎｄ番目までのエントリまでは再び、最下層の新規のノードに割当てられる。
【００７９】
図３２は図３１の木におけるノード（葉ノードを除く。）にポインタを追加したものである。Ｐ０とＰ１との組やＰ８とＰ１７との組がエントリ・テーブルであり、図３２の矢印（ポインタ）を含んだものをノードと言う。Ｐ８とＰ１７とのノードは、それらのエントリ・テーブルとＰ２とＰ５のノードへのポインタ、Ｐ１１とＰ１４のノードへのポインタ、Ｐ２０とＰ２３のノードへのポインタからなる。結果として、すべてのノードについて図３３の関係が満たされるようになる。キーが一致する場合は図のように下側のポインタに続くことになる。なお、図３２のポインタは、”＜”又は”＞”の関係に基づくものとなっており、”＝”の関係を含まないことになっている。ポインタが”＝”を含む場合は、図３４に説明するパディングを行った場合、及びエントリ数を減少させるための改善処理をした場合であり、その他の場合には、ポインタは”＜”又は”＞”の関係に基づくもののみで足りる。また、”＝”に係るポインタが必要になる場合に、”≦”に係るポインタ及び”≧”に係るポインタのいずれを使用するかは、任意である。
【００８０】
すなわち、検索木での「＝」の取り扱いは、（ａ）検索時の枝選択、及び（ｂ）構築データ（キー）同士が一致する場合の配置に基づいているが、（ｂ）は（ａ）との整合性を取る必要がある。上位の検索対象ノードで、ＩＰアドレスの上位側列部分と一致するエントリが見つかっても、すなわち「＝」のエントリが見つかっても、さらに、後続して検索対象ノードとなるノードにおいても、「＝」のエントリがあれば、それが検索され得るように、「＝」を含むリンク（又はポインタ）を木構造に設定しなければならない。図３３では、Ｖｏｌ［１］に含まれるすべての要素＜Ｅ１≦Ｖｏｌ［２］に含まれるすべての要素＜Ｅ２≦・・・Ｅｎ≦Ｖｏｌ［ｎ＋１］に含まれるすべての要素の関係で説明されているが、Ｖｏｌ［１］に含まれるすべての要素≦Ｅ１＜Ｖｏｌ［２］に含まれるすべての要素≦Ｅ２＜・・・Ｅｎ＜Ｖｏｌ［ｎ＋１］に含まれるすべての要素の関係としてもよい。
【００８１】
データの数が木の大きさと一致せず、該木全体のエントリがあまる場合、検索機構が正しく動作するデータ例えばソート・キー・リストの最後の値やすべてに一致しないＡＬＬ１などの値を使って残りを埋め、検索木を完成させる。
【００８２】
図３４は図２５のデータに基づいて作成した木である。該木はレベル（階層）が２であり、各ノードは、レベルに関係なく２エントリをもつ例である。この木データ構造とその構築法は一般的に検索木に用いられるものであり、本発明はそれを利用しているに過ぎない。この木構造を以後、検索木と言う。
【００８３】
（２）検索機構の構成
前述の（１）のように構成した検索木にすると、あらゆるＩＰアドレスについて根（最上の階層のレベルのテーブル）から各ノードで大小比較を行い、葉までたどる過程における各ノードでは、次の（ａ）〜（ｃ）のいずれかのエントリを検索する。
（ａ）ＩＰアドレスと一致するソート・キーをもつエントリ。
（ｂ）ＩＰアドレスより小さいソート・キーの中で最大のソート・キーをもつエントリ。
（ｃ）ＩＰアドレスより大きいソート・キーの中で最小のソート・キーをもつエントリ。
【００８４】
（ａ）のエントリが存在すれば、該エントリが該ノードにおける検索対象のエントリとなる。（ａ）のエントリが存在しなければ、（ｂ）又は（ｃ）のいずれかのエントリが該ノードにおける検索対象のエントリとなる。（ｂ）及び（ｃ）のいずれのエントリを該ノードにおける検索対象のエントリにするかは、該ノードのポインタが”＜”及び”＞”のいずれに設定されているかに依る。なお、本ノードにおける（ａ）のエントリは、もし他のノードに（ａ）に該当するエントリが見つからないならば、今回のＩＰアドレスについてのプレフィックスとなる。本ノードにおける（ａ）のエントリは、もし他のノードに（ａ）に該当するエントリが見つかっても、マスク長が他のノードにおけるエントリのマスク長より長いならば、今回のＩＰアドレスについてのプレフィックスとなる。根から葉までたどった過程の全ノードにおいて（ａ）のエントリが見つからないならば、該木構造には、今回のＩＰアドレスについてのプレフィックスをもつエントリは存在しないことになる。ただし、マスク長０のデフォルト・ルートを定義しておけば、根から葉までたどった過程の全ノードにおいて（ａ）のエントリが見つからなくても、デフォルト・ルートが今回のＩＰアドレスについてのプレフィックスにすることができる。こうして、根から葉までの一回の探索により検索が終了する（図３２）。
【００８５】
ＩＰアドレスからプレフィックスを検出する方法を述べる。
最初に検索木の根から次々と枝をたどって葉に至る一方向の検索を、以下の（Ｉ）〜（ＩＶ）の動作を行う検索機構を作用させて行う。
（Ｉ）枝の探索操作：
▲１▼ノードのソートされたキーリストの中で目的のＩＰアドレス（今回の受信パケットのＩＰアドレス）より大のソート・キーの中で最小のものを見付ける。
▲２▼そのソート・キーに対応した次のリスト（ノード）へのポインタを得る。ＩＰアドレスがノード内で最大のソート・キー以上である場合は、該最大のソート・キーをもつエントリに割当てられていて該最大のソート・キー以上のソート・キーを含むノードへ向かうポインタを用いる。
（ＩＩ）一致候補検索操作：
▲１▼ノード内の全部のソート・キーに対しマスク付き一致を見付ける。
▲２▼一致したものの内、最長プレフィックスになるものを探し、そのプレフィックス長と対応するデータを保持しておく。根以外の一致候補検索操作では根から保持されたプレフィックスを含めて最大マスク長のものを探す操作とする。
（ＩＩＩ）木の探索操作：
▲１▼（Ｉ）で得られたポインタにより次のレベルのノードに移動して（Ｉ）と（ＩＩ）の操作を行う。
▲２▼この操作を葉まで繰り返す。（葉では（Ｉ）の操作は不要）
（ＩＶ）最終操作：
▲１▼葉まで到達し、（ＩＩ）の操作によって最後に得られた最長一致プレフィックスに対応するデータを返す。
【００８６】
実装例としてＩＰｖ４では各レベル（階層）におけるノードのエントリ・テーブルのエントリ数をそれぞれ３９／８／８／８／８とすると合計５回の同様な操作で１２８ｋ個の転送テーブルに対応した検索を実行できる。この場合、３９  ＋  ４０×８  ＋  ４０×９×８  ＋  ４０×９×９×８  ＋  ４０×９×９×９×８＝２６２４３９となり、１２８ｋ×２−１個（＝２６２１４３）を上回る。
【００８７】
実装例としては最上階層の３９個のエントリ・テーブルの検索はコントローラ・チップ内で行い、以降の繰り返しをメモリ・チップ内で行う形式などが考えられる。この場合、メモリ・バスを検索コマンド送信と検索結果受信の２回のアクセスによる占有で済ますことが可能となる。（Ｉ）と（ＩＩ）の操作はそれぞれのチップ内部のバスバンドを有効利用して、並列化を実現することができる。また、メモリ内の検索動作は上の例で８個の検索を４回実行するというように、固定回の動作とできる。そのためハードウエア動作のスケジュールを検索に先立って実行することが可能となる。この（Ｉ）と（ＩＩＩ）の検索機構は一般的な検索の検索機構であるが、実施例では、（ＩＩ）と（ＩＶ）の機構を付加し、マスク付きデータの検索を可能にする。
【００８８】
（３）木の改善について：
テーブルを更新する処理などが（１）の基本方法２の操作によるエントリ増加で重くなる、その改善方法を述べる。改善方法は次の３つの原理に依拠する。なお、以降に説明する改善方法について、改善方法１〜３は、エントリ群の入れ子（ｎｅｓｔ）構造（「入れ子構造」はすぐ後で説明する。）を考慮せずに、適用されるものであり、改善方法４はエントリ群の二重の入れ子構造部分に適用されるものであり、改善方法５以降の改善方法は、エントリ群の三重以上の入れ子構造部分にも、改善方法４〜９を適宜組み合わせることによって、木構造を改善するものである。ここで言う「エントリ群（グループ）の入れ子構造」とは次の通りである。第１のプレフィックスに対応付け可能なソート・キーの範囲が、第１のプレフィックスとは別の第２のプレフィックスに対応付け可能なソート・キーの範囲を内側に含むとき、第１のプレフィックスに対応付けられた複数個のエントリを含む第１のエントリ群は、第２のプレフィックスに対応付けられた１個又は複数個のエントリを含む第２のエントリ群を、ソート・キー範囲に関して内側に包含しており、第１及び第２のエントリ群の木構造部分を入れ子構造と呼んでいる。
【００８９】
原理１：ＩＰアドレスのプレフィックスが、分割されて生成された複数個のエントリに対応付けられている場合、それら複数個のエントリのどれか１個がＩＰアドレスに対して（２）（ＩＩ）で評価されるならば、該ＩＰアドレスのプレフィックスを検出することができる。
原理２：探索経路としたすべてのノードに対して一致候補を探す機構をもつので、一致候補（ＩＰアドレスのプレフィックスに係るソート・キーをもつエントリ）は探索経路上のどのノードにあってもよい。
原理３：探索経路としたノードのエントリ・テーブルすべての一致候補を探す機構をもつので、一致候補はテーブルの中で探索経路決定に寄与しないエントリを含め、どのエントリであってもよい。
【００９０】
改善方法１：原理１と３から葉ノードに１個のプレフィックスから作られた複数のエントリが入る場合は、そのうちの１個のみにして、ほかを消すことができる。
改善方法２：原理１と２から葉ノードに同一のプレフィックスに係る１個または複数のエントリが入っていて、その葉に至る探索過程の枝ノードにも同一のプレフィックスに係るエントリがある場合は、その葉ノードのエントリを消すことができる。ただし途中の枝のエントリは探索のために必要なため、消すことはできない。例：図３５。
【００９１】
改善方法３：原理１と２と３から、分割が多くなるエントリ（「Ｏ」と言う。）に対して、分割後の各エントリ（以下、適宜、「Ｏ由来のエントリ」と言う。）のソート・キーの内、最小値のソート・キーと最大値のソート・キーとを見つけ、該最小値のソート・キーから該最大値のソート・キーまでの範囲内にソート・キーをもつエントリによるソート・キー・リストを考える。その際、Ｏ由来のエントリのグループ（「リストＯ」と言う。）を除いたものをリストＭ、リストＭのｎ番の要素をＭ［ｎ］とする。リストＭのエントリ数をＭｃとする。Ｍｃ＋１個のエントリを収容することのできる木を対象木（ｔａｒｇｅｔ  ｔｒｅｅ）として考える。該対象木の高さを求め、その値をＨとする。また、該対象木における高さＨのレベルのテーブルにおけるエントリ数を求め、その値をＬとする。例えば、図３１の木構築方式に従って５エントリの対象木を構築すると、Ｐ０からＰ４までのように入れることができ、このように何も入っていない木に順次入れた配置が最もＨとＬが小さくなるので、Ｍｃ＝４ではＨ＝２、Ｌ＝１となる。また、６エントリの対象木は、Ｈ＝２、Ｌ＝２となる。次に、Ｍｃ＋１個のエントリの群の中の最小値のエントリの直前まで、順次木を埋める。この木に該群のＭｃ＋１個のエントリを順次足す場合、直前のエントリ（リストＭの中の最小のソート・キーより順番が１個前のソート・キーをもつエントリ）で決まる木のバウンダリによって最も高いレベルに入るエントリが次の３通りのケースいずれかになる。
【００９２】
ケース１：葉から見てＨを超えた高さのエントリを１個占有する場合。
ケース２：高さＨのエントリをＬ個占有する場合。
ケース３：高さＨのエントリをＬ＋１個占有する場合。
【００９３】
なお、図３１の木のように各ノードの最大エントリ数が２に設定されている場合、前述の例（６エントリの対象木）に対しては、Ｌがすでに２となるので、ケース３（高さＨのエントリをＬ＋１個占有する）は起こらない。
【００９４】
上記ケース１〜３の具体例として、図３１の木にＭｃ＝４のリストを加える場合を考える。該例では、Ｈ＝２、Ｌ＝１となる。
例１（図３７）：直前のエントリがなく、このリストＭが最初である場合、Ｐ０からＰ４を占有し、Ｈ＝２のＰ２を占めるのでケース２になる。
例２（図３８）：直前のエントリがＰ３に埋まっていた場合、Ｐ４−Ｐ８となり高さ３のＰ８を含むので、ケース１なる。
例３（図３９及び図４０）：直前のエントリがＰ１に埋まっていた場合、Ｐ２−Ｐ６となりＨ＝２のレベルでＰ２とＰ５を含むので、ケース３になる。
例４（例図無し）：直前のエントリがＰ２４に埋まっていた場合、高さ４のノードが必要になり、ケース１になる。
【００９５】
それぞれについて次のように対処する。
ケース１の場合：
・Ｈを超えた高さのエントリ（Ｓと言う）の直前までリストＭで順次、構築する。
・ＳにＯのエントリを作る。その際、マスク外データ（プレフィックス以外のビット列部分）を次のように選んでこの場所に入る値にする。
リストＭのみの順番でＳに対応するエントリをＭ［ｘ］とすると、そのマスク外データはＭ［ｘ］のそれと同じ値にする。Ｓが最後のエントリであった場合は、Ｏの（先ほどＭを作るときに除外した）リストＯの最後の値にする。これらは木のソート順に合うようにするための例であり、Ｓの前後で大小関係が壊れない値であればよい。
・以下Ｍ［ｘ］以降リストＭで通常どおり順次、構築する。
これでＯの最大値までの木の構築はできたことになる。これは構築したリストＭのエントリすべてに対する検索パスの上流にエントリＳが位置し、分割対象となっていた領域すべてに至る検索で必ずＳが評価される原理に拠っている。
【００９６】
ケース２の場合：ケース１と同様に、リストＭで順次、構築する。その際、高さＨのエントリＬ個のうちどれか１個を任意に選んでそれをＳとし、ケース１と同様に処理する。１個だけの置き換えで済むのは、このＬ個のエントリは１個のノードに含まれ、かつ構築したリストＭのエントリすべてに対する検索木パスの上流にこのノードが位置し、Ｏの分割対象となっていた領域すべてに至る検索木で必ずＬ個すべてを含むエントリ・テーブル全体が評価される機構（原理３）を有している原理に拠っている（図３６）。またケース１と２が同時に成立する場合はケース１の対処のみを行う。
【００９７】
ケース３の場合：ケース２と同様に処理する。その際ＳをＬ個でなくＬ＋１個の中から１個選ぶ。原理は２の場合と同じである。結果として最も高い階層のノードのエントリ１個をＯに属するエントリとすることで、分割されたＯを１個のＯで実現することができる。
【００９８】
改善方法４（同一のプレフィックス由来の複数個のソート・キーをグループと言うことにして、２個のソート・キー・グループ双方のソート・キー総数が多くなる場合で、片方のソート・キー・グループにおける最小ソート・キーから最大ソート・キーまでの数値範囲Ｘがもう一方のソート・キー・グループの最小ソート・キーから最大ソート・キーまでの数値範囲Ｙを包含する場合のその１。図４１の左側部分では、Ｃが外側ソート・キー・グループ、Ｈが内側ソート・キー・グループ。）：内側ソート・キー・グループの数値範囲Ｙにより外側ソート・キー・グループの数値範囲Ｘを２個（以上）Ｘ１，Ｘ２等に分け、これにより、区分けされる各Ｘ１，Ｙ，Ｘ２ごとに独立に改善方法３と同じ処理を行うことで対応できる。なお、図４１では、Ｘ１，Ｙ，Ｘ２はそれぞれＣの数値範囲１、Ｈの数値範囲、及びＣの数値範囲２に相当する。
【００９９】
改善方法５（同一のプレフィックス由来の複数個のソート・キーをグループと言うことにして、２個のソート・キー・グループ双方のソート・キー総数が多くなる場合で、片方のソート・キー・グループにおける最小ソート・キーから最大ソート・キーまでの数値範囲Ｘがもう一方のソート・キー・グループの最小ソート・キーから最大ソート・キーまでの数値範囲Ｙを包含する場合のその２。）：外側ソート・キー・グループについて以下のように決める。
ＧＭ＝（分割対象となっている内側グループの総数：ＳＭ）＋（内側グループ及び外側グループのいずれにも属しないソート・キーの総数）
【０１００】
また、このソート・キー・リストをリストＧＭと言う。（ＧＭ＋１）個を収容することのできる木の葉からの高さを求める。その値をＧＨとする。またＧＨの高さのテーブルに最低必要なエントリ数を求める。その値をＧＬとする。内側のすべてと外側のエントリを同時にそれぞれ改善方法３で縮合することを考え、このとき外側についてはＧＭ，ＧＨ，ＧＬをＨ，Ｍ，Ｌとみなして改善方法３に適応する。外側のＳがどの内側のどのＳとも衝突しない場合又はそのようなＳが選べる場合は、このままそれぞれ同時に改善方法３に基づいて処理することができる。
【０１０１】
改善方法４と同様な場合であって、改善方法４によっては分割数が大きくなり過ぎ、また、改善方法５はＳの衝突で使えない場合（例：図４３は図４２の標準木展開に対して改善方法５に基づいて改善するとＨとＣとが干渉してしまう。なお、図４３において、Ｈ＝Ｈ２，Ｃ＝Ｈ２となっているが、ＨとＣとのソート・キーが同一であっても、マスク長が異なるので、ＨとＣとは相互に識別可能である。）。この場合は、以下の原理を基にさらに縮合することができる。
【０１０２】
原理４：改善方法４でも分かるとおり分割対象となるエントリは１個にまとめて処理することも、複数の部分集合として処理することもできる。この部分集合への分け方はどのようのものであってもかまわない。
原理５：任意のエントリを複数連続コピーし、木を構築しても、ソート・キー・リストの順番さえ破らなければ、単に冗長なエントリが増えただけであり、検索木として機能する。そのため、任意の連続部分集合を後方に移動し、検索木とのバウンダリを変えたり、数を多くして高さＨを大きくすることが可能である。（その分エントリを余計に消費する。）
原理６：ＧＭ＋１個を改善方法３の用に処理する場合、ＧＬが２以上で改善方法３のケース２とケース３に相当する場合かＧＬが１でもケース３に相当する場合には、ＧＨに２つのエントリを占有する。
【０１０３】
これら原理４〜６は組み合わせて用いても問題ない。そこでこれらを利用して、改善方法６から９のように衝突を避けることができる。例として図４１のように展開されるリストを、レベルが３の３分岐木に収めるケースを挙げる。図４１のリストを標準木展開すると、（１−２）の改善方法では図４２のようになるが、改善方法５ではＣとＨのＳが、図４３のように、同じエントリとして衝突する。
【０１０４】
改善方法６：衝突を避けるため、親（包含する側）を分割する。改善方法４と同様であるが、Ｓの衝突個所を避けつつ分割する改善方法である。図４４では、親をＣ１，Ｃ５に分割している。
【０１０５】
改善方法７：衝突を避けるため、親に冗長エントリを足してずらす、または拡大する。図４５では、Ｈの親としてのＣ（＝Ｈ２）に冗長エントリＣ６を足して、ずらしている。
【０１０６】
改善方法８：衝突を避けるため、衝突のある子（包含される側）を２分割する。図４６では、子をＨ１とＨ（＝Ｌ）とに分割して、Ｃとの衝突を回避している。
【０１０７】
改善方法９：衝突を避けるため、衝突のある子の直前に冗長エントリ（図４７の２個の（Ｇ））を足し、子をＳの直後（図４７のＨ２）まで後方にずらす。
【０１０８】
改善方法６〜９では、ＧＭが変わるので、ＧＬ、ＧＨなどの再評価を要する。三重以上、多重に包含される場合も、同様に考えることができるので、衝突が無ければ、改善方法５により、また、有る場合でも、改善方法４、６−９で対処できる。
【０１０９】
改善方法１０：上述の改善方法の実施等の結果、共通の領域から複数の領域に分割され、各分割領域に係るソート・キーをもつ複数個のエントリが１個の葉に存在する場合は、どれか１個のエントリを残して、他を削除する。
【０１１０】
改善方法１１：共通の領域から複数の領域に分割されかつ各分割領域に係るソート・キーをもつ複数個のエントリが、根から葉へ至る探索経路において、葉だけでなく、上位のノードにも存在するときに、葉のエントリを削除する。
【０１１１】
まとめとして本発明の構成に関して以下の事項を開示する。
（１）：受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶する記憶装置、及び前記検索用情報に基づいて受信パケットの転送先経路を検索する経路検索装置を含み、
前記検索用情報は木構造に対応付けられたものであり、
該木構造における各ノードは１個以上のエントリを有し、
各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、
各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含み、
ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされ、
前記経路検索装置は、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
各検索対象ノードにおいて該検索対象ノードの中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索手段、
前記ノード内一致エントリ検索手段に検索対象ノードを指示する検索制御手段であって各検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御手段、及び
ノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定手段、
を有していることを特徴とする通信制御装置。
【０１１２】
（２）：ソート・キーのソート順とはソート・キーの昇順又は降順であることを特徴とする（１）記載の通信制御装置。
（３）：前記木構造では、同一階層に属する各ノードのエントリ数は、等しく設定されていることを特徴とする（２）記載の通信制御装置。
（４）：枝により１個下の階層のノードへのリンクを設定されているノードにおいて、該ノードのエントリ・リストの一端のエントリについては２個、その他の各エントリについて各１個の枝が対応付けられていることを特徴とする（１）記載の通信制御装置。
（５）：前記木を構築する木構築装置を有し、
前記木構築装置は、
マスク用プレフィックスＣに対してそれに対応付け可能なソート・キーの最小値及び最大値をそれぞれＣｓ＿ｍｉｎ及びＣｓ＿ｍａｘとして算出する算出手段、
マスク用プレフィックスＣに対して対応付けるソート・キーＣｓをＣｓ＿ｍｉｎ≦Ｃｓ≦Ｃｓ＿ｍａｘの条件下で設定するソート・キー設定手段、及び
各マスク用プレフィックスについて前記ソート・キー設定手段の設定したソート・キーに基づき各ノードのエントリを決定し該決定に基づく木構造を生成する木構造生成手段、
を有していることを特徴とする（１）記載の通信制御装置。
（６）：２個のマスク用プレフィックスＣ１，Ｃ２に対してそれらＣ１，Ｃ２に対応付けるソート・キーをＣ１ｓ，Ｃ２ｓとし、また、それらＣ１，Ｃ２に対応付け可能な最小ソート・キーをＣ１ｓ＿ｍｉｎ，Ｃ２ｓ＿ｍｉｎ、及び最大ソート・キーをＣ１ｓ＿ｍａｘ，Ｃ２ｓ＿ｍａｘとして、
前記ソート・キー設定手段は、Ｃ１ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍａｘ≦Ｃ１ｓ＿ｍａｘ（ただし、Ｃ１ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍａｘ＝Ｃ１ｓ＿ｍａｘは除外する。）が成り立つとき、Ｃ１ｓを、Ｃ１ｓ＿ｍｉｎからＣ１ｓ＿ｍａｘまでの範囲内でかつＣ２ｓ＿ｍｉｎからＣ２ｓ＿ｍａｘまでの範囲外となる条件下で設定する、
ことを特徴とする（５）記載の通信制御装置。
（７）：前記木構造生成手段は、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が同一の葉ノードに属する標準木構造に対して、同一マスク用プレフィックス由来のソート・キーは各葉ノードにおいて１個のみとなるように、同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力することを特徴とする（１）記載の通信制御装置。
（８）：前記木構造生成手段は、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が、ルート・ノードから葉ノードへ至る検索経路における上階層のノードと下階層ノードとの両方に存在する標準木構造に対して、該下位階層のノードにおける同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力することを特徴とする（１）記載の通信制御装置。
（９）：少なくとも１個のエントリに対応付けられているマスク用プレフィックスにはビット長さが０ビットのマスク用プレフィックスが含まれ、該ビット長さが０ビットのマスク用プレフィックスはデフォルト転送先経路に対応付けられていることを特徴とする（１）記載の通信制御装置。
（１０）：少なくとも１個のエントリに対応付けられているマスク用プレフィックスには、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックスと、ビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとが含まれ、
ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス、及び／又はビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスは、デフォルト転送先経路に対応付けられていることを特徴とする（１）記載の通信制御装置。
【０１１３】
（１１）：ビット長さが０ビットであるマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶手段、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索手段、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定手段、
を有していることを特徴とする通信制御装置。
【０１１４】
（１２）：ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及びビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及び／又はビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶手段、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索手段、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定手段、
を有していることを特徴とする通信制御装置。
【０１１５】
（１３）：受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶する記憶装置、及び前記検索用情報に基づいて受信パケットの転送先経路を検索する経路検索装置を含み、
前記検索用情報は第１の情報部分と第２の情報部分とから成り、
所定の自然数ｕを定義し、
マスク用プレフィックスの各ビットの番号を、ＭＳＢを１番としてＭＳＢからＬＳＢへの順番で定義し、
ｕビット以下及びｕ＋１ビット以上のマスク用プレフィックスをそれぞれ短い及び長いマスク用プレフィックスと呼ぶことにし、
長いマスク用プレフィックスについて、１番からｕ番までの部分及びｕ＋１番から最終番までの部分をそれぞれ上位側マスク用プレフィックス部分及び下位側マスク用プレフィックス部分と呼ぶことにし、
同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスをマスク用プレフィックス群とし（ただし、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスが１個である場合は、該長いマスク用プレフィックスが属するマスク用プレフィックス群の要素としてのマスク用プレフィックスは１個のみとなる。）、
前記第１の情報部分は短いマスク用プレフィックス及び上位側マスク用プレフィックス部分に係る情報を含み、
第１の情報部分は１個のテーブル構造で記憶され、
該テーブル構造は、ｕビットの相互に異なるソート・キーをもつエントリを含み、
各テーブル構造に含まれているエントリには第１及び第２のテーブル構造用エントリが含まれ、第１のテーブル構造用エントリは、そのソート・キーの１番からｗ（ｗはｕ以下の自然数）番までの全ビット値が、該第１のテーブル構造用エントリに対応付けられている小さいマスク用プレフィックスと同一であり、第２のテーブル構造用エントリは、そのソート・キーの全ビットが、該第２のテーブル構造用エントリに対応付けられている上位側マスク用プレフィックス部分と同一であり、
前記第２の情報部分は下位側マスク用プレフィックス部分に係る情報を含み、
第２の情報部分は少なくとも１個の木構造で記憶され、
各木構造は、各マスク用プレフィックス群に対応付けられるとともに、対応付けられたマスク用プレフィックス群に属する長いマスク用プレフィックスの上位側マスク用プレフィックス部分に等しいソート・キーをもつエントリであって前記テーブル構造に含まれるエントリからリンクを設定されており、
各木構造における各ノードは１個以上のエントリを有し、
各長いマスク用プレフィックスの下位側マスク用プレフィックス部分は少なくとも１個のエントリに対応付けられ、
木構造の各エントリは、それに対応付けられた下位側マスク用プレフィックス部分のビット数（以下、「下位側マスク用プレフィックス部分マスク長」と言う。）の情報とソート・キーとを含み、
木構造のエントリのビット数は、全部の下位側マスク用プレフィックス部分の下位側マスク用プレフィックス部分マスク長の内の最大下位側マスク用プレフィックス部分マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられている下位側マスク用プレフィックス部分と同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされ、
前記経路検索装置は、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出手段、
抽出アドレスについて１番からｕ番までのビット列部分及びｕ＋１番以降のビット列部分をそれぞれ第１及び第２の抽出アドレス部分と呼ぶことにしテーブル構造の各エントリと第１の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索するテーブル構造用経路検索装置、木構造の各エントリと第２の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する木構造用経路検索装置、
前記テーブル構造用経路検索装置及び前記木構造用経路検索装置を制御する制御装置、及び
前記テーブル構造用経路検索装置及び前記木構造用経路検索装置の検索結果に基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終的に決定する最終決定装置、
を有し、
前記テーブル構造用経路検索装置は、
第１の抽出アドレス部分の上位側ビット列部分と一致するソート・キーをもつエントリを該当エントリとして検索する検索手段、及び
前記検索手段が検索した該当エントリについて所定の木構造へリンクが設定されていればその旨及びリンク先の木構造を前記制御装置へ通知する通知手段、
を有し、
前記木構造用経路検索装置は、
前記木構造の各検索対象ノードにおいて該検索対象ノードの中で第２の抽出アドレス部分の上位側ビット列部分と一致する下位側マスク用プレフィックス部分の情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でビット長さが最大の下位側マスク用プレフィックス部分の情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索手段、
前記ノード内一致エントリ検索手段に検索対象ノードを指示する検索制御手段であって各検索対象ノードにおける各エントリのソート・キーと第２の抽出アドレス部分との対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御手段、及び
ノード別検索処理の終了後、第２の抽出アドレス部分に係る複数個のノード内一致エントリに対応の下位側マスク用プレフィックス部分の中で最大ビット長さのものを決定する下位側マスク用プレフィックス部分決定手段、
を有し、
前記制御装置は、
前記アドレス抽出手段が抽出した今回の抽出アドレスに対して前記木構造用経路検索装置に先駆けてテーブル構造用経路検索装置に検索処理を指示する第１の指示手段、及び
前記テーブル構造用経路検索装置の前記通知手段から通知があったときは前記木構造用経路検索装置に検索対象木構造として前記通知手段から通知のあったものを指定して今回の抽出アドレスに係る検索処理を指示する第２の指示手段、
を有し、
前記最終決定装置は、
前記第２の指示手段が前記木構造用経路検索装置に検索処理を指示しなかったときは、前記テーブル構造用経路検索装置の検索手段が検索した該当エントリに係る短いマスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終決定し、
前記第２の指示手段が前記木構造用経路検索装置に検索処理を指示したときは、前記木構造用経路検索装置が検索対象木構造とした木構造のリンク元のテーブル構造のエントリに係る上位側マスク用プレフィックス部分と前記木構造用経路検索装置の前記下位側マスク用プレフィックス部分決定手段が決定した下位側マスク用プレフィックス部分とに基づく長いマスク用プレフィックスを、今回の抽出アドレスに係る受信パケットの転送先経路として最終決定する、
ことを特徴とする通信制御装置。
【０１１６】
（１４）：受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶し、前記検索用情報に基づいて受信パケットの転送先経路を検索する通信制御方法であって、
前記検索用情報は木構造に対応付けられたものであり、
該木構造における各ノードは１個以上のエントリを有し、
各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、
各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含み、
ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる、
通信制御方法であって、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
各検索対象ノードにおいて該検索対象ノードの中で抽出アドレスの上位側ビット列部分と一致するマスク用プレフィックスの情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でマスク長さが最大のマスク用プレフィックスの情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索ステップ、
前記ノード内一致エントリ検索ステップにおける検索対象ノードを決める検索制御ステップであって各検索対象ノードにおける各エントリのソート・キーと抽出アドレスとの対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御ステップ、及び
ノード別検索処理の終了後、抽出アドレスに係る複数個のノード内一致エントリに対応のマスク用プレフィックスの中で最大マスク長のものに基づき、該抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定ステップ、を有していることを特徴とする通信制御方法。
【０１１７】
（１５）：ソート・キーのソート順とはソート・キーの昇順又は降順であることを特徴とする（１４）記載の通信制御方法。
（１６）：前記木構造では、同一階層に属する各ノードのエントリ数は、等しく設定されていることを特徴とする（１５）記載の通信制御方法。
（１７）：枝により１個下の階層のノードへのリンクを設定されているノードにおいて、該ノードのエントリ・リストの一端のエントリについては２個、その他の各エントリについて各１個の枝が対応付けられていることを特徴とする（１４）記載の通信制御方法。
（１８）：マスク用プレフィックスＣに対してそれに対応付け可能なソート・キーの最小値及び最大値をそれぞれＣｓ＿ｍｉｎ及びＣｓ＿ｍａｘとして算出する算出ステップ、マスク用プレフィックスＣに対して対応付けるソート・キーＣｓをＣｓ＿ｍｉｎ≦Ｃｓ≦Ｃｓ＿ｍａｘの条件下で設定するソート・キー設定ステップ、及び
各マスク用プレフィックスについて前記ソート・キー設定ステップの設定したソート・キーに基づき各ノードのエントリを決定し該決定に基づく木構造を生成する木構造生成ステップ、
を有していることを特徴とする（１４）記載の通信制御方法。
（１９）：２個のマスク用プレフィックスＣ１，Ｃ２に対してそれらＣ１，Ｃ２に対応付けるソート・キーをＣ１ｓ，Ｃ２ｓとし、また、それらＣ１，Ｃ２に対応付け可能な最小ソート・キーをＣ１ｓ＿ｍｉｎ，Ｃ２ｓ＿ｍｉｎ、及び最大ソート・キーをＣ１ｓ＿ｍａｘ，Ｃ２ｓ＿ｍａｘとして、
前記ソート・キー設定ステップでは、Ｃ１ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍｉｎ≦Ｃ２ｓ＿ｍａｘ≦Ｃ１ｓ＿ｍａｘ（ただし、Ｃ１ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍｉｎ＝Ｃ２ｓ＿ｍａｘ＝Ｃ１ｓ＿ｍａｘは除外する。）が成り立つとき、Ｃ１ｓを、Ｃ１ｓ＿ｍｉｎからＣ１ｓ＿ｍａｘまでの範囲内でかつＣ２ｓ＿ｍｉｎからＣ２ｓ＿ｍａｘまでの範囲外となる条件下で設定する、
ことを特徴とする（１８）記載の通信制御方法。
（２０）：前記木構造生成ステップでは、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が同一の葉ノードに属する標準木構造に対して、同一マスク用プレフィックス由来のソート・キーは各葉ノードにおいて１個のみとなるように、同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力することを特徴とする（１４）記載の通信制御方法。
（２１）：前記木構造生成ステップでは、同一のマスク用プレフィックスに対応付けられる複数個のソート・キー（以下、「同一マスク用プレフィックス由来のソート・キー」と言う。）が、ルート・ノードから葉ノードへ至る検索経路における上階層のノードと下階層ノードとの両方に存在する標準木構造に対して、該下位階層のノードにおける同一マスク用プレフィックス由来のソート・キーを間引きした木構造を出力することを特徴とする（１４）記載の通信制御方法。
（２２）：少なくとも１個のエントリに対応付けられているマスク用プレフィックスにはビット長さが０ビットのマスク用プレフィックスが含まれ、該ビット長さが０ビットのマスク用プレフィックスはデフォルト転送先経路に対応付けられていることを特徴とする（１４）記載の通信制御方法。
（２３）：少なくとも１個のエントリに対応付けられているマスク用プレフィックスには、ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックスと、ビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとが含まれ、
ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス、及び／又はビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスは、デフォルト転送先経路に対応付けられていることを特徴とする（１４）記載の通信制御方法。
【０１１８】
（２４）：ビット長さが０ビットであるマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶ステップ、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索ステップ、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定ステップ、
を有していることを特徴とする通信制御方法。
【０１１９】
（２５）：ビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及びビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスに係る情報を含むマスク用プレフィックス情報を記憶しかつビット長さが１ビットでかつビット値が”０”のマスク用プレフィックス及び／又はビット長さが１ビットでかつビット値が”１”のマスク用プレフィックスとビット長さが０ビットであるマスク用プレフィックスはデフォルト転送先経路に設定してあるマスク用プレフィックス情報記憶ステップ、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
抽出アドレスのビット列において該ビット列のＭＳＢから連続するビット列部分を上位連続ビット列部分と呼ぶことにし上位連続ビット列部分と一致するマスク用プレフィックスの中で最大ビット長さのマスク用プレフィックスを該当マスク用プレフィックスとして検索する検索ステップ、及び
該当マスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を決定する転送先経路決定ステップ、
を有していることを特徴とする通信制御方法。
【０１２０】
（２６）：受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報を記憶し、前記検索用情報に基づいて受信パケットの転送先経路を検索する通信制御方法において、
前記検索用情報は第１の情報部分と第２の情報部分とから成り、
所定の自然数ｕを定義し、
マスク用プレフィックスの各ビットの番号を、ＭＳＢを１番としてＭＳＢからＬＳＢへの順番で定義し、
ｕビット以下及びｕ＋１ビット以上のマスク用プレフィックスをそれぞれ短い及び長いマスク用プレフィックスと呼ぶことにし、
長いマスク用プレフィックスについて、１番からｕ番までの部分及びｕ＋１番から最終番までの部分をそれぞれ上位側マスク用プレフィックス部分及び下位側マスク用プレフィックス部分と呼ぶことにし、
同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスをマスク用プレフィックス群とし（ただし、同一の上位側マスク用プレフィックス部分をもつ長いマスク用プレフィックスが１個である場合は、該長いマスク用プレフィックスが属するマスク用プレフィックス群の要素としてのマスク用プレフィックスは１個のみとなる。）、
前記第１の情報部分は短いマスク用プレフィックス及び上位側マスク用プレフィックス部分に係る情報を含み、
第１の情報部分は１個のテーブル構造で記憶され、
該テーブル構造は、ｕビットの相互に異なるソート・キーをもつエントリを含み、
各テーブル構造に含まれているエントリには第１及び第２のテーブル構造用エントリが含まれ、第１のテーブル構造用エントリは、そのソート・キーの１番からｗ（ｗはｕ以下の自然数）番までの全ビット値が、該第１のテーブル構造用エントリに対応付けられている小さいマスク用プレフィックスと同一であり、第２のテーブル構造用エントリは、そのソート・キーの全ビットが、該第２のテーブル構造用エントリに対応付けられている上位側マスク用プレフィックス部分と同一であり、
前記第２の情報部分は下位側マスク用プレフィックス部分に係る情報を含み、
第２の情報部分は少なくとも１個の木構造で記憶され、
各木構造は、各マスク用プレフィックス群に対応付けられるとともに、対応付けられたマスク用プレフィックス群に属する長いマスク用プレフィックスの上位側マスク用プレフィックス部分に等しいソート・キーをもつエントリであって前記テーブル構造に含まれるエントリからリンクを設定されており、
各木構造における各ノードは１個以上のエントリを有し、
各長いマスク用プレフィックスの下位側マスク用プレフィックス部分は少なくとも１個のエントリに対応付けられ、
木構造の各エントリは、それに対応付けられた下位側マスク用プレフィックス部分のビット数（以下、「下位側マスク用プレフィックス部分マスク長」と言う。）の情報とソート・キーとを含み、
木構造のエントリのビット数は、全部の下位側マスク用プレフィックス部分の下位側マスク用プレフィックス部分マスク長の内の最大下位側マスク用プレフィックス部分マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられている下位側マスク用プレフィックス部分と同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされ、
前記通信制御方法は、
受信パケットから該受信パケットの送信先アドレスを抽出する（以下、該抽出した送信先アドレスを「抽出アドレス」と言う。）アドレス抽出ステップ、
抽出アドレスについて１番からｕ番までのビット列部分及びｕ＋１番以降のビット列部分をそれぞれ第１及び第２の抽出アドレス部分と呼ぶことにしテーブル構造の各エントリと第１の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索するテーブル構造用経路検索ステップ、
木構造の各エントリと第２の抽出アドレス部分との対比に基づいて今回の抽出アドレスに係る受信パケットの転送先経路を検索する木構造用経路検索ステップ、
前記テーブル構造用経路検索ステップ及び前記木構造用経路検索ステップを制御する制御ステップ、及び
前記テーブル構造用経路検索ステップ及び前記木構造用経路検索ステップの検索結果に基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終的に決定する最終決定ステップ、
を有し、
前記テーブル構造用経路検索ステップは、
第１の抽出アドレス部分の上位側ビット列部分と一致するソート・キーをもつエントリを該当エントリとして検索する検索ステップ、及び
前記検索ステップにおいて検索した該当エントリについて所定の木構造へリンクが設定されていればその旨及びリンク先の木構造を前記制御ステップへ通知する通知ステップ、
を有し、
前記木構造用経路検索ステップは、
前記木構造の各検索対象ノードにおいて該検索対象ノードの中で第２の抽出アドレス部分の上位側ビット列部分と一致する下位側マスク用プレフィックス部分の情報をもつエントリを該当エントリとして検索し該当エントリが唯一であればその唯一の該当エントリをノード内一致エントリとしまた該当エントリが複数個であれば該当エントリの中でビット長さが最大の下位側マスク用プレフィックス部分の情報をもつエントリをノード内一致エントリとするノード内一致エントリ検索ステップ、
前記ノード内一致エントリ検索ステップにおける検索対象ノードを決める検索制御ステップであって各検索対象ノードにおける各エントリのソート・キーと第２の抽出アドレス部分との対比に基づいてリンクを選択し該選択したリンクに係るノードを次の検索対象ノードに決定しリンクが無い場合にはノード別検索処理の終了と判断する検索制御ステップ、及び
ノード別検索処理の終了後、第２の抽出アドレス部分に係る複数個のノード内一致エントリに対応の下位側マスク用プレフィックス部分の中で最大ビット長さのものを決定する下位側マスク用プレフィックス部分決定ステップ、
を有し、
前記制御ステップは、
前記アドレス抽出ステップにおいて抽出した今回の抽出アドレスに対して前記木構造用経路検索ステップの検索処理の実行に先駆けてテーブル構造用経路検索ステップにおける検索処理の実行を指示する第１の指示ステップ、及び
前記テーブル構造用経路検索ステップの前記通知ステップから通知があったときは前記木構造用経路検索ステップに検索対象木構造として前記通知ステップから通知のあったものを指定して今回の抽出アドレスに係る検索処理の実行を指示する第２の指示ステップ、
を有し、
前記最終決定ステップは、
前記第２の指示ステップにおいて前記木構造用経路検索ステップにおける検索処理の実行を指示しなかったときは、前記テーブル構造用経路検索ステップの検索ステップにおいて検索した該当エントリに係る短いマスク用プレフィックスに基づき今回の抽出アドレスに係る受信パケットの転送先経路を最終決定し、
前記第２の指示ステップにおいて前記木構造用経路検索ステップにおける検索処理の実行を指示したときは、前記木構造用経路検索ステップが検索対象木構造とした木構造のリンク元のテーブル構造のエントリに係る上位側マスク用プレフィックス部分と前記木構造用経路検索ステップの前記下位側マスク用プレフィックス部分決定ステップにおいて決定した下位側マスク用プレフィックス部分とに基づく長いマスク用プレフィックスを、今回の抽出アドレスに係る受信パケットの転送先経路として最終決定する、
ことを特徴とする通信制御方法。
【０１２１】
（２７）：（１４）〜２６のいずれかに記載の通信制御方法の各ステップを  コンピュータに実行させるための通信制御プログラム。
【０１２２】
（２８）：受信パケットの送信先アドレスから該受信パケットの次の転送先経路を決定するために使用する検索用情報に係る通信制御用データ構造であって、
前記検索用情報は木構造に対応付けられたものであり、
該木構造における各ノードは１個以上のエントリを有し、
各マスク用プレフィックスは少なくとも１個のエントリに対応付けられ、
各エントリは、それに対応付けられたマスク用プレフィックスのビット数（以下、「マスク長」と言う。）の情報とソート・キーとを含み、
ソート・キーのビット数は、全部のマスク用プレフィックスのマスク長の内の最大マスク長以上に設定され、
ビット列を二分割したときの分割位置に対して上位側及び下位側の部分をそれぞれ上位側ビット列部分及び下位側ビット列部分と名付けて各ソート・キーの上位側ビット列部分は、該ソート・キーをもつエントリに対応付けられているマスク用プレフィックスと同一に設定され、
エントリは、それらがもつソート・キーのソート順に基づいて前記木構造の所定のノードに割当てられ、
各ノードは、それに含まれる複数個のエントリをそれらのソート・キーに基づいてソートしたエントリ・リストをもち、
葉ノードを除く各ノードは、該ノードのエントリ・リストの各エントリに係る各枝により１個下の階層の各ノードへリンクを設定可能とされる、
ことを特徴とする通信制御用データ構造。
（２９）：ソート・キーのソート順とはソート・キーの昇順又は降順であることを特徴とする（２８）記載の通信制御用データ構造。
（３０）：前記木構造では、同一階層に属する各ノードのエントリ数は、等しく設定されていることを特徴とする（２９）記載の通信制御用データ構造。
（３１）：枝により１個下の階層のノードへのリンクを設定されているノードにおいて、該ノードのエントリ・リストの一端のエントリについては２個、その他の各エントリについて各１個の枝が対応付けられていることを特徴とする（２８）記載の通信制御用データ構造。
【０１２３】
【発明の効果】
本発明によれば、各マスク用プレフィックスに対応付けたエントリを設定し、ソートしたエントリの順番に基づいて各ノードへのエントリ割当て及びリンクが設定される木構造を構築し、該木構造を利用して、受信パケットの転送先に係る情報としてのマスク用プレフィックスを検索する。結果、検索能率を高めることができる。
【図面の簡単な説明】
【図１】通信制御装置の接続図である。
【図２】通信制御装置の構成図である。
【図３】検索用情報に対応付けられている木構造を示す図である。
【図４】図３の各ノードにおけるエントリ・テーブルを例示する図である。
【図５】経路検索装置の構成図である。
【図６】木構築装置の構成図である。
【図７】改善した通信制御装置の機能ブロック図である。
【図８】別の通信制御装置の機能ブロック図である。
【図９】テーブル構造用経路検索装置の詳細な機能ブロック図である。
【図１０】木構造用経路検索装置の詳細な機能ブロック図である。
【図１１】制御装置の機能ブロック図である。
【図１２】複数個のマスク用プレフィックスからデフォルト・ルート及びソート・キーを生成する具体例を示す図である。
【図１３】検索用情報を１個のテーブル構造と少なくとも１個の木構造とに分けて持つ場合のテーブル構造を示す図である。
【図１４】図１３のエントリにリンク付けされた各木構造に下位側マスク用プレフィックス部分が属しているマスク用プレフィックスの集合を示す図である。
【図１５】通信制御方法のフローチャートである。
【図１６】木構造構築方法のフローチャートである。
【図１７】プログラムを実行するためのハードウェア構成図である。
【図１８】デフォルト・ルート実装通信制御方法のフローチャートである。
【図１９】別の通信制御方法のフローチャートである。
【図２０】図１９のテーブル構造用経路検索ステップの詳細なフローチャートである。
【図２１】図１９の木構造用経路検索ステップの詳細なフローチャートである。
【図２２】図１９の制御ステップの詳細なフローチャートである。
【図２３】ＩＰｖ４のＩＰアドレスの構成を示す図である。
【図２４】ＩＰアドレスを８Ｂｉｔとした転送テーブルの例である。
【図２５】図２４の転送テーブルを方法１，２で展開し、かつソート・キーでソートしたテーブルである。
【図２６】プレフィックスとＩＰアドレスとの関係を示す図である。
【図２７】生成範囲の異なるエントリが追加されるときの追加前及び追加後のエントリ生成範囲を変化を対比する図である。
【図２８】既存のエントリの生成範囲の一端部分に生成範囲があるエントリが追加されるときの追加前及び追加後のエントリ生成範囲の変化を対比する図である。
【図２９】既存のエントリの生成範囲の中間部分に生成範囲をもつエントリが追加されるときの追加前及び追加後のエントリ生成範囲の変化を対比する図である。
【図３０】既存のエントリの分割生成範囲の中間部分に生成範囲をもつエントリが追加されるときの追加前及び追加後のエントリ生成範囲の変化を対比する図である。エントリ分布を示す図である。
【図３１】ソートされたエントリからの木の構築方法についての説明図である。
【図３２】図３１の木にノード間のリンクを付加した木構造を示す図である。
【図３３】或るノードにおける各エントリと該ノードに対してリンク先のノードに含まれるエントリの範囲との関係を示す図である。
【図３４】図２５のエントリ・リストに基づく木構造であってレベル（階層）が２でかつ各ノードのエントリ数が２である木構造を、各リンクに関連付けれた範囲と共に示す図である。
【図３５】図３４の木構造を改善した第１の木構造を示す図である。
【図３６】図３４の木構造を改善した第２の木構造を示す図である。
【図３７】エントリ数低減のための第１の木構造部分を組み込んだ木構造を示す図である。
【図３８】エントリ数低減のための第２の木構造部分を組み込んだ木構造を示す図である。
【図３９】エントリ数低減のための第３の木構造部分を組み込んだ木構造を示す図である。
【図４０】エントリ数低減のための第４の木構造部分を組み込んだ木構造を示す図である。
【図４１】ソート・リストにおいて同一マスク用プレフィックス由来のソート・キーが２グループあるときの各グループの範囲を示す図である。
【図４２】図４１のソート・リストに基づいて構築した標準木構造を示す図である。
【図４３】図４２の標準木構造を簡単化するときに相互に異なるマスク用プレフィックス由来のソート・キー同士が相互に干渉する木構造を示す図である。
【図４４】図４３の木構造の干渉に対して親の分割により対処した木構造を示す図である。
【図４５】図４３の木構造の干渉に対して親の拡大により対処した木構造を示す図である。
【図４６】図４３の木構造の干渉に対して子の分割により対処した木構造を示す図である。
【図４７】図４３の木構造の干渉に対して子の偏依分割により対処した木構造を示す図である。
【符号の説明】
１０：通信制御装置、１２：通信制御装置間通信路、２０：記憶装置、２１：経路検索装置、２２：木構築装置、３４：マスク用プレフィックス、３５：算出手段、３６：ソート・キー設定手段、３７：木構造生成手段、１００：通信制御装置、１０１：マスク用プレフィックス情報記憶手段、１０２：アドレス抽出手段、１０３：検索手段、１０４：転送先経路決定手段、１２０：通信制御装置、１２１記憶装置、１２２：経路検索装置１２２、１２６：第１の情報部分、１２７：第２の情報部分、１３０：アドレス抽出手段１３０、１３１：テーブル構造用経路検索装置１３１、１３２：木構造用経路検索装置、１３３制御装置１３３、１３４：最終決定装置、１３８：検索手段１３８、１３９：通知手段、１４１：ノード内一致エントリ検索手段、１４２：各検索対象ノード１４２、１４３：検索制御手段、１４４：下位側マスク用プレフィックス部分決定手段、１４５：第１の指示手段、１４６：第２の指示手段。
【図１】
2004328433.tif 000003
【図２】
2004328433.tif 000004
【図３】
2004328433.tif 000005
【図４】
2004328433.tif 000006
【図５】
2004328433.tif 000007
【図６】
2004328433.tif 000008
【図７】
2004328433.tif 000009
【図８】
2004328433.tif 000010
【図９】
2004328433.tif 000011
【図１０】
2004328433.tif 000012
【図１１】
2004328433.tif 000013
【図１２】
2004328433.tif 000014
【図１３】
2004328433.tif 000015
【図１４】
2004328433.tif 000016
【図１５】
2004328433.tif 000017
【図１６】
2004328433.tif 000018
【図１７】
2004328433.tif 000019
【図１８】
2004328433.tif 000020
【図１９】
2004328433.tif 000021
【図２０】
2004328433.tif 000022
【図２１】
2004328433.tif 000023
【図２２】
2004328433.tif 000024
【図２３】
2004328433.tif 000025
【図２４】
2004328433.tif 000026
【図２５】
2004328433.tif 000027
【図２６】
2004328433.tif 000028
【図２７】
2004328433.tif 000029
【図２８】
2004328433.tif 000030
【図２９】
2004328433.tif 000031
【図３０】
2004328433.tif 000032
【図３１】
2004328433.tif 000033
【図３２】
2004328433.tif 000034
【図３３】
2004328433.tif 000035
【図３４】
2004328433.tif 000036
【図３５】
2004328433.tif 000037
【図３６】
2004328433.tif 000038
【図３７】
2004328433.tif 000039
【図３８】
2004328433.tif 000040
【図３９】
2004328433.tif 000041
【図４０】
2004328433.tif 000042
【図４１】
2004328433.tif 000043
【図４２】
2004328433.tif 000044
【図４３】
2004328433.tif 000045
【図４４】
2004328433.tif 000046
【図４５】
2004328433.tif 000047
【図４６】
2004328433.tif 000048
【図４７】
2004328433.tif 000049