(57)【特許請求の範囲】
【請求項１】
無線ネットワーク内の無線コンピューティングデバイスまたは無線アクセスポイントのいずれかである第１の無線デバイスにおいて起こる通信問題の診断を促進する方法であって、
前記無線ネットワーク内に通信問題が存在することを判定するステップと、
前記通信問題の診断を補助させるための要求を、１つまたは複数の隣接無線デバイスにブロードキャストするステップであって、前記要求を受信した前記隣接無線デバイスを傍受モードに切り替えるステップと、
診断セッションにおいて第２の無線デバイスによって送信される診断セッション要求に応答するステップと、
前記傍受モードにある前記隣接無線デバイスの少なくとも１つである傍受クライアントから、前記診断セッションについての情報を受信するステップと、
を備え、
前記情報が、前記第２の無線デバイスによって前記第１の無線デバイスへ送信された診断セッション要求の受信時間と、前記第１の無線デバイスによって前記第２の無線デバイスへ送信された対応の診断セッション要求の受信時間との前記傍受クライアントによる監視に基づいており、前記診断セッション要求に関して受信された情報が通信問題の診断を容易にすることを特徴とする方法。
【請求項２】
無線ネットワーク内の無線コンピューティングデバイスまたは無線アクセスポイントのいずれかである第１の無線デバイスにおいて起こる通信問題の診断を促進するコンピュータ実行可能命令であって、前記第１の無線デバイス上で実行されるとき、請求項１に記載の方法を前記第１の無線デバイスに実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読記憶媒体。
【請求項３】
前記コンピュータ実行可能命令は、前記診断セッションにおいて前記第２の無線デバイスに診断セッション要求を送信するステップを前記第１の無線デバイスに実行させるステップをさらに含むことを特徴とする、請求項２に記載のコンピュータ可読記憶媒体。
【請求項４】
前記診断セッションについての前記情報は、パケット遅延レートまたはパケット紛失レートのうち１つまたは複数のレートの推定値を含むことを特徴とする、請求項２に記載のコンピュータ可読記憶媒体。
【請求項５】
前記第１の無線デバイスは無線コンピューティングデバイスであり、前記第２の無線デバイスは無線アクセスポイントであることを特徴とする、請求項２に記載のコンピュータ可読記憶媒体。
【請求項６】
前記コンピュータ実行可能命令は、前記診断セッションについての前記情報を使って、どの程度の通信問題が、前記第１の無線デバイス、前記第２の無線デバイス、あるいは前記第１の無線デバイスと前記第２の無線デバイスの間の無線媒体の１つまたは複数によって引き起こされたかを判定するステップを前記第１の無線デバイスに実行させるステップをさらに含むことを特徴とする、請求項２に記載のコンピュータ可読記憶媒体。
【請求項７】
前記コンピュータ実行可能命令は、前記診断セッションの結果をネットワーク管理者に報告するステップを前記第１の無線デバイスに実行させるステップをさらに含むことを特徴とする、請求項２に記載のコンピュータ可読記憶媒体。
【請求項８】
無線ネットワーク内の第１の無線コンピューティングデバイスにおいて起こる通信問題の診断を促進するために第２の無線コンピューティングデバイスにおいて実行される方法であって、
前記第１の無線デバイスから診断ヘルプの要求を受信するステップと、
前記診断ヘルプの要求に応答して、傍受クライアントとして動作するよう傍受モードに切り替わって、診断セッションにおいて無線アクセスポイントによって前記第１の無線コンピューティングデバイスへ送信された診断セッション要求の受信時間と、前記第１の無線コンピューティングデバイスによって前記無線アクセスポイントへ送信された対応の診断セッション要求の受信時間との監視によってパフォーマンスデータを蓄積するステップと、
蓄積された前記パフォーマンスデータに関する情報を前記第１の無線コンピューティングデバイスへ送信するステップと、
を備え、前記パフォーマンスデータに関する情報が、前記第１の無線コンピューティングデバイスで起こる通信問題の診断を容易にすることを特徴とする方法。
【請求項９】
無線ネットワーク内の第１の無線コンピューティングデバイスにおいて起こる通信問題の診断を促進するコンピュータ実行可能命令であって、前記第２の無線コンピューティングデバイス上で実行されるとき、請求項８に記載の方法を前記第２の無線デバイスに実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読記憶媒体。
【請求項１０】
前記コンピュータ実行可能命令が、無線アクセスポイント上で動作する診断アクセスポイントプログラムに、前記第１の無線コンピューティングデバイスと診断プロトコルを開始するよう要求するステップを前記第２の無線コンピューティングデバイスに実行させるステップをさらに含むことを特徴とする、請求項９に記載のコンピュータ可読記憶媒体。
【請求項１１】
パフォーマンスデータを蓄積する前記ステップが、前記第１の無線コンピューティングデバイスによる通信遅延を推定するステップを含むことを特徴とする、請求項９に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記通信遅延が、前記診断セッション要求の受信とそれに対応する診断セッション応答の受信との間の時間量として推定されることを特徴とする、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
パフォーマンスデータを蓄積する前記ステップが、前記無線アクセスポイントによる通信遅延を推定するステップを含むことを特徴とする、請求項９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、ネットワークのオペレーションに関し、より詳細には、無線ネットワークにおけるパフォーマンスの問題の診断に関する。
【背景技術】
【０００２】
無線ネットワーク接続の便宜性は、無線ネットワーク（例えば、ＩＥＥＥ８０２．１１ネットワーク）の大規模な採用につながった。企業、大学、家庭、および公共の場所は、驚く程の割合でこうしたネットワークを展開している。しかし、エンドユーザおよびネットワーク管理者にとって、かなりの数の「苦悩（pain point）」が残っている。ユーザは、時々とぎれる接続、低パフォーマンス、受信可能範囲の不足、および認証の失敗など、いくつかの問題を経験する。こうした問題は、アクセスポイントの配置不足、デバイスの設定ミス、ハードウェアおよびソフトウェアのエラー、無線媒体の性質（例えば、干渉、伝播）、ならびにトラフィックの輻輳など、様々な理由に起因して起こる。ユーザは、接続性およびパフォーマンスの問題について頻繁に不満をもち、ネットワーク管理者は、会社のセキュリティおよび受信可能範囲を管理する際、こうした問題を診断することを期待される。管理者のタスクは、無線媒体の信頼できない性質およびこうした問題の原因を判定するインテリジェントな診断ツールの欠如により、特に難しい。
【０００３】
ＩＥＥＥ８０２．１１ネットワークを大規模に展開している企業には、多くの建物にまたがる数千のアクセスポイント（ＡＰ）が存在し得る。こうしたネットワークに伴う問題は、エンドユーザのフラストレーションおよび会社にとっての生産性の損失を生じさせる。さらに、各エンドユーザの不満の解消は、会社のＩＴ部門に対して追加のサポート用人件費を生じさせる。この費用は、数十ドルになる場合もあり、エンドユーザの生産性の損失に起因する費用は含まない。
【０００４】
【非特許文献１】Zhang et al., "On the Characteristics and Origins of Internet Flow Rates", Proceedings of ACM SIGCOMM, August 2002
【非特許文献２】Floyd et al., "Equation-Based Congestion Control for Unicast Applications", Proceedings of ACM SIGCOMM, August 2000
【非特許文献３】Allman et al., "Estimating Loss Rates with TCP", ACM Perf. Evaluation Review 31(3), December 2003
【非特許文献４】W. Richard Stevens, "The Protocols (TCP/IP Illustrated ,Vol. I) ", Addison Wesley, 1994
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＩＥＥＥ８０２．１１インフラストラクチャネットワークにおける障害診断は、無線ネットワーク接続における、注目度が比較的高い他の研究分野に比べて、研究団体から注目されていなかった。いくつかの企業は、診断ツールの提供を試みているが、こうした製品には、望ましいいくつかの機能（feature）が欠けている。例えば、こうした製品は、問題の考えられる原因を確認するために、データを集め、分析するという包括的な作業を行わない。さらに、ほとんどの製品が通常、ＡＰからデータを集めるだけであり、ネットワークをクライアント側から見ることを無視している。ネットワークをクライアントの観点から監視する一部の製品は、ハードウェアセンサを必要とするが、このセンサは、展開し維持するのにコストがかかり得る。また、現在のソリューションは通常、切断されたクライアントに対しては、最も助けを必要とするクライアントではあっても、いかなるサポートも提供しない。
【課題を解決するための手段】
【０００６】
上で概説した問題は、本明細書において記載する、無線ネットワーク内の障害を検出し診断するシステムおよび方法によって、少なくとも部分的に対処することができる。
【０００７】
以下は、読者に対して本開示のいくつかの態様の基本的な理解をもたらすために、本開示の簡略な要約を提示する。この要約は、本開示の網羅的な概要でも限定的な概要でもない。この要約は、本発明の主要な、かつ／または重大な要素を明らかにし、本発明の範囲を詳述し、あるいは本発明の範囲を限定するために与えられるものではまったくない。この要約の唯一の目的は、後で提示されるより詳細な説明の導入として、開示される概念の一部を簡略な形で提示することである。
【０００８】
一実施形態では、本明細書において記載するシステムおよび方法は、無線ＬＡＮの展開において直面するパフォーマンスの問題の分析に利用することができる。インフラストラクチャ無線ネットワーク内の障害を検出し診断する柔軟なアーキテクチャも記載される。無線クライアント（および、可能な場合はアクセスポイント）に、近くにある無線媒体およびデバイスを監視するための手段（instrumentation）を適用することによって、このアーキテクチャは、プロアクティブ型およびリアクティブ型障害診断を両方ともサポートすることができる。この監視のフレームワークは、無線ユーザを悩ませている問題の一部に対処するのに利用することができる。
【０００９】
一実施形態では、無線ネットワーク内の第１の無線コンピューティングデバイスにおいて起こる通信問題の診断を促進するコンピュータ実行可能命令を含むコンピュータ可読媒体が提供され、無線ネットワークは、第１の無線コンピューティングデバイスおよび無線アクセスポイントを備え、コンピュータ実行可能命令は、第１の無線コンピューティングデバイス上で実行され、無線ネットワーク内に通信問題が存在するかどうか判定するステップと、通信問題の診断を補助させるための要求を、１つまたは複数の隣接無線コンピューティングデバイスにブロードキャストするステップと、診断セッションにおいて無線アクセスポイントによって送信されるスヌープ要求に応答するステップと、隣接無線コンピューティングデバイスの少なくとも１つから、診断セッションについての情報を受信するステップとを実施する。
【００１０】
別の実施形態では、第１の無線コンピューティングデバイスと無線アクセスポイントとの間の無線部分およびアクセスポイントとインフラストラクチャネットワークとの間の有線部分の両方を含むコンピュータネットワーク上の問題を診断する診断システムが提供され、診断システムは、第１の無線コンピューティングデバイス上で実行されるクライアント診断プログラムと、無線アクセスポイント上で実行されるアクセスポイント診断プログラムとを備え、アクセスポイント診断プログラムは、クライアント診断プログラムと通信して、ネットワーク接続問題が、ネットワークの有線部分で起こったのか、それとも無線部分で起こったのか判定する。
【００１１】
さらに別の実施形態では、無線ネットワーク内の第１の無線コンピューティングデバイスにおいて起こる通信問題の診断を促進するコンピュータ実行可能命令を含むコンピュータ可読媒体が提供され、コンピュータ実行可能命令は、第２の無線コンピューティングデバイス上で実行され、第１の無線コンピューティングデバイスから、診断ヘルプを求める要求を受信するステップと、無線環境および第１の無線コンピューティングデバイスと１つまたは複数の無線アクセスポイントの間のトラフィックフローを監視することによって、パフォーマンスデータを蓄積するステップと、蓄積されたパフォーマンスデータの要約を伝送するステップとを実施する。
【００１２】
添付の特許請求の範囲は本発明の特徴を具体的に定義するが、本発明およびその利点は、以下の詳細な説明を添付の図面と併せ読むことによって最もよく理解することができよう。
【発明を実施するための最良の形態】
【００１３】
無線ネットワークのパフォーマンスの問題を検出し診断するための方法およびシステムが、特定の実施形態を参照して説明されるが、本発明の方法およびシステムはそのように限定されるわけではない。さらに、本明細書に記載する方法およびシステムは例示に過ぎず、本発明の要旨および範囲から逸脱することなく変形形態も可能であることを、当業者は容易に理解するであろう。この説明を吟味した後で、上記の内容は例示に過ぎず、限定ではなく、例示の目的でのみ提示されていることが当業者には明らかであろう。多数の変更形態および他の例示的な実施形態は、当業者の理解の範囲内であり、本発明の範囲内であると企図される。具体的には、本明細書において提示する例の多くは、方法の操作またはシステム要素の具体的な組合せを伴うが、そうした操作および要素は、同じ目的を達成するために、他のやり方で組み合わせることもできることが理解されるべきである。一実施形態にのみ関連して論じる操作、要素、および特徴は、他の実施形態における同様の役割から除外されることを意図していない。さらに、特許請求の範囲において、「第１」および「第２」など、順序を示す用語を、請求項の要素を修飾するために使用しているが、それ自体では、ある請求項の要素の、別の要素に対するいかなる優先度、優位性、または順序も、方法の操作が実施される時間的順序も暗示しているわけではなく、ある名称をもつある請求項の要素を、同じ名称をもつ別の要素と区別するための単なるラベルとして（順序を示す用語の使用は除く）、こうした複数の請求項要素を区別するのに使われている。
【００１４】
企業の無線ネットワークを使用し維持する際に、ユーザおよびネットワーク管理者が直面する問題の多くを以下に列挙する。
【００１５】
接続性の問題：エンドユーザは、建物の特定のエリアでの一貫性のないネットワーク接続性、またはネットワーク接続性の欠如について不満をもつ。このような「デッドスポット」または「ＲＦホール」は、弱いＲＦ信号、信号の欠如、環境条件の変化、または障害物に起因して起こり得る。ＲＦホールの自動発見は、無線管理者にとって重要である。管理者は次いで、この問題を、問題のあるエリア内でＡＰを配置し直すか、またはＡＰの密集度を増やすことによって、あるいは受信可能範囲の改善のために近くのＡＰ上のパワー設定を調節することによって解決することができる。
【００１６】
パフォーマンスの問題：このカテゴリは、クライアントが、パフォーマンスの低下、例えば、低スループットや長い待ち時間を認識する状況をすべて含む。例えば、輻輳に起因するトラフィックの速度低下、電子レンジまたはコードレス電話に起因するＲＦ干渉、マルチパス干渉、不十分なネットワーク計画または構成が不十分なクライアント／ＡＰに起因する大規模同一チャネル干渉など、パフォーマンスの問題が存在するいくつかの理由があり得る。パフォーマンスの問題は、ネットワークの非無線パートにおける問題の結果として、例えば、遅いサーバやプロキシに起因して起こる場合もある。したがって、診断ツールは、問題が、無線ネットワーク内部にあるのか、それとも他の場所にあるのか判定することができると有用である。さらに、無線パートにおける原因の識別は、ネットワーク管理者が、エンドユーザのためにより適切にシステムを提供し、経験（experience）を向上させることを可能にするのに重要である。
【００１７】
ネットワークセキュリティ：大企業はしばしば、ＩＥＥＥ８０２．１ｘなどのソリューションを使用して、企業のネットワークを保護する。しかし、ＩＴマネージャにとって最悪のシナリオが起こるのは、従業員が、そうとは気づかずに、無許可ＡＰを会社のネットワークのイーサネット（登録商標）タップに接続することによって、ネットワークのセキュリティを危うくさせるときである。この問題は一般に、「無認可ＡＰ問題（Rogue AP Problem）」と呼ばれる。こうした無認可ＡＰは、無線ネットワークセキュリティの最も一般的であり深刻な欠陥の１つである。このようなＡＰが存在するせいで、外部のユーザが、会社のネットワーク上のリソースへのアクセスを許可される。こうしたユーザは、情報を漏らす場合も、他の損害を引き起こす場合もある。さらに、無認可ＡＰは、周辺にある他のアクセスポイントとの干渉を引き起こし得る。大規模ネットワークにおける、手動プロセスによる無認可ＡＰの検出は、コストも時間もかかる。したがって、このようなＡＰをプロアクティブに検出することが重要である。
【００１８】
認証問題：ＩＴサポートグループのログによると、いくつかの不満は、ユーザが、ネットワークに対して自分を認証させることができないことに関連する。ＩＥＥＥ８０２．１ｘなどの技術によって保護された無線ネットワークにおいて、認証の失敗は通常、証明書の紛失または失効に起因する。したがって、このような認証問題を検出し、クライアントが、有効な証明書を用いてブートするのを助けることが重要である。
【００１９】
本発明は、以下の詳細な説明を添付の図面と併せ読むと、より完全に理解されよう。本説明では、同じ番号は、本発明の様々な実施形態において同様の要素を指す。
【００２０】
本発明の態様は、適切なコンピューティング環境において実装されるものとして示される。そうすることが必要なわけではないが、パーソナルコンピュータによって実行される、プロシージャなどのコンピュータ実行可能命令という一般的なコンテキストにおいて、本発明が説明される。概して、プロシージャは、特定のタスクを実施しまたは特定の抽象データタイプを実装するプログラムモジュール、ルーチン、関数、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成を用いて実施できることを当業者は理解するであろう。本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクを実施する分散型コンピューティング環境でも実施することができる。分散型コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶デバイス両方に配置することができる。コンピュータシステムという用語は、分散型コンピューティング環境において見ることができるような、コンピュータからなるシステムを指すのに使うことができる。
【００２１】
図１は、本発明の態様を実施することができる、適切なコンピューティングシステム環境の例１００を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に対するどのような限定を示唆することも意図していない。コンピューティング環境１００は、例示的な動作環境１００に示すどのコンポーネントまたはその組合せに関するどのような依存も要件も有していると解釈されるべきではない。少なくとも本発明の一実施形態は、例示的な動作環境１００に示す各コンポーネントを含むが、本発明の、より典型的な別の実施形態では、必須でない一部または全部のコンポーネント、例えば、ネットワーク通信に必要とされるもの以外の入力／出力デバイスは含まない。
【００２２】
図１を参照すると、本発明を実施する例示的なシステムは、汎用コンピューティングデバイスを、コンピュータ１１０の形で含む。コンピュータ１１０のコンポーネントは、処理ユニット１２０と、システムメモリ１３０と、システムメモリなど様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含み得るが、それに限定されない。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（米国ビデオ電子装置規格化協会）ローカルバス、メザニンバスとしても知られるＰＣＩ（周辺装置相互接続）バスを含む。
【００２３】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができるとともに揮発性媒体および不揮発性媒体、取外し可能媒体および固定式媒体両方を含む、市販されているどの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどの方法でも技術でも実施される揮発性媒体および不揮発性媒体、取外し可能媒体および固定式媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を格納するのに使うことができるとともにコンピュータ１１０によってアクセスすることができる他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、変調データ信号、例えば搬送波や他の移送機構として具体化し、どの情報配信媒体も含む。「変調データ信号」という用語は、信号中の情報を符号化するように設定されまたは変更される信号特性の１つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含まれるべきである。
【００２４】
システムメモリ１３０は、コンピュータ記憶媒体を、ＲＯＭ（読出し専用メモリ）１３１およびＲＡＭ（ランダムアクセスメモリ）１３２など、揮発性および／または不揮発性メモリの形で含む。ＢＩＯＳ（基本入出力システム）１３３は、例えば起動中にコンピュータ１１０内部の要素間での情報の転送を助ける基本ルーチンを含み、通常はＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理ユニット１２０に対してただちにアクセス可能な、かつ／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。限定ではなく例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２５】
コンピュータ１１０は、他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体も含み得る。単なる例として、図１は、固定式不揮発性磁気媒体からの読出しまたはそこへの書込みを行うハードディスクドライブ１４１、取外し可能な不揮発性磁気ディスク１５２からの読出しまたはそこへの書込みを行う磁気ディスクドライブ１５１、および、ＣＤ  ＲＯＭや他の光学媒体など取外し可能な不揮発性光ディスク１５６からの読出しまたはそこへの書込みを行う光ディスクドライブ１５５を示す。例示的な動作環境で使うことができる、他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体状態ＲＡＭ、固体状態ＲＯＭなどを含むが、それに限定されない。ハードディスクドライブ１４１は通常、インターフェース１４０などの固定式メモリインターフェースによって、システムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取外し可能メモリインターフェースによって、システムバス１２１に接続される。
【００２６】
上述し、かつ図１に示すディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０のための他のデータの格納を可能にする。図１では、例えば、ハードディスクドライブ１４１を、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示してある。こうしたコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくとも異なるものであることを示すために、ここでは異なる番号が与えられている。ユーザは、タブレット、あるいは電子デジタイザ、マイクロホン、キーボード１６２、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１を介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）は、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよび他の入力デバイスはしばしば、システムバスに結合されるユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、ＵＳＢ（ユニバーサルシリアルバス）など、他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１または他のタイプの表示デバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタ１９１は、タッチスクリーンパネルなどと統合することもできる。モニタおよび／またはタッチスクリーンパネルは、タブレットタイプのパーソナルコンピュータでのように、コンピューティングデバイス１１０が組み込まれているハウジングに物理的に結合できることに留意されたい。さらに、コンピューティングデバイス１１０などのコンピュータは、出力周辺インターフェース１９５などを介して接続することができるスピーカ１９７およびプリンタ１９６など、他の周辺出力デバイスも含み得る。
【００２７】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク接続された環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ１１０に関連して上述された要素の多くまたはすべてを含むが、図１にはメモリ記憶デバイス１８１のみが示されている。図１に示される論理接続は、ＬＡＮ（ローカルエリアネットワーク）１７１およびＷＡＮ（ワイドエリアネットワーク）１７３を含むが、他のネットワークも含み得る。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【００２８】
ＬＡＮネットワーク環境において使われる場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境において使われる場合、コンピュータ１１０は通常、モデム１７２、または、例えばインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク接続された環境では、コンピュータ１１０に関連して図示されるプログラムモジュールまたはその一部は、リモートメモリ記憶デバイスに格納することができる。限定ではなく例として、図１は、リモートアプリケーションプログラム１８５を、メモリデバイス１８１に常駐するものとして示す。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使うことができることが理解されよう。具体的には、コンピュータ１１０は好ましくは、ＩＥＥＥ８０２．１１プロトコルに従って動作する無線ネットワーク用インターフェースまたは無線カードを含む。
【００２９】
本発明の実施形態では、システムは、図２に示すように、いくつかのコンポーネントからなる。クライアント診断（ＤＣ）２０２は、無線クライアントマシン２０４上で実行されるソフトウェアである。ＡＰ診断（ＤＡＰ）２０６は、アクセスポイント２０８上で実行される。サーバ診断（ＤＳ）２１０は、組織のバックエンドサーバ２１２上で実行される。
【００３０】
本発明のいくつかの実施形態では、クライアント診断モジュール２０２は、ＲＦ環境と、隣接クライアント２１４およびＡＰ２１６からのトラフィックフローとを監視する。正常に活動する間、クライアントの無線カードは、無差別モード（promiscuous mode）には置かれない。ＤＣ２０２は、収集したデータを使って、ローカルな障害診断を実施する。個々の障害検出機構に応じて、このデータの要約が、好ましくは一定の間隔でＤＡＰ２０６またはＤＳ２１０に伝送される。さらに、ＤＣ２０２は、オンデマンドなデータ収集を実施するための、ＤＡＰ２０６またはＤＳ２１０からのコマンドを受入するようにプログラミングされ、例えば、無差別モードに切り換わり、近くのクライアントのパフォーマンス問題を分析する。無線クライアント２０４が切断された場合、ＤＣ２０２は、データのログをローカルデータベース／ファイルに記録する。このデータは、将来、ネットワーク接続が復旧したとき、ＤＡＰ２０６またはＤＳ２１０によって分析することができる。
【００３１】
ＡＰ診断２０６は、ＤＣ２０２からの診断メッセージを受入し、こうしたメッセージを独自の測定結果とマージし、ＤＳ２１０に要約レポートを送信する。本発明のいくつかの実施形態は、ＡＰ診断２０６を含まない。ＤＡＰ２０６は、ＤＳ２１０の作業負荷を軽減する。本発明のいくつかの実施形態は、レガシーＡＰ２２０およびＤＡＰ２０６の混合を含む。ＡＰが、レガシーＡＰ２２０（例えば、ＡＰ診断を実行しないＡＰ）である場合、ＡＰの監視機能は、ＤＣ２０２によって実施され、ＡＰの要約機能および調査は、ＤＳ２１０で実施される。
【００３２】
サーバ診断２１０は、ＤＣ２０２およびＤＡＰ２０６からのデータを受入し、様々な障害を検出し診断するための適切な分析を実施する。ＤＳ２１０は、各ＡＰ２０８の場所を格納するデータベース２２１へのアクセス権も有する。ネットワーク管理者は、負荷のバランスをとるために、例えば、各ＡＰのＭＡＣアドレスをある特定のＤＳ２１０にハッシュすることによって、システム内に複数のＤＳ２１０を展開することができる。いくつかの実施形態では、サーバ診断２１０は、ＲＡＤＩＵＳ２３０およびＫｅｒｂｅｒｏｓ２３２サーバなど、他のネットワークサーバと対話して、クライアント許可およびユーザ情報を得る。
【００３３】
図２を参照して記載する例示的なシステムは、リアクティブ型監視およびプロアクティブ型監視の両方をサポートする。プロアクティブ型監視において、ＤＣおよびＤＡＰは、システムを絶えず監視する。ＤＣ、ＤＡＰ、またはＤＳによって異常が検出された場合、ネットワーク管理者が調査を行うための警告が発せられる。リアクティブ型監視モードは、サポート担当者がユーザの不満を診断したいときに用いられる。担当者は、ＤＳの１つから、ある特定のＤＣに、問題を診断するためのデータを収集し分析させる指示を発行することができる。
【００３４】
例示的なシステムは、電源管理に関して、わずかなオーバーヘッドしか課さない。後で記載するプロアクティブ型技術およびリアクティブ型技術は両方とも、非常に小さい帯域幅、ＣＰＵ、またはディスクリソースを消費する。その結果、こうした技術は、バッテリ消費にわずかな衝撃しか与えない。図２に示す例示的なシステムアーキテクチャは、ＤＣ、ＤＡＰ、およびＤＳを使うことによって、本発明の実施形態におけるいくつかの機能をサポートする。サポートされる機能の一部は、切断されたクライアントの発見、切断されたクライアントの補助、パフォーマンスの問題の分離、および非認識アクセスポイントの検出を含む。
【００３５】
本発明のいくつかの実施形態では、ＤＡＰ２０６は、ＡＰ２０８に対するソフトウェア変更であり、より優れたスケーラビリティおよびＡＰのパフォーマンス分析を可能にする。ハードウェアを変更する必要がないので、本実施形態を展開する際の障害は比較的低い。
【００３６】
クライアントマシン２０４およびアクセスポイント２０８は好ましくは、ビーコンおよびプローブを制御する機能を有する。さらに、クライアントマシン２０４は好ましくは、独自にインフラストラクチャネットワークを開始する（すなわち、ＡＰになる）能力、またはアドホック（すなわち、コンピュータ−コンピュータ間）ネットワークを開始する能力を有する。この機能は、現在市場に流通している多くの無線カードによってサポートされる。本発明のいくつかの実施形態は、近くのクライアントまたはアクセスポイントの存在を利用する。ソフトウェア「センサ」を備えた近くのクライアントまたはアクセスポイントを利用することによって、展開コストが低くなる可能性がある。
【００３７】
バックエンドサーバ２１２は好ましくは、データベースを使って、ネットワーク内のアクセスポイントすべての場所を維持する。このような場所データベースは好ましくは、ネットワーク管理者によって維持される。
【００３８】
図２に示す例示的なシステムは、システム内のクライアントおよびＡＰの数に対応することができる。システムは、ＤＳおよびＤＡＰという２つの共有リソースを含む。単一のサーバ診断が潜在的ボトルネックにならないようにするために、好ましくは、システム負荷が増すと追加ＤＳが追加される。さらに、いくつかの実施形態は、個々の各ＤＳが、ＤＣおよびＤＡＰと診断の負担を共有することによって、作業負荷を軽減することを可能にする。ＤＳは、ＤＣおよびＤＡＰが問題を診断することができず、かつ分析がグローバルな視点および追加データを必要とする（例えば、複数のＤＡＰから入手される信号強度情報が、切断されたクライアントの発見のために必要となり得る）場合のみ使われる。
【００３９】
同様に、ＤＡＰは共有リソースなので、ＤＡＰに余分な作業をさせることは、おそらくＤＡＰに関連するすべてのクライアントのパフォーマンスを損ない得る。ＤＡＰに対する負荷を削減するために、本発明のいくつかの実施形態は、最適化技術を利用し、この技術によって、ＡＰは、どのクライアントがＡＰに関連づけられている場合も、アクティブスキャンを実施せず、関連づけられたクライアントが、こうした操作を必要に応じて実施する。ＡＰは、ＡＰのパフォーマンスにごくわずかな影響しか与えない受動監視活動を実施し続ける。どのクライアントも関連づけられていない場合、ＡＰはアイドル状態であり、こうした監視操作を実施することができる。この手法は、ＡＰ周辺の物理的エリアのほとんどが、ＡＰのパフォーマンスを損なうことなく監視されることを保証する。
【００４０】
一実施形態では、ＤＣ、ＤＡＰ、およびＤＳの間の対話は、ＩＥＥＥ８０２．１ｘによって発行されるＥＡＰ−ＴＬＳ証明書を用いて保護される。公認の認証機関（ＣＡ）が、ＤＣ、ＤＡＰ、およびＤＳに証明書を発行する。こうした証明書は、こうしたエンティティの間のすべての通信が相互に認証されることを保証するのに使われる。一実施形態は、正当なユーザによる悪意のある振舞いを検出する既知の技術を含む。
【００４１】
図３に注意を向けると、ここで、ＩＥＥＥ８０２．１１無線ネットワークにおけるパフォーマンスの問題を検出し診断する技術が、本発明の実施形態に従って記載される。クライアント診断３０２、アクセスポイント診断３０４、およびサーバ診断３０６の様々な組合せによって実施される別個の３つのフェーズ、すなわち問題検出フェーズ３０８、問題分離フェーズ３１０、および問題診断フェーズ３１２がある。検出フェーズ３０８は好ましくは、クライアント診断３０２によって実施され、クライアント診断３０２は、２つの軽いコンポーネント、すなわちプロアクティブ型／受動監視コンポーネント３１４およびリアクティブ型診断コンポーネント３１６を備える。監視コンポーネント３１４は、クライアントにおいてバックグラウンドで実行され、診断コンポーネント３１６に、パフォーマンスが低下した接続を検出したときを知らせる。この時点で、診断コンポーネント３１６は、接続を分析し、遅延の分析、すなわち、有線および無線パートにおける遅延の程度、さらに無線パートに関しては、クライアント３１８での遅延、ＡＰ３２０での遅延、ならびに媒体３２２および３２４での遅延の詳細な報告を出力する。ネットワーク問題が起こっていると宣言することについて、監視コンポーネント３１４は保守的であることが望ましい。というのは、間違った警告は、診断コンポーネント３１６を呼び出すからである。このコンポーネントは、オーバーヘッドが小さいので、このコンポーネントの呼出しは、クライアント３１８およびＡＰ３２０のパフォーマンスに些細な衝撃しか与えない。
【００４２】
一実施形態では、ＴＣＰがインターネットにおいて最も広く利用されているトランスポートプロトコルなので、パフォーマンスの問題は、ＴＣＰ接続のために診断される。ＴＣＰ接続ついて、接続のデータおよび肯定応答（ＡＣＫ）パケットを活用することによって、受動診断が遂行される。他のトランスポートプロトコルついて、アクティブプローブまたはパフォーマンスレポート（例えば、ＲＴＣＰレポート）のどちらかを用いて、エンドツーエンドの損失レートおよびラウンドトリップ時間が計算される。
【００４３】
より詳細には、検出フェーズ３０８に移ると、本発明の実施形態は、ネットワークのパフォーマンス問題が、低スループット、高い損失レート、および高遅延など、様々な形で現れ得ると認識している。いくつかの実施形態では、スループットは、問題を検出する基準値として使われない。というのは、スループットは、作業負荷に依存し（すなわち、クライアントのアプリケーションが、高スループットを要求としないかもしれない）、かつトランスポートプロトコルの特定のパラメータ（例えば、ＴＣＰにおける初期ウィンドウサイズ、送信側および受信側のウィンドウサイズ）に依存するからである。代わりに、本発明の実施形態では、パケット紛失レートおよびラウンドトリップ時間が、パフォーマンス問題の検出に用いられる。
【００４４】
ＴＣＰ接続におけるラウンドトリップ時間（ＲＴＴ）を推定するために、本発明の実施形態は、クライアントが送信側であるかどうか調べる。クライアントが送信側の場合、クライアントは、既にＲＴＴを追跡している。クライアントが受信側（ｒｅｃｅｉｖｅｒ）の場合、クライアントは、ヒューリスティックを適用して、ラウンドトリップ時間を推定することができる（例えば、非特許文献１参照）。
【００４５】
損失レートを推定するために、本発明の実施形態におけるクライアント診断３０２は、ヒューリスティックを利用する（例えば、非特許文献２、非特許文献３参照）。クライアント３１８によって送信され受信されるパケットに対して、様々な損失レートが計算される。クライアント３１８によって送信されるデータパケットに対して、損失レートは、最後のＬ個のＲＴＴにおける、送信されるパケットに対する、再伝送されるパケットの比として推定される。この推定機構は、損失レートが不必要に多めに見積もられないように、ＴＣＰ実装が、Ｓｅｌｅｃｔｉｖｅ  ＡＣＫ（ＳＡＣＫ）を用いることを前提とする。これは、いくつかのオペレーティングシステム、例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ、Ｓｏｌａｒｉｓが現在、このオプションをデフォルトでサポートしているので、妥当な前提である。この推定値は、タイムアウトがＴＣＰ接続において起こる場合、実際の損失レートより高い場合があるが、この不正確さは、２つの理由により許容可能である。第１に、ＴＣＰ接続においてタイムアウトが起きた場合、ＴＣＰ接続には、問題が起きており、診断を行うのに値する。第２に、誤りの結果、小さなオーバーヘッドを被る本発明の診断コンポーネントをトリガするだけである。より正確な分析が必要とされる場合、好ましくは、Ａｌｌｍａｎらによって提案されたＬＥＡＳＴ手法が用いられる。
【００４６】
クライアント３１８によって受信されるデータパケットに対して、本発明の実施形態は、以下の手法を用いて、損失の数を推定する。すなわち、開始シーケンス番号が、予期される次のシーケンス番号でないようなパケットが受信された場合、欠けているセグメントは、失われたと見なされる。損失レートは、最後のＬ個のＲＴＴにおいて予期されるパケットの総数に対する損失パケットの比と推定される。予期されるバイト数は、最後のＬ個のＲＴＴの間での最大観測シーケンス番号から最小の番号を引いたものと計算されることに留意されたい。最大セグメントサイズ（ＭＳＳ）は、Ｚｈａｎｇらによって教示されている方法などを用いて推定され、パケット数は、バイト数をＭＳＳで割ることによって推定される。
【００４７】
接続に損失が非常に多いか、または高遅延が起きている場合、監視コンポーネント３１４は、診断コンポーネント３１６をトリガする。ある特定のパケットのＲＴＴが所与の閾値（例えば、２５０ｍｓｅｃ）より多いか、または現在のＴＣＰ  ＲＴＴの何らかの倍数（例えば、２倍）より高い場合、接続は、高遅延が起きていると検出される。一時的に起こる高遅延に対して診断アルゴリズムを呼び出さないようにするために、何らかの変数Ｄ以上のパケットが高遅延を経験している場合のみ、接続はフラグを立てられる。接続は、（伝送され、または受信されたパケットに対する）その損失レートが、ある程度の閾値Ｌ（例えば、５％）より高い場合、損失が多いと分類される。ＤおよびＬは両方とも、書換え可能なパラメータであり、それぞれ、検出コンポーネントの応答性と診断コンポーネントの不必要な呼出しの間の妥協点を表す。つまり、小さな値のＤまたはＬを使うと、遅延／損失のどの変化もすぐに検出されるが、診断コンポーネントを不必要に呼び出す結果にもなり得る。高い値のＤまたはＬを使う場合、応答の遅さの他に、別の問題が起こる。すなわち、十分な数のサンプルが集められる前に、ＴＣＰ接続が終了し得る。このような状況は、短いウェブの転送（short Web transfer）の場合に起こり得る。本発明の実施形態は、ＴＣＰ接続全体に渡って、クライアント３１８とリモートホスト３２６の間の損失レートおよび遅延情報を集約することによって、この問題を緩和する。
【００４８】
ネットワークのパフォーマンス問題が、問題検出フェーズ３０８において検出されると、クライアント３１８にあるＤＣ３０２は、問題分離フェーズ３１０で、それに関連づけられたＤＡＰ３０４と通信して、パスの有線パート３２２における遅延と無線パート３２４における遅延とを区別する。本発明の実施形態によって用いられる、有線パフォーマンス問題と無線パフォーマンス問題を分離するための方法を、図４を参照して説明する。ＤＣが、ステップ４０２で、パフォーマンスの問題をＤＡＰに通知すると、ＤＡＰは次いで、そのクライアントの接続のために、ステップ４０４で、ＴＣＰデータおよびＡＣＫパケットの監視を開始する。ＤＡＰは、ステップ４０６で、ＴＣＰ接続において、クライアントが送信側であるか、それとも受信側であるか判定する。クライアントが送信側の場合、ＤＡＰは、ステップ４０８で、クライアントからリモートホストまでのデータパケットと、対応するＴＣＰ  ＡＣＫパケットの受信時間との差を計算する。この時間差は、有線ネットワークにおいて被る遅延の推定値である。ラウンドトリップ時間の推定値が妥当な値となることを保証するために、好ましくは、ＴＣＰによって利用される様々なヒューリスティック、例えば、Ｋａｒｎのアルゴリズムが、こうしたラウンドトリップ測定値にも適用される（例えば、非特許文献４参照）。ステップ４１０で、ＤＡＰは、この推定値をＤＣに送信し、ステップ４１２で、ＤＣは、ＴＣＰラウンドトリップ時間から、この推定値を差し引いて、遅延の無線パートを判定することができる。クライアントが受信側の場合、一実施形態では、この分析を計算するのに同様の手法が用いられる。すなわち、ＤＡＰは、ステップ４１４で、リモートホストからクライアントへのデータパケットおよび対応するＡＣＫパケットを監視することによって、無線遅延を判定する。ＤＡＰで維持される状態の量は、応答されなかったＴＣＰパケットの数に対応するので、少ないことに留意されたい。この量は、サンプリングによってさらに削減することができる。
【００４９】
図３に戻ると、ＡＰ３２０またはクライアントのプロセッサの過負荷、無線媒体３２４における問題、ＡＰ３２０またはクライアント３１８のドライバまたは他のカーネルの問題など、いくつかの理由による無線パフォーマンスの低下が、クライアント３１８で起こり得る。本発明の実施形態は、問題が無線ネットワークパスにおけるパケット遅延に与える衝撃を観察することによって、こうした問題の影響を定量化する。こうしたパフォーマンスの問題は、クライアント３１８でのパケット遅延、ＡＰ３２０でのパケット遅延、および無線媒体３２４におけるパケット遅延という３つのカテゴリに分かれる。実施形態は、傍受隣接デバイスを用いた遅延推定（Estimating Delay using Eavesdropping Neighbors：ＥＤＥＮ）と称する協働方式を用いる。ＥＤＥＮは、他のクライアントの存在を利用して、上記カテゴリのそれぞれの範囲内で経験される遅延を定量化する。電磁波は、光の速度で進むので、ＲＦ伝播遅延は、クライアントまたはＡＰの遅延と比較してわずかであると仮定して差し支えない。クライアント３１８のパフォーマンス診断コンポーネント３１６は、その問題検出コンポーネント３１４によってトリガされると、近くのクライアントに診断ヘルプを依頼するパケットのブロードキャストを開始する。こうしたパケットを聞いた（受信した）すべてのクライアントは、無差別モード（または「傍受」モード）に切り換わり、ＤＡＰ３０４に、診断を開始するよう依頼する。２００５年１月３１日に出願した整理番号２３１４４１の係属中の米国特許出願「USING A CONNECTED WIRELESS COMPUTER AS A CONDUIT FOR A DISCONNECTED WIRELESS COMPUTER」で論じられている機構などのセキュリティ機構が、こうしたクライアントに対する攻撃を防止するのに利用することができる。ＥＤＥＮでの複数のスヌープクライアントの使用は、以下の頑強性をもたらすことに留意されたい。すなわち、後で論じるＥＤＥＮプロトコル要求および応答を少なくとも１つのクライアントが聞く見込みを、複数のクライアントが高める。
【００５０】
ＥＤＥＮは、ここで図５を参照して説明する２つのフェーズで進行する。第１のフェーズにおいて、クライアント５０４が関連づけられているＤＡＰ５０２が、クライアント５０４での遅延を推定する。ＤＡＰ５０２は、ステップ５０６で、周期的（例えば２秒おき）にクライアント５０４にスヌープ要求パケットを送信する。クライアント５０４は、スヌープ要求パケットを受信すると、ステップ５０８で、スヌープ応答メッセージを使って直ちに返答する。傍受クライアント５１０は、ステップ５１２で、スヌープ要求を聞いた（傍受した）時間をログに記録し、ステップ５１４での、クライアント５０４による、対応するスヌープ応答パケットを送信しようとする第１の試み、すなわち、再伝送ビットがクリアである応答パケットの時間のみが記録される。傍受クライアント５１０は、こうしたパケットのいずれかを入手し損なうと、その要求／応答ペアに対するタイミング値を無視する。記録時間の間の差は、クライアント遅延、すなわち、要求パケットを受信した後の、クライアントにおいて起こるアプリケーションおよびＯＳの遅延である。頑強性のために、スヌープ要求は、好ましくは何度か（例えば２０回）送信される。クライアントおよびＡＰの遅延は、こうしたすべての事例を対象として平均をとられる。
【００５１】
第２のフェーズにおいて、ＡＰ遅延を測定するのに、同様の技術が用いられる。すなわち、クライアント５０４が、ステップ５２０で、スヌープ要求パケットを送信し、ＡＰ５０２が、ステップ５２２で、応答を送信する。傍受クライアント５１０は、ステップ５２１および５２３で、要求および応答時間をログに記録する。クライアント５０４も、ステップ５２４で、こうしたスヌープ要求および応答に対するＡＰまでのラウンドトリップ時間とともに、クライアント５０４が応答を受信しなかった、例えば要求または応答が失われた要求パケットの数を記録する。
【００５２】
クライアントおよびＡＰの遅延は、無線媒体において起こる競合に起因する遅延を含み得る。このような競合に起因する遅延は、妥当な正確さでＥＤＥＮが遅延を推定することを阻止しないことを、実証的研究が示している。
【００５３】
プロトコルの最後で、好ましくは傍受クライアント５１０すべてが、クライアント診断５０４にＡＰおよびクライアントの遅延時間を送信する。クライアントによって報告されるラウンドトリップ時間と、クライアントおよびＡＰでの遅延の合計との間の差は、送信および受信無線リンクにおいてパケットが直面する遅延の合計に近い。クライアント診断５０４は次いで、ネットワーク管理者に、クライアント／ＡＰ／媒体という分類を報告することができる。クライアント診断５０４は、応答されなかった要求パケットのパーセンテージを、無線リンクでのネットワークレベルの損失レートのインジケータとして報告することもできる。
【００５４】
本発明の代替実施形態では、無線アクセスポイントは、上述したＥＤＥＮのステップを実行することによって、ネットワークのパフォーマンス問題を検出する。このような実施形態において、無線アクセスポイントは、損失パケットおよびパケット遅延に対するネットワークトラフィックを監視することができ、さらに、クライアントまたは別のアクセスポイントとのスヌーププロトコルに関与することもできる。アクセスポイントは、隣接クライアントに、プロトコルを傍受するよう通知し、収集された情報を受信して、問題の性質を判定する。
【００５５】
図６に注意を向けると、実装の一実施形態の詳細が示されている。基本アーキテクチャは、クライアント、アクセスポイント、およびサーバ上でそれぞれ実行される、ＤＣ、ＤＡＰ、およびＤＳデーモンからなる。システムは、例えば、標準的な市販の８０２．１１ｂカードとともに、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム上に実装することができる。ＤＳにおいて、デーモンプロセスは、ＤＡＰからの情報を受入する。ＤＳは、ファイルまたはデータベースから、正当なＡＰの一覧を読み出す。ＤＣまたはＤＡＰにおけるコードの構造は好ましくは、ユーザレベルのデーモン６０２ならびにカーネルレベルのドライバ６０４および６０６を備える。こうした部分は、ユーザレベルのデーモン６０２で機能が実現できない場合、またはパフォーマンス上の不利益があまりにも多い場合のみ、カーネルドライバ６０４および６０６にコードが追加されるように構築される。
【００５６】
例示的なシステムには、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおけるＮａｔｉｖｅ  ＷｉＦｉドライバのような、ミニポートドライバ６０４および中間ドライバ（ＩＭドライバ）６０６という２つのカーネルドライバがある。ミニポートドライバ６０４は、ハードウェアと直接通信し、例えばパケットの送信／受信、チャネルの設定などの基本機能を提供する。ドライバ６０４は、関連づけ、認証などのような機能がＩＭドライバ６０６において扱うことができるように、十分なインターフェースを公開する。ＩＭドライバ６０６は、現在のチャネル、伝送レベル、電源管理モード、ＳＳＩＤなど、様々なパラメータを照会する、（ロードにより公開される）いくつかのインターフェースをサポートする。パラメータの設定を可能にするだけでなく、この照会は、ユーザレベルのコードが、アクティブスキャンを要求し、具体的なＳＳＩＤと関連づけ、パケットを取り込むことなども可能にする。概して、この照会は、ユーザレベルのコードにかなりの柔軟性および制御をもたらす。
【００５７】
多くの操作がＩＭドライバ６０６に既に存在するにも関わらず、本発明の実施形態は、特定の機能を公開し特定のプロトコルのパフォーマンスを向上させるための変更を用いる。ミニポートドライバ６０４は好ましくは、ある特定のタイプのパケットをＩＭドライバ６０６に公開するように最小限変更される。ＩＭドライバ６０６において、好ましくは以下のサポートが追加される。すなわち、パケットヘッダおよびパケットの取込み、受信されたパケットからのＲＳＳＩ（Received Signal Strength Indicator：受信信号強度表示信号）値の格納、ＡＰ情報の追跡、ならびにプロトコル効率のためのカーネルイベントのサポートである。こうした変更が、次にさらに詳しく論じられる。
【００５８】
パケットヘッダおよびパケットの取込み：本発明の実施形態は、特定のパケットまたはパケットヘッダのみが取り込まれるようなフィルタ、例えば、特定のＭＡＣアドレス、パケットタイプ、パケットサブタイプ（例えば、管理パケットおよびビーコンパケット）などに基づくフィルタが設定されることを可能にする。
【００５９】
受信されたパケットからのＲＳＳＩ値の格納：本発明の実施形態は、受信されたすべてのパケットのＲＳＳＩ値を入手し、（ＭＡＣアドレス上で索引づけされる）各隣接デバイスからのＲＳＳＩ値を追跡する、ＮｅｉｇｈｂｏｒＩｎｆｏテーブルと呼ばれるテーブルを維持する。指数関数的に重みづけされた平均が、例えば、０．２５というある程度の重み係数を与えられた新しい値とともに維持される。
【００６０】
ＡＰ情報の追跡：ＮｅｉｇｈｂｏｒＩｎｆｏテーブルにおいて、いくつかの実施形態は、ある特定のＭＡＣアドレスからパケットが聞かれた（受信された）チャネル、（ビーコンからの）ＳＳＩＤ情報、およびデバイスがＡＰであるか、それともステーションであるかを追跡する。
【００６１】
プロトコル効率のためのカーネルイベントサポート：好ましくは、カーネルとユーザレベルのコードの間で共有されるイベントが追加される。カーネルは、「興味のある」イベントが起こると、このイベントをトリガする。このことは、プロトコルのいくつかを、ポーリングベースではなく中断駆動型にさせる。
【００６２】
さらに、好ましくは、上で論じた情報を入手しクリアするためにいくつかのｉｏｃｔｌが追加される。
【００６３】
本発明の実施形態において、診断デーモン６０２は、デバイス上で実行され、情報を集め、かつ、上で論じた様々な機構を実装する。このデバイスは、ＡＰである場合、診断情報を、ＤＳおよびＤＣと伝達し合う。デバイスは、ＤＣに過ぎない場合、デバイスに関連づけられたＡＰと通信して、診断情報を伝える。ＤＣ上の診断デーモンは、定期的な間隔、例えば３０秒おきに、カーネル６０８から、現在のＮｅｉｇｈｂｏｒＩｎｆｏテーブルを入手する。新しいノードが見つかった場合、または既存のデータが大幅に変化した（例えば、クライアントのＲＳＳＩ値が、２という係数より大きく変化した）場合、こうした情報は、ＤＡＰに送信される。ＤＡＰは好ましくは、ＭＡＣアドレスにおいて索引づけされた同様のテーブルも維持する。ただし、ＤＡＰは、切断されたクライアントおよびＡＰについての情報をＤＳに送信するだけである。あるいは、ＤＳが、システム内のすべてのクライアント用のアップデートの入手を中止し、クライアントのスケーラビリティを低下させる。ＤＡＰは、ＡＰについての新しいまたは変更された情報をＤＳに周期的に（例えば、３０秒）送信する。さらに、ＤＡＰは、切断されたクライアントＤについての何らかの保留情報をもっている場合、切断されたクライアントが適切なときにサービスを受けることができるように、ＤＳに直ちに知らせる。ＤＣからＤＡＰへの、およびＤＡＰからＤＳへのすべてのメッセージは好ましくは、ＸＭＬメッセージとして送信される。ＤＣからのサンプルメッセージ形式が、以下に示される（タイムスタンプは消去してある）。
【００６４】
【表１】
0004733489.tif 000002
【００６５】
このサンプルメッセージが示すように、ＤＣは、接続された他のクライアント、ＡＰ、および切断されたクライアントについての情報を送信する。このような各クラスのエンティティごとに、ＤＣは、マシンのＭＡＣアドレスを、ＲＳＳＩ、ＳＳＩＤ、および特定のデバイスがオーバーヒアーされたチャネルを示すチャネルビットマップとともに送信する。
【００６６】
本発明の原理を適用することができる多くの可能な実施形態を検討したが、図面に関連して本明細書において説明した実施形態は、例示のみを意図しており、本発明の範囲を限定するものととられるべきではないことが理解されるべきである。例えば、本発明の精神から逸脱することなく、例示された実施形態は、構成および細部において変更できることを当業者は理解するであろう。本発明は、ソフトウェアモジュールまたはコンポーネントによって説明したが、ハードウェアコンポーネントで等価に置き換えることができることを当業者は理解するであろう。したがって、本明細書に記載した本発明は、このようなすべての実施形態が添付の請求項およびその等価物の範囲内であり得ることを企図している。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施形態に従って使われる、コンピューティングデバイスの例示的なアーキテクチャを示す簡略化した概略図である。
【図２】本発明の実施形態による、ネットワークのパフォーマンス問題を検出し診断する例示的な無線ネットワークを示す図である。
【図３】本発明の実施形態による、ネットワークのパフォーマンス問題を検出し診断する例示的なアーキテクチャを示す図である。
【図４】本発明の実施形態による、無線ネットワークにおける遅延を計算する方法を示すフロー図である。
【図５】本発明の実施形態による、隣接無線デバイスを用いて無線ネットワーク通信の問題を共同で診断する方法を示すフロー図である。
【図６】本発明の実施形態による、無線通信問題の診断に使われるソフトウェアコンポーネントを示す概略図である。
【符号の説明】
【００６８】
２０２，３０２  クライアント診断
２０４  無線クライアントマシン
２０６，３０４  アクセスポイント診断
２０８，３２０  アクセスポイント
２１０，３０６  サーバ診断
２１２  バックエンドサーバ
２２０  レガシーアクセスポイント
２２１  データベース
２３０  ＲＡＤＩＵＳ
２３２  Ｋｅｒｂｅｒｏｓ
３１４  プロアクティブ型／受動監視コンポーネント
３１６  リアクティブ型診断コンポーネント
３１８  クライアント
３２２，３２４  媒体
３２６  リモートホスト
【図１】
0004733489.tif 000003
【図２】
0004733489.tif 000004
【図３】
0004733489.tif 000005
【図４】
0004733489.tif 000006
【図５】
0004733489.tif 000007
【図６】
0004733489.tif 000008