(57)【特許請求の範囲】
【請求項１】
優先的マッチングを実施する装置であって、
該装置は、
マイクロコード制御された第１の状態機械およびマイクロコード制御された第２の状態機械を含むマイクロコード制御された複数の状態機械と、
入力データを該マイクロコード制御された複数の状態機械に経路指定する分配回路であって、その結果、該マイクロコード制御された複数の状態機械が、規則を該入力データに適用して複数のマッチングを決定し、優先順位指標を生成し、各マッチングは、関連優先順位指標を有する、分配回路と、
第１の回路と
を備え、該マッチングのうちの少なくとも１つは、該優先順位指標に基づいて選択され、
該マイクロコード制御された第１の状態機械は、第１の規則を該入力データに適用し、該第１の規則は、第１のデータカテゴリに関連付けられており、該マイクロコード制御された第２の状態機械は、第２の規則を該入力データに適用し、該第２の規則は、該第１のデータカテゴリとは異なる第２のデータカテゴリに関連付けられており、
該マイクロコード制御された第１の状態機械は、該第１のデータカテゴリに関連付けられた第１のカテゴリマッチング指標と、該第２のデータカテゴリに関連付けられた第２のカテゴリマッチング指標とを含む第１のカテゴリマッチング指標ベクトルを決定し、該第１のカテゴリマッチング指標は、該第１の規則の適用に基づいて、該入力データが該第１のデータカテゴリ内である場合を示し、
該マイクロコード制御された第２の状態機械は、該第１のデータカテゴリに関連付けられた第３のカテゴリマッチング指標と、該第２のデータカテゴリに関連付けられた第４のカテゴリマッチング指標とを含む第２のカテゴリマッチング指標ベクトルを決定し、該第４のカテゴリマッチング指標は、該第２の規則の適用に基づいて、該入力データが該第２のデータカテゴリ内である場合を示し、
該第１の回路は、組み合わせされたカテゴリマッチング情報を生成し、該組み合わせされたカテゴリマッチング情報は、該第１のカテゴリマッチング指標および該第３のカテゴリマッチング指標の第１の論理的な組み合わせと、該第２のカテゴリマッチング指標および該第４のカテゴリマッチング指標の第２の論理的な組み合わせとを含み、該第１の回路は、該組み合わせされたカテゴリマッチング情報を該入力データに付加する、装置。
【請求項２】
前記優先順位指標に基づいて前記マッチングのうちの少なくとも１つを選択する回路をさらに備え、前記回路は、少なくとも最優先マッチングに基づいて前記入力データの経路指定命令を生成する、請求項１に記載の装置。
【請求項３】
前記回路は、前記複数のマッチングの前記優先順位指標のうちの少なくとも１つを前記入力データに付加する、請求項２に記載の装置。
【請求項４】
前記マイクロコード制御された状態機械は、前記優先順位指標に基づいて前記マッチングのうちの少なくとも１つを選択するように、規則を適用し、最優先マッチングを含む複数のマッチングに基づいて前記入力データの経路指定命令を生成する回路をさらに備える、請求項１に記載の装置。
【請求項５】
マイクロコード制御されたそれぞれの状態機械により生成された各優先順位指標は、マイクロコード制御されたそれぞれの状態機械のメモリ内のブロックの位置を特定するブロックインデックスを含み、該ブロックは、該マッチングの優先順位情報を記憶し、
最優先マッチングの前記優先順位指標は、最下ブロックインデックスを含む、請求項１に記載の装置。
【請求項６】
各優先順位指標は、少なくとも１つのカテゴリマッチング指標を含み、組み合わせられたカテゴリマッチング情報を生成するように、前記優先順位指標から抽出された各カテゴリマッチング指標を組み合わせる回路をさらに備える、請求項１に記載の装置。
【請求項７】
各カテゴリマッチング指標は、パケット種類またはパケットフローと関連付けられる、請求項６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への参照
本願は、２００９年７月９日に出願した米国特許出願第１２／５００，４９３号（名称「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｅｎｈａｎｃｉｎｇ  Ｆｏｒｗａｒｄｉｎｇ  ａｎｄ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｏｆ  Ｎｅｔｗｏｒｋ  Ｔｒａｆｆｉｃ  ｗｉｔｈ  Ｐｒｉｏｒｉｔｉｚｅｄ  Ｍａｔｃｈｉｎｇ  ａｎｄ  Ｃａｔｅｇｏｒｉｚａｔｉｏｎ」）、および、２００９年７月９日に出願した米国特許出願第  １２／５００，５１９号（名称「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ＣＡＴＥＧＯＲＩＺＩＮＧ  Ａｓｓｏｃｉａｔｉｎｇ  Ｃａｔｅｇｏｒｉｚａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  ｗｉｔｈ  Ｎｅｔｗｏｒｋ  Ｔｒａｆｆｉｃ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｉｎｇ」）、および、２００９年７月９日に出願した米国特許出願第１２／５００，５２７号（名称「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｂｉａｓｅｄ  ａｎｄ  Ｗｅｉｇｈｔｅｄ  Ｓａｍｐｌｉｎｇ  ｏｆ  Ｎｅｔｗｏｒｋ  Ｔｒａｆｆｉｃ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｎｅｔｗｏｒｋ  Ｍｏｎｉｔｏｒｉｎｇ」）の利益を主張し、これらの出願の各々は、２００６年７月７日出願の米国特許出願第１１／４８３，１９６号の一部継続出願であり、米国特許出願第１１／４８３，１９６号は、２００５年８月１９日出願の米国特許出願第１１／２０８，０２２号の一部継続出願である。上記の米国出願の内容は、本明細書において参照により援用される。
【０００２】
本発明は、概して、ネットワークセキュリティおよびネットワーク監視アプリケーションを促進する、コンピュータネットワークトラフィックの処理に関する。より具体的には、本発明は、最適化された、費用効率が高く、かつ柔軟なネットワークセキュリティおよびネットワークトラフィック監視機能の促進に関する。
【背景技術】
【０００３】
生産性を向上するため、および通信を促進するためのコンピュータネットワークの広範囲な使用では、ネットワークセキュリティおよびネットワークトラフィック監視が決定的に重要な懸念となる。個別のホストまたはローカルエリアネットワーク（ＬＡＮ）および広域ネットワーク（ＷＡＮ）インフラストラクチャの両方を標的とした攻撃は、次第に高度化し、頻繁になってきている。顧客ＬＡＮからの無許可のトラフィックを除外するために、典型的に、境界ファイアウォールが使用される。ＬＡＮに進入し、個別のホストに感染している場合があるウイルスを排除するために、ウイルス対策（ＡＶ）ソフトウェアが使用される。これらの既存の予防策は、簡単かつ有用ではあるが、大手の組織に対する攻撃から数十億ドルの継続的損失を防止していない。
【０００４】
ファイアウォールおよびＡＶソフトウェアの両方は、ネットワークセキュリティを促進するための、限られた監視、検出、および対処能力を有する。ファイアウォールは、パケットヘッダに基づいて、既知の無許可のソースからのトラフィックを除去する。ファイアウォールは典型的に、ネットワーク挙動もしくは性能の変化に基づいて、またはパケットコンテンツ内の深くに隠されたシグネチャに基づいて、潜在的攻撃を診断するように、あるいはそれに対処するように設計されていない。また、ファイアウォールは典型的に、ソースならびに宛先アドレスおよびポート等の特定のヘッダフィールドを伴う全てのトラフィックのフィルタリングを超えてどのように対処するかにおける柔軟性を提供しない。ファイアウォールは通常、ＬＡＮ境界にのみ配置され、したがって、ＬＡＮ内部での攻撃の伝播を防止しない。
【０００５】
ＡＶソフトウェアは、主にホスト上で実行される。そのようなソフトウェアは、既知のウイルスのデジタルシグネチャを認識するが、典型的に、新しいウイルスを検出することができず、また、高速ネットワークトラフィックの監視にも適していない。本質的に、ＡＶソフトウェアは、ＡＶソフトウェアが特定のホスト上にあるため、ネットワークトラフィックの限られた認知性を有する。
【０００６】
新しい種類の攻撃の検出を可能にするのに十分な監視能力を伴い、攻撃によってもたらされる脅威に相応する対処オプションを伴う、装置を提供することは、非常に望ましいであろう。
【０００７】
この高度な機能セットを伴う装置のアーキテクチャは、望ましくは、種々の障害を克服するべきである。侵入検出システム（ＩＤＳ）等の現在の高度なセキュリティシステムは典型的に、中央計算処理装置（ＣＰＵ）、メモリ、オペレーティングシステム、および周辺機器を含む、既製のコンピュータシステムコンポーネントに依存する。ネットワークプロセッサ（ＮＰ）および連想メモリ（ｃｏｎｔｅｎｔ  ａｄｄｒｅｓｓａｂｌｅ  ｍｅｍｏｒｙ：ＣＡＭ）等の追加のコプロセッサは、高速での強化された監視および検出能力を提供するが、但し、相当な追加費用である。この用途向けにカスタマイズされていないハードウェアアーキテクチャは多くの場合、入力トラフィックパターンの動的変動に依存する、非決定性の性能を有し、ハードウェア資源の使用を非効率的にし、有効性確認を困難にする。性能を保証する能力のなさは、多くの場合、トラフィックがリアルタイム特性（例えば、対話型音声およびメディアアプリケーション）を有する、高速ネットワークに配置する際の障壁である。高帯域および／または低遅延ネットワークをサポートするため、およびめったに発生しない厄介な場合のトラフィックシナリオでの許容不可能なネットワーク性能劣化を回避するために、メモリ階層、キャッシュ、または複雑な問い合わせ構造等の追加の複雑性が要求される。柔軟性のなさは、最適化されていない命令セット等の使用されるコンポーネントに固有の制限、または望ましいビルディングブロック機能を利用できないことに起因する場合がある。顧客ＬＡＮ性能の重要性を考慮すると、ネットワークセキュリティトラフィック監視の促進に必要とされる高度な機能を伴う、低費用、高速、強固、かつ柔軟な装置を提供することが望ましいであろう。そのような装置は、ネットワークセキュリティおよびネットワークトラフィック監視における、初期には防止されていなかったネットワークに対する攻撃に対する、より迅速な対処、およびそのより強化された抑制に向けたパラダイムシフトを可能にし得る。
【発明の概要】
【課題を解決するための手段】
【０００８】
本発明の一側面は、規定された規則および方針に従うネットワークトラフィックの処理を通して優先的マッチングを実施する、装置に関する。装置の一実施形態は、マイクロコード制御された複数の状態機械と、マイクロコード制御された複数の状態機械が、規則を入力データに適用して、マッチングを決定し、優先順位指標を生成するように、入力データをマイクロコード制御された複数の状態機械に経路指定する分配回路とを含み、各マッチングは、関連優先順位指標を有する。マッチングのうちの少なくとも１つは、優先順位指標に基づいて選択される。
【０００９】
本発明の別の側面は、規定された規則および方針に従うネットワークトラフィックの処理を通してアプリケーションレベル処理を促進するように、カテゴリ化情報をネットワークトラフィックと関連付ける、装置に関する。装置の一実施形態は、ハッシュ識別子を生成するように、ハッシュ関数を使用して、少なくとも１つの入力データフィールドを処理する、第１の回路と、マイクロコード制御された複数の状態機械と、少なくとも１つの個別のマイクロコード制御された状態機械が、規則を入力データに適用して、少なくとも１つの入力データフィールドを生成するように、およびハッシュ識別子に基づいて修正命令を生成するように、入力データをマイクロコード制御された複数の状態機械に経路指定する、分配回路とを含む。本実施形態はさらに、修正命令に基づいて修正された入力データを生成するように、ハッシュ識別子を入力データに付加し、出力経路指定法に従って、修正された入力データを経路指定する、第２の回路を含む。
【００１０】
本発明のさらなる側面は、ネットワーク監視を促進するために、ネットワークトラフィックのバイアスサンプリングおよび重み付けサンプリングを実施する、装置に関する。装置の一実施形態は、マイクロコード制御された複数の状態機械と、入力データをマイクロコード制御された複数の状態機械に経路指定する、分配回路とを含む。第１の個別のマイクロコード制御された状態機械は、第１の規則を入力データに適用して、第１の規則と関連付けられる第１のサンプリング情報に基づいて、入力データの第１のサブセットと関連付けられる第１の命令を決定する。第２の個別のマイクロコード制御された状態機械は、第２の規則を入力データに適用して、第２の規則と関連付けられる第２のサンプリング情報に基づいて、入力データの第２のサブセットと関連付けられる第２の命令を決定する。第２のサンプリング情報は、第１のサンプリング情報とは異なる。本実施形態はさらに、第１の命令に基づいて、入力データの第１のサブセットの第１の経路指定命令を生成し、第２の命令に基づいて、入力データの第２のサブセットの第２の経路指定命令を生成する、第１の回路を含む。本実施形態はさらに、第１の経路指定命令および第２の経路指定命令に基づいて、入力データを経路指定する、第２の回路を含む。
本明細書は、例えば、以下の項目も提供する。
（項目１）
優先的マッチングを実施する装置であって、
マイクロコード制御された複数の状態機械と、
入力データを該マイクロコード制御された複数の状態機械に経路指定する分配回路であって、その結果、該マイクロコード制御された複数の状態機械が、規則を入力データに適用して複数のマッチングを決定し、優先順位指標を生成し、各マッチングは、関連優先順位指標を有する、分配回路と
を備え、該マッチングのうちの少なくとも１つは、該優先順位指標に基づいて選択される、装置。
（項目２）
前記優先順位指標に基づいて前記マッチングのうちの少なくとも１つを選択する回路をさらに備え、前記回路は、少なくとも最優先マッチングに基づいて前記入力データの経路指定命令を生成する、項目１に記載の装置。
（項目３）
前記回路は、前記複数のマッチングの前記優先順位指標のうちの少なくとも１つを前記入力データに付加する、項目２に記載の装置。
（項目４）
前記マイクロコード制御された状態機械は、前記優先順位指標に基づいて前記マッチングのうちの少なくとも１つを選択するように、規則を適用し、前記最優先マッチングを含む複数のマッチングに基づいて前記入力データの経路指定命令を生成する回路をさらに備える、項目１に記載の装置。
（項目５）
各優先順位指標は、前記マッチングと関連付けられるブロックインデックスを含み、
前記最優先マッチングの前記優先順位指標は、最下ブロックインデックスを含む、項目１に記載の装置。
（項目６）
各優先順位指標は、少なくとも１つのカテゴリマッチング指標を含み、組み合わせられたカテゴリマッチング情報を生成するように、優先順位指標にわたる各カテゴリマッチング指標を組み合わせる回路をさらに備える、項目１に記載の装置。
（項目７）
各カテゴリマッチング指標は、パケット種類またはパケットフローと関連付けられる、項目６に記載の装置。
（項目８）
ネットワークトラフィックのアプリケーションレベル処理を促進する装置であって、
ハッシュ識別子を生成するために、ハッシュ関数を使用して、少なくとも１つの入力データフィールドを処理する、第１の回路と、
マイクロコード制御された複数の状態機械と、
少なくとも１つの個別のマイクロコード制御された状態機械が、規則を入力データに適用して、該少なくとも１つの入力データフィールドを生成するように、および該ハッシュ識別子に基づいて修正命令を生成するように、該入力データを該マイクロコード制御された複数の状態機械に経路指定する、分配回路と、
該修正命令に基づいて修正された入力データを生成するように、該ハッシュ識別子を該入力データに付加し、出力経路指定法に従って、該修正された入力データを経路指定する、第２の回路と
を備える、装置。
（項目９）
前記第１の回路は、前記マイクロコード制御された複数の状態機械のうちの少なくとも１つに含まれる、項目８に記載の装置。
（項目１０）
前記第２の回路は、前記修正された入力データをリダイレクトする、または複製することによって、前記修正された入力データを経路指定する、項目８に記載の装置。
（項目１１）
管理ポートをさらに備え、
該管理ポートは、前記第２の回路から前記修正された入力データを受信し、
該第２の回路は、前記修正命令に基づいて修正された入力データを生成するように、前記ハッシュ識別子を前記入力データに付加し、該修正された入力データを該管理ポートに提供する、出力回路を含む、項目８に記載の装置。
（項目１２）
前記入力データは、ヘッダと、ペイロードとを備える、パケットを含み、前記少なくとも１つの入力データフィールドは、該ヘッダの少なくとも１つのフィールドを含み、
前記ハッシュ識別子は、該パケットの該ヘッダに付加される、項目８に記載の装置。
（項目１３）
前記ハッシュ識別子は、パケット種類またはパケットフローと関連付けられる、項目１２に記載の装置。
（項目１４）
ネットワーク監視を促進する装置であって、
マイクロコード制御された複数の状態機械と、
分配回路であって、
第１の個別のマイクロコード制御された状態機械が、第１の規則を入力データに適用して、第１の規則と関連付けられる第１のサンプリング情報に基づいて、該入力データの第１のサブセットと関連付けられる第１の命令を決定するように、および
第２の個別のマイクロコード制御された状態機械が、第２の規則を該入力データに適用して、第２の規則と関連付けられる第２のサンプリング情報に基づいて、該入力データの第２のサブセットと関連付けられる第２の命令を決定するように、該入力データを該マイクロコード制御された複数の状態機械に経路指定する、分配回路であって、該第２のサンプリング情報は、該第１のサンプリング情報とは異なる、分配回路と、
該第１の命令に基づいて、該入力データの該第１のサブセットの第１の経路指定命令を生成し、該第２の命令に基づいて、該入力データの該第２のサブセットの第２の経路指定命令を生成する、第１の回路と、
該第１の経路指定命令および該第２の経路指定命令に基づいて、該入力データを経路指定する、第２の回路と
を備える、装置。
（項目１５）
前記第１のサンプリング情報は、第１のサンプリング頻度を含み、
前記第２のサンプリング情報は、第２のサンプリング頻度を含む、項目１４に記載の装置。
（項目１６）
前記第１のサンプリング頻度および前記第２のサンプリング頻度はそれぞれ、パケット種類またはパケットフローと関連付けられる、項目１５に記載の装置。
（項目１７）
前記第１のサンプリング頻度および前記第２のサンプリング頻度は、前記管理ポートを介して設定可能である、項目１５に記載の装置。
（項目１８）
前記第１の経路指定命令および前記第２の経路指定命令は、前記入力データをリダイレクトする、または複製する命令を含む、項目１５に記載の装置。
（項目１９）
前記第２の回路は、前記入力データを前記管理ポートに提供する、項目１８に記載の装置。
（項目２０）
前記第１の回路は、集約回路であり、前記第２の回路は、出力回路である、項目１９に記載の装置。
【００１１】
本発明の実施形態は、柔軟かつ高度なネットワークセキュリティおよび監視機能ならびにネットワークトラフィック分析の低費用、高速、かつ強固な実装によく適したアーキテクチャフレームワークを提供する。本発明の他の側面および実施形態もまた熟考される。前述の概要および以下の詳細な説明は、本発明をいずれかの特定の実施形態に制限することを意図されず、単に、本発明のいくつかの実施形態を説明することを意図される。
【００１２】
本発明の本質および目的のより良い理解のために、添付の図面と併せて、以下の詳細な説明が参照され、図面は、以下の通りである。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態を配備することができる、それぞれの位置を伴う、ネットワークを図示する。
【図２】図２は、本発明の実施形態のアーキテクチャの論理ブロック図を図示する。
【図３】図３は、図２のアーキテクチャの双方向アプリケーションへの使用を図示する。
【図４】図４は、図２に示される分配回路の内部アーキテクチャを図示する。
【図５】図５は、マイクロコード制御された状態機械に基づく、図２に示される規則エンジンの内部アーキテクチャを図示する。
【図６】図６は、比較規則を実装するためのマイクロコード命令の実行順序の実施例を図示する。
【図７】図７は、図５に示される条件論理の内部アーキテクチャの実施例を図示する。
【図８】図８は、粒度の細かいトラフィック修正およびミラーリングをサポートする、本発明の実施形態のアーキテクチャの論理ブロック図を図示する。
【図９】図９は、上位層情報が条件とされる規則に基づいて処理を実施する、物理層インターフェースの機能図を図示する。
【図１０】図１０は、アプリケーションレベル処理を促進するように、優先的マッチング、ネットワークトラフィックのバイアスサンプリング、およびネットワークトラフィックのカテゴリ化をサポートする、本発明の実施形態のアーキテクチャの論理ブロック図を図示する。
【図１１】図１１は、本発明の一実施形態に係る、４つの入力優先順位指標の中から最優先マッチングの優先順位指標を選択するための四重論理の論理ブロック図を図示する。
【図１２】図１２は、本発明の一実施形態に係る、各段階が図１１の四重論理を含む、多段論理の論理ブロック図を図示する。
【図１３】図１３は、カテゴリマッチング指標ベクトルから取得される、組み合わせられたカテゴリマッチング情報の例を図示する。
【図１４】図１４は、本発明の一実施形態に係る、規則エンジンとそれらの関連ハッシュモジュールとの間のインターフェースの論理ブロック図を図示する。
【発明を実施するための形態】
【００１４】
図１は、本発明の実施形態を配備することができる、それぞれの位置を伴う、ネットワークを図示する。主企業ネットワーク１１０は、ファイアウォール１０６によって、インターネット１１１から分離される。遠隔オフィス１０８は、ファイアウォール１０４によって、インターネットから分離される。ネットワーク１１０および遠隔オフィス１０８は、仮想プライベートネットワーク（ＶＰＮ）クライアントソフトウェア等、当該技術分野において既知の種々の技術によって接続することができる。ネットワーク１１０の区分化は、外部ユーザが、ファイアウォール１０６のトラバーサルを伴わずに、ウェブサーバ１１２およびメールサーバ１１６にアクセスすることを可能にし、無許可の外部ユーザがネットワーク１１０の残りの部分にアクセスするのを防止する。ファイアウォール１０６によって保護されるネットワーク１１０の部分は、クライアント機械（ユーザ）１２０、１２２、および１２４、汎用サーバ１２６、ウェブサーバ１１４、およびメールサーバ１１８を含む。
【００１５】
ファイアウォール１０４および１０６は、無許可のユーザによる攻撃を阻止することを目的とする。しかしながら、アタッカ１００によって表される種々の種類の攻撃は、ファイアウォール１０６に侵入することができる。いったんファイアウォール１０６が破られると、感染は、ネットワーク１１０全体に自由に広がる。加えて、アタッカ１０２によるネットワーク１１０へのアクセスは、アタッカ１０２によって越えられる、モデム１３０を介して等、ファイアウォール１０６を越えない、ネットワーク１１０への任意の保護されていない経路によって、さらに促進される。
【００１６】
ネットワーク１１０の一部分の感染がネットワーク１１０の他の部分に広がるのを防止するために、ネットワーク１１０のファイアウォール境界内に配置される装置が必要とされる。図１は、１４０Ａ、１４０Ｂ、１４０Ｃ、１４０Ｄ、および１４０Ｅにある、装置１４０のそれぞれの位置を示す。装置１４０Ａは、ウェブサーバ１１４およびメールサーバ１１８を、ネットワーク１１０の残りの部分から分離する。装置１４０Ｂ、１４０Ｃ、および１４０Ｄは、ユーザ１２０、１２２、および１２４をそれぞれ、ネットワーク１１０の残りの部分から分離する。装置１４０Ｅは、サーバ１２６をネットワーク１１０の残りの部分から分離する。モデム１３０を介したネットワーク１１０へのアクセスを可能にする必要がある場合、アタッカ１０２がユーザ１２２を越えてネットワーク１１０の部分にアクセスするのを防止するために、装置１４０Ｃが使用される。
【００１７】
攻撃を防止または制限するのを助長するために、本発明の実施形態は、ファイアウォールまたはＡＶソフトウェアによって認識されない新しい種類の攻撃にさらすのに十分に包括的であり得る、ネットワーク監視を可能にすることが熟考される。効果的な監視には、ネットワーク挙動分析を可能にするために、広範囲に及ぶネットワーク統計データの収集が必要とされる。統計データの収集は、その時の全ての収集された統計データのスナップショットコピー、またはネットワーク状態および挙動の明瞭な表示を提供する、複数の装置からの情報の集約ならびに相関によって、補完され得る。本発明の実施形態は、監視のみを通して、ネットワークセキュリティを促進し得る。
【００１８】
加えて、悪意のあるコードがネットワークの脆弱な部分に到達するのを防止するために、規則によって装置をプロビジョニングすることによって、攻撃を積極的に防止することができる。規則とは、ネットワークセキュリティの潜在的侵害に対処しなければならないか否かを決定するために、装置によって使用される、特定の基準である。規則の１つの種類は、シグネチャに基づくものである。シグネチャとは、ウイルスまたは他の悪意のあるトラフィックの存在を示す、トラフィックのデジタルコンテンツ内のどこかのビットのシーケンスである。ビットのシーケンスは、完全に不変であってもよく、または規則評価に不要のワイルドカードである部分を含んでもよい。シグネチャは、個別のネットワークパケットのヘッダまたはペイロードに現れる、またはパケットのシーケンスにわたって現れる可能性がある。シグネチャは、１つ以上のパケットヘッダおよび対応するペイロードにわたる場合があり、したがって、綿密なパケット検査が要求される。パケットのシーケンスにわたるシグネチャを発見するために、ストリーム検査が要求される。種々の種類のネットワークトラフィックの全体的な可視性のために、両方の種類の検査が要求される。
【００１９】
第２の種類の規則は、挙動である。２つの種類の挙動規則は、ローカルベースおよびネットワークベースの挙動規則である。ローカル挙動規則は、装置１４０で、ローカルで測定することができる変化を検出するために使用することができることが熟考される。これらの変化には、装置１４０を通過する、トラフィック量、または要求と応答等のインバウンドトラフィックとアウトバンドトラフィックのバランスの変化が挙げられるが、これらに限定されない。ネットワークベースの挙動規則は、装置１４０を含むが、これに限定されない、他のネットワークデバイスと連動して測定することができる、ネットワークにおける変化を検出するために使用することができる。そのような規則の例は、最大閾値と比較した、特定の期間中のネットワーク内の複数の点にわたって平均した総トラフィック量である。別の例は、この場合も同様に、最大閾値と比較した、特定の期間中にネットワークにわたって発生した、ネットワークエラー表示等の特定の種類の事象の総数である。規則評価に必要とされる、収集された統計データの監視は、新しい種類の攻撃を、そのシグネチャが未知である時にさえ、ネットワーク性能または挙動に対する、その影響に基づいて検出することができるため、重要である。
【００２０】
第３の種類の規則は、シグネチャベースおよび挙動の両方である。そのような規則の例は、最大および／または最小閾値と比較した、その日の特定の期間中に装置１４０を通過した、特定のシグネチャを含むパケットの総数である。
【００２１】
攻撃が検出された後、本発明の実施形態は、ファイアウォールによって行われ得るような、既知のシグネチャを伴うパケットを単にフィルタリングする、またはドロップすることを超える、様々な対処を可能にする。例えば、トラフィックの複製またはトラフィックの他のトラフィックとは異なる物理的経路へのリダイレクトは、不審なトラフィックを即座にドロップすることなく、そのようなトラフィックの綿密な調査または検疫を可能にする。さらに、単位時間当たりの特定のトラフィック種類または事象の発生率を制限することは、攻撃下のネットワークの部分に到達するパケットまたは要求の数を制限することによって、サービス拒否等の攻撃から保護することができる。マルチレベル方針を用いて、通常の状況下での最良の見込まれるネットワーク性能をサポートすることができる。これらの方針は、規則およびそれらの依存性を組み合わせ、より緩い方針が、攻撃が進行中であり得ることを示す時、より制限的な方針が適用される。方針施行は、双方向性であり、したがって、これは、感染がＬＡＮの一部分に進入する、またはそれから脱出するのを防止することができる。
【００２２】
図２は、本発明の実施形態のアーキテクチャの論理ブロック図を図示する。装置は、３つ（またはそれ以上）のインターフェースを伴う「バンプインザワイヤ（ｂｕｍｐ  ｉｎ  ｔｈｅ  ｗｉｒｅ）」として配備することができる。一実施形態では、入力ネットワークトラフィック２００のための１つのインターフェース、出力ネットワークトラフィック２１０のための第２のインターフェース、および複製もしくはリダイレクトされた出力ネットワークトラフィックのため、または管理通信のための第３のインターフェース２１２が存在する。ネットワーク１１０からの入力パケット２００は、最初に、分配回路２０２に入る。図示される実施形態では、分配回路２０２は、入力パケット２００をトラフィックセグメントに分割する。別の実施形態では、入力パケット２００は、分配回路の前に置かれる場合があるプリプロセッサによって、セグメントに分割される。カスタムまたは標準プロトコルコアであってもよい、このプリプロセッサはまた、パケットのフラグメント化／再構築および／またはパケットの並べ替え機能性も提供することができる。トラフィックセグメントは典型的に、単一の入力パケットから得られる、分配回路２０２に入ったバイトと同一の順序の固定長のバイトのシーケンスである。トラフィックセグメントは、複数のパケットを含むことができる、伝送制御プロトコル（ＴＣＰ）セグメントと混同されない。パケットが、トラフィックセグメントを満たすのに十分なバイトの残りを有さない場合、トラフィックセグメントの残りのバイトは未使用である。トラフィックセグメントの各バイトは、有効性指標としての役割をする、制御ビットと関連付けられてもよく、未使用のバイトは、無効とマークされる。
【００２３】
図２に図示される実施形態では、各トラフィックセグメントは、以後、２０４と称される、一連の規則エンジン２０４Ａ〜２０４Ｎの各規則エンジンで処理するために、並列に経路指定される。分配回路２０２はまた、出力インターフェース２０８が分配回路２０２にパケットが転送されるべきであるか、または例えば、スキップすることによって削除されるべきであるかを指示するまで、入力パケット２００のそれぞれを保持する。これらのセグメントは、分配回路２０２と各規則エンジン２０４との間、および分配回路２０２と出力インターフェース２０８との間のセグメントのバス幅と等しいバイト幅である。
【００２４】
各規則エンジン２０４は、分配回路２０２からの追加のトラフィックセグメントの準備が整っている時、アドバンス指示を分配回路２０２にアサートする。全ての規則エンジン２０４がそれらのアドバンスラインをアサートした時、分配回路２０２は、次のトラフィックセグメントを全ての規則エンジン２０４に送信する。個別の規則エンジン２０４のそれぞれは、設定された規則を実行する。一実施形態では、各規則エンジン２０４は、真または偽の値を評価し、各パケットの終わりで、完了ラインをアサートする。
【００２５】
規則エンジン２０４が規則の評価を完了した後、これは、集約回路２０６に結果を通知する。規則が真と評価される場合、集約回路２０６に対するマッチングラインがアサートされる。１つ以上の入力パケット２００の分割から取得される一連のトラフィックセグメントであってもよいデータ部分についての規則の評価が完了した時、完了ラインがアサートされる。アクションラインは、データセグメントをリダイレクトするべきか、または複製するべきかを集約回路２０６に指示し、複製またはリダイレクトのための追加のインターフェースに対するさらなるスケーラビリティを可能にする。規則エンジン２０４Ａの出力が、規則エンジン２０４Ｂ〜２０４Ｎのサブセットの出力をオーバーライドするものである時、規則エンジン２０４Ａは、規則エンジン２０４Ｂ〜２０４Ｎのそのサブセットに対応するオーバーライドラインをアサートしてもよい。別の実施形態では、規則エンジン２０４Ａは、規則エンジン２０４Ｂ〜２０４Ｎをオーバーライドする、１つのオーバーライドラインをアサートしてもよい。
【００２６】
集約回路２０６は、一連の規則である方針を施行する、出力論理と、それらの間の論理関係、因果関係、および／または時間的関係とを含む。集約回路２０６は、全ての規則エンジン２０４の出力に基づいて決定を行う前に、全ての規則エンジン２０４がそれらの対応する完了ビットをアサートするまで待機する。典型的に、パケットをドロップする、転送する、または複製することである、決定は、複製インターフェース識別子と共に、出力インターフェース２０８に渡される。複製インターフェース識別子は、出力インターフェース２０８に、パケットが複製されているか否かを指示する。集約回路２０６は、集約回路２０６が、分配回路２０２は、現在のパケットの全ての残りのセグメントをスキップし、次のパケットの処理に直接進むことができると決定する時、分配回路２０２にリスタートをアサートする。集約回路２０６はまた、トラフィックの複製または管理インターフェース２１２へのリダイレクションもサポートすることが望ましい可能性がある。
【００２７】
パケットが転送される時、出力インターフェース２０８は、次のパケットラインを介して、分配回路２０２から次のパケットがそれに送信されることを要求する。次のパケットの移送中、出力インターフェース２０８は、分配回路２０２からの１つ以上の追加のトラフィックセグメントの準備が整っている時、次のセグメント指示を分配回路２０２にアサートする。一実施形態では、出力インターフェース２０８が分配回路２０２からトラフィックセグメントを受信する時、出力インターフェース２０８は、必要に応じて、パケットのうちのいくつかまたは全てを、それを出力パケット２１０として伝送する前に、バッファリングしてもよい。これは、暗号化を含み得るが、これに限定されない、それが実施する必要があり得る後処理機能に依存する。別の実施形態では、パケットのセグメントは、それらが出力インターフェース２０８によって受信されるのに伴って送り出されてもよい。その動作モードでは、集約回路２０６の決定がパケットをドロップすることである場合、パケットは切り取られ、パケットを受信する接続機器によって実質的に使用不可能となる。
【００２８】
パケットおよびストリーム処理では、いかなる汎用中央計算処理装置（ＣＰＵ）の関与も不要である。分配回路２０２、集約回路２０６、および集約回路２０６の制御を介して全ての規則エンジン２０４を制御する、典型的にＣＰＵを含む外部機器が利用可能な、全般管理／コマンド／制御インターフェースが存在する。
【００２９】
規則エンジン２０４の実施形態は、設定された挙動またはシグネチャベースの規則を実行する、マイクロコード制御された状態機械である。規則は、マイクロコード制御された状態機械および関連設定レジスタをプログラムするために使用される、一連のビットまたはマイクロコードにコンパイルされる。各マイクロコード制御された状態機械は、関連制御記憶に記憶されるマイクロコードに従って動作する、計算カーネルを含む。マイクロコード制御された状態機械は、各トラフィックセグメントについて、同等性、マスクされた同等性、および範囲包含／除外演算等の演算を実施するのに最適なデータ経路を設定する。データ経路は、実装するのに数論理レベルしか必要としない、浅い段階を備え、したがって、非常に高周波数の設計を可能にする。
【００３０】
一連の規則エンジン２０４は、各トラフィックセグメントについて、同時に、かつ協働して動作する、マイクロコード制御された状態機械のパイプライン構造として実装することができる。この正規構造は、少数の基本的なビルディングブロックの複製を通した、高容量、並列設計の作成に適している。これはまた、関連するマイクロコード制御された状態機械のローカルに、その状態の一部として、ＴＣＰ接続情報等の状態情報を保存する能力も提供する。共有メモリに全ての接続の状態情報を保存する、ファイアウォールにおける典型的な手法とは対照的に、この構造はまた、状態情報を、単一のマイクロコード制御された状態機械のローカル状態として記憶することも可能にする。しかしながら、アーキテクチャはまた、全ての規則エンジン２０４がグローバルに利用能である、グローバル状態表（接続情報を含んでもよい）もサポートする。グローバル状態表は、ＣＡＭまたは外部メモリ内に維持されてもよく、オンチップメモリとして実装されてもよい。ＣＡＭまたは外部メモリ内にある場合、グローバル状態表は、状態情報を維持し、現在のパケットに関係する関連状態情報を全ての規則エンジンに提示する、コントローラに関与する、管理インターフェース２１２を介して、規則エンジン２０４によってアクセスされてもよい。グローバル状態表内の情報は、各規則エンジン２０４へのハードウェア信号線を介して等、規則エンジン２０４によって同時にアクセスされてもよい。本実施形態では、ＣＡＭまたは外部メモリの検索要求の待ち行列を管理するクロックサイクルは、無駄にされない。グローバル状態表は、専用ハードウェアによって、パケット毎基準で更新されてもよい。このアーキテクチャもまた、その関連命令セットと共に、カスタマイズし、最適化することができる。これは、パケットペイロードの、効率的、容易に設定可能、かつ統一されたヘッダ処理および綿密な検査を可能にする。
【００３１】
集約回路２０６は、方針を施行する、出力論理を含む。方針は、ブール論理を使用した、関連する規則の単なる集合であってもよい。一実施形態では、集約回路２０６は、例えば、いくつかの規則のブールＯＲとして表現される、個別のブロックの出力を集約する。これらの複数の規則のうちのいずれかが真である場合、パケットをドロップする等の設定されたアクションが行われる。集約方針は、木として実装することができ、各木ノードは、論理ＯＲまたはＡＮＤとして機能するように設定することができる。方針は、積の和および／または因果関係もしくは時間的関係等、規則間の複雑な複合関係となるように設定することができる。集約論理は、任意の組み合わせまたは順序論理を実装することができる。
【００３２】
一実施形態では、集約回路２０６は、一連の規則エンジン２０４のうちの１つ以上のサブセットを有効化／無効化する、制御信号を生成する。集約論理はまた、規則フィードバックを、リセットする、または規則エンジン２０４のサブセットに提供することもでき、また、分配回路２０２によって使用されるパラメータを設定することができる。規則エンジン２０４は、論理を含むことができ、また、１つ以上の他の規則エンジンを直接有効化および無効化する、制御信号を生成することができる。
【００３３】
図２は、アーキテクチャの基本的な構造を変更することなく、トラフィックセグメント幅等の設計パラメータを用いて、スループット等の主要性能評価指数のスケーリングを可能にする、パラメータアーキテクチャの実施例を図示する。ハードウェアクロックサイクル当たりにより多くのビットに装置を通過させることによって、全体的なシステムスループットを増加させるために、より幅が広いデータ経路に対応する、より幅が広いトラフィックセグメントを使用することができる。データ経路幅を調整すること、およびシリコン資源（ゲート）の使用と装置の動作周波数との間でトレードオフを行うことが可能である。トラフィックセグメント幅を、最悪の場合のトラフィックセグメント当たりのクロックサイクルの数で除算した、１秒当たりのクロックサイクルの数で乗算することによって、最悪の場合の装置を通るスループットを正確に計算することができる。典型的なアプリケーションでは、最悪の場合のトラフィックセグメント当たりのクロックサイクルの数は、５未満、好ましくは２である。最悪の場合の待ち時間は、転送方針が蓄積交換であるか、またはカットスルーであるかによって、正確に計算することができる。蓄積交換では、最悪の場合の待ち時間は、２つの最大サイズのパケット内のセグメントの数をクロック周波数で除算した商に直接比例する。処理時間は、パケット内のトラフィックセグメントの数において線形である。
【００３４】
図２に図示されるアーキテクチャは、特に、ネットワークセキュリティおよび監視用途に最適となるように設計される。しかしながら、このアーキテクチャはまた、パケット分類、綿密な検査、およびオンザフライのデータベース用途を含む、汎用パターンマッチングを実装するのにも十分に一般的である。共通点は、１回に１つのセグメントのデータを処理するという概念であり、セグメントのサイズは、パラメータアーキテクチャの設計パラメータである。
【００３５】
規則エンジン２０４によって使用される規則は、ハードウェアのビット設定、低級アセンブラの使用、共通侵入検出システム（ＩＤＳ）およびファイアウォールによって使用される既存の言語からの翻訳、または高次言語の使用を含むが、これらに限定されない、いくつかの方法で指定することができる。一実施形態では、ネットワークセキュリティ用途向けに最適化された、基盤となるハードウェアアーキテクチャに対応する、固有かつ独自仕様の命令セットアーキテクチャ（ＩＳＡ）に基づく、低級アセンブラが使用される。別の実施形態では、ストリームおよびパケット検査フロントエンド（ＳＰＩＦＥ）のための独自仕様の高次言語に基づく、高次編成規則定義言語が使用される。高次規則定義言語における規則のいくつかの例には、以下が挙げられる。
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
ｄｒｏｐ  ｉｎｂｏｕｎｄ  ｅｔｈ：ｉｐ：ｔｃｐ  ｉｐ．ｓｒｃ  ＝  １．２．３．４，  ｔｃｐ．ｄｐｏｒｔ  ＝  ８０；
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
意味：１．２．３．４のＩＰソースアドレスおよび宛先ポート８０（ｈｔｔｐ）を有する、着信インバウンド（外部ネットワークから保護されたセグメントへ向かう）ＴＣＰパケットをドロップする。
【００３６】
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
ｄｒｏｐ  ｉｎｂｏｕｎｄ  ｅｔｈ：ｉｐ：ｕｄｐ  ｐａｙｌｏａｄ：  “ｍａｌｉｃｉｏｕｓ”；
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
意味：着信インバウンド（外部ネットワークから保護されたセグメントに向かう）ユーザデータグラムプロトコル（ＵＤＰ）パケットを、それらのペイロードが「ｍａｌｉｃｉｏｕｓ（悪意のある）」というキーワードを含む場合にドロップする。
【００３７】
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
ｄｒｏｐ  ｉｎｂｏｕｎｄ  ｅｔｈ：ｉｐ：ｕｄｐ  ｐａｙｌｏａｄ：  “ｍａｌｉｃ＊ｉｏｕｓ”  ［ｉｇｎｏｒｅｃａｓｅ］；
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
意味：着信インバウンド（外部ネットワークから保護されたセグメントに向かう）ユーザデータグラムプロトコル（ＵＤＰ）パケットを、それらのペイロードが「ｍａｌｉｃｉｏｕｓ（悪意のある）」というキーワードを含み、任意の数の文字が「ｃ」を「ｉ」から隔てている場合にドロップする。ペイロードは、例えば、「Ｍａｌｉｃｉｏｕｓ」、「ｍＡｌｉＣｉｏｕｓ」、および「ＭＡＬＩＣＩＯＵＳ」がドロップされるように、大文字と小文字を区別しない。
【００３８】
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
ｃｏｕｎｔ  ａｌｌ  ｉｎｂｏｕｎｄ  ｅｔｈ：ｉｐ：ｉｃｍｐ  ｉｃｍｐ．ｔｙｐｅ  ＝  ＰＩＮＧ＿ＲＥＰＬＹ；
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
意味：ＩＰおよびイーサネット（登録商標）プロトコル層を介して送信されるインターネットコントロールメッセージプロトコル（ＩＣＭＰ）ピング応答パケットをカウントする。
【００３９】
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
ｄｕｐｌｉｃａｔｅ  ａｌｌ  ｉｎｂｏｕｎｄ  ｅｔｈ：ｉｐ：ｉｃｍｐ  ｉｃｍｐ．ｔｙｐｅ  ＝  ＰＩＮＧ＿ＲＥＰＬＹ；
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
意味：第１のインターフェースから第２のインターフェースへ、または第２のインターフェースから第１のインターフェースへの通常のパケットフローを妨害することなく、ＩＰおよびイーサネット（登録商標）プロトコル層を介して送信される、インバウンドＩＣＭＰピング応答パケットを、第３のインターフェースに複製する。
【００４０】
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
ｒｅｄｉｒｅｃｔ  ａｌｌ  ｉｎｂｏｕｎｄ  ｅｔｈ：ｉｐ：ｉｃｍｐ  ｉｃｍｐ．ｔｙｐｅ  ＝  ＰＩＮＧ＿ＲＥＰＬＹ；
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
意味：ＩＰおよびイーサネット（登録商標）プロトコル層を介して送信される、インバウンドＩＣＭＰピング応答パケットを、第３のインターフェースにリダイレクトする。
【００４１】
図３は、双方向アプリケーションへの図２のアーキテクチャの使用を図示する。双方向プロトコル挙動または事象トリガリングを監視することが望ましい一例は、クライアント−サーバアプリケーションである。サーバが、装置によって保護されるネットワークの部分の外側にあり、クライアントが、ネットワークのその部分の内側にある場合、サーバからのトラフィックはインバウンドであり、クライアントからの要求および応答はアウトバンドである。インバウンド入力パケット２００は、分配回路２０２、一連の規則エンジン２０４、および集約回路２０６によって処理される。出力インターフェース２０８は、簡素化のため、図３には示されていない。分配回路２０２、一連の規則エンジン２０４、および集約回路２０６は、インバウンドまたは第１の方向の第１の経路を形成し、第１の方向とは逆等、第１の方向とは異なる、アウトバンドまたは第２の方向の第２の経路を形成する、異なる分配回路３０２、一連の規則エンジン３０４、および集約回路３０６と整合させることができる。本文脈における整合は、概念的であり、実装における、これらのブロックの相互に対する物理的位置における、いかなる制限も示唆しない。双方向アプリケーションを取り扱うために、一連の規則エンジン２０４が一連の規則エンジン３０４と制御情報を交換することが望ましい可能性がある。別の実施形態では、各規則エンジン２０４は、第１の経路からのトラフィックの処理と第２の経路からのトラフィックの処理とを動的に交互に行うことができる。この動的変更は、マイクロコードによって制御されてもよく、また、規則エンジン２０４の設定ビットによって制御されてもよい。規則エンジン２０４は、第１の経路からのトラフィックの処理と第２の経路からのトラフィックの処理とを、独立して、および／またはグループとして、交互に行ってもよい。
【００４２】
図４は、図２に示される分配回路２０２の内部アーキテクチャの一実施形態を図示する。入力パケット２００は、フレームバッファ３２０に入る。本実施形態では、バッファ３２０は、ＦＩＦＯバッファであり、装置を通るデータ経路の幅と等しいセグメントサイズで論理的に体系化されている。入力パケット２００は、プリプロセッサによって、既にトラフィックセグメントに区分化されていてもよく、この場合、フレームバッファ３２０は必要とされない場合がある。そうでなければ、入力パケット２００は、入力パケット２００間にセパレータを伴って、フレームバッファ３２０内に定置される。フレームバッファ３２０は論理的に、入力パケット用の１つの書き込みポートと、一方が分配論理ブロック３２４用であり、他方が出力インターフェース２０８用である、２つの読み出しポートとを有する。そのようなバッファの標準的な実装では、１つは入力インターフェースの近く、１つは出力インターフェースの近くとなるように、２つの別個のメモリブロックが使用される。蓄積交換実装では、パケットは、規則エンジン２０４による決定が集約回路２０６によって出力インターフェース２０８に通信され、出力インターフェース２０８が次のパケットラインをアサートするまで、フレームバッファ３２０内に記憶されたままである。カットスルー実装では、パケットの各トラフィックセグメントは、遅延なく出力インターフェース２０８に転送される。パケットがネットワークの受信側のデバイスによって破棄されるようにするために、出力インターフェース２０８にパケットの一部分を破損させるために、出力インターフェース２０８に強制終了信号が送信されてもよい。フレームバッファ３２０および分配論理３２４の両方は、管理／コマンド／制御インターフェースを有することができる。
【００４３】
分配論理３２４は、それらのアドバンス制御ラインの分配論理３２４へのそれらのディアサートによって示されるように、接続された規則エンジン２０４の全てがデータの次のセグメントの準備が整っている時、フレームバッファ３２０からデータセグメントを取り出す。規則エンジン２０４のうちの１つ以上の準備が整っていない場合、分配論理３２４は、フレームバッファ３２０へのアドバンス制御ラインをディアサートし、規則エンジン２０４の全ての準備が整うまで待機する。分配論理３２４は、図２に記載される集約回路２０６から、分配論理３２４に現在のパケットの全ての残りのセグメントをスキップさせ、次のパケットの処理へ直接進ませる、リスタートを受信する。
【００４４】
図５は、本発明の実施形態に従って設定されたマイクロコード制御された状態機械に基づく、規則エンジン２０４の内部設計を図示する。設計は、独立ローカルメモリを伴う、カスタムプログラム可能な状態機械に基づく。メモリは典型的に、静的ランダムアクセスメモリ（ＳＲＡＭ）であるが、異なる種類のものであってもよい。状態機械のプログラミングは、制御記憶メモリ４０６にコンテンツを書き込むことによって行われる。規則エンジン２０４の機能性は、制御記憶４０６に新しいマイクロコードを書き込むことによって変更される。分散ローカルメモリからの読み出し、およびそれへの書き込みを可能にするバス実装は、当該技術分野において周知である。また、特定用途向け集積回路（ＡＳＩＣ）またはプログラム可能論理デバイス（ＰＬＤ）の使用等の種々の方法で、規則エンジン２０４を実装することができることも熟考される。
【００４５】
各規則エンジン２０４は、各規則エンジン２０４が先行セグメントを処理している間、分配回路２０２から受信されるトラフィックセグメントを保持するために、小さい先入れ先出し（ＦＩＦＯ）ローカルバッファ４００を含んでもよい。存在する場合、このバッファは、追加のセグメントを受け取ることができる時、アドバンスラインを介して、分配論理に指示する。
【００４６】
ローカルバッファの目的は、規則エンジン２０４で処理するためのデータがない期間（ストール）を防止することである。ローカルバッファは、入力データにわたってスライドする、固定長窓と考えることができる。全ての規則エンジン２０４のローカルバッファがトラフィックセグメントのための空間を有することを示す、全ての規則エンジン２０４がそれらのアドバンスラインをアサートした時、分配回路２０２によって、各規則エンジン２０４にトラフィックセグメントが提供される。既に規則エンジン２０４のローカルバッファ内にあるトラフィックセグメントは、全ての規則エンジン２０４による並列処理に利用可能である。結果として、第１のトラフィックセグメントの処理を完了した規則エンジン２０４は、依然として第１のセグメントの処理が完了していない、別の規則エンジン２０４によってストールにされることなく、ローカルバッファから次のトラフィックセグメントを即座に引き出すことができる。規則をトラフィックセグメントに適用するために必要とされる、比較、およびしたがって処理サイクルの最大数が存在するため、このローカルバッファのサイズは、制限される可能性がある。典型的に、規則エンジン２０４によるトラフィックセグメントの処理は、２以下のサイクルしか必要としない。任意のトラフィックセグメントの処理サイクルの数として、２サイクルが設定される場合、２サイクル毎に、次のトラフィックセグメントを含むために必要とされるバイト数だけ窓をスライドすることによって、いずれのローカルバッファもいっぱいにならないことが保証される。
【００４７】
条件論理ブロック４０２は、入力バッファ４００から、または分配回路２０２から直接、データの次のセグメントを受信する準備が整っている時、アドバンスラインを介して指示する。条件論理４０２は、現在のセグメントに対して１つ以上の比較を実施するマイクロコードの各ラインによって、および比較に基づいて、セレクタ４０４を使用して次の状態を選択するように設定される。条件論理４０２およびセレクタ４０４は、計算カーネル４０３内に含まれる。条件論理４０２は、組み合わせ動作、ならびにその内部状態に依存する順序論理を実装する。本実施形態では、次の状態とは、実行する次のマイクロコード命令のアドレスである。加えて、条件論理４０２は、集約回路２０６によって提供される、完了、マッチング、アクション、およびオーバーライド指示を設定する。集約論理は、条件論理４０２を有効化および無効化する制御信号を生成することができる、または規則フィードバックを条件論理４０２に提供することができる。
【００４８】
制御記憶４０６内の各マイクロコードラインは、現在のトラフィックセグメントに対してどのような種類の比較を実施するかを決定する。比較結果に基づいて、マイクロコードラインはまた、実行する次のマイクロコードラインのアドレスも提供する。一実施形態では、制御記憶４０６内の各ラインは、以下の４つの種類の情報を含む。
１．条件論理４０２によってどのような種類の比較が実施されるか、およびどのような内部状態が内部状態変数（フロップスおよびレジスタ）に記憶されるべきかを決定する、制御ビット（オペコードまたは設定ビット等）。
２．比較によって使用される値。比較種類には、同等性、セット内の構成員、範囲比較、およびビットシーケンスが前の１０セグメント内で４回以上発生しているか否かを示す、カウンタ比較等のより複雑な演算が挙げられる。
３．条件論理４０２の出力に基づいて実行する後続アドレスのアドレス。条件論理４０２の結果によって、複数の次のアドレスのうちの１つが選択されてもよい。２つ以上の次のアドレスを可能にすることによって、クロックサイクルを節約する一方で、複雑な条件を実装するためのより優れた柔軟性が可能となる。
４．内部状態および規則エンジン２０４の一次出力の制御。例えば、これは、完了ラインをアサートするか否か、パケット内の次のセグメントに進むか、もしくは現在のセグメントに関係する別の比較のために留まるか、または現在のパケットの終わりに即座に移動するか否かを含むことができる。
【００４９】
これらの異なる種類の比較は、アーキテクチャと共に、一連の規則エンジン２０４によって、個別のパケットおよびパケットのストリームの両方を処理することを可能にする。規則エンジン２０４は、それを実際に完全に再構築することなく、外部システムメモリ内でストリームを処理することができる。マイクロコード命令に基づいて、規則エンジン２０４は、経時的に起こり、別個のパケットにカプセル化される、事象の順序に基づく決定を行うことができる。
【００５０】
図６は、比較規則を実装する、マイクロコード命令の実行順序の実施例を示す。４バイトシーケンス「ａｂｃｄ」の検索のシーケンスは、２つの連続するセグメント（それぞれは、２バイトであると仮定する）内にあり、「１０」〜「１４」を包含する値を伴う、２バイトシーケンスが続く。「１２３４ｙｚｗｘａｂｃｄ１２３４５６７８」で象徴的に表現される、２０バイトのパケットでは、パケットの開始から決定までの実際の状態遷移は、０−＞１−＞１−＞１−＞１−＞１−＞２−＞３−＞４である。規則エンジン２０４が状態４に至る時、これは、完了およびマッチング出力の両方を図２の集約回路２０６にアサートする。パケットデータが所望のコンテンツを含まない場合、セグメントが２バイトのパケットセパレータ「−−」と等しくなるとすぐに、状態５への自動的な遷移が起こる。状態５では、規則エンジン２０４は、完了ラインをアサートし、マッチングラインをディアサートする。
【００５１】
セグメントに対して並列で実行することができる動作の数、およびそれらの種類は、制御記憶メモリライン幅を含む、具体的なハードウェア実装に依存する。この実施例は、セグメントの所与の値との比較、およびセグメントが所与の範囲内であるか否かのチェックを、並列で行うことができると見なす。そうでなければ、動作を、２つの別個の連続するクロックサイクルで行うことができる。例えば、状態３は、２つのチェックを並列で行い、１つの制御記憶メモリライン内で、３つの次のアドレス値を指定することができると見なす。
【００５２】
図７は、図５の条件論理の実装の実施例を図示する。ローカルバッファ４００からのセグメント入力、ならびに制御記憶４０６からのオペコードおよび設定ビットに基づいて、一連の比較を、セグメントと、オペランドと、内部状態変数との間で並列で行うことができる。オペランドは、比較に使用するために設定された値である。内部状態変数は、統計データ等のフロップス、レジスタ、またはカウンタ内に記憶された値を含む。これらの値は、第１のカウンタ内の値が第２のカウンタ内の値を超えた回数等の記憶された値の間での比較の結果を含む。本実施形態では、各条件論理ブロック４０２は、制御記憶４０６内のマイクロコードによって処理されたパケットの数およびセグメント（またはバイト）の総数をカウントするため専用の２つのカウンタを有する。また、入力、出力、および管理インターフェースと関連付けられるカウンタならびに状態レジスタも存在する。レジスタとローカルカウンタおよび／またはグローバルカウンタとの間で、比較を行うことができる。
【００５３】
図７内の各サブブロックは、特定の比較を実装する。同等性５０２および範囲チェック５０４等のオペランド対データ比較は、シグネチャベースの規則を評価するために使用される、条件チェック回路５００によって実装される。フロップス、レジスタ、またはカウンタ５１０内に記憶される内部状態の修正、および内部状態変数とオペランド５１２（もしくは別の内部状態変数／レジスタまたはグローバル状態変数／カウンタ）との間での比較は、挙動規則を評価するため、または統計データを収集するために使用することができる、条件分析回路５０８によって実装される。オペコードおよび設定入力によって指定されるような、現在のパケットのこれまでに処理されたバイト数等の内部状態の自動更新が存在する。並列サブブロック比較の結果は、設定可能出力論理ブロック５１４内のブロック（ブールもしくは順序または両方）によって複合される。セレクタ４０４によって使用される次のアドレスの選択および集約回路２０６が可視のマイクロコード制御された状態機械の出力は、設定可能出力論理５１４によって設定される。
【００５４】
本発明の実施形態は、ネットワークトラフィック内のどこでも、ビット単位の粒度（ビット単位の細かい粒度）を有し得る、ネットワークトラフィックの修正を可能にする。パケットの形態のネットワークトラフィックは、パケットヘッダまたはペイロード内のどこが修正されてもよい。これらのパケットヘッダまたはペイロードに対する修正には、１つ以上の既存のビットの変更、１つ以上のビットの挿入、１つ以上のビットの除去が含まれ得る。また、本発明の実施形態は、詳細に調べる必要があるトラフィックのみが、ＣＰＵまたはスニファ等のより遅いパケット処理速度を有するエンティティに向けられるように、ビット単位の粒度での入力トラフィックの選択的ミラーリングを可能にすることも熟考される。
【００５５】
図８は、粒度の細かいトラフィック修正およびミラーリングをサポートする、本発明の実施形態のアーキテクチャの論理ブロック図を図示する。図２の説明が、図８に適用される。入力パケット２００は、一連のポート８００Ａ〜８００Ｎを介して、分配回路２０２に入る。ポート８００は、図８に示されるアーキテクチャを含む、デバイスへの異なる物理ポートであってもよく、またはトラフィックの単一のストリーム内の論理ポートであってもよい。入力パケット２００が属する論理ポートは、シグネチャベースの規則、挙動規則、またはシグネチャベースの規則および挙動規則の組み合わせ等の規則を入力パケット２００に適用することによって決定されてもよい。
【００５６】
１つ以上の入力パケット２００に対応するデータセグメントについての規則の評価の完了の後、各規則エンジン２０４は、データセグメント内の各パケットに対して行われる修正の修正命令ラインを介して、集約回路２０に通知する。規則エンジン２０４Ａによって指示される修正命令は、他の規則エンジン２０４Ｂ〜２０４Ｎのうちの１つ以上によって指示される修正命令と同一であってもよく、または重複してもよい。順序論理および組み合わせ論理の両方を含んでもよい、集約回路２０６内の論理は、規則エンジン２０４によって指示される修正命令を、データセグメント内の各パケットに対して行われる全ての修正の指示を含む、修正コマンドに組み合わせる。規則エンジン２０４によって指示される修正命令を修正コマンドに組み合わせる時、集約回路２０６は、冗長を排除するように、修正命令を除去または修正してもよい。
【００５７】
データセグメント内の各パケットについて、出力インターフェース２０８が、パケットが転送がされる、リダイレクトされる、または複製される決定ライン上で、集約回路２０６による指示を受信した場合、出力インターフェース２０８は典型的に、集約回路２０６からの修正コマンドに応答する。出力回路２０８が、次のパケットおよび次のセグメント指示に応えて、分配回路２０２からトラフィックセグメントを受信する際、出力回路２０８は、出力回路２０８によるパケットの修正を促進するために、パケットのうちのいくつかまたは全てをバッファしてもよい。出力回路２０８は、修正コマンドまたは修正コマンドの処理済版を記憶するメモリを含んでもよい。パケット修正の一環として、出力回路２０８は、ヘッダ、ペイロード、もしくはパケット全体のフレームチェックシーケンス（ＦＣＳ）または巡回冗長検査（ＣＲＣ）フィールド等のエラー検出あるいはエラー訂正に使用されるパケット内のフィールドを修正してもよい。出力回路２０８がパケットにフィールドを挿入している場合、または新しいヘッダを用いてパケットをカプセル化している場合、エラー検出またはエラー訂正のための１つ以上の新しいフィールドがパケットに追加されてもよい。
【００５８】
規則エンジン２０４の出力に基づいて、集約回路２０６は、パケットがリダイレクトされている、または複製されている出力インターフェース２０８、およびパケットが送信されているインターフェース（単数または複数）に指示するために、複製インターフェース識別子ラインを使用する。リダイレクトされた、または複製されたパケットは、出力インターフェース２０８によって修正されてもよい。ミラーリングされたデータは、物理ポートおよび論理ポートの任意の組み合わせであってもよい、１つ以上のポート８００に対応し得る。ミラーリングされたデータは、出力インターフェース２０８から管理インターフェース２１２にリダイレクトされたデータであってもよく、または管理インターフェース２１２に向けられた、複製されたデータであってもよく、また、出力インターフェース２０８から転送されてもよい。出力インターフェース２０８および管理インターフェース２１２のいくつかの組み合わせは、分配回路２０２から出力インターフェース２０８に入るトラフィックセグメントを管理インターフェース２１２の出力に対して速度をマッチングさせるように、限られた量のメモリを有する場合がある。また、管理インターフェース２１２に接続された外部デバイスによって、任意の速度マッチングが実施されてもよい。管理インターフェース２１２の出力は、ミラーリングされたデータおよび管理または制御通信を組み合わせてもよい。
【００５９】
パケット修正は、不審なトラフィックの選択的監視を可能にすること、攻撃を防止すること、または進行中の攻撃を軽減すること等によって、ネットワークセキュリティおよび監視を促進し得る。例えば、非標準の、または割り当てられていないＴＣＰポート番号を伴う図８の入力パケット２００は、監視のために、図８に示されるアーキテクチャを使用して、下流の安全なアプリケーションにマップされたＴＣＰポート番号を伴う出力パケット２１０に修正されてもよい。無許可のインターネットプロトコル（ＩＰ）オプションを伴う未知のソースからの入力パケット２００は、攻撃を防止する、または軽減するために、例えば、動作不能となるように削除される、または修正されるＩＰオプションを伴う出力パケット２１０に修正されてもよい。スプーフィングされたＩＰアドレスを伴う入力パケット２００は、下流の監視デバイスのＩＰアドレスを伴う出力パケット２１０に修正されてもよい。
【００６０】
この修正はまた、ネットワークセキュリティの促進に加えて、またはそれとは独立して、トラフィック管理も促進し得る。例えば、入力パケット２００は、ＶＬＡＮタグの場合には特定のＬＡＮセグメントに、ＭＰＬＳタグの場合には特定のＭＰＬＳトンネルに、入力パケット２００を送信する顧客に対応し得る、挿入された仮想ローカルエリアネットワーク（ＶＬＡＮ）タグを伴う、またはマルチプロトコルラベルスイッチング（ＭＰＬＳ）タグを伴う、出力パケット２１０に修正されてもよい。これは、パケットタグ付けの実施例である。入力パケット２００は、除去もしくは修正されたＶＬＡＮタグまたはＭＰＬＳタグを伴う、出力パケット２１０に修正されてもよい。入力パケット２００はまた、このパケットが下流のデバイスから受けなければならない処理の種類を示す、サービス品質マーキングを含む、マルチプロトコルラベルスイッチング（ＭＰＬＳ）タグを伴う、出力パケット２１０に修正されてもよい。この操作は、パケットカラーリングの実施例である。
【００６１】
この修正はまた、デバイスのシステム内への組み込みも容易にし得る。例えば、入力パケット２００は、カプセル化されたヘッダを有する出力パケット２１０に修正されてもよい。このカプセル化されたヘッダは、特定の下流のデバイスにとって有意な制御情報を伝達してもよい。ヘッダのカプセル化の１つの共通目的は、出力パケット２１０を受信するＮＰ等の下流のデバイスが、同一の処理を繰り返す必要をなくし、演算資源を節約し、ネットワーク性能を改善するように、図８に示されるアーキテクチャを伴うデバイスによる、入力パケット２００の前処理の結果を示すことである。
【００６２】
ミラーリングは、詳細なトラフィック監視および分析のために、入力トラフィックをＣＰＵまたはスニファ等のエンティティに向けるために使用される。ＣＰＵまたはスニファは一般的に、高速な、１秒当たり数ギガビットのデータ速度向けに設計される、図８のアーキテクチャと同一の速度でパケットを処理することができないため、入力ポート８００にわたる選択的ミラーリングが望ましい。したがって、詳細に調べる必要があるトラフィックのみが、ＣＰＵまたはスニファ等のエンティティに向けられるべきである。
【００６３】
ビット単位の粒度を伴うミラーリングは、選択的、正確、かつ精密なミラーリングを可能にする。高速トラフィックを柔軟にフィルタリングするために、図８に示されるアーキテクチャを使用することによって、ＣＰＵまたはスニファを、管理インターフェース２１２に送信される、正確に標的化されたトラフィックに使用することが可能となる。また、管理インターフェース２１２にミラーリングされ得る、仮想ＬＡＮによって定義される物理ポートまたは論理ポート等のポート８００の種類における制限もない。例えば、株価情報を報告するパケット、または特定のウェブサイトからのパケットのみを検査することが望まれる場合がある。図８のアーキテクチャによってサポートされる綿密なパケット検査は、シグネチャベースの規則を含む規則の適用を可能にし、シグネチャは、個別のパケットのヘッダまたはペイロード内に現れる可能性がある、またはパケットのシーケンスにわたって現れる可能性がある。挙動規則もまた、選択的ミラーリングの基準を定義するために、シグネチャベースの規則と一体化されてもよい。シグネチャベースの規則および挙動規則の組み合わせを使用した、高速トラフィックのフィルタリングは、費用のかかるＮＰまたはＣＡＭを必要とすることなく、ＣＰＵまたはスニファの処理能力を最善に活用する、システムレベルの解決策を生成するように適合されてもよい。例えば、図８のアーキテクチャは、ミラーリングされたトラフィック負荷がスニファの最大処理能力より大幅に小さい場合に、ミラーリングされたトラフィックに、包括的なシグネチャベースの規則を適用してもよく、また、ミラーリングされたトラフィック負荷がスニファの最大処理能力に近づくにつれて、徐々により厳密なシグネチャベースの規則を適用してもよい。
【００６４】
図８のアーキテクチャは、ハードウェアベースであり、ヘッダ分析、綿密なパケット検査、およびパケット修正用途に最適化される。特に、アーキテクチャは、ＣＰＵ等の汎用コンポーネントの設計を組み込まない。ハードウェア、レジスタ、およびＮＰおよびスイッチの低級ソフトウェアの侵害的再設計を回避するために、このアーキテクチャを既存の既製のコンポーネントに組み込む簡単な方法は、ネットワーキングプロトコル層の７層オープンシステムインターコネクション（ＯＳＩ）参照モデルの物理層（ＰＨＹ）で、またはＰＨＹおよび媒体アクセス制御副層（ＭＡＣ）の組み合わせで、アーキテクチャをコンポーネントに組み込むことである。エンドユーザによって一般的に使用される、通信チャネル上の生ビットからアプリケーションプロトコルに上方に移動するこれらの層は、物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、およびアプリケーション層を含む。ＯＳＩ参照モデルの層の区分化は、各層によって実施される機能の明確な定義、層間依存性を最小化する層の抽象化、および標準の定義の促進を含む、原理に基づく。
【００６５】
図９は、上位層の情報が条件とされる規則に基づいて処理を実施する、物理層インターフェースの機能図を図示する。物理層９００は、物理層受信器９１０と、復号器９２０とを含んでもよい。物理層受信器９１０は、信号を受信するため、およびこれらの信号からデジタルまたはアナログ情報を検出するために、信号検出機能９１６およびクロック修復機能９１４を含む機能を実施する。物理層受信器９１０はまた、プロビジョニングおよび設定等の受信器制御入力９５０を受け取り、受信器制御機能９１２を使用して、信号検出機能９１６およびクロック修復機能９１４を含む制御機能に入力を適用する。受信器制御入力９５０は、物理層デバイスを設定するために一般的に使用される、Ｉ２Ｃ等の周知のバス通信プロトコルを使用して、物理層受信器９１０に通信されてもよい。信号検出機能９１６、クロック修復機能９１４、受信器制御機能９１２は、減衰および分散等の各個別の物理媒体の特性、ならびにビットレートおよび信号周波数等のサポートされる通信の特性を含む因子に依存する、物理層機能である。
【００６６】
復号器９２０は、データ復号化９２８、フレーミング検出９２７、および規則に基づく処理９２６を含む機能を実施する。データ復号化９２８は、データリンク層９０２にとって有意なデータを抽出するように、物理層受信器９１０によって検出されるデータを処理することを含む。データ復号化９２８は、エラー検出コーディング、エラー訂正コーディング、および物理媒体の特性を補正することによって通信品質を改善する、直流（ＤＣ）平衡化コーディングを含む方法を使用して、符号化されたデータを処理することを必要とされる場合がある。フレーミング検出９２７は、データリンク層９０２に渡され得るフレームの開始の指示を検出することを必要とされる場合がある。復号器９２０はまた、プロビジョニングおよび設定等の復号器制御入力９５２を受け取り、復号器制御機能９２４を使用して、データ復号化９２８およびフレーミング検出９２７を含む制御機能に入力を適用する。復号器制御入力９５２は、Ｉ２Ｃを使用して復号器９２０に通信されてもよい。
【００６７】
データ復号化９２８およびフレーミング検出９２７は、物理層９００の機能であってもよく、またはデータリンク層９０２の機能であってもよい。ギガビットイーサネット（登録商標）（ＩＥＥＥ  ８０２．３ｚ−１９９８）および１０Ｇｂ／秒イーサネット（登録商標）（ＩＥＥＥ  ８０２．３ａｅ−２００２）等の周知の電気電子技術者協会（ＩＥＥＥ）標準プロトコルでは、データ復号化９２８およびフレーミング検出９２７は、データリンク層９０２（この場合、イーサネット（登録商標））が、異なる物理層に使用される異なるデータ符号化方法から抽象化され得るように、物理層内の物理コーディング副層の変形内に含まれる。様々な物理層上で使用されないデータリンク層プロトコルについて、物理層９００における変化によるデータリンク層９０２の混乱に関する懸念がそれ程ないため、データ復号化９２８およびフレーミング検出９２７は、データリンク層９０２の一部であると見なされてもよい。
【００６８】
規則に基づく処理９２６は、図２および図８に示されるアーキテクチャを使用した、シグネチャベースの規則および挙動規則を含む、規定された規則の入力パケット２００への適用を指す。これらの規則は、入力パケット２００のヘッダおよびペイロード内のどこかのビットに依存してもよい。これらの規則はまた、パケットの部分の修正をもたらす場合もある。物理層９００が、パケットまたはフレームの内部構造をほとんど認識していないため、規則に基づく処理９２６は、物理層９００の上のネットワーキングプロトコル層からの情報に依存する。ＩＰヘッダ、ＴＣＰヘッダ、またはペイロード情報に依存する、規則に基づく処理等の大部分の規則に基づく処理９２６はまた、データリンク層９０２の上のネットワーキングプロトコル層からの情報にも依存する。復号器９２０は、プロビジョニングおよび設定等の規則に基づく処理制御入力９５４を受け取り、規則に基づく処理制御機能９２２を使用して、規則に基づく処理９２６を含む制御機能に入力を適用する。規則に基づく処理制御入力９５４は、Ｉ２Ｃを使用して、復号器９２０に通信されてもよい。
【００６９】
規則に基づく処理９２６の物理層９００またはデータリンク層９０２での適用は、規則に基づく処理９２６に、各入力パケット２００（図２および図８に示される）が開始していることを示す、フレーミング検出９２７によって容易にされる。このフレーミング指示は、各入力パケット２００をトラフィックセグメントに分割する時に、どこで開始するべきかを分配回路２０２または分配回路に先立つプリプロセッサに示す。ギガビットイーサネット（登録商標）および１０Ｇｂ／秒イーサネット（登録商標）等の周知のプロトコルでは、物理層は、フレーミング検出９２７を実施し、したがって、物理層で、上位層の情報が条件とされる規則に基づく、規則に基づく処理９２６を組み込むことは容易である。
【００７０】
フレーミング検出９２７は、物理層９００で実施されない場合、データリンク層９０２で実施されるため、上位層の情報が条件とされる規則に基づく、規則に基づく処理９２６はまた、データリンク層９０２で組み込まれてもよい。一手法は、規則に基づく処理９２６を媒体アクセス制御副層９３０内に組み込むことである。媒体アクセス制御副層９３０は、特定の種類のＬＡＮに固有の機能を取り扱う。論理リンク制御副層９４０は、所与の媒体アクセス制御副層９３０を使用するために、複数の上位層のプロトコルを可能にする。ＮＰは典型的に、複数の種類のＬＡＮにわたって動作可能であるように設計され、したがって、多くの場合、媒体アクセス制御副層９３０と論理リンク制御副層９４０との間のインターフェースで、下位層デバイスとインターフェースを取る。
【００７１】
図１０は、アプリケーションレベル処理を促進するために、ネットワークトラフィックの優先的マッチングおよびカテゴリ化、ネットワークトラフィックのバイアスサンプリングおよび重み付けサンプリング、ならびにカテゴリ化情報のネットワークトラフィックとの関連付けをサポートする、本発明の実施形態のアーキテクチャの論理ブロック図を図示する。図２および図８の説明が、図１０に適用される。各規則エンジン２０４は、ネットワーク入力データ２００に対応するデータセグメントについて規則を評価する。ネットワーク入力データ２００は、ネットワークデータ単位に分割されてもよく、ネットワークデータ単位の例は、パケットである。規則エンジン２０４によって処理される規則が真と評価される場合、規則エンジン２０４から集約回路２０６へのマッチングラインがアサートされる。加えて、規則エンジン２０４は、優先順位指標ラインを介して、マッチングの優先順位に関する情報を集約回路２０６に通知する。優先順位指標は、マッチングと関連付けられるブロックインデックスを含んでもよく、ブロックインデックスは、メモリ内の位置を参照してもよい。ブロックインデックスは、マッチングの優先順位および／またはマッチングが対応するカテゴリを報告する出力等のマッチングに関する情報を直接検索するために使用されてもよい。ブロックインデックス自体がまた、マッチングの優先順位を示してもよい。例えば、最下ブロックインデックスを、最優先マッチングと関連付けることができ、ブロックインデックス値の増加は、優先順位の減少に対応することができ、またはその逆も可である。
【００７２】
一実施形態では、集約回路２０６は、複数の規則エンジン２０４から、完了、マッチング、および対応する優先順位指標を並列に受信する。完了、マッチング、および対応する優先順位指標を集約回路２０６に提供した後、各規則エンジン２０４は、アドバンス指示を分配回路２０２にアサートする。規則エンジン２０４がそれらのアドバンスラインをアサートした時、分配回路２０２は、次のトラフィックセグメントを規則エンジン２０４に送信する。これは、規則エンジン２０４および集約回路２０６の実行のパイプライン化を可能にする。
【００７３】
一実施形態では、集約回路２０６は、対応する優先順位指標に基づいて、マッチングのうちの１つ以上を選択するための論理を含む。２つ以上のマッチングが選択される場合、マッチングは、優先順位を付けられてもよい。例えば、２つのマッチングが選択される場合、最優先マッチングおよび第２の最優先マッチングが存在してもよい。集約回路２０６は、マッチングの相対優先順位を決定するために、優先順位指標を比較してもよい。図１１および図１２は、この論理の論理ブロック図の例を図示する。マッチングのうちの１つ以上を選択した後、集約回路２０６は、対応するネットワークデータ単位を転送する、ミラーリングする、リダイレクトする、および／または複製することに決定してもよく、または対応するネットワークデータ単位をドロップすることに決定してもよい。集約回路２０６はまた、対応するネットワークデータ単位を修正することに決定してもよい。集約回路２０６は、選択されたマッチングに対応するアクション指標を論理的に組み合わせることによって等、優先順位が付けられたマッチングのうちの１つ以上に基づいて、これらの決定を行ってもよい。集約回路２０６は、選択されたマッチングの優先順位指標等の選択されたマッチングに対応する情報を、外部インターフェースに提供してもよい。例えば、集約回路２０６は、対応するネットワークデータ単位がミラーリングされている、リダイレクトされている、および／または複製されている時、選択されたマッチングの優先順位指標を管理インターフェース２１２に提供してもよい。
【００７４】
図１１は、本発明の一実施形態に係る、４つの入力優先順位指標１１０２Ａ〜１１０２Ｄの中から最優先マッチングの優先順位指標１１１６を選択するための四重論理１１００の論理ブロック図を図示する。当業者は、最優先マッチングの優先順位指標を選択するための論理が、４つより多い、または少ない入力を有することができることを理解するであろう。規則エンジン２０４Ａ〜２０４Ｄは、マッチング指標１１０１Ａ〜１１０１Ｄ（ｂ１〜ｂ４）および対応する優先順位指標１１０２Ａ〜１１０２Ｄ（Ｔ１〜Ｔ４）を、入力として四重論理１１００に提供する。出力マッチング指標１１１４は、論理表現１１０４に基づいて評価することができ、その結果は、入力マッチング指標１１０１のうちのいずれかが真である場合、出力マッチング指標１１１４は真と評価されるものである。最優先マッチングの優先順位指標１１１６は、論理表現１１０６、１１０８、１１１０、および１１１２に基づいて評価することができ、その結果は、図１１に示されるように、マッチング指標１１０１Ａが真である場合、出力優先順位指標１１１６は優先順位指標１１０２Ａと評価され、マッチング指標１１０１Ｂが真であり、かつマッチング指標１１０１Ａが偽である場合、優先順位指標１１０２Ｂと評価される等というものである。一実施例では、優先順位指標１１１６を選択するこの手法は、優先順位指標１１０２Ａ〜１１０２Ｄが降順優先順位であると見なしてもよい。優先順位指標１１０２Ａ〜１１０２Ｄがブロックインデックス値であり、昇順ブロックインデックス値が降順優先順位に対応する場合、優先順位指標１１０２Ａ〜１１０２Ｄは、昇順ブロックインデックス値に基づいて順序付けられるべきである。優先順位指標１１０２Ａ〜１１０２Ｄのこの順序付けは、例えば、規則エンジン２０４Ａ〜２０４Ｄによって適用される規則が、昇順ブロックインデックス値に対応するように、規則エンジン２０４Ａ〜２０４Ｄを設定することによって確実なものにすることができる。
【００７５】
代替として、最優先マッチングの優先順位指標１１１６を、例えば、優先順位指標１１１６が優先順位指標１１０２Ａ〜１１０２Ｄの最下位と評価されるように、優先順位指標１１０２Ａ〜１１０２Ｄのベクトル比較に基づいて評価することができる。本実施形態では、優先順位指標１１０２Ａ〜１１０２Ｄは、いかなる順序であってもよい。ベクトル比較の使用は、優先順位指標１１０２Ａ〜１１０２Ｄの順序に関係なく、優先順位指標１１０２Ａ〜１１０２Ｄから優先順位指標１１１６を評価することを可能にする。
【００７６】
図１２は、本発明の一実施形態に係る、各段階が図１１の四重論理１１００を含む、多段論理１２００の論理ブロック図を図示する。例えば、多段論理１２００は、２つの段階内に四重論理モジュール１１００Ａ〜１１００Ｅを含むことができる。第１の段階は、それぞれが４つの入力マッチング指標１１０１および４つの対応する入力優先順位指標１１０２を伴い、それぞれが出力マッチング指標１１１４および対応する出力優先順位指標１１１６を伴う、四重論理モジュール１１００Ａ〜１１００Ｄを含む。第１の段階の４つの出力マッチング指標１１１４は、第２の段階に適用される。第２の段階は、４つの入力マッチング指標１２０１および４つの対応する入力優先順位指標１２０２を伴い、出力マッチング指標１２１４および対応する出力優先順位指標１２１６を伴う、四重論理モジュール１１００Ｅを含む。このように、１６の入力優先順位指標１１０２から、最優先マッチングの優先順位指標１２１６を選択することができる。大きい数の入力優先順位指標１１０２では、追加の論理ブロック１１００および／または追加の段階を追加することができる。
【００７７】
当業者は、論理はまた、マッチングに対応する一連の入力優先順位指標の中から、複数の優先順位指標のサブセットを選択するように設計することができることを理解するであろう。例えば、論理は、最高および第２の最高優先順位指標、または３つ以上の優先順位指標を含む任意の他のサブセットを選択するように設計することができる。この論理は、図１１に記載されるものと類似する方法で、ベクトル比較またはベクトル「ＯＲ」を使用することができ、図１２に記載されるものと類似する方法で、段階的にカスケード接続することができる。
【００７８】
別の実施形態では、規則エンジン２０４は、規則エンジン２０４の第１のサブセットが、規則を入来セグメントに適用して、マッチングおよび対応する優先順位指標を決定し、規則エンジン２０４の第２のサブセットが、これらのマッチングおよび対応する優先順位指標を受信するように、段階的にカスケード接続されてもよい。規則エンジン２０４の第２のサブセットは、対応する優先順位指標に基づいて、マッチングのうちの１つ以上を選択するようにプログラムされる。規則エンジン２０４の第１のサブセットは、全ての規則エンジン２０４が利用可能な以前に記載されたグローバル状態表の一部として、マッチングおよび対応する優先順位情報を保存することができ、規則エンジン２０４の第２のサブセットは、グローバル状態表からこの情報にアクセスすることができる。規則エンジン２０４の第２のサブセットは、図１２に記載されるものと同様の方法で、段階にさらに分割することができる。第１の段階の出力でのマッチングおよび優先順位指標はまた、第２の段階内の規則エンジン２０４がこの情報にアクセスすることができるように、グローバル状態表の一部として記憶することもできる。後続の段階にも同じことが言える。規則エンジン２０４の複数の段階もまた、パイプライン化することができる。例えば、規則エンジン２０４の第２のサブセットによる処理が、規則エンジンの第１のサブセットによる処理と同一の、またはそれより少ない処理サイクルを取るように設計される場合、規則エンジン２０４の第１のサブセットのそれぞれは、規則エンジン２０４の第２のサブセットのために、マッチングおよび対応する優先順位情報をグローバル状態表内に保存した後、アドバンス指示を分配回路２０２にアサートすることができる。複数の規則エンジン２０４は、１つ以上のネットワークデータ単位にわたるシグネチャおよび／またはネットワークにおける挙動変化に基づいて、１つ以上の種類の攻撃ならびに他の無許可のアクティビティを検出するように、複数の規則を適用することができる。ネットワークによる複数の種類の対応が必要であり得るため、これらの複数の規則に対する全ての一連のマッチングを発見して、同時に発生している場合がある、複数の異なる種類の無許可のアクティビティを検出することが重要であり得る。マッチングに優先順位を付けることもまた、重要であり得る。例えば、スピードが重視される特定の種類の無許可のアクティビティに応えて、即座に行動することが重要である場合がある。対照的に、行動を取る前に、ある期間、他の種類の無許可のアクティビティを監視することが望ましい場合がある。確実に、適切な順序で適切な行動が取られるようにするために、スピードが重視される無許可のアクティビティを示すマッチングは、他の種類の無許可のアクティビティより高い優先順位で取り扱われてもよい。
【００７９】
管理インターフェース２１２を介して、マッチングに対応する情報を管理システムに報告することもまた、望ましい。しかしながら、大きく、かつ極めて変化に富むものであり得る一連のマッチングのそれぞれに対応する情報を報告することは、困難である場合がある。したがって、情報を既知の一連のカテゴリにカテゴリ化し、カテゴリ化された情報を報告することが望ましい可能性がある。カテゴリは、ネットワークにおけるネットワークデータおよび／もしくは挙動変化のいくつかの特性または属性に対応する。例えば、カテゴリは、マッチングの和集合に対応する、ネットワークにおけるネットワークデータおよび／または挙動変化を含んでもよく、各マッチングは、１つ以上の規則に基づいて決定される。一連のカテゴリは、固定であってもよく、または設定可能であってもよい。
【００８０】
図１０の参照に戻ると、マッチングおよび優先順位指標を決定するように、規則を１つ以上の入来セグメントに適用する、各規則エンジン２０４は、規則に対応する、少なくとも１つのカテゴリマッチング指標を用いて設定される。規則の適用がマッチングをもたらす場合、規則エンジン２０４は、規則に対応するカテゴリマッチング指標を優先順位指標内に含むことができる、または優先順位指標とは別にカテゴリマッチング指標を提供することができる。各カテゴリマッチング指標を、カテゴリと関連付けることができる。一実施形態では、カテゴリマッチング指標は、パケット種類またはパケットフローと関連付けられてもよい。
【００８１】
一実施形態では、集約回路２０６は、マッチングに対応する、１つ以上の優先順位指標にアクセスする。例えば、集約回路２０６は、１つ以上の最高優先順位指標を選択してもよい。集約回路２０６は次いで、各選択された優先順位指標から、１つ以上のカテゴリマッチング指標のベクトルを抽出してもよい、または各選択された優先順位指標とは別に、カテゴリマッチング指標のベクトルにアクセスしてもよい。集約回路２０６は次いで、組み合わせられたカテゴリマッチング情報を取得するように、抽出されたカテゴリマッチング指標ベクトルを論理的に組み合わせてもよい。集約回路２０６は次いで、管理インターフェース２１２を介して、組み合わせられたカテゴリマッチング情報を管理システムに報告してもよい。
【００８２】
別の実施形態では、集約回路２０６は、１つ以上の規則エンジン２０４から受信される、１つ以上のカテゴリマッチング指標にアクセスする。各カテゴリマッチング指標は、優先順位指標に対応する。集約回路２０６は次いで、組み合わせられたカテゴリマッチング情報を取得するように、抽出されたカテゴリマッチング指標ベクトルを論理的に組み合わせてもよい。集約回路２０６は次いで、管理インターフェース２１２を介して、組み合わせられたカテゴリマッチング情報を管理システムに報告してもよい。
【００８３】
図１３は、カテゴリマッチング指標ベクトル１３０２Ａ〜１３０２Ｎから取得される、組み合わせられたカテゴリマッチング情報１３０４の例を図示する。各カテゴリマッチング指標ベクトル１３０２は、規則エンジン２０４によって決定されるマッチングが、カテゴリ１３００Ａ〜１３００Ｎに分類されるか否かを示す。この実施例では、集約回路２０６は、組み合わせられたカテゴリマッチング情報１３０４を取得するように、カテゴリマッチング指標ベクトル１３０２のベクトル「ＯＲ」を評価する。ベクトル「ＯＲ」の効果は、いずれかのカテゴリマッチング指標ベクトル１３０２がカテゴリ１３００について１（「真」）と評価される場合、組み合わせられたカテゴリマッチング情報は、そのカテゴリ１３００について１（「真」）と評価されるというものである。
【００８４】
図８および図１０の参照に戻ると、優先順位指標および／またはカテゴリマッチング指標を決定するネットワークデバイスは、これらの指標をネットワーク内の他のデバイスに渡してもよい。例えば、入力パケット８００Ａに対応する優先順位指標および／またはカテゴリマッチング指標のうちの１つ以上が、集約回路２０６からの出力インターフェース２０８に対する修正コマンドを介して、入力パケット８００Ａに付加されてもよい。代替として、出力インターフェース２０８は、修正コマンドに応えて、１つ以上のパケットを生成してもよく、各パケットは、優先順位指標および／またはカテゴリマッチング指標のうちの１つ以上を含む。優先順位指標および／またはカテゴリマッチング指標をネットワーク内の他のデバイスに渡す一利点は、下流のデバイスが、上流のデバイスのネットワークトラフィック処理および分析能力を活用することができるということである。下流のデバイスは、上流のデバイスと同一のトラフィック処理および分析能力を有さない場合がある。下流のデバイスはまた、下流のデバイスで実施されるネットワークトラフィック処理および分析を簡単化し、合理化するために、受信した優先順位指標および／またはカテゴリマッチング指標を活用してもよい。ネットワークトラフィック監視は、侵入検出およびサービスレベル合意（ＳＬＡｓ）の監視等の広範囲のネットワーク能力に重要である。ネットワークトラフィック監視は、管理システム機能を実施する制御プロセッサによる分析等のネットワークトラフィックのオフライン分析を伴う場合がある。制御プロセッサは、データ経路の一部ではないため、この分析は典型的に、有線速度ではない。オフライン分析のためのネットワークデータ単位を選択するために使用される一般的な手法は、ネットワークトラフィックを一様にサンプリングすることである。例えば、データ経路を横断する１０ネットワークデータ単位毎に１つ、制御プロセッサにミラーリングおよび／または複製することができる。全てのネットワークトラフィックにわたって同一のサンプリング率を使用することの１つの問題は、特定の種類の攻撃または他の無許可の挙動を示す場合がある、パケットトラフィックにおける低頻度および／または短期間の発生を見逃す可能性が大きいということである。
【００８５】
この問題に対処する方法は、例えば、ネットワークトラフィックの残りの部分に対して、１０パケット毎に１つのサンプリングを継続しながら、ネットワークトラフィックの特定のサブセットに対して、異なる率でサンプリングを実施することである。例えば、短期間の個別のログイン事象が見逃されないように、全てのログインパケットが審査されてもよい。より一般的に、サンプリングは、ネットワークデータ単位の任意のサブセットからのｎネットワークデータ単位からｍ選択してもよく、ｍは、包括的に１〜ｎ−１の整数値である。ネットワークデータ単位のサブセットは、ネットワークにおけるネットワークデータおよび／もしくは挙動変化のいくつかの特性または属性に対応する。一実施形態では、図１０の各規則エンジン２０４は、管理インターフェース２１２を介して、規則と関連付けられるサンプリング情報を用いて設定されてもよい。規則は、パケットヘッダおよびパケットペイロードにわたり、ビット単位の粒度を有してもよい。サンプリング情報は、サンプリング頻度であってもよく、パケット種類、パケットフロー、またはより一般的に、特性もしくは属性を共有する、ネットワークデータ単位の任意のサブセットと関連付けられてもよい。マッチングが決定されると、各規則エンジン２０４は、サンプリング情報に基づいて、アクション指標によって表される命令等の命令を決定することができる。例えば、ネットワークデータ単位毎にｍのサンプリング頻度では、規則エンジン２０４は、アクション指標を介して、ｎネットワークデータ単位毎にｍをミラーリングすること、リダイレクトすること、および／または複製することを指示することができ、これは、マッチングをもたらす。各規則エンジン２０４は、マッチングのカウントを、複数のサンプリング期間等のサンプリング頻度と関連付けられる値と比較するために使用することができる、条件分析回路５０８（図５および図７）を含んでもよい。一実施形態では、集約回路２０６は、アクション指標によって表される命令を含む、ネットワークデータ単位の経路指定命令を生成する。出力回路２０８は、経路指定命令に応えて、ネットワークデータ単位を管理インターフェース２１２に提供してもよい。
【００８６】
本発明の別の側面では、アプリケーションレベル処理を促進するために、カテゴリ化情報をネットワークトラフィックと関連付けることができる。例えば、ネットワークトラフィックのオフライン分析は、これらのパケットの、例えば、制御プロセッサのアプリケーションレベルへの転送の前の、ネットワークデータ単位のカテゴリ化によって促進することができる。カテゴリ化の一側面は、上述されるように、どのネットワークデータ単位をアプリケーションレベルに転送するべきかを決定するように、規則を適用することである。アプリケーションレベルへの転送は、ミラーリング、リダイレクション、および／または複製を通して行われてもよい。これは、アプリケーションレベルに転送されるネットワークデータ単位の総数を削減する。しかしながら、各ネットワークデータ単位のアプリケーションレベル処理を促進することもまた、望ましい。したがって、アプリケーションが、容易かつ迅速にカテゴリ化情報にアクセスすることができるように、このカテゴリ化情報を各ネットワークデータ単位と関連付けることが望ましい。これは、処理速度を向上し、アプリケーションの複雑性を低減することができる。
【００８７】
一実施形態では、カテゴリ化情報は、ハッシュ識別子の形態であってもよい。図１０に示される各規則エンジン２０４は、関連ハッシュモジュールとインターフェースを取ってもよい。図１４は、本発明の一実施形態に係る、規則エンジン２０４とそれらの関連ハッシュモジュール１４００との間のインターフェースの論理ブロック図を図示する。各規則エンジン２０４は、入力パケット等の入力ネットワークデータ単位から１つ以上のフィールドを抽出するように、規則を適用することができる。規則は、抽出されたフィールドが、ビット単位の粒度を有し、パケットの任意の部分からのものであり得るように、パケットのヘッダおよびペイロードにわたり、ビット単位の粒度を有してもよい。各規則エンジン２０４は、抽出されたフィールドをハッシュモジュール１４００に提供する。各ハッシュモジュール１４００は、望ましくは、ハッシュモジュール１４００に提供される、抽出されたフィールドよりビット幅が小さい、ハッシュ識別子を生成するように、データを処理し、ハッシュ識別子を、抽出されたフィールドを提供した規則エンジン２０４に提供し戻す。ハッシュ識別子は、パケット種類もしくはパケットフロー、またはより一般的に、特性または属性を共有する、ネットワークデータ単位の任意のサブセットと関連付けられてもよい。各ハッシュモジュール１４００は、管理インターフェース２１２を介して設定されてもよい。
【００８８】
代替として、各規則エンジン２０４は、その入力ネットワークデータ単位の処理の一環として、ハッシュ識別子を生成してもよい。この場合、ハッシュモジュール１４００の機能は、規則エンジン２０４によって実施され、別個のハッシュモジュール１４００を不要にする。
【００８９】
一実施形態では、各規則エンジン２０４は、ハッシュ識別子等のカテゴリ化情報に基づいて修正命令を生成するように、規則を適用することができる。修正命令は、ハッシュ識別子を含んでもよい。集約回路２０６は、前述されるように、規則エンジン２０４によって指示される修正命令を、出力回路２０８に提供される修正コマンドに組み合わせることができる。修正コマンドに基づいて、出力回路２０８は、ハッシュ識別子をネットワークデータ単位に付加することができる。ハッシュ識別子は、ヘッダ等、ネットワークデータ単位のいずれの部分に付加されてもよい。集約回路２０６の経路決定に基づいて、出力回路２０８は、管理インターフェース２１２を介して、修正されたネットワークデータ単位を管理システムに提供することができる。出力回路２０８はまた、修正されたネットワークデータ単位を下流のデバイスに伝送してもよい。ハッシュ識別子等のカテゴリ化情報をネットワーク内の他のデバイスに渡されるネットワークデータ単位に添付することの１つの利点は、上流のデバイスのネットワークトラフィック処理および分析能力を下流のデバイスが活用することができるということである。下流のデバイスは、上流のデバイスと同一のトラフィック処理および分析能力を有さない場合がある。下流のデバイスはまた、下流のデバイスで実施されるネットワークトラフィック処理および分析を簡単化し、合理化するために、受信したネットワークデータ単位と関連付けられるカテゴリ化情報を活用してもよい。
【００９０】
本発明の実施形態は、費用効率が高く、使用が簡単であり、管理可能であり、かつ柔軟である。分配回路２０２、規則エンジン２０４、および集約回路２０６にわたって統一されたアルゴリズムならびにブロック設計を用いて、装置は、ヘッダ処理およびパケット修正のためのＮＰならびにパターンマッチングのためのＣＡＭ等の複数の費用のかかるコプロセッサを使用することなく、ヘッダ分析、綿密なパケット検査、およびパケット修正機能を実施する。装置は、危険度と利用可能な予算とのバランスをとるように、増加的に配備することができる。装置は、ＮＰおよびＣＡＭのいずれの演算資源も使用しない、費用効率が高く、低能力のデバイスでの上位層の規則に基づく処理を可能にするように、物理層、データリンク層、または他の下位層インターフェースの一部として組み込まれ、配備されてもよい。装置のアーキテクチャは、数Ｇｂ／秒およびそれより高い入力速度でのヘッダ分析、綿密なパケット検査、およびパケット修正に適合される。装置は、ネットワークの管理および監視、その特殊な機能の設定、ならびにミラーリングされたデータの出力のためのインターフェース２１２を提供し、また、特定の顧客のニーズのためのプリプロセッサおよびポストプロセッサの使用もサポートし得る。
【００９１】
本発明の実施形態はまた、そのアーキテクチャに基づいて、予測可能であり、かつ容易に検証可能な性能を有する。同時に、かつ協働して動作する、一連の規則エンジン２０４のマイクロコード状態機械のパイプライン構造としての実装は、確実に、装置を通る最悪の場合のスループットおよび待ち時間を計算し、制限することができるようにする。結果として、装置を有線速度で実行することができる時についての正確な予測を行うことができる。有線速度動作は、入力パケットサイズおよび１秒当たりのパケット数でのパケット速度の最悪の場合の組み合わせで、予期せぬトラフィック損失なく、所与の最大規則複雑性を処理するのに十分に速い。また、規則エンジン２０４による任意のトラフィックセグメントの処理の決定性のクロックサイクルの最悪の場合の数も存在するため、装置は、トラフィック種類、パケットサイズ、規則複雑性の混合にわたり、小さい、制限された処理遅延を有することができる。小さい、制限された遅延は、装置が、複雑なメモリ階層もしくは待ち行列構造を必要とし得る外部メモリまたはキャッシュというよりはむしろ、単純なオンチップバッファを使用することができることを意味する。単純なオンチップバッファの使用は、ゲートおよびメモリ要素等のハードウェア資源の効率的かつ最適な使用を通して、装置性能を向上させるだけでなく、種々のトラフィックパターンに関連する、めったに発生しない厄介な場合も回避する。これはまた、設計の抜けおよびミスの可能性を低減する、形式的な検証および構造カバレッジを使用した有効性確認も可能にする。
【００９２】
当業者は、本明細書に記載される実施形態が、パケットを含むが、これに限定されない、ネットワークトラフィックの種々の形態を処理し得ることを理解するであろう。例えば、本明細書に記載される実施形態は、セルまたはフレームを処理してもよい。
【００９３】
解説のための前述の説明は、本発明の完全な理解を提供するために、具体的な用語を使用した。しかしながら、具体的な詳細は、本発明を実践するために必要とされないことが当業者に明らかであろう。したがって、本発明の具体的な実施形態の前述の説明は、例証および説明のために提示される。それらは、本発明を包括すること、または開示される厳密な形態に限定することは意図されず、明白に、上記の教示を考慮して、多くの修正および変形が可能である。実施形態は、本発明の原理およびその実際の適用を最善に説明するために選択され、記載され、それらは、したがって、当業者が、熟考される特定の使用に適するように、本発明および種々の修正を伴う種々の実施形態を最善に活用することを可能にする。以下の特許請求の範囲およびそれらの同等物は、本発明の範囲を定義することが意図される。
【図１１】
0005661764.tif 000002
【図１２】
0005661764.tif 000003
【図１】
0005661764.tif 000004
【図２】
0005661764.tif 000005
【図３】
0005661764.tif 000006
【図４】
0005661764.tif 000007
【図５】
0005661764.tif 000008
【図６】
0005661764.tif 000009
【図７】
0005661764.tif 000010
【図８】
0005661764.tif 000011
【図９】
0005661764.tif 000012
【図１０】
0005661764.tif 000013
【図１３】
0005661764.tif 000014
【図１４】
0005661764.tif 000015