(57)【特許請求の範囲】
【請求項１】
データのかたまりであるパケットが連続的に送られてくるパケットストリームを２本受信するシステムにおいて、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成し、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているかを調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力する実時間パケットトラッキング方法。
【請求項２】
与えられるデータについて、マッチングが正しく行われるように両データの同期を行う、請求項１に記載の実時間パケットトラッキング方法。
【請求項３】
データのかたまりであるパケットが連続的に送られてくるパケットストリームを２本受信するシステムにおいて、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成するマスキング手段と、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているか調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力するマッチング手段を有するパケットマッチング装置。
【請求項４】
前記マッチング手段は、入力口に対して、ハッシュ表を用いて検索データベースを作る請求項３記載のパケットマッチング装置。
【請求項５】
前記マッチング手段は、入力口に対して、パトリシア木を用いて検索データベースを作る請求項３記載の装置。
【請求項６】
前記マッチング手段は、２本の入力口に対して、個々に２個のテーブルを利用する請求項４または５記載の装置。
【請求項７】
前記マッチング手段は、２本の入力口において、ハッシュまたはパトリシア木を用いて、片側が１個、他方が３個のテーブルを利用する請求項３から６のいずれか記載の装置。
【請求項８】
前記マッチング手段は、検索データベース以外に、検索キーと、検索に成功したか失敗したかを表す属性の組からなる配列を保持している請求項４から７のいずれかに記載の装置。
【請求項９】
前記マッチング手段は、検索キーにより検索に成功した場合には、検索テーブルよりデータを削除する請求項４から７のいずれかに記載の装置。
【請求項１０】
前記マッチング手段は、パケットとタイムスタンプの組で構成されたデータ列が与えられた場合に、マッチングしたパケットに関しては、タイムスタンプを比較する機能を持つ請求項３記載の装置。
【請求項１１】
２本の入力口に与えられるデータについて、マッチングが正しく行われるように両データの同期を行うストリーム同期装置を有する、請求項３に記載のパケットマッチング装置。
【請求項１２】
前記ストリーム同期装置は、連続したパケット列であるストリームデータを検索テーブルへ取り込む制御を行うとともに同期パケットを取り除く発火手段と、該発火手段により取り除かれた同期パケットを再生するヘッダ再生手段を有する、請求項１１記載のパケットマッチング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパケットを伝送するネットワークに関し、特にパケットトラッキング方法に関する。
【０００２】
【従来の技術】
情報（パケット）を伝送するネットワーク（ユーザネットワークと呼ぶ）において、図１２に例示するように、ネットワーク上を流れるパケットをパケット転送装置１０１を経てプローブするプローブ（パケットプローブ装置１００）を複数の地点に置く。各プローブ１００では、パケットをネットワークよりコピーし、そのパケットデータを取り込む。さらに、各プローブは、取り込んだ大量のパケットデータをユーザネットワークもしくは専用ネットワークを通して、連続したストリームとして監視サーバ１０２に送る。さらに、監視サーバ１０２上において、複数地点から送られてくる連続したデータより同一のパケットを実時間で探し出し、パケットトラッキングを行う。なお、同一のパケットを探し出す動作をパケットマッチングと呼ぶ。
【０００３】
従来、パケットマッチングを行うために、図１３に示すように、プローブ１００でコピーされたパケットデータを監視サーバ１０２上に一時保存し、ある一定時間の後に、同一パケット選択装置１０３を用いてパケットマッチングをまとめて行うという作業を繰り返していた。したがって、同一パケット選択装置１０３では、実行時間に関係なく、監視サーバ１０２上に記憶されたパケットデータを比較することによってのみパケットマッチングが可能となった。
【０００４】
【発明が解決しようとする課題】
従来の技術では、実時間でのマッチングに関しては、以下の問題があった。
【０００５】
・実時間での処理を行わないため、一定時間以上の連続した監視が不可能である。
【０００６】
・パケットデータを突き合わせることによって検索を行っていたため、マッチング処理に時間がかかる。
【０００７】
・検索テーブルの容量が小さい場合には、検索テーブルへの効率のよい登録方法が必要となる。
【０００８】
・検索テーブルを用いたとしても、検索キーが長いと検索テーブルの参照時間が多くなる場合がある。
【０００９】
・二つの入力への入力レートが異なる場合には、検索テーブルへの登録量が異なる。検索テーブルが非常に小さい場合には、片側の入力からのパケットが検索テーブルへ登録されず、パケットマッチングを正常に行えない場合がある。
【００１０】
・検索に失敗したパケットを出力する機能が実時間で動作しない場合がある。
・パケットマッチングを行うためには、小さな有限のテーブルを用意して、そのテーブルにパケットストリームの断片を取り込み、検索キーをもとにして等しいパケットを探し出すと同時に、短い間隔で、常にテーブルを更新するという動作が必要とされる。ところで、パケットの到着時刻が異なったり、一定の時間を必要とする場合には、この時間がテーブル更新の時間よりも長い場合には、パケットマッチングされるべきパケットが全てのテーブルへ取り込まれず、パケットマッチングが正常に行われない。
【００１１】
本発明の目的は、実時間でのパケットマッチングが可能な実時間パケットトラッキング方法およびパケットマッチング装置を提供することにある。
【００１２】
【課題を解決するための手段】
本発明の実時間パケットトラッキング方法は、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成し、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているか調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力するものである。
【００１３】
本発明のパケットマッチング装置は、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成するマスキング手段と、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているか調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力するマッチング手段を有する。
【００１４】
したがって、本装置を監視サーバ上で用いることにより、複数の地点から送られてくる連続したデータより実時間でのパケットトラッキングが可能になる。
【００１５】
パケットマッチング装置を用いる際に、マッチング手段において、ハッシュを用いることにより、実時間でのパケットマッチングが可能となる。
【００１６】
検索テーブル量を多くとれない場合にハッシュを用いると、テーブルへの登録時に衝突が発生する可能性が高くなり、マッチング速度に影響がでる可能性がある。このような場合には、パトリシア木を用いてテーブルに登録することにより、実時間でのパケットマッチングが可能となる。検索キーが長い場合には、テーブルへの登録時に衝突が発生する可能性が高くなり、マッチング速度に影響がでる可能性がある。このような場合には、パトリシア木を用いてテーブルに登録することにより、実時間でのパケットマッチングが可能となる。
【００１７】
マッチング手段において、入力口に対してパトリシア木を用いて検索データベースを作ることにより、両方の入力レートが時間によって異なる場合に、検索テーブルに対して、パケットマッチングされるべきパケットを確実にテーブルへ登録することが可能になる。
【００１８】
マッチング手段において、２本の入力口において、ハッシュまたはパトリシア木を用いて、片側が１個、他方が３個のテーブルを利用することにより、片側の入力レートが非常に大きい場合に、検索テーブルに対して、パケットマッチングされるべきパケットを確実にテーブルへ登録することが可能となる。
【００１９】
マッチング手段が、検索データベース以外に、検索キーと、検索に成功したか失敗したかを表す属性の組からなる配列を保持していることにより、検索テーブルからパケットデータを削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【００２０】
マッチング手段が、検索キーにより検索に成功した場合には、検索テーブルよりデータを削除することにより、検索テーブル全体を一斉削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【００２１】
マッチング手段が、パケットとタイムスタンプの組で構成されたデータ列が与えられた場合に、マッチングしたパケットに関してはタイムスタンプを比較する、すなわち、差分等を計算することにより、ストリーム状で送られてくる二つのパケットデータについて、同一パケットデータの時間差や時間差の変動を調べることが可能になる。
【００２２】
検索テーブルの数を変えるということは、すなわち、検索テーブルへの一定時間におけるデータ登録数を増やすということとなる。正確にパケットマッチングを行うためには、マッチングされるべきパケット全てが有限の検索テーブルへ登録される必要がある。このために、ストリーム同期装置を組み込むが、この装置を用いても、ＳＩＱＶヘッダの生成間隔以内で検索テーブルを次々と更新した場合には、マッチングされるべきパケット全てが検索テーブルへ登録されない場合がある。このため、両入力（場合によっては片側の入力）に対応する検索テーブルの大きさを大きくしてこの問題をクリアする（請求項５、６）。
【００２３】
検索テーブル更新を行う際には、検索テーブルへ残っているデータをマッチング失敗した（つまり、等しいキーが見つからなかったデータ）として出力する必要がある。したがって、検索テーブルをクリアしないと、常に古いパケットデータが残っていることとなり、そのデータをマッチング失敗したデータとして常に出力することとなる。このようなエラーを避けるためには、検索テーブルからパケットデータを全て削除する方法と、検索テーブルに登録したパケットデータへの情報を参照する方法とが考えられる。どちらの方法を選択するかはトレードオフである。
【００２４】
ストリーム同期装置を備えることにより、各プローブから監視サーバへの遅延変動や遅延差が大きい場合に、遅延誤差を最小にし、パケットマッチングされるべきパケットが全てのテーブルへ取り込まれ、パケットマッチングが正常に行われることが可能になる。
【００２５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００２６】
本発明の実時間パケットトラッキング方法では、パケットプローブ装置から送られてくるパケットデータストリームを直接受けとり、実時間でパケットマッチングを行い、パケットマッチングに成功したデータと失敗したデータを出力する。
【００２７】
これを実現するために、図１に示すように、本実施形態は、ストリーム同期装置３０とパケットマッチング装置１０を有する。
【００２８】
「パケットマッチング装置１０」（請求項２，３，４，５，６，７，８）：パケットマッチング方法を実行する装置をパケットマッチング装置と呼ぶ。本装置は、図２に示すように、４入力（ＩＡ，ＩＢ，ＭＡ，ＭＢ）、３出力（ＯＭ，ＯＩＡ，ＯＩＢ）のデータポートを持つ。本装置では、入力ポートＩＡ，ＩＢに入力されたデータストリームの個々のパケットについて、マッチングされたものは、データポートＯＭへ出力する。マッチングしなかったパケットに関しては、入力ポートＩＡからの入力は出力ポートＯＩＡへ、入力ポートＩＢからの入力は出力ポートＯＩＢへ出力する。また、データポートＭＡ，ＭＢは、パケットの一部を参照することによって、パケットマッチングを可能とするためのマスク入力端子として用いる。
【００２９】
パケットマッチング装置１０は、図３に示すように、マスキング機構１１とマッチング機構１２とタイムスタンプ処理機構１３で構成される。それぞれの機構を次に述べる。なお、タイムスタンプ処理機構１３は、データストリーム中の個々のデータが、タイムスタンプとパケットデータの組で与えられる際に動作可能となり、タイムスタンプの処理が必要な場合に付与される機構である。
【００３０】
「マスキング機構１１」（請求項２）：パケットマッチングでは、等しいパケットを捜し出すために、パケットデータ領域の中で、書き変わることのない一部分を参照することが必要となる。このため、パケットデータの一部分を切り出すための機構をマスキング機構と呼ぶ。
【００３１】
図５において、ＩＰパケットを例にして、マスキング機構１１の動作例を示す。ここでは、“１”をｄｏｎ’ｔ  ｃａｒｅとしている。ＩＡへの入力データストリームの先頭にパケット（入力データ）Ａがあり、ＩＢへの入力データストリームの先頭にパケットＢがある。ＭＡのマスクはマスクＡとして示され、ＭＢのマスクはマスクＢとして示される。この際に、マスキング機構１１は、それぞれのマスクを参照してマスクデータを作成し、このデータをマッチング機構１２へ渡す。なお、パケットデータについてもマッチング機構１２へ渡す。
【００３２】
「マッチング機構１２」（請求項２，３，４，５，６，７，８）：マッチング機構１２は、図４に示すように、入出力モジュール２１とテーブル管理モジュール２２で構成される。本機構１２はマスクドデータをキーとして検索テーブルを参照して、同一パケットを捜し出す機能を有する。
【００３３】
以降では、ＨＩＡはＩＡ側の入力口に対応するハッシュ表（もしくはパトリシア木）により構成される検索テーブルを示す。ＨＩＡ（ｋｅｙ）は、ｋｅｙにより検索されたデータを示す。ＨＩＡ（ｋｅｙ）→（ａ，ｂ，ｃ）と表記された場合には、ｋｅｙによりポイントされるデータは、ａ，ｂ，ｃというデータの組であることを示す。また、それぞれのデータは、ＨＩＡ（ｋｅｙ）：ａ，ＨＩＡ（ｋｅｙ）：ｂ，ＨＩＡ（ｋｅｙ）：ｃと表現される。ここで、ＨＩＡ（ｋｅｙ）：Ａは、ＨＩＡ（ｋｅｙ）により検索されたＡというデータであることを示す。
【００３４】
◎入出力モジュール２１（請求項２）：ここでは、入力ポートＩＡからの入力を例にして以下に説明を行う。なお、入力ポートＩＢからの入力については、以下の文中のＩＡとＩＢを入れ換えることにより同様に動作する。
【００３５】
１．入力ポートＩＡへ入力されたデータストリームの先頭のパケットデータａと、ａのｋｅｙを取得する。
【００３６】
２．入力ポートＩＡからの入力データであることを示す属性をＩＡとすると、（ａ，ｋｅｙ，ＩＡ）からなるデータをテーブル管理モジュール２２へ送る。
【００３７】
３．テーブル管理モジュール２２からＡが帰ってきた場合において、
Ａ＝ＮＵＬＬの場合には、
１へ戻る。この際に、ＩＡとＩＢを入れ換えて動作を行う。
【００３８】
Ａ＝ｂ（＝ＨＩＢ（ｋｅｙ）であるパケットデータ）が帰ってきた場合には、
タイムスタンプ処理機構１３を通さない場合にはａ（もしくはｂ）を出力する。タイムスタンプ処理機構１３を通す場合には（ａ，ｂ）をタイムスタンプ処理機構１３へ渡す。
【００３９】
１へ戻る。この際に、ＩＡとＩＢを入れ換えて動作を行う。
【００４０】
◎テーブル管理モジュール２２（請求項２，３，４，５，６，７，８）：ここでは検索テーブルにハッシュを用いる例を説明するが、パトリシア木を利用する際でも同様の処理が可能である。
【００４１】
○テーブル管理モジュール２２（請求項２，３，４，５，７）：テーブル管理モジュール２２は、パケットマッチング装置１０への入力端子別に、入力ポートＩＡに対する検索テーブルＨＩＡ１を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１を管理する。また、入力ポートＩＡとＩＢのために、それぞれ、ｋｅｙの配列からなるＤＩＡ、ＤＩＢを有する。検索テーブルＨＩＡ１，ＨＩＢ１に登録される個々のデータは、ＨＩＡ１（ｋｅｙ）→（パケットデータ、Ｍｂｉｔ）の組で構成される。
【００４２】
Ｍｂｉｔは、ｋｅｙに対応したパケットの属性を示す。Ｍｂｉｔの初期値はオフとする。ｋｅｙに対応するパケットが見つかった際にはＭｂｉｔはオンとなる。したがって、Ｍｂｉｔを参照することにより、ｋｅｙに対応するパケットが見つかったかどうかを知ることができる。
【００４３】
テーブル管理モジュール２２への入力は入出力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｒは、ｄａｔａがＩＡ側からの入力か、ＩＢ側からの入力かを示す。
【００４４】
ａｔｔｒ＝ＩＡとして場合の検索動作を説明する。なお、ａｔｔｒ＝ＩＢの場合には、ＡとＢが入れ換わった動作となる。
【００４５】
・ｋｅｙをもとにて検索テーブルＨＩＢ１を検索する。
【００４６】
−検索テーブルＨＩＢ１よりデータを取得した場合：
＊ＨＩＢ１（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合：
１．“ＨＩＢ１（ｋｅｙ）：パケットデータ”をＴＯＵＴへ出力する。
２．ＨＩＢ１（ｋｅｙ）：Ｍｂｉｔ＝オンとする。
【００４７】
ＨＩＢ１（ｋｅｙ）：Ｍｂｉｔ＝＝オンの場合には、ＮＵＬＬをＴＯＵＴへ出力する。
【００４８】
−検索テーブルＨＩＢ１よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【００４９】
２．ＨＩＡ１（ｋｅｙ）に（パケットデータ、Ｍｂｉｔ＝オフ）からなるデータを保存する。
【００５０】
３．ＤＩＡ１にｋｅｙを保存する。
【００５１】
次に、テーブル管理モジュール２２は、検索テーブルＨＩＡ１，ＨＩＢ１と配列ＤＩＡ，ＤＩＢの管理を行う。本機能は、初期動作として、検索テーブルＨＩＡ１，ＨＩＢ１、配列ＤＩＡ，ＤＩＢの領域を確保した後に、削除条件Ｔを読み込み、ｔＩＡ＝０，ｔＩＢ＝０とする。ここで、ｔＩＡ、ｔＩＢはタイマ（もしくは、カウンタ＝パケット数）を示す。その後に以下のように動作する。なお、以下では、入力ポートＩＡ側の動作を説明しているが、入力ポートＩＢ側の動作は、ＡとＢを入れ換えれば同様となる。
【００５２】
・ｔＩＡ＝Ｔとなった場合：
１．配列ＤＩＡより順次ｋｅｙを参照し、ＨＩＡ１（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ１（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【００５３】
２．検索テーブルＨＩＡ１と配列ＤＩＡ１の内容をクリアする。
【００５４】
３．ｔＩＡ＝０とする。
【００５５】
・ｔＩＡ＜Ｔの場合：
１．本機能は動作しない。
【００５６】
○テーブル管理モジュール２２（請求項２，３，４，８）：テーブル管理モジュール２２は、入力ポートＩＡに対応する検索テーブルＨＩＡ１を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１を管理する。検索テーブルに登録される個々のデータは、ＨＩＡ（ｋｅｙ）→（パケットデータ）であり、パケットデータのみにより構成される。
【００５７】
テーブル管理モジュール２２への入力は入出力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｒは、ｄａｔａが入力ポートＩＡ側からの入力か、入力ポートＩＢ側からの入力かを示す。
【００５８】
ａｔｔｒ＝ＩＡとした場合の検索動作を説明する。なお、ａｔｔｒ＝ＩＢの場合には、ＡとＢが入れ換わった動作となる。
【００５９】
・ｋｅｙをもとにして、検索テーブルＨＩＢ１を検索する。
【００６０】
−検索テーブルＨＩＢ１よりデータを取得した場合：
１．“ＨＩＢ１（ｋｅｙ）：パケットデータ”をＴＯＵＴへ出力する。
２．ＨＩＢ１より“ＨＩＢ１（ｋｅｙ）：パケットデータ”を削除す  る。
【００６１】
−検索テーブルＨＩＢ１よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【００６２】
２．ＨＩＡ１（ｋｅｙ）に（パケットデータ）を保存する。
【００６３】
次に、テーブル管理モジュール２２は検索テーブルＨＩＡ１，ＨＩＢ１の管理を行う。本機能は、初期動作として、検索テーブルＨＩＡ１、ＨＩＢ１の領域を確保した後に、削除条件Ｔを読み込み、ｔＩＡ＝０，ｔＩＢ＝０とする。ここで、ｔＩＡ，ｔＩＢはタイマ（もしくは、カウンタ＝パケット数）を示す。その後に以下のように動作する。なお、以下では、入力ポートＩＡ側の動作を説明しているが、入力ポートＩＢ側の動作は、ＡとＢを入れ換えれば同様となる。
【００６４】
・ｔＩＡ＝Ｔとなった場合：
１．検索テーブルＨＩＡ１にパケットデータが存在する場合には、そのデータをＯＩＡへ出力する。
【００６５】
２．検索テーブルＨＩＡ１の内容をクリアする。
【００６６】
３．ｔＩＡ＝０とする。
【００６７】
・ｔＩＡ＜Ｔの場合：
１．本機能は動作しない。
【００６８】
○テーブル管理モジュール２２（請求項２，３，４，５，７）：テーブル管理モジュール２２は、パケットマッチング装置１０への入力端子別に、入力ポートＩＡに対応する検索テーブルＨＩＡ１，ＨＩＡ２を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１，ＨＩＢ２を管理する。また、入力ポートＩＡとＩＢのために、それぞれ、ｋｅｙからなる配列ＤＩＡ１，ＤＩＡ２，ＤＩＢ１，ＤＩＢ２を有する。検索テーブルに登録される個々のデータは，ｎ＝１，２とすると、ＨＩＡｎ（ｋｅｙ）→（パケットデータ、Ｍｂｉｔ）の組で構成される。
【００６９】
Ｍｂｉｔは、ｋｅｙに対応したパケットの属性を示す。Ｍｂｉｔの初期値はオフとする。ｋｅｙに対応するパケットが見つかった際にはＭｂｉｔはオンとなる。したがって、Ｍｂｉｔを参照することにより、ｋｅｙに対応するパケットが見つかったかどうかを知ることができる。
【００７０】
テーブル管理モジュール２２への入力は入出力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｒは、ｄａｔａがＩＡ側からの入力か、ＩＢ側からの入力かを示す。
【００７１】
ａｔｔｒ＝ＩＡとした場合の検索動作を説明する。なお、ａｔｔｒ＝ＩＢの場合には、ＡとＢが入れ換わった動作となる。
【００７２】
・ｋｅｙをもとにして、ＨＩＢｎ（ｎ＝１，２）を検索する。
【００７３】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できた場合：
＊ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合：
１．“ＨＩＢｍ（ｋｅｙ）パケットデータ”をＯＭへ出力する。
【００７４】
２．ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝オンとする。
【００７５】
＊ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝＝オンの場合には、ＮＵＬＬをＴＯＵＴへ出力する。
【００７６】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【００７７】
２．ＨＩＡ１（ｋｅｙ）に（パケットデータ、Ｍｂｉｔ＝オフ）からなるデータを保存する。
【００７８】
３．ＤＩＡ１にｋｅｙを保存する。
【００７９】
次に、テーブル管理モジュール２２は、検索テーブルＨＩＡ１，ＨＩＡ２，ＨＩＢ１，ＨＩＢ２と配列ＤＩＡ１，ＤＩＡ２，ＤＩＢ１，ＤＩＢ２の管理を行う。本機能は、初期動作として、ＨＡ０，ＨＡ１，ＨＢ０，ＨＢ１，ＤＡ０，ＤＡ１、ＤＢ０、ＤＢ１を領域を確保した後に、削除条件Ｔと読み込み、ａをａ＜Ｔとなる値とすると、ｔＩＡ＝０，ｔＩＢ＝Ｔ−ａ：初期状態１（もしくは、ｔＩＡ＝Ｔ−ａ，ｔＩＢ＝０：初期状態２）とし、ｈｉａ＝０，ｈｉｂ＝０とする。また、ＨＩＡ１→ＨＡ０，ＨＩＡ２→ＨＡ１，ＨＩＢ１→ＨＢ０，ＨＩＢ２→ＨＢ１とし、ＤＩＡ１→ＤＡ０，ＤＩＡ２→ＤＡ１、ＤＩＢ１→ＤＢ０，ＤＩＢ２→ＤＢ１とする。ここで、ｔＩＡ，ｔＩＢはタイマ（もしくは、カウンタ＝パケット数）を示す。その後に以下のように動作する。以下では、ＩＡの側の動作を説明しているが、ＩＢ側の動作は、ＡとＢを入れ換えれば同様となる。
【００８０】
・ｔＩＡ＝Ｔとなった場合：
−その１−１
１．ＤＩＡ２より順次ｋｅｙを参照し、ＨＩＡ２（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ２（ｋｅｙ）：バケットデータ”をＯＩＡへ出力する。
【００８１】
２．ＨＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【００８２】
３．ｈｉａ＝１−ｈｉａとし、ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
【００８３】
４．ＨＩＡ１とＤＩＡ１の内容をクリアする。
【００８４】
５．ｔＩＡ＝０とする。
【００８５】
−その１−２
１．ＨＩＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【００８６】
２．ｈｉａ＝１−ｈｉａとし、ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
【００８７】
３．ＤＩＡ１より順次ｋｅｙを参照し、ＨＩＡ１（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ１（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【００８８】
４．ＨＩＡ１とＤＩＡ１をクリアする。
【００８９】
５．ｔＩＡ＝０とする。
【００９０】
−その２
１．ＤＩＡ２より順次ｋｅｙを参照し、ＨＩＡ２（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ２（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【００９１】
２．ＨＩＡ２とＤＩＡ２の内容をクリアする。
【００９２】
３．ＨＩＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【００９３】
４．ｈｉａ＝１−ｈｉａとする。
【００９４】
５．ＨＩＡ１→ＨＡｈｉａとし、ＤＩＡ１→ＤＡｈｉａとする。
【００９５】
６．ｔＩＡ＝０とする。
【００９６】
−その３−１
１．ＤＩＡ２より順次ｋｅｙを参照し、ＨＩＡ２（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ２（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【００９７】
２．ＨＩＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【００９８】
３．ｈｉａ＝１−ｈｉａとし、ＨＡｈｉａとＤＡｈｉａをクリアする。
【００９９】
４．ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
【０１００】
５．ｔＩＡ＝０とする。
【０１０１】
−その３−２
１．ＨＩＡ２→ＤＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【０１０２】
２．ｈｉａ＝１−ｈｉａとする。
【０１０３】
３．ＤＡｈｉａより順次ｋｅｙを参照し、ＨＡｈｉａ：Ｍｂｉｔ＝＝オフの場合には、“ＨＡｈｉａ（ｋｅｙ）：パケットデータ”をＯＬＡへ出力する。
【０１０４】
４．ＨＡｈｉａとＤＡｈｉａをクリアする。
【０１０５】
５．ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
【０１０６】
６．ｔＩＡ＝０とする。
【０１０７】
・ｔＩＡ＜Ｔの場合：
１．本機能は動作しない。
【０１０８】
○テーブル管理モジュール２２（請求項２，３，４，５，８）：テーブル管理モジュール２２は、入力ポートＩＡに対応する検索テーブルＨＩＡ１，ＨＩＡ２を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１，ＨＩＢ２を管理する。検索テーブルに登録される個々のデータは、ｎ＝１，２とすると、ＨＩＡｎ（ｋｅｙ）→（パケットデータ）であり、パケットデータのみにより構成される。
【０１０９】
テーブル管理モジュール２２への入力は入力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｒは、ｄａｔａが入力ポートＩＡ側からの入力か、入力ポートＩＢ側からの入力かを示す。
【０１１０】
ａｔｔｒ＝ＩＡとした場合の検索動作を説明する。なお、ａｔｔｒ＝ＩＢの場合には、ＡとＢが入れ換わった動作となる。
【０１１１】
・ｋｅｙをもとにして、ＨＩＢｎ（ｎ＝１，２）を検索する。
【０１１２】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できた場合：
１．“ＨＩＢｍ（ｋｅｙ）：パケットデータ”をＴＯＵＴへ出力する。
【０１１３】
２．ＨＩＢｍ（ｋｅｙ）より“ＨＩＢｍ（ｋｅｙ）：パケットデータ”
を削除する。
【０１１４】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【０１１５】
２．ＨＩＡ１（ｋｅｙ）に（パケットデータ）を保存する。
【０１１６】
次に、テーブル管理モジュール２２は、検索テーブルＨＩＡ１，ＨＩＡ２，ＨＩＢ１，ＨＩＢ２の管理を行う。本機能は、初期動作として、検索テーブルＨＡ０，ＨＡ１，ＨＢ０，ＨＢ１の領域を確保した後に、削除条件Ｔを読み込み、ａをａ＜Ｔなる値とすると、ｔＩＡ＝０，ｔＩＢ＝Ｔ−ａ：初期状態１（もしくは、ｔＩＡ＝Ｔ−ａ，ｔＩＢ＝０：初期状態２）とし、ｈｉａ＝０，ｈｉｂ＝０とする。また、ＨＩＡ１→ＨＡ０，ＨＩＡ２→ＨＡ１，ＨＩＢ１→ＨＢ０，ＨＩＢ２→ＨＩＢ１とする。ここで、ｔＩＡ，ｔＩＢはタイマ（もしくは、カウンタ＝パケット数）を示す。その後に以下のように動作する。なお、以下では、入力ポートＩＡ側の動作を説明しているが、入力ポートＩＢ側の動作はＡとＢを入れ換えれば同様となる。
【０１１７】
・ｔＩＡ＝Ｔとなった場合：
−その１−１
１．検索テーブルＨＩＡ２にパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０１１８】
２．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０１１９】
３．ｈｉａ＝１−ｈｉａとして、ＨＩＡ１→ＨＡｈｉａとする。
【０１２０】
４．検索テーブルＨＩＡ１の内容をクリアする。
【０１２１】
５．ｔＩＡ＝０とする。
【０１２２】
−その１−２
１．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０１２３】
２．ｈｉａ＝１ーｈｉａとして、ＨＩＡ１→ＨＡｈｉａとする。
【０１２４】
３．検索テーブルＨＩＡ１にパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０１２５】
４．検索テーブルＨＩＡ１の内容をクリアする。
【０１２６】
５．ｔＩＡ＝０とする。
【０１２７】
−その２
１．検索テーブルＨＩＡ２パケットデータが存在する場合には、それをＯＩＡへ出力する。
【０１２８】
２．検索テーブルＨＩＡ２の内容をクリアする。
【０１２９】
３．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０１３０】
４．ｈｉａ＝１−ｈｉａとして、ＨＩＡ１→ＨＡｈｉａとする。
【０１３１】
５．ｔＩＡ＝０とする。
【０１３２】
−その３−１
１．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０１３３】
２．ｈｉａ＝１−ｈｉａとする。
【０１３４】
３．ＨＡｈｉａにパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０１３５】
４．ＨＡｈｉａをクリアする。
【０１３６】
５．検索テーブルＨＩＡ１→ＨＡｈｉａとする。
【０１３７】
６．ｔＩＡ＝０とする。
【０１３８】
−その３−２
１．検索テーブルＨＩＡ２にパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０１３９】
２．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０１４０】
３．検索テーブルｈｉａ＝１−ｈｉａとして、ＨＡｈｉａをクリアする。
４．検索テーブルＨＩＡ１→ＨＡｈｉａとする。
【０１４１】
５．ｔＩＡ＝０とする。
【０１４２】
・ｔＩＡ＜Ｔの場合：
１．本機能は動作しない。
【０１４３】
○テーブル管理モジュール２２：その２（請求項２，３，４，５，７）：テーブル管理モジュール２２は、パケットマッチング装置１０への入力端子別に、入力ポートＩＡに対応する検索テーブルＨＩＡ１，ＨＩＡ２を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１，ＨＩＢ２を管理する。また、入力ポートＩＡとＩＢのために、それぞれ、ｋｅｙからなる配列ＤＩＡ１，ＤＩＡ２，ＤＩＢ１，ＤＩＢ２を有する。検索テーブルに登録される個々のデータは、ｎ＝１，２とすると、ＨＩＡｎ（ｋｅｙ）→（パケットデータ、Ｍｂｉｔ）の組で構成される。
【０１４４】
Ｍｂｉｔはｋｅｙに対応したパケットの属性を示す。Ｍｂｉｔの初期値はオフとする。ｋｅｙに対応するパケットが見つかった際にはＭｂｉｔはオンとなる。したがって、Ｍｂｉｔを参照することにより、ｋｅｙに対応するパケットが見つかったかどうかを知ることができる。
【０１４５】
テーブル管理モジュール２２への入力は入出力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｒは、ｄａｔａがＩＡ側からの入力か、ＩＢ側からの入力かを示す。
【０１４６】
ａｔｔｒ＝ＩＡとした場合の検索動作を説明する。なお、ａｔｔｒ＝ＩＢの場合には、ＡとＢが入れ換わった動作となる。
【０１４７】
・ｋｅｙをもとにして、ＨＩＢｎ（ｎ＝１，２）を検索する。
【０１４８】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できた場合：
ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合：
１．“ＨＩＢｍ（ｋｅｙ）：パケットデータ”をＴＯＵＴへ出力する。
【０１４９】
２．ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝オンとする。
【０１５０】
ＨＩＢｍ（ｋｅｙ）：＝＝オンの場合には、ＮＵＬＬをＴＯＵＴへ出力する。
【０１５１】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【０１５２】
２．ＨＩＡ１（ｋｅｙ）に（パケットデータ、Ｍｂｉｔ：＝オンからなるデータを保存する。１は、次パラグラフを参照。
【０１５３】
３．ＤＩＡ１にｋｅｙを保存する。１は、次パラグラフを参照。
【０１５４】
次に、テーブル管理モジュール２２は、検索テーブルＨＩＡ１，ＨＩＡ２，ＨＩＢ１，ＨＩＢ２と配列ＤＩＡ１，ＤＩＡ２，ＤＩＢ１，ＤＩＢ２の管理を行う。本機能は、初期動作として、検索テーブルＨＡ０，ＨＡ１，ＨＢ０，ＨＢ１，配列ＤＡ０，ＤＡ１，ＤＢ０，ＤＢ１の領域を確保した後に、削除条件Ｔ、条件ｔ（ｔ＜＝Ｔ／２）を読み込み、ｔＩＡ＝ｔＩＢ＝０とする。また、ｈｉａ＝０，ｈｉｂ＝０とする。さらに、ＨＩＡ１→ＨＡ０，ＨＩＡ２→ＨＡ１，ＨＩＢ１→ＨＢ０，ＨＩＢ２→ＨＢ１とし、ＤＩＡ１→ＤＡ０、ＤＩＡ２→ＤＡ１、ＤＩＢ１→ＤＢ０，ＤＩＢ２→ＤＢ１とする。ここで、ｔＩＡ，ｔＩＢがタイマ（もしくは、カウンタ＝パケット数）を示す。その後に以下のように動作する。以下では、ＩＡ側の動作を説明しているが、ＩＢ側の動作は、ＡとＢを入れ換えれば同様となる。
【０１５５】
・その１
−ｔＩＡ＜ｔの場合：
１．１＝ｈｉａ＋１とする。
【０１５６】
−ｔ≦ｔＩＡ＜Ｔの場合：
１．１＝１と２の両方の値とする。
【０１５７】
−ｔＩＡ＝Ｔとなった場合：
１．ＤＡｈｉａより順次ｋｅｙを参照し、ＨＡｈｉａ（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＡｈｉａ（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０１５８】
２．ＨＡｈｉａとＤＡｈｉａの内容をクリアする。
【０１５９】
３．ｈｉａ＝１−ｈｉａとする。
【０１６０】
４．ｔＩＡ＝０とする。
【０１６１】
・その２
−ｔＩＡ＜ｔの場合：
１．１＝１とする。
【０１６２】
−ｔ＜＝ｔＩＡ＜Ｔの場合：
１．１＝１と２の両方の値とする。
【０１６３】
−ｔＩＡ＝Ｔとなった場合：
＊その２−１−１
１．ＤＩＡ２より順次ｋｅｙを参照し、ＨＩＡ２（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ２（ｋｅｙ）：パケットデータ”を
ＯＩＡへ出力する。
【０１６４】
２．ＨＩＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【０１６５】
３．ｈｉａ＝１−ｈｉａとし、ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
【０１６６】
４．ＨＩＡ１とＤＩＡ１の内容をクリアする。
【０１６７】
５．ｔＩＡ＝０とする。
【０１６８】
＊その２−１−２
１．ＨＩＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【０１６９】
２．ｈｉａ＝１−ｈｉａとし、ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
【０１７０】
３．ＤＩＡ１より順次ｋｅｙを参照し、ＨＩＡ１（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ１（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０１７１】
４．ＨＩＡ１とＤＩＡ１をクリアする。
【０１７２】
５．ｔＩＡ＝０とする。
【０１７３】
＊その２−２
１．ＤＩＡ２より順次ｋｅｙを参照し、ＨＩＡ２（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ２（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０１７４】
２．ＨＩＡ２とＤＩＡ２の内容をクリアする。
【０１７５】
３．ＨＩＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【０１７６】
４．ｈｉａ＝１−ｈｉａとする。
【０１７７】
５．ＨＩＡ１→ＤＩｈｉａとし、ＤＩＡ１→ＤＡｈｉａとする。
【０１７８】
６．ｔＩＡ＝０とする。
【０１７９】
＊その２−３−１
１．ＤＩＡ２より順次ｋｅｙを参照し、ＨＩＡ２（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＡ２（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０１８０】
２．ＨＩＡ２→ＨＡｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【０１８１】
３．ｈｉａ＝１−ｈｉａとし、ＨＡｈｉａとＤＡｈｉａをクリアする。
４．ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
【０１８２】
５．ｔＩＡ＝０とする。
【０１８３】
＊その２−３−２
１．ＨＩＡ２→ＤＩｈｉａとし、ＤＩＡ２→ＤＡｈｉａとする。
【０１８４】
２．ｈｉａ＝１−ｈｉａとする。
３．ＤＡｈｉａより順次ｋｅｙを参照し、ＨＡｈｉａ：Ｍｂｉｔ＝＝  オフの場合には、“ＨＡｈｉａ（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
４．ＨＡｈｉａとＤＡｈｉａをクリアする。
５．ＨＩＡ１→ＨＡｈｉａ，ＤＩＡ１→ＤＡｈｉａとする。
６．ｔＩＡ＝０とする。
○テーブル管理モジュール２２（請求項２，３，４，５，８）：テーブル管理モジュール２２は、入力ポートＩＡに対応する検索テーブルＨＩＡ１、ＨＩＡ２を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１，ＨＩＢ２を管理する。検索テーブルに登録される個々のデータは、ｎ＝１，２とすると、ＨＩＡｎ（ｋｅｙ）→（パケットデータ）であり、パケットデータのみにより構成される。
【０１８５】
テーブル管理モジュール２２への入力は入出力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｅｒは、ｄａｔａがＩＡ側からの入力か、ＩＢ側からの入力かを示す。
【０１８６】
ａｔｔｒ＝ＩＡとした場合の検索動作を説明する。なお、ａｔｔｒ＝ＩＢの場合には、ＡとＢが入れ換わった動作となる。
【０１８７】
・ｋｅｙをもとにして、ＨＩＢｎ（ｎ＝１，２）を検索する。
【０１８８】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できた場合：
１．“ＨＩＢｍ（ｋｅｙ）パケットデータ”をＴＯＵＴへ出力する。
【０１８９】
２．ＨＩＢｍ（ｋｅｙ）より、“ＨＩＢｍ（ｋｅｙ）：パケットデータ”を削除する。
【０１９０】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【０１９１】
２．ＨＩＡ１（ｋｅｙ）に（パケットデータ、Ｍｂｉｔ＝オフ）からなるデータを保存する。１は、次パラグラフを参照。
【０１９２】
次に、テーブル管理モジュール２２は、検索テーブルＨＩＡ１，ＨＩＡ２，ＨＩＢ１，ＨＩＢ２の管理を行う。本機能は、初期動作として、ＨＡ０，ＨＡ１，ＨＢ０，ＨＢ１の領域を確保した後に、削除条件Ｔ、条件ｔ（ｔ＜＝Ｔ／２）を読み込み、ｔＩＡ＝ｔＩＢ＝０とする。また、ｈｉａ＝０，ｈｉｂ＝０とする。さらに、ＨＩＡ１→ＨＡ０，ＨＩＡ２→ＨＡ１，ＨＩＢ１→ＨＢ０，ＨＩＢ２→ＨＢ１とする。ここで、ｔＩＡ，ｔＩＢはタイマ（もしくは、カウンタ＝パケット数）を示す。その後に以下のように動作する。以下では、入力ポートＩＡ側の動作を説明しているが、入力ポートＩＢ側の動作は、ＡとＢを入れ換えれば同様となる。
【０１９３】
・その１
−ｔＩ＜ｔの場合
１．１＝ｈｉａ＋１とする。
【０１９４】
−ｔ＜＝ｔＩＡ＜Ｔの場合：
１．１＝ｈｉａ＋１，２−ｈｉａとする。
【０１９５】
−ｔＩＡ＝Ｔとなった場合：
１．ＨＡｈｉａにパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０１９６】
２．ＨＡｈｉａの内容をクリアする。
【０１９７】
３．ｈｉａ＝１−ｈｉａとする。
【０１９８】
４．ｔＩＡ＝０とする。
【０１９９】
・その２
−ｔＩＡ＜ｔの場合
１．１＝１とする。
【０２００】
−ｔ＜＝ｔＩＡ＜Ｔの場合：
１．１＝１，２とする。
【０２０１】
−ｔＩＡ＝Ｔとなった場合：
＊その２−１−１
１．検索テーブルＨＩＡ２にパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０２０２】
２．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０２０３】
３．検索テーブルｈｉａ＝１−ｈｉａとし、ＨＩＡ１→ＨＡｈｉａとする。
【０２０４】
４．検索テーブルＨＩＡ１の内容をクリアする。
【０２０５】
５．ｔＩＡ＝０とする。
【０２０６】
＊その２−１−２
１．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０２０７】
２．ｈｉａ＝１−ｈｉａとし、ＨＩＡ１→ＨＡｈｉａとする。
【０２０８】
３．検索テーブルＨＩＡ１にパケットデータが存在する場合には、それ
をＯＩＡへ出力する。
【０２０９】
４．検索テーブルＨＩＡ１と配列ＤＩＡ１をクリアする。
【０２１０】
５．ｔＩＡ＝０とする。
【０２１１】
＊その２−２
１．検索テーブルＨＩＡ２にパケットデータが存在する場合には、それ
をＯＩＡへ出力する。
【０２１２】
２．検索テーブルＨＩＡ２の内容をクリアする。
【０２１３】
３．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０２１４】
４．ｈｉａ＝１−ｈｉａとする。
【０２１５】
５．検索テーブルＨＩＡ１→ＨＡｈｉａとする。
【０２１６】
６．ｔＩＡ＝０とする。
【０２１７】
＊その２−３−１
１．検索テーブルＨＩＡ２にパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０２１８】
２．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０２１９】
３．ｈｉａ＝１−ｈｉａとし、ＨＡｈｉａをクリアする。
【０２２０】
４．検索テーブルＨＩＡ１→ＨＡｈｉａとする。
【０２２１】
５．ｔＩＡ＝０とする。
【０２２２】
＊その２−３−２
１．検索テーブルＨＩＡ２→ＨＡｈｉａとする。
【０２２３】
２．ｈｉａ＝１−ｈｉａとする。
【０２２４】
３．ＨＡｈｉａにパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０２２５】
４．ＨＡｈｉａをクリアする。
【０２２６】
５．検索テーブルＨＩＡ１→ＨＡｈｉａとする。
【０２２７】
６．ｔＩＡ＝０とする。
【０２２８】
○テーブル管理モジュール２２（請求項２，３，４，６．７）：テーブル管理モジュール２２は、パケットマッチング装置１０への入力端子別に入力ポートＩＡに対応する検索テーブルＨＩＡ１を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１，ＨＩＢ２，ＨＩＢ３を管理する。また、入力ポートＩＡとＩＢのために、それぞれ、ｋｅｙからなる配列ＤＩＡ１，ＤＩＢ１，ＤＩＢ２，ＤＩＢ３を有する。検索テーブルに登録される個々のデータは（パケットデータ、Ｍｂｉｔ）の組で構成される。
【０２２９】
Ｍｂｉｔはｋｅｙに対応したパケットの属性を示す。Ｍｂｉｔの初期値はオフとする。ｋｅｙに対応するパケットが見つかった際にはＭｂｉｔはオンとなる。したがって、Ｍｂｉｔを参照することにより、ｋｅｙに対応するパケットが見つかったかどうかを知ることができる。
【０２３０】
テーブル管理モジュール２２への入力は入出力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｒは、ｄａｔａがＩＡ側からの入力か、ＩＢ側からの入力かを示す。
【０２３１】
ａｔｔｒ＝ＩＡとした場合の検索動作を説明する。ｎは、ｎ＝１，２，３となる整数である。なお、ａｔｔｒ＝ＩＢの場合には、ｎ＝１となり、ＡとＢが入れ換わった動作となる。
【０２３２】
・ｋｅｙをもとにして、ＨＩＢｎを検索する（ｎ＞１の場合には全てのｎについて調べる）。
【０２３３】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できた場合：
＊ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合：
１．“ＨＩＢｍ（ｋｅｙ）：パケットデータ”をＴＯＵＴへ出力する。
【０２３４】
２．ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝オンとする。
【０２３５】
＊ＨＩＢｍ（ｋｅｙ）：Ｍｂｉｔ＝＝オンの場合には、ＮＵＬＬをＴＯＵＴへ出力する。
【０２３６】
−ＨＩＢｍ（ｍ＝任意のｎ）よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【０２３７】
２．ＨＩＡ１（ｋｅｙ）に（バケットデータ、Ｍｂｉｔ＝オフ）からなるデータを保存する。
【０２３８】
３．ＤＩＡ１に、ｋｅｙを保存する。
【０２３９】
次に、テーブル管理モジュール２２は検索テーブルＨＩＡ１，ＨＩＢ１，ＨＩＢ２，ＨＩＢ３と配列ＤＩＡ，ＤＩＢ１，ＤＩＢ２，ＤＩＢ３の管理を行う。本機能は、初期動作として、検索テーブルＨＩＡ１，ＨＢ０，ＨＢ１，ＨＢ２，配列ＤＩＡ，ＤＢ０，ＤＢ１，ＤＢ２を領域確保した後に、削除条件Ｔを読み込み、ｔＩＡ＝０．ｔＩＢ＝０とする。また、ＨＩＢ１→ＨＢ０，ＨＩＢ２→ＨＢ１，ＨＩＢ３→ＨＢ２とし、ＤＩＢ１→ＤＢ０，ＤＩＢ２→ＤＢ１，ＤＩＢ３→ＤＢ２とする。ここで、ｔＩＡ，ｔＩＢはタイマ（もしくは、カウンタ＝パケット数）を示す。その後に以下のように動作する。なお、ｈｉｂは０で始まり、この値は、２ビットカウンタ（インクリメントすると、０，１，２，０，１，２，・・・と続く）とする。
【０２４０】
・ｔＩＡ＝Ｔとなった場合：
１．ＤＩＡ１より順次ｋｅｙを参照し、ＨＩＡ１（ｋｅｙ）：Ｍｂｉｔ＝＝オフの場合には、“ＨＩＢ３（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０２４１】
２．ＨＩＡ１とＤＩＡ１の内容をクリアする。
【０２４２】
３．ｔＩＡ＝０とする。
【０２４３】
・ｔＩＡ＜Ｔの場合：
１．本機能は動作しない。
【０２４４】
・ｔＩＢ＝Ｔとなった場合：
−その１−１
１．ＤＩＮ３より順次ｋｅｙを参照し、ＨＩＢ３（ｋｅｙ）：Ｍｂｉｔ＝オフの場合には、“ＨＩＢ３（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０２４５】
２．ａ＝ｈｉｂ＋１とすると、ＨＩＢ２→ＨＢｈｉｂ，ＨＩＢ３→ＨＢａとし、ＤＩＢ２→ＨＢｈｉｂ，ＤＩＢ３→ＤＢａとする。
【０２４６】
３．ｈｉｂ＝ｈｉｂ−１とし、ＨＩＢ０→ＨＢｈｉｂ，ＤＩＢ０→ＤＢｈｉｂとする。
【０２４７】
４．ＨＩＢ０とＤＩＢ０の内容をクリアする。
【０２４８】
５．ｔＩＢ＝０とする。
【０２４９】
−その１−２
１．ａ＝ｈｉｂ＋１とすると、ＨＩＢ２→ＨＢｈｉｂ，ＨＩＢ３→ＨＢａとし、ＤＩＢ２→ＨＢｈｉｂ，ＤＩＢ３→ＤＢａとする。
【０２５０】
２．ｈｉｂ＝ｈｉｂ−１とし、ＨＩＢ０→ＨＢｈｉｂ，ＤＩＢ０→ＤＢｈｉｂとする。
【０２５１】
３．ＤＩＢ０より順次ｋｅｙを参照し、ＨＩＢ０（ｋｅｙ）：Ｍｂｉｔ＝オフの場合には、“ＨＩＢ０（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０２５２】
４．ＨＩＢ０とＤＩＢ０の内容をクリアする。
【０２５３】
５．ｔＩＢ＝０とする。
【０２５４】
−その２
１．ＤＩＢ３より順次ｋｅｙを参照し、ＨＩＢ３（ｋｅｙ）：Ｍｂｉｔ＝オフの場合には、“ＨＩＢ３（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０２５５】
２．ＨＩＢ３とＤＩＢ３の内容をクリアする。
【０２５６】
３．ａ＝ｈｉｂ＋１とすると、ＨＩＢ２→ＨＢｈｉｂ，ＨＩＢ３→ＨＢａとし、ＤＩＢ２→ＤＢｈｉｂ，ＤＩＢ３→ＤＢａとする。
【０２５７】
４．ｈｉｂ＝ｈｉｂ−１とし、ＨＩＢ０→ＨＢｈｉｂ，ＤＩＢ０→ＤＢｈｉｂとする。
【０２５８】
５．ｔＩＢ＝０とする。
【０２５９】
−その３−１
１．ＤＩＢ３より順次ｋｅｙを参照し、ＨＩＢ３（ｋｅｙ）：Ｍｂｉｔ＝オフの場合には、“ＨＩＢ３（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０２６０】
２．ａ＝ｈｉｂ＋１とすると、ＨＩＢ２→ＨＢｈｉｂ，ＨＩＢ３→ＨＢａとし、ＤＩＢ２→ＤＢｈｉｂ，ＤＩＢ３→ＤＢａとする。
【０２６１】
３．ｈｉｂ＝ｈｉｂ−１とし、ＨＢｈｉｂとＤＡｈｉｂをクリアする。
【０２６２】
４．ＨＩＢ０→ＨＢｈｉｂ，ＤＩＢ０→ＤＢｈｉｂとする。
【０２６３】
５．ｔＩＢ＝０とする。
【０２６４】
−その３−２
１．ａ＝ｈｉｂ＋１とすると、ＨＩＢ２→ＨＢｈｉｂ，ＨＩＢ３→ＨＢａとし、ＤＩＢ２→ＤＢｈｉｂ，ＤＩＢ３→ＤＢａとする。
２．ｈｉｂ＝ｈｉｂ−１とする。
【０２６５】
３．ＤＢｈｉｂより順次ｋｅｙを参照し、ＨＢｈｉｂ（ｋｅｙ）：Ｍｂｉｔ＝オフの場合には、“ＨＢｈｉｂ（ｋｅｙ）：パケットデータ”をＯＩＡへ出力する。
【０２６６】
４．ＨＢｈｉｂとＤＡｈｉｂをクリアする。
【０２６７】
５．ＨＩＢ０→ＨＢｈｉｂ，ＤＩＢ０→ＤＢｈｉｂとする。
【０２６８】
６．ｔＩＢ＝０とする。
【０２６９】
・ｔＩＢ＜Ｔの場合：
１．本機能は動作しない。
【０２７０】
○テーブル管理モジュール２２（請求項２，３，４，６，８）：テーブル管理モジュール２２は、入力ポートＩＡに対応する検索テーブルＨＩＡ１を管理し、入力ポートＩＢに対応する検索テーブルＨＩＢ１，ＨＩＢ２，ＨＩＢ３を管理する。検索テーブルに登録される個々のデータはパケットデータであり、パケットデータのみにより構成される。
【０２７１】
テーブル管理モジュール２２への入力は入出力モジュール２１よりＴＩＮを通して与えられ、（ｋｅｙ，ｄａｔａ，ａｔｔｒ）の組により構成される。ｋｅｙは検索キーを示し、ｄａｔａはパケットデータを示し、ａｔｔｒは、ｄａｔａがＩＡ側からの入力か、ＩＢ側からの入力かを示す。
【０２７２】
ａｔｔｒ＝ＩＡとした場合の検索動作を説明する。なお、ａｔｔｒ＝ＩＢの場合には、ｎ＝１となり、ＡとＢが入れ換わった動作となる。
【０２７３】
・ｋｅｙをもとにして、ＨＩＢｎを検索する（ｎ＞１の場合には、全てのｎについて調べる）
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できた場合：
１．ＨＩＢｍ（ｋｅｙ）：パケットデータをＴＯＵＴへ出力する。
【０２７４】
２．ＨＩＢｍ（ｋｅｙ）より、ＨＩＢｍ（ｋｅｙ）：パケットデータを削除する。
【０２７５】
−ＨＩＢｍ（ｍ：任意のｎ）よりデータを取得できない場合：
１．ＮＵＬＬをＴＯＵＴへ出力する。
【０２７６】
２．ＨＩＡ１（ｋｅｙ）に（パケットデータ）を保存する。
【０２７７】
次に、テーブル管理モジュール２２は検索テーブルＨＩＡ１，ＨＩＢ１，ＨＩＢ２，ＨＩＢ３の管理を行う。本機能は、初期動作として、検索テーブルＨＩＡ１，ＨＢ０，ＨＢ１，ＨＢ２の領域を確保した後に、削除条件Ｔを読み込み、ｔＩＡ＝０，ｔＩＢ＝０とする。また、ＨＩＢ１→ＨＢ０，ＨＩＢ２→ＨＢ１，ＨＩＢ３→ＨＢ２とする。ここで、ｔＩＡ，ｔＩＢはタイマ（もしくはカウンタ＝パケット数）を示す。その後に以下のように動作する。なお、ｈｉｂは、０で始まり、この値は２ビットカウンタ（インクリメントすると、０，１，２，０，１，２，・・・と続く）とする。
【０２７８】
・ｔＩＡ＝Ｔとなった場合：
１．ＨＩＡ１にパケットデータが存在する場合には、それをＯＩＡへ出力する。
【０２７９】
２．ＨＩＡ１の内容をクリアする。
【０２８０】
３．ｔＩＡ＝０とする。
【０２８１】
・ｔＩＡ＜Ｔの場合：
１．本機能は動作しない。
【０２８２】
・ｔＩＢ＝Ｔとなった場合：
−その１−１
１．ＨＩＢ３にパケットデータが存在する場合には、それをＯＩＢへ出力する。
【０２８３】
２．ＨＩＢ２→ＨＢｈｉｂ，ａ＝ｈｉｂ＋１とすると、ＨＩＢ３→ＨＢａとする。
【０２８４】
３．ｈｉｂ＝ｈｉｂ−１とし、ＨＩＢ０→ＨＢｈｉｂとする。
【０２８５】
４．ＨＩＢ０の内容をクリアする。
【０２８６】
５．ｔＩＢ＝０とする。
【０２８７】
−その１−２
１．ＨＩＢ２→ＨＢｈｉｂ，ａ＝ｈｉｂ＋１とすると、ＨＩＢ３→ＨＢａとする。
【０２８８】
２．ｈｉｂ＝ｈｉｂ−１とし、ＨＩＢ０→ＨＢｈｉｂとする。
【０２８９】
３．ＨＩＢ０にパケットデータが存在する場合には、それをＯＩＢへ出力する。
【０２９０】
４．ＨＩＢ０の内容をクリアする。
【０２９１】
５．ｔＩＢ＝０とする。
【０２９２】
−その２
１．ＨＩＢ３にパケットデータが存在する場合には、それをＯＩＢへ出力する。
【０２９３】
２．ＨＩＢ３の内容をクリアする。
【０２９４】
３．ＨＩＢ２→ＨＩＢｈｉｂ，ａ＝ｈｉｂ＋１とすると、ＨＩＢ３→ＨＢａとする。
【０２９５】
４．ｈｉｂ＝ｈｉｂ−１とする。
【０２９６】
５．ｔＩＢ＝０とする。
【０２９７】
−その３−１
１．ＨＩＢ３にパケットデータが存在する場合には、それをＯＩＢへ出力する。
【０２９８】
２．ＨＩＢ２→ＨＢｈｉｂ，ａ＝ｈｉｂ＋１とすると、ＨＩＢ３→ＨＢａとする。
【０２９９】
３．ｈｉｂ＝ｈｉｂ−１とし、ＨＢｈｉｂとＤＡｈｉｂをクリアする。
【０３００】
４．ＨＩＢ０→ＨＢｈｉｂとする。
【０３０１】
５．ｔＩＢ＝０とする。
【０３０２】
−その３−２
１．ＨＩＢ２→ＨＢｈｉｂ，ａ＝ｈｉｂ１とすると、ＨＩＢ３→ＨＢａとする。
【０３０３】
２．ｈｉｂ＝ｈｉｂ−１とする。
【０３０４】
３．ＨＢｈｉｂにパケットデータが存在する場合には、それをＯＩＢへ出力する。
【０３０５】
４．ＨＢｈｉｂをクリアする。
【０３０６】
５．ＨＩＢ０→ＨＢｈｉｂとする。
【０３０７】
６．ｔＩＢ＝０とする。
【０３０８】
・ｔＩＢ＜Ｔの場合：
１．本機能は動作しない。
【０３０９】
「タイムスタンプ処理機構１３」（請求項９）：マッチング機構１２の入出力モジュール２１より（ａ，ｂ）の組からなるパケットデータのストリームが送られてきたとする。さらに、ａは、（Ｔａ，ａ）といった、タイムスタンプＴａとデータａを持ち、ｂは、（Ｔｂ，ｂ）といったタイムスタンプＴｂとデータｂを持つ。この場合に、（ａ，ｂ）が入力として与えられると、（Ｔａ，Ｔｂ，ａ）（もしくは、（Ｔａ，Ｔｂ，ｂ））という組からなるデータをパケットデータストリームとして出力する。
【０３１０】
ストリーム同期装置３０（請求項１０）：ストリーム同期装置３０は、図６に示すように、発火機構３１とＳＩＱＶヘッダ再生機構３２からなる。本装置を用いて同期制御を行うには、プローブにてパケットがコピーされ、そのデータがストリームデータとして監視サーバへ送られる際に、定期的にシーケンス番号を含むパケットが挿入されている必要がある。これに仮に、ＳＩＱＶヘッダと呼ぶ。
【０３１１】
ＳＩＱＶヘッダは、パケットプローブ装置により一定間隔で生成され、シーケンス番号はＳＩＱＶヘッダが作成される度にインクリメントされる。ストリーム同期装置３０では、シーケンス番号が等しいＳＩＱＶヘッダに区切られたストリーム単位で実行を行うことにより、パケットデータストリーム収集時間の誤差を吸収する同期実行制御が可能となる。
【０３１２】
ストリーム同期装置３０が有する発火機構３１の基本動作を図７に示す。図７にあるように、等しいシーケンス番号を持つＳＩＱＶヘッダが両側の入力に揃った際に、発火が行われる。その後に、ＳＩＱＶヘッダ以降のデータを随時読み込む。片側の入力にのみＳＩＱＶヘッダが現れた場合には、その入力側をロックして、データの読み込みを止める。なお、ＳＩＱＶヘッダに区切られたストリーム単位で実行を行うということは、各リンクバッファの最大量が算出できるとい利点が生じる。
【０３１３】
発火機構３１では、詳しくは以下のように実行を制御する、動作例を図８に示す。
【０３１４】
・片側の入力の先頭にのみ同期パケットがある場合
（図８（１），（３），（６））：他方の入力へ同期パケットが到着するのを待つ。
【０３１５】
・両方の入力の先頭に等しいシーケンス番号を持つ同期パケットが揃った場合（図８（２），（４））：同期パケットを取り除いて、以降のデータストリームを読み込み、検索テーブルへ送る。これを発火と呼ぶ。この際に、同期パケットのシーケンス番号をＳｅｑｕｅｎｃｅ  ｒｅｇｉｓｔｅｒ  と呼ばれる変数に保存する。
【０３１６】
・両方の入力の先頭に異なるシーケンス番号を持つ同期パケットがある場合（図８（５））：小さなシーケンス番号を持つ同期パケット以降のデータストリームを、同期パケットを取り除いて、以降のデータストリームに読み込み、検索テーブルへ送る。
【０３１７】
・Ｓｅｑｕｅｎｃｅ  ｒｅｇｉｓｔｅｒ  の値より小さなシーケンス番号を持つ同期パケットがある場合：同期パケットを取り除いて、以降のデータストリームを読み込み、検索テーブルへ送る。
【０３１８】
なお、ストリーム同期装置３０は、ＳＩＱＶヘッダ再生機構３２を有する。ＳＩＱＶヘッダ再生機構３２は、発火機構３１により取り外された同期パケットを再生する機構である。この機構は、発火機構３１により発火が行われた際に、同期パケットを生成して、全ての出力口へ出力する。この際に、発火した同期パケットのシーケンス番号を、本機構が新たに生成する同期パケットのシーケンス番号とする。発火が行われない場合には、検索テーブルより出力されるパケットストリームを出力する。
【０３１９】
図９に品質監視網と被監視網を例示する。被監視網は、ホスト４０とルータ４１と試験パケット生成用ホスト４２で構成され、これらは、イーサネットとフレームリレーを用いてＩＰ接続される。品質監視網は、パケットプローブ装置４３と監視ステーション４４（監視サーバ）で構成され、これらはイーサネットやＩＳＤＮを用いてＩＰ接続される。さらに、パケットプローブ装置４３は、ＩＳＤＮを利用して時計同期が行われており、パケットプローブ装置４３と監視ステーション４４は非常に正確に時計同期されている。
【０３２０】
パケットプローブ装置４３は、被監視網のイーサネットとフレームリレーをプローブするプローブインタフェースを有する（図の○）。このプローブにより、被監視網のイーサネットとフレームリレーを流れるＩＰパケットを監視する。プローブされた結果は監視ステーション４４に送られて、この監視ステーション４４において、実時間パケットトラッキングが行われる。
【０３２１】
図９に示すようなネットワーク品質監視網において、監視サーバ（Ｄａｔａ  Ｃｏｌｌｅｃｔｉｏｎ  Ｓｅｒｖｅｒ）で利用する分析プログラム（福田晴元、小野諭、高橋直久、“インターネットＱｏＳビジュアライザの設計と実現”信学会論文誌マルチメディアネットワーク／サービス品質特集号、Ｊｕｌ．，  １９９７）のｍｐｆノードでの利用が例として上げられる。パケットデータストリ−ムの同期に必要ＳＩＱＶヘッダは、パケット収集装置によりパケットデータストリームに挿入され、Ｐｉｎノードにおいて、ＳＩＱＶヘッダ形式へと変更される。
【０３２２】
ｍｐｆは図１０で例示するように構成される。分析プログラムは、図１１として与えられたとする。Ｐｉｎで生成されるＳＩＱＶヘッダにより区切られたデータストリームがｍｐｆの入力に到着する。ストリーム同期装置３０の発火機構３１により、ＳＩＱＶヘッダのシーケンス番号にしたがった発火制御が行われ、データが内部に取り込まれる。さらに、パケットマッチング装置１０において、マッチング処理が行われる。このようにして処理されたデータは、ｕｎｍａｔｃｈ，ｕｎｍａｔｃｈ，ｍａｔｃｈ  の計３個の出力先へ出力される。ＳＩＱＶヘッダ再生機構３２により、ＳＩＱＶヘッダが付与されてｍｐｆより出力される。
【０３２３】
プローブでパケットをコピーした際に、タイムスタンプを付与して監視サーバへデータストリームを送ることが考えられる。ｍｐｆへの入力は、（ｔ，ｐ）というように時間を示すタイムスタンプとパケットデータの組からなるストリームとなる。この場合には、タイムスタンプ処理機構１３により入力が（ｔ１，ｐ），（ｔ２，ｐ）の場合には、ｍａｔｃｈ  したデータは、（ｔ１，ｔ２，ｐ）と出力される。このｔ１，ｔ２を比較することにより、時間差が算出される。
【０３２４】
このように、ｍｐｆノードの処理を実時間で行うことにより、片道遅延等の変動がリアルタイムに算出可能である。さらに、このようにして出力されたデータのタイムスタンプを操作することにより、実時間でのパケットトラッキング、すなわち、ネットワーク上でのパケットの動作が観測可能となる。
【０３２５】
【発明の効果】
請求項１，３：本発明を監視サーバ上で用いることにより、複数の地点から送られてくる連続したデータより、実時間でのパケットトラッキングが可能となる。さらに、本発明をパケット網に適用して、実時間でのパケットトラッキングを行うことにより、実時間での品質変動把握が可能となる。請求項２を実現したパケットマッチング装置を用いることにより、ストリーム状で送られてくるパケットデータについて、同一パケットデータを選出し、パケットマチングを行うことを実時間で処理することが可能となる。
【０３２６】
請求項４：パケットマッチング装置を用いる際に、マッチング機構において、ハッシュを用いることにより、実時間でのパケットマッチングが可能になる。
【０３２７】
請求項５：パトリシア木を用いて検索テーブルに入力データを登録することにより、実時間でのパケットマッチングが可能になる。
【０３２８】
請求項６：両方の入力レートが時間によって異なる場合に、パケットマッチングされるべきパケットを検索テーブルに確実に登録することが可能になる。
【０３２９】
請求項７：片側の入力レートが非常に大きい場合に、検索テーブルに対して、パケットマッチングされるべきパケットを確実にテーブルへ登録することが可能になる。
【０３３０】
請求項８：検索テーブルからパケットデータを削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【０３３１】
請求項９：検索テーブル全体を削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【０３３２】
請求項２、１０：差分等を計算することにより、ストリーム状で送られてくる二つのパケットデータについて、同一パケットデータの時間差や時間差の変動を調べることが可能になる。
【０３３３】
請求項１１：各プローブから監視サーバへの遅延変動や遅延差が大きい場合には、請求項４〜９の発明に手を加えることなく、遅延誤差を最小にし、パケットマッチングされるべきパケットが全てのテーブルへ取り込まれ、パケットマッチングが正常に行われることを可能にする。さらに、各プローブから監視サーバへのネットワーク構成を考える際に、データストリームの転送遅延を考慮する必要がなくなる。
【図面の簡単な説明】
【図１】本発明の実時間パケットトラッキング方法を示す図である。
【図２】パケットマッチング装置の入出力ポートを示す図である。
【図３】パケットマッチング装置の構成図である。
【図４】マッチング機構１２の構成図である。
【図５】マスキングの実行例を示す図である。
【図６】ストリーム同期装置の構成図である。
【図７】パケットデータストリームの同期方法の例を示す図である。
【図８】シーケンス番号と早期制御を示す図である。
【図９】ネットワーク品質管理網を示す図である。
【図１０】ｍｐｆノードの構成図である。
【図１１】分析プログラムを示す図である。
【図１２】パケットネットワークとプローブを示す図である。
【図１３】従来のパケットトラッキング方法を示す図である。
【符号の説明】
１０    パケットマッチング装置
１１    マスキング機構
１２    マッチング機構
１３    タイムスタンプ機構
２１    入出力モジュール
２２    テーブル管理モジュール
３０    ストリーム同期装置
３１    発火機構
３２    ＳＩＱＶヘッダ再生機構
４０    ホスト
４１    ルータ
４２    試験パケット生成用ホスト
４３    パケットプローブ装置
４４    監視ステーション
【図１】
0003581238.tif 000002
【図２】
0003581238.tif 000003
【図３】
0003581238.tif 000004
【図４】
0003581238.tif 000005
【図５】
0003581238.tif 000006
【図６】
0003581238.tif 000007
【図７】
0003581238.tif 000008
【図８】
0003581238.tif 000009
【図９】
0003581238.tif 000010
【図１０】
0003581238.tif 000011
【図１１】
0003581238.tif 000012
【図１２】
0003581238.tif 000013
【図１３】
0003581238.tif 000014