(58)【調査した分野】(Int.Cl.,DB名)
前記パスアセンブリーコンポーネントは、前記第1の通信経路の前記第1の性能レベルに少なくとも部分的に基づいて、前記第1のエンティティの音声デコーダーのデジッタバッファーを調整するようにさらに構成される請求項1に記載のコンピューター。
前記パスアセンブリーコンポーネントは、前記第1の通信経路の前記第1の性能レベルに少なくとも部分的に基づいて、前記第1のエンティティの前方誤り訂正コンポーネントの冗長性の数を調整するようにさらに構成される請求項1に記載のコンピューター。
前記パスアセンブリーコンポーネントは、複数の通信経路の複数の性能レベルに関して前記QOSサービス装置に問い合わせ、前記複数の通信経路のうち前記第1のエンティティの通信にとって最適な性能レベルを備える通信経路を選択するようにさらに構成される請求項1に記載のコンピューター。
前記パスアセンブリーコンポーネントは、前記第1の通信経路のQOS性能レベルに少なくとも部分的に基づいて前記第1のエンティティの通信コンポーネントを調整するようにさらに構成される請求項1に記載のコンピューター。
【発明を実施するための形態】
【0012】
[0016]本明細書では、ネットワーク環境内のピアと他のエンティティとの間の通信を処理するツールについて記載される。より具体的には、本明細書では、クライアントがネットワーク内のさまざまな通信経路のQOS性能レベルを測定するサービス品質又はQOSベースのサービスアドバイザーシステムが開示される。クライアントはまた、結果として得られる情報をサーバーへ提出する。サーバーは、QOS情報を受信し、部分的にばらばらでありクライアントがQOS性能レベルを報告した通信経路と部分的に重なっている通信経路のQOS性能レベルを決定する。サーバーはまた、これらのばらばらな/重なった通信経路についての決定されたQOS性能レベルの指示を出力する。いくつかの実施例のQOSサービスアドバイザーは、システムを介した通信のサービス品質を向上させるために、不十分にプロビジョニングされたネットワークセグメント及び/又はサーバーのトラブルを解決するため、新たな通信経路の性能レベルを予測するため、低い性能を示す通信経路セグメントの周りで通信をリルートするため、並びに、通信アルゴリズムを調整する(例えば、前方誤り訂正レベルを増加させ、及び/又はそのような機構を有するシステムのデジッタ(de-jitter)バッファーのサイズを大きくする)ために使用することができる。
【0013】
[0017]より具体的には、本明細書は、さまざまなエンティティが決定されたQOS性能レベルに基づいて通信をルーティングするネットワークによってホストされるQOSアプリケーションの実例を開示している。本明細書はまた、そのような決定されたQOS性能レベルに従って様々なホストされたエンティティが通信をルーティングするネットワークを開示している。さらに、本明細書は、QOS性能レベルを測定し、測定されたQOS性能レベルから、ネットワークを横断する様々な通信のためのルートを組み立てるクライアント/サーバーシステムを開示する。
【0014】
[0018]さらに、本明細書は、ネットワーク内及び/又はネットワーク間で通信をルーティングするための様々なQOSベースの方法を開示する。たとえば、本明細書は、クライアントがQOS性能レベルを測定し、サーバーへ測定値を送信する方法を開示している。別の開示された方法では、クライアント(又はさらに別のクライアント)は、部分的にばらばらであってクライアントが測定されたQOS性能レベルを提出した対象の通信経路と部分的に重なる通信経路について、決定されたQOS性能レベルを得るためにサーバーに問い合わせをする。クライアントは、ネットワークのQOS情報を使用して、その通信アルゴリズムにおけるパラメーター(例えば、前方誤り訂正アルゴリズムやデジッタバッファーレベルで使用される冗長性の数)を調整することができ、これにより、エンドユーザーが経験するQOSは改善され得る。本明細書によって開示される別の方法は、サーバーが、クライアントによって提出された測定されたQOS性能レベルから、部分的に切り離されており測定されたQOS性能レベルをクライアントが送信した対象である通信経路と部分的に重なる通信経路についてのQOS性能レベルを決定することを含む。
【0015】
[0019]他の開示された方法において、QOSベースのルーティングシステムはサーバー及び1つ(又は複数)のクライアントを含み、それらは、本明細書に開示される方法及びその均等物の様々な態様を含む。また、本明細書は、実行されるとコンピューターに本明細書に開示された方法及びその均等物を実行させるコンピューター実行可能命令を格納する様々なコンピューター読み取り可能な記憶媒体を開示している。
【0016】
[0020]
図1は、通信システム又はネットワーク100の例示的な概略図を示す。
図1によって示されるように、ユーザー102AとBのペアは、アプリケーション108を使用しつつさまざまな通信106A及びBを交換するために、コンピューター104A及びB(又は他のコンピューティング装置)のペアを介してネットワーク100を使用する。
図1は2人のユーザー102とその間の1つの通信経路のみを有する特定のネットワーク1
00を示すが、多くのネットワーク100は、多数のユーザー102によって使用され、多数のネットワークセグメントとサーバー(及び他の装置)を含んでもよく、それらは他のネットワークを含み又は他のネットワークと通信してもよい。
図1には示されていないが、ネットワーク100は、ユーザー102間の通信106A及びBの転送を容易にする、モデム、ルーター、サーバー、ゲートウェイなどのさまざまな通信及びデータ処理装置を含んでもよい。例えば、ネットワークベースのゲームアプリケーションにおけるプレイが示すように、1つのコンピューター104Aは、コンピューター104Bへユーザー102Aから制御入力を伝達する通信106Aを送信することができる。これに応答して、コンピューター104Bは、更新されたグラフィックデータを備えた通信106Bを、表示及びユーザー102Aからの制御入力の効果を伝えるためにコンピューター104Aに返してもよい。
【0017】
[0021]これらの通信106A及びBはネットワーク100を横断するので、ネットワーク100及びその部分は、QOSサービス110が測定するスループット、データ損失率、遅延などの基準によって特徴付けられる特定の性能レベルで動作する。また、QOSサービス110は、測定されたQOS性能・レベルに基づいて、ネットワーク100を介して(及びネットワーク100へ/から)通信106A及びBをルーティングする。現時点において、QOSサービス110がサーバー112及び/又は1つもしくは複数のコンピューター104によってホストすることができることは注目に値するかもしれない。また、QOSサービス110は、特定のネットワークによって動作させることができもしくは特定のネットワーク内に含めることができ、又は特定のネットワークから分離することができる。さらに、又は代替的に、QOSサービス110は、ISPや他の組織(例えば、企業)によって所有され、動作され、又は制御され得る。
【0018】
[0022]
図1に示す例示的なネットワーク100において、ユーザー102は、ネットワーク100及びコンピューター104を介して互いにインタラクティブなゲームをたまたまプレイしている。このように、ユーザー102は2つのコンピューター104の間でストリーミングされるべき情報(すなわち、通信106A及びB)をもたらす。しばしば、ユーザー102は、リアルタイムの経験をシミュレートするためにインタラクティブなゲームを望む。
【0019】
[0023]ユーザー102のこれらの希望を達成するために、ネットワーク100は、インタラクティブゲームに含まれるものに似た現実世界の経験に関連付けられるペース及び情報コンテンツをシミュレートするように選択された速度及び待ち時間で、これらの通信106A及びBをユーザー102(すなわち、それぞれのコンピューター104)へストリーミングするよう努める。したがってインタラクティブなゲームはリアルタイムで実行するか又は発生すると言われる。「リアルタイム」という語はしたがって主観的である。より具体的には、「リアルタイム」であると考えられるものは、ユーザー102の希望、特定のネットワーク100の能力、これらの特定のユーザー102(他のネットワークから利用可能な能力に関して知らされてもよいし知らされなくてもよい)に知られている能力などによって部分的に決定される。それにもかかわらず、ネットワーク100及びコンピューター104の能力(及び制限)は、しばしば、リアルタイムの経験をシミュレートしているとユーザー102が主観的に感じるものを提供するために、全体のネットワーク100がユーザー102の入力と知覚に十分に対応するインタラクティブな経験を提供することができるかどうかを判断する。通信経路100が、帯域不足、過度のパケットロス(バースト又はそれ以外の場合)、配信における長時間の遅延、配信待ち時間(ジッター)の過度の変化、不安定性などに苦しんでいる場合は、インタラクティブな経験が低下することがある。
【0020】
[0024]したがって、ネットワーク100の構成を考慮すると、ネットワーク100がリアルタイムのシミュレーションを配信するか否かは、ネットワークが現在利用可能な他のネットワークよりもその基本的な能力を活用する傾向があるか否かに依存する。結果として、ユーザーがリアルタイムであると見なすこれらのネットワーク100は、ユーザー102によって認識されるインタラクティブな経験の中断を最小限にする傾向がある。そうするために、本明細書に開示されるネットワーク100などのリアルタイムのネットワークは、通常、それらが満たすか又は上回るように動作する選択されたサービス品質(QOS)を有する。多くの場合、ユーザー102は、待ち時間、パケット(又はデータ)損失率、帯域幅、スループットなどの特定の性能パラメーター(その多くは通信106A及びBに関連付けられる)の観点からQOSレベルを指定する。本明細書は、(ばらばらであり/QOS性能レベルが測定された通信経路と重なる通信経路を別にすれば)測定されたQOS性能レベルから決定されるQOS性能レベルに基づいて通信106A及びBをルーティングすることによって、ネットワーク100の性能を(リアルタイムに又はその他の方法で)向上させる技法及び技術を開示している。
【0021】
[0025]QOSサービスアドバイザーは、目標のアプリケーションにとって好ましい性能・レベルで通信路へ通信をルーティングする。代替的に、コンピューター104は、QOS性能レベルについての結果として得られた知識を使用して、アプリケーションによって使用される通信アルゴリズムのパラメーターを調整することができる。例えば、コンピューター104内のQOSサービスアドバイザーは、通信セッション中に発生することがあるバーストパケットロスに対して通信を保護できるように、前方誤り訂正(FEC)アルゴリズムのパラメーターを選択したレベルに調整することができる。代替的に、又はそれに加えて、QOSサービスアドバイザーは、通信に関与する特定の通信経路上のパケット配信遅延の変化に対抗するためにバッファーが十分な大きさになるように、デジッタバッファーのサイズを増やすことができる。このように、(FEC復号化、デジッタバッファーのサイズ変更、又は他の調整が適用されたため)ユーザーの主観的なインタラクティブな経験を向上させることができる。
【0022】
[0026]さらに、ユーザー102は、リアルタイムの経験を提供しようとする他のアプリケーション108(本明細書において完全に列挙するにはあまりにも多数である)を使用したいと思うかもしれない。たとえば、ユーザー102は、しばしばサーバーや他のコンテンツソースから、多くの種類の音声、視覚、音声/視覚、及び他のコンテンツをストリーミングすることを望む。さらに、
図1によって示されるネットワーク100が主観的に評価されたリアルタイムの性能と一貫性のある能力を提供する一方、ネットワーク100はまた、比較的静的な情報(例えば、テキストファイル、カンマ区切りのファイル、ゆっくり更新される情報など)を交換するものなどの、非リアルタイムアプリケーション108の改善された能力を提供する。
【0023】
[0027]
図2は、QOSサービス110(
図1を参照)が実施されるネットワーク環境200の例示的な概略図を示す。ネットワーク環境200は、2つのメッシュネットワーク202及び204と、(ネットワーク環境200内の様々な位置に配置され得る)ルーター206などの様々なルーティング装置と、メッシュネットワーク202及び204内のさまざまなエンティティ間の通信をルーティングする(及び/又はそれらと通信する)ソフトウェアとを含む。多くのメッシュネットワーク202及び204は、ネットワークを構築するコストを節約するために(ネットワーク構築のコストはしばしばネットワークの枝の長さと相関している)階層的な木の形式をとるが、それにもかかわらず、他のネットワークは、ネットワークのユーザー間の情報のより効率的かつ柔軟なルーティングを可能にするために、メッシュ形式をとってもよい。メッシュネットワーク202及び204は、通常、ユーザー102が様々なサービス、情報などを要求し受信するさまざまなサーバー208を含む。ユーザー102は、これらの機能を実行するために、様々なコンピューティング装置及び/又は通信装置を使用する。このような情報交換に関与する通信セッションを通じて、様々なルーター、ネットワークセグメント、サーバーは、ユーザー間の通信を容易にするために用いることができる。
図2は、コンピューター210とともにこれらの様々なエンドユーザー装置を示す。
【0024】
[0028]さらに、メッシュネットワーク202及び204は、種々の方法で組織することができる。例えば、メッシュネットワーク204は、企業のサーバー208及びコンピューター210を含む。したがって、メッシュネットワーク204の様々なサーバー208は、企業の組織体系を図らずも反映する。その結果、最上位のサーバー208は、企業の本社サーバー208の1つかもしれない。メッシュネットワーク204内の他のサーバー208は、企業の様々な支店、子会社、製造拠点、オフィスなどを表してもよい。対照的に、インターネットサービスプロバイダー(ISP)はメッシュネットワーク202を所有する。したがって、メッシュネットワーク202の様々なサーバー208は、ISPによってサービス提供される様々な地理的エリア、領域などからのサーバーを含み、それらは地理的な階層に配置される。もちろん、他の階層的なスキームは本明細書の開示の範囲内に含まれる。
【0025】
[0029]ユーザー102(
図1参照)に関して、彼らはそれぞれ、通常、コンピューター210のうちの1つに関連付けられる。これらのコンピューター210は、サーバー208、並びに、メッシュネットワーク202及び204内のどこでも及びそれらと通信する位置においてユーザー102が情報及びサービスにアクセスすることを可能にするホストアプリケーション及び他のソフトウェアと通信する。メッシュネットワーク202及び204の全体にわたって、様々なエンティティ212(ソフトウェアオブジェクト、プログラム、アプリケーション、モジュール、ハードウェア、ユーザーなど)が装置208、210などのさまざまな部分によってホストされる。したがって、これらのエンティティ212は、リアルタイムかどうかにかかわらず、通信106(
図1を参照)を交換する。
【0026】
[0030]現時点において、また、メッシュネットワーク202及び204が図面において階層(通信は階層において「上」及び「下」の垂直方向にのみ流れるように示されてもよい)として示される一方、その中でホストされる様々なエンティティ212は、メッシュネットワーク202及び204上の上下以外の他の場所でエンティティ212と通信することに留意することは有用であるかもしれない。言い換えると、メッシュネットワーク202及び204上に存在するエンティティ212は、ピアツーピア、水平、及び他の余分な階層的通信経路を使用することができる。その結果、多くの状況では、複数の通信経路が任意の2つのエンティティ212の間に存在し得る。
【0027】
[0031]続けて
図2を参照すると、エンティティ212のいくつか又はすべては、メッシュネットワーク202及び204上で互いを検出し見つけるかもしれない。より具体的には、(ピアとして動作する)さまざまなエンティティ212は、ASID(ネットワークプロバイダーのAS番号)、PID(ピアID)、(P4PフレームワークにおいてP2Pアプリケーションのプロバイダーのポータルによって提案されるような)ピアの位置に関する小領域情報、及び、適切なプロトコルを介して他のエンティティ212に関連付けられるLOC(地理的な位置)を得ることができる。代替的には、エンティティ212は、メッシュネットワーク202及び204内の他のエンティティ212の存在を検出することができ、また、DSN問い合わせを実行することにより(又は他の限定的でない手法や技術を介して)そのような他のエンティティ212を知ることができる。
【0028】
[0032]他のエンティティ212を識別するために使用される手法や技術にかかわらず、1つのエンティティ212が別のエンティティ212と通信することを望む場合、送信エンティティ212は、受信エンティティへの通信経路を確立する。もちろん、通信経路は、1つもしくは複数のルーター206及び/又は1つもしくは複数のサーバー208を含んでもよい。
【0029】
[0033]様々な実施例によれば、送信エンティティ212は、QOSサービス110(
図1を参照)に対して、確立された通信経路106及び/又は他の通信経路106上で自身が観察したQOS性能レベルを提示することができる。上述のように、通信経路は、複数のサーバー、ネットワーク又は通信経路セグメントなどを含んでもよい。したがって、これらの様々な経路セグメントの性能レベルを決定することの一部として、QOSサービス110は、通信経路におけるサーバーの組、経路セグメントなどを識別することができる。QOSサービス110は、送信エンティティ212から又はネットワークデータベースから情報を取得することにより、これらの経路セグメントを識別することができる。一方、QOSサービスは、(さまざまな通信経路に関して)さまざまなエンティティから提示物を受信し、対応する通信に関与する経路セグメント、装置、エンティティなどを識別し、関係する経路セグメント、装置、エンティティなどについての対応する性能レベルを決定し続けることができる。QOSサービス110が追加の提出物を受信すると、対応する経路セグメントの性能レベルを決定するその能力はそれに応じて増加する。これらの決定された経路セグメントの性能レベルから、QOSサービスは、メッシュネットワーク202及び204における様々な通信経路の性能レベルを予測することができる。
【0030】
[0034]様々なエンティティ(例えば、クライアント)は、それ自体と目的の受信エンティティ212との間に存在し得るさまざまな通信経路に関連する決定された(及び測定された)QOS性能レベルについて、QOSサービス110(
図1を参照)に問い合わせることができる。QOSサービス110は、メッシュネットワーク202及び204における経路セグメントの個々のQOS性能レベルを推測することができるため、QOSサービス110は、エンティティがクエリーを送信した特定の通信経路についてなんら提出物がない場合でも、要求を行うエンティティのクエリーに答えることができる。さらに本明細書に開示されているように、QOSサービス110は、
図2によって示されるように、QOSサーバーアプリケーション214及び1つ又は複数のQOSクライアントアプリケーション216により実施される。QOSサービス110の実施(QOSサーバーアプリケーション214及びQOSクライアントアプリケーション216又はその他の方法による)にかかわらず、QOSサービス110から返される決定されたQOS性能レベルを使用して、要求を行うエンティティ212は、送信されるべき特定の通信経路106にとって適していると決定される特定の通信経路を選択する。例えば、送信エンティティ212が通信106の整合性を確保したい場合、送信エンティティ212は、低いと判断されるパケット損失率をもつ通信経路を選択することができる。代替的に、又はそれに加えて、送信エンティティ212は、通信106の整合性を保護するために使用されるべき誤り検出技術及び訂正技術を修正することができる。
【0031】
[0035]続けて
図2を参照すると、決定されたQOS性能レベルを要求するエンティティ212は、その要求に関連付けられる通信106に含めることを希望するエンティティ212(おそらく、多くの場合、自身を含む)の任意のペア(又はそれ以上)を指定することができる。その後、そのような要求に応答して、QOSサービス110は、指定されたエンティティ212間の可能な通信経路に関連する決定されたQOS性能レベルを返す。このように、ルーター206は、(例えば)2つ以上のエンティティ212に関連する決定されたQOS性能レベルについて知り、決定されたQOS性能レベルに従ってその間で通信チャネルを設定する。
【0032】
[0036]様々なエンティティが決定されたQOS性能レベルを使用する方法について簡潔に説明したが、本明細書では、ここで、QOSサービス110が決定されたQOS性能レベルをどのように決定するかについて開示する。より具体的には、QOSサービス110は、様々な方法で、決定されたQOS性能レベルを決定する。例えば、様々な実施例において、QOSサービス110は、QOSクライアントアプリケーション216をホストするコンピューター210の少なくともいくつかとともにQOSサーバーアプリケーション214を含む。メッシュネットワーク202及び204のうちの1つの最上位のサーバー208又は他のサーバー208は、QOSサーバーアプリケーション214をホストすることができる。
【0033】
[0037]QOSクライアントアプリケーション216は、それらに対応するコンピューター210の通信を監視し、それらのコンピューター210からの通信106に関連するQOS性能レベルを測定する。例えば、通信106が特定のコンピューター210を離れる(又は達する)とき、QOSクライアントアプリケーション216は、通信106に関連する様々なQOS性能レベルを測定する。遅延、パケット損失率、伝送速度、帯域幅などのネットワーク性能レベルは、QOSクライアントアプリケーション216が測定するQOS性能レベルのうちのいくつかを表す。
【0034】
[0038]QOSクライアントアプリケーション216はまた、関係する時刻、日付、通信経路と併せて、測定されたQOS性能レベルを格納し、通信106に関連する他の情報を格納する。QOSクライアントアプリケーション216は、測定が生じるとできるだけ早く、QOSサーバーアプリケーション214に測定されたQOS性能レベルを提示することができる。別の方法では、QOSクライアントアプリケーション216は、(多くの可能性のうちのほんの数例を挙げると)いくつかの選択された数のQOS性能レベルを測定するまで、いくつかの選択された数の通信106を監視するまで、又はいくつかの選択された数の通信経路についてQOS性能レベルを測定するまで、情報を提出するのを待つことができる。
【0035】
[0039]いくつかの実施例では、1つ又は複数の数のコンピューター210は、QOSクライアントアプリケーション216のインスタンスをホストする。したがって、システム管理者などのユーザー102がQOSサービス110を展開することを決定する場合、ユーザー102は、測定された性能レベルの収集を開始する特定のコンピューター104を選択することができる。そのコンピューター210が動作するとき、それは、それが実際に使用したさまざまな通信経路について測定された性能レベルの収集を開始する。したがって、そのコンピューター210に関して(履歴上の使用、現在の使用、及び/又は他の考慮事項に基づいて)特定の適切性を享受するネットワーク環境200の部分は、ネットワーク環境200の他のエリアよりも多くのQOS関連の監視を受信する。
【0036】
[0040]時間、リソースなどが許すとき、ユーザー102は、QOSクライアントアプリケーション216のインスタンスを追加のコンピューター210へ徐々に展開することができる。これらの追加のQOSクライアントアプリケーション216は、ネットワーク環境200の追加領域がQOS関連情報について監視されることを可能にする。したがって、ユーザー102は、QOSサービス110を徐々に展開することができだけでなく、ユーザー102は、QOS関連の監視のためのネットワーク環境200の領域を対象とすることもできる。さらに、QOSサービス110は、ネットワーク環境200のこれらの対象領域(及び他の領域)におけるコンピューター210並びにその関連付けられるユーザー102及び/又はエンティティ212に、(決定されたQOS性能レベルに従って通信106をルーティングすることによって)改善された(又は選択された)レベルのQOS関連の性能を提供することができる。
【0037】
[0041]本明細書が
図3を参照してさらに開示するように、他の機能のうち、図示したQOSサーバーアプリケーション214は、QOS行列及びQOSのベクトルを保持する。QOSサーバーアプリケーション214は、メッシュネットワーク202及び204の通信経路の順列に従って組織されるQOSベクトル中のさまざまなQOSクライアントアプリケーション216によって送信される情報を格納する。
図2によって示されるように、通信経路の各々は、1つ又は複数のパスのセグメント220、222、224、226、228、及び210、並びに、送信側コンピューター及び受信側コンピューター210、様々なサーバー208及び様々なルーター206などの装置の1つ又は複数の一部を含む。また、通信経路は、しばしば、装置によってホストされ、通信経路を介した通信106の横断(traversal)に関与し得る、1つ又は複数のエンティティ212を含む。同様に
、経路セグメント220、222、224、226、228、及び230は、様々なエンティティ及び装置を含むことができる。さらに、通信経路及び通信経路セグメント220、222、224、226、228、及び230は、メッシュネットワーク202又は204内に含むことができ、また、メッシュネットワーク202及び204の間の境界にまたがることができる。通信経路及び経路セグメント220、222、224、226、228、及び230は、加えて、又は代替的に、1つ又は複数の組織(例えば、ISP又は企業)内に含まれ、1つ又は複数の組織によって動作され、又は1つ又は複数の組織によって制御することができる。
【0038】
[0042]例示的な性能レベルとしてパケット損失率を使用して、2つのコンピューター210Aと210Bとの間のエンドツーエンドのパケット損失率は、p
210A−210Bとして示すことができる。また、個々の経路セグメント上のパケット損失率は、経路セグメント220についてP
220などと表すことができる。加えて、サーバー、ルーターなどのパケット損失率は、サーバー208についてP
208などと表すことができる。エンドツーエンドのパケット損失率及び個々の経路セグメント(通信経路、サーバー及びルーターなど)のパケット損失率は、次のように関連付けることができる:(1−P
210A−210B)=(1−P
220)×(1−P
222)×(1−P
224)×(1−P
226)×(1−P
228)×(1−P
230)×(1−P
208)×(1−P
206)。ログスペースにおいて、上記の関係は線形項で表される。QOSサービス110は、クライアントの提出物から、(1−P
210A−210B)などのエンドツーエンドの項を取得する。QOSサービス110は、(1−P
220)及び(1−P
208)などの個々の項を決定するために、決定論的手法又は確率論的手法を使用することができる。QOSサービス110は、各経路セグメント、サーバー、ルーターなどについて推論された項を維持する。同様の方法で、QOSサービス110は、各経路セグメント、サーバー、ルーターなどについて、遅延、帯域幅、スループットなどに関する項を維持することができる。
【0039】
[0043]待ち時間及び他の性能レベルについて、エンドツーエンド及び個々のコンポーネント間の関係が線形である(すなわち、エンドツーエンドの待ち時間が、個々のコンポーネントにおけるすべての待ち時間の合計である)ことは注目に値するかもしれない。帯域幅、スループット、及びおそらくは他の性能レベルについて、エンドツーエンドの測定は、個々のコンポーネントの最小の性能レベルである。他の種類の関係もまた、本開示の範囲内にある。
【0040】
[0044]例えば、
図2は、経路セグメント220、222、224、226、228、及び230、サーバー208A−D、及びルーター206Aを介して並びに装置のそれらの部分によってホストされる1つ又は複数のエンティティ212A−Dを介して、コンピューター210A上のエンティティ212をコンピューター210B上のエンティティ212Bに接続する、例示的な通信経路を示す。各経路セグメント220、222、224、226、228、及び230、エンティティ212、並びに装置の一部は、通信路の性能(又はその欠如)に貢献する。したがって、測定されたQOS性能レベルは、監視される通信106に関与する経路セグメント220、222、224、226、228、及び230、エンティティ212、並びに装置の各々の性能レベルを反映する。したがって、QOSサーバーアプリケーション214は、様々な通信経路の測定された性能レベルを、1つの通信経路の性能レベルを表すベクトルの各要素をもつベクトルとして格納することができる。
【0041】
[0045]しかしながら、1つの通信106又は通信経路の性能に関する情報は、別の通信106又は通信経路の性能を予測する際に限られた価値しかない。1つの通信106は別の通信106とは完全に又は部分的に異なる通信経路をたどる可能性があるので、この条件が存在する。さらに、2つの通信経路が特定の経路セグメント220を共有することがある一方、その特定の経路セグメントの性能は、いずれかの通信経路の性能の決定要因ではない。実際、通信106は、部分的に切り離され、互いに部分的に重複している通信経路を横断し得る。したがって、QOSクライアントアプリケーション216が特定の通信106及び特定の通信経路のQOS性能レベルを測定するとき、QOSサーバーアプリケーション214は、この情報を収集し、後続の通信106及び他の通信経路のQOS性能レベルを予測するためにそれを相互に関連付ける。
【0042】
[0046]より具体的には、QOSサーバーアプリケーション214はQOS行列を保持し、各行は通信経路に対応し、その各要素は、経路セグメント220、222、224、226、228、及び230、エンティティ212、又はその通信経路上の装置の一部(以下で「経路セグメント」)についての決定されるべき性能レベルを表す。(通信経路についての)測定されるQOS性能レベルのベクトルを、(経路セグメント220、222、224、226、228、及び230についての)決定されるべきQOS性能レベルの行列に等しく設定し、その要素のうちのいくつか又はすべてについてQOS行列を解くことによって、QOSサーバーアプリケーション214は、通信106に関係する経路セグメント220、222、224、226、228、及び230の性能レベルを決定する。さらに、QOSサーバーアプリケーション214は、決定論的方法又は確率論的方法のいずれかで、QOS行列を解くことができる。後者の場合には、決定されたQOS性能レベルは推定値である。さらに、QOSベクトルに格納される情報の量(すなわち、測定されたQOS性能レベルの数)が増加するにつれて、それらの推定値の精度は対応する形で増加する可能性が高い。
【0043】
[0047]しかしながら、経路セグメントの各々のQOS性能レベルについてQOS行列を解く必要はない。むしろ、QOS行列は、関心のある通信経路に影響を与える可能性がある性能レベルのみについて解くことができる。さらに、QOSサーバーアプリケーション214は、他の目的のために処理リソースを節約するようにこれらの性能レベルを決定する要求を受信するまで、待つことができる。
【0044】
[0048]代替的に、又はこれに加えて、QOSサーバーアプリケーション110Aは、メッシュネットワーク202及び204の階層的な性質についての知識を使用するように構成できる。例えば、特定のコンピューター210は、通常、メッシュネットワーク202又は204内でそれらに最も近いサーバー208を介してそれらの通信106をルーティングするので、様々な通信経路のすべての順列を考慮する必要はない。さらに、様々な理由でコンピューター210のサブセットがおそらくはルーター206(又は他の装置、経路セグメント220、222、224、226、228、及び230、又はエンティティ212)のサブセットを使用するにすぎないことがあらかじめ知られているかもしれない。したがって、個々のQOS性能レベルを決定することに関連付けられるQOSベクトル、QOS行列、及び処理のサイズ及び/又は複雑さは、そのような実施例に置いて大きく低減される。
【0045】
[0049]さらに、メッシュネットワーク202及び204の階層的性質に関する情報を使用することによって、QOSサービス110は、メッシュネットワーク202及び204にわたって徐々に展開することができる。同様に、QOSサービス110は、その使用において、ユーザー102(又はシステム管理者)の柔軟性を可能にする。たとえば、特定の経路セグメント220、222、224、226、228、及び230(したがって、メッシュネットワーク202及び204のサブセット)を、必要に応じて考慮することができ、又はQOS行列から除外することができる。さらに、これらの(又は他のもしくは新たな)経路セグメント220、222、224、226、228、及び230は、ユーザーが望むように考慮することができ、又はQOS行列に追加することができる。
【0046】
[0050]さらに別の代替的な技術において(又は上記の手法や技術に加えて)、さまざまなエンティティ212並びにメッシュネットワーク202及び204の装置の一部は、メッシュネットワーク202又は204内の自身の存在及び位置を登録するように構成することができる。登録処理の一部として、使用することを意図し、使用する可能性があり、又は結局は使用することになる、さまざまな通信経路を登録することができる。ここでも、このような手法や技術の効果は、QOSサーバーアプリケーション214が、個々のQOS性能レベルを決定し、及び/又は決定されたQOS性能レベルを要求を行うエンティティ212によりタイムリーな方法で提供するために、より少ない情報を格納し、より少ない手順を実行することを可能にする。
【0047】
[0051]いくつかの実施例では、QOSサーバーアプリケーション214は、さまざまなエンティティ212からQOS関連の提出物を受動的に受信し及び/又はメッシュネットワーク202又は204を能動的に調査して(それ自身の開始において)QOS関連の性能レベルを決定するように構成することができる。たとえば、QOSサーバーアプリケーション214は、(優れた通信に潜在的に関与するエンティティ212及び通信経路についての知識に基づいて)関心のある特定の経路セグメント220、222、224、226、228又は230の性能レベルに関するQOS行列における現在の情報を自身が有していないと決定することができる。このような場合、QOSサーバーアプリケーション214は、現在監視されていない経路セグメント220、222、224、226、228、又は230を介して、監視されている通信(又は一連の通信)を管理することができる。この技術の1つの結果は、QOSサーバーアプリケーション214が、QOSベクトルに挿入する情報を能動的に得ることができるということである。その情報を挿入することにより、QOSサーバーアプリケーション214は、これまで未知の(又は古い)QOS性能レベルを決定することができる。QOSサーバーアプリケーション214はまた、要求に応じて、スケジュールに従って、ベクトルの未知の/欠落した要素に従って、他のユーザーの要望に応じて、そのような能動的なプローブを実行するように構成することができる。
【0048】
[0052]QOSサービス110が使用することができる1つのQOS推論アルゴリズムの数学的枠組みは、さらに次のように記述することができる。経路セグメント(例えば、個々のサーバー、ネットワークセグメントなど)のQOS性能レベルをベクトル
【0050】
として表す。
[0053]ここでiはサーバー及びネットワークセグメントにインデックスを付ける。QOSサービス110に対するエンティティ212の提出物をベクトル
【0052】
として表す。
[0054]ここでjはQOSサービス110によって受信されたj番目の提出物の指標となる。接続行列を
【0054】
として表す。
[0055]ここでa
i,j=1はi番目の経路セグメントがj番目の提出物に対応することを示し、a
i,j=0はj番目の経路セグメントがj番目の提出物についての通信経路に関与していないことを示す。このように、QOSサービス110は、所与の接続行列A及びQOS提出ベクトルPを考慮してQOS性能レベルベクトルQについての(式4によって表されるような)最小化問題を解く。
【0056】
[0056]式4は十分に拘束されないかもしれないので、式4について1つより多くの解が存在する場合もある。言い換えれば、式4は、常に唯一の解につながるわけではない。
[0057]従って、QOSサービス110は、実際の性能レベルを反映する解として、これらの解のうちの1つを識別するために、最小平均二乗誤差(MMSE)推定(又は他の技術)を使用することができる。したがって、いくつかの実施例のMMSEは次の形式をとる。
【0058】
[0058]メッシュネットワーク202及び204における条件に対応するさまざまな経路セグメントのQOS性能レベルを得るために、QOSサービス110は、先験的な知識(事前知識)を使用することができる。例えば、事前知識の利用可能な部分の1つは、ほとんどのサーバーが、通常、性能の問題なしに予定通りに動作することである。さらに、ほとんどの経路セグメントは混雑しておらず、したがって、遅延、パケット損失などをほとんどもたない。そのような先験的な情報を使用して、式6及び7に示すように、QOSサービス110は、MMSEの修正版を使用することができる。
【0060】
[0059]ここで、α及びβは重み付けパラメーターである。式6によって表されるMMSE修正は、QOS性能レベルベクトルQにおけるゼロでない項(l
0ノルム)の数を減らすことができる。しかし、式6によって表されるMMSE修正は、そこから生じる組み合わせ最適化問題が起こりそうにないか、又は処理することができる場合に、使用することができる。比較すると、式7によって表されるMMSE修正はQOS性能レベルベクトルQのl
1ノルムを低減する。したがって、式7は、通常、凸計画(convex programming)アルゴリズムによって効率的に解くことができる。
【0061】
[0060]上記MMSEベースの手法に対して代替的に、又はこれに加えて、QOSサービス110は、式8などの最大尤度推定式(maximal likelihood estimation formula)を介してメッシュネットワーク202及び204の性能(すなわち、式4)をモデル化することができる。
【0063】
[0061]又は式9などの最大事後式(maximum a posterior formula)を介してモデル化することができる。
【0065】
[0062]さらに、QOSサービス110は、確率伝搬(Belief Propagation)として確率的論的技術を介して式8及び/又は9を解くことができる。加えて、又は代替的に、QOSサービス110は、最小平均二乗誤差(MMSE)推定、l
0ノルムによるさらなるペナルティを備えたMMSE推定、l
1ノルムによるさらなるペナルティを備えたMMSE推定、最大尤度推定、最大事後推定、又は他の技術を使用して、さまざまな通信経路又は経路セグメント220、222、224、226、228、及び230の性能を決定、推定などすることができる。通信経路(又は経路セグメント220、222、224、226、228、及び230)が、受動的なコンポーネント(例えば、イーサネット(登録商標)ケーブル)を含むにすぎなかろうと、又は例えばルーター206、サーバー208もしくはコンピューター210などの能動的なコンポーネントを含もうと、QOSサービス110がそれをすることができることもまた注目に値する。
【0066】
[0063]ここで
図3に移ると、QOSベースのクライアント/サーバールーティングシステム300の例示的なブロック図を示す。より具体的には、
図3は、それぞれコンピューター208及びサーバー208によってホストされるQOSクライアントアプリケーション216及びQOSサーバーアプリケーション214を示しているが、これらのアプリケーションは、その代わりに、様々なコンピューティング装置/通信装置間で分散させることができる。QOSクライアントアプリケーション216及びQOSサーバーアプリケーション214は、望まれるように、ネットワーク100を介して又はその一部を介して通信する。いくつかの実施例では、QOSクライアントアプリケーション216とQOSサーバー・アプリケーション214との間の通信は、コンピューター210とこれらのアプリケーションをホストするサーバー208(又は他の装置)のうちの1つとの間の通常のネットワークトラフィック302に「ピギーバック(piggyback)」する。例えば、QOSクライアントアプリケーションとQOSサーバーアプリケーション108との間の提出物304、クエリー306、及びクエリー応答308は、ホスティング装置間のネットワーク制御信号中の未使用のスペースにパッケージ化することができる。QOSクライアント/サーバー通信304、306、及び308が既存のネットワークトラフィック302にピギーバックすることを可能にすることの利点は、これらの通信304、306、及び308を処理するために発呼される通信経路(並びにエンティティ212及び関連する装置)にほとんど又はまったく影響を与えないことを含む。
【0067】
[0064]続けて
図3を参照すると、QOSクライアントアプリケーション216は2つ以上のコンポーネントを含む:パス監視コンポーネント310及びパスアセンブリーコンポーネント312。パス監視コンポーネント310は、クライアントコンピューター210内のエンティティ212から生じる通信106(
図1を参照)を傍受し、それに関連するQOS性能レベルを測定する。パス監視コンポーネント310はまた、測定したQOS性能レベルをネットワークトラフィック302メッセージに挿入して、QOSサーバーアプリケーション214への送信のための提出物304を形成する。
【0068】
[0065]さらに
図3を参照すると、パスアセンブリーコンポーネント312は、QOSサーバーアプリケーション214からクエリー応答308を受信する。さらに、パスアセンブリーコンポーネント312は、コンピューター210内のエンティティ212にとって関心がある個々の経路セグメント220、222、224、226、228、及び230のQOS性能レベルを識別するために、それらのクエリー応答308を解析する。パスアセンブリーコンポーネント312は、送信される通信106が作成されたことを検出すると、その通信106に適した全体の通信経路を選択するために、当該送信される通信106をルーティングするのに有用な決定されたQOS性能レベルを調べる。例えば、通信はその通信にとって最適な通信経路上でルーティングすることができる。
【0069】
[0066]通信経路を選択する際、パスアセンブリーコンポーネント312は、ユーザーが選択した基準、現在(又は最近)のネットワーク状況に基づく基準などを考慮してもよい。さらに、時には、経路セグメント220、222、224、226、228、及び230のうちのいくつかについて、決定されたQOS性能レベルが古いか又は利用できない場合がある。そのような場合には、パスアセンブリーコンポーネント312は、欠落した情報にもかかわらず発信する(outgoing)通信106について通信経路を選択するために、利用可能な(及びフレッシュな)QOS性能レベル、古い(stale)QOS性能レベル、履歴上のQOS性能レベル(コンピューター210に格納される)、ユーザー定義のルール、ユーザーの好みなどを使用できる。したがって、QOSクライアントアプリケーション216は、さまざまな通信経路のQOS性能レベルを測定し、それらのQOS性能レベルをQOSサーバーアプリケーション214に送信し、エンティティ212についての通信経路を組み立てる。本明細書において、「通信経路を組み立てる」という用語は、とりわけ、通信経路を形成するそれらの経路セグメント220、222、224、226、228、及び230を選択することを意味することに留意されたい。
【0070】
[0067]続けて
図3を参照すると、QOSサーバーアプリケーション214は、認証コンポーネント314、経路分割コンポーネント316、クエリー処理コンポーネント318、及びアクティブプロービングコンポーネント320を含む、様々なコンポーネントを含む。これらのコンポーネントを使用して、QOSサーバーアプリケーション214は、QOS行列322及びQOSベクトル324を作成し、管理する。より具体的には、認証コンポーネント314は、メッシュネットワーク202又は204から渡された提出物304を受信し、信頼されるQOSクライアントアプリケーション216が提出物304を実際に作成して送信したかどうかを決定する。いくつかの限定的でない実施例において、認証コンポーネント314は、提出物304を認証するために、公開/秘密鍵暗号化技術を使用する。特定の提出物304の認証が失敗すると、認証コンポーネント314は提出物304を拒否し、ユーザー102(例えば、システム管理者)のいずれかに警告を発し、提出304が再提出されることを要求するなどすることができる。したがって、認証コンポーネント314は、提出物304及びその中の情報から構築されたQOS行列322の整合性を確保するのに役立つ。より具体的には、認証コンポーネント314は、偽造されたQOS性能レベルが、通常、QOSベクトル324に許可されないことを保証する。
【0071】
[0068]認証コンポーネント314はまた、経路分割コンポーネント316に認証された提出物304を転送する。より具体的には、提出304は、特定の通信106に関連付けられた測定されたQOS性能レベルだけでなく、送信側エンティティ212、受信側エンティティ212、及びそれらの通信106に使用される特定の通信経路の識別(ID)を含むので、経路分割コンポーネント316は、QOSベクトル324のどの行が提出物304によって影響を受けるかを識別する。さらに、経路分割コンポーネント316は、その行のどの要素(すなわち、経路セグメント220、222、224、226、228、及び230)が提出された性能レベルに潜在的に関連するかを識別する。したがって、特定の経路セグメント220、222、224、226、228、及び230が通信106に関与しない場合、QOS行列322の対応する要素は、ゼロに設定されてもよく、又はそうでなければ、(関心のある現在のQOS性能レベルを決定することに関して)さらなる検討から除外されてもよい。さらに、関心のある性能レベルの各々の種類について、経路分割コンポーネント316は、別個のQOS行列322を保持してもよい。
【0072】
[0069]経路分割コンポーネント316が追加の通信経路について追加の提出物304を受信するとき、QOSベクトル324は、QOSベクトル324(様々な通信経路についての測定されたQOS性能レベルを含む)及びQOS行列322(様々な経路セグメント220、222、224、226、228、及び230についての決定されるべきQOS性能レベルを含む)によって定義される連立方程式を解くのに十分な測定されたQOS性能値が利用可能である状態に達する。QOS行列322を解くことにより、経路分割コンポーネント316は、さまざまな経路セグメント220、222、224、226、228、及び230のQOS性能レベルを決定する。いくつかの状況においてはQOS行列322の完全な解が必要でないか又は望ましくもないことは注目に値する。例えば、特定の経路セグメント220、222、224、226、228、又は230の特定のQOS性能レベルについて解くために十分な情報が存在する場合、そのQOS性能レベルは、QOSベクトル324に含まれるべき追加情報を待つことなく決定することができる。
【0073】
[0070]QOS行列322を解くために経路分割コンポーネント316が使用する手法及び技術は、決定論的方法並びに確率論的手法及び技術を含む。たとえば、経路分割コンポーネント316は、QOS行列322及びQOSベクトル324の行に対応する連立方程式の組を解くために線形代数を使用することができる。代替的に、又はそれに加えて、経路分割コンポーネント316は、提出物304に含まれる情報から経路セグメント220、222、224、226、228、及び230のさまざまな性能レベルを推定するために、QOS行列322及びQOSベクトル324に線形回帰又は確率的手法及び技術を適用することができる。
【0074】
[0071]続けて
図3を参照すると、クエリー処理コンポーネント318は、さまざまなエンティティ212から、又は(例えば、QOSサーバーアプリケーション214をホストするサーバー208におけるキーボード入力を介して)直接的にユーザー102からクエリー306を受信する。通常、これらのクエリー306は、通信する可能性があるエンティティ212のペアの識別情報(ID)を含む。また、これらのクエリー306は、エンティティ212が特定の通信106について使用することを望み得る通信経路又はその一部を識別することができる。いずれにせよ、クエリー処理コンポーネント318は、クエリー306を解析し、指定されたエンティティ212間のさまざまな通信経路を組み立てるために使用することができる(又は使用される必要のあるもしくは使用されるように指定された)さまざまな経路セグメント220、222、224、226、228、及び230の性能レベルを決定するためにQOS行列322を調査する。
【0075】
[0072]様々な経路セグメント220、222、224、226、228、及び230(並びにエンティティ212)の1つ又は複数の性能レベルが決定されていないか又は古い場合、クエリー処理コンポーネント318は、アクティブプロービングコンポーネント320を呼び出して、メッシュネットワーク202及び204に関する追加のQOS性能レベルを測定することができる。たとえば、アクティブプロービングコンポーネント320は、(関心のある特定の通信経路の)追加の測定されたQOS性能レベルを生成するために、決定されたQOS性能レベルが失われた経路セグメント220、222、224、226、228、及び230を介して、自分自身からの通信106をルーティングしてもよい。その後、アクティブプロービングコンポーネント320は、経路分割コンポーネント316に提出物304を送信する。結果として、経路分割コンポーネント316は、さらに、QOSベクトル324を追加し、(関心のある経路セグメント220、222、224、226、228、及び230について)以前は未知であったQOS性能のレベルについてQOS行列322を解く。いくつかの例では、アクティブプロービングコンポーネント320は、QOS行列322が関係のあるQOS性能レベルについて解くのに十分に追加されるまで、又はいくらかのユーザーが指定した制限(例えば、そのような通信106の最小数もしくは最大数又はいくらかの長さの時間)に達するまで、いくつかの(又はより多くの)そのような通信106を生成することができる。
【0076】
[0073]しかし、いくつかの点で、クエリー処理コンポーネント318はQOS行列322から利用可能なQOS性能レベルを抽出する。さらに、クエリー処理コンポーネント318は、クエリー応答308を伝えるメッセージを生成し、又は通常のネットワークトラフィック302に関連付けられるメッセージにクエリー応答308を挿入する。その後、クエリー処理コンポーネント318は、(関係する経路セグメント220、222、224、226、228、及び230について)決定されたQOS性能レベルを含むクエリー応答308を、要求を行うQOSクライアントアプリケーション216に送信する。
【0077】
[0074]クエリー応答308を受信すると、QOSクライアントアプリケーション216のパスアセンブリーコンポーネント312は、関係する経路セグメント220、222、224、226、228、及び230の決定されたQOS性能レベルについてクエリー応答308を解析する。決定されたQOS性能レベルから及びメッシュネットワーク202及び204についての知識から、パスアセンブリーコンポーネント312は、発信される通信106のために通信経路を組み立てる。パスアセンブリーコンポーネント312は、その後、その通信経路に沿って当該発信された通信をルーティングする。
【0078】
[0075]パスアセンブリーコンポーネント312は、発信される通信106に関連する多くの他の動作をとることができる。たとえば、クエリー応答308における決定されたQOS性能レベルに依存して、発信される通信106及びそれに対する任意の応答に使用するべき誤り検出及び補正の手法や技術を調整してもよい。他の場合には、パスアセンブリーコンポーネント312は、一次的な通信経路及び1つ又は複数の二次的な通信経路を確立してもよい。したがって、一次的な通信経路が機能せず又は劣化する(すなわち、いくつかの性能レベルがしきい値を下回るか、しきい値を超えて上昇する)ならば、パスアセンブリーコンポーネント312は、通信106を二次的な通信経路へと再ルーティングしてもよい。他のシナリオでは、パスアセンブリーコンポーネント312は、通信に関与するエンティティ間の実効帯域幅を増加させるために、通信106のために又は通信106の交換のために複数の通信経路を確立することを選択してもよい。いずれにせよ、パスアセンブリーコンポーネント312は、特定の通信106、エンティティ212、ユーザー102などに適するように通信経路を選択することができる。
【0079】
[0076]
図4は、QOS-ベースのクライアント/サーバールーティングシステム300を使用する通信をルーティングする方法400の例示的なフローチャートを示す。より具体的には、
図4は、方法400が、QOSクライアントアプリケーション216が様々な通信経路についてQOS性能レベルを測定する、ステップ402などの様々なステップを含むことを示す。
【0080】
[0077]ステップ404において、次いで、測定されたQOS性能レベルは、通信106に関与する経路セグメント220、222、224、226、228、及び230に関連付けられる。当該関連付けは、QOS関連情報をQOSベクトル324に追加することを介してもよいし、QOSベクトル324をQOS行列322(経路セグメント220、222、224、226、228、及び230についての決定されるべきQOS性能レベルを含む)に等しく設定することによってもよい。
【0081】
[0078]方法400はまた、メッシュネットワーク202及び204中の様々な経路セグメント220、222、224、226、228、及び230の一部又はすべてについてのQOS性能レベルを決定することを含む。たとえば、QOS行列322は部分的に又は全体的に解くことができる。ステップ406を参照されたい。
【0082】
[0079]次に、クエリー306に応答して又は他の理由で、様々なエンティティ212間の通信経路を組み立てるために使用され得る経路セグメント220、222、224、226、228、及び230のQOS性能レベルが識別される。ステップ408を参照されたい。
【0083】
[0080]方法400はまた、(ステップ406で決定される)適切なQOS性能レベルを、要求を行うエンティティ212又は他のエンティティ212及び/もしくはユーザー102に提供することを含む。ステップ410を参照されたい。
【0084】
[0081]さらに、適切なQOS性能レベルから、並びにメッシュネットワーク202及び204についての知識から、ステップ412において示すように、それに沿って通信106をルーティングすることができる1つ又は複数の通信経路を組み立てることができる。
【0085】
[0082]代替的に、又はこれに加えて、様々な通信技法や技術、パラメーターなどを、通信106について選択することができ、必要に応じて適用することができる。たとえば、誤り検出及び訂正スキームを通信106について選択することができる。ステップ414を参照されたい。いくつかの状況において、当該選択は、通信に関与する経路セグメント220、222、224、226、228、及び230の決定されたQOS性能レベルに基づいてもよい。
【0086】
[0083]その後、QOSベースのクライアント/サーバーシステム300によってフィードバックされた(経路セグメント220、222、224、226、228、及び230についての)QOS性能レベルに従って、1つ又は複数の通信106が、ステップ412において組み立てられた通信経路に従ってルーティングされる。ステップ416を参照されたい。さらに、ステップ414にて選択された通信技術がこれらの通信中に使用されてもよい。
【0087】
[0084]
図5は、QOSクライアントアプリケーション216を使用して通信106をルーティングする方法500の例示的なフローチャートを示す。方法500は、クライアントコンピューターのエンティティ212から送信されているか又はそこから送信されるべき通信106をQOSクライアントアプリケーション216が監視する、ステップ502などの様々なステップを含む。
【0088】
[0085]ステップ504は、QOSクライアントアプリケーション216がこれらの発信する(outgoing)通信106の一部又はすべてに関連付けられるQOS性能レベルを測定できることを示す。当該監視は、クライアントコンピューターのオペレーティングシステム、ルーターもしくはサーバー208のいずれか、又はネットワーク202もしくは204からの通信に関連付けられるQOS性能レベルを得ることを含んでもよい。代替的に、監視は、望まれるQOS性能レベルを測定することができるいくつかのエンティティによってQOSクライアントアプリケーション216に返される通信に関連付けられるQOS性能レベルを有するように、発信される通信106を修正することを含んでもよい。
【0089】
[0086]ステップ506において、QOSクライアントアプリケーションは、QOSサーバーアプリケーション214に、測定されたQOS情報を送信する。また、方法500は、測定されたQOS関連情報を暗号化すること(又はその他の方法で保護すること)を含んでもよい。
【0090】
[0087]方法500はまた、QOSクライアントアプリケーション216に関連付けられたエンティティ212からの通信106のための通信経路へと組み立てることができる経路セグメント220、222、224、226、228、及び230のQOS性能レベルについて、QOSクライアントアプリケーション216がQOSサーバーアプリケーション214に問い合わせをする、ステップ508を含む。
【0091】
[0088]ステップ510において、QOSクライアントアプリケーション216は、クライアントコンピューターからの通信106をルーティングするために使用されるべき1つ又は複数の通信経路を組み立てる。QOSクライアントアプリケーション216は、通信経路を組み立てるために、(関係する経路セグメント220、222、224、226、228、及び230の)決定されたQOS性能レベル並びにメッシュネットワーク202及び204に関する知識を使用する。
【0092】
[0089]QOSクライアントアプリケーション216は、組み立てられた通信経路に沿って通信106をルーティングする。ステップ512を参照されたい。
[0090]通信106がクライアントコンピューターからルーティングされるとき、QOSクライアントアプリケーション216は、これらの通信106を監視し、それらに関連付けられる測定されたQOS性能レベルが、(ユーザー102又はエンティティ212によって選択されるような)その通信106についてのQOSレベルを満たすかどうかを決定する。通信106がQOSレベルを満たす場合、決定514によって示されるように、方法500はステップ502から繰り返される。
【0093】
[0091]通信106が選択されたQOSレベルを満たさない場合、QOSクライアントアプリケーション216は、QOSサーバーアプリケーション214に再び問い合わせて、別の通信経路を組み立てることによって、ルーティングを調整する。ステップ516を参照されたい。
【0094】
[0092]
図6は、QOSサーバーアプリケーション214を使用して通信をルーティングする方法600の例示的なフローチャートを示す。より具体的には、
図6は、QOSサーバーアプリケーション214が、1つ又は複数のQOSクライアントアプリケーション216からの測定されたQOS性能レベルについての様々な提出物304を受信して認証することを、方法600が含むことを示す。ステップ602を参照されたい。
【0095】
[0093]ステップ604において、QOSサーバーアプリケーション214は、測定されたQOS性能レベルを、それらのQOS性能レベルを生じさせた様々な経路セグメント220、222、224、226、228、及び230に関連付ける。たとえば、QOSサーバーアプリケーション214は、測定されたQOS性能レベルをQOSベクトル324に追加してもよい。
【0096】
[0094]いくつかの時点で、QOSサーバーアプリケーション214は、エンティティ212のペア間の潜在的な通信経路に関してクエリー306を受信する。ステップ606を参照されたい。
【0097】
[0095]ステップ608において、QOSサーバーアプリケーション214は、クエリー306によって指定されるようなエンティティ212間の通信106に潜在的に関係する経路セグメント220、222、224、226、228、及び230の性能レベルを決定する。たとえば、QOSサーバーアプリケーション214は、関連する可能性のあるQOS性能レベルを決定するために、QOS行列322を全体的に又は部分的に解いてもよい。
【0098】
[0096]その後、QOSサーバーアプリケーション214は、要求を行うエンティティ212に対して、(ステップ608において決定される)適切なQOS性能レベルを送信する。ステップ610を参照されたい。方法600は望まれる長さだけループしてもよい。
【0099】
[0097]したがって、実施例は、特にエンティティ間の通信に関係するときに、改善されたQOS性能レベルをもつネットワークを提供する。さらに、これらのネットワークの全体的な速度は、本明細書に記載された手法や技術の適用によって大幅に増加することができる。通信は、これまで可能であったよりも、より高い伝送速度で、及びより少ないデータ損失で、より確実にルーティングすることができる。さらに、実施例は、ネットワーク内の通信のルーティングを改善するためにQOS性能レベルをフィードバックすることを含む。
結論
[0098]主題は構造的特徴及び/又は方法論的な動作に特有の言葉で記載されたが、添付の特許請求の範囲に規定される主題は、上述の特定の特徴や動作に必ずしも限定されないことが理解されるべきである。むしろ、上記の特定の特徴や動作は、特許請求の範囲を実施する例示的な形式として開示されている。