Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3581238B2 - Real-time packet tracking method and packet matching device - Google Patents
[go: Go Back, main page]

JP3581238B2 - Real-time packet tracking method and packet matching device - Google Patents

Real-time packet tracking method and packet matching device Download PDF

Info

Publication number
JP3581238B2
JP3581238B2 JP25688797A JP25688797A JP3581238B2 JP 3581238 B2 JP3581238 B2 JP 3581238B2 JP 25688797 A JP25688797 A JP 25688797A JP 25688797 A JP25688797 A JP 25688797A JP 3581238 B2 JP3581238 B2 JP 3581238B2
Authority
JP
Japan
Prior art keywords
packet
data
key
search
matching
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 - Lifetime
Application number
JP25688797A
Other languages
Japanese (ja)
Other versions
JPH1198194A (en
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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP25688797A priority Critical patent/JP3581238B2/en
Publication of JPH1198194A publication Critical patent/JPH1198194A/en
Application granted granted Critical
Publication of JP3581238B2 publication Critical patent/JP3581238B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はパケットを伝送するネットワークに関し、特にパケットトラッキング方法に関する。
【0002】
【従来の技術】
情報(パケット)を伝送するネットワーク(ユーザネットワークと呼ぶ)において、図12に例示するように、ネットワーク上を流れるパケットをパケット転送装置101を経てプローブするプローブ(パケットプローブ装置100)を複数の地点に置く。各プローブ100では、パケットをネットワークよりコピーし、そのパケットデータを取り込む。さらに、各プローブは、取り込んだ大量のパケットデータをユーザネットワークもしくは専用ネットワークを通して、連続したストリームとして監視サーバ102に送る。さらに、監視サーバ102上において、複数地点から送られてくる連続したデータより同一のパケットを実時間で探し出し、パケットトラッキングを行う。なお、同一のパケットを探し出す動作をパケットマッチングと呼ぶ。
【0003】
従来、パケットマッチングを行うために、図13に示すように、プローブ100でコピーされたパケットデータを監視サーバ102上に一時保存し、ある一定時間の後に、同一パケット選択装置103を用いてパケットマッチングをまとめて行うという作業を繰り返していた。したがって、同一パケット選択装置103では、実行時間に関係なく、監視サーバ102上に記憶されたパケットデータを比較することによってのみパケットマッチングが可能となった。
【0004】
【発明が解決しようとする課題】
従来の技術では、実時間でのマッチングに関しては、以下の問題があった。
【0005】
・実時間での処理を行わないため、一定時間以上の連続した監視が不可能である。
【0006】
・パケットデータを突き合わせることによって検索を行っていたため、マッチング処理に時間がかかる。
【0007】
・検索テーブルの容量が小さい場合には、検索テーブルへの効率のよい登録方法が必要となる。
【0008】
・検索テーブルを用いたとしても、検索キーが長いと検索テーブルの参照時間が多くなる場合がある。
【0009】
・二つの入力への入力レートが異なる場合には、検索テーブルへの登録量が異なる。検索テーブルが非常に小さい場合には、片側の入力からのパケットが検索テーブルへ登録されず、パケットマッチングを正常に行えない場合がある。
【0010】
・検索に失敗したパケットを出力する機能が実時間で動作しない場合がある。
・パケットマッチングを行うためには、小さな有限のテーブルを用意して、そのテーブルにパケットストリームの断片を取り込み、検索キーをもとにして等しいパケットを探し出すと同時に、短い間隔で、常にテーブルを更新するという動作が必要とされる。ところで、パケットの到着時刻が異なったり、一定の時間を必要とする場合には、この時間がテーブル更新の時間よりも長い場合には、パケットマッチングされるべきパケットが全てのテーブルへ取り込まれず、パケットマッチングが正常に行われない。
【0011】
本発明の目的は、実時間でのパケットマッチングが可能な実時間パケットトラッキング方法およびパケットマッチング装置を提供することにある。
【0012】
【課題を解決するための手段】
本発明の実時間パケットトラッキング方法は、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成し、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているか調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力するものである。
【0013】
本発明のパケットマッチング装置は、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成するマスキング手段と、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているか調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力するマッチング手段を有する。
【0014】
したがって、本装置を監視サーバ上で用いることにより、複数の地点から送られてくる連続したデータより実時間でのパケットトラッキングが可能になる。
【0015】
パケットマッチング装置を用いる際に、マッチング手段において、ハッシュを用いることにより、実時間でのパケットマッチングが可能となる。
【0016】
検索テーブル量を多くとれない場合にハッシュを用いると、テーブルへの登録時に衝突が発生する可能性が高くなり、マッチング速度に影響がでる可能性がある。このような場合には、パトリシア木を用いてテーブルに登録することにより、実時間でのパケットマッチングが可能となる。検索キーが長い場合には、テーブルへの登録時に衝突が発生する可能性が高くなり、マッチング速度に影響がでる可能性がある。このような場合には、パトリシア木を用いてテーブルに登録することにより、実時間でのパケットマッチングが可能となる。
【0017】
マッチング手段において、入力口に対してパトリシア木を用いて検索データベースを作ることにより、両方の入力レートが時間によって異なる場合に、検索テーブルに対して、パケットマッチングされるべきパケットを確実にテーブルへ登録することが可能になる。
【0018】
マッチング手段において、2本の入力口において、ハッシュまたはパトリシア木を用いて、片側が1個、他方が3個のテーブルを利用することにより、片側の入力レートが非常に大きい場合に、検索テーブルに対して、パケットマッチングされるべきパケットを確実にテーブルへ登録することが可能となる。
【0019】
マッチング手段が、検索データベース以外に、検索キーと、検索に成功したか失敗したかを表す属性の組からなる配列を保持していることにより、検索テーブルからパケットデータを削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【0020】
マッチング手段が、検索キーにより検索に成功した場合には、検索テーブルよりデータを削除することにより、検索テーブル全体を一斉削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【0021】
マッチング手段が、パケットとタイムスタンプの組で構成されたデータ列が与えられた場合に、マッチングしたパケットに関してはタイムスタンプを比較する、すなわち、差分等を計算することにより、ストリーム状で送られてくる二つのパケットデータについて、同一パケットデータの時間差や時間差の変動を調べることが可能になる。
【0022】
検索テーブルの数を変えるということは、すなわち、検索テーブルへの一定時間におけるデータ登録数を増やすということとなる。正確にパケットマッチングを行うためには、マッチングされるべきパケット全てが有限の検索テーブルへ登録される必要がある。このために、ストリーム同期装置を組み込むが、この装置を用いても、SIQVヘッダの生成間隔以内で検索テーブルを次々と更新した場合には、マッチングされるべきパケット全てが検索テーブルへ登録されない場合がある。このため、両入力(場合によっては片側の入力)に対応する検索テーブルの大きさを大きくしてこの問題をクリアする(請求項5、6)。
【0023】
検索テーブル更新を行う際には、検索テーブルへ残っているデータをマッチング失敗した(つまり、等しいキーが見つからなかったデータ)として出力する必要がある。したがって、検索テーブルをクリアしないと、常に古いパケットデータが残っていることとなり、そのデータをマッチング失敗したデータとして常に出力することとなる。このようなエラーを避けるためには、検索テーブルからパケットデータを全て削除する方法と、検索テーブルに登録したパケットデータへの情報を参照する方法とが考えられる。どちらの方法を選択するかはトレードオフである。
【0024】
ストリーム同期装置を備えることにより、各プローブから監視サーバへの遅延変動や遅延差が大きい場合に、遅延誤差を最小にし、パケットマッチングされるべきパケットが全てのテーブルへ取り込まれ、パケットマッチングが正常に行われることが可能になる。
【0025】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【0026】
本発明の実時間パケットトラッキング方法では、パケットプローブ装置から送られてくるパケットデータストリームを直接受けとり、実時間でパケットマッチングを行い、パケットマッチングに成功したデータと失敗したデータを出力する。
【0027】
これを実現するために、図1に示すように、本実施形態は、ストリーム同期装置30とパケットマッチング装置10を有する。
【0028】
「パケットマッチング装置10」(請求項2,3,4,5,6,7,8):パケットマッチング方法を実行する装置をパケットマッチング装置と呼ぶ。本装置は、図2に示すように、4入力(IA,IB,MA,MB)、3出力(OM,OIA,OIB)のデータポートを持つ。本装置では、入力ポートIA,IBに入力されたデータストリームの個々のパケットについて、マッチングされたものは、データポートOMへ出力する。マッチングしなかったパケットに関しては、入力ポートIAからの入力は出力ポートOIAへ、入力ポートIBからの入力は出力ポートOIBへ出力する。また、データポートMA,MBは、パケットの一部を参照することによって、パケットマッチングを可能とするためのマスク入力端子として用いる。
【0029】
パケットマッチング装置10は、図3に示すように、マスキング機構11とマッチング機構12とタイムスタンプ処理機構13で構成される。それぞれの機構を次に述べる。なお、タイムスタンプ処理機構13は、データストリーム中の個々のデータが、タイムスタンプとパケットデータの組で与えられる際に動作可能となり、タイムスタンプの処理が必要な場合に付与される機構である。
【0030】
「マスキング機構11」(請求項2):パケットマッチングでは、等しいパケットを捜し出すために、パケットデータ領域の中で、書き変わることのない一部分を参照することが必要となる。このため、パケットデータの一部分を切り出すための機構をマスキング機構と呼ぶ。
【0031】
図5において、IPパケットを例にして、マスキング機構11の動作例を示す。ここでは、“1”をdon’t careとしている。IAへの入力データストリームの先頭にパケット(入力データ)Aがあり、IBへの入力データストリームの先頭にパケットBがある。MAのマスクはマスクAとして示され、MBのマスクはマスクBとして示される。この際に、マスキング機構11は、それぞれのマスクを参照してマスクデータを作成し、このデータをマッチング機構12へ渡す。なお、パケットデータについてもマッチング機構12へ渡す。
【0032】
「マッチング機構12」(請求項2,3,4,5,6,7,8):マッチング機構12は、図4に示すように、入出力モジュール21とテーブル管理モジュール22で構成される。本機構12はマスクドデータをキーとして検索テーブルを参照して、同一パケットを捜し出す機能を有する。
【0033】
以降では、HIAはIA側の入力口に対応するハッシュ表(もしくはパトリシア木)により構成される検索テーブルを示す。HIA(key)は、keyにより検索されたデータを示す。HIA(key)→(a,b,c)と表記された場合には、keyによりポイントされるデータは、a,b,cというデータの組であることを示す。また、それぞれのデータは、HIA(key):a,HIA(key):b,HIA(key):cと表現される。ここで、HIA(key):Aは、HIA(key)により検索されたAというデータであることを示す。
【0034】
◎入出力モジュール21(請求項2):ここでは、入力ポートIAからの入力を例にして以下に説明を行う。なお、入力ポートIBからの入力については、以下の文中のIAとIBを入れ換えることにより同様に動作する。
【0035】
1.入力ポートIAへ入力されたデータストリームの先頭のパケットデータaと、aのkeyを取得する。
【0036】
2.入力ポートIAからの入力データであることを示す属性をIAとすると、(a,key,IA)からなるデータをテーブル管理モジュール22へ送る。
【0037】
3.テーブル管理モジュール22からAが帰ってきた場合において、
A=NULLの場合には、
1へ戻る。この際に、IAとIBを入れ換えて動作を行う。
【0038】
A=b(=HIB(key)であるパケットデータ)が帰ってきた場合には、
タイムスタンプ処理機構13を通さない場合にはa(もしくはb)を出力する。タイムスタンプ処理機構13を通す場合には(a,b)をタイムスタンプ処理機構13へ渡す。
【0039】
1へ戻る。この際に、IAとIBを入れ換えて動作を行う。
【0040】
◎テーブル管理モジュール22(請求項2,3,4,5,6,7,8):ここでは検索テーブルにハッシュを用いる例を説明するが、パトリシア木を利用する際でも同様の処理が可能である。
【0041】
○テーブル管理モジュール22(請求項2,3,4,5,7):テーブル管理モジュール22は、パケットマッチング装置10への入力端子別に、入力ポートIAに対する検索テーブルHIA1を管理し、入力ポートIBに対応する検索テーブルHIB1を管理する。また、入力ポートIAとIBのために、それぞれ、keyの配列からなるDIA、DIBを有する。検索テーブルHIA1,HIB1に登録される個々のデータは、HIA1(key)→(パケットデータ、Mbit)の組で構成される。
【0042】
Mbitは、keyに対応したパケットの属性を示す。Mbitの初期値はオフとする。keyに対応するパケットが見つかった際にはMbitはオンとなる。したがって、Mbitを参照することにより、keyに対応するパケットが見つかったかどうかを知ることができる。
【0043】
テーブル管理モジュール22への入力は入出力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、attrは、dataがIA側からの入力か、IB側からの入力かを示す。
【0044】
attr=IAとして場合の検索動作を説明する。なお、attr=IBの場合には、AとBが入れ換わった動作となる。
【0045】
・keyをもとにて検索テーブルHIB1を検索する。
【0046】
−検索テーブルHIB1よりデータを取得した場合:
*HIB1(key):Mbit==オフの場合:
1.“HIB1(key):パケットデータ”をTOUTへ出力する。
2.HIB1(key):Mbit=オンとする。
【0047】
HIB1(key):Mbit==オンの場合には、NULLをTOUTへ出力する。
【0048】
−検索テーブルHIB1よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0049】
2.HIA1(key)に(パケットデータ、Mbit=オフ)からなるデータを保存する。
【0050】
3.DIA1にkeyを保存する。
【0051】
次に、テーブル管理モジュール22は、検索テーブルHIA1,HIB1と配列DIA,DIBの管理を行う。本機能は、初期動作として、検索テーブルHIA1,HIB1、配列DIA,DIBの領域を確保した後に、削除条件Tを読み込み、tIA=0,tIB=0とする。ここで、tIA、tIBはタイマ(もしくは、カウンタ=パケット数)を示す。その後に以下のように動作する。なお、以下では、入力ポートIA側の動作を説明しているが、入力ポートIB側の動作は、AとBを入れ換えれば同様となる。
【0052】
・tIA=Tとなった場合:
1.配列DIAより順次keyを参照し、HIA1(key):Mbit==オフの場合には、“HIA1(key):パケットデータ”をOIAへ出力する。
【0053】
2.検索テーブルHIA1と配列DIA1の内容をクリアする。
【0054】
3.tIA=0とする。
【0055】
・tIA<Tの場合:
1.本機能は動作しない。
【0056】
○テーブル管理モジュール22(請求項2,3,4,8):テーブル管理モジュール22は、入力ポートIAに対応する検索テーブルHIA1を管理し、入力ポートIBに対応する検索テーブルHIB1を管理する。検索テーブルに登録される個々のデータは、HIA(key)→(パケットデータ)であり、パケットデータのみにより構成される。
【0057】
テーブル管理モジュール22への入力は入出力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、attrは、dataが入力ポートIA側からの入力か、入力ポートIB側からの入力かを示す。
【0058】
attr=IAとした場合の検索動作を説明する。なお、attr=IBの場合には、AとBが入れ換わった動作となる。
【0059】
・keyをもとにして、検索テーブルHIB1を検索する。
【0060】
−検索テーブルHIB1よりデータを取得した場合:
1.“HIB1(key):パケットデータ”をTOUTへ出力する。
2.HIB1より“HIB1(key):パケットデータ”を削除す る。
【0061】
−検索テーブルHIB1よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0062】
2.HIA1(key)に(パケットデータ)を保存する。
【0063】
次に、テーブル管理モジュール22は検索テーブルHIA1,HIB1の管理を行う。本機能は、初期動作として、検索テーブルHIA1、HIB1の領域を確保した後に、削除条件Tを読み込み、tIA=0,tIB=0とする。ここで、tIA,tIBはタイマ(もしくは、カウンタ=パケット数)を示す。その後に以下のように動作する。なお、以下では、入力ポートIA側の動作を説明しているが、入力ポートIB側の動作は、AとBを入れ換えれば同様となる。
【0064】
・tIA=Tとなった場合:
1.検索テーブルHIA1にパケットデータが存在する場合には、そのデータをOIAへ出力する。
【0065】
2.検索テーブルHIA1の内容をクリアする。
【0066】
3.tIA=0とする。
【0067】
・tIA<Tの場合:
1.本機能は動作しない。
【0068】
○テーブル管理モジュール22(請求項2,3,4,5,7):テーブル管理モジュール22は、パケットマッチング装置10への入力端子別に、入力ポートIAに対応する検索テーブルHIA1,HIA2を管理し、入力ポートIBに対応する検索テーブルHIB1,HIB2を管理する。また、入力ポートIAとIBのために、それぞれ、keyからなる配列DIA1,DIA2,DIB1,DIB2を有する。検索テーブルに登録される個々のデータは,n=1,2とすると、HIAn(key)→(パケットデータ、Mbit)の組で構成される。
【0069】
Mbitは、keyに対応したパケットの属性を示す。Mbitの初期値はオフとする。keyに対応するパケットが見つかった際にはMbitはオンとなる。したがって、Mbitを参照することにより、keyに対応するパケットが見つかったかどうかを知ることができる。
【0070】
テーブル管理モジュール22への入力は入出力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、attrは、dataがIA側からの入力か、IB側からの入力かを示す。
【0071】
attr=IAとした場合の検索動作を説明する。なお、attr=IBの場合には、AとBが入れ換わった動作となる。
【0072】
・keyをもとにして、HIBn(n=1,2)を検索する。
【0073】
−HIBm(m:任意のn)よりデータを取得できた場合:
*HIBm(key):Mbit==オフの場合:
1.“HIBm(key)パケットデータ”をOMへ出力する。
【0074】
2.HIBm(key):Mbit=オンとする。
【0075】
*HIBm(key):Mbit==オンの場合には、NULLをTOUTへ出力する。
【0076】
−HIBm(m:任意のn)よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0077】
2.HIA1(key)に(パケットデータ、Mbit=オフ)からなるデータを保存する。
【0078】
3.DIA1にkeyを保存する。
【0079】
次に、テーブル管理モジュール22は、検索テーブルHIA1,HIA2,HIB1,HIB2と配列DIA1,DIA2,DIB1,DIB2の管理を行う。本機能は、初期動作として、HA0,HA1,HB0,HB1,DA0,DA1、DB0、DB1を領域を確保した後に、削除条件Tと読み込み、aをa<Tとなる値とすると、tIA=0,tIB=T−a:初期状態1(もしくは、tIA=T−a,tIB=0:初期状態2)とし、hia=0,hib=0とする。また、HIA1→HA0,HIA2→HA1,HIB1→HB0,HIB2→HB1とし、DIA1→DA0,DIA2→DA1、DIB1→DB0,DIB2→DB1とする。ここで、tIA,tIBはタイマ(もしくは、カウンタ=パケット数)を示す。その後に以下のように動作する。以下では、IAの側の動作を説明しているが、IB側の動作は、AとBを入れ換えれば同様となる。
【0080】
・tIA=Tとなった場合:
−その1−1
1.DIA2より順次keyを参照し、HIA2(key):Mbit==オフの場合には、“HIA2(key):バケットデータ”をOIAへ出力する。
【0081】
2.HA2→HAhiaとし、DIA2→DAhiaとする。
【0082】
3.hia=1−hiaとし、HIA1→HAhia,DIA1→DAhiaとする。
【0083】
4.HIA1とDIA1の内容をクリアする。
【0084】
5.tIA=0とする。
【0085】
−その1−2
1.HIA2→HAhiaとし、DIA2→DAhiaとする。
【0086】
2.hia=1−hiaとし、HIA1→HAhia,DIA1→DAhiaとする。
【0087】
3.DIA1より順次keyを参照し、HIA1(key):Mbit==オフの場合には、“HIA1(key):パケットデータ”をOIAへ出力する。
【0088】
4.HIA1とDIA1をクリアする。
【0089】
5.tIA=0とする。
【0090】
−その2
1.DIA2より順次keyを参照し、HIA2(key):Mbit==オフの場合には、“HIA2(key):パケットデータ”をOIAへ出力する。
【0091】
2.HIA2とDIA2の内容をクリアする。
【0092】
3.HIA2→HAhiaとし、DIA2→DAhiaとする。
【0093】
4.hia=1−hiaとする。
【0094】
5.HIA1→HAhiaとし、DIA1→DAhiaとする。
【0095】
6.tIA=0とする。
【0096】
−その3−1
1.DIA2より順次keyを参照し、HIA2(key):Mbit==オフの場合には、“HIA2(key):パケットデータ”をOIAへ出力する。
【0097】
2.HIA2→HAhiaとし、DIA2→DAhiaとする。
【0098】
3.hia=1−hiaとし、HAhiaとDAhiaをクリアする。
【0099】
4.HIA1→HAhia,DIA1→DAhiaとする。
【0100】
5.tIA=0とする。
【0101】
−その3−2
1.HIA2→DAhiaとし、DIA2→DAhiaとする。
【0102】
2.hia=1−hiaとする。
【0103】
3.DAhiaより順次keyを参照し、HAhia:Mbit==オフの場合には、“HAhia(key):パケットデータ”をOLAへ出力する。
【0104】
4.HAhiaとDAhiaをクリアする。
【0105】
5.HIA1→HAhia,DIA1→DAhiaとする。
【0106】
6.tIA=0とする。
【0107】
・tIA<Tの場合:
1.本機能は動作しない。
【0108】
○テーブル管理モジュール22(請求項2,3,4,5,8):テーブル管理モジュール22は、入力ポートIAに対応する検索テーブルHIA1,HIA2を管理し、入力ポートIBに対応する検索テーブルHIB1,HIB2を管理する。検索テーブルに登録される個々のデータは、n=1,2とすると、HIAn(key)→(パケットデータ)であり、パケットデータのみにより構成される。
【0109】
テーブル管理モジュール22への入力は入力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、attrは、dataが入力ポートIA側からの入力か、入力ポートIB側からの入力かを示す。
【0110】
attr=IAとした場合の検索動作を説明する。なお、attr=IBの場合には、AとBが入れ換わった動作となる。
【0111】
・keyをもとにして、HIBn(n=1,2)を検索する。
【0112】
−HIBm(m:任意のn)よりデータを取得できた場合:
1.“HIBm(key):パケットデータ”をTOUTへ出力する。
【0113】
2.HIBm(key)より“HIBm(key):パケットデータ”
を削除する。
【0114】
−HIBm(m:任意のn)よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0115】
2.HIA1(key)に(パケットデータ)を保存する。
【0116】
次に、テーブル管理モジュール22は、検索テーブルHIA1,HIA2,HIB1,HIB2の管理を行う。本機能は、初期動作として、検索テーブルHA0,HA1,HB0,HB1の領域を確保した後に、削除条件Tを読み込み、aをa<Tなる値とすると、tIA=0,tIB=T−a:初期状態1(もしくは、tIA=T−a,tIB=0:初期状態2)とし、hia=0,hib=0とする。また、HIA1→HA0,HIA2→HA1,HIB1→HB0,HIB2→HIB1とする。ここで、tIA,tIBはタイマ(もしくは、カウンタ=パケット数)を示す。その後に以下のように動作する。なお、以下では、入力ポートIA側の動作を説明しているが、入力ポートIB側の動作はAとBを入れ換えれば同様となる。
【0117】
・tIA=Tとなった場合:
−その1−1
1.検索テーブルHIA2にパケットデータが存在する場合には、それをOIAへ出力する。
【0118】
2.検索テーブルHIA2→HAhiaとする。
【0119】
3.hia=1−hiaとして、HIA1→HAhiaとする。
【0120】
4.検索テーブルHIA1の内容をクリアする。
【0121】
5.tIA=0とする。
【0122】
−その1−2
1.検索テーブルHIA2→HAhiaとする。
【0123】
2.hia=1ーhiaとして、HIA1→HAhiaとする。
【0124】
3.検索テーブルHIA1にパケットデータが存在する場合には、それをOIAへ出力する。
【0125】
4.検索テーブルHIA1の内容をクリアする。
【0126】
5.tIA=0とする。
【0127】
−その2
1.検索テーブルHIA2パケットデータが存在する場合には、それをOIAへ出力する。
【0128】
2.検索テーブルHIA2の内容をクリアする。
【0129】
3.検索テーブルHIA2→HAhiaとする。
【0130】
4.hia=1−hiaとして、HIA1→HAhiaとする。
【0131】
5.tIA=0とする。
【0132】
−その3−1
1.検索テーブルHIA2→HAhiaとする。
【0133】
2.hia=1−hiaとする。
【0134】
3.HAhiaにパケットデータが存在する場合には、それをOIAへ出力する。
【0135】
4.HAhiaをクリアする。
【0136】
5.検索テーブルHIA1→HAhiaとする。
【0137】
6.tIA=0とする。
【0138】
−その3−2
1.検索テーブルHIA2にパケットデータが存在する場合には、それをOIAへ出力する。
【0139】
2.検索テーブルHIA2→HAhiaとする。
【0140】
3.検索テーブルhia=1−hiaとして、HAhiaをクリアする。
4.検索テーブルHIA1→HAhiaとする。
【0141】
5.tIA=0とする。
【0142】
・tIA<Tの場合:
1.本機能は動作しない。
【0143】
○テーブル管理モジュール22:その2(請求項2,3,4,5,7):テーブル管理モジュール22は、パケットマッチング装置10への入力端子別に、入力ポートIAに対応する検索テーブルHIA1,HIA2を管理し、入力ポートIBに対応する検索テーブルHIB1,HIB2を管理する。また、入力ポートIAとIBのために、それぞれ、keyからなる配列DIA1,DIA2,DIB1,DIB2を有する。検索テーブルに登録される個々のデータは、n=1,2とすると、HIAn(key)→(パケットデータ、Mbit)の組で構成される。
【0144】
Mbitはkeyに対応したパケットの属性を示す。Mbitの初期値はオフとする。keyに対応するパケットが見つかった際にはMbitはオンとなる。したがって、Mbitを参照することにより、keyに対応するパケットが見つかったかどうかを知ることができる。
【0145】
テーブル管理モジュール22への入力は入出力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、attrは、dataがIA側からの入力か、IB側からの入力かを示す。
【0146】
attr=IAとした場合の検索動作を説明する。なお、attr=IBの場合には、AとBが入れ換わった動作となる。
【0147】
・keyをもとにして、HIBn(n=1,2)を検索する。
【0148】
−HIBm(m:任意のn)よりデータを取得できた場合:
HIBm(key):Mbit==オフの場合:
1.“HIBm(key):パケットデータ”をTOUTへ出力する。
【0149】
2.HIBm(key):Mbit=オンとする。
【0150】
HIBm(key):==オンの場合には、NULLをTOUTへ出力する。
【0151】
−HIBm(m:任意のn)よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0152】
2.HIA1(key)に(パケットデータ、Mbit:=オンからなるデータを保存する。1は、次パラグラフを参照。
【0153】
3.DIA1にkeyを保存する。1は、次パラグラフを参照。
【0154】
次に、テーブル管理モジュール22は、検索テーブルHIA1,HIA2,HIB1,HIB2と配列DIA1,DIA2,DIB1,DIB2の管理を行う。本機能は、初期動作として、検索テーブルHA0,HA1,HB0,HB1,配列DA0,DA1,DB0,DB1の領域を確保した後に、削除条件T、条件t(t<=T/2)を読み込み、tIA=tIB=0とする。また、hia=0,hib=0とする。さらに、HIA1→HA0,HIA2→HA1,HIB1→HB0,HIB2→HB1とし、DIA1→DA0、DIA2→DA1、DIB1→DB0,DIB2→DB1とする。ここで、tIA,tIBがタイマ(もしくは、カウンタ=パケット数)を示す。その後に以下のように動作する。以下では、IA側の動作を説明しているが、IB側の動作は、AとBを入れ換えれば同様となる。
【0155】
・その1
−tIA<tの場合:
1.1=hia+1とする。
【0156】
−t≦tIA<Tの場合:
1.1=1と2の両方の値とする。
【0157】
−tIA=Tとなった場合:
1.DAhiaより順次keyを参照し、HAhia(key):Mbit==オフの場合には、“HAhia(key):パケットデータ”をOIAへ出力する。
【0158】
2.HAhiaとDAhiaの内容をクリアする。
【0159】
3.hia=1−hiaとする。
【0160】
4.tIA=0とする。
【0161】
・その2
−tIA<tの場合:
1.1=1とする。
【0162】
−t<=tIA<Tの場合:
1.1=1と2の両方の値とする。
【0163】
−tIA=Tとなった場合:
*その2−1−1
1.DIA2より順次keyを参照し、HIA2(key):Mbit==オフの場合には、“HIA2(key):パケットデータ”を
OIAへ出力する。
【0164】
2.HIA2→HAhiaとし、DIA2→DAhiaとする。
【0165】
3.hia=1−hiaとし、HIA1→HAhia,DIA1→DAhiaとする。
【0166】
4.HIA1とDIA1の内容をクリアする。
【0167】
5.tIA=0とする。
【0168】
*その2−1−2
1.HIA2→HAhiaとし、DIA2→DAhiaとする。
【0169】
2.hia=1−hiaとし、HIA1→HAhia,DIA1→DAhiaとする。
【0170】
3.DIA1より順次keyを参照し、HIA1(key):Mbit==オフの場合には、“HIA1(key):パケットデータ”をOIAへ出力する。
【0171】
4.HIA1とDIA1をクリアする。
【0172】
5.tIA=0とする。
【0173】
*その2−2
1.DIA2より順次keyを参照し、HIA2(key):Mbit==オフの場合には、“HIA2(key):パケットデータ”をOIAへ出力する。
【0174】
2.HIA2とDIA2の内容をクリアする。
【0175】
3.HIA2→HAhiaとし、DIA2→DAhiaとする。
【0176】
4.hia=1−hiaとする。
【0177】
5.HIA1→DIhiaとし、DIA1→DAhiaとする。
【0178】
6.tIA=0とする。
【0179】
*その2−3−1
1.DIA2より順次keyを参照し、HIA2(key):Mbit==オフの場合には、“HIA2(key):パケットデータ”をOIAへ出力する。
【0180】
2.HIA2→HAhiaとし、DIA2→DAhiaとする。
【0181】
3.hia=1−hiaとし、HAhiaとDAhiaをクリアする。
4.HIA1→HAhia,DIA1→DAhiaとする。
【0182】
5.tIA=0とする。
【0183】
*その2−3−2
1.HIA2→DIhiaとし、DIA2→DAhiaとする。
【0184】
2.hia=1−hiaとする。
3.DAhiaより順次keyを参照し、HAhia:Mbit== オフの場合には、“HAhia(key):パケットデータ”をOIAへ出力する。
4.HAhiaとDAhiaをクリアする。
5.HIA1→HAhia,DIA1→DAhiaとする。
6.tIA=0とする。
○テーブル管理モジュール22(請求項2,3,4,5,8):テーブル管理モジュール22は、入力ポートIAに対応する検索テーブルHIA1、HIA2を管理し、入力ポートIBに対応する検索テーブルHIB1,HIB2を管理する。検索テーブルに登録される個々のデータは、n=1,2とすると、HIAn(key)→(パケットデータ)であり、パケットデータのみにより構成される。
【0185】
テーブル管理モジュール22への入力は入出力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、atterは、dataがIA側からの入力か、IB側からの入力かを示す。
【0186】
attr=IAとした場合の検索動作を説明する。なお、attr=IBの場合には、AとBが入れ換わった動作となる。
【0187】
・keyをもとにして、HIBn(n=1,2)を検索する。
【0188】
−HIBm(m:任意のn)よりデータを取得できた場合:
1.“HIBm(key)パケットデータ”をTOUTへ出力する。
【0189】
2.HIBm(key)より、“HIBm(key):パケットデータ”を削除する。
【0190】
−HIBm(m:任意のn)よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0191】
2.HIA1(key)に(パケットデータ、Mbit=オフ)からなるデータを保存する。1は、次パラグラフを参照。
【0192】
次に、テーブル管理モジュール22は、検索テーブルHIA1,HIA2,HIB1,HIB2の管理を行う。本機能は、初期動作として、HA0,HA1,HB0,HB1の領域を確保した後に、削除条件T、条件t(t<=T/2)を読み込み、tIA=tIB=0とする。また、hia=0,hib=0とする。さらに、HIA1→HA0,HIA2→HA1,HIB1→HB0,HIB2→HB1とする。ここで、tIA,tIBはタイマ(もしくは、カウンタ=パケット数)を示す。その後に以下のように動作する。以下では、入力ポートIA側の動作を説明しているが、入力ポートIB側の動作は、AとBを入れ換えれば同様となる。
【0193】
・その1
−tI<tの場合
1.1=hia+1とする。
【0194】
−t<=tIA<Tの場合:
1.1=hia+1,2−hiaとする。
【0195】
−tIA=Tとなった場合:
1.HAhiaにパケットデータが存在する場合には、それをOIAへ出力する。
【0196】
2.HAhiaの内容をクリアする。
【0197】
3.hia=1−hiaとする。
【0198】
4.tIA=0とする。
【0199】
・その2
−tIA<tの場合
1.1=1とする。
【0200】
−t<=tIA<Tの場合:
1.1=1,2とする。
【0201】
−tIA=Tとなった場合:
*その2−1−1
1.検索テーブルHIA2にパケットデータが存在する場合には、それをOIAへ出力する。
【0202】
2.検索テーブルHIA2→HAhiaとする。
【0203】
3.検索テーブルhia=1−hiaとし、HIA1→HAhiaとする。
【0204】
4.検索テーブルHIA1の内容をクリアする。
【0205】
5.tIA=0とする。
【0206】
*その2−1−2
1.検索テーブルHIA2→HAhiaとする。
【0207】
2.hia=1−hiaとし、HIA1→HAhiaとする。
【0208】
3.検索テーブルHIA1にパケットデータが存在する場合には、それ
をOIAへ出力する。
【0209】
4.検索テーブルHIA1と配列DIA1をクリアする。
【0210】
5.tIA=0とする。
【0211】
*その2−2
1.検索テーブルHIA2にパケットデータが存在する場合には、それ
をOIAへ出力する。
【0212】
2.検索テーブルHIA2の内容をクリアする。
【0213】
3.検索テーブルHIA2→HAhiaとする。
【0214】
4.hia=1−hiaとする。
【0215】
5.検索テーブルHIA1→HAhiaとする。
【0216】
6.tIA=0とする。
【0217】
*その2−3−1
1.検索テーブルHIA2にパケットデータが存在する場合には、それをOIAへ出力する。
【0218】
2.検索テーブルHIA2→HAhiaとする。
【0219】
3.hia=1−hiaとし、HAhiaをクリアする。
【0220】
4.検索テーブルHIA1→HAhiaとする。
【0221】
5.tIA=0とする。
【0222】
*その2−3−2
1.検索テーブルHIA2→HAhiaとする。
【0223】
2.hia=1−hiaとする。
【0224】
3.HAhiaにパケットデータが存在する場合には、それをOIAへ出力する。
【0225】
4.HAhiaをクリアする。
【0226】
5.検索テーブルHIA1→HAhiaとする。
【0227】
6.tIA=0とする。
【0228】
○テーブル管理モジュール22(請求項2,3,4,6.7):テーブル管理モジュール22は、パケットマッチング装置10への入力端子別に入力ポートIAに対応する検索テーブルHIA1を管理し、入力ポートIBに対応する検索テーブルHIB1,HIB2,HIB3を管理する。また、入力ポートIAとIBのために、それぞれ、keyからなる配列DIA1,DIB1,DIB2,DIB3を有する。検索テーブルに登録される個々のデータは(パケットデータ、Mbit)の組で構成される。
【0229】
Mbitはkeyに対応したパケットの属性を示す。Mbitの初期値はオフとする。keyに対応するパケットが見つかった際にはMbitはオンとなる。したがって、Mbitを参照することにより、keyに対応するパケットが見つかったかどうかを知ることができる。
【0230】
テーブル管理モジュール22への入力は入出力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、attrは、dataがIA側からの入力か、IB側からの入力かを示す。
【0231】
attr=IAとした場合の検索動作を説明する。nは、n=1,2,3となる整数である。なお、attr=IBの場合には、n=1となり、AとBが入れ換わった動作となる。
【0232】
・keyをもとにして、HIBnを検索する(n>1の場合には全てのnについて調べる)。
【0233】
−HIBm(m:任意のn)よりデータを取得できた場合:
*HIBm(key):Mbit==オフの場合:
1.“HIBm(key):パケットデータ”をTOUTへ出力する。
【0234】
2.HIBm(key):Mbit=オンとする。
【0235】
*HIBm(key):Mbit==オンの場合には、NULLをTOUTへ出力する。
【0236】
−HIBm(m=任意のn)よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0237】
2.HIA1(key)に(バケットデータ、Mbit=オフ)からなるデータを保存する。
【0238】
3.DIA1に、keyを保存する。
【0239】
次に、テーブル管理モジュール22は検索テーブルHIA1,HIB1,HIB2,HIB3と配列DIA,DIB1,DIB2,DIB3の管理を行う。本機能は、初期動作として、検索テーブルHIA1,HB0,HB1,HB2,配列DIA,DB0,DB1,DB2を領域確保した後に、削除条件Tを読み込み、tIA=0.tIB=0とする。また、HIB1→HB0,HIB2→HB1,HIB3→HB2とし、DIB1→DB0,DIB2→DB1,DIB3→DB2とする。ここで、tIA,tIBはタイマ(もしくは、カウンタ=パケット数)を示す。その後に以下のように動作する。なお、hibは0で始まり、この値は、2ビットカウンタ(インクリメントすると、0,1,2,0,1,2,・・・と続く)とする。
【0240】
・tIA=Tとなった場合:
1.DIA1より順次keyを参照し、HIA1(key):Mbit==オフの場合には、“HIB3(key):パケットデータ”をOIAへ出力する。
【0241】
2.HIA1とDIA1の内容をクリアする。
【0242】
3.tIA=0とする。
【0243】
・tIA<Tの場合:
1.本機能は動作しない。
【0244】
・tIB=Tとなった場合:
−その1−1
1.DIN3より順次keyを参照し、HIB3(key):Mbit=オフの場合には、“HIB3(key):パケットデータ”をOIAへ出力する。
【0245】
2.a=hib+1とすると、HIB2→HBhib,HIB3→HBaとし、DIB2→HBhib,DIB3→DBaとする。
【0246】
3.hib=hib−1とし、HIB0→HBhib,DIB0→DBhibとする。
【0247】
4.HIB0とDIB0の内容をクリアする。
【0248】
5.tIB=0とする。
【0249】
−その1−2
1.a=hib+1とすると、HIB2→HBhib,HIB3→HBaとし、DIB2→HBhib,DIB3→DBaとする。
【0250】
2.hib=hib−1とし、HIB0→HBhib,DIB0→DBhibとする。
【0251】
3.DIB0より順次keyを参照し、HIB0(key):Mbit=オフの場合には、“HIB0(key):パケットデータ”をOIAへ出力する。
【0252】
4.HIB0とDIB0の内容をクリアする。
【0253】
5.tIB=0とする。
【0254】
−その2
1.DIB3より順次keyを参照し、HIB3(key):Mbit=オフの場合には、“HIB3(key):パケットデータ”をOIAへ出力する。
【0255】
2.HIB3とDIB3の内容をクリアする。
【0256】
3.a=hib+1とすると、HIB2→HBhib,HIB3→HBaとし、DIB2→DBhib,DIB3→DBaとする。
【0257】
4.hib=hib−1とし、HIB0→HBhib,DIB0→DBhibとする。
【0258】
5.tIB=0とする。
【0259】
−その3−1
1.DIB3より順次keyを参照し、HIB3(key):Mbit=オフの場合には、“HIB3(key):パケットデータ”をOIAへ出力する。
【0260】
2.a=hib+1とすると、HIB2→HBhib,HIB3→HBaとし、DIB2→DBhib,DIB3→DBaとする。
【0261】
3.hib=hib−1とし、HBhibとDAhibをクリアする。
【0262】
4.HIB0→HBhib,DIB0→DBhibとする。
【0263】
5.tIB=0とする。
【0264】
−その3−2
1.a=hib+1とすると、HIB2→HBhib,HIB3→HBaとし、DIB2→DBhib,DIB3→DBaとする。
2.hib=hib−1とする。
【0265】
3.DBhibより順次keyを参照し、HBhib(key):Mbit=オフの場合には、“HBhib(key):パケットデータ”をOIAへ出力する。
【0266】
4.HBhibとDAhibをクリアする。
【0267】
5.HIB0→HBhib,DIB0→DBhibとする。
【0268】
6.tIB=0とする。
【0269】
・tIB<Tの場合:
1.本機能は動作しない。
【0270】
○テーブル管理モジュール22(請求項2,3,4,6,8):テーブル管理モジュール22は、入力ポートIAに対応する検索テーブルHIA1を管理し、入力ポートIBに対応する検索テーブルHIB1,HIB2,HIB3を管理する。検索テーブルに登録される個々のデータはパケットデータであり、パケットデータのみにより構成される。
【0271】
テーブル管理モジュール22への入力は入出力モジュール21よりTINを通して与えられ、(key,data,attr)の組により構成される。keyは検索キーを示し、dataはパケットデータを示し、attrは、dataがIA側からの入力か、IB側からの入力かを示す。
【0272】
attr=IAとした場合の検索動作を説明する。なお、attr=IBの場合には、n=1となり、AとBが入れ換わった動作となる。
【0273】
・keyをもとにして、HIBnを検索する(n>1の場合には、全てのnについて調べる)
−HIBm(m:任意のn)よりデータを取得できた場合:
1.HIBm(key):パケットデータをTOUTへ出力する。
【0274】
2.HIBm(key)より、HIBm(key):パケットデータを削除する。
【0275】
−HIBm(m:任意のn)よりデータを取得できない場合:
1.NULLをTOUTへ出力する。
【0276】
2.HIA1(key)に(パケットデータ)を保存する。
【0277】
次に、テーブル管理モジュール22は検索テーブルHIA1,HIB1,HIB2,HIB3の管理を行う。本機能は、初期動作として、検索テーブルHIA1,HB0,HB1,HB2の領域を確保した後に、削除条件Tを読み込み、tIA=0,tIB=0とする。また、HIB1→HB0,HIB2→HB1,HIB3→HB2とする。ここで、tIA,tIBはタイマ(もしくはカウンタ=パケット数)を示す。その後に以下のように動作する。なお、hibは、0で始まり、この値は2ビットカウンタ(インクリメントすると、0,1,2,0,1,2,・・・と続く)とする。
【0278】
・tIA=Tとなった場合:
1.HIA1にパケットデータが存在する場合には、それをOIAへ出力する。
【0279】
2.HIA1の内容をクリアする。
【0280】
3.tIA=0とする。
【0281】
・tIA<Tの場合:
1.本機能は動作しない。
【0282】
・tIB=Tとなった場合:
−その1−1
1.HIB3にパケットデータが存在する場合には、それをOIBへ出力する。
【0283】
2.HIB2→HBhib,a=hib+1とすると、HIB3→HBaとする。
【0284】
3.hib=hib−1とし、HIB0→HBhibとする。
【0285】
4.HIB0の内容をクリアする。
【0286】
5.tIB=0とする。
【0287】
−その1−2
1.HIB2→HBhib,a=hib+1とすると、HIB3→HBaとする。
【0288】
2.hib=hib−1とし、HIB0→HBhibとする。
【0289】
3.HIB0にパケットデータが存在する場合には、それをOIBへ出力する。
【0290】
4.HIB0の内容をクリアする。
【0291】
5.tIB=0とする。
【0292】
−その2
1.HIB3にパケットデータが存在する場合には、それをOIBへ出力する。
【0293】
2.HIB3の内容をクリアする。
【0294】
3.HIB2→HIBhib,a=hib+1とすると、HIB3→HBaとする。
【0295】
4.hib=hib−1とする。
【0296】
5.tIB=0とする。
【0297】
−その3−1
1.HIB3にパケットデータが存在する場合には、それをOIBへ出力する。
【0298】
2.HIB2→HBhib,a=hib+1とすると、HIB3→HBaとする。
【0299】
3.hib=hib−1とし、HBhibとDAhibをクリアする。
【0300】
4.HIB0→HBhibとする。
【0301】
5.tIB=0とする。
【0302】
−その3−2
1.HIB2→HBhib,a=hib1とすると、HIB3→HBaとする。
【0303】
2.hib=hib−1とする。
【0304】
3.HBhibにパケットデータが存在する場合には、それをOIBへ出力する。
【0305】
4.HBhibをクリアする。
【0306】
5.HIB0→HBhibとする。
【0307】
6.tIB=0とする。
【0308】
・tIB<Tの場合:
1.本機能は動作しない。
【0309】
「タイムスタンプ処理機構13」(請求項9):マッチング機構12の入出力モジュール21より(a,b)の組からなるパケットデータのストリームが送られてきたとする。さらに、aは、(Ta,a)といった、タイムスタンプTaとデータaを持ち、bは、(Tb,b)といったタイムスタンプTbとデータbを持つ。この場合に、(a,b)が入力として与えられると、(Ta,Tb,a)(もしくは、(Ta,Tb,b))という組からなるデータをパケットデータストリームとして出力する。
【0310】
ストリーム同期装置30(請求項10):ストリーム同期装置30は、図6に示すように、発火機構31とSIQVヘッダ再生機構32からなる。本装置を用いて同期制御を行うには、プローブにてパケットがコピーされ、そのデータがストリームデータとして監視サーバへ送られる際に、定期的にシーケンス番号を含むパケットが挿入されている必要がある。これに仮に、SIQVヘッダと呼ぶ。
【0311】
SIQVヘッダは、パケットプローブ装置により一定間隔で生成され、シーケンス番号はSIQVヘッダが作成される度にインクリメントされる。ストリーム同期装置30では、シーケンス番号が等しいSIQVヘッダに区切られたストリーム単位で実行を行うことにより、パケットデータストリーム収集時間の誤差を吸収する同期実行制御が可能となる。
【0312】
ストリーム同期装置30が有する発火機構31の基本動作を図7に示す。図7にあるように、等しいシーケンス番号を持つSIQVヘッダが両側の入力に揃った際に、発火が行われる。その後に、SIQVヘッダ以降のデータを随時読み込む。片側の入力にのみSIQVヘッダが現れた場合には、その入力側をロックして、データの読み込みを止める。なお、SIQVヘッダに区切られたストリーム単位で実行を行うということは、各リンクバッファの最大量が算出できるとい利点が生じる。
【0313】
発火機構31では、詳しくは以下のように実行を制御する、動作例を図8に示す。
【0314】
・片側の入力の先頭にのみ同期パケットがある場合
(図8(1),(3),(6)):他方の入力へ同期パケットが到着するのを待つ。
【0315】
・両方の入力の先頭に等しいシーケンス番号を持つ同期パケットが揃った場合(図8(2),(4)):同期パケットを取り除いて、以降のデータストリームを読み込み、検索テーブルへ送る。これを発火と呼ぶ。この際に、同期パケットのシーケンス番号をSequence register と呼ばれる変数に保存する。
【0316】
・両方の入力の先頭に異なるシーケンス番号を持つ同期パケットがある場合(図8(5)):小さなシーケンス番号を持つ同期パケット以降のデータストリームを、同期パケットを取り除いて、以降のデータストリームに読み込み、検索テーブルへ送る。
【0317】
・Sequence register の値より小さなシーケンス番号を持つ同期パケットがある場合:同期パケットを取り除いて、以降のデータストリームを読み込み、検索テーブルへ送る。
【0318】
なお、ストリーム同期装置30は、SIQVヘッダ再生機構32を有する。SIQVヘッダ再生機構32は、発火機構31により取り外された同期パケットを再生する機構である。この機構は、発火機構31により発火が行われた際に、同期パケットを生成して、全ての出力口へ出力する。この際に、発火した同期パケットのシーケンス番号を、本機構が新たに生成する同期パケットのシーケンス番号とする。発火が行われない場合には、検索テーブルより出力されるパケットストリームを出力する。
【0319】
図9に品質監視網と被監視網を例示する。被監視網は、ホスト40とルータ41と試験パケット生成用ホスト42で構成され、これらは、イーサネットとフレームリレーを用いてIP接続される。品質監視網は、パケットプローブ装置43と監視ステーション44(監視サーバ)で構成され、これらはイーサネットやISDNを用いてIP接続される。さらに、パケットプローブ装置43は、ISDNを利用して時計同期が行われており、パケットプローブ装置43と監視ステーション44は非常に正確に時計同期されている。
【0320】
パケットプローブ装置43は、被監視網のイーサネットとフレームリレーをプローブするプローブインタフェースを有する(図の○)。このプローブにより、被監視網のイーサネットとフレームリレーを流れるIPパケットを監視する。プローブされた結果は監視ステーション44に送られて、この監視ステーション44において、実時間パケットトラッキングが行われる。
【0321】
図9に示すようなネットワーク品質監視網において、監視サーバ(Data Collection Server)で利用する分析プログラム(福田晴元、小野諭、高橋直久、“インターネットQoSビジュアライザの設計と実現”信学会論文誌マルチメディアネットワーク/サービス品質特集号、Jul., 1997)のmpfノードでの利用が例として上げられる。パケットデータストリ−ムの同期に必要SIQVヘッダは、パケット収集装置によりパケットデータストリームに挿入され、Pinノードにおいて、SIQVヘッダ形式へと変更される。
【0322】
mpfは図10で例示するように構成される。分析プログラムは、図11として与えられたとする。Pinで生成されるSIQVヘッダにより区切られたデータストリームがmpfの入力に到着する。ストリーム同期装置30の発火機構31により、SIQVヘッダのシーケンス番号にしたがった発火制御が行われ、データが内部に取り込まれる。さらに、パケットマッチング装置10において、マッチング処理が行われる。このようにして処理されたデータは、unmatch,unmatch,match の計3個の出力先へ出力される。SIQVヘッダ再生機構32により、SIQVヘッダが付与されてmpfより出力される。
【0323】
プローブでパケットをコピーした際に、タイムスタンプを付与して監視サーバへデータストリームを送ることが考えられる。mpfへの入力は、(t,p)というように時間を示すタイムスタンプとパケットデータの組からなるストリームとなる。この場合には、タイムスタンプ処理機構13により入力が(t1,p),(t2,p)の場合には、match したデータは、(t1,t2,p)と出力される。このt1,t2を比較することにより、時間差が算出される。
【0324】
このように、mpfノードの処理を実時間で行うことにより、片道遅延等の変動がリアルタイムに算出可能である。さらに、このようにして出力されたデータのタイムスタンプを操作することにより、実時間でのパケットトラッキング、すなわち、ネットワーク上でのパケットの動作が観測可能となる。
【0325】
【発明の効果】
請求項1,:本発明を監視サーバ上で用いることにより、複数の地点から送られてくる連続したデータより、実時間でのパケットトラッキングが可能となる。さらに、本発明をパケット網に適用して、実時間でのパケットトラッキングを行うことにより、実時間での品質変動把握が可能となる。請求項2を実現したパケットマッチング装置を用いることにより、ストリーム状で送られてくるパケットデータについて、同一パケットデータを選出し、パケットマチングを行うことを実時間で処理することが可能となる。
【0326】
請求項:パケットマッチング装置を用いる際に、マッチング機構において、ハッシュを用いることにより、実時間でのパケットマッチングが可能になる。
【0327】
請求項:パトリシア木を用いて検索テーブルに入力データを登録することにより、実時間でのパケットマッチングが可能になる。
【0328】
請求項:両方の入力レートが時間によって異なる場合に、パケットマッチングされるべきパケットを検索テーブルに確実に登録することが可能になる。
【0329】
請求項:片側の入力レートが非常に大きい場合に、検索テーブルに対して、パケットマッチングされるべきパケットを確実にテーブルへ登録することが可能になる。
【0330】
請求項:検索テーブルからパケットデータを削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【0331】
請求項:検索テーブル全体を削除することに非常にコストがかかる場合に、検索に失敗したパケットを出力する機能を実時間で動作させることが可能になる。
【0332】
請求項2、10:差分等を計算することにより、ストリーム状で送られてくる二つのパケットデータについて、同一パケットデータの時間差や時間差の変動を調べることが可能になる。
【0333】
請求項11:各プローブから監視サーバへの遅延変動や遅延差が大きい場合には、請求項の発明に手を加えることなく、遅延誤差を最小にし、パケットマッチングされるべきパケットが全てのテーブルへ取り込まれ、パケットマッチングが正常に行われることを可能にする。さらに、各プローブから監視サーバへのネットワーク構成を考える際に、データストリームの転送遅延を考慮する必要がなくなる。
【図面の簡単な説明】
【図1】本発明の実時間パケットトラッキング方法を示す図である。
【図2】パケットマッチング装置の入出力ポートを示す図である。
【図3】パケットマッチング装置の構成図である。
【図4】マッチング機構12の構成図である。
【図5】マスキングの実行例を示す図である。
【図6】ストリーム同期装置の構成図である。
【図7】パケットデータストリームの同期方法の例を示す図である。
【図8】シーケンス番号と早期制御を示す図である。
【図9】ネットワーク品質管理網を示す図である。
【図10】mpfノードの構成図である。
【図11】分析プログラムを示す図である。
【図12】パケットネットワークとプローブを示す図である。
【図13】従来のパケットトラッキング方法を示す図である。
【符号の説明】
10 パケットマッチング装置
11 マスキング機構
12 マッチング機構
13 タイムスタンプ機構
21 入出力モジュール
22 テーブル管理モジュール
30 ストリーム同期装置
31 発火機構
32 SIQVヘッダ再生機構
40 ホスト
41 ルータ
42 試験パケット生成用ホスト
43 パケットプローブ装置
44 監視ステーション
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a network for transmitting packets, and more particularly, to a packet tracking method.
[0002]
[Prior art]
In a network (called a user network) for transmitting information (packets), as shown in FIG. 12, probes (packet probe devices 100) for probing packets flowing on the network via a packet transfer device 101 are provided at a plurality of points. Put. Each probe 100 copies a packet from the network and takes in the packet data. Further, each probe sends a large amount of captured packet data to the monitoring server 102 as a continuous stream through a user network or a dedicated network. Further, on the monitoring server 102, the same packet is searched for in real time from continuous data sent from a plurality of points, and packet tracking is performed. The operation of searching for the same packet is called packet matching.
[0003]
Conventionally, in order to perform packet matching, as shown in FIG. 13, packet data copied by a probe 100 is temporarily stored on a monitoring server 102, and after a certain period of time, packet matching is performed using the same packet selection device 103. Was performed repeatedly. Therefore, the same packet selecting device 103 can perform the packet matching only by comparing the packet data stored on the monitoring server 102 regardless of the execution time.
[0004]
[Problems to be solved by the invention]
The conventional technique has the following problems with respect to matching in real time.
[0005]
・ Since processing is not performed in real time, continuous monitoring over a certain period of time is impossible.
[0006]
-Since the search is performed by matching the packet data, it takes a long time for the matching process.
[0007]
-When the capacity of the search table is small, an efficient registration method for the search table is required.
[0008]
-Even if a search table is used, a long search key may increase the reference time of the search table.
[0009]
-When the input rates for the two inputs are different, the amounts registered in the search table are different. If the search table is very small, packets from one side of the input may not be registered in the search table, and packet matching may not be performed properly.
[0010]
-The function to output the packet that failed to search may not work in real time.
-To perform packet matching, prepare a small finite table, fetch packet stream fragments into that table, search for equal packets based on search keys, and always update the table at short intervals Is required. By the way, if the arrival time of the packet is different or a certain time is required, if this time is longer than the time for updating the table, the packet to be subjected to packet matching is not taken in all tables, Matching does not work properly.
[0011]
An object of the present invention is to provide a real-time packet tracking method and a packet matching device capable of real-time packet matching.
[0012]
[Means for Solving the Problems]
According to the real-time packet tracking method of the present invention, for each packet of each packet stream, a search key is created by extracting a part of the data of the packet. It checks whether the packet has been sent, and if so, outputs those packet pairs and outputs to another output port a packet to which no packet with the same search key is sent even after waiting for a certain period of time.
[0013]
The packet matching device according to the present invention includes a masking unit that extracts a part of the data of a packet and creates a search key for each packet of each packet stream, A matching means that checks whether the packet has already been sent, and if so, outputs those packet pairs and outputs to another output port a packet to which no packet with the same search key is sent even after waiting for a certain period of time Have.
[0014]
Therefore, by using this apparatus on a monitoring server, packet tracking can be performed in real time from continuous data transmitted from a plurality of points.
[0015]
When using the packet matching device, the matching means uses a hash, so that packet matching can be performed in real time.
[0016]
If the hash is used when the amount of the search table cannot be obtained, the possibility of occurrence of collision at the time of registration in the table increases, and the matching speed may be affected. In such a case, by registering in a table using a Patricia tree, packet matching can be performed in real time. If the search key is long, there is a high possibility that a collision will occur at the time of registration in the table, and the matching speed may be affected. In such a case, by registering in a table using a Patricia tree, packet matching can be performed in real time.
[0017]
In the matching means, by creating a search database using a Patricia tree for the input port, when both input rates are different depending on time, a packet to be subjected to packet matching with the search table is reliably registered in the table. It becomes possible to do.
[0018]
In the matching means, using one table on one side and three tables on the other side using a hash or Patricia tree at two input ports, if the input rate on one side is very large, On the other hand, a packet to be subjected to packet matching can be reliably registered in the table.
[0019]
Since the matching means holds, in addition to the search database, an array consisting of a search key and an attribute indicating whether the search was successful or unsuccessful, it is very costly to delete packet data from the search table. In such a case, it becomes possible to operate the function of outputting a packet whose search has failed in real time.
[0020]
If the matching means succeeds in the search using the search key, the data is deleted from the search table, and if it is very costly to delete the entire search table at once, a packet that failed to be searched is output. The function can be operated in real time.
[0021]
When a data string composed of a pair of a packet and a time stamp is given, the matching unit compares the time stamp with respect to the matched packet, that is, by calculating a difference or the like, the packet is sent in a stream form. It is possible to examine the time difference between the same two pieces of packet data and the fluctuation of the time difference.
[0022]
Changing the number of search tables means that the number of data registered in the search tables in a certain period of time is increased. In order to perform accurate packet matching, all packets to be matched need to be registered in a finite search table. For this reason, a stream synchronization device is incorporated, but even if this device is used, if the search tables are updated one after another within the generation interval of the SIQV header, all the packets to be matched may not be registered in the search table. is there. For this reason, the problem is solved by increasing the size of the search table corresponding to both inputs (one input in some cases) (claims 5 and 6).
[0023]
When performing a search table update, it is necessary to output data remaining in the search table as a result of the matching failure (that is, data in which an equal key was not found). Therefore, unless the search table is cleared, old packet data always remains, and the data is always output as data for which matching has failed. In order to avoid such an error, a method of deleting all packet data from the search table and a method of referring to information on packet data registered in the search table can be considered. The choice is a trade-off.
[0024]
By providing a stream synchronizer, when the delay fluctuation or delay difference from each probe to the monitoring server is large, the delay error is minimized, the packets to be packet-matched are taken in all tables, and packet matching is performed normally. Will be able to be done.
[0025]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings.
[0026]
According to the real-time packet tracking method of the present invention, a packet data stream sent from a packet probe device is directly received, packet matching is performed in real time, and data that has succeeded in packet matching and data that has failed are output.
[0027]
In order to realize this, as shown in FIG. 1, the present embodiment has a stream synchronization device 30 and a packet matching device 10.
[0028]
"Packet matching device 10" (claims 2, 3, 4, 5, 6, 7, 8): A device that executes the packet matching method is called a packet matching device. As shown in FIG. 2, the present apparatus has four input (IA, IB, MA, MB) and three output (OM, OIA, OIB) data ports. In this device, the matched packets of the data streams input to the input ports IA and IB are output to the data port OM. Regarding the unmatched packet, the input from the input port IA is output to the output port OIA, and the input from the input port IB is output to the output port OIB. The data ports MA and MB are used as mask input terminals for enabling packet matching by referring to a part of the packet.
[0029]
As shown in FIG. 3, the packet matching device 10 includes a masking mechanism 11, a matching mechanism 12, and a time stamp processing mechanism 13. Each mechanism is described below. The time stamp processing mechanism 13 is operable when individual data in the data stream is given as a set of a time stamp and packet data, and is a mechanism provided when time stamp processing is required.
[0030]
"Masking mechanism 11" (Claim 2): In packet matching, it is necessary to refer to a part that is not rewritten in the packet data area in order to find an equal packet. For this reason, a mechanism for cutting out a part of the packet data is called a masking mechanism.
[0031]
FIG. 5 shows an operation example of the masking mechanism 11 using an IP packet as an example. Here, “1” is set as don't care. A packet (input data) A is at the head of the input data stream to the IA, and a packet B is at the head of the input data stream to the IB. The MA mask is shown as mask A and the MB mask is shown as mask B. At this time, the masking mechanism 11 creates mask data with reference to each mask, and passes this data to the matching mechanism 12. The packet data is also passed to the matching mechanism 12.
[0032]
"Matching mechanism 12" (claims 2, 3, 4, 5, 6, 7, 8): The matching mechanism 12 includes an input / output module 21 and a table management module 22, as shown in FIG. The mechanism 12 has a function of searching for the same packet by referring to a search table using masked data as a key.
[0033]
Hereinafter, HIA indicates a search table formed by a hash table (or Patricia tree) corresponding to an input port on the IA side. HIA (key) indicates data retrieved by the key. When HIA (key) → (a, b, c) is expressed, it indicates that the data pointed by the key is a data set of a, b, and c. Further, each data is expressed as HIA (key): a, HIA (key): b, HIA (key): c. Here, HIA (key): A indicates that the data is A searched by HIA (key).
[0034]
The input / output module 21 (Claim 2): Here, the input / output module IA will be described as an example. The input from the input port IB operates similarly by exchanging IA and IB in the following text.
[0035]
1. The first packet data a of the data stream input to the input port IA and the key of a are acquired.
[0036]
2. Assuming that an attribute indicating that the data is input data from the input port IA is IA, data consisting of (a, key, IA) is sent to the table management module 22.
[0037]
3. When A returns from the table management module 22,
If A = NULL,
Return to 1. At this time, the operation is performed by exchanging IA and IB.
[0038]
When A = b (= packet data of HIB (key)) returns,
When not passing through the time stamp processing mechanism 13, a (or b) is output. When passing through the time stamp processing mechanism 13, (a, b) is passed to the time stamp processing mechanism 13.
[0039]
Return to 1. At this time, the operation is performed by exchanging IA and IB.
[0040]
Table management module 22 (Claims 2, 3, 4, 5, 6, 7, and 8): Here, an example in which a hash is used for a search table will be described, but the same processing can be performed when a Patricia tree is used. is there.
[0041]
Table management module 22 (Claims 2, 3, 4, 5, and 7): The table management module 22 manages the search table HIA1 for the input port IA for each input terminal to the packet matching apparatus 10, and stores the search table HIA1 in the input port IB. The corresponding search table HIB1 is managed. Further, for input ports IA and IB, DIA and DIB each having a key array are provided. Each data registered in the search tables HIA1 and HIB1 is composed of a set of HIA1 (key) → (packet data, Mbit).
[0042]
Mbit indicates the attribute of the packet corresponding to the key. The initial value of Mbit is off. When a packet corresponding to the key is found, Mbit is turned on. Therefore, by referring to the Mbit, it is possible to know whether or not a packet corresponding to the key has been found.
[0043]
The input to the table management module 22 is given from the input / output module 21 through TIN, and is constituted by a set of (key, data, attr). key indicates a search key, data indicates packet data, and attr indicates whether data is input from the IA side or IB side.
[0044]
A search operation when attr = IA is described. Note that when attr = IB, the operation is such that A and B are interchanged.
[0045]
Search the search table HIB1 based on the key.
[0046]
-When data is obtained from the search table HIB1:
* HIB1 (key): When Mbit == Off:
1. “HIB1 (key): packet data” is output to TOUT.
2. HIB1 (key): Mbit = ON.
[0047]
HIB1 (key): When Mbit == ON, outputs NULL to TOUT.
[0048]
-When data cannot be obtained from the search table HIB1:
1. Output NULL to TOUT.
[0049]
2. Data consisting of (packet data, Mbit = off) is stored in HIA1 (key).
[0050]
3. Save the key in DIA1.
[0051]
Next, the table management module 22 manages the search tables HIA1 and HIB1 and the arrays DIA and DIB. This function, as an initial operation, secures the areas of the search tables HIA1 and HIB1 and the arrays DIA and DIB, reads the deletion condition T, and sets tIA = 0 and tIB = 0. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Although the operation on the input port IA side is described below, the operation on the input port IB side is the same if A and B are exchanged.
[0052]
When tIA = T:
1. The keys are sequentially referred to from the array DIA, and when HIA1 (key): Mbit == off, “HIA1 (key): packet data” is output to the OIA.
[0053]
2. Clear the contents of the search table HIA1 and the array DIA1.
[0054]
3. It is assumed that tIA = 0.
[0055]
When tIA <T:
1. This function does not work.
[0056]
Table management module 22 (claims 2, 3, 4, and 8): The table management module 22 manages the search table HIA1 corresponding to the input port IA, and manages the search table HIB1 corresponding to the input port IB. The individual data registered in the search table is HIA (key) → (packet data), and is composed of only packet data.
[0057]
The input to the table management module 22 is given from the input / output module 21 through TIN, and is constituted by a set of (key, data, attr). key indicates a search key, data indicates packet data, and attr indicates whether data is input from the input port IA side or input port IB side.
[0058]
A search operation when attr = IA is described. Note that when attr = IB, the operation is such that A and B are interchanged.
[0059]
Search the search table HIB1 based on the key.
[0060]
-When data is obtained from the search table HIB1:
1. “HIB1 (key): packet data” is output to TOUT.
2. "HIB1 (key): packet data" is deleted from HIB1.
[0061]
-When data cannot be obtained from the search table HIB1:
1. Output NULL to TOUT.
[0062]
2. (Packet data) is stored in HIA1 (key).
[0063]
Next, the table management module 22 manages the search tables HIA1 and HIB1. As an initial operation, this function reads the deletion condition T after securing the areas of the search tables HIA1 and HIB1, and sets tIA = 0 and tIB = 0. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Although the operation on the input port IA side is described below, the operation on the input port IB side is the same if A and B are exchanged.
[0064]
When tIA = T:
1. If packet data exists in the search table HIA1, the data is output to the OIA.
[0065]
2. Clear the contents of the search table HIA1.
[0066]
3. It is assumed that tIA = 0.
[0067]
When tIA <T:
1. This function does not work.
[0068]
Table management module 22 (Claims 2, 3, 4, 5, and 7): The table management module 22 manages the search tables HIA1 and HIA2 corresponding to the input port IA for each input terminal to the packet matching device 10, The search tables HIB1 and HIB2 corresponding to the input port IB are managed. Also, for the input ports IA and IB, there are arrays DIA1, DIA2, DIB1, and DIB2 consisting of keys, respectively. Each data registered in the search table is a set of HIAn (key) → (packet data, Mbit), where n = 1 and 2.
[0069]
Mbit indicates the attribute of the packet corresponding to the key. The initial value of Mbit is off. When a packet corresponding to the key is found, Mbit is turned on. Therefore, by referring to the Mbit, it is possible to know whether or not a packet corresponding to the key has been found.
[0070]
The input to the table management module 22 is given from the input / output module 21 through TIN, and is constituted by a set of (key, data, attr). key indicates a search key, data indicates packet data, and attr indicates whether data is input from the IA side or IB side.
[0071]
A search operation when attr = IA is described. Note that when attr = IB, the operation is such that A and B are interchanged.
[0072]
Search for HIBn (n = 1, 2) based on the key.
[0073]
-When data can be obtained from HIBm (m: arbitrary n):
* HIBm (key): When Mbit == Off:
1. “HIBm (key) packet data” is output to the OM.
[0074]
2. HIBm (key): Mbit = ON.
[0075]
* HIBm (key): When Mbit == ON, outputs NULL to TOUT.
[0076]
When data cannot be obtained from HIBm (m: arbitrary n):
1. Output NULL to TOUT.
[0077]
2. Data consisting of (packet data, Mbit = off) is stored in HIA1 (key).
[0078]
3. Save the key in DIA1.
[0079]
Next, the table management module 22 manages the search tables HIA1, HIA2, HIB1, HIB2 and the arrays DIA1, DIA2, DIB1, DIB2. In this function, as an initial operation, HA0, HA1, HB0, HB1, DA0, DA1, DB0, and DB1 are secured as areas, and then read as a deletion condition T and a is set to a value satisfying a <T, and tIA = 0 , TIB = T−a: initial state 1 (or tIA = Ta, tIB = 0: initial state 2), and hia = 0, hib = 0. Also, HIA1 → HA0, HIA2 → HA1, HIB1 → HB0, HIB2 → HB1, DIA1 → DA0, DIA2 → DA1, DIB1 → DB0, DIB2 → DB1. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Hereinafter, the operation on the IA side will be described, but the operation on the IB side is the same if A and B are exchanged.
[0080]
When tIA = T:
-Part 1-1
1. The keys are sequentially referred to from DIA2, and if HIA2 (key): Mbit == off, “HIA2 (key): bucket data” is output to OIA.
[0081]
2. HA2 → HAhia, and DIA2 → DAhia.
[0082]
3. hia = 1-hia, and HIA1 → HAhia, DIA1 → DAhia.
[0083]
4. Clear the contents of HIA1 and DIA1.
[0084]
5. It is assumed that tIA = 0.
[0085]
-Part 1-2
1. HIA2 → HAhia, and DIA2 → DAhia.
[0086]
2. hia = 1-hia, and HIA1 → HAhia, DIA1 → DAhia.
[0087]
3. The keys are sequentially referred to from DIA1, and if HIA1 (key): Mbit == OFF, “HIA1 (key): packet data” is output to OIA.
[0088]
4. Clear HIA1 and DIA1.
[0089]
5. It is assumed that tIA = 0.
[0090]
-Part 2
1. The keys are sequentially referred to from DIA2, and if HIA2 (key): Mbit == OFF, "HIA2 (key): packet data" is output to OIA.
[0091]
2. Clear the contents of HIA2 and DIA2.
[0092]
3. HIA2 → HAhia, and DIA2 → DAhia.
[0093]
4. hia = 1-hia.
[0094]
5. HIA1 → HAhia, and DIA1 → DAhia.
[0095]
6. It is assumed that tIA = 0.
[0096]
-Part 3-1
1. The keys are sequentially referred to from DIA2, and if HIA2 (key): Mbit == OFF, “HIA2 (key): packet data” is output to OIA.
[0097]
2. HIA2 → HAhia, and DIA2 → DAhia.
[0098]
3. cia = 1-hia, and clears HAhia and DAhia.
[0099]
4. HIA1 → HAhia, DIA1 → DAhia.
[0100]
5. It is assumed that tIA = 0.
[0101]
-Part 3-2
1. HIA2 → DAhia and DIA2 → DAhia.
[0102]
2. hia = 1-hia.
[0103]
3. The keys are sequentially referred to from DAhia, and if HAhia: Mbit == OFF, “HAhia (key): packet data” is output to the OLA.
[0104]
4. Clear HAhia and DAhia.
[0105]
5. HIA1 → HAhia, DIA1 → DAhia.
[0106]
6. It is assumed that tIA = 0.
[0107]
When tIA <T:
1. This function does not work.
[0108]
Table management module 22 (claims 2, 3, 4, 5, and 8): The table management module 22 manages the search tables HIA1 and HIA2 corresponding to the input port IA, and searches the search tables HIB1 and HIB1 corresponding to the input port IB. Manages HIB2. The individual data registered in the search table is HIAn (key) → (packet data), where n = 1 and 2, and is composed of only packet data.
[0109]
The input to the table management module 22 is given from the input module 21 through TIN, and is constituted by a set of (key, data, attr). key indicates a search key, data indicates packet data, and attr indicates whether data is input from the input port IA side or input port IB side.
[0110]
A search operation when attr = IA is described. Note that when attr = IB, the operation is such that A and B are interchanged.
[0111]
Search for HIBn (n = 1, 2) based on the key.
[0112]
-When data can be obtained from HIBm (m: arbitrary n):
1. “HIBm (key): packet data” is output to TOUT.
[0113]
2. "HIBm (key): packet data" from HIBm (key)
Remove.
[0114]
When data cannot be obtained from HIBm (m: arbitrary n):
1. Output NULL to TOUT.
[0115]
2. (Packet data) is stored in HIA1 (key).
[0116]
Next, the table management module 22 manages the search tables HIA1, HIA2, HIB1, and HIB2. In this function, as an initial operation, after allocating the areas of the search tables HA0, HA1, HB0, and HB1, the deletion condition T is read, and when a is set to a <T, tIA = 0 and tIB = Ta: The initial state 1 (or tIA = Ta, tIB = 0: initial state 2) is set, and hia = 0 and hib = 0. Also, HIA1 → HA0, HIA2 → HA1, HIB1 → HB0, HIB2 → HIB1. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Although the operation on the input port IA side is described below, the operation on the input port IB side is the same if A and B are exchanged.
[0117]
When tIA = T:
-Part 1-1
1. If packet data exists in the search table HIA2, it outputs it to the OIA.
[0118]
2. It is assumed that the search table is HIA2 → HAhia.
[0119]
3. HIA = 1-HIA, and HIA1 → HAHIA.
[0120]
4. Clear the contents of the search table HIA1.
[0121]
5. It is assumed that tIA = 0.
[0122]
-Part 1-2
1. It is assumed that the search table is HIA2 → HAhia.
[0123]
2. HIA = 1-HIA, and HIA1 → HAHIA.
[0124]
3. If there is packet data in the search table HIA1, it outputs it to the OIA.
[0125]
4. Clear the contents of the search table HIA1.
[0126]
5. It is assumed that tIA = 0.
[0127]
-Part 2
1. If the search table HIA2 packet data exists, it outputs it to the OIA.
[0128]
2. Clear the contents of the search table HIA2.
[0129]
3. It is assumed that the search table is HIA2 → HAhia.
[0130]
4. HIA = 1-HIA, and HIA1 → HAHIA.
[0131]
5. It is assumed that tIA = 0.
[0132]
-Part 3-1
1. It is assumed that the search table is HIA2 → HAhia.
[0133]
2. hia = 1-hia.
[0134]
3. If there is packet data in HAhia, it outputs it to OIA.
[0135]
4. Clear HAhia.
[0136]
5. It is assumed that the search table is HIA1 → HAhia.
[0137]
6. It is assumed that tIA = 0.
[0138]
-Part 3-2
1. If packet data exists in the search table HIA2, it outputs it to the OIA.
[0139]
2. It is assumed that the search table is HIA2 → HAhia.
[0140]
3. HAhia is cleared by setting the search table hia = 1-hia.
4. It is assumed that the search table is HIA1 → HAhia.
[0141]
5. It is assumed that tIA = 0.
[0142]
When tIA <T:
1. This function does not work.
[0143]
Table management module 22: Part 2 (Claims 2, 3, 4, 5, and 7): The table management module 22 stores search tables HIA1 and HIA2 corresponding to the input port IA for each input terminal to the packet matching apparatus 10. It manages the search tables HIB1 and HIB2 corresponding to the input port IB. Also, for the input ports IA and IB, there are arrays DIA1, DIA2, DIB1, and DIB2 consisting of keys, respectively. Each data registered in the search table is a set of HIAn (key) → (packet data, Mbit), where n = 1 and 2.
[0144]
Mbit indicates the attribute of the packet corresponding to the key. The initial value of Mbit is off. When a packet corresponding to the key is found, Mbit is turned on. Therefore, by referring to the Mbit, it is possible to know whether or not a packet corresponding to the key has been found.
[0145]
The input to the table management module 22 is given from the input / output module 21 through TIN, and is constituted by a set of (key, data, attr). key indicates a search key, data indicates packet data, and attr indicates whether data is input from the IA side or IB side.
[0146]
A search operation when attr = IA is described. Note that when attr = IB, the operation is such that A and B are interchanged.
[0147]
Search for HIBn (n = 1, 2) based on the key.
[0148]
-When data can be obtained from HIBm (m: arbitrary n):
HIBm (key): When Mbit == Off:
1. “HIBm (key): packet data” is output to TOUT.
[0149]
2. HIBm (key): Mbit = ON.
[0150]
If HIBm (key): == ON, NULL is output to TOUT.
[0151]
When data cannot be obtained from HIBm (m: arbitrary n):
1. Output NULL to TOUT.
[0152]
2. The data consisting of (packet data, Mbit: = ON) is stored in HIA1 (key).
[0153]
3. Save the key in DIA1. For 1 see the next paragraph.
[0154]
Next, the table management module 22 manages the search tables HIA1, HIA2, HIB1, HIB2 and the arrays DIA1, DIA2, DIB1, DIB2. This function reads the deletion condition T and the condition t (t <= T / 2) after securing areas of the search tables HA0, HA1, HB0, HB1, arrays DA0, DA1, DB0, DB1 as an initial operation. It is assumed that tIA = tIB = 0. It is assumed that hia = 0 and hib = 0. HIA1 → HA0, HIA2 → HA1, HIB1 → HB0, HIB2 → HB1, DIA1 → DA0, DIA2 → DA1, DIB1 → DB0, DIB2 → DB1. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Hereinafter, the operation on the IA side will be described. However, the operation on the IB side is the same when A and B are exchanged.
[0155]
Part 1
If -tIA <t:
1.1 = hia + 1.
[0156]
-T ≦ tIA <T:
1.1 = values of both 1 and 2.
[0157]
When −tIA = T:
1. The keys are sequentially referred to from DAhia, and if HAhia (key): Mbit == off, “HAhia (key): packet data” is output to OIA.
[0158]
2. Clear the contents of HAhia and DAhia.
[0159]
3. hia = 1-hia.
[0160]
4. It is assumed that tIA = 0.
[0161]
Part 2
If -tIA <t:
1.1 = 1.
[0162]
If -t <= tIA <T:
1.1 = values of both 1 and 2.
[0163]
When −tIA = T:
* Part 2-1-1
1. The keys are sequentially referred to from DIA2, and when HIA2 (key): Mbit == off, “HIA2 (key): packet data” is
Output to OIA.
[0164]
2. HIA2 → HAhia, and DIA2 → DAhia.
[0165]
3. hia = 1-hia, and HIA1 → HAhia, DIA1 → DAhia.
[0166]
4. Clear the contents of HIA1 and DIA1.
[0167]
5. It is assumed that tIA = 0.
[0168]
* Part 2-1-2
1. HIA2 → HAhia, and DIA2 → DAhia.
[0169]
2. hia = 1-hia, and HIA1 → HAhia, DIA1 → DAhia.
[0170]
3. The keys are sequentially referred to from DIA1, and if HIA1 (key): Mbit == OFF, “HIA1 (key): packet data” is output to OIA.
[0171]
4. Clear HIA1 and DIA1.
[0172]
5. It is assumed that tIA = 0.
[0173]
* Part 2-2
1. The keys are sequentially referred to from DIA2, and if HIA2 (key): Mbit == OFF, "HIA2 (key): packet data" is output to OIA.
[0174]
2. Clear the contents of HIA2 and DIA2.
[0175]
3. HIA2 → HAhia, and DIA2 → DAhia.
[0176]
4. hia = 1-hia.
[0177]
5. HIA1 → DIhia, and DIA1 → DAhia.
[0178]
6. It is assumed that tIA = 0.
[0179]
* Part 2-3-1
1. The keys are sequentially referred to from DIA2, and if HIA2 (key): Mbit == OFF, "HIA2 (key): packet data" is output to OIA.
[0180]
2. HIA2 → HAhia, and DIA2 → DAhia.
[0181]
3. cia = 1-hia, and clears HAhia and DAhia.
4. HIA1 → HAhia, DIA1 → DAhia.
[0182]
5. It is assumed that tIA = 0.
[0183]
* Part 2-3-2
1. HIA2 → DIhia, and DIA2 → DAhia.
[0184]
2. hia = 1-hia.
3. The key is sequentially referred to from DAhia, and if HAhia: Mbit == off, “HAhia (key): packet data” is output to OIA.
4. Clear HAhia and DAhia.
5. HIA1 → HAhia, DIA1 → DAhia.
6. It is assumed that tIA = 0.
Table management module 22 (Claims 2, 3, 4, 5, and 8): The table management module 22 manages the search tables HIA1 and HIA2 corresponding to the input port IA, and searches the search tables HIB1 and HIB1 corresponding to the input port IB. Manages HIB2. The individual data registered in the search table is HIAn (key) → (packet data), where n = 1 and 2, and is composed of only packet data.
[0185]
The input to the table management module 22 is given from the input / output module 21 through TIN, and is constituted by a set of (key, data, attr). “key” indicates a search key, “data” indicates packet data, and “utter” indicates whether data is input from the IA side or IB side.
[0186]
A search operation when attr = IA is described. Note that when attr = IB, the operation is such that A and B are interchanged.
[0187]
Search for HIBn (n = 1, 2) based on the key.
[0188]
-When data can be obtained from HIBm (m: arbitrary n):
1. “HIBm (key) packet data” is output to TOUT.
[0189]
2. “HIBm (key): packet data” is deleted from HIBm (key).
[0190]
When data cannot be obtained from HIBm (m: arbitrary n):
1. Output NULL to TOUT.
[0191]
2. Data consisting of (packet data, Mbit = off) is stored in HIA1 (key). For 1 see the next paragraph.
[0192]
Next, the table management module 22 manages the search tables HIA1, HIA2, HIB1, and HIB2. This function, as an initial operation, secures areas HA0, HA1, HB0, and HB1, and then reads a deletion condition T and a condition t (t <= T / 2), and sets tIA = tIB = 0. It is assumed that hia = 0 and hib = 0. Further, the order is HIA1 → HA0, HIA2 → HA1, HIB1 → HB0, HIB2 → HB1. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Hereinafter, the operation on the input port IA side will be described, but the operation on the input port IB side is the same if A and B are exchanged.
[0193]
Part 1
If -tI <t
1.1 = hia + 1.
[0194]
If -t <= tIA <T:
1.1 = hia + 1,2-hia.
[0195]
When −tIA = T:
1. If there is packet data in HAhia, it outputs it to OIA.
[0196]
2. Clear the contents of HAhia.
[0197]
3. hia = 1-hia.
[0198]
4. It is assumed that tIA = 0.
[0199]
Part 2
If -tIA <t
1.1 = 1.
[0200]
If -t <= tIA <T:
1.1 = 1,2.
[0201]
When −tIA = T:
* Part 2-1-1
1. If packet data exists in the search table HIA2, it outputs it to the OIA.
[0202]
2. It is assumed that the search table is HIA2 → HAhia.
[0203]
3. The search table hia is set to 1-hia, and HIA1 → HAhia.
[0204]
4. Clear the contents of the search table HIA1.
[0205]
5. It is assumed that tIA = 0.
[0206]
* Part 2-1-2
1. It is assumed that the search table is HIA2 → HAhia.
[0207]
2. hia = 1-hia, and HIA1 → HAhia.
[0208]
3. If packet data exists in search table HIA1, it is
To the OIA.
[0209]
4. Clear the search table HIA1 and the array DIA1.
[0210]
5. It is assumed that tIA = 0.
[0211]
* Part 2-2
1. If there is packet data in the search table HIA2,
To the OIA.
[0212]
2. Clear the contents of the search table HIA2.
[0213]
3. It is assumed that the search table is HIA2 → HAhia.
[0214]
4. hia = 1-hia.
[0215]
5. It is assumed that the search table is HIA1 → HAhia.
[0216]
6. It is assumed that tIA = 0.
[0217]
* Part 2-3-1
1. If packet data exists in the search table HIA2, it outputs it to the OIA.
[0218]
2. It is assumed that the search table is HIA2 → HAhia.
[0219]
3. cia = 1-hia to clear HAhia.
[0220]
4. It is assumed that the search table is HIA1 → HAhia.
[0221]
5. It is assumed that tIA = 0.
[0222]
* Part 2-3-2
1. It is assumed that the search table is HIA2 → HAhia.
[0223]
2. hia = 1-hia.
[0224]
3. If there is packet data in HAhia, it outputs it to OIA.
[0225]
4. Clear HAhia.
[0226]
5. It is assumed that the search table is HIA1 → HAhia.
[0227]
6. It is assumed that tIA = 0.
[0228]
Table management module 22 (Claims 2, 3, 4, 6.7): The table management module 22 manages the search table HIA1 corresponding to the input port IA for each input terminal to the packet matching device 10, and stores the input port IB Are managed in the search tables HIB1, HIB2, HIB3 corresponding to. Further, for the input ports IA and IB, there are arrays DIA1, DIB1, DIB2, and DIB3 composed of keys, respectively. Each data registered in the search table is composed of a set of (packet data, Mbit).
[0229]
Mbit indicates the attribute of the packet corresponding to the key. The initial value of Mbit is off. When a packet corresponding to the key is found, Mbit is turned on. Therefore, by referring to the Mbit, it is possible to know whether or not a packet corresponding to the key has been found.
[0230]
The input to the table management module 22 is given from the input / output module 21 through TIN, and is constituted by a set of (key, data, attr). key indicates a search key, data indicates packet data, and attr indicates whether data is input from the IA side or IB side.
[0231]
A search operation when attr = IA is described. n is an integer such that n = 1, 2, 3,. When attr = IB, n = 1 and the operation is such that A and B are interchanged.
[0232]
Search for HIBn based on the key (if n> 1, check for all n).
[0233]
-When data can be obtained from HIBm (m: arbitrary n):
* HIBm (key): When Mbit == Off:
1. “HIBm (key): packet data” is output to TOUT.
[0234]
2. HIBm (key): Mbit = ON.
[0235]
* HIBm (key): When Mbit == ON, outputs NULL to TOUT.
[0236]
When data cannot be obtained from HIBm (m = any n):
1. Output NULL to TOUT.
[0237]
2. Data consisting of (bucket data, Mbit = off) is stored in HIA1 (key).
[0238]
3. Save the key in DIA1.
[0239]
Next, the table management module 22 manages the search tables HIA1, HIB1, HIB2, HIB3 and the arrays DIA, DIB1, DIB2, DIB3. This function, as an initial operation, secures the areas of the search tables HIA1, HB0, HB1, HB2, arrays DIA, DB0, DB1, DB2, reads the deletion condition T, and reads tIA = 0. It is assumed that tIB = 0. Also, HIB1 → HB0, HIB2 → HB1, HIB3 → HB2, and DIB1 → DB0, DIB2 → DB1, DIB3 → DB2. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Note that hib starts with 0, and this value is a 2-bit counter (when incremented, continues as 0, 1, 2, 0, 1, 2,...).
[0240]
When tIA = T:
1. The keys are sequentially referred to from DIA1, and if HIA1 (key): Mbit == off, “HIB3 (key): packet data” is output to OIA.
[0241]
2. Clear the contents of HIA1 and DIA1.
[0242]
3. It is assumed that tIA = 0.
[0243]
When tIA <T:
1. This function does not work.
[0244]
-When tIB = T:
-Part 1-1
1. The keys are sequentially referred to from DIN3, and when HIB3 (key): Mbit = off, “HIB3 (key): packet data” is output to the OIA.
[0245]
2. If a = hib + 1, then HIB2 → HBhib, HIB3 → HBa, and DIB2 → HBhib, DIB3 → DBa.
[0246]
3. hib = hib-1, HIB0 → HBhib, DIB0 → DBhib.
[0247]
4. Clear the contents of HIB0 and DIB0.
[0248]
5. It is assumed that tIB = 0.
[0249]
-Part 1-2
1. If a = hib + 1, then HIB2 → HBhib, HIB3 → HBa, and DIB2 → HBhib, DIB3 → DBa.
[0250]
2. hib = hib-1, HIB0 → HBhib, DIB0 → DBhib.
[0251]
3. The keys are sequentially referred to from DIB0, and when HIB0 (key): Mbit = off, “HIB0 (key): packet data” is output to the OIA.
[0252]
4. Clear the contents of HIB0 and DIB0.
[0253]
5. It is assumed that tIB = 0.
[0254]
-Part 2
1. The keys are sequentially referred to from DIB3, and if HIB3 (key): Mbit = off, “HIB3 (key): packet data” is output to OIA.
[0255]
2. Clear the contents of HIB3 and DIB3.
[0256]
3. If a = hib + 1, then HIB2 → HBhib, HIB3 → HBa, and DIB2 → DBhib, DIB3 → DBa.
[0257]
4. hib = hib-1, HIB0 → HBhib, DIB0 → DBhib.
[0258]
5. It is assumed that tIB = 0.
[0259]
-Part 3-1
1. The keys are sequentially referred to from DIB3, and if HIB3 (key): Mbit = off, “HIB3 (key): packet data” is output to OIA.
[0260]
2. If a = hib + 1, then HIB2 → HBhib, HIB3 → HBa, and DIB2 → DBhib, DIB3 → DBa.
[0261]
3. hib = hib-1, HBhib and DAhib are cleared.
[0262]
4. HIB0 → HBhib, DIB0 → DBhib.
[0263]
5. It is assumed that tIB = 0.
[0264]
-Part 3-2
1. If a = hib + 1, then HIB2 → HBhib, HIB3 → HBa, and DIB2 → DBhib, DIB3 → DBa.
2. hib = hib-1.
[0265]
3. The keys are sequentially referred to from the DBhib, and when HBhib (key): Mbit = off, “HBhib (key): packet data” is output to the OIA.
[0266]
4. Clear HBhib and DAhib.
[0267]
5. HIB0 → HBhib, DIB0 → DBhib.
[0268]
6. It is assumed that tIB = 0.
[0269]
When tIB <T:
1. This function does not work.
[0270]
Table management module 22 (Claims 2, 3, 4, 6, and 8): The table management module 22 manages the search table HIA1 corresponding to the input port IA, and searches the search tables HIB1, HIB2, and HIB2 corresponding to the input port IB. Manages HIB3. Each piece of data registered in the search table is packet data, and is composed of only packet data.
[0271]
The input to the table management module 22 is given from the input / output module 21 through TIN, and is constituted by a set of (key, data, attr). key indicates a search key, data indicates packet data, and attr indicates whether data is input from the IA side or IB side.
[0272]
A search operation when attr = IA is described. When attr = IB, n = 1 and the operation is such that A and B are interchanged.
[0273]
Search for HIBn based on key (if n> 1, check for all n)
-When data can be obtained from HIBm (m: arbitrary n):
1. HIBm (key): Outputs packet data to TOUT.
[0274]
2. HIBm (key): deletes packet data from HIBm (key).
[0275]
When data cannot be obtained from HIBm (m: arbitrary n):
1. Output NULL to TOUT.
[0276]
2. (Packet data) is stored in HIA1 (key).
[0277]
Next, the table management module 22 manages the search tables HIA1, HIB1, HIB2, and HIB3. In this function, as an initial operation, after the areas of the search tables HIA1, HB0, HB1, and HB2 are secured, the deletion condition T is read, and tIA = 0 and tIB = 0. Also, HIB1 → HB0, HIB2 → HB1, HIB3 → HB2. Here, tIA and tIB indicate a timer (or a counter = the number of packets). Then, it operates as follows. Note that hib starts with 0, and this value is a 2-bit counter (when incremented, continues as 0, 1, 2, 0, 1, 2,...).
[0278]
When tIA = T:
1. If packet data exists in HIA1, it outputs it to OIA.
[0279]
2. Clear the contents of HIA1.
[0280]
3. It is assumed that tIA = 0.
[0281]
When tIA <T:
1. This function does not work.
[0282]
-When tIB = T:
-Part 1-1
1. If there is packet data in HIB3, it outputs it to OIB.
[0283]
2. If HIB2 → HBhib, a = hib + 1, then HIB3 → HBa.
[0284]
3. hib = hib-1, and HIB0 → HBhib.
[0285]
4. Clear the contents of HIB0.
[0286]
5. It is assumed that tIB = 0.
[0287]
-Part 1-2
1. If HIB2 → HBhib, a = hib + 1, then HIB3 → HBa.
[0288]
2. hib = hib-1, and HIB0 → HBhib.
[0289]
3. If there is packet data in HIB0, it outputs it to OIB.
[0290]
4. Clear the contents of HIB0.
[0291]
5. It is assumed that tIB = 0.
[0292]
-Part 2
1. If there is packet data in HIB3, it outputs it to OIB.
[0293]
2. Clear the contents of HIB3.
[0294]
3. If HIB2 → HIBhib, a = hib + 1, then HIB3 → HBa.
[0295]
4. hib = hib-1.
[0296]
5. It is assumed that tIB = 0.
[0297]
-Part 3-1
1. If there is packet data in HIB3, it outputs it to OIB.
[0298]
2. If HIB2 → HBhib, a = hib + 1, then HIB3 → HBa.
[0299]
3. hib = hib-1, HBhib and DAhib are cleared.
[0300]
4. HIB0 → HBhib.
[0301]
5. It is assumed that tIB = 0.
[0302]
-Part 3-2
1. If HIB2 → HBhib, a = hib1, then HIB3 → HBa.
[0303]
2. hib = hib-1.
[0304]
3. If the packet data exists in the HBhib, it outputs it to the OIB.
[0305]
4. Clear HBhib.
[0306]
5. HIB0 → HBhib.
[0307]
6. It is assumed that tIB = 0.
[0308]
When tIB <T:
1. This function does not work.
[0309]
"Time stamp processing mechanism 13" (Claim 9): It is assumed that a packet data stream composed of a pair (a, b) is transmitted from the input / output module 21 of the matching mechanism 12. Further, a has a time stamp Ta and data a such as (Ta, a), and b has a time stamp Tb and data b such as (Tb, b). In this case, when (a, b) is given as an input, data consisting of a set of (Ta, Tb, a) (or (Ta, Tb, b)) is output as a packet data stream.
[0310]
Stream synchronizer 30 (Claim 10): The stream synchronizer 30 includes a firing mechanism 31 and an SIQV header reproducing mechanism 32, as shown in FIG. In order to perform synchronization control using this apparatus, it is necessary that a packet including a sequence number is periodically inserted when a packet is copied by a probe and the data is sent to a monitoring server as stream data. . This is temporarily called an SIQV header.
[0311]
The SIQV header is generated at regular intervals by the packet probe device, and the sequence number is incremented each time the SIQV header is created. The stream synchronizer 30 performs synchronization in units of streams divided by SIQV headers having the same sequence number, thereby enabling synchronous execution control for absorbing errors in the packet data stream collection time.
[0312]
FIG. 7 shows the basic operation of the firing mechanism 31 included in the stream synchronization device 30. As shown in FIG. 7, firing occurs when SIQV headers having the same sequence numbers are available on both sides of the input. Thereafter, data after the SIQV header is read as needed. If the SIQV header appears only on one side of the input, the input side is locked and data reading is stopped. Performing the execution in units of streams divided by the SIQV header has an advantage that the maximum amount of each link buffer can be calculated.
[0313]
FIG. 8 shows an operation example in which the firing mechanism 31 controls execution in the following manner.
[0314]
-When there is a synchronization packet only at the beginning of one side input
(FIGS. 8 (1), (3), (6)): Wait for a synchronization packet to arrive at the other input.
[0315]
When synchronous packets having the same sequence number as the head of both inputs are prepared (FIGS. 8 (2) and 8 (4)): The synchronous packets are removed, the subsequent data stream is read, and sent to the search table. This is called firing. At this time, the sequence number of the synchronization packet is stored in a variable called Sequence register.
[0316]
When there is a synchronization packet having a different sequence number at the beginning of both inputs (FIG. 8 (5)): The data stream following the synchronization packet having the smaller sequence number is read into the subsequent data stream after removing the synchronization packet. , Send to search table.
[0317]
When there is a synchronous packet having a sequence number smaller than the value of Sequence register: remove the synchronous packet, read the subsequent data stream, and send it to the search table.
[0318]
Note that the stream synchronizer 30 has an SIQV header playback mechanism 32. The SIQV header reproducing mechanism 32 is a mechanism for reproducing the synchronization packet removed by the firing mechanism 31. This mechanism generates a synchronization packet when the firing is performed by the firing mechanism 31 and outputs it to all output ports. At this time, the sequence number of the fired synchronization packet is set as the sequence number of the synchronization packet newly generated by the present mechanism. If the firing is not performed, the packet stream output from the search table is output.
[0319]
FIG. 9 illustrates a quality monitoring network and a monitored network. The monitored network is composed of a host 40, a router 41, and a test packet generating host 42, and these are IP-connected using Ethernet and frame relay. The quality monitoring network includes a packet probe device 43 and a monitoring station 44 (monitoring server), and these are IP-connected using Ethernet or ISDN. Furthermore, the clock of the packet probe device 43 is synchronized using the ISDN, and the clock of the packet probe device 43 and the monitoring station 44 are very accurately synchronized.
[0320]
The packet probe device 43 has a probe interface for probing Ethernet and frame relay of the monitored network (O in the figure). This probe monitors IP packets flowing through the Ethernet and frame relay of the monitored network. The probed result is sent to the monitoring station 44, where real-time packet tracking is performed.
[0321]
An analysis program (Harumoto Fukuda, Satoshi Ono, Naohisa Takahashi, used in a monitoring server (Data Collection Server) in a network quality monitoring network as shown in FIG. 9, "Design and Realization of an Internet QoS Visualizer" IEICE Transactions on Multimedia An example is the use of mpf nodes in the Special Issue on Network / Service Quality, Jul., 1997). The SIQV header required for synchronizing the packet data stream is inserted into the packet data stream by the packet collection device, and is changed to the SIQV header format at the Pin node.
[0322]
The mpf is configured as illustrated in FIG. It is assumed that the analysis program is given as FIG. The data stream delimited by the SIQV header generated at Pin arrives at the input of mpf. The firing mechanism 31 of the stream synchronizer 30 performs firing control according to the sequence number of the SIQV header, and data is taken in. Further, the packet matching device 10 performs a matching process. The data processed in this manner is output to a total of three output destinations: unmatch, unmatch, and match. The SIQV header is provided by the SIQV header reproducing mechanism 32 and output from the mpf.
[0323]
When a packet is copied by the probe, it is conceivable to send a data stream to the monitoring server with a time stamp added. The input to the mpf is a stream composed of a set of packet data and a time stamp indicating time, such as (t, p). In this case, if the input is (t1, p) or (t2, p) by the time stamp processing mechanism 13, the matched data is output as (t1, t2, p). The time difference is calculated by comparing t1 and t2.
[0324]
As described above, by performing the processing of the mpf node in real time, the fluctuation such as the one-way delay can be calculated in real time. Further, by manipulating the time stamp of the data output in this manner, packet tracking in real time, that is, the operation of the packet on the network can be observed.
[0325]
【The invention's effect】
Claim 1, 3 : By using the present invention on a monitoring server, packet tracking can be performed in real time from continuous data transmitted from a plurality of points. Further, by applying the present invention to a packet network and performing packet tracking in real time, it is possible to grasp quality fluctuations in real time. By using the packet matching device that realizes the second aspect, it is possible to select the same packet data from packet data sent in a stream and perform packet matching in real time.
[0326]
Claim 4 : When using a packet matching apparatus, hashing is used in a matching mechanism, so that packet matching can be performed in real time.
[0327]
Claim 5 : By registering input data in a search table using a Patricia tree, real-time packet matching becomes possible.
[0328]
Claim 6 A: When both input rates differ with time, it is possible to reliably register a packet to be subjected to packet matching in a search table.
[0329]
Claim 7 A: When the input rate on one side is very high, it is possible to reliably register a packet to be subjected to packet matching in the search table.
[0330]
Claim 8 : When it is very costly to delete packet data from the search table, it becomes possible to operate a function of outputting a packet whose search failed in real time.
[0331]
Claim 9 : When it is very costly to delete the entire search table, it becomes possible to operate the function of outputting a packet whose search failed in real time.
[0332]
Claim 2, 10 : By calculating a difference or the like, it is possible to check the time difference of the same packet data and the fluctuation of the time difference between two packet data transmitted in a stream.
[0333]
Claim 11 : Claim if delay fluctuation or delay difference from each probe to the monitoring server is large 4 ~ 9 The delay error is minimized, the packet to be packet-matched is fetched into all tables, and the packet matching can be performed normally without modifying the invention. Further, when considering the network configuration from each probe to the monitoring server, it is not necessary to consider the transfer delay of the data stream.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a real-time packet tracking method of the present invention.
FIG. 2 is a diagram showing input / output ports of a packet matching device.
FIG. 3 is a configuration diagram of a packet matching device.
FIG. 4 is a configuration diagram of a matching mechanism 12.
FIG. 5 is a diagram showing an example of execution of masking.
FIG. 6 is a configuration diagram of a stream synchronization device.
FIG. 7 is a diagram illustrating an example of a method of synchronizing a packet data stream.
FIG. 8 is a diagram showing a sequence number and early control.
FIG. 9 is a diagram showing a network quality management network.
FIG. 10 is a configuration diagram of an mpf node.
FIG. 11 is a diagram showing an analysis program.
FIG. 12 is a diagram showing a packet network and a probe.
FIG. 13 is a diagram showing a conventional packet tracking method.
[Explanation of symbols]
10. Packet matching device
11 Masking mechanism
12 Matching mechanism
13 Timestamp mechanism
21 I / O module
22 Table management module
30 Stream synchronizer
31 Ignition mechanism
32 SIQV header playback mechanism
40 hosts
41 router
42 Host for test packet generation
43 Packet Probe Device
44 monitoring station

Claims (12)

データのかたまりであるパケットが連続的に送られてくるパケットストリームを2本受信するシステムにおいて、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成し、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているかを調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力する実時間パケットトラッキング方法。In a system for receiving two packet streams in which packets of data are continuously transmitted, for each packet of each packet stream, a part of the packet data is extracted to create a search key. It checks whether packets with the same search key have already been sent for the two packet streams, and if so, outputs a pair of those packets. A real-time packet tracking method that outputs incoming packets to another output port. 与えられるデータについて、マッチングが正しく行われるように両データの同期を行う、請求項1に記載の実時間パケットトラッキング方法。The real-time packet tracking method according to claim 1, wherein synchronization of both data is performed so that matching is correctly performed for given data. データのかたまりであるパケットが連続的に送られてくるパケットストリームを2本受信するシステムにおいて、それぞれのパケットストリームの各パケットに対して、パケットのデータの一部を抽出して検索キーを作成するマスキング手段と、二つのパケットストリームについて、検索キーが等しいパケットが既に送られているか調べて、送られているならば、それらのパケット対を出力し、一定時間待っても等しい検索キーのパケットが送られてこないパケットを別の出力口に出力するマッチング手段を有するパケットマッチング装置。2. Description of the Related Art In a system for receiving two packet streams in which packets of data are continuously transmitted, a search key is created by extracting a part of the packet data for each packet in each packet stream. Masking means and, for the two packet streams, check if packets with the same search key have already been sent, and if so, output those packet pairs and wait for a certain period of time to find a packet with the same search key. A packet matching device having matching means for outputting a packet that has not been sent to another output port. 前記マッチング手段は、入力口に対して、ハッシュ表を用いて検索データベースを作る請求項記載のパケットマッチング装置。4. The packet matching apparatus according to claim 3 , wherein the matching unit creates a search database for the input port using a hash table. 前記マッチング手段は、入力口に対して、パトリシア木を用いて検索データベースを作る請求項記載の装置。4. The apparatus according to claim 3 , wherein the matching unit creates a search database for the input port using a Patricia tree. 前記マッチング手段は、2本の入力口に対して、個々に2個のテーブルを利用する請求項または記載の装置。It said matching means for the two input ports, device according to claim 4 or 5, wherein utilizes two tables individually. 前記マッチング手段は、2本の入力口において、ハッシュまたはパトリシア木を用いて、片側が1個、他方が3個のテーブルを利用する請求項からのいずれか記載の装置。It said matching means, the two input ports, using a hash or Patricia tree, one on one side and the other three apparatus according to any one of claims 3 to 6, using a table. 前記マッチング手段は、検索データベース以外に、検索キーと、検索に成功したか失敗したかを表す属性の組からなる配列を保持している請求項からのいずれかに記載の装置。The apparatus according to any one of claims 4 to 7 , wherein the matching unit holds, in addition to the search database, an array including a set of a search key and an attribute indicating whether the search has succeeded or failed. 前記マッチング手段は、検索キーにより検索に成功した場合には、検索テーブルよりデータを削除する請求項からのいずれかに記載の装置。It said matching means, upon a successful search by the search key, apparatus according to any one of claims 4 to delete data from the lookup table 7. 前記マッチング手段は、パケットとタイムスタンプの組で構成されたデータ列が与えられた場合に、マッチングしたパケットに関しては、タイムスタンプを比較する機能を持つ請求項記載の装置。4. The apparatus according to claim 3 , wherein said matching means has a function of comparing the time stamps of the matched packets when a data string composed of a set of a packet and a time stamp is given. 2本の入力口に与えられるデータについて、マッチングが正しく行われるように両データの同期を行うストリーム同期装置を有する、請求項3に記載のパケットマッチング装置。 The packet matching device according to claim 3, further comprising a stream synchronization device that synchronizes the data provided to the two input ports so that the two data are synchronized correctly . 前記ストリーム同期装置は、連続したパケット列であるストリームデータを検索テーブルへ取り込む制御を行うとともに同期パケットを取り除く発火手段と、発火手段により取り除かれた同期パケットを再生するヘッダ再生手段を有する、請求項11記載のパケットマッチング装置。 The stream synchronizer includes a firing means for removing synchronization packet performs control to capture the stream data is a continuous packet sequence to the retrieval table, the header reproducing means for reproducing a synchronized packet that has been removed by the ignition means, wherein Item 12. The packet matching device according to Item 11 .
JP25688797A 1997-09-22 1997-09-22 Real-time packet tracking method and packet matching device Expired - Lifetime JP3581238B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25688797A JP3581238B2 (en) 1997-09-22 1997-09-22 Real-time packet tracking method and packet matching device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25688797A JP3581238B2 (en) 1997-09-22 1997-09-22 Real-time packet tracking method and packet matching device

Publications (2)

Publication Number Publication Date
JPH1198194A JPH1198194A (en) 1999-04-09
JP3581238B2 true JP3581238B2 (en) 2004-10-27

Family

ID=17298801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25688797A Expired - Lifetime JP3581238B2 (en) 1997-09-22 1997-09-22 Real-time packet tracking method and packet matching device

Country Status (1)

Country Link
JP (1) JP3581238B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451206B2 (en) * 2002-05-20 2008-11-11 Siemens Communications, Inc. Send of software tracer messages via IP from several sources to be stored by a remote server
JP4068545B2 (en) * 2003-10-24 2008-03-26 日本電信電話株式会社 Packet receiving method and apparatus

Also Published As

Publication number Publication date
JPH1198194A (en) 1999-04-09

Similar Documents

Publication Publication Date Title
CN107040326B (en) The methods, devices and systems of time synchronization for trillion secondary structure
US5546390A (en) Method and apparatus for radix decision packet processing
Sarin et al. Discarding obsolete information in a replicated database system
Iannaccone et al. Monitoring very high speed links
US6252891B1 (en) System and method to insert timestamp information in a protocol neutral manner
CN103309966B (en) Based on the data flow point connection query method of time slide window
TWI286425B (en) A method and apparatus for reassembly of data blocks within a network processor
US8521684B2 (en) System and method for aligning data frames in time
JP6293283B2 (en) Offline queries in software-defined networks
US5761440A (en) System and method utilizing multiple search trees to route data within a data processing network
Ofek Generating a fault-tolerant global clock using high-speed control signals for the MetaNet architecture
EP0525174A1 (en) Tracking sequence numbers in packet data communication system.
CN101854391A (en) A Realization Method of Ares Protocol Analysis System Based on Peer-to-Peer Network
US8055612B2 (en) System and method for aligning data frames in time
JP4068545B2 (en) Packet receiving method and apparatus
Tirthapura et al. Sketching asynchronous streams over a sliding window
JP3581238B2 (en) Real-time packet tracking method and packet matching device
CN118353860A (en) Packet reassembly method and device, storage medium, and electronic device
TWI820977B (en) Packet sorting and reassembly circuit module
Awerbuch et al. A quantitative approach to dynamic networks
CN116208536B (en) A lightweight in-band telemetry device and method for high-speed interconnection network
US7899057B2 (en) Systems for ordering network packets
Fu et al. Every timestamp counts: Accurate tracking of network latencies using reconcilable difference aggregator
Kutten et al. Maintenance of a spanning tree in dynamic networks
TWI254529B (en) Methods and apparatus for using multiple reassembly memories for performing multiple functions

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040531

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040531

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040531

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040722

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080730

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090730

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090730

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100730

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100730

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110730

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120730

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 9

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term