(57)【特許請求の範囲】
【請求項１】
２以上のプロセスを実行するコンピュータで実行されるネットワークリンクの使用を円滑にする方法であって、前記２以上のプロセスは前記コンピュータにおける異なる優先度が設定されており、前記方法は、
前記２以上のプロセスのいずれか１つに関連付けられる前記ネットワークリンクを介して受信するパケットの到着間遅延を監視するステップと、
前記ネットワークリンクを介した後続のパケットの受信を円滑にするために、前記到着間遅延に少なくとも部分的に基づいて受信ウィンドウを調節するステップと、
を含み、
前記受信ウィンドウを調節するステップは、前記コンピュータにおける前記パケットに関連付けられるプロセスの優先度に少なくとも部分的に基づいて前記受信ウィンドウの調節を増減することを含む、方法。
【請求項２】
前記プロセスが、フォアグラウンドプロセス又はバックグラウンドプロセスを含む、請求項１に記載のコンピュータで実行される方法。
【請求項３】
前記到着間遅延に少なくとも部分的に基づいて前記受信ウィンドウを調節するステップが、
前記到着間遅延が閾値を第１の所定のマージンだけ超えることに応答して、前記受信ウィンドウを縮小するステップと、
前記到着間遅延が前記閾値を第２の所定のマージンだけ下回ることに応答して、前記受信ウィンドウを拡大するステップと、
を含む、請求項１に記載のコンピュータで実行される方法。
【請求項４】
前記受信ウィンドウを調節するステップが、
前記受信ウィンドウの新しいサイズを含む確認応答パケットを伝送するステップを
含む、請求項１に記載のコンピュータで実行される方法。
【請求項５】
前記ネットワークリンクが、ＷｉＦｉネットワークリンク又は携帯電話ネットワークリンクを含む、請求項１に記載のコンピュータで実行される方法。
【請求項６】
前記受信ウィンドウが、前記ネットワークリンクのサンプリングに関連付けられる最小受信ウィンドウ未満に縮小されない、請求項１に記載のコンピュータで実行される方法。
【請求項７】
ネットワークリンクの使用を円滑にするシステムであって、
前記システムにおける異なる優先度が設定された２以上のプロセスのいずれか１つに関連付けられる前記ネットワークリンクを介して受信するパケットの到着間遅延を受信器において監視するように構成されている監視装置と、
前記ネットワークリンクを介した後続のパケットの受信を円滑にするために、前記到着間遅延に少なくとも部分的に基づいて受信ウィンドウを調節するように構成されている管理装置と、
を備え、
前記管理装置は、前記システムにおける前記パケットに関連付けられるプロセスの優先度に少なくとも部分的に基づいて前記受信ウィンドウの調節を増減する、システム。
【請求項８】
前記プロセスが、フォアグラウンドプロセス又はバックグラウンドプロセスを含む、請求項７に記載のシステム。
【請求項９】
前記到着間遅延に少なくとも部分的に基づいて前記受信ウィンドウを調節するように、前記管理装置は、
前記到着間遅延が閾値を第１の所定のマージンだけ超えることに応答して、前記受信ウィンドウを縮小し、
前記到着間遅延が前記閾値を第２の所定のマージンだけ下回る場合に前記受信ウィンドウを拡大する、
請求項７に記載のシステム。
【請求項１０】
前記受信ウィンドウを調節するように、前記管理装置は、前記受信ウィンドウの新しいサイズを含む確認応答パケットを伝送する、請求項７に記載のシステム。
【請求項１１】
前記ネットワークリンクが、ＷｉＦｉネットワークリンク又は携帯電話ネットワークリンクを含む、請求項７に記載のシステム。
【請求項１２】
前記受信ウィンドウが、前記ネットワークリンクのサンプリングに関連付けられる最小受信ウィンドウ未満に縮小されない、請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、ネットワークトラフィックを管理する技術に関する。より具体的には、開示の実施形態は、到着間遅延に基づいて、ネットワークトラフィックに関連付けられる送信元に対応する受信ウィンドウを調節することによってネットワークトラフィックにおける到着間遅延を低減する技術に関する。
【背景技術】
【０００２】
無線アクセスポイント、携帯電話基地局、及び／又はルータなどのネットワークリンクは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話機、ポータブルメディアプレーヤ、プリンタ、及び／又はビデオゲーム機などの多くのネットワーク対応電子機器によって共有することができる。電子機器へのネットワークトラフィックを管理するために、ネットワークリンクは電子機器へのパケットのフローを低減し、パケットを再順序付けし、及び／又はパケットを切断することができる。パケットの送信元もまた、パケットのエラー、損失、及び／又は遅延に基づいて後続のパケットの伝送速度を調節することによってネットワークリンクでの輻輳を取り除き、電子機器によるネットワーク帯域幅の共有を円滑にすることができる。
【０００３】
その一方で、電子機器は、送信元からのパケットの伝送に影響を及ぼす機能を欠いている場合がある。その代わりに、電子機器は、送信元及び／又はネットワークリンクによってパケットが伝送される速度でパケットを受信することしかできない。更には、各電子機器は、同一のネットワークリンクを介してデータを送受信する異なる優先度に関連付けられる多くのプロセスを含む場合がある。送信元及びネットワークリンクがプロセスに関する優先度の情報を欠いているために、ネットワークリンク上で電子機器上の優先度のより高い（例えば、フォアグラウンド）プロセスが優先度のより低い（例えば、バックグラウンド）プロセスよりも小さな帯域幅を割り当てられてしまう場合があり、このことが、ユーザによる電子機器の使用に悪影響を及ぼす場合がある。
【発明の概要】
【０００４】
開示の実施形態は、ネットワークリンクの使用を円滑にするシステムを提供する。動作中、このシステムは、ネットワークリンクを介して送信元から受信するパケットの到着間遅延を継続的に監視する。次に、このシステムは、到着間遅延に基づいて送信元に対応する受信ウィンドウを調節して、ネットワークリンクを介したこの送信元及びその他の送信元からの後続のパケットの受信を円滑にする。
【０００５】
幾つかの実施形態において、このシステムはまた、パケットに関連付けられるプロセスの優先度に基づいて受信ウィンドウを調節する。例えば、このシステムは、プロセスの優先度に基づいて受信ウィンドウの調節を増減することができる。したがって、フォアグラウンドプロセスのような高優先度プロセスに関する受信ウィンドウを、バックグラウンドプロセスのような低優先度プロセスに関する受信ウィンドウよりも小さな調節に関連付けることができる。
【０００６】
幾つかの実施形態において、到着間遅延に基づいて送信元に対応する受信ウィンドウを調節するステップは、到着間遅延が閾値を第１の所定のマージンだけ超える場合に受信ウィンドウを縮小するステップと、到着間遅延が閾値を第２の所定のマージンだけ下回る場合に受信ウィンドウを拡大するステップとを伴う。
【０００７】
幾つかの実施形態において、送信元に対応する受信ウィンドウを調節するステップは、受信ウィンドウの新しいサイズを含む確認応答パケット（例えば、伝送制御プロトコル（ＴＣＰ）確認応答）を送信元に伝送するステップを伴う。
【０００８】
幾つかの実施形態において、ネットワークリンクは、ＷｉＦｉネットワークリンク又は携帯電話ネットワークリンクのうちの１つである。例えば、ネットワークリンクは、ＷｉＦｉネットワークの無線アクセスポイント及び／又は携帯電話ネットワークの携帯電話基地局によって提供することができる。
【０００９】
幾つかの実施形態において、受信ウィンドウは、ネットワークリンクのサンプリングに関連付けられる最小受信ウィンドウ未満に縮小されない。
【図面の簡単な説明】
【００１０】
【図１】開示の実施形態に係るシステムの概略図である。
【図２】開示の実施形態に係る、ネットワークリンクの使用を円滑にするシステムを示す図である。
【図３】開示の実施形態に係る、時間の経過に伴う２つのプロセスによるネットワークリンクの例示的な使用を示す図である。
【図４】開示の実施形態に係る例示的なプロットを示す図である。
【図５】開示の実施形態に係る例示的なプロットを示す図である。
【図６】開示の実施形態に係る例示的なプロットを示す図である。
【図７】開示の実施形態に係る、ネットワークリンクの使用を円滑にするプロセスを図示したフローチャートである。
【図８】開示の実施形態に係るコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１１】
図面において、同様な参照番号は同じ図面要素を指す。
【００１２】
下掲の記述は、あらゆる当業者が実施形態を製作し使用できるように提示されており、特殊用途及びその要件のコンテキストにおいて提供されている。開示の実施形態に対する様々な修正は、当業者にとって容易に明らかであろう。本明細書において定義されている一般原理は、本開示の趣旨及び範囲から逸脱することなく他の実施形態及び用途に適用され得る。したがって、本発明は示されている実施形態だけに限定されるものではなく、与えられている最も広い範囲が本明細書に開示の原理及び特徴と一致すべきである。
【００１３】
この「発明を実施するための形態」に記述されているデータ構造及びコードは典型的に、コンピュータ読み取り可能記憶媒体上に記憶される。このコンピュータ読み取り可能記憶媒体は、コンピュータシステムで使用されるコード及び／又はデータを記憶できる任意のデバイス又は媒体であってよい。このコンピュータ読み取り可能記憶媒体には、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスク若しくはデジタルビデオディスク）などの磁気及び光記憶装置、又はコード及び／若しくはデータを記憶することのできるその他の媒体が挙げられるが、これらに限定されるものではない。記載の実施形態は、一時的な信号のような非一時的なコンピュータ読み取り可能記憶媒体を含むことを意図していないことに留意されたい。
【００１４】
上述したように、「発明を実施するための形態」の項に記載されている方法及びプロセスは、コンピュータ読み取り可能記憶媒体に記憶され得るコード及び／又はデータとして具体化され得る。コンピュータシステムがコンピュータ読み取り可能記憶媒体上に記憶されたコード及び／又はデータを読み込んで遂行すると、そのコンピュータシステムにより、データ構造及びコードとして具体化され、コンピュータ読み取り可能記憶媒体内に記憶された方法及びプロセスが実行される。
【００１５】
更にその上、本明細書に記載されている方法及びプロセスは、ハードウェアモジュール又は装置に含まれているものであってもよい。これらのモジュール又は装置としては、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定の時間に特定のソフトウェアモジュール若しくはコードを遂行する専用若しくは共用プロセッサ、及び／又は他のプログラム可能な論理デバイスを挙げることができるが、これらに限定されない。ハードウェアモジュール又は装置を作動させると、その内部に含まれている方法及びプロセスが実行される。
【００１６】
開示の実施形態は、ネットワークトラフィックを管理する方法及びシステムを提供する。図１に示すように、多数のコンピュータシステム１１０〜１１２が、無線アクセスポイント、携帯電話基地局、及び／又はルータなどの機器によって提供されているネットワークリンク１０６〜１０８を介してネットワーク１０４に接続されている。コンピュータシステム１１０〜１１２は、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話機／スマートフォン、ポータブルメディアプレーヤ、及び／又はその他のネットワーク対応電子機器に相当し得る。ネットワーク１０４としては、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、仮想プライベートネットワーク、イントラネット、携帯電話ネットワーク（例えばセルラーネットワーク）、ＷｉＦｉ（登録商標）ネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク、ユニバーサルシリアルバス（ＵＳＢ）ネットワーク、イーサネット（登録商標）ネットワーク、２台以上の機器間で形成されているアドホックネットワーク、及び／又はネットワーク１０４に接続されているコンピュータシステム（例えば、コンピュータシステム１１０〜１１２）間の通信を容易にするその他のネットワークを挙げることができる。
【００１７】
具体的には、コンピュータシステム１１０〜１１２は、ネットワーク１０４上でファイル、音声、ビデオ、及び／又はウェブコンテンツなどのデータを送受信することにより、相互に及び／又はネットワーク１０４上のサーバ１０２と相互作用することができる。例えば、コンピュータシステム１１０は、コンピュータシステム１１２及び／又はサーバ１０２との伝送制御プロトコル（ＴＣＰ）接続を確立することによってコンピュータシステム１１２及び／又はサーバ１０２からのデータを要求することができる。このとき、コンピュータシステム１１２及びサーバ１０２は、ネットワーク１０４を介してコンピュータシステム１１０にデータを含む一連のパケットを伝送することにより、要求されたデータを提供することができる。同時に、コンピュータシステム１１０〜１１２及び／又はその他のコンピュータシステム（図示せず）は、ネットワーク１０４を介してパケットを送受信することにより、相互に、サーバ１０２と、及び／又はネットワーク１０４上の他のサーバ若しくは機器（図示せず）と通信することができる。ネットワーク１０６上のネットワークリンク１０６〜１０８及び／又はその他のネットワークリンク（図示せず）は、ネットワーク上の輻輳を防止及び／又は軽減するために、コンピュータシステム１１０〜１１２及び／又はその他のコンピュータシステムへのパケットを待ち行列に入れ、再順序付けし、遅延させ、及び／又は切断するネットワークトラフィック制御技術を実施することができる。コンピュータシステム１１０〜１１２、サーバ１０２、及び／又はその他のサーバ若しくは機器はまた、パケットエラー、パケット損失、及び／又はパケット遅延に基づいて後続のパケットの伝送速度を調節することにより、コンピュータシステムによるネットワーク１０４の利用可能な帯域幅の共有及び／又は効率的な使用を円滑にすることもできる。
【００１８】
しかし、従来のコンピュータシステム（例えば、スマートフォン、デスクトップコンピュータ、タブレットコンピュータなど）は、互いから及び／又はサーバからのパケットの受信を制御する機能を欠いている場合がある。更に、各コンピュータシステムは、ネットワーク１０４を介してデータを送受信する異なる優先度に関連付けられる多数のプロセスを含む場合がある。その結果、コンピュータシステム（例えば、コンピュータシステム１１０〜１１２）が接続されているネットワークリンク（例えば、ネットワークリンク１０６〜１０８）は競合状態にある場合があり、コンピュータシステム上の優先度のより高いプロセスが優先度のより低いプロセスよりも狭い帯域幅をネットワークリンクから割り当てられる可能性がある。同様に、このコンピュータシステム向けのパケットがネットワークリンクでボトルネックに遭遇する可能性があり、このコンピュータシステム上の全てのプロセスがネットワーク遅延時間の増加に見舞われる可能性がある。
【００１９】
記載の実施形態においてネットワークリンク１０６〜１０８の使用を円滑にするために（及び従来のコンピュータシステムで遭遇する上述の問題を回避するために）、コンピュータシステム１１０〜１１２は、プロセスが被るネットワーク遅延時間に基づいて、互いから、サーバ１０２から、及び／又は他のコンピュータシステム若しくは機器からコンピュータシステム１１０〜１１２上の個々のプロセスへのパケットの伝送を調節する機能性を含んでいる。
【００２０】
図２に示すように、コンピュータシステム２０２は、ネットワークリンク２０４を介して複数の送信元２２２〜２２４（例えば、サーバ又はその他の機器）からパケット２２６〜２２８を受信することができる。パケット２２６〜２２８は、コンピュータシステム２０２上で遂行される異なるプロセス（例えば、アプリケーション）に関連付けることができる。例えば、コンピュータシステム２０２上の１つのプロセスが送信元２２２からのパケット２２６を受信することができ、コンピュータシステム２０２上の別のプロセスが送信元２２４からのパケット２２８を受信することができる。
【００２１】
コンピュータシステム２０２内の監視装置２０６は、パケット２２６〜２２８が送信元２２２〜２２４からコンピュータシステム２０２に伝送される間にパケット２２６〜２２８に関する１組の到着間遅延２１０〜２１２を継続的に監視することができる。具体的には、監視装置２０６は、各到着間遅延２１０〜２１２を、送信元からコンピュータシステム２０２上の対応するプロセスへの１対の連続したパケットの「相対的経過時間」の差として計算することができる。例えば、２つのパケットが２０ミリ秒間隔で送信されたにもかかわらず３０ミリ秒間隔で受信された場合、この２つのパケットの到着間遅延は１０ミリ秒である可能性がある。
【００２２】
計算された到着間遅延２１０〜２１２が、コンピュータシステム２０２に、ＷｉＦｉネットワーク上の無線アクセスポイント及び／又は携帯電話ネットワーク上の携帯電話基地局のようなネットワークリンク２０４上でのプロセス間の競合の示度を提供することができる。送信元２２２〜２２４からのネットワークトラフィックの変化の検出を更に容易にするために、監視装置２０６はまた、到着間遅延２１０〜２１２の標準偏差及び／又は分散などの統計値（例えば、到着間ジッタ）を計算することもできる。
【００２３】
次に、コンピュータシステム２０２内の管理装置２０８は、到着間遅延２１０〜２１２に基づいて送信元２２２〜２２４に対応する１組の受信ウィンドウ２１８〜２２０を調節して、ネットワークリンク２０４を介した送信元２２２〜２２４からの後続のパケットの受信を円滑にすることができる。各受信ウィンドウ２１８〜２２０は、コンピュータシステム２０２が送信元に確認応答せずに（例えば、確認応答パケットを送信元に伝送せずに）それぞれ対応する送信元から受け取る用意のあるデータ量を表すことができる。幅広い受信ウィンドウは送信元からのパケット伝送の速度を上昇させ得る一方で、幅の狭い受信ウィンドウは送信元からのパケット伝送の速度を低下させ得る。
【００２４】
送信元からのパケットの到着間遅延が閾値を第１の所定のマージンだけ超える場合、ネットワークリンク２０４は競合状態にある可能性があり、管理装置２０８が対応する受信ウィンドウを縮小してその送信元及び／又はその他の送信元（例えば、送信元２２２〜２２４）からの後続のパケットの到着間遅延を低減させることができる。その一方で、到着間遅延が閾値を第１の所定のマージンと同じでもよく同じでなくてもよい第２の所定のマージンだけ下回る場合、ネットワークリンク２０４は十分に活用されていない可能性があり、管理装置２０８は、受信ウィンドウを拡大してネットワークリンクの利用率を上昇させることができる。この送信元に対応する受信ウィンドウの変更を有効にするために、管理装置２０８は、パケット又はデータフレームを受信先に伝送して受信ウィンドウの新しいサイズを示すことができる。例えば、幾つかの実施形態において、管理装置は、受信ウィンドウの新しいサイズを含む確認応答パケット（例えば、ＴＣＰ確認応答）を送信元に伝送し、送信元はそれに応じて、パケットがコンピュータシステム２０２に伝送される速度を調節することができる。
【００２５】
管理装置２０８は、（例えば、所与のプロセスの優先度がコンピュータシステム２０２用のオペレーティングシステムによって指定されている場合、）パケットの宛先であるプロセスの１組の優先度２１４〜２１６に基づいて、受信ウィンドウ２１８〜２２０を更に調節することができる。プロセスが異なる優先度２１４〜２１６に関連付けられている場合、管理装置２０８は、優先度２１４〜２１６に基づいて受信ウィンドウ２１８〜２２０の調節を増減することができる。このように、管理装置２０８は、より高い優先度のプロセスがより低い優先度のプロセスよりも幅広い受信ウィンドウに関連付けられ、その結果、ネットワークリンク２０４上のより広い帯域幅に関連付けられることを確実にすることができる。
【００２６】
例えば、コンピュータシステム２０２上のバックグラウンド（例えば、低優先度の）プロセスが、ネットワークリンク２０４を介したネットワークトラフィックの唯一の受信先である場合がある。その結果、ネットワークリンク２０４を介してコンピュータシステム２０２に伝送される全てのパケットがバックグラウンドプロセスによって受信される可能性があり、バックグラウンドプロセスは、到着間遅延及び／又はパケットのペア間の到着間遅延の変動を最小限とすることができる。しかし、コンピュータシステム２０２上のフォアグラウンド（例えば、高優先度の）プロセスがネットワークリンク２０４を介してパケットを受信し始めると、バックグラウンドプロセスにとって、到着間遅延及び到着間遅延の分散の両方が増加する可能性がある。到着間遅延は、最終的には所定の閾値を超え、競合するフォアグラウンドプロセスによるネットワークリンク２０４の使用を示すことができる。
【００２７】
フォアグラウンドプロセスによるネットワークリンク２０４の使用を優先するために、管理装置２０８は、バックグラウンドプロセスの受信ウィンドウを縮小することによりバックグラウンドプロセスへのネットワークトラフィックを抑えることができる。到着間遅延が閾値を超えたままである場合、管理装置２０８は、到着間遅延が低下するまで、及び／又は受信ウィンドウが最小受信ウィンドウ（例えば、４パケット分の受信ウィンドウ）に達するまで、バックグラウンドプロセスの受信ウィンドウを縮小し続けることができる。幾つかの実施形態において、この最小受信ウィンドウは、ネットワークリンク２０４をサンプリングする最小受信ウィンドウであることができる。
【００２８】
フォアグラウンドプロセスがネットワークリンク２０４を使用し終わった後、バックグラウンドプロセスの到着間遅延が低減し、その結果、最終的には、到着間遅延が閾値未満にまで低下し得る。このとき、管理装置２０８は、バックグラウンドプロセスの受信ウィンドウを拡大して、到着間遅延が許容できる値に戻るまでネットワークリンク２０４の利用率を上昇させることができる。到着間遅延、受信ウィンドウ、及び／又はパケット到着の経時変化については、図３〜６に関して下記に更に詳述する。
【００２９】
監視装置２０６及び管理装置２０８は、到着間遅延２１０〜２１２及び／又は優先度２１４〜２１６に基づいて受信ウィンドウ２１８〜２２０を調節することにより、ネットワークリンク２０４を介して送信元２２２〜２２４からコンピュータシステム２０２にパケット２２６〜２２８を伝送するために使用されるプロトコル（例えば、ＴＣＰ）を変更する必要なく、コンピュータシステム２０２上のプロセス間でネットワーク帯域幅の共有及び／又は優先順位付けを可能とすることができる。更に、監視装置２０６及び管理装置２０８は、コンピュータシステム２０２上でネットワークリンク２０４に関する競合がないときには何時でも、プロセスがネットワークリンク２０４への十全なアクセスを可能にすることにより、コンピュータシステム２０２上のプロセスによるネットワークリンク２０４の利用率を最大化することができる。
【００３０】
図２のシステムが様々な様式で実施され得ることは、当業者に理解されるであろう。先ず、監視装置２０６及び管理装置２０８は、到着間遅延２１０〜２１２を追跡し、受信ウィンドウ２１８〜２２０を個々に又はグループ毎に調節することができる。例えば、コンピュータシステム２０２内の各プロセスを、監視装置２０６及び管理装置２０８の別個のインスタンスに関連付けることができ、又は、コンピュータシステム２０２内の全てのプロセスのネットワークトラフィックを（例えば、コンピュータシステム２０２のオペレーティングシステム内の）単一の集中型監視装置２０６及び／又は管理装置２０８によって監視及び管理することができる。同様に、監視装置２０６及び管理装置２０８は、同一のソフトウェア及び／又はハードウェアの構成要素によって提供することができ、又は監視装置２０６及び管理装置２０８は、相互に独立して遂行することもできる。例えば、監視装置２０６及び管理装置２０８を、コンピュータシステム２０２上の１つ以上の専用プロセッサ及び／又は汎用プロセッサ（例えば、中央処理装置（ＣＰＵ））によって実行することができる。
【００３１】
次に、管理装置２０８は、プロセスのネットワークトラフィックをいろいろな方法で管理することができる。例えば、管理装置２０８は、白黒順位付け（black-and-white prioritization）技術を実施することができ、この技術では、上述の例で説明したように、低優先度プロセス（例えば、バックグラウンドプロセス）の受信ウィンドウのみを低優先度プロセスの到着間遅延に基づいて調節し、幅広い受信ウィンドウは、高優先度（例えば、フォアグラウンド）プロセスの到着間遅延にかかわらず、高優先度プロセスのために維持される。あるいは、管理装置２０８は、高優先度プロセスの受信ウィンドウの調節よりも低優先度プロセスの受信ウィンドウの調節に重きを置いて、プロセスの優先度に基づいて受信ウィンドウの調節を増減することができる。管理装置２０８は、数値的縮尺（例えば、１対５、１対１０など）、英文字（例えば、Ａ、Ｂ、Ｃなど）及び／又は優先度分類（例えば、アイドル、通常優先度、高優先度、リアルタイム）などを含む、プロセスの優先度を表すいろいろなシステムを使用することにより調節に更に影響を及ぼすことができる。最後に、管理装置２０８は、受信ウィンドウ２１８〜２２０の変更のきっかけとなるいろいろな閾値及び／又はマージンを使用して到着間遅延２１０〜２１２の変化に対するコンピュータシステム２０２の感度及び／又は応答性を上昇又は低下させることができる。
【００３２】
図３は、開示の実施形態に係る、時間３０６の経過に伴う２つのプロセス３０２及び３０４によるネットワークリンクの例示的な使用を示している。プロセス３０２は低優先度（例えば、バックグラウンド）プロセスであってもよく、プロセス３０４は高優先度（例えば、フォアグラウンド）プロセスであってもよい。プロセス３０２は、時間ｔ1においてネットワークリンクを介したパケットの送受信を開始することができる。次に、プロセス３０４は、時間ｔ2においてネットワークリンクの使用を開始し、したがってネットワークリンクをプロセス３０２と共有することができる。時間ｔ3では、プロセス３０４がネットワークリンクの使用を停止することができ、時間ｔ4では、プロセス３０２がネットワークリンクの使用を停止することができる。
【００３３】
図４〜６は、開示の実施形態に係る例示的なプロットを示している。より具体的には、図４は、図３のプロセス３０２の到着間遅延４０２の、時間４０４の関数としてのプロットを示しており、図５は、プロセス３０２の受信ウィンドウ５０２の、時間５０４の関数としてのプロットを示しており、図６は、プロセス３０２のパケットの到着６０２の、時間６０４の関数としてのプロットを示している。
【００３４】
時間ｔ1とｔ2との間では、プロセス３０２のみがネットワークリンクを使用しており、到着間遅延４０２は比較的一定で低く保たれている。同様に、プロセス３０２の受信ウィンドウ５０２は既定値に設定されており、パケットの到着６０２はプロセス３０２がネットワークリンクを介して安定した高速度でパケットを受信していることを示している。
【００３５】
時間ｔ2でプロセス３０４がネットワークリンクの使用を開始すると、プロセス３０２の到着間遅延４０２が増加する。到着間遅延４０２の増加をオフセットするために、プロセス３０２の受信ウィンドウ５０２を最小受信ウィンドウ５０６に達するまで着実に縮小することができる。例えば、プロセス３０２の受信ウィンドウ５０２を単一のステップで（例えば、すぐに最小受信ウィンドウ５０６へと）縮小してもよく、又は一連のステップで（例えば、最小受信ウィンドウ５０６に達するまで漸減的に）縮小してもよい。次に、ネットワークリンクからのパケットの継続的なサンプリング及びそれらのパケットを使用した到着間遅延４０２の計算を可能とするために、プロセス３０２の受信ウィンドウ５０２を最小受信ウィンドウ５０６に維持することができる。例えば、受信ウィンドウ５０２は、ネットワークリンクを介して受信される４パケットからなる各組からのプロセス３０２の到着間遅延４０２の計算に基づいてプロセス３０２の受信ウィンドウ５０２のその後の調節を容易にするために、４パケットの下限（例えば、最小受信ウィンドウ５０６）を有してもよい。プロセス３０２の受信ウィンドウ５０２が最小受信ウィンドウ５０６に設定されている間、プロセス３０２の到着間遅延４０２は安定することができ、受信ウィンドウ５０２がプロセス３０２のためのネットワークトラフィックを抑制しているので、プロセス３０２のパケットの到着６０２ははるかに緩やかな速度で増加することができる。
【００３６】
時間ｔ3とｔ4との間では、ネットワークリンクはもはやプロセス３０２及び３０４によって共有されていないので、プロセス３０２の到着間遅延４０２は低減し得る。プロセス３０２の到着間遅延４０２はまた、ネットワークリンクの単独使用に関連付けられる初期の低い値（例えば、時間ｔ1とｔ2との間）で水平となることができる。同時に、プロセス３０２の受信ウィンドウ５０２は、到着間遅延４０２の低減に応答して、受信ウィンドウ５０２の初期値に達するまで拡大することができる。以前のプロセス３０２の受信ウィンドウ５０２の最小受信ウィンドウ５０６への縮小と同様に、受信ウィンドウ５０２は、その初期値まで漸増的に及び／又は単一のステップで拡大することができる。同様に、プロセス３０２のパケットの到着６０２は、パケットがｔ1からｔ2までのパケット到着速度と同じ高速度で受信されるようになるまで、加速することができる。換言すれば、プロセス３０２に関連付けられるパケットは、初期にはネットワークリンクを十全に利用することができ、ネットワークリンクをプロセス３０２と共有している期間は低速であるが、プロセス３０４がネットワークリンクの使用を終えた後にはネットワークリンクの十全な利用を再開することができる。
【００３７】
図７は、開示の実施形態に係るネットワークリンクの使用を円滑にするプロセスを図示したフローチャートを示している。１つ以上の実施形態において、１つ以上のステップの省略、繰り返し及び／又は異なる順序での実行が可能である。したがって、図７に示すステップの特定の構成は、本技術の範囲を限定するものとして解釈すべきではない。
【００３８】
先ず、送信元からネットワークリンクを介して受信するパケットの到着間遅延が監視される（動作７０２）。ネットワークリンクは、ＷｉＦｉネットワーク及び／又は携帯電話ネットワークに関連付けられていてもよい。例えば、ネットワークリンクは、ＷｉＦｉネットワークの無線アクセスポイント及び／又は携帯電話ネットワークの携帯電話基地局に相当し得る。ネットワークリンクから受信した２つ以上の連続したパケットについて、到着間遅延をこれらパケットの「相対的経過時間」の差として計算することができる。
【００３９】
次に、到着間遅延による閾値の超過及び／又は下回りに基づいて送信元に対応する受信ウィンドウを調節し（動作７０４〜７０６）、この送信元及び／又はその他の送信元からのネットワークリンクを介した後続のパケットの受信を円滑にすることができる。受信ウィンドウは、送信元がデータの受信先からの確認応答（例えば、ＴＣＰ確認応答）を受信することなく伝送できるデータの量に相当し得る。
【００４０】
到着間遅延が閾値を（例えば、所定のマージンを超えて）上回ることも下回ることもなければ、到着間遅延の監視は、閾値を超える到着間遅延の値及び／又は下回る到着間遅延の値の検出を可能とすることを継続することができる（動作７０２）。到着間遅延が閾値を超える場合、受信ウィンドウが縮小されて後続のパケットの到着間遅延が低減される（動作７０８）。例えば、受信ウィンドウを縮小して送信元からのパケットを受信するために利用可能なネットワーク帯域幅を縮小し、その結果、ネットワークリンク上の競合の量を低減することができる。到着間遅延が閾値を下回る場合、受信ウィンドウを拡大してネットワークリンクの利用率を上昇させる（動作７１０）。例えば、ネットワークリンクを巡る競合が終了した後、受信ウィンドウを拡大してネットワークリンクの十全な利用を可能とすることができる。単一の閾値及び／又は単一の所定のマージンについて説明されているが、記載の実施形態においては、２つの（若しくはそれよりも多い）異なる閾値及び／又は所定のマージンを使用することができる点に留意されたい。例えば、幾つかの実施形態において、単一の閾値が使用されるが、この閾値を超過する場合のために第１の所定のマージンが使用され、この閾値を下回る場合のために第２の所定のマージンが使用される。
【００４１】
受信ウィンドウの調節はまた、パケットに関連付けられるプロセス（例えば、受信）の優先度によって、影響を受け得る（動作７１２）。例えば、高優先度のプロセス（例えば、フォアグラウンドプロセス）よりも低優先度のプロセス（例えば、バックグラウンドプロセス）の受信ウィンドウに対してより大きな調節をすることができる。調節が優先度によって影響されない場合、更なる修正をせずに受信ウィンドウに調節が適用される。調節がプロセスの優先度によって影響される場合、調節は優先度に基づいて増減される（動作７１４）。受信ウィンドウに対して全ての調節がなされた後、受信ウィンドウの新しいサイズを含む確認応答パケットを送信元に伝送することによって、調節が有効となる。
【００４２】
ネットワークリンクを介して送信元からパケットを受信している間は、受信ウィンドウの調節を継続することができる（動作７１６）。受信ウィンドウの調節を継続する場合、パケットの到着間遅延は継続的に監視され（動作７０２）、送信元に対応する受信ウィンドウは、パケットの到着間遅延及び／又はパケットに関連付けられるプロセスの優先度に基づいて調節される（動作７０４〜７１４）。受信ウィンドウ及び／又はネットワークリンクを介したネットワークトラフィックのフローの調節は、ネットワークリンクが送信元からのパケットの受信に使用されなくなるまで継続することができる。「継続的」監視とは、周期的な監視又は所定のスケジュールに従った（例えば、ネットワークトラフィックのレベルに従って、など）監視を意味することができる点に留意されたい。
【００４３】
図８は、一実施形態に係るコンピュータシステム８００を示している。コンピュータシステム８００は、プロセッサ８０２、メモリ８０４、記憶装置８０６、及び／又は電子計算デバイス上に見られる他の構成要素を含む装置に相当し得る。プロセッサ８０２は、コンピュータシステム８００内の他のプロセッサとの並列プロセス、及び／又はマルチスレッド操作をサポートすることができる。コンピュータシステム８００はまた、キーボード８０８、マウス８１０及びディスプレイ８１２のような入出力（Ｉ／Ｏ）デバイスを含むこともできる。
【００４４】
コンピュータシステム８００は、本実施形態の様々な構成要素を遂行する機能性を備えることができる。特に、コンピュータシステム８００は、コンピュータシステム８００上のハードウェア及びソフトウェアリソースの使用を調整するオペレーティングシステム（図示せず）のほか、ユーザに特化されたタスクを実行する１つ以上のアプリケーションを含んでいてもよい。ユーザのタスクを実行するため、アプリケーションは、オペレーティングシステムからコンピュータシステム８００上のハードウェアリソースの使用を取得でき、並びにオペレーティングシステムによって提供されるハードウェア及び／又はソフトウェアのフレームワークを介してユーザと相互作用することもできる。
【００４５】
１つ以上の実施形態において、コンピュータシステム８００は、ネットワークリンクの使用を円滑にするシステムを提供する。このシステムは、ネットワークリンクを介して送信元から受信するパケットの到着間遅延を継続的に監視する監視装置を含むことができる。このシステムはまた、到着間遅延に基づいて送信元に対応する受信ウィンドウを調節して、ネットワークリンクを介したこの送信元及びその他の送信元からの後続のパケットの受信を円滑にする、管理装置を含むこともできる。管理装置はまた、パケットに関連付けられるプロセスの優先度に基づいて受信ウィンドウを調節することもできる。
【００４６】
加えて、コンピュータシステム８００の１つ以上の構成要素をリモートに配置し、ネットワークを介して他の構成要素に接続することができる。また、これらの実施形態の部分（例えば、監視装置、管理装置など）を、これらの実施形態を実施する分散型システムの異なるノード上に配置することもできる。例えば、これらの実施形態は、１組のリモートコンピュータシステム内のプロセスに関する到着間遅延を監視し、プロセスの到着間遅延及び／又は優先度に基づいてプロセスの受信ウィンドウを調節する、ネットワークトラフィック遠隔制御システムを使用して実施することができる。
【００４７】
様々な実施形態の以上の説明は、例示と説明のみのために提示されてきた。これらの説明は、網羅的であったり本発明を開示された形態に限定したりすることを意図しない。したがって、多くの修正及び変形態様は、当業者に明らかであろう。加えて、上記の開示は、本発明を制限することを意図したものではない。
【図１】
0006029074.tif 000002
【図２】
0006029074.tif 000003
【図３】
0006029074.tif 000004
【図４】
0006029074.tif 000005
【図５】
0006029074.tif 000006
【図６】
0006029074.tif 000007
【図７】
0006029074.tif 000008
【図８】
0006029074.tif 000009