JP3591420B2 - ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体 - Google Patents

ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体 Download PDF

Info

Publication number
JP3591420B2
JP3591420B2 JP2000106744A JP2000106744A JP3591420B2 JP 3591420 B2 JP3591420 B2 JP 3591420B2 JP 2000106744 A JP2000106744 A JP 2000106744A JP 2000106744 A JP2000106744 A JP 2000106744A JP 3591420 B2 JP3591420 B2 JP 3591420B2
Authority
JP
Japan
Prior art keywords
entry
entries
cache table
cache
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000106744A
Other languages
English (en)
Other versions
JP2001290718A (ja
Inventor
勉 村瀬
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
Priority to JP2000106744A priority Critical patent/JP3591420B2/ja
Priority to US09/828,160 priority patent/US6993031B2/en
Publication of JP2001290718A publication Critical patent/JP2001290718A/ja
Application granted granted Critical
Publication of JP3591420B2 publication Critical patent/JP3591420B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ルータにおけるキャッシュテーブル管理、特にフォワーディングテーブルとキャッシュテーブルとの間でエントリを群単位で出し入れするときのキャッシュテーブルの管理に関する。
【0002】
【従来の技術】
複数のネットワークを接続するルータは、異なるネットワークを越えて行われる通信を媒介するため、通信情報の固まり(パケット)の転送(フォワーディング)を行わなければならない。ルータは、接続されたネットワークから入力されたパケットをネットワークインタフェース(以下、「インタフェース」と記す)で受信し、そのパケットのヘッダ部分に含まれる送信先アドレスを基に、各ルータの持つフォワーディングテーブルを検索して、パケットを送信すべきインタフェースの番号を決定して、パケットのフォワーディングを行う。
【0003】
この場合、ネットワークの数やネットワークに接続される端末の数が多いと、フォワーディングテーブルの規模も大きくなり、フォワーディングが低速化する。そこで、従来から、キャッシュテーブルを使用して、フォワーディング、ひいてはパケット処理を高速化した技術が知られている。
【0004】
例えば、特開平6−261078号公報に記載された「テーブル検索方法及びルータ装置」では、各インタフェースはルーティングテーブル及びルーティングテーブル検索用のキャッシュメモリを備える。ルーティングテーブルには、特定のネットワークがそのルータのインタフェースを介して到達可能であるか、また、そのインタフェースを介してパケットを送出したとき、送出ネットワーク内での宛先をどこにすればよいかの情報が書かれている。すなわち、ルーティングテーブルの各エントリは宛先ネットワークアドレス,宛先ネットワークアドレスに対するマスク,送出ネットワーク内での宛先ネットワークアドレス及び送出インタフェース番号を格納する。
【0005】
キャッシュメモリはCAM(Content Addressable Memory)と対応テーブルとから成る。CAMには、ルーティングテーブル上の該当エントリへのポインタが得られた宛先ネットワークアドレスが登録され、対応テーブルは、CAMのエントリにリンクしているエントリを持ち、そこにルーティングテーブルの該当エントリへのポインタが登録される。そして、同じネットワークアドレスに対して再度ルーティングテーブルを検索する場合には、先ず、CAMに対して宛先ネットワークアドレスの照合を行い、該当アドレスが登録されている場合は、CAMの該当ネットワークアドレスが登録されているエントリにリンクしている対応テーブルのエントリからルーティングテーブルへのポインタを得る。この結果、検索回数の多い宛先ネットワークアドレスがキャッシュメモリに登録されることになるのでテーブル検索時の高速化が図れ、また、対応テーブルを設けるのでCAMのエントリサイズを小さくすることができる。
【0006】
しかし、この従来技術ではキャッシュメモリにおけるテーブル検索は、検索キーとしてホストアドレスを用いた完全一致検索方式を採用しているため、検索に時間がかかりすぎたり、ヒット率を上げようとすると大容量のキャッシュメモリを必要とするという問題点がある。
【0007】
そこで、小林ほかにより特願平11−033287において、最長一致検索のできるフォワーディングテーブル(以下、「フルテーブル」と記す)と、最長一致検索のできるキャッシュテーブルを設けた「キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体」が提案されている。
【0008】
この技術について、先ず、それぞれのテーブルの構成と検索方法について説明する。第1の構成例においては、フルテーブルには、ルーティングに必要な全ての経路を含むエントリを入れ、キャッシュテーブルにはフルテーブルの一部のエントリを入れておく。また、第2の構成例においては、キャッシュテーブルにはフルテーブルの一部のエントリを入れておき、フルテーブルにはキャッシュテーブルにあるエントリを除いた全ての必要なエントリを入れておく。
【0009】
キャッシュヒット率を高めるためには、キャッシュテーブルとフルテーブルでエントリを入れたり出したりの操作を行う必要があるが、第1の構成例においては、フルテーブルからキャッシュテーブルへはエントリをコピーし、キャッシュテーブルからフルテーブルへは、データを廃棄(削除)することになる。一方、構成例2においては、 フルテーブルからキャッシュテーブルへはエントリを移動し、キャッシュテーブルからフルテーブルへも、やはりデータを移動することになる。以下の説明では、第1の構成例について、コピーと削除という動作で説明するが、第2の構成例の場合には、第1の構成例におけるコピーが移動に、第1の構成例における削除が移動という操作に相当する。なお、コピーすることを単に「入れる」と呼ぶ。
【0010】
フルテーブルは大量のデータを検索するので検索時間は長い。キャッシュテーブルは容量は小さいが高速に検索できる。先ず、検索要求があれば、まずキャッシュを最長一致検索で検索する。キャッシュでエントリが見つかれば(ヒットするという)、検索はここで終了する。しかし、見つからない場合(ミスヒット)には、引き続きフルテーブルを最長一致検索する。フルテーブルには全てのエントリが入っているので、必ずヒットし検索は終了する。最長一致検索とは、特願平11−033287にも記載されているように、プレフィクス(Prefix)が一致するものを候補とし、その候補のエントリから最も長いプレフィクス長をもつエントリをヒットエントリとする検索をいう。
【0011】
例えば、(A)100.120.0.0/16と(B)100.0.0.0/8と(C)100.120.140.0/24と(D)100.120.180.0/24というプレフィクスで表わされるネットワークアドレスを有する4つのエントリがあるときに、検索キーとして、ネットワークアドレス「100.120.140.5」が与えられたとする。なお、100.120.0.0等はプレフィクスビットと呼ばれ、ドットで区切られた数字はそれぞれ8ビットで10進数を表現する。この8ビットで構成される10進数が0のときは任意数(don’t care)を意味する。また、/の後の数はプレフィクス長を意味する。与えられたネットワークアドレス「100.120.140.5」は、(A), (B), (C)のいづれにもプレフィクスが一致するため、(A), (B), (C)の3つとも検索結果の候補になる。しかし、最長一致検索では、候補の中から最も長いプレフィクス長のエントリを選択することになるため、この場合、プレフィクス長=24が最も長いので、検索の結果、(C)100.120.140.0/24のエントリがヒットする。
【0012】
次に、キャッシュテーブルに入れるエントリについて述べる。この特願平11−033287に提案の発明では、キャッシュテーブルに出し入れするエントリは、注目している単独のエントリのコピーや削除ではなく、所定の規則を持って複数あるいは場合によっては単独のエントリで移動することになる。すなわち、同じプレフィクスを持つエントリのプレフィクス長の短いものを親、長いものを子と呼ぶときに、キャッシュインのときは自分の全ての子を必ずいっしょにキャッシュに入れ、キャッシュアウトのときは自分の全ての親を必ずいっしょにキャッシュから取り出すのである。以下の説明では、この規則に従って移動すべき複数のエントリをエントリ群と呼ぶ。
【0013】
このエントリ群の作り方は、具体例で示せば次のようである。例えば、前記(A), (B), (C)および(D)の4つのエントリにおいて、(A)100.120.0.0/16というエントリをフルテーブルからキャッシュに移動させるときは、(A),(C)および(D)がエントリ群になる。また、(A)をキャッシュテーブルからフルテーブルに移動させるときには、(A)のみがエントリ群になる。
【0014】
また、キャッシュからフルテーブルへの方向にエントリを移動する場合のエントリ選択方法としてLRU(Least Recently Used)という方法が記述されている。LRUとは、エントリが参照された順序において最も古いものを対象とする方法である。これは次のような理由による。上述の(A)100.120.0.0/16と(C)100.120.140.0/24と(D)100.120.180.0/24とでは出方路としてのインタフェース番号が異なっているときに、もし、(A)100.120.0.0/16だけをキャッシュインしておくと、「100.120.140.5」が検索キーとして与えられると、最長一致検索の結果として(C)対応のインタフェース番号が得られるべきところ、それとは異なる(A)対応のインタフェース番号がキャッシュにおいて得られることになるからである。また、(C)をキャッシュアウトするときに(A)をキャッシュに残しておくと、「100.120.140.5」が検索キーとして与えられると、(C)対応のインタフェース番号と異なる(A)対応のインタフェース番号がキャッシュヒットするからである。
【0015】
【発明が解決しようとする課題】
ところで、キャッシュシステムでは、キャッシュに入れるべきデータはフルテーブル全体の一部分であるため、フルテーブルからエントリを選択してキャッシュに入れる必要がある。このとき、高速検索を行うためにはキャッシュでヒットする確率を上げなければならないので、キャッシュに入れるべきエントリの選択が重要である。また、キャッシュのエントリ内容を動的に変更する場合には、キャッシュから出すべきエントリの選択も重要である。
【0016】
このような選択方法としては、上述の2つの先例におけるフォワーディング技術ではLRU方式が採用されている。しかしながら、このようなLRUは、単独のエントリを出し入れする場合にあっては効果的であっても、特願平11−033287におけるようにエントリ単独ではなく、エントリ群、すなわち関連の複数のエントリを束にしてキャッシュに出し入れするような制約の下では効果的とはいえないという第1の問題点がある。例えば、図12に例示するように、使用時系列「3:00」「2:00」のプレフィクス(A)100.120.0.0/16と、使用時系列「1:00」,「0:30」のプレフィクス(C)100.120.140.0/24を含むキャッシュから(C)を出すときには、その親である(A)も出すことになるが、そうすると(A)よりも長い間使用されていない(D)がキャッシュに残ることになるのである。
【0017】
また、LRUのようなアルゴリズムを採用すると、データの選択が参照度に従って機械的になされてしまい、意図的にデータの重要度、具体的には、ポリシー上または料金体系上から回線接続の容易性の度合をつけることができないという第2の問題点もある。例えば、エントリ別に重要度が異なるときにおいても、従来のLRUでは、キャッシュへのエントリの出し入れを全てを平等に扱ってしまい、データの重要度に応じた扱いができない。
【0018】
本発明は、このような問題を解決すために成されたものであって、その目的は、キャッシュを有するルータにおいて、キャッシュのヒット確率を上げることによって、キャッシュ検索より時間のかかるフルテーブル検索を行う確率を下げ、ルータのパケット処理時間を減らし、ルータのパケット処理能力を向上させることのできるキャッシュに入出力するエントリ群の管理装置およびプログラム記録媒体を提供することにある。
【0019】
本発明の他の目的は、エントリの重要度に応じて、 検索処理に重み付けをするためのエントリ群選択、つまりキャッシュに入出力するエントリ群の選択方法を提供することにある。
【0020】
【課題を解決するための手段】
第1の本発明のルータにおけるキャッシュ管理装置は、全エントリに対して最長一致検索を行うためのフルテーブルと、全エントリの一部のエントリに対して最長一致検索を行うためのキャッシュとを備え、前記フォワーディングテーブルにおいてエントリを前記キャッシュテーブルに入れるときには、そのエントリを親とする全エントリを、また前記キャッシュテーブルからエントリを出すときには、そのエントリの親となる全エントリを、当該エントリの使用状況の評価値に対する閾値および削除あるいは移動されるエントリの領域対応の優先度に応じて選択することを特徴とする。
【0021】
第2の本発明のルータにおけるキャッシュ管理装置は、全エントリに対して最長一致検索を行うためのフルテーブルあるいは全エントリの一部のエントリに対して最長一致検索を行うためのキャッシュ内に仮想的な複数の領域を設定する手段と、該領域内では、それぞれ固有に、削除あるいは移動対象を決めるためのエントリ群の使用状況の評価値と、少なくとも削除対象に選択される可否を決める閾値と選択された場合に実際に削除あるいは移動されるエントリの該領域に応じて決まる優先度の一つを持つ手段と、該閾値および優先度に応じて入れ替え対象のエントリ群を選択する手段とを持つことを特徴とする。
【0022】
この場合、各エントリあるいは各エントリ群と各仮想的な領域を関連付ける手段、または各エントリあるいは各エントリ群にそれぞれ優先度を関連付ける手段、または各エントリあるいは各エントリ群にそれぞれ閾値を関連付ける手段の内の少なくとも一つの手段を備えるようにしてもよい。
【0023】
また、特定の時間区間において、エントリ群を構成する各エントリが持つ使用状況の評価値に対して、該使用状況を全てのエントリに対してあるいは一部のエントリに対して組み合わせた値あるいは統計値を各エントリ群の使用状況の評価値として用いる手段を備えるようにしてもよい。
【0024】
第3の本発明のルータにおけるキャッシュ管理装置は、プレフィクスビット列およびプレフィックス長から成るアドレスの集合を示す情報と、このアドレスの集合に対するパケットの出方路を示す情報と、優先度情報との組が登録されたエントリを複数有し最長一致検索されるフルテーブルと、入れ替えるべきエントリを親とする前記フルテーブルの全エントリが書き込まれ、またエントリが削除・移動されるときには、その親も削除・移動されるキャッシュと、前記フルテーブルの全エントリについて、その内容に加えてヒット情報が登録され、前記フルテーブルまたは前記キャッシュがヒットしたときにそのエントリの内容が更新されるヒット状況データベースと、パケットが入力されるとそのパケットヘッダから宛先ネットワークアドレスを取り出し、このアドレスをキーにして前記キャッシュテーブルまたは前記フォワーディングテーブルを検索し、得られた出方路にパケットを転送するパケット処理回路と、前記キャッシュに登録されている全エントリの前記優先度情報を含み、前記エントリ群入れ替えを行うときには、該優先度情報と前記ヒット状況データベースからの優先度情報とを比較して入れ替えるべきエントリ群を選択するエントリ選択装置と備えたことを特徴とする。
【0025】
エントリ選択装置は、前記ヒット状況データベースからエントリ群全ての情報を受け取り、この全エントリから、エントリ固有の優先度である領域,エントリ使用状況の評価値および閾値の代表値を決めるエントリ群代表値回路と、前記キャッシュに既に存在するエントリ群に関して、そのエントリ群とその代表値を組にして表に持っており、その表の各エントリ群の代表値と、前記エントリ群代表値回路から送られてくる代表値とを比較して、キャッシュに既に存在するエントリ群がどのような優先順位にあるかを送出する前記領域,エントリ使用状況の評価値および閾値対応の比較回路と、該比較回路から送られてきた優先順位データを基にエントリの最終的な入替え順位を決定する調停回路と、前記キャッシュの空き状況を管理しており、当該エントリ群を追加することのできる空きがあるかどうかを調べ、空きが無い場合には、前記調停回路が決定した順位の最も低いエントリが所属するエントリ群から前記キャッシュのエントリを消去して十分な空きを作り、また削除したエントリ群を前記表からの削除のために前記比較回路に送るエントリ決定送付回路とで構成してもよい。
【0026】
より詳しくは、前記エントリ使用状況の評価値として、ヒット回数またはヒット時刻またはその両者を採用してもよく、前記各代表値は、閾値と領域についてはエントリ中の最も高い値、ヒット回数は平均値、ヒット時刻は最近のものとすることもできる。
【0027】
また、前記調停回路は、0〜1の乱数を発生し、その乱数を2等分して、1/2づつをヒット回数とヒット時刻に割り当て、割り当てられた属性の順位を最終的な順位とするように構成してもよい。
【0028】
また、前記エントリの優先度を受信パケットから得られる情報に応じて設定する手段を設けてもよいし、ポリシーサーバにより変更可能としてもよい。
【0029】
本発明によれば、ヒットする可能性の高いエントリをキャッシュにおくことができるため、キャッシュミスヒット率の低い検索が可能であり、それゆえ全体の検索処理速度を向上させることが可能となる。すなわち、ヒット数の高いエントリが知られているときに、該エントリを優先的にキャッシュに入れておくことで、ヒットする可能性の高いキャッシュ内容となる。逆に、ヒット数の低いエントリはできるだけキャッシュに存在しないように、その優先度を下げることで、キャッシュを有効に使用できる。
【0030】
また、エントリ群の平均,最大値、最小値といった統計数値を用いてエントリ群の代表値を得、その代表値をヒットする可能性を示す値として用いることにより、ヒット率を上げることができる。エントリ群は非常に多数のエントリから成るものもあり、まためったに使われないことがわかっている場合など様々な状況が考えられるため、そのエントリ群の一部のエントリだけを用いて前記代表値を決めることは、そのエントリ群の真の代表値により近くなるのである。
【0031】
また、ポリシー上または料金体系上から重要度に応じて、エントリあるいはキャッシュの領域に優先度を設けておくことにより、重要度に応じて検索速度を調整することが可能となる。
【0032】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0033】
図1は本発明のルータの第1実施形態の全体構成図であり、パケット処理回路101,キャッシュテーブル102,フルテーブル103,ヒット状況データベース104およびエントリ選択装置105から構成される。先ず、各構成要素の概要を説明する。ここでは、前述の第1の構成例を想定している。すなわち、フルテーブル103には、ルーティングに必要な全ての経路を含むエントリを入れておき、キャッシュテーブル102には、フルテーブル103の一部のエントリを入れておく。
【0034】
図1において、パケット処理回路101はキャッシュテーブル102とフルテーブル103に接続されており、キャッシュテーブル102はフルテーブル103とヒット状況データベース104とエントリ選択装置105とに接続されている。ヒット状況データベース104は、さらにフルテーブル103とエントリ選択装置105と接続されている。エントリ選択装置105は、さらにキャッシュテーブル102とフルテーブル103と接続されている。以下、断りがない限り、最長一致検索のことを単に検索と記す。
【0035】
フルテーブル103は、プレフィクスビット列とプレフィックス長とから成るアドレスの集合を示す情報と、このアドレスの集合に対するパケットの出方路を示す情報と、フルテーブル103とキャッシュテーブル102のエントリを入れ替えるときにエントリを選択するための優先度情報との組が登録されたエントリを複数有する。また、キャッシュテーブル102は、受信したパケットの送信先アドレスをキーにしてフルテーブル103を検索したときにヒットしたエントリを「親」とするフルテーブル103の全エントリ(エントリ群)の内容が登録される。なお、ここで、フルテーブル,キャッシュテーブルといった場合、テーブル自体の他、それらの検索機構をも含んでいるものとする。
【0036】
パケット処理回路101は、パケットが入力されるとそのパケットヘッダから宛先ネットワークアドレス(以下、「アドレス」と記す)を取り出し、このアドレスをキーにしてキャッシュテーブル102を検索する。キャッシュテーブル102はこのキーで検索され、ヒットするエントリがあれば、そのヒットした旨をヒットしたエントリのあるキャッシュテーブル102のアドレスと共にパケット処理回路101に通知する。一方、キャッシュテーブル102にヒットしなかった場合には、ミスヒットした旨をパケット処理回路101に通知する。パケット処理回路101はヒットアドレスを通知されたときには検索処理を完了し、ミスヒットを通知されたときにはフルテーブル103の検索を行う。
【0037】
フルテーブル103の検索は、キーをフルテーブル103に入力して行う。フルテーブル103は、入力されたキーを基に検索され、ヒットしたアドレスをパケット処理回路101に通知する。
【0038】
このとき、キャッシュテーブル102とフルテーブル103のうちのいづれかヒットした方のテーブルは、ヒット状況データベース104を更新する。ヒット状況データベース104には、フルテーブルの全エントリについて、エントリ番号,キャッシュテーブル102でのヒットアドレス,フルテーブル103でのヒットアドレス,各エントリの優先度,ヒットがあった時刻およびどのエントリがどのエントリと同じエントリ群に属するかの情報が書かれている。ここで、エントリの優先度とは、フルテーブル103のエントリのうちのどのエントリをキャッシュテーブル102に入れるべきか、またどのエントリを出すべきかの優先度合をいい、後述のように、フルテーブルにも登録されているエントリ固有の閾値,エントリ固有の領域,ヒット回数と、ヒット状況データベースにのみ登録されるヒット時刻等の優先度情報で定められる。
【0039】
フルテーブル103は、エントリ選択装置105の指示に従って、フルテーブル103のエントリ内容をキャッシュテーブル102にコピーする。キャッシュテーブル102には、エントリ選択装置105の指示に従ってフルテーブル103から入力されたエントリが登録され(書き込まれ)、エントリ選択装置105の指示に従って、エントリ内容が消去(削除)される。
【0040】
エントリ選択装置105は、ヒット状況データベース104を参照して、各エントリの優先度に基づいて、キャッシュテーブル102に存在させるエントリを決定し、キャッシュテーブル102とフルテーブル103にデータの移動を指示する。
【0041】
次に、図2,図3,図4および図5を参照して、上述の各構成要素101〜105を詳細に説明する。
【0042】
図2はパケット処理回路101の詳細を示す。図2を参照すると、このパケット処理回路101は、ヘッダコピー回路1011がパケットを受け取り、このパケットからIPアドレスを含むヘッダをコピーしてアドレス抽出回路1012に送る。また、パケット自体は出方路情報付加回路1014に送る。アドレス抽出回路1012は、コピーされたヘッダからIPアドレスを抽出して、キャッシュテーブル102とフルテーブル103に送る。ヒットアドレス・出方路情報変換回路1013は、キャッシュテーブル102とフルテーブル103のいずれかからヒットアドレス情報を受け取り、このヒットアドレス情報を出方路情報に変換して出方路情報付加回路1014に送る。出方路情報付加回路1014は、ヘッダコピー回路1011からのパケットと出方路情報付加回路1014からの出方路情報を受け取り、それらを結合する。ヒットアドレス・出方路情報変換回路1013における変換は、一覧表を検索して行う。一覧表はヒットアドレスと出方路インタフェース番号の組が表になったものである。
【0043】
図3はキャッシュテーブル102の詳細を示す。図3を参照すると、キャッシュテーブル102では、検索キーレジスタ1021がパケット処理回路101におけるアドレス抽出回路1012からのIPアドレスを受け取る。最長一致検索回路1022は、このIPアドレスとビットマスク付メモリ1025の各エントリの内容とを比較して、最長一致となるエントリを決定する。最長一致検索回路1022は、決定したエントリのアドレス(メモリのアドレス)、つまりヒットアドレスあるいは一致しなかったという情報をパケット処理回路101および結果情報回路1023に送る。結果情報回路1023は、ヒットアドレスにヒットした時刻、つまり現時刻の情報を付加してヒット状況データベース104に送る。エントリ操作回路1024は、エントリ選択装置105およびフルテーブル103から送られてくる情報を受け取り、ビットマスク付メモリ1025の各エントリの削除,更新,読出しまたは書込みを行う。
【0044】
フルテーブル103は、当然にキャッシュテーブル102より大規模であるが、その構成は、図3に示したキャッシュテーブル102のブロック図と同様である。
【0045】
図4は、ヒット状況データベース104の詳細を示す。図4を参照すると、書込み読出し制御回路1041が、キャッシュテーブル102またはフルテーブル103からヒットアドレスとその時刻情報を受け取り、状況テーブル1042のうちのヒットアドレスと一致するエントリヒット時刻情報を書き込む。また、フルテーブル103からヒット情報を受け取った場合には、書込み読出し制御回路1041は、そのエントリ群の全エントリ情報をエントリ選択装置105に送る。
【0046】
状況テーブル1042は、エントリ毎に、そのエントリの番号,キャッシュテーブル102でのヒットアドレス,フルテーブル103でのヒットアドレス,キャッシュテーブル102におけるそのエントリの領域,キャッシュテーブル102における閾値,フルテーブル103における閾値,キャッシュヒット回数,ヒット時刻,キャッシュテーブル102にエントリ群を入れる時のそのエントリ番号およびフルテーブル103にエントリ群を入れる時のそのエントリ番号を格納する。
【0047】
図5は、エントリ選択装置105の詳細を示す。図5を参照すると、エントリ群代表値回路1057はヒット状況データベース104から上述のエントリ群全ての情報(N個)を受け取る。エントリ群代表値回路1057は、図6にその処理フローチャートを示すように、この全エントリから、閾値,領域,ヒット回数およびヒット時刻の各々について、最大値を持つエントリと最小値を持つエントリとを除外し、(N−2)個のエントリを抽出する。そして、抽出したエントリから閾値,領域,ヒット回数,ヒット時刻の4つの代表値を決める。各代表値は、図6に示すように、閾値と領域についてはエントリ中の最も高い値、ヒット回数は平均値、ヒット時刻は最近のものとする。各代表値は、閾値保持回路1053,領域保持回路1054,ヒット回数比較回路1055およびヒット時系列比較回路1056に送る。
【0048】
ここで、閾値とは、エントリ群選択の優先度を定める他の属性、すなわち、領域,ヒット回数およびヒット時刻に対して比較の対象となる基準値であり、。また、領域とは、そのエントリ固有の優先度をいい、ポリシーあるいは料金体系から決められ得る。
【0049】
比較回路1055〜1056は、キャッシュテーブル102に既に存在するエントリ群に関して、そのエントリ群とその代表値を組にして表に持っており、その表の各エントリ群の代表値と、エントリ群代表値回路1057から送られた値とを比較する。また、その際に、領域と閾値を考慮して比較を行う。本実施例では、ヒット回数,ヒット時刻を閾値と比較し、閾値を超えたエントリ群のみをまず選択し、さらに、比較回路1055〜1056に保持されている全エントリ群のヒット回数,ヒット時刻に、優先度を掛け算して算出した値の大きい順に優先度をつける。比較の結果、送られた代表値と、キャッシュテーブル102に既に存在するエントリ群とが、どのような順位にあるかを調停回路1052に送る。調停回路1052では、それぞれの回路から送られてきた順位データを元に、それらに差異がある場合には、それらを参考にして、図7にその処理フローチャートを示すように、最終的な順位を決定する。図7を参照すると、0〜1の乱数を発生し、その乱数を2等分して、1/2づつをヒット回数,ヒット時刻に割り当て、割り当てられた属性の順位を最終的な順位としてエントリ決定送付回路1051に送る。
【0050】
エントリ決定送付回路1051は、キャッシュテーブル102の空き状況を管理しており、N個のエントリを追加することのできる空きがあるかどうかを調べ、空きが有るときには、そのままN個のエントリを書き込み、また空きが無いには、順位の最も低いエントリが所属するエントリ群からキャッシュテーブル102のエントリを消去し、空きが十分になるまでこの手順を繰り返す。最後に、削除したエントリ群を各回路1053〜1056に送る。各回路1053〜1056は、削除したエントリ群情報を受け取り、表からそのエントリ群を削除する。
【0051】
なお、優先度は、上の説明では、閾値,領域,ヒット回数およびヒット時刻の4つの属性から定めるとしているが、本発明ではこれにとらわれることなく、優先度を定めるのにこれらの属性のうちの少なくとも一つを使用することも可能である。
【0052】
次に、本発明の第2の実施例として、キャッシュテーブル102の内部を2つの領域に分け、それぞれA、Bとした例について説明する。この例ではヒット状況データベース104には、ヒット回数をエントリ毎に記録する。また、エントリ選択装置105は、領域Aにおいては、エントリ群のヒット回数の代表値が閾値M以下のものをキャッシュテーブル102からの消去対象とし、領域Bにおいては、エントリ群のヒット回数の代表値が閾値Mの0.5倍以下のものを消去対象とし、さらに消去対象となったエントリ群に対して領域Aと領域Bに2対1の重みをつけて、キャッシュテーブル102から削除するエントリ群を選択する。例えば、閾値を領域Aは10、領域Bは5とし、領域Aと領域Bそれぞれからこれらの閾値を下回るエントリ群を選び出す。さらに、この選択されたエントリ群に対して、ある確率変数Nに基づいて削除するエントリ群を選択する。重み付けをして領域Aのエントリ群はN、領域Bのエントリ群は2Nとする。この結果、最も確率の高いエントリ群を消去対象として選択する。さらに削除が必要であれば、この操作を繰り返す。
【0053】
また、Aの重み付けを0(ゼロ)として、Aを確率によらずに削除対象から外すことも可能である。逆に閾値を無限大として、全てのエントリのヒット回数の代表値が閾値以下とする、つまり閾値を事実上使用しないことも可能である。
【0054】
また、ヒット回数を用いない方法も可能である。上記例では、閾値とヒット回数を代表値として用いることを領域A,Bで行ったが、これ以外の任意の組合せを領域A,Bについて行うことも可能である。例えば、閾値はA,Bという領域に異なる値を割り付、このA,Bとは全く独立なa,bという領域ではそれぞれヒット回数の平均値とヒット回数の最大値といった別の代表値を用いることも可能である。
【0055】
また、エントリ選択装置105は、上述のキャッシュテーブル102に対する操作と同様の操作をフルテーブル103に対しても行い、フルテーブル103からキャッシュテーブル102に入れるエントリを選択する。
【0056】
次に、第3の実施例について説明する。本例では、各エントリは、その優先度を定めるための属性として、フルテーブルのどの領域に入れることができるか(どの領域に属することができるか)という領域情報と閾値とを持つ。このような属性は、本実施例では固定とするが、動的に変更することが可能である。動的に変更する場合、例えば、属性の変更はポリシーサーバの指示に応じて行われる。ポリシーサーバは網の運用のためのルールが網の管理者によって記述されているものである。例えば、あるエントリは昼間は優先度が高いが夜は優先度が低いといったルールがポリシーサーバに記述されていると、ポリシーサーバーはそれに応じて昼と夜で優先度を切り替える必要があることを知り、各エントリの優先度の切り替えを行う。
【0057】
図8は、そのようなポリシーサーバ301が設けられた本発明の第2の実施形態のルータの全体構成図を示す。ポリシーサーバー301は、ヒット状況データベース104とエントリ選択装置105に対して、各エントリの領域,閾値の値を定義し、これをマッピング回路1043とマッピング回路1058を通じて優先制御に反映させる。
【0058】
すなわち、ポリシーサーバ301は、ユーザがフルテーブルの各エントリに対して定義した領域,閾値の値を端末302を通じて受け取り、ポリシーサーバ301内に保持する。さらに、ポリシーサーバ301は、保持している情報に変更があったときに、その情報をパケット処理回路101内のヘッダコピー回路1011とアドレス抽出回路1012を経由してヒット状況データベース104とエントリ選択装置105に送る(図9参照)。
【0059】
ヒット状況データベース104では、マッピング回路1043が書込み読出し制御回路1041を通じて、状況テーブル1042に書き込み(図10参照)、また、エントリ選択装置105では、マッピング回路1058が閾値保持回路1053および領域保持回路1054に存在する各エントリの閾値,領域を変更する(図11参照)。
【0060】
次に、本発明の第4の実施例について説明する。この例では、各エントリが持つ属性は、入力されたパケットにより変更され得る。パケットは、そのヘッダに属性を決める値を持っており、この値に従って、ヒットしたエントリの属性を変更する。
【0061】
アドレス抽出回路1012は、コピーされたパケットヘッダからアドレスを抽出して、そのアドレスをキャッシュテーブル102とフルテーブル103に送るとともに、パケットヘッダのアドレス、あるいはそれ以外のヘッダ部分、ここでは、IPバージョン4パケットのヘッダのTime To Live(TTL)の値によって領域の値,閾値を決定し、マッピング回路1043とマッピング回路1058に送る。領域の値,閾値は、例えば、TTLが32以上のときには領域=低優先、閾値=50とし、TTLが32未満のときには領域=高優先、閾値=100とする。マッピング回路1043とマッピング回路1058の動作は第3実施例における動作と同様である。
【0062】
次に、本発明の第5の実施例について説明する。この例では、エントリ選択装置105は、エントリ群の代表値を評価する際に、エントリ群を構成する全てのエントリのなかから所定の規則に従ってエントリを選んで,その選ばれたエントリ(計算対象エントリ)の値に基づいて求める。例えば,エントリ群を構成するエントリの最大値と最小値を除いた全ての値の平均値を代表値とする。あるいは、エントリ群を構成するエントリのヒット時刻の最近(最も近い過去)の時刻を持つエントリを除いたエントリの時刻の平均値を代表値とする。
【0063】
次に、本発明の第6の実施例では、エントリ選択装置105はエントリ群の代表値を評価する際に、計算対象となるエントリの全ての値のなかから所定の規則に従って選ばれた値を用いる。例えば、 エントリのヒット時刻の系列において、最近(最も近い過去)の時刻を代表値とする。
【0064】
次に、以上に説明したキャッシュの管理方法を実行するプログラムを半導体メモリ,CD−ROM,フロッピーディスク等の記録媒体に記録し、それをルータに読み込ませて実行するようにしてもよい。そのルータは、上述のフルテーブル,キャッシュおよびヒット状況データベースを備えており、また、読み込んだプログラムは、ルータに上述のパケット処理回路およびエントリ選択装置と同様な機能を発揮させる。
【0065】
【発明の効果】
本発明の第1の効果は、キャッシュを有するルータにおいて、エントリを群単位でキャッシュから出し入れする場合にも、キャッシュのヒット確率を上げることができることである。その理由は、よく使用されるエントリをキャッシュに置くようにするからである。よく使われるエントリは、使用頻度や、総使用回数などで定める優先度を用いて選ぶ。例えば、ランダムに選んだ場合に比べて使用頻度の高いものを選んだ場合に明らかにキャッシュヒット率が向上する。
【0066】
また、第2の効果は、あるポリシーに基づいて、処理性能を向上させるべきエントリに属性を指定できるため、優先度合いをつけることが可能になることである。例えば、顧客毎に異なる料金体系を採用している場合、高い料金を得ている顧客の持つアドレスを包含するようなエントリの優先度を上げることで、その顧客と通信するパケットの処理を高速化でき、低い料金の顧客との差別化が可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態のブロック図
【図2】図1におけるパケット処理回路101の詳細ブロック図
【図3】図1におけるキャッシュテーブル102の詳細ブロック図
【図4】図1におけるヒット状況データベース104の詳細ブロック図
【図5】図1におけるエントリ選択装置105の詳細ブロック図
【図6】図5におけるエントリ群代表値回路1057の処理フローチャート
【図7】図5における調停回路1052の詳細ブロック図
【図8】本発明の第2の実施形態のブロック図
【図9】図8におけるパケット処理回路101の詳細ブロック図
【図10】図8におけるヒット状況データベース104の詳細ブロック図
【図11】図8におけるエントリ選択装置105の詳細ブロック図
【図12】本発明を具体的に説明するための図
【符号の説明】
101 パケット処理回路
102 キャッシュテーブル
103 フルテーブル
104 ヒット状況データベース
105 エントリ選択装置
301 ポリシーサーバ
302 端末
1011 ヘッダコピー回路
1012 アドレス抽出回路
1013 ヒットアドレス・出方路情報変換回路
1014 出方路情報付加回路
1021 検索キーレジスタ
1022 最長一致検索回路
1023 結果情報回路
1024 エントリ操作回路
1025 ビットマスク付メモリ
1041 書込み読出し制御回路
1042 状況テーブル
1043 マッピング回路
1051 エントリ決定回路
1052 調停回路
1053 閾値保持回路
1054 領域保持回路
1055 ヒット数比較回路
1056 ヒット時系列比較回路
1057 エントリ群代表値回路
1058 マッピング回路

Claims (13)

  1. 全エントリに対して最長一致検索を行うためのフォワーディングテーブルと、
    全エントリの一部のエントリに対して最長一致検索を行うためのキャッシュテーブルとを備え、
    前記フォワーディングテーブルにおいてエントリを前記キャッシュテーブルに入れるときには、そのエントリを親とする全エントリを、また前記キャッシュテーブルからエントリを出すときには、そのエントリの親となる全エントリを、当該エントリの使用状況の評価値に対する閾値および削除あるいは移動されるエントリの領域対応の優先度に応じて選択することを特徴とするルータにおけるキャッシュテーブル管理装置。
  2. 全エントリに対して最長一致検索を行うためのフォワーディングテーブルあるいは全エントリの一部のエントリに対して最長一致検索を行うためのキャッシュテーブル内に仮想的な複数の領域を設定する手段と、
    該領域内では、それぞれ固有に、削除あるいは移動対象を決めるためのエントリ群の使用状況の評価値と、少なくとも削除対象に選択される可否を決める閾値と選択された場合に実際に削除あるいは移動されるエントリの該領域に応じて決まる優先度の一つを持つ手段と、
    該閾値および優先度に応じて入れ替え対象のエントリ群を選択する手段とを持つことを特徴とするルータにおけるキャッシュテーブル管理装置。
  3. 各エントリあるいは各エントリ群と各仮想的な領域を関連付ける手段、または各エントリあるいは各エントリ群にそれぞれ優先度を関連付ける手段、または各エントリあるいは各エントリ群にそれぞれ閾値を関連付ける手段の内の少なくとも一つの手段を備えたことを特徴とする請求項2に記載のルータにおけるキャッシュテーブル管理装置。
  4. 特定の時間区間において、エントリ群を構成する各エントリが持つ使用状況の評価値に対して、該使用状況を全てのエントリに対してあるいは一部のエントリに対して組み合わせた値あるいは統計値を各エントリ群の使用状況の評価値として用いる手段を備えたことを特徴とする請求項2に記載のルータにおけるキャッシュテーブル管理装置。
  5. プレフィクスビット列およびプレフィックス長から成るアドレスの集合を示す情報と、このアドレスの集合に対するパケットの出方路を示す情報と、優先度情報との組が登録されたエントリを複数有し最長一致検索されるフォワーディングテーブルと、
    入れ替えるべきエントリを親とする前記フォワーディングテーブルの全エントリが書き込まれ、またエントリが削除・移動されるときには、その親も削除・移動されるキャッシュテーブルと、
    前記フォワーディングテーブルの全エントリについて、その内容に加えてヒット情報が登録され、前記フォワーディングテーブルまたは前記キャッシュテーブルがヒットしたときにそのエントリの内容が更新されるヒット状況データベースと、
    パケットが入力されるとそのパケットヘッダから宛先ネットワークアドレスを取り出し、このアドレスをキーにして前記キャッシュテーブルまたは前記フォワーディングテーブルを検索し、得られた出方路にパケットを転送するパケット処理回路と、
    前記キャッシュテーブルに登録されている全エントリの前記優先度情報を含み、前記エントリ群入れ替えを行うときには、該優先度情報と前記ヒット状況データベースからの情報とを考慮して入れ替えるべきエントリ群を選択するエントリ選択装置と備えたことを特徴とするルータにおけるキャッシュテーブル管理装置。
  6. 前記エントリ選択装置は、
    前記ヒット状況データベースからエントリ群全ての情報を受け取り、この全エントリから、エントリ固有の優先度である領域,エントリ使用状況の評価値および閾値の代表値を決めるエントリ群代表値回路と、
    前記キャッシュテーブルに既に存在するエントリ群に関して、そのエントリ群とその代表値を組にして表に持っており、その表の各エントリ群の代表値と、前記エントリ群代表値回路から送られてくる代表値とを比較して、キャッシュテーブルに既に存在するエントリ群がどのような優先順位にあるかを送出する前記領域,エントリ使用状況の評価値および閾値対応の比較回路と、
    該比較回路から送られてきた優先順位データを基にエントリの最終的な入替え順位を決定する調停回路と、
    前記キャッシュテーブルの空き状況を管理しており、当該エントリ群を追加することのできる空きがあるかどうかを調べ、空きが無い場合には、前記調停回路が決定した順位の最も低いエントリが所属するエントリ群から前記キャッシュテーブルのエントリを消去して十分な空きを作り、また削除したエントリ群を前記表からの削除のために前記比較回路に送るエントリ決定送付回路とから成ることを特徴とする請求項5に記載のルータにおけるキャッシュテーブル管理装置。
  7. 前記エントリ使用状況の評価値として、ヒット回数またはヒット時刻またはその両者を採用することを特徴とする請求項2,請求項4または請求項6に記載のルータにおけるキャッシュテーブル管理装置。
  8. 前記各代表値は、閾値と領域についてはエントリ中の最も高い値、ヒット回数は平均値、ヒット時刻は最近のものとすることを特徴とする請求項7に記載のルータにおけるキャッシュテーブル管理装置。
  9. 前記調停回路は、0〜1の乱数を発生し、その乱数を2等分して、1/2づつをヒット回数とヒット時刻に割り当て、割り当てられた属性の順位を最終的な順位とすることを特徴とする請求項7または請求項8に記載のルータにおけるキャッシュテーブル管理装置。
  10. 前記エントリの優先度を受信パケットから得られる情報に応じて設定する手段を設けたことを特徴とする請求項2ないし請求項9のいずれかに記載のルータにおけるキャッシュテーブル管理装置。
  11. 前記フォワーディングテーブル内の優先度は、ポリシーサーバにより変更可能としたことを特徴とする請求項5ないし請求項10に記載のルータにおけるキャッシュテーブル管理装置。
  12. プレフィクスビット列およびプレフィックス長から成るアドレスの集合を示す情報と、このアドレスの集合に対するパケットの出方路を示す情報と、優先度情報との組が登録されたエントリを複数有し最長一致検索されるフォワーディングテーブルと、
    入れ替えるべきエントリを親とする前記フォワーディングテーブルの全エントリが書き込まれ、またエントリが削除・移動されるときには、その親も削除・移動されるキャッシュテーブルと、
    前記フォワーディングテーブルの全エントリについて、そ内容に加えてヒット情報が登録され、前記フォワーディングテーブルまたは前記キャッシュテーブルがヒットしたときにそのエントリの内容が更新されるヒット状況データベースとを備えたルータを、
    パケットが入力されるとそのパケットヘッダから宛先ネットワークアドレスを取り出し、このアドレスをキーにして前記キャッシュテーブルまたは前記フォワーディングテーブルを検索し、得られた出方路にパケットを転送するパケット処理回路と、
    前記キャッシュテーブルに登録されている全エントリの前記優先度情報を含み、前記エントリ群入れ替えを行うときには、該優先度情報と前記ヒット状況データベースからの優先度情報とを比較して入れ替えるべきエントリ群を選択するエントリ選択装置として機能させるためのプログラムを記録したコンピュータ読み込み可能なプログラム記録媒体。
  13. 前記エントリ選択装置は、
    前記ヒット状況データベースからエントリ群全ての情報を受け取り、この全エントリから、エントリ固有の優先度である領域,エントリ使用状況の評価値およびこれらの各々についての閾値の代表値を決めるエントリ群代表値手段と、
    前記キャッシュテーブルに既に存在するエントリ群に関して、そのエントリ群とその代表値を組にして表に持っており、その表の各エントリ群の代表値と、前記エントリ群代表値回路から送られてくる代表値とを比較して、キャッシュテーブルに既に存在するエントリ群がどのような優先順位にあるかを送出する前記領域,エントリ使用状況の評価値および閾値対応の比較手段と、
    該比較回路から送られてきた優先順位データを基にエントリの最終的な入替え順位を決定する調停手段と、
    前記キャッシュテーブルの空き状況を管理しており、当該エントリ群を追加することのできる空きがあるかどうかを調べ、空きが無い場合には、前記調停回路が決定した順位の最も低いエントリが所属するエントリ群から前記キャッシュテーブルのエントリを消去して十分な空きを作り、また削除したエントリ群を前記表からの削除のために前記比較回路に送るエントリ決定送付手段とから成ることを特徴とする請求項12に記載のプログラム記録媒体。
JP2000106744A 2000-04-07 2000-04-07 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体 Expired - Fee Related JP3591420B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000106744A JP3591420B2 (ja) 2000-04-07 2000-04-07 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体
US09/828,160 US6993031B2 (en) 2000-04-07 2001-04-09 Cache table management device for router and program recording medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000106744A JP3591420B2 (ja) 2000-04-07 2000-04-07 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体

Publications (2)

Publication Number Publication Date
JP2001290718A JP2001290718A (ja) 2001-10-19
JP3591420B2 true JP3591420B2 (ja) 2004-11-17

Family

ID=18619862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000106744A Expired - Fee Related JP3591420B2 (ja) 2000-04-07 2000-04-07 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体

Country Status (2)

Country Link
US (1) US6993031B2 (ja)
JP (1) JP3591420B2 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100686732B1 (ko) * 2000-08-26 2007-02-23 삼성전자주식회사 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터
US7146478B2 (en) 2001-03-19 2006-12-05 International Business Machines Corporation Cache entry selection method and apparatus
US7167471B2 (en) * 2001-08-28 2007-01-23 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
US8532127B2 (en) 2001-10-19 2013-09-10 Juniper Networks, Inc. Network routing using indirect next hop data
WO2003044998A2 (en) * 2001-11-15 2003-05-30 University Of Southern California Optically boosted router
GB2385233B (en) * 2002-02-07 2004-04-21 3Com Corp Network switch with parallel working of look-up engine and network processor
US7277399B1 (en) * 2002-04-08 2007-10-02 Cisco Technology, Inc. Hardware-based route cache using prefix length
JP3936883B2 (ja) 2002-04-08 2007-06-27 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
KR100429904B1 (ko) * 2002-05-18 2004-05-03 한국전자통신연구원 차등화된 QoS 서비스를 제공하는 라우터 및 그것의고속 IP 패킷 분류 방법
US7114026B1 (en) * 2002-06-17 2006-09-26 Sandeep Khanna CAM device having multiple index generators
US7184437B1 (en) 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
US7647414B2 (en) * 2002-07-26 2010-01-12 Broadcom Corporation System and method for managing multiple stack environments
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US6717946B1 (en) * 2002-10-31 2004-04-06 Cisco Technology Inc. Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory
JP4154213B2 (ja) * 2002-11-01 2008-09-24 富士通株式会社 パケット処理装置
KR100541846B1 (ko) * 2002-11-27 2006-01-11 한국전자통신연구원 3 단계 테이블로 구성된 아이피 주소 룩업 시스템 및 그방법
JP4101631B2 (ja) * 2002-12-13 2008-06-18 富士通株式会社 スイッチング装置
US7425735B2 (en) * 2003-02-24 2008-09-16 Samsung Electronics Co., Ltd. Multi-layer phase-changeable memory devices
US7646773B2 (en) * 2004-08-02 2010-01-12 Extreme Networks Forwarding database in a network switch device
JP4556761B2 (ja) * 2005-05-06 2010-10-06 株式会社日立製作所 パケット転送装置
US8254278B2 (en) * 2005-05-23 2012-08-28 Xconnect Global Networks Ltd Efficient address caching for packet telephony services
US20070140241A1 (en) * 2005-12-16 2007-06-21 General Instrument Corporation Fast processing of multicast data
US7894451B2 (en) * 2005-12-30 2011-02-22 Extreme Networks, Inc. Method of providing virtual router functionality
US7822033B1 (en) 2005-12-30 2010-10-26 Extreme Networks, Inc. MAC address detection device for virtual routers
JP4646823B2 (ja) * 2006-02-17 2011-03-09 エスアイアイ・ネットワーク・システムズ株式会社 ルータ装置、ルータ装置におけるルート決定方法
US8040895B2 (en) * 2006-03-22 2011-10-18 Cisco Technology, Inc. Method and system for removing dead access control entries (ACEs)
CN100596097C (zh) * 2006-03-29 2010-03-24 华为技术有限公司 一种学习数据转发信息的方法及装置
JP4940824B2 (ja) * 2006-08-18 2012-05-30 富士通セミコンダクター株式会社 不揮発性半導体メモリ
US20080240098A1 (en) * 2007-03-26 2008-10-02 James Uttaro Method and apparatus for providing flexible virtual forwarding table
WO2009046568A1 (en) * 2007-10-10 2009-04-16 Alcatel Shanghai Bell Co., Ltd. Method for forwarding packets via a group of cooperative network elements and network element
US7715362B1 (en) * 2007-11-23 2010-05-11 Juniper Networks, Inc. Identification fragment handling
JP5049763B2 (ja) * 2007-12-19 2012-10-17 キヤノン株式会社 ネットワークタイマ管理方法及び装置
JP4994302B2 (ja) * 2008-05-30 2012-08-08 Kddi株式会社 情報検索装置、データ処理装置、通信トラヒック測定装置、データベース調査装置及びコンピュータプログラム
FR2934108B1 (fr) * 2008-07-21 2010-09-17 Commissariat Energie Atomique Methode d'ordonnancement de paquets
US8908696B2 (en) * 2008-09-09 2014-12-09 At&T Intellectual Property I, L.P. Systems and methods for optimized route caching
US9385938B2 (en) 2010-06-22 2016-07-05 Blackberry Limited Information distribution in a wireless communication system
US8570962B2 (en) * 2010-06-22 2013-10-29 Blackberry Limited Information selection in a wireless communication system
US8750144B1 (en) * 2010-10-20 2014-06-10 Google Inc. System and method for reducing required memory updates
US8605732B2 (en) 2011-02-15 2013-12-10 Extreme Networks, Inc. Method of providing virtual router functionality
US8630294B1 (en) 2011-05-11 2014-01-14 Juniper Networks, Inc. Dynamic bypass mechanism to alleviate bloom filter bank contention
WO2013042358A1 (en) * 2011-09-21 2013-03-28 Nec Corporation Communication apparatus, communication system, communication control method, and program
US9178846B1 (en) 2011-11-04 2015-11-03 Juniper Networks, Inc. Deterministic network address and port translation
US8886827B2 (en) * 2012-02-13 2014-11-11 Juniper Networks, Inc. Flow cache mechanism for performing packet flow lookups in a network device
US9253019B1 (en) 2012-03-09 2016-02-02 Juniper Networks, Inc. Fault tolerance for authentication, authorization, and accounting (AAA) functionality
US8954609B1 (en) 2012-04-25 2015-02-10 Juniper Networks, Inc. Time adjustment using time-to-live values
US8948177B2 (en) * 2012-07-30 2015-02-03 Hewlett-Packard Development Company, L.P. Policy based routing
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
BR112015014211A2 (pt) * 2012-12-19 2017-07-11 Nec Corp aparelho de processamento de pacotes, método de configuração de entrada de fluxo e programa
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
US10129207B1 (en) 2015-07-20 2018-11-13 Juniper Networks, Inc. Network address translation within network device having multiple service units
US10171419B2 (en) * 2016-06-19 2019-01-01 Mellanox Technologies TLC Ltd. IP route caching with two search stages on prefix length
US10148571B2 (en) 2016-06-20 2018-12-04 Mellanox Technologies Tlv Ltd. Jump on a match optimization for longest prefix match using a binary search tree
CN107579916B (zh) 2016-07-04 2021-03-23 新华三技术有限公司 转发表项访问方法及装置
US10469446B1 (en) 2016-09-27 2019-11-05 Juniper Networks, Inc. Subscriber-aware network address translation
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
US10684960B2 (en) 2017-12-04 2020-06-16 Mellanox Technologies Tlv Ltd. Managing cache memory in a network element based on costs associated with fetching missing cache entries
US10515015B2 (en) 2018-03-20 2019-12-24 Mellanox Technologies Tlv Ltd. Hash table-based mask length computation for longest prefix match caching
US10616113B2 (en) 2018-07-19 2020-04-07 Mellanox Technologies Tlv Ltd. Longest prefix match using a binary search tree with compressed hash tables
US11502957B2 (en) 2020-05-14 2022-11-15 Mellanox Technologies, Ltd. Avoiding markers for longest prefix match based on binary search tree algorithm
CN116016432A (zh) * 2022-12-30 2023-04-25 迈普通信技术股份有限公司 报文转发方法、装置、网络设备和计算机可读存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3371006B2 (ja) 1993-03-03 2003-01-27 株式会社日立製作所 テーブル検索方法及びルータ装置
US6104701A (en) * 1996-12-13 2000-08-15 International Business Machines Corporation Method and system for performing a least cost routing function for data communications between end users in a multi-network environment
JP3232023B2 (ja) * 1997-04-16 2001-11-26 日本電信電話株式会社 パケット処理方法および装置
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
US6266706B1 (en) * 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
JP3301359B2 (ja) * 1997-09-30 2002-07-15 日本電気株式会社 リスト管理システム、方法及び記憶媒体
JP4044226B2 (ja) * 1997-12-26 2008-02-06 株式会社東芝 Atm中継装置及びルータ装置
JP3239836B2 (ja) * 1998-04-03 2001-12-17 日本電気株式会社 ルータ装置及び伝達ルートの設定方法
US6522632B1 (en) * 1998-05-06 2003-02-18 Avici Systems Apparatus and method for efficient prefix search
JP2000076168A (ja) * 1998-08-28 2000-03-14 Nec Corp キャッシュ更新通知配信方法及びそのシステム
US6295296B1 (en) * 1998-09-08 2001-09-25 Cisco Technology, Inc. Use of a single data structure for label forwarding and imposition
JP3199051B2 (ja) 1999-02-10 2001-08-13 日本電気株式会社 キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体
US6665297B1 (en) * 1999-12-09 2003-12-16 Mayan Networks Corporation Network routing table
US6697363B1 (en) * 2000-06-28 2004-02-24 Alcatel Canada Inc. Method and apparatus for longest matching prefix determination in a communication network

Also Published As

Publication number Publication date
US20010028651A1 (en) 2001-10-11
US6993031B2 (en) 2006-01-31
JP2001290718A (ja) 2001-10-19

Similar Documents

Publication Publication Date Title
JP3591420B2 (ja) ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体
US6768739B1 (en) Router with a cache having a high hit probability
JP4482259B2 (ja) 4ウェイハッシュ表のための方法および装置
US7274693B1 (en) Search engine for forwarding table content addressable memory
JP3453148B2 (ja) スイッチング装置における高速可変長ベストマッチルックアップ
CA2434876C (en) Method and apparatus for ternary content addressable memory (tcam) table management
US6192051B1 (en) Network router search engine using compressed tree forwarding table
Ruiz-Sánchez et al. Survey and taxonomy of IP address lookup algorithms
CN107528783B (zh) 利用对前缀长度进行两个搜索阶段的ip路由缓存
US6956858B2 (en) Network routing table and packet routing method
US7099324B2 (en) System and method for processing packets
CN109905480B (zh) 基于内容中心性的概率缓存内容放置方法
US20080192754A1 (en) Routing system and method for managing rule entries of ternary content addressable memory in the same
KR20140067881A (ko) 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
CN113783779B (zh) 命名数据网络中分级随机缓存方法
CN110365801B (zh) 信息中心网络中基于分区的协作缓存方法
CN110233901A (zh) 一种内容中心网络缓存方法及***
US7330469B2 (en) Internet protocol address lookup system and method using three-layer table architecture
Yu et al. Forwarding engine for fast routing lookups and updates
US7590112B2 (en) Packet forwarding apparatus of high speed routing system and routing lookup method using the same
JP2009017439A (ja) パケット転送装置およびパケット転送方法。
Kurniawan et al. Modified-LRU algorithm for caching on named data network
JP4646823B2 (ja) ルータ装置、ルータ装置におけるルート決定方法
EP1657859B1 (en) Protocol speed increasing device
US7159019B2 (en) Information collection apparatus and method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040524

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: 20040803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040816

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: 20080903

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees