利用可能帯域幅を測定する効率的かつ損失耐性を有する方法およびメカニズム
シングルバースト方法は、ネットワーク環境における利用可能帯域幅を決定するために用いられる。送信ノードは、テストパケットを受信ノードへ送信する。テストパケットのサイズは、ネットワーク環境内のネットワークパラメータに基づいて動的に決定する。送信ノードはその後、対応するテストパケットと同じシーケンス番号を有するテスト受信パケットを受信する。パケットクラスタは、テスト受信パケットから形成される。利用可能帯域幅は、ユーザにより入力されたまたはシングルバースト方法により設定された値に従ってパケットクラスタに基づいて決定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク内の帯域幅を決定することに関する。より詳細には、本発明は1以上のネットワークインタフェースを含む任意のデバイスを用いて帯域幅を決定することに関する。
【背景技術】
【0002】
ネットワークの性能を測定するための基準は、その帯域幅であるかもしれない。ネットワーク内では、帯域幅は通常、ある地点から別の地点への例えば秒などの任意の期間において運ばれうるデータ量として定義される。帯域幅は、ビット毎秒(bps)、またはバイト毎秒(Bps)で表現されてもよい。高帯域幅でのリンクは、例えば、映像プレゼンテーションでの一連の画像を保持するために十分な情報を運ぶことができるかもしれない。
【0003】
未使用の容量または利用可能帯域幅が、ネットワークの性能を示すかもしれない。特に、ネットワークにおけるパスの利用可能帯域幅での知識は、ホストが、任意の位置において利用可能な複数の候補となるネットワークの中から用いるべき適切なネットワークを選択することを手助けするかもしれない。
【0004】
いくつかの方法は、利用可能帯域幅を測定することで知られている。しかし、これらの方法は、以下の欠点を有するかもしれない。例えば、1つの課題は測定の待ち時間であるかもしれない。伝送制御プロトコル(TCP)を用いる利用可能帯域幅測定方法は、TCPの“スロースタート”フロー制御動作(behavior)のために、10秒を超えるような長い測定待ち時間を示す。既存の利用可能帯域幅測定法が長い測定待ち時間を有する別の理由は、その方法が、できるだけ正確な利用可能帯域幅を測定するからである。方法は、送信すべきデータ量または測定待ち時間を低減することに焦点を合わせていない。
【0005】
例えば、所定の期間が経過するか、または送信されたオクテットの量が所定の値に達するまで、Iperf(TCP/UDP帯域幅測定ツール)テストは継続する。送信すべきデータ量より少ないデータ量またはより短い時間の期間によって、たとえ測定精度の十分なレベルが達成されうる場合でも、そのテストが生じる。しかし、より最適化されたパラメータ値の決定は、調整プロセスを要求する。Iperfは調整プロセスを有さない。PathChirp(UDP帯域幅測定ツール)は、テストパケットの相互送信間隔を調節するために、いくつかのテスト反復を要求する調整プロセスを有する。これは、より長い測定待ち時間およびより長いテスト期間をもたらす。
【0006】
別の課題は、いくつかの利用可能帯域幅測定法が、測定精度を改善するため、または測定に必要なデータ量または待ち時間を低減するために、ユーザからの入力パラメータを要求するということである。例えば、上述されたPathChirpにおける調整プロセスは、入力パラメータとしてのパケットサイズと同様に、測定された利用可能帯域幅に関する下限および上限を要求してもよい。上に述べたIperfツールは、送信されるべきオクテットの数または測定期間を割り当てる一方、最大伝送速度とパケットサイズとはユーザによって指定される。これらのパラメータがユーザによって指定されない場合、あらかじめ設定されたデフォルト値が用いられてもよい。しかし、あらかじめ設定されたデフォルト値は、減少した測定精度、送信すべきデータ量または測定待ち時間の増加をもたらすかもしれない。
【0007】
別の課題は、パケット損失に対してロバストな利用可能帯域幅測定法が利用可能ではないという事実である。TCPベースの方法は、パケット損失に対してロバストかもしれないが、それらは、基本的にTCPに基づくアプリケーションのスループットを測定する。しかし、TCPベースの方法は、TCPのウィンドウフロー制御のために、スループットより大きい利用可能帯域幅を測定しない。
【0008】
したがって、既知の方法およびプロセスは、ネットワークに関する帯域幅情報を適時に測定しまたは提供することができない。上述したように、これらの方法とプロセスとは、測定待ち時間またはユーザ入力の必要性を含む。
【発明の概要】
【0009】
上述の問題を克服するために、開示された実施形態は、シングルバースト方法と呼ばれる新しい利用可能帯域幅方法を提供する。開示された実施形態のシングルバースト方法は、ユーザからの入力パラメータの必要なしで、送信すべきデータ量および測定待ち時間を低減する。開示された実施形態のシングルバースト方法は、さらにパケット損失に対してロバストであるように設計される。
【0010】
テストパケットの量はパケット損失に対してロバストであるように設計されたアルゴリズムを用いて、動的に決定される。開示された実施形態は、計算中の損失パケットを計上しないように、パケットクラスタを用いる。パケットクラスタは、損失パケット間の期間を除外する。
【0011】
このように、開示された実施形態は、ネットワーク環境における利用可能帯域幅を決定する方法を列挙する。方法は、複数のテストパケットを送信することを含む。各テストパケットは、シーケンス番号を含む。方法はまた、複数のテストパケットに対応する複数のテスト受信パケットを受信することを含む。各テスト受信パケットは、対応するテストパケットのシーケンス番号を含む。方法はまた、複数の配送に成功したテストパケットから少なくとも1つのパケットクラスタを形成することを含む。方法はまた、少なくとも1つのパケットクラスタと、少なくとも1つのクラスタにおける最初のテストパケットと最後のテストパケットとの間の到着時間間隔とに基づいて、利用可能帯域幅を決定することを含む。
【0012】
開示された実施形態によれば、ユーザ入力の必要性なしでネットワークにおける利用可能帯域幅を決定する方法が列挙される。方法は、送信ノードから送信すべきテストパケットの量を動的に決定することを含む。各テストパケットはそれぞれシーケンス番号を含む。
【0013】
方法はまた、受信ノードにテストパケットの量を送ることを含む。方法はまた、受信ノードからテストパケットに対応するテスト受信パケットの量を受信することを含む。各テスト受信パケットは、その対応するテストパケットのシーケンス番号を含む。方法はまた、少なくとも1つのネットワークパラメータに基づく伝送レートまたはテストパケットサイズについての値を任意に設定することを含む。方法はまた、テスト受信パケットの量および値を具備する少なくとも1つのパケットクラスタを用いて、シングルバーストアルゴリズムで、送信ノードと受信ノードとの間の利用可能帯域幅を決定することを含む。
【0014】
さらに、開示された実施形態によれば、ネットワーク環境において利用可能帯域幅を決定するためのシングルバースト方法が列挙される。シングルバースト方法は、シーケンス番号を有するテストパケットを送信ノードから受信ノードへ送ることを含む。シングルバースト方法はまた、送信ノードでシーケンス番号を有するテスト受信パケットを受信することを含む。シングルバースト方法はまた、配送されたテストパケットのシーケンス番号が連続するように、パケットクラスタに少なくとも2つの配送されたテストパケットを配置することを含む。シングルバースト方法はまた、シングルバーストアルゴリズムにおいてパケットクラスタを用いて、送信ノードと受信ノードとの間の利用可能帯域幅を決定することを含む。
【0015】
添付図面は、発明の一層の理解を提供し、かつ明細書の一部を構成するために含まれる。
【0016】
以下に列挙された図面は、説明と共に、発明の実施形態を図示し、特許請求の範囲に開示されるように、発明の本質を説明するのに役立つ。
【図面の簡単な説明】
【0017】
【図1】図1は、開示された実施形態に従うノードを有するネットワーク環境を示す図。
【図2】開示された実施形態に従う利用可能帯域幅を決定するためのシングルバースト方法を実施するためのフローチャート。
【図3】開示された実施形態に従うパケットクラスタを形成するためのパケットクラスタアルゴリズムに関するステートマシンを示す図。
【図4】開示された実施形態に従うラウンドトリップパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図。
【図5】開示された実施形態に従うフォワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図。
【図6】開示された実施形態に従うバックワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図。
【図7】開示された実施形態に従うシングルバーストプロトコルパケットのブロック図。
【図8】開示された実施形態に従う開始メッセージパケットのブロック図。
【図9】開示された実施形態に従うデータメッセージパケットのブロック図。
【図10】開示された実施形態に従うエコーまたはエコー応答メッセージパケットのブロック図。
【図11】開示された実施形態に従うレポートメッセージパケットのブロック図。
【発明を実施するための形態】
【0018】
本発明の好ましい実施形態への言及がここに詳細になされる。好ましい実施形態の例は添付図面に図示される。
【0019】
図1は、ノード102、104および106を有するネットワーク環境100を図示する。ノードが2以上のネットワークに位置してもよいので、ネットワーク環境100は「環境」と呼ばれる。したがって、2以上のネットワークは、ネットワーク環境100において利用可能でもよい。
【0020】
ノード102は、ネットワーク環境100中のパスに従って、利用可能帯域幅テストの開始に関する積極的役割を果たすという点でソースノードであってもよい。ノード104は、開示された実施形態に従う利用可能帯域幅テストの開始に関する受動的役割を果たすという点でターゲットノードであってもよい。ノード102は、ある伝送レートでパケットを送信するネットワークインタフェース1021を含む。ノード104は、ある伝送レートでパケットを送信するネットワークインタフェース1041を含む。
【0021】
フォワードパス110は、ソースノード102からターゲットノード104へのパスである。バックワードパス112は、ターゲットノード104からソースノード102へのパスである。ラウンドトリップパス114は、ソースノード102から始まり、ソースノード102で終了するフォワードパス110とバックワードパス112との連結である。
【0022】
ノード106はまた、ノード102および104への上記に開示されたパス指示を用いてもよい。実際、用語「ソースノード」および「ターゲットノード」は、単に参考として用いられ、ネットワーク環境100内のノードのうちのどれでも、利用可能帯域幅を測定するためにソースノードまたはターゲットノードとしての機能を果たしてもよい。
【0023】
開示された実施形態によれば、一方向の(directional)利用可能帯域幅は、フォワードパス110またはバックワードパス112のどちらかの利用可能帯域幅に言及してもよい。
【0024】
一方向の利用可能帯域幅を決定する際に、最大転送単位(MTU)およびラウンドトリップ時間(RTT)の用語もまた用いられてもよい。
【0025】
図2は、開示された実施形態に従う利用可能帯域幅を決定するためのシングルバースト方法を実施するためのフローチャートを図示する。シングルバーストアルゴリズムまたは方法は、ラウンドトリップ利用可能帯域幅、フォワードパス利用可能帯域幅およびバックワードパス利用可能帯域幅を測定してもよい。ステップ202は、送信ノードから受信ノードにテストパケットを送信し、送信ノードでテスト受信パケットを受信することにより実行する。これらのステップは、以下により詳細に示される。
【0026】
図1に戻って参照すると、フォワードパス利用可能帯域幅を決定する場合、ソースノード102は、伝送レートR(bps)で、ターゲットノード104へのインターネットプロトコル(IP)ヘッダを含む、サイズL(オクテット)の1以上のテストパケット116を送信する。ソースノード102はその後、ターゲットノード104からのテスト受信パケット118を待つ。
【0027】
バックワードパス利用可能帯域幅については、ターゲットノード104は、ソースノード102に1以上のテストパケット120を送信する。ターゲットノード104はその後、ソースノード102からのテスト受信パケット122を待つ。フォワード及びバックワード利用可能帯域幅解析は、一方向の利用可能帯域幅テストとして知られているかもしれない。ラウンドトリップパス利用可能帯域幅テストは、テストパケット124およびテスト受信パケット126を用いてもよい。
【0028】
テストおよび対応するテスト受信パケットは、各パケットで運ばれるシーケンス番号によって識別される。テストパケットの受け手および送り手と同様に利用可能帯域幅を計算するエンティティは、以下に開示されるように、行われたテストの種類に依存して決定される。
【0029】
ラウンドトリップパス利用可能帯域幅テストの場合には、テスト受信パケット126は、フォワードおよびバックワードパスの両方におけるボトルネックリンクを負荷(load)するため、テストパケット124と同じペイロード量を含んでもよい。一方向の利用可能帯域幅テストの場合には、テスト受信パケットは、ボトルネックリンクを負荷するためのペイロードを含まない。
【0030】
テストパケットにおいて送信されるオクテットの数は、NminおよびNmaxとして示される下限および上限をそれぞれ有する。開示された実施形態の動作を行なっている間、ソースノード102は、送り手として、テストパケットの少なくともNminオクテットを送信し、Nminオクテットを送信するか、またはNmaxオクテットを送信する後にテスト受信パケットが受信される場合、送信を停止する。したがって、送信すべきテストパケットの量は、ラウンドトリップ時間、つまりRTTおよび利用可能帯域幅に基づいて、動的に決定される。さらに、測定待ち時間は、RTT、利用可能帯域幅および伝送レートに依存する。
【0031】
図2に戻って参照すると、ステップ206は、テストパケットおよびテスト受信パケットに基づいてパケットクラスタを形成することにより実行する。開示された実施形態によれば、パケットクラスタは、連続するシーケンス番号を有する少なくとも2つのテストパケットの配送時刻(delivery time)のセットとして定義される。
【0032】
ラウンドトリップパス利用可能帯域幅テストについては、対応するテスト受信パケットがソースノード102で受信される時にテストパケットが配送されたとみなされる。フォワードパス利用可能帯域幅テストについては、テストパケットがターゲットノード104によって受信される時にテストパケットが配送されたとみなされる。バックワードパス利用可能帯域幅テストについては、テストパケットがソースノード102によって受信される時にテストパケットが配送されたとみなされる。
【0033】
パケットクラスタは、各クラスタで最小のシーケンス番号の昇順に並べられてもよい。Piは、iのシーケンス番号を有するテストパケットを示してもよく、ckは、k番目のパケットクラスタを示してもよい。もしテストパケットp1、p3、p2、p5、p6、p8、p10およびp11が列挙された順に受信されれば、パケットクラスタはc1=[p1,p3,p2]、c2=[P5,P6]、およびc3=[p10,p11]となるだろう。パケットp8は、パケットクラスタを形成しない。
【0034】
開示された実施形態は、ステップ202および204においてコンパイルされるような、テストパケット配送時刻の配列からパケットクラスタのリストを形成するためのアルゴリズムを開示する。アルゴリズムの複雑さは、テストパケットの再順序付けを要求しないテストパケットの数と関連するかもしれない。ラウンドトリップパスおよびバックワードパス利用可能帯域幅テストについては、パケットクラスタアルゴリズムがソースノード102によって実行される。フォワードパス利用可能帯域幅テストについては、パケットクラスタアルゴリズムがターゲットノード104によって実行される。
【0035】
a[ ]は、a[i]が(i−1)番目のテストパケットの配送時刻を格納する整数の配列を示し、ここでiは、配列のインデックスを示す。配列におけるゼロの配送時刻は、対応するテストパケットが運ばれなかったことを示す。テスト受信パケットは、ラウンドトリップ利用可能帯域幅テストに関するテストパケットと見なされる。配列のサイズは、最大のシーケンス番号から1を引いた値によって制限される。
【0036】
用語「last」は、最後のテストパケットのシーケンス番号を示す。用語add_cluster(int min_a,int max_a,int n)は、最小の配送時刻、最大の配送時刻、およびクラスタにおけるパケット数が、min_a、max_aおよびnのそれぞれによって与えられる新しいパケットクラスタを作成するプロシージャであってもよい。用語min(x,y)およびmax(x,y)は、xとyとの間の最小値および最大値をそれぞれ返す関数を表してもよい。
【0037】
一旦テストパケットの送信およびテスト受信パケットの受信が完了すると、パケットクラスタアルゴリズムが呼び出される。ラウンドトリップパス利用可能帯域幅テストの1つの実施形態では、テストパケットの送信およびテスト受信パケットの受信は、最後に送信されたテストパケットがステップ204において配送されている時、すなわちソースノード102が最後に送信されたテストパケットに関するテスト受信パケットを受信する時に完了したとみなされてもよい。
【0038】
ラウンドトリップパス利用可能帯域幅テストの別の実施形態では、ソースノード102は、ステップ202において最後のテストパケットを送信した後に明示的な完了指示パケットを送信する。テストパケットの送信およびテスト受信パケットの受信は、ソースノード102がステップ202においてターゲットノード104からの明示的な完了指示受信パケットを受信する時に完了したとみなされてもよい。
【0039】
フォワードパス利用可能帯域幅テストの1つの実施形態では、ソースノード102は、ステップ202において最後のテストパケットを送信した後に明示的な完了指示パケットを送信する。テストパケットの送信およびテスト受信パケットの受信は、ターゲットノード104がステップ202においてソースノード102からの明示的な完了指示パケットを受信する時に完了したとみなされてもよい。
【0040】
バックワードパス利用可能帯域幅テストの1つの実施形態では、ターゲットノード104は、ステップ202において最後のテストパケットを送信した後に明示的な完了指示パケットを送信する。テストパケットの送信およびテスト受信パケットの受信は、ソースノード102がステップ202においてターゲットノード104からの明示的な完了指示パケットを受信する時に完了したとみなされてもよい。
【0041】
パケットクラスタアルゴリズムは、図3に図示されるステートマシンに従う。ステートマシンは3つの状態から成る。クラスタ外(Out of Cluster)、適格クラスタ(Eligible Cluster)、クラスタ内(In Cluster)があり、状態「クラスタ外」は初期状態である。状態「クラスタ外」は、a[i]に対応するテストパケットが運ばれなかったことを示す。状態「クラスタ内」は、a[i]に対応するテストパケットが、現在のクラスタに属することを示す。状態「適格クラスタ」は、a[i]およびa[i+1]に対応するテストパケットが運ばれて、a[i−1]に対応するテストパケットが運ばれなかった場合かつその場合にのみ、a[i]に対応するテストパケットが、新しいクラスタに属することを示す。
【0042】
図3では、各矢印は、矢の末尾および先頭に関連する状態が、ソース状態および宛先状態をそれぞれ表わす状態遷移を表わす。ソース状態がない状態遷移は、ステートマシンを開始する初期状態遷移を示す。宛先状態がない状態遷移は、ステートマシンを終了する最終状態遷移を示す。各遷移に関連して、文字‘/’によって分離されたラベルは、条件および動作の組を示し、ラベル中の文字‘/’の左側テキストと右側テキストとは、それぞれ条件と動作とを示す。
【0043】
状態遷移のソース状態が現在の状態であるときに遷移に関連する条件が保持される場合、状態遷移に関連する動作は、宛先の状態に入る前に行われる。条件がない状態遷移は、状態遷移が無条件に起こることを示す。動作がない状態遷移は、動作が状態遷移について行われないことを示す。
【0044】
状態「クラスタ外」への初期状態遷移は、動作i=0を有する。状態「クラスタ外」から状態「適格クラスタ」への状態遷移は、i<last&&a[i]>0のときに起こり、動作n=1;min_a=max_a=[i];i++;が遷移中に行われる。状態「クラスタ外」から同じ状態への状態遷移は、i<last、かつa[i]==0のときに起こり、動作i++;が遷移中に行われる。状態「クラスタ外」からの最終状態遷移は、i==lastのときに起こり、動作は遷移中に行われない。
【0045】
状態「適格クラスタ」から状態「クラスタ内」への状態遷移は、i<last&&a[i]>0のときに起こり、動作n++;min_a=min(min_a, a[i]);max_a=max(max_a, a[i]);i++;が遷移中に行われる。状態「適格クラスタ」から状態「クラスタ外」への状態遷移は、i<last && a[i]==0のときに起こり、動作i++;が遷移中に行われる。状態「適格クラスタ」からの最終状態遷移は、i==lastのときに起こり、動作は遷移中に行われない。
【0046】
状態「クラスタ内」から同じ状態への状態遷移は、i<last&&[i]>0のときに起こり、動作n++;min_a=min(min_a,a[i]);max_a=max(max_a,a[i]);i++;が遷移中に行われる。状態「クラスタ内」から状態「状態外」への状態遷移は、i<last&&a[i]==0のときに起こり、動作add_cluster(min_a,max_a,n);i++;が遷移中に行われる。
【0047】
状態「クラスタ内」からの最終状態遷移は、i==lastのときに起こり、動作add_cluster(min_a,max_a,n);が遷移中に行われる。
【0048】
配送されたテストパケットはその後、上述した基準に基づいてクラスタ外からクラスタ内へ移動する。テストパケットは、パケットクラスタに移動せずに、利用可能帯域幅解析から除外されなくともよい。このように図3に示されるステートマシンを用いて、上述されるように、パケットクラスタは配送されたテストパケットから形成されてもよい。
【0049】
ステップ208は、利用可能帯域幅を決定するシングルバースト方法を行なうために値を設定することにより実行する。ユーザは、入力または他のインタフェースを介してこれらの値を設定してもよい。しかしながら、入力は受信されないかもしれないし、これらの値を設定するためには必要ではない。開示された実施形態では、1組の値、LおよびRtが設定される。Lは、上述されるように、テストパケットのオクテットにおけるサイズを表してもよい。Rtは、上述されるように、ビット毎秒(bps)における伝送レートを表してもよい。
【0050】
ユーザによって指定されない場合、LとRtとは、以下のように決定されてもよい。パスMTUが既知である場合、LはパスMTUに設定される。そうでなければ、Lは最小のMTUに設定される。例えば、Lは、IPv6ネットワークのために1280オクテット、またはIPv4ネットワークのために576オクテットに設定されてもよい。
【0051】
Rtは、またはテストパケットの発信(outgoing)インタフェースの最大速度とほぼ等しい値に設定されてもよい。図1に示されるように、ノード102はネットワークインタフェース1021を含み、ノード104はネットワークインタフェース1041を含む。バックワードパス利用可能帯域幅テストの場合には、Rtが、ソースおよび通信されるターゲットノードの受信(incoming)インタフェースの最大速度として、ソースノードによって指定されてもよい。好ましくは、ノード104のようなターゲットノードは、ソースノード102のネットワークインタフェース1021に関する速度よりも速い最大速度でのネットワークインタフェース1041を有するべきである。
【0052】
ステップ210は、シングルバースト方法またはアルゴリズムを用いて、利用可能帯域幅を決定することにより実行する。利用可能帯域幅は、開示された実施形態によれば、以下の方程式(1)を用いて決定されてもよい。
【数1】
【0053】
ここで、mk(mk≧2)は、k番目のパケットクラスタにおけるテストパケット数を示し、Dkはk番目のパケットクラスタにおける最初のテストパケットと最後のテストパケットとの間の秒ごとの(in seconds)配送時間間隔を示し、Cは、パケットクラスタの総数を示す。
【0054】
テストパケットが順番に運ばれないかもしれないので、クラスタの最初の配送されたテストパケットは、クラスタ中で最小のシーケンス番号を有さないかもしれない。同様に、クラスタの最後の配送されたテストパケットは、クラスタ中で最大のシーケンス番号を有さないかもしれない。
【0055】
各メトリックに関するシングルバースト方法およびアルゴリズムは、以下により詳細に開示される。簡単のため、全ての測定アルゴリズムの中で、シングルバーストテストが期間Dmax(秒)(Dmaxは、5秒のように、通常運用されるネットワークにおいてできるだけ大きなRTT値よりも大きい)の時間内に完了しないか、またはシーケンス番号がその最大値を超える場合、ソースノード102およびターゲットノード104は、直ちにそれらの状態を削除してもよく、テストが失敗と見なされる。
【0056】
加えて、送信されたオクテットの総数が、最初のテスト受信パケットを受信する前にもかかわらず、閾値Nmaxに達する場合、テストパケットの送り手は、テストパケットの送信を停止する。Nmax/Lが、シーケンス番号が最大値を超える前に送信されるテストパケットの最大数を超えないように、Nmaxが設定されてもよい。
【0057】
図4は、開示された実施形態に従うラウンドトリップパス利用可能帯域幅を測定するための一例となるシングルバーストシーケンス図400を図示する。この場合、線402によって示されるようなエコーパケットと、線404によって示されるようなエコー応答パケットとは、テストパケットおよびテスト受信パケットとしてそれぞれ用いられる。エコーおよびエコー応答メッセージはサイズLである。ソースノード102は、少なくとも(Rtのレートにおける)エコーメッセージ402のNminオクテットを送信し、Nminオクテットを送信した後にエコー応答メッセージ404が受信されるとき、またはNmaxオクテットを送信するときに、送信を停止する。
【0058】
利用可能帯域幅の計算では、ソースノード102は、テストパケットの配送時刻としてエコーメッセージ402の到着時刻を用いる。図4では、4番目のエコー応答メッセージ4040が欠落し、2つのパケットクラスタc1={p1,p2,p3}およびc2={p5,p6}が作成される。したがって、これらのパケットクラスタは、上述されるように、シングルバースト方法を用いて、利用可能帯域幅を決定する際に用いられてもよい。
【0059】
ラウンドトリップパス利用可能帯域幅テストの別の実施形態では、1つ以上の到達可能性(reachability)テストパケットを送信し、到達可能性テストメッセージに応じてターゲットノードから返された到達可能性テスト受信パケットを待機することにより、ゼロではないシーケンス番号を備えるエコーメッセージの送信の前に、ターゲットノード104がシングルバースト方法を支援するかどうかを、ソースノード102が最初に検査してもよい。この場合、ゼロ(0)シーケンス番号を備えるエコーまたはデータメッセージは、到達可能性テストパケットとして、ゼロ(0)シーケンス番号を備えるエコー応答またはデータACKメッセージは、到達可能性テスト受信パケットとしてそれぞれ使用される。
【0060】
到達可能性テストおよび到達可能性テスト受信パケットは、パケットクラスタの形成のために用いられない。到達可能性テストパケットは、ヌル(空値の)ペイロードを包含してもよい。
【0061】
ラウンドトリップパス利用可能帯域幅テストの別の実施形態では、最後のテストパケットの送信後、ソースノード102は明示的な完了指示パケットとして終了メッセージを送信してもよい。また、ターゲットノード104は、ソースノード102から受信した終了メッセージに応じて明示的な完了指示受信パケットとして終了メッセージを返してもよい。
【0062】
図5は、開示された実施形態に従うフォワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図500を図示する。この場合、データメッセージ502およびデータACKメッセージ504は、テストパケットおよびテスト受信パケットとしてそれぞれ用いられる。データメッセージ502はサイズLである。データACKメッセージ504はペイロードを包含しない。ソースノード102は、少なくともデータメッセージ502のNminオクテットを送信し、Nminオクテットを送信した後にデータACKメッセージ504が受信されるとき、またはNmaxオクテットを送信するときに送信を停止し、終了メッセージ508を送り、その後レポートメッセージ510を待機する。終了メッセージ508が受信され、その後レポートメッセージ510を返すまで、ターゲットノード104は待機する。
【0063】
図5では、3番目のデータACKメッセージ506が欠損する。ターゲットノード104は、利用可能帯域幅を計算するためにテストパケットとしてデータメッセージ502を用いる。また、c1として指定、すなわちc1={p1,p2,p3,p4,p5}として形成された1つのパケットクラスタだけ存在する。このパケットクラスタはその後、利用可能帯域幅を決定するために用いられてもよい。
【0064】
フォワードパス利用可能帯域幅テストの別の実施形態では、1つ以上の到達可能性テストパケットを送信し、到達可能性テストメッセージに応じてターゲットノードから返された到達可能性テスト受信パケットを待機することにより、ゼロではないシーケンス番号を備えるデータメッセージの送信の前に、ターゲットノード104がシングルバースト方法を支援するかどうかを、ソースノード102が最初に検査してもよい。この場合、ゼロ(0)シーケンス番号を備えるエコーまたはデータメッセージは、到達可能性テストパケットとして、ゼロ(0)シーケンス番号を備えるエコー応答またはデータACKメッセージは、到達可能性テスト受信パケットとして、それぞれ用いられる。
【0065】
到達可能性テストおよび到達可能性テスト受信パケットは、パケットクラスタの形成のために用いられない。到達可能性テストパケットは、ヌル(空値の)ペイロードを包含してもよい。
【0066】
フォワードパス利用可能帯域幅テストの別の実施形態では、ゼロ(0)シーケンス番号を備える1つ以上のデータメッセージをターゲットノード104に送信し、ゼロ(0)シーケンス番号を備えるデータメッセージに応じてターゲットノード104から返されたゼロ(0)シーケンス番号を備えるデータACKメッセージを待つことにより、ゼロではないデータメッセージを備えるデータメッセージの送信の前に、ターゲットノード104がシングルバースト方法を支援するかどうかを、ソースノード102が最初に検査してもよい。
【0067】
フォワードパス利用可能帯域幅テストの別の実施形態では、ターゲットノード104は、全てのデータメッセージに関するデータACKメッセージを返す代わりに、選択的に、データACKメッセージを返送、または送信してもよい。例えば、ターゲットノード104は、10個のデータメッセージごとに、データACKメッセージを送信してもよく、従って送信ノード102はデータACKメッセージを受信する。
【0068】
ゼロ(0)シーケンス番号を備えるデータおよびデータACKメッセージは、パケットクラスタを形成するために用いられない。ゼロ(0)シーケンス番号を備えるデータメッセージは、ヌル(空値の)ペイロードを包含してもよい。
【0069】
図6は、開示された実施形態に従うバックワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図600を図示する。この場合、データメッセージ602およびデータACKメッセージ604は、テストパケットおよびテスト受信パケットとしてそれぞれ用いられる。データメッセージ602はサイズLである。データACKメッセージ604は、ペイロードを包含しない。ソースノード102は、テストを初期化するために開始メッセージ606を送信する。開始メッセージ606は、ソースノード102によって指定されたRtを包含してもよい。開始メッセージ606がRtを包含しない場合、ターゲットノード104は、Rtの値を決定する。
【0070】
ターゲットノード104は、(Rtのレートにおいて)少なくともデータメッセージ602のNminオクテットを送信し、Nminオクテットを送信した後にデータACKメッセージ604が受信されるとき、またはNmaxオクテットを送信するときに送信を停止し、その後に終了メッセージ608を送信する。ソースノード102は、終了メッセージ608が受信されるまで待機する。図6では、3番目のデータメッセージ610が欠損し、それによって、2つのパケットクラスタc1={p1,p2}およびc2={p4,p5}を作成する。これらのクラスタはその後、上に開示されたシングルバースト方法またはアルゴリズムを用いて、利用可能帯域幅を決定するために用いられる。
【0071】
バックワードパス利用可能帯域幅テストの別の実施形態では、1つ以上の到達可能性テストパケットを送信し、到達可能性テストメッセージに応じてターゲットノード104から返された到達可能性テスト受信パケットを待機することにより、ゼロではないシーケンス番号を備えるデータメッセージの送信の前に、ソースノード102がシングルバースト方法を支援するかどうかを、ターゲットノード104が最初に検査してもよい。この場合、ゼロ(0)シーケンス番号を備えるエコーまたはデータメッセージは、到達可能性テストパケットとして、ゼロ(0)シーケンス番号を備えるエコー応答またはデータACKメッセージは、到達可能性テスト受信パケットとして、それぞれ用いられる。
【0072】
到達可能性テストおよび到達可能性テスト受信パケットは、パケットクラスタを形成するために用いられない。到達可能性テストパケットは、ヌル(空値の)ペイロードを包含してもよい。
【0073】
ゼロ(0)シーケンス番号を備えるエコーおよびエコー応答メッセージが、到達可能性テストおよび到達可能性テスト受信パケットとしてそれぞれ用いられるとき、開始メッセージの送り手が、到達可能性テスト受信パケットの送り手と同じノードであることを確かめるために、メッセージは、ペイロード中にランダムに生成された値を包含してもよい。
【0074】
バックワードパス利用可能帯域幅テストの別の実施形態では、ソースノード102は、全てのデータメッセージに関するデータACKメッセージを返す代わりに、選択的に、データACKメッセージを返送、または送信してもよい。ソースノード102は、10個のデータメッセージごとに、データACKメッセージを送信してもよい。
【0075】
以下の解析は、特に上に開示された方程式1で用いられる値を決定する際に、シングルバースト方法またはアルゴリズムの特徴および値でなされてもよい。Br、BfおよびBbは、ラウンドトリップパス利用可能帯域幅、フォワードパス利用可能帯域幅およびバックワードパス利用可能帯域幅を示す。Bは、(B≦Rt)で用いられている利用可能帯域幅測定の種類に依存するBr、BfまたはBbを示す。Brを測定する場合のボトルネックリンクがアップリンクとダウンリンクとの間の帯域幅を共有し、かつフォワードおよびバックワードパスの両方に含まれる場合、方程式2によって下に示されるような、以下の関係を保持する。
min(Bf,Bb)/2≦Br≦min(Bf,Bb) [方程式2]
そうでなければ、方程式3によって下に示されるように、以下の関係を保持する。
Br=min(Bf,Bb) [方程式3]
BfまたはBbを測定するときのボトルネックリンクと、Brを測定するときのボトルネックリンクとは異なる可能性があることに留意する。
【0076】
Trttは、最初のテストパケットおよびテスト受信パケット交換(すなわち、ラウンドトリップパス利用可能帯域幅テストの場合のゼロでないシーケンス番号を備える最初のエコーおよびエコー応答交換、および、一方向の利用可能帯域幅テストの場合のゼロでないシーケンス番号を備える最初のデータ及びデータACK交換)のRTTを示す。N、NtおよびNrは、送信されたオクテットの総数、テストパケットに関するオクテットの総数、およびテスト受信パケットに関するオクテットの総数をそれぞれ示す。
【0077】
用語
【数2】
【0078】
は、値が少なくともxの最小の整数である整数を返すフロア関数を示す。この解析では、開示された実施形態は、Nmin≦Nt≦Nmaxを想定する。また、Nmax/Lは、シーケンス番号がその最大値を超える前に送信されるテストパケットの最大値と略同じである。Ntは以下のように与えられる。
【数3】
【0079】
用語Dは、秒ごとの測定待ち時間を示す。以下の記述は、パケット損失がないまたは不規則なパケットがあることを仮定すると、シングルバーストの3つのテスト種別のそれぞれに関してNおよびDを得る。この場合、C=1であり、したがって、利用可能帯域幅は以下のように計算される。
【0080】
B=8(m1−1)L/D1 [方程式5]
よって、m1=Nt/L
D1=8(Nt−L)/B [方程式6]
ラウンドトリップパス利用可能帯域幅テストに関して、エコーおよびエコー応答メッセージだけが用いられる。したがって、
N=Nt+Nr [方程式7]
エコーおよびエコー応答メッセージは、同じメッセージ長を有するので、
Nr=Nt [方程式8]
よって、
【数4】
【0081】
方程式6および方程式7は、
【数5】
【0082】
をもたらす。それゆえ、
【数6】
【0083】
フォワードパス利用可能帯域幅テストに関して、以下の解析が示されてもよい。LA、LSおよびLRは、データACKメッセージ、開始メッセージとUDPおよびIPヘッダを含むレポートメッセージとのそれぞれの長さを示す。データACKメッセージはペイロードを包含しないので、
Nr=NtLA/L [方程式11]
となる。
【0084】
開始メッセージ及びレポートメッセージは、データ及びデータACKメッセージに加えて用いられるので、
N=Nr+Nt+LS+LR [方程式12]
それゆえ、
【数7】
【0085】
TD、TAおよびTRは、それぞれレポートメッセージおよび第1データメッセージに関するメッセージ配送遅延を示す。Trtt=TD+TAなので、
【数8】
【0086】
バックワードパス利用可能帯域幅テストに関して、以下の解析が示されてもよい。LFは、UDPおよびIPヘッダを含む終了メッセージの長さを示す。データACKメッセージは、ペイロードを含まない。開始メッセージおよび終了メッセージは、データおよびデータACKメッセージに加えて用いられる。それゆえ、
Nr=NtLA/L [方程式15]
上に示される関係を用いて、
【数9】
【0087】
それゆえ、
【数10】
【0088】
表1は、送信されたオクテットの総数および測定待ち時間での数学的解析を集約する。表1では、
【数11】
【0089】
は、NおよびDの上界をそれぞれ示す。
【表1】
【0090】
TrttはRtから独立しているので、RtがBに近づくほど、
【数12】
【0091】
は小さくなる。Rt=Bの場合、
【数13】
【0092】
の最小値が与えられる。
【0093】
開示された実施形態は、さらにシングルバースト方法を行なうためのシングルバーストプロトコル(SBP)を提供する。SBPは、転送プロトコルとしてUDPを用いる。ソースおよびターゲットノードの1組は、IPソースおよび宛先アドレス、および、ソースおよび宛先のUDPポート番号によって識別される。ラウンドトリップパス利用可能帯域幅測定を測定することに関して、エコー、エコー応答、および終了メッセージを運ぶために、UDPポート7(UDPエコープロトコル)を用いることが可能である。明示的な完了指示のための終了メッセージの使用がないラウンドトリップパス利用可能帯域幅を測定することに関して、ICMPエコーおよびエコー応答メッセージが、シングルバーストエコーおよびエコー応答メッセージに包含される対応する情報を運ぶので、ICMPエコーを用いることも可能である。
【0094】
SBPパケット700の一例となるフォーマットが図7に例証される。SBPヘッダおよびペイロードにおける符号なし整数フィールドはすべて、ネットワークバイトオーダーとして符号化される。SBPメッセージ700は、4オクテットヘッダに続き可変長ペイロードを含む。ヘッダは、4ビット種別フィールド702に続いて、8ビットセッション識別子フィールド704があり、続いて20ビット符号なし整数シーケンス番号フィールド706から成る。Trtt=5(秒)およびL=576(オクテット)に関するTrの最大値(および、したがって最大の測定可能な利用可能帯域幅)は、8(220−1)L/Trtt=966366720(bps)によって与えられる。ペイロード708はヌルであってもよい。SBPパケットサイズはUDPヘッダからわかる。
【0095】
種別フィールド702はメッセージ種別を示す。表2はメッセージ種別を示す。
【表2】
【0096】
セッション識別子フィールド704は、ソースノード102によって割り当てられたランダム値である。同じセッション識別子は、同じテスト実行(test run)を通して用いられる。シーケンス番号フィールド706は、開始、終了およびレポートメッセージのためにゼロ(0)に設定される。これらのメッセージは、パケット損失に関してロバストであるために、多くとも2回再送されるかもしれない。データおよびエコーメッセージは、1から開始するシーケンス番号を有する。対応するデータACKおよびエコー応答メッセージは、データおよびエコーメッセージと同じシーケンス番号をそれぞれ有する。
【0097】
いくつかの実施形態では、ゼロ(0)シーケンス番号を備えるエコー(およびエコー応答)とデータ(およびデータACK)は、ゼロではないシーケンス番号を備えるエコーおよびデータメッセージの送信の前に、エコー及びデータメッセージの受信ノードがシングルバースト方法を支援するかどうかを検査するために用いられる。ペイロード708は、終了メッセージに関して常に空である。
【0098】
図8は、開示された実施形態による開始メッセージパケット800のブロック図を図示する。任意の4オクテットの最高伝送レートフィールド802は、ソースノード102によって要求されるKbpsにおける最高伝送レートを包含する32ビットの符号なし整数を包含する。他のフィールドは、上述されるような役割を果たす。
【0099】
図9は、開示された実施形態によるデータメッセージパケット900のブロック図を図示する。可変長データフィールド902はゼロ以上のオクテットを包含する。他のフィールドの役割は、上述された通りである。
【0100】
図10は、開示された実施形態によるエコーまたはエコー応答メッセージパケット1000のブロック図を図示する。可変長データフィールド1002はゼロ以上のオクテットを包含する。エコー応答メッセージの可変長データフィールド1002は、対応するエコーメッセージのそれらからコピーされる必要がある。他のフィールドの役割は、上述された通りである。
【0101】
図11は、開示された実施形態によるレポートメッセージパケット1100のブロック図を図示する。テスト期間フィールド1102は、秒ごとの最大のテスト期間を包含する32ビットの符号なし整数である。全オクテット受信フィールド1104は、受信されたオクテットの総数を包含する32ビットの符号なし整数である。成功パケット数1106は、配送に成功したテストパケット数を包含する32ビットの符号なし整数である。
【0102】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【技術分野】
【0001】
本発明は、ネットワーク内の帯域幅を決定することに関する。より詳細には、本発明は1以上のネットワークインタフェースを含む任意のデバイスを用いて帯域幅を決定することに関する。
【背景技術】
【0002】
ネットワークの性能を測定するための基準は、その帯域幅であるかもしれない。ネットワーク内では、帯域幅は通常、ある地点から別の地点への例えば秒などの任意の期間において運ばれうるデータ量として定義される。帯域幅は、ビット毎秒(bps)、またはバイト毎秒(Bps)で表現されてもよい。高帯域幅でのリンクは、例えば、映像プレゼンテーションでの一連の画像を保持するために十分な情報を運ぶことができるかもしれない。
【0003】
未使用の容量または利用可能帯域幅が、ネットワークの性能を示すかもしれない。特に、ネットワークにおけるパスの利用可能帯域幅での知識は、ホストが、任意の位置において利用可能な複数の候補となるネットワークの中から用いるべき適切なネットワークを選択することを手助けするかもしれない。
【0004】
いくつかの方法は、利用可能帯域幅を測定することで知られている。しかし、これらの方法は、以下の欠点を有するかもしれない。例えば、1つの課題は測定の待ち時間であるかもしれない。伝送制御プロトコル(TCP)を用いる利用可能帯域幅測定方法は、TCPの“スロースタート”フロー制御動作(behavior)のために、10秒を超えるような長い測定待ち時間を示す。既存の利用可能帯域幅測定法が長い測定待ち時間を有する別の理由は、その方法が、できるだけ正確な利用可能帯域幅を測定するからである。方法は、送信すべきデータ量または測定待ち時間を低減することに焦点を合わせていない。
【0005】
例えば、所定の期間が経過するか、または送信されたオクテットの量が所定の値に達するまで、Iperf(TCP/UDP帯域幅測定ツール)テストは継続する。送信すべきデータ量より少ないデータ量またはより短い時間の期間によって、たとえ測定精度の十分なレベルが達成されうる場合でも、そのテストが生じる。しかし、より最適化されたパラメータ値の決定は、調整プロセスを要求する。Iperfは調整プロセスを有さない。PathChirp(UDP帯域幅測定ツール)は、テストパケットの相互送信間隔を調節するために、いくつかのテスト反復を要求する調整プロセスを有する。これは、より長い測定待ち時間およびより長いテスト期間をもたらす。
【0006】
別の課題は、いくつかの利用可能帯域幅測定法が、測定精度を改善するため、または測定に必要なデータ量または待ち時間を低減するために、ユーザからの入力パラメータを要求するということである。例えば、上述されたPathChirpにおける調整プロセスは、入力パラメータとしてのパケットサイズと同様に、測定された利用可能帯域幅に関する下限および上限を要求してもよい。上に述べたIperfツールは、送信されるべきオクテットの数または測定期間を割り当てる一方、最大伝送速度とパケットサイズとはユーザによって指定される。これらのパラメータがユーザによって指定されない場合、あらかじめ設定されたデフォルト値が用いられてもよい。しかし、あらかじめ設定されたデフォルト値は、減少した測定精度、送信すべきデータ量または測定待ち時間の増加をもたらすかもしれない。
【0007】
別の課題は、パケット損失に対してロバストな利用可能帯域幅測定法が利用可能ではないという事実である。TCPベースの方法は、パケット損失に対してロバストかもしれないが、それらは、基本的にTCPに基づくアプリケーションのスループットを測定する。しかし、TCPベースの方法は、TCPのウィンドウフロー制御のために、スループットより大きい利用可能帯域幅を測定しない。
【0008】
したがって、既知の方法およびプロセスは、ネットワークに関する帯域幅情報を適時に測定しまたは提供することができない。上述したように、これらの方法とプロセスとは、測定待ち時間またはユーザ入力の必要性を含む。
【発明の概要】
【0009】
上述の問題を克服するために、開示された実施形態は、シングルバースト方法と呼ばれる新しい利用可能帯域幅方法を提供する。開示された実施形態のシングルバースト方法は、ユーザからの入力パラメータの必要なしで、送信すべきデータ量および測定待ち時間を低減する。開示された実施形態のシングルバースト方法は、さらにパケット損失に対してロバストであるように設計される。
【0010】
テストパケットの量はパケット損失に対してロバストであるように設計されたアルゴリズムを用いて、動的に決定される。開示された実施形態は、計算中の損失パケットを計上しないように、パケットクラスタを用いる。パケットクラスタは、損失パケット間の期間を除外する。
【0011】
このように、開示された実施形態は、ネットワーク環境における利用可能帯域幅を決定する方法を列挙する。方法は、複数のテストパケットを送信することを含む。各テストパケットは、シーケンス番号を含む。方法はまた、複数のテストパケットに対応する複数のテスト受信パケットを受信することを含む。各テスト受信パケットは、対応するテストパケットのシーケンス番号を含む。方法はまた、複数の配送に成功したテストパケットから少なくとも1つのパケットクラスタを形成することを含む。方法はまた、少なくとも1つのパケットクラスタと、少なくとも1つのクラスタにおける最初のテストパケットと最後のテストパケットとの間の到着時間間隔とに基づいて、利用可能帯域幅を決定することを含む。
【0012】
開示された実施形態によれば、ユーザ入力の必要性なしでネットワークにおける利用可能帯域幅を決定する方法が列挙される。方法は、送信ノードから送信すべきテストパケットの量を動的に決定することを含む。各テストパケットはそれぞれシーケンス番号を含む。
【0013】
方法はまた、受信ノードにテストパケットの量を送ることを含む。方法はまた、受信ノードからテストパケットに対応するテスト受信パケットの量を受信することを含む。各テスト受信パケットは、その対応するテストパケットのシーケンス番号を含む。方法はまた、少なくとも1つのネットワークパラメータに基づく伝送レートまたはテストパケットサイズについての値を任意に設定することを含む。方法はまた、テスト受信パケットの量および値を具備する少なくとも1つのパケットクラスタを用いて、シングルバーストアルゴリズムで、送信ノードと受信ノードとの間の利用可能帯域幅を決定することを含む。
【0014】
さらに、開示された実施形態によれば、ネットワーク環境において利用可能帯域幅を決定するためのシングルバースト方法が列挙される。シングルバースト方法は、シーケンス番号を有するテストパケットを送信ノードから受信ノードへ送ることを含む。シングルバースト方法はまた、送信ノードでシーケンス番号を有するテスト受信パケットを受信することを含む。シングルバースト方法はまた、配送されたテストパケットのシーケンス番号が連続するように、パケットクラスタに少なくとも2つの配送されたテストパケットを配置することを含む。シングルバースト方法はまた、シングルバーストアルゴリズムにおいてパケットクラスタを用いて、送信ノードと受信ノードとの間の利用可能帯域幅を決定することを含む。
【0015】
添付図面は、発明の一層の理解を提供し、かつ明細書の一部を構成するために含まれる。
【0016】
以下に列挙された図面は、説明と共に、発明の実施形態を図示し、特許請求の範囲に開示されるように、発明の本質を説明するのに役立つ。
【図面の簡単な説明】
【0017】
【図1】図1は、開示された実施形態に従うノードを有するネットワーク環境を示す図。
【図2】開示された実施形態に従う利用可能帯域幅を決定するためのシングルバースト方法を実施するためのフローチャート。
【図3】開示された実施形態に従うパケットクラスタを形成するためのパケットクラスタアルゴリズムに関するステートマシンを示す図。
【図4】開示された実施形態に従うラウンドトリップパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図。
【図5】開示された実施形態に従うフォワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図。
【図6】開示された実施形態に従うバックワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図。
【図7】開示された実施形態に従うシングルバーストプロトコルパケットのブロック図。
【図8】開示された実施形態に従う開始メッセージパケットのブロック図。
【図9】開示された実施形態に従うデータメッセージパケットのブロック図。
【図10】開示された実施形態に従うエコーまたはエコー応答メッセージパケットのブロック図。
【図11】開示された実施形態に従うレポートメッセージパケットのブロック図。
【発明を実施するための形態】
【0018】
本発明の好ましい実施形態への言及がここに詳細になされる。好ましい実施形態の例は添付図面に図示される。
【0019】
図1は、ノード102、104および106を有するネットワーク環境100を図示する。ノードが2以上のネットワークに位置してもよいので、ネットワーク環境100は「環境」と呼ばれる。したがって、2以上のネットワークは、ネットワーク環境100において利用可能でもよい。
【0020】
ノード102は、ネットワーク環境100中のパスに従って、利用可能帯域幅テストの開始に関する積極的役割を果たすという点でソースノードであってもよい。ノード104は、開示された実施形態に従う利用可能帯域幅テストの開始に関する受動的役割を果たすという点でターゲットノードであってもよい。ノード102は、ある伝送レートでパケットを送信するネットワークインタフェース1021を含む。ノード104は、ある伝送レートでパケットを送信するネットワークインタフェース1041を含む。
【0021】
フォワードパス110は、ソースノード102からターゲットノード104へのパスである。バックワードパス112は、ターゲットノード104からソースノード102へのパスである。ラウンドトリップパス114は、ソースノード102から始まり、ソースノード102で終了するフォワードパス110とバックワードパス112との連結である。
【0022】
ノード106はまた、ノード102および104への上記に開示されたパス指示を用いてもよい。実際、用語「ソースノード」および「ターゲットノード」は、単に参考として用いられ、ネットワーク環境100内のノードのうちのどれでも、利用可能帯域幅を測定するためにソースノードまたはターゲットノードとしての機能を果たしてもよい。
【0023】
開示された実施形態によれば、一方向の(directional)利用可能帯域幅は、フォワードパス110またはバックワードパス112のどちらかの利用可能帯域幅に言及してもよい。
【0024】
一方向の利用可能帯域幅を決定する際に、最大転送単位(MTU)およびラウンドトリップ時間(RTT)の用語もまた用いられてもよい。
【0025】
図2は、開示された実施形態に従う利用可能帯域幅を決定するためのシングルバースト方法を実施するためのフローチャートを図示する。シングルバーストアルゴリズムまたは方法は、ラウンドトリップ利用可能帯域幅、フォワードパス利用可能帯域幅およびバックワードパス利用可能帯域幅を測定してもよい。ステップ202は、送信ノードから受信ノードにテストパケットを送信し、送信ノードでテスト受信パケットを受信することにより実行する。これらのステップは、以下により詳細に示される。
【0026】
図1に戻って参照すると、フォワードパス利用可能帯域幅を決定する場合、ソースノード102は、伝送レートR(bps)で、ターゲットノード104へのインターネットプロトコル(IP)ヘッダを含む、サイズL(オクテット)の1以上のテストパケット116を送信する。ソースノード102はその後、ターゲットノード104からのテスト受信パケット118を待つ。
【0027】
バックワードパス利用可能帯域幅については、ターゲットノード104は、ソースノード102に1以上のテストパケット120を送信する。ターゲットノード104はその後、ソースノード102からのテスト受信パケット122を待つ。フォワード及びバックワード利用可能帯域幅解析は、一方向の利用可能帯域幅テストとして知られているかもしれない。ラウンドトリップパス利用可能帯域幅テストは、テストパケット124およびテスト受信パケット126を用いてもよい。
【0028】
テストおよび対応するテスト受信パケットは、各パケットで運ばれるシーケンス番号によって識別される。テストパケットの受け手および送り手と同様に利用可能帯域幅を計算するエンティティは、以下に開示されるように、行われたテストの種類に依存して決定される。
【0029】
ラウンドトリップパス利用可能帯域幅テストの場合には、テスト受信パケット126は、フォワードおよびバックワードパスの両方におけるボトルネックリンクを負荷(load)するため、テストパケット124と同じペイロード量を含んでもよい。一方向の利用可能帯域幅テストの場合には、テスト受信パケットは、ボトルネックリンクを負荷するためのペイロードを含まない。
【0030】
テストパケットにおいて送信されるオクテットの数は、NminおよびNmaxとして示される下限および上限をそれぞれ有する。開示された実施形態の動作を行なっている間、ソースノード102は、送り手として、テストパケットの少なくともNminオクテットを送信し、Nminオクテットを送信するか、またはNmaxオクテットを送信する後にテスト受信パケットが受信される場合、送信を停止する。したがって、送信すべきテストパケットの量は、ラウンドトリップ時間、つまりRTTおよび利用可能帯域幅に基づいて、動的に決定される。さらに、測定待ち時間は、RTT、利用可能帯域幅および伝送レートに依存する。
【0031】
図2に戻って参照すると、ステップ206は、テストパケットおよびテスト受信パケットに基づいてパケットクラスタを形成することにより実行する。開示された実施形態によれば、パケットクラスタは、連続するシーケンス番号を有する少なくとも2つのテストパケットの配送時刻(delivery time)のセットとして定義される。
【0032】
ラウンドトリップパス利用可能帯域幅テストについては、対応するテスト受信パケットがソースノード102で受信される時にテストパケットが配送されたとみなされる。フォワードパス利用可能帯域幅テストについては、テストパケットがターゲットノード104によって受信される時にテストパケットが配送されたとみなされる。バックワードパス利用可能帯域幅テストについては、テストパケットがソースノード102によって受信される時にテストパケットが配送されたとみなされる。
【0033】
パケットクラスタは、各クラスタで最小のシーケンス番号の昇順に並べられてもよい。Piは、iのシーケンス番号を有するテストパケットを示してもよく、ckは、k番目のパケットクラスタを示してもよい。もしテストパケットp1、p3、p2、p5、p6、p8、p10およびp11が列挙された順に受信されれば、パケットクラスタはc1=[p1,p3,p2]、c2=[P5,P6]、およびc3=[p10,p11]となるだろう。パケットp8は、パケットクラスタを形成しない。
【0034】
開示された実施形態は、ステップ202および204においてコンパイルされるような、テストパケット配送時刻の配列からパケットクラスタのリストを形成するためのアルゴリズムを開示する。アルゴリズムの複雑さは、テストパケットの再順序付けを要求しないテストパケットの数と関連するかもしれない。ラウンドトリップパスおよびバックワードパス利用可能帯域幅テストについては、パケットクラスタアルゴリズムがソースノード102によって実行される。フォワードパス利用可能帯域幅テストについては、パケットクラスタアルゴリズムがターゲットノード104によって実行される。
【0035】
a[ ]は、a[i]が(i−1)番目のテストパケットの配送時刻を格納する整数の配列を示し、ここでiは、配列のインデックスを示す。配列におけるゼロの配送時刻は、対応するテストパケットが運ばれなかったことを示す。テスト受信パケットは、ラウンドトリップ利用可能帯域幅テストに関するテストパケットと見なされる。配列のサイズは、最大のシーケンス番号から1を引いた値によって制限される。
【0036】
用語「last」は、最後のテストパケットのシーケンス番号を示す。用語add_cluster(int min_a,int max_a,int n)は、最小の配送時刻、最大の配送時刻、およびクラスタにおけるパケット数が、min_a、max_aおよびnのそれぞれによって与えられる新しいパケットクラスタを作成するプロシージャであってもよい。用語min(x,y)およびmax(x,y)は、xとyとの間の最小値および最大値をそれぞれ返す関数を表してもよい。
【0037】
一旦テストパケットの送信およびテスト受信パケットの受信が完了すると、パケットクラスタアルゴリズムが呼び出される。ラウンドトリップパス利用可能帯域幅テストの1つの実施形態では、テストパケットの送信およびテスト受信パケットの受信は、最後に送信されたテストパケットがステップ204において配送されている時、すなわちソースノード102が最後に送信されたテストパケットに関するテスト受信パケットを受信する時に完了したとみなされてもよい。
【0038】
ラウンドトリップパス利用可能帯域幅テストの別の実施形態では、ソースノード102は、ステップ202において最後のテストパケットを送信した後に明示的な完了指示パケットを送信する。テストパケットの送信およびテスト受信パケットの受信は、ソースノード102がステップ202においてターゲットノード104からの明示的な完了指示受信パケットを受信する時に完了したとみなされてもよい。
【0039】
フォワードパス利用可能帯域幅テストの1つの実施形態では、ソースノード102は、ステップ202において最後のテストパケットを送信した後に明示的な完了指示パケットを送信する。テストパケットの送信およびテスト受信パケットの受信は、ターゲットノード104がステップ202においてソースノード102からの明示的な完了指示パケットを受信する時に完了したとみなされてもよい。
【0040】
バックワードパス利用可能帯域幅テストの1つの実施形態では、ターゲットノード104は、ステップ202において最後のテストパケットを送信した後に明示的な完了指示パケットを送信する。テストパケットの送信およびテスト受信パケットの受信は、ソースノード102がステップ202においてターゲットノード104からの明示的な完了指示パケットを受信する時に完了したとみなされてもよい。
【0041】
パケットクラスタアルゴリズムは、図3に図示されるステートマシンに従う。ステートマシンは3つの状態から成る。クラスタ外(Out of Cluster)、適格クラスタ(Eligible Cluster)、クラスタ内(In Cluster)があり、状態「クラスタ外」は初期状態である。状態「クラスタ外」は、a[i]に対応するテストパケットが運ばれなかったことを示す。状態「クラスタ内」は、a[i]に対応するテストパケットが、現在のクラスタに属することを示す。状態「適格クラスタ」は、a[i]およびa[i+1]に対応するテストパケットが運ばれて、a[i−1]に対応するテストパケットが運ばれなかった場合かつその場合にのみ、a[i]に対応するテストパケットが、新しいクラスタに属することを示す。
【0042】
図3では、各矢印は、矢の末尾および先頭に関連する状態が、ソース状態および宛先状態をそれぞれ表わす状態遷移を表わす。ソース状態がない状態遷移は、ステートマシンを開始する初期状態遷移を示す。宛先状態がない状態遷移は、ステートマシンを終了する最終状態遷移を示す。各遷移に関連して、文字‘/’によって分離されたラベルは、条件および動作の組を示し、ラベル中の文字‘/’の左側テキストと右側テキストとは、それぞれ条件と動作とを示す。
【0043】
状態遷移のソース状態が現在の状態であるときに遷移に関連する条件が保持される場合、状態遷移に関連する動作は、宛先の状態に入る前に行われる。条件がない状態遷移は、状態遷移が無条件に起こることを示す。動作がない状態遷移は、動作が状態遷移について行われないことを示す。
【0044】
状態「クラスタ外」への初期状態遷移は、動作i=0を有する。状態「クラスタ外」から状態「適格クラスタ」への状態遷移は、i<last&&a[i]>0のときに起こり、動作n=1;min_a=max_a=[i];i++;が遷移中に行われる。状態「クラスタ外」から同じ状態への状態遷移は、i<last、かつa[i]==0のときに起こり、動作i++;が遷移中に行われる。状態「クラスタ外」からの最終状態遷移は、i==lastのときに起こり、動作は遷移中に行われない。
【0045】
状態「適格クラスタ」から状態「クラスタ内」への状態遷移は、i<last&&a[i]>0のときに起こり、動作n++;min_a=min(min_a, a[i]);max_a=max(max_a, a[i]);i++;が遷移中に行われる。状態「適格クラスタ」から状態「クラスタ外」への状態遷移は、i<last && a[i]==0のときに起こり、動作i++;が遷移中に行われる。状態「適格クラスタ」からの最終状態遷移は、i==lastのときに起こり、動作は遷移中に行われない。
【0046】
状態「クラスタ内」から同じ状態への状態遷移は、i<last&&[i]>0のときに起こり、動作n++;min_a=min(min_a,a[i]);max_a=max(max_a,a[i]);i++;が遷移中に行われる。状態「クラスタ内」から状態「状態外」への状態遷移は、i<last&&a[i]==0のときに起こり、動作add_cluster(min_a,max_a,n);i++;が遷移中に行われる。
【0047】
状態「クラスタ内」からの最終状態遷移は、i==lastのときに起こり、動作add_cluster(min_a,max_a,n);が遷移中に行われる。
【0048】
配送されたテストパケットはその後、上述した基準に基づいてクラスタ外からクラスタ内へ移動する。テストパケットは、パケットクラスタに移動せずに、利用可能帯域幅解析から除外されなくともよい。このように図3に示されるステートマシンを用いて、上述されるように、パケットクラスタは配送されたテストパケットから形成されてもよい。
【0049】
ステップ208は、利用可能帯域幅を決定するシングルバースト方法を行なうために値を設定することにより実行する。ユーザは、入力または他のインタフェースを介してこれらの値を設定してもよい。しかしながら、入力は受信されないかもしれないし、これらの値を設定するためには必要ではない。開示された実施形態では、1組の値、LおよびRtが設定される。Lは、上述されるように、テストパケットのオクテットにおけるサイズを表してもよい。Rtは、上述されるように、ビット毎秒(bps)における伝送レートを表してもよい。
【0050】
ユーザによって指定されない場合、LとRtとは、以下のように決定されてもよい。パスMTUが既知である場合、LはパスMTUに設定される。そうでなければ、Lは最小のMTUに設定される。例えば、Lは、IPv6ネットワークのために1280オクテット、またはIPv4ネットワークのために576オクテットに設定されてもよい。
【0051】
Rtは、またはテストパケットの発信(outgoing)インタフェースの最大速度とほぼ等しい値に設定されてもよい。図1に示されるように、ノード102はネットワークインタフェース1021を含み、ノード104はネットワークインタフェース1041を含む。バックワードパス利用可能帯域幅テストの場合には、Rtが、ソースおよび通信されるターゲットノードの受信(incoming)インタフェースの最大速度として、ソースノードによって指定されてもよい。好ましくは、ノード104のようなターゲットノードは、ソースノード102のネットワークインタフェース1021に関する速度よりも速い最大速度でのネットワークインタフェース1041を有するべきである。
【0052】
ステップ210は、シングルバースト方法またはアルゴリズムを用いて、利用可能帯域幅を決定することにより実行する。利用可能帯域幅は、開示された実施形態によれば、以下の方程式(1)を用いて決定されてもよい。
【数1】
【0053】
ここで、mk(mk≧2)は、k番目のパケットクラスタにおけるテストパケット数を示し、Dkはk番目のパケットクラスタにおける最初のテストパケットと最後のテストパケットとの間の秒ごとの(in seconds)配送時間間隔を示し、Cは、パケットクラスタの総数を示す。
【0054】
テストパケットが順番に運ばれないかもしれないので、クラスタの最初の配送されたテストパケットは、クラスタ中で最小のシーケンス番号を有さないかもしれない。同様に、クラスタの最後の配送されたテストパケットは、クラスタ中で最大のシーケンス番号を有さないかもしれない。
【0055】
各メトリックに関するシングルバースト方法およびアルゴリズムは、以下により詳細に開示される。簡単のため、全ての測定アルゴリズムの中で、シングルバーストテストが期間Dmax(秒)(Dmaxは、5秒のように、通常運用されるネットワークにおいてできるだけ大きなRTT値よりも大きい)の時間内に完了しないか、またはシーケンス番号がその最大値を超える場合、ソースノード102およびターゲットノード104は、直ちにそれらの状態を削除してもよく、テストが失敗と見なされる。
【0056】
加えて、送信されたオクテットの総数が、最初のテスト受信パケットを受信する前にもかかわらず、閾値Nmaxに達する場合、テストパケットの送り手は、テストパケットの送信を停止する。Nmax/Lが、シーケンス番号が最大値を超える前に送信されるテストパケットの最大数を超えないように、Nmaxが設定されてもよい。
【0057】
図4は、開示された実施形態に従うラウンドトリップパス利用可能帯域幅を測定するための一例となるシングルバーストシーケンス図400を図示する。この場合、線402によって示されるようなエコーパケットと、線404によって示されるようなエコー応答パケットとは、テストパケットおよびテスト受信パケットとしてそれぞれ用いられる。エコーおよびエコー応答メッセージはサイズLである。ソースノード102は、少なくとも(Rtのレートにおける)エコーメッセージ402のNminオクテットを送信し、Nminオクテットを送信した後にエコー応答メッセージ404が受信されるとき、またはNmaxオクテットを送信するときに、送信を停止する。
【0058】
利用可能帯域幅の計算では、ソースノード102は、テストパケットの配送時刻としてエコーメッセージ402の到着時刻を用いる。図4では、4番目のエコー応答メッセージ4040が欠落し、2つのパケットクラスタc1={p1,p2,p3}およびc2={p5,p6}が作成される。したがって、これらのパケットクラスタは、上述されるように、シングルバースト方法を用いて、利用可能帯域幅を決定する際に用いられてもよい。
【0059】
ラウンドトリップパス利用可能帯域幅テストの別の実施形態では、1つ以上の到達可能性(reachability)テストパケットを送信し、到達可能性テストメッセージに応じてターゲットノードから返された到達可能性テスト受信パケットを待機することにより、ゼロではないシーケンス番号を備えるエコーメッセージの送信の前に、ターゲットノード104がシングルバースト方法を支援するかどうかを、ソースノード102が最初に検査してもよい。この場合、ゼロ(0)シーケンス番号を備えるエコーまたはデータメッセージは、到達可能性テストパケットとして、ゼロ(0)シーケンス番号を備えるエコー応答またはデータACKメッセージは、到達可能性テスト受信パケットとしてそれぞれ使用される。
【0060】
到達可能性テストおよび到達可能性テスト受信パケットは、パケットクラスタの形成のために用いられない。到達可能性テストパケットは、ヌル(空値の)ペイロードを包含してもよい。
【0061】
ラウンドトリップパス利用可能帯域幅テストの別の実施形態では、最後のテストパケットの送信後、ソースノード102は明示的な完了指示パケットとして終了メッセージを送信してもよい。また、ターゲットノード104は、ソースノード102から受信した終了メッセージに応じて明示的な完了指示受信パケットとして終了メッセージを返してもよい。
【0062】
図5は、開示された実施形態に従うフォワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図500を図示する。この場合、データメッセージ502およびデータACKメッセージ504は、テストパケットおよびテスト受信パケットとしてそれぞれ用いられる。データメッセージ502はサイズLである。データACKメッセージ504はペイロードを包含しない。ソースノード102は、少なくともデータメッセージ502のNminオクテットを送信し、Nminオクテットを送信した後にデータACKメッセージ504が受信されるとき、またはNmaxオクテットを送信するときに送信を停止し、終了メッセージ508を送り、その後レポートメッセージ510を待機する。終了メッセージ508が受信され、その後レポートメッセージ510を返すまで、ターゲットノード104は待機する。
【0063】
図5では、3番目のデータACKメッセージ506が欠損する。ターゲットノード104は、利用可能帯域幅を計算するためにテストパケットとしてデータメッセージ502を用いる。また、c1として指定、すなわちc1={p1,p2,p3,p4,p5}として形成された1つのパケットクラスタだけ存在する。このパケットクラスタはその後、利用可能帯域幅を決定するために用いられてもよい。
【0064】
フォワードパス利用可能帯域幅テストの別の実施形態では、1つ以上の到達可能性テストパケットを送信し、到達可能性テストメッセージに応じてターゲットノードから返された到達可能性テスト受信パケットを待機することにより、ゼロではないシーケンス番号を備えるデータメッセージの送信の前に、ターゲットノード104がシングルバースト方法を支援するかどうかを、ソースノード102が最初に検査してもよい。この場合、ゼロ(0)シーケンス番号を備えるエコーまたはデータメッセージは、到達可能性テストパケットとして、ゼロ(0)シーケンス番号を備えるエコー応答またはデータACKメッセージは、到達可能性テスト受信パケットとして、それぞれ用いられる。
【0065】
到達可能性テストおよび到達可能性テスト受信パケットは、パケットクラスタの形成のために用いられない。到達可能性テストパケットは、ヌル(空値の)ペイロードを包含してもよい。
【0066】
フォワードパス利用可能帯域幅テストの別の実施形態では、ゼロ(0)シーケンス番号を備える1つ以上のデータメッセージをターゲットノード104に送信し、ゼロ(0)シーケンス番号を備えるデータメッセージに応じてターゲットノード104から返されたゼロ(0)シーケンス番号を備えるデータACKメッセージを待つことにより、ゼロではないデータメッセージを備えるデータメッセージの送信の前に、ターゲットノード104がシングルバースト方法を支援するかどうかを、ソースノード102が最初に検査してもよい。
【0067】
フォワードパス利用可能帯域幅テストの別の実施形態では、ターゲットノード104は、全てのデータメッセージに関するデータACKメッセージを返す代わりに、選択的に、データACKメッセージを返送、または送信してもよい。例えば、ターゲットノード104は、10個のデータメッセージごとに、データACKメッセージを送信してもよく、従って送信ノード102はデータACKメッセージを受信する。
【0068】
ゼロ(0)シーケンス番号を備えるデータおよびデータACKメッセージは、パケットクラスタを形成するために用いられない。ゼロ(0)シーケンス番号を備えるデータメッセージは、ヌル(空値の)ペイロードを包含してもよい。
【0069】
図6は、開示された実施形態に従うバックワードパス利用可能帯域幅を測定する一例となるシングルバーストシーケンス図600を図示する。この場合、データメッセージ602およびデータACKメッセージ604は、テストパケットおよびテスト受信パケットとしてそれぞれ用いられる。データメッセージ602はサイズLである。データACKメッセージ604は、ペイロードを包含しない。ソースノード102は、テストを初期化するために開始メッセージ606を送信する。開始メッセージ606は、ソースノード102によって指定されたRtを包含してもよい。開始メッセージ606がRtを包含しない場合、ターゲットノード104は、Rtの値を決定する。
【0070】
ターゲットノード104は、(Rtのレートにおいて)少なくともデータメッセージ602のNminオクテットを送信し、Nminオクテットを送信した後にデータACKメッセージ604が受信されるとき、またはNmaxオクテットを送信するときに送信を停止し、その後に終了メッセージ608を送信する。ソースノード102は、終了メッセージ608が受信されるまで待機する。図6では、3番目のデータメッセージ610が欠損し、それによって、2つのパケットクラスタc1={p1,p2}およびc2={p4,p5}を作成する。これらのクラスタはその後、上に開示されたシングルバースト方法またはアルゴリズムを用いて、利用可能帯域幅を決定するために用いられる。
【0071】
バックワードパス利用可能帯域幅テストの別の実施形態では、1つ以上の到達可能性テストパケットを送信し、到達可能性テストメッセージに応じてターゲットノード104から返された到達可能性テスト受信パケットを待機することにより、ゼロではないシーケンス番号を備えるデータメッセージの送信の前に、ソースノード102がシングルバースト方法を支援するかどうかを、ターゲットノード104が最初に検査してもよい。この場合、ゼロ(0)シーケンス番号を備えるエコーまたはデータメッセージは、到達可能性テストパケットとして、ゼロ(0)シーケンス番号を備えるエコー応答またはデータACKメッセージは、到達可能性テスト受信パケットとして、それぞれ用いられる。
【0072】
到達可能性テストおよび到達可能性テスト受信パケットは、パケットクラスタを形成するために用いられない。到達可能性テストパケットは、ヌル(空値の)ペイロードを包含してもよい。
【0073】
ゼロ(0)シーケンス番号を備えるエコーおよびエコー応答メッセージが、到達可能性テストおよび到達可能性テスト受信パケットとしてそれぞれ用いられるとき、開始メッセージの送り手が、到達可能性テスト受信パケットの送り手と同じノードであることを確かめるために、メッセージは、ペイロード中にランダムに生成された値を包含してもよい。
【0074】
バックワードパス利用可能帯域幅テストの別の実施形態では、ソースノード102は、全てのデータメッセージに関するデータACKメッセージを返す代わりに、選択的に、データACKメッセージを返送、または送信してもよい。ソースノード102は、10個のデータメッセージごとに、データACKメッセージを送信してもよい。
【0075】
以下の解析は、特に上に開示された方程式1で用いられる値を決定する際に、シングルバースト方法またはアルゴリズムの特徴および値でなされてもよい。Br、BfおよびBbは、ラウンドトリップパス利用可能帯域幅、フォワードパス利用可能帯域幅およびバックワードパス利用可能帯域幅を示す。Bは、(B≦Rt)で用いられている利用可能帯域幅測定の種類に依存するBr、BfまたはBbを示す。Brを測定する場合のボトルネックリンクがアップリンクとダウンリンクとの間の帯域幅を共有し、かつフォワードおよびバックワードパスの両方に含まれる場合、方程式2によって下に示されるような、以下の関係を保持する。
min(Bf,Bb)/2≦Br≦min(Bf,Bb) [方程式2]
そうでなければ、方程式3によって下に示されるように、以下の関係を保持する。
Br=min(Bf,Bb) [方程式3]
BfまたはBbを測定するときのボトルネックリンクと、Brを測定するときのボトルネックリンクとは異なる可能性があることに留意する。
【0076】
Trttは、最初のテストパケットおよびテスト受信パケット交換(すなわち、ラウンドトリップパス利用可能帯域幅テストの場合のゼロでないシーケンス番号を備える最初のエコーおよびエコー応答交換、および、一方向の利用可能帯域幅テストの場合のゼロでないシーケンス番号を備える最初のデータ及びデータACK交換)のRTTを示す。N、NtおよびNrは、送信されたオクテットの総数、テストパケットに関するオクテットの総数、およびテスト受信パケットに関するオクテットの総数をそれぞれ示す。
【0077】
用語
【数2】
【0078】
は、値が少なくともxの最小の整数である整数を返すフロア関数を示す。この解析では、開示された実施形態は、Nmin≦Nt≦Nmaxを想定する。また、Nmax/Lは、シーケンス番号がその最大値を超える前に送信されるテストパケットの最大値と略同じである。Ntは以下のように与えられる。
【数3】
【0079】
用語Dは、秒ごとの測定待ち時間を示す。以下の記述は、パケット損失がないまたは不規則なパケットがあることを仮定すると、シングルバーストの3つのテスト種別のそれぞれに関してNおよびDを得る。この場合、C=1であり、したがって、利用可能帯域幅は以下のように計算される。
【0080】
B=8(m1−1)L/D1 [方程式5]
よって、m1=Nt/L
D1=8(Nt−L)/B [方程式6]
ラウンドトリップパス利用可能帯域幅テストに関して、エコーおよびエコー応答メッセージだけが用いられる。したがって、
N=Nt+Nr [方程式7]
エコーおよびエコー応答メッセージは、同じメッセージ長を有するので、
Nr=Nt [方程式8]
よって、
【数4】
【0081】
方程式6および方程式7は、
【数5】
【0082】
をもたらす。それゆえ、
【数6】
【0083】
フォワードパス利用可能帯域幅テストに関して、以下の解析が示されてもよい。LA、LSおよびLRは、データACKメッセージ、開始メッセージとUDPおよびIPヘッダを含むレポートメッセージとのそれぞれの長さを示す。データACKメッセージはペイロードを包含しないので、
Nr=NtLA/L [方程式11]
となる。
【0084】
開始メッセージ及びレポートメッセージは、データ及びデータACKメッセージに加えて用いられるので、
N=Nr+Nt+LS+LR [方程式12]
それゆえ、
【数7】
【0085】
TD、TAおよびTRは、それぞれレポートメッセージおよび第1データメッセージに関するメッセージ配送遅延を示す。Trtt=TD+TAなので、
【数8】
【0086】
バックワードパス利用可能帯域幅テストに関して、以下の解析が示されてもよい。LFは、UDPおよびIPヘッダを含む終了メッセージの長さを示す。データACKメッセージは、ペイロードを含まない。開始メッセージおよび終了メッセージは、データおよびデータACKメッセージに加えて用いられる。それゆえ、
Nr=NtLA/L [方程式15]
上に示される関係を用いて、
【数9】
【0087】
それゆえ、
【数10】
【0088】
表1は、送信されたオクテットの総数および測定待ち時間での数学的解析を集約する。表1では、
【数11】
【0089】
は、NおよびDの上界をそれぞれ示す。
【表1】
【0090】
TrttはRtから独立しているので、RtがBに近づくほど、
【数12】
【0091】
は小さくなる。Rt=Bの場合、
【数13】
【0092】
の最小値が与えられる。
【0093】
開示された実施形態は、さらにシングルバースト方法を行なうためのシングルバーストプロトコル(SBP)を提供する。SBPは、転送プロトコルとしてUDPを用いる。ソースおよびターゲットノードの1組は、IPソースおよび宛先アドレス、および、ソースおよび宛先のUDPポート番号によって識別される。ラウンドトリップパス利用可能帯域幅測定を測定することに関して、エコー、エコー応答、および終了メッセージを運ぶために、UDPポート7(UDPエコープロトコル)を用いることが可能である。明示的な完了指示のための終了メッセージの使用がないラウンドトリップパス利用可能帯域幅を測定することに関して、ICMPエコーおよびエコー応答メッセージが、シングルバーストエコーおよびエコー応答メッセージに包含される対応する情報を運ぶので、ICMPエコーを用いることも可能である。
【0094】
SBPパケット700の一例となるフォーマットが図7に例証される。SBPヘッダおよびペイロードにおける符号なし整数フィールドはすべて、ネットワークバイトオーダーとして符号化される。SBPメッセージ700は、4オクテットヘッダに続き可変長ペイロードを含む。ヘッダは、4ビット種別フィールド702に続いて、8ビットセッション識別子フィールド704があり、続いて20ビット符号なし整数シーケンス番号フィールド706から成る。Trtt=5(秒)およびL=576(オクテット)に関するTrの最大値(および、したがって最大の測定可能な利用可能帯域幅)は、8(220−1)L/Trtt=966366720(bps)によって与えられる。ペイロード708はヌルであってもよい。SBPパケットサイズはUDPヘッダからわかる。
【0095】
種別フィールド702はメッセージ種別を示す。表2はメッセージ種別を示す。
【表2】
【0096】
セッション識別子フィールド704は、ソースノード102によって割り当てられたランダム値である。同じセッション識別子は、同じテスト実行(test run)を通して用いられる。シーケンス番号フィールド706は、開始、終了およびレポートメッセージのためにゼロ(0)に設定される。これらのメッセージは、パケット損失に関してロバストであるために、多くとも2回再送されるかもしれない。データおよびエコーメッセージは、1から開始するシーケンス番号を有する。対応するデータACKおよびエコー応答メッセージは、データおよびエコーメッセージと同じシーケンス番号をそれぞれ有する。
【0097】
いくつかの実施形態では、ゼロ(0)シーケンス番号を備えるエコー(およびエコー応答)とデータ(およびデータACK)は、ゼロではないシーケンス番号を備えるエコーおよびデータメッセージの送信の前に、エコー及びデータメッセージの受信ノードがシングルバースト方法を支援するかどうかを検査するために用いられる。ペイロード708は、終了メッセージに関して常に空である。
【0098】
図8は、開示された実施形態による開始メッセージパケット800のブロック図を図示する。任意の4オクテットの最高伝送レートフィールド802は、ソースノード102によって要求されるKbpsにおける最高伝送レートを包含する32ビットの符号なし整数を包含する。他のフィールドは、上述されるような役割を果たす。
【0099】
図9は、開示された実施形態によるデータメッセージパケット900のブロック図を図示する。可変長データフィールド902はゼロ以上のオクテットを包含する。他のフィールドの役割は、上述された通りである。
【0100】
図10は、開示された実施形態によるエコーまたはエコー応答メッセージパケット1000のブロック図を図示する。可変長データフィールド1002はゼロ以上のオクテットを包含する。エコー応答メッセージの可変長データフィールド1002は、対応するエコーメッセージのそれらからコピーされる必要がある。他のフィールドの役割は、上述された通りである。
【0101】
図11は、開示された実施形態によるレポートメッセージパケット1100のブロック図を図示する。テスト期間フィールド1102は、秒ごとの最大のテスト期間を包含する32ビットの符号なし整数である。全オクテット受信フィールド1104は、受信されたオクテットの総数を包含する32ビットの符号なし整数である。成功パケット数1106は、配送に成功したテストパケット数を包含する32ビットの符号なし整数である。
【0102】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【特許請求の範囲】
【請求項1】
ネットワーク環境における利用可能帯域幅を決定する方法であって、前記方法は、
複数のテストパケットを送信し、各テストパケットは、シーケンス番号を含み、
前記複数のテストパケットに対応する複数のテスト受信パケットを受信し、各テスト受信パケットは、対応するテストパケットの前記シーケンス番号を含み、
前記複数のテスト受信パケットから少なくとも1つのパケットクラスタを形成し、
前記少なくとも1つのクラスタにおける最初のテストパケットと最後のテストパケットとの間の配送時間間隔と、前記少なくとも1つのパケットクラスタとに基づいて利用可能帯域幅を決定することを具備する方法。
【請求項2】
送信すべき前記複数のテストパケットの量を動的に決定することをさらに具備する請求項1の方法。
【請求項3】
前記量は、前記ネットワーク環境内のラウンドトリップ時間に基づく請求項2の方法。
【請求項4】
前記決定するステップは、前記利用可能帯域幅を決定するためにシングルバーストアルゴリズムを用いることを含む請求項1の方法。
【請求項5】
前記少なくとも1つのパケットクラスタは、連続したシーケンス番号を有する少なくとも2つのテストパケットを含む請求項1の方法。
【請求項6】
テスト受信パケットを廃棄することをさらに具備する請求項1の方法。
【請求項7】
ユーザ入力のない前記決定するステップに関する値を設定することをさらに具備する請求項1の方法。
【請求項8】
前記形成するステップは、テストパケット配送時刻の配列から前記少なくとも1つのパケットクラスタを形成することを含む請求項1の方法。
【請求項9】
前記決定するステップは、方程式
【数1】
を用いて、前記利用可能帯域幅を決定することを含み、
mk(mk≧2)は、k番目のパケットクラスタにおけるテストパケットの数を示し、Dkは、k番目のパケットクラスタにおける最初のテストパケットと最後のテストパケットとの間の秒ごとの到着時間間隔を示し、Cは、パケットクラスタの総数を示す請求項1の方法。
【請求項10】
ユーザ入力の必要なしで、ネットワークにおける利用可能帯域幅を決定する方法であって、前記方法は、
送信ノードから送信すべきテストパケットの量を動的に決定し、各テストパケットはシーケンス番号を含み、
受信ノードに前記テストパケットの量を送り、
前記受信ノードから前記テストパケットに対応するテスト受信パケットの量の受信し、各テスト受信パケットは、その対応するテストパケットの前記シーケンス番号を含み、
少なくとも1つのネットワークパラメータに基づく伝送レートまたはテストパケットサイズに関する値を設定し、
連続したシーケンス番号を有する前記テストパケットの量を具備する少なくとも1つのパケットクラスタを用いて、シングルバーストアルゴリズムで、前記送信ノードと前記受信ノードとの間の利用可能帯域幅を決定することを具備する方法。
【請求項11】
前記利用可能帯域幅は、フォワードパス利用可能帯域幅を含む請求項10の方法。
【請求項12】
前記利用可能帯域幅は、バックワードパス利用可能帯域幅を含む請求項10の方法。
【請求項13】
前記利用可能帯域幅は、ラウンドトリップパス利用可能帯域幅を含む請求項10の方法。
【請求項14】
連続したシーケンス番号を有する少なくとも2つのテスト受信パケットを用いて、前記少なくともパケットクラスタを形成することをさらに具備する請求項10の方法。
【請求項15】
前記テストパケットはエコーパケットを具備し、前記テスト受信パケットは、エコー応答パケットを具備する請求項13の方法。
【請求項16】
テスト受信パケットを欠損することをさらに具備する請求項10の方法。
【請求項17】
前記決定するステップは、
【数2】
の前記シングルバーストアルゴリズムに関する方程式を用いて、前記利用可能帯域幅を決定することを含み、
mk(mk≧2)は、k番目のパケットクラスタにおけるテストパケットの数を示し、Dkは、k番目のパケットクラスタにおける最初のテストパケットと最後のテストパケットとの間の秒ごとの到着時間間隔を示し、Cは、パケットクラスタの総数を示す請求項10の方法。
【請求項18】
ネットワーク環境において利用可能帯域幅を決定するためのシングルバースト方法であって、前記シングルバースト方法は、
シーケンス番号を有するテストパケットを送信ノードから受信ノードへ送り、
前記送信ノードで前記シーケンス番号を有するテスト受信パケットを受信し、
パケットクラスタにおいて配送されたテストパケットの前記シーケンス番号が連続するように、前記パケットクラスタに少なくとも2つの前記配送されたテストパケットを配置し、
シングルバーストアルゴリズムにおいて、前記パケットクラスタを用いて前記送信ノードと前記受信ノードとの間の利用可能帯域幅を決定するシングルバースト方法。
【請求項19】
前記テストパケットのサイズを動的に決定することをさらに具備する請求項18のシングルバースト方法。
【請求項20】
シングルバーストプロトコルに従って前記テストパケットを形成することをさらに具備する請求項18のシングルバースト方法。
【請求項21】
前記パケットクラスタにテストパケットを配置するために、前記テストパケットの状態を変更することをさらに具備する請求項18のシングルバースト方法。
【請求項22】
前記形成するステップは、前記複数のテストパケットのソースノードでパケットクラスタアルゴリズムを実行することを含む請求項1の方法。
【請求項23】
前記形成するステップは、前記複数のテストパケットのターゲットノードでパケットクラスタアルゴリズムを実行することを含む請求項1の方法。
【請求項24】
前記決定するステップは、前記送信するステップまたは前記受信するステップが期間内に完了しない場合に失敗とみなす請求項1の方法。
【請求項25】
前記方法を行なうシングルバーストプロトコルとして、ユーザデータグラムプロトコル(UDP)を用いることをさらに具備する請求項1の方法。
【請求項26】
UDPエコーは、前記シングルバーストプロトコルに用いられる請求項25の方法。
【請求項27】
前記利用可能帯域幅を決定するためにシングルバーストプロトコルのエコーおよびエコー応答メッセージに対応する、転送情報に関するインターネット制御メッセージプロトコルエコーおよびエコー応答メッセージを用いることをさらに具備する請求項1の方法。
【請求項28】
ピアノードが前記複数のテストパケットによって到達可能であるかどうか、または前記ピアノードに到達可能性テストパケットが送られることにより、前記ピアノードが前記複数のテストパケットを支援するかどうかを検査することをさらに具備する請求項1の方法。
【請求項29】
前記到達可能性テストパケットに応じて、前記ピアノードによって送られた到達可能性テスト受信パケットを受信することをさらに具備する請求項28の方法。
【請求項30】
前記到達可能性テストパケットおよび前記到達可能性テスト受信パケットはランダム値を含む請求項29の方法。
【請求項31】
前記受信するステップは、テスト受信パケットの数がテストパケットの数未満となるように、前記複数のテスト受信パケットを選択的に受信することを含む請求項1の方法。
【請求項32】
テスト受信パケットの数がテストパケットの数未満となるように、前記複数のテスト受信パケットを選択的に送信することをさらに具備する請求項1の方法。
【請求項1】
ネットワーク環境における利用可能帯域幅を決定する方法であって、前記方法は、
複数のテストパケットを送信し、各テストパケットは、シーケンス番号を含み、
前記複数のテストパケットに対応する複数のテスト受信パケットを受信し、各テスト受信パケットは、対応するテストパケットの前記シーケンス番号を含み、
前記複数のテスト受信パケットから少なくとも1つのパケットクラスタを形成し、
前記少なくとも1つのクラスタにおける最初のテストパケットと最後のテストパケットとの間の配送時間間隔と、前記少なくとも1つのパケットクラスタとに基づいて利用可能帯域幅を決定することを具備する方法。
【請求項2】
送信すべき前記複数のテストパケットの量を動的に決定することをさらに具備する請求項1の方法。
【請求項3】
前記量は、前記ネットワーク環境内のラウンドトリップ時間に基づく請求項2の方法。
【請求項4】
前記決定するステップは、前記利用可能帯域幅を決定するためにシングルバーストアルゴリズムを用いることを含む請求項1の方法。
【請求項5】
前記少なくとも1つのパケットクラスタは、連続したシーケンス番号を有する少なくとも2つのテストパケットを含む請求項1の方法。
【請求項6】
テスト受信パケットを廃棄することをさらに具備する請求項1の方法。
【請求項7】
ユーザ入力のない前記決定するステップに関する値を設定することをさらに具備する請求項1の方法。
【請求項8】
前記形成するステップは、テストパケット配送時刻の配列から前記少なくとも1つのパケットクラスタを形成することを含む請求項1の方法。
【請求項9】
前記決定するステップは、方程式
【数1】
を用いて、前記利用可能帯域幅を決定することを含み、
mk(mk≧2)は、k番目のパケットクラスタにおけるテストパケットの数を示し、Dkは、k番目のパケットクラスタにおける最初のテストパケットと最後のテストパケットとの間の秒ごとの到着時間間隔を示し、Cは、パケットクラスタの総数を示す請求項1の方法。
【請求項10】
ユーザ入力の必要なしで、ネットワークにおける利用可能帯域幅を決定する方法であって、前記方法は、
送信ノードから送信すべきテストパケットの量を動的に決定し、各テストパケットはシーケンス番号を含み、
受信ノードに前記テストパケットの量を送り、
前記受信ノードから前記テストパケットに対応するテスト受信パケットの量の受信し、各テスト受信パケットは、その対応するテストパケットの前記シーケンス番号を含み、
少なくとも1つのネットワークパラメータに基づく伝送レートまたはテストパケットサイズに関する値を設定し、
連続したシーケンス番号を有する前記テストパケットの量を具備する少なくとも1つのパケットクラスタを用いて、シングルバーストアルゴリズムで、前記送信ノードと前記受信ノードとの間の利用可能帯域幅を決定することを具備する方法。
【請求項11】
前記利用可能帯域幅は、フォワードパス利用可能帯域幅を含む請求項10の方法。
【請求項12】
前記利用可能帯域幅は、バックワードパス利用可能帯域幅を含む請求項10の方法。
【請求項13】
前記利用可能帯域幅は、ラウンドトリップパス利用可能帯域幅を含む請求項10の方法。
【請求項14】
連続したシーケンス番号を有する少なくとも2つのテスト受信パケットを用いて、前記少なくともパケットクラスタを形成することをさらに具備する請求項10の方法。
【請求項15】
前記テストパケットはエコーパケットを具備し、前記テスト受信パケットは、エコー応答パケットを具備する請求項13の方法。
【請求項16】
テスト受信パケットを欠損することをさらに具備する請求項10の方法。
【請求項17】
前記決定するステップは、
【数2】
の前記シングルバーストアルゴリズムに関する方程式を用いて、前記利用可能帯域幅を決定することを含み、
mk(mk≧2)は、k番目のパケットクラスタにおけるテストパケットの数を示し、Dkは、k番目のパケットクラスタにおける最初のテストパケットと最後のテストパケットとの間の秒ごとの到着時間間隔を示し、Cは、パケットクラスタの総数を示す請求項10の方法。
【請求項18】
ネットワーク環境において利用可能帯域幅を決定するためのシングルバースト方法であって、前記シングルバースト方法は、
シーケンス番号を有するテストパケットを送信ノードから受信ノードへ送り、
前記送信ノードで前記シーケンス番号を有するテスト受信パケットを受信し、
パケットクラスタにおいて配送されたテストパケットの前記シーケンス番号が連続するように、前記パケットクラスタに少なくとも2つの前記配送されたテストパケットを配置し、
シングルバーストアルゴリズムにおいて、前記パケットクラスタを用いて前記送信ノードと前記受信ノードとの間の利用可能帯域幅を決定するシングルバースト方法。
【請求項19】
前記テストパケットのサイズを動的に決定することをさらに具備する請求項18のシングルバースト方法。
【請求項20】
シングルバーストプロトコルに従って前記テストパケットを形成することをさらに具備する請求項18のシングルバースト方法。
【請求項21】
前記パケットクラスタにテストパケットを配置するために、前記テストパケットの状態を変更することをさらに具備する請求項18のシングルバースト方法。
【請求項22】
前記形成するステップは、前記複数のテストパケットのソースノードでパケットクラスタアルゴリズムを実行することを含む請求項1の方法。
【請求項23】
前記形成するステップは、前記複数のテストパケットのターゲットノードでパケットクラスタアルゴリズムを実行することを含む請求項1の方法。
【請求項24】
前記決定するステップは、前記送信するステップまたは前記受信するステップが期間内に完了しない場合に失敗とみなす請求項1の方法。
【請求項25】
前記方法を行なうシングルバーストプロトコルとして、ユーザデータグラムプロトコル(UDP)を用いることをさらに具備する請求項1の方法。
【請求項26】
UDPエコーは、前記シングルバーストプロトコルに用いられる請求項25の方法。
【請求項27】
前記利用可能帯域幅を決定するためにシングルバーストプロトコルのエコーおよびエコー応答メッセージに対応する、転送情報に関するインターネット制御メッセージプロトコルエコーおよびエコー応答メッセージを用いることをさらに具備する請求項1の方法。
【請求項28】
ピアノードが前記複数のテストパケットによって到達可能であるかどうか、または前記ピアノードに到達可能性テストパケットが送られることにより、前記ピアノードが前記複数のテストパケットを支援するかどうかを検査することをさらに具備する請求項1の方法。
【請求項29】
前記到達可能性テストパケットに応じて、前記ピアノードによって送られた到達可能性テスト受信パケットを受信することをさらに具備する請求項28の方法。
【請求項30】
前記到達可能性テストパケットおよび前記到達可能性テスト受信パケットはランダム値を含む請求項29の方法。
【請求項31】
前記受信するステップは、テスト受信パケットの数がテストパケットの数未満となるように、前記複数のテスト受信パケットを選択的に受信することを含む請求項1の方法。
【請求項32】
テスト受信パケットの数がテストパケットの数未満となるように、前記複数のテスト受信パケットを選択的に送信することをさらに具備する請求項1の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公表番号】特表2012−518348(P2012−518348A)
【公表日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−550312(P2011−550312)
【出願日】平成22年2月16日(2010.2.16)
【国際出願番号】PCT/US2010/024313
【国際公開番号】WO2010/094035
【国際公開日】平成22年8月19日(2010.8.19)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(504473670)テルコーディア・テクノロジーズ・インコーポレーテッド (72)
【Fターム(参考)】
【公表日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願日】平成22年2月16日(2010.2.16)
【国際出願番号】PCT/US2010/024313
【国際公開番号】WO2010/094035
【国際公開日】平成22年8月19日(2010.8.19)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(504473670)テルコーディア・テクノロジーズ・インコーポレーテッド (72)
【Fターム(参考)】
[ Back to top ]