(57)【特許請求の範囲】
【請求項１】
受信したパケットの転送処理を行う第１の制御手段と、所定のパケット処理や制御処理を含むアプリケーション処理を行う第２の制御手段とを備えた通信装置であって、
上記第２の制御手段が、パケットキャプチャを行うキャプチャアプリケーション部を有し、
上記第１の制御手段が、
受信したパケットを取り込む受信部と、
受け取ったパケットを送信する送信部と、
上記受信部により取り込まれたパケットをコピーし、コピーされたパケットをキャプチャ用パケットとして上記キャプチャアプリケーション部に与え、オリジナルのパケットを上記送信部に与えるキャプチャ部と
を有し、
上記送信部が、受け取ったパケットが外部転送パケットか又はそれ以外の例外パケットか否かを判別し、上記例外パケットの場合には当該パケットを上記第２の制御手段に与え、上記外部転送パケットの場合には当該パケットを外部に送信する
ことを特徴とする通信装置。
【請求項２】
上記第１の制御手段が、上記キャプチャ部によりコピーされたパケットをキャプチャ用パケットとして上記第２の制御手段に与えるキャプチャ用例外パスと、上記送信部からの上記例外パケットを上記第２の制御手段に与える転送用例外パスとを有することを特徴とする請求項１に記載の通信装置。
【請求項３】
上記第２の制御手段が、パケットキャプチャ対象を選定するための設定データを設定する設定部を有し、
上記第１の制御手段の上記キャプチャ部が、
上記設定部により設定された上記設定データを記憶する設定データ記憶部と、
上記設定データ記憶部の上記設定データを参照して、パケットキャプチャ対象のパケットを選定する選定部と、
上記選定部により選定されたパケットのコピーを行うコピー部と
を備えることを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
上記キャプチャ部が、上記第１の制御手段のリソース状況に応じてパケットのコピーを停止して、パケット転送処理を優先することを特徴とする請求項１〜３のいずれかに記載の通信装置。
【請求項５】
上記第１の制御手段が、上記キャプチャ部によりコピーされたパケットの上記第２の制御手段への受け渡しを抑制することを特徴とする請求項１〜４のいずれかに記載の通信装置。
【請求項６】
上記第２の制御手段が、上記第１の制御手段から受け取ったパケットを、上記キャプチャ用パケットと上記例外パケットとに区別して、上記キャプチャアプリケーション部とアプリケーション処理を行うアプリケーション処理部に与えることを特徴とする請求項２〜５のいずれかに記載の通信装置。
【請求項７】
受信したパケットの転送処理を行う第１の制御手段と、所定のパケット処理や制御処理を含むアプリケーション処理を行う第２の制御手段とを備えた通信装置を有する通信システムにおいて、
上記第２の制御手段が、パケットキャプチャを行うキャプチャアプリケーション部を有し、
上記第１の制御手段が、
受信したパケットを取り込む受信部と、
受け取ったパケットを送信する送信部と、
上記受信部により取り込まれたパケットをコピーし、コピーされたパケットをキャプチャ用パケットとして上記キャプチャアプリケーション部に与え、オリジナルのパケットを上記送信部に与えるキャプチャ部と
を有し、
上記送信部が、受け取ったパケットが外部転送パケットか又はそれ以外の例外パケットか否かを判別し、上記例外パケットの場合には当該パケットを上記第２の制御手段に与え、上記外部転送パケットの場合には当該パケットを外部に送信する
ことを特徴とする通信システム。
【請求項８】
受信したパケットの転送処理を行う第１のコンピュータと、所定のパケット処理や制御処理を含むアプリケーション処理を行う第２のコンピュータとを備える通信装置の通信プログラムであって、
上記第２のコンピュータを、パケットキャプチャを行うキャプチャアプリケーション部として機能させ、
上記第１のコンピュータを、
受信したパケットを取り込む受信部、
受け取ったパケットを送信する送信部
上記受信部により取り込まれたパケットをコピーし、コピーされたパケットをキャプチャ用パケットとして上記キャプチャアプリケーション部に与え、オリジナルのパケットを上記送信部に与えるキャプチャ部
として機能させ、
上記送信部が、受け取ったパケットが外部転送パケットか又はそれ以外の例外パケットか否かを判別し、上記例外パケットの場合には当該パケットを上記第２のコンピュータに与え、上記外部転送パケットの場合には当該パケットを外部に送信する
ことを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム及び通信プログラムに関し、例えば、少なくともアプリケーション用プロセッサとファストパス用プロセッサとを有するものであって、ファストパス用プロセッサで高速転送されるパケットをキャプチャすることができる通信装置及び通信プログラムに適用し得るものである。
【背景技術】
【０００２】
例えば、特許文献１〜３に記載されるようなホームネットワークでは、ルータなどの通信装置が必要となる。この種のネットワークも含め様々なネットワークは、パケットの高速転送が要求され、ルータなどの通信装置も高速転送が要求される。
【０００３】
従来、図２に示すように、複雑なパケット処理や制御処理等を行うアプリケーション用プロセッサ（以下、ＡＰと呼ぶ）９１と、パケットを高速転送するためのファストパス用プロセッサ（以下、ＦＰと呼ぶ）９２とを有する通信装置９０がある。通信装置９０は、ＷＡＮ側インタフェース部及びＬＡＮ側インタフェース部としてＷＡＮスイッチ９４及びＬＡＮスイッチ９５を有する。
【０００４】
ＡＰ９１はアプリケーションを有しており、ＡＰ９１のアプリケーション発又はＡＰ９１のアプリケーション宛のパケット（すなわち、送信先アドレス又は送信元アドレスが自身のＩＰアドレスとなっているもの）や、ＩＣＭＰ等のＦＰ９２での処理に対応していないパケットや、フラグメント処理などの複雑な処理が必要なパケット等は、例外パケットとして、例外パス９３を通って、ＡＰ９１に与えられ、ＡＰ９１で処理される。
【０００５】
一方、上記のような例外パケット以外のパケット（ファストパスパケットともいう）は、ＦＰ９２で転送処理がなされる。
【０００６】
このように、複雑な処理や制御処理についてはＡＰ９１が行い、ファストパスパケットについては、ＡＰ９１を経由せず、ＦＰ９２がＷＡＮ及びＬＡＮ間で転送することにより、高速転送を実現している。
【０００７】
ところで、通信装置が高速転送するパケットをキャプチャすることが要求される。従来、パケットキャプチャ方式には、例えば、非特許文献１に開示されているようにｐｃａｐのような公知の技術・実装があり、ＯＳのネットワークスタックを拡張することで、インタフェースで送受信するパケットをユーザ空間でキャプチャしている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−３４６１８８号公報
【特許文献２】特開２００５−３４６１８９号公報
【特許文献３】特開２００５−３４６１９０号公報
【非特許文献】
【０００９】
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｔｃｐｄｕｍｐ．ｏｒｇ／ｐｃａｐ３＿ｍａｎ．ｈｔｍｌ
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したように、パケットキャプチャ方式はユーザ空間で行われる。しかしながら、図２に示すような従来の通信装置の場合、ＦＰ９２で高速転送されるパケットは、ＡＰ９１を経由しない。そのため、ＡＰ９１上のアプリケーションでパケットをキャプチャすることが難しいという問題がある。
【００１１】
また、従来の通信装置でパケットキャプチャを行うために、ＦＰ９２により高速転送されるパケットを、例外パス９３経由でＡＰ９１に上げるよう設定する方法も考えられる。しかし、この場合、パケットをＡＰ９１に上げる設定が複雑になり、かつ、パケットをＡＰ９１経由とすることで、ＦＰ９２による高速転送ができなくなってしまうという問題がある。
【００１２】
そのため、ＦＰにより高速転送されるパケットをキャプチャすることができる通信装置及び通信プログラムが求められている。また、ＦＰによる高速転送を維持しながら、パケットキャプチャに係る設定を容易にすることができる通信装置、通信システム及び通信プログラムが求められている。
【課題を解決するための手段】
【００１３】
かかる課題を解決するために、第１の本発明の通信装置は、受信したパケットの転送処理を行う第１の制御手段と、所定のパケット処理や制御処理を含むアプリケーション処理を行う第２の制御手段とを備えた通信装置であって、（Ａ）第２の制御手段が、パケットキャプチャを行うキャプチャアプリケーション部を有し、（Ｂ）第１の制御手段が、（１）受信したパケットを取り込む受信部と、（２）受け取ったパケットを送信する送信部と、（３）受信部により取り込まれたパケットをコピーし、コピーされたパケットをキャプチャ用パケットとしてキャプチャアプリケーション部に与え、オリジナルのパケットを送信部に与えるキャプチャ部とを有し、送信部が、受け取ったパケットが外部転送パケットか又はそれ以外の例外パケットか否かを判別し、例外パケットの場合には当該パケットを第２の制御手段に与え、外部転送パケットの場合には当該パケットを外部に送信することを特徴とする。
【００１４】
第２の本発明の通信システムは、受信したパケットの転送処理を行う第１の制御手段と、所定のパケット処理や制御処理を含むアプリケーション処理を行う第２の制御手段とを備えた通信装置を有する通信システムにおいて、（Ａ）第２の制御手段が、パケットキャプチャを行うキャプチャアプリケーション部を有し、（Ｂ）第１の制御手段が、（１）受信したパケットを取り込む受信部と、（２）受け取ったパケットを送信する送信部と、（３）受信部により取り込まれたパケットをコピーし、コピーされたパケットをキャプチャ用パケットとしてキャプチャアプリケーション部に与え、オリジナルのパケットを送信部に与えるキャプチャ部とを有し、送信部が、受け取ったパケットが外部転送パケットか又はそれ以外の例外パケットか否かを判別し、例外パケットの場合には当該パケットを第２の制御手段に与え、外部転送パケットの場合には当該パケットを外部に送信することを特徴とする。
【００１５】
第３の本発明の通信プログラムは、受信したパケットの転送処理を行う第１のコンピュータと、所定のパケット処理や制御処理を含むアプリケーション処理を行う第２のコンピュータとを備えた通信装置の通信プログラムであって、第２のコンピュータを、パケットキャプチャを行うキャプチャアプリケーション部として機能させ、第１のコンピュータを、（１）受信したパケットを取り込む受信部、（２）受け取ったパケットを送信する送信部、（３）受信部により取り込まれたパケットをコピーし、コピーされたパケットをキャプチャ用パケットとしてキャプチャアプリケーション部に与え、オリジナルのパケットを送信部に与えるキャプチャ部として機能させ、送信部が、受け取ったパケットが外部転送パケットか又はそれ以外の例外パケットか否かを判別し、例外パケットの場合には当該パケットを第２のコンピュータに与え、外部転送パケットの場合には当該パケットを外部に送信することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ＦＰにより高速転送されるパケットをキャプチャすることができる。また、本発明によれば、ＦＰによる高速転送を維持しながら、パケットキャプチャに係る設定を容易にすることができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態の通信装置１０Ａが実装する機能構成を示す機能ブロック図である。
【図２】アプリケーション用プロセッサとファストパス用プロセッサとを有する通信装置の内部構成を示す機能ブロック図である。
【図３】キャプチャ用設定データの設定方法、キャプチャ開始方法、キャプチャ停止方法の手順を示すシーケンス図である。
【図４】ＦＰ１上で高速転送されるファストパスパケットのキャプチャ方法の手順を示すシーケンス図である。
【図５】第２の実施形態の通信装置１０Ｂが実装する機能構成を示す機能ブロック図である。
【図６】キャプチャモジュール部１３によるキャプチャを低優先にする転送優先処理の一例を示すシーケンス図である。
【図７】キャプチャ用例外パス１５によるＡＰ２の負荷抑制処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１８】
（Ａ）第１の実施形態
以下では、本発明の通信装置、通信システム及び通信プログラムの第１の実施形態を、図面を参照しながら説明する。
【００１９】
（Ａ−１）第１の実施形態の構成
図１は、第１の実施形態の通信装置１０Ａが実装する機能構成を示す機能ブロック図である。図１において、通信装置１０Ａは、ファストパス用プロセッサ（ＦＰ）１、アプリケーション用プロセッサ（ＡＰ）２、ＷＡＮスイッチ３、ＬＡＮスイッチ４を少なくとも備える。
【００２０】
ここで、通信装置１０Ａは、ネットワーク上に存在する転送装置であり、例えば、ルータやＶｏＩＰゲートウェイ等を適用することができる。この実施形態では、ＷＡＮとＬＡＮとの間でパケット転送を行う通信装置を想定して説明する。
【００２１】
ＡＰ２は、パケットキャプチャの設定・実行処理、各種アプリケーション処理等を行うものである。ＡＰ２上では、例えば、Ｌｉｎｕｘ（登録商標）のようなネットワークスタックを持つ汎用ＯＳが動作する。例えば、ＡＰ２は、上記汎用ＯＳ上で、ＤＨＣＰサーバ／クライアント、ＰＰＰｏＥクライアント／サーバ、ＶｏＩＰアプリケーション等のアプリケーションが動作することを想定している。
【００２２】
ＦＰ１は、ＷＡＮスイッチ３やＬＡＮスイッチ４から入力されたパケットの高速転送を行うものである。また、ＦＰ１は、キャプチャ対象のパケットをコピーし、そのコピーしたパケットをキャプチャ用パケットとしてＡＰ２に与え、コピー元のオリジナルのパケットを転送用パケットとして送信するものである。これにより、上記のコピーしたパケットはキャプチャ用パケットとしてＡＰ２に与えてキャプチャすることができ、コピー元のオリジナルのパケットは転送用パケットとして高速転送を維持させることができる。
【００２３】
ＷＡＮスイッチ３は、ＷＡＮ側インタフェース部であり、ＬＡＮスイッチ４は、ＬＡＮ側インタフェース部である。ＷＡＮスイッチ３及びＬＡＮスイッチ４のポート数（物理ポートの数）は、特に限定されるものではない。そのため、ポートが１つの場合でもよいし、複数の場合でもよい。
【００２４】
（Ａ−１−１）ＦＰ１の内部構成
ＦＰ１は、図１に示すように、その機能として、受信モジュール部１１、送信モジュール部１２、キャプチャモジュール部１３、転送用例外パス１４、キャプチャ用例外パス１５、キャプチャ用設定データ記憶部１６、バッファプール部１７を少なくとも有する。
【００２５】
受信モジュール部１１は、ＷＡＮスイッチ３、ＬＡＮスイッチ４から入力されたパケットを受信するものである。また、受信モジュール部１１は、転送用例外パス１４から、アプリケーション処理が行われた転送用のパケットも受信する。受信モジュール部１１は、受信したパケットをキャプチャモジュール部１３に与える。
【００２６】
送信モジュール部１２は、キャプチャモジュール部１３からパケットを受け取り、パケットヘッダに含まれている情報に基づいて送信先アドレスや送信元アドレスや種別等を判断して、ＷＡＮスイッチ３若しくはＬＡＮスイッチ４にパケットを転送したり、又は、高速転送するパケット（例外パケット）を転送用例外パス１４に与えたりするものである。なお、送信モジュール部１２は、図示しないが、パケット種別を判断するためのテーブル等を有しており、このテーブルを参照しながら判断するようにしてもよい。
【００２７】
なお、例外パケットとしては、例えば、ＡＰ２のアプリケーション発又はＡＰ２のアプリケーション宛のパケット（すなわち、送信先アドレス又は送信元アドレスが自身のＩＰアドレスとなっているもの）や、ＩＣＭＰ等のＦＰ１での処理に対応していないパケットや、フラグメント処理などの複雑な処理が必要なパケットが該当する。
【００２８】
キャプチャモジュール部１３は、受信モジュール部１１からのパケットからキャプチャ対象のものを選定し、キャプチャ対象のパケットをコピーするものである。キャプチャモジュール部１３は、その機能として、選定部１３１、コピー部１３２、コピーパケット転送部１３３、オリジナルパケット転送部１３４、を少なくとも有する。
【００２９】
選定部１３１は、受信モジュール部１１から受信したパケットを受け取り、キャプチャ用設定データ記憶部１６を参照して、キャプチャ対象のパケットを選定するものである。
【００３０】
コピー部１３２は、選定部１３１により選定されたキャプチャ対象のパケットをコピーするものである。
【００３１】
コピーパケット転送部１３３は、コピー部１３２がコピーしたパケットをキャプチャ用例外パス１５に与えるものである。これにより、コピーパケットをキャプチャ用としてキャプチャ用例外パス１５に与えることできる。また、ＦＰ１がＡＰ２への割り込みをあげることで、キャプチャ用のパケットをＡＰ２に転送できる。
【００３２】
オリジナルパケット転送部１３４は、受信モジュール部１１から受信したパケットを送信モジュール部１２に与えるものである。つまり、オリジナルパケット転送部１３４は、キャプチャ対象のパケットのコピー元のパケットだけでなく、キャプチャ対象でないパケット（すなわちコピーしていないもの）も送信モジュール部１２に与える。これにより、オリジナルパケットを転送用パケットとすることで高速転送を維持することができる。またキャプチャ対象でないパケットを送信モジュール部１２に与えることができる。
【００３３】
転送用例外パス１４は、送信モジュール部１２からパケットを受け取り、ＡＰ２にパケットを与えるものである。また、転送用例外パス１４は、パケットを受信したスイッチ（ＷＡＮスイッチ３、ＬＡＮスイッチ４）に応じて、ＷＡＮ転送用デバイスドライバ２１６又はＬＡＮ転送用デバイスドライバ２１７に与える。
【００３４】
例えば、ＷＡＮスイッチ３から受信されたパケットであれば、転送用例外パス１４はＬＡＮ転送用デバイスドライバ２１７にパケットを与え、ＬＡＮスイッチ４から受信されたパケットであれば、転送用例外パス１４はＷＡＮ転送用デバイスドライバ２１６にパケットを与える。
【００３５】
ここで、転送用例外パス１４は、例えばキュー１４１を有しており、送信モジュール部１２からパケットを受け取ると、そのパケットをキュー１４１へプッシュする。そして、ＦＰ１がＡＰ２に対して割り込み通知を行うと、ＡＰ２は転送用例外パス１４のキュー１４１からパケットを取り出す。なお、転送用例外パス１４を通過するパケットは、送信モジュール部１２から受け取ったパケットであり、例外パケットである。
【００３６】
キャプチャ用例外パス１５は、転送用例外パス１４と同様に、キュー１５１を有しており、キャプチャモジュール部１３から受け取ったパケットをキュー１５１にキューイングしてＡＰ２により取り出される。キャプチャ用例外パス１５には、キャプチャパケットのみがキュー１５１にプッシュされる。
【００３７】
第１の実施形態では、転送用例外パス１５とは異なるキャプチャ用例外パス１４を備え、転送用のパケットと区別してキャプチャ対象のパケットをＡＰ２に与えることができる。これにより、高速転送を維持させながら、パケットキャプチャをすることができる。
【００３８】
キャプチャ用設定データ記憶部１６は、キャプチャに係る設定データを記憶するものである。このキャプチャ用設定データ記憶部１６に記憶されるキャプチャ用設定データは、キャプチャモジュール部１３によるパケットの選定の際に利用されるものである。これにより、キャプチャモジュール部１３は、キャプチャ用設定データの内容に応じて動作することができる。
【００３９】
ここで、キャプチャ用設定データは、ＡＰ２を通じて設定される。設定されるデータとしては、例えば、キャプチャモジュール部１３の開始、キャプチャモジュール部１３の停止を示すデータがある。
【００４０】
さらに、例えば、キャプチャ対象パケットの指定データ（例えば、ＭＡＣアドレス、ＩＰアドレス、プロトコル、ＵＤＰ／ＴＣＰポート番号等）、キャプチャ容量の指定データ（例えば、Ｂｙｔｅｓ指定等）、キャプチャ対象パケットの帯域制御データ（例えば、ｐａｃｋｅｔｓ／ｓｅｃ指定等）等も、設定データとして設定できるようにしてもよい。
【００４１】
なお、上記で例示したキャプチャ対象パケットの指定データを設定することにより、ＦＰ１とＡＰ２のリソース消費を軽減することができる。そこで、この実施形態では、キャプチャ対象パケットの指定データの設定を行う場合を例示するが、キャプチャ対象パケットの指定データの設定を行わないようにしてもよい。その場合、入力されたパケットを全てキャプチャ対象としてコピーして、ＡＰ２に与えることができる。
【００４２】
また、キャプチャ容量の指定データ、キャプチャ対象パケットの帯域制御データの設定も、必要に応じて行ったり、行わなかったりすることができる。
【００４３】
例えば、キャプチャ容量の指定データは、バッファプール部１７に保持するコピーパケットの保持容量を示すデータである。このキャプチャ容量の指定データが設定されている場合、キャプチャモジュール部１３は、バッファプール部１７の保持容量が指定された容量を超えたとき、パケットのコピーを停止する。これにより、指定されたキャプチャ容量を超えたときのキャプチャを停止させることができる。その結果、高速転送を優先して実行させることができる。
【００４４】
また例えば、キャプチャ対象パケットの帯域制御データが設定されている場合、キャプチャモジュール部１３は、キャプチャ対象パケットであってもその指定された帯域を超えたとき、パケットのコピーを停止する。これにより、キャプチャの負荷負担を軽減することができる。この場合も、高速転送を優先して実行させることができる。
【００４５】
バッファプール部１７は、キャプチャモジュール部１３がコピーしたパケットを保持するものである。バッファプール部１７のバッファ設定は、例えば、キャプチャモジュール設定ＡＰＩ２１１を通じて設定することができる。また、このバッファは、キャプチャモジュール設定用ＡＰＩ２１１経由の設定により、動的に確保するようにしてもよいし、静的に確保するようにしてもよい。
【００４６】
なお、図１では、キャプチャモジュール部１３がバッファプール部１７を備える場合を例示しているが、コピーパケットを保持することができれば、バッファプール部１７は、ＡＰ２上、ＦＰ１上のいずれにあってもよく、さらにはＦＰ１、ＡＰ２以外の他の部に設けるようにしてもよい。
【００４７】
（Ａ−１−２）ＡＰ２の内部構成
図１に示すように、ＡＰ２は、大別して、カーネル空間２１、ユーザ空間２２を有する。
【００４８】
カーネル空間２１は、キャプチャモジュール設定データＡＰＩ２１１、ＷＡＮキャプチャ用デバイスドライバ２１３及びＬＡＮキャプチャ用デバイスドライバ２１４を持つキャプチャ用ＡＰＩ２１２、ＷＡＮ転送用デバイスドライバ２１６及びＬＡＮ転送用デバイスドライバ２１７を持つネットワークスタック２１５を有する。
【００４９】
また、ユーザ空間２２は、キャプチャアプリケーション２２１、アプリケーション２２２を少なくとも有する。
【００５０】
キャプチャアプリケーション２２１は、パケットキャプチャを行うアプリケーションである。キャプチャアプリケーション２２１は、ユーザ操作により、キャプチャ対象のパケットの指定を行い、キャプチャ開始を指示する。そして、キャプチャしたパケットデータを、例えばＨＤＤやメモリ等の記憶部に保存するものである。例えば、キャプチャアプリケーション２２１は、Ｌｉｎｕｘ（登録商標）のｔｃｐｄｕｍｐ等を適用することができる。
【００５１】
さらに、キャプチャアプリケーション２２１は、ユーザ操作により、ＦＰ１上のキャプチャモジュール部１３の設定も行うことができる。なお、キャプチャモジュール部１３の設定は、キャプチャアプリケーション２２１とは異なる別のアプリケーションであってもよい。
【００５２】
アプリケーション２２２は、例えば、ソケットを使ってネットワーク通信を行うソフトウェアを想定する。例えば、ＤＨＣＰデーモンやＰＰＰｏＥクライアント、ＶｏＩＰアプリケーションやＳＩＰサーバ等をアプリケーション２２２として適用することができる。
【００５３】
ネットワークスタック２１５は、ＯＳ（例えば、Ｌｉｎｕｘ（登録商標）等）のネットワークスタック等を想定する。例えば、Ｌｉｎｕｘ（登録商標）の場合、システムコールインタフェース、プロトコル非依存インタフェース、ネットワークプロトコル、デバイス非依存インタフェース、デバイスドライバを有する。なお、ネットワークスタック２１５は、このデバイスドライバとして、ＷＡＮ転送用デバイスドライバ２１６及びＬＡＮ転送用デバイスドライバ２１７を有する。
【００５４】
ＷＡＮ転送用デバイスドライバ２１６及びＬＡＮ転送用デバイスドライバ２１７は、転送用例外パス１４からパケットを取得して、ネットワークスタック２１５の上位層に与えるものである。
【００５５】
ＷＡＮ転送用デバイスドライバ２１６及びＬＡＮ転送用デバイスドライバ２１７は、実際にデバイスを制御するわけではないので、例えば仮想デバイスドライバを実装するようにしてもよい。そして、ＷＡＮ転送用デバイスドライバ２１６及びＬＡＮ転送用デバイスドライバ２１７は、転送用例外パス１４のキュー１４１にキューイングされているパケットを取得し、そのパケットをネットワークスタック２１５の上位層へ転送する。
【００５６】
なお、ＷＡＮ転送用デバイスドライバ２１６及びＬＡＮ転送用デバイスドライバ２１７は、装置の構成によっては、仮想デバイスドライバでなく、通常のデバイスドライバであってもよい。
【００５７】
キャプチャ用ＡＰＩ２１２は、キャプチャアプリケーション２２１が、キャプチャパケットを取得するためのＡＰＩである。キャプチャ用ＡＰＩ２１２は、例えばＬｉｎｕｘ（登録商標）のｌｉｂｐｃａｐ等を想定する。
【００５８】
ＷＡＮキャプチャ用デバイスドライバ２１３及びＬＡＮキャプチャ用デバイスドライバ２１４は、キャプチャ用例外パス１５からパケットを取得するものである。ＷＡＮキャプチャ用デバイスドライバ２１３及びＬＡＮキャプチャ用デバイスドライバ２１４は、実際にデバイスを制御するわけではないので、例えば仮想デバイスドライバを実装するようにしてもよい。
【００５９】
また、ＷＡＮキャプチャ用デバイスドライバ２１３及びＬＡＮキャプチャ用デバイスドライバ２１４は、キャプチャ用例外パス１５のキュー１５１に入ったパケットを取得する。そして、ＷＡＮキャプチャ用デバイスドライバ２１３及びＬＡＮキャプチャ用デバイスドライバ２１４は、パケットをキャプチャ用ＡＰＩ２１２に与え、キャプチャアプリケーション２２１へ転送する。
【００６０】
なお、ＷＡＮキャプチャ用デバイスドライバ２１３及びＬＡＮキャプチャ用デバイスドライバ２１４は、構成によっては、仮想デバイスドライバでなく、通常のデバイスドライバであってもよい。
【００６１】
ここで、ＡＰ２のカーネル空間２１では、ネットワークスタック２１５とキャプチャ用ＡＰＩ２１２とを備えるようにした。これは、ネットワークスタック２１５にキャプチャ用パケット（コピーパケット）を転送してしまうと、ネットワークスタック２１５でオリジナルパケットとキャプチャ用パケット（コピーパケット）が混在し、パケットが重複してしまうため、ネットワークスタック２１５を経由しない構造とする。
【００６２】
なお、パケットが重複しないようにすることができれば、キャプチャ用デバイスドライバ２１３及び２１４と、転送用デバイスドライバ２１６及び２１７を備えないようにしてもよい。パケットが重複しないようにする方法例としては、例えば、ＶＬＡＮタグ等の識別情報をパケットに付加して、オリジナルパケットとキャプチャ用パケットとを区別する方式を用いるようにしてもよい。
【００６３】
キャプチャモジュール設定用ＡＰＩ２１１は、キャプチャアプリケーション２２１から与えられたキャプチャモジュール部１３のキャプチャ用設定データをキャプチャ用設定データ記憶部１６に設定するものである。
【００６４】
（Ａ−２）第１の実施形態の動作
次に、第１の実施形態の通信装置１０Ａにおいて、ＦＰ１上で高速転送するファストパスパケットをキャプチャする方法の動作を、図面を参照しながら説明する。
【００６５】
図３は、キャプチャアプリケーション２２１により、ＦＰ１上のキャプチャモジュール部１３にキャプチャ用設定データの設定、キャプチャ開始、キャプチャ停止の処理を示す処理シーケンス図である。
【００６６】
まず、キャプチャ用設定データの設定の方法を説明する。キャプチャアプリケーション２２１は、ユーザ操作を受けて、入力されたキャプチャ用設定データを取り込む（Ｓ１０１）。ここで、キャプチャ用設定データは、キャプチャ対象を選定するための各種データとすることができ、例えば、ＭＡＣアドレス（送信元、送信先のいずれか又は双方のＭＡＣアドレス）、ＩＰアドレス（送信元、送信先のいずれか又は双方のＩＰアドレス）、プロトコル種別、ＵＤＰ／ＴＣＰポート番号等とすることができる。
【００６７】
キャプチャアプリケーション２２１は、入力されたキャプチャ用設定データをキャプチャモジュール設定用ＡＰＩ２１１に与え（Ｓ１０２）、キャプチャモジュール設定用ＡＰＩ２１１は、そのキャプチャ用設定データを、ＦＰ１上のキャプチャ用設定データ記憶部１６に与える（Ｓ１０３）。
【００６８】
キャプチャ用設定データ記憶部１６は、受け取ったキャプチャ用設定データを設定保存し（Ｓ１０４）、設定保存が成功した旨の応答を行う（Ｓ１０５、Ｓ１０６）。これにより、キャプチャ用設定データの設定が完了する。なお、キャプチャ用設定データの内容の変更・追加・削除することもできる。変更等をする場合の方法も、基本的には設定する場合の処理と同様にして行うことができる。
【００６９】
次に、キャプチャアプリケーション２２１からキャプチャモジュール部１３に対してキャプチャの開始指示を行う処理の方法を説明する。
【００７０】
キャプチャアプリケーション２２１は、ユーザ操作により、キャプチャ開始の指示を取り込み（Ｓ１０７）、キャプチャ開始の命令をキャプチャモジュール設定用ＡＰＩ２１１に与える（Ｓ１０８）。キャプチャモジュール設定用ＡＰＩ２１１は、キャプチャ用設定データ記憶部１６にキャプチャ開始の命令を与え（Ｓ１０９）、さらに、キャプチャ開始の命令が、キャプチャモジュール部１３に与えられる（Ｓ１１０）。
【００７１】
キャプチャモジュール部１３は、キャプチャ開始の命令を受けると、キャプチャ用設定データ記憶部１６に設定されているキャプチャ用設定データの読み込みをする（Ｓ１１１）。そして、キャプチャモジュール部１３は、受信モジュール部１１からパケットを受け取ると、キャプチャ用設定データを参照して、キャプチャ対象のパケットであるか否かの選定を行い、キャプチャ対象のパケットをキャプチャする（Ｓ１１２）。なお、Ｓ１１２で示すキャプチャの処理の手順については、図４を用いて後で詳細に説明する。
【００７２】
そして、キャプチャモジュール部１３においてキャプチャが開始されると、キャプチャ開始が成功した旨を示す応答を、キャプチャアプリケーション２２１に対して返信する（Ｓ１１３、Ｓ１１４、Ｓ１１５）。
【００７３】
次に、キャプチャアプリケーション２２１からキャプチャモジュール部１３に対してキャプチャの停止指示を行う処理の方法を説明する。
【００７４】
キャプチャアプリケーション２２１は、ユーザ操作により、キャプチャ停止の指示を取り込み（Ｓ１１６）、キャプチャ停止の命令をキャプチャモジュール設定用ＡＰＩ２１１に与える（Ｓ１１７）。キャプチャモジュール設定用ＡＰＩ２１１は、キャプチャ用設定データ記憶部１６にキャプチャ停止の命令を与え（Ｓ１１８）、さらに、キャプチャ停止の命令が、キャプチャモジュール部１３に与えられる（Ｓ１１９）。
【００７５】
キャプチャモジュール部１３は、キャプチャ停止の命令を受けると、キャプチャを停止する（Ｓ１２０）。そして、キャプチャ停止が成功した旨を示す応答を、キャプチャアプリケーション２２１に対して返信する（Ｓ１２１、Ｓ１２２、Ｓ１２３）。
【００７６】
図４は、ＦＰ１上で高速転送されるファストパスパケットのキャプチャ方法の手順を示すシーケンス図である。
【００７７】
キャプチャモジュール部１３は、上述したように、キャプチャ開始の命令を受けると、キャプチャ用設定データを読み込み、キャプチャを開始する。
【００７８】
受信モジュール部１１は、パケットを受信すると、そのパケットをキャプチャモジュール部１３に与える（Ｓ２０１）。
【００７９】
パケットは、キャプチャモジュール部１３により、キャプチャ用設定データとして設定されているキャプチャ対象のパケットであるか判断される。そして、当該パケットがキャプチャ対象のパケットであると判断されると、パケットはキャプチャモジュール部１３によりコピーされ、そのコピーされたパケットはバッファプール部１７に一時的に保持される（Ｓ２０２）。
【００８０】
次に、キャプチャモジュール部１３において、コピー元のオリジナルパケットは送信モジュール部１２に与えられる（Ｓ２０３、Ｓ２０４）。
【００８１】
送信モジュール部１２では、ＡＰ２に転送するパケットか又はスイッチ３、４に与えるパケットかを判断する。そして、ＡＰ２に転送すべきオリジナルパケットは転送用例外パス１４に与えられる（Ｓ２０５、Ｓ２０６）。なお、図４では示していないが、スイッチ３、４に与えるべきパケットは、送信モジュール部１２からスイッチ３、４に与えられ、ネットワークに送信される。
【００８２】
また、転送用例外パス１４では、パケットはキュー１４１にキューイングされる。そして、割り込み通知がＡＰ２に与えられると、ＷＡＮ転送用デバイスドライバ２１６、ＬＡＮ転送用デバイスドライバ２１７は、転送用例外パス１４のキュー１４１からオリジナルパケットを取得する。これにより、オリジナルパケットが転送用デバイスドライバ２１６、２１７に与えられる（Ｓ２０７、Ｓ２０８）。
【００８３】
なお、転送用デバイスドライバ２１６、２１７に与えられたパケットは、ネットワークスタック２１５を経由し、各アプリケーション２２２が開いたソケットからリードされ、各アプリケーション２２２に与えられる。
【００８４】
次に、キャプチャモジュール部１３では、バッファプール部１７に保持されたコピーパケットが読み出され、そのコピーパケットがキャプチャ用例外パス１５に与えられる（Ｓ２０９、Ｓ２１０）。このように、コピーパケットをバッファプール部１７に保持しておき、オリジナルパケットを先に送信モジュール部１２に与えるようにすることで、当該パケットの高速転送を維持することができる。
【００８５】
キャプチャ用例外パス１５では、パケットがキュー１５１にキューイングされる。そして、割り込み通知が与えられると、キャプチャ用デバイスドライバ２１３、２１４が、パケットをキュー１５１から取り出す。これにより、コピーパケットがキャプチャ用デバイスドライバ２１３、２１４に与えられる（Ｓ２１１、Ｓ２１２）。
【００８６】
なお、キャプチャ用デバイスドライバ２１３，２１４に与えられたパケットは、キャプチャ用ＡＰＩ２１２を経由して、キャプチャアプリケーション２２１に引き渡される。
【００８７】
そして、キャリアアプリケーション２２１は、コピーパケットを記憶部（例えば、ＨＤＤ等）に記憶することで、ファストパスのパケットをキャプチャする。
【００８８】
（Ａ−３）第１の実施形態の効果
以上のように、第１の実施形態によれば、従来の方法において実現困難であった、ＦＰで高速転送されるパケットをキャプチャする場合、ＦＰ内でキャプチャ用にパケットをコピーし、オリジナルパケットとは別のキャプチャ専用のパス経由でＡＰ側にコピーパケットを転送することができる。これにより、ＦＰで高速転送されるパケットのキャプチャが可能となる。
【００８９】
（Ｂ）第２の実施形態
次に、本発明の通信装置、通信システム及び通信プログラムの第２の実施形態を、図面を参照しながら説明する。
【００９０】
第２の実施形態は、第１の実施形態で説明したキャプチャ方法に、更に、高速転送処理の劣化や、ＦＰ１、ＡＰ２の処理負荷も考慮した。すなわち、第２の実施形態では、パケットキャプチャよりも高速転送を優先すること、及び又は、ＡＰ２の負荷消費の抑制をすること等も行えるようにした。
【００９１】
（Ｂ−１）第２の実施形態の構成及び動作
図５は、第２の実施形態の通信装置１０Ｂが実装する機能構成を示す機能ブロック図である。図５において、通信装置１０Ｂは、第１の実施形態と同様に、ファストパス用プロセッサ（ＦＰ）１、アプリケーション用プロセッサ（ＡＰ）２、ＷＡＮスイッチ３、ＬＡＮスイッチ４を少なくとも備える。
【００９２】
第２の実施形態の通信装置１０Ｂの構成が、第１の実施形態の構成と異なる点は、ＦＰ１における、キャプチャモジュール部１３、及び又は、キャプチャ用例外パス１５の機能構成である。
【００９３】
それ以外の構成要素及び動作については、第１の実施形態で説明したものと対応するので、ここでのこれら構成要素及び動作の詳細な説明は省略し、第２の実施形態の特徴となる構成要素及びその動作を中心に詳細に説明する。
【００９４】
なお、以下では、キャプチャモジュール部１３とキャプチャ用例外パス１５との両者に、第１の実施形態とは異なる機能を備える場合を説明するが、両方の機能を備えず、いずれかの機能を備えるようにしても有効な効果を得ることができる。
【００９５】
キャプチャモジュール部１３は、その機能として、選定部１３１、コピー部１３２、コピーパケット転送部１３３、オリジナルパケット転送部１３４、転送優先制御部１３５を少なくとも有する。
【００９６】
なお、図５では、キャプチャモジュール部１３がバッファプール部１７を有する場合を示すが、第１の実施形態でも説明したように、コピーパケットを一時的に保持することができれば、バッファプール部１７はキャプチャモジュール部１３になくてもよい。
【００９７】
キャプチャモジュール部１３は、第１の実施形態と同様に、選定部１３１がキャプチャ用設定データを参照してキャプチャ対象のパケットを選定する。また、コピー部１３２は、キャプチャが必要なパケットをコピーする。また、コピーパケット転送部１３３はコピーパケットをキャプチャ用例外パス１５に与え、オリジナルパケット転送部１３４はオリジナルパケットを送信モジュール部１２に与える。
【００９８】
さらに、第２の実施形態のキャプチャモジュール部１３は、転送優先制御部１３５を有する。転送優先制御部１３５は、キャプチャ開始後、ＦＰ１の高速転送をスループットの妨げにならないように、キャプチャよりも高速転送を優先させるように制御するものである。すなわち、転送優先制御部１３５は、キャプチャを低優先で実行させる機能である。
【００９９】
ここで、転送優先制御部１３５による処理は、キャプチャを低優先させることができれば様々な方法を広く適用することができる。
【０１００】
例えば、転送優先制御部１３５は、ＦＰ１のリソース（例えば、ＣＰＵ、メモリ）を監視し、そのリソース状況に応じてパケットのコピーを停止させ、オリジナルパケットのみを転送させる方法を適用できる。
【０１０１】
また例えば、ＦＰ１上に音声処理やデータ処理等の複数の機能を有することもある。その場合、ＦＰ１上の複数の処理部毎にキャプチャモジュール部１３を備えるようにしてもよい。このとき、ＦＰ１上で実行される各処理部のキャプチャモジュール部１３に対して優先度を設定し、その優先度に応じてパケットコピーの実行を行うようにしたりする方法も適用できる。
【０１０２】
この第２の実施形態では、前者のリソース状況に応じてコピーを実行する方法を適用する場合を説明する。この場合、転送優先制御部１３５は、リソース監視機能、コピー停止するためのリソースに関する閾値を保持する機能、コピー部１３２にコピー停止を指示する機能等を有する。
【０１０３】
キャプチャ用例外パス１５は、キュー１５１、ＡＰ負荷抑制部１５２を有する。キャプチャ用例外パス１５は、第１の実施形態と同様に、キャプチャモジュール部１３からのパケットをＡＰ２に転送するものである。キャプチャ用例外パス１５では、キュー１５１がコピーパケットをキューイングし、ＦＰ１がＡＰ２に割り込み通知をすることで、ＡＰ２がキュー１５１からパケットを取り出す。
【０１０４】
また、第１の実施形態と同様に、パケットを受信したスイッチ３、４によって、キャプチャ用例外パス１５は、ＷＡＮキャプチャ用デバイスドライバ２１３、ＬＡＮキャプチャ用デバイスドライバ２１４のいずれかに渡すかを決定する。
【０１０５】
さらに、第２の実施形態では、キャプチャ用例外パス１５がＡＰ負荷抑制部１５２を有する。ＡＰ負荷抑制部１５２は、キャプチャモジュール部１３からのパケットを全てＡＰ２に転送するのではなく、所定の場合に、ＡＰ２に転送するパケットを抑止するものである。これにより、ＡＰ２のリソース（例えば、ＣＰＵ、メモリ等）の負荷消費を軽減させることができる。
【０１０６】
ここで、ＡＰ負荷抑制部１５２による処理は、ＡＰ２のリソース負荷を抑制することができれば、種々の方法を広く適用することができる。例えば、ＡＰ負荷抑制部１５２は、コピーパケットの帯域が予め設定された閾値を超えたときには、そのコピーパケットをキュー１５１に入れず、当該コピーパケットを破棄（ドロップ）する方法等を適用することができる。この場合、ＡＰ負荷抑制部１５２は、閾値を保持する機能、コピーパケットの帯域監視機能、コピーパケットの破棄機能等を有する。
【０１０７】
図６は、第２の実施形態のキャプチャモジュール部１３によるキャプチャを低優先にする転送優先処理の一例を示すシーケンス図である。
【０１０８】
受信モジュール部１１において受信されたパケット（オリジナルパケット）は、キャプチャモジュール部１３に与えられ（Ｓ３０１）、キャプチャモジュール部１３により、第１の実施形態と同様のキャプチャ対象の選定及びコピー等が行われる。
【０１０９】
ここで、キャプチャモジュール部１３では、転送優先制御部１３５がＦＰ１のリソースを監視している。
【０１１０】
例えば、転送優先制御部１３５は、ＣＰＵの使用量や、メモリ容量（又はメモリ残容量）等の閾値を予め設定しておく。なお、転送優先制御部１３５は、キャプチャ開始後、定期的に、例えばリソースの監視コマンド等を用いて、ＣＰＵやメモリ等のリソース状況を監視する。そして、取得したリソース状況値と閾値とを比較する。
【０１１１】
例えばメモリの残容量の閾値を予め設定している場合、メモリの現在の残容量が閾値以下であるとき、転送優先制御部１３５は、受信したパケットのコピーをしない（Ｓ３０２、Ｓ３０３）。一方、メモリの現在の残容量が閾値以下でないときには、受信したパケットのコピーを行い、そのコピーパケットをバッファプール部１７に格納する（Ｓ３０２、Ｓ３０４）。
【０１１２】
また、オリジナルパケットについては、第１の実施形態と同様にして、キャプチャモジュール部１３が送信モジュール部１２に送信し（Ｓ３０５、Ｓ３０６）、送信モジュール部１２が転送用例外パス１４を介して転送用デバイスドライバ２１６、２１７に転送する（Ｓ３０７〜Ｓ３１０）。このようにして、ＡＰ２にオリジナルパケットが与えられ、アプリケーション処理が施される。
【０１１３】
図７は、第２の実施形態のキャプチャ用例外パス１５によるＡＰ２の負荷抑制処理の一例を示すシーケンス図である。
【０１１４】
上述した処理と同様の処理により、オリジナルパケットが受信モジュール部１１からキャプチャモジュール部１３に与えられ、キャプチャモジュール部１３によりキャプチャ対象の選定がなされ、パケットをコピーしてバッファプール部１７に格納する（Ｓ４０１、Ｓ４０２）。
【０１１５】
オリジナルパケットは、キャプチャモジュール部１３から送信モジュール部１２を経由して（Ｓ４０３、Ｓ４０４）、転送用例外パス１４を通り、転送用デバイスドラバ２１６、２１７に与えられる（Ｓ４０５〜Ｓ４０８）。
【０１１６】
バッファプール部１７に格納されたコピーパケットは、キャプチャモジュール部１３によりキャプチャ用例外パス１５に与えられる（Ｓ４０９）。
【０１１７】
キャプチャ用例外パス１５では、ＡＰ負荷抑制部１５２がコピーパケットの帯域（例えば、Packets／Sec等）を監視している。そして、ＡＰ負荷抑制部１５２は、コピーパケットの帯域と予め設定された閾値とを比較する（Ｓ４１０）。
【０１１８】
そして、コピーパケットの帯域が閾値以下のとき、ＡＰ負荷抑制部１５２はコピーパケットを破棄する（Ｓ４１１）。このように、コピーパケットを破棄することで、ＡＰ２に与えるコピーパケットの数を減らすことができるから、ＡＰ２の負荷を抑制することができる。
【０１１９】
一方、コピーパケットの帯域が閾値以下でないとき、ＡＰ負荷抑制部１５２は、当該コピーパケットをキュー１５１にキューイングする。そして、ＦＰ１がＡＰ２に対して割り込み通知を行うと、ＡＰ１はキュー１５１からコピーパケットを取り出し、コピーパケットがキャプチャ用デバイスドライバ２１３、２１４に与えられる（Ｓ４１２）。これにより、ＡＰ２では、キャプチャアプリケーション２２１によるキャプチャが行われる。
【０１２０】
（Ｂ−３）第２の実施形態の効果
以上のように、第２の実施形態によれば、第１の実施形態の効果に加えて、ＦＰによる高速転送を妨げることなく、キャプチャが可能となる。
【０１２１】
これにより、ＦＰで高速転送するパケット処理やその他の処理（たとえばＦＰ内でＤＳＰのような音声処理をする場合を想定）を妨げることなく、インタフェースで送受信される全パケットをキャプチャすることが可能となる。
【０１２２】
また、キャプチャパケットによるＡＰ側の負荷も抑制することが可能となる。
【０１２３】
（Ｃ）他の実施形態
上述した第２の実施形態では、図６において、ＦＰ１のリソース状況に応じてキャプチャを整優先制御する方法を例示した。しかし、これに限定されず、上述したように、「モジュール毎に優先度をもち、それに応じて実行する優先制御方式」であっても良い。
【０１２４】
例えば、ＦＰ１上に音声処理やデータ処理等の複数の機能を有することもある。その場合、ＦＰ１上の複数の処理部毎にキャプチャモジュール部１３を備えるようにしてもよい。このとき、ＦＰ１上で実行される各処理部のキャプチャモジュール部１３に対して優先度を設定し、その優先度に応じてパケットコピーの実行を行うようにしたりする方法も適用できる。
【０１２５】
上記の方法を用いることで、例えば、バッファプール部１７の残容量が閾値以下となったり、パケットの帯域が閾値を越えたりしたときでも、優先度の低い処理部のキャプチャモジュール部１３のコピーは停止させるが、優先度の高い音声処理部のキャプチャモジュール部１３では、コピーを実行させる等の制御ができる。
【０１２６】
上述した第１及び第２の実施形態では、スイッチ（ＷＡＮスイッチ３、ＬＡＮスイッチ４）のポートは１つとして例示したが、ポートが１つであっても複数であっても良い。
【０１２７】
上述した第１及び第２の実施形態では、バッファプール部は、ＦＰ上のキャプチャモジュール部上に実装すると例示したが、コピーパケットを保持できれば、ＦＰ外部でも、ＡＰ上でもどこにあっても良い。
【０１２８】
上述した第１及び第２の実施形態では、ＡＰのデバイスドライバへの割り込み処理としてパケットを転送する方式であったが、書き込みスループット向上のためにＤＭＡ方式を採用し、ＡＰが指定したメモリ領域ヘキャプチャパケットを直接メモリコピーする方式であっても良い。
【０１２９】
上述した第１及び第２の実施形態では、「キャプチャ対象パケットの指定」を例示したが、これはあってもなくても良い。
【０１３０】
上述した第１及び第２の実施形態では、「キャプチャ容量の指定」を例示したが、これはあってもなくても良い。
【０１３１】
上述した第１及び第２の実施形態では、「転送用デバイスドライバ」を仮想デバイスドライバとして例示したが、装置構成によっては仮想でなく通常のデバイスドライバであっても良い。また、第１及び第２の実施形態では、「キャプチャ用デバイスドライバ」を仮想デバイスドライバとして例示したが、装置構成によっては仮想でなく通常のデバイスドライバであっても良い。
【０１３２】
第１及び第２の実施形態では、「キャプチャアプリケーション」がキャプチャとキャプチャ設定を両方行うと例示したが、これらの動作は別々のアプリケーションに分けても良い。
【０１３３】
第１及び第２の実施形態では、オリジナルパケットとコピーパケットが重複しないための対策として「転送用デバイスドライバ」と「キャプチャ用デバイスドライバ」を分ける方法を例示したが、キャプチャパケットも「キャプチャ用デバイスドライバ」へ転送させ、ＦＰかＡＰかのどちらかで、パケットにＶＬＡＮタグ等によってパケットを区別できるマークを負荷し、オリジナルパケットとコピーパケットを区別して重複を避けても良い。
【０１３４】
第１及び第２の実施形態では、「受信モジュール」と「送信モジュール」を分けた場合を例示したが、パケットの送受信が可能ならば、同一のモジュールであっても良い。
【０１３５】
第１及び第２の実施形態で説明した通信装置は、例えば、ホームネットワーク等の高速転送が要求されるネットワークを構成する装置として適用することができる。
【符号の説明】
【０１３６】
１０Ａ及び１０Ｂ…通信装置、
１…ファストパス用プロセッサ（ＦＰ）、２…アプリケーション用プロセッサ（ＡＰ）、
３…ＷＡＮスイッチ、４…ＬＡＮスイッチ、
１１…受信モジュール部、１２…送信モジュール部、１３…キャプチャモジュール部、
１３１…選定部、１３２…コピー部、１３３…コピーパケット転送部、
１３４…オリジナルパケット転送部、１３５…転送優先制御部、
１４…転送用例外パス、１４１…キュー、
１５…キャプチャ用例外パス、１５１…キュー、１５２…ＡＰ負荷抑制部、
１６…キャプチャ用設定データ記憶部、１７…バッファプール部、
２１…カーネル空間、２２…ユーザ空間、
２１１…キャプチャモジュール設定用ＡＰＩ、２１２…キャプチャ用ＡＰＩ、２１３…ＷＡＮキャプチャ用デバイスドライバ、２１４…ＬＡＮキャプチャ用デバイスドライバ、２１５…ネットワークスタック、２１６…ＷＡＮ転送用デバイスドライバ、２１７…ＬＡＮ転送用デバイスドライバ、
２２１…キャプチャアプリケーション、２２２…アプリケーション。
【図１】
0005625938.tif 000002
【図２】
0005625938.tif 000003
【図３】
0005625938.tif 000004
【図４】
0005625938.tif 000005
【図５】
0005625938.tif 000006
【図６】
0005625938.tif 000007
【図７】
0005625938.tif 000008