(57)【要約】  本明細書において、ネットワークの挙動を調査するための追跡システムが記載される。動作中、ネットワーク内の各スイッチ（またはスイッチのいくつかのサブセット内の各スイッチ）は、それが処理する各元のパケットが１つまたは複数のパケット検出ルールを満たすか否かを判定することができる。ルールを満たす場合、スイッチはミラーリングされたパケットを生成し、そのパケットをロードバランサーのマルチプレクサーに送信し、そのマルチプレクサーは代わりに、ミラーリングされたパケットをさらに解析するために処理モジュールに転送する。スイッチによってホストされるパケット検出ルールは、あらゆる環境特有の目的に基づいて、最も関心のあるパケットのサブセットを選択するように設計することができる。この挙動の結果として、追跡システムは、情報が多すぎて圧倒されるということなく、ネットワークの望ましくない（および望ましい可能性のある）挙動を、効果的かつ迅速に特定することができる。
2017527216.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークからパケットを収集する方法であって、
元のパケットをネットワーク内のスイッチで受信するステップと、
前記元のパケットをミラーリングするか否かを決定するステップと、
前記元のパケットをミラーリングするとの決定がなされることを条件として、前記元のパケットに基づいてミラーリングされたパケットを生成するステップであって、前記ミラーリングされたパケットが、前記元のパケットに提供された情報の少なくともサブセットを含むステップと、
前記ミラーリングされたパケットを負荷分散マルチプレクサーに送信するステップと、
前記元のパケットによって指定されたターゲット宛先に前記元のパケットを送信するステップと
を含む方法。
【請求項２】
前記元のパケットをミラーリングするか否かを前記決定することが、
パケット検出ルールに関して前記元のパケットを分析するステップと、
前記元のパケットが前記パケット検出ルールを満たすか否かを判定するステップと、
前記元のパケットが前記パケット検出ルールを満たす場合、前記元のパケットをミラーリングするための命令を生成するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記パケット検出ルールが、指定されたプロトコル関連特性を表す各元のパケットがミラーリングされるべきであることを指定する、請求項２に記載の方法。
【請求項４】
前記パケット検出ルールが、指定されたアプリケーションを起源とする各元のパケットがミラーリングされるべきであることを指定する、請求項２に記載の方法。
【請求項５】
前記パケット検出ルールが、ユーザーが作成したパケット検出ルールに対応し、前記ユーザーが作成したパケット検出ルールは、ユーザーが指定した一致条件を満たす元の各パケットがミラーリングされるべきであることを指定する、請求項２に記載の方法。
【請求項６】
前記パケット検出ルールが、前記パケットを処理する際に前記スイッチが特定の条件に遭遇したことを表す各元のパケットがミラーリングされるべきであることを指定する、請求項２に記載の方法。
【請求項７】
少なくとも１つの負荷分散の考慮事項に基づいて、マルチプレクサー候補のセットから前記マルチプレクサーを選択するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記マルチプレクサーが、ハードウェアにより実装されたマルチプレクサーである、請求項１に記載の方法。
【請求項９】
ネットワークから収集されたパケットを分析するための１つまたは複数のコンピューティングデバイスであって、
少なくとも１つの処理モジュールから複数のミラーリングされたパケットを受信するためのインターフェイスモジュールであって、
各ミラーリングされたパケットは、前記元のパケットが、パケット検出ルールのセット中の少なくとも１つのパケット検出ルールを満たすとの条件で、前記ネットワーク内のスイッチによって生成され、元のパケットの処理に応答する前記少なくとも１つの処理モジュールに転送され、ミラーリングされた各パケットは、前記元のパケット内に提供された情報の少なくともサブセットを含む、
インターフェイスモジュールと、
前記ミラーリングされたパケットを処理して、前記ネットワーク内で発生した、または発生している事象に関する、少なくとも１つの結論に到達するように構成された、少なくとも１つの処理エンジンと、
前記少なくとも１つの結論に基づいてアクションを取るように構成されたアクション行使モジュールと
を含む、コンピューティングデバイス。
【請求項１０】
ネットワーク内で使用するための、物理デバイスに対応するスイッチであって、
元のパケットを受信するように構成された受信モジュールと、
前記元のパケットがパケット検出ルールのセット中の少なくとも１つのパケット検出ルールを満たすか否かを判定することによって、前記元のパケットをミラーリングするか否を決定するように構成された、マッチングモジュールと、
前記元のパケットをミラーリングするとの決定がなされることを条件として、前記元のパケットに基づいてミラーリングされたパケットを生成するように構成されたミラーリングモジュールであって、前記ミラーリングされたパケットが、前記元のパケットにおいて提供される情報の少なくともサブセットを含む、ミラーリングモジュールと、
前記ミラーリングされたパケットを負荷分散マルチプレクサーに送信するように構成された、ミラーパケット送信モジュールと、
前記元のパケットを前記元のパケットによって指定されたターゲット宛先に送信するように構成された、元のパケット送信モジュールと
を含む、スイッチ。
【請求項１１】
前記プロトコル関連特性が、トランスポート層プロトコルによって作成された少なくとも１つの情報項目によって表される、請求項３に記載の方法。
【請求項１２】
前記プロトコル関連特性が、ルーティングプロトコルによって作成された少なくとも１つの情報項目によって表される、請求項３に記載の方法。
【請求項１３】
前記指定された条件が、前記元のパケットは前記スイッチによってドロップされるべきであることを示す、請求項８に記載の方法。
【請求項１４】
前記ミラーリングされたパケットを前記マルチプレクサーで受信するステップと、
少なくとも１つの負荷分散の考慮事項に基づいて、処理モジュール候補のセットから処理モジュールを選択するステップと、
前記ミラーリングされたパケットを、選択された前記処理モジュールに送信するステップと
をさらに含む、請求項１に記載の方法。
【請求項１５】
少なくとも１つの負荷分散の考慮事項に基づいて、マルチプレクサー候補のセットから前記マルチプレクサーを選択するように構成されたターゲットマルチプレクサー選択モジュールをさらに含む、請求項１０に記載のスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、選択されたネットワークトラフィックの収集と分析に関する。
【背景技術】
【０００２】
[0001]ネットワーク内で発生する障害の原因やその他の異常事象を判定することは困難な場合がある。この難しさは、現代のネットワークの複雑さと、そのようなネットワークがいつでも処理する膨大な量の情報からもたらされる。経験豊富な分析者は、例えば、それらのコンポーネントによって記録された制御情報を調べることによって、故障の可能性が高いと仮定されたネットワークのコンポーネントの挙動を調べることによって、この問題に対処することができる。しかし、分析者は、検査された情報によって問題の原因が明らかになると自信を持つことはできない。分析者は、この懸念に対処するために分析の範囲を広げてもよいが、そのような戦術は分析者があまりにも多くの情報に圧倒される結果となる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]本明細書では、ネットワークの挙動を調査するための追跡システムについて説明する。動作中、ネットワーク内の各スイッチ（またはネットワーク内の少なくともいくつかのスイッチの各々）は、それが処理する各元のパケットが１つまたは複数のパケット検出ルールを満たすか否かを判定することができる。ルールを満たす場合、スイッチはミラーリングされたパケットを生成することができる。ミラーリングされたパケットは、少なくとも元のパケットの情報のサブセットを含む。次に、スイッチはミラーリングされたパケットを負荷分散マルチプレクサーに転送することができる。スイッチはまた、元のパケットを変更されていない形式で元のパケットで指定されたターゲット宛先に送信する。
【課題を解決するための手段】
【０００４】
[0003]ミラーリングされたパケットを受信すると、マルチプレクサーは、少なくとも１つの負荷分散の考慮事項に基づいて、候補となる処理モジュールのセットから処理モジュールを選択することができる。次に、マルチプレクサーは、ミラーリングされたパケットを選択された処理モジュールに送信し、そこで１つまたは複数の処理エンジンを使用して分析される。
【０００５】
[0004]スイッチによってホストされるパケット検出ルールは、アプリケーション特有の目的を考慮して、高い関心値とみなされるパケットのサブセットを選択するように設計できる。この挙動の結果として、追跡システムは、情報が多すぎて分析者が圧倒されることなく、ネットワークの望ましくない挙動（および望ましい可能性のある挙動）を効果的かつ迅速に特定することができる。
【発明の効果】
【０００６】
[0005]上記のアプローチは、様々なタイプのシステム、デバイス、コンポーネント、方法、コンピューター可読記憶媒体、データ構造、グラフィカルユーザーインターフェイス表示、製造品などで明示することができる。
【０００７】
[0006]本概要は、概念の選択を簡略化した形で紹介するために提供されており、これらの概念は、以下の詳細な説明でさらに説明される。本概要は、特許請求される主題の重要な特徴または本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を限定するために使用されることも意図していない。
【図面の簡単な説明】
【０００８】
【図１】[0007]追跡システムの一例の概要を示す図である。追跡システムは、分析のために選択された情報をネットワークから抽出する
【図２】[0008]図１の追跡システムの１つの非限定的な実装形態を示す図である。
【図３】[0009]ミラーリング機能を実行するように構成されたネットワークにおけるスイッチの１つの実装形態を示す図である。そのように構成されたスイッチは、図１の追跡システムによって使用されるミラーリング機能の１つのコンポーネントである。
【図４】[0010]図１の追跡システムの別のコンポーネントに対応するマルチプレクサーの１つの実装形態を示す図である。
【図５】[0011]図３のスイッチの多重化挙動を示す図である。
【図６】[0012]図４のマルチプレクサーの多重化挙動を示す図である。
【図７】[0013]図４のマルチプレクサーが、１つの実装形態により、その多重化機能を実行するために利用することができる、例示的なテーブルデータ構造を示す図である。
【図８】[0014]図３のスイッチによって出力される情報の例を示す図である。
【図９】[0015]図４のマルチプレクサーによって出力される情報の一例を示す図である。
【図１０】[0016]図１の追跡システムの別のコンポーネントである処理モジュールの１つの実装形態を示す図である。
【図１１】[0017]図１の追跡システムと対話するコンポーネントである、消費エンティティの１つの実装形態を示す図である。
【図１２】[0018]図１の追跡システムの別のコンポーネントである管理モジュールの１つの実装形態を示す図である。
【図１３】[0019]図３のスイッチの動作の１つの方法を説明するプロセスを示す図である。
【図１４】[0020]図３のスイッチのコンポーネントであるマッチングモジュールの動作の１つの方法を説明するプロセスを示す図である。
【図１５】[0021]図４のマルチプレクサーの動作の１つの方法を説明するプロセスを示す図である。
【図１６】[0022]図１０の処理モジュールの動作の１つの方法を説明するプロセスを示す図である。
【図１７】[0023]図１１の消費エンティティの動作の１つの方法を説明するプロセスを示す図である。
【図１８】[0024]図１２の管理モジュールの動作の１つの方法を説明するためのプロセスを示す図である。
【図１９】[0025]上記の図面に示された特徴の任意の態様を実施するために使用することができる例示的なコンピューティング機能を示す図である。
【発明を実施するための形態】
【０００９】
[0026]同じ番号が、本開示および図面を全体通じて、同様のコンポーネントおよび特徴を参照するために使用される。１００番台の数字は、図１において最初に見出される特徴を指し、２００番台の数字は、図２において最初に見出される特徴を指し、３００番台の数字は、図３において最初に見出される特徴を指す、などである。
【００１０】
[0027]本開示は以下のように構成されている。セクションＡは、例えば、ネットワークを通じて流れる特定のタイプのパケットを選択的に抽出することによって、ネットワークトラフィックを選択的に収集および分析するための例示的な追跡システムを説明する。セクションＢは、セクションＡの追跡システムの動作を説明する例示的な方法を説明する。セクションＣは、セクションＡおよびＢで説明した特徴の任意の態様を実装するために使用できる例示的なコンピューティング機能を説明する。
【００１１】
[0028]前置き事項として、図面のいくつかは、機能、モジュール、特徴、要素などと様々に呼ばれる１つまたは複数の構造的コンポーネントの文脈における概念を記述する。図面に示された様々なコンポーネントは、例えばコンピューター機器上で動作するソフトウェア、ハードウェア（例えば、チップ実装された論理機能）など、および／またはそれらの任意の組み合わせなど、任意の物理的および有形のメカニズムによる任意の方法で実装することできる。ある場合では、図面中の様々なコンポーネントの別個のユニットへの説明された分離は、実際の実装形態において対応する明確な物理的および有形のコンポーネントの使用を反映することができる。代わりに、または加えて、図に示された任意の単一のコンポーネントは、複数の実際の物理コンポーネントによって実装されてもよい。代わりに、または加えて、図面における任意の２つ以上の別個のコンポーネントの描写は、単一の実際の物理的コンポーネントによって実行される異なる機能を反映することができる。以下に説明する図１９のフローチャートは、図に示される機能の１つの例示的な物理的実装形態に関する追加の詳細を提供する。
【００１２】
[0029]他の図は、フローチャート形式の概念を説明している。この形式では、特定の操作は、特定の順序で実行される個別のブロックを構成するものとして記述されている。そのような実装形態は例示的であり、限定的ではない。本明細書で説明される特定のブロックは、一緒にグループ化され、単一の動作で実行され、特定のブロックは複数のコンポーネントブロックに分割され、特定のブロックは、本明細書に示されるものとは異なる順序で（ブロックを並列に実行する方法を含んで）実行され得る。フローチャートに示されるブロックは、例えば、コンピューター機器、ハードウェア（例えば、チップ実装論理機能）上で動作するソフトウェア、および／またはそれらの任意の組み合わせにより、任意の物理的および有形のメカニズムによって任意の方法で実施することができる。
【００１３】
[0030]用語に関しては、「構成される（ｃｏｎｆｉｇｕｒｅｄ  ｔｏ）」という語句は、識別された動作を実行するためにあらゆる種類の物理的および有形の機能を構成することができる任意の方法を包含する。機能は、例えば、コンピューター機器上で動作するソフトウェア、ハードウェア（例えば、チップ実装論理機能）など、および／またはそれらの任意の組み合わせを使用して動作を実行するように構成することができる。
【００１４】
[0031]用語「論理（ｌｏｇｉｃ）」は、タスクを実行するための物理的および有形の機能を含む。例えば、フローチャートに示される各動作は、その動作を実行するための論理コンポーネントに対応する。動作は、例えば、コンピューター機器上で動作するソフトウェア、ハードウェア（例えば、チップ実装された論理機能）など、および／またはそれらの任意の組み合わせを使用して実行することができる。コンピューティング機器によって実装される場合、論理コンポーネントは、実装されているが、コンピューティングシステムの物理的部分である電気コンポーネントを表す。
【００１５】
[0032]以下の説明は、１つまたは複数の特徴を「オプション」として識別することができる。このタイプの表現は、オプションとみなされるかもしれない特徴の網羅的な表示として解釈されるべきではなく、つまり、他の特徴は、字句では明示的に特定されていないが、オプションと見なすことができる。さらに、あらゆる単一のエンティティの記述は、複数のそのようなエンティティの使用を排除することを意図しておらず、同様に、複数のエンティティの記述は、単一のエンティティの使用を排除することを意図していない。さらに、記述は、識別された機能を実行するか、または特定されたメカニズムを実装する代替方法として、特定の特徴を説明する場合があるが、これらの特徴を任意の組み合わせで組み合わせることもできる。最後に、用語「例としての（ｅｘｅｍｐｌａｒｙ）」または「例示的な（ｉｌｌｕｓｔｒａｔｉｖｅ）」は、潜在的に多数ある実装形態のうちの１つの実装形態を指す。
Ａ．説明的な追跡システム
Ａ．１．概要
[0033]図１は、追跡システム１０２の一例の概要を示す。追跡システム１０２は、ネットワーク１０４を介して送信される選択されたパケットに関する情報を抽出し、次にそれらのパケットを分析する。１つの使用シナリオでは、分析者は、追跡システム１０２によって提供される情報を使用して、異常なまたは望ましくない事象を調査することができる。他の場合には、分析者は、追跡システム１０２に提供された情報を使用して、ネットワーク１０４における望ましい挙動を調査することができる。全体として、追跡システム１０２によって提供される情報は、どのような事象が調査されているかの原因に関する洞察を提供することができる。
【００１６】
[0034]他の潜在的利点の中でも、追跡システム１０２がネットワーク１０４から情報を選び出す選択性は、人間の分析者または他の消費者に提示される「ノイズ」の量を減少させ、それによってその人の調査を容易にする。それはまた、追跡システムのスケーラビリティーと全体的な効率にも寄与する。以下に説明する追跡システム１０２の他の態様は、追跡システム１０２によって提供されるパケット収集機能のスケーラビリティーおよび効率にさらに寄与する。
【００１７】
[0035]ネットワーク１０４は、代表的なスイッチ１０６などの複数のハードウェアスイッチで構成されている。例えば、各スイッチは、特定用途向け集積回路（ＡＳＩＣ）などによって提供される論理機能によって実装されてもよい。図示されていないが、ネットワーク１０４は、加えて、または代わりに、１つまたは複数のソフトウェア実装スイッチを含むことができる。各スイッチは、どのような方法で構築されても、１つまたは複数のルーティングの考慮事項に基づいて、ソースから受信した入力パケットを宛先にルーティングする主要な機能を実行する。ソースは、マルチホップパスに沿った別の「アップストリーム」スイッチ、またはパケットの根源の開始点に対応することができる。同様に、宛先は、パスに沿った別のスイッチ、またはパケットの最終宛先に対応することができる。
【００１８】
[0036]ネットワーク１０４は、図１に高レベル形式でのみ示されている。実際には、ネットワーク１０４は任意のトポロジを有することができる。このトポロジは、ネットワーク１０４内のスイッチの選択と、これらのスイッチの配置（および相互接続）を決定する。さらに、ネットワーク１０４は、任意の環境で使用することができる。ある場合には、例えば、ネットワーク１０４を使用して、データセンター内でパケットをルーティングし、外部エンティティとデータセンターとの間でパケットをルーティングすることができる。別の場合には、ネットワーク１０４は、企業環境で使用されてもよい。別の場合には、ネットワーク１０４は、例えば、２つ以上の環境（例えば、２つ以上のデータセンターの間など）間で情報をルーティングすることによって、データをルーティングすることができる。さらに他の用途も可能である。
【００１９】
[0037]追跡システム１０２は、２つの主要なコンポーネントである、ミラーリング機能、および収集および分析（ＣＡ）フレームワーク１０８を有する。ミラーリング機能は、ネットワーク１０４内の各スイッチのすべてによって提供されるミラーリングメカニズムを集合的に表す。他の実装形態では、スイッチのサブセットは、スイッチの全てではないが、ミラーリングメカニズムを含む。各ミラーリングメカニズムは、そのホスティングスイッチが１つまたは複数のパケット検出ルールに一致する元のパケットを受信すると、ミラーリングされたパケットを生成する。ミラーリングされたパケットは、元のパケットのヘッダー情報など、元のパケットから抽出された情報のサブセットを含む。ミラーリングされたパケットは、新しい宛先アドレス（元のパケットの元の宛先アドレスと比較して）を指定する新しいヘッダーも含む。次に、スイッチは、ミラーリングメカニズムによって割り当てられたアドレスに従って、ミラーリングされたパケットをＣＡフレームワーク１０８に渡す。次に、ＣＡフレームワーク１０８は、実装形態特有の様々な方法でミラーリングされたパケットを処理する。
【００２０】
[0038]より具体的には、スイッチは、１つまたは複数のマルチプレクサー１１０のセットから選択されたマルチプレクサーにミラーリングされたパケットを送信することができる。次に、選択されたマルチプレクサーは、ミラーリングされたパック化されたパケットを、少なくとも１つの負荷分散の考慮事項に基づいて、処理モジュール（ＰＭ）のセットの１つに送信する。次に、選択された処理モジュールは、１つまたは複数の処理エンジンを使用して、ミラーリングされたパケットを（他の以前に受信されたミラーリングされたパケットと共に）処理することができる。
【００２１】
[0039]少なくとも１つの消費エンティティ１１４は、ミラーリングされたパケットを取得するために処理モジュール１１２と対話することができる。次に、消費エンティティ１１４は、１つまたは複数の処理エンジンを使用して、ミラーリングされたパケットについて任意のアプリケーション特有の分析を実行することができる。ある場合では、消費エンティティ１１４は、コンピューティングデバイス上で実行される自動的方法で動作する解析プログラムに対応することができる。別の場合では、消費エンティティ１１４は、人間の分析者の指示の下で、コンピューティングデバイス上で実行される分析プログラムに対応することができる。いくつかのシナリオでは、消費エンティティ１１４はまた、特定のアプリケーションと関連している。この関連性を考慮すると、消費エンティティは、ネットワーク内の事象に特に着目しており、それ自体の用途に影響を与える可能性がある。
【００２２】
[0040]管理モジュール１１６は、追跡システム１０２の任意の態様を制御することができる。例えば、管理モジュール１１６は、ネットワーク１０４を通じて流れる特定のタイプのパケットをキャプチャするのに使用するために、ネットワーク１０４内のスイッチに、特定のパケット検出ルールをロードするように指示することができる。管理モジュール１１６は、任意の消費エンティティと対話することもできる。例えば、消費エンティティ１１４は、ネットワーク内の問題を識別し、それに応答して、スイッチにパケット検出ルールを伝搬するように管理モジュール１１６に要求することができ、これらのルールの結果として生成されたミラーリングされたパケットは、消費エンティティ１１４が問題の原因を識別するのを助ける。
【００２３】
[0041]上記の説明を明確にするために、図１は、ミラーリングされた対応物とともにネットワーク１０４を通じた１つの元のパケットの流れを示す。後述のサブセクション（下記）は、図１の代表的なフローを説明する際に導入された各操作に関する追加の例示的な詳細を提供する。
【００２４】
[0042]図示されているように、任意のソースエンティティ１１８は、それを任意の宛先エンティティ１２２に送信する最終的な意図で、元のパケット（Ｐｏ）１２０をネットワーク１０４に送信する。例えば、限定するものではないが、ソースエンティティ１１８は第１のコンピューティングデバイスに対応し、宛先エンティティ１２２は第２のコンピューティングデバイスに対応することができる。より具体的には、例えば、宛先エンティティ１２２は、特定のアプリケーションをホストするデータセンターに配置されたサーバーコンピューティングデバイスに対応することができる。ソースエンティティ１１８は、任意の目的のためにアプリケーションと対話したい任意のコンピューティングデバイスに対応することができる。
【００２５】
[0043]パケットは、その用語が本明細書で使用されるように、任意の情報単位を指す。１つの特定の実装形態では、元のパケット１２０は、ＩＰプロトコルによって指定されたヘッダーおよびペイロードを有するインターネットプロトコル（ＩＰ）パケットに対応する。より具体的には、元のパケットは、宛先エンティティを識別する仮想ＩＰ（ＶＩＰ）アドレスを提供することができる。宛先エンティティ１２２は、代わりに、直接ＩＰ（ＤＩＰ）アドレスに関連付けられてもよい。他の機能の中でも、ネットワーク１０４内の少なくとも１つのコンポーネントは、ＶＩＰアドレスを宛先エンティティ１２２の適切なＤＩＰアドレスにマッピングする。
【００２６】
[0044]ネットワーク１０４は、任意のルーティングプロトコルを使用して、元のパケット１２０をそのスイッチングファブリックを通じて、ソースエンティティ１１８から宛先エンティティ１２２にルーティングすることができる。ルートを確立する際に役割を果たすことができるこのようなプロトコルの１つは、ＲＦＣ４２７１で定義されているようなボーダーゲートウェイプロトコル（ＢＧＰ）である。さらに、元のパケット１２０上で動作するネットワーク１０４内の異なるコンポーネントは、元のパケット１２０がそのルートを通過する際に、元のパケット１２０に（またはそこから）様々なカプセル化ヘッダーを付加する（または取り除く）ことに留意する。
【００２７】
[0045]より具体的には、図１は、元のパケット１２０が複数のセグメントまたはホップを有するパス１２４を通過する単なる実例を示す。第１のセグメントでは、元のパケット１２０がスイッチ１０６にルーティングされる。第２のセグメントでは、元のパケット１２０は別のスイッチ１２６にルーティングされる。第３のセグメントでは、元のパケット１２０は別のスイッチ１２８にルーティングされる。第４のセグメントでは、元のパケット１２０は宛先エンティティ１２２にルーティングされる。実際には、パス１２４は、任意の数のホップ（単一ホップを含む）を有することができ、スイッチによって定義されたスイッチングファブリック内の任意のスイッチを通過することができる。さらに、上述したように、ネットワーク１０４は、１つまたは複数のトンネリングプロトコルを使用して、元のパケットを他の包囲パケットにカプセル化することができる。そのような提供内容は本質的に環境特有であり、説明を容易にするために図１からは除かれている。
【００２８】
[0046]各スイッチ上（またはスイッチの各サブセット上）のミラーリングメカニズムは、元のパケットを分析して、最初に１つまたは複数のパケット検出ルールを満たしているか否かを判定する。そうであれば、ミラーリングメカニズムは、元のパケット自体を元のままにして、パス１２４に沿った元のパケットのルーティングを妨害することなく、元のパケットに対応するミラーリングパケットを生成する。
【００２９】
[0047]例えば、スイッチ１０６の動作を考える。（他のスイッチは、元のパケット１２０を処理するときに、同じ挙動を示す。）スイッチ１０６は、最初に、元のパケット１２０が少なくとも１つのパケット検出ルールと一致すると判定すると仮定する。次に、それはミラーリングされたパケット１３０を生成する。次に、スイッチ１０６は、ミラーリングされたパケット１３０をパス１３２に沿って（マルチプレクサー１１０のうちの１つに対応する）指定された宛先に転送することができる。より具体的には、パス１３２に沿った異なる伝搬エンティティは、カプセル化ヘッダーをミラーリングされたパケット１３０に付加する（または取り除く）ことができる。しかし、説明を簡単にするために、図１は、ミラーリングされた情報を単にミラーリングされたパケット１３０と呼ぶ。
【００３０】
[0048]より具体的には、１つの実装形態では、スイッチ１０６は、マルチプレクサー１１０のセットの中のマルチプレクサーを選択するために、少なくとも１つの耐負荷考慮事項を適用することができる。例えば、スイッチ１０６がマルチプレクサー１３４を選択すると仮定する。他の実装形態では、ＣＡフレームワーク１０８は、単一のマルチプレクサーを提供することができ、その場合、スイッチ１０６は、複数の利用可能なマルチプレクサーの中から選択することなく、ミラーリングされたパケット１３０をそのマルチプレクサーに送信する。
【００３１】
[0049]マルチプレクサー１３４は、少なくとも１つの耐負荷考慮事項に基づいて、ミラーリングされたパケット１３０を処理モジュール１１２の１つにさらにルーティングする機能を実行する。マルチプレクサー１３４はまた、ネットワーク１０４を通じるフローに関係するミラーリングされたパケットが同じ処理モジュールに送信されるように、ターゲット処理モジュールを選択する。マルチプレクサー１３４自体は、任意の方法で実装することができる。ある場合では、マルチプレクサー１３４は、特定用途向け集積回路（ＡＳＩＣ）によって提供される論理機能などの、ハードウェアにより実装されたマルチプレクサーに対応することができる。別の場合では、マルチプレクサー１３４は、サーバーコンピューティングデバイス上で動作する多重化プログラムのようなソフトウェアにより実装されたマルチプレクサーに対応する。他の場合には、マルチプレクサー１１０の集合は、ハードウェアマルチプレクサーとソフトウェアマルチプレクサーとの組み合わせを含むことができる。
【００３２】
[0050]マルチプレクサー１３４が、ミラーリングされたパケット１３０を特定の処理モジュール１３６にルーティングするものと仮定する。一実装形態では、処理モジュール１３６は、サーバーコンピューティングデバイスに対応することができる。受信時に、処理モジュール１３６は、ミラーリングされたパケット１３０に対して様々な動作を実行することができる。このような機能の１つでは、処理モジュール１３６は、ミラーリングされたパケットを、同じパス１２４（存在する場合）に関係する他のパケットと関連付けることができ、次にミラーリングされたパケットをスイッチによって作成された順序でソートする。例えば、元のパケットがパス１２４の通過を完了すると、処理モジュール１３６は、スイッチ１０６、１２６、および１２８によって生成されたミラーリングされたパケットのシーケンスに対応するパケットシーケンス１３８を生成することができる。
【００３３】
[0051]消費エンティティ１１４は、処理モジュール１３６によって記憶された任意のパケット関連情報を抽出し、次にその情報を任意の方法で解析することができる。以下の記述は、消費エンティティ１１４によって実行され得る分析の例を提供する。図１は、具体的に、消費エンティティ１１４が、ネットワーク１０４を通じる元のパケット１２０のパス１２４に関連付けられたシーケンス１３８を少なくとも抽出するか、または別の方法でアクセスすることを示している。他の場合には、消費エンティティ１１４は、パケットのシーケンスではなく、特定のミラーリングされたパケットを要求および受信することができる。
Ａ．２．特定のネットワーク環境の例
[0052]図２は、図１の追跡システム１０２の１つの非限定的な実装形態を含む環境２０２を示す。環境２０２は、複数のサーバーなどの複数のコンピューティングデバイス２０４を含むデータセンターに対応する。ネットワーク２０６は、データセンター内のコンピューティングデバイス２０４がそのデータセンター内の他のコンピューティングデバイスと通信することを可能にする。ネットワーク２０６はまた、外部エンティティ２０８がコンピューティングデバイス２０４と対話することを可能にする。インターネットなどのワイドエリアネットワーク２１０は、データセンターのネットワーク２０６をエンティティ２０８と結合することができる。
【００３４】
[0053]ネットワーク２０６は、任意のトポロジを有することができる。図２の特定の非限定的な例に示すように、ネットワーク２０６は、ファットツリー階層トポロジ内に複数のスイッチを含む。限定するものではないが、スイッチは、コアスイッチ２１２、アグリゲーションスイッチ２１４、トップオブラック（ＴＯＲ）スイッチ２１６などを含むことができる。さらに、ネットワーク２０６は、コンピューティングデバイス２０４をコンテナ２１８および２２０などのコンテナに編成することができる。実際のデータセンターには、より多くのスイッチとコンピューティングユニットが含まれている場合があり、図２は、データセンター環境の機能の代表的かつ単純なサンプルのみを示している。
【００３５】
[0054]ネットワーク２０６内のすべてのスイッチ、またはその一部のサブセットは、ミラーリングメカニズムを含む。ミラーリングメカニズムは、（元のパケットが１つまたは複数のパケット検出ルールを満たしていると仮定して）元のパケットを処理するときにミラーリングされたパケットを生成する。次に、ミラーリングメカニズムは、ミラーリングされたパケットを収集および分析（ＣＡ）フレームワーク２２２に転送する。
【００３６】
[0055]より具体的には、ＣＡフレームワーク２２２は、ミラーリングされたパケットの収集および分析を処理するための専用機器を提供することができる。言い換えれば、ＣＡフレームワーク２２２は、ネットワーク２０６を通じる元のパケットのルーティングにおいていかなる役割も果たしていない可能性がある。（しかし、他の実装形態では、ＣＡフレームワーク２２２は元のパケットをルーティングし、ミラーリングされたパケットを処理するという二重の役割を果たすことができる。）ある場合には、ＣＡフレームワーク２２２は、１つまたは複数のマルチプレクサー２２４を含む。マルチプレクサーは、ハードウェアマルチプレクサーに対応することができ、より具体的には、多重化役割を実行するように再構成されたハードウェアスイッチに対応することができる。代わりに、または加えて、マルチプレクサー２２４の少なくともサブセットは、ソフトウェアにより実装されたマルチプレクサー（例えば、１つまたは複数のサーバーコンピューティングデバイスに対応する）に対応してもよい。
【００３７】
[0056]マルチプレクサー２２４は、ネットワーク２０６のトップレベルスイッチ２１２および／または他のスイッチに結合することができる。さらに、マルチプレクサー２２４は、１つまたは複数の処理モジュール２２６に直接結合されてもよい。あるいは、図２に示すように、マルチプレクサー２２４は、任意の接続トポロジを使用して、スイッチ２２８を介して処理モジュールに接続することができる。
Ａ．３．ミラーリング機能を有する例示的なスイッチ
[0057]図３はミラーリング機能を有する例示的なスイッチ３０２を示しており、これは元のパケットのミラーリングされた対応物であるパケットを生成して転送する能力を有することを意味する。上述したように、スイッチ３０２は、ハードウェアユニット（例えば、ＡＳＩＣ）として実装することができる。
【００３８】
[0058]高レベルの観点から、スイッチ３０２は、３つの主な機能を実行する機能を含むことができる。機能３０４は、スイッチ３０２が、受信した元のパケットをターゲット宛先に転送する従来の役割を実行することを可能にする。機能３０６は、スイッチの動作のミラーリング態様を実行する。そして機能３０８は、様々な管理機能を実行する。より具体的には、説明を容易にするために、図３は、これら３つの機能（３０４、３０６、３０８）を３つの別々のドメインとして示している。しかしながら、いくつかの実装形態では、単一の物理的モジュールが、図３に示された別個のドメインに起因する２つ以上の機能を実行してもよい。
【００３９】
[0059]機能３０４から開始して、受信モジュール３１０は任意のソースから元のパケット１２０を受信する。ソースは、図１のソースエンティティ１１８または別の「アップストリーム」のスイッチに対応することができる。ルート選択モジュール３１２は、次のホップ３１４に対応して、元のパケットの次の宛先を選択する。次のホップ３１４は、代わりに、元のパケットの最終的なターゲット宛先、またはマルチホップパスに沿った別の「ダウンストリーム」スイッチに対応してもよい。ルート選択モジュール３１２は、次のホップ３１４の選択にあたって、データストア３１６において提供されるルーティング情報を求めることができる。ルート選択モジュール３１２はまた、ＢＧＰのような次のホップ３１４を選択する際に任意のプロトコルを使用することができる。送信モジュール３１８は、元のパケットを次のホップ３１４に送信する。図３には明示されていないが、送信モジュール３１８は、次のホップ３１４に送信する前に、元のパケットを別のパケットにカプセル化するために任意のカプセル化プロトコルを使用することができる。
【００４０】
[0060]ミラーリング機能３０６に関して、マッチングモジュール３２０は、受信された元のパケット１２０が、データストア３２２に記憶されているパケット検出ルールのいずれかと一致するか否かを判定する。例示的なルールを以下に示す。ミラーリングモジュール３２４は、元のパケット１２０が任意の１つまたは複数のパケット検出ルールを満たす場合に、ミラーリングされたパケット３２６を生成する。上述したように、ミラーリングモジュール３２４は、元のパケットのヘッダーなどの元のパケット１２０から情報のサブセットを抽出することによって、ミラーリングされたパケット３２６を生成することができる。ミラーリングモジュール３２４はまた、元のパケット１２０を処理する過程でスイッチ３０２自体によって生成されたメタデータなど、元のパケット１２０には存在しない情報を追加することもできる。いくつかの実装形態では、ミラーリングモジュール３２４は、カリフォルニア州サンノゼのシスコシステムズ社によって提供されるＥｎｃａｐｓｕｌａｔｅｄ  Ｒｅｍｏｔｅ  Ｓｗｉｔｃｈｅｄ  Ｐｏｒｔ  Ａｎａｌｙｚｅｒ（ＥＲＳＰＡＮ）技術のような、ミラーリングされたパケット３２６を作成するために利用可能なパケットコピー技術を使用することができる。
【００４１】
[0061]マルチプレクサー選択モジュール３２８は、ミラーパケット３２６を送信する（図１の）マルチプレクサー１１０のセットの中のマルチプレクサーを選択する。図３の文脈では、マルチプレクサー選択モジュール３２８がマルチプレクサー３３２を選択すると仮定する。例えば、マルチプレクサー選択モジュール３２８は、ハッシュアルゴリズムを使用して、元のパケットのＩＰヘッダーのヘッダー内に提供された異なる情報アイテム（ミラーリングされたパケットにコピーされた情報である）などの、ミラーリングされたパケットによって搬送される情報アイテムの任意のタプルをハッシュすることができる。ハッシング演算は、代わりに特定のマルチプレクサーにマッピングされるハッシュ結果を生成する。ミラーリングメカニズムを持つすべてのスイッチは、同じハッシュ関数を使用する。全体的に、ハッシュ操作は、利用可能なマルチプレクサー１１０のセットにわたってミラーリングされたパケットを広げる効果を有する。データストア３３０は、マルチプレクサー選択モジュール３２８がその動作を実行する際に参照する情報を提供することができ、例えば、データストア３３０は、例えば、それぞれのアドレスを提供することによって、利用可能なマルチプレクサー１１０を識別することができる。
【００４２】
[0062]送信モジュール３３４は、ミラーリングされたパケットをマルチプレクサー３３２に送信する。ある場合には、送信モジュール３３４は、ミラーリングされたパケットをトンネリングパケットにカプセル化するために任意のトンネリングプロトコル（ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ））を使用して、ミラーリングされたパケットをトンネリングパケットにカプセル化し、次にトンネリングプロトコルヘッダーの「先頭に」多重化ＩＰヘッダーを追加することができる。ＧＲＥは、例えばＲＦＣ２７８４に記載されている。送信モジュール３１８は、カプセル化されたミラーリングされたパケット３３６を生成する。
【００４３】
[0063]管理機能３０８に関して、スイッチ３０２は、他のそれぞれのタスクを処理するための他の制御モジュール３３８を含むことができる。例えば、ルーティング管理モジュールは、スイッチ３０２の存在をネットワーク内の他のスイッチにブロードキャストし、他のスイッチの存在を決定し、データストア（３１６，３３０）内のルーティング情報を更新するなどのタスクを実行することができる。インターフェイスモジュール３４０は、管理モジュール１１６から管理情報および他の命令を受信することができる。
【００４４】
[0064]ここで、マッチングモジュール３２０をより詳細に参照すると、そのコンポーネントは、元のパケット１２０を異なるタイプのパケット検出ルールと比較することができる。以下の説明は、パケット検出ルールの代表的な例を提供する。そのようなリストは、限定ではなく例示の精神で提供され、他の実装形態は、以下に述べられていないパケット検出ルールの追加タイプに依存することができる。
【００４５】
[0065]第１の種類のパケット検出ルールは、例えば、元のパケット１２０のヘッダーおよび／または本体内の、指定されたプロトコル関連の１つまたは複数の情報項目を含むなど、プロトコル関連の特性を表す場合、元のパケット１２０がミラーリングされることを指定することができる。その情報は、例えば、伝送制御プロトコル（ＴＣＰ）などのトランスポートレベルエラーチェックプロトコルによって生成されるフラグに対応することができる。別の場合では、トリガー条件は、ＢＧＰなどのルーティングプロトコルによって生成された１つまたは複数の情報アイテムに対応することができる。
【００４６】
[0066]第２の種類のパケット検出ルールは、元のパケット１２０が、例えば、アプリケーション関連の１つまたは複数の情報アイテムを含むことによって、特定のアプリケーションを起源とすることを表す場合、元のパケット１２０がミラーリングされることを指定することができる。アプリケーション関連情報項目（複数可）は、フラグ、コード、アドレスなどに対応することができる。アプリケーションは、通常の実行中に生成するパケットに情報項目（複数可）を追加することができる。
【００４７】
[0067]第３の種類のパケット検出ルールは、ユーザーが作成したパケット検出ルールに対応する。この種のルールは、元のパケットがユーザー指定の一致条件を満たす場合にミラーリングされることを指定する。ユーザーは、ネットワーク管理者、テストエンジニア、アプリケーションまたはシステム開発者、ネットワーク１０４のエンドユーザーなどに対応することができる。例えば、ユーザーは、識別されたヘッダー情報を含むあらゆるパケットがミラーリングされるべきである、と指定するルールを作っても良い。
【００４８】
[0068]第４の種類のパケット検出ルールは、元のパケット１２０が、スイッチ３０２が元のパケット１２０を処理したときに特定の条件または状況に遭遇したことを表す場合に、ミラーリングされるべきであることを指定することができる。例えば、ルールは、スイッチ３０２によって追加された元のパケット内の情報項目を検出するとトリガーされてもよく、その情報項目は、元のパケット１２０を処理するときにスイッチ３０２がエラー条件または他の事象に遭遇したことを示す。
【００４９】
[0069]より具体的には、例えば、元のパケット１２０を転送するためにスイッチ３０２によって使用される機能３０４は、連続した元のパケット１２０に対して一連の動作が実行される処理パイプラインとして実装することができる。１つまたは複数の段階で、エラー検出機能３４２は、元のパケット１２０の処理におけるエラー条件を検出することができる。例えば、分析の受信またはルート選択フェーズ中に、エラー検出機能３４２は、元のパケット１２０が破損しており、意味的に解釈することができないため、次のホップ３１４に転送することができないと判定することができる。それに応答して、エラー検出機能３４２は、フラグまたは他の情報項目を元のパケット１２０に付加し、それがドロップされることを示すことができる。次に、機能３０４の処理パイプラインの後の段階は、元のパケット１２０をドロップする明示的なステップを実行することができる。
【００５０】
[0070]しかし、ドロップが発生する前に、マッチングモジュール３２０は、追加された情報アイテムの存在を検出することができ、それに応答して、ミラーリングモジュール３２４は、元のパケット１２０に情報を追加してミラーリングすることができる（述べたように、そのパケットは最終的にドロップされるが）。このようなミラーリングされたパケットは、分析中にパケットドロップの原因を特定するのに有用な情報を提供する。
【００５１】
[0071]マッチングモジュール３２０は、必ずしも受信段階ではなく、スイッチ３０２によって実行される処理の任意の段階で、マッチングモジュール３２０が元のパケット１２０をパケット検出ルールと比較できることを全体的に示す入力３４４を含む。このように、状況によっては、元のパケット１２０は、最初の受信時に、パケット検出ルールをトリガーする特定の情報フィールドを含むことができないが、スイッチ３０２自体は、その処理の後の段階でトリガー情報項目を追加してもよく、マッチングモジュール３２０に、修正されたパケットをルールの１つと後で首尾よく一致させるよう促す。
【００５２】
[0072]さて、追跡システム１０２は、パケットドロップを検出するための追加の技術を提供することができる。例えば、処理モジュールまたは消費エンティティは、ネットワークの元のパケットの通過のパスに沿って生成されたミラーリングされたパケットのシーケンスを分析することによって、パケットドロップの存在を検出することができる。元のパケットが意図された最終的な宛先に到達しなかったことによって証明されるように、パケットドロップはシーケンスの早すぎる切り捨てにおいてそれ自体を明示することができる。または、シーケンスは、ホップ宛先がパケットを受信することが期待されていたが、そうではなかったことを示すシーケンス内の「ホール」を明らかにすることができる（その場合、パケットは最終的に最終宛先に到達した可能性があるが）。
【００５３】
[0073]他の状況では、スイッチ３０２は元のパケット１２０にメタデータ情報を追加して、元のパケット１２０を処理するときに他の何らかの条件にスイッチ３０２が遭遇したことを示すことができ、その場合にその条件は必ずしもエラーに関連するわけではない。
【００５４】
[0074]第５の種類のパケット検出ルールは、元のパケット１２０が、ミラーリングされるべき識別されたサービスタイプを指定する場合、ミラーリングされるべきであることを指定することができる。例えば、そのタイプのパケット検出ルールは、元のパケット１２０などによって指定された差別化サービスコードポイント（ＤＳＣＰ）値に基づいて元のパケット１２０をミラーリングすることを決定することができる。
【００５５】
[0075]第６の種類のパケット検出ルールは、元のパケット１２０がピング関連アプリケーションによって生成された場合にミラーリングされることを指定することができる。より具体的には、ピング関連アプリケーションは、元のパケットをターゲットエンティティに送信することによって動作し、その際ターゲットエンティティは、元のパケットへの応答の送信を要求される。
【００５６】
[0076]繰り返すが、他の環境で追加のタイプのパケット検出ルールを適用することができる。例えば、特定のＩＰソースおよび／または宛先アドレス、またはＴＣＰもしくはＵＤＰソースおよび／または宛先ポートなどの検出時に、他のルールがトリガーされてもよい。さらに、いくつかの場合では、元のパケット１２０内の単一の情報アイテムの検出時に、元のパケット１２０内の単一のフラグなどのパケット検出ルールをトリガーすることができる。しかし、他の場合には、元のパケット１２０内の２つ以上の情報項目の組み合わせ、例えば元のパケット１２０内の２つのフラグの組合せの検出時に、パケット検出ルールがトリガーされてもよい。さらに上記のいずれの場合も、情報項目は、元のパケット１２０のヘッダーおよび／または本文に現れることがある。代わりに、または加えて、パケット検出ルールは、元のパケット１２０の他の特性（複数可）、すなわち、元のパケットのヘッダーまたは本体中の特定の情報項目の有無以外のいくつかの特性によってトリガーされてもよい。例えば、元のパケット１２０が破損しているか、または何らかの他のエラーがあるか、または他の一致条件を満たすことを検出したときにルールはトリガーすることができる。
【００５７】
[0077]しばらく図の順序を先に移り、図５は、図３のマルチプレクサー選択モジュール３２８によって実行される多重化機能を示す。そこに示されているように、マルチプレクサー選択モジュール３２８は、いくつかの拡散アルゴリズム５０６（元のパケットのＩＰヘッダーのあるタプルで動作するハッシングアルゴリズムなど）を使用して、元のパケット５０２をマルチプレクサー５０４のセットの１つにマッピングする。
【００５８】
[0078]より具体的には、ある場合には、各マルチプレクサーは、それ自身の固有のＶＩＰアドレスによって表されてもよい。したがって、マルチプレクサー選択モジュール３２８は、異なるＶＩＰアドレスの中から選択する効果を有する。別の場合では、マルチプレクサーの集合は異なる直接ＤＩＰアドレスを有するが、同じＶＩＰアドレスを有することができる。ミラーリングされたパケットをマルチプレクサー間に分散させるために、任意の負荷分散プロトコル（Ｅｑｕａｌ−Ｃｏｓｔ  Ｍｕｌｔｉ−Ｐａｔｈ  Ｒｏｕｔｉｎｇ（ＥＣＭＰ）など）を使用できる。ＥＣＭＰはＲＦＣ２９９１で定義されている。
【００５９】
[0079]図８は、ミラーリング可能なスイッチ３０２の出力で生成されるカプセル化されたミラーリングされたパケット３３６の例示的な構造を示す。カプセル化されたミラーリングされたパケット３３６は、例えば少なくとも元のパケット１２０のヘッダーを提供することによって、例えば元のパケット１２０内の情報のサブセットに対応して、ミラーリングモジュール３２４によって生成される、上記で指定されたミラーリングされたパケット３２６を含む。カプセル化外部フィールドは、ＧＲＥトンネリングヘッダーなどのミラートンネリングヘッダー８０２を含む。次のカプセル化外部フィールドは、ミラーＩＰヘッダー８０４を含む。他の実装形態は、ミラーリングされたパケット３２６をカプセル化する他の方法を採用することができる。
Ａ．４．例示的なマルチプレクサー
[0080]図４は、マルチプレクサー４０２の１つの実装形態を示す。マルチプレクサー４０２は、図１に示すマルチプレクサー１１０のセットの１つに対応し得る。または、マルチプレクサー４０２は、追跡システム１０２によって提供される唯一のマルチプレクサーに対応してもよい。マルチプレクサー４０２は、ハードウェアにより実装されたデバイスまたはソフトウェアにより実装されたデバイス、またはそれらのいくつかの組み合わせに対応することができる。前者の場合、ハードウェアマルチプレクサーは、多重化機能を実行するために再プログラムされ再利用される一般商品スイッチに対応することができる。または、ハードウェアマルチプレクサーは、以下に説明する機能を実行するように構成されたカスタム設計されたコンポーネントに対応することができる。
【００６０】
[0081]マルチプレクサー４０２は、多重化機能を管理するための機能４０６と共に、実際の多重化機能を実行するための機能４０４を含む。例えば、機能４０４は、ミラーリングされたパケット４１２を受信するための受信モジュール４１０を含むことができる。（より正確には、ミラーリングされたパケット４１２は、スイッチ３０２の出力で生成されたカプセル化されたミラーリングされたパケット３３６の種類に対応するが、下記では簡潔さのため単に「ミラーリングパケット」４１２と呼ばれる。）機能４０４はまた、１セットの候補処理モジュール１１２の中から処理モジュールを選択するためのＰＭ選択モジュール４１４を含むことができる。ＰＭ選択モジュール４１４は、その動作を実行する際にデータストア４１６内のルーティング情報を求める。ＰＭ選択モジュール４１４が、ミラーリングされたパケット４１２をＰＭ４１８に送信することを選択すると仮定する。送信モジュール４２０は、ミラーリングされたパケット４１２をＰＭ４１８に送信する。そうすることで、送信モジュール４２０は、ミラーリングされたパケット４１２をトンネリングプロトコルヘッダー（ＧＲＥヘッダーなど）にカプセル化し、その情報をさらに別の外部ＩＰヘッダーにカプセル化して、カプセル化されたミラーリングされたパケット４２２を生成することができる。制御関連モジュール４２４は、マルチプレクサーの動作の任意の態様を管理することができる。例えば、制御関連モジュール４２４は、ＰＭのアドレスを識別するデータストア４１６に記憶するためのアドレス情報を提供することができる。インターフェイスモジュール４２６は、例えば、マルチプレクサー４０２の動作を構成するために使用される管理モジュール１１６からの制御命令を受信することによって、（図１の）管理モジュール１１６と対話する。
【００６１】
[0082]ＰＭ選択モジュール４１４は、任意の負荷分散の考慮事項に基づいて、ＰＭ１１２のセットからＰＭを選択することができる。１つのアプローチでは、ＰＭ選択モジュール４１４は、ハッシングアルゴリズムを使用して、ミラーリングされたパケットにもキャプチャされた情報である元のパケットのヘッダーに含まれる情報項目をハッシュする。結果として生じるハッシュは、処理モジュール１１２の１つにマッピングされる。ハッシュアルゴリズムはまた、同じパケットフローに関係するパケットが同じ処理モジュールにマッピングされることを保証する。追跡システム１０２は、元のパケット（ハッシュアルゴリズムへの入力キーとして機能する）から、元のパケットがネットワーク１０４を通じるパスを通過する際に同じままであるか、またはハッシュアルゴリズムによって作用されたときに同じ出力ハッシュ値を生成する、入力情報項目を選択することによって、この結果を達成することができる。さらに、追跡システム１０２は、すべてのマルチプレクサー１１０に対して同じハッシングアルゴリズムを展開する。
【００６２】
[0083]図６は、図４のＰＭ選択モジュール４１４によって実行される多重化機能を示す。そこに示されているように、ＰＭ選択モジュール４１４は、（上述したハッシュアルゴリズムのような）いくつかの拡散アルゴリズム６０６を使用して、受信したミラーパケット６０２をＰＭ６０４のセットの１つにマッピングする。
【００６３】
[0084]ある場合には、各処理モジュール１１２は、それ自身の固有のＶＩＰアドレスによって表されてもよい。したがって、ＰＭ選択モジュール４１４は、異なるＶＩＰアドレスの中から選択する効果を有する。別の場合には、処理モジュール１１２の集合は異なる直接アドレス（ＤＩＰ）であるが、同じＶＩＰアドレスを有することができる。任意の負荷分散プロトコル（ＥＣＭＰなど）を使用して、ミラーリングされたパケットを処理モジュール１１２の間に広めることができる。
【００６４】
[0085]図７は、ＰＭ選択モジュール４１４がその多重化機能を実行するために使用できる例示的なテーブルデータ構造７０２を示す。データストア４１６は、テーブルデータ構造７０２を記憶することができる。より具体的には、図７は、マルチプレクサー４０２が、ハードウェアスイッチを再プログラミングし、再利用することによって生成される実装形態に対応する。その場合、スイッチは、これらのテーブルの本来の機能ではない多重化機能をサポートするために、再プログラミングおよび再利用可能な１セットのテーブルを有することができる。
【００６５】
[0086]より具体的には、一実装形態では、テーブルデータ構造７０２は、テーブルＴ１、テーブルＴ２、テーブルＴ３、およびテーブルＴ４を含む４つのリンクされたテーブルのセットを含む。図７は、テーブル内のいくつかの代表的なエントリを示しており、高レベルの方法で示されている実際には、エントリはどのような形式も取ることができる。マルチプレクサー４０２が、例えば、ミラーリングされたパケット４１２に対応する、任意のソースからのパケットを受信すると仮定する。パケットは、パケットが向けられる宛先に関連する特定のアドレスを指定するヘッダーを有する。ＰＭ選択モジュール４１４は、最初に、入力アドレスをインデックスとして使用して、第１のテーブルＴ１内のエントリ（ｅｎｔｒｙｗ）を突き止める。そのエントリは、次に、第２のテーブルＴ２の別のエントリ（ｅｎｔｒｙｘ）を指す。そのエントリは、次に、第３のテーブルＴ３のエントリの連続するブロック７０４を指す。ＰＭ選択モジュール４１４は、任意の選択論理に基づいて、ブロック７０４内のエントリの１つを選択する。例えば、上述の説明のように、ＰＭ選択モジュール４１４は、元のパケットのＩＰヘッダーから抽出された１つまたは複数の情報項目をハッシュして、ハッシュ結果を生成することができ、そのハッシュ結果は、ブロック７０４のエントリに関連付けられたビンの１つに入り、そのビンに関連するエントリを選択する。第３のテーブルＴ３内の選択されたエントリ（例えば、ｅｎｔｒｙｙ２）は、第４のテーブルＴ４内のエントリ（ｅｎｔｒｙｚ）を指す。
【００６６】
[0087]この段階では、ＰＭ選択モジュール４１４は、特定のＰＭモジュールに関連付けられたアドレスを生成するために、第４のテーブル内のｅｎｔｒｙｚによって与えられた情報を使用することができる。次に、送信モジュール４２０は、例えばカプセル化されたミラーリングされたパケット４２２に対応する、新しいパケットにパケットをカプセル化する。次に、送信モジュール４２０は、カプセル化されたミラーリングされたパケット４２２を選択されたＰＭに送信する。
【００６７】
[0088]一実装形態では、テーブルＴ１はＬ３テーブルに対応し、テーブルＴ２はグループテーブルに対応し、テーブルＴ３はＥＣＭＰテーブルに対応し、テーブルＴ４はトンネリングテーブルに対応してもよい。これらは、商品ハードウェアスイッチが本質的に提供することができる表であるが、図７に指定された方法で互いにリンクされてはいない。また、上記で指定された種類のマッピング情報で満たされていない。より具体的には、いくつかの実装形態では、これらのテーブルは、ネットワーク内のネイティブパケット転送機能を実行する際に使用されるエントリを有するスロット、および空き（未使用）スロットを含む。追跡システム１０２は、上記の特定の方法でテーブルをリンクすることができ、次に未使用のスロットにエントリをロードして多重化目的のマッピング情報のインスタンスを集合的に提供することができる。
【００６８】
[0089]図９は、マルチプレクサー４０２の出力で生成される、カプセル化されたミラーリングされたパケット４２２の例示的な構造を示す。カプセル化されたミラーリングされたパケット４２２は、その第１の部分として、スイッチ３０２の出力で生成される、カプセル化されたミラーリングされたパケット３３６を含む。より具体的には、カプセル化されたミラーリングされたパケット４２２は、ミラーリングされたパケット３２６と、ミラートンネリングヘッダー８０２と、ミラーＩＰヘッダー８０４とを含む。さらに、カプセル化されたミラーリングされたパケット４２２は、ＧＲＥトンネリングヘッダーなどの新しいカプセル化ロードバランサートンネリングヘッダー９０２を含む。次のカプセル化外部フィールドは、ロードバランサーＩＰヘッダー９０４を含む。他の実装形態は、ミラーリングされたパケット情報をマルチプレクサー４０２の出力でミラーリングされたパケット情報をカプセル化する他の方法を採用することができる。
【００６９】
[0090]最終的な解説として、マルチプレクサー１１０は、特にマルチプレクサー１１０が再利用されたハードウェアスイッチまたは他のハードウェアデバイスに対応する場合、高いスループットを有する。この特性は、追跡システム１０４が高トラフィック量を処理することを可能にする１つの特徴であり、この特性はまた、追跡システム１０４のスケーラビリティーを促進する。
Ａ．５．例示的な処理モジュール
[0091]図１０は、図１の追跡システム１０２の別のコンポーネントである処理モジュール１００２の１つの実装形態を示す。処理モジュール１００２は、マルチプレクサー１１０からミラーリングされたパケットのストリームを受信する。上述したように、マルチプレクサー１１０は、ネットワーク１０４を通じる同じパスに関係するミラーリングされたパケットを同じ処理モジュールに転送する。したがって、一実装形態では、処理モジュール１００２によって受信されるミラーリングされたパケットのストリームは、他の処理モジュールによって処理されるフローに関するミラーリングされたパケットを含まない。
【００７０】
[0092]カプセル解除モジュール１００４は、受信したミラーリングされたパケットから外部ヘッダーを除去する。例えば、図９のカプセル化されたミラーリングされたパケット４２２に関して、カプセル解除モジュール１００４は、（図３の）ミラーリングモジュール３２４によって生成された元のミラーパケット３２６を残すために、ヘッダー（８０２、８０４、９０２、９０４）を除去する。しかしながら、以下の説明を簡単にするために、処理モジュール１００２によって処理されるミラーリングされた情報は、以降、単にミラーリングされたパケットと呼ばれる。他の実装形態では、処理モジュール１００２は、外部ヘッダーに提供される少なくともいくつかの情報を、この情報が有用な診断情報を提供する限り、保持することができる。
【００７１】
[0093]処理モジュール１００２は、ミラーリングされたパケットのストリーム上で動作する１つまたは複数の処理エンジン１００６の集合を含むことができる。例えば、少なくとも１つのトレースアセンブリモジュール１００８は、ネットワーク１０４を通じる同じフローまたはパスに関するミラーリングパケットの集合をまとめてグループ化することができる。図１の例では、例えば、トレースアセンブリモジュール１００８は、ミラーリングされたパケットシーケンス１３８を生成するために、スイッチ１０６、１２６および１２８によって生成されたミラーリングされたパケットを単一のグループに組み立てることができる。トレースアセンブリモジュール１００８は、ミラーリングされたパケットを、それらが作成された順序に従ってグループ内で順序付けすることもできる。トレースアセンブリモジュール１００８は、タイムスタンプ、シーケンス番号、および／またはミラーリングされたパケットによってキャプチャされた他の情報を参照することによって、その機能を実行することができる。
【００７２】
[0094]少なくとも１つのフィルタおよび選択（ＦＳ）モジュール１０１０は、受信されたミラーリングされたパケットのストリームから１つまたは複数のタイプのパケットを取り出すことができる。例えば、ＦＳモジュール１０１０は、特定のＴＣＰフラグ、または特定のエラー条件、または特定のアプリケーションなどに関係するパケットなどを取り出すことができる。ＦＳモジュール１０１０は、例えば、正規表現機能または同様のものを使用することによって、受信したミラーリングされたパケットにおいて提供された情報をマッチングルールと照合することによってその機能を実行することができる。
【００７３】
[0095]アーカイブモジュール１０１２は、受信された未処理のミラーリングされたパケットおよび／または他の処理エンジン１００６によって生成された任意のより高いレベルの情報を記憶する。アーカイブモジュール１０１２は、そのような情報を、単一のサイトまたは複数のサイトにまたがる分散型で提供される、１つまたは複数の物理ストレージメカニズムに対応するデータストア１０１４に記憶することができる。例えば、ある場合では、アーカイブモジュール１００４は、処理モジュール１００２によって受信された未処理のミラーリングされたパケットのすべてを記憶することができる。加えて、または代わりに、アーカイブモジュール１０１２は、トレースアセンブリモジュール１００８によって生成されたトレースを記憶することができる。加えて、または代わりに、アーカイブモジュール１０１２は、ＦＳモジュール１０１０によって識別されたミラーリングされたパケットの選択されたサブセットを記憶することができる。
【００７４】
[0096]より具体的には、アーカイブモジュール１０１２は、ミラーリングされたパケットを消費する消費エンティティの予測されるニーズに応じて、異なるタイプのミラーリングされたパケットに対して異なる方法でミラーリングされたパケットを記憶することができる。いくつかの場合では、アーカイブモジュール１０１２は、ミラーリングされたパケットの完全なトレースを記録することができる。他の場合には、アーカイブモジュール１０１２は、これらのパスのための完全なトレースを必ずしも記憶する必要はなく、パス内で生成された特定のミラーリングされたパケットを記憶することができる。例えば、特定のスイッチでパケットドロップが発生したことを示す明示的な情報がキャプチャされた場合、アーカイブモジュール１０１２は、パケットドロップの時点までのホップシーケンス全体をキャプチャすることを控えることができる。
【００７５】
[0097]インターフェイスモジュール１０１６は、図１の消費エンティティ１１４などの任意の消費エンティティが、処理モジュール１００２によって収集され処理される任意の情報を検索することを可能にする。ある場合には、消費エンティティ１１４は、収集された情報を受信および分析するために任意の特性のコンピューティングデバイスを使用している人間の分析者に対応することができる。代わりに、または加えて、消費エンティティ１１４は、自動分析プログラムに対応することができる。
【００７６】
[0098]ある場合では、消費エンティティ１１４は、データストア１０１４にアーカイブされた情報を受信することができる。代わりに、または加えて、消費エンティティ１１４は、ミラーリングされたパケットを、処理モジュール１００２によって受信されると、そのような情報のリアルタイムストリームとして受信することができる。ある場合では、インターフェイスモジュール１０１６は、任意の消費エンティティが１つまたは複数のアプリケーションプログラミングインターフェイス（ＡＰＩ）を介してリソースと対話することを可能にする。例えば、インターフェイスモジュール１０１６は、異なるモードの情報抽出のために異なるＡＰＩを提供することができる。ＡＰＩはまた、消費エンティティが、抽出された所望のミラーリングされたパケットなどにおける使用のためのフィルタリング基準を指定することを可能にする。
【００７７】
[0099]インターフェイスモジュール１０１６はまた、消費エンティティから命令を受信してもよい。例えば、（例えば、消費エンティティによって実装されるような）自動解析プログラムは、分析プログラムの情報ニーズに基づいて、記録モジュールが記録する情報のタイプおよび特性を自動的かつ動的に変更するようアーカイブモジュール１０１２に指示することができる。
【００７８】
[00100]別のインターフェイスモジュール１０１８は、処理モジュール１００２と（図１の）管理モジュール１１６との間の通信を行うためのメカニズムを提供する。例えば、その分析に基づいて、処理モジュール１００２は、管理モジュール１１６に命令を自動的に送信し、管理モジュール１１６に代わりに、ネットワーク１０４内のスイッチに更新されたパケット検出ルールを送信するように命令することができる。新たなパケット検出ルールは、ミラーリングされたパケットの処理モジュール１００２へのフローを変更する。例えば、処理モジュール１００２は、管理モジュール１１６に、例えば、選択基準の制限をより少なくまたはより多くすることによって、受信するミラーリングされたパケットの量を増減するための新しいセットのルールを提供するように依頼することができる。加えて、または代わりに、処理モジュール１００２は、受信しているタイプの情報に動的に反応することができる。つまり、任意のアプリケーション特有の理由により、パケット検出ルールの変更に影響を与え、特定のタイプの追加のタイプのパケット、または特定のタイプのパケットのより少ない数のキャプチャを行うようにすることができる。例えば、処理モジュール１００２は、一定の量の証拠を収集して、フラッド攻撃が現在発生していることを示唆することができ、その後、管理モジュール１１６に、それが受信されたミラーリングされたパケットの量を再び絞って、フラッディング攻撃の存在をさらに確認するよう要求することができる。
【００７９】
[00101]管理モジュール１１６は、任意のアプリケーション特有の理由のために、同様に、インターフェイスモジュール１０１８を使用して、処理モジュール１００２に命令を送信することができる。例えば、管理モジュール１１６は、性能データを処理モジュール１００２に事前に求めることができる。管理モジュール１１６は、性能データを使用して、上述した方法のいずれかでミラーリング機能の挙動を変更することができる。管理モジュール１１６と処理モジュール１００２との間のさらに別の環境特有の対話が実行されてもよい。
Ａ．６．例示的な消費エンティティ
[00102]図１１は、図１のコンテキストで導入された消費エンティティ１１４の１つの実装形態を示す。上述のように、消費エンティティ１１４は、ミラーリングされたパケットに関する分析を実行する際に人間の分析者が用いる、コンピューティングデバイスに対応することができる。代わりに、または加えて、消費エンティティは、任意のタイプのコンピューティングデバイスを実行する１つまたは複数の分析プログラムに対応することができる。
【００８０】
[00103]消費エンティティ１１４は、例えば、処理モジュール１１２によって提供される１つまたは複数のＡＰＩを通じて、処理モジュール１１２と対話するためのインターフェイスモジュール１１０２を含む。消費エンティティ１１４は、処理モジュール１１２によってキャプチャされ、処理される、任意の情報を取得することができる。ある場合では、消費エンティティ１１４は、処理モジュール１１２の集合全体に情報要求を行うことができ、所望の情報を保持する特定の処理モジュール（１つまたは複数）は、所望の情報を提供することによって応答する。代わりに、または加えて、処理モジュール１１２は、消費エンティティ１１４にミラーリングされたパケット情報を自動的に提供することができる。例えば、消費エンティティ１１４は、所望のパケット関連情報を受信する目的で１つまたは複数の事象ハンドラを登録することができる。処理モジュール１１２は、遭遇したときに所望の情報を提供することによって、これらの事象ハンドラに応答することができる。消費エンティティ１１４は、収集した情報をデータストア１１０４に記憶することができる。上述したように、消費エンティティ１１４は、命令および他のフィードバックを処理モジュール１１２に送信することもできる。
【００８１】
[00104]消費エンティティ１１４は、受信したミラーリングパケット情報を解析するための１つまたは複数のアプリケーション特有の処理エンジン１１０６を提供することができる。ある場合では、例えば、処理エンジンは、収集されたミラーパケットのヘッダー内のＴＣＰヘッダー情報を検査することができる。その情報は、通信するエンティティ間に確立された接続の数を示す。処理エンジンは、フラッド攻撃または他の異常条件が発生したか否かを判定するために、接続数をしきい値と比較できる。
【００８２】
[00105]別の処理エンジンは、壊れたリンク、または失われたもしくは破損した情報フローに寄与している可能性がある誤動作コンポーネントに対してネットワーク１０４を調べることができる。そのような処理エンジンは、パケットの切り捨てが早すぎるシーケンス（例えば、パケットが意図された宛先に到達しなかった場合）を特定することなどによる様々な証拠に基づいて、および／または欠落したホップ、異常ルートなどを含むパケットのシーケンスに基づいて、故障の存在を判定することができる。加えて、または代わりに、処理エンジンは、ＢＧＰまたはその他のルーティング情報、スイッチによって追加されたエラー条件メタデータ、ピング関連パケット情報などのいずれの証拠も調べることができる。つまり、ＢＧＰ情報はリンクの故障や不正挙動など、ネットワーク内のルーティング問題を直接明らかにすることができる。エラー条件情報は、特定の交換機がその破損または他の要因のためにパケットをドロップしたことを明らかにすることができる。ピング関連パケット情報は、ネットワーク内の２つのエンティティ間の接続性の問題を明らかにすることができる。上述したように、ピングアプリケーションは、リモートエンティティにテストメッセージを送信し、リモートエンティティによるピングメッセージに対する応答をリッスンすることによってリモートエンティティへの接続の品質をテストするアプリケーションに対応する。
【００８３】
[00106]さらに他のタイプの処理エンジン１１０６を消費エンティティ１１４によって使用することができ、上記の例は、説明の精神で記述したものであって、限定するものではない。
【００８４】
[00107]処理エンジンは、ルールベースのエンジン、人工知能エンジン、機械訓練モデルなど、任意の方法で実装することができる。例えば、１つのルールベース処理エンジンは、診断ルールのセットを反映するマッピングテーブルまたは分岐アルゴリズムを採用することができる。各ルールは、ＩＦ−ＴＨＥＮ形式で構成することができる。すなわち、証拠集合｛Ｘ１，Ｘ２，．．．，Ｘｎ｝がキャプチャされたミラーリングされたパケットに存在する場合、ネットワークは異常Ｙの被害を受けている可能性が高い、ということを指定することができる。これらのルールの特定の性質は、監視されているネットワーク１０４の性質、分析の目的、および／または他の要因に応じて、本質的に環境特有である。
【００８５】
[00108]いくつかの場合では、処理エンジンは一連のテストを動的に実行することもでき、後続のテストは、前のテスト（１つまたは複数）の結果によってトリガーされ、前のテスト（複数可）で生成された結論に依存する場合がある。
【００８６】
[00109]少なくとも１つのアクション行使モジュール１１０８は、処理エンジン１１０６のいずれかによって提供される分析の結果に基づいてアクションを取ることができる。例えば、１つのアクション行使モジュールは、人間の分析者に、例えば、アラート信号、検出された障害の原因のテキストによる説明などを、任意の形式で分析の結果を通知することができる。別の場合では、アクション行使モジュールは、不正挙動であると判定されたネットワーク１０４の一部の性能を事前に無効にしたり、変更したりすることができる。例えば、その種類のアクション行使モジュールは、特定のサーバーや攻撃されている他のリソースへの通信ルートを無効にしたり、悪意のある疑いのあるエンティティを起源とするトラフィックをブロックしたりすることができる。
【００８７】
[00110]インターフェイスモジュール１１１０は、消費エンティティ１１４が管理モジュール１１６と対話することを可能にする。例えば、消費エンティティ１１４は、少なくとも処理モジュール１１２がそうする理由と同じ理由で管理モジュール１１６に要求を送信することができる。例えば、処理エンジンは、受信しているパケットのタイプを変更したり、受信しているパケットの量を変更したりすることがある。この目的のために、処理エンジンは、ネットワーク１０４内のスイッチに更新されたパケット検出ルールを送信するように命令し、管理モジュール１１６に要求を行うことができる。更新されたルールは、スイッチによって有効にされると、処理エンジンの目的を達成する。
【００８８】
[00111]図１および図１１に関する最後の注記として、これらの図は、消費エンティティから分離されたエージェントとしての処理モジュール１１２を示す。他の実装形態では、処理モジュール１１２によって実行されるものとして上で説明した１つまたは複数の機能は、代わりに消費エンティティによって実行することができる。実際、いくつかの実装形態では、処理モジュール１１２は完全に取り除くことができ、消費エンティティはミラーリングされたパケットをマルチプレクサー１１０から直接受信することができる。
Ａ．７．例示的な管理モジュール
[00112]最後に、図１２は、管理モジュール１１６の１つの実装形態を示している。管理モジュール１１６は、ネットワークスイッチ、マルチプレクサー１１０、処理モジュール１１２などの様々な動作を制御するために、少なくとも１つの制御モジュール１２０２を使用することができる。例えば、制御モジュール１２０２は、パケット検出ルールの複数セットをスイッチに提供することができ、それによりスイッチのその後のミラーリング挙動を管理する。制御モジュール１２０２は、管理者からの明示的な指示、消費エンティティに関連付けられた人間の分析者による明示的な要求、任意の処理モジュールまたは消費エンティティによる自動化された要求などの１つまたは複数の要因に基づいて新しいルールを生成することができる。
【００８９】
[00113]ある場合では、管理モジュール１１６は、すべてのスイッチに同じセットのパケット検出ルールをロードするように指示する他の場合には、管理モジュール１１６は、パケット検出ルールの異なるそれぞれのセットをロードするように異なるサブセットのスイッチに指示することができる。管理モジュール１１６は、例えばトラフィックが多いスイッチなどによって生成されたミラーリングされたパケットの量を抑えるためなど、環境に特有のあらゆる理由で後者の手法を採用することができる。
【００９０】
[00114]管理モジュール１１６は、少なくとも１つの性能監視モジュール１２０４を含むこともできる。そのコンポーネントは、ネットワーク１０４および追跡システム１０２の様々なコンポーネントの挙動に関するフィードバック情報を受信する。この情報に基づいて、性能監視モジュール１２０４は、ネットワーク１０４および追跡システム１０２の性能レベルを反映する１つまたは複数の性能関連指標を生成することができる。例えば、性能監視モジュール１２０４は、追跡システム１０２によって作成されている、ミラーリングされたパケットの量を判定することができる。ミラーリングされたパケットは、さまざまな方法で元のパケットと区別できる。例えば、スイッチ上で提供される各ミラーリングメカニズムは、それが作成するミラーリングされたパケットにサービスのタイプ（ＴＯＳ）フラグを追加して、パケットをミラーリングされたパケットとして識別することができる。
【００９１】
[00115]制御モジュール１２０２は、性能監視モジュール１２０４によって提供される性能データに基づいて、スイッチに伝搬するルールを更新することもできる。例えば、制御モジュール１２０２は、ミラーリングされたパケットの量を抑えて、追跡システム１０２のミラーリング挙動が元のパケットのフローに悪影響を及ぼさないように、ピークトラフィック負荷の期間中のネットワーク１０４の輻輳を低減することができる。
【００９２】
[00116]管理モジュール１１６は、他の管理操作を実行する任意の他の機能１２０６を含むこともできる。例えば、図１２では明示的に述べられていないが、機能１２０６は、ルーティング情報をコンパイルしスイッチに送信することができる。そのルーティング情報は、スイッチがネットワーク１０４を通じて元のパケットおよびミラーリングされたパケットをルーティングする方法を決定する。
【００９３】
[00117]最後に、管理モジュール１１６は、ネットワーク１０４内のスイッチと対話するためのインターフェイスモジュール１２０８、マルチプレクサー１１０と対話するためのインターフェイスモジュール１２１０、処理モジュール１１２と対話するためのインターフェイスモジュール１２１２と、消費エンティティと対話するためのインターフェイスモジュール１２１４とを含む、追跡システム１０２の様々な行為者と対話するための多数のインターフェイスを含むことができる。
Ｂ．例示的なプロセス
[00118]図１３から１８は、セクションＡの追跡システム１０２の動作をフローチャート形式で説明するプロセスを示す。追跡システム１０２の動作の根底にある原則は既にセクションＡで説明されているので、このセクションでは特定の動作を要約して扱う。
【００９４】
[00119]まず図１３を参照すると、この図は、図３のスイッチ３０２の動作の１つの方法を説明するプロセス１３０２を示す。ブロック１３０２において、スイッチ３０２は、ネットワーク１０４を介して送信される元のパケットを受信する。ブロック１３０６において、スイッチ３０２は、元のパケットをミラーリングするか否かを決定する。ブロック１３０８において、スイッチは、元のパケットをミラーリングすることが決定されたと仮定して、元のパケットに基づいてミラーリングされたパケットを生成する。ミラーリングされたパケットは、少なくとも元のパケットで提供された情報のサブセットを含む。ミラーリングされたパケットは、少なくとも元のパケットの情報のサブセットを含む。ブロック１３１０において、スイッチ３０２は、少なくとも１つの負荷分散の考慮事項に基づいて候補マルチプレクサー１１０のセットから選択的にマルチプレクサーを選択する。この動作は、いくつかの実装形態では、追跡システム１０２が単一のマルチプレクサーのみを提供することができ、そのため、その場合には、マルチプレクサー間の多重化が必要でないという意味でオプションである。ブロック１３１２において、スイッチ３０２は、ミラーリングされたパケットを選択された（またはデフォルトの）負荷分散マルチプレクサーに送信する。ブロック１３１４において、スイッチ３０２は、元のパケットを、元のパケットによって指定されたターゲット宛先に送信する。上記の動作は、説明を簡単にするために連続した形で説明されるが、これらの動作のうちの任意のものは、動作１３１２および１３１４のように、並列に実行することもできる。
【００９５】
[00120]図１４は、図３のスイッチ３０２のコンポーネントであるマッチングモジュール３２０の動作の１つの方法を説明するプロセス１４０２を示す。ブロック１４０４において、マッチングモジュール３２０は、少なくとも１つのパケット検出ルールに関して元のパケットを分析する。ブロック１４０６において、マッチングモジュール３２０は、元のパケットがパケット検出ルールを満たすか否かを判定する。ブロック１４０８において、マッチングモジュール３２０は、元のパケットがパケット検出ルールを満たす場合、元のパケットをミラーリングする命令を生成する。実際には、マッチングモジュール３２０は、図３の動作を実行することができる。一連のパケット検出ルールに関して、図１４に示されている。
【００９６】
[00121]図１５は、図４のマルチプレクサー４０２の動作の１つの方法を説明するプロセス１５０２を示す。ブロック１５０４において、マルチプレクサー４０２は、ミラーリングされたパケットを受信する。ブロック１５０６において、マルチプレクサー４０２は、少なくとも１つの負荷分散選択の考慮事項に基づいて、処理モジュール候補のセットから処理モジュールを選択する。例えば、マルチプレクサー４０２は、同じフローに属するパケットが同じ処理モジュールに送信されることを保証しながら、処理モジュール候補の中から選択するために、上述のハッシング技術を使用することができる。ブロック１５０８において、マルチプレクサー４０２は、選択された処理モジュールにミラーリングされたパケットを送信する。
【００９７】
[00122]図１６は、図１０の処理モジュール１００２の動作の１つの方法を説明するプロセス１６０２を示す。ブロック１６０４において、処理モジュール１００２は、マルチプレクサー１１０からミラーリングされたパケットを受信する。ブロック１６０６において、処理モジュール１００２は、ミラーリングされたパケット上で、これに限定されるものではないが、関係する（例えば同一のフローに関連する）ミラーリングされたパケットのシーケンスの組み立て、特定のミラーリングされたパケットのフィルタリングおよび選択、ミラーリングされたパケットおよび／または処理モジュール１００２によって実行された分析結果のアーカイブ、などの任意の操作を行うことができる。
【００９８】
[00123]図１７は、図１１の消費エンティティ１１４の１つの非限定的かつ代表的な動作方法を説明するプロセス１７０２を示す。ブロック１７０４において、消費エンティティ１１４は、ミラーリングされたパケットの分析を開始するか否かを決定する。例えば、消費エンティティ１１４が、ネットワーク１０４と対話する特定のアプリケーションに関連付けられているか、またはＴＣＰ関連アプリケーションもしくはＢＧＰ関連アプリケーションなど、ネットワーク１０４において何らかの役割を果たすと仮定する。１つの動作モードでは、そのようなアプリケーションは、追跡システム１０２とは独立して、故障または他の望ましくない事象がネットワーク１０４で発生したと判定することができる。それに応答して、アプリケーションは、特定のタイプのミラーリングされたパケットの収集を開始するようにスイッチに要求することができる。すなわち、アプリケーションは、管理モジュール１１６にそのような要求を行うことができ、管理モジュール１１６は代わりに、スイッチによって適用されたときに所望のパケットをキャプチャする最終効果を有する１つまたは複数のパケット検出ルールを、スイッチに送信する。別の動作モードでは、アプリケーションは、異常条件に最初に遭遇することなく、通常の動作過程で特定のパケットを収集するようにスイッチに要求することができる。さらに他の動作モードも可能である。
【００９９】
[00124]ブロック１７０６において、消費エンティティ１１４は、処理モジュール１１２によって提供されるミラーリングされたパケットおよび／または分析結果を受信する。ブロック１７０６において、消費エンティティ１１４は、プッシュ技術、プル技術、またはそれらの組み合わせを使用して情報を取得することができる。ブロック１７０８において、消費エンティティ１１４は、ミラーリングされたパケットを分析して、ネットワーク１０４で発生した、または現在ネットワーク１０４で発生している事象に関する第１の結論に達する。その後、この第１の結論に基づいて、消費エンティティ１１４は、１つまたは複数のアクションを取ることができ、その例は図１７に要約される。
【０１００】
[00125]例えば、ブロック１７１０において、消費エンティティ１１４は、人間の分析者、管理者、または他のネットワーク１０４内のあらゆる異常条件のエンティティに通知することができる。消費エンティティ１１４は、これらの結果を伝えるために任意のユーザーインターフェイス表示を使用することができる。代わりに、または加えて、ブロック１７１２において、消費エンティティ１１４は、その分析の結果を記録することができる。代わりに、または加えて、ブロック１７１４において、消費エンティティ１１４は、ネットワーク１０４の任意の部分の挙動を無効にするか、またはそうでなければ変更するなど、任意の他のアクションを取ることができる。
【０１０１】
[00126]加えて、または代わりに、ブロック１７１６において、消費エンティティ１１４は、第１の結論を使用して、別のラウンドの分析をトリガーすることができる。その第２ラウンドの分析は、第１の結論を入力データとして使用することができる。このような反復調査は、人間の分析者または自動化されたプログラムが所望の最終結論に達するまで何回でも繰り返すことができる。ブロック１７１６の分析は、消費エンティティ１１４が処理モジュール１１２から既に受信したミラーリングされたパケット情報に関して行われることに留意する。
【０１０２】
[00127]加えて、または代わりに、ブロック１７１８において、消費エンティティ１１４は、処理モジュール１１２と対話して、処理モジュール１１２から追加のパケット関連情報を得ることができる。加えて、または代わりに、消費エンティティ１１４は、管理モジュール１１６と対話して、スイッチにロードされたパケット検出ルールを変更するように要求することができる。この変更は、次に、消費エンティティ１１４が処理モジュール１１２から受信するパケットのタイプおよび／または量を変更する。次に、消費エンティティ１１４は、追加のパケット関連情報を受信したときに上記で説明した任意の動作を繰り返すことができる。
【０１０３】
[00128]最後に、図１８は、図１２の管理モジュール１１６の動作の１つの方法を説明するプロセス１８０２を示す。ブロック１８０４において、管理モジュール１１６は、ネットワーク１０４内のスイッチ、マルチプレクサー１１０、処理モジュール１１２などのような追跡システム１０２のコンポーネントに様々な命令を送信することができる。例えば、管理モジュール１１６は、更新されたパケット検出ルールのセットをスイッチに送信することができ、その後スイッチがパケットミラーリング挙動を特定の方法で制御する。ブロック１８０６において、管理モジュール１１６は、スイッチ、マルチプレクサー１１０、処理モジュール１１２、消費エンティティなどのような様々なエンティティからのフィードバックを受信する。上述した方法で、管理モジュール１１６は、続いて、フィードバックを使用して、それが様々なエージェントに送信する命令、すなわちブロック１８０４の後続の実行におけるものを更新することができる。管理モジュール１１６は、図１８には示されていない他の管理機能を実行することもできる。
Ｃ．代表的なコンピューティング機能
[00129]図１９は、上述の図に示される追跡機能の任意の態様を実施するために使用され得るコンピューティング機能１９０２を示す。例えば、図１９に示すコンピューティング機能１９０２のタイプは、ソフトウェアにより実装されたマルチプレクサー（図１の追跡システム１０２で使用される場合）、任意のパケット処理モジュール、管理モジュール１１６、任意の消費エンティティ（消費エンティティ１１４など）などのいずれかを実装するために使用することができる。すべての場合において、コンピューティング機能１９０２は、１つまたは複数の物理的および有形の処理メカニズムを表す。
【０１０４】
[00130]コンピューティング機能１９０２は、１つまたは複数の中央処理装置（ＣＰＵ）および／または１つまたは複数のグラフィカル処理装置（ＧＰＵ）などの１つまたは複数の処理装置１９０４を含むことができる。
【０１０５】
[00131]コンピューティング機能１９０２は、コード、設定、データなどの任意の種類の情報を記憶するための任意のストレージリソース１９０６も含むことができる。限定されないが、例えば、ストレージリソース１９０６は、任意のタイプのＲＡＭ、任意のタイプのＲＯＭ、フラッシュデバイス、ハードディスク、光ディスクなどのいずれかを含むことができる。より一般的には、任意のストレージリソースは、情報を記憶するための任意の技術を使用することができる。さらに、任意のストレージリソースは、情報の揮発性または不揮発性の保持を提供することができる。さらに、任意のストレージリソースは、コンピューティング機能１９０２の固定または取り外し可能なコンポーネントを表すことができる。コンピューティング機能１９０２は、処理デバイス１９０４が任意のストレージリソースまたはストレージリソースの組み合わせに記憶された命令を実行するとき、上記の機能のいずれかを実行することができる。
【０１０６】
[00132]用語に関して、ストレージリソース１９０６の任意のもの、またはストレージリソース１９０６の任意の組み合わせは、コンピューター可読媒体と見なすことができる。多くの場合、コンピューター可読媒体は、何らかの形態の物理的および有形のエンティティを表す。コンピューター可読媒体という用語はまた、例えば、物理的なコンジットおよび／または空中または他の無線媒体などを介して送信または受信される伝搬された信号を包含する。しかしながら、特定の用語「コンピューター可読記憶媒体」および「コンピューター可読媒体デバイス」は、他のすべての形態のコンピューター可読媒体を含むが、伝播信号自体を明示的に除外する。
【０１０７】
[00133]コンピューティング機能１９０２はまた、ハードディスクドライブメカニズム、光ディスクドライブメカニズムなどの任意のストレージリソースと対話するための１つまたは複数のドライブメカニズム１９０８を含む。
【０１０８】
[00134]コンピューティング機能１９０２はまた、（入力デバイス１９１２を介して）様々な入力を受信し、（出力デバイス１９１４を介して）様々な出力を提供するための入出力モジュール１９１０を含む。例示的な入力デバイスは、キーボードデバイス、マウス入力デバイス、タッチスクリーン入力デバイス、デジタル化パッド、１つまたは複数のビデオカメラ、１つまたは複数の深度カメラ、自由空間ジェスチャ認識メカニズム、１つまたは複数のマイクロフォン、音声認識メカニズム、任意の動き検出メカニズム（例えば、加速度計、ジャイロスコープなど）などを含むことができる。１つの特定の出力メカニズムは、表示デバイス１９１６および関連するグラフィカルユーザーインターフェイス（ＧＵＩ）１９１８を含むことができる。他の出力デバイスは、プリンタ、モデル生成メカニズム、触覚出力メカニズム、（出力情報を記憶するための）アーカイブメカニズムなどを含むことができる。コンピューティング機能１９０２はまた、１つまたは複数の通信コンジット１９２２を介して他のデバイスとデータを交換するための１つまたは複数のネットワークインターフェイス１９２０を含むことができる。１つまたは複数の通信バス１９２４は、上述のコンポーネントを互いに通信可能に結合する。
【０１０９】
[00135]通信コンジット１９２２は、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、ポイントツーポイント接続など、またはそれらの任意の組み合わせなどにより、任意の方法で実装することができる。通信コンジット（複数可）１９２２は、任意のプロトコルまたはプロトコルの組み合わせによって管理されるハードワイヤードリンク、無線リンク、ルーター、ゲートウェイ機能、ネームサーバーなどの任意の組み合わせを含むことができる。
【０１１０】
[00136]代わりに、または加えて、前のセクションで説明した機能のいずれかを、少なくとも部分的に１つまたは複数のハードウェア論理コンポーネントで実行することができる。例えば、限定するものではないが、コンピューティング機能１９０２は、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準製品（ＡＳＳＰ）、システム・オン・チップ・システム（ＳＯＣ）、複合プログラマブル論理デバイス（ＣＰＬＤ）などの１つまたは複数を使用して実装することができる。
【０１１１】
[00137]最後に、主題は構造的特徴および／または方法論的行為に特有の言語で記載されているが、添付の特許請求項に定義された主題は必ずしも上記の特定の特徴または行為に限定されないことが理解されるであろう。むしろ、上記の特定の特徴および動作は、請求項を実施する例示的な形態として開示される。
【図１】
2017527216.tif 000003
【図２】
2017527216.tif 000004
【図３】
2017527216.tif 000005
【図４】
2017527216.tif 000006
【図５】
2017527216.tif 000007
【図６】
2017527216.tif 000008
【図７】
2017527216.tif 000009
【図８】
2017527216.tif 000010
【図９】
2017527216.tif 000011
【図１０】
2017527216.tif 000012
【図１１】
2017527216.tif 000013
【図１２】
2017527216.tif 000014
【図１３】
2017527216.tif 000015
【図１４】
2017527216.tif 000016
【図１５】
2017527216.tif 000017
【図１６】
2017527216.tif 000018
【図１７】
2017527216.tif 000019
【図１８】
2017527216.tif 000020
【図１９】
2017527216.tif 000021
【国際調査報告】
2017527216.tif 000022
2017527216.tif 000023