(57)【要約】【課題】ネットワークパス上の帯域幅を推定する方法およびシステムを提供する。【解決手段】利用可能な帯域幅推定の新たなシステムおよび方法は、ネットワークパスにおけるナローリンクとタイトリンクが異なるロケーションにある場合でも適用される。本発明の諸実施形態では、固有のパケットプローブシリーズ構造および処理を使用して、利用可能な帯域幅を推定する。本発明の一実施形態では、プローブパケット間の間隔が、タイトリンクに至るまでのリンク群によって生じさせられる拡大を考慮に入れるように、送信元において調整されて、プローブが、タイトリンクに到着した際、間隔が適切であるようになる。さらに、マルチパケットプローブは、大きいパケットと、その後に続く２つのはるかに小さいパケットとを含む。大きいパケットは、タイトリンクを通過するとドロップされる。【選択図】図３
2006270953.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも送信元コンピューティングデバイスと受信側コンピューティングデバイスの間におけるネットワークパス上の利用可能な帯域幅を測定する方法であって、前記ネットワークパスは、少なくとも１つが、前記ネットワークパスにおける他のいずれかのリンクよりも少ない量の利用可能な帯域幅を有するタイトリンクである複数のリンクを含み、前記方法は、
前記送信元コンピューティングデバイスから前記受信側コンピューティングデバイスに向けてパイロットパケットを伝送するステップと、
前記パイロットパケットを、該パイロットパケットが前記タイトリンクを通過した後、かつ、該パイロットパケットが前記受信側コンピューティングデバイスに到達する前に、ドロップするステップと、
前記パイロットパケットの前記伝送に続いて直ちに、前記送信元コンピューティングデバイスから前記受信側コンピューティングデバイスに伝送するステップであって、前記パケットペアは、初期遅延によって隔てられた少なくとも２つのパケットを含むステップと、
前記送信元コンピューティングデバイスにおいて、前記受信側デバイスから、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延の指示を獲得するステップとを備えることを特徴とする方法。
【請求項２】
前記送信元コンピューティングデバイスにおいて、前記ネットワークパスに関する利用可能な帯域幅値を、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延に基づいて計算するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記パイロットパケットの前記伝送に続いて直ちに、前記送信元コンピューティングデバイスから前記受信側コンピューティングデバイスに伝送するステップであって、前記パケットペアは、初期遅延によって隔てられた少なくとも２つのパケットを含む前記ステップは、前記タイトリンクに向かう途中で前記パケットペアによって経験されることが予期される拡大の量を計算し、前記予期される拡大を考慮して前記ペアの前記パケット間の前記初期遅延を設定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記送信元コンピューティングデバイスにおいて、前記受信側デバイスから、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延の指示を獲得する前記ステップは、前記受信側コンピューティングデバイスから、前記パケットが前記受信側コンピューティングデバイスに到着したそれぞれの時刻を示すタイムスタンプ情報を獲得するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記パイロットパケットは、Ｔｉｍｅ  ｔｏ  Ｌｉｖｅプロパティを有し、前記パイロットパケットを、該パイロットパケットが前記タイトリンクを通過した後、かつ、該パイロットパケットが前記受信側コンピューティングデバイスに到達する前に、ドロップする前記ステップは、該パイロットパケットのＴｉｍｅ  ｔｏ  Ｌｉｖｅの有効期限が切れると、前記パイロットパケットをドロップするステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ネットワークパスに関する利用可能な帯域幅値を、前記パケットペアのパケット間の、該パケットが、前記受信側コンピューティングデバイスに到着した際の相対遅延の指示に基づいて計算する前記ステップは、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延と、前記パケット間の、該パケットが前記タイトリンクに到着した際の遅延との差を計算するステップをさらに含むことを特徴とする請求項２に記載の方法。
【請求項７】
所定の回数、前記ステップセットを繰り返すステップをさらに備えることを特徴とする請求項２に記載の方法。
【請求項８】
所定の回数、前記ステップセットを繰り返す前記ステップは、前記ネットワークパスに関する複数の利用可能な帯域幅値をもたらし、前記方法は、
前記複数の利用可能な帯域幅値を平均して、平均の利用可能な帯域幅をもたらすステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
少なくとも送信元コンピューティングデバイスと受信側コンピューティングデバイスの間におけるネットワークパス上の利用可能な帯域幅を測定する方法であって、前記ネットワークパスは、少なくとも１つが、前記ネットワークパスにおける他のいずれかのリンクよりも少ない量の利用可能な帯域幅を有するタイトリンクである複数のリンクを含む方法を実行する、コンピュータ読み取り可能な命令をその上に有するコンピュータ可読媒体であって、前記命令は、
前記送信元コンピューティングデバイスから前記受信側コンピューティングデバイスに向けてパイロットパケットを伝送すること、
前記パイロットパケットを、該パイロットパケットが前記タイトリンクを通過した後、かつ、該パイロットパケットが前記受信側コンピューティングデバイスに到達する前に、ドロップすること、
前記パイロットパケットの前記伝送に続いて直ちに、前記送信元コンピューティングデバイスから前記受信側コンピューティングデバイスに伝送することであって、前記パケットペアは、初期遅延によって隔てられた少なくとも２つのパケットを含むこと、および
前記送信元コンピューティングデバイスにおいて、前記受信側デバイスから、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延の指示を獲得することのための命令を含むことを特徴とするコンピュータ可読媒体。
【請求項１０】
前記送信元コンピューティングデバイスにおいて、前記ネットワークパスに関する利用可能な帯域幅値を、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延に基づいて計算することための命令をさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記パイロットパケットの前記伝送に続いて直ちに、前記送信元コンピューティングデバイスから前記受信側コンピューティングデバイスに伝送することであって、前記パケットペアは、初期遅延によって隔てられた少なくとも２つのパケットを含む前記伝送することのための前記命令は、前記タイトリンクに向かう途中で前記パケットペアによって経験されることが予期される拡大の量を計算し、前記予期される拡大を考慮して前記ペアの前記パケット間の前記初期遅延を設定することのための命令をさらに含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１２】
前記送信元コンピューティングデバイスにおいて、前記受信側デバイスから、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延の指示を獲得することのための前記命令は、前記受信側コンピューティングデバイスから、前記パケットが、前記受信側コンピューティングデバイスに到着したそれぞれの時刻を示すタイムスタンプ情報を獲得することのための命令を含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１３】
前記パイロットパケットは、Ｔｉｍｅ  ｔｏ  Ｌｉｖｅプロパティを有し、前記パイロットパケットを、該パイロットパケットが前記タイトリンクを通過した後、かつ、該パイロットパケットが、前記受信側コンピューティングデバイスに到達する前に、ドロップすることのための前記命令は、該パイロットパケットのＴｉｍｅ  ｔｏ  Ｌｉｖｅの有効期限が切れると、前記パイロットパケットをドロップすることのための命令を含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１４】
前記ネットワークパスに関する利用可能な帯域幅値を、前記パケットペアのパケット間の、該パケットが、前記受信側コンピューティングデバイスに到着した際の相対遅延の指示に基づいて計算することのための前記命令は、前記パケットペアのパケット間の、該パケットが前記受信側コンピューティングデバイスに到着した際の相対遅延と、前記パケット間の、該パケットが前記タイトリンクに到着した際の遅延との差を計算することのための命令をさらに含むことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１５】
所定の回数、前記命令を繰り返すための命令をさらに備えることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１６】
所定の回数、前記命令を繰り返すことは、前記ネットワークパスに関する複数の利用可能な帯域幅値をもたらし、前記コンピュータ可読媒体は、
前記複数の利用可能な帯域幅値を平均して、平均の利用可能な帯域幅をもたらすための命令をさらに備えることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
送信元デバイスと宛先デバイス間のネットワークパスをプローブして、該ネットワークパス上のタイトリンクの利用可能な帯域幅を算出するためのパケットトレインであって、
実質的に大きいサイズと、Ｔｉｍｅ  ｔｏ  Ｌｉｖｅプロパティとを有するパイロットパケットであって、前記Ｔｉｍｅ  ｔｏ  Ｌｉｖｅプロパティは、前記パイロットパケットが、前記送信元デバイスから前記タイトリンクを通過した後、かつ、前記宛先デバイスに到達する前に、ドロップされるように設定されるパイロットパケットと、
パケット間遅延を合間に有する、前記パイロットパケットより実質的に小さいサイズの２つのパケットを含むパケットペアとを隣接する順次の配置で含むことを特徴とするパケットトレイン。
【請求項１８】
前記パイロットパケットのサイズは、前記ネットワークパスの最大転送単位と実質的に等しいことを特徴とする請求項１７に記載のパケットトレイン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータネットワーキングに関し、より詳細には、異なるタイトリンク（ｔｉｇｈｔ  ｌｉｎｋ）およびナローリンク（ｎａｒｒｏｗ  ｌｉｎｋ）を有するネットワークパス上の帯域幅を推定する方法およびシステムに関する。
【背景技術】
【０００２】
ネットワーキング環境では、ネットワーキングタスクに関わるエンティティが、特定の用途のためにどれだけの帯域幅が利用可能であるか、または利用可能である可能性があるかを推定できることがしばしば、重要である。例えば、不十分な帯域幅しか利用可能でない場合、不十分に実行されなければならない、または後で途中停止されなければならないようなタスクを開始することは意味をなさないことがある。しばしば、オーディオ情報およびビデオ情報のストリーミング伝送は、満足の行くユーザ体験を提供するために、あるサービス品質を必要とし、そのサービス品質が利用できない場合、ユーザ体験は乏しいものとなる。
【０００３】
近年、ネットワーキング技術の人気の高まりが見られ、このため、利用可能な帯域幅を算出することを目的とする技術の増加が見られている。残念ながら、それらの技術の多くは、現実において裏付けのない想定を行い、このため、利用可能な帯域幅の不正確な推定をもたらす。例えば、パケットギャップ方法（ＰＧＭ）は、インターネットパス上のナローリンクとタイトリンクが同一である場合にだけ、正しく機能する。
【０００４】
以下の参照文献（非特許文献１、非特許文献２）は、帯域幅測定のいくつかの初歩的な態様を理解するのにユーザの役に立ちうる。
【０００５】
【非特許文献１】K. Lai and M. Baker, "Measuring Link Bandwidths Using a Deterministic Model of Packet Delay", AGM SIGCOMM, August 2000
【非特許文献２】J. Strauss and D. Katabi and F. Kaashoek, "A Measurement Study of Available Bandwidth Estimation Tools", ACM/USENIX IMC, October 2003
【発明の開示】
【課題を解決するための手段】
【０００６】
ネットワークパスにおいて、タイトリンクが、ナローリンクと同一ではない場合、利用可能な帯域幅推定の既存のＰＧＭ技術に固有の不可欠な仮定が崩れ、それらの技術は、もはや機能しない。本発明の諸実施形態では、固有のパケットプローブシリーズ構造（ｕｎｉｑｕｅ  ｐａｃｅｔ  ｐｒｏｂｅ  ｓｅｒｉｅｓ  ｓｔｒｕｃｔｕｒｅ）および処理を使用して、利用可能な帯域幅を推定する。詳細には、プローブパケット間の間隔が、タイトリンクまでに至るリンク群によって生じさせられる拡大（ｄｉｌａｔｉｏｎ）を考慮して送信元においてまず調整されて、プローブがタイトリンクに到着した際に、間隔が適切であるようになる。さらに、本発明の一実施形態において、マルチパケットプローブが使用される。マルチパケットプローブは、本明細書で、ときとして、「パイロット」パケットと呼ばれる大きいパケットと、その後に続く２つのはるかに小さいパケットとを含む。大きいパケットは、次に、タイトリンクを通過すると、ドロップされる。その後のナローリンクによってほとんど影響されない２つの小さいパケットは、タイトリンクによって設定された間隔を（基本的に、タイトリンクによって誘発された遅延を符号化して）宛先までずっと保つ。
【０００７】
本発明のさらなる特徴および利点は、添付の図を参照して進められる、例示的な諸実施形態の以下のより詳細な説明から明白となろう。
【０００８】
添付の特許請求の範囲を、本発明の諸特徴を詳細に記載するが、本発明、および本発明の利点は、添付の図面と併せて解釈される、以下の詳細な説明から最もよく理解されよう。
【発明を実施するための最良の形態】
【０００９】
本発明は、添付の図面と併せて読まれるべき、以下の詳細な説明を介して、より完全に理解されよう。この説明では、本発明の様々な実施形態の中で、同様の符号は、同様の要素を指す。ブロードバンドアクセスネットワーク、およびその他のネットワークにおいて帯域幅を推定するための方法およびシステムを以下に説明する。本明細書で説明する方法およびシステムは、単に例示的であり、本発明の趣旨および範囲を逸脱することなく、変形形態を実施できることが、当業者には容易に理解されよう。
【００１０】
本発明の諸実施形態は、適切なコンピューティング環境において実施されているものとして示される。必須ではないが、本発明は、パーソナルコンピュータによって実行される、手続きなどの、コンピュータ実行可能命令の一般的なコンテキストで説明する。一般に、手続きには、特定のタスクを実行する、または特定の抽象データ型を実装する、プログラムモジュール、ルーチン、関数、プログラム、オブジェクト、コンポーネント、データ構造体などが含まれる。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、およびマイクロプロセッサベースの家庭用電化製品、またはプログラマブル家庭用電化製品を含め、様々なコンピュータシステム構成において実施できることが当業者には理解されよう。また、本発明は、通信ネットワークを介してリンクされたリモート処理デバイス群によってタスクが実行される、分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラムモジュール群は、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方の中に配置することができる。コンピュータシステムという用語は、分散コンピューティング環境において見ることができるような、コンピュータ群のシステムを指すのに使用することができる。
【００１１】
図１は、本発明を実施することができる適切なコンピューティングシステム環境１００の実施例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一実施例に過ぎず、本発明の用法または機能の範囲について何ら限定を示唆するものではない。また、コンピューティング環境１００が、例示的な動作環境１００に示したコンポーネントのいずれの１つ、または組合せに関連する依存関係または要件も有すると解釈してはならない。本発明の少なくとも１つの実施形態の中で使用するのに適したコンピューティングデバイスは、例示的な動作環境１００に示した各コンポーネントを含むが、本発明の別の実施形態は、一部、またはすべての不可欠ではないコンポーネント、例えば、ネットワーク通信に要求されるもの以外の入出力デバイス群を除外するデバイスを利用する。
【００１２】
とは言え、本発明を実施するための１つの例示的なシステムは、コンピュータ１１０の形態で汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、処理装置１２０、システムメモリ１３０、ならびにシステムメモリを含む様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１が含まれうるが、それらに限定されない。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含め、いくつかのタイプのバス構造のいずれであってもよい。
【００１３】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスすることができる任意の利用可能な媒体とすることができ、揮発性媒体と不揮発性媒体、取り外し可能媒体と取り外し不能媒体がともに含まれる。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含みうる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実装された、揮発性媒体と不揮発性媒体、取り外し可能媒体と取り外し不能媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピュータ１１０がアクセスすることができる他の任意の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波または他のトランスポート機構などの変調されたデータ信号中に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを具現化するものであり、任意の情報伝達媒体が含まれる。「変調されたデータ信号」という用語は、信号内に情報を符号化するような形で特性の１つまたは複数が設定、または変更されている信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響媒体、ＲＦ媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。以上の媒体のいずれかの媒体の組合せも、コンピュータ可読媒体の範囲内に含まれる。
【００１４】
システムメモリ１３０は、読出し専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性メモリおよび／または不揮発性メモリの形態で、コンピュータ記憶媒体を含む。例として、限定としてではなく、図１は、オペレーティングシステム１３４、アプリケーションプログラム群１３５、その他のプログラムモジュール群１３６、およびプログラムデータ１３７を示す。
【００１５】
また、コンピュータ１１０は、他の取り外し可能コンピュータ記憶媒体と取り外し不能コンピュータ記憶媒体、揮発性コンピュータ記憶媒体と不揮発性コンピュータ記憶媒体も含むことが可能である。単に例として、図１は、取り外し不能不揮発性磁気媒体に対して読み取りまたは書き込みを行うハードディスクドライブ１４１、取り外し可能不揮発性の磁気ディスク１５２に対して読み取りまたは書き込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭなどの取り外し可能不揮発性光ディスク１５６に対して読み取りまたは書き込みを行う光ディスクドライブ１５５を示す。例示的な動作環境で使用することができる他のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、以上には限定されない。ハードディスクドライブ１４１は、通常、インターフェース１４０のような取り外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０のような取り外し可能メモリインターフェースでシステムバス１２１に接続される。
【００１６】
コンピュータシステムは、さらなる種類の取り外し可能不揮発性の記憶装置のためのインターフェース群を含むことが可能である。例えば、コンピュータは、ＵＳＢフラッシュドライブ（ＵＦＤ）１５４を受け入れることができるＵＳＢポート１５３、またはセキュアデジタル（ＳＤ）メモリカード１５８を受け入れることができるＳＤカードスロット１５７を有することが可能である。ＵＳＢフラッシュドライブは、様々なコンピューティングデバイス上のＵＳＢポートに挿入することができるＵＳＢコネクタが取り付けられたフラッシュメモリデバイスである。ＳＤメモリカードは、切手サイズのフラッシュメモリデバイスである。ＵＳＢフラッシュドライブとＳＤカードはともに、小さいパッケージで大きい記憶容量を提供し、高いデータ転送速度を提供する。
【００１７】
前述し、図１に示したドライブ群、および関連するコンピュータ記憶媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶が、コンピュータ１１０に提供される。図１では、例えば、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム群１４５、その他のプログラムモジュール群１４６、およびプログラムデータ１４７を格納しているのを示す。以上のコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム群１３５、その他のプログラムモジュール群１３６、およびプログラムデータ１３７と同一であることも、異なることも可能であることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム群１４５、その他のプログラムモジュール群１４６、およびプログラムデータ１４７に、本明細書では、少なくとも、それらが異なるコピーであることを示すために異なる符号を与えている。ユーザは、タブレット、または電子デジタイザ１６４、マイク１６３、キーボード１６２、ならびにマウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティングデバイス１６１などの入力デバイス群を介して、コマンドおよび情報をコンピュータ１１０に入力することができる。以上、およびその他の入力デバイス群は、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの、他のインターフェースおよびバス構造で接続してもよい。また、モニタ１９１、または他のタイプのディスプレイデバイスも、ビデオインターフェース１９０のようなインターフェースを介してシステムバス１２１に接続される。また、モニタ１９１は、タッチスクリーンパネルなどと一体化されてもよい。モニタおよび／またはタッチスクリーンパネルは、タブレット型のパーソナルコンピュータの場合のように、コンピューティングデバイス１１０が組み込まれた筐体に物理的に結合することができることに留意されたい。加えて、コンピューティングデバイス１１０のようなコンピュータは、出力周辺装置インターフェース１９５などを介して接続することができる、スピーカ１９７やプリンタ１９６のような、他の周辺出力デバイス群も含むことが可能である。
【００１８】
コンピュータ１１０は、好ましくは、リモートコンピュータ１８０のような、１つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作するか、または動作するように適応可能である。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ピアデバイス、またはその他のネットワークノードであることが可能であり、通常、コンピュータ１１０に関連して前述した諸要素の一部またはすべてを含むが、メモリ記憶装置１８１だけが、図１に示されている。図１に示した論理接続には、ＬＡＮ１７１およびＷＡＮ１７３が含まれるが、その他のネットワークも含まれることが可能である。
【００１９】
ＬＡＮ環境で使用される場合、コンピュータ１１０は、ネットワークインターフェースまたはネットワークアダプタ１７０を介してＬＡＮ１７１に接続可能である。また、コンピュータ１１０は、ＷＡＮ１７３を介して通信を確立するためのモデム１７２、または他の手段も含むことが可能である。モデム１７２は内蔵または外付けであってよく、ユーザ入力インターフェース１６０、または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関連して示したプログラムモジュール群、またはこのプログラムモジュール群の諸部分は、リモートメモリ記憶装置の中に格納することができる。例として、限定としてではなく、図１は、リモートアプリケーションプログラム群１８５が、メモリデバイス１８１上に存在するのを示す。図示したネットワーク接続は、例示的であり、コンピュータ間で通信リンクを確立する他の手段も使用することができることが理解されよう。
【００２０】
本明細書で使用するネットワークリンクの「容量」（Ｃ）、または帯域幅とは、ネットワークリンクが、持続的にサポートすることができる最大データ転送速度である。容量は、ときとして、リンクの生の帯域幅と厳密でない呼ばれ方をされるが、これは、完全に正確ではない。例えば、トークンバケット（ｔｏｋｅｎ  ｂｕｃｋｅｔ）などのトラフィックシェーパ（ｓｈａｐｅｒ）が、リンクの帯域幅を「管理する」のに使用される場合、生の帯域幅と容量は相異なる。リンクの利用可能な帯域幅（Ａ）は、リンクの未使用の容量、すなわち、リンクの容量Ｃから、リンクが伝送しているトラフィックの時間平均量（ｔｉｍｅ−ａｖｅｒａｇｅｄ  ｖｏｌｕｍｅ）を引いた値である。
【００２１】
インターネットパスの「ナローリンク」は、最小の容量を有するリンクである。タイトリンクは、利用可能な帯域幅の量が最も少ないリンクである。このため、インターネットパスの容量は、そのパス上のナローリンクの容量である。インターネットパスの利用可能な帯域幅は、そのパス上のタイトリンクの利用可能な帯域幅である。一般に、パスは、同一の容量、または利用可能な帯域幅を有する複数のナローリンクおよび／またはタイトリンクを有する可能性がある。このため、本明細書の説明は、単一のナローリンク、および単一のタイトリンクを有するネットワークパスに関連して行うが、説明する技術は、複数のナローリンクおよび／またはタイトリンクを有するネットワークパスにも容易に等価に拡張できることが当業者には理解されよう。
【００２２】
前述したとおり、ネットワーク通信アプリケーションに関する主要な関心事は、インターネットパスの利用可能な帯域幅を正確に測定できることである。インターネットパス上で利用可能な帯域幅を測定するための現行の方法は、２つの一般化されたタイプ、（１）プローブレートモデル（ｐｒｏｂｌｅ  ｒａｔｅ  ｍｏｄｅｌ）（ＰＲＭ）、および（２）プローブギャップモデル（ｐｒｏｂｅ  ｇａｐ  ｍｏｄｅｌ）（ＰＧＭ）である。
【００２３】
ＰＲＭ法は、プローブパケットのトレイン（ｔｒａｉｎ）を所与の転送速度Ｒｉで、送信元コンピューティングデバイスから宛先コンピューティングデバイスに送信する。プローブパケットは、宛先において、ある転送速度Ｒ０で受信される。プローブが行われているリンク上の利用可能な帯域幅は、Ｒ０が、その速度までは、ほぼＲｉに等しい速度と一致する。次に、利用可能な帯域幅と合致するこの速度を超えて送信速度Ｒｉが増加されるにつれ、パケットは、パケットが送信されている速度では、もはや受信されない。
【００２４】
他方、ＰＧＭ法は、一対の等しいサイズのプローブパケットを送信元コンピューティングデバイスから宛先コンピューティングデバイスに送信し、ただし、パケットは、ナローリンク上、およびタイトリンク上のいずれのプローブパケットの予期される伝送時間（別々に計算される）よりも超えない遅延量ｄｉだけ、時間的に離間される。パケットは、ｄ０という、通常、より大きい間隔で、宛先に現れる。パケット間の間隔は、通常、２つのパケットの立ち下りエッジの間で測定される。ｄｉとｄ０の差に基づき（すなわち、ネットワークパスによって誘発された遅延に基づき）、関心対象のインターネットパスの利用可能な帯域幅を推定することができる。
【００２５】
ＰＧＭ法は、重大な欠点を有する。これらの方法は、インターネットパス上のナローリンクとタイトリンクが同一である場合にだけ、正しく機能する。本明細書の主要な目的は、この欠点を直す技術を説明することである。以下の説明は、ＰＧＭ法をより詳細に説明し、次いで、前述した欠点を直す方法を説明する。
【００２６】
ＰＧＭモデルに対応するパケットパスの図を図２に示す。通常、２つの等しいサイズのプローブパケット２０１、２０３が、遅延ｄｉによって隔てられて送信される。以下に説明するとおり、ＰＧＭ法は、第２のプローブパケット２０３が、タイトリンク２０５のキューの中に、第１のプローブパケット２０１が出発する前までに到着することを要する。これが、ＰＧＭ法が、タイトリンクとナローリンクが同一であることを要する理由である。
【００２７】
ｔ０を、送信側によって送信された第１のプローブパケット２０１が、タイトリンク２０５のキューの中に到着する時点であるものとする。何らかの時点ｔｉで、そのパケットは、キューの先頭に到着し、その時点で、そのパケットの伝送が始まる。伝送は、時刻ｔ２で完了する。次に、第２のパケット２０３が、時刻ｔ’にタイトリンク２０５のキューの中に到着するものと仮定する。ｔ０＜ｔ’≦ｔ２である場合、第２のパケット２０３の伝送は、ｔ０とｔ’の間にタイトリンク２０５のキューの中に到着するいずれかのパケット（すなわち、クロストラフィック）によって遅延させられ、クロストラフィックの量に相当する、出力遅延ｄ０の増加がもたらされる。詳細には、ｄｉが、ナローリンク上、およびタイトリンク上のいずれかのプローブパケットの伝送時間と等しい（ｔ’≦ｔ２であること、すなわち、第２のプローブパケットが、第１のプローブパケットが伝送を終える前までに到着することを意味する）場合、ｄ０−ｄｉは、クロストラフィックを伝送する時間とまったく等しい。したがって、利用可能な帯域幅は、Ａ＝Ｃ×（１−（ｄ０−ｄｉ）／ｄｉ）として推定することができる。
【００２８】
しかし、ｔ’＞ｔ２である（すなわち、第２のプローブパケットが、第１のプローブパケットが出発した後に到着する）場合、ＰＧＭ法は、破綻する。というのは、その場合、ｔ２とｔ’の間にキューに到着した可能性があるトラフィック、およびキューを出発した可能性があるトラフィックについての情報が、まったく存在しないからである。このため、ＰＧＭ法は、第２のプローブパケット２０３が、第１のプローブパケット２０１が伝送を終える前までに、タイトリンク２０５のキューに到着することを要する。条件ｔ’≦ｔ２は、タイトリンクとナローリンクが同一である場合、保証するのは容易である。ナローリンクの容量Ｃ（例えば、パケットペアなどの終端間技術を使用して推定される）の知識を使用して、ｄｉが、単に、ナローリンク上のいずれかのプローブパケット２１０、２０３の伝送時間を超えないことを保証にするだけでよい。
【００２９】
しかし、タイトリンクがナローリンクと同一ではない場合、ＰＧＭ法は、破綻する。ナローリンクがタイトリンクに先立つ場合、プローブパケット間の間隔は、プローブパケットがナローリンクを出ると、拡大される可能性がある。結果のギャップは、ｔ’をｔ２より大きくするだけ十分に、すなわち、第２のプローブパケットが、第１のプローブパケットが出発した後にタイトリンクに到着するようにするだけ十分に大きい可能性がある。他方、タイトリンクがナローリンクに先立つ場合、タイトリンクにおけるパケット間の間隔は、所望されるとおりである。しかし、ナローリンクが、次に、パケット間の間隔を拡大させて、タイトリンクによって決められた真の間隔が、宛先において保たれない可能性がある。
【００３０】
以上の問題が、本発明の諸実施形態では、固有のパケットプローブシリーズ構造、およびその構造の処理を使用することによって解決される。２つの仮定を行う。すなわち、（１）パスにおけるタイトリンクのＩＤ（ｉｄｅｎｔｉｔｙ）を知っていること、および（２）例えば、知られているｐａｔｈｃｈａｒ技術などの別個のツールを使用して、タイトリンクに至るまでのリンク群の容量を算出することができることである。概要を述べると、プローブパケット間の間隔が、タイトリンクに至るまでのリンク群によって生じさせられる拡大を考慮して、送信元においてまず調整されて、プローブがタイトリンクに達した際に、間隔が所望されるとおりであるようになる。さらに、本発明の実施形態では、マルチパケットプローブが使用され、マルチパケットプローブは、大きいパケットと、その後に続く２つのはるかに小さいパケットとを含む。大きいパケットは、次に、本発明の一実施形態では、タイトリンクを通過すると、ドロップされる。その後のナローリンクによって影響されるとしてもわずかしか影響されない２つの小さいパケットは、タイトリンクによって設定された間隔を宛先までずっと保つ。本発明の一実施形態では、前もって必要とされる知識は、パスにおけるいずれのリンクがタイトリンクであるか、およびタイトリンクに先立つリンク群の帯域幅だけである。これは、ｐａｔｈｃｈａｒやパケットテールゲーティング（ｔａｉｌｇａｔｉｎｇ）などの、既存の終端間（ｅｎｄ−ｔｏ−ｅｎｄ）技術を使用して推定することができる。
【００３１】
本発明の一実施形態による問題解決法を図３に示す。詳細には、図３は、いくつかのリンクを順次に通過する、本発明の実施形態によるパケットトレインの時間図（ｔｅｍｐｏｒａｌ  ｄｉａｇｒａｍ）を示す。このトレインは、３つのパケット、すなわち、大きいパイロットパケット３０１と、その後に続く２つの小さいパケット３０３、３０５から成る。パケットトレインが、一連のリンク３０７、３０９、３１１、および３１３を通過しているのが示されている。本発明の一実施形態では、大きいパケット３０１は、パスＭＴＵ（例えば、多くのネットワークパスの場合、１５００バイト）と等しいサイズであり、小さいパケット３０３、３０５は、最小サイズのＩＰパケット（４０バイト）である。しかし、当業者には理解されるとおり、その他のパケットサイズを使用してもよい。大きいパケット３０１、および第１の小さいパケット３０３は、連続して（ｂａｃｋ−ｔｏ−ｂａｃｋ）、または可能な限り接近した間隔で送信される。第２の小さいパケット３０５は、ｄ０というギャップの後に送信され、ここで、ｄ０は、タイトリンク３１１までの、タイトリンク３１１を含むすべてのリンク上における大きいパケット３０１の伝送時間の合計と等しい。それぞれの小さいパケットの伝送時間は、無視できるほど小さいと仮定することができるが、この仮定は、必須ではない。本発明の一実施形態では、大きいパケット３０１のＴｉｍｅ  ｔｏ  Ｌｉｖｅ（ＴＴＬ）プロパティは、大きいパケット３０１が、タイトリンク３１１を通過した後、即時にドロップされるように設定される。
【００３２】
このパケットトレイン３０１、３０３、３０５が、様々なリンク３０７、３０９、３１１、３１３を通ってネットワークパスを伝送されるにつれ、それぞれの相次ぐリンクにより、２つの小さいパケット３０３と３０５の間のギャップが、第１のパケット３０１の伝送時間と等しい量だけ縮むようにされる。タイトリンク３１１では、ギャップは、タイトリンク３１１上の第１のパケット３０１の伝送時間と等しい。第２のパケット３０３は、第１のパケット３０１の直ぐ後に続くので、第３のパケット３０５は、第２のパケット３０３が、タイトリンク３１１のキューを出る前に、そのキューに入る。このため、タイトリンク３１１の入力における２つの小さいパケット３０３、３０５の間の間隔は、利用可能な帯域幅の正確な推定のためにＰＧＭ法によってちょうど要求されるとおりの間隔になっている。タイトリンク３１１の出力における間隔は、クロストラフィックの伝送時間を反映する。大きいパケット３０１は、タイトリンク３１１を通過するとドロップされ、小さいパケット３０３、３０５だけが、宛先まで伝送されるので、タイトリンクの下流の帯域幅が制約されたリンク群、例えば、リンク３１３は、間隔にほとんど影響を与えない。
【００３３】
本発明の実施形態によるプロセスを示す流れ図を図４に示す。プロセス４００のステップ４０１で、送信側デバイスは、関心対象のパスにおけるタイトリンクを識別する。送信側デバイスは、ステップ４０３で、タイトリンクに至るまでの、関心対象のパスにおけるネットワークリンク群によって生じさせられるものと予期される拡大の量、および大きいパケット（例えば、ＭＴＵサイズの）がタイトリンクを通過するのにかかると予期される時間の量を計算する。その後、ステップ４０５で、送信側デバイスは、拡大を考慮して、プローブパケット間に入れる間隔を計算する。次に、送信側デバイスは、ステップ４０７で、ＭＴＵ（例えば、１５００バイト）などの、大きいサイズの第１のパケットをネットワーク上に伝送し、関心対象のパスを介して、受信側デバイスに送る。パケットのＴＴＬは、ステップ４０３で計算された、パケットがタイトリンクを通過するのにかかると予期される時間の量に設定される。
【００３４】
ステップ４０９で、送信側デバイスが、小さいパケット（例えば、４０バイトという最小サイズのＩＰパケット）をネットワーク上に伝送し、関心対象のパスを介して、受信側デバイスに送る。次に、パケットトレインを完了させるために、送信側デバイスは、ステップ４０５で先に計算された遅延時間だけ待ち、次いで、ステップ４１１で、場合により、ただし、必須ではなく第１の小さいパケットと同一サイズの、別の小さいパケットをネットワーク上に伝送し、関心対象のパスを介して、受信側デバイスに送る。
【００３５】
以上に概要を述べたステップの後、パケットトレインは、関心対象のパス、およびそのパスのリンク群を通過する。小さいパケット間の初期間隔は、予期されるとおり、ステップ４１３において、拡大を通じて変更されて、拡大の効果が、初期間隔におけるオフセットによって消されるようになる。トレイン、または少なくとも大きいパケットが、タイトリンクを通過すると、大きいパケットのＴＴＬは、有効期限が切れて、大きいパケットは、ステップ４１５でドロップされる。
【００３６】
ステップ４１７で、受信側デバイスにおいて、受信パケット（現時点では、小さいパケットだけ）が受信され、タイムスタンプが付けられて、パケット間の相対遅延を記録することができるようになる。ステップ４１９で、受信側デバイスが、タイムスタンプ情報を示す１つまたは複数の概要メッセージを送信側デバイスに転送する。最後に、送信側デバイスが、ステップ４２１で、パケット間の相対遅延ｄｆｉｎａｌを計算し、計算された遅延ｄｆｉｎａｌから、タイトリンクへの入力における既知のパケット間隔を引く。その差は、タイトリンクによって導入された遅延の量を正確に表し、そのため、関心対象のリンク上の利用可能な帯域幅が、ステップ４２３で、送信側デバイスによって標準的な方法で計算されることが可能になる。
【００３７】
前述した３つのパケットの単一のトレインの使用は、特定の時点に関する利用可能な帯域幅の推定値をもたらすことができることに留意されたい。しかし、利用可能な帯域幅は、上昇する可能性も、低下する可能性もあり、本発明の一実施形態では、特定の値ではなく、平均値が使用される。詳細には、図４で以上に示したプロセスは、特定の環境の安定性または不安定性を考慮して、適宜、複数回、繰り返され、利用可能な帯域幅値は、それぞれのそのような測定に関して計算される。計算された利用可能な帯域幅値は、次に、様々な形で一緒に平均されて、平均の利用可能な帯域幅値を形成する。
【００３８】
ネットワーク帯域幅推定のための新たな有用なシステムが説明されたことが理解されよう。本発明を実施するための、本発明者らが知っている最良の形態を含む、本発明の好ましい諸実施形態を、本明細書で説明した。以上の説明を読むことで、それらの好ましい諸実施形態の変形形態が、当業者には明白となりうる。本発明者らは、当業者が、そのような変形形態を適宜、使用することを予期しており、本発明者らは、本発明が、本明細書で具体的に説明したのとは異なる形で実施されることを企図している。したがって、本発明は、適用される法律によって許されるとおり、本明細書に添付した特許請求の範囲に記載する本件のすべての変更形態および均等形態を含む。さらに、前述した諸要素の、可能なすべての変種におけるいずれの組合せも、本明細書で特に明記しない限り、または文脈と明らかに矛盾しない限り、本発明によって包含される。
【００３９】
本発明を説明する文脈における「ある（ａ）」、「ある（ａｎ）」、および「その、前記（ｔｈｅ）」という語、ならびに類似の指示語の使用は（特に請求項の文脈において）、本明細書で特に明記しない限り、または文脈と明らかに矛盾しない限り、単数形と複数形をともに範囲に含むと解釈されるものとする。「含む、備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む（ｉｎｃｌｕｓｉｎｇ）」、および「含む（ｃｏｎｔａｉｎｉｎｇ）」という語は、特に明記しない限り、制限のない語（すなわち、「含むが、限定されない」を意味する）と解釈されるものとする。本明細書における値の範囲のいずれの列挙も、本明細書で特に明記しない限り、単に、その範囲内に含まれるそれぞれの別個の値を個々に指す略記法の役割をすることを意図しており、それぞれの別個の値が、あたかも本明細書で個々に列挙されているかのように、本明細書に組み込まれている。本明細書で説明したすべての方法は、本明細書で特に明記しない限り、または文脈と明らかに矛盾しない限り、任意の適切な順序で実行することができる。本明細書で提供するあらゆる実施例、または例示的な言い回し（例えば、「などの」）の使用は、単に、本発明をよりよく解明することを目的とし、特に主張しない限り、本発明の範囲に限定を課すものではない。本明細書におけるいずれの言い回しも、特許請求していない要素が、本発明の実施に不可欠であることを示すものと解釈してはならない。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態による通信構成プロセスを実施する無線ネットワークの一部として使用することができるコンピューティングデバイスの例示的なアーキテクチャを示す概略図である。
【図２】プローブギャップモデルに対応するパケットパスを示す図である。
【図３】本発明の実施形態による、利用可能な帯域幅を推定するのにパケットトレインが使用される形を示す理想化されたパケットタイミングプロットである。
【図４】本発明の実施形態による、タイトリンクを有するネットワークパス上の利用可能な帯域幅を推定するプロセスを示す流れ図である。
【符号の説明】
【００４１】
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３４  オペレーティングシステム
１４４  オペレーティングシステム
１３５  アプリケーションプログラム群
１４５  アプリケーションプログラム群
１３６  他のプログラムモジュール群
１４６  他のプログラムモジュール群
１３７  プログラムデータ
１４７  プログラムデータ
１４０  取り外し不能不揮発性メモリインターフェース
１５０  取り外し可能不揮発性メモリインターフェース
１５３  ＵＳＢポート
１５４  ＵＳＢフラッシュドライブ
１５７  ＳＤカードスロット
１５８  ＳＤカード
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム群
１９０  ビデオインターフェース
１９５  出力周辺装置インターフェース
１９６  プリンタ
１９７  スピーカ
【図１】
2006270953.tif 000003
【図２】
2006270953.tif 000004
【図３】
2006270953.tif 000005
【図４】
2006270953.tif 000006