(57)【特許請求の範囲】
【請求項１】
コンピューターによりホストされる第１のエンティティと、
前記第１のエンティティ及び複数の通信経路と通信するインターフェースと、
前記通信経路を介した前記第１のエンティティと１つ又は複数の他のエンティティとの間の通信を監視し、
第１の通信経路を介した前記第１のエンティティと第１の他のエンティティとの間の第１の通信の第１の性能レベルの指示を含む第１の提出物を作成し、
前記第１の提出物をＱＯＳ（サービス品質）サービス装置へ送信し、
前記第１のエンティティと第２の他のエンティティとの間の第２の通信経路の第２の性能レベルであって、前記第１の提出物に部分的に基づいて前記ＱＯＳサービス装置により決定される、第２の性能レベルに関して、前記ＱＯＳサービス装置に問い合わせ、前記第１の通信経路は前記第２の通信経路から部分的に切り離され且つ前記第２の通信経路と部分的に重なる
ように構成される、パス監視コンポーネントと、
前記ＱＯＳサービス装置から前記第２の通信経路の前記第２の性能レベルの指示を受信するように構成される、パスアセンブリーコンポーネントと
を備え、
前記パスアセンブリーコンポーネントは、前記第１のエンティティの通信のための、一次的な通信経路及び二次的な通信経路を選択するようにさらに構成され、前記選択は複数の通信経路に対応する複数の決定された性能レベルに基づき、前記パスアセンブリーコンポーネントは、前記第１のエンティティの通信を前記一次的な通信経路へ向け、しきい値を下回る前記一次的な通信経路のＱＯＳ性能レベルに応答して前記第１のエンティティの通信を前記二次的な通信経路へ向け直すようにさらに構成されるコンピューター。
【請求項２】
前記パスアセンブリーコンポーネントは、前記第１の通信経路の前記第１の性能レベルに少なくとも部分的に基づいて、前記第１のエンティティの音声デコーダーのデジッタバッファーを調整するようにさらに構成される請求項１に記載のコンピューター。
【請求項３】
前記パスアセンブリーコンポーネントは、前記第１の通信経路の前記第１の性能レベルに少なくとも部分的に基づいて、前記第１のエンティティの前方誤り訂正コンポーネントの冗長性の数を調整するようにさらに構成される請求項１に記載のコンピューター。
【請求項４】
前記パスアセンブリーコンポーネントは、前記第２の通信経路の前記第２の性能レベルの指示を表示するようにさらに構成される請求項１に記載のコンピューター。
【請求項５】
前記パスアセンブリーコンポーネントは、複数の通信経路の複数の性能レベルに関して前記ＱＯＳサービス装置に問い合わせ、前記複数の通信経路のうち前記第１のエンティティの通信にとって最適な性能レベルを備える通信経路を選択するようにさらに構成される請求項１に記載のコンピューター。
【請求項６】
前記パスアセンブリーコンポーネントは、前記第１の通信経路のＱＯＳ性能レベルに少なくとも部分的に基づいて前記第１のエンティティの通信コンポーネントを調整するようにさらに構成される請求項１に記載のコンピューター。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス品質（ＱＯＳ）ベースのシステム、ネットワーク、及びアドバイザーに関する。
【背景技術】
【０００２】
[0001]ほとんどの通信システムはたいていの時においてよく機能するが、時々、その性能がある程度予測不可能性になる。システムの複雑さの程度が増加するにつれて、システムの１つ又は複数の部分が不満足な性能を経験し得る可能性が増加する。たとえば、特定のエンティティ（ここではエンティティＡ）が、ＰＳＴＮ（公衆交換電話網）ネットワーク上で電話を使用する別のエンティティ（ここではエンティティＢ）に電話する特定のコンピューター上のＶｏＩＰ（ボイスオーバーインターネットプロトコル）クライアントであると仮定する。前述の外見上単純な処理は、複数のサーバーと複数のネットワークセグメントを伴う場合がある。より具体的には、エンティティＡは最初にＶｏＩＰプロバイダーにおいてをメディアサーバーに到達する必要があり得る。そうするために、ＶｏＩＰプロバイダーにおいてＮＡＴ（ネットワークアドレス変換）ファイアウォールを通過できるように、エンティティＡはゲートウェイサーバー又は中継サーバーの助けを求める必要があり得る。メディアサーバーは、さらに、システムが特定の呼にサービスを提供するために適切なメディアサーバーを使用するように選択することができるように、１つ又は複数のロードバランシング装置の後ろにあってもよい。次に、メディアサーバーは、（エンティティＡから生じる）ＶｏＩＰパケットをＰＳＴＮゲートウェイサーバーに対して受け入れ可能な形式に変換する必要があるかもしれず、ＰＳＴＮゲートウェイサーバーはさらに、ＰＳＴＮネットワークを介して、音声パケットによって運ばれる音声信号を電話へと配信する。
【０００３】
[0002]したがって、上述の特定の処理は少なくとも複数の装置のサービスを必要とする：１）ゲートウェイサーバー、２）ロードバランシング装置、３）メディアサーバー、及び４）ＰＳＴＮゲートウェイサーバー。さらに、関与する音声信号はまた、少なくとも次のネットワークセグメントを横断する：１）クライアントからゲートウェイサーバーへのネットワークセグメント、２）ゲートウェイサーバーからロードバランシング装置へのネットワークセグメント、３）ロードバランシング装置からメディアサーバーへのネットワークセグメント、及び４）メディアサーバーからのＰＳＴＮゲートウェイサーバーへネットワークセグメント。ネットワークセグメントのうちのいくつか（例えば、ゲートウェイサーバーとロードバランシング装置との間のネットワークセグメント）は非常に短くすることができる。さらに、これらのネットワークセグメントは、大きな性能の問題が発生する可能性が低くなるよう、同じネットワークスイッチ上にある可能性さえある。また、ネットワークセグメントが、通信経路（すなわち、バス又は他の媒体）、エンティティ、装置、又はそれらの組み合わせのうちの一部を含んでもよいことは注目に値するかもしれない。
【０００４】
[0003]いくつかの他のネットワークセグメント（例えば、クライアントとゲートウェイサーバーとの間、及びロードバランシング装置とメディアサーバーとの間のネットワークセグメント）は非常に長くなってもよく、複数のネットワークルーター及びスイッチを含んでもよい。また、ＶｏＩＰパケットは、他のデータパケット（例えば、ウェブブラウジング、電子メール、ファイル転送、及び／又は、メディアストリーミングから生じるデータ・パケット）と競合する必要があるかもしれない。さらに、エンティティＡは、弱い無線信号、フェージング、及び／又は干渉に悩まされる可能性のある８０２．１１ＷｉＦｉネットワーク上にあるかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0004]上記の問題（及び／又はその他の問題）のいずれも、エンティティＡとエンティティＢとの間の通信に対して性能レベルの低下を引き起こす可能性がある。例えば、時々、大量のネットワークトラフィックが、ネットワーク、ネットワーク内の特定のノード、又はネットワーク内の特定のパス又はネットワークセグメントをダウンさせ得る。他の状況において、又はそれに加えて、システム内の１つ又は複数のサーバー（又は他の装置）はオーバーロードする可能性がある。多数の他の要因もまた、典型的なネットワークの性能に影響を与える可能性がある。たとえば、ＷｉＦｉネットワーク及び／又は誤動作しているサーバー、ルーターなどのノイズもまた、ネットワーク又はその一部の性能の低下を引き起こす可能性がある。
【０００６】
[0005]ネットワークの様々な性能レベルは、他のものよりも、いくつかのアプリケーション及び／又はサービスに影響を与える。例えば、（ネットワーク上のエンティティ間の低遅延の通信を要求する）ＶｏＩＰアプリケーションは、それほど頻繁にデータを転送しないアプリケーションや、性能の問題から回復するためにデータを再送信する余裕があるアプリケーションよりも、ネットワーク性能の変動に対していくぶん影響を受けやすい。インスタントメッセージ、ＶｏＩＰビデオ会議、リモートデスクトップ、及びテレビ会議アプリケーション／サービスは、これらのネットワークの性能に敏感なアプリケーションのうちのいくつかを表す。
【課題を解決するための手段】
【０００７】
[0006]以下は、本開示の主題のいくつかの態様の基本的な理解を提供するために簡略化された概要を示す。この概要は、開示された主題の広範な概要ではなく、そのような主題の重要な／重大な要素を特定したりそのような主題の範囲を線引きしたりすることを意図していない。この概要の目的は、後に提示されるより詳細な説明の前置きとして、簡略化した形でいくつかの概念を提示することである。
【０００８】
[0007]本明細書には、サービス品質（ＱＯＳ）ベースのサービスアドバイザー・システムのための手法や技術が開示され、それらは、いくつかの実施例において、２つ以上のエンティティ及び／又はエンティティが通信する２つ以上の通信経路を含む通信システムを動作させる。このようなシステムでは、特定の通信に関与する特定の通信経路は、１つもしくは複数のネットワークセグメント、及び／又は１つもしくは複数のサーバーもしくは他の装置を含んでもよい。これらの実施例のＱＯＳサービスアドバイザーは、通信しているエンティティから、特定の通信に関与する通信路の性能レベルについての指示を含む提出物（submittals）を受信する。ＱＯＳサービスアドバイザーはまた、これらの提出物から、通信に関与するネットワークセグメント、エンティティ、及び／又は装置を決定する。提出物に対応する通信経路は部分的にばらばらであり、部分的に（他の提出物に対応するかもしれない）他の通信経路と重なっている。サーバーは、通信経路の個々のネットワークセグメント、コンポーネント、サーバー、装置などの決定された性能レベルの指示を決定し、次いで出力するために、複数の提出物を使用することができる。このように、ＱＯＳサービスアドバイザーはまた、他の通信経路の性能レベルを予測するために、比較的低い性能に苦しんでいるシステムのネットワーク・セグメントの周りで通信をリルートするために、並びに、通信コンポーネント及び／又はアルゴリズムを調整して（例えば、前方誤り訂正レベルを増加させ、及び／又はデジッタ（de-jitter）バッファーのサイズを大きくする）システムを介した通信のサービス品質を向上させるために、不十分にプロビジョニングされたネットワークセグメント、コンポーネント、サーバー、装置などのトラブルを解決するために使用することができる。
【０００９】
[0008]上記及び関連する目的を達成するために、いくつかの例示的な態様は、以下の説明及び添付の図面に関連して本明細書に記載される。これらの態様は、開示された主題が実施され得る様々な方法を示しており、そのすべては、開示された主題の範囲内にあることが意図される。他の利点及び新規な特徴は、図面と併せて考慮することにより以下の詳細な説明から明らかになる。
【００１０】
[0009]詳細な説明は添付の図面を参照して説明される。図面において、参照番号の一番左の数字はその参照番号が最初に現れる図面を示す。異なる図面において同じ参照番号を使用することは、類似の又は同一の項目を示す。
【図面の簡単な説明】
【００１１】
【図１】[0010]ネットワークの例示的な概略図である。
【図２】[0011]ＱＯＳベースのルーティングサービスが実施されるネットワーク環境の例示的な概略図である。
【図３】[0012]ＱＯＳベースのクライアント／サーバールーティングシステムの例示的なブロック図である。
【図４】[0013]ＱＯＳベースのクライアント／サーバーシステムを使用して通信をルーティングする方法の例示的なフローチャートである。
【図５】[0014]ＱＯＳベースのクライアントアプリケーションを使用して通信をルーティングする方法の例示的なフローチャートである。
【図６】[0015]ＱＯＳベースのサーバーアプリケーションを使用して通信をルーティングする方法の例示的なフローチャートである。
【発明を実施するための形態】
【００１２】
[0016]本明細書では、ネットワーク環境内のピアと他のエンティティとの間の通信を処理するツールについて記載される。より具体的には、本明細書では、クライアントがネットワーク内のさまざまな通信経路のＱＯＳ性能レベルを測定するサービス品質又はＱＯＳベースのサービスアドバイザーシステムが開示される。クライアントはまた、結果として得られる情報をサーバーへ提出する。サーバーは、ＱＯＳ情報を受信し、部分的にばらばらでありクライアントがＱＯＳ性能レベルを報告した通信経路と部分的に重なっている通信経路のＱＯＳ性能レベルを決定する。サーバーはまた、これらのばらばらな／重なった通信経路についての決定されたＱＯＳ性能レベルの指示を出力する。いくつかの実施例のＱＯＳサービスアドバイザーは、システムを介した通信のサービス品質を向上させるために、不十分にプロビジョニングされたネットワークセグメント及び／又はサーバーのトラブルを解決するため、新たな通信経路の性能レベルを予測するため、低い性能を示す通信経路セグメントの周りで通信をリルートするため、並びに、通信アルゴリズムを調整する（例えば、前方誤り訂正レベルを増加させ、及び／又はそのような機構を有するシステムのデジッタ（de-jitter）バッファーのサイズを大きくする）ために使用することができる。
【００１３】
[0017]より具体的には、本明細書は、さまざまなエンティティが決定されたＱＯＳ性能レベルに基づいて通信をルーティングするネットワークによってホストされるＱＯＳアプリケーションの実例を開示している。本明細書はまた、そのような決定されたＱＯＳ性能レベルに従って様々なホストされたエンティティが通信をルーティングするネットワークを開示している。さらに、本明細書は、ＱＯＳ性能レベルを測定し、測定されたＱＯＳ性能レベルから、ネットワークを横断する様々な通信のためのルートを組み立てるクライアント／サーバーシステムを開示する。
【００１４】
[0018]さらに、本明細書は、ネットワーク内及び／又はネットワーク間で通信をルーティングするための様々なＱＯＳベースの方法を開示する。たとえば、本明細書は、クライアントがＱＯＳ性能レベルを測定し、サーバーへ測定値を送信する方法を開示している。別の開示された方法では、クライアント（又はさらに別のクライアント）は、部分的にばらばらであってクライアントが測定されたＱＯＳ性能レベルを提出した対象の通信経路と部分的に重なる通信経路について、決定されたＱＯＳ性能レベルを得るためにサーバーに問い合わせをする。クライアントは、ネットワークのＱＯＳ情報を使用して、その通信アルゴリズムにおけるパラメーター（例えば、前方誤り訂正アルゴリズムやデジッタバッファーレベルで使用される冗長性の数）を調整することができ、これにより、エンドユーザーが経験するＱＯＳは改善され得る。本明細書によって開示される別の方法は、サーバーが、クライアントによって提出された測定されたＱＯＳ性能レベルから、部分的に切り離されており測定されたＱＯＳ性能レベルをクライアントが送信した対象である通信経路と部分的に重なる通信経路についてのＱＯＳ性能レベルを決定することを含む。
【００１５】
[0019]他の開示された方法において、ＱＯＳベースのルーティングシステムはサーバー及び１つ（又は複数）のクライアントを含み、それらは、本明細書に開示される方法及びその均等物の様々な態様を含む。また、本明細書は、実行されるとコンピューターに本明細書に開示された方法及びその均等物を実行させるコンピューター実行可能命令を格納する様々なコンピューター読み取り可能な記憶媒体を開示している。
【００１６】
[0020]図１は、通信システム又はネットワーク１００の例示的な概略図を示す。図１によって示されるように、ユーザー１０２ＡとＢのペアは、アプリケーション１０８を使用しつつさまざまな通信１０６Ａ及びＢを交換するために、コンピューター１０４Ａ及びＢ（又は他のコンピューティング装置）のペアを介してネットワーク１００を使用する。図１は2人のユーザー１０２とその間の１つの通信経路のみを有する特定のネットワーク１
００を示すが、多くのネットワーク１００は、多数のユーザー１０２によって使用され、多数のネットワークセグメントとサーバー（及び他の装置）を含んでもよく、それらは他のネットワークを含み又は他のネットワークと通信してもよい。図１には示されていないが、ネットワーク１００は、ユーザー１０２間の通信１０６Ａ及びＢの転送を容易にする、モデム、ルーター、サーバー、ゲートウェイなどのさまざまな通信及びデータ処理装置を含んでもよい。例えば、ネットワークベースのゲームアプリケーションにおけるプレイが示すように、１つのコンピューター１０４Ａは、コンピューター１０４Ｂへユーザー１０２Ａから制御入力を伝達する通信１０６Ａを送信することができる。これに応答して、コンピューター１０４Ｂは、更新されたグラフィックデータを備えた通信１０６Ｂを、表示及びユーザー１０２Aからの制御入力の効果を伝えるためにコンピューター１０４Ａに返してもよい。
【００１７】
[0021]これらの通信１０６Ａ及びＢはネットワーク１００を横断するので、ネットワーク１００及びその部分は、ＱＯＳサービス１１０が測定するスループット、データ損失率、遅延などの基準によって特徴付けられる特定の性能レベルで動作する。また、ＱＯＳサービス１１０は、測定されたＱＯＳ性能・レベルに基づいて、ネットワーク１００を介して（及びネットワーク１００へ／から）通信１０６Ａ及びＢをルーティングする。現時点において、ＱＯＳサービス１１０がサーバー１１２及び／又は１つもしくは複数のコンピューター１０４によってホストすることができることは注目に値するかもしれない。また、ＱＯＳサービス１１０は、特定のネットワークによって動作させることができもしくは特定のネットワーク内に含めることができ、又は特定のネットワークから分離することができる。さらに、又は代替的に、ＱＯＳサービス１１０は、ＩＳＰや他の組織（例えば、企業）によって所有され、動作され、又は制御され得る。
【００１８】
[0022]図１に示す例示的なネットワーク１００において、ユーザー１０２は、ネットワーク１００及びコンピューター１０４を介して互いにインタラクティブなゲームをたまたまプレイしている。このように、ユーザー１０２は２つのコンピューター１０４の間でストリーミングされるべき情報（すなわち、通信１０６Ａ及びＢ）をもたらす。しばしば、ユーザー１０２は、リアルタイムの経験をシミュレートするためにインタラクティブなゲームを望む。
【００１９】
[0023]ユーザー１０２のこれらの希望を達成するために、ネットワーク１００は、インタラクティブゲームに含まれるものに似た現実世界の経験に関連付けられるペース及び情報コンテンツをシミュレートするように選択された速度及び待ち時間で、これらの通信１０６Ａ及びＢをユーザー１０２（すなわち、それぞれのコンピューター１０４）へストリーミングするよう努める。したがってインタラクティブなゲームはリアルタイムで実行するか又は発生すると言われる。「リアルタイム」という語はしたがって主観的である。より具体的には、「リアルタイム」であると考えられるものは、ユーザー１０２の希望、特定のネットワーク１００の能力、これらの特定のユーザー１０２（他のネットワークから利用可能な能力に関して知らされてもよいし知らされなくてもよい）に知られている能力などによって部分的に決定される。それにもかかわらず、ネットワーク１００及びコンピューター１０４の能力（及び制限）は、しばしば、リアルタイムの経験をシミュレートしているとユーザー１０２が主観的に感じるものを提供するために、全体のネットワーク１００がユーザー１０２の入力と知覚に十分に対応するインタラクティブな経験を提供することができるかどうかを判断する。通信経路１００が、帯域不足、過度のパケットロス（バースト又はそれ以外の場合）、配信における長時間の遅延、配信待ち時間（ジッター）の過度の変化、不安定性などに苦しんでいる場合は、インタラクティブな経験が低下することがある。
【００２０】
[0024]したがって、ネットワーク１００の構成を考慮すると、ネットワーク１００がリアルタイムのシミュレーションを配信するか否かは、ネットワークが現在利用可能な他のネットワークよりもその基本的な能力を活用する傾向があるか否かに依存する。結果として、ユーザーがリアルタイムであると見なすこれらのネットワーク１００は、ユーザー１０２によって認識されるインタラクティブな経験の中断を最小限にする傾向がある。そうするために、本明細書に開示されるネットワーク１００などのリアルタイムのネットワークは、通常、それらが満たすか又は上回るように動作する選択されたサービス品質（ＱＯＳ）を有する。多くの場合、ユーザー１０２は、待ち時間、パケット（又はデータ）損失率、帯域幅、スループットなどの特定の性能パラメーター（その多くは通信１０６Ａ及びＢに関連付けられる）の観点からＱＯＳレベルを指定する。本明細書は、（ばらばらであり／ＱＯＳ性能レベルが測定された通信経路と重なる通信経路を別にすれば）測定されたＱＯＳ性能レベルから決定されるＱＯＳ性能レベルに基づいて通信１０６Ａ及びＢをルーティングすることによって、ネットワーク１００の性能を（リアルタイムに又はその他の方法で）向上させる技法及び技術を開示している。
【００２１】
[0025]ＱＯＳサービスアドバイザーは、目標のアプリケーションにとって好ましい性能・レベルで通信路へ通信をルーティングする。代替的に、コンピューター１０４は、ＱＯＳ性能レベルについての結果として得られた知識を使用して、アプリケーションによって使用される通信アルゴリズムのパラメーターを調整することができる。例えば、コンピューター１０４内のＱＯＳサービスアドバイザーは、通信セッション中に発生することがあるバーストパケットロスに対して通信を保護できるように、前方誤り訂正（ＦＥＣ）アルゴリズムのパラメーターを選択したレベルに調整することができる。代替的に、又はそれに加えて、ＱＯＳサービスアドバイザーは、通信に関与する特定の通信経路上のパケット配信遅延の変化に対抗するためにバッファーが十分な大きさになるように、デジッタバッファーのサイズを増やすことができる。このように、（ＦＥＣ復号化、デジッタバッファーのサイズ変更、又は他の調整が適用されたため）ユーザーの主観的なインタラクティブな経験を向上させることができる。
【００２２】
[0026]さらに、ユーザー１０２は、リアルタイムの経験を提供しようとする他のアプリケーション１０８（本明細書において完全に列挙するにはあまりにも多数である）を使用したいと思うかもしれない。たとえば、ユーザー１０２は、しばしばサーバーや他のコンテンツソースから、多くの種類の音声、視覚、音声／視覚、及び他のコンテンツをストリーミングすることを望む。さらに、図１によって示されるネットワーク１００が主観的に評価されたリアルタイムの性能と一貫性のある能力を提供する一方、ネットワーク１００はまた、比較的静的な情報（例えば、テキストファイル、カンマ区切りのファイル、ゆっくり更新される情報など）を交換するものなどの、非リアルタイムアプリケーション１０８の改善された能力を提供する。
【００２３】
[0027]図２は、ＱＯＳサービス１１０（図１を参照）が実施されるネットワーク環境２００の例示的な概略図を示す。ネットワーク環境２００は、2つのメッシュネットワーク２０２及び２０４と、（ネットワーク環境２００内の様々な位置に配置され得る）ルーター２０６などの様々なルーティング装置と、メッシュネットワーク２０２及び２０４内のさまざまなエンティティ間の通信をルーティングする（及び／又はそれらと通信する）ソフトウェアとを含む。多くのメッシュネットワーク２０２及び２０４は、ネットワークを構築するコストを節約するために（ネットワーク構築のコストはしばしばネットワークの枝の長さと相関している）階層的な木の形式をとるが、それにもかかわらず、他のネットワークは、ネットワークのユーザー間の情報のより効率的かつ柔軟なルーティングを可能にするために、メッシュ形式をとってもよい。メッシュネットワーク２０２及び２０４は、通常、ユーザー１０２が様々なサービス、情報などを要求し受信するさまざまなサーバー２０８を含む。ユーザー１０２は、これらの機能を実行するために、様々なコンピューティング装置及び／又は通信装置を使用する。このような情報交換に関与する通信セッションを通じて、様々なルーター、ネットワークセグメント、サーバーは、ユーザー間の通信を容易にするために用いることができる。図２は、コンピューター２１０とともにこれらの様々なエンドユーザー装置を示す。
【００２４】
[0028]さらに、メッシュネットワーク２０２及び２０４は、種々の方法で組織することができる。例えば、メッシュネットワーク２０４は、企業のサーバー２０８及びコンピューター２１０を含む。したがって、メッシュネットワーク２０４の様々なサーバー２０８は、企業の組織体系を図らずも反映する。その結果、最上位のサーバー２０８は、企業の本社サーバー２０８の１つかもしれない。メッシュネットワーク２０４内の他のサーバー２０８は、企業の様々な支店、子会社、製造拠点、オフィスなどを表してもよい。対照的に、インターネットサービスプロバイダー（ＩＳＰ）はメッシュネットワーク２０２を所有する。したがって、メッシュネットワーク２０２の様々なサーバー２０８は、ＩＳＰによってサービス提供される様々な地理的エリア、領域などからのサーバーを含み、それらは地理的な階層に配置される。もちろん、他の階層的なスキームは本明細書の開示の範囲内に含まれる。
【００２５】
[0029]ユーザー１０２（図１参照）に関して、彼らはそれぞれ、通常、コンピューター２１０のうちの１つに関連付けられる。これらのコンピューター２１０は、サーバー２０８、並びに、メッシュネットワーク２０２及び２０４内のどこでも及びそれらと通信する位置においてユーザー１０２が情報及びサービスにアクセスすることを可能にするホストアプリケーション及び他のソフトウェアと通信する。メッシュネットワーク２０２及び２０４の全体にわたって、様々なエンティティ２１２（ソフトウェアオブジェクト、プログラム、アプリケーション、モジュール、ハードウェア、ユーザーなど）が装置２０８、２１０などのさまざまな部分によってホストされる。したがって、これらのエンティティ２１２は、リアルタイムかどうかにかかわらず、通信１０６（図１を参照）を交換する。
【００２６】
[0030]現時点において、また、メッシュネットワーク２０２及び２０４が図面において階層（通信は階層において「上」及び「下」の垂直方向にのみ流れるように示されてもよい）として示される一方、その中でホストされる様々なエンティティ２１２は、メッシュネットワーク２０２及び２０４上の上下以外の他の場所でエンティティ２１２と通信することに留意することは有用であるかもしれない。言い換えると、メッシュネットワーク２０２及び２０４上に存在するエンティティ２１２は、ピアツーピア、水平、及び他の余分な階層的通信経路を使用することができる。その結果、多くの状況では、複数の通信経路が任意の2つのエンティティ２１２の間に存在し得る。
【００２７】
[0031]続けて図２を参照すると、エンティティ２１２のいくつか又はすべては、メッシュネットワーク２０２及び２０４上で互いを検出し見つけるかもしれない。より具体的には、（ピアとして動作する）さまざまなエンティティ２１２は、ＡＳＩＤ（ネットワークプロバイダーのＡＳ番号）、ＰＩＤ（ピアＩＤ）、（Ｐ４ＰフレームワークにおいてＰ２Ｐアプリケーションのプロバイダーのポータルによって提案されるような）ピアの位置に関する小領域情報、及び、適切なプロトコルを介して他のエンティティ２１２に関連付けられるＬＯＣ（地理的な位置）を得ることができる。代替的には、エンティティ２１２は、メッシュネットワーク２０２及び２０４内の他のエンティティ２１２の存在を検出することができ、また、ＤＳＮ問い合わせを実行することにより（又は他の限定的でない手法や技術を介して）そのような他のエンティティ２１２を知ることができる。
【００２８】
[0032]他のエンティティ２１２を識別するために使用される手法や技術にかかわらず、１つのエンティティ２１２が別のエンティティ２１２と通信することを望む場合、送信エンティティ２１２は、受信エンティティへの通信経路を確立する。もちろん、通信経路は、１つもしくは複数のルーター２０６及び／又は１つもしくは複数のサーバー２０８を含んでもよい。
【００２９】
[0033]様々な実施例によれば、送信エンティティ２１２は、ＱＯＳサービス１１０（図１を参照）に対して、確立された通信経路１０６及び／又は他の通信経路１０６上で自身が観察したＱＯＳ性能レベルを提示することができる。上述のように、通信経路は、複数のサーバー、ネットワーク又は通信経路セグメントなどを含んでもよい。したがって、これらの様々な経路セグメントの性能レベルを決定することの一部として、ＱＯＳサービス１１０は、通信経路におけるサーバーの組、経路セグメントなどを識別することができる。ＱＯＳサービス１１０は、送信エンティティ２１２から又はネットワークデータベースから情報を取得することにより、これらの経路セグメントを識別することができる。一方、ＱＯＳサービスは、（さまざまな通信経路に関して）さまざまなエンティティから提示物を受信し、対応する通信に関与する経路セグメント、装置、エンティティなどを識別し、関係する経路セグメント、装置、エンティティなどについての対応する性能レベルを決定し続けることができる。ＱＯＳサービス１１０が追加の提出物を受信すると、対応する経路セグメントの性能レベルを決定するその能力はそれに応じて増加する。これらの決定された経路セグメントの性能レベルから、ＱＯＳサービスは、メッシュネットワーク２０２及び２０４における様々な通信経路の性能レベルを予測することができる。
【００３０】
[0034]様々なエンティティ（例えば、クライアント）は、それ自体と目的の受信エンティティ２１２との間に存在し得るさまざまな通信経路に関連する決定された（及び測定された）ＱＯＳ性能レベルについて、ＱＯＳサービス１１０（図１を参照）に問い合わせることができる。ＱＯＳサービス１１０は、メッシュネットワーク２０２及び２０４における経路セグメントの個々のＱＯＳ性能レベルを推測することができるため、ＱＯＳサービス１１０は、エンティティがクエリーを送信した特定の通信経路についてなんら提出物がない場合でも、要求を行うエンティティのクエリーに答えることができる。さらに本明細書に開示されているように、ＱＯＳサービス１１０は、図２によって示されるように、ＱＯＳサーバーアプリケーション２１４及び１つ又は複数のＱＯＳクライアントアプリケーション２１６により実施される。ＱＯＳサービス１１０の実施（ＱＯＳサーバーアプリケーション２１４及びＱＯＳクライアントアプリケーション２１６又はその他の方法による）にかかわらず、ＱＯＳサービス１１０から返される決定されたＱＯＳ性能レベルを使用して、要求を行うエンティティ２１２は、送信されるべき特定の通信経路１０６にとって適していると決定される特定の通信経路を選択する。例えば、送信エンティティ２１２が通信１０６の整合性を確保したい場合、送信エンティティ２１２は、低いと判断されるパケット損失率をもつ通信経路を選択することができる。代替的に、又はそれに加えて、送信エンティティ２１２は、通信１０６の整合性を保護するために使用されるべき誤り検出技術及び訂正技術を修正することができる。
【００３１】
[0035]続けて図２を参照すると、決定されたＱＯＳ性能レベルを要求するエンティティ２１２は、その要求に関連付けられる通信１０６に含めることを希望するエンティティ２１２（おそらく、多くの場合、自身を含む）の任意のペア（又はそれ以上）を指定することができる。その後、そのような要求に応答して、ＱＯＳサービス１１０は、指定されたエンティティ２１２間の可能な通信経路に関連する決定されたＱＯＳ性能レベルを返す。このように、ルーター２０６は、（例えば）2つ以上のエンティティ２１２に関連する決定されたＱＯＳ性能レベルについて知り、決定されたＱＯＳ性能レベルに従ってその間で通信チャネルを設定する。
【００３２】
[0036]様々なエンティティが決定されたＱＯＳ性能レベルを使用する方法について簡潔に説明したが、本明細書では、ここで、ＱＯＳサービス１１０が決定されたＱＯＳ性能レベルをどのように決定するかについて開示する。より具体的には、ＱＯＳサービス１１０は、様々な方法で、決定されたＱＯＳ性能レベルを決定する。例えば、様々な実施例において、ＱＯＳサービス１１０は、ＱＯＳクライアントアプリケーション２１６をホストするコンピューター２１０の少なくともいくつかとともにＱＯＳサーバーアプリケーション２１４を含む。メッシュネットワーク２０２及び２０４のうちの１つの最上位のサーバー２０８又は他のサーバー２０８は、ＱＯＳサーバーアプリケーション２１４をホストすることができる。
【００３３】
[0037]ＱＯＳクライアントアプリケーション２１６は、それらに対応するコンピューター２１０の通信を監視し、それらのコンピューター２１０からの通信１０６に関連するＱＯＳ性能レベルを測定する。例えば、通信１０６が特定のコンピューター２１０を離れる（又は達する）とき、ＱＯＳクライアントアプリケーション２１６は、通信１０６に関連する様々なＱＯＳ性能レベルを測定する。遅延、パケット損失率、伝送速度、帯域幅などのネットワーク性能レベルは、ＱＯＳクライアントアプリケーション２１６が測定するＱＯＳ性能レベルのうちのいくつかを表す。
【００３４】
[0038]ＱＯＳクライアントアプリケーション２１６はまた、関係する時刻、日付、通信経路と併せて、測定されたＱＯＳ性能レベルを格納し、通信１０６に関連する他の情報を格納する。ＱＯＳクライアントアプリケーション２１６は、測定が生じるとできるだけ早く、ＱＯＳサーバーアプリケーション２１４に測定されたＱＯＳ性能レベルを提示することができる。別の方法では、ＱＯＳクライアントアプリケーション２１６は、（多くの可能性のうちのほんの数例を挙げると）いくつかの選択された数のＱＯＳ性能レベルを測定するまで、いくつかの選択された数の通信１０６を監視するまで、又はいくつかの選択された数の通信経路についてＱＯＳ性能レベルを測定するまで、情報を提出するのを待つことができる。
【００３５】
[0039]いくつかの実施例では、１つ又は複数の数のコンピューター２１０は、ＱＯＳクライアントアプリケーション２１６のインスタンスをホストする。したがって、システム管理者などのユーザー１０２がＱＯＳサービス１１０を展開することを決定する場合、ユーザー１０２は、測定された性能レベルの収集を開始する特定のコンピューター１０４を選択することができる。そのコンピューター２１０が動作するとき、それは、それが実際に使用したさまざまな通信経路について測定された性能レベルの収集を開始する。したがって、そのコンピューター２１０に関して（履歴上の使用、現在の使用、及び／又は他の考慮事項に基づいて）特定の適切性を享受するネットワーク環境２００の部分は、ネットワーク環境２００の他のエリアよりも多くのＱＯＳ関連の監視を受信する。
【００３６】
[0040]時間、リソースなどが許すとき、ユーザー１０２は、ＱＯＳクライアントアプリケーション２１６のインスタンスを追加のコンピューター２１０へ徐々に展開することができる。これらの追加のＱＯＳクライアントアプリケーション２１６は、ネットワーク環境２００の追加領域がＱＯＳ関連情報について監視されることを可能にする。したがって、ユーザー１０２は、ＱＯＳサービス１１０を徐々に展開することができだけでなく、ユーザー１０２は、ＱＯＳ関連の監視のためのネットワーク環境２００の領域を対象とすることもできる。さらに、ＱＯＳサービス１１０は、ネットワーク環境２００のこれらの対象領域（及び他の領域）におけるコンピューター２１０並びにその関連付けられるユーザー１０２及び／又はエンティティ２１２に、（決定されたＱＯＳ性能レベルに従って通信１０６をルーティングすることによって）改善された（又は選択された）レベルのＱＯＳ関連の性能を提供することができる。
【００３７】
[0041]本明細書が図３を参照してさらに開示するように、他の機能のうち、図示したＱＯＳサーバーアプリケーション２１４は、ＱＯＳ行列及びＱＯＳのベクトルを保持する。ＱＯＳサーバーアプリケーション２１４は、メッシュネットワーク２０２及び２０４の通信経路の順列に従って組織されるＱＯＳベクトル中のさまざまなＱＯＳクライアントアプリケーション２１６によって送信される情報を格納する。図２によって示されるように、通信経路の各々は、１つ又は複数のパスのセグメント２２０、２２２、２２４、２２６、２２８、及び２１０、並びに、送信側コンピューター及び受信側コンピューター２１０、様々なサーバー２０８及び様々なルーター２０６などの装置の１つ又は複数の一部を含む。また、通信経路は、しばしば、装置によってホストされ、通信経路を介した通信１０６の横断（traversal）に関与し得る、１つ又は複数のエンティティ２１２を含む。同様に
、経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０は、様々なエンティティ及び装置を含むことができる。さらに、通信経路及び通信経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０は、メッシュネットワーク２０２又は２０４内に含むことができ、また、メッシュネットワーク２０２及び２０４の間の境界にまたがることができる。通信経路及び経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０は、加えて、又は代替的に、１つ又は複数の組織（例えば、ＩＳＰ又は企業）内に含まれ、１つ又は複数の組織によって動作され、又は１つ又は複数の組織によって制御することができる。
【００３８】
[0042]例示的な性能レベルとしてパケット損失率を使用して、２つのコンピューター２１０Ａと２１０Ｂとの間のエンドツーエンドのパケット損失率は、ｐ２１０Ａ−２１０Ｂとして示すことができる。また、個々の経路セグメント上のパケット損失率は、経路セグメント２２０についてＰ２２０などと表すことができる。加えて、サーバー、ルーターなどのパケット損失率は、サーバー２０８についてＰ２０８などと表すことができる。エンドツーエンドのパケット損失率及び個々の経路セグメント（通信経路、サーバー及びルーターなど）のパケット損失率は、次のように関連付けることができる：（１−Ｐ２１０Ａ−２１０Ｂ）=（１−Ｐ２２０）×（１−Ｐ２２２）×（１−Ｐ２２４）×（１−Ｐ２２６）×（１−Ｐ２２８）×（１−Ｐ２３０）×（１−Ｐ２０８）×（１−Ｐ２０６）。ログスペースにおいて、上記の関係は線形項で表される。ＱＯＳサービス１１０は、クライアントの提出物から、（１−Ｐ２１０Ａ−２１０Ｂ）などのエンドツーエンドの項を取得する。ＱＯＳサービス１１０は、（１−Ｐ２２０）及び（１−Ｐ２０８）などの個々の項を決定するために、決定論的手法又は確率論的手法を使用することができる。ＱＯＳサービス１１０は、各経路セグメント、サーバー、ルーターなどについて推論された項を維持する。同様の方法で、ＱＯＳサービス１１０は、各経路セグメント、サーバー、ルーターなどについて、遅延、帯域幅、スループットなどに関する項を維持することができる。
【００３９】
[0043]待ち時間及び他の性能レベルについて、エンドツーエンド及び個々のコンポーネント間の関係が線形である（すなわち、エンドツーエンドの待ち時間が、個々のコンポーネントにおけるすべての待ち時間の合計である）ことは注目に値するかもしれない。帯域幅、スループット、及びおそらくは他の性能レベルについて、エンドツーエンドの測定は、個々のコンポーネントの最小の性能レベルである。他の種類の関係もまた、本開示の範囲内にある。
【００４０】
[0044]例えば、図２は、経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０、サーバー２０８Ａ−Ｄ、及びルーター２０６Ａを介して並びに装置のそれらの部分によってホストされる１つ又は複数のエンティティ２１２Ａ−Ｄを介して、コンピューター２１０Ａ上のエンティティ２１２をコンピューター２１０Ｂ上のエンティティ２１２Ｂに接続する、例示的な通信経路を示す。各経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０、エンティティ２１２、並びに装置の一部は、通信路の性能（又はその欠如）に貢献する。したがって、測定されたＱＯＳ性能レベルは、監視される通信１０６に関与する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０、エンティティ２１２、並びに装置の各々の性能レベルを反映する。したがって、ＱＯＳサーバーアプリケーション２１４は、様々な通信経路の測定された性能レベルを、１つの通信経路の性能レベルを表すベクトルの各要素をもつベクトルとして格納することができる。
【００４１】
[0045]しかしながら、１つの通信１０６又は通信経路の性能に関する情報は、別の通信１０６又は通信経路の性能を予測する際に限られた価値しかない。１つの通信１０６は別の通信１０６とは完全に又は部分的に異なる通信経路をたどる可能性があるので、この条件が存在する。さらに、２つの通信経路が特定の経路セグメント２２０を共有することがある一方、その特定の経路セグメントの性能は、いずれかの通信経路の性能の決定要因ではない。実際、通信１０６は、部分的に切り離され、互いに部分的に重複している通信経路を横断し得る。したがって、ＱＯＳクライアントアプリケーション２１６が特定の通信１０６及び特定の通信経路のＱＯＳ性能レベルを測定するとき、ＱＯＳサーバーアプリケーション２１４は、この情報を収集し、後続の通信１０６及び他の通信経路のＱＯＳ性能レベルを予測するためにそれを相互に関連付ける。
【００４２】
[0046]より具体的には、ＱＯＳサーバーアプリケーション２１４はＱＯＳ行列を保持し、各行は通信経路に対応し、その各要素は、経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０、エンティティ２１２、又はその通信経路上の装置の一部（以下で「経路セグメント」）についての決定されるべき性能レベルを表す。（通信経路についての）測定されるＱＯＳ性能レベルのベクトルを、（経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０についての）決定されるべきＱＯＳ性能レベルの行列に等しく設定し、その要素のうちのいくつか又はすべてについてＱＯＳ行列を解くことによって、ＱＯＳサーバーアプリケーション２１４は、通信１０６に関係する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の性能レベルを決定する。さらに、ＱＯＳサーバーアプリケーション２１４は、決定論的方法又は確率論的方法のいずれかで、ＱＯＳ行列を解くことができる。後者の場合には、決定されたＱＯＳ性能レベルは推定値である。さらに、ＱＯＳベクトルに格納される情報の量（すなわち、測定されたＱＯＳ性能レベルの数）が増加するにつれて、それらの推定値の精度は対応する形で増加する可能性が高い。
【００４３】
[0047]しかしながら、経路セグメントの各々のＱＯＳ性能レベルについてＱＯＳ行列を解く必要はない。むしろ、ＱＯＳ行列は、関心のある通信経路に影響を与える可能性がある性能レベルのみについて解くことができる。さらに、ＱＯＳサーバーアプリケーション２１４は、他の目的のために処理リソースを節約するようにこれらの性能レベルを決定する要求を受信するまで、待つことができる。
【００４４】
[0048]代替的に、又はこれに加えて、ＱＯＳサーバーアプリケーション１１０Ａは、メッシュネットワーク２０２及び２０４の階層的な性質についての知識を使用するように構成できる。例えば、特定のコンピューター２１０は、通常、メッシュネットワーク２０２又は２０４内でそれらに最も近いサーバー２０８を介してそれらの通信１０６をルーティングするので、様々な通信経路のすべての順列を考慮する必要はない。さらに、様々な理由でコンピューター２１０のサブセットがおそらくはルーター２０６（又は他の装置、経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０、又はエンティティ２１２）のサブセットを使用するにすぎないことがあらかじめ知られているかもしれない。したがって、個々のＱＯＳ性能レベルを決定することに関連付けられるＱＯＳベクトル、ＱＯＳ行列、及び処理のサイズ及び／又は複雑さは、そのような実施例に置いて大きく低減される。
【００４５】
[0049]さらに、メッシュネットワーク２０２及び２０４の階層的性質に関する情報を使用することによって、ＱＯＳサービス１１０は、メッシュネットワーク２０２及び２０４にわたって徐々に展開することができる。同様に、ＱＯＳサービス１１０は、その使用において、ユーザー１０２（又はシステム管理者）の柔軟性を可能にする。たとえば、特定の経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０（したがって、メッシュネットワーク２０２及び２０４のサブセット）を、必要に応じて考慮することができ、又はＱＯＳ行列から除外することができる。さらに、これらの（又は他のもしくは新たな）経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０は、ユーザーが望むように考慮することができ、又はＱＯＳ行列に追加することができる。
【００４６】
[0050]さらに別の代替的な技術において（又は上記の手法や技術に加えて）、さまざまなエンティティ２１２並びにメッシュネットワーク２０２及び２０４の装置の一部は、メッシュネットワーク２０２又は２０４内の自身の存在及び位置を登録するように構成することができる。登録処理の一部として、使用することを意図し、使用する可能性があり、又は結局は使用することになる、さまざまな通信経路を登録することができる。ここでも、このような手法や技術の効果は、ＱＯＳサーバーアプリケーション２１４が、個々のＱＯＳ性能レベルを決定し、及び／又は決定されたＱＯＳ性能レベルを要求を行うエンティティ２１２によりタイムリーな方法で提供するために、より少ない情報を格納し、より少ない手順を実行することを可能にする。
【００４７】
[0051]いくつかの実施例では、ＱＯＳサーバーアプリケーション２１４は、さまざまなエンティティ２１２からＱＯＳ関連の提出物を受動的に受信し及び／又はメッシュネットワーク２０２又は２０４を能動的に調査して（それ自身の開始において）ＱＯＳ関連の性能レベルを決定するように構成することができる。たとえば、ＱＯＳサーバーアプリケーション２１４は、（優れた通信に潜在的に関与するエンティティ２１２及び通信経路についての知識に基づいて）関心のある特定の経路セグメント２２０、２２２、２２４、２２６、２２８又は２３０の性能レベルに関するＱＯＳ行列における現在の情報を自身が有していないと決定することができる。このような場合、ＱＯＳサーバーアプリケーション２１４は、現在監視されていない経路セグメント２２０、２２２、２２４、２２６、２２８、又は２３０を介して、監視されている通信（又は一連の通信）を管理することができる。この技術の１つの結果は、ＱＯＳサーバーアプリケーション２１４が、ＱＯＳベクトルに挿入する情報を能動的に得ることができるということである。その情報を挿入することにより、ＱＯＳサーバーアプリケーション２１４は、これまで未知の（又は古い）ＱＯＳ性能レベルを決定することができる。ＱＯＳサーバーアプリケーション２１４はまた、要求に応じて、スケジュールに従って、ベクトルの未知の／欠落した要素に従って、他のユーザーの要望に応じて、そのような能動的なプローブを実行するように構成することができる。
【００４８】
[0052]ＱＯＳサービス１１０が使用することができる１つのＱＯＳ推論アルゴリズムの数学的枠組みは、さらに次のように記述することができる。経路セグメント（例えば、個々のサーバー、ネットワークセグメントなど）のＱＯＳ性能レベルをベクトル
【００４９】
【数１】
0005986162.tif 000002
【００５０】
として表す。
[0053]ここでｉはサーバー及びネットワークセグメントにインデックスを付ける。ＱＯＳサービス１１０に対するエンティティ２１２の提出物をベクトル
【００５１】
【数２】
0005986162.tif 000003
【００５２】
として表す。
[0054]ここでｊはＱＯＳサービス１１０によって受信されたｊ番目の提出物の指標となる。接続行列を
【００５３】
【数３】
0005986162.tif 000004
【００５４】
として表す。
[0055]ここでａｉ，ｊ＝１はｉ番目の経路セグメントがｊ番目の提出物に対応することを示し、ａｉ，ｊ＝０はｊ番目の経路セグメントがｊ番目の提出物についての通信経路に関与していないことを示す。このように、ＱＯＳサービス１１０は、所与の接続行列Ａ及びＱＯＳ提出ベクトルＰを考慮してＱＯＳ性能レベルベクトルQについての（式４によって表されるような）最小化問題を解く。
【００５５】
【数４】
0005986162.tif 000005
【００５６】
[0056]式４は十分に拘束されないかもしれないので、式４について１つより多くの解が存在する場合もある。言い換えれば、式４は、常に唯一の解につながるわけではない。
[0057]従って、ＱＯＳサービス１１０は、実際の性能レベルを反映する解として、これらの解のうちの１つを識別するために、最小平均二乗誤差（ＭＭＳＥ）推定（又は他の技術）を使用することができる。したがって、いくつかの実施例のＭＭＳＥは次の形式をとる。
【００５７】
【数５】
0005986162.tif 000006
【００５８】
[0058]メッシュネットワーク２０２及び２０４における条件に対応するさまざまな経路セグメントのＱＯＳ性能レベルを得るために、ＱＯＳサービス１１０は、先験的な知識（事前知識）を使用することができる。例えば、事前知識の利用可能な部分の１つは、ほとんどのサーバーが、通常、性能の問題なしに予定通りに動作することである。さらに、ほとんどの経路セグメントは混雑しておらず、したがって、遅延、パケット損失などをほとんどもたない。そのような先験的な情報を使用して、式６及び７に示すように、ＱＯＳサービス１１０は、ＭＭＳＥの修正版を使用することができる。
【００５９】
【数６】
0005986162.tif 000007
【００６０】
[0059]ここで、α及びβは重み付けパラメーターである。式６によって表されるＭＭＳＥ修正は、ＱＯＳ性能レベルベクトルＱにおけるゼロでない項（ｌ０ノルム）の数を減らすことができる。しかし、式６によって表されるＭＭＳＥ修正は、そこから生じる組み合わせ最適化問題が起こりそうにないか、又は処理することができる場合に、使用することができる。比較すると、式７によって表されるＭＭＳＥ修正はＱＯＳ性能レベルベクトルＱのｌ１ノルムを低減する。したがって、式７は、通常、凸計画（convex programming）アルゴリズムによって効率的に解くことができる。
【００６１】
[0060]上記ＭＭＳＥベースの手法に対して代替的に、又はこれに加えて、ＱＯＳサービス１１０は、式８などの最大尤度推定式（maximal likelihood estimation formula）を介してメッシュネットワーク２０２及び２０４の性能（すなわち、式４）をモデル化することができる。
【００６２】
【数７】
0005986162.tif 000008
【００６３】
[0061]又は式９などの最大事後式（maximum a posterior formula）を介してモデル化することができる。
【００６４】
【数８】
0005986162.tif 000009
【００６５】
[0062]さらに、ＱＯＳサービス１１０は、確率伝搬（Belief Propagation）として確率的論的技術を介して式８及び／又は９を解くことができる。加えて、又は代替的に、ＱＯＳサービス１１０は、最小平均二乗誤差（ＭＭＳＥ）推定、ｌ０ノルムによるさらなるペナルティを備えたＭＭＳＥ推定、ｌ１ノルムによるさらなるペナルティを備えたＭＭＳＥ推定、最大尤度推定、最大事後推定、又は他の技術を使用して、さまざまな通信経路又は経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の性能を決定、推定などすることができる。通信経路（又は経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０）が、受動的なコンポーネント（例えば、イーサネット（登録商標）ケーブル）を含むにすぎなかろうと、又は例えばルーター２０６、サーバー２０８もしくはコンピューター２１０などの能動的なコンポーネントを含もうと、ＱＯＳサービス１１０がそれをすることができることもまた注目に値する。
【００６６】
[0063]ここで図３に移ると、ＱＯＳベースのクライアント／サーバールーティングシステム３００の例示的なブロック図を示す。より具体的には、図３は、それぞれコンピューター２０８及びサーバー２０８によってホストされるＱＯＳクライアントアプリケーション２１６及びＱＯＳサーバーアプリケーション２１４を示しているが、これらのアプリケーションは、その代わりに、様々なコンピューティング装置／通信装置間で分散させることができる。ＱＯＳクライアントアプリケーション２１６及びＱＯＳサーバーアプリケーション２１４は、望まれるように、ネットワーク１００を介して又はその一部を介して通信する。いくつかの実施例では、ＱＯＳクライアントアプリケーション２１６とＱＯＳサーバー・アプリケーション２１４との間の通信は、コンピューター２１０とこれらのアプリケーションをホストするサーバー２０８（又は他の装置）のうちの１つとの間の通常のネットワークトラフィック３０２に「ピギーバック（piggyback）」する。例えば、ＱＯＳクライアントアプリケーションとＱＯＳサーバーアプリケーション１０８との間の提出物３０４、クエリー３０６、及びクエリー応答３０８は、ホスティング装置間のネットワーク制御信号中の未使用のスペースにパッケージ化することができる。ＱＯＳクライアント／サーバー通信３０４、３０６、及び３０８が既存のネットワークトラフィック３０２にピギーバックすることを可能にすることの利点は、これらの通信３０４、３０６、及び３０８を処理するために発呼される通信経路（並びにエンティティ２１２及び関連する装置）にほとんど又はまったく影響を与えないことを含む。
【００６７】
[0064]続けて図３を参照すると、ＱＯＳクライアントアプリケーション２１６は２つ以上のコンポーネントを含む：パス監視コンポーネント３１０及びパスアセンブリーコンポーネント３１２。パス監視コンポーネント３１０は、クライアントコンピューター２１０内のエンティティ２１２から生じる通信１０６（図１を参照）を傍受し、それに関連するＱＯＳ性能レベルを測定する。パス監視コンポーネント３１０はまた、測定したＱＯＳ性能レベルをネットワークトラフィック３０２メッセージに挿入して、ＱＯＳサーバーアプリケーション２１４への送信のための提出物３０４を形成する。
【００６８】
[0065]さらに図３を参照すると、パスアセンブリーコンポーネント３１２は、ＱＯＳサーバーアプリケーション２１４からクエリー応答３０８を受信する。さらに、パスアセンブリーコンポーネント３１２は、コンピューター２１０内のエンティティ２１２にとって関心がある個々の経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０のＱＯＳ性能レベルを識別するために、それらのクエリー応答３０８を解析する。パスアセンブリーコンポーネント３１２は、送信される通信１０６が作成されたことを検出すると、その通信１０６に適した全体の通信経路を選択するために、当該送信される通信１０６をルーティングするのに有用な決定されたＱＯＳ性能レベルを調べる。例えば、通信はその通信にとって最適な通信経路上でルーティングすることができる。
【００６９】
[0066]通信経路を選択する際、パスアセンブリーコンポーネント３１２は、ユーザーが選択した基準、現在（又は最近）のネットワーク状況に基づく基準などを考慮してもよい。さらに、時には、経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０のうちのいくつかについて、決定されたＱＯＳ性能レベルが古いか又は利用できない場合がある。そのような場合には、パスアセンブリーコンポーネント３１２は、欠落した情報にもかかわらず発信する（outgoing）通信１０６について通信経路を選択するために、利用可能な（及びフレッシュな）ＱＯＳ性能レベル、古い（stale）ＱＯＳ性能レベル、履歴上のＱＯＳ性能レベル（コンピューター２１０に格納される）、ユーザー定義のルール、ユーザーの好みなどを使用できる。したがって、ＱＯＳクライアントアプリケーション２１６は、さまざまな通信経路のＱＯＳ性能レベルを測定し、それらのＱＯＳ性能レベルをＱＯＳサーバーアプリケーション２１４に送信し、エンティティ２１２についての通信経路を組み立てる。本明細書において、「通信経路を組み立てる」という用語は、とりわけ、通信経路を形成するそれらの経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０を選択することを意味することに留意されたい。
【００７０】
[0067]続けて図３を参照すると、ＱＯＳサーバーアプリケーション２１４は、認証コンポーネント３１４、経路分割コンポーネント３１６、クエリー処理コンポーネント３１８、及びアクティブプロービングコンポーネント３２０を含む、様々なコンポーネントを含む。これらのコンポーネントを使用して、ＱＯＳサーバーアプリケーション２１４は、ＱＯＳ行列３２２及びＱＯＳベクトル３２４を作成し、管理する。より具体的には、認証コンポーネント３１４は、メッシュネットワーク２０２又は２０４から渡された提出物３０４を受信し、信頼されるＱＯＳクライアントアプリケーション２１６が提出物３０４を実際に作成して送信したかどうかを決定する。いくつかの限定的でない実施例において、認証コンポーネント３１４は、提出物３０４を認証するために、公開／秘密鍵暗号化技術を使用する。特定の提出物３０４の認証が失敗すると、認証コンポーネント３１４は提出物３０４を拒否し、ユーザー１０２（例えば、システム管理者）のいずれかに警告を発し、提出３０４が再提出されることを要求するなどすることができる。したがって、認証コンポーネント３１４は、提出物３０４及びその中の情報から構築されたＱＯＳ行列３２２の整合性を確保するのに役立つ。より具体的には、認証コンポーネント３１４は、偽造されたＱＯＳ性能レベルが、通常、ＱＯＳベクトル３２４に許可されないことを保証する。
【００７１】
[0068]認証コンポーネント３１４はまた、経路分割コンポーネント３１６に認証された提出物３０４を転送する。より具体的には、提出３０４は、特定の通信１０６に関連付けられた測定されたＱＯＳ性能レベルだけでなく、送信側エンティティ２１２、受信側エンティティ２１２、及びそれらの通信１０６に使用される特定の通信経路の識別（ＩＤ）を含むので、経路分割コンポーネント３１６は、ＱＯＳベクトル３２４のどの行が提出物３０４によって影響を受けるかを識別する。さらに、経路分割コンポーネント３１６は、その行のどの要素（すなわち、経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０）が提出された性能レベルに潜在的に関連するかを識別する。したがって、特定の経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０が通信１０６に関与しない場合、ＱＯＳ行列３２２の対応する要素は、ゼロに設定されてもよく、又はそうでなければ、（関心のある現在のＱＯＳ性能レベルを決定することに関して）さらなる検討から除外されてもよい。さらに、関心のある性能レベルの各々の種類について、経路分割コンポーネント３１６は、別個のＱＯＳ行列３２２を保持してもよい。
【００７２】
[0069]経路分割コンポーネント３１６が追加の通信経路について追加の提出物３０４を受信するとき、ＱＯＳベクトル３２４は、ＱＯＳベクトル３２４（様々な通信経路についての測定されたＱＯＳ性能レベルを含む）及びＱＯＳ行列３２２（様々な経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０についての決定されるべきＱＯＳ性能レベルを含む）によって定義される連立方程式を解くのに十分な測定されたＱＯＳ性能値が利用可能である状態に達する。ＱＯＳ行列３２２を解くことにより、経路分割コンポーネント３１６は、さまざまな経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０のＱＯＳ性能レベルを決定する。いくつかの状況においてはＱＯＳ行列３２２の完全な解が必要でないか又は望ましくもないことは注目に値する。例えば、特定の経路セグメント２２０、２２２、２２４、２２６、２２８、又は２３０の特定のＱＯＳ性能レベルについて解くために十分な情報が存在する場合、そのＱＯＳ性能レベルは、ＱＯＳベクトル３２４に含まれるべき追加情報を待つことなく決定することができる。
【００７３】
[0070]ＱＯＳ行列３２２を解くために経路分割コンポーネント３１６が使用する手法及び技術は、決定論的方法並びに確率論的手法及び技術を含む。たとえば、経路分割コンポーネント３１６は、ＱＯＳ行列３２２及びＱＯＳベクトル３２４の行に対応する連立方程式の組を解くために線形代数を使用することができる。代替的に、又はそれに加えて、経路分割コンポーネント３１６は、提出物３０４に含まれる情報から経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０のさまざまな性能レベルを推定するために、ＱＯＳ行列３２２及びＱＯＳベクトル３２４に線形回帰又は確率的手法及び技術を適用することができる。
【００７４】
[0071]続けて図３を参照すると、クエリー処理コンポーネント３１８は、さまざまなエンティティ２１２から、又は（例えば、ＱＯＳサーバーアプリケーション２１４をホストするサーバー２０８におけるキーボード入力を介して）直接的にユーザー１０２からクエリー３０６を受信する。通常、これらのクエリー３０６は、通信する可能性があるエンティティ２１２のペアの識別情報（ＩＤ）を含む。また、これらのクエリー３０６は、エンティティ２１２が特定の通信１０６について使用することを望み得る通信経路又はその一部を識別することができる。いずれにせよ、クエリー処理コンポーネント３１８は、クエリー３０６を解析し、指定されたエンティティ２１２間のさまざまな通信経路を組み立てるために使用することができる（又は使用される必要のあるもしくは使用されるように指定された）さまざまな経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の性能レベルを決定するためにＱＯＳ行列３２２を調査する。
【００７５】
[0072]様々な経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０（並びにエンティティ２１２）の１つ又は複数の性能レベルが決定されていないか又は古い場合、クエリー処理コンポーネント３１８は、アクティブプロービングコンポーネント３２０を呼び出して、メッシュネットワーク２０２及び２０４に関する追加のＱＯＳ性能レベルを測定することができる。たとえば、アクティブプロービングコンポーネント３２０は、（関心のある特定の通信経路の）追加の測定されたＱＯＳ性能レベルを生成するために、決定されたＱＯＳ性能レベルが失われた経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０を介して、自分自身からの通信１０６をルーティングしてもよい。その後、アクティブプロービングコンポーネント３２０は、経路分割コンポーネント３１６に提出物３０４を送信する。結果として、経路分割コンポーネント３１６は、さらに、ＱＯＳベクトル３２４を追加し、（関心のある経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０について）以前は未知であったＱＯＳ性能のレベルについてＱＯＳ行列３２２を解く。いくつかの例では、アクティブプロービングコンポーネント３２０は、ＱＯＳ行列３２２が関係のあるＱＯＳ性能レベルについて解くのに十分に追加されるまで、又はいくらかのユーザーが指定した制限（例えば、そのような通信１０６の最小数もしくは最大数又はいくらかの長さの時間）に達するまで、いくつかの（又はより多くの）そのような通信１０６を生成することができる。
【００７６】
[0073]しかし、いくつかの点で、クエリー処理コンポーネント３１８はＱＯＳ行列３２２から利用可能なＱＯＳ性能レベルを抽出する。さらに、クエリー処理コンポーネント３１８は、クエリー応答３０８を伝えるメッセージを生成し、又は通常のネットワークトラフィック３０２に関連付けられるメッセージにクエリー応答３０８を挿入する。その後、クエリー処理コンポーネント３１８は、（関係する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０について）決定されたＱＯＳ性能レベルを含むクエリー応答３０８を、要求を行うＱＯＳクライアントアプリケーション２１６に送信する。
【００７７】
[0074]クエリー応答３０８を受信すると、ＱＯＳクライアントアプリケーション２１６のパスアセンブリーコンポーネント３１２は、関係する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の決定されたＱＯＳ性能レベルについてクエリー応答３０８を解析する。決定されたＱＯＳ性能レベルから及びメッシュネットワーク２０２及び２０４についての知識から、パスアセンブリーコンポーネント３１２は、発信される通信１０６のために通信経路を組み立てる。パスアセンブリーコンポーネント３１２は、その後、その通信経路に沿って当該発信された通信をルーティングする。
【００７８】
[0075]パスアセンブリーコンポーネント３１２は、発信される通信１０６に関連する多くの他の動作をとることができる。たとえば、クエリー応答３０８における決定されたＱＯＳ性能レベルに依存して、発信される通信１０６及びそれに対する任意の応答に使用するべき誤り検出及び補正の手法や技術を調整してもよい。他の場合には、パスアセンブリーコンポーネント３１２は、一次的な通信経路及び１つ又は複数の二次的な通信経路を確立してもよい。したがって、一次的な通信経路が機能せず又は劣化する（すなわち、いくつかの性能レベルがしきい値を下回るか、しきい値を超えて上昇する）ならば、パスアセンブリーコンポーネント３１２は、通信１０６を二次的な通信経路へと再ルーティングしてもよい。他のシナリオでは、パスアセンブリーコンポーネント３１２は、通信に関与するエンティティ間の実効帯域幅を増加させるために、通信１０６のために又は通信１０６の交換のために複数の通信経路を確立することを選択してもよい。いずれにせよ、パスアセンブリーコンポーネント３１２は、特定の通信１０６、エンティティ２１２、ユーザー１０２などに適するように通信経路を選択することができる。
【００７９】
[0076]図４は、ＱＯＳ-ベースのクライアント／サーバールーティングシステム３００を使用する通信をルーティングする方法４００の例示的なフローチャートを示す。より具体的には、図４は、方法４００が、ＱＯＳクライアントアプリケーション２１６が様々な通信経路についてＱＯＳ性能レベルを測定する、ステップ４０２などの様々なステップを含むことを示す。
【００８０】
[0077]ステップ４０４において、次いで、測定されたＱＯＳ性能レベルは、通信１０６に関与する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０に関連付けられる。当該関連付けは、ＱＯＳ関連情報をＱＯＳベクトル３２４に追加することを介してもよいし、ＱＯＳベクトル３２４をＱＯＳ行列３２２（経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０についての決定されるべきＱＯＳ性能レベルを含む）に等しく設定することによってもよい。
【００８１】
[0078]方法４００はまた、メッシュネットワーク２０２及び２０４中の様々な経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の一部又はすべてについてのＱＯＳ性能レベルを決定することを含む。たとえば、ＱＯＳ行列３２２は部分的に又は全体的に解くことができる。ステップ４０６を参照されたい。
【００８２】
[0079]次に、クエリー３０６に応答して又は他の理由で、様々なエンティティ２１２間の通信経路を組み立てるために使用され得る経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０のＱＯＳ性能レベルが識別される。ステップ４０８を参照されたい。
【００８３】
[0080]方法４００はまた、（ステップ４０６で決定される）適切なＱＯＳ性能レベルを、要求を行うエンティティ２１２又は他のエンティティ２１２及び／もしくはユーザー１０２に提供することを含む。ステップ４１０を参照されたい。
【００８４】
[0081]さらに、適切なＱＯＳ性能レベルから、並びにメッシュネットワーク２０２及び２０４についての知識から、ステップ４１２において示すように、それに沿って通信１０６をルーティングすることができる１つ又は複数の通信経路を組み立てることができる。
【００８５】
[0082]代替的に、又はこれに加えて、様々な通信技法や技術、パラメーターなどを、通信１０６について選択することができ、必要に応じて適用することができる。たとえば、誤り検出及び訂正スキームを通信１０６について選択することができる。ステップ４１４を参照されたい。いくつかの状況において、当該選択は、通信に関与する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の決定されたＱＯＳ性能レベルに基づいてもよい。
【００８６】
[0083]その後、ＱＯＳベースのクライアント／サーバーシステム３００によってフィードバックされた（経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０についての）ＱＯＳ性能レベルに従って、１つ又は複数の通信１０６が、ステップ４１２において組み立てられた通信経路に従ってルーティングされる。ステップ４１６を参照されたい。さらに、ステップ４１４にて選択された通信技術がこれらの通信中に使用されてもよい。
【００８７】
[0084]図５は、ＱＯＳクライアントアプリケーション２１６を使用して通信１０６をルーティングする方法５００の例示的なフローチャートを示す。方法５００は、クライアントコンピューターのエンティティ２１２から送信されているか又はそこから送信されるべき通信１０６をＱＯＳクライアントアプリケーション２１６が監視する、ステップ５０２などの様々なステップを含む。
【００８８】
[0085]ステップ５０４は、ＱＯＳクライアントアプリケーション２１６がこれらの発信する（outgoing）通信１０６の一部又はすべてに関連付けられるＱＯＳ性能レベルを測定できることを示す。当該監視は、クライアントコンピューターのオペレーティングシステム、ルーターもしくはサーバー２０８のいずれか、又はネットワーク２０２もしくは２０４からの通信に関連付けられるＱＯＳ性能レベルを得ることを含んでもよい。代替的に、監視は、望まれるＱＯＳ性能レベルを測定することができるいくつかのエンティティによってＱＯＳクライアントアプリケーション２１６に返される通信に関連付けられるＱＯＳ性能レベルを有するように、発信される通信１０６を修正することを含んでもよい。
【００８９】
[0086]ステップ５０６において、ＱＯＳクライアントアプリケーションは、ＱＯＳサーバーアプリケーション２１４に、測定されたＱＯＳ情報を送信する。また、方法５００は、測定されたＱＯＳ関連情報を暗号化すること（又はその他の方法で保護すること）を含んでもよい。
【００９０】
[0087]方法５００はまた、ＱＯＳクライアントアプリケーション２１６に関連付けられたエンティティ２１２からの通信１０６のための通信経路へと組み立てることができる経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０のＱＯＳ性能レベルについて、ＱＯＳクライアントアプリケーション２１６がＱＯＳサーバーアプリケーション２１４に問い合わせをする、ステップ５０８を含む。
【００９１】
[0088]ステップ５１０において、ＱＯＳクライアントアプリケーション２１６は、クライアントコンピューターからの通信１０６をルーティングするために使用されるべき１つ又は複数の通信経路を組み立てる。ＱＯＳクライアントアプリケーション２１６は、通信経路を組み立てるために、（関係する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の）決定されたＱＯＳ性能レベル並びにメッシュネットワーク２０２及び２０４に関する知識を使用する。
【００９２】
[0089]ＱＯＳクライアントアプリケーション２１６は、組み立てられた通信経路に沿って通信１０６をルーティングする。ステップ５１２を参照されたい。
[0090]通信１０６がクライアントコンピューターからルーティングされるとき、ＱＯＳクライアントアプリケーション２１６は、これらの通信１０６を監視し、それらに関連付けられる測定されたＱＯＳ性能レベルが、（ユーザー１０２又はエンティティ２１２によって選択されるような）その通信１０６についてのＱＯＳレベルを満たすかどうかを決定する。通信１０６がＱＯＳレベルを満たす場合、決定５１４によって示されるように、方法５００はステップ５０２から繰り返される。
【００９３】
[0091]通信１０６が選択されたＱＯＳレベルを満たさない場合、ＱＯＳクライアントアプリケーション２１６は、ＱＯＳサーバーアプリケーション２１４に再び問い合わせて、別の通信経路を組み立てることによって、ルーティングを調整する。ステップ５１６を参照されたい。
【００９４】
[0092]図６は、ＱＯＳサーバーアプリケーション２１４を使用して通信をルーティングする方法６００の例示的なフローチャートを示す。より具体的には、図６は、ＱＯＳサーバーアプリケーション２１４が、１つ又は複数のＱＯＳクライアントアプリケーション２１６からの測定されたＱＯＳ性能レベルについての様々な提出物３０４を受信して認証することを、方法６００が含むことを示す。ステップ６０２を参照されたい。
【００９５】
[0093]ステップ６０４において、ＱＯＳサーバーアプリケーション２１４は、測定されたＱＯＳ性能レベルを、それらのＱＯＳ性能レベルを生じさせた様々な経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０に関連付ける。たとえば、ＱＯＳサーバーアプリケーション２１４は、測定されたＱＯＳ性能レベルをＱＯＳベクトル３２４に追加してもよい。
【００９６】
[0094]いくつかの時点で、ＱＯＳサーバーアプリケーション２１４は、エンティティ２１２のペア間の潜在的な通信経路に関してクエリー３０６を受信する。ステップ６０６を参照されたい。
【００９７】
[0095]ステップ６０８において、ＱＯＳサーバーアプリケーション２１４は、クエリー３０６によって指定されるようなエンティティ２１２間の通信１０６に潜在的に関係する経路セグメント２２０、２２２、２２４、２２６、２２８、及び２３０の性能レベルを決定する。たとえば、ＱＯＳサーバーアプリケーション２１４は、関連する可能性のあるＱＯＳ性能レベルを決定するために、ＱＯＳ行列３２２を全体的に又は部分的に解いてもよい。
【００９８】
[0096]その後、ＱＯＳサーバーアプリケーション２１４は、要求を行うエンティティ２１２に対して、（ステップ６０８において決定される）適切なＱＯＳ性能レベルを送信する。ステップ６１０を参照されたい。方法６００は望まれる長さだけループしてもよい。
【００９９】
[0097]したがって、実施例は、特にエンティティ間の通信に関係するときに、改善されたＱＯＳ性能レベルをもつネットワークを提供する。さらに、これらのネットワークの全体的な速度は、本明細書に記載された手法や技術の適用によって大幅に増加することができる。通信は、これまで可能であったよりも、より高い伝送速度で、及びより少ないデータ損失で、より確実にルーティングすることができる。さらに、実施例は、ネットワーク内の通信のルーティングを改善するためにＱＯＳ性能レベルをフィードバックすることを含む。
結論
[0098]主題は構造的特徴及び／又は方法論的な動作に特有の言葉で記載されたが、添付の特許請求の範囲に規定される主題は、上述の特定の特徴や動作に必ずしも限定されないことが理解されるべきである。むしろ、上記の特定の特徴や動作は、特許請求の範囲を実施する例示的な形式として開示されている。
【図１】
0005986162.tif 000010
【図２】
0005986162.tif 000011
【図３】
0005986162.tif 000012
【図４】
0005986162.tif 000013
【図５】
0005986162.tif 000014
【図６】
0005986162.tif 000015