JP2000324172A - アドレスに関するプレフィクスの格納方法 - Google Patents

アドレスに関するプレフィクスの格納方法

Info

Publication number
JP2000324172A
JP2000324172A JP2000007545A JP2000007545A JP2000324172A JP 2000324172 A JP2000324172 A JP 2000324172A JP 2000007545 A JP2000007545 A JP 2000007545A JP 2000007545 A JP2000007545 A JP 2000007545A JP 2000324172 A JP2000324172 A JP 2000324172A
Authority
JP
Japan
Prior art keywords
node
prefix
trie
address
prefixes
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.)
Granted
Application number
JP2000007545A
Other languages
English (en)
Other versions
JP3570323B2 (ja
Inventor
Goodoruu Mark
マーク・ゴードルー
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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Publication of JP2000324172A publication Critical patent/JP2000324172A/ja
Application granted granted Critical
Publication of JP3570323B2 publication Critical patent/JP3570323B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Abstract

(57)【要約】 【課題】 メモリ使用が効率的かつスケーラブルであ
り、効率的で単純な挿入・削除・探索オペレーションを
サポートし、パイプライン化ハードウェア実装をサポー
トする、アドレスに関するプレフィクスを格納するため
の方法を実現する。 【解決手段】 二分トライ方式でプレフィクスを格納す
る。二分トライ内の各ノードは、プレフィクスのうちの
少なくとも1つに関連づけられ、二分トライ内のいずれ
のノードも空でない。好ましくは、最悪の場合の探索に
おける深さを最小にするために、トライは平衡化され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、アドレスに関する
プレフィクスを効率的に格納することに関する。特に、
本発明は、トライ(trie)の各ノードに1個のプレフィ
クスが格納されて空のノードがないようなバイナリ・ト
ライ(binary trie、以下「二分トライ」という。)方式
でアドレスに関するプレフィクスを格納することに関す
る。本発明は、二分トライ方式でアドレスに関するプレ
フィクスを格納する方法として実現される。また、本発
明は、前記二分トライ方式でネットワークアドレスに関
するプレフィクスを格納する方法、前記二分トライ方式
でネットワークアドレスが格納されるネットワーキング
システムとして実現される。更に、本発明は、前記二分
トライ方式でコンピュータがアドレスを格納することを
可能にするコンピュータプログラム製品として実現され
る。
【0002】
【従来の技術】アドレス及びアドレスに関するプレフィ
クスを効率的に格納することは、複数のアドレスを使用
するシステムにとって重要である。なお、この「従来の
技術」のセクションでは、多くのインターネットアプリ
ケーションで使用されるルータに関連するフォワーディ
ングテーブルについて説明するが、説明される技術及び
原理は複数のアドレスに関するプレフィクスを格納する
ためのテーブルが必要とされるような任意のシステムに
適用される。また、ネットワーキングシステムでは、多
数のネットワークアドレスを効率的に格納することが必
要となる。
【0003】IPアドレスは一般に32ビットを有す
る。IPデータグラムは、ソース(送信元)及びデステ
ィネーション(宛先)の両方のIPアドレスを含む。ル
ータで、着信IPデータグラムは次のホップ(これは一
般に近くのマシンである。)へ転送されなければならな
い。ルータは、自己のルーティングテーブルを参照する
ことによって、次のホップを決定する。この手続きをI
Pフォワーディング(IPforwarding)、あるいはテーブル
ルックアップ(table lookup)という。なお、フォワーデ
ィングは、ルート(経路)を計算することとは異なる
(ルート計算は、例えば呼ルーティングであり、ルーテ
ィングアルゴリズムによって扱われる。)。IPフォワ
ーディングは、一般的なデータグラムにとって、最も時
間のかかるタスクとなる場合がある。
【0004】IPの最近のバージョンにおけるデータグ
ラムのフォワーディングは、IPアドレスプレフィクス
のセットの格納に基づいている。その各アドレスは、I
Pを使用するネットワーキングシステム内の次のホップ
に対応する。IPデータグラムがネットワーキングシス
テム内のルータに到着すると、デスティネーションアド
レスが、ルータのフォワーディングテーブル内に格納さ
れているプレフィクスと照合される。デスティネーショ
ンIPアドレスと一致する最長のプレフィクスを見つ
け、そのプレフィクスの次ホップ情報が、このデータグ
ラムを転送するために使用される。この問題は、最長一
致プレフィクス(LMP:Longest Matching Prefix)
問題と呼ばれる。直ちにわかるように、アドレスに関す
るプレフィクスの効率的な格納がLMP問題を解決する
際の重要なファクタである。
【0005】IPを使用するネットワーキングシステム
内のルータのフォワーディングテーブルにプレフィクス
を格納する従来技術の1つは、CIDR(class-less In
ter-Domain Routing)として知られている(V. Fuller,
T. Li, J. Yu, and K. Varadhan, "Classless inter-do
main routing (CIDR): An address assignment and agg
regation strategy", RFC-1519, September 1993、を参
照)。このアプローチは、インターネット内のアドレス
を格納するテーブルのサイズを縮小することを意図して
いる。CIDR以前のIPフォワーディング法は、デス
ティネーションネットワーク番号を容易に抽出すること
ができるように、アドレスフォーマットを固定すること
に基づいていた。データグラムは、各デスティネーショ
ンネットワークに関連する次ホップに転送された。各ル
ータ上で、ネットワークごとに1個のフォワーディング
テーブルが必要とされる。このような格納領域が要求さ
れることは、インターネット上のネットワーク数が増大
するにつれて問題となった。CIDRは、単一のプレフ
ィクスのもとで同じ次ホップ情報のIPアドレスをまと
めることによって(そのようにまとめることが可能なと
き)、これらのフォワーディングテーブルのサイズを縮
小する。
【0006】次に示す表1は、6個のプレフィクスのセ
ットを含むフォワーディングテーブルの例である。
【表1】
【0007】上記の転送プロセスの例として、表1を考
える。この表は、プレフィクスのセットを含み、各プレ
フィクスには次ホップが関係づけられる。次ホップ情報
は一般に、次のルータのIPアドレスと、出力物理イン
タフェースからなる。例えば、あるIPデータグラムの
デスティネーションアドレスが「4.123.33.1
2」である場合、左端の8ビットは「0000010
0」である。このアドレスに対して、表1のLMPは
「0000」であり、これは次ホップがH0であること
を示す。もう1つの例として、デスティネーションアド
レス「109.12.12.12」では、左端の8ビッ
トは「01101101」である。このアドレスは、
「01101」及び「011011」の両方に一致す
る。後者のプレフィクスのほうが長いので、次ホップは
3となる。
【0008】情報の格納及び探索に関する初期の研究の
かなりの部分は、通常は少ない修正だけで、LMP問題
に適用可能である。特に、キーの直接比較ではなく、キ
ーの2進表示に基づく探索法は、このような場合に一般
的になっている。Knuthは、さまざまなこのような「デ
ィジタル探索」アプローチについて概説している(D.E.
Knuth, "The Art of Computer Programming: Volume
3, Sorting and Searching", Addison-Wesley, second
ed., 1998、を参照)。
【0009】トライ構造は、任意のレベルにおける分岐
が、トライのノードに格納されている値の一部のみによ
って決定されるような木構造の一種である。Fredkinの
トライ構造はエレガントであるが、メモリの使用が非効
率的であり、格納されているプレフィクスよりも多くの
ノードを必要とする可能性がある(E. Fredkin, "Trie
memory", Communications of the ACM, vol.3, pp.490-
500, 1960、を参照)。Morrisonのパトリシアトライ(Pa
tricia trie)は、テーブルエントリに関連づけられてお
らず1個の子しか有しない各トライノードを除去するこ
とによってこの問題点を改善している(D. Morrison, "
Patricia-practical algorithm to retrieve informati
on coded in alphanumeric", Journal of the ACM, vo
l.15, no.4, pp.515-534, October 1968、を参照)。Mo
rrison及びFredkinによってそれぞれ提案されたこれら
の2つの構造は、IPフォワーディングに関する最近の
研究の多くに影響を与えている。図19に、従来のトラ
イ構造の一例を示す。図20に、従来のトライ構造、及
び、等価な従来のパトリシアトライ構造の一例を示す。
図19及び図20において、黒丸のノードはプレフィク
スを格納しており、白丸のノードはプレフィクスを格納
していない。
【0010】IPフォワーディングを扱うための最近の
提案は、さまざまな設計目標を念頭において最適化され
ている。これらのアプローチのうちのいくつかは、テー
ブルの更新(すなわち、挿入及び削除)よりもルックア
ップ(すなわち探索)の速度に重きを置いている(以下
の文献を参照)。 ・M. Degermark, A. Brodnik, S. Carlsson, and S. Pi
nk, "Small forwarding tables for fast routing look
ups", in Proceedings ACM SIGCOMM'97, pp.3-14, 1997 ・B. Lampson, V. Srinivasan, and G. Varghese, "IP
lookups using multiway and multicolumn search", in
Proceedings IEEE INFOCOM'98, pp.1248-1256, 1998 ・S. Nilsson and G. Karlsson, "Fast address lookup
for Internet routers", in Proceedings of IEEE Bro
adband Communications 98, April 1998 ・H. H.-Y. Tzeng, "Longest prefix search using com
presses trees", in GLOBE-COM'98, Global Internet M
ini Conference, pp.88-93, November 1998 ・M. Waldvogel, G. Varghese, J. Turner, and B. Pla
ttner, "Scalable high speed IP routing lookups", i
n Proceedings ACM SIGCOMM'97, pp.25-36, 1997。
【0011】ルックアップの速度に重きを置く理由は、
ルーティング更新はかなり頻繁にあるが、ルーティング
プロトコルは更新に適応するのに数分間かかることがあ
るためである。ルータ上のフォワーディングテーブル
は、現在のシステムでは、毎秒高々1回より多くは変更
する必要がない。従って、ルータ上の他の場所にある何
らかの動的ルーティングテーブル構造(これがフォワー
ディングテーブルを定期的に更新する)を使用すること
が考えられる。
【0012】現在では、探索速度に重きを置くことによ
り、不均衡な設計が生じており、これは、インターネッ
トの現在及び将来の需要と調和していない。Labovitz e
t al.は、インターネットコアルータは一般に、199
6年には、毎日3百万〜6百万の更新情報を交換してい
ると指摘している(C. Labovitz, G. R. Malan, andF.
Jahanian, "Internet routing instability", IEEE/ACM
Transactions on Networking, vol.6, no.5, pp.515-5
28, October 1998、を参照)。インターネットが成長す
るにつれて、また、モビリティ(移動性)に対するサポ
ートが拡大するにつれて、効率的に更新することが可能
なフォワーディングテーブルに対する需要は更に増大す
ることが予想される。
【0013】最近、IPフォワーディング問題に関する
多くの研究がある。本明細書では、ソフトウェアアプロ
ーチに注目する。なお、多くのソフトウェアアプローチ
は、ハードウェアに効率的に実装することが可能であ
る。本発明のこのようなハードウェア実装の1つについ
ても説明する。いくつかのこのようなアプローチの比較
は、Filippi et al.の研究に見られる(E. Filippi, V.
Innocenti, and V. Vercellone, "Address lookup sol
utions for gigabit switch/router", in GLOBECOM'98,
Global Internet Mini Conference, pp.82-87, Novemb
er 1998、を参照)。
【0014】Degermark et al.には、市販のプロセッサ
で実行するために最適化されたアプローチについて記載
されている。Degermark et al.では、効率的な動作を提
供するため、テーブルデータを小さく保ちながら、同時
に、テーブルを探索するのに必要なメモリアクセス数を
最小にしようとする(M. Degermark, A. Brodnik, S.Ca
rlsson, and S. Pink, "Small forwarding tables for
fast routing lookups", in Proceedings ACM SIGCOMM'
97, pp.3-14, 1997、を参照)。この格納方法は、32
個のトライレベルのそれぞれに対して1回のメモリアク
セスを実行するのではなく、3個だけのレベルでプレフ
ィクス木(実質的にはトライ)を探索することによっ
て、(メモリ利用率を犠牲にして)メモリアクセス数を
低減する。プレフィクス木構造では、あるレベルの探索
においてはいくつかのビットパターンしか可能性がな
い。そのため、Degermark et al.は、データ圧縮法を利
用することを可能にしている。彼らの例では利益はやや
限定されているが(彼らは実質的に16ビットのビット
ベクトルを10ビットだけで格納することを可能にして
いるが、これは、データ構造全体の1つのコンポーネン
トに対してのみである)、彼らの圧縮アプローチは注目
すべきものである。このアドレス格納方法は、効率的な
更新をサポートするようには設計されていない。
【0015】Waldvogel et al.(M. Waldvogel, G. Var
ghese, J. Turner, and B. Plattner, "Scalable high
speed IP routing lookups", in Proceedings ACM SIGC
OMM'97, pp.25-36, 1997、を参照)には、トライ構造を
探索するためのもう1つのアプローチが記載されてい
る。彼らのアプローチは、トライのルートから出発して
下方に進むのではなく、中間レベルから出発し、そこに
見出した情報に依存して上方または下方に進む。1つの
レベルはハッシュ法により高速に探索される。トライ内
にあるノードのみが格納される。1つのレベルが探索さ
れて一致がない場合、より短いプレフィクスしか可能性
がないことがわかる。他方、ハッシュ表におけるヒット
は、最長一致プレフィクスが見つかったこと、または、
さらに長いプレフィクスを求めてさらに深く探索すべき
ことのいずれかを意味する。しかし、重要なアイデア
は、必ずしもトライのあらゆるレベルを探索する必要が
ないことである。このアプローチは極めてスケーラブル
であり、bビットのプレフィクスに対してlog(b)
レベルの探索しか必要としない。良好なハッシュ関数
(高速に計算可能であり、さらに、ノード間に一様分布
可能なもの)の選択は、ここでは説明しないが、重要な
問題である。また、この構造は、事前計算を非常に利用
し、効率的な更新をサポートしない。しかし、このアプ
ローチは、Partridge et al.によって設計された特定の
IPルータで使用されている(C. Partridge, P. P. Ca
rvey, E. Burgess, I. Castineyra, T. Clarke, L. Gra
ham, M. Hathaway, P. Herman, A. King, S. Kohalmi,
T. Ma, J. Mcallen, T. Mendez, W. C. Milliken, R. P
ettyjohn, J. Rokosz, J. Seeger, M. Sollins, S. Sto
rch, B. Tober, G. D. Troxel, D. Waitzman, and S. W
interble, "A 50-Gb/s IP router", IEEE/ACM Transact
ions on Networking, vol.6, no.3, pp.237-248, June1
998、を参照)。
【0016】Nilsson and Karlssonは、二分トライのi
個の完全なレベルを次数21の単一のノードで置換する
パトリシアトライの変形を利用している(S. Nilsson a
nd G. Karlsson, "Fast address lookup for Internet
routers", in Proceedings of IEEE Broadband Communi
cations 98, April 1998、を参照)。このアプローチは
非常に密なテーブルを生じるが、これも効率的更新をサ
ポートするようには設計されていない。トライを圧縮す
ることにより探索あたりの平均メモリアクセス数を低減
するもう1つのアプローチは、Tzeng(H. H.-Y. Tzeng,
"Longest prefix search using compresses trees", i
n GLOBE-COM'98, Global Internet MiniConference, p
p.88-93, November 1998、を参照)に記載されている。
【0017】Lampson et al.は、LMP問題を二分探索
の変形と見なすことにより、LMP問題へのかなり異な
るアプローチを提案している(B. Lampson, V. Sriniva
san,and G. Varghese, "IP lookups using multiway an
d multicolumn search", inProceedings IEEE INFOCOM'
98, pp.1248-1256, 1998、を参照)。プレフィクスはI
Pアドレスの範囲を表すため、プレフィクスは、2個の
IPアドレス、すなわち、その範囲の最小値及び最大値
によって表すことができる。p個のプレフィクスに対し
て(高々)2p個の境界アドレスをソートすることによ
って、実質的に、アドレスのバケット(バケット内の各
アドレスは同じ次ホップを有する)を定義する。このア
プローチは極めてメモリ効率が良いが、挿入及び削除は
比較的非効率的なオペレーションである。
【0018】Srinivasan and Vargheseは、周知のプレ
フィクス拡張法を活用している。これは、メモリ必要量
を増大させフォワーディングテーブルの更新を困難にす
る可能性があるという犠牲のもとで、一般的な探索にお
けるメモリアクセス数を低減する(V. Srinivasan and
G. Varghese, "Faster IP lookups using controlledpr
efix expansion", in ACM SIGMETRICS'98, pp.1-10, Ju
ne 1998、を参照)。この論文の主要な寄与は、メモリ
利用率を最小にする探索法を与える動的計画法に基づく
形式的アプローチの記述である。プレフィクス拡張に基
づく同様の方式が、Gupta et al.(P. Gupta, S. Lin,
and N. McKeown, "Routing lookups inhardware at mem
ory access speeds", in Proceedings IEEE INFOCOM'9
8, pp.1240-1247, 1998、を参照)に記載されている。
しかし、彼らのアプローチは、最適性よりも、提案した
ハードウェア実装に焦点を置いている。
【0019】以上説明した従来のアプローチは、主にル
ックアップ速度を最適化するように設計されている。こ
れらのアプローチとは異なり、DPトライ(DP-Trie)に
関するDoeringer et al.の研究は、ルックアップ速度と
ともに、フォワーディングテーブル更新速度も最適化し
ようとしている(W. Doeringer, G. Karjoth, and M.Na
ssehi, "Routing on logest-matching prefixes", IEEE
/ACM Transactions on Networking, vol.4, no.1, pp.8
6-97, February 1996、を参照)。彼らのアプローチは
パトリシアトライの変形であり、探索とともに、効率的
な挿入及び削除のアルゴリズムを定義したものである。
注意すべき点であるが、フォワードテーブルによって定
期的にアクセスされる最新のルーティングテーブルを維
持することによって、ルックアップ速度に重きを置くア
プローチを補完するために、DPトライのようなより動
的な構造を使用することができる。
【0020】
【発明が解決しようとする課題】ますます拡大するアプ
リケーション(特にネットワーキングアプリケーショ
ン)の需要に適応するために、アドレスに関するプレフ
ィクスを格納するための、少なくとも以下の基準を満た
す構造及び方法が要求される。 ・効率的でスケーラブルなメモリ使用; ・その構造は、効率的で単純な挿入、削除、及び探索オ
ペレーションをサポートすること; ・その構造は、パイプライン化ハードウェア実装をサポ
ートすること。
【0021】
【課題を解決するための手段】従来技術における課題を
解決するため、本発明の目的は、アドレスに関するプレ
フィクスを格納する方法を提供することである。本発明
のもう1つの目的は、ネットワーキングシステムにおい
てネットワークアドレスに関するプレフィクスを格納す
る方法を提供することである。本発明のもう1つの目的
は、効率的にアドレスに関するプレフィクスを格納する
ネットワーキングシステムを提供することである。本発
明のさらにもう1つの目的は、ネットワーキングシステ
ムにおけるルータに関連するコンピュータが、アドレス
に関するプレフィクスを効率的に格納することを可能に
するコンピュータプログラム製品を提供することであ
る。
【0022】本発明の目的を実現するため、アドレスの
セットに関するプレフィクスのセットを格納する方法が
提供される。この方法は、二分トライ方式でプレフィク
スを格納する。前記二分トライ内の各ノードは、前記プ
レフィクスのうちの少なくとも1つに関連づけられ、前
記二分トライ内のいずれのノードも空でない。
【0023】好ましくは、第1のプレフィクスは、ルー
トノードを割り当て、該ルートノードに該プレフィクス
を置くことによって、空トライに挿入される。
【0024】好ましくは、第1のプレフィクス以外のプ
レフィクス(kビットからなり、b 0,b1,...,bk-1
の表示を有し、kは0より大きい整数である)は、以下
のプロセスを用いて挿入される。 ・前記トライのルートノードをカレントノードに指定
し、bn=b0と置き、前記プレフィクスをカレントプレ
フィクスとして指定するステップ; ・カレントノードに既にカレントプレフィクスが格納さ
れている場合には挿入を終了するステップ; ・bn=0の場合にカレントノードの左の子を検査し、
n=1の場合にカレントノードの右の子を検査するス
テップ; ・新たなノードを割り当て、左の子及び右の子のいずれ
かが存在しない場合にカレントプレフィクスを入れ、こ
の新たなノードをカレントノードに指定するステップ; ・n=n+1の代入を行うステップ; ・n=kになるまで繰り返すステップ;及び ・カレントノードに以前に格納されたプレフィクスをカ
レントプレフィクスで置き換え、この以前に格納された
プレフィクスをカレントプレフィクスに指定し、上記ス
テップを繰り返すステップ。
【0025】好ましくは、トライは、アドレス(kビッ
トからなり、b0,b1,...,bk-1の表示を有し、kは
0より大きい整数である)のLMPを求めて、以下のプ
ロセスを用いて探索される。 ・ルートノードが一致プレフィクスを有する場合、ルー
トノードをカレントノード及びLMPノードに指定し、
n=b0と置くステップ; ・カレントノードをLMPノードに指定し、カレントノ
ードが一致プレフィクスを有しかつ当該一致プレフィク
スがLMPノードより長い場合、このLMPノードを下
方に移動するステップ; ・bn=0の場合にカレントノードの左の子をカレント
ノードに指定し、bn=1の場合にカレントノードの右
の子をカレントノードに指定するステップ; ・n=n+1とするステップ; ・カレントノードがトライの最低レベルになるまで上記
ステップを繰り返すステップ;及び ・最低のトライに対応するプレフィクスが一致する場合
に該プレフィクスをLMPとして選択するステップ。
【0026】好ましくは、アドレスに対応するプレフィ
クスは、以下のプロセスを用いて前記トライにおいて削
除される。 ・前記プレフィクスに対応する一致ノードを探索するス
テップ; ・前記一致ノードが葉ノードである場合に前記一致ノー
ドを削除してプロセスを終了するステップ; ・前記一致ノードが葉ノードでない場合、前記一致ノー
ドを削除して前記一致ノードの一方の子を上方に移動
し、当該一方の子を削除するステップ;及び ・葉ノードが削除されるまで上記ステップを繰り返すス
テップ。
【0027】好ましくは、最悪の場合の探索における深
さを最小にするために、トライは平衡化される。
【0028】本発明のもう1つの特徴によれば、アドレ
スが格納された単純トライを、すべてのノードがアドレ
スを表す深さ最適サブトライに変換する方法が提供され
る。この方法は以下のステップを有する。 ・前記単純トライで占有ノードを有する最低レベルを見
出し、該最低レベルをi(iは整数)とするステップ; ・i−1に対応するレベルにおける各ノードを検査する
ステップ; ・レベルi−1に空ノードがある場合、該空ノードの深
いほうのサブトライのボトムからプレフィクスを上方に
移動するステップ;及び ・ルートノードに到達するまで上記の併合を続けるステ
ップ。
【0029】本発明のさらにもう1つの特徴によれば、
アドレスが格納された単純トライ(該単純トライ内の各
ノードを訪れる確率は既知)を、探索あたりの期待ステ
ップ数が最小である探索最適トライに変換する方法が提
供される。この方法は、動的計画法を使用し、以下のス
テップを有する。 ・ボトムアッププロセスを用いて各ノードαに対して配
列Aαを計算するステップ。ただし、αをルートとする
サブトライからi個のノードが昇格すると仮定してAα
[i]は最小期待探索ステップ数を保持し、 Aα[i]=f(Aβ,Aγ,Pβ,Pγ) であり、β及びγはαの左及び右の子であり、Pβ及び
Pγはαが既に訪れられたと仮定した場合に探索中にβ
及びγが訪れられる確率を表す; ・各Aα[i]に対応する最適サブトライを生成するた
めにβ及びγから昇格させなければならないプレフィク
ス数を各Aα[i]に関連づけるステップ; ・ルートから再帰的にトップダウンに、子ノードに対し
てプレフィクスを昇格させる要求を発行するように操作
するステップ。ルートノードは、プレフィクスを保持し
ていない場合に1個のプレフィクスを要求し、プレフィ
クスを保持している場合に0個のプレフィクスを要求
し、該要求は、配列A及び該配列Aに関連づけられたプ
レフィクス数に基づく。
【0030】好ましくは、格納されたプレフィクスはイ
ンターネットアドレスに関連し、前記トライはIPルー
タにある。
【0031】本発明のさらにもう1つの特徴によれば、
複数のルータを有するネットワーキングシステムが提供
される。各ルータはアドレス記憶領域を有し、各アドレ
ス記憶領域には、前記ネットワーキングシステムに対応
するネットワークアドレスに関するプレフィクスのセッ
トが二分トライの形式で格納される。前記二分トライは
複数のノードを有し、各ノードは前記ネットワークアド
レスのうちの少なくとも1つのプレフィクスに関連づけ
られ、前記二分トライ内のいずれのノードも空でない。
【0032】好ましくは、最悪の場合の探索における深
さを最小にするために、二分トライは平衡化される。
【0033】本発明のさらにもう1つの特徴によれば、
コンピュータ読み取り可能媒体を含むコンピュータプロ
グラム製品が提供される。このプログラムは、ネットワ
ーキングシステムに関連する1つ以上のコンピュータ
が、該ネットワーキングシステム内の各ルータに二分ト
ライ方式でアドレスのセットを格納することを可能にす
る。前記二分トライ内の各ノードには、前記アドレスの
うちの少なくとも1つのプレフィクスが関連づけられ、
前記二分トライ内のいずれのノードも空でない。
【0034】好ましくは、前記コンピュータプログラム
製品において、最悪の場合の探索における深さを最小に
するために、二分トライは平衡化される。
【0035】本発明のさらにもう1つの特徴によれば、
二分トライ方式でアドレスのセットを格納するシステム
が提供される。前記二分トライ内の各ノードには、前記
アドレスのうちの少なくとも1つのプレフィクスが関連
づけられる。前記システムはパイプラインを有し、該パ
イプラインは複数の段を有し、該複数の段のうちの各段
は、前記二分トライ内の1つのレベルに対応し、該段は
本質的に、メモリコンポーネントと、ラッチのバンク
と、単純なロジックとからなり、前記ラッチのバンク
は、1個のプレフィクスと、1個のデスティネーション
IPアドレスと、適当なノードを指す1個のポインタ
と、対応する段のタスクを指示する命令と、該命令の状
態に関する情報を含むステートとを格納する。
【0036】好ましくは、前記パイプラインの各段は、
入力及び出力の情報を保持するラッチと、1つのレベル
におけるノードに対応する情報を含むメモリと、未使用
のノードアドレスへのポインタを含むスタックと、コン
パレータとを有する。
【0037】
【発明の実施の形態】設計目標に関しては、本発明のア
プローチはDoeringer et al.のDPトライと多くの共通
点を有するが、以下のようないくつかの注目すべき相違
点がある。 ・探索、挿入、及び削除のアルゴリズムは、DPトライ
のものよりもかなり単純である。 ・本発明におけるノードは、DPトライノードに比べて
比較的単純である。各DPトライノードは、他のノード
への3個のポインタ、2個のプレフィクス、及び、0か
らIPアドレス内のビット数までの範囲の整数を表すこ
とができなければならない1個のインデックス値とを必
要とする。本発明におけるノードは、1個のプレフィク
スと、他のノードへの2個のポインタを含む。 ・DPトライは一般に、プレフィクス数より多くのノー
ドを有する。これらの「オーバーヘッド」ノードは、テ
ーブルを探索するのに必要な情報を格納する。本発明に
はオーバーヘッドノードはない。
【0038】DPトライの構造は、テーブル内のプレフ
ィクスのみに依存し、プレフィクスの挿入及び削除の順
序には依存しない。本発明で使用されるトライの構造は
一般に、挿入及び削除の順序に依存する。
【0039】直観的には、本発明は、トライ法の変形で
ある。本発明は、すべてのノードが1個のプレフィクス
に関連づけられるまで、トライの上方に向かってプレフ
ィクスを移動することによって、テーブルエントリに関
連づけられていないノードを消去する。このようなアプ
ローチは、好ましい効果を有する。第1に、このような
アプローチは、メモリ使用量を低減する。第2に、この
ようなアプローチは、トライをより「浅く」することに
より、探索あたりのメモリルックアップを少なくする可
能性がある。
【0040】例として、図1に、深さ最適bonsai(セク
ションIVC.1で詳述する)と、mae-eastフォワーデ
ィングテーブル(セクションIVDで詳述する)に対す
る、トライプレフィクス分布、トライノード分布、及び
プレフィクス/ノード分布を示す。トライのレベルは0
(ルート)から32(プレフィクスの最大長)までラベ
ルづけられている。本発明は、必要なノード数を大幅に
低減し、さらに、プレフィクスはトライの上方に移動す
ることにより、探索あたりのステップ数が低減される。
【0041】[IVA.bonsai]本発明の好ましい実施
例はbonsaiと名づけられる。bonsaiは、インターネット
アドレスに関するプレフィクスを格納する。bonsaiは二
分トライであり、各ノードは対応するプレフィクスを有
する。挿入、探索、及び削除のオペレーションについ
て、いくつかの実装の問題とともに、以下で詳細に説明
する。bonsaiは、ここで説明するいくつかの不変表明を
有する。以下は、コレラの不変表明が挿入及び削除のオ
ペレーションのもとで成り立つことを示す証明である。
【0042】補助定理1(bonsai不変表明) bonsaiは、以下の性質を有する。 1.bonsaiは、ルーティングテーブルエントリを表すノ
ードのみを含むという意味で、「パックされた」トライ
である; 2.IPアドレスに一致する可能性のあるすべてのプレ
フィクスは、一般的なトライ方式でbonsaiを降下するこ
とによって、すなわち、IPアドレスの第iビットを用
いてbonsaiのレベルiでとられる方向を選択することに
よって、求められる。
【0043】[IVA.1 挿入]第1のプレフィクス
が空トライに挿入されると、ルートノードが割り当てら
れ、そのノードのプレフィクスポインタが適当に設定さ
れる。その後の挿入は、最初の空き位置が見つかるまで
通常の方法でトライ構造を降下して行われる。2進表示
0,b1,...,bk-1を有するkビットのプレフィクス
が挿入される場合、アルゴリズムはルートノードから出
発する。b0=0の場合、ルートノードの左の子が検査
される。そうでない場合、右の子が検査される。左
(右)の子が存在しない場合、1つのノードがその位置
に割り当てられ、プレフィクスがそこに置かれる。左
(右)の子が既に存在する場合、ビットb1が子ノード
のコンテクストで検査される。1個のプレフィクスの1
個のコピーのみがトライ内で許される。複数のコピーが
挿入される場合、それはトライを降下中に発見され、現
在の挿入は、トライを変更することなく停止される。図
2に、プレフィクスのシーケンスが挿入された後のbons
aiの状態を示す。
【0044】しかし、すべてのプレフィクスがトライを
降下して葉ノードとなるわけではない。例えば、図2に
示すトライにプレフィクス01を挿入することを考え
る。プレフィクス10011を有するノードの0−子
(0-child)、及び、プレフィクス01100を有する
ノードの1−子(1-child)をたどった後、トライをさ
らに降下する方法はない。プレフィクスxができる限り
トライを降下し、既にプレフィクスyを有するノードを
見つけた場合、プレフィクスyは追い出され、あたかも
yが挿入されていたかのように、トライをさらに降下す
ることを可能にする。なお、挿入は、多くのプレフィク
スを追い出す可能性があるが、この手続きは、最悪の場
合でも、O(d)回のオペレーション(ただし、dはト
ライの深さ)しか必要としない。例えば、図3に、01
プレフィクスが挿入された後のトライ例の状態を示す。
01プレフィクスは0100プレフィクスを追い出し、
0100プレフィクスはトライを2レベル降下し、そこ
で葉ノードを生成する。
【0045】[IVA.2 探索]IPアドレスが与え
られた場合にbonsaiを探索することはかなり直観的であ
る。挿入について説明した上記のセクションで述べたよ
うに、トライを通常のように降下する。降下の各ステッ
プで、IPアドレスが、格納されているプレフィクスと
一致するかどうかの比較を行う。一致する場合、かつ、
そのプレフィクスが前に発見した一致よりも長い場合、
トライのさらに低いレベルが探索される間はそのノード
へのポインタが運ばれる。トライを降下する間に1つの
IPアドレスがいくつかのプレフィクスに一致する可能
性もあるが、すべての可能な一致はその経路にある。
【0046】このアプローチの1つの結果は、トライの
各レベルで、格納されているプレフィクスとの比較が必
要となることである。このような比較は、純粋なトライ
方式では必要でないものであり、一定の割合のコストが
加わる。
【0047】図2のbonsaiで、IPアドレス01000
000...のLMPを探索することを考える。ルート
ノードでは、プレフィクス10011との一致はない。
0−子を訪れるが、プレフィクス01100との一致は
ない。そのノードの1−子を訪れると、プレフィクス0
100との一致があるため、このプレフィクスが記憶さ
れる。最後に、そのノードの0−子を訪れると、今度も
プレフィクス010との一致が見つかる。しかし、この
新しい一致は、前の一致よりも短い。さらにトライを降
下することができないため、0100がLMPでなけれ
ばならない。
【0048】[IVA.3 削除]挿入及び探索の場合
と同様に、削除オペレーションでも、プレフィクスとの
一致を探索してトライを降下する。削除すべきプレフィ
クスが葉ノードにある場合、そのプレフィクスは削除さ
れ、そのノードはトライから除去され、その親ノードの
子ポインタのうちの1つの更新が必要となる。しかし、
削除すべきプレフィクスが葉ではないノードに対応する
場合、トライ構造を維持するように注意しなければなら
ない。重要な点は、そのノードのサブトライ内の任意の
プレフィクスが、削除されたプレフィクスを置き換える
可能性があることである。置換を選択するには多くの方
法があるが、本発明では、容易にパイプライン化可能な
ものが選択される。最終的に葉ノードに到達するまで、
子ノードに対応するプレフィクスが上方に移動し、その
子のうちの1つのプレフィクスと置換される。その後、
その葉ノード(そのプレフィクスは親ノードに移動し
た)を削除することができる。このような場合、プレフ
ィクスがトライを上方に「パーコレート(浸透)する(p
ercolate)」とみなすことができる。なお、削除される
のは常に葉ノードである。
【0049】1個のノードに2個の子がある場合、左ま
たは右のいずれの子のプレフィクスを上方にパーコレー
トさせるかを選択する可能性がある。(ノードが1個し
か子を有しない場合、選択の余地はない。)選択の余地
がある場合、静的アプローチ(例えば、0−子を優先す
る)、または、動的なアプローチ(例えば、ランダム選
択)を使用する可能性がある。
【0050】例えば、図3からプレフィクス01100
を削除することを考える。このプロセス及び結果として
得られるトライを図4に示す。このプロセスは、ルート
ノードから出発するが、プレフィクス10011との一
致はない。次に、ルートノードの0−子を訪れると、削
除すべき一致プレフィクスが見つかる。0−子または1
−子のいずれかのプレフィクスをパーコレートすること
ができる。1−子を優先すると仮定すると、01が上方
にパーコレートする。次に、さらに0−子または1−子
のいずれかのプレフィクスをパーコレートすることがで
きる。今度は0−子を優先すると仮定すると、010が
上方にパーコレートする。このノードは1個の子しか有
しないため、0100が上方にパーコレートする。葉ノ
ードに到達したので、この葉ノードが削除される。
【0051】[IV.B 最適bonsaiトライ]bonsaiオ
ペレーションの1つの結果は、トライの構造が、挿入及
び削除のオペレーションの順序に(一般的には)依存す
ることである。例えば、図5のbonsaiは、図2のbonsai
と同じプレフィクスを含む。しかし、図5のbonsaiのほ
うが、プレフィクスの平均深さが小さい。従って、何ら
かの性能メトリックを最適化するようにトライを操作す
ることが可能である。例えば、最悪の場合の探索の深さ
を最小にするように、トライをできるだけ平衡化するこ
とが好ましいことがある。あるいは、平均の場合の探索
の深さを最小にするのが好ましい場合もある。
【0052】注意すべき点であるが、最悪の場合の探索
を最小にすることと平均の場合の探索を最小にすること
とは衝突する基準である。例えば、図6に示す2個の小
さいbonsai構造を考える。すべてのIPアドレスに対し
て一様な確率を仮定すると、トライ(a)を探索するた
めの期待比較数は2となる。すべての探索は正確に2回
の比較を必要とするからである。トライ(b)の場合、
期待比較数は(50%)(1)+(25%)(2)+
(25%)(3)=1.75となる。
【0053】一様分布を仮定すると、不平衡トライのほ
うが、平衡トライよりも、平均の場合の探索性能は良好
である。もちろん、一様分布の改定は、実際のルータで
は妥当でない。しかし、確率分布が既知であるか、ある
いは、推定可能(例えば、探索中にノードがアクセスさ
れるごとに記録することによって)である場合、平均の
場合の挙動を最適化するようにトライを調節することが
可能である。最適bonsaiの計算は、それぞれの挿入また
は削除のオペレーションの後には時間がかかりすぎるか
もしれないが、最適化基準をより良く満たすように定期
的にbonsaiを再構成することは合理的である。
【0054】以下のセクションでは、2種類の最適bons
aiを計算する方法の好ましい実施例について説明する。
第1の実施例は、全体の深さが最小のbonsaiトライを計
算する欲張り法(greedy algorithm)である。第2の実施
例は、デスティネーションIPアドレスの任意の分布に
基づいて、最小の期待探索ステップ数のbonsaiを導出す
る動的計画法アプローチである。
【0055】まず、最適化方法に関連する用語について
説明する。空ノードとは、ルーティングテーブルエント
リを表さないトライノードである。占有ノードは、エン
トリを表す。サブトライは、いくつかのレベルのノード
からなり、レベルiのノードは、そのサブトライのルー
トからiホップにある。サブトライのルートはレベル0
の唯一のノードである。ノードを表すのにギリシア文字
を用いる。ノードαのレベルをdαで表す。このレベル
に対するルートノードは文脈から明らかなはずである。
あるサブトライのルートノードがαで表される場合、こ
れは、αをルートとするサブトライ全体を表すのにも使
用することがある。この場合も、その意味は文脈から明
らかなはずである。αをルートとする任意のサブトライ
に対して、wαiで、レベルi以下のプレフィクスの総
数を表す。wαiを、αをルートとするサブトライのレ
ベルiの重みという。例えば、αが図2の完全トライの
ルートノードである場合、wα0=8、wα1=7、wα
2=5、wα3=2、及び、すべてのi≧4に対して、w
αi=0である。βを、プレフィクス0100のノード
とすると、wβ0=3、wβ1=2、及び、すべてのi≧
2に対して、wβi=0である。サブトライが文脈から
明らかなとき、サブトライを表すのにwiも用いられ
る。最後に、サブトライの深さとは、最も深いノードの
レベルである。
【0056】[IVB.1 深さ最適bonsai]ここでは
欲張り法について説明する。このアルゴリズムは、単純
なトライから出発して、ルーティングテーブルエントリ
を表さないすべてのノードを除去することによってその
トライを圧縮し、深さが最小で平均ノード(プレフィク
ス)レベルが最小のbonsaiを生成する。この好ましい実
施例を、深さ最適bonsaiと呼ぶ。深さ最適サブトライと
は、同じプレフィクスのセットを有する他のいかなるサ
ブトライも、任意のiに対して、より小さいwiを有し
ないようなサブトライである。
【0057】このアルゴリズムは、ボトムアップで動作
する。空ノード及び占有ノードの両方を含む、ルーティ
ングテーブルの基本トライ構造から、深さ最適サブトラ
イへと再帰的に併合される。占有ノードがあるトライの
最低レベルが見出される。これをレベルiとする。(こ
のレベルに見出されるすべてのノードは必ず占有ノード
である。)レベルi−1におけるトライの各ノードを検
査する。(トライ内の任意のレベルにノードが存在する
ためには、そのノードは占有ノードであるか、または、
少なくとも1つの占有子孫を有していなければならな
い。)レベルi−1において、ノードが占有ノードであ
る場合、サブトライの併合は不可能であるため、何のア
クションもとられない。そのノードが空である場合、こ
れは、そのサブトライのうちの1つからプレフィクスを
上方に移動(昇格)させ、レベルi−1をルートとする
深さ最適サブトライを得ることができることを意味す
る。図7に示すように、任意の(占有)ノードにおい
て、深いほうのサブトライの最低レベルから昇格すべき
ものが選択される。いずれのサブトライも同じ深さであ
る場合、いずれかのサブトライの最低レベルから1個の
ノードが任意に選択される。この併合プロセスは、ルー
トノードに到達するまで、トライのレベルを上って続け
られる。
【0058】補助定理2(深さ最適サブトライ不変表
明) 上記のアルゴリズムを使用すると、それぞれの深さ最適
サブトライは以下の性質を有する。 1.サブトライ内のすべてのプレフィクスは、トライ内
のサブトライルートノードの位置によって表される共通
のサブストリングを有し、そのサブストリングを共有す
るすべてのプレフィクスはそのサブトライ内にある。 2.サブトライは、レベル重みwiを小さくすることが
できるようにプレフィクスを再配置することが不可能で
あるという意味で、深さ最適である。
【0059】証明:レベルi、すなわち、もとのトライ
内の最も深い(占有)ノードのレベルから出発して、ト
ライのレベルに関する帰納法を用いる。
【0060】レベルiのノードαは占有ノードでなけれ
ばならず、子を有することはできない。この場合、補題
2の不変表明が維持されることは明らかである。次に、
レベルjをルートとするすべてのサブトライが不変表明
を維持すると仮定すると、レベルj−1をルートとする
すべてのサブトライが不変表明を維持することが示され
る。レベルj−1のノードαは、占有ノードであるか空
ノードであるかのいずれかである。
【0061】αが占有ノードである場合、任意のiに対
してwiを小さくするような、αをルートとするサブト
ライの構造に対する変形はない。これは背理法により証
明される。あるwiを改善するようなサブトライの再編
成が存在すると仮定する。この再編成は、αに対応する
プレフィクスをより低いレベルに移動することは含み得
ない。そのプレフィクスは既に可能な最低レベルにある
ので、これは第1のサブトライ不変表明に違反すること
になるからである。従って、この再編成は、αに対応す
るプレフィクスをそのままにして実行されなければなら
ない。あるサブトライから別のサブトライにプレフィク
スを移動することは不可能となる。サブトライのルート
ノードは、ネストすることができない相異なるプレフィ
クスを表すからである。これは、与えられた現在のプレ
フィクスに対して、左のサブトライまたは右のサブトラ
イのいずれかを改善することができることを意味する
が、これは、サブトライの併合が深さ最適であるという
仮定に反する。
【0062】αが空である場合、アルゴリズムは、さら
に深いサブトライの最低レベルから、αの位置をとるよ
うに、プレフィクスδを選択する。βを、αの左の深さ
最適サブトライのルートとし、γを、αの右の深さ最適
サブトライのルートとする。一般性を失うことなく、サ
ブトライβがγより深いと仮定する。δを昇格させるこ
とにより、結果として得られる、αをルートとするサブ
トライでは、wα0=1、及び、wβi-1が0より大きい
ようなすべてのiに対してwαi=wβi-1+wγi-1
1である。実際、δの昇格の結果、左サブトライでは、
レベル重みwβiが、それぞれの0でない重みに対して
1だけ低くなる。結果として得られるサブトライが深さ
最適であることを証明するため、δの代わりに他のノー
ドεを昇格させることにより、優位な(さらに深さの小
さい)サブトライを得ることはできないことを示さなけ
ればならない。εはβをルートとするサブトライ内にあ
ると仮定する。εの昇格が優位であるためには、結果と
して得られる左サブトライが、あるレベルjに対してw
βi−1より小さいレベル重みを有していなければなら
ない。しかし、プレフィクスの挿入はレベル重みに高々
1しか加えない。従って、εのない左サブトライから出
発してεを挿入した場合、レベルjの重みがwβiより
小さい、新しい(完全な)左サブトライが生成される。
これは、左サブトライに対する深さ最適の仮定に反す
る。こうして、最低レベルにあるプレフィクスを昇格さ
せること以外には、いかなるノードもサブトライを改善
することはない。同様の議論が、εが右サブトライから
のものであると仮定した場合にも成り立つ。
【0063】補題2の結果は、このアルゴリズムが、上
記の意味で深さ最適なbonsaiトライを生成することであ
る。また、bonsaiトライ内のレベル数が最小になるこ
と、及び、ノードの平均深さが最小になることも示すこ
とができる。
【0064】[IVB.2 探索最適bonsai]このセク
ションでは、探索あたりの期待ステップ数が最小のbons
aiトライを計算する動的計画法の実施例について説明す
る。このアプローチは、デスティネーションIPアドレ
スの任意の分布を仮定する。構造は、任意の探索で各ノ
ードを訪れる確率が既知であるように拡張された単純ト
ライとして出発する。(例えば、ルートノードはあらゆ
る探索で訪れなければならないため、その確率は1に設
定される。)実際には、この確率分布は時間とともに変
化する可能性がある。しかし、分布は、単純トライの各
探索で訪れられるノードを記録することによって、任意
の所望の時間周期で容易に推定することができる。
【0065】動的計画法は、問題が最適な部分構造及び
重なり合う部分問題の両方を示すために、ここでは有用
である(T. H. Cormen, C. E. Leiserson, and R. L. R
ivest, "Introduction to Algorithms", MIT Press, 19
90、を参照)。この好ましい実施例では、単純トライの
低いレベルから出発し、適当にプレフィクスを昇格させ
ることによって上方に進む。しかし、任意のサブトライ
から昇格させなければならないプレフィクスの数は直ち
にはわからない。従って、このアプローチは2段階を使
用する。
【0066】第1段階では、単純トライ内の各ノードα
に対して、Aαを計算する。i個のプレフィクスがこの
サブトライから昇格すると仮定すると、Aα[i]は、
このサブトライに対する最適(最小)の期待探索ステッ
プ数を保持することになる。これらの配列はどのくらい
大きくする必要があるであろうか。ノードは、その直接
の祖先にプレフィクスを昇格させることしかできないた
め、ノードαは、dα個より多くのノードの昇格を考慮
する必要はない。従って、Aα[i]の値は0≦i≦d
αの範囲にある。注意すべき点であるが、アレイ要素に
対して、実現不可能な昇格の数を表す特殊な値が存在し
なければならない。例えば、最初に3個のプレフィクス
しか含まないサブトライから4個のプレフィクスを昇格
させることは不可能である。これらのアレイの計算中に
(これはボトムアッププロセスである)、最適なサブト
ライを生成するために左及び右の両方のサブトライから
昇格させなければならないプレフィクスの数も、保持し
なければならない。アレイが計算された後、最適構造を
発見して対応するbonsaiを生成するために、第2段階が
トップダウンで実行される。ルートノード(これは、い
かなるプレフィクスも昇格させる必要がない)から出発
して、各ノードは、いくつかのプレフィクスを昇格させ
る要求をその左及び右の子に対して発行し、その数に基
づいて、最適なサブトライを生成する。
【0067】A配列の計算である第1段階を考える。図
8に、基本的な状況を示す。サブトライのルートノード
をα、左の子をβ、右の子をγで表す。Aαを計算する
ためには、Aβ及びAγの情報とともに、それぞれの子
が訪れられる確率(ルートノードが既に訪れられたと仮
定して)が必要である。それらの確率をpβ及びpγで
表す。(なお、左及び右の両方の子が存在する場合、p
β+pγは1に等しくなる。)
【0068】まず、ノードαが既にプレフィクスを含む
場合を考える。Aα[0]に対応するサブトライ構造は
直ちにわかる。これは、左または右のいずれのサブトラ
イからもノードが昇格しない場合である。Aα[0]=
1+pβAβ[0]+pγAγ[0]となる。Aα
[1]の計算では、考慮すべき2つの可能性がある。す
なわち、左から1及び右から0の昇格、または、左から
0及び右から1の昇格の場合である。最良の選択は、p
βAβ[1]+pγAγ[0]またはpβAβ[0]+
pγAγ[1]のいずれの値のほうが小さいかに依存す
る。この手続きは、Aαの必要なすべての値が計算され
るまで続けられる。一般に、0≦i≦dαの範囲内で、
【数1】 である。この場合も、最小のAα[i]を生成したj及
びkの値も保持しなければならない。
【0069】αが空の場合、プレフィクスをαに昇格さ
せる必要があるとともに、プレフィクスをαより上に昇
格させる必要もある。αから0個のプレフィクスを昇格
させることでさえ、2つのサブトライのうちの一方から
1個のプレフィクスの昇格を必要とする。最良の選択
は、pβAβ[1]+pγAγ[0]またはpβAβ
[0]+pγAγ[1]のいずれの値のほうが小さいか
に依存する。一般に、0≦i≦dαの範囲内で、
【数2】 である。
【0070】[IV.C 実験結果及び解析]実験で
は、IPMA(Internet Performance Measurement and
Analysis)のウェブサイトで入手可能ないくつかのイン
ターネットフォワーディングテーブル(http://nic.mer
it.edu/ipma/のIPMA(Internet Performance Measur
ement and Analysis Project)を参照)を使用する。こ
れらのフォワーディングテーブルは、毎日更新されてお
り、IPフォワーディング実験の標準になっている。こ
こで使用するデータは、1998年8月17日からのも
のである。IPデータグラムデスティネーションの現実
的な分布をシミュレートするために、fix-westからの実
際のデータグラムデスティネーションIPアドレスのト
レースを使用する。このトレースは、1997年2月2
2に記録された、2,146,573個のアドレス(5
分間分)を含む。このトレースは、NLANR(Nationa
l Laboratoryfor Applied Network Research)で入手可
能である(http://www.nlanr.net/NA/のNLANR(Nat
ional Laboratory for Applied Network Research)を参
照)。なお、このトレースは、IPMAページで入手可
能なフォワーディングテーブルを有するルータから集め
られたものではない。
【0071】bonsaiの次の4つのメトリックを考える。 ・深さ; ・ノード/プレフィクスの平均レベル; ・デスティネーションIPアドレスの一様分布を仮定し
た場合の、探索あたりの期待ステップ(すなわち比較)
数; ・fix-westトレースによって規定されるデスティネーシ
ョンIPアドレスの分布を仮定した場合の、探索あたり
の期待ステップ数。
【0072】表2に、5個の地点のルーティングテーブ
ルのいくつかの記述を与える。各サイトごとに、bonsai
内のノード数に等しい、テーブル内のプレフィクスの数
がリストされている。また、与えられたフォワーディン
グテーブルに関して、fix-westのヒット率及びミス率も
リストされている。上述したように、トレースはこれら
のフォワーディングテーブルに関連しておらず、かなり
の割合のミスの確率が生じている。
【0073】表2は、1998年8月17日の、5つの
地点におけるルーティングテーブルのメトリックであ
る。1997年2月22日正午ごろのfix-westからのデ
スティネーションIPアドレスの5分間のヒット率及び
ミス率を示す。トレースは2,146,573個のIP
データグラムを含む。
【表2】
【0074】表3は、プレフィクスがランダム順序で挿
入された場合の100個のbonsaiの情報を含む。各メト
リックごとに、最小値、平均値、及び最大値を示す。す
べてのルータでかなり一貫性のある挙動が注目される。
paixの数が一般にやや小さいが、これはpaixが保持して
いるプレフィクスが少ないことによる。bonsaiは一般
に、深さは約24であるが、ノードの平均レベルは、大
きいテーブルでは約18である。また、探索あたりの平
均比較数は、fix-westトレースの場合よりも一様分布の
場合のほうがずっと小さい。この理由は、一様分布は、
大きい割合のデスティネーションアドレスがbonsaiの非
常に疎な領域にあることを仮定しており、そこでは可能
な一致がほとんどないためである。この現象については
このセクションで後で詳細に説明する。
【0075】表3は、各地点の100個のbonsaiの統計
であり、プレフィクスはランダム順序で挿入された。
【表3】
【0076】深さ最適bonsaiに対するメトリックを表4
にリストする。すべての場合で、深さ最適bonsaiは、1
00個のランダムなbonsaiのうちの最良のものよりも浅
い。また、深さ最適bonsaiは、最小の平均ノードレベル
を有する。興味深い点であるが、深さ最適bonsaiは、探
索あたりの比較数に関しては平均ランダムbonsaiより悪
い。直観的には、これが起こる理由は、トライの深いノ
ードは、深さを加える可能性があるが、トライの情報の
ノードよりも探索中に訪れられる可能性が低いためであ
る。
【0077】表4は、各地点の深さ最適bonsaiの統計で
ある。
【表4】
【0078】表5は、探索最適bonsaiのデータを含む。
この最適化では、深さ及び平均ノードレベルはランダム
bonsaiの場合より悪いが、探索あたりの比較数に関して
は実質的な利益がある。この場合も、これは、深さと探
索時間の間のトレードオフを示す。
【0079】表5は、各地点の探索最適bonsai(トレー
スの分布に対する)の統計である。
【表5】
【0080】相異なるbonsaiアプローチの間の直接の比
較を容易にするため、深さ(図9)、平均ノードレベル
(図10)、及び、fix-westトレースに対する探索あた
りの平均比較数(図11)の棒グラフを添付している。
注意すべき点であるが、深さ最適bonsaiは、深さ及び平
均ノードレベルの両方に関して、他のアプローチに比べ
て注意程度であるが一貫性のある効果を有する。ランダ
ム挿入と比較して深さの改善は4%〜11%の範囲であ
るが、平均ノードレベルの改善は1%〜2%の範囲であ
る。また、注意すべき点であるが、探索最適bonsaiは、
これらのメトリックに関しては、平均ランダムbonsaiよ
り悪い。
【0081】しかし、探索あたり平均比較数に関するデ
ータは、探索最適bonsaiの利点を示している。平均ラン
ダムbonsaiと比較しての改善は9%〜13%の範囲であ
る。また、注意すべき点であるが、深さ最適bonsaiは、
このメトリックに関しては、mae-westフォワーディング
テーブルの場合のランダムbonsaiよりはわずかに性能が
良いものの、比較的性能が悪い。
【0082】一般に、この結果は、プレフィクスのラン
ダム挿入は、考慮されるすべてのメトリックに関して、
適当な性能を提供することを示唆している。
【0083】これらの実験結果の解釈に関していくつか
の注意事項がある。第1に、トレースは、検査されたル
ータからとったものではなく、完全に別の地点からのも
のである。従って、このトレースが現実的な分布を提供
する程度については議論の余地がある。しかし、性能に
対する効果を考えるときに、ミスは必ずしも問題とはな
らない。ミスでさえも完全bonsai探索を必要とするから
である。すなわち、ミスは必ずしも性能と無関係ではな
い。
【0084】もう1つの問題は、性能に影響を及ぼす可
能性のあるIPアドレスの割当てに関するいくつかの特
殊事項がある。例えば、 ・フォワーディングテーブルは、クラスDのIPアドレ
ス(これは「1110」で始まり、マルチキャストに使
用される)や、クラスEのIPアドレス(これは「11
110」で始まり、将来の使用のために予約されてい
る)に対するエントリを有しない。 ・fix-westトレースはクラスEアドレスを有しないが、
25,719個(約1.2%)のデスティネーションア
ドレスはクラスDである。 ・一様分布は、クラスD及びクラスEのアドレスが、そ
れぞれ約6.3%及び3.1%の頻度で可能であること
を仮定する。bonsaiは、クラスDやクラスEのアドレス
に対するプレフィクスを含まないため、「1110」及
び「11110」のロケーション以下のノードを有する
ことはない。実際、クラスDまたはEのアドレスのみ
が、「111」で始まることができる。従って、クラス
D及びEの探索は平均よりも高速である(bonsaiの高々
3レベルが探索されることになる)。同様の効果は、ア
ドレス空間の他の領域にも見られる。いずれのフォワー
ディングテーブルも、「111」や「010」で始まる
プレフィクスを含まず、各テーブルは、「011」で始
まるプレフィクスを1個しか含まない。(「011」で
始まるエントリはすべての場合に127/255であ
り、これはループバックテストのために予約されてい
る。)
【0085】プレフィクス及びIPデスティネーション
アドレス分布の重要性に照らして、実際のフォワーディ
ングテーブル及び実際のトレースを調べることは価値が
ある。図12に、プレフィクスの第1バイトのドット1
0進表記法(dotted decimalnotation)に基づく、mae-ea
stフォワーディングテーブルのプレフィクスの分布を示
す。線形スケール及び対数スケールの両方を示す。この
データは、クラスCプレフィクスが他に比べてずっと一
般的であることを示している。クラスAアドレスはほと
んどないが、クラスBアドレスはある範囲内でかなり均
一に分布している。この場合も、これらの分布は、トラ
イ方式にとって重要な結果を有する。例えば、bonsaiの
左側は右側に比べて非常に疎に埋められることになる。
また、同様の議論は、トライの下方でも成り立つ。
【0086】図13に、fix-westトレースのデスティネ
ーションIPアドレスの第1バイトの分布を示す。この
データも、一様分布はトラフィックの良好なモデルでは
ないことを示している。クラスB及びクラスCのトラフ
ィックはクラスAよりもずっと大きい。実際、2つのバ
イト(10進表記で128及び192)は、すべてのデ
スティネーションアドレスの3分の1より多くを占め
る。
【0087】[IVD.パイプライン実装]ここまでの
議論は暗黙のうちにソフトウェア実装に集中していた
が、bonsaiの好ましい実施例は、専用ハードウェア実装
にも向いている。スループットは、メモリアクセスあた
り1探索程度にまで高くすることができる。挿入及び削
除は、パイプラインの2クロックサイクル以下のストー
ルで実行可能である。このセクションでは、bonsaiのパ
イプライン実装の好ましい実施例について説明する。注
意すべき点であるが、パイプライン化方法は、bonsaiに
は限定されない。多くのLMP探索アプローチも同様に
してパイプライン化することができる。Gupta etal.に
は1つの例が記載されている(しかしこれらのアプロー
チの多くの場合、挿入及び削除には問題がある。P. Gup
ta, S. Lin, and N. McKeown, "Routing lookups in ha
rdware at memory access speeds", in Proceedings IE
EE INFOCOM'98, pp.1240-1247, 1998、を参照)。
【0088】図14において、bonsaiの抽象的パイプラ
インを考える。1個のパイプライン段は、メモリコンポ
ーネント、何らかの単純なロジック(論理回路)、及び
ラッチのバンクからなる。最も単純な実装では、各段で
bonsaiの1レベルを処理し、深さdのbonsaiではd個の
段が必要となる。(段数を少なくするには、深さ最適bo
nsaiを構成することが有効となり得る。)段0への入力
で、探索の場合にはデスティネーションIPアドレスが
入力され、挿入または削除の場合にはプレフィクスが入
力される。パイプラインが探索、挿入、及び削除を区別
することを可能にする小さい命令コードも送られる。
【0089】この説明のために、このパイプラインはbo
nsaiの各レベルごとに1個の段を有すると仮定する。各
段の前のラッチは、以下の情報を格納することになる。 ・挿入及び削除の場合に入力として、また、探索の場合
に出力として使用されるプレフィクスP。 ・探索の場合に入力として使用されるデスティネーショ
ンIPアドレスD。 ・現在のレベルの適当なノードを指すポインタR。 ・パイプラインのこの段が探索、挿入、または削除のい
ずれを実行しているのかを示す命令I。 ・現在の命令の状態に関する情報を含むステートS。例
えば、探索中には、前の一致見つかっているかどうかを
知る必要があり、削除中には、この時点で削除ではなく
プレフィクスを昇格させている可能性もある。
【0090】パイプラインの各段の基本ハードウェアは
以下のものを含む。 ・上記のような、関連する入力及び出力の情報を保持す
るラッチ。 ・そのレベルのノードに関する情報を含むメモリ。ノー
ドは固定サイズであり、1個のプレフィクス及び2個の
ポインタを含む。ノードへの書き込みの際には、ノード
のプレフィクスへの書き込みまたは2個の子ポインタの
うちの一方への書き込みのみが可能である。 ・後続の段の未使用ノードアドレスへのポインタを含む
スタック(またはその他の構造体)。例えば、挿入中に
は、ノードは子のためにメモリを割り当てる必要が生じ
ることがある。同様に、削除中には、ノードは子のため
のメモリを解放しなければならないことがある。メモリ
管理は、ノードが固定サイズであることにより極めて単
純である。 ・例えばプレフィクス一致をチェックするためあるいは
プレフィクス長を比較するためのコンパレータ。 ・マルチプレクサや論理ゲートのような、さまざまな基
本構成ブロック。
【0091】注意すべき点であるが、パイプラインにお
ける後続の命令は独立であるが、場合によってはパイプ
ラインをストールさせる必要がある。これは、挿入また
は削除中にのみ起こり得るが、2クロックサイクルより
長いストールは決して生じない。
【0092】パイプライン設計の完全な記述はここでは
不適当であるが、設計に必要なものに対する感じをつか
むために、いくつかの特定の場合に必要なハードウェア
について調べる。図15に、探索中に可能性のあるオペ
レーションの詳細な例を示す。この時点で、関連するノ
ードが段iに存在し、もう1つの関連するノードが段i
+1に存在すると仮定する。デスティネーションIPア
ドレスが段iのプレフィクスに一致するかどうかがチェ
ックされる。プレフィクスが一致する場合、かつ、これ
がいずれの前の一致よりも長い場合、次のノードの適当
なポインタとともに次の段に送られる。
【0093】挿入されるプレフィクスが最初の空ノード
に入るときに、挿入の簡単な場合が起こる。これは、パ
イプラインにおける1ストールで実行可能である。この
ストールは、新しい葉ノードの親に新しいポインタを書
き込むために必要となる。図16にこの場合を示す。ま
ず、メモリが読み出され、適当な子ノードがないことが
わかる。新しいノードに対するポインタがポインタスタ
ックに割り当てられる。このポインタは、(第2のクロ
ックサイクル中に)メモリに書き戻され、また、挿入さ
れるべきプレフィクスとともに後続の段に送られる。も
う1つの場合は、挿入により別のプレフィクスが追い出
されるときに生じる。プレフィクスが段iで追い出され
る場合、これは段iにおける2回のメモリアクセスを必
要とする。すなわち、追い出されるプレフィクスの読み
出しと、それに続く、挿入されるプレフィクスの書き込
みとである。これは、パイプラインの1回のストールで
実行可能である。なお、パイプラインの下流でこの挿入
に対してさらに多くのプレフィクスが追い出される場合
であっても、これ以上のストールは不要である。
【0094】削除のほうが困難である。レベルiで削除
されるプレフィクスはレベルi−1におけるポインタ更
新を必要とし、これは、段間のバイパスハードウェアを
必要とすることになるからである。レベルiは、クロッ
クサイクルjの期間中に読み出される。レベルi−1
は、クロックサイクルj+1の期間中に書き込まれる
(なお、親ノードへのポインタがラッチに保存されてい
なければならない)。一般に、削除されるプレフィクス
の子を昇格させる必要がある。段i+1はクロックサイ
クルj+1において読み出され、クロックサイクルj+
2の期間中に段iに書き戻される。このアクションの開
始を図17に示す。段iには一致がないことがわかる。
注意すべき点であるが、子が存在するため、プレフィク
スを昇格させる必要がある。書き戻しに必要なバイパス
ハードウェアは明確化のために図示していない。最悪の
場合、削除は2クロックサイクルのストールを余儀なく
される。
【0095】この設計の1つの問題点は、bonsaiレベル
あたりのノード数の不均衡であり、これは、パイプライ
ン段によって必要とされるメモリサイズの不均衡に対応
する。例えば図1に示すように、あるレベルにはノード
がなく他には数千のノードがある。1つの段に必要なメ
モリが不十分なときにbonsaiの1レベルを数個の連続す
るパイプライン段に分割するのは比較的容易であるが、
依然として、ルート付近のレベルは非常に限定された量
のメモリしか必要としない。
【0096】[IVE.bonsaiを用いたネットワークシ
ステム]図18に、本発明によるネットワークシステム
の好ましい実施例の実装を示す。このネットワークシス
テムは、複数のホスト18.10〜18.13を有す
る。各ホストは対応するルータ18.20〜18.23
を有する。アドレスのプレフィクスは、bonsaiトライを
用いてルータに格納される。bonsaiトライは、上記のよ
うに、bonsaiトライ内の各ノードに1個のプレフィクス
が格納されいずれのノードも空でないようにアドレスに
関するプレフィクスが格納された二分トライの実現であ
る。
【0097】
【発明の効果】本発明の効果は以下の通りである。 ・メモリ使用は効率的かつスケーラブルである。bonsai
(後述する)は、各プレフィクスごとに1個のノードし
か使用せず、各ノードは2個のノードポインタ及び1個
のプレフィクスポインタを有する。ノード及びプレフィ
クスを配列に格納するのは容易である。従って、ポイン
タサイズをlog(p)ビット(ただし、pは格納され
るプレフィクスの数)に制限することが可能である。 ・構造は、効率的で単純な挿入、削除、及び探索オペレ
ーションをサポートする。IPアドレスのビット数をb
とした場合、アルゴリズムはO(b)時間を必要とす
る。 ・本発明によるプレフィクス格納方法は、挿入オペレー
ションの順序に依存する。本発明は、複数の最適性基準
を備える。第1の基準は、全体の深さが最小の二分トラ
イを計算する欲張り法である。第2の基準は、探索ごと
の期待ステップ数が最小のbonsaiトライを導出する動的
計画法アプローチである。この探索最適bonsaiアプロー
チは、IPデスティネーションアドレスの任意の分布を
仮定することが可能である。 ・本発明は、パイプライン化ハードウェア実装に特に適
している。スループットは、メモリアクセスあたり1回
の探索(すなわち、1つの最小プレフィクス一致)程度
にまで高めることが可能である。挿入及び削除は、パイ
プラインにおける2クロックサイクル以下のストールで
実行可能である。
【0098】本発明に対するその他の修正や変形は、上
記の記載から当業者には明らかである。すなわち、本明
細書では、本発明のいくつかの実施例のみについて具体
的に説明したが、明らかなように、本発明の技術思想及
び技術的範囲から離れることなく、さまざまな変形を行
うことが可能である。
【図面の簡単な説明】
【図1】mae-eastプレフィクスのプレフィクス分布、ノ
ード分布、及び深さ最適分布の図である。
【図2】シーケンス(10011,01100,111
1,0100,011110,10100,010,0
0011)の挿入後の、本発明の好ましい実施例の図で
ある。
【図3】プレフィクス01の挿入後の好ましい実施例の
図である。
【図4】プレフィクス01100の削除後の好ましい実
施例の図である。
【図5】図2と同じプレフィクスであるが、異なる挿入
シーケンス(0100,01,10011,00011
1,010,10100,1111,011110)の
場合の好ましい実施例の図である。
【図6】2つの可能なbonsai構造の図である。
【図7】2つの深さ最適サブトライの併合の図である。
【図8】探索最適サブトライの図である。
【図9】ランダム、深さ最適、及び探索最適サブトライ
の深さの図である。
【図10】ランダム、深さ最適、及び探索最適bonsaiの
平均ノードレベルの図である。
【図11】ランダム、深さ最適、及び探索最適bonsaiの
探索あたり平均比較数の図である。
【図12】mae-eastフォワーディングテーブルのプレフ
ィクスの第1バイトの分布の図である。
【図13】fix-westが記録したデスティネーションIP
アドレスの第1バイトの分布の図である。
【図14】bonsaiのパイプライン実装の例を示す図であ
る。
【図15】図14のパイプライン実装を用いた段iにお
ける探索の例を示す図である。
【図16】図14のパイプライン実装を用いた段iにお
ける挿入の例を示す図である。
【図17】図14のパイプライン実装を用いた段iにお
ける削除の例を示す図である。
【図18】本発明により効率的な方法でアドレスに関す
るプレフィクスを格納するルータを有するネットワーク
システムの実施例の図である。
【図19】従来のトライ構造の例を示す図である。
【図20】従来のトライ構造、及び、等価な従来のパト
リシアトライ構造の例を示す図である。
【符号の説明】
18.10〜18.13 ホスト 18.20〜18.23 ルータ

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 アドレスのセットに関するプレフィクス
    のセットを格納する方法において、 二分トライ方式でプレフィクスを格納するステップを有
    し、前記二分トライ内の各ノードは、前記プレフィクス
    のうちの少なくとも1つに関連づけられ、前記二分トラ
    イ内のいずれのノードも空でないことを特徴とするアド
    レスに関するプレフィクスを格納する方法。
  2. 【請求項2】 第1のプレフィクスは、ルートノードを
    割り当て、該ルートノードに該プレフィクスを置くこと
    によって、空トライに挿入されることを特徴とする請求
    項1記載の方法。
  3. 【請求項3】 kは0より大きい整数であるとして、k
    ビットからなり、b 0,b1,...,bk-1の表示を有す
    る、第1のプレフィクス以外のプレフィクスの挿入は、 a)前記トライのルートノードをカレントノードに指定
    し、bn=b0と置き、前記プレフィクスをカレントプレ
    フィクスとして指定するステップと、 b)カレントノードに既にカレントプレフィクスが格納
    されている場合には挿入を終了するステップと、 c)bn=0の場合にカレントノードの左の子を検査
    し、bn=1の場合にカレントノードの右の子を検査す
    るステップと、 d)新たなノードを割り当て、左の子及び右の子のいず
    れかが存在しない場合にカレントプレフィクスを入れ、
    該新たなノードをカレントノードに指定するステップ
    と、 e)n=n+1の代入を行うステップと、 f)n=kになるまで前記ステップb〜eを繰り返すス
    テップと、 g)カレントノードに以前に格納されたプレフィクスを
    カレントプレフィクスで置き換え、該以前に格納された
    プレフィクスをカレントプレフィクスに指定し、前記ス
    テップb〜gを繰り返すステップと、 からなるプロセスを用いて行われることを特徴とする請
    求項1記載の方法。
  4. 【請求項4】 kは0より大きい整数であるとして、k
    ビットからなり、b 0,b1,...,bk-1の表示を有する
    アドレスのLMPを求める前記トライの探索は、 a)ルートノードが一致プレフィクスを有する場合、ル
    ートノードをカレントノード及びLMPノードに指定
    し、bn=b0と置くステップと、 b)カレントノードをLMPノードに指定し、カレント
    ノードが一致プレフィクスを有しかつ該一致プレフィク
    スがLMPノードより長い場合、該LMPノードを下方
    に移動するステップと、 c)bn=0の場合にカレントノードの左の子をカレン
    トノードに指定し、bn=1の場合にカレントノードの
    右の子をカレントノードに指定するステップと、 d)n=n+1とするステップと、 e)カレントノードがトライの最低レベルになるまで前
    記ステップb〜dを繰り返すステップと、 f)最低のトライに対応するプレフィクスが一致する場
    合に該プレフィクスをLMPとして選択するステップ
    と、 からなるプロセスを用いて行われることを特徴とする請
    求項1記載の方法。
  5. 【請求項5】 アドレスに対応するプレフィクスの前記
    トライにおける削除は、 a)前記プレフィクスに対応する一致ノードを探索する
    ステップと、 b)前記一致ノードが葉ノードである場合に前記一致ノ
    ードを削除してプロセスを終了するステップと、 c)前記一致ノードが葉ノードでない場合、前記一致ノ
    ードを削除して前記一致ノードの一方の子を上方に移動
    し、該一方の子を削除するステップと、 d)葉ノードが削除されるまで前記ステップb〜cを繰
    り返すステップと、 からなるプロセスを用いて行われることを特徴とする請
    求項1記載の方法。
  6. 【請求項6】 最悪の場合の探索における深さを最小に
    するために、前記トライは平衡化されることを特徴とす
    る請求項1記載の方法。
  7. 【請求項7】 アドレスが格納された単純トライを、す
    べてのノードがアドレスを表す深さ最適サブトライに変
    換する方法において、 a)iは整数として、前記単純トライで占有ノードを有
    する最低レベルを見出し、該最低レベルをiとするステ
    ップと、 b)i−1に対応するレベルにおける各ノードを検査す
    るステップと、 c)レベルi−1に空ノードがある場合、該空ノードの
    深いほうのサブトライのボトムからプレフィクスを上方
    に移動するステップと、 d)ルートノードに到達するまで併合を続けるステップ
    と、 からなることを特徴とする方法。
  8. 【請求項8】 アドレスが格納された単純トライ内の各
    ノードを訪れる確率は既知として、該単純トライを、探
    索あたりの期待ステップ数が最小である探索最適トライ
    に変換する方法において、 動的計画法を使用し、 a)ボトムアッププロセスを用いて各ノードαに対し
    て、Aα[i]は最小期待探索ステップ数を保持し、 Aα[i]=f(Aβ,Aγ,Pβ,Pγ) であり、β及びγは、αの左及び右の子であり、Pβ及
    びPγは、αが既に訪れられたと仮定した場合に探索中
    にβ及びγが訪れられる確率を表すとして、αをルート
    とするサブトライからi個のノードが昇格すると仮定し
    て配列Aαを計算するステップと、 b)各Aα[i]に対応する最適サブトライを生成する
    ためにβ及びγから昇格させなければならないプレフィ
    クス数を各Aα[i]に関連づけるステップと、 c)配列A及び該配列Aに関連づけられたプレフィクス
    数に基づいて、ルートノードが、プレフィクスを保持し
    ていない場合に1個のプレフィクスを要求し、プレフィ
    クスを保持している場合に0個のプレフィクスを要求す
    ることにより、ルートから再帰的にトップダウンに、子
    ノードに対してプレフィクスを昇格させる要求を発行す
    るステップと、 からなることを特徴とする方法。
  9. 【請求項9】 前記アドレスはインターネットアドレス
    であり、前記トライはIPルータにあることを特徴とす
    る請求項1記載の方法。
  10. 【請求項10】 前記アドレスはインターネットアドレ
    スであり、前記トライはIPルータにあることを特徴と
    する請求項7記載の方法。
  11. 【請求項11】 前記アドレスはインターネットアドレ
    スであり、前記トライはIPルータにあることを特徴と
    する請求項8記載の方法。
  12. 【請求項12】 複数のルータを有するネットワーキン
    グシステムにおいて、各ルータはアドレス記憶領域を有
    し、各アドレス記憶領域には、前記ネットワーキングシ
    ステムに対応するネットワークアドレスに関するプレフ
    ィクスのセットが二分トライの形式で格納され、該二分
    トライは複数のノードを有し、各ノードは前記ネットワ
    ークアドレスのうちの少なくとも1つのプレフィクスに
    関連づけられ、該二分トライ内のいずれのノードも空で
    ないことを特徴とするネットワーキングシステム。
  13. 【請求項13】 最悪の場合の探索における深さを最小
    にするために、前記二分トライは平衡化されることを特
    徴とする請求項12記載のネットワーキングシステム。
  14. 【請求項14】 コンピュータ読み取り可能媒体を含む
    コンピュータプログラム製品において、該プログラム
    は、ネットワーキングシステムに関連する1つ以上のコ
    ンピュータが、該ネットワーキングシステム内の各ルー
    タに二分トライ方式でアドレスのセットを格納すること
    を可能にし、該二分トライ内の各ノードには、前記アド
    レスのうちの少なくとも1つのプレフィクスが関連づけ
    られ、該二分トライ内のいずれのノードも空でないこと
    を特徴とするコンピュータプログラム製品。
  15. 【請求項15】 最悪の場合の探索における深さを最小
    にするために、前記二分トライは平衡化されることを特
    徴とする請求項14記載のコンピュータプログラム製
    品。
  16. 【請求項16】 二分トライ方式でアドレスのセットを
    格納するシステムにおいて、該二分トライ内の各ノード
    には、前記アドレスのうちの少なくとも1つのプレフィ
    クスが関連づけられ、前記システムはパイプラインを有
    し、該パイプラインは複数の段を有し、該複数の段のう
    ちの各段は、前記二分トライ内の1つのレベルに対応
    し、該段は本質的に、メモリコンポーネントと、ラッチ
    のバンクと、単純なロジックとからなり、前記ラッチの
    バンクは、1個のプレフィクスと、1個のデスティネー
    ションIPアドレスと、適当なノードを指す1個のポイ
    ンタと、対応する段のタスクを指示する命令と、該命令
    の状態に関する情報を含むステートとを格納することを
    特徴とする、二分トライ方式でアドレスのセットを格納
    するシステム。
  17. 【請求項17】 前記パイプラインの各段は、入力及び
    出力の情報を保持するラッチと、1つのレベルにおける
    ノードに対応する情報を含むメモリと、未使用のノード
    アドレスへのポインタを含むスタックと、コンパレータ
    とを有することを特徴とする請求項16記載のシステ
    ム。
JP2000007545A 1999-05-11 2000-01-17 アドレスに関するプレフィクスの格納方法 Expired - Fee Related JP3570323B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30927099A 1999-05-11 1999-05-11
US09/309270 1999-05-11

Publications (2)

Publication Number Publication Date
JP2000324172A true JP2000324172A (ja) 2000-11-24
JP3570323B2 JP3570323B2 (ja) 2004-09-29

Family

ID=23197472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000007545A Expired - Fee Related JP3570323B2 (ja) 1999-05-11 2000-01-17 アドレスに関するプレフィクスの格納方法

Country Status (3)

Country Link
EP (1) EP1063827B1 (ja)
JP (1) JP3570323B2 (ja)
DE (1) DE60032674T2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
JP2003143198A (ja) * 2001-10-23 2003-05-16 Internatl Business Mach Corp <Ibm> ルーティング処理装置およびルーティング方法
US7330486B2 (en) 2002-04-27 2008-02-12 Samsung Electronics Co., Ltd. Internet protocol based communication system and method for setting host address and selecting source address therein
WO2010106680A1 (ja) * 2009-03-19 2010-09-23 富士通株式会社 記憶媒体、トライ木生成方法およびトライ木生成装置
JP2010231643A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 記憶媒体およびトライ木生成方法
JP2010238195A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd 記憶媒体、トライ木生成方法およびトライ木生成装置
JP2014126882A (ja) * 2012-12-25 2014-07-07 Nippon Telegr & Teleph Corp <Ntt> 部分木集約による木構造の再構成装置及び方法及びプログラム
JP2014126881A (ja) * 2012-12-25 2014-07-07 Nippon Telegr & Teleph Corp <Ntt> 単一パス集約による木構造の再構成装置及び方法及びプログラム
WO2015129109A1 (ja) * 2014-02-27 2015-09-03 ウイングアーク1st株式会社 インデックス管理装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757779B1 (en) 1999-09-23 2004-06-29 Netlogic Microsystems, Inc. Content addressable memory with selectable mask write mode
US6542391B2 (en) 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6910097B1 (en) 2001-04-09 2005-06-21 Netlogic Microsystems, Inc. Classless interdomain routing using binary content addressable memory
KR100918733B1 (ko) * 2003-01-30 2009-09-24 삼성전자주식회사 포워딩정보를 동적으로 관리하는 분산구조라우터 및 그방법
US7633886B2 (en) * 2003-12-31 2009-12-15 University Of Florida Research Foundation, Inc. System and methods for packet filtering
KR100887104B1 (ko) * 2007-06-12 2009-03-04 건국대학교 산학협력단 Ip 패킷의 라우팅을 위한 세그먼트 트리 구성 장치 및방법
CN101577662B (zh) 2008-05-05 2012-04-04 华为技术有限公司 一种基于树形数据结构的最长前缀匹配方法和装置
CN103560962A (zh) * 2013-11-04 2014-02-05 神州数码网络(北京)有限公司 以太网交换机主机路由表项自动更新方法及交换机
WO2015188319A1 (zh) * 2014-06-10 2015-12-17 华为技术有限公司 一种查找装置、查找配置方法和查找方法
WO2019074744A1 (en) * 2017-10-09 2019-04-18 Fovia Inc. METHOD AND SYSTEM FOR PREDICTING BITS USING A STATISTICAL MODEL
CN113632427A (zh) * 2021-06-25 2021-11-09 新华三技术有限公司 一种报文匹配方法、装置、网络设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122766A (ja) * 1989-09-28 1991-05-24 Bull Hn Inf Syst Inc 部分キー分岐機能を備えたプレフィックス探索ツリー
JPH08194719A (ja) * 1994-11-16 1996-07-30 Fujitsu Ltd 検索装置および辞書/テキスト検索方法
WO1998027662A2 (en) * 1996-12-16 1998-06-25 Juniper Networks High speed variable length best match look-up in a switching device
JP2001517024A (ja) * 1997-09-15 2001-10-02 エフィシャント ネットワーキング アクティエボラーグ 高速ルーティング・ルックアップのための方法とシステム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996000945A1 (en) * 1994-06-30 1996-01-11 International Business Machines Corp. Variable length data sequence matching method and apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122766A (ja) * 1989-09-28 1991-05-24 Bull Hn Inf Syst Inc 部分キー分岐機能を備えたプレフィックス探索ツリー
JPH08194719A (ja) * 1994-11-16 1996-07-30 Fujitsu Ltd 検索装置および辞書/テキスト検索方法
WO1998027662A2 (en) * 1996-12-16 1998-06-25 Juniper Networks High speed variable length best match look-up in a switching device
JP2001509978A (ja) * 1996-12-16 2001-07-24 ジュニパー ネットワークス スイッチング装置における高速可変長ベストマッチルックアップ
JP2001517024A (ja) * 1997-09-15 2001-10-02 エフィシャント ネットワーキング アクティエボラーグ 高速ルーティング・ルックアップのための方法とシステム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
JP2003143198A (ja) * 2001-10-23 2003-05-16 Internatl Business Mach Corp <Ibm> ルーティング処理装置およびルーティング方法
US7330486B2 (en) 2002-04-27 2008-02-12 Samsung Electronics Co., Ltd. Internet protocol based communication system and method for setting host address and selecting source address therein
WO2010106680A1 (ja) * 2009-03-19 2010-09-23 富士通株式会社 記憶媒体、トライ木生成方法およびトライ木生成装置
JP5278534B2 (ja) * 2009-03-19 2013-09-04 富士通株式会社 記憶媒体
US9465860B2 (en) 2009-03-19 2016-10-11 Fujitsu Limited Storage medium, trie tree generation method, and trie tree generation device
JP2010231643A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 記憶媒体およびトライ木生成方法
JP2010238195A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd 記憶媒体、トライ木生成方法およびトライ木生成装置
JP2014126882A (ja) * 2012-12-25 2014-07-07 Nippon Telegr & Teleph Corp <Ntt> 部分木集約による木構造の再構成装置及び方法及びプログラム
JP2014126881A (ja) * 2012-12-25 2014-07-07 Nippon Telegr & Teleph Corp <Ntt> 単一パス集約による木構造の再構成装置及び方法及びプログラム
WO2015129109A1 (ja) * 2014-02-27 2015-09-03 ウイングアーク1st株式会社 インデックス管理装置
JP2015162042A (ja) * 2014-02-27 2015-09-07 ウイングアーク1st株式会社 インデックス管理装置

Also Published As

Publication number Publication date
EP1063827A3 (en) 2005-11-02
DE60032674D1 (de) 2007-02-15
DE60032674T2 (de) 2007-05-16
EP1063827B1 (en) 2007-01-03
EP1063827A2 (en) 2000-12-27
JP3570323B2 (ja) 2004-09-29

Similar Documents

Publication Publication Date Title
JP3570323B2 (ja) アドレスに関するプレフィクスの格納方法
US7782853B2 (en) Apparatus and method of using fully configurable memory, multi-stage pipeline logic and an embedded processor to implement multi-bit trie algorithmic network search engine
KR100745693B1 (ko) Tcam 테이블 관리 방법
US6691124B2 (en) Compact data structures for pipelined message forwarding lookups
US7702630B2 (en) Longest prefix match lookup using hash function
US6553370B1 (en) Flexible search engine having sorted binary search tree for perfect match
US6434144B1 (en) Multi-level table lookup
JP5529976B2 (ja) 高速ipルックアップのためのシストリック・アレイ・アーキテクチャ
KR100612256B1 (ko) 터너리 내용 주소화 메모리 관리 장치 및 그 방법
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
US9871727B2 (en) Routing lookup method and device and method for constructing B-tree structure
US20080192754A1 (en) Routing system and method for managing rule entries of ternary content addressable memory in the same
EP1551141A1 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
Warkhede et al. Multiway range trees: scalable IP lookup with fast updates
US20040111420A1 (en) Performance and memory bandwidth utilization for tree searches using tree fragmentation
US6839703B2 (en) Information apparatus, table retrieval apparatus, table retrieval method, and recording medium
JP4995125B2 (ja) 固定長データの検索方法
Hasan et al. Dynamic pipelining: Making IP-lookup truly scalable
CN102484610A (zh) 路由表建立方法和装置及路由表查找方法和装置
KR100999408B1 (ko) 해시트리를 이용한 url 검색방법
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
JP2008065716A (ja) データ管理装置、データ管理方法及びデータ管理プログラム
Park et al. An efficient IP address lookup algorithm based on a small balanced tree using entry reduction
Ray et al. SRAM based longest prefix matching approach for multigigabit IP processing
Li et al. An IPv6 Routing Lookup Algorithm Based on Hash Table and HOT

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040614

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20070702

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090702

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110702

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110702

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120702

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120702

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees