(57)【要約】      （修正有）【課題】ネットワークおよびローカル・インターネット・プロトコル・トラフィックのための統合されたモニタリング。【解決手段】一または複数のアプリケーションによって生成された通信関数呼び出しを検出する通信関数呼び出し検出モジュール、およびそれらの通信関数呼び出しのうちの一または複数を記述する情報をトラフィック・モニタリング・モジュールに送信する通信関数呼び出しレポーティング・モジュールを含む通信関数モニタリング・モジュール；および、それらの一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われるパケットを検出するパケット検出モジュール、およびそれらのパケットのうちの一または複数を記述する情報をトラフィック・モニタリング・モジュールに送信するパケット・レポーティング・モジュールを含むパケット・モニタリング・モジュール；を含む装置。【選択図】図２
2007006477.tif 000002
【特許請求の範囲】
【請求項１】
一または複数のアプリケーションによって生成された通信関数呼び出しを検出する通信関数呼び出し検出モジュールと、一または複数の前記通信関数呼び出しを記述する情報をトラフィック・モニタリング・モジュールに送信する通信関数呼び出しレポーティング・モジュールを含む通信関数モニタリング・モジュールと、
前記一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われるパケットを検出するパケット検出モジュールと、  前記パケットのうちの一または複数を記述する情報を前記トラフィック・モニタリング・モジュールに送信するパケット・レポーティング・モジュールを含むパケット・モニタリング・モジュールと
を含む装置。
【請求項２】
さらに、一または複数の前記通信関数呼び出しを選択する通信関数呼び出しフィルタ・モジュールを含む、請求項１に記載の装置。
【請求項３】
さらに、一または複数の前記パケットを選択するパケット・フィルタ・モジュールを含む、請求項１に記載の装置。
【請求項４】
さらに、前記トラフィック・モニタリング・モジュールを含む、請求項１に記載の装置。
【請求項５】
前記通信関数呼び出し検出モジュールは、
前記一または複数のアプリケーションと通信するマイクロソフト・ウインドウズ・ウインソック（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）  Ｗｉｎｓｏｃｋ）モジュールと、
ネットワーク・インターフェース・ハードウエア・ドライバと通信するネットワーク・プロトコル・ドライバと、
通信するダイナミック・リンク・ライブラリ・モジュールを含む、請求項１に記載の装置。
【請求項６】
一または複数のアプリケーションによって生成された通信関数呼び出しを検出するステップと、
一または複数の前記通信関数呼び出しを記述する情報をトラフィック・モニタリング・モジュールに送信するステップと、
前記一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われるパケットを検出するステップと、
一または複数の前記パケットを記述する情報を前記トラフィック・モニタリング・モジュールに送信するステップと
を含む方法。
【請求項７】
さらに、一または複数の前記通信関数呼び出しを選択することを含む、請求項６に記載の方法。
【請求項８】
一または複数の前記通信関数呼び出しが、あらかじめ定義済みの通信関数呼び出しフィルタ基準に従って選択され、さらに、
ユーザ入力に従って前記通信関数呼び出しフィルタ基準を設定することを含む、請求項７に記載の方法。
【請求項９】
さらに、一または複数の前記パケットを選択することを含む、請求項６に記載の方法。
【請求項１０】
一または複数の前記パケットが、あらかじめ定義済みのパケット・フィルタ基準に従って選択され、さらに、
ユーザ入力に従って前記パケット・フィルタ基準を設定することを含む、請求項９に記載の方法。
【請求項１１】
実行されたときに、命令実行デバイスに請求項６に記載の方法を実行させるべく適合された命令のプログラムを含むメディアまたは波形。
【請求項１２】
請求項６に記載の方法を実行するべく構成された装置。
【請求項１３】
一または複数のアプリケーションによって生成された通信関数呼び出しの記述を含む第１のレポートを受信するステップと、
前記一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われる一または複数のパケットの記述を含む第２のレポートを受信するステップと、
前記通信関数呼び出しの一または複数の記述および前記一または複数のパケットのうちの一または複数のパケットの記述に基づいて通信ステータス・レポートを生成するステップと
を含む方法。
【請求項１４】
さらに、前記第１のレポート内の前記通信関数呼び出しの一または複数の記述を選択するステップを含む、請求項１３に記載の方法。
【請求項１５】
さらに、前記第２のレポート内に記述された前記パケットの一または複数の記述を選択するステップを含む、請求項１３に記載の方法。
【請求項１６】
さらに、前記ネットワーク・ステータス・レポートをユーザに対して呈示するステップを含む、請求項１３に記載の方法。
【請求項１７】
通信関数呼び出しフィルタ・モジュールおよびパケット・フィルタ・モジュールをユーザ入力に従って構成する、請求項１３に記載の方法。
【請求項１８】
実行されたときに、命令実行デバイスに請求項１３に記載の方法を実行させるべく適合された命令のプログラムを含むメディアまたは波形。
【請求項１９】
請求項１３に記載の方法を実行するべく構成された装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してデータ通信に関する。より詳細に述べれば、本発明は、ネットワークおよびインターネット・プロトコル（ＩＰ）トラフィックのための統合されたモニタリングに関する。
【背景技術】
【０００２】
現在のコンピューティング環境においては、インターネットを利用したサーバ・アプリケーション等の多くのアプリケーションが複数のプロセスを伴い、そのうちのいくつかは同一のコンピュータ上において実行され、いくつかは異なるコンピュータ上において実行される。それらがどこで実行されるかによらず、それらのプロセスは、ＩＰプロトコルを使用して互いに通信する。たとえば、Ｈ．３２３テレビ会議多地点接続装置（ＭＣＵ）サーバ・プロセスは、同一のローカル・コンピュータ上において実行されるウェブ・サーバとの伝送制御プロトコル（ＴＣＰ）接続を構成する。
【０００３】
【特許文献１】米国特許出願公開第2004/0213267号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しばしば、その種のアプリケーションのデバッグを行うことが望まれる。１つの有用なツールは、従来的なパケット・スニファであり、コンピュータに出入りするすべての生ＩＰパケットを記録する。しかしながら、その種のパケット・スニファは、同一コンピュータ上のプロセス間におけるプロセス間ＩＰ接続をモニタすることができない。
【課題を解決するための手段】
【０００５】
概して言えば、１つの側面において本発明は、一または複数のアプリケーションによって生成された通信関数呼び出しを検出する通信関数呼び出し検出モジュールと、一または複数の前記通信関数呼び出しを記述する情報をトラフィック・モニタリング・モジュールに送信する通信関数呼び出しレポーティング・モジュールを含む通信関数モニタリング・モジュールと、前記一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われるパケットを検出するパケット検出モジュールと、前記パケットのうちの一または複数を記述する情報を前記トラフィック・モニタリング・モジュールに送信するパケット・レポーティング・モジュールを含むパケット・モニタリング・モジュールとを含む装置を特徴とする。
【０００６】
いくつかの実施態様は、一または複数の通信関数呼び出しを選択する通信関数呼び出しフィルタ・モジュールを含む。
【０００７】
いくつかの実施態様は、一または複数の前記パケットを選択するパケット・フィルタ・モジュールを含む。
【０００８】
いくつかの実施態様は、トラフィック・モニタリング・モジュールを含む。
【０００９】
いくつかの実施態様においては、通信関数呼び出し検出モジュールが、上記の一または複数のアプリケーションと通信するマイクロソフト・ウインドウズ・ウインソック（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）  Ｗｉｎｓｏｃｋ）モジュールと、ネットワーク・インターフェース・ハードウエア・ドライバと通信するネットワーク・プロトコル・ドライバと通信するダイナミック・リンク・ライブラリ・モジュールを含む。
【００１０】
概して言えば、別の側面において本発明は、一または複数のアプリケーションによって生成された通信関数呼び出しを検出するステップと、一または複数の前記通信関数呼び出しを記述する情報をトラフィック・モニタリング・モジュールに送信するステップと、
前記一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われるパケットを検出するステップと、一または複数の前記パケットを記述する情報をトラフィック・モニタリング・モジュールに送信するステップを含む方法を特徴とする。
【００１１】
いくつかの実施態様は、一または複数の前記通信関数呼び出しを選択することを含む。
【００１２】
いくつかの実施態様は、一または複数のパケットを選択することを含む。
【００１３】
いくつかの実施態様は、一または複数の前記通信関数呼び出しを選択することを含む。
【００１４】
いくつかの実施態様においては、一または複数の前記通信関数呼び出しが、あらかじめ定義済みの通信関数呼び出しフィルタ基準に従って選択され、さらにこの方法が、この通信関数呼び出しフィルタ基準をユーザ入力に従って設定することを含む。
【００１５】
いくつかの実施態様は、一または複数のパケットを選択することを含む。
【００１６】
いくつかの実施態様においては、一または複数のパケットが、あらかじめ定義済みのパケット・フィルタ基準に従って選択され、さらにこの方法が、このパケット・フィルタ基準をユーザ入力に従って設定することを含む。
【００１７】
いくつかの実施態様は、この方法を実行するためのコンピュータ・プログラムを含む。
【００１８】
いくつかの実施態様は、この方法を実行するための装置を含む。
【００１９】
概して言えば、さらに別の側面において本発明は、一または複数のアプリケーションによって生成された通信関数呼び出しの記述を含む第１のレポートを受信するステップと、前記一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われる一または複数のパケットの記述を含む第２のレポートを受信するステップと、前記通信関数呼び出しの一または複数の記述および前記一または複数のパケットのうちの一または複数のパケットの記述に基づいて通信ステータス・レポートを生成するステップを含む方法を特徴とする。
【００２０】
いくつかの実施態様は、第１のレポート内の前記通信関数呼び出しの一または複数の記述を選択することを含む。
【００２１】
いくつかの実施態様は、第２のレポート内に記述されたパケットの一または複数の記述を選択することを含む。
【００２２】
いくつかの実施態様は、ネットワーク・ステータス・レポートをユーザに対して呈示することを含む。
【００２３】
いくつかの実施態様は、通信関数呼び出しフィルタ・モジュールおよびパケット・フィルタ・モジュールをユーザ入力に従って構成することを含む。
【００２４】
いくつかの実施態様は、この方法を実行するためのコンピュータ・プログラムを含む。
【００２５】
いくつかの実施態様は、この方法を実行するための装置を含む。
【００２６】
概して言えば、さらに別の側面において本発明は、一または複数のアプリケーションによって生成された通信関数呼び出しを検出するための通信関数呼び出し検出手段と、一または複数の前記通信関数呼び出しを記述する情報をトラフィック・モニタリング・モジュールに送信するための通信関数呼び出しレポーティング手段を含む通信関数モニタリング・モジュールと、前記一または複数のアプリケーションのためにネットワーク・インターフェース・ハードウエア・ドライバによって取り扱われるパケットを検出するためのパケット検出モジュール手段と、一または複数の前記パケットを記述する情報をトラフィック・モニタリング・モジュールに送信するためのパケット・レポーティング手段を含むパケットをモニタするための手段を含む装置を特徴とする。
【００２７】
いくつかの実施態様は、一または複数の前記通信関数呼び出しを選択するための通信関数呼び出しフィルタ手段を含む。
【００２８】
いくつかの実施態様は、一または複数のパケットを選択するためのパケット・フィルタ・モジュール手段を含む。
【００２９】
いくつかの実施態様は、トラフィック・モニタリング・モジュールを含む。
【００３０】
以上のを具体化したものの詳細を添付図面に示し、以下に説明する。そのほかの特徴については、説明ならびに図面、および特許請求の範囲から明らかになるであろう。
【００３１】
この明細書に使用されている各参照番号の上位桁は、その参照番号が最初に現れる図面の番号を示す。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施形態を図面に基づいて説明する。
【００３３】
［実施形態１］
本発明の実施態様は、ネットワークおよびローカル・インターネット・プロトコル（ＩＰ）トラフィックのための統合されたモニタリングを提供する。本発明の実施態様は、異なるコンピュータ上において実行されているプロセス間の通信だけでなく、同一コンピュータ上において実行されているプロセス間の通信のモニタも行う。本発明の実施態様はマイクロソフト・ウインドウズ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））オペレーティング・システムを参照して説明されているが、この説明を読んだ後であれば、ほかの実施態様がほかのオペレーティング・システムとともに機能できることは当業者に明らかになるであろう。
【００３４】
図１は、マイクロソフト・ウインドウズ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））等のオペレーティング・システムに関する従来のソフトウエア・スタック１０２を示している。ソフトウエア・スタック１０２は、一または複数のアプリケーション１０４を包含し、それとマイクロソフト・ウインソック（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｓｏｃｋ）等の通信アプリケーション・プログラミング・インターフェース（ＡＰＩ）１０６が通信し、それと伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）ドライバ等のネットワーク・プロトコル・ドライバ１０８が通信し、それとネットワーク・インターフェース・カード（ＮＩＣ）ドライバ等のネットワーク・インターフェース・ハードウエア・ドライバ１１０が通信し、それとネットワーク・インターフェース・カード（ＮＩＣ）等のネットワーク・インターフェース・ハードウエア１１２が通信する。
【００３５】
図２は、好ましい実施態様に従った統合化モニタリング・システム２００を示す。統合化モニタリング・システム２００は、ソフトウエア・スタック２０２およびトラフィック・モニタリング・モジュール２０４を含む。ソフトウエア・スタック２０２およびトラフィック・モニタリング・モジュール２０４は、異なるコンピュータ上に、あるいは同一コンピュータ上に常駐することができる。
【００３６】
ソフトウエア・スタック２０２は、図１のソフトウエア・スタック１０２に類似であるが、２つの追加のモジュール、すなわち通信関数呼び出しモニタリング・モジュール２０６およびパケット・モニタリング・モジュール２０８を含み、それらが協働して通信モニタリング・モジュールを構成する。モジュール２０６および２０８は、詳細を後述するとおり、それぞれリンク２１０および２１２を介してトラフィック・モニタリング・モジュール２０４と通信する。
【００３７】
図３は、好ましい実施態様に従った通信関数呼び出しモニタリング・モジュール２０６の詳細を示している。通信関数呼び出しモニタリング・モジュール２０６は、アプリケーション１０４によって生成された通信関数呼び出しを検出する通信関数呼び出し検出モジュール３０２、それらの通信関数呼び出しのうちの一または複数を記述する情報をトラフィック・モニタリング・モジュール２０４に送信する通信関数呼び出しレポーティング・モジュール３０４を含む。通信関数呼び出しモニタリング・モジュール２０６は、通信関数呼び出しレポーティング・モジュール３０４によって送信されるレポート内に含められることになる、通信関数呼び出し検出モジュール３０２によって検出された通信関数呼び出しのうちの一または複数を選択する通信関数呼び出しフィルタ・モジュール３０６をオプションとして包含する。
【００３８】
図４は、好ましい実施態様に従ったパケット・モニタリング・モジュール２０８の詳細を示している。パケット・モニタリング・モジュール２０８は、アプリケーション１０４のためにネットワーク・インターフェース・ハードウエア・ドライバ１１０によって取り扱われるパケットを検出する（すなわち、アプリケーション１０４のために送信された、あるいは受信されたパケットを検出する）パケット検出モジュール４０２を含む。またパケット・モニタリング・モジュール２０８は、それらのパケットのうちの一または複数を記述する情報をトラフィック・モニタリング・モジュール２０４に送信するパケット・レポーティング・モジュール４０４を含む。さらにパケット・モニタリング・モジュール２０８は、パケット・レポーティング・モジュール４０４によって送信されるレポート内に含められることになる、パケット検出モジュール４０２によって検出されたパケットのうちの一または複数を選択するパケット・フィルタ・モジュール４０６をオプションとして包含する。
【００３９】
図５は、好ましい実施態様に従ったトラフィック・モニタリング・モジュール２０４を詳細に示している。トラフィック・モニタリング・モジュール２０４は、アプリケーション１０４によって生成された通信関数呼び出しの記述を含むレポートを通信関数呼び出しモニタリング・モジュール２０６の通信関数呼び出しレポーティング・モジュール３０４から受信する通信関数呼び出しモニタリング・インターフェース・モジュール５０２、およびアプリケーション１０４のためにネットワーク・インターフェース・ハードウエア・ドライバ１１０によって取り扱われるパケットの記述を含むレポートをパケット・モニタリング・モジュール２０８のパケット・レポーティング・モジュール４０４から受信するためのパケット・モニタリング・インターフェース・モジュール５０４を含む。トラフィック・モニタリング・モジュール２０４は、さらに、通信関数呼び出しの記述および一または複数のパケットの記述を基礎としてネットワーク・ステータス・レポートおよびアラート等を生成するトラフィック分析モジュール５０６を含む。トラフィック・モニタリング・モジュール２０４は、ネットワーク・ステータス・レポート等をユーザに向けて呈示するユーザ・インターフェース・モジュール５０８をオプションとして包含する。
【００４０】
トラフィック・モニタリング・モジュール２０４は、通信関数呼び出しフィルタ・モジュール５１０およびパケット・フィルタ・モジュール５１２のうちのいずれかまたは両方をオプションとして包含する。通信関数呼び出しフィルタ・モジュール５１０は、ネットワーク・ステータス・レポートの生成における分析のために、通信関数呼び出しの記述のうちの一または複数を選択する。同様にパケット・フィルタ・モジュール５１２は、ネットワーク・ステータス・レポートの生成における分析のために、パケットの記述のうちの一または複数を選択する。通信関数呼び出しフィルタ・モジュール５１０およびパケット・フィルタ・モジュール５１２のうちの１つまたは両方を含む実施態様においては、ユーザ・インターフェース・モジュール５０８によってユーザがフィルタ５１０および５１２の構成を行うことが可能になる。
【００４１】
図６は、好ましい実施態様に従ったソフトウエア・スタック２０２に関する方法６００を示している。オプションの通信関数呼び出しフィルタ・モジュール３０６およびオプションのパケット・フィルタ・モジュール４０６のうちの１つまたは両方を含む実施態様においては、方法６００が、たとえばトラフィック・モニタリング・モジュール２０４のユーザ・インターフェース・モジュール５０８を介して提供可能なユーザ入力に従って行われるフィルタ３０６および４０６のうちの１つまたは両方の構成（ステップ６０２）をオプションとして包含する。通信関数呼び出しフィルタ・モジュール３０６の場合には、構成が、トラフィック・モニタリング・モジュール２０４に対してレポートされるべき通信関数呼び出しの選択を含む。オプションのパケット・フィルタ・モジュール４０６の場合には、構成が、トラフィック・モニタリング・モジュール２０４に対してレポートされるべきパケットの選択を含む。
【００４２】
通信関数呼び出し検出モジュール３０２は、アプリケーション１０４によって生成された通信関数呼び出しを検出する（ステップ６０４）。通信関数呼び出しは、通信接続のメークおよびブレーク、パケットの送信および受信等を行う通信ＡＰＩ  １０６に対するアプリケーション１０４による関数呼び出しを含む。マイクロソフト・ウインドウズ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））環境においては通信関数呼び出しモニタリング・モジュール２０６が、ウインソック２（Ｗｉｎｓｏｃｋ２）レイヤード・サービス・プロバイダ（ＬＳＰ）メカニズムを使用して、ウインソック２（Ｗｉｎｓｏｃｋ２）標準ソケット関数呼び出しに取り付けられるウインソック２（Ｗｉｎｓｏｃｋ２）フッキング・ダイナミック・リンク・ライブラリ（ＤＬＬ）として実装される。別の環境においては、別の実装を使用することができる。これらの実施態様によれば、ソケット‐ベースのアプリケーション１０４がウインソック２（Ｗｉｎｓｏｃｋ２）ソケット関数呼び出し（たとえば、ｂｉｎｄ（）、ｃｏｎｎｅｃｔ（）、ａｃｃｅｐｔ（）、ｓｅｎｄ（）／ｓｅｎｄｔｏ（）、ｒｅｃｖ（）／ｒｅｃｖｆｒｏｍ（）等）を行うとき、対応するＬＳＰ  ＤＬＬの関数が呼び出される。ＬＳＰ  ＤＬＬは、その関数に渡されるあらゆるデータの試験および／または修正を行うことができる。
【００４３】
オプションの通信関数呼び出しフィルタ・モジュール３０６を採用する実施態様においては、フィルタ３０６がトラフィック・モニタリング・モジュール２０４に対してレポートされるべき通信関数呼び出しのうちの一または複数を選択する（ステップ６０６）。
【００４４】
通信関数呼び出しレポーティング・モジュール３０４は、通信関数呼び出しを記述する情報を、リンク２１０を介してトラフィック・モニタリング・モジュール２０４に送信する（ステップ６０８）。マイクロソフト・ウインドウズ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））環境においては、好ましくはリンク２１０がマイクロソフト・ネームド・パイプ（Ｍｉｃｒｏｓｏｆｔ  Ｎａｍｅｄ  Ｐｉｐｅ）メカニズムを使用して実装されるが、任意のプロセス間通信メカニズムを使用することが可能である。別の環境においては、別の実装を使用することができる。
【００４５】
パケット検出モジュール４０２は、アプリケーション１０４のためにネットワーク・インターフェース・ハードウエア・ドライバ１１０によって取り扱われるパケットを検出する（ステップ６１０）。パケット検出モジュール４０２は、そのため、モジュール４０２が常駐するコンピュータによって送信され、あるいは受信されるそれぞれのパケットごとに呼び出される。マイクロソフト・ウインドウズ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））環境においては、好ましくはパケット検出モジュール４０２が、アプリケーション１０４によって送信されるパケットを受信するミニポート・インターフェースをネットワーク・プロトコル・ドライバ１０８に提供し、かつアプリケーション１０４に送信されるパケットを受信するプロトコル・インターフェースをネットワーク・インターフェース・ハードウエア・ドライバ１１０に提供する。別の環境においては、別の実装を使用することができる。
【００４６】
オプションのパケット・フィルタ・モジュール４０６を採用している実施態様においては、フィルタ・モジュール４０６が、あらかじめ定義済みの、ユーザが構成することのできるパケット・フィルタ基準に従って、トラフィック・モニタリング・モジュール２０４にレポートされることになるパケットのうちの一または複数を選択する（ステップ６１２）。たとえばパケット・フィルタ基準は、特定のＴＣＰまたはＵＤＰポートに関連付けされたパケットだけ、ＳＹＮ、ＳＹＮ＋ＡＣＫ、ＦＩＮ＋ＡＣＫ、ＲＳＴ等の特定のＴＣＰイベントに関連付けされたパケットだけといった選択を行うことが可能である。パケット・レポーティング・モジュール４０４は、これらのパケットを記述する情報をトラフィック・モニタリング・モジュール２０４に送信する（ステップ６１４）。
【００４７】
図７は、好ましい実施態様に従ったトラフィック・モニタリング・モジュール２０４に関する方法７００を示している。オプションの通信関数呼び出しフィルタ・モジュール５１０およびオプションのフィルタ５１２のうちの１つもしくは両方を含む実施態様においては、方法６００が、たとえばユーザ・インターフェース・モジュール５０８を介して提供可能なユーザ入力に従って行われるフィルタ５１０および５１２のうちの１つまたは両方の構成（ステップ７０２）をオプションとして包含する。通信関数呼び出しフィルタ・モジュール５１０の場合には、構成が、通信関数呼び出しモニタリング・モジュール２０６によってレポートされた通信関数呼び出しのうちのいずれがトラフィック・モニタリング・モジュール２０４によって分析されるべきであるかの選択を含む。オプションのパケット・フィルタ・モジュール４０６の場合には、構成が、パケット・モニタリング・モジュール２０８によってレポートされたパケットのうちのいずれがトラフィック・モニタリング・モジュール２０４によって分析されるべきであるかの選択を含む。通信関数呼び出しフィルタ・モジュール５１０およびオプションのフィルタ５１２によって採用されるフィルタ基準は、通信関数呼び出しフィルタ・モジュール３０６およびパケット・フィルタ・モジュール４０６について前述したとおりとすることができる。
【００４８】
通信関数呼び出しモニタリング・インターフェース・モジュール５０２は、アプリケーション１０４によって生成された通信関数呼び出しの記述を含むレポートを通信関数呼び出しモニタリング・モジュール２０６の通信関数呼び出しレポーティング・モジュール３０４から受信する（ステップ７０４）。
【００４９】
パケット・モニタリング・インターフェース・モジュール５０４は、アプリケーション１０４のためにネットワーク・インターフェース・ハードウエア・ドライバ１１０によって取り扱われるパケットの記述を含むレポートをパケット・モニタリング・モジュール２０８のパケット・レポーティング・モジュール４０４から受信する（ステップ７０６）。
【００５０】
通信関数呼び出しフィルタ・モジュール５１０を採用している実施態様においては、フィルタ・モジュール５１０が、レポートされた通信関数呼び出しのうちの一または複数を分析のために選択する（ステップ７０８）。オプションのパケット・フィルタ・モジュール５１２を採用している実施態様においては、フィルタ・モジュール５１２が、レポートされたパケットのうちの一または複数を分析のために選択する（ステップ７１０）。
【００５１】
トラフィック分析モジュール５０６は、通信関数呼び出しの記述ならびに一または複数のパケットの記述に基づいて通信ステータス・レポートおよびアラート等を生成する（ステップ７１２）。オプションとしてユーザ・インターフェース・モジュール５０８は、この通信ステータス・レポートをユーザに呈示する（ステップ７１４）。
【００５２】
トラフィック分析モジュール５０６は、任意の種類の分析を、たとえばデバッグまたはパフォーマンスの目的で採用することができる。たとえばトラフィック分析モジュールは、アウト‐オブ‐オーダ・パケット、パケット再送等を検出することができる。
【００５３】
別の例を挙げると、トラフィック分析モジュール５０６は、ネットワーク・プロトコル・ドライバ１０８のバッファリング・ステータスをモニタすることができる。たとえば、アプリケーション１０４がＴＣＰ／ＩＰデータをネットワークと交換するとき、ネットワーク・プロトコル・ドライバ１０８は、データを、それが（到来データについてはアプリケーション１０４によって、送出データについてはネットワーク・インターフェース・ハードウエア・ドライバ１１０によって）受信されるまでバッファする。このバッファリングは、関連技術において周知のとおり、一般にパフォーマンスならびにスループットを改善する。しかしながらバッファされるデータが大きくなると、その待ち時間が増加する。テレビ会議データ等のリアルタイム・データについては、この待ち時間がユーザの対話経験に悪影響を及ぼす。アプリケーション１０４のｓｅｎｄ（）、ｓｅｎｄｔｏ（）、ｒｅｃｖ（）、およびｒｅｃｖｆｒｏｍ（）通信関数呼び出しおよびＰＳＨフラグがセットされたパケットを分析することによって、トラフィック分析モジュール５０６は、バッファされているデータの量を決定することができる。
【００５４】
さらに別の例を挙げれば、トラフィック・モニタリング・モジュール２０４は、アプリケーション１０４による異なるコンピュータ上のアプリケーションに対するＴＣＰ接続の設定をレポートすることができる。通信関数呼び出しモニタリング・モジュール２０６が、アプリケーション１０４からのｃｏｎｎｅｃｔ（）関数呼び出しをレポートする。パケット・モニタリング・モジュール２０８が、結果のＴＣＰハンドシェーク・パケットをレポートする。その後、通信関数呼び出しモニタリング・モジュール２０６が、ｃｏｎｎｅｃｔ（）関数呼び出しの戻りステータスをレポートする。
【００５５】
さらにまた別の例を挙げれば、トラフィック・モニタリング・モジュール２０４は、１つのアプリケーション１０４またはプロセスによる、同一コンピュータ上の別のアプリケーション１０４またはプロセスに対するＴＣＰ接続の設定をレポートすることができる。通信関数呼び出しモニタリング・モジュール２０６が、そのコンピュータのＩＰアドレスをディスティネーション・アドレスとして有するｃｏｎｎｅｃｔ（）関数呼び出しをレポートし、それに続いてｃｏｎｎｅｃｔ（）関数呼び出しの戻りステータスをレポートする。このプロセス間接続がほかのコンピュータを伴わないことから、パケット・モニタリング・モジュール２０８には、レポートするべきパケットがない。
【００５６】
本発明の実施態様は、Ｈ．３２３テレビ会議アプリケーションにおいて特に有用である。これらの実施態様に従った通信モニタリング・モジュールをＨ．３２３クライアントおよびサーバに組み込み、たとえばＨ．３２３クライアントがネットワークまたはローカル・ファイアウォールの背後にある場合の接続性問題のデバッグにおいて使用することが可能である。バーチャル・ネットワーク・コンピューティング（ＶＮＣ）等のリモート・デスクトップ・プロトコルに関連して使用される場合には、本発明の実施態様によって技術者が、クライアントの接続性問題を遠隔監視し、訂正することが可能になる。それに加えて、本発明の実施態様は、マイクロソフト・インターネット・エクスプローラ・プロキシ・サーバ（Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ  Ｐｒｏｘｙ  Ｓｅｒｖｅｒ）の設定等のクライアントのレジストリの設定をチェックして適切なクライアント・ソフトウエアのセットアップを確保することができる。
【００５７】
Ｈ．３２３テレビ会議サーバの側においては、本発明の実施態様が個別のクライアント接続のそれぞれについてネットワーク・パフォーマンスを追跡することができる。サーバに、ウェブ・サーバあるいはローカル・データベース・サーバといったほかのローカル・アプリケーションおよびプロセスが組み込まれるときは、本発明の実施態様がそれらのアプリケーションおよびプロセスの間の通信をモニタすることができる。それに加えて、クライアントの接続性問題を、それらの複数のサーバ・アプリケーションならびにプロセスを通じて追跡することが可能である。
【００５８】
本発明の実施態様は、ディジタル電子回路またはコンピュータ・ハードウエア、ファームウエア、ソフトウエア、またはそれらの組み合わせにおいて具体化することができる。本発明の装置は、プログラマブル・プロセッサによる実行のためのマシン可読ストレージ・デバイス内において有体として具体化されるコンピュータ・プログラム・プロダクトの形で具体化可能であり、本発明の方法ステップは、命令のプログラムを実行し、入力データを操作し出力を生成することにより本発明の機能を実行するプログラマブル・プロセッサによって実行することが可能である。本発明は、データ・ストレージ・システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータならびに命令を受信するべく、かつそれらに対してデータならびに命令を送信するべく結合された少なくとも１つのプログラマブル・プロセッサを含むプログラマブル・システム上で実行可能な一または複数のコンピュータ・プログラム内において都合よく具体化することが可能である。各コンピュータ・プログラムは、高レベルの手続きまたはオブジェクト指向プログラミング言語で、あるいは望ましい場合にはアッセンブリもしくは機械語で具体化することが可能であり、また、いずれの場合においても言語をコンパイル済みもしくは翻訳済み言語とすることが可能である。適切なプロセッサには、例を示せば、汎用および専用マイクロプロセッサが含まれる。概して言えば、プロセッサは、読み出し専用メモリおよび／またはランダム・アクセス・メモリから命令ならびにデータを受け取ることになる。一般にコンピュータは、データ・ファイルのストアのために一または複数の大容量ストレージ・デバイスを含み；その種のデバイスは、内蔵ハードディスクおよびリムーバブル・ディスク等の磁気ディスク、光磁気ディスク、および光ディスクを含む。コンピュータ・プログラムの命令ならびにデータを有体として具体化するために適したストレージ・デバイスには、あらゆる形式の不揮発性メモリが含まれ、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュ・メモリ・デバイス等の半導体メモリ・デバイス、内蔵ハードディスクおよびリムーバブル・ディスク等の磁気ディスク、光磁気ディスク、およびＣＤ‐ＲＯＭディスクが挙げられる。以上のいずれもＡＳＩＣ（特定用途向け集積回路）によって置き換え、またはその中に統合することが可能である。また本発明の実施態様を具体化するためのコンピュータ・プログラム・命令は、適切な搬送波上において運ぶことも可能である。
【００５９】
以上、本発明の多くの具体化を説明してきた。それにもかかわらず、本発明の精神ならびに範囲から逸脱することなしに種々の修正を行い得る。したがって、このほかの具体化は、次に示す特許請求の範囲内に含まれる。
【図面の簡単な説明】
【００６０】
【図１】マイクロソフト・ウインドウズ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））等のオペレーティング・システムに関する従来のソフトウエア・スタックを示した説明図。
【図２】好ましい実施態様に従った統合化モニタリング・システムを示した説明図。
【図３】好ましい実施態様に従った図２の、通信関数呼び出しモニタリング・モジュールの詳細を示した説明図。
【図４】好ましい実施態様に従った図２の、パケット・モニタリング・モジュールの詳細を示した説明図。
【図５】好ましい実施態様に従った図２の、トラフィック・モニタリング・モジュールの詳細を示した説明図。
【図６】好ましい実施態様に従った図２の、ソフトウエア・スタックに関する方法を示した説明図。
【図７】好ましい実施態様に従った図２の、トラフィック・モニタリング・モジュールに関する方法を示した説明図。
【符号の説明】
【００６１】
１０２  ソフトウエア・スタック
１０４  アプリケーション
１０６  アプリケーション・プログラミング・インターフェース（ＡＰＩ）
１０８  ネットワーク・プロトコル・ドライバ
１１０  ネットワーク・インターフェース・ハードウエア・ドライバ
１１２  ネットワーク・インターフェース・ハードウエア
２００  統合化モニタリング・システム
２０２  ソフトウエア・スタック
２０４  トラフィック・モニタリング・モジュール
２０６  通信関数呼び出しモニタリング・モジュール
２０８  パケット・モニタリング・モジュール
２１０  リンク
２１２  リンク
３０２  通信関数呼び出し検出モジュール
３０４  通信関数呼び出しレポーティング・モジュール
３０６  通信関数呼び出しフィルタ・モジュール；フィルタ
４０２  パケット検出モジュール
４０４  パケット・レポーティング・モジュール
４０６  パケット・フィルタ・モジュール；フィルタ
５０２  通信関数呼び出しモニタリング・インターフェース・モジュール
５０４  パケット・モニタリング・インターフェース・モジュール
５０６  トラフィック分析モジュール
５０８  ユーザ・インターフェース・モジュール
５１０  通信関数呼び出しフィルタ・モジュール；フィルタ；フィルタ・モジュール
５１２  パケット・フィルタ・モジュール；フィルタ；フィルタ・モジュール
【図１】
2007006477.tif 000003
【図２】
2007006477.tif 000004
【図３】
2007006477.tif 000005
【図４】
2007006477.tif 000006
【図５】
2007006477.tif 000007
【図６】
2007006477.tif 000008
【図７】
2007006477.tif 000009