JP2003060727A - プロトコルデータ単位内のプロトコルパターンの識別装置及び方法 - Google Patents

プロトコルデータ単位内のプロトコルパターンの識別装置及び方法

Info

Publication number
JP2003060727A
JP2003060727A JP2002221254A JP2002221254A JP2003060727A JP 2003060727 A JP2003060727 A JP 2003060727A JP 2002221254 A JP2002221254 A JP 2002221254A JP 2002221254 A JP2002221254 A JP 2002221254A JP 2003060727 A JP2003060727 A JP 2003060727A
Authority
JP
Japan
Prior art keywords
protocol
stage
data unit
pattern
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002221254A
Other languages
English (en)
Other versions
JP2003060727A5 (ja
JP4059388B2 (ja
Inventor
Jerry David Morris
ジェリー・デイヴィッド・モリス
Vonn Black
ヴォン・ブラック
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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JP2003060727A publication Critical patent/JP2003060727A/ja
Publication of JP2003060727A5 publication Critical patent/JP2003060727A5/ja
Application granted granted Critical
Publication of JP4059388B2 publication Critical patent/JP4059388B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】プロトコルデータ単位におけるプロトコルパタ
ーンを識別する。 【解決手段】プロトコル識別装置は、第1のステージに
おいて、潜在的なプロトコルビットパターンの組とプロ
トコルデータ単位のビットを照合して、カプセル化の第
1の層に使用されたプロトコルを識別する。次に、プロ
トコルビットパターンの第2の組と同様の照合を行う
か、先のカプセル化プロトコル内へ符号化された情報に
よるか、先の照合に基づいて装置内に符号化された最良
の推定または装置内に符号化されたユーザの推定による
かして、選択する次のカプセル化層の識別を試みる。こ
のプロセスは、ユーザが対象とする全てのカプセル化層
が識別されるまで継続する。このようにして、プロトコ
ル識別装置は、プロトコルデータ単位とパケットプロト
コルパターンとの照合に必要となる多数のパターン比較
器を大きく低減することができる。

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、コンピュータネッ
トワークシステムにおいて、一般にプロトコルデータ単
位(PDU)と呼ばれるデータのパケットやフレームを
それらのカプセル化に用いるプロトコルの点から識別
し、さらにそのように識別されたデータパケットを選択
しまたはフィルタリングすることに関する。 【0002】 【従来の技術】最新のコンピュータネットワークは、相
互接続されたコンピュータの集合体からなる。このよう
なネットワークの主要機能は、所属コンピュータ間の情
報交換を可能にすることである。一般に、所属コンピュ
ータは、他のコンピュータがネットワーク経由で情報伝
送を試みる時点に関して制御することなく、自律的に動
作するので、一般にデータは多数のより小さな塊に分割
され、そのデータの塊がパケットまたはフレームの中に
入れられて独立して伝送される。この実施により、ネッ
トワークへのアクセスがより均等になる上に、ネットワ
ークに接続された様々なコンピュータのパケット間で衝
突が発生した場合にパケットを再送する機会が得られ
る。所与のパケットは、割り当てられたデータの部分と
パケットのフォーマットを規定する情報の他、パケット
番号やパケット送受信者のアドレスといった他の情報も
含む。データパケットのフォーマットは、予め規定され
たプロトコルによって特定される。データパケットのフ
ォーマット化は、ネットワークが階層構造をなしている
という事実により複雑なものとなっている。一般に、デ
ータパケットはそれぞれ固有のプロトコルを持つネット
ワーク層により次々と連続的にカプセル化されていく。
作成されたデータパケットは、多くの場合プロトコルデ
ータ単位(PDU)と呼ばれる。さらに複雑なことに、
多数の異なるプロトコルがネットワークの様々な層で共
通して使用されていることがある。特定のカプセル化プ
ロトコルが使用されたことを示す任意の所与のプロトコ
ルデータ単位に付加されるビットパターンが予め指定さ
れた長さの組のから選択された長さを有する一方で、異
なるプロトコルが別の予め指定された長さの組から選択
された長さを有する場合もある。さらに、未知のプロト
コルを用いる無関係なコンピュータのグループが同じネ
ットワークに接続されて、同じネットワークを使用する
こともある。 【0003】ネットワーク環境は、複雑で動的である。
従って、ネットワーク管理における非常に重要な作業
は、搬送する通信量の分析である。この目的のために、
プロトコル解析器が用いられる。プロトコル解析器は一
般に、様々な予め選択されたプロトコルによってカプセ
ル化されたプロトコルデータ単位の識別を試みる。この
ような識別の従来の方法は、対象プロトコルの予め定め
た組み合わせを識別するフィルタやパターン比較器の使
用に頼ってきた。プロトコルの任意の所与の組み合わせ
は、パケットをカプセル化するのに使用したプロトコル
のサブパターンを含むビットパターンを形成し、これら
のサブパターンはそれぞれプロトコルデータ単位内の特
定の固定オフセットで開始する。予測されたパターンの
組合せに一致するこれらのプロトコルデータ単位のみ
が、任意の所与のフィルタによる照合の基準を満たすも
のとして識別される。このようなフィルタは、「フラッ
トフィルタ」と呼ばれる。この技法の顕著な特徴は、対
象プロトコルの組み合わせ毎に1つのフィルタが必要で
あることである。 【0004】従って、この手法には、多数のフィルタ、
実際には多数のビットパターン比較器を使用する必要が
あるという不利がある。例えば、ユーザがプロトコルx
GCP上の音声トラフィックを含むプロトコルデータ単
位を探しているとすると、現行13個のフラットフィル
タが必要となる。また、3つの異なるローカルエリアネ
ットワーク(LAN)カプセル化のうちのどれが用いら
れているかをユーザが知らない場合は、13個のフィル
タを3組、つまり合計計39個のフラットフィルタが必
要となる。さらに、6つの異なる広域ネットワーク(W
AN)カプセル化のうちのどれがLANトラフィックの
搬送に用いられているかをユーザが知らない場合は、3
9個のフィルタを6組、つまり合計234個のフィルタ
用が必要となる。このような状況では、ハードウェア資
源が非常に高価かつ複雑になる。このように、ハードウ
ェア資源を設けることは非実用的である。 【0005】また、一般のネットワーク状況では、文字
通り数百の異なるノード間を流れるデータが存在し得る
が、ユーザがデータを捕捉する対象とするのはそのうち
2つからだけである。最新ネットワークの速度と典型的
な最新ネットワーク解析器の限られたメモリ空間のため
に、プロトコルデータ単位の捕捉に割り当てられるバッ
ファ空間はすぐにオーバーランしてしまうおそれがあ
る。捕捉される大多数のプロトコルデータ単位は、ユー
ザが対象としないノードからのものであることもあり得
る。一例として、対象となる2つのノードのIP(イン
ターネットプロトコル)アドレスをユーザが知ってい
て、これらの2つのノード間のデータのみを捕捉したい
とき、ユーザがネットワークの詳しい知識をもたない場
合は、上記の多数のフラットフィルタを自在に操らない
限り、プロトコルデータ単位のIPアドレスを識別する
ことはできない。 【0006】 【発明が解決しようとする課題】プロトコルデータ単位
をカプセル化するのに用いる複数のプロトコルの組み合
わせを識別するより優れた技術に対する要望が存在す
る。特に、現行システムが行なっているような多数のフ
ィルタを必要としない、関連パケットのフィルタリング
を用いたこのような識別が可能なシステムに対する要望
が存在する。 【0007】 【課題を解決するための手段】本発明は、コンピュータ
ネットワークシステムにおける可変長、多層カプセル化
プロトコルデータパケットの識別と、関連するフィルタ
リングについての新規な方法に関する。このような識別
及び関連するフィルタリングのための従来の方策は、対
象とするプロトコルの所定の組み合わせをそれぞれ識別
する多数のフラットフィルタを用いることに頼ってき
た。多くの状況では、必要となるフラットフィルタが多
数となるため、ハードウェア資源が非常に高価となり、
従ってハードウェア資源を設けることは非実用的であ
る。 【0008】代表的な実施形態において、本発明は、コ
ンピュータネットワークプロトコルデータ単位を段階的
に識別してフィルタリングするプロトコル識別装置を使
用する技術を開示する。第1のステージにおいて、本装
置は、潜在的なプロトコルビットパターンの組とプロト
コルデータ単位のビットを照合して、カプセル化の第1
の層に使用されたプロトコルを識別する。次にプロトコ
ル識別装置は、プロトコルビットパターンの第2の組と
同様の照合を行うか、先のカプセル化プロトコル内へ符
号化された情報によるか、先の照合に基づいて装置内に
符号化された最良の推定または装置内に符号化されたユ
ーザの推定によるかして、選択する次のカプセル化層の
識別を試みる。このプロセスは、ユーザが対象とする全
てのカプセル化層が識別されるまで継続する。このよう
なパターンは、それぞれ異なる長さとすることができ
る。しかし、一旦任意の所与のプロトコルカプセル化層
が識別されると、本装置は、次のプロトコルパターンの
検索を開始するためにプロトコルデータ単位内にどの程
度分け入ってインデックス付けすべきかを知る。このプ
ロセスは、所与の実装の制約内であれば、必要なだけ何
度でも繰り返すことができる。 【0009】任意の所与のプロトコル層のパターンの数
を簡単に並列検索し比較できるようにするために、テー
ブル参照方式が使用される。プロトコル識別装置は、プ
ロトコルデータ単位内のどの箇所で最後に照合したプロ
トコルパターンの終端が生じたかを知っているので、次
のパターン照合の試みを開始する箇所も知っている。 【0010】開示する技法は、ステージの概念を利用す
る。プロトコル識別装置は、各ステージ内で、プロトコ
ルカプセル化の1つの層について、プロトコルデータ単
位ビットと予め定義されたパターンビットとの間のパタ
ーンの一致を発見するよう試みる。一旦発見すると、装
置は自らリセットし、次のカプセル化層についての新規
の検索を開始する。 【0011】代表的な実施形態では、開示する技法はプ
ロトコルデータ単位を段階的に検索することと考えるこ
とができる。各ステージは、典型的に予め割り当てられ
た番号を有する。プロトコルデータ単位の検索は、例え
ばステージ番号0において開始され、そのステージによ
る検索が完了すると、現在のステージ検索結果に基づい
て新しいステージが選択される。このプロセスは、プロ
トコルデータ単位の終端に達するまで、またはそれ以上
のプロトコルデータ単位の検索が不要であると制止され
るまで継続される。 【0012】プロトコルデータ単位のバイトは、例えば
バイト0から始まって検索される。このステージは、ス
テージを終了させるパターンが発見されるまでプロトコ
ルデータ単位のバイトを消費するものと考えることがで
きる。次のステージは、最後のステージが終了したバイ
トを消費することから開始する。選択的に、パターン内
で照合する必要のないバイトをスキップすることで、こ
の処理に対して性能の向上を図ることができる。スキッ
プすべきバイトはテーブル内に予めプログラムされ、そ
のテーブルがシステムによって使用されて不要なバイト
をスキップする。 【0013】代表的な実施形態では、任意の所与のステ
ージにおけるプロトコルパターン検索に用いられる方法
及び装置は、連続するステージ検索のそれぞれのために
繰り返し使用される。予めプログラムされた「パターン
参照テーブル」を使用して、現在のステージについてプ
ロトコルデータ単位の特定部分に特定のカプセル化が存
在するか否かが判定される。パターン参照テーブルの一
部は、現在のステージ番号と検索中のプロトコルデータ
単位バイト番号について予めプログラムされおり、イン
デックス付けがなされる。代表例では、「パターン参
照」テーブルのこの部分は256個のエントリを有して
おり、その1つ1つがプロトコルデータ単位の現在のバ
イトのとり得る値を有する。プロトコルデータ単位の現
在のバイトの実際の値に対応するエントリは、テーブル
から読み込まれる。パターン参照テーブルから読み込ま
れた値は、ANDを取られステージ蓄積器へ蓄積され
る。この蓄積器は通常ステージの始まりで全て1に初期
化される。 【0014】このステージ蓄積器の値の各ビットは、そ
れぞれ割り当てられたパターン番号を有する。そのステ
ージ蓄積器ビットがセットされ、そのステージがプロト
コルデータ単位内に十分分け入って検索してパターン全
体に一致した場合、1つのパターンが「エントリリス
ト」内の予めプログラムされた値から決定されたものと
して発見されたとみなされ、これにより「ステージパタ
ーン発見ビット」がセットされる。代表例では、エント
リリストは、例えば次のスキップ値とこのステージにつ
いての最後のパターン比較といった情報を提供する1つ
のエントリをパターンの比較毎に有している。新しいス
テージへ移行させるよう指定されたパターンが発見され
た場合、現在のステージは終了し、発見されない場合、
プロトコルデータ単位の終端へは達してしないものと仮
定して、次のパターン参照テーブルエントリが読み取ら
れる。 【0015】現在のステージについてのパターンに関す
る予めプログラムされた情報に基づいて、どのプロトコ
ルが発見され、次にどのステージ番号へ進み、「ステー
ジグループ結果」の形成に当たり使用されるどのパター
ン番号が発見されたか、さらに時にはたった今発見され
たカプセル化の後にどのカプセル化が続くのかに関する
情報を出力することができる。ステージグループ結果
は、完了したステージについてのパターン照合の結果で
ある。一般に、グループ結果は、対応するビット位置に
1が置かれるその予め選択された検索パターンのグルー
プについて一致が見つからない限り、各ステージについ
て予め選択された検索パターングループを表わすそれぞ
れのビット位置に0を持つビットパターンである。グル
ープ結果は、プロトコルデータ単位が予め選択されたプ
ロトコルのグループに一致するか否かを判定するために
使用することができる。 【0016】各ステージの検索が終わると、そのステー
ジについてどのパターンが発見されたかを示すビットが
「ステージグループ結果」にマッピングされる。このマ
ッピングは、本明細書では「クリーク(clique)マッ
プ」と呼ばれる多数の予めプログラムされたテーブルを
使用することで達成される。各クリークマップは、現在
のステージ番号とクリークマップに割り当てられたステ
ージパターン発見ビットのビットに基づいてインデック
ス付けされる。選択的に、必要とされる「ステージグル
ープ結果ビット」の数がクリークマップの幅よりも大き
いときは、クリークマップ内へのインデックス付けはさ
らに「時間スライス番号」に基づかせることもできる。 【0017】各クリークマップから得られる値はORを
とられ、「ステージグループ結果値」を形成する。この
ステージグループ結果からの幾つかのビットは、任意の
数のステージ出力結果を生成するために選択的に使用す
ることができるが、他の方法もステージ出力の生成に使
用することができる。また、残りのステージグループ結
果ビットは、「ステージグループフィルタ結果」の形成
に使用される。ステージグループフィルタ結果はAND
を取られグループ蓄積器に蓄積される。この蓄積器はプ
ロトコルデータ単位の検索の開始時に全て1に初期化さ
れる。このグループ蓄積器の値の各ビットは、割り当て
られた「グループフィルタ番号」を有する。 【0018】グループフィルタは条件を満たしたステー
ジの予め選択されたセットとして指定され、各指定され
たステージ内でそのステージ用に指定されたパターンの
うちの1つだけが条件を満たすステージについて発見さ
れる。プロトコルデータ単位の検索の完了時に、そのグ
ループ蓄積器ビットがセットされかつ適当なステージが
プロトコルデータ単位を検索した場合に、グループフィ
ルタが見つかったとみなされる。従来のフィルタ設計を
用いる場合と同じく、グループフィルタの発見の結果と
して、カウント、プロトコルデータ単位の保存、プロト
コルデータ単位の廃棄、データ捕捉の開始または停止な
どの1つまたは複数の動作を他の動作と同様に行なうこ
とができる。 【0019】本明細書に開示される技術は、どの下位層
プロトコルが使用されているかを一切知ることなく、上
位層のプロトコルにおいてユーザが何かを捜すことがで
きる能力をもたらすものである。また、所望のカプセル
化パターンに関する情報を本装置に知らせることによっ
て、本装置は実行時にプロトコルデータ単位におけるカ
プセル化を識別することができ、これによって、追加の
ソフトウェアルーチンがその後に各パケットにおけるカ
プセル化の識別にかかる時間を節約する。本装置をハー
ドウェア及びソフトウェアの両方で実装することで、プ
ロトコルデータ単位を高速に識別することができる。 【0020】一般のネットワーク状況では、文字通り数
百の異なるノード間を流れるデータが存在し得るが、ユ
ーザがデータを捕捉する対象とするのはそのうち2つか
らだけである。最新ネットワークの速度と典型的な最新
ネットワーク解析器の限られたメモリ空間のために、プ
ロトコルデータ単位の捕捉に割り当てられるバッファ空
間はすぐにオーバーランしてしまうおそれがある。従来
のシステムでは、捕捉される大多数のプロトコルデータ
単位は、ユーザが対象としないノードからのものである
こともあり得る。一例として、対象となる2つのノード
のIP(インターネットプロトコル)アドレスをユーザ
が知っており、これらの2つのノード間のデータのみを
捕捉したいとき、ユーザがネットワークの詳しい知識を
もたない場合は、上記の多数のフラットフィルタを自在
に操らない限り、プロトコルデータ単位のIPアドレス
を識別することはできない。しかし、本発明による装置
の様々なステージでの識別の能力をもってすれば、プロ
トコルの識別に必要なものを越える僅かな追加の努力だ
けで、対象とするこれらのプロトコルデータ単位のフィ
ルタリングが可能となる。 【0021】従来技術に対する本発明の実施形態の主要
な利点は、プロトコルデータ単位をパケットプロトコル
パターンと照合するのに必要となる多数のパターン比較
器を大きく低減することである。この低減は、ステージ
という概念の利用によってもたらされる。さらなる利点
は、使用されている低位層のプロトコルについての知識
を持つことなく、高位層のプロトコルにおける特定のパ
ターンを検索する能力である。また、本装置をハードウ
ェア及びソフトウェアの両方で実装することで、プロト
コルデータ単位を高速に識別することができる。他の利
点は、特定のプロトコルデータ単位内にどのようなカプ
セル化が存在するかについての情報を提供し、従って後
に各パケットを処理するときのソフトウェアルーチン所
要時間を節約する能力である。最後に、所望のカプセル
化パターンに関する情報をプロトコル識別装置に知らせ
ることにより、プロトコル識別装置は、実行時にプロト
コルデータ単位をフィルタリングすることができ、これ
により、不必要なパケットを後で処理するために追加の
ソフトウェアルーチンが費やす時間を節約するという利
点が得られ、また対象としないプロトコルデータ単位を
廃棄することで、貴重な捕捉バッファ空間が得られる。 【0022】 【発明の実施の形態】説明のために図中に示したよう
に、本発明はコンピュータネットワークシステム内での
可変長の多層カプセル化プロトコルデータパケットの識
別と、関連するフィルタリングのための新規な方法に関
するものである。このような識別及び関連するフィルタ
リングに対する従前の解決策は、対象プロトコルの所定
の組み合わせをそれぞれ識別する多数のフラットフィル
タの使用に頼っていた。多くの状況では、必要となるフ
ラットフィルタの数が大きいために、ハードウェア資源
が非常に高価となり、従ってそれらを非実用的なものに
している。 【0023】1.緒言 代表的な実施形態では、本発明は、コンピュータネット
ワークプロトコルデータ単位を段階的に識別してフィル
タリングするプロトコル識別装置を使用する技術を開示
する。第1のステージにおいて、本装置は、潜在的なプ
ロトコルビットパターンの組とプロトコルデータ単位の
ビットを照合して、カプセル化の第1の層に使用された
プロトコルを識別する。次に本装置は、プロトコルビッ
トパターンの第2の組と同様の照合を行うか、先のカプ
セル化プロトコル内へ符号化された情報によるか、先の
照合に基づいて装置内に符号化された最良の推定または
装置内に符号化されたユーザの推定によるかして、選択
する次のカプセル化層の識別を試みる。このプロセス
は、ユーザが対象とする全てのカプセル化層が識別され
るまで継続する。このようなパターンは、それぞれ異な
る長さとすることができる。しかし、一旦任意の所与の
プロトコルカプセル化層が識別されると、本装置は、次
のプロトコルパターンの検索を開始するためにプロトコ
ルデータ単位内にどの程度分け入ってインデックス付け
すべきかを知る。このプロセスは、所与の実装の制約内
であれば、必要なだけ何度でも繰り返すことができる。 【0024】任意の所与のプロトコル層のパターンの数
を簡単に並列検索し比較できるようにするために、テー
ブル参照方式が使用される。本装置は、プロトコルデー
タ単位内のどの箇所で最後に照合したプロトコルパター
ンの終端が生じたかを知っているので、次のパターン照
合の試みを開始する箇所も知っている。 【0025】開示する技法は、ステージの概念を利用す
る。本装置は、各ステージ内で、プロトコルカプセル化
の1つの層について、プロトコルデータ単位ビットと予
め定義されたパターンビットとの間のパターンの一致を
発見するよう試みる。一旦発見すると、装置は自らリセ
ットし、次のカプセル化層についての新規の検索を開始
する。 【0026】代表的な実施形態では、開示する技法はプ
ロトコルデータ単位を段階的に検索することと考えるこ
とができる。各ステージは、一般に予め割り当てられた
番号を有する。プロトコルデータ単位の検索は、例えば
ステージ番号0において開始され、そのステージによる
検索が完了すると、現在のステージ検索結果に基づいて
新しいステージが選択される。このプロセスは、プロト
コルデータ単位の終端に達するまで、またはそれ以上の
プロトコルデータ単位の検索が不要であると制止される
まで継続される。 【0027】プロトコルデータ単位のバイトは、例えば
バイト0から始まって検索される。このステージは、ス
テージを終了させるパターンが発見されるまでプロトコ
ルデータ単位のバイトを消費するものと考えることがで
きる。次のステージは、最後のステージが終了したバイ
トを消費することから開始する。選択的に、パターン内
で照合する必要のないバイトをスキップすることで、こ
の処理に対して性能の向上を図ることができる。スキッ
プすべきバイトはテーブル内に予めプログラムされ、そ
のテーブルがシステムによって使用されて不要なバイト
をスキップする。 【0028】代表的な実施形態では、任意の所与のステ
ージにおけるプロトコルパターン検索に用いられる方法
及び装置は、連続するステージ検索のそれぞれのために
繰り返し使用される。予めプログラムされた「パターン
参照テーブル」を使用して、現在のステージについてプ
ロトコルデータ単位の特定部分に特定のカプセル化が存
在するか否かが判定される。パターン参照テーブルの一
部は、現在のステージ番号と検索中のプロトコルデータ
単位バイト番号について予めプログラムされおり、イン
デックス付けがなされる。代表例では、「パターン参
照」テーブルのこの部分は256個のエントリを有して
おり、その1つ1つがプロトコルデータ単位の現在のバ
イトのとり得る値を有する。プロトコルデータ単位の現
在のバイトの実際の値に対応するエントリは、テーブル
から読み込まれる。パターン参照テーブルから読み込ま
れた値は、ANDを取られステージ蓄積器へ蓄積され
る。この蓄積器は通常ステージの始まりで全て1に初期
化される。 【0029】このステージ蓄積器の値の各ビットは、そ
れぞれ割り当てられたパターン番号を有する。そのステ
ージ蓄積器ビットがセットされ、そのステージがプロト
コルデータ単位内に十分分け入って検索してパターン全
体に一致した場合、1つのパターンが「エントリリス
ト」内の予めプログラムされた値から決定されたものと
して発見されたとみなされ、これにより「ステージパタ
ーン発見ビット」がセットされる。代表例では、エント
リリストは、例えば次のスキップ値とこのステージにつ
いての最後のパターン比較といった情報を提供する1つ
のエントリをパターンの比較毎に有している。新しいス
テージへ移行させるよう指定されたパターンが発見され
た場合、現在のステージは終了し、発見されない場合、
プロトコルデータ単位の終端へは達してしないものと仮
定して、次のパターン参照テーブルエントリが読み取ら
れる。 【0030】現在のステージについてのパターンに関す
る予めプログラムされた情報に基づいて、どのプロトコ
ルが発見され、次にどのステージ番号へ進み、「ステー
ジグループ結果」の形成に当たり使用されるどのパター
ン番号が発見されたか、さらに時にはたった今発見され
たカプセル化の後にどのカプセル化が続くのかに関する
情報を出力することができる。ステージグループ結果
は、完了したステージについてのパターン照合の結果で
ある。一般に、グループ結果は、対応するビット位置に
1が置かれるその予め選択された検索パターンのグルー
プについて一致が見つからない限り、各ステージについ
て予め選択された検索パターングループを表わすそれぞ
れのビット位置に0を持つビットパターンである。グル
ープ結果は、プロトコルデータ単位が予め選択されたプ
ロトコルのグループに一致するか否かを判定するために
使用することができる。 【0031】各ステージの検索が終わると、そのステー
ジについてどのパターンが発見されたかを示すビットが
「ステージグループ結果」にマッピングされる。このマ
ッピングは、本明細書では「クリーク(clique)マッ
プ」と呼ばれる多数の予めプログラムされたテーブルを
使用することで達成される。各クリークマップは、現在
のステージ番号とクリークマップに割り当てられたステ
ージパターン発見ビットのビットに基づいてインデック
ス付けされる。選択的に、必要とされる「ステージグル
ープ結果ビット」の数がクリークマップの幅よりも大き
いときは、クリークマップ内へのインデックス付けはさ
らに「時間スライス番号」に基づかせることもできる。
1つのマップによって提供できるよりも多くのビットが
必要な場合は、タイムスライス番号を使用して2以上の
マップにアクセスする。代表例においては、3つの16
ビットのマップにアクセスして1つの48ビットの出力
を得る。 【0032】各クリークマップに割り当てられるステー
ジ蓄積器結果ビットの数は、速度とメモリ使用との兼ね
合いで決まる。32個のパターン照合ハードウェア実装
の場合、通常2または3ビットが用いられ、64個のパ
ターン照合回路のソフトウェア実装については、8ビッ
トの実装が良好な選択となる。同様に、クリークマップ
の幅は、通常、速度とメモリ使用との兼ね合いで決ま
る。 【0033】各クリークマップから得られる値はORを
とられ、「ステージグループ結果値」を形成する。この
ステージグループ結果からの幾つかのビットは、任意の
数のステージ出力結果を生成するために選択的に使用す
ることができるが、他の方法もステージ出力の生成に使
用することができる。また、残りのステージグループ結
果ビットは、「ステージグループフィルタ結果」の形成
に使用される。ステージグループフィルタ結果はAND
を取られグループ蓄積器に蓄積される。この蓄積器はプ
ロトコルデータ単位の検索の開始時に全て1に初期化さ
れる。このグループ蓄積器の値の各ビットは、割り当て
られた「グループフィルタ番号」を有する。 【0034】グループフィルタは条件を満たしたステー
ジの予め選択されたセットとして指定され、各指定され
たステージ内でそのステージ用に指定されたパターンの
うちの1つだけが条件を満たすステージについて発見さ
れる。プロトコルデータ単位の検索の完了時に、そのグ
ループ蓄積器ビットがセットされかつ適当なステージが
プロトコルデータ単位を検索した場合に、グループフィ
ルタは発見されたとみなされる。従来のフィルタ設計を
用いる場合と同じく、グループフィルタの発見の結果と
して、カウント、プロトコルデータ単位の保存、プロト
コルデータ単位の廃棄、データ捕捉の開始または停止な
どの1つまたは複数の動作を他の動作と同様に行なうこ
とができる。 【0035】代表例では、本装置は、1つのプロトコル
層において最大64の異なるカプセル化をサポートし、
また最大14個のプロトコル層をサポートすることがで
きる。これは、6414個のフラットフィルタと等価であ
る。本装置に対するフラットフィルタの等価な数は、実
装により課される限界であり、本発明の限界ではない。
本装置は、ハードウェアまたはソフトウェアで機能を実
装することができる。 【0036】本明細書に開示される技術は、どの下位層
プロトコルが使用されているかを一切知ることなく、上
位層のプロトコルにおいてユーザが何かを捜すことがで
きる能力をもたらすものである。また、所望のカプセル
化パターンに関する情報を本装置に知らせることによっ
て、本装置は実行時にプロトコルデータ単位におけるカ
プセル化を識別することができ、これによって、追加の
ソフトウェアルーチンがその後に各パケットにおけるカ
プセル化の識別にかかる時間を節約する。本装置をハー
ドウェア及びソフトウェアの両方で実装することで、プ
ロトコルデータ単位を高速に識別することができる。 【0037】一般のネットワーク状況では、文字通り数
百の異なるノード間を流れるデータが存在し得るが、ユ
ーザがデータを捕捉する対象とするのはそのうち2つか
らだけである。最新ネットワークの速度と典型的な最新
ネットワーク解析器の限られたメモリ空間のために、プ
ロトコルデータ単位の捕捉に割り当てられるバッファ空
間はすぐにオーバーランしてしまうおそれがある。従来
のシステムでは、捕捉される大多数のプロトコルデータ
単位は、ユーザが対象としないノードからのものである
こともあり得る。一例として、対象となる2つのノード
のIP(インターネットプロトコル)アドレスをユーザ
が知っており、これらの2つのノード間のデータのみを
捕捉したいとき、ユーザがネットワークの詳しい知識を
もたない場合は、上記の多数のフラットフィルタを自在
に操らない限り、プロトコルデータ単位のIPアドレス
を識別することはできない。しかし、本発明による装置
の様々なステージでの識別の能力をもってすれば、プロ
トコルの識別に必要なものを越える僅かな追加の努力だ
けで、対象とするこれらのプロトコルデータ単位のフィ
ルタリングが可能となる。 【0038】2.PDU識別方法 図1は、本発明の様々な代表的な実施形態で説明するプ
ロトコルデータ単位100の図である。プロトコルデー
タ単位100は、データのビット120と、1つまたは
複数のパケットプロトコルパターン105を含む。パケ
ットプロトコルパターン105は、本明細書ではカプセ
ル化プロトコルパターン105ともコンピュータネット
ワークプロトコル105とも呼ばれ、データをカプセル
化するのにコンピュータネットワーク内で用いられたプ
ロトコルを識別する。パケットプロトコルパターン10
5は、カプセル化層とプロトコルデータ単位100を作
成する特定のプロトコルによって定義される。図1は、
例示目的だけのものである。プロトコルは、様々の長さ
を取ることができ、必ずしも図1に示したプロトコルデ
ータ単位内の位置でなくてもよい。 【0039】図2は、本発明の様々な代表的な実施形態
で説明するプロトコルデータ単位100の捕捉の図であ
る。図2において、プロトコルデータ単位100は受信
バス205で受け取られ、ここでバッファ210とも呼
ばれる捕捉バッファ210内に書き込まれ、プロトコル
識別装置215によって受け取られる。別の代表的な実
施形態では、プロトコルデータ単位100はプロトコル
識別装置215によって受信バス205上で受け取ら
れ、プロトコル識別装置215がプロトコルデータ単位
100を捕捉バッファ210へ伝送する。 【0040】図3は、本発明の様々な代表的な実施形態
で説明する第1のリスト300である。図4は、本発明
の様々な代表的な実施形態で説明するように、第1のリ
スト300のエントリ320の図である。第1のリスト
300は検索パターン305のリストであり、本明細書
では検索パターンリスト300とも呼ばれる。図4に示
すように、検索パターンリスト300の任意の所与のエ
ントリ320は、検索パターンインデックス310とス
テージ番号315と検索パターン305を含む。検索パ
ターンインデックス310は、エントリ320を識別す
るインデックスであり、一般に整数である。この例で
は、検索パターンインデックス310は、検索パターン
305を識別し、第1のエントリについては0、第2の
エントリについては1、第3のエントリについては2で
始まる。ステージ番号315は、検索パターン305の
検索に用いるステージ315を識別する。ステージ番号
315とステージ315自体(どの図にも明示していな
い)は同じエンティティではないことが認められるが、
それらは両方ともステージ315の識別に用いられるス
テージ番号315と同じ識別番号(315)を用いて参
照される。 【0041】図3の例では、検索パターンリスト300
の第7エントリ320は、それがリストの第7エントリ
であることを示す、「6」に等しい検索パターンインデ
ックス310を持つ。このエントリ320は、第2ステ
ージ第3検索パターン305を含む。第2ステージ第3
検索パターン305は、それが第2ステージに関連する
検索パターン305であることを示す、「2」に等しい
ステージ番号315を有する。この代表例では、プロト
コル識別装置215は、検索パターン305と任意の所
与のプロトコルデータ単位100内で発見されたパケッ
トプロトコルパターン105との照合を試みる。特に、
装置215が全てのステージについて一致を発見するよ
う試みることを想定している図3により表わされる例に
ついては、プロトコル識別装置215は、第1ステージ
第1検索パターン305と、第1ステージ第2検索パタ
ーン305と、第1ステージ第3検索パターン305
と、第1ステージ第4検索パターン305を、分析して
いるプロトコルデータ単位100の第1のプロトコルパ
ターン105と照合するよう試みる。同様に、プロトコ
ル識別装置215は、第2ステージ第1検索パターン3
05と、第2ステージ第2検索パターン305と、第2
ステージ第3検索パターン305を、分析しているプロ
トコルデータ単位100の第2のプロトコルパターン1
05と照合するよう試みる。同様に、プロトコル識別装
置215は、他のステージの第3及び他のあらゆる検索
パターン305を、分析しているプロトコルデータ単位
100の対応するプロトコルパターン105と照合する
よう試みる。図3に示した3つの点は、検索パターンリ
スト300へ符号化されるあらゆる追加検索パターン3
05を表わしている。装置の制約の範囲内で、検索され
るステージ数だけでなく各層についてのパターン数は、
一般に実装者により指定され、ユーザの必要に基づいて
変化させることができる。検索されるステージ数の他
に、各層ごとの最大許容パターン数は、前に述べたよう
に実装に依存する。 【0042】図5は、本発明の様々な代表的な実施形態
にて説明するように、第1のリスト300のエントリ3
20の別の図である。別の実施形態では、検索パターン
305の連続部分325が検索パターン305から選択
され、プロトコルデータ単位100の検索がそれらを発
見するために連続的に行なわれる。例えば、検索パター
ン305の第1の部分325が先ず選択され、それにつ
いてプロトコルデータ単位が検索される。次に、検索パ
ターン305の第2の部分325が先ず選択され、それ
についてプロトコルデータ単位が検索される。このプロ
セスは、検索パターン305の全ての部分325が選択
されて検索が行なわれるまで継続する。別法では、特定
の部分325がプロトコルデータ単位100との照合に
失敗した場合に、検索パターン305についての検索は
終了する。 【0043】図6は、本発明の様々な代表的な実施形態
にて説明するプロトコルデータ単位100の識別方法の
フローチャートである。ブロック405では、プロトコ
ルデータ単位100が受け取られる。プロトコルデータ
単位100は通常、捕捉バッファ210へ書き込まれ、
図2に示すようにそれと並行してプロトコル識別装置2
15により捕捉される。プロトコル識別装置215がプ
ロトコルデータ単位100を受け取った後、ブロック4
05は通常ステージ番号が0である開始ステージを選択
し、通常プロトコルデータ単位100の第1バイトであ
るプロトコルデータ単位100へのポインタを初期化す
る。そして、ブロック405は制御をブロック407へ
移す。 【0044】ブロック407では、グループ結果が初期
化される。グループ結果は、完了した全てのステージに
対するパターン照合の結果である。一般に、グループ結
果は、対応ビット位置に1が置かれる検索パターン30
5の予め選択されたグループについて一致が見つからな
かった場合に、各ステージについて検索パターン305
の予め選択されたグループを表わすビット位置に0を持
つビットパターンとなる。このグループ結果は、プロト
コルデータ単位100が予め選択されたプロトコルグル
ープに一致するか否かを判定するのに用いることができ
る。代表的な実施形態では、一致が見つかった場合、捕
捉バッファ210内のポインタが動かされ、現在のプロ
トコルデータ単位100は捕捉バッファ210内に留ま
る。しかし、一致が見つからない場合は、受け取った次
のプロトコルデータ単位100が現在のプロトコルデー
タ単位100を上書きする。そして、ブロック407は
制御をブロック408へ移す。 【0045】ブロック408では、ステージ結果が初期
化される。ステージ結果は、ステージについてのパター
ン照合の結果である。一般に、この結果は、一致がない
各アクティブなステージに関連する各検索パターン30
5を表わすビット位置に0を有し、一致があるときは1
を有するビットパターンである。そして、ブロック40
8は制御をブロック410へ移す。 【0046】ブロック410では、プロトコル識別装置
215は、現在のステージ用の検索パターンリスト30
0内のエントリを介して1つまたは複数の検索パターン
305の次の部分を得る。この照合プロセスは、複数の
検索パターン305の部分を同時に照合するよう試みる
ことでより効率的に実行される。そして、ブロック41
0は制御をブロック415へ移す。 【0047】ブロック415では、非ゼロのスキップ値
(通常、第1ステージの第1の比較ではゼロ)が検索パ
ターン305のこの部分325へ割り当てられた場合、
プロトコルデータ単位100へのポインタは数バイト進
められる。一般に、後の比較について、スキップ値はテ
ーブルから得られる。このテーブルは現在のステージ3
15についてのカプセル化を識別するために検索パター
ン305が必要とする全バイトの知識に基づいて予めプ
ログラムされている。選択的に、プロトコルデータ単位
100の全てのバイトを時間の許す限り比較することも
可能である。そして、ブロック415は制御をブロック
420へ移す。 【0048】ブロック420では、プロトコルデータ単
位100内のパターンが検索パターン305のパターン
と一致するか否か判定するため、プロトコルデータ単位
100内へポインタを必要なだけ進めて、検索パターン
305の一部325がプロトコルデータ単位100と比
較される。そして、ブロック420は制御をブロック4
25へ移す。 【0049】ブロック425では、ステージ内のその位
置に対するステージ結果が形成される。そして、ブロッ
ク425は制御をブロック430へ移す。 【0050】ステージを終了させるために指定された検
索パターン305の1つがプロトコルデータ単位100
内のパターンに一致することが分かると、ブロック43
0は制御をブロック435へ移す。見つかった時点で特
定のステージを終了させるために指定されたこれらの検
索パターンは、「ステージ移行検索パターン」と呼ばれ
る。一致しなければ、ブロック430は制御をブロック
432へ移す。 【0051】プロトコルデータ単位100の終端に出会
うと、ブロック432はブロック435へ制御を移す。
出会わなければ、ブロック432は制御をブロック43
3へ移す。 【0052】プロトコルデータ単位100において検索
を実行することが必要な現在のステージに、1つまたは
複数の検索パターン305の残りの部分325が存在す
る場合、ブロック433は制御をブロック410へ移
す。存在しない場合、ブロック433は制御をブロック
435へ移す。 【0053】ブロック435では、ステージ結果が報告
される。ブロック435は、そこでブロック445へ制
御を移す。 【0054】ブロック445では、完了した全てのステ
ージについてのグループ結果が形成される。そして、ブ
ロック445は制御をブロック450へ移す。 【0055】プロトコルデータ単位100の終端に出会
うと、ブロック450は制御をブロック460へ移す。
出会わなければ、ブロック450は制御をブロック45
3へ移す。 【0056】プロトコルデータ単位100において検索
を行なう必要のある検索パターン305を構成する残り
のステージが存在する場合、ブロック453は制御をブ
ロック455へ移す。存在しない場合、ブロック453
は制御をブロック460へ移す。 【0057】ブロック455では、検索パターン305
をプロトコルデータ単位100内のパケットプロトコル
パターン105と照合する試みをするための新しいステ
ージが選択される。そして、ブロック455は制御をブ
ロック457へ移す。 【0058】ブロック457では、プロセスは選択され
たステージへ移行する。そして、ブロック457は制御
をブロック408へ移す。 【0059】ブロック460では、グループ結果が報告
される。そして、ブロック460はプロセスを終了す
る。 【0060】3.PDU識別を行う装置 図7は、本発明の様々な代表的な実施形態にて説明する
プロトコルデータ単位100の識別を行うプロトコル識
別装置215の図である。図7では、データは制御回路
500により受信バス205上で受け取られる。前述し
かつ図2に示したように、プロトコルデータ単位100
も代表的な実施形態における並列処理において捕捉バッ
ファ210へ書き込まれる。プロトコル識別装置215
は、プロトコルデータ単位100内でパケットプロトコ
ルパターン105を識別し、識別プロセスの結果に基づ
いて、捕捉バッファ210内に残らないこれらのプロト
コルデータ単位100をフィルタリングし除外する。捕
捉バッファ210は、例えば、先入れ先出し方式(FI
FO)バッファでよい。検索パターンリスト300の内
容に基づいて、制御回路500は、プロトコルデータ単
位100のどのバイトについて、検索パターン305の
照合を試みるかを決定する。前述したように、検索パタ
ーンリスト300は、ユーザが一致を得ることを望む検
索パターン305から構成される。制御回路500は、
検索パターン・グループ一致リスト510として図7に
示すように、リストやテーブル及び/またはデータベー
ス等からこの情報を得る。 【0061】第1ステージのパターン照合の間、プロト
コルデータ単位100と検索が予定されている検索パタ
ーン305が検索パターン比較器530へ送られる。本
明細書では、検索パターン比較器530は第1の比較器
530及びパターン比較器530とも呼ばれる。制御回
路500は、前述したように、プロトコルデータ単位1
00内へのインデックス付けを行なう。 【0062】任意の所与のステージが、異なるビットパ
ターン長を有する様々な検索パターン305を有し得
る。しかし、プロトコルは可変長であるため、ユーザは
次のプロトコルまたは次のパケットプロトコルパターン
がどこで開始するかについては分からない。ステージ移
行パターンとして指定されたパケットプロトコルパター
ン105が所与のカプセル化層について識別されると、
装置のステージ部分は見つかったばかりのステージ移行
パターンに対して指定されたステージ番号についてリセ
ットされ、プロセスは次のカプセル化層についてパケッ
トプロトコルパターン105の検索をすべて初めから開
始する。 【0063】代表的な実施形態では、検索パターン比較
器530は、32個の異なる検索パターン305をプロ
トコルデータ単位100と同時に照合する能力を有する
32ビット幅のRAM530である。32ビット幅RA
M530から、プロトコルデータ単位100がカプセル
化された対応するパック済みプロトコルパターン105
にどの検索パターン305が一致したか(もしあれば)
を示すビットパターンが、ステージ結果蓄積器550
(第1の蓄積器550とも呼ばれる)へ伝送される。ス
テージ結果蓄積器550(特に図示せず)は、検索パタ
ーン305がプロトコルデータ単位100内に見つかっ
たか否かに関する指標を作成する。例えば一致ビット3
1が「1」にセットされた場合、探していたパターン番
号31が一致する。「0」は、一致しないことを示す。
各ステージについて比較が1回以上行なわれるとすれ
ば、ステージ結果蓄積器550は、個々の比較または同
時比較の完了の後に更新される。ステージ結果蓄積器5
50に含まれる結果は制御回路500へ伝送され、さら
にステージ−グループマッピング回路560(マッピン
グ回路560とも呼ばれる)に伝送される。ステージ−
グループマッピング回路560において、ステージ結果
はグループ結果蓄積器570(第2の蓄積器570とも
呼ばれる)へマッピングされ伝送される。グループ結果
蓄積器570は、検索パターン305の予め選択された
グループがプロトコルデータ単位100内で見つかった
か否かに関する指標570(特に図示しないが、グルー
プ指標570と呼ぶ)を作成する。ステージ−グループ
マッピング560からの出力は制御回路500にも伝送
される。制御回路500において、それらの出力は、次
のステージ番号、次のプロトコルID、次のプロトコル
IDの書き込み位置などのステージ結果を他の項目と同
様に提供するために用いられる。グループ結果蓄積器5
70は、グループ結果を制御回路500へ伝送する。所
与のステージの完了の後、制御回路500は、ステージ
結果蓄積器550をその初期設定へとリセットする。 【0064】任意の所与のステージで照合が可能な32
個のパターンが存在し得る。プロトコルデータ単位10
0の所与のバイトについて、検索対象である1つまたは
複数のパターンを満足する複数の値が存在し得る。その
バイトは、ここで使用するRAMの256個のワードの
うちの任意のワードを指定することもできる。従って、
RAMはデータの所与のバイトにより指定された256
個全ての位置についてプログラムされる。バイト値が
「0」である場合、いかなるパターンが検索対象であろ
うとも、RAMはエントリ0で一致ビットにプログラム
される。バイト値が「1」である場合、それはRAM内
の異なるワードであり、一致ビットの出現を望む方法
で、ワードは一致ビットを用いてプログラムされる。従
って、単一バイト上で検索することは、これら256個
の値の任意の組をとり得るパターンを検索することであ
る。256個の値のうち対象とするパターンと一致する
ものはどれでもRAMが選択するようプログラムされて
いることを保証するのは実装者次第である。 【0065】ユーザは、幾つかの異なる型のプロトコル
カプセル化を見つけ出し、それらを単一のプロトコルの
グループ(例えばRFC1490が後に続きIPが後に
続くフレームリレー)として識別することに関心がある
かもしれない。ユーザは、異なるグループのパターンの
発生のカウントを望むかもしれない。ステージ−グルー
プマッピング回路560の別の目的は、どのステージを
次に調査すべきかを識別することである。例えば、プロ
トコルデータ単位100は第1ステージの間にフレーム
リレーカプセル化として識別され、そして、次のカプセ
ル化がRFC1490であるかまたは他のプロトコル
(例えばLMI)のためのカプセル化であるかを判定す
るために、第4ステージを用いるように、システムをス
テージ−グループマッピング回路560プログラムする
ことができる。 【0066】プロトコル識別装置215は、各カプセル
化層について各検索パターン305に一致したパケット
総数のカウントを維持することができる。加えて、プロ
トコル識別装置215は、カウントの他に、データ捕捉
(開始、中心寄せ、停止、記憶、圧縮)を制御する従来
のフィルタ関数の作成に用いられる。単独でも組み合わ
せでも、プロトコルデータ単位100が満足する任意パ
ターンのプロトコルにより、ユーザの選択で、フラグを
設定しかつ/またはそのパターン用に定義されたパラメ
ータを増加させ、あるいは一致が見つかった事実を記録
することを可能にする。このような情報は、例えば、プ
ロトコルデータ単位100と関連するバッファのオーバ
ーヘッド領域に記録することができる。また、いかなる
ステージも選択的に、プロトコルデータユニット100
に関連するバッファのオーバーヘッド領域の複数の位置
のうち1つに値を書き込ませ、そのステージのカプセル
化がプロトコルデータ単位100内で開始された箇所と
そのステージについて見つかったプロトコルとを指示さ
せることができる。加えて、プロトコル識別装置215
は、どのプロトコルがネットワーク上で使用されている
かを自動検出したり、プロトコルデータ単位100をデ
コードするのに使用することのできるカプセル化情報を
提供したり、実行時処理用にパケットの優先順位付けを
したりするのに用いることができる。 【0067】制御回路500は、例えば上記したような
対象となる様々な結果を、他の回路や関数に中継するた
めに使用される結果報告回路580に伝送する、多くの
データ処理製品と同じく、本明細書に開示した技術は、
ハードウェア要素とソフトウェア要素の組み合わせとし
て実装される。本発明を使用するために必要な機能は、
情報処理装置(例えば、本明細書に開示した技法に従っ
て動作するネットワーク解析器、サーバコンピュータま
たはパーソナルコンピュータ)のプログラミングに用い
るコンピュータ可読の媒体(例えば、ハードディスク、
フレキシブルディスク、CD−ROM、DVD−ROM
等)で実現できる。 【0068】本明細書に記載した技法はプロトコル解析
器において有利に用いることができるが、コンピュータ
等のプロトコルデータ単位100を受信可能な他の装置
において使用することもできる。 【0069】4.結言 従来技術に対する本発明の実施形態の主要な利点は、プ
ロトコルデータ単位100とパケットプロトコルパター
ン105との照合に必要となる多数のパターン比較器を
大きく低減することである。この低減は、ステージとい
う概念の利用によってもたらされる。さらなる利点は、
どの低位層のプロトコルが使用されているかについての
知識を持つことなく、高位層のプロトコルにおける特定
のパターンを検索する能力である。また、この装置をハ
ードウェアとソフトウェアの両方で実装することで、プ
ロトコルデータ単位を非常に高速で識別するという利点
が得られる。他の利点は、特定のプロトコルデータ単位
100内にどのようなカプセル化が存在するかについて
の情報を提供し、従って後に各パケットを処理するとき
のソフトウェアルーチン所要時間を節約する能力であ
る。最後に、所望のカプセル化パターンに関する情報を
プロトコル識別装置215に知らせることにより、プロ
トコル識別装置215は、実行時にプロトコルデータ単
位100をフィルタリングすることができ、これによ
り、不必要なパケットを後で処理するために追加のソフ
トウェアルーチンが費やす時間を節約するという利点が
得られ、また対象としないプロトコルデータ単位100
を廃棄することで、貴重な捕捉バッファ空間が得られ
る。 【0070】本発明には例として以下の実施形態が含ま
れる。 【0071】(1)プロトコル識別装置により実行可能
な指令からなるコンピュータプログラムを具現化して、
プロトコルデータ単位(100)内にデータ(120)
をカプセル化するのに用いたコンピュータネットワーク
プロトコル(105)を識別する方法ステップを実行す
る、プロトコル識別装置(215)によって読み取り可
能な記憶媒体であって、前記方法ステップは、データ
(120)と複数のカプセル化プロトコルパターン(1
05)を含むプロトコルデータ単位を受け取るステップ
と、前記プロトコルデータ単位を検索する少なくとも1
つのステージ(315)が残っている間に、 a)残りのステージ(315)のうちの1つを選択する
ことと、 b)前記プロトコルデータ単位を検索するための前記選
択されたステージのうち少なくとも1つの検索パターン
(305)が残っている間に、 b1)残りの検索パターン(305)のうちの1つを選
択することと、 b2)選択された検索パターンを捜して前記プロトコル
データ単位を検索することを繰り返し実行すること、の
a)及びb)を繰り返し実行するステップと、を含む記
憶媒体。 【0072】(2)前記方法ステップは、少なくとも1
つのステージ(315)が残っている間の繰り返しルー
プの前に、 c)予め定めた検索パターン(305)のグループのう
ち少なくとも1つについてグループ指標(570)を割
り当てるステップであって、前記グループは少なくとも
1つの予め選択された検索パターンを含む少なくとも1
つのサブセットを含み、前記予め選択された検索パター
ンはデータ(120)をカプセル化するのに用いる予め
選択された少なくとも1つのネットワークプロトコル
(105)を識別する、ステップと、 d)前記グループ指標を初期化し、少なくとも1つのサ
ブセットがプロトコルデータ単位内の予想された位置に
存在することを指定するステップと、をさらに含み、プ
ロトコルデータ単位を検索するための前記選択されたス
テージの少なくとも1つの検索パターンが残っている間
の繰り返しループの後に、前記選択されたステージにつ
いてのグループの各サブセットに関連する全ての検索パ
ターンがプロトコルデータ単位の予想された位置に存在
しない場合、そのグループの全サブセットがプロトコル
データ単位に存在しないことを指定するように、前記グ
ループ指標を設定するステップをさらに含む、上記(1)
に記載の記憶媒体。 【0073】(3)前記選択された検索パターンを捜し
てプロトコルデータ単位を検索するステップに続いて、
前記方法ステップは、少なくとも1つのステージが残っ
ている間の繰り返しループの後に、プロトコルデータ単
位内の予想された位置に少なくとも1つのサブセットが
存在する場合、そのプロトコルデータ単位をバッファ
(210)に配置するステップをさらに含む、上記(2)
に記載の記憶媒体。 【0074】(4)前記選択された検索パターンを捜し
てプロトコルデータ単位を検索するステップは、プロト
コルデータ単位を検索する選択されたステージの検索パ
ターンの少なくとも一部(325)が残っている間に、 e)選択された検索パターンの残っている未検索部分の
うちの1つを選択するステップと、 f)選択された検索パターンの選択部分を捜してプロト
コルデータ単位を検索するステップと、を繰り返し実行
することをさらに含む、上記(1)に記載の記憶媒体。 【0075】(5)前記方法ステップは、前記選択され
た検索パターンの選択部分を捜してプロトコルデータ単
位を検索するステップが前記プロトコルデータ単位内の
選択部分を見つけられなかった場合、 g)プロトコルデータ単位を検索する前記選択されたス
テージの検索パターンの少なくとも一部が残っている間
の繰り返しループを抜け出すステップと、 h)プロトコルデータ単位を検索する前記選択されたス
テージの少なくとも1つの検索パターンが残っている間
の繰り返しループを抜け出すステップと、をさらに含
む、上記(4)に記載の記憶媒体。 【0076】(6)前記残っている検索パターンの1つ
を選択するステップに続いて、前記方法ステップは、プ
ロトコルデータ単位を検索する前記選択されたステージ
の少なくとも1つの他の検索パターンが残っている場
合、 i)前記他の残っている検索パターンのうち少なくとも
1つを選択するステップと、 j)前記選択された検索パターンを捜してプロトコルデ
ータ単位を検索するステップと並行して、前記他の選択
された検索パターンを捜してプロトコルデータ単位を検
索するステップと、をさらに含む、上記(1)に記載の記
憶媒体。 【0077】(7)前記選択された検索パターンを捜し
てプロトコルデータ単位を検索するステップと並行し
て、前記他の選択された検索パターンを捜してプロトコ
ルデータ単位を検索するステップは、プロトコルデータ
単位を検索する選択されたステージの選択された検索パ
ターンの少なくとも一部と、プロトコルデータ単位を検
索する選択されたステージの他の選択された検索パター
ンの少なくとも一部とが残っている間に、 k)前記選択された検索パターンの残っている未検索部
分の1つを選択するステップと、 l)前記他の選択された検索パターンの残っている未検
索部分の1つを選択するステップと、 m)選択された検索パターンの選択部分を捜してプロト
コルデータ単位を検索するステップと、 n)前記選択された検索パターンの選択部分を捜してプ
ロトコルデータ単位を検索するステップと並行して、前
記他の選択された検索パターンの選択部分を捜してプロ
トコルデータ単位を検索するステップと、をさらに含
み、あるいは、プロトコルデータ単位を検索する選択さ
れたステージの選択された検索パターンの少なくとも一
部が残っている間に、 o)前記選択された検索パターンの残っている未検索部
分の1つを選択するステップと、 p)選択された検索パターンの選択部分を捜してプロト
コルデータ単位を検索するステップと、を繰り返し実行
することをさらに含み、あるいは、プロトコルデータ単
位を検索する選択されたステージの他の選択された検索
パターンの少なくとも一部が残っている間に、 q)前記他の選択された検索パターンの残っている未検
索部分の1つを選択するステップと、 r)前記他の選択された検索パターンの選択部分を捜し
てプロトコルデータ単位を検索するステップと、を繰り
返し実行することをさらに含む、上記(6)に記載の記憶
媒体。 【0078】(8)前記方法ステップは、前記選択され
た検索パターンの選択部分を捜してプロトコルデータ単
位を検索するステップが、プロトコルデータ単位内に選
択された検索パターンの選択部分を見つけられなかった
場合、及び、前記他の選択された検索パターンの選択部
分を捜してプロトコルデータ単位を検索する並行ステッ
プが、プロトコルデータ単位内に他の選択された検索パ
ターンの選択部分を見つけられなかった場合に、プロト
コルデータ単位を検索する選択されたステージの選択さ
れた検索パターンの少なくとも一部と、プロトコルデー
タ単位を検索する選択されたステージの他の選択された
検索パターンの少なくとも一部とが残っている間の繰り
返しループを抜け出すステップをさらに含み、あるい
は、選択された検索パターンの選択部分を捜してプロト
コルデータ単位を検索するステップが、プロトコルデー
タ単位内に選択された検索パターンの選択部分を見つけ
られなかった場合、プロトコルデータ単位を検索する選
択されたステージの選択された検索パターンの少なくと
も一部が残っている間の繰り返しループを抜け出すステ
ップをさらに含み、あるいは、他の選択された検索パタ
ーンの選択部分を捜してプロトコルデータ単位を検索す
るステップが、プロトコルデータ単位内に他の選択され
た検索パターンの選択部分を見つけられなかった場合、
プロトコルデータ単位を検索する選択されたステージの
他の選択された検索パターンの少なくとも一部が残って
いる間の繰り返しループを抜け出すステップをさらに含
む、上記(7)に記載の記憶媒体。 【0079】(9)プロトコルデータ単位内でデータ
(120)をカプセル化するのに用いるコンピュータネ
ットワークプロトコル(105)を識別する装置であっ
て、プロトコルデータ単位(100)を受け取ることが
でき、複数のステージ(315)のそれぞれについて、
データのカプセル化に用いるネットワークプロトコルの
1つを識別する少なくとも1つの検索パターン(30
5)を得ることができる、制御回路(500)と、前記
制御回路に接続され、該制御回路からプロトコルデータ
単位を受け取ることができるパターン比較器(530)
であって、前記制御回路は個々のステージを連続的に選
択することができ、該選択されたステージについて、前
記制御回路から選択されたステージの少なくとも1つの
検索パターンを受け取り、受け取った検索パターンを捜
してプロトコルデータ単位を別々に検索することができ
るパターン比較器と、を備える装置。 【0080】(10)前記パターン比較器に接続され、
前記選択されたステージの検索から結果を蓄積すること
ができる第1の蓄積器(550)をさらに備える、上記
(9)に記載の装置。 【0081】本発明を好適な実施形態に関して詳しく説
明したが、説明した実施形態は一例として示したもので
あり、限定として示したものではない。当業者は、上記
実施形態に様々な変形を加えて、特許請求の範囲内に含
まれる等価な実施形態とすることができることを理解す
るであろう。
【図面の簡単な説明】 【図1】本発明の様々な代表的な実施形態で説明するプ
ロトコルデータ単位の図である。 【図2】本発明の様々な代表的な実施形態で説明するプ
ロトコルデータ単位捕捉の図である。 【図3】本発明の様々な代表的な実施形態で説明する第
1のリストの図である。 【図4】本発明の様々な代表的な実施形態で説明する第
1のリストのエントリの図である。 【図5】本発明の様々な代表的な実施形態で説明する第
1のリストのエントリの他の図である。 【図6】本発明の様々な代表的な実施形態で説明するプ
ロトコルデータ単位の識別方法のフローチャートであ
る。 【図7】本発明の様々な代表的な実施形態で説明するプ
ロトコルデータ単位識別用のプロトコル識別装置の図で
ある。 【符号の説明】 100 プロトコルデータ単位 105 プロトコルパターン 120 データ 205 受信バス 210 捕捉バッファ 215 プロトコル識別装置 300 検索パターンリスト 305 検索パターン 310 検索パターンインデックス 315 ステージ 320 エントリ 325 選択部分 500 制御回路 510 検索パターン兼グループ一致リスト 530 パターン比較器 550 ステージ結果蓄積器 560 マッピング回路 570 グループ指標 580 結果報告回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェリー・デイヴィッド・モリス アメリカ合衆国80904コロラド州コロラ ド・スプリングス、クラウン・リッジ・ド ライブ 818 (72)発明者 ヴォン・ブラック アメリカ合衆国80920コロラド州コロラ ド・スプリングス、モスミル・コート 10010 Fターム(参考) 5K034 AA13 EE10 JJ24

Claims (1)

  1. 【特許請求の範囲】 【請求項1】プロトコル識別装置により実行可能な指令
    からなるコンピュータプログラムを具現化して、プロト
    コルデータ単位内にデータをカプセル化するのに用いた
    コンピュータネットワークプロトコルを識別する方法ス
    テップを実行する、プロトコル識別装置によって読み取
    り可能な記憶媒体であって、 前記方法ステップは、 データと複数のカプセル化プロトコルパターンを含むプ
    ロトコルデータ単位を受け取るステップと、 前記プロトコルデータ単位を検索する少なくとも1つの
    ステージが残っている間に、 a)残りのステージのうちの1つを選択することと、 b)前記プロトコルデータ単位を検索するための前記選
    択されたステージのうち少なくとも1つの検索パターン
    が残っている間に、 b1)残りの検索パターンのうちの1つを選択すること
    と、 b2)選択された検索パターンを捜して前記プロトコル
    データ単位を検索することを繰り返し実行すること、 のa)及びb)を繰り返し実行するステップと、 を含む記憶媒体。
JP2002221254A 2001-07-31 2002-07-30 プロトコルデータ単位内のプロトコルパターンの識別装置及び方法 Expired - Lifetime JP4059388B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/919,297 2001-07-31
US09/919,297 US6895020B2 (en) 2001-07-31 2001-07-31 Method and apparatus for protocol pattern identification in protocol data units

Publications (3)

Publication Number Publication Date
JP2003060727A true JP2003060727A (ja) 2003-02-28
JP2003060727A5 JP2003060727A5 (ja) 2005-10-20
JP4059388B2 JP4059388B2 (ja) 2008-03-12

Family

ID=25441847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002221254A Expired - Lifetime JP4059388B2 (ja) 2001-07-31 2002-07-30 プロトコルデータ単位内のプロトコルパターンの識別装置及び方法

Country Status (4)

Country Link
US (1) US6895020B2 (ja)
EP (1) EP1284569A3 (ja)
JP (1) JP4059388B2 (ja)
CN (1) CN1400546A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018066228A1 (ja) * 2016-10-06 2018-04-12 日本電信電話株式会社 フロー情報解析装置、フロー情報解析方法及びフロー情報解析プログラム
JP2019097069A (ja) * 2017-11-24 2019-06-20 日本電信電話株式会社 フォーマット変換装置及びフォーマット変換プログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7970962B2 (en) * 2002-03-15 2011-06-28 Broadcom Corporation Method and apparatus utilizing a tail bus to solve back-to-back data burst problems
US8260906B1 (en) * 2002-07-26 2012-09-04 Mcafee, Inc. System and method for heuristic determination of network protocols
US7782784B2 (en) * 2003-01-10 2010-08-24 Cisco Technology, Inc. Port analyzer adapter
US7899048B1 (en) 2003-01-15 2011-03-01 Cisco Technology, Inc. Method and apparatus for remotely monitoring network traffic through a generic network
US8165136B1 (en) 2003-09-03 2012-04-24 Cisco Technology, Inc. Virtual port based SPAN
US7474666B2 (en) 2003-09-03 2009-01-06 Cisco Technology, Inc. Switch port analyzers
US7525974B2 (en) * 2003-11-10 2009-04-28 Nortel Networks Limited Method and apparatus for capability based addressing in a communications network
US7548562B2 (en) * 2004-12-14 2009-06-16 Agilent Technologies, Inc. High speed acquisition system that allows capture from a packet network and streams the data to a storage medium
US8023409B2 (en) * 2005-12-20 2011-09-20 Broadcom Corporation Method and system for reconfigurable pattern filtering engine
US7668270B2 (en) * 2005-12-20 2010-02-23 Broadcom Corporation Method and system for programmable filtering offset
CN100429617C (zh) * 2006-05-16 2008-10-29 北京启明星辰信息技术有限公司 一种自动协议识别方法及系统
GB2443005A (en) * 2006-07-19 2008-04-23 Chronicle Solutions Analysing network traffic by decoding a wide variety of protocols (or object types) of each packet
US10756857B2 (en) 2013-01-25 2020-08-25 Infineon Technologies Ag Method, apparatus and computer program for digital transmission of messages
US10903865B2 (en) * 2013-01-25 2021-01-26 Infineon Technologies Ag Signal interface and a signal processing system
CN103327010A (zh) * 2013-05-27 2013-09-25 云南电力试验研究院(集团)有限公司电力研究院 一种新型的模糊模式识别的电力规约聚类分析方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0160668B1 (ko) * 1994-12-30 1999-01-15 김광호 영상압축 비트스트림의 스타트코드 검출장치
US5727036A (en) * 1995-11-22 1998-03-10 Mitsubishi Semiconductor America, Inc. High bit rate start code searching and detecting circuit and method
US5850388A (en) * 1996-08-02 1998-12-15 Wandel & Goltermann Technologies, Inc. Protocol analyzer for monitoring digital transmission networks
US6463477B1 (en) * 1996-09-27 2002-10-08 Mci Communications Corporation Detection of presence of multiprotocol encapsulation in a data packet
US6654389B1 (en) * 1999-11-23 2003-11-25 International Business Machines Corporation System and method for searching patterns in real-time over a shared media

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018066228A1 (ja) * 2016-10-06 2018-04-12 日本電信電話株式会社 フロー情報解析装置、フロー情報解析方法及びフロー情報解析プログラム
JPWO2018066228A1 (ja) * 2016-10-06 2019-01-31 日本電信電話株式会社 フロー情報解析装置、フロー情報解析方法及びフロー情報解析プログラム
US10735564B2 (en) 2016-10-06 2020-08-04 Nippon Telegraph And Telephone Corporation Flow information analysis apparatus, flow information analysis method, and flow information analysis program
JP2019097069A (ja) * 2017-11-24 2019-06-20 日本電信電話株式会社 フォーマット変換装置及びフォーマット変換プログラム

Also Published As

Publication number Publication date
EP1284569A2 (en) 2003-02-19
US20030026251A1 (en) 2003-02-06
EP1284569A3 (en) 2007-05-09
JP4059388B2 (ja) 2008-03-12
CN1400546A (zh) 2003-03-05
US6895020B2 (en) 2005-05-17

Similar Documents

Publication Publication Date Title
JP2003060727A (ja) プロトコルデータ単位内のプロトコルパターンの識別装置及び方法
US7787442B2 (en) Communication statistic information collection apparatus
US7561569B2 (en) Packet flow monitoring tool and method
DE60222575T2 (de) Verfahren zur Generierung eines DFA-Automaten, wobei Übergänge zwecks Speichereinsparung in Klassen gruppiert werden
CN113612749B (zh) 一种面向入侵行为的溯源数据聚类方法及装置
CN1482548A (zh) 对多重搜索实行的过滤器规则进行划分的方法和系统
TW200415878A (en) A method and apparatus for deep packet processing
JP5956049B2 (ja) ストリーミングネットフローデータ解析方法及び装置
CN107295425A (zh) 一种快速拼接转码分片文件的方法
CN106708956B (zh) 一种基于多url规则集的http数据匹配方法
CN112468365A (zh) 用于网络镜像流量的数据质量检测方法、系统及介质
CN101110778A (zh) 一种利用默认路由压缩路由转发表的方法
CN109921995A (zh) 一种配置地址表的方法、fpga和应用该fpga的网络设备
CN113139100A (zh) 一种网络流量实时索引方法及系统
JP2003060727A5 (ja)
CN112486914A (zh) 一种数据包存储与快查方法与系统
CN115858462A (zh) 一种网络流量检索方法、装置、设备及存储介质
CN101650718A (zh) 字符串匹配方法和装置
JP2015095785A (ja) パケット保存方法、パケット保存プログラム及びパケット保存装置
CN115190056B (zh) 一种可编排的流量协议识别与解析方法、装置及设备
KR101200773B1 (ko) 하둡 맵리듀스에서 네트워크 패킷 분석을 위한 입력포맷 추출방법
CN107870925B (zh) 一种字符串过滤方法和相关装置
CN110098977B (zh) 网络数据包按序存储方法、计算机设备和存储介质
KR101470590B1 (ko) 플러그인 다중 패턴매칭 장치 및 그 방법
CN106980653B (zh) Dfa压缩方法及装置、正则表达式匹配方法及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070510

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070515

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070821

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071213

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4059388

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111228

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121228

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121228

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131228

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term