(57)【要約】      （修正有）【課題】ネットワークテストの為の並列キャプチャエンジンを提供する。【解決手段】パケットを取得（キャプチャ）する方法又はパケットを取得するパケットレシーバーが開示される。ネットワークから受信された各々のパケットにタイムスタンプが付与できる。タイムスタンプの付与された各々のパケットは、複数のキャプチャエンジンの一つのキャプチャエンジンにルーティングされる。複数のキャプチャエンジンのそれぞれは、複数の所定のキャプチャ基準の一つ以上に合致する決定がなされた少なくとも一部のパケットを保存することができる。タイムスタンプ順になっている継続的に取得されたパケットのリストが準備できる。【選択図】図２
2010268434.tif 000002
【特許請求の範囲】
【請求項１】
パケットをキャプチャする方法であって、
ネットワークからパケットを受信する工程と、
各受信パケットにタイムスタンプを付与する工程と、
各受信パケットを複数のキャプチャエンジンの１つのキャプチャエンジンへルーティングする工程と、
前記複数のキャプチャエンジンは総合的に機能するべく、各受信パケットが複数の所定のキャプチャ基準の一つ以上に合致するかどうか判定し、前記複数の所定のキャプチャ基準の一つ以上に合致する前記受信パケットの少なくとも一部をそれぞれのキャプチャエンジンに従ってメモリに記憶する動作を含み、前記複数のキャプチャエンジンを用いてパケットを取得（キャプチャ）する工程と、
所定の終了基準に従って受信パケットの記憶を中止する工程と、
受信パケットの記憶中止後、前記複数のキャプチャエンジンによって記憶されたパケットから非連続パケットを除去し、前記複数のキャプチャエンジンによって記憶された連続的なパケットのタイムスタンプ順のリストを準備する工程と、
を含む方法。
【請求項２】
請求項１の方法において、
前記複数の所定のキャプチャ基準は、トリガー基準、プリトリガー基準、及びポストトリガー基準を含み、
前記複数のキャプチャエンジンのうちいずれか一つは、初回においてトリガーイベントと見なされる前記トリガー基準に合致する受信パケットと、前記トリガーイベントがトリガーパケットと見なされる前記受信パケットとを特定する。
【請求項３】
請求項２の方法において、前記パケットの少なくとも一部を記憶する工程は、
前記トリガーイベントが未発生の場合、前記プリトリガー基準に合致する各パケットを記憶する工程を含み、
前記トリガーイベントが発生した場合、
前記トリガーイベント後の所定の遅延時間中に前記プリトリガー基準、前記トリガー基準、及び前記ポストトリガー基準の一つ以上に合致する各受信パケットを記憶する工程と、
所定の遅延時間経過後、前記ポストトリガー基準に合致する各受信パケットを記憶する工程と、
を含む。
【請求項４】
請求項３の方法において、各受信パケットを記憶する工程は、
それぞれ対応する複数のキャプチャエンジンの一つに関連する複数のメモリのうちのメモリの第１部分における受信パケットを記憶する工程と、
前記メモリの第２部分における受信パケットに関するパケット情報を記憶する工程と、
を含み、
前記パケット情報は、パケットに関連するタイムスタンプ、前記メモリの第１部分に記憶されたパケットへのポインタ、及び前記パケットが前記プリトリガー基準、前記トリガー基準、前記ポストトリガー基準の一つ以上に合致した場合に指示するフラグを含む。
【請求項５】
請求項４の方法において、連続的なパケットのタイムスタンプ順のリストは、
それぞれリスト化されたパケット、パケットタイムスタンプ及びパケット情報に関連したポインタを含むメモリ内部のテーブルを含む。
【請求項６】
請求項３の方法において、記憶された非連続パケットを除去する工程は、
前記複数のキャプチャエンジン毎に、受信パケットの記憶期間に、関連付けられたメモリがラップされたかどうか判定する工程と、
前記複数のキャプチャエンジンと関連する１以上のメモリがラップされた場合、
ラップされた各メモリにおいて最も早く記憶されたパケットの中で最新のタイムスタンプを特定する工程と、
ラップされた各メモリにおいて最も早く記憶されたパケットの中で最新のタイムスタンプ未満のタイムスタンプ値を有する記憶パケットすべてを廃棄する工程と、
を含む。
【請求項７】
請求項３の方法において、連続パケット順のタイムスタンプをリストアップする準備工程は、
前記プリトリガー基準のみに合致し、前記トリガーパケットのタイムスタンプ値を越えるタイムスタンプ値を有する各記憶パケットを廃棄する工程と、
前記ポストトリガー基準のみに合致し、前記トリガーパケットのタイムスタンプ値に満たないタイムスタンプ値を有する各記憶パケットを廃棄する工程と、
を含む。
【請求項８】
請求項１の方法は、さらに、
対応する前記複数のキャプチャエンジンの一つにそれぞれつながる複数のＦＩＦＯ待ち行列の一つのＦＩＦＯ待ち行列に、それぞれタイムスタンプされた受信パケットを一時的に保持する工程を含む。
【請求項９】
トラフィックレシーバーであって、
パケットを取得（キャプチャ）する複数のキャプチャエンジンと、
ネットワークからパケットを受信するネットワークインタフェースユニットと、
各受信パケットにタイムスタンプを付与するタイムスタンパーと、
タイムスタンプが付与されたそれぞれのパケットを前記複数のキャプチャエンジンの１つのキャプチャエンジンにルーティングするパケット分配エンジンと、
タイムスタンプ順になっている継続的に取得されたパケットのリストを準備する手段を備え、準備するリストは廃棄する非隣接パケットを含み、
前記複数のキャプチャエンジンのそれぞれは、
各受信パケットが複数の所定のキャプチャ基準の一つ以上に合致するかどうか決定し、
前記複数のキャプチャ基準の一つ以上に合致する受信パケットの少なくとも一部を前記キャプチャメモリに記憶する動作を含み、これら動作を機能させることによってパケットを取得する。
【請求項１０】
請求項９のトラフィックレシーバーにおいて、
前記複数の所定のキャプチャ基準は、トリガー基準、プリトリガー基準及びポストトリガー基準を含み、
前記複数のキャプチャエンジンのうちいずれか一つは、初回において、トリガーイベントと見なされる前記トリガー基準に合致する受信パケットを特定する。
【請求項１１】
請求項１０のトラフィックレシーバーにおいて、前記パケットの少なくとも一部を記憶する手段は、
前記トリガーイベントが未発生の場合に、前記プリトリガー基準に合致する各パケットを記憶する手段と、
前記トリガーイベントが発生した場合に、
前記トリガーイベント後の所定の遅延時間中に前記プリトリガー基準、前記トリガー基準、及び前記ポストトリガー基準の一つ以上に合致する各受信パケットを記憶する手段と、
所定の遅延時間経過後、前記ポストトリガー基準に合致する各受信パケットを記憶する手段と、
を含む。
【請求項１２】
請求項１１のトラフィックレシーバーにおいて、各キャプチャエンジンによって行われる動作は、さらに、
前記キャプチャメモリの第１部分において取得される各パケットを記憶し、
前記キャプチャメモリの第２部分において各パケットに関するパケット情報を記憶する動作を含み、
前記パケット情報は、パケットに関連するタイムスタンプ、パケットがメモリの第１部分に記憶されたパケットへのポインタ、及び前記パケットが前記プリトリガー基準、前記トリガー基準、前記ポストトリガー基準の一つ以上に合致した場合に指示するフラグを含む。
【請求項１３】
請求項１２のトラフィックレシーバーにおいて、前記複数のキャプチャエンジンによって総合的に行われる動作は、
所定の終了基準に従って受信パケットの記憶を中止する手段と、
受信パケットの記憶中止後、タイムスタンプ順になっている継続的に取得されたパケットのリストを準備する手段と、
を含んで機能される。
【請求項１４】
請求項１３のトラフィックレシーバーにおいて、前記タイムスタンプ順になっている継続的に取得されたパケットのリストを準備する手段は、
前記複数のキャプチャエンジン毎に、受信パケットの記憶中に関連付けられたメモリがラップされたかどうか決める決定手段と、
ラップされた前記複数のキャプチャエンジンと関連する記憶がない場合、タイムスタンプ順に記憶されたすべてのパケットのリストを準備し、
ラップされた前記複数のキャプチャエンジンと関連する記憶が一つ以上ある場合、
ラップされた各メモリにおいて最も早く記憶されたパケットの中で最新のタイムスタンプを決定する手段と、
ラップされた各メモリにおいて最も早く記憶されたパケットの中で最新のタイムスタンプ未満のタイムスタンプ値を有する記憶パケットすべてを廃棄する手段と、
タイムスタンプ順に記憶された残りのパケットのリストを準備する手段と、
を含んで機能される。
【請求項１５】
請求項１４のトラフィックレシーバーにおいて、タイムスタンプ順になっている継続的に取得されたパケットのリストは、
メモリ内部のテーブルを含み、このテーブルは、それぞれリスト化されたパケット、パケットタイムスタンプ及びパケット情報に関連したポインタを含む。
【請求項１６】
請求項９のトラフィックレシーバーにおいて、
タイムスタンプされた受信パケットを一時的に保持する複数のＦＩＦＯ待ち行列をさらに含み、前記複数のＦＩＦＯ待ち行列それぞれは、対応する複数のキャプチャエンジンの一つにつながる。
【請求項１７】
記憶されたプログラミングコードを有するコンピュータ読み取り可能な記憶媒体であって、フィールドプログラマブルゲートアレーをプログラミングに用いる場合、キャプチャエンジンを含めるように前記フィールドプログラマブルゲートアレーが形成され、前記キャプチャエンジンの実行可能な動作は、
各受信パケットが、トリガー基準、プリトリガー基準、及びポストトリガー基準を有する複数の所定のキャプチャ基準の一つ以上に合致するかどうかの決定、を含み、
前記複数のキャプチャエンジンのうちいずれか一つは、初回においてトリガーイベントと見なされる前記トリガー基準に合致する受信パケットを特定する動作と、
前記トリガーイベントが未発生の場合に、前記プリトリガー基準に合致する各受信パケットを関連するキャプチャメモリに記憶する動作と、
前記トリガーイベントが発生した場合、
前記トリガーイベント後の所定の遅延時間中に前記プリトリガー基準、前記トリガー基準、及び前記ポストトリガー基準の一つ以上に合致する各受信パケットを前記キャプチャメモリに記憶し、
所定の遅延時間経過後、前記ポストトリガー基準に合致する各受信パケットを前記キャプチャメモリに記憶する動作と、
を含む。
【請求項１８】
請求項１７のコンピュータ読み取り可能な記憶媒体において、
前記フィールドプログラマブルゲートアレーの外部のメモリの第１部分に各パケットを記憶する手段と、
前記メモリの第２部分に各パケットに関するパケット情報を記憶する手段と、をさらに含み、
前記パケット情報は、パケットに関連するタイムスタンプ、パケットがメモリの第１部分に記憶されたパケットへのポインタ、及び前記パケットが前記プリトリガー基準、前記トリガー基準、前記ポストトリガー基準の一つ以上に合致した場合に指示するフラグを含む。
【請求項１９】
トラフィックレシーバーであって、
複数のキャプチャエンジンと、
ネットワークからパケットを受信するネットワークインタフェースユニットと、
各受信パケットにタイムスタンプを付与するタイムスタンパーと、
タイムスタンプの付与された各パケットを複数のキャプチャエンジンの１つのキャプチャエンジンへルーティングするパケット分配エンジンと、を備え、
前記複数のキャプチャエンジンそれぞれは、
それぞれ対応する複数の所定のキャプチャ基準の一つに関連する複数のフィルタを備え、各フィルタは受信パケットが前記関連するキャプチャ基準に合致するかどうか決定するのに効果的であり、
少なくともキャプチャ基準の一つに合致するパケットを所定の遅延時間遅らせる遅延バッファと、
メモリと、
前記遅延バッファからのパケットを受信するために結合されるメモリコントローラと、
を備え、
前記メモリコントローラは、前記メモリ内の前記遅延バッファから受信されたパケットの少なくとも一部を記憶するのに効果的である。
【請求項２０】
請求項１９のトラフィックレシーバーにおいて、
前記複数の所定のキャプチャ基準は、トリガー基準、プリトリガー基準、及びポストトリガー基準を含み、前記複数のキャプチャエンジンのうちいずれか一つは、初回において、トリガーイベントと見なされる前記トリガー基準に合致する受信パケットを特定する。
【請求項２１】
請求項２０のトラフィックレシーバーにおいて、各キャプチャエンジン内の前記メモリコントローラは、以下を含む動作を行うように構成される：
前記トリガーイベントが未発生の場合に、前記プリトリガー基準に合致する各パケットを記憶し、
前記トリガーイベントが発生した場合、
前記トリガーイベント後の所定の遅延時間中に前記プリトリガー基準、前記トリガー基準、及び前記ポストトリガー基準の一つ以上に合致する各受信パケットを記憶し、
所定の遅延時間経過後、前記ポストトリガー基準に合致する各受信パケットを記憶する。
【請求項２２】
請求項２１のトラフィックレシーバーにおいて、各キャプチャエンジン内の前記メモリコントローラは、さらに、以下を実現すべく構成される：
前記メモリに関連するメモリの第１部分における取得すべき各パケットを記憶し、
前記パケット情報は、パケットに関連するタイムスタンプ、メモリの第１部分に記憶されたパケットへのポインタ、及び前記パケットが前記プリトリガー基準、前記トリガー基準、前記ポストトリガー基準の一つ以上に合致した場合に指示するフラグを含む。
【請求項２３】
請求項２２のトラフィックレシーバーにおいて、複数のキャプチャエンジン各々の中の前記メモリコントローラは、さらに、以下を総合的に実現すべく構成される：
所定の終了基準に従って受信パケットの記憶を中止し、
タイムスタンプ順になっている継続的に取得されたパケットのリストを準備する。
【請求項２４】
請求項２３のトラフィックレシーバーにおいて、複数のキャプチャエンジンの中の前記メモリコントローラは、まとめて、以下を実現すべく構成される：
複数のキャプチャエンジン毎に、受信パケットの記憶期間に、関連付けられたメモリがラップされたかどうか判定し、
ラップされた前記複数のキャプチャエンジンと関連する記憶がない場合、タイムスタンプ順に記憶されたすべてのパケットのリストを準備し、
ラップされた前記複数のキャプチャエンジンと関連する記憶が一つ以上ある場合、
ラップされた各メモリにおいて最も早く記憶されたパケットの中で最新のタイムスタンプを決定し、
ラップされた各メモリにおいて最も早く記憶されたパケットの中で最新のタイムスタンプ未満のタイムスタンプ値を有する記憶パケットすべてを廃棄し、
タイムスタンプ順に記憶された残りのパケットのリストを準備する。
【請求項２５】
請求項２４のトラフィックレシーバーにおいて、タイムスタンプ順に連続取得されたパケットのリストは、
メモリ内部のテーブルを備え、このテーブルは、それぞれリスト化されたパケット、パケットタイムスタンプ及びパケット情報に関連したポインタを含む。
【請求項２６】
請求項１９のトラフィックレシーバーにおいて、
タイムスタンプの付与された受信パケットを一時的に保持する複数のＦＩＦＯ待ち行列をさらに備え、前記複数のＦＩＦＯ待ち行列それぞれは、対応する複数のキャプチャエンジンの一つにつながる。
【請求項２７】
記憶されたプログラミングコードを有するコンピュータ読み取り可能な記憶媒体であって、フィールドプログラマブルゲートアレーをプログラミングに用いる場合、キャプチャエンジンを含めるように前記フィールドプログラマブルゲートアレーが形成され、前記キャプチャエンジンは、
それぞれ対応する複数の所定のキャプチャ基準の一つに関連する複数のフィルタを備え、各フィルタは受信パケットが前記関連するキャプチャ基準に合致するかどうか決定するのに効果的であり、
少なくともキャプチャ基準の一つに合致するパケットを所定の遅延時間遅らせる遅延バッファと、
前記遅延バッファからのパケットを受信するために結合され、前記メモリ内の前記遅延バッファから受信されたパケットの少なくとも一部を記憶するのに効果的なメモリコントローラと、
を備える。
【請求項２８】
請求項２７のコンピュータ読み取り可能な記憶媒体において、
前記複数の所定のキャプチャ基準は、トリガー基準、プリトリガー基準、及びポストトリガー基準を含み、初めて前記複数のキャプチャエンジンのうちいずれか一つは、トリガーイベントと見なされる前記トリガー基準に合致する受信パケットを特定する。
【請求項２９】
請求項２８のコンピュータ読み取り可能な記憶媒体において、各キャプチャエンジン内の前記メモリコントローラは、以下を含む動作を行うように構成される：
前記トリガーイベントが未発生の場合に、前記プリトリガー基準に合致する各パケットを記憶し、
前記トリガーイベントが発生した場合、
前記トリガーイベント後の所定の遅延時間中に前記プリトリガー基準、前記トリガー基準、及び前記ポストトリガー基準の一つ以上に合致する各受信パケットを記憶し、
所定の遅延時間経過後、前記ポストトリガー基準に合致する各受信パケットを記憶する。
【請求項３０】
請求項２９のコンピュータ読み取り可能な記憶媒体において、前記メモリコントローラは、さらに、以下を実現すべく構成される：
前記メモリの第１部分における取得すべき各パケットを記憶し、
前記メモリの第２部分における各パケットに関するパケット情報を記憶し、
前記パケット情報は、パケットに関連するタイムスタンプ、前記メモリの第１部分に記憶されたパケットへのポインタ、及び前記パケットが前記プリトリガー基準、前記トリガー基準、前記ポストトリガー基準の一つ以上に合致した場合に指示するフラグを含む。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク又はネットワークデバイスをテストするためのトラフィックの生成に関する。
【０００２】
［著作権とトレードドレスの表示］
本特許文献の開示の一部は著作権保護の対象を含む。本特許文献には所有者のトレードドレスであるかトレードドレスになる可能性がある対象を提示及び／又は記載している箇所がある。著作権及びトレードドレスの所有者は、特許当局の特許ファイルや記録にて表現される形態であれば、誰であっても特許開示の複製を行っても異議を唱えないが、他については一切の著作権及びトレードドレスに関わる権利を留保する。
【背景技術】
【０００３】
多くの種類の通信ネットワークにおいて、送信されるそれぞれのメッセージは固定長又は可変長の部分に分割される。この部分はそれぞれ、パケット、フレーム、セル、データグラム、データユニット、又は他の情報単位として呼ばれ、これらはすべて本文献においてパケットと呼ぶ。
【０００４】
各々パケットは元のメッセージの一部を含んでおり、これは一般にパケットのペイロードと呼ばれている。パケットのペイロードは、データを含むこともあり、また、音声情報や動画情報を含むこともある。さらに、パケットのペイロードは、ネットワークの管理及び制御情報を含むこともある。また、各々パケットは識別及びルーティングの情報を含み、これは一般にパケットヘッダと呼ばれている。各パケットは、複数のスイッチやノードを介して、ネットワーク上で個別に送信される。目的のデバイス又はエンドユーザへとメッセージが届けられる前に、パケットは、パケットヘッダに含まれる情報を用いて、最終的な宛先においてメッセージに再組立てされる。受信端において、再組立てされたメッセージはユーザの装置と互換性があるフォーマットでエンドユーザに渡される。
【０００５】
メッセージをパケットとして送信する通信ネットワークは、パケット交換ネットワークと呼ばれる。パケット交換ネットワークや、通信ネットワーク内のデバイスをテストするために、回線レートと等しいデータレート、又はネットワーク通信経路若しくはデバイスにおいて可能な最大のデータレートを有するネットワークトラフィックを発生させることが望ましいことが多々ある。
【０００６】
ネットワークトラフィックデータをレポートするために、パケットをフローにまとめることがある。ここで、「フロー」とは、ネットワークトラフィックの統計情報を蓄積しレポートするためのいずれの複数のデータユニットをも意味する。特定のフローに含まれるデータユニットは、各データユニットに含まれるフロー識別子により区別することができる。このフロー識別子は、例えば、アドレス、ポート番号、タグ、又は各データユニット内の他のフィールドやいくつかのフィールドの組み合わせとすることができる。
【０００７】
例えば、複数のパケットの種類やレートを扱うために、送信元において複数の出フローと入フローを同時かつ並行してサポートすることがある。例えば、送信元は、ネットワークインタフェースのポートである。「同時に」とは、「厳密に同じ時間に」という意味である。「並行して」とは、「同じ時に」という意味である。複数の並行フローが組み合わさって、本文献において「ストリーム」と呼ぶものを形成する。単一のストリームが複数のパケット種類を表すことがある。ストリーム内のフローは、インターリービングによって組み合わさることがある。このインターリービングは、対応する各フローの間で、バランス合わせされていることもあれば、バランス合わせされていないこともあれば、分散していることもある。ストリームのデータレートは、ストリームが送信されるネットワーク通信経路の回線レート以下とすることができる。フロー内のパケットが回線レートで送信されていても、時間にわたっての平均データフローレートははるかに低いことが多い。なぜなら、複数のインターリーブされたフローがストリームのデータレートを共有することになるからである。
【０００８】
パケット交換ネットワーク又はネットワーク装置の要素、ラインレート、又は近ラインレートを徹底的にテストするために、テスト対象のネットワーク又は装置を経るように、テストストリームを発生し送信することがある。各テストストリームは、シュミレーションされたデータ、オーディオ及びビデオフローのような複数のパケット種類を表す複数のインターリーブされたフローによって構成する。テスト時にテストストリームがネットワーク又は装置を経るように送信された後、テストストリームを受信するためにトラフィックレシーバーを用いることがある。トラフィックレシーバーは、ネットワークパフォーマンスのモニタリングや障害分離のため、規則的な、テスト用ではないネットワークトラフィックを受信するためにも用いることがある。トラフィックレシーバーは、例えば、各フローに対して、テスト対象のネットワーク又は装置のパフォーマンスを示すトラフィック統計情報を蓄積する。また、トラフィックレシーバーは、さらなる解析を行うために特定のパケットを取得（キャプチャ）して保存することも行う。
【図面の簡単な説明】
【０００９】
【図１】ネットワーク環境のブロック図である。
【図２】トラフィックレシーバーのブロック図である。
【図３】例示的なキャプチャユニットのブロック図である。
【図４】例示的なキャプチャエンジンの動作を示すタイミング図である。
【図５】キャプチャエンジンを有するメモリ空間の表示図である。
【図６】キャプチャ動作の流れ図である。
【図７】キャプチャエンジンを操作する処理の流れ図である。
【図８Ａ】キャプチャエンジンの動作を示したタイミング図である。
【図８Ｂ】パケットメモリに記憶されたパケットの表示図である。
【図９】複数のキャプチャエンジンによって取得された情報を統合する処理の流れ図である。
【図１０】キャプチャリストの表示図である。
【００１０】
本文献の記述を通して、ブロック図に見られる構成要素は、３桁の参照番号が割り当てられており、最上位桁の数字は図番号で、下位２桁の数字は構成要素に特有のものである。ブロック図とともに記載されていない構成要素は、同じ下位２桁の数字の付いた参照番号を有する前述の構成要素として同じ特徴や機能を有すると推定できる。ブロック図において、矢印終端線は、信号というよりはデータパスを意味する。各々データパスは、ビット幅においてマルチプルビットであってよい。例えば、各々のデータパスは、１６，３２，６４，１２８，２５６、あるいはそれ以上の並列接続で構成されてもよい。
【発明の概要】
【００１１】
［装置の説明］
図１には、ネットワーク環境のブロック図を示す。このネットワーク環境は、ネットワークテスト装置１００、ネットワーク１９０及び複数のネットワークデバイス１９５を含んでいる。
【００１２】
ネットワークテスト装置１００は、ネットワークテストデバイス、パフォーマンスアナライザー、適合性検証システム、ネットワークアナライザー、又はネットワーク管理システムとすることができる。ネットワークテスト装置１００は、シャシー１１０に収容又は包囲されている一又は複数のネットワークカード１１４やバックプレーン１１２を備えている。シャシー１１０は、ネットワークテスト装置を収容するために適した固定又は携帯型のシャシー、キャビネット又は囲いである。図１に示すように、ネットワークテスト装置１００は一体型のユニットであってもよい。代わりに、ネットワークテスト装置１００は、トラフィックの発生及び／又は解析を行うために貢献するいくつかの別個のユニットを有していてもよい。ネットワークテスト装置１００とネットワークカード１１４は、様々なイーザーネット標準やファイバチャネル標準のような、一又は複数の周知な標準又はプロトコルをサポートすることができ、また、プロプライエタリーなプロトコルもサポートすることができる。
【００１３】
ネットワークカード１１４は、フィールドプログラマブルゲートアレー（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、プログラマブルロジックアレー（ＰＬＡ）、プロセッサ及び他の種類のデバイスの一又は複数を有していてもよい。また、ネットワークカード１１４は、ソフトウェア及び／又はファームウェアを備えていてもよい。用語「ネットワークカード」の範囲は、ラインカード、テストカード、解析カード、ネットワークラインカード、負荷モジュール、インタフェースカード、ネットワークインタフェースカード、データインタフェースカード、パケットエンジンカード、サービスカード、スマートカード、スイッチカード、リレーアクセスカード等を含む。用語「ネットワークカード」の範囲は、モジュール、ユニット及びアセンブリをも含み、これには多層のプリント回路基板が含まれる。各ネットワークカード１１４は、一又は複数のネットワークポートを提供する。ネットワークカード１１４のポートは通信媒体１９２を介してネットワーク１９０に接続される。通信媒体１９２は、有線、光ファイバ、無線リンク又は他の通信媒体である。各ネットワークカード１１４は、単一の通信プロトコルをサポートする場合もあれば、関係する多くのプロトコルをサポートする場合もあれば、あるいは相関性のない多くのプロトコルをサポートする場合もある。ネットワークカード１１４は、ネットワークテスト装置１００内に恒久的に設置されることもあるが、取り外し可能なように設置されることもある。
【００１４】
各ネットワークカード１１４は、ポートにつながれた一又は複数のトラフィックレシーバー１２０を有する。トラフィックレシーバー１２０は、ポートを介してネットワークから受信したパケットのストリームを受信し評価する。また、トラフィックレシーバーは、受信パケットの少なくとも一部を取得し記憶する。各ネットワークカード１１４は、一又は複数のトラフィックジェネレータ（図２においては図示せず）を含むことができる。
【００１５】
バックプレーン１１２はネットワークカード１１４のためのバス又は通信媒体として機能する。また、バックプレーン１１２がネットワークカード１１４に電力を供給できるようにしてもよい。
【００１６】
ネットワークデバイス１９５は、ネットワーク１９０を介して通信することができるいずれのデバイスであってもよい。ネットワークデバイス１９５は、ワークステーション、パーソナルコンピュータ、サーバ、携帯型コンピュータ、個人情報端末（ＰＤＡ）、コンピューティングタブレット、携帯／移動体電話、電子メール機器等のようなコンピューティングデバイス、プリンタ、スキャナ、ファクシミリ機器等のような周辺デバイス、ネットワーク接続ストレージ（ＮＡＳ）、ストレージエリアネットワーク（ＳＡＮ）デバイスのようなディスクドライブ、ルータ、リレー、ハブ、スイッチ、ブリッジ、マルチプレクサのようなネットワーキングデバイスとすることができる。
【００１７】
ネットワーク１９０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、有線、無線、これらの組み合わせをすることができ、インターネットを含んでいてもインターネットそのものでもよい。ネットワークテスト装置１００及びネットワークデバイス１９５は、お互い同時に通信することができ、ネットワークテスト装置１００とあるネットワークデバイス１９５の間では複数の論理的な通信があってもよい。ネットワーク自体は、データが移動するための数多くの物理的及び論理的な経路を提供する数多くのノードを有している。
【００１８】
図２において、例示的なトラフィックレシーバー２２０は、ネットワークインタフェースユニット（ＮＩＵ）２２５、タイムスタンパー２２８、アウトオブシーケンスエンジン２３５、統計ユニット２３０、キャプチャユニット２４０、及びコントローラ２８０を備え、これはトラフィックレシーバーの外部であってもよいユーザインタフェース（図示せず）につなぐことができる。タイムスタンパー２２８、アウトオブシーケンスエンジン２３５、統計ユニット２３０、キャプチャユニット２４０、ネットワークインタフェースユニット（ＮＩＵ）２２５、及びコントローラ２８０は、トラフィックレシーバー２２０の機能を論理的に区別したものであって、共通のハードウェアや少なくとも一部が共通なハードウェアを用いて実装することができる。
【００１９】
本文献の記述において、用語「エンジン」は、記述した機能を実行するハードウェアの集合体を意味し、これはファームウェア及び／又はソフトウェアによって増強することができる。エンジンは通常、主に機能的な用語を用いてエンジンを記述するハードウェア記述言語（ＨＤＬ）を用いて設計される。このようなＨＤＬ設計は、ＨＤＬシュミレーションツールを用いて検証される。次に、検証されるＨＤＬ設計は、一般に「合成」と呼ばれるプロセスにおいてゲートネットリスト又は他のエンジンの物理的な記述に変換される。この合成は、合成ツールを用いて自動的に行うことができる。ゲートネットリスト又は他の物理的な記述は、フィールドプログラマブルゲートアレー（ＦＰＧＡ）、プログラマブルロジックデバイス（ＰＬＤ）、又はプログラマブルロジックアレー（ＰＬＡ）のようなプログラマブルデバイスにおいてエンジンを実装するためにプログラミングコードにさらに変換される。ゲートネットリスト又は他の物理的な記述は、エンジンを特定用途向け集積回路（ＡＳＩＣ）内にて製造するためのプロセス命令及びマスクに変換される。
【００２０】
本文献の記述において、用語「ユニット」も、ハードウェア、ファームウェア、及び／又はソフトウェアの集合体を意味し、これは「エンジン」よりも大規模であってもよい。例えば、ユニットには複数のエンジンを含んでいてもよく、これらの一部が並列に同様な機能を実行していてもよい。用語「エンジン」及び「ユニット」は、いかなる物理的な分離又は境界をも暗示していない。一又は複数のユニット及び／又はエンジンのすべて又は一部を、ネットワークカード１１４のような共通のカード上に共に配置してもよく、共通のＦＰＧＡ、ＡＳＩＣ、又は他の回路デバイス内に共に配置してもよい。
【００２１】
ネットワークインタフェースユニット２２５は、複数のフローからなるストリームの形態でネットワーク２９０からトラフィックを受信することができ、この各フローは、他のフローからのパケットによってインターリーブされることもあるパケットからなる。各受信パケットは、対応するフローを示すフロー識別子を含むことができる。このフロー識別子は、送信元アドレス、宛先アドレス、ポート番号、及び／又は他のフィールドのようなパケット内の一又は複数のフィールドのすべて又は一部とすることができる。
【００２２】
ネットワークインタフェースユニット２２５は、リンク２９２を介してネットワーク２９０からパケットを受信する。リンク２９２は、光、電気的又は無線のリンクであってもよい。パケットは、単一の回線レートのシリアルデータ信号として受信しても、組み合わさって全体として回線レートでデータを提供する複数の少数のシリアルデータ信号として受信してもよい。ネットワークインタフェースユニット２２５は、回線レートのシリアルデータ信号又はより低いデータレートを備えるより多くの並列のデータ経路への信号を変換する。この並列データ経路は、特定のビット数の幅を有するようにできる。すなわち、データ経路はそのビット数の信号からなる並列のデータ経路のようにできる。この並列データ経路のクロックレートは、リンク２９２の回線レートを経路のビット幅で割ったもの以上とすることができる。
【００２３】
例えば、リンク２９２は、ＯＣー１９２リンク、同期式光通信網（ＳＯＮＥＴ）リンク、又はデータレートが約１０Ｇｂｉｔｓ／秒（Ｇｂｓ）のイーサーネットリンクとすることができる。ネットワークインタフェースユニットは、受信したシリアルデータ信号を約３１２Ｍｂｓのクロックレートを有する３２ビットパラレルデータ、約１５６Ｍｂｓのクロックレートを有する６４ビットパラレルデータ経路、又は約７８Ｍｂｓのクロックレートを有する１２８ビットパラレルデータ経路へと変換することができる。さらに例を挙げると、リンク２９２は、約４０Ｇｂｓのデータレートを有するＯＣ−７６８光リンクとすることができる。ネットワークインタフェースユニットは、受信シリアルデータ信号を約１５０Ｍｂｓのクロックレートを有する２５６ビットの並列データ経路へと変えることができる。リンク２９２は、他のデータレートでも動作する。
【００２４】
ネットワークインタフェースユニット２２５が受信したパケットは、タイムスタンパー２２８へと送られる。予て定義したように、タイムスタンパー２２８は、各受信パケットにタイムスタンプを付与するエンジンとすることができる。タイムスタンパー２２８は、クロックを有していたりクロックにつながったりしていてもよい。タイムスタンパー２２８は、タイムスタンプを付与するために、パケットが到来する毎にクロックをサンプリングする回路を有していてもよい。タイムスタンプは、パケットの実際又は相対的な到着時間を示すデータとすることができる。タイムスタンプは、パケットの先頭又はパケットの後端に付けることができる。タイムスタンプは、パケット内に埋め込んでもよく、あるいは独立の信号線で通信させてもよい。タイムスタンプデータは、受信パケットより前、後、受信中、又は並行に、統計ユニット２３０、アウトオブシーケンスエンジン２３５及びキャプチャユニット２４０の中の一又は複数と通信してもよい。タイムスタンプが付与されたパケットは、「タイムスタンプ付きパケット」と呼ぶ。
【００２５】
タイムスタンプ付きパケットは、アウトオブシーケンスエンジン２３５へとルーティングされる。次に、アウトオブシーケンスエンジン２３５は、各パケットがその関連するフロー内の適切なシーケンスにあるかどうかを判断する。例えば、アウトオブシーケンスエンジン２３５は、受信パケットそれぞれのフロー識別子を抽出する回路を有する。アウトオブシーケンスエンジン２３５は、フロー識別子から、パケットがシーケンス番号を含んでいるかどうかを判断し、もしそうであればシーケンス番号を抽出する。アウトオブシーケンスエンジン２３５は、各フローに対する次に期待されるシーケンス番号を保持する。アウトオブシーケンスエンジン２３５は、パケットから抽出したシーケンス番号を、テーブルから得た期待されるシーケンス番号を有するパケットと比較することによって、パケットが正しいシーケンスで受信されたかどうかを判定する。アウトオブシーケンスエンジン２３５は、パケットが受信されるごとに、テーブル内の適切なフローに対する期待されるシーケンス番号を更新する。アウトオブシーケンスエンジン２３５は、パケットを期待されるシーケンスと異なって受信した場合には、受信パケットにタグを付けたり、信号をアサート（アクティブな状態にする）、あるいは指示する。例えば、このタグは、タイムスタンプ付きパケットの前、後、又は並行して、統計ユニット２３０とキャプチャユニット２４０の双方又は一方と通信されるデータビット又は信号である。
【００２６】
各パケットは、付与されたタイムスタンプ及びパケットがシーケンスとは異なって受信されたかどうかを示すタグと共に、アウトオブシーケンスエンジン２３５から統計ユニット２３０へと通信される。統計ユニット２３０は、各パケットから関連する情報を抽出し、各フローに対する統計情報を蓄積する。「メモリアクセスの最適化及び通信の統計情報の計算（Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｔａｔｉｓｔｉｃｓ  Ｃｏｍｐｕｔａｔｉｏｎ）」と題する刊行された米国特許出願ＵＳ  ２００７／０２９１６５４  Ａ１には、フロー統計情報を蓄積する装置及び方法が記載されている。
【００２７】
付与されたタイムスタンプ及びパケットがシーケンスから受信されたかどうかを示すタグと共に、各タグは、直接又はアウトオブシーケンスエンジン２３５を介してタイムスタンパー２２８からキャプチャユニット２４０へと通信される。いずれの場合においても、パケットがシーケンスとは異なって受信されたかどうかを試されるタグは、アウトオブシーケンスエンジン２３５からキャプチャユニット２４０へと通信される。後に詳細に説明するキャプチャユニット２４０は、所定のキャプチャ基準を満たすパケットを取得し記憶する。  その後、取得されたパケットは、検査され、例えば、ネットワーク又は装置の性能上の問題や故障を診断するために解析される。
【００２８】
コントローラ２８０は、統計ユニット２３０、キャプチャユニット２４０及びアウトオブシーケンスエンジン２３５に対してこれらのユニットが記載した機能を行うために必要な指示及びデータを与える。例えば、コントローラ２８０は、コントローラ２８０の一部又は外部であってもよいユーザインタフェース（図示せず）を介して、ユーザからフロー統計情報の要求を受けることができる。コントローラ２８０は、フロー統計情報の要求を統計ユニット２３０へと中継し、統計ユニット２３０から要求されたフロー情報を受信する。コントローラ２８０は、ユーザインタフェースを介して、要求されたフロー統計情報をユーザに提示する。
【００２９】
さらなる例として、コントローラ２８０は、ユーザインタフェースを介してユーザから一又は複数のキャプチャ基準を受ける。コントローラ２８０は、キャプチャ基準をキャプチャユニット２４０へと中継する。コントローラ２８０は、ユーザの要求に応答して、キャプチャユニット２４０が取得したパケットを取り出し、表示し、及び／又は解析する。
【００３０】
図３において、キャプチャユニット３４０は、キャプチャユニット２４０として使用することにも適しているようにすることができ、パケット分配エンジン３４２、第１のパケットＦＩＦＯ３４４Ａを含む複数のパケットＦＩＦＯ及び第１のキャプチャエンジン３５０Ａを含む複数のキャプチャエンジンを備えることができる。
【００３１】
キャプチャユニット３４０は、第１のフリップフロップ３４６、又はキャプチャプロセスが稼働していることを示すキャプチャイネーブル信号又はフラグを与える他の記憶レジスタを有することができる。例えば、このキャプチャイネーブルフラグは、取得（キャプチャ）が可能な場合に「真」となり、取得（キャプチャ）が可能でない場合に「偽」となる二値信号となる第１のフリップフロップ３４６は、キャプチャ開始信号によってセットされて、これによりキャプチャイネーブルフラグが真となる。例えば、キャプチャ開始信号を、コントローラ２８０のようなコントローラ（図３において図示せず）から受信する。第１のフリップフロップ３４６は、キャプチャプロセスが完了したことを示す、コントローラからのキャプチャ停止信号又は複数のキャプチャエンジンのいずれかからの信号によって、リセットされ、これによりキャプチャイネーブルフラグが偽となる。例えば、一又は複数のキャプチャエンジンによって所定数のパケットが取得された場合に、キャプチャプロセスが完了したとみなす。
【００３２】
パケット分配エンジン３４２は、タイムスタンプ付き受信パケットを受け入れ、複数のキャプチャエンジンに関連づけられた複数のパケットＦＩＦＯへと受信パケットを分配するエンジンである。各パケットを分配する前に、パケット分配エンジンは、キャプチャイネーブルフラグが真であった時にパケットを受信したかどうかを示すフラグを付与する。受信パケットの全体のデータレートは、テスト時のネットワーク又は装置の回線レートと同じかほぼ同じとすることができる。受信パケットは、回線レートで複数のパケットＦＩＦＯに分配され記憶される。受信パケットは、複数のパケットＦＩＦＯから取り出され、（回線レート）÷Ｎ  のデータレートで複数のキャプチャエンジンによって処理される。ここで、Ｎは、並列なパケットＦＩＦＯ及びキャプチャエンジンの数に等しい整数値である。
【００３３】
パケット分配エンジン３４２は、Ｎ個のキャプチャエンジンのそれぞれがＮ個ごとのパケットを受信するようなラウンドロビン式で受信パケットを分配する。パケット分配エンジンは、各受信パケットが最も利用可能な容量が大きいパケットＦＩＦＯにルーティングされるようにして受信パケットを分配する。この方法では、受信パケットの合計長さは、複数のキャプチャエンジンの間でより均等に分散される。
【００３４】
第１のキャプチャエンジン３５０Ａは、少なくともトリガーフィルタを含む複数のフィルタを備える。複数のフィルタそれぞれは、どのパケットを取得すべきかを定義する、対応する複数のキャプチャ基準の１つに関連づけられている。複数のキャプチャエンジンのすべてが、同じ複数のキャプチャ基準を使用する。これらのフィルタは、第１のキャプチャエンジン３５０Ａにルーティングされたパケットが一又は複数のトリガー基準及び少なくとも１つの他のキャプチャ基準に合致するかどうかを判断する。キャプチャ基準は、キャプチャ（取得）プロセスの開始時において、例えば、コントローラ２８０のようなコントローラから、対応するフィルタへとロードされる。
【００３５】
各キャプチャ基準は、キャプチャ（取得）されるためにパケットが合致しなければならない一又は複数の条件を含む。例えば、各キャプチャ基準は、ＭＡＣ宛先アドレスフィールド、ＭＡＣ送信元アドレスフィールド、ＩＰ宛先アドレスフィールド、ＩＰ送信元アドレスフィールド及び他のフィールドの一又は複数のようなパケット内の一又は複数のフィールドとしての値の範囲又は特定の値を含む。各キャプチャ基準は、他の必要条件を含んでいてもよい。例えば、パケットがシーケンスで受信されたこと／受信されていないこと、及び／又はパケットがチェックサムエラー又は巡回冗長検査（ＣＲＣ）エラーを含むこと／含まないことである。各キャプチャ基準は、他の条件や複数の条件の組み合わせを含んでいてもよい。
【００３６】
トリガー基準は、単一の関心事のパケットないしパケットのシーケンスを特定することができる。例えば、トリガー基準は、ネットワークの障害解析に用いるエラーパケットの種類を特定する。キャプチャ（取得）動作時には、トリガー基準に合致する受信パケットは「トリガーイベント」として特定される。一般に、トリガー基準に合致する最初の受信パケットが「トリガーイベント」となるが、トリガーイベントは、２番目、５番目、１００番目、又は他で発生したトリガー基準に合致するパケットとしても定義されていてもよい。
【００３７】
トリガー基準は、パケットの組み合わせ又はパケットのシーケンスを特定する。例えば、トリガー基準は、最終トリガー基準と、及び一又は複数のプリトリガー基準とを含んでいてもよい。この場合、最終トリガー基準を満たし少なくとも１つのパケットがプリトリガー基準の１つを満たした後で受信したパケット（最初又は他における発生）というように、トリガーイベントを定義してもよい。さらなる例として、おそらく特定の順序で、最終トリガー基準を満たしプリトリガー基準のそれぞれが少なくとも１つのパケットによって満たされた後に受信したパケット（最初又は他における発生）というように、トリガーイベントを定義してもよい。
【００３８】
トリガー基準がパケットのシーケンスを特定する場合、トリガーフィルタは、最終トリガーフィルタと、複数のプリトリガーフィルタと、及びトリガーイベントを発生させるために受信パケットがプリトリガー基準及び最終的なフィルタ基準を満たしているパケットのシーケンスを管理するための状態エンジンとを含んでいてもよい。
【００３９】
キャプチャユニット３４０は、第２のフリップフロップ３６４、又はトリガーイベントが発生したことを示すトリガーイベントフラグ若しくは信号を与える他の記憶レジスタを含んでいてもよい。第２のフリップフロップ３６４は、キャプチャ開始信号によってリセットするようにでき、これによりトリガーイベントフラグが偽になる。第２のフリップフロップは、その後に、トリガーイベントが発生したということを示す複数のキャプチャエンジンのいずれかからの信号によってセットされ、これによりトリガーイベントフラグが真になる。
【００４０】
図３の例において、第１のキャプチャエンジン３５０Ａは、パケットが対応するトリガー基準、プリトリガー基準及びポストトリガー基準に合致するかどうかを判断するトリガーフィルタ３５２Ａ、プリトリガーフィルタ３５４Ａ、及びポストトリガーフィルタ３５６Ａを含んでいてもよい。プリトリガー基準は、トリガーイベントの前に取得（キャプチャ）するパケットを特定する。同様に、ポストトリガー基準は、トリガーイベントの後に取得するパケットを特定する。第１のキャプチャエンジン３５０Ａ内において、トリガーフィルタ３５２Ａ、プリトリガーフィルタ３５４Ａ及びポストトリガーフィルタ３５６Ａのそれぞれは、パケットが対応する基準に合致するかどうかを示すために、対応するフラグ又はデータビットを各パケットに付与する。
【００４１】
第１のキャプチャエンジン３５０Ａは、キャプチャするパケットを記憶するためのキャプチャメモリ３７０Ａと、キャプチャメモリ３７０Ａへのパケットの書き込み及びキャプチャメモリ３７０Ａからのパケットの読み込みを制御するためのメモリマネージャ３６０Ａと、及びパケット及び付与したフラグを所定の時間遅延させるための遅延バッファ３５８Ａとを含んでいてもよい。遅延バッファの機能は、図４を詳しく検討することにより理解できる。
【００４２】
図４は、複数のキャプチャエンジンによる受信パケットの処理を示す例示的なタイミング図である。このタイミング図の上の２つの線４０１、４０２は、第１のフリップフロップ３４６からのキャプチャイネーブルフラグと、及び第２のフリップフロップ３６４からのトリガーイベントフラグとをそれぞれ示している。３番目の線４０３は、一連の受信パケットを図示したものである。受信パケットには、参照を容易にするために連番を振っており、トリガーイベントに対する各パケットの相対的な位置を示すように影を付けてある。より具体的には、３番目の線４０３は、パケットＦＩＦＯ３４４ＡのようなＦＩＦＯ待ち行列の一又は複数へと受信パケットをロードするタイミングを示している。
【００４３】
４〜７番目の線４０４、４０５、４０６、４０７は、４つのキャプチャエンジンによる受信パケットの処理を示しており、これらのそれぞれはキャプチャエンジン３５０Ａと同じであってもよい。４つのキャプチャエンジンは、例として用いただけであり、トラフィックレシーバーにおけるキャプチャエンジンの数は４より小さくても大きくてもよい。受信パケットは、４つのキャプチャエンジンのそれぞれが４つごとにパケットを受信するようなラウンドロビン式で、４つのキャプチャエンジンの間で分散させることができる。４つのキャプチャエンジンのそれぞれに向かう受信パケットは、各キャプチャエンジンに関連づけられたＦＩＦＯ待ち行列に保持される。受信パケットは、新しく受信したパケットがそれぞれ利用可能な容量が最も大きいＦＩＦＯ待ち行列にルーティングされるように４つのキャプチャエンジンの間で分散される。この方法によって、受信パケットの合計の長さは、４つのキャプチャエンジンの間でより均等に分散することができる。
【００４４】
受信パケットは、回線レートでＦＩＦＯ待ち行列にロードされる。４つのパケットエンジンが受信パケットを並列に処理するので、各キャプチャエンジンにおけるデータレートは回線レートの４分の１しかない。このように、４つのパケットエンジンのそれぞれは、回線レートの４分の１で、対応するＦＩＦＯ待ち行列からパケットを取り出す。４〜７番目の線４０４、４０５、４０６、４０７は、ＦＩＦＯ待ち行列から受信パケットを取り出すキャプチャエンジンのタイミングを描いている。なお、キャプチャエンジンにおけるデータレートは、（この例では）回線レートの４分の１なので、ＦＩＦＯ待ち行列から各パケットから取り出すのに必要な時間間隔は、線４０３に示すように、各パケットをＦＩＦＯ待ち行列にロードするのに必要な時間間隔の４倍である。
【００４５】
図４の例において、５番目の受信パケットが、トリガーパケット、すなわち、トリガー基準のセットに合致する最初の受信パケットと考えられる。このように、第３のキャプチャエンジンによる５番目の受信パケットの処理の際のある時点において（線４０６）、トリガーイベントフラグ（線４０２）がセットされる。この例では、トリガーイベントフラグがセットされる瞬間において、第１及び第２のキャプチャエンジン（線４０４、４０５）は、トリガーパケットの前に受信したパケット１、２をそれぞれ処理しており、また、第４のキャプチャエンジンは、トリガーパケットの後に受信したパケット６を処理している。しかし、第１、第２及び第４のキャプチャエンジンは、処理されているパケットの相対的な到来時間について、及びトリガーパケットのおいての可視性を有していないかもしれない。このように、第１、第２及び第４のキャプチャエンジンは、トリガーイベントフラグがセットされる時において、プリトリガーフィルタ及びポストトリガーフィルタのどちらかを適用するかということを把握していないかもしれない。また、第１、第２及び第４のキャプチャエンジンは、所望のパケットすべてを取得できないかもしれない。
【００４６】
図３に戻り、所望のパケットすべてを取得することを確実にするために、第１のキャプチャエンジンは、受信パケットを遅延させる遅延バッファ３５８Ａと、及び所定の時間にフィルタ３５２Ａ、３５４Ａ、３５６Ａを付けられた対応するトリガーフラグとを有する。この所定の時間は、キャプチャエンジンが最も長いと想定されるパケットに必要な時間以上とすることができる。遅延バッファ３５８Ａは、例えば、パケット及びフラグデータを継続的に記憶し読み込むＦＩＦＯ待ち行列である。このようなＦＩＦＯ待ち行列は、例えば、可能性のあるメモリアドレスを継続的に巡回する読み込み及び書き込みポインタを備えたランダムアクセスメモリにより実装することができる。
【００４７】
メモリマネージャ３６０Ａは、遅延バッファ３５８Ａからパケット及びフラグデータを抽出し、取得されるパケットをキャプチャメモリ３７０Ａに書き込む制御を行う。メモリマネージャ３６０Ａは、取得されるパケットをキャプチャメモリ３７０Ａに記憶するために必要な動作を繰り返し実行するハードウェアにおいて実装される状態マシンのようなエンジンとすることができる。メモリマネージャ３６０Ａは、キャプチャ（取得）動作を完了した後にキャプチャメモリ３７０Ａからのキャプチャパケットをまとめ、読み込むプロセスを行うことができる。これについては後述する。
【００４８】
遅延バッファ３５８Ａの存在により、メモリマネージャに本質的に後知恵が与えられる。トリガーイベントフラグ３６４がセットされる瞬間において、メモリマネージャは、遅延バッファ３５８Ａの遅延時間と同じ時間の分、トリガーパケットよりも早く受信したパケットを記憶するが否かを判断する。所望パケットすべてを取得することを確実にするために、遅延バッファ３５８Ａから受信したパケットを記憶するか否かを判断するための以下の３つのルールに従う。
●もしトリガーイベントフラグ３６４がセットされていなければ、添付のプリトリガーフラグが真である場合にかぎり、各パケットを記憶する（プリトリガー基準を満たすパケット）。
●遅延バッファ３５８Ａの遅延時間と同じとすることができる、トリガーイベントフラグ３６４がセットされた後の時間、添付されたプリトリガーフラグ、トリガーフラグ、ポストトリガーフラグのいずれか１つ又は複数が真である場合に各パケットを記憶する（３つのトリガー基準のいずれか１つ又は複数を満たすパケット）。
●その後、キャプチャ（取得）動作が完了するまで、添付されたポストトリガーフラグが真である場合にかぎり、各パケットを記憶する（ポストトリガー基準を満たすパケット）。
【００４９】
キャプチャメモリ３７０Ａは、静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、同期型動的ランダムアクセスメモリ（ＳＤＲＡＭ）、内容アドレスメモリ（ＣＡＭ）、又は他のメモリとすることができる。キャプチャエンジン３５０Ａのようなキャプチャエンジンの一又は複数の全体又は一部を、例えば、フィールドプログラマブルロジックアレー（ＦＰＧＡ）又は他の半導体デバイスで、実装することができる。このイベントの場合、キャプチャメモリ３７０Ａは、キャプチャエンジン３５０Ａを含むＦＰＧＡ又は他の半導体デバイスの外部とすることができる。
【００５０】
図５で示すように、キャプチャメモリ３７０Ａであってもよいキャプチャメモリ５７０Ａは、パケットを記憶するパケットメモリ５７２Ａと、及びパケットに関連する情報を記憶するパケット情報メモリ５７４Ａとに分かれていてもよい。パケット情報メモリ５７４Ａに記憶された各レコードは、パケットメモリ５７２Ａに記憶されたパケットに関連づけられる。パケット情報メモリ５７４Ａに記憶した各レコードは、対応したパケットに添付されたフラグ、対応したパケットのタイムスタンプ、対応したパケットの長さ、及びパケットメモリ５７２Ａにおける対応するパケットの開始位置へのポインタのような情報を含んでいてもよい。パケット情報メモリ５７４Ａに記憶した各レコードは、キャプチャエンジンによって各パケットに添付されたプリトリガーフラグ、トリガーフラグ及びポストトリガーフラグを少なくとも含むようにできる。関連づけられたパケットの開始位置へのポインタを含むことによって、異なる長さのパケットをパケットメモリ５７２Ａにおいて密に搭載することが可能になる。これは、パケットメモリ５７２Ａの固定長セグメントにおいて各パケットを記憶する場合と比べて対照的である。
【００５１】
［各プロセスの説明］
次に、図６において、キャプチャ（取得）動作６００は、開始６０５及び終了６９０を含んでいる。この文脈において、用語「動作」とは、各々を部分的に独立なプロセスと考えることができる、いくつかの部分又は段階を含むプロセスをいう。キャプチャ動作は、コントローラ２８０であってもよいコントローラの指揮の下の、キャプチャユニット２４０であってもよいキャプチャユニットによって提供することができる。キャプチャ動作６００は、セットアップ部分６１０と、何回も繰り返される巡回キャプチャ部６１５〜６６０と、及び終結部６７０とを含む。６９０においてキャプチャ（取得）動作を終了した後、様々なキャプチャ後プロセス６９５がキャプチャ動作６００時に取得されたパケットに対して実行される。
【００５２】
６１０において、セットアップ部分は、一又は複数のキャプチャ基準をキャプチャユニットに与えることを含んでいる。キャプチャ基準は、コントローラによって与えることができる。キャプチャ基準は、例えば、トリガーイベントを特定するトリガー基準、トリガーイベントの前に取得されるパケットを特定するプリトリガー基準、及びトリガーイベントの後に取得するパケットを特定するポストトリガー基準を含む。キャプチャ基準の他の数字や種類は、キャプチャユニットによって使用するために用意されていてもよい。さらなる例として、キャプチャ基準には、第２のトリガーイベントを特定する第２のトリガー基準、及び初期トリガーイベント及び第２のトリガーイベントの間で取得するパケットを特定するトリガー間基準をさらに含んでいてもよい。
【００５３】
各キャプチャ基準には、取得（キャプチャ）されるためにパケットが合致しなければならない一又は複数の条件を含んでいてもよい。例えば、各キャプチャ基準には、一又は複数のＭＡＣ宛先アドレスフィールド、ＭＡＣ送信元アドレスフィールド、ＩＰ宛先アドレスフィールド、ＩＰ送信元アドレスフィールド、及び他のフィールドのような、パケット内の一又は複数のフィールドに対する特定の値又は値の範囲を含んでいてもよい。各キャプチャ基準には、シーケンスでパケットが受信された／受信されなかったこと、及び／又はパケットがチェックサムエラー又はＣＲＣエラーを含む／含まないことのような、他の必要条件を含んでいてもよい。各キャプチャ基準には、他の条件や複数の条件の組み合わせを含んでいてもよい。
【００５４】
６１０において、キャプチャ（取得）動作の完了条件も定義することができる。キャプチャ動作の完了条件には、例えば、最大数取得されるパケットを取得したこと、トリガーイベントの後に特定の数又は最大数のパケットが取得されたこと、トリガーイベントの後に最大バイト数が取得されたこと、キャプチャ動作のための最大時間が経過したこと、キャプチャ動作を完了するために受信しなければならないパケットを特定するような完了基準、キャプチャ動作を停止させるリアルタイムなユーザコマンド等の条件のうちの一又は複数を含んでいてもよい。キャプチャ動作の完了条件は、コントローラがキャプチャユニットに提供してもよい。
【００５５】
６１０において、コントローラは、キャプチャユニット内のトリガーイベントフラグをリセットしてもよい。キャプチャ基準及び完了条件が与えられた後、コントローラは、キャプチャ動作６００の巡回取得部分を初期化するためにキャプチャユニット内においてキャプチャイネーブルフラグをセットする。
【００５６】
キャプチャ動作６００の巡回取得部分を初期化する際、６１５において最初のパケットが受信され、６２０においてこの最初に受信したパケットにタイムスタンプが添付ないし付加される。６３０において、この最初に受信したパケットは、６１０においてキャプチャユニットに与えられたキャプチャ基準に従って記憶されたりされなかったりする。６３０において、パケットが６３０において処理される時に有効となっている一又は複数のキャプチャ基準にパケットが合致していれば、各パケットは記憶される。例えば、トリガーイベントの前に受信されると想定される最初のパケットは、６１０においてプリトリガー基準が与えられ、最初のパケットがプリトリガー基準に合致していれば記憶される。
【００５７】
６６０において、キャプチャ動作６００の完了のために６１０に与えられた条件が満たされたかどうかが判断される。条件が満たされた場合、６７０においてキャプチャ（取得）動作が継続される。キャプチャイベントの完了条件が満たされていない場合、キャプチャ動作は６１５に戻り、他のパケットを受信する。６１５から６６０までの動作は、キャプチャ動作６００の完了のための条件が満たされたと６６０で判断されるまで巡回的に繰り返される。
【００５８】
６７０において、タイムスタンプ順になっている継続的に取得されたパケットのリストが、後のキャプチャパケットの解析及び取り出しのために準備される。キャプチャユニット３４０のような、キャプチャユニットが複数のキャプチャエンジンを含む場合、取得されたパケットのリストは、複数のキャプチャエンジンのそれぞれが取得したパケットを統合する。状況によっては、一又は複数のキャプチャエンジンが、キャプチャ（取得）動作時に記憶したパケットのすべては保持しないことがある。これについては後で詳細に説明する。このような状況では、欠けたパケットによって発生する解析エラーを防ぐために、継続的に取得（キャプチャ）されたパケットのみにパケットのリストを限定して減らすようにしてもよい。この取得パケットのリストは、キャプチャユニット内で用意してもよく、コントローラに供給され、コントローラが利用可能なものにしてもよい。
【００５９】
６９０において取得（キャプチャ）動作６００が終了した後、一又は複数のキャプチャ後動作６９５が実行される。このキャプチャ後動作６９５は、パケットのリストをユーザに提示することを含む。ここで、「提示」には、ユーザがリストにアクセス可能にするような、表示、印刷及び他のことを含む。このリストは、取得（キャプチャ）動作６００を実行したトラフィックレシーバーに関連づけられたユーザインタフェースでユーザに提示してもよく、遠隔位置にある別のデバイス上で提示するためにネットワークを介してリストを送信してもよい。ユーザの要求に応答して、キャプチャパケットの１つ、一部又はすべてを取り出したりユーザに提示したりしてもよい。キャプチャパケットの１つ、一部又はすべては、別のデバイスへとネットワークを介して送信してもよく、キャプチャパケットの１つ、一部又はすべては、保管用の記憶デバイス上に記憶してもよい。また、キャプチャパケットに対して様々な解析を行う。これには、キャプチャ動作の結果を表現するデータを作るような、並び替え、分類分け、計数、平均化、及び他の解析プロセスが含まれる。これらの解析は、キャプチャ動作６００を実行したトラフィックレシーバー内で行っても別のデバイスで行ってもよい。
【００６０】
図７には、キャプチャ動作６００における６３０にて使用するのに適している、パケットを記憶するプロセス７３０の詳細を示す。７３２において、受信パケットがＦＩＦＯ待ち行列に一時的に記憶される。７３６において、このＦＩＦＯ待ち行列の頂上のパケットがＦＩＦＯ待ち行列から読み出され、所定のプリトリガー基準と比較される。パケットがプリトリガー基準に合致する場合、パケットに添付又はパケットに関連するプリトリガーフィルターフラグが７３８にセットされる。同様に、７４０において、所定のポストトリガー基準とパケットが比較される。パケットがこのポストトリガー基準に合致する場合、パケットに添付、又はパケットに関連するポストトリガーフィルターフラグが７４２においてセットされる。
【００６１】
７４４において、パケットは所定のトリガー基準と比較される。パケットがトリガー基準に合致する場合、パケットに添付、又はパケットに関連づけられたトリガーフィルターフラグが７４６においてセットされる。また、７４６において、トリガーイベントフリップフロップ３６４のようなキャプチャユニット内のトリガーイベントフラグがセットされる。例えば、６１０において、トリガーイベントフラグがキャプチャ動作の開始より前にリセットされるので、トリガー基準に合致する最初のパケットが７４６においてトリガーイベントフラグをセットする。
【００６２】
図７には、説明の簡便さのために、順次的に行われる、パケットと、及び７３６、７４０、７４４における様々な基準との間の比較を示している。７３６、７４０、及び７４４における比較は、順次的にいずれの順序でも行うことができ、並列に、部分的に並列に、また、部分的に順次的にでも、いずれの組み合わせでも行ってもよい。
【００６３】
７４８において、パケット及び添付された／関連づけられたフィルターフラグは、所定の遅延時間遅延される。例えば、所定の遅延時間は、所定のクロックサイクル数として定めることができる。さらなる例として、パケットは、ＦＩＦＯ待ち行列において遅延されていても、又は記憶スロットの数が所定のクロックサイクル数と等しく各クロックサイクルで記憶スロットが読み出され書き込まれるような他のバッファメモリにおいて遅延されていてもよい。パケット及び添付された／関連づけられたフィルターフラグは、他の方法で遅延されてもよい。パケット及び添付された／関連づけられたフィルターフラグは、他の方法で遅延されてもよい。
【００６４】
７５０において、パケット及びフラグが、所定の時間のために遅延された後、トリガーイベントフラグがセットされたかどうか判断される。トリガーイベントフラグがセットされていない場合（トリガー基準に合致しているパケットがまだ受信されてないことを意味する）、パケットに添付されたプリトリガーフィルターフラグがセットされている場合にのみ７５２において記憶される。
【００６５】
７５０において、トリガーイベントフラグがセットされていると判断された場合、トリガーイベントフラグがセットされてから所定の遅延時間が経過したかどうかが７５４において判断される。トリガーイベントフラグがセットされてから所定の遅延時間経過していない場合、プリトリガーフィルターフラグ、ポストトリガーフィルターフラグ、及びトリガーフィルターフラグのいずれか１つ又は複数がセットされていれば、７５６においてパケットが記憶される。７５４においてトリガーイベントフラグがセットされてから所定の遅延時間経過したと判断された場合、ポストトリガーフィルターフラグがセットされているときにのみ７５８においてパケットが記憶される。
【００６６】
図８Ａは、パケットメモリ５７２Ａのようなパケットメモリのパケットを記憶する、キャプチャエンジン３５０Ａのようなキャプチャエンジンの動作を示したタイミング図である。図８Ｂには、パケットメモリに記憶されたパケットを図示した。
【００６７】
図８Ａにおいて、キャプチャイネーブルフラグ８１０によって定義されたパケットキャプチャ動作を示している。パケットキャプチャ動作時に、一連のパケット８２０が受信される。受信パケットは、説明を容易にするために、順番に１、２、３、... （ｎ＋４）の番号を付与されている。受信パケットの中で、影を付けられたパケット１、５、９、... （ｎ＋１）は、複数のキャプチャエンジンの最初のキャプチャエンジンによって処理されると想定されている。残りのパケットは複数のキャプチャエンジンの他のキャプチャエンジンによって処理されると想定している。
【００６８】
図８Ｂにおいて、線８５０、８６０は、第１のキャプチャメモリによってキャプチャされているパケットが記憶されており、第１のキャプチャメモリに記憶されたパケットを表している。線８５０は、パケットｎ＋１が記憶される前の第１のパケットメモリの内容を示している。この時において、パケット１、５及び９が、第１のパケットメモリの低いアドレス側の端に記憶される。この例において、第１のパケットメモリにパケットｎ＋１が記憶される時に、第１のパケットメモリの残りの容量は、パケットｎ＋１全体を記憶するのに十分ではない。したがって、線８６０に示すように、パケットｎ＋１が第１のパケットメモリの高いアドレス側の端に記憶され、パケットｎ＋１の残りが低いアドレス側の端に記憶され、前に記憶したパケット１とパケット５を上書きする。この条件は、メモリ「ラップ（ｗｒａｐ）」と呼ばれる。なぜなら、破線８６１に示したように、パケットｎ＋１がメモリの一方の端から他方の端まで覆うようだからである。
【００６９】
図８Ａ、図８Ｂの例において、第１のキャプチャメモリにさらなるパケットを記憶せずにキャプチャ動作が終了する。図８Ａ、図８Ｂの例には、第１のキャプチャエンジンのみがキャプチャ動作時にラップすると想定している。キャプチャ動作の終了時において、線８３０に示すように、複数のキャプチャエンジンのメモリにて実際に記憶されたパケットは、パケット２、３、４、及び６から（ｎ＋４）までである。この例において、パケット１及び５は欠けている。なぜなら、これらのパケットはパケット（ｎ＋１）の部分によって上書きされたからである。なお、実際に記憶されたパケットは連続的なものではない。なぜなら、パケット４及び６の間にはパケット５が欠けているからである。
【００７０】
実際のキャプチャ動作において、複数のパケットメモリがラップしていることもある。状況によっては、多数のプリトリガーパケットが、希にしか起こらないトリガーイベントの前に記憶された場合、一又は複数のパケットメモリが、複数回ラップされることもある。また、キャプチャエンジンに関連づけられたメモリが、図５で示すように、パケットメモリやパケット情報メモリ内にて構成する場合、パケットメモリとパケット情報メモリの一方か両方かがラップしている（覆っている）こともある。
【００７１】
図９には、タイムスタンプ順になっている継続的に取得したパケットのリストを提供するために、複数のキャプチャエンジンによって取得された情報を統合するプロセス９７０の流れ図を示す。プロセス９７０は、プロセス６００における６７０にて使用するために適している。プロセス９７０において、動作９７４〜９６７が、複数のキャプチャエンジンそれぞれによって並行して独立に行われ、動作９８０〜９８６は、複数のキャプチャエンジンによって総合的に行われる。例えば、動作９８０〜９８６は、主にキャプチャエンジンの単一のもの１つによって、複数のキャプチャエンジンの他のものによって提供された情報を用いて行われる。
【００７２】
９７４において、各キャプチャエンジンは、キャプチャ動作時に関連づけられたメモリがラップされたかどうかを判断する。関連づけられたメモリがパケットメモリとパケット情報メモリに分割される場合、パケットメモリとパケット情報メモリの一方又は両方がキャプチャ動作時にラップされたかどうかという判断がなされる。もしメモリのラップが発生しなかった場合、さらなる独立の動作は必要なくなる。
【００７３】
キャプチャ動作時にメモリラップが発生したと判断した場合、無関係のデータは９７６において捨てられる（廃棄される）。具体的には、各キャプチャエンジンは、キャプチャ動作時に上書きされたパケット情報レコードに関連づけられたすべての記憶されたパケットを捨ててもよい。また、各キャプチャエンジンは、キャプチャ動作時に上書きされたパケットに関連づけられたすべてのパケット情報レコードを捨ててもよい。「捨てられた」パケット又はパケット情報レコードは、消去されるのではなく、後で準備される、継続的に取得されたパケットのリストから除かれる。
【００７４】
９７８において、外からのデータすべてが捨てられた後、各キャプチャエンジンは、「最も早く記憶された」パケットを特定する。これは、（捨てられたパケットの中で）最も早いタイムスタンプを有するパケットとすることができる。図８Ａ、図８Ｂの例において、第１のキャプチャエンジンの最も早く記憶したパケットは、パケット９である。
【００７５】
９８０において、複数のキャプチャエンジンの一又は複数がキャプチャ動作の際にメモリラップを経たかどうかを判断する。９８０においてキャプチャ動作の際にメモリラップが発生しなかったと判断した場合には、プロセス９７０は９８６に進む。これについては後で説明する。
【００７６】
９８０において複数のキャプチャエンジンのうちで少なくとも１つのメモリラップが発生したと判断した場合、「最も早く記憶された」パケットのうちの最も新しいものを９８２において特定する。具体的には、９８２において、「最も早く記憶された」パケットは、メモリラップが発生したキャプチャエンジンによって（９７８において）特定された最も早く記憶されたパケットの中で最新のタイムスタンプを有するパケットである。
【００７７】
図８Ａ、８Ｂの例において、パケット９は、最も新しい最も早く記憶されたパケットである。なぜなら、１つのキャプチャエンジンのみにおいてキャプチャ動作時にメモリラップが発生していたからである。パケット９の後に受信したパケットにおいて上書きされたものはないため、パケット９からキャプチャ動作の終結までのすべてのパケットは連続的であると保証できる。図８Ａ、８Ｂの例において、パケット６、７及び８もパケット９と連続している。しかし、複数のキャプチャエンジンや複数のメモリラップを伴う複雑なキャプチャ動作時には、「最も新しい最も早く記憶された」パケットの前のどのパケットが（もしあれば）連続的であるかどうかを特定できない可能性もある。したがって、継続的に取得されたパケットのリストの準備は、「最も新しい最も早く記憶された」パケットのタイムスタンプよりも早いタイムスタンプを有するパケットをすべて捨てることを本来的に含んでいる。９８４において、各キャプチャエンジンは、９８２において特定された「最も新しい最も早く記憶された」パケットのタイムスタンプよりも早いタイムスタンプを有するパケットをすべて捨てるというようにできる。
【００７８】
９８６において、タイムスタンプ順になっている継続的に取得されたパケットのリストが準備される。９８６において、残りの捨てられずに記憶されたパケットは、連続的なものであるということが分かる。しかし、残りの記憶されたパケットは、必ずしもすべてが適切ではない。具体的には、残りの記憶されたパケットには、ポストトリガー基準のみには合致したがトリガーイベントのパケット（トリガー基準に合致した最初のパケット）のタイムスタンプよりも早いタイムスタンプが含まれる。同様に、残りの記憶されたパケットは、プリトリガー基準のみに合致したがトリガーイベントパケットのタイムスタンプよりも新しいタイムスタンプを有するような一又は複数のパケットを含む。これらの不適切なパケットは、９８６で準備されるキャプチャパケットのリストから除かれる。
【００７９】
キャプチャパケットのリストは、複数のキャプチャエンジンによって総合的に、又は他のキャプチャエンジンが提供した情報を用いてキャプチャエンジンの１つによって、９８６において準備される。キャプチャパケットのリストは、複数のキャプチャエンジンによって与えられた情報を用いて、キャプチャエンジンの外部の、コントローラ２８０のようなコントローラによって、９８６において準備される。
【００８０】
図１０には、９８６において準備される例示的なキャプチャリスト１０７６の図を示す。キャプチャリスト１０７６は、各キャプチャパケットに対して、パケットのタイムスタンプと、パケット情報メモリ１０７４Ａにおける対応するパケット情報レコードへのポインタを含んでいてもよい。また、パケット情報レコードは、パケットメモリ１０７２Ａに記憶されたパケットへのポインタを含んでいてもよい。パケット情報メモリ１０７４Ａ及びパケットメモリ１０７２Ａは、複数のキャプチャエンジンの１つに関連づけられたキャプチャメモリ１０７０Ａの一部であってもよい。キャプチャリスト１０７６は、キャプチャメモリ１０７０Ａのようなキャプチャメモリの１つの一部において記憶されていてもよい。キャプチャリストは、複数のキャプチャメモリにわたって分割されていてもよい。キャプチャリストは複数のキャプチャメモリとは独立な、コントローラ２８０に関連づけられたメモリのような、メモリにおいて記憶されていてもよい。
【００８１】
［まとめ］
全体の記述において、記載した実施形態や例は例であって、開示ないし特許請求された装置及び方法に対して制限を与えるものではない。記載した例の多くは方法の動作やシステムの要素の特定の組み合わせを伴うものであるが、このような動作や要素は、同じ目的を達するために他の方法を用いて組み合わされることもあると理解されるべきである。流れ図については、ステップが増えたり減ったりすることもあり、示したステップは、記載した方法を達成するために組み合わせられたり、さらに改良されることもある。一実施形態のみに関連して議論した動作、要素及び特徴は、他の実施形態における類似の役割から除外されるように意図したのではない。
【００８２】
特許請求の範囲に記載した、手段を用いた要素について、記載した機能を行う手段には限定されず、記載した機能を行う、現在既に知られているもの又は将来開発されるものを範囲として含むように意図したものである。
【００８３】
本文献において、「複数」とは、２又はそれ以上を意味する。
【００８４】
本文献において、アイテムの「セット」とは、そのアイテムの１又は複数を含んでいる。
【００８５】
本文献において、発明の詳細な説明と請求の範囲に限らず、用語「からなる」、「含む」、「行う」、「有する」、「含んでいる」「伴う」などは、開いている。すなわち、含んでいるが限定されないという意味である。
【００８６】
本文献において、「複数」とは、２又はそれ以上を意味する。
【００８７】
請求の範囲における「第１」、「第２」、「第３」などのような順序を表す用語の使用は、いかなる優先性、先行性、又は他の要素に対しての順序、又は方法の動作が実行される一時的な順序を示唆するものではなく、請求の範囲の要素を区別するために、特定の名称を有する１つの要素を同じ名称を有する別の要素と区別するためのラベルとして用いただけである。
【００８８】
本文献において、「及び／又は」とは、列挙されたアイテムが選択肢であってその選択肢には列挙されたアイテムのいずれの組み合わせをも含むことを意味する。
【図１】
2010268434.tif 000003
【図２】
2010268434.tif 000004
【図３】
2010268434.tif 000005
【図４】
2010268434.tif 000006
【図５】
2010268434.tif 000007
【図６】
2010268434.tif 000008
【図７】
2010268434.tif 000009
【図８Ａ】
2010268434.tif 000010
【図８Ｂ】
2010268434.tif 000011
【図９】
2010268434.tif 000012
【図１０】
2010268434.tif 000013
【外国語明細書】
2010268434000001.pdf
2010268434000002.pdf
2010268434000003.pdf
2010268434000004.pdf