JP2006246489A - データベースへのプリフィックス集合の格納方法、及びそれをコンピュータに実行させるためのプログラム - Google Patents

データベースへのプリフィックス集合の格納方法、及びそれをコンピュータに実行させるためのプログラム Download PDF

Info

Publication number
JP2006246489A
JP2006246489A JP2006058510A JP2006058510A JP2006246489A JP 2006246489 A JP2006246489 A JP 2006246489A JP 2006058510 A JP2006058510 A JP 2006058510A JP 2006058510 A JP2006058510 A JP 2006058510A JP 2006246489 A JP2006246489 A JP 2006246489A
Authority
JP
Japan
Prior art keywords
prefix
length
prefixes
original
prefix length
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.)
Pending
Application number
JP2006058510A
Other languages
English (en)
Inventor
Hirohiko Shibata
大彦 柴田
Cadambi Srihari
スリハリ・カダンビ
Chakradhar Srimat
スリマト・チャクラダー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
NEC Laboratories America Inc
Original Assignee
NEC Electronics Corp
NEC Laboratories America Inc
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 NEC Electronics Corp, NEC Laboratories America Inc filed Critical NEC Electronics Corp
Publication of JP2006246489A publication Critical patent/JP2006246489A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats

Landscapes

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

Abstract

【課題】プリフィックス集合に含まれるプリフィックス長の分布のバラツキを制限する。
【解決手段】本発明のプリフィックスの前処理方法は、プリフィックス長をより短いプリフィックス長に縮退する処理、プリフィックス長をより長いプリフィックス長に展開する処理、縮退及び展開を行った後に得られる修正プリフィックス集合をデータベースに格納する処理を含む。ここで、縮退を行う先のプリフィックス長が、1つのプリフィックス長に格納可能なプリフィックスの最大数Plimに基づいて動的に決定されること、展開を行う先のプリフィックス長が、前処理を行う前のプリフィックスが有する最大のプリフィックス長、及び1つのプリフィックス長に格納可能なプリフィックスの最大数に基づいて動的に決定されること、修正プリフィックス集合に含まれるプリフィックス長の数が、元のプリフィックス集合に含まれるプリフィクス長の数より小さいことを特徴とする。
【選択図】図5

Description

本発明は、IPルーティングやその他のデータベースに格納されるプリフィックス長の数を削減するためにプリフィックスの事前処理を行う技術に関する。
以下に示す文献には、有益な背景技術情報が記載されている。これらの文献は、本明細書内で参照されることによって、本開示に組み込まれる。以下では、これらの文献を角括弧つきの参照符号によって引用することとする。例えば[3]は、Srinivasan等の文献を示す。)
1.Technologies,S.、SiberCAM Ultra-18M SCT1842. 2002.
2.N.McKeown and P.Gupt、「Algorithms for Packet Classification」、IEEE Network, 2001年、15(2)、p. 24-32.
3.V. Srinivasan, G.Varghese, S.Suri, M.Waldvogel、「Fast and scalable layer four switching」、ACM SIGCOMM Computer Communication Review, Proceedings of the ACM SIGCOMM '98 conference on Applications, technologies, architectures, and protocols for computer communication, 1998年、28(4)
4.S.Dharmapurikar, K.Prabhakar, D.Taylor、「Longest prefix matching using bloom filters」、Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications、2003年8月
5.B.Chazelle , J.Kilian, R. Rubinfeld and A. Tal、「The Bloomier Filter: An Efficient Data Structure for Static Support Lookup Tables」、Proceedings, Symposium on Discrete Algorithms (SODA)、2004年
6.V.Srinivasan, G.Varghese、「Fast Address Lookups Using Controlled Prefix Expansion」、ACM Transactions on Computer Systems (TOCS)、1999年、17(1)、p.1-40.
7.V. Srinivasan, G.Varghese、「Method and Apparatus for Fast Hierarchical Address Lookup using Controlled Expansion of Prefixes」、米国特許第6,011,795号
ビデオ会議やリアルタイム映画配信等の広帯域を要求するアプリケーションの普及によって、インターネットに接続されるホスト(端末)数の増加とともに、インターネットを流れるトラフィックが急速に増加している。これらの広帯域アプリケーションの十分な品質を確保するために、通信回線の広帯域化が進められている。しかしながら、端末相互間におけるエンド・ツー・エンドでのパフォーマンスを向上するためには、通信回線速度の向上だけでなく、IP(Internet Protocol)パケットのフィルタリング及びルーティングを行うネットワーク・ルータの性能向上が不可欠である。
ネットワーク・ルータにおいて重大なボトルネックとなる処理は、IPアドレス・ルックアップである。ここで、IPアドレス・ルックアップとは、IPパケットを宛先に向けて転送する処理を意味しており、一般にIPフォワーディングと呼ばれている。アドレス・ルックアップが高速化されれば、パケット・クラシフィケーション等のネットワーク・ルータで実行される他の処理の高速化も可能となる。
ネットワーク・ルータが行うアドレス・ルックアップとは、アドレス・プリフィックスの集合の中から、入力されたIPパケットのヘッダに含まれる宛先アドレスに最長一致するアドレス・プリフィックス(以下、最長プリフィックスと呼ぶ)を決定する処理である。なお、1つのアドレス・プリフィックスは、1つのインターネット・アドレス又はその前半部分であるネットワーク・アドレスに対応する。以下では、アドレス・プリフィックスを単にプリフィックスと呼ぶ。
上述した最長プリフィックスの決定処理は、最長プリフィックス一致判定(LPM:Longest Prefix Matching)と呼ばれている。LPMを行うための主要な解決策は、コンテント・アドレサブル・メモリ(CAM:Content-Addressable Memories)、ツリーベースのアルゴリズム、及びハッシュベースのアルゴリズムである。
なお、本明細書に開示される発明は、ツリーベースのアルゴリズム及びハッシュベースのアルゴリズムによる解決策に対して有効なものであり、これらのプリフィックス探索アルゴリズムの使用に先立ってプリフィックス集合に対して行われるプリフィックスの事前処理技術に関するものである。
以下では、プリフィックス事前処理技術の背景技術を説明する。通常、プリフィックスは長さによって表現される。プリフィックスの長さがLであることは、アドレス全体のうちの上位のLビットがプリフィックスとして有効であることを意味する。有効でない他のビットは無視される、言い換えると、"don't-care"とみなされる。本明細書では、プリフィックスを整数(例えば、インターネット・アドレス)で表現する。また、プリフィックスに含まれる有効なビットの数をプリフィックス長と呼ぶこととする。
プリフィックスは、インターネット・アドレス(IPアドレス)又はその前半部分であるネットワーク・アドレスに対応する。例えば、"100.10"は、IPアドレス"100.10.1.2"のプリフィックスである。プリフィックスのデータベースには、プリフィックス"100.10"についてのフォワーディング情報を含まれている。しかしながら、当該データベースは、さらに長いプリフィックス"100.10.1.2"に対する詳細なフォワーディング情報を有している可能性がある。したがって、ネットワーク検索エンジンに入力されたIPアドレスに対するネクスト・ホップを決定するためには、データベース内の全てのプリフィックスとの比較を行い、入力されたIPアドレスと最長一致するプリフィックスに対応するフォワーディング情報を発見しなければならない。このような、最長一致するプリフィックスの判定を、最長プリフィックス一致判定(LPM:Longest Prefix Matching)と呼ぶ。
一例として、".com"を宛先に指定するパケットをポートAに転送するルータを考える。このルータが、"nec.com"ドメインにはポートBを介してより容易にアクセスできるロケーションに配置されていると仮定すると、当該ルータは、"nec.com"を宛先に指定するパケットをポートBにルーティングする必要がある。したがって、"nec.com"を宛先アドレスとする入力パケットはポートBに転送され、その他の".com"ドメインを宛先アドレスとする入力パケットはポートAに転送される。
単純なプリフィックス・テーブルの例を図1に示す。なお、本明細書において、プリフィックス・テーブルとは、プリフィックスが格納されるデータベースを意味する。図1のプリフィックス・テーブル1は、本明細書において実行例として参照される。プリフィックス・テーブル1において、名前列はプリフィックスの名称を示し、プリフィックス列は、名称によって識別されるプリフィックスを示し、転送情報列は、プリフィックスに含まれる宛先アドレスを有する入力パケットの転送先を示している。例えば、名前"P0"で指定されるプリフィックス"0*"は、プリフィックス長が1ビットのプリフィックスであり、宛先アドレスの最上位ビットがゼロであるパケットは転送先Aに転送すべきことを示している。なお、アスタリスク*は、アドレスのプリフィックスを除く部分を示している。また、転送情報に示されている転送先A乃至Eは、具体的にはネクスト・ホップ・アドレス又はネットワーク・ルータの出力ポートに相当する。
続いて以下では、ツリーベースの解決策及びハッシュベースの解決策の概要を説明する。
[ツリーベースの解決策]
図2は、図1に示したプリフィックス・テーブル1に対する基本的なツリー・データ構造を示している。ツリー2は、与えられたプリフィックスによって構築される。ツリー2のノード21乃至27は、それぞれレベルLに対応する。レベルLのノードでは、入力されたヘッダに含まれるアドレスのL番目のビットが検査され、検査対象ビットが1であるかゼロであるかによって処理が分かれる。例えば、ルート・ノード21では、アドレスの先頭ビットが検査される。この先頭ビットがゼロであれば、入力されたアドレスはプリフィックスP0と一致し、他のプリフィックスとは一致しないことが判定できる。他方、先頭ビットが1であれば、最長一致するプリフィックスを判定するため、さらに検査が行われる。つまり、このことは、LPMを行うためにツリー2の走査が必要であることを意味する。このため、最長一致するプリフィックスの決定に要する遅延時間は、ツリー2の深さに依存することになる。
上述したツリーベースのアルゴリズムに対するいくつかの改良が提案されている[2,3]。代表的な強化策は、ツリーの各ノードにおいて、ビット単位での比較を避けて、複数ビット単位での比較を行って次のプリフィックス長にジャンプすることである。このような改良技術は、ツリーに含まれるプリフィックス長の数の削減によって、その効果をいっそう高めることができる。
[ハッシュベースの解決策]
ハッシュベースの解決策では、異なるプリフィックス長ごとにハッシュ・テーブルを構築する。図3は、図1のプリフィックス・テーブル1に対してハッシュベースの解決策によるLPMを実行するLPM処理装置3の構成を示している。個々のプリフィックス長に対するハッシュ・テーブル32乃至36は、LPMの迅速な探索が可能となるよう最適化されている。図3のLPM処理装置3が備える全てのハッシュ・テーブル32乃至36は、同時並行的にアクセスされる。ハッシュ・テーブル32乃至36の出力に設けられた優先度判定部37は、入力アドレスと最長一致するプリフィックスをハッシュ・テーブル32乃至37の出力から選択する。なお、マスク部31は、入力されたヘッダからプリフィックス部分を抽出するマスク処理を行うものである。
上述したハッシュベースのアルゴリズムに対するいくつかの改良が提案されている[4,5]。ハッシュベースのアルゴリズムでは最悪ケースにおけるLPMの探索遅延が大きくなることから、これらの参照文献は、ハッシュ・テーブルの検索性能を向上するための高度な技術を開示している。しかしながら、構成上の基本的な形式は、上述したLPM処理装置3と同様である。
なお、Varghese等は、上述したツリーベースの解決策及びハッシュベースの解決策に適したプリフィックス展開技術を提案している[6,7]。当該展開技術は、与えられたプリフィックスを、予め定められたプリフィックス長の集合に属するように展開するものである。例えば、32ビットのIPv4アドレスであれば、8ビットの倍数の4種類のプリフィクス長(8、16、24、32ビット)に展開する。このようなプリフィックス展開によって、与えられたプリフィックス集合は、上記のIPv4アドレスの例であれば、4つのプリフィックス・テーブルによって構成することができる。このとき、各テーブルは、8ビットのアクセスワードによってアドレス可能であって、8ビットで表される網羅的な2個のビット・パターンをテーブル要素に有する。一般的には、アクセスワードがnビットであれば、2個のプリフィックスをテーブル要素とするLmax/n個のプリフィックス・テーブルによって構成することができる。ここでLmaxは入力アドレス長である。このような、プリフィックスの前処理を行って、プリフィックス・テーブルを構成することにより、LPM探索時のプリフィックス・テーブルへのアクセス回数、つまりメモリアクセス回数を抑制するものである。
米国特許第6011795号明細書
一般に、ネットワーク・ルータが有するルーティング・テーブル等のプリフィックス・テーブルに格納されるプリフィックス集合には、様々なプリフィックス長を有する多数のプリフィックスが含まれる。このように、プリフィックス数が多く、かつ、プリフィックス長の数が多くプリフィックス長の分布が不均一なプリフィックス集合に対して、上述したツリーベースの解決策及びハッシュベースの解決策を適用した場合、最長一致するプリフィックスを決定するまでの遅延時間が大きくなるといったLPMの処理効率が悪化を招くという課題がある。
本発明の第1の態様は、複数のオリジナル・プリフィックスを含むプリフィックス集合をデータベースに格納する方法である。具体的には、前記プリフィックス集合に含まれる複数のオリジナル・プリフィックスのプリフィックス長をより短いプリフィックス長に縮退する処理、前記プリフィックス集合に含まれる少なくとも1つのオリジナル・プリフィックスのプリフィックス長をより長いプリフィックス長に展開する処理、前記縮退及び前記展開を行った後に得られる修正プリフィックス集合をデータベースに格納する処理を含む。さらに、前記縮退を行う先のプリフィックス長が、予め定められた1つのプリフィックス長に格納可能なプリフィックスの最大数に基づいて動的に決定されること、前記展開を行う先のプリフィックス長が、前記複数のオリジナル・プリフィックスが有する最大のプリフィックス長、及び予め定められた1つのプリフィックス長に格納可能なプリフィックスの最大数に基づいて動的に決定されること、並びに、前記修正プリフィックス集合に含まれるプリフィックス長の数が、前記プリフィックス集合に含まれる前記オリジナル・プリフィックスのプリフィクス長の数より小さいことを特徴とする。
本発明の第2の態様は、上述した本発明の第1の態様の方法に含まれる処理をコンピュータに実行させるためのコンピュータ・プログラムである。
本発明によって、1つのプリフィックス長に属するプリフィックス数を制限した状態で、プリフィックス・テーブル等のプリフィックス・データベースに格納されるプリフィックス集合に含まれるプリフィックス長の数を最小化することができる。これにより、処理後に得られる修正プリフィックス集合に含まれるプリフィックス長の分布のバラツキを制限することができるため、ツリーベースの解決策又はハッシュベースの解決策によってLPMを行う際の処理効率を向上することができる。
本発明は、与えられたプリフィックスを予め定められたプリフィックス長の集合に展開するのではなく、以下に詳述するプリフィックス処理アルゴリズムを用いてプリフィックス長を動的に決定するものである。また、本発明では、与えられたプリフィックスのプリフィックス長は展開されるだけでなく、より短いプリフィックス長に縮退される場合もある。さらに、本発明は、プリフィックス長の数が最小になるように、最適なプリフィックス長を決定するものである。
以下の説明では、プリフィックス集合SPと整数Cが与えられるものとし、プリフィックス集合SPに含まれる複数のプリフィックスを新たなプリフィックス集合SP´に展開又は縮退する場合を考える。本発明にかかるプリフィックス事前処理方法では、新たなプリフィックス集合SP´に含まれるプリフィックス長の数が最小化され、かつ、各プリフィックス長に属するプリフィックスの数が所定数C以下になるように、展開又は縮退が行われる。
本実施の形態にかかるプリフィックス事前処理方法では、欲張り法アルゴリズムと呼ばれるアルゴリズムを使用する。展開または縮退されたプリフィックスが属することになるプリフィックス長は、所定の容量を持った容器(ビン)とみなすことができる。ここで、容器とは、具体的にはメモリである。
本実施の形態にかかるプリフィックス事前処理方法は、2つの主要な部分を含んでいる。1つは、プリフィックスの縮退処理であり、もう1つはプリフィックスの展開処理である。
本実施の形態にかかるプリフィックスの縮退処理について図4のフローチャートを用いて説明する。まず始めに、プリフィックス集合SPに含まれるプリフィックスが有する最大プリフィックス長Pfromを判定する処理を行う。図4のステップS401では、Pfromをプリフィックス集合SPに含まれ得る最大プリフィックス長に設定して処理を開始する。次に、プリフィックス長Pfromが空、つまり、プリフィックス長Pfromを有するプリフィックスがプリフィックス集合SP中に1つも存在しない場合には、プリフィックスを有する最初のプリフィックス長に到達するまで、プリフィックス長Pfromを順次減少させていく(ステップS402乃至S404)。これらの処理によって決定されたプリフィックス長Pfromが、縮退処理を行なう開始元のプリフィクス長(ソース・プリフィックス長)となる。
続いて、プリフィックス長Pfromに属するプリフィックスが縮退されることによって属することになる縮退処理後のプリッフィクス長(ディスティネーション・プリフィックス長)Ptoを決定する処理を行う。図4のステップS405からS408までが、この処理に対応する。つまり、プリフィックス長Ptoは、Pfromより短いプリフィックス長の中で、プリフィックスを有する最長のプリフィックスに相当する。
次に、共通のサブ・プリフィックス長Ptoを有する2Pfrom−Pto個のプリフィックスからなる完全集合Sを、プリフィックス長Pfromを有するプリフィックスの中から選択する(ステップS409)。ここで、サブ・プリフィックスとは、あるプリフィックスの上位ビットで示されるプリフィックス長の短いプリフィックスを意味している。例えば、0000*→A、0001*→A、0010*→A、及び0011*→Bは、プリフィックス長が4ビットであって、長さ2ビットの共通するサブ・プリフィックス"00"を有する、4個のプリフィックスからなる完全集合である。なお、アスタリスク*は、アドレスのプリフィックスを除く部分を示している。また、A及びBは、各プリフィックスに含まれる宛先アドレスを有するパケットの転送先を示しており、具体的にはネクスト・ホップ・アドレス又はネットワーク・ルータの出力ポートに相当する。
次に、完全集合Sから、同じ転送先(ネクスト・ホップ・アドレス又はネットワーク・ルータの出力ポート)を有するプリフィックスの最大部分集合SSを抽出する(ステップS410)。このプリフィックスの部分集合SSに含まれるプリフィックスは、プリフィックス長Ptoの1つのプリフィックスに縮退される。
ただし、上述したプリフィックスの縮退は、以下に示す2つの条件を満足する場合にのみ可能となる。第1の条件は、プリフィックス長Ptoのプリフィックスがプリフィックス集合SPの中に存在すること、である。つまり、上記の縮退処理によって、新たなプリフィックス長の生成は行わないものとする。第2の条件は、共通のサブ・プリフィックスが、プリフィックス長Ptoのプリフィックス集合の中に既に存在していないこと、である。図4のステップS412の縮退ルーチンによって、これらの条件が保証される。なお、ステップS412のPlimは、プリフィックス長Ptoに格納可能なプリフィックスの最大数(2Pto)を表しており、num_prefix(Pto)は、実際にPtoに含まれているプリフィックス数を表している。
上記の0000*→A、0001*→A、0010*→A、及び0011*→Bの場合は、4つのうちの3つのプリフィックスが同じ転送先"A"を有している。このため、これら3つのプリフィックスは、プリフィックス長2ビットの1つのプリフィックス00*→Aに縮退可能である。他方、4番目のプリフィックス0011*→Bは、プリフィックス長4ビットのまま維持される。このような変換によっても、正しいLPM動作を行うことが可能である。
続いて、プリフィックス展開プロセスの概要について説明する。展開プロセスでは、最大プリフィックス長L1のプリフィックス長を有する全てのプリフィックスが、必要数だけ用意された複数のビンのいずれかに割り当てられる。このとき、最終的なプリフィックス配置において、プリフィックス長の異なるn通りのビンを設ける場合には、n−1通りのビンは全て埋まっている状態となる。なお、後述する展開プロセスの実行によって、1つのビンだけは部分的に埋まった状態となることがある。
部分的に埋まった状態のビンが存在する場合、このビンのプリフィックス長の次に長いプリフィックス長L2のビンから、部分的に埋まった状態のビンにさらに格納可能な数に相当するプリフィックスを移動する。この処理が展開となる。展開の対象となるプリフィックスを使い果たして、プリフィックス長L2のビンが空になった場合には、L2の次に長いプリフィックス長のビンから、プリフィックスの展開を行う。この動作を繰り返すことにより、部分的に埋まった状態のビンを一杯にすることができる。
図5は、上述したプリフィックス展開プロセスの詳細を示すフローチャートである。ステップS501では、Ptoがプリフィックス集合SPに含まれ得る最大プリフィックス長に割り当てられる。その後のステップS502乃至S504において、Ptoが、実際にプリフィックスが属している最大プリフィックス長になるように調整される。このように調整されたプリフィックス長Ptoが、プリフィックス展開によって他のプリフィックスが属することになる目標のプリフィックス長に相当する。
次に、プリフィックス展開の元となるプリフィックス長Pfromが決定される(ステップS505乃至S508)。これに続くステップS509では、展開元プリフィクス長Pformから目標プリフィックス長Ptoに展開可能なプリフィックスの最大数を算出する。なお、ステップS509のPlimは、プリフィックス長Ptoに格納可能なプリフィックスの最大数(2Pto)を表しており、num_prefix(Pto)は、実際にPtoに含まれているプリフィックス数を表している。
ステップS509で算出した最大数がゼロであれば、次の展開元プリフィックス長Pfromが決定される(ステップS510)。一方、最大数が整数、つまり展開可能なプリフィックスが存在する場合は、目標プリフィックス長Ptoに新たにプリフィックスを収容することができなくなるまで、プリフィックス長Pfromのプリフィックスをプリフィックス長Ptoに展開する(ステップS511)。
上述したプリフィックス縮退及びプリフィックス展開の2つのアルゴリズムは、ともに本実施の形態にかかるプリフィックス事前処理方法を構成するものである。本発明にかかるプリフィックス事前処理方法の全体の処理手続きを図6に示す。プリフィックス縮退及びプリフィックス展開のループ処理(ステップS602及びS603)は、更なる変更が不可能となるまで繰り返し行われる(ステップS604)。
上述したように、本発明は、前処理後のプリフィックス長ごとのプリフィックス数に制限を加えて、プリフィックスを縮退・展開している。具体的には、上述したステップS412及びステップS509において、各プリフィックス長のプリフィックスの最大数をPlimによって規定している。つまり、本発明のプリフィックスの展開処理を行うことにより、展開処理後のプリフィックス集合に含まれるプリフィックス長の分布は、最長のプリフィックス長の近辺に集約され、かつ、各プリフィックス長に属するプリフィックス数も均一化された状態となる。つまり、本発明の展開処理によって、展開処理後のプリフィックス集合に含まれるプリフィックス長の分布のバラツキを、当初のオリジナル・プリフィックスによって構成されるプリフィックス集合におけるプリフィックス長の分布より制限することができる。このようなプリフィックス長の分布のバラツキの抑制により、ハッシュベース及びツリーベースの解決策による最長一致探索の処理速度の高速化が可能となる。
また、上述した文献[6、7]に開示されているプリフィックス長の前処理方法では、プリフィックス長の前処理後の各プリフィックス長に属するプリフィックス数が制御されていないため、予め用意しておくプリフィックス・テーブルのサイズは最大サイズに相当するものを用意しておく必要がある。具体的には、一括して最長一致探索を行うプリフィックス長の範囲(アクセスワード)がnビットであれば、2個の網羅的なエントリを格納可能なテーブルサイズを必要とする。これに対して本発明は、各プリフィックス長に属するプリフィックスの最大数を規定している。このため、プリフィックス・テーブルのサイズは、最大数に相当するプリフィックスを格納可能なサイズとすればよく、プリフィックス・テーブルを保持するためのメモリを効率的に使用することができる。
さらに、本発明では、上述した手順に従ってプリフィックスの縮退を行うことにより、縮退処理後のプリフィックス集合に含まれるプリフィックス数を削減することができる。
続いて以下では、プリフィックス・テーブルの更新について説明する。通常、ネットワーク・ルータでは、プリフィックス・テーブルの更新が行われる。プリフィックス・テーブルの更新には、新たなプリフィックスの追加、既存のプリフィックスの削除、及び既存のプリフィックスの転送情報(ネクスト・ホップ・アドレス、出力ポート等)の変更がある。上述した本実施の形態にかかるプリフィックスの事前処理を実行することにより、プリフィックス・テーブルの更新が多少複雑となる。プリフィックスの事前処理によって、処理前のプリフィックス長とは異なるプリフィックス長に展開又は縮退が行われているためである。
いま、プリフィックスの事前処理を実行した後のプリフィックス長の集合をS={pl1、pl2、・・・、plL}とする。また、プリフィックスの事前処理を行う前に存在するプリフィックスのことを、オリジナル・プリフィックスと呼んで区別することとする。
プリフィックス・テーブルの更新を容易にするため、本実施の形態では、オリジナル・プリフィックスのプリフィックス長を識別可能なタグを、プリフィックスの事前処理を行った後のプリフィックスに付加する。このタグは、プリフィックス・テーブルがハードウェア実装の場合にはハードウェアに付加されても良いし、ソフトウェア実装の場合は、ソフトウェアのデータ構造に付加されても良い。
プリフィックスの追加、削除及び変更のそれぞれの場合について、プリフィックス・テーブルの更新方法の概要を示す。
[プリフィックス追加]
プリフィックス長Lの新たなプリフィックスを追加する場合、当該プリフィックスに対して図4及び図5に示したアルゴリズムを実行し、プリフィックスの縮退又は展開を行う。なお、追加するプリフィックスが既存のプリフィックスP´と衝突する場合には、上述したオリジナル・プリフィックスのプリフィックス長を示すタグを参照し、P´のオリジナル・プリフィックス長がL以下である場合にのみ、P´を上書きする。
[プリフィックス削除]
プリフィックス長Lのオリジナル・プリフィックスPをプリフィックス・テーブルから削除する場合、集合Sに含まれる全てのプリフィックス長を調査する。オリジナル・プリフィックスPは、元のプリフィクス長と異なるプリフィックス長に縮退又は展開されている可能性があるためである。上記の調査によって削除対象のプリフィックスPと一致し、かつ、オリジナル・プリフィックス長を示すタグが長さLと一致するプリフィックスが発見された場合に、発見されたプリフィックスを削除する。
[プリフィックス変更]
プリフィックス長Lのオリジナル・プリフィックスPの転送情報を変更する場合、集合Sに含まれる全てのプリフィックス長を調査する。プリフィックス削除の場合と同様に、オリジナル・プリフィックスPは、元のプリフィクス長と異なるプリフィックス長に縮退又は展開されている可能性があるためである。上記の調査によって変更対象のプリフィックスPと一致し、かつ、オリジナル・プリフィックス長を示すタグが長さLと一致するプリフィックスが発見された場合に、発見されたプリフィックスの転送情報を変更する。
なお、上述した本実施の形態にかかるプリフィックスの事前処理方法は、コンピュータ・システムを用いて実現することが可能である。したがって、本発明にかかるプリフィックスの事前処理方法をコンピュータに実行させるコンピュータ・プログラムも本発明の範囲に含まれるものである。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
プリフィックス・テーブルの一例を示す図である。 ツリーベースのLPMを説明するための図である。 ハッシュベースのLPMを説明するための図である。 本発明にかかるプリフィックス縮退処理を示すフローチャートである。 本発明にかかるプリフィックス展開処理を示すフローチャートである。 本発明にかかるプリフィックス事前処理を示すフローチャートである。
符号の説明
1 プリフィックス・テーブル
2 ツリー
3 LPM処理装置
32乃至36 ハッシュ・テーブル

Claims (12)

  1. 複数のオリジナル・プリフィックスを含むプリフィックス集合をデータベースに格納する方法であって、
    前記プリフィックス集合に含まれる複数のオリジナル・プリフィックスのプリフィックス長をより短いプリフィックス長に縮退し、
    前記プリフィックス集合に含まれる少なくとも1つのオリジナル・プリフィックスのプリフィックス長をより長いプリフィックス長に展開し、
    前記縮退及び前記展開を行った後に得られる修正プリフィックス集合をデータベースに格納するものであり、
    前記縮退を行う先のプリフィックス長が、予め定められた1つのプリフィックス長に格納可能なプリフィックスの最大数に基づいて動的に決定され、
    前記展開を行う先のプリフィックス長が、前記複数のオリジナル・プリフィックスが有する最大のプリフィックス長、及び予め定められた1つのプリフィックス長に格納可能なプリフィックスの最大数に基づいて動的に決定され、
    前記修正プリフィックス集合に含まれるプリフィックス長の数が、前記プリフィックス集合に含まれる前記オリジナル・プリフィックスのプリフィクス長の数より小さいことを特徴とする、データベースへのプリフィックス集合の格納方法。
  2. 前記縮退は、
    プリフィックス長が同じであり、かつ、共通のサブ・プリフィックスを有するプリフィックスの完全集合を生成し、
    共通の転送先を有するプリフィックスの最大部分集合を、前記完全集合に含まれるプリフィックスから抽出し、
    前記最大部分集合に含まれるプリフィックスを、1つの前記共通のサブ・プリフィックスに集約することにより行う、請求項1に記載の方法。
  3. 前記共通のサブ・プリフィックスへの集約を、
    (1)前記共通のサブ・プリフィックスと同じプリフィックス長のオリジナル・プリフィックスが前記プリフィックス集合の中に存在すること、
    及び
    (2)前記共通のサブ・プリフィックスと同じプリフィックスが、前記修正プリフィックス集合に含まれるプリフィックス中に既に存在しないこと、
    を満足する場合に実行する、請求項2に記載の方法。
  4. 前記展開は、
    (a)前記複数のオリジナル・プリフィックスの中から最長のプリフィックス長を判定し、
    (b)前記最長のプリフィックス長を有するオリジナル・プリフィックスを、予め定められた記憶容量を有する1又は複数の記憶領域に格納し、
    (c)前記記憶容量が部分的に満たされた状態にある前記記憶領域を選択し、
    (d)前記最長のプリフィックス長より短いプリフィックス長のオリジナル・プリフィックスを拡張し、前記選択した記憶領域の記憶容量が満たされるように、拡張後のプリフィックスを前記選択した記憶領域に配置する、請求項1に記載の方法。
  5. 前記(a)乃至(d)の処理を、前記プリフィックス集合に含まれる全てのプリフィックス長について繰り返し行う、請求項4に記載の方法。
  6. 前記選択した記憶領域に配置するオリジナル・プリフィックスは、前記最長のプリフィックス長の次に長いプリフィックス長を有するプリフィックスから選択する、請求項4に記載の方法。
  7. 前記共通のサブ・プリフィックスへの集約は、特定ビットがゼロ及び1である2つのプリフィックスを、前記特定ビットは可変ビットである1つのプリフィックスに置き換えることにより行う、請求項2に記載の方法。
  8. 前記オリジナル・プリフィックスの拡張は、特定ビットが可変である1つのプリフィックスを、前記特定ビットがゼロ及び1である2つのプリフィックスに置き換えることにより行う、請求項4に記載の方法。
  9. 前記オリジナル・プリフィックスは、IPアドレス又はその一部である、請求項1に記載の方法。
  10. コンピュータに、複数のオリジナル・プリフィックスを含むプリフィックス集合をデータベースに格納する処理を実行させるためのコンピュータ・プログラムであって、
    前記処理は、
    前記プリフィックス集合に含まれる複数のオリジナル・プリフィックスのプリフィックス長をより短いプリフィックス長に縮退する処理、
    前記プリフィックス集合に含まれる少なくとも1つのオリジナル・プリフィックスのプリフィックス長をより長いプリフィックス長に展開する処理、
    及び、
    前記縮退及び前記展開を行った後に得られる修正プリフィックス集合をデータベースに格納する処理を含むものであり、
    前記縮退を行う先のプリフィックス長が、予め定められた1つのプリフィックス長に格納可能なプリフィックスの最大数に基づいて動的に決定され、
    前記展開を行う先のプリフィックス長が、前記複数のオリジナル・プリフィックスが有する最大のプリフィックス長、及び予め定められた1つのプリフィックス長に格納可能なプリフィックスの最大数に基づいて動的に決定され、
    前記修正プリフィックス集合に含まれるプリフィックス長の数が、前記プリフィックス集合に含まれる前記オリジナル・プリフィックスのプリフィクス長の数より小さいことを特徴とする、コンピュータ・プログラム。
  11. 前記縮退は、
    プリフィックス長が同じであり、かつ、共通のサブ・プリフィックスを有するプリフィックスの完全集合を生成し、
    共通の転送先を有するプリフィックスの最大部分集合を、前記完全集合に含まれるプリフィックスから抽出し、
    前記最大部分集合に含まれるプリフィックスを、1つの前記共通のサブ・プリフィックスに集約することにより行われる、請求項10に記載のコンピュータ・プログラム。
  12. 前記展開は、
    (a)前記複数のオリジナル・プリフィックスの中から最長のプリフィックス長を判定し、
    (b)前記最長のプリフィックス長を有するオリジナル・プリフィックスを、予め定められた記憶容量を有する1又は複数の記憶領域に格納し、
    (c)前記記憶容量が部分的に満たされた状態にある前記記憶領域を選択し、
    (d)前記最長のプリフィックス長より短いプリフィックス長のオリジナル・プリフィックスを拡張し、前記選択した記憶領域の記憶容量が満たされるように、拡張後のプリフィックスを前記選択した記憶領域に配置することにより行われる、請求項10に記載のコンピュータ・プログラム。
JP2006058510A 2005-03-04 2006-03-03 データベースへのプリフィックス集合の格納方法、及びそれをコンピュータに実行させるためのプログラム Pending JP2006246489A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65816705P 2005-03-04 2005-03-04
US11/133,226 US7398278B2 (en) 2005-03-04 2005-05-20 Prefix processing technique for faster IP routing

Publications (1)

Publication Number Publication Date
JP2006246489A true JP2006246489A (ja) 2006-09-14

Family

ID=36945346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006058510A Pending JP2006246489A (ja) 2005-03-04 2006-03-03 データベースへのプリフィックス集合の格納方法、及びそれをコンピュータに実行させるためのプログラム

Country Status (2)

Country Link
US (1) US7398278B2 (ja)
JP (1) JP2006246489A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7852851B2 (en) * 2006-11-10 2010-12-14 Broadcom Corporation Method and system for hash table based routing via a prefix transformation
WO2009078028A1 (en) * 2007-12-14 2009-06-25 Lucent Technologies Inc A method for the route aggregation of mobile ip routes
WO2014132136A2 (en) * 2013-02-27 2014-09-04 Marvell World Trade Ltd. Efficient longest prefix matching techniques for network devices
US9715525B2 (en) * 2013-06-28 2017-07-25 Khalifa University Of Science, Technology And Research Method and system for searching and storing data
US9647941B2 (en) * 2013-10-04 2017-05-09 Avago Technologies General Ip (Singapore) Pte. Ltd. Hierarchical hashing for longest prefix matching
WO2017014724A1 (en) * 2015-07-17 2017-01-26 Hewlett Packard Enterprise Development Lp Combining prefix lengths into a hash table
US10390114B2 (en) * 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000358064A (ja) * 1999-06-17 2000-12-26 Nippon Telegr & Teleph Corp <Ntt> ルーティングテーブル検索装置および検索法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011795A (en) * 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000358064A (ja) * 1999-06-17 2000-12-26 Nippon Telegr & Teleph Corp <Ntt> ルーティングテーブル検索装置および検索法

Also Published As

Publication number Publication date
US7398278B2 (en) 2008-07-08
US20060200581A1 (en) 2006-09-07

Similar Documents

Publication Publication Date Title
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US7031320B2 (en) Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables
US7315547B2 (en) Packet forwarding device
US7610271B2 (en) Method and apparatus for performing a binary search on an expanded tree
US7885268B2 (en) Method and system for hash table based routing via table and prefix aggregation
JP5624331B2 (ja) コンピュータ実施方法
US7630367B2 (en) Approach for fast IP address lookups
JP3735471B2 (ja) パケット中継装置およびlsi
US7953923B2 (en) Double density content addressable memory (CAM) lookup scheme
US7903666B1 (en) Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches
US7327727B2 (en) Atomic lookup rule set transition
US8059658B1 (en) Method and system for automatic expansion and contraction of IP host forwarding database
US20040085953A1 (en) Longest prefix matching (LPM) using a fixed comparison hash table
JP2006246489A (ja) データベースへのプリフィックス集合の格納方法、及びそれをコンピュータに実行させるためのプログラム
EP3777055B1 (en) Longest prefix matching
KR101434065B1 (ko) 최장 프리픽스 매치의 확장성을 개선하기 위한 방법 및 장치
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US11558294B2 (en) Dynamic forward information base prefix optimization
JP2007195180A (ja) ルーティングシステム及びルートアップデート方法
JP2006246488A (ja) ネットワーク・ルータ、アドレス処理方法及びコンピュータ・プログラム
RU2233473C2 (ru) Устройство и способ выполнения высокоскоростного поиска маршрутов протокола интернет и управления таблицами маршрутизации/пересылки
US7376657B1 (en) Fast IPv6 address lookup using skip level processing on multi-bit tries
CN107204926B (zh) 预处理cache的路由快速查找方法
EP1158431A2 (en) Method and apparatus for performing a binary search on an expanded tree
WO2024078011A1 (zh) 并行查表装置、方法及设备、计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110208