JP2002325091A - フロー識別検索装置および方法 - Google Patents
フロー識別検索装置および方法Info
- Publication number
- JP2002325091A JP2002325091A JP2001246561A JP2001246561A JP2002325091A JP 2002325091 A JP2002325091 A JP 2002325091A JP 2001246561 A JP2001246561 A JP 2001246561A JP 2001246561 A JP2001246561 A JP 2001246561A JP 2002325091 A JP2002325091 A JP 2002325091A
- Authority
- JP
- Japan
- Prior art keywords
- search
- rule
- grouped
- associative memory
- related information
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
ルールを検索ビット幅に制限のある連想メモリを用いな
がら高速に検索可能なフロー識別検索装置及び方法を実
現する。 【解決手段】 フロー識別のルール11a〜14aの検
索項目を複数のグループ15,16にグループ化し、グ
ループ化された各ルールの検索項目を検索関連情報Sr
ch.Tag(最初のグループを除く各グループ)及び
検索回数情報Flagとともに連想メモリ621へ格納
する。また、次検索回数情報(各ルールにおいて検索の
必要な次のグループがある場合),照合関連情報Ass
oc.Tag,パケットに対する処理(検索が必要な次
のグループがある場合には再検索の指示,検索が必要な
次のグループがない場合はフロー識別の処理)を検索結
果記憶装置623に格納する。これにより、グループ単
位のビット幅による検索を可能とする。
Description
rotocol)ルータ等のパケット転送装置においてパケッ
ト転送処理を行うに当たり、IPパケット等のパケット
に含まれるヘッダ情報などの情報によりそのパケットを
どのように処理するかを識別するフロー識別検索装置お
よび方法に関し、特に、パケットに対する処理を決定す
る際に検索するテーブル等の検索方法に関するものであ
る。
においては、パケットのヘッダ(Packet header)に搭
載された宛先アドレスを基に経路表を検索し、次の方路
を決定していた。経路表には宛先アドレスと次の方路の
関係が保持されている。このように従来のインターネッ
ト等のネットワークでは宛先アドレスのみを用いた単純
な転送処理を行うだけであった。以下、この点について
具体的な構成を例に挙げて説明する。
ように転送されるかを示すもので、図中、1はルータ、
2−1,2−2,2−3はルータ1に接続されているネ
ットワーク、3−1,3−2,3−3はルータ1とネッ
トワーク2−1,2−2,2−3とを接続する信号線、
4はIPパケットである。また、5−1,5−2,……
5−Aはネットワーク2−1に存在する端末、6−1,
6−2,……6−Bはネットワーク2−2に存在する端
末、7−1,7−2,……7−Cはネットワーク2−3
に存在する端末である(なお、A,B,Cは2以上の任
意の整数である。)。
スは慣例に従って8ビットずつ「.」で区切ってそれぞ
れを10進数で記述しており、「/」の後の数値はIP
アドレスのうち上位から何ビット分をネットワークアド
レスとするかを表している。
ドレスとデータを有する。従来、ルータ1は入力された
IPパケット4のIPヘッダに記述された宛先IPアド
レスのみ検索し、どの信号線からIPパケットを送出す
るか決定していた。
がりに伴い、宛先IPアドレスのみを用いた従来の単純
な転送処理だけは十分でなくなってきており、より高度
な転送制御が必要となっている。例えば、データネット
ワークにおけるサービスの多様化やセキュリティーの問
題に対応するため、パケットのIPヘッダに搭載された
宛先IPアドレスだけでなく送信元IPアドレスやその
他の情報(TCP〔Transmission Control Protocol〕
/UDP〔User Datagram Protocol〕ポート番号等)を
検索し、また、IPヘッダだけでなくパケット中の他の
ヘッダ情報を検索し、より詳細にパケットを識別してQ
oS(Quality of Service)制御やポリシー制御のための
様々な処理を行うフロー識別に注目が集まっている。こ
のように、フロー識別とはQoS,VPN(Virtual Pr
ivate Network),ファイヤーウォール等のIP付加価
値サービスを実現するために、IPパケットのフロー毎
に異なる処理を行うことを意味する。
に識別し、契約に応じた優先度を付けてパケットを送出
するといった付加価値サービスを実現したり、悪意のユ
ーザからのパケットを廃棄するといったことを実現す
る。より具体的には、特定のユーザからの特定のアプリ
ケーションのパケット転送のQoSを上げるためには、
そのユーザの送信元アドレスとTCP/UDPポート番
号を基にパケットの優先制御を行うことでQoS制御が
できる。また、特定のアプリケーションの通信を禁止し
てパケットを廃棄する場合は、そのアプリケーションに
割り当てられたTCP/UDPポート番号のパケットが
転送されないようにフィルタリングすることでポリシー
制御ができる。これらの処理に必要なのが次に述べるル
ールを格納したルール表(ポリシーテーブル(Policy t
able)とも呼ぶ)検索である。
(パケットヘッダのフィールド情報)としては、宛先ア
ドレス(DA)、送信元アドレス(SA)、Proto
col(プロトコル識別子〔PID〕)、宛先ポート番
号(DP)、送信元ポート番号(SP)、サービス差別
化符号(DSCP;Differentiated Service Code Poin
t)の6つが代表的である。そして、これら検索項目に
対応する情報とパケットに対する処理(Action)
(最優先で送出、中優先で送出、低優先で送出、廃棄
等)との組み合わせを以下、ルール(あるいはポリシ
ー)と呼ぶが、ルールは主にネットワーク管理者によっ
て決定され、ルータに設定される。
したフロー識別におけるルールの一例を示すもので、図
中、10はルール表、11,12,13,14はルール
である。ルール表10は、パケットヘッダの複数のフィ
ールド情報をキーとして検索し、そのパケットに対する
処理を決めるために用いられる。本ルール11〜14を
図19のルータ1に設定した場合、例えばネットワーク
2−1の端末5−1から、ネットワーク2−3の端末7
−1へProtocolがUDPで宛先ポート番号が1
00のパケットを送出する場合、そのパケットの宛先ア
ドレス、送信元アドレス、Protocol、宛先ポー
ト番号がルール11の全検索項目と一致する(但し、ル
ール11の宛先ポート番号は如何なる値にも一致するD
on’tcare)ので、ルータ1はルール11の「処
理」に記述された動作をそのパケットに行う。即ち、ル
ータ1はそのパケットを最優先で送出する。
情報の一例を示すものである。IPパケットは、主とし
てローカルネットワークヘッダ21、IPヘッダ22、
上位ヘッダ(図ではTCPヘッダ23)、ユーザデータ
(図ではTCPデータ24)、ローカルネットワークト
レイラ25からなるが、各ヘッダにはフロー識別に使用
される可能性のある項目が複数存在する。
上がるに従って、より詳細にパケットを識別する必要が
高まり、検索すべきヘッダの項目数も増えてきている。
また、近年、導入が始まったIPv6では宛先IPアド
レス、送信元IPアドレスはそれぞれ128ビット長を
有し、従来のIPv4の32ビットに比べてビット数が
大幅に拡大した。検索項目の拡大とIPv6の導入によ
りフロー識別のための検索ビット数が増加し、現状40
0ビット程度の検索が必要となってきている。
のフィールド情報よりなるルール(エントリとも言う)
の中から目的とするパケットのヘッダ情報に最も類似し
あるいは一致するものを検索する必要が有る。このよう
な検索を行う一つの方法としてルール表を上から下まで
全検索する方法が考えられる。しかしながら、この方法
ではルール表のルールが長くなる(ルールのビット数が
多くなる)と、検索に多大の時間を要するという問題が
ある。
方式としては、二分探索木のようなツリー構造を用いた
方式や近年実用化されてきている連想メモリ(CAM
〔Content Addressable Memory〕)を用いた方式が採用
されている。
ツリー構造を用いてIPアドレスを検索する場合の問題
点について説明する。図中、31はIPv4の場合のツ
リー構造、32はIPv6の場合のツリー構造を示して
おり、ツリーを用いた場合、IPv6のように検索ビッ
ト幅が長くなると、それだけツリーが長大化し、検索す
る回数が増え、メモリを参照する回数が増加し、検索速
度が遅くなるという問題があった。特に、フロー識別を
実現する場合、IPアドレスだけではなく、その他の検
索項目が必要で、検索項目が増えれば増える程、一様に
ツリーが長大化し、検索速度が遅くなるという問題もあ
った。
ようすを示すもので、図中、41は連想メモリ、42は
連想メモリ41に格納されているルール、43はルール
に従った処理を格納する検索結果格納メモリ、44は検
索結果格納メモリ43に格納されている検索結果として
の処理である。
ルール42に従った処理44を検索結果格納メモリ43
に格納する。検索は、検索すべき項目を連想メモリ41
へ入力して検索を行い、検索後、入力された検索項目が
いずれかのルールに一致した場合には一致したルールの
処理が格納されている検索結果格納メモリ43を調べ、
パケットに対して必要な処理を行っていた。
としてアクセスするのではなく、各番地に記録された値
をキーとしてアクセスすることができる記憶素子であっ
て、入力された検索対象となるデータと連想メモリ内に
格納している全てのデータを1度に比較する特徴を持っ
ている。連想メモリの中には、各番地に‘0’と‘1’
のバイナリ(Binary)の値だけでなく、‘0’および
‘1’のいずれにも一致する‘Don’t Care’
も使えるターナリー(Ternary)のものもある。このよ
うなターナリーの連想メモリ(TCAM)を用いること
で非常に高速なルール表の検索が可能となる。しかしな
がら、連想メモリは検索できるビット幅に制限があり、
上述した現在必要となっている400ビット程度の検索
を行うことができる連想メモリは存在せず、IPv6を
含んだフロー識別を行うことが出来ないという問題があ
った。
ic Random Access Memory)やDRAM(Dynamic Rando
m Access Memory)と異なり、横方向の容量拡張に適し
ていない記憶素子である。これはTCAM、CAMとS
RAM、DRAMとのアクセス方法の違いに起因してい
る。SRAMやDRAMは番地でアクセスするので、横
方向を拡張する際には、複数のバンクに分けて、同じア
ドレス信号を各メモリバンクに引き込むことで横方向の
拡張が容易に実現できる。
記憶された内容でアクセスするので、内容を横方向に分
割して複数のTCAMやCAMのバンクに記憶しても、
各TCAM間やCAM間の連携がとれないので、期待し
た結果が得られない。
っており、このような問題はますます顕在化する。例え
ば、フロー識別のルールの高度化により、より高いレイ
ヤのヘッダ情報を必要とすることやIPv6等の長いア
ドレス(128ビット)を使うこと等により、ルール表
の横幅は増加している。IPv6の場合、上で述べた6
つのフィールド情報だけでもSA(128bit)、D
A(128bit)、SP(16bit)、DP(16
bit)、PID(8bit)、DSCP(8bit)
であり、合計304ビットとなる。また、これら以外の
フィールド情報も加えると上述したようにルール表の横
幅は容易に400ビット程度になる。
に長い検索ビット幅を有するフロー識別のルールを検索
可能なフロー識別検索装置および方法を実現することに
ある。
に、請求項1記載のフロー識別検索装置は、パケットに
含まれ該パケットのフローの識別に使用される検索項目
をもとに、前記検索項目と該検索項目により識別される
フローのパケットに対して行う処理とを組み合わせたル
ールを複数備えるルール表を検索し、前記パケットに対
して行う処理を決定するフロー識別検索装置であって、
前記各ルールに含まれる検索項目を予め定めた複数のグ
ループにグループ化したグループ化検索項目と、該グル
ープ化検索項目が属するグループ及びルールをそれぞれ
表す検索回数情報及び検索関連情報とを組み合わせて保
持する連想メモリと、前記連想メモリに入力したグルー
プ化検索項目,検索回数情報及び検索関連情報の組み合
わせが該連想メモリで検索された際に行う処理と、前記
連想メモリを次に検索する際に検索するルールを表す照
合関連情報とを、前記連想メモリが保持する前記組み合
わせに対応して保持する検索結果記憶装置と、入力され
たパケットから前記検索項目を取り出して前記グループ
化検索項目を生成し、検索すべきグループ及びルールを
表す検索回数情報及び検索関連情報と該グループに対応
する前記グループ化検索項目とを前記連想メモリへ入力
して検索を行い、検索された前記連想メモリ上の組み合
わせに対応して前記検索結果記憶装置が保持する前記処
理及び前記照合関連情報を取得し、該処理として前記パ
ケットに対して行う処理内容が得られるまで、次に検索
すべきグループを表す検索回数情報と該グループに対応
する前記グループ化検索項目と取得した前記照合関連情
報とを前記連想メモリに入力して再び前記検索を行う処
理装置とを有することを特徴としている。
求項1記載のフロー識別検索装置において、前記処理装
置は、前記ルール表上の各ルールに含まれる前記検索項
目をグループ化して前記グループ化検索項目を生成し、
生成された各グループ化検索項目が属しているルール及
びグループをもとに前記検索回数情報,前記検索関連情
報及び前記照合関連情報を生成して、生成された前記検
索回数情報,検索関連情報及びグループ化検索項目を組
み合わせて前記連想メモリに格納するとともに、生成さ
れた前記照合関連情報と該照合関連情報が示すルールに
含まれる前記処理とを組み合わせて前記検索結果記憶装
置に格納することを特徴としている。
求項2記載のフロー識別検索装置において、前記処理装
置は、前記各グループを識別するためのグループ番号を
前記検索回数情報として前もって前記各グループに付与
し、前記グループ化検索項目と該グループ化検索項目が
属するグループに付与された前記グループ番号とを組み
合わせて前記連想メモリに格納することを特徴としてい
る。
求項2記載のフロー識別検索装置において、前記処理装
置は、前記各ルールを識別するためのルール番号を前記
検索関連情報及び前記照合関連情報としてルール毎に決
定して、入力されたパケットに関して最初に検索の対象
となるグループに関しては、前記グループ化検索項目
と、任意のルール番号に一致するデータが設定された前
記検索関連情報とを組み合わせて前記連想メモリに格納
し、前記最初に検索の対象となるグループ以外の各グル
ープに関しては、前記グループ化検索項目と、該グルー
プ化検索項目が属するルールに付与された前記ルール番
号とを組み合わせて前記連想メモリに格納することを特
徴としている。
求項4記載のフロー識別検索装置において、前記処理装
置は、前記連想メモリが保持する前記各組み合わせに関
して前記連想メモリの検索を必要とする次のグループが
存在する場合には、次に前記連想メモリを検索する際に
検索すべきルールに付与されたルール番号と前記連想メ
モリの再検索を指示する処理とを組み合わせて前記検索
結果記憶装置に格納し、前記各組み合わせに関して前記
連想メモリの検索を必要とする次のグループが存在しな
い場合には、入力されたパケットに対して行うべき処理
を前記検索結果記憶装置に格納することを特徴としてい
る。
求項2記載のフロー識別検索装置において、前記処理装
置は、前記各ルールに含まれる前記検索項目をグループ
化する際、同一のグループに属する複数のグループ化検
索項目が特定のデータに一致する可能性があるかどうか
を調べ、一致する可能性がある場合には、該複数のグル
ープ化検索項目のうち最も範囲が狭いグループ化検索項
目を除く各グループ化検索項目について、該一致する可
能性のあるグループ化検索項目の内容として前記最も範
囲が狭いグループ化検索項目と同じ内容を持ち且つ該一
致する可能性のあるグループ化検索項目以外のグループ
化検索項目及び処理として各グループ化検索項目が属す
るルールと同じ内容を持つ新たなルールを生成して前記
ルール表に追加し、該新たなルールが追加されたルール
表をもとに前記連想メモリ及び前記検索結果記憶装置に
情報を格納することを特徴としている。
求項6記載のフロー識別検索装置において、前記処理装
置は、前記新たなルールに含まれる検索項目をグループ
化する際、前記検索結果記憶装置に格納する前記照合関
連情報を、前記最も範囲が狭いグループ化検索項目に対
応して前記検索結果記憶装置に格納する照合関連情報と
同じ内容に設定することを特徴としている。
求項6記載のフロー識別検索装置において、前記連想メ
モリは、入力された前記グループ化検索項目,前記検索
回数情報及び前記検索関連情報の組み合わせが前記連想
メモリに保持されている複数の組み合わせに一致する場
合に、該複数の組み合わせが格納されている物理アドレ
スのうちの何れかを所定の基準に従い選択して検索結果
として出力し、前記処理装置は、前記新たなルールが追
加されたルール表を前記連想メモリ及び前記検索結果記
憶装置に展開した後の検索時において、前記連想メモリ
に入力された前記グループ化検索項目,前記検索回数情
報及び前記検索関連情報の組み合わせが前記連想メモリ
に保持されている複数の組み合わせに一致したときに、
前記連想メモリが、該複数の組み合わせに含まれるグル
ープ化検索項目のうち最も範囲の狭いグループ化検索項
目を含む物理アドレスを検索結果として出力するよう
に、前記新たなルールを前記ルール表上に挿入すること
を特徴としている。
求項2記載のフロー識別検索装置において、前記処理装
置は、前記ルール表上におけるルールの中に、各ルール
に含まれる検索項目の範囲が互いに重なり合う複数のル
ールが存在するかどうか調べ、該複数のルールが存在す
る場合には、該複数のルールのうち予め決められたルー
ル以外の各ルールについて、該各ルールに含まれる検索
項目の範囲から重なり合う範囲を除いて重なり合いのな
い範囲を求め、該重なり合いのない範囲に対応する新た
なルールを生成して該各ルールを置き換え、該ルールの
置き換えがなされたルール表をもとに前記連想メモリ及
び前記検索結果記憶装置に情報を格納することを特徴と
している。
請求項1記載のフロー識別検索装置において、前記連想
メモリの各物理アドレスに格納する前記検索回数情報,
前記検索関連情報及び前記グループ化検索項目のビット
幅の総和が前記連想メモリのビット幅に一致するよう
に、前記検索項目がグループ化されていることを特徴と
している。
パケットに含まれ該パケットのフローの識別に使用され
る検索項目をもとに、前記検索項目と該検索項目により
識別されるフローのパケットに対して行う処理とを組み
合わせたルールを複数備えるルール表を検索し、前記パ
ケットに対して行う処理を決定するフロー識別検索方法
であって、前記各ルールに含まれる検索項目を予め定め
た複数のグループにグループ化したグループ化検索項目
と、該グループ化検索項目が属するグループ及びルール
をそれぞれ表す検索回数情報及び検索関連情報とを組み
合わせて保持する連想メモリと、前記連想メモリに入力
したグループ化検索項目,検索回数情報及び検索関連情
報の組み合わせが前記連想メモリで検索されたときに行
う処理と、前記連想メモリを次に検索する際に検索する
ルールを表す照合関連情報とを、前記連想メモリが保持
する前記組み合わせに対応して保持する検索結果記憶装
置とを用意するステップと、入力されたパケットから前
記検索項目を取り出してグループ化を行い前記グループ
化検索項目を生成するステップと、最初に検索すべきグ
ループに対応する前記グループ化検索項目と該グループ
を表す検索回数情報とを前記連想メモリへ入力して検索
を行わせるステップと、前記連想メモリから出力される
検索結果に対応して前記検索結果記憶装置に保持されて
いる前記処理及び前記照合関連情報を取得するステップ
と、取得した処理が前記連想メモリの再検索を示してい
る場合には、次に検索すべきグループを表す検索回数情
報,該グループに対応する前記グループ化検索項目及び
取得した前記照合関連情報と同じ内容を持つ検索関連情
報を前記連想メモリに入力して再度検索を行わせるステ
ップと、前記処理が入力されたパケットに対して行うべ
き処理内容を示している場合に、前記連想メモリに対す
る検索を終了させて該処理内容を出力するステップとを
有することを特徴としている。
請求項11記載のフロー識別方法において、前記各ルー
ルに含まれる前記検索項目をグループ化する際、同一の
グループに属する複数のグループ化検索項目が特定のデ
ータに一致する可能性があるかどうかを調べ、一致する
可能性がある場合には、該複数のグループ化検索項目の
うち最も範囲が狭いグループ化検索項目を除く各グルー
プ化検索項目について、該一致する可能性のあるグルー
プ化検索項目の内容として前記最も範囲が狭いグループ
化検索項目と同じ内容を持ち且つ該一致する可能性のあ
るグループ化検索項目以外のグループ化検索項目及び処
理として各グループ化検索項目が属するルールと同じ内
容を持つ新たなルールを生成して前記ルール表に追加す
るステップと、該新たなルールが追加されたルール表を
もとに前記連想メモリ及び前記検索結果記憶装置に情報
を格納するステップとを有することを特徴としている。
請求項11記載のフロー識別方法において、前記ルール
表上におけるルールの中に、各ルールに含まれる検索項
目の範囲が互いに重なり合う複数のルールが存在するか
どうか調べ、該複数のルールが存在する場合には、該複
数のルールのうち予め決められたルール以外の各ルール
について、該各ルールに含まれる検索項目の範囲から重
なり合う範囲を除いて重なり合いのない範囲を求め、該
重なり合いのない範囲に対応する新たなルールを生成し
て該各ルールを置き換えるステップと、該ルールの置き
換えがなされたルール表をもとに前記連想メモリ及び前
記検索結果記憶装置に情報を格納するステップとを有す
ることを特徴としている。
ール表を横方向にグループ化することで上述した課題を
回避することが可能になることを見出した。
識別検索装置が組み込まれる装置の一例であるルータ1
00を示すもので、図中、200はスイッチ、300−
1,……300−nはラインカード、400−1,……
400−nはスイッチ200とラインカード300−
1,……300−nとを結ぶ信号線である。
nは、パケット格納部500−1,……500−nと、
ヘッダ検索部600−1,……600−nと、パケット
処理部700−1,……700−nと、パケット格納部
500−1,……500−nとヘッダ検索部600−
1,……600−nとを結ぶ信号線801−1,……8
01−nと、パケット格納部500−1,……500−
nとパケット処理部700−1,……700−nとを結
ぶ信号線802−1,……802−nと、ヘッダ検索部
600−1,……600−nとパケット処理部700−
1,……700−nと結ぶ信号線803−1,……80
3−nとを備えている。
検索部600−1〜600−n内に組み込む。以下、入
力されたパケットに対するルータ100の処理概要を簡
単に説明する。
たとすると、まず入力されたパケットのヘッダをヘッダ
検索部600−1で検索し、またパケット自身を信号線
801−1を通してパケット格納部500−1へ送出す
る。
により、パケットに対して必要な処理や宛先となる信号
線3−m(1≦m≦n)を決定し、パケット処理部70
0−1へ検索結果を信号線803−1を通して送出し、
同時に検索が終了したことをパケット格納部500−1
へ信号線801−1を通して伝える。パケット自身を格
納しているパケット格納部500−1はヘッダ検索部6
00−1におけるヘッダ検索が終了したことが通知され
たら、パケットをパケット処理部700−1へ信号線8
02−1を通して送出する。
トの検索結果とパケット自身を受けとったら、パケット
に対して必要な処理を行うとともに、宛先となる信号線
3−m(1≦m≦n)を識別する値等のヘッダ検索部6
00−1の結果をパケットに対して付与し、スイッチ2
00へ信号線400−1を通して送出する。スイッチ2
00は、送られてきたパケットに含まれる上記値をもと
に信号線400−mを通して当該パケットをラインカー
ド300−mに送出し、ラインカード300−mがこの
パケットを信号線3−mに送出する。
置の構成を示したブロック図であって、ここではフロー
識別検索装置がヘッダ検索部600に組み込まれた例を
示す。図中、610はヘッダ抽出装置、620はフロー
識別検索装置である。フロー識別検索装置620は、連
想メモリ621と、フロー識別検索処理装置622と、
DRAM,SRAM,SSRAM(同期SRAM)等で
構成された検索結果記憶装置623とからなっている。
また、624は連想メモリ621とフロー識別検索処理
装置622とを結ぶ信号線、625はフロー識別検索処
理装置622と検索結果記憶装置623とを結ぶ信号
線、630はヘッダ抽出装置610とフロー識別検索処
理装置622を結ぶ信号線である。
要を示す。
されたパケットよりヘッダを抽出し、信号線630を通
してフロー識別検索処理装置622へ入力する。同時に
ヘッダ抽出装置610はパケットを信号線801を通し
てパケット格納部500(図1参照)へ送出する。フロ
ー識別検索処理装置622は検索に必要なグループ化さ
れている検索項目をヘッダから抜き出し、信号線624
を通して連想メモリ621へ入力し検索を行い、検索結
果としてパケットに対する処理が格納されている検索結
果記憶装置623のメモリ上のアドレスを連想メモリ6
21から信号線624を通して受け取る。
た検索結果記憶装置623のメモリ上のアドレスを信号
線625を通して送出し、検索結果記憶装置623に格
納されている処理を信号線625を通して読みとる。再
度検索が必要な場合には、検索に必要なグループ化され
ている検索項目をヘッダからさらに抜き出し、連想メモ
リ621へ入力し、検索結果記憶装置623のメモリ上
のアドレスを連想メモリ621から受け取り、検索結果
記憶装置623に格納されている処理を読みとる。
再帰的に行う。1つのヘッダの検索が終わったら、信号
線803を通してパケット処理部700(図1参照)へ
最終的なフロー識別の検索結果(処理)を送出し、信号
線801を通してパケット格納部500へ1つのヘッダ
の検索が終わったことを通知する。
グループ化の様子および及びグループ化されたルールの
検索のために各ルールに付与されるルール番号の付与例
を図3に示す。
各ルール11,12,13,14(図20を参照)にル
ール番号を付与したもの、15,16はフロー識別に必
要な検索項目を2つのグループに分け、それぞれのグル
ープに番号(ここでは0と1)を付与したものを表して
いる。ルール番号は0から昇順に1ずつ付与する。全て
のグループのビット幅は連想メモリが1回で検索できる
検索ビット幅以下である必要があるため、グループの分
け方はこの条件を満足するように決める。なお、グルー
プの分け方は前もって設計者が決める。
して、検索回数情報Flag、検索関連情報Srch.
Tag(Search Tag,図3のルール番号に相当)、グル
ープ化された検索項目、次回の検索における検索回数情
報である次Flag、照合関連情報Assoc.Tag
(Association Tag)、処理を、連想メモリ621と検
索結果記憶装置623に格納する例を示す。
4a−1はグループ番号0に対応しており、グループ番
号と同じ値0を持つ検索回数情報Flagとルール番号
0〜3に対応した検索項目とを連想メモリに格納したも
の、11a−2,12a−2,13a−2はグループ番
号1のルール番号0〜2に対応しており、グループ番号
と同じ値1を持つ検索回数情報Flagと、ルール番号
と同じ値0〜2を持つ検索関連情報Srch.Tag
と、ルール番号0〜2に対応した検索項目とを連想メモ
リに格納したもの、11a−3,12a−3,13a−
3,14a−3はグループ番号0に対応しており、次F
lagと、ルール番号と同じ値を持つ照合関連情報As
soc.Tagと、ルール番号0〜3に対応する処理と
を格納したもの、11a−4,12a−4,13a−4
はグループ番号1のルール番号0〜2に対応する処理を
格納したものである。なお、図中でxはどの値を入れて
も問題はないことを示す。また上述した説明から明らか
なように、ある一つのルールに付与される検索関連情報
Srch.Tagと照合関連情報Assoc.Tagに
は同じルール番号(図3参照)の値が設定されるが、本
実施形態ではこれらデータがどこに格納されるかによっ
て名称を変えている。すなわち、連想メモリ621に格
納されるルール番号を検索関連情報Srch.Tagと
し、検索結果記憶装置623に格納されるルール番号を
照合関連情報Assoc.Tagとしている。
に連想メモリ621及び検索結果記憶装置623へ各種
データを格納する際の手順について説明する。まず、図
3に示したルールをグループ番号0,1の2つのグルー
プにグループ化する。次に、ルール番号0のルールのう
ちグループ番号0について、検索項目である宛先アドレ
ス及びProtocolをグループ番号と同じ値0を持
つ検索回数情報Flagとともに連想メモリ621へ格
納する。その際、検索関連情報Srch.Tagとして
はDon’t Careを示す*を設定する。これは、
最初に連想メモリ621を検索する場合に、検索回数情
報Flagの値として0を持つすべてのルールを検索対
象とするためである。以上によって図4に示すデータ1
1a−1が連想メモリ621に格納される。
は、連想メモリ621に設定した検索回数情報Flag
の値0に1を加算した値1を次Flagに設定する。ま
た、ルール番号0と同じ値0を照合関連情報Asso
c.Tagに設定する。さらに、この場合の検索回数情
報Flagの値は最後のグループに対応する値ではない
ことから、さらに連想メモリ621の検索を行うことを
指示する「再検索」を処理に設定する。そして、これら
次Flag,照合関連情報Assoc.Tag,処理を
組にしたデータ11a−3を図4に示すように検索結果
記憶装置623に格納する。
についてもいま述べたルール番号0と同様のことを行っ
て、連想メモリ621にデータ12a−1,13a−
1,14a−1を順次格納するとともに、検索結果記憶
装置623にデータ12a−3,13a−3,14a−
3を順次格納する。ただし、ルール番号3に関してはグ
ループ番号1の検索項目が図3に示すように全てDo
n’t Careであるため、ルール番号3かつグルー
プ番号1のルールに関してはさらに検索を行う必要がな
い。したがってこの場合は、処理に「再検索」を設定す
る代わりに、図3のルール表に設定されている処理「廃
棄」そのものを検索結果記憶装置623の「処理」に格
納するとともに、次Flagには任意の値(図4ではど
の値でもかまわないことを示す×)を設定する。
合に準じて同様の処理を行う。ただし、この場合は上述
したようにルール番号3については検索項目が全てDo
n’t Careであるため、ルール番号0〜2につい
て処理を行い、連想メモリ621に対してデータ11a
−2,12a−2,13a−2を順次追加するととも
に、検索結果記憶装置623に対してデータ11a−
4,12a−4,13a−4を順次追加する。連想メモ
リ621については、検索回数情報Flagとしてグル
ープ番号と同じ1を設定するとともに、グループ番号1
が最初のグループでないことから図3のルール表に設定
されているルール番号をそのまま検索関連情報Src
h.Tagとして設定する。一方、検索結果記憶装置6
23については、グループ番号1が最後のグループであ
ることから、図3のルール表に記述されている処理をそ
のまま検索結果記憶装置623に設定するとともに、グ
ループ番号1についてはそれ以上検索を行わないので次
Flag及び照合関連情報Assoc.Tagには任意
の値を設定する。
9.48.1.1、ProtocolがTCP、送信元
アドレスが122.58.33.1、宛先ポート番号が
10のヘッダのフロー識別検索方法を示す。
IPパケットのヘッダの中でグループ番号0に属する検
索項目とグループ番号1に属する検索項目を取り出す。
IPパケットのヘッダ中のグループ番号0の検索項目で
ある宛先アドレスの59.48.1.1とProtoc
olのTCPとグループ番号0と同じ値0を持つ検索回
数情報Flagと適当な値の検索関連情報Srch.T
agとを連想メモリ621に検索データとして入力す
る。
格納されているデータ12a−1と入力データが一致す
るので、結果としてデータ12a−1に関連づけられた
検索結果を格納している検索結果記憶装置623のメモ
リのアドレスをフロー識別検索処理装置622は受け取
る。
受け取った検索結果記憶装置623のメモリのアドレス
から、検索結果記憶億装置623に格納されているデー
タ12a−3を読み取る。読みとったデータ12a−3
に含まれる処理の内容が「再検索」なので、フロー識別
検索処理装置622は次Flagと照合関連情報Ass
oc.Tagを読みとり、再度検索を行う。再検索にあ
たって読みとったデータ12a−3から次Flagが1
で照合関連情報Assoc.Tagが1であることがわ
かったので、フロー識別検索処理装置622は、ヘッダ
の中のグループ番号1に属する検索項目である送信元ア
ドレスの122.58.33.1、宛先ポート番号10
とグループ番号1と同じ値1を持つ検索回数情報Fla
gと検索関連情報Srch.Tagの値1を連想メモリ
621に検索データとして入力する。
格納されているデータ12a−2と入力データが一致す
るので、結果としてデータ12a−2に関連づけられた
検索結果を格納している検索結果記億装置623のメモ
リのアドレスをフロー識別検索処理装置622は受け取
る。
受け取った検索結果記憶装置623のメモリのアドレス
から、検索結果記憶装置623に格納されているデータ
12a−4を読みとる。読みとったデータ12a−4に
含まれる処理の内容が「中優先で送出」であって「再検
索」ではないので再度検索する必要がなく、ここで検索
を終了する。
態について説明する。図5に示すように、検索可能なビ
ット幅が制限された連想メモリに入れるために、オリジ
ナルのルール表(Original rule table)のルールを複
数のブロックにグループ化し、各ブロックを連想メモリ
に格納して新たなルール表(Proposed rule table)を
作成する。その際、各ブロックがオリジナルのルールの
どの位置にあるかを示すため、検索回数情報Flag
(相対位置識別フラグ)を一緒に格納する。さらにそれ
らの各ブロックが同じオリジナルのルールに属している
ことを示すため、検索関連情報Srch.Tag及び照
合関連情報Assoc.Tagも一緒に格納する。ルー
ルがDAとSAの2つからなるルール表の場合の例を図
6に示す。なお、上述したようにDA,SAはいずれも
128ビットで構成されるが、128ビットの値すべて
を図示することは困難であるため、ここではDA,SA
がいずれも4ビットで構成されているものとして説明す
る。また、図6では図4に示した次Flagを設けてい
ないが、次Flagの値は連想メモリに入力した検索回
数情報Flagに1を加算すれば求められるので、かか
る計算をフロー識別検索処理装置が行えば良い。
0、SA=0101なるヘッダ情報のパケットが到着し
た場合は、図7に示すように、1回目の検索(1st rou
nd search)で、DA=0100を検索キーとして、こ
れに次の2つの検索キーを併せて検索する。その2つの
検索キーとは、何回目かの検索回数を表す検索回数情報
Flag=1st及び前回の検索結果との関連付けのため
の検索関連情報Srch.Tag=Anyの2つであ
る。なお、検索関連情報Srch.Tagとして格納さ
れている値のうち、Anyは任意のものと一致するDo
n’t careを意味している。また、検索キーとし
て入力される検索関連情報Srch.TagのAnyは
任意の値を入力すれば良いことを意味している。他の実
現形態として、検索キーとして入力される検索関連情報
Srch.TagのAnyの値および連想メモリ上にお
ける検索関連情報Srch.TagのAnyの値をすべ
て同じ値に設定することが考えられる。具体的には、連
想メモリ上における検索関連情報Srch.Tagの値
Anyとして例えば0を設定するとともに、1回目の検
索で連想メモリへ与える検索関連情報Srch.Tag
の値を同じく0とすれば良い。
つかると、それに対する処理(Action)、ここで
は再検索(Continue)を決定することができるととも
に、それに関連することを表す照合関連情報Asso
c.Tag=2が得られる。引き続き2回目(2nd rou
nd search)の検索を行う。その際には検索キーSA=
0101と一緒に、1回目の検索により得られた照合関
連情報Assoc.Tag=2の値を検索関連情報Sr
ch.Tagに代入して検索を行う。また、何回目かの
検索回数を表す検索回数情報Flag=2ndとして検索
する。2回目の検索ではそれらにマッチするルールが見
つかり、それに対する処理(Action)、ここでは
最優先で転送(High Priority)を決定することができ
る。
素は、(1)ルール表のルールをグループ化し、該グル
ープ化したルールの各部分をテーブル(連想メモリ)に
格納する手段と、(2)グループ化したルールの各部分
のグループ化前のルール内における相対位置を示す検索
回数情報Flagを付与する手段と、(3)グループ化
したルールの各部分間の関連を示す検索関連情報Src
h.Tag及び照合関連情報Assoc.Tagを付与
する手段と、(4)ルールに対応するヘッダ情報と検索
回数情報と検索関連情報とを検索キーとして連想メモリ
を検索する手段とからなる。
ために、宛先アドレスDA,送信元アドレスSA等のよ
うに論理的にまとまりのあるものを単位としてグループ
化を行う例を示したが、本発明がこうした形態に限定さ
れるわけではない。ルール表上の各ルールは単なるビッ
トの羅列と見なせるため各ルールをどのようにグループ
化しても良いのであって、例えば宛先アドレスを2以上
のグループに分割して100ビットはグループ番号0に
格納し残りの28ビットはグループ番号1に格納するな
どしても良い。もっとも、例えば連想メモリ621のビ
ット幅を256ビットであるとすれば、図4に示す検索
回数情報Flag,検索関連情報Srch.Tag及び
2つの検索項目をすべて合わせたビット数が256ビッ
トとなるように各ルールをグループ化してゆくことで、
連想メモリ621を最も効率的に使用でき、各パケット
に関して連想メモリ621を検索する回数も最小にな
る。
ような場合に曖昧なルールが生成されてしまい、正しい
検索動作を行えない場合が有る。本実施形態はかかる場
合においても正しい検索動作を保証するものである。図
8に曖昧なルールが生成される場合の例を示す。
0、SA=1100なるパケットが到着した場合、ルー
ルB(DA=1*,SA=11*)(ここで、*は上述し
たようにDon’t careであって、それ以降のビ
ットが「0」,「1」のいずれでも良いことを示す。)
がマッチするべきところである。
形態では1回目の検索でDA=1100で検索する際
に、ルールA(DA=11*,SA=01*)の前半部
(DA=11*)がよりふさわしいものと判定して候補
をルールAに絞り込んでしまう。これは、一般的な商用
の連想メモリでは、連想メモリに入力されたデータが複
数のルールに一致した場合、一致したルールのうち連想
メモリ上で一番上(すなわち、最も小さいアドレス)に
格納されているルールの物理アドレスを出力するためで
ある。こうしたことから、2回目の検索でSA=110
0で検索を行う際に本来マッチすべきルールBを見逃し
てしまうこととなる。
ある。図10は横軸をDA、縦軸をSAとして、それぞ
れのルールAとBが占める領域を示したものである。1
回目の検索でルールAに候補を絞り込んでしまうのは、
図10では1stround searchと示している両端矢印の箇
所に相当する。
10の横軸に沿って検索を行う。その際、ルールAのほ
うがより狭い範囲でパケットのヘッダ情報(DA=11
00)を含むので、ルールAを候補に絞り込んでしま
う。
SA=1100)はルールBにマッチすべきものである
にもかかわらず、1回目の検索でルールAに候補を絞り
込んでいるので、2回目の検索で縦軸に沿って検索する
際にはルールAの縦軸の範囲に入っていないので、マッ
チするルールがないと判断してしまうことになる。
におけるルール表をグループ化する際に生じる曖昧性を
除去することができる。
生じる曖昧性を除去するために、オリジナルのルール表
に新たに保護ルール(Guard rule)(保護ポリシーとも
呼ぶ)と名づけるルールを挿入することがポイントであ
る。
例を示すものである。図11は図8のルール表に対し、
第1実施形態を適用する際に生じる曖昧性を除去するた
めに、ルールB’を挿入している。ルールB’はルール
Aと同じDAを持ち、それ以外の部分のSAと処理(A
ction)に関してはルールBと同じ内容を持つ。ル
ールB’を挿入することにより、ルール表をグループ化
することにより生じる曖昧性を除去することができる。
ル表をグループ化したものを示す。ここでのポイントは
ルールB’をグループ化する際にルールB’の1回目の
検索に用いる前半部の照合関連情報Assoc.Tag
をルールAのものと同じ値(照合関連情報Assoc.
Tag=1)とする点である。ルールBの値(照合関連
情報Assoc.Tag=2)でない点に注意された
い。ルールB’の前半部の照合関連情報Assoc.T
ag=1とすることにより、1回目の検索ではルールA
への候補の絞り込みが行われることなく、2回目の検索
でルールAにマッチするのか、ルールBにマッチするの
かを判定することができる。
されたデータが複数のルールに一致した場合は最も小さ
い物理アドレスが出力される。また、保護ルールの追加
にあたっては一致した複数のルールのうちより範囲の狭
いルールと同じ内容の保護ルールを入れている。さら
に、複数のルールに一致した場合にはより狭い範囲のル
ールを選択しなければならない。このため、より狭い範
囲のルールは当該ルールよりも広い範囲のルールよりも
連想メモリ上でより上位(より小さな物理アドレス側)
に格納する必要がある。したがって図11に示したよう
に、ルールA及びルールB’を連想メモリ上でルールB
よりも上位に格納するようにしている。
3では本実施形態によりグループ化したルール表を2回
検索する様子を示している。1回目の検索では、DA=
1100を検索キーとして、その検索キーと併せて検索
関連情報Srch.Tag=Anyと検索回数情報Fl
ag=1stをキーとして検索する。その結果、マッチす
るルールとして一行目のA,B’(1st)の前半部が見
つかる。それに関連することを表す照合関連情報Ass
oc.Tag=1が得られる。
は検索キーSA=1100と一緒に、1回目の検索によ
り得られた照合関連情報Assoc.Tag=1の値を
検索関連情報Srch.Tagに代入して検索を行う。
2回目の検索では検索関連情報Srch.Tag=1の
2つのルールが候補となる。この候補はルールAとB’
である。このうち、検索キーSA=1100にマッチす
るのはルールB’である。このようにして本来の正解で
あるルールBと同じ処理(Action)を導くことが
できる。
入の概念をグラフを用いて表したものである。図10の
例で示したルールAとルールBがある状況において、ル
ールBと同じ内容を持つルールB’を保護ルールとして
挿入している。図10では、横軸方向であるDAについ
てみた場合、ルールBはルールAよりも広い範囲をカバ
ーしていた。本実施形態の場合、DAについては、より
範囲の狭いルールAと同じ内容を持つルールB’を挿入
し、DA以外の項目については、そのルールB’は元の
ルールBと同じ内容を持つものとする。さらにルール
B’をグループ化する際に、その前半部には、1回目の
検索時の結果から分かる検索関連情報の値をルールAと
同じものとする(Srch.Tag=1)。
て連想メモリ及び検索結果記憶装置へデータを格納する
ための手順について述べる。なお、後述する第3実施形
態で説明するように、あるルールの範囲と別のルールの
範囲が重なり合う場合があり得るが、こうしたルールが
存在してもこれらを重なり合いのないルールに変換可能
であるため、ここでは全てのルールの間に重なり合いが
ないものとして説明を行う。
てあるため、最初に同図で使用している表記について説
明しておく。図中、Rはオリジナルのルール表に含まれ
るルールの集合であって、R1からRMまでM個のルール
から成るものとする。このルールの集合Rは先に仮定し
た通り互いに一致部分がないルールの集合である。ま
た、Rj[1]はルールRjの1つ目の検索項目(例えば
DA)を示しており、同様にRj[2]はルールRjの
2つ目の検索項目(例えばSA)を示している。また、
Rj[Tag]はルールRjの検索関連情報である。上述
したように、検索関連情報Srch.Tagと照合関連
情報Assoc.Tagはある1つのルールに関しては
基本的に同じ値となるため、これらを総称してタグと呼
ぶ。Fは連想メモリに書き込むべきルールの集合であっ
てF1からFPまでP個のルールから成る。なお、F
j[1],Fj[2],Fj[Tag]等の定義はルール
の集合Rについてのものと同じである。
に3つのことをしなければならない。第1にはタグを付
与することであり、第2には保護ルールが必要ならばこ
れを追加することである。第3には、上述したように連
想メモリは複数のルールに一致した場合に最も上位の物
理アドレスを出力するという特質を考慮に入れて、連想
メモリにルールを格納する際の順番を決めることであ
る。これら3つのことを実施するために、ルールの集合
Rにタグ及び保護ルールを追加し、かつ、連想メモリに
格納する順番を決定したルールの集合Fを定義し、ルー
ルの集合Rをもとにルールの集合Fを作製してこれを連
想メモリに格納する。
をもとに図12に示すProposed ruletableを作成する場
合を例に挙げて、図15のフローチャートに沿って処理
の詳細を説明する。まず、全てのルールR1〜RMについ
てRm[Tag]=m(m=1〜M)となるタグを割り
振る(ステップS1)。これによりルールAに関する検
索関連情報Srch.Tagおよび照合関連情報Ass
oc.Tagがそれぞれ1に設定され、ルールBに関す
る検索関連情報Srch.Tagおよび照合関連情報A
ssoc.Tagがそれぞれ2に設定される。次に、ル
ールR1を連想メモリに格納する表であるルールの集合
Fに追加する。これによりルールAがルールF1に設定
される。またループ変数i及びjをそれぞれ1,2に初
期化する(ステップS2)。
に対し必要に応じて保護ルールを追加する。そのため
に、まずRj[1]の示す範囲がFi[1]の示す範囲を
含んでいるか、あるいは、Rj[1]とFi[1]が同じ
範囲であるかどうかを判定する(ステップS3)。な
お、前者の判定を行うにあたっては、Rj[1]の最小
値<Fi[1]の最小値及び最大値<Rj[1]の最大値
を満足するかどうかを判定すれば良い。具体的には、最
初の検索項目であるDAについてルールBがルールAを
含んでいるか或いは両者が一致しているかどうかを判定
する。この場合は、ルールBのDAが1*でありルール
AのDAが11*であるため前者の包含関係が成立す
る。そこで、保護ルールF=(Fi[1],Rj[2],
Fi[Tag])をルールFiの隣へ追加する(ステップ
S4)。具体的には、ルールAのDA(=11*),ル
ールBのSA(=11*),ルールAのタグ(=1)か
らなるルールB’をルールAの隣に追加する。次に、R
j[1]を全てのF[1]と比較したかどうか判定する
(ステップS5)。この場合はルールの集合Fがルール
F1(およびステップS4で隣に追加した保護ルール)
のみであるため同ステップの判定結果はYESとなるこ
とから、処理をステップS6に進める。なお以上述べた
通り、保護ルールをルール表へ追加するにあたっては、
複数のルールに一致した場合により狭い範囲を持つルー
ルが連想メモリにより選択されるようにしている。
った場合には、ステップS3の場合とは逆にFi[1]
の示す範囲がRj[1]の示す範囲を含んでいるどうか
を判定(ステップS7)し、もしそうであれば、ステッ
プS4で追加される保護ルールのRとFを互いに入れ替
えた保護ルールF=(Rj[1],Fi[2],Ri[T
ag])をFiの上に追加する(ステップS8)。また
ステップS7の判定結果がNOであって、Fi[1]の
示す範囲とRj[1]の示す範囲の間に包含関係がない
場合には、保護ルールの追加を行うことなく処理をステ
ップS5に進める。また、ステップS5の判定を行った
ときにルールF1以外のルールがルールの集合Fに存在
する場合(ステップS5の判定結果がNO)は、ループ
変数iに1を加算(ステップS9)して処理をステップ
S3に戻し、上記同様にステップS3〜S8による処理
を行って、ルールの集合Fに存在する全てのルールを対
象に保護ルールの追加が必要かどうか調べる。
をルールの集合Fに追加する。まず、ループ変数iを1
に初期化(ステップS6)してから、Fi[1]の示す
範囲がRj[1]の示す範囲を含んでいるかあるいはこ
れらが一致しているかの判定を行う(ステップS1
0)。この場合にはルールF1[1]の範囲(=11*)
がR2[1]の範囲(=1*)を含んでいないのでステッ
プS10の判定結果がNOとなるため、処理をステップ
S12に進めてRj[1]をすべてのF[1]と比較し
たかどうかを判定する(ステップS12)。この場合も
ルールの集合FがルールF1およびその隣の保護ルール
のみであるため、処理をステップS13に進めてルール
Rj(すなわちルールB)をルールの集合Fの最後に追
加する。
であった場合には、ルールRjをルールFiの上に追加
(ステップS11)したのちにステップS15に処理を
進める。また、ステップS12の判定結果がNOであっ
た場合には、ルールの集合F上における次のルールとの
比較を行うために、ループ変数iに1加算(ステップS
14)して処理をステップS10に戻し、同様にステッ
プS10〜S13の処理を行う。
たのち、全てのRjをルールの集合Fに追加したかどう
か判定する(ステップS15)。この場合はステップS
13で追加したルールBがオリジナルの表上で最後のも
のであるため、処理をステップS17に進めてルールの
集合Fを第1実施形態で説明した手順に従ってグループ
化して連想メモリに格納する。以上述べた通り、ルール
Rjをルール表へ追加する場合においても、保護ルール
を追加する場合と同様に、複数のルールに一致した場合
により狭い範囲を持つルールが連想メモリにより選択さ
れるようにしている。なお、ステップS15の判定の結
果、まだ追加されていないルールが残っている場合に
は、ループ変数jに1加算して次のルールを選択すると
ともに、ステップS2と同様にループ変数iを1に初期
化する(ステップS16)そして、処理をステップS3
に戻し上述したのと同様の処理をルールR3以降につい
て行ってゆく。
ープ化した際に、異なるルール間の対応するブロックで
包含関係にある場合は、より範囲の狭いルールのブロッ
クと同じ内容を持つ保護ルールを挿入することで、第1
実施形態の問題点であるルールのグループ化時の曖昧性
の問題を解決することができる。
ため、ルールがDAとSAの2つの要素からなるルール
表に限定して説明したが、3つ以上の要素からなるルー
ル表についても同様の考えが適用できる。
とするため、包含関係にあるルールが2つの場合に限定
して説明したが、3つ以上のルール間で包含関係がある
テーブルについても同様の考えが適用できる。ルールが
3つ以上存在する場合には3つ以上のルールに一致する
可能性があり、候補となり得るルールが3つ以上存在す
ることになるが、この場合も候補となり得る分だけ保護
ルールを追加すれば良い。
を容易とするため、DA、SAといった、内容の異なる
要素単位でルールをグループ化する場合について説明し
たが、1つの要素をグループ化するような場合にも本発
明は適用可能である。
施形態で触れたようにルール間に重なり合いのある場合
に必要となる処理を行うものである。オリジナルのルー
ル表上における2つのルール間の関係は図16に示すよ
うに3つの状態に分類される。なお、同図では説明を容
易にするためにDA及びSAからなる2次元のルールの
場合を想定して説明するが、そうしても一般性を失うこ
とはない。第1の状態はルールE及びFの間における関
係のように「一致部分がない」場合である。また第2の
状態はルールG及びHの間における関係のように「一部
分が一致」する場合である。さらに第3の状態はルール
I及びJの間の関係のように一方のルールIが他方のル
ールJを「内包」する場合、すなわち一方のルールの範
囲が他方のルールの範囲に完全に含まれる場合である。
致部分の処理でいずれの処理を行って良いかどうかが曖
昧であるため、必ずいずれか一方のルールに従った処理
を選ぶ必要がある。そのために、保守者はフロー識別検
索装置に対して一致部分に関する処理を明示的に設定す
る。いま図17に示したように、処理として「廃棄」を
有するルールG=(*,01*)、および、処理として
「通過」(すなわち、最優先で送出、中優先で送出、あ
るいは、低優先で送出などの「廃棄」以外の処理)を有
するルールH=(10*,*)の2つのルールが存在する
ことを想定する。この場合、これらルール間の一致部分
であるルール(10*,01*)については、処理が「廃
棄」,「通過」の何れであるのかを保守者が決めてフロ
ー識別検索装置に設定する。
例えば2つのルールの一部分が一致している場合は、一
方のルールを幾つかのルールに分割することによって一
致部分の無いルールの集合と等価にすることができる。
これにより、上述した曖昧性の問題を解決することがで
きる。図18は、図17に示すルールHを2つに分割し
た例を示している。図18では、一致部分の処理がルー
ルGの処理に従うものと仮定しており、ルールHをルー
ルH1とルールH2へ分割することにより、3つのルー
ルG,H1,H2間では一致部分が無くなる。なお、2
つのルール間に「内包」の関係がある場合(図16の
(3)の場合)にも、いま説明した一部分一致のときと
同様に分割を行うことで、一致部分がないルールの集合
に変換することができる。
能なビット幅の制限された連想メモリに入れるために、
オリジナルのルール表の各ルールに含まれる検索項目を
複数のグループにグループ化して連想メモリに格納して
いる。その際、各グループがオリジナルのルールのどの
位置にあるかを示すため、検索回数情報を一緒に格納す
る。さらにそれらの各グループが同じオリジナルのルー
ルに属していることを示すため、検索関連情報も一緒に
格納する。
モリを検索する際には、複数回連想メモリを検索する。
連想メモリを検索する回数の最大はオリジナルのルール
表に含まれるルールの検索項目をグループ化した数であ
る。連想メモリの各回の検索においては、該当するパケ
ットのヘッダ等に含まれる情報と検索回数情報と検索関
連情報をキーとして連想メモリを検索する。ここで、検
索回数情報は何回目の検索かを表すこととなる。検索関
連情報は前回の検索時に得られた検索結果記憶装置上の
照合関連情報を検索関連情報として今回の検索に用い
る。初回の検索においてはこの検索関連情報が、連想メ
モリ上で最初に検索対象となる検索関連情報のいずれと
も一致するようにする。具体的には、最初に検索対象と
なる連想メモリ上の検索関連情報にDon’t Car
eを設定するとともに、初回の検索時に連想メモリへ入
力する検索関連情報として任意の値を与えれば良い。あ
るいは、最初に検索対象となる連想メモリ上の検索関連
情報および初回の検索時に連想メモリへ入力する検索関
連情報を全て同じ値に設定しても良い。
検索回数情報をグループ化された検索項目と一緒に連想
メモリへ入力するので、異なるグループであるが、格納
されている値が偶然一致するものが連想メモリに格納さ
れていても区別することが出来る。また検索の際、ルー
ル番号等の検索関連情報をグループ化された検索項目と
一緒に連想メモリへ入力するので、異なるルールである
が、グループ化された検索項目の値が偶然一致するもの
が連想メモリに格納されていても区別することが出来
る。
た後に検索結果記憶装置の結果を読んだ際、次のグルー
プの検索が必要な場合、そのルール番号等の照合関連情
報が格納されているので、グループ番号等の検索関連情
報をさらに生成することで、次のグループの検索の際、
これらの番号を次のグループの検索対象と一緒に連想メ
モリへ入力し、検索することが出来る。また、次のグル
ープの検索が不要な場合、必要な処理のみが検索結果格
納装置に格納されているので、必ずしも全てのグループ
を検索することなく検索を終了できる。
ール表に含まれるルールの検索項目をグループ化したも
のを連想メモリに格納しており、1つのルールを複数の
グループにグループ化して連想メモリに格納することに
なるので、連想メモリが格納できるビット幅よりもビッ
ト幅が長いルールを格納することが出来る。
短い連想メモリの制限で検索が行えなかった非常に長い
ビット幅を有する幅の広いルールでもフロー識別検索を
行うことが出来る。しかも、連想メモリのアクセス速度
は10ナノ秒程度であり、10Gb/sの回線上で40
バイトのパケットを転送するのに必要な時間32ナノ秒
よりも短く、超高速のルール表検索が可能となる。
前記検索項目をグループ化する際、同一のグループに属
する複数のグループ化検索項目が特定のデータに一致す
る可能性があるかどうかを調べ、一致する可能性がある
場合には、該複数のグループ化検索項目のうち最も範囲
が狭いグループ化検索項目を除く各グループ化検索項目
について、該一致する可能性のあるグループ化検索項目
の内容として前記最も範囲が狭いグループ化検索項目と
同じ内容を有し、かつ、該一致する可能性のあるグルー
プ化検索項目以外のグループ化検索項目及び処理として
各グループ化検索項目が属するルールと同じ内容を持つ
新たなルールを生成して前記ルール表に追加し、該新た
なルールが追加されたルール表をもとに前記連想メモリ
及び前記検索結果記憶装置に情報を格納するようにして
も良い。
想メモリに格納する際には、グループ化することによっ
て生じたルール間の曖昧性を防ぐことができる。
装置が組み込まれるルータの構成例を示すブロック図で
ある。
装置を搭載したヘッダ検索部の構成例を示すブロック図
である。
及び検索項目のグループ化の例を示す説明図である。
記憶装置へのデータの格納例を示す説明図である。
の基本概念を示す説明図である。
の一例を示す説明図である。
示す説明図である。
ル表の一例を示す説明図である。
示す説明図である。
る概念を示すグラフである。
の一例を示す説明図である。
の説明図である。
例を示す説明図である。
り不具合が改善される概念を示すグラフである。
ル表上のルールを連想メモリへ格納する際の手順を示し
たフローチャートである。
ールが取りうる3通りの関係を示した説明図である。
分が一致している様子を示した説明図である。
部分が一致する2つのルールについて一方のルールを分
割する様子を示した説明図である。
図である。
説明図である。
一例を示す説明図である。
うすを示す説明図である。
Claims (13)
- 【請求項1】 パケットに含まれ該パケットのフロー
の識別に使用される検索項目(DA,SA)をもとに、前記検
索項目と該検索項目により識別されるフローのパケット
に対して行う処理とを組み合わせたルール(11〜14)を複
数備えるルール表(10)を検索し、前記パケットに対して
行う処理を決定するフロー識別検索装置であって、 前記各ルールに含まれる検索項目を予め定めた複数のグ
ループ(15,16)にグループ化したグループ化検索項目
と、該グループ化検索項目が属するグループ及びルール
をそれぞれ表す検索回数情報及び検索関連情報(Flag, S
rch.Tag)とを組み合わせて保持する連想メモリ(621)
と、 前記連想メモリに入力したグループ化検索項目,検索回
数情報及び検索関連情報の組み合わせが該連想メモリで
検索された際に行う処理と、前記連想メモリを次に検索
する際に検索するルールを表す照合関連情報(Assoc.Ta
g)とを、前記連想メモリが保持する前記組み合わせに対
応して保持する検索結果記憶装置(623)と、 入力されたパケットから前記検索項目を取り出して前記
グループ化検索項目を生成し、検索すべきグループ及び
ルールを表す検索回数情報及び検索関連情報と該グルー
プに対応する前記グループ化検索項目とを前記連想メモ
リへ入力して検索を行い、検索された前記連想メモリ上
の組み合わせに対応して前記検索結果記憶装置が保持す
る前記処理及び前記照合関連情報を取得し、該処理とし
て前記パケットに対して行う処理内容が得られるまで、
次に検索すべきグループを表す検索回数情報と該グルー
プに対応する前記グループ化検索項目と取得した前記照
合関連情報とを前記連想メモリに入力して再び前記検索
を行う処理装置(622)とを有することを特徴とするフロ
ー識別検索装置。 - 【請求項2】 請求項1記載のフロー識別検索装置に
おいて、 前記処理装置は、前記ルール表上の各ルールに含まれる
前記検索項目をグループ化して前記グループ化検索項目
を生成し、生成された各グループ化検索項目が属してい
るルール及びグループをもとに前記検索回数情報,前記
検索関連情報及び前記照合関連情報を生成して、生成さ
れた前記検索回数情報,検索関連情報及びグループ化検
索項目を組み合わせて前記連想メモリに格納するととも
に、生成された前記照合関連情報と該照合関連情報が示
すルールに含まれる前記処理とを組み合わせて前記検索
結果記憶装置に格納することを特徴とするフロー識別検
索装置。 - 【請求項3】 請求項2記載のフロー識別検索装置に
おいて、 前記処理装置は、前記各グループを識別するためのグル
ープ番号を前記検索回数情報として前もって前記各グル
ープに付与し、前記グループ化検索項目と該グループ化
検索項目が属するグループに付与された前記グループ番
号とを組み合わせて前記連想メモリに格納することを特
徴とするフロー識別検索装置。 - 【請求項4】 請求項2記載のフロー識別検索装置に
おいて、 前記処理装置は、前記各ルールを識別するためのルール
番号を前記検索関連情報及び前記照合関連情報としてル
ール毎に決定して、入力されたパケットに関して最初に
検索の対象となるグループに関しては、前記グループ化
検索項目と、任意のルール番号に一致するデータが設定
された前記検索関連情報とを組み合わせて前記連想メモ
リに格納し、前記最初に検索の対象となるグループ以外
の各グループに関しては、前記グループ化検索項目と、
該グループ化検索項目が属するルールに付与された前記
ルール番号とを組み合わせて前記連想メモリに格納する
ことを特徴とするフロー識別検索装置。 - 【請求項5】 請求項4記載のフロー識別検索装置に
おいて、 前記処理装置は、前記連想メモリが保持する前記各組み
合わせに関して前記連想メモリの検索を必要とする次の
グループが存在する場合には、次に前記連想メモリを検
索する際に検索すべきルールに付与されたルール番号と
前記連想メモリの再検索を指示する処理とを組み合わせ
て前記検索結果記憶装置に格納し、前記各組み合わせに
関して前記連想メモリの検索を必要とする次のグループ
が存在しない場合には、入力されたパケットに対して行
うべき処理を前記検索結果記憶装置に格納することを特
徴とするフロー識別検索装置。 - 【請求項6】 請求項2記載のフロー識別検索装置に
おいて、 前記処理装置は、前記各ルールに含まれる前記検索項目
をグループ化する際、同一のグループに属する複数のグ
ループ化検索項目が特定のデータに一致する可能性があ
るかどうかを調べ、一致する可能性がある場合には、 該複数のグループ化検索項目のうち最も範囲が狭いグル
ープ化検索項目を除く各グループ化検索項目について、
該一致する可能性のあるグループ化検索項目の内容とし
て前記最も範囲が狭いグループ化検索項目と同じ内容を
持ち且つ該一致する可能性のあるグループ化検索項目以
外のグループ化検索項目及び処理として各グループ化検
索項目が属するルールと同じ内容を持つ新たなルールを
生成して前記ルール表に追加し、該新たなルールが追加
されたルール表をもとに前記連想メモリ及び前記検索結
果記憶装置に情報を格納することを特徴とするフロー識
別検索装置。 - 【請求項7】 請求項6記載のフロー識別検索装置に
おいて、 前記処理装置は、前記新たなルールに含まれる検索項目
をグループ化する際、前記検索結果記憶装置に格納する
前記照合関連情報を、前記最も範囲が狭いグループ化検
索項目に対応して前記検索結果記憶装置に格納する照合
関連情報と同じ内容に設定することを特徴とするフロー
識別検索装置。 - 【請求項8】 請求項6記載のフロー識別検索装置に
おいて、 前記連想メモリは、入力された前記グループ化検索項
目,前記検索回数情報及び前記検索関連情報の組み合わ
せが前記連想メモリに保持されている複数の組み合わせ
に一致する場合に、該複数の組み合わせが格納されてい
る物理アドレスのうちの何れかを所定の基準に従い選択
して検索結果として出力し、 前記処理装置は、前記新たなルールが追加されたルール
表を前記連想メモリ及び前記検索結果記憶装置に展開し
た後の検索時において、前記連想メモリに入力された前
記グループ化検索項目,前記検索回数情報及び前記検索
関連情報の組み合わせが前記連想メモリに保持されてい
る複数の組み合わせに一致したときに、前記連想メモリ
が、該複数の組み合わせに含まれるグループ化検索項目
のうち最も範囲の狭いグループ化検索項目を含む物理ア
ドレスを検索結果として出力するように、前記新たなル
ールを前記ルール表上に挿入することを特徴とするフロ
ー識別検索装置。 - 【請求項9】 請求項2記載のフロー識別検索装置に
おいて、 前記処理装置は、前記ルール表上におけるルールの中
に、各ルールに含まれる検索項目の範囲が互いに重なり
合う複数のルールが存在するかどうか調べ、該複数のル
ールが存在する場合には、該複数のルールのうち予め決
められたルール以外の各ルールについて、該各ルールに
含まれる検索項目の範囲から重なり合う範囲を除いて重
なり合いのない範囲を求め、該重なり合いのない範囲に
対応する新たなルールを生成して該各ルールを置き換
え、該ルールの置き換えがなされたルール表をもとに前
記連想メモリ及び前記検索結果記憶装置に情報を格納す
ることを特徴とするフロー識別検索装置。 - 【請求項10】 請求項1記載のフロー識別検索装置
において、 前記連想メモリの各物理アドレスに格納する前記検索回
数情報,前記検索関連情報及び前記グループ化検索項目
のビット幅の総和が前記連想メモリのビット幅に一致す
るように、前記検索項目がグループ化されていることを
特徴とするフロー識別検索装置。 - 【請求項11】 パケットに含まれ該パケットのフロ
ーの識別に使用される検索項目をもとに、前記検索項目
と該検索項目により識別されるフローのパケットに対し
て行う処理とを組み合わせたルールを複数備えるルール
表を検索し、前記パケットに対して行う処理を決定する
フロー識別検索方法であって、 前記各ルールに含まれる検索項目を予め定めた複数のグ
ループにグループ化したグループ化検索項目と、該グル
ープ化検索項目が属するグループ及びルールをそれぞれ
表す検索回数情報及び検索関連情報とを組み合わせて保
持する連想メモリと、前記連想メモリに入力したグルー
プ化検索項目,検索回数情報及び検索関連情報の組み合
わせが前記連想メモリで検索されたときに行う処理と、
前記連想メモリを次に検索する際に検索するルールを表
す照合関連情報とを、前記連想メモリが保持する前記組
み合わせに対応して保持する検索結果記憶装置とを用意
するステップと、 入力されたパケットから前記検索項目を取り出してグル
ープ化を行い前記グループ化検索項目を生成するステッ
プと、 最初に検索すべきグループに対応する前記グループ化検
索項目と該グループを表す検索回数情報とを前記連想メ
モリへ入力して検索を行わせるステップと、 前記連想メモリから出力される検索結果に対応して前記
検索結果記憶装置に保持されている前記処理及び前記照
合関連情報を取得するステップと、 取得した処理が前記連想メモリの再検索を示している場
合には、次に検索すべきグループを表す検索回数情報,
該グループに対応する前記グループ化検索項目及び取得
した前記照合関連情報と同じ内容を持つ検索関連情報を
前記連想メモリに入力して再度検索を行わせるステップ
と、 前記処理が入力されたパケットに対して行うべき処理内
容を示している場合に、前記連想メモリに対する検索を
終了させて該処理内容を出力するステップとを有するこ
とを特徴とするフロー識別検索方法。 - 【請求項12】 請求項11記載のフロー識別方法に
おいて、 前記各ルールに含まれる前記検索項目をグループ化する
際、同一のグループに属する複数のグループ化検索項目
が特定のデータに一致する可能性があるかどうかを調
べ、一致する可能性がある場合には、該複数のグループ
化検索項目のうち最も範囲が狭いグループ化検索項目を
除く各グループ化検索項目について、該一致する可能性
のあるグループ化検索項目の内容として前記最も範囲が
狭いグループ化検索項目と同じ内容を持ち且つ該一致す
る可能性のあるグループ化検索項目以外のグループ化検
索項目及び処理として各グループ化検索項目が属するル
ールと同じ内容を持つ新たなルールを生成して前記ルー
ル表に追加するステップと、 該新たなルールが追加されたルール表をもとに前記連想
メモリ及び前記検索結果記憶装置に情報を格納するステ
ップとを有することを特徴とするフロー識別検索方法。 - 【請求項13】 請求項11記載のフロー識別方法に
おいて、 前記ルール表上におけるルールの中に、各ルールに含ま
れる検索項目の範囲が互いに重なり合う複数のルールが
存在するかどうか調べ、該複数のルールが存在する場合
には、該複数のルールのうち予め決められたルール以外
の各ルールについて、該各ルールに含まれる検索項目の
範囲から重なり合う範囲を除いて重なり合いのない範囲
を求め、該重なり合いのない範囲に対応する新たなルー
ルを生成して該各ルールを置き換えるステップと、 該ルールの置き換えがなされたルール表をもとに前記連
想メモリ及び前記検索結果記憶装置に情報を格納するス
テップとを有することを特徴とするフロー識別検索方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001246561A JP3609358B2 (ja) | 2000-08-17 | 2001-08-15 | フロー識別検索装置および方法 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000-247741 | 2000-08-17 | ||
JP2000247741 | 2000-08-17 | ||
JP2001050581 | 2001-02-26 | ||
JP2001-50581 | 2001-02-26 | ||
JP2001246561A JP3609358B2 (ja) | 2000-08-17 | 2001-08-15 | フロー識別検索装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002325091A true JP2002325091A (ja) | 2002-11-08 |
JP3609358B2 JP3609358B2 (ja) | 2005-01-12 |
Family
ID=27344369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001246561A Expired - Fee Related JP3609358B2 (ja) | 2000-08-17 | 2001-08-15 | フロー識別検索装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3609358B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007042016A (ja) * | 2005-08-05 | 2007-02-15 | Nec Corp | 多次元ルール可視化システム、方法、プログラム、可視化データ生成システム、方法およびプログラム |
JP2008544728A (ja) * | 2005-06-30 | 2008-12-04 | インテル コーポレイション | ステートフルなパケット内容マッチング機構 |
JP2012050052A (ja) * | 2010-07-28 | 2012-03-08 | Oki Networks Co Ltd | パケット処理装置及び方法、並びに通信装置 |
JP2013511223A (ja) * | 2009-11-16 | 2013-03-28 | マーベル ワールド トレード リミテッド | 反復解析及び分類 |
JP5477378B2 (ja) * | 2009-03-30 | 2014-04-23 | 日本電気株式会社 | 通信フロー制御システム、通信フロー制御方法及び通信フロー処理プログラム |
WO2016125501A1 (ja) * | 2015-02-06 | 2016-08-11 | 日本電気株式会社 | データ処理装置、情報エントリ管理方法及び情報エントリ管理プログラムが記録された記録媒体 |
JP2017163591A (ja) * | 2013-10-26 | 2017-09-14 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Sdnスイッチにより正確なフロー・エントリを獲得するための方法、およびsdnスイッチ、コントローラ、およびシステム |
-
2001
- 2001-08-15 JP JP2001246561A patent/JP3609358B2/ja not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008544728A (ja) * | 2005-06-30 | 2008-12-04 | インテル コーポレイション | ステートフルなパケット内容マッチング機構 |
JP2007042016A (ja) * | 2005-08-05 | 2007-02-15 | Nec Corp | 多次元ルール可視化システム、方法、プログラム、可視化データ生成システム、方法およびプログラム |
JP4747724B2 (ja) * | 2005-08-05 | 2011-08-17 | 日本電気株式会社 | 多次元ルール可視化システム、方法、プログラム、可視化データ生成システム、方法およびプログラム |
JP5477378B2 (ja) * | 2009-03-30 | 2014-04-23 | 日本電気株式会社 | 通信フロー制御システム、通信フロー制御方法及び通信フロー処理プログラム |
JP2013511223A (ja) * | 2009-11-16 | 2013-03-28 | マーベル ワールド トレード リミテッド | 反復解析及び分類 |
JP2016001897A (ja) * | 2009-11-16 | 2016-01-07 | マーベル ワールド トレード リミテッド | 反復解析及び分類 |
JP2012050052A (ja) * | 2010-07-28 | 2012-03-08 | Oki Networks Co Ltd | パケット処理装置及び方法、並びに通信装置 |
JP2017163591A (ja) * | 2013-10-26 | 2017-09-14 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Sdnスイッチにより正確なフロー・エントリを獲得するための方法、およびsdnスイッチ、コントローラ、およびシステム |
US10367718B2 (en) | 2013-10-26 | 2019-07-30 | Huawei Technologies Co., Ltd. | Method for acquiring, by SDN switch, exact flow entry, and SDN switch, controller, and system |
WO2016125501A1 (ja) * | 2015-02-06 | 2016-08-11 | 日本電気株式会社 | データ処理装置、情報エントリ管理方法及び情報エントリ管理プログラムが記録された記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JP3609358B2 (ja) | 2005-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2355022C (en) | Packet classification search device and method | |
US9111013B2 (en) | Hierarchical associative memory-based classification system | |
US7237058B2 (en) | Input data selection for content addressable memory | |
Van Lunteren et al. | Fast and scalable packet classification | |
US7089240B2 (en) | Longest prefix match lookup using hash function | |
US6957272B2 (en) | Stackable lookup engines | |
US10491521B2 (en) | Field checking based caching of ACL lookups to ease ACL lookup search | |
US6792423B1 (en) | Hybrid longest prefix match and fixed match searches | |
EP1358739B1 (en) | Method and apparatus for routing table management | |
US7668160B2 (en) | Methods for performing packet classification | |
US7394809B2 (en) | Method and apparatus for packet classification using a forest of hash tables data structure | |
US6721800B1 (en) | System using weighted next hop option in routing table to include probability of routing a packet for providing equal cost multipath forwarding packets | |
US7079542B2 (en) | Internet protocol address look-up method | |
US7706375B2 (en) | System and method of fast adaptive TCAM sorting for IP longest prefix matching | |
US7317723B1 (en) | Action based termination of multidimensional lookup | |
US7624226B1 (en) | Network search engine (NSE) and method for performing interval location using prefix matching | |
US11327974B2 (en) | Field variability based TCAM splitting | |
US7739445B1 (en) | Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device | |
JP3609358B2 (ja) | フロー識別検索装置および方法 | |
KR20020006464A (ko) | 경로 검색 시스템 및 그 방법과 그것에 사용되는 라우터장치 | |
US7512122B1 (en) | Identifying QoS flows using indices | |
US10205658B1 (en) | Reducing size of policy databases using bidirectional rules | |
KR100467746B1 (ko) | 주소 분할에 의한 다중필드 분류시스템 | |
Reviriego et al. | Algorithmic tcams: Implementing packet classification algorithms in hardware | |
Mikawa et al. | Run-based trie involving the structure of arbitrary bitmask rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040130 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040507 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040601 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040624 |
|
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: 20041005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041013 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071022 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111022 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |