(57)【要約】  フィードバックに基づくモデム制御のためのシステムおよび方法が開示される。一実施形態では、モデムオブザーバモジュールがコンピューティングデバイス内のソフトウェアに関連付けられる。モデムオブザーバは、モデムから、アップリンク帯域幅利用可能性および/またはアップリンク帯域幅に影響を及ぼす場合があるネットワーク条件に関連する情報を受信する。モデムにおけるアップリンク帯域幅利用可能性に基づいて、モデムオブザーバは、アプリケーションによってアクティブである接続の数を抑制または制限することができる。
2017508341.tif 000002
【特許請求の範囲】
【請求項１】
モバイル端末を制御する方法であって、
前記モバイル端末のモデムが利用可能な帯域幅の指示を受信するステップと、
アクティブ接続の最大数を決定するステップと、
アクティブ接続の現在数を決定するステップと、
1つまたは複数の新たなアクティブ接続を開く要求を受信するステップと、
前記アクティブ接続の前記最大数を、前記アクティブ接続の前記現在数に新たなアクティブ接続のための前記要求を加えたものと比較するステップと、
アクティブ接続の全数を、前記アクティブ接続の前記最大数以下に制限するステップとを含む、モバイル端末を制御する方法。
【請求項２】
前記アクティブ接続の前記全数を制限するステップは、開いている接続の数を制限するステップを含む、請求項1に記載の方法。
【請求項３】
前記アクティブ接続の前記全数を制限するステップは、開いている接続に関するアクティビティを制限するステップを含む、請求項1に記載の方法。
【請求項４】
モデムインターフェースデーモンでモデムオブザーバを登録するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記指示を受信するステップは、前記モデムオブザーバが前記モデムインターフェースデーモンから前記指示を受信するステップを含む、請求項4に記載の方法。
【請求項６】
1つまたは複数の新たなアクティブ接続を開く前記要求を受信するステップは、ブラウザから前記要求を受信するステップを含む、請求項1に記載の方法。
【請求項７】
前記アクティブ接続の前記全数を制限するステップは、アクティブ接続に使用されるポートの数を制限するステップを含む、請求項1に記載の方法。
【請求項８】
前記モバイル端末の前記モデムが利用可能な前記帯域幅の前記指示を受信するステップは、ネットワーク条件に関連する情報を受信するステップを含む、請求項1に記載の方法。
【請求項９】
ソフトウェアを含む非一時的コンピュータ可読記録媒体であって、
モバイル端末のモデムが利用可能な帯域幅の指示を受信し、
アクティブ接続の最大数を決定し、
アクティブ接続の現在数を決定し、
1つまたは複数の新たなアクティブ接続を開く要求を受信し、
前記アクティブ接続の前記最大数を、前記アクティブ接続の前記現在数に新たなアクティブ接続のための前記要求を加えたものと比較し、
アクティブ接続の全数を、前記アクティブ接続の前記最大数以下に制限する
ための命令を有する、ソフトウェアを含む非一時的コンピュータ可読記録媒体。
【請求項１０】
前記アクティブ接続の前記全数を制限する前記命令は、開いている接続の数を制限する命令を含む、請求項9に記載のコンピュータ可読記録媒体。
【請求項１１】
前記アクティブ接続の前記全数を制限する前記命令は、開いている接続に関するアクティビティを制限する命令を含む、請求項9に記載のコンピュータ可読記録媒体。
【請求項１２】
モデムインターフェースデーモンでモデムオブザーバを登録する命令をさらに含む、請求項9に記載のコンピュータ可読記録媒体。
【請求項１３】
前記指示を受信する前記命令は、前記モデムオブザーバに前記モデムインターフェースデーモンから前記指示を受信させる命令を含む、請求項12に記載のコンピュータ可読記録媒体。
【請求項１４】
1つまたは複数の新たなアクティブ接続を開く前記要求を受信する前記命令は、ブラウザから前記要求を受信する命令を含む、請求項9に記載のコンピュータ可読記録媒体。
【請求項１５】
前記アクティブ接続の前記全数を制限する前記命令は、アクティブ接続に使用されるポートの数を制限する命令を含む、請求項9に記載のコンピュータ可読記録媒体。
【請求項１６】
前記モバイル端末の前記モデムが利用可能な前記帯域幅の前記指示を受信する前記命令は、ネットワーク条件に関連する情報を受信する命令を含む、請求項9に記載のコンピュータ可読記録媒体。
【請求項１７】
モバイル端末であって、
ユーザインターフェースと、
モデムと、
前記ユーザインターフェースおよび前記モデムに動作可能に結合される制御システムと
を備え、
前記制御システムは、
前記モデムが利用可能な帯域幅の指示を受信し、
アクティブ接続の最大数を決定し、
アクティブ接続の現在数を決定し、
1つまたは複数の新たなアクティブ接続を開く要求を受信し、
前記アクティブ接続の前記最大数を、前記アクティブ接続の前記現在数に新たなアクティブ接続のための前記要求を加えたものと比較し、
アクティブ接続の全数を、前記アクティブ接続の前記最大数以下に制限する
ように構成される、モバイル端末。
【請求項１８】
前記アクティブ接続の前記全数を制限するように構成される前記制御システムは、開いている接続の数を制限するように構成される、請求項17に記載のモバイル端末。
【請求項１９】
前記アクティブ接続の前記全数を制限するように構成される前記制御システムは、開いている接続に関するアクティビティを制限するように構成される、請求項17に記載のモバイル端末。
【請求項２０】
前記制御システムは、モデムインターフェースデーモンでモデムオブザーバを登録するようにさらに構成される、請求項17に記載のモバイル端末。
【請求項２１】
前記指示を受信するように構成される前記制御システムは、前記モデムオブザーバに前記モデムインターフェースデーモンから前記指示を受信させるように構成される、請求項20に記載のモバイル端末。
【請求項２２】
1つまたは複数の新たなアクティブ接続を開く前記要求を受信するように構成される前記制御システムは、ブラウザから前記要求を受信するように構成される、請求項17に記載のモバイル端末。
【請求項２３】
前記アクティブ接続の前記全数を制限するように構成される前記制御システムは、アクティブ接続に使用されるポートの数を制限するように構成される、請求項17に記載のモバイル端末。
【請求項２４】
前記モバイル端末の前記モデムが利用可能な前記帯域幅の前記指示を受信するように構成される前記制御システムは、ネットワーク条件に関連する情報を受信するように構成される、請求項17に記載のモバイル端末。
【請求項２５】
コンピューティングデバイスであって、
ユーザインターフェースと、
モデムと、
前記ユーザインターフェースおよび前記モデムに動作可能に結合される制御システムと
を備え、
前記制御システムは、
前記モデムが利用可能な帯域幅の指示を受信し、
アクティブ接続の最大数を決定し、
アクティブ接続の現在数を決定し、
1つまたは複数の新たなアクティブ接続を開く要求を受信し、
前記アクティブ接続の前記最大数を、前記アクティブ接続の前記現在数に新たなアクティブ接続のための前記要求を加えたものと比較し、
アクティブ接続の全数を、前記アクティブ接続の前記最大数以下に制限する
ように構成される、コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、その全体が参照により本明細書に組み込まれる、2014年1月10日に出願された「SYSTEMS AND METHODS FOR MODEM CONTROL BASED ON FEEDBACK」と題する米国特許出願第14/152,290号の優先権を主張する。
【０００２】
本開示の技術は包括的には、コンピューティングデバイス内のモデムを制御することに関する。
【背景技術】
【０００３】
モバイル通信デバイスは現代社会において一般的になった。これらのモバイルデバイスの普及は、1つには、現在そのようなデバイス上で可能にされる多くの機能によって推進される。これらの機能のうちの多くは、インターネット上のウェブサイトまたはモバイルデバイスから離れた他のソースと通信する能力に頼る。遠隔ソースとの通信に頼る機能および応用形態の急増は一般的に、モバイルデバイスのワイヤレス送受信機(たとえば、セルラーモデム)を通って行き来するパケットによって扱われる。大部分のそのようなモバイルデバイスは、そのようなパケットの送信および受信を扱うセルラープロトコルに頼る。
【０００４】
セルラーネットワークは、そのようなモバイルデバイスのユーザが利用可能な次第に増強されてきた帯域幅を有するが、様々な機能がすべて、同時に送信するためにパケットを発行するとき、モバイルデバイスは依然として、モバイルデバイスのセルラーモデムにおいてパケットを送信する際に遅延を受ける場合がある。
【０００５】
ウェブブラウザのようなパケットを送信する1つの機能しか存在しない場合であっても、ウェブブラウザは、セルラーモデムにおいて多数のパケットを生成する可能性があり、したがって、セルラーモデムにおける輻輳の一因となる。すなわち、ブラウザは通常、良好なネットワーク条件下でより高いネットワーク利用率を達成するために、数多くの伝送制御プロトコル(TCP)接続を同時に開くことになる。TCPフロー制御アルゴリズムは、信頼性のある接続を提供するために、確認応答(ACK)クロッキング機構(clocking mechanism)を含む。しかしながら、ACKクロッキング機構を使用することは、アップリンク接続上で数多くのACKパケットを送信することを伴う。良好なネットワーク条件下で、数多くのACKパケットは性能を高める。しかしながら、ネットワーク条件が準最適である場合には、多数のACKパケットが性能に悪影響を及ぼす場合がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
詳細な説明において開示される実施形態は、フィードバックに基づくモデム制御のためのシステムおよび方法を含む。セルラーモデムとともに使用する場合について具体的に考えられるが、例示的な実施形態は、モデムを含む他のコンピューティングデバイスに適用可能である。いずれの場合でも、モデムオブザーバモジュールが、デバイス内のソフトウェアに関連付けられる。モデムオブザーバは、モデムから、アップリンク帯域幅利用可能性および/またはアップリンク帯域幅に影響を及ぼす場合があるネットワーク条件に関連する情報を受信する。モデムにおけるアップリンク帯域幅利用可能性に基づいて、モデムオブザーバは、接続の数を抑制または制限することができる。第1の実施形態では、アクティブ接続の数が制御される。第2の実施形態では、接続の全数が制御される(すなわち、開いており、アクティブであるか、またはアイドルであるかのいずれか)。
【０００７】
この関連で、一実施形態では、モバイル端末を制御する方法が開示される。その方法は、モバイル端末のモデムが利用可能な帯域幅の指示を受信することを含む。また、その方法は、アクティブ接続の最大数を決定することも含む。また、その方法は、アクティブ接続の現在数を決定することも含む。また、その方法は、1つまたは複数の新たなアクティブ接続を開く要求を受信することも含む。また、その方法は、アクティブ接続の最大数を、アクティブ接続の現在数に新たなアクティブ接続要求を加えたものと比較することも含む。また、その方法は、アクティブ接続の全数を、アクティブ接続の最大数以下に制限することも含む。
【０００８】
別の実施形態では、命令を有するソフトウェアを含む非一時的コンピュータ可読媒体が開示される。そのソフトウェアは、モバイル端末のモデムが利用可能な帯域幅の指示を受信する命令を含む。また、そのソフトウェアは、アクティブ接続の最大数を決定する命令も含む。また、そのソフトウェアは、アクティブ接続の現在数を決定する命令も含む。また、そのソフトウェアは、1つまたは複数の新たなアクティブ接続を開く要求を受信する命令も含む。また、そのソフトウェアは、アクティブ接続の最大数を、アクティブ接続の現在数に新たなアクティブ接続要求を加えたものと比較する命令も含む。また、そのソフトウェアは、アクティブ接続の全数を、アクティブ接続の最大数以下に制限する命令も含む。
【０００９】
別の実施形態では、モバイル端末が開示される。モバイル端末はユーザインターフェースを備える。また、モバイル端末はモデムも備える。また、モバイル端末は、ユーザインターフェースおよびモデムに動作可能に結合される制御システムも備える。制御システムは、モデムが利用可能な帯域幅の指示を受信するように構成される。また、制御システムは、アクティブ接続の最大数を決定するように構成される。また、制御システムは、アクティブ接続の現在数を決定するように構成される。また、制御システムは、1つまたは複数の新たなアクティブ接続を開く要求を受信するように構成される。また、制御システムは、アクティブ接続の最大数を、アクティブ接続の現在数に新たなアクティブ接続要求を加えたものと比較するように構成される。また、制御システムは、アクティブ接続の全数を、アクティブ接続の最大数以下に制限するように構成される。
【００１０】
別の実施形態では、コンピューティングデバイスが開示される。コンピューティングデバイスはユーザインターフェースを備える。また、コンピューティングデバイスはモデムも備える。また、コンピューティングデバイスは、ユーザインターフェースおよびモデムに動作可能に結合される制御システムも備える。制御システムは、モデムが利用可能な帯域幅の指示を受信するように構成される。また、制御システムは、アクティブ接続の最大数を決定するように構成される。また、制御システムは、アクティブ接続の現在数を決定するように構成される。また、制御システムは、1つまたは複数の新たなアクティブ接続を開く要求を受信するように構成される。また、制御システムは、アクティブ接続の最大数を、アクティブ接続の現在数に新たなアクティブ接続要求を加えたものと比較するように構成される。また、制御システムは、アクティブ接続の全数を、アクティブ接続の最大数以下に制限するように構成される。
【図面の簡単な説明】
【００１１】
【図１】フィードバック機構を通して制御することができるモデムを用いてネットワークにおいて通信する例示的なコンピューティングデバイスの概略図である。
【図２】フィードバック機構を通して制御することができるモデムを用いてセルラーネットワークにおいて通信する例示的なモバイル端末の斜視図である。
【図３】図2のモバイル端末の構成要素のブロック図である。
【図４】モデムのフィードバックに基づく制御を容易にするモデムオブザーバを有する、図1のコンピューティングデバイスまたは図2および図3のモバイル端末のソフトウェアの例示的なブロック図である。
【図５】フィードバックに基づくモデム制御のプロセスを示す例示的な流れ図である。
【図６】フィードバックに基づいてモデムを制御するソフトウェアの初期化の例示的な論理流れ図である。
【図７】モデムを制御する際に使用されるソフトウェアに与えられるフィードバックの例示的な論理流れ図である。
【発明を実施するための形態】
【００１２】
次に図面を参照しながら、本開示のいくつかの例示的な実施形態が説明される。「例示的な」という用語は、本明細書では「例、事例、または実例として役に立つこと」を意味するように使用される。「例示的」として本明細書で説明するいかなる実施形態も、他の実施形態よりも好ましいか、または有利であると必ずしも解釈されるべきでない。
【００１３】
詳細な説明において開示される実施形態は、フィードバックに基づくモデム制御のためのシステムおよび方法を含む。セルラーモデムとともに使用する場合について具体的に考えられるが、例示的な実施形態は、モデムを含む他のコンピューティングデバイスに適用可能である。いずれの場合でも、モデムオブザーバモジュールが、デバイス内のソフトウェアに関連付けられる。モデムオブザーバは、モデムから、アップリンク帯域幅利用可能性および/またはアップリンク帯域幅に影響を及ぼす場合があるネットワーク条件に関連する情報を受信する。モデムにおけるアップリンク帯域幅利用可能性に基づいて、モデムオブザーバは、接続の数を抑制または制限することができる。第1の実施形態では、アクティブ接続の数が制御される。第2の実施形態では、接続の全数が制御される(すなわち、開いており、アクティブであるか、またはアイドルであるかのいずれか)。
【００１４】
本明細書において開示される実施形態により、コンピューティングデバイス(モバイルまたは非モバイル)が、利用可能なアップリンク帯域幅を評価し、次いで、さらなる接続が行われるべきか否かを判断できるようになる。ネットワーク輻輳または信号強度不良のため、アップリンク帯域幅が制限される場合には、ソフトウェアが、接続が開かれるのを妨げることができるか、または既存の接続がアクティブになるのを妨げることができる。このようにして、アップリンクチャネル上で送信されるパケットの全数が、利用可能な帯域幅によって決定されるしきい値未満の数に抑制される。このようにしてパケットの数を制御することによって、アップリンク上で生じるパケットに追加される大きく変化する待ち時間が短縮されるので、アップリンクの性能が改善される。大きな変化を伴うそのような待ち時間は、クライアント側とサーバ側の両方において往復遅延時間(RTT: round trip delay time)推定不良を引き起こす可能性がある。サーバは輻輳したアップリンク条件と輻輳したダウンリンク条件とを区別することができないので、RTT不良は、失われなかったパケットの無用の再送、ネットワークにおいて失われたデータの後の時点での再送、およびダウンリンク帯域幅の縮小を引き起こす場合がある。これらの条件のいずれかの低減または改善が、全体性能を改善することになる。
【００１５】
本開示の例示的な実施形態は、セルラーモデムを使用するセルラー電話のようなモバイル端末において使用することを考えるが、本開示はそれには限定されない。この関連で、図1はネットワーク12に結合されるコンピューティングデバイス10を示しており、例示的な実施形態において、ネットワークはインターネットである。コンピューティングデバイス10は、その中に中央処理ユニット(CPU、図示せず)を備えるハウジング14を含むことができる。ユーザは、モニタ(ディスプレイと呼ばれる場合もある)16、キーボード18および/またはマウス20のような入力/出力要素から形成されるユーザインターフェースを通してコンピューティングデバイス10とやりとりすることができる。いくつかの実施形態では、モニタ16は、ハウジング14内に組み込まれる場合がある。キーボード18およびマウス20が示される入力デバイスであるが、モニタ16はタッチスクリーンディスプレイとすることができ、入力デバイスとしてキーボード18およびマウス20を補うか、または入力デバイスの代わりに用いることができる。デスクトップ型またはラップトップ型のコンピューティングデバイスとの関連で十分に理解されているように、他の入力/出力デバイスが存在する場合もある。図示されないが、ハウジング14は、その中にモデムを含む場合もある。モデムは、十分に理解されているように、ネットワークインターフェースカード(NIC)上に配置することができる。同様に、ハウジング14の外部にルータおよび/またはさらなるモデムが存在する場合がある。たとえば、コンピューティングデバイス10は、十分に理解されているように、ルータおよびケーブルモデムを通してネットワーク12に結合することができる。しかしながら、そのような外部ルータまたはモデムが存在する場合であっても、コンピューティングデバイス10は、そのような外部ルータおよびモデムとの通信を達成するための内部モデムを有する可能性がある。
【００１６】
コンピューティングデバイス10に加えて、本開示の例示的な実施形態は、モバイル端末において実施することもできる。この関連で、モバイル端末22の例示的な実施形態が図2に示される。モバイル端末22は、SAMSUNG GALAXY(登録商標)またはAPPLE iPhone(登録商標)のようなスマートフォンとすることができる。スマートフォンの代わりに、モバイル端末22は、セルラー電話、タブレット、ラップトップ、または他のモバイルコンピューティングデバイスとすることができる。モバイル端末22は、基地局(BS)26に関連付けられるリモートアンテナ24と通信することができる。BS26は、公衆陸上移動通信網(PLMN:public land mobile network)28、公衆交換電話網(PSTN:public switched telephone network、図示せず)、またはネットワーク12(たとえば、インターネット)と通信することができる。また、PLMN28は、直接、または介在するネットワークを通して(たとえば、PSTN)のいずれかによって、インターネット(たとえば、ネットワーク12)と通信することも可能である。大部分の最新のモバイル端末22は、ネットワーク12の要素との様々なタイプの通信を可能にすることは理解されたい。たとえば、ストリーミングオーディオ、ストリーミングビデオおよび/またはウェブブラウジングはすべて、大部分の最新のモバイル端末22における共通機能である。そのような機能は、モバイル端末22のメモリ内に記憶されるアプリケーションを通して、モバイル端末22のワイヤレス送受信機を使用して可能にされる。
【００１７】
モバイル端末22の構成要素のより詳細な説明が、図3を参照しながら提供される。この関連で、モバイル端末22の要素のうちのいくつかのブロック図が示される。モバイル端末22は、受信機経路30と、送信機経路32と、アンテナ34と、スイッチ36と、ベースバンドプロセッサ(BBP)38と、制御システム40と、周波数シンセサイザ42と、ユーザインターフェース44と、その中にソフトウェア48を記憶しているメモリ46とを含むことができる。
【００１８】
受信機経路30は、基地局(たとえば、BS26)によって与えられる1つまたは複数のリモート送信機からの情報搬送無線周波数(RF)信号を受信する。低雑音増幅器(図示せず)が信号を増幅する。フィルタ(図示せず)が、受信信号内の広帯域干渉を最小化し、一方、ダウンコンバージョンおよびデジタル化回路(図示せず)が、フィルタリングされた受信信号を中間周波数信号またはベースバンド周波数信号にダウンコンバートし、次いでその信号がデジタル化され、1つまたは複数のデジタルストリームになる。受信機経路30は通常、周波数シンセサイザ42によって生成された1つまたは複数の混合周波数を使用する。BBP38は、デジタル化された受信信号を処理して、信号内で搬送される情報またはデータビットを抽出する。そのようにして、BBP38は通常、1つまたは複数のデジタルシグナルプロセッサ(DSP)において実施される。
【００１９】
図3を引き続き参照すると、送信側において、BBP38は、制御システム40から、音声、データまたは制御情報を表す場合があるデジタル化されたデータを受信し、送信するためにデータを符号化する。符号化されたデータは送信機経路32に出力され、そのデータは、所望の送信周波数において搬送波信号を変調するために、変調器(図示せず)によって使用される。RF電力増幅器(図示せず)が被変調搬送波信号を、送信するのに適したレベルまで増幅し、スイッチ36を通して、増幅された被変調搬送波信号をアンテナ34に送達する。まとめて、BBP38、受信機経路30、送信機経路32および周波数シンセサイザ42は、ワイヤレスモデム50と見なすことができる。ワイヤレスモデム50が、セルラー信号に関連付けられるRF信号との関連で具体的に説明されるが、本開示はそれには限定されない。たとえば、他のワイヤレスプロトコルに従って動作するワイヤレスモデムも、本開示の実施形態を含むことから恩恵を受ける場合がある。したがって、ブルートゥース(登録商標)、様々なIEEE802.11標準規格、ユニバーサルモバイル電気通信システム(UMTS:Universal Mobile Telecommunications System)、高速パケットアクセス(HSPA:High Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)および他のワイヤレスプロトコルはすべて、本開示の実施形態を使用することができる。
【００２０】
図3を引き続き参照すると、ユーザは、マイクロフォン、スピーカ、キーパッドおよびディスプレイのような、ユーザインターフェース44を介してモバイル端末22とやりとりすることができる。受信信号内に符号化されたオーディオ情報がBBP38によって再生され、スピーカを駆動するのに適したアナログ信号に変換される。キーパッドおよびディスプレイによって、ユーザはモバイル端末22とやりとりすることができるようになる。たとえば、キーパッドおよびディスプレイによって、ユーザは、ダイヤルされる番号を入力すること、アドレス帳情報にアクセスすることなどができるようになる場合があり、同様に呼経過情報を監視できるようになる場合がある。メモリ46は、先に言及されたようにその中にソフトウェア48を有することができ、そのソフトウェアが本開示の例示的な実施形態を達成することができる。
【００２１】
図示されないが、移動が少ないコンピューティングデバイス10は類似の要素を有する場合があるが、ワイヤレスモデム50の代わりに、NICは、通信を達成するために有線系インターフェースを有することができることは理解されたい。
【００２２】
コンピューティングデバイスがモバイル端末22であるか、それより動かないコンピューティングデバイス10であるかにかかわらず、本開示の例示的な実施形態により、制御システム(たとえば、制御システム40)は、アップリンクキュー待ち時間にわたってモデムをポーリングし、アプリケーションによって行われる接続を選択的に制御することによって、モデム(たとえば、モデム50)における輻輳を制御できるようになる。すなわち、多くのウェブアプリケーションが複数の接続を生成する。ネットワーク条件が輻輳していないとき、そのような複数の接続により、ウェブアプリケーションは、複数の接続上でデータを実効的に同時に受信できるようになる。この概ね同時の受信の結果として、ダウンロード効率が良好になる。たとえば、ウェブブラウザが複数の接続のうちの異なる接続を通して1つのウェブページの異なる部分をダウンロードすることができる(たとえば、1つの接続においてテキスト、別の接続において画像、他の接続においてJava(登録商標)スクリプトなど)。しかしながら、各接続は通信リンクのアップリンク部分においてパケットを生成するセットアッププロセスを通らなければならない。不良ネットワーク条件において、これらのパケットのうちの十分なパケットがモデムに達すると、パケット衝突が生じる場合があり、パケットがアップリンクを介して送信されるのを待つモデムキューに留まるにつれて、待ち時間が長くなり、パケットが失われる場合がある。アクティブ接続の数を制御することによって、例示的な実施形態が性能を改善する。すなわち、先に言及されたように、ネットワーク輻輳の結果として大きく変化する待ち時間が生じる場合があり、それにより、クライアント側とサーバ側の両方においてRTT推定不良を引き起こす可能性がある。サーバは輻輳したアップリンク条件と輻輳したダウンリンク条件とを区別することができないので、RTT不良は、失われなかったパケットの無用の再送、ネットワークにおいて失われたデータの後の時点での再送、およびダウンリンク帯域幅の縮小を引き起こす場合がある。開いているアクティブな接続の数を抑制することによって、これらの条件のいずれかの低減または改善が、全体性能を改善することになる。
【００２３】
接続数に関する制御を提供するために、例示的な実施形態は、コンピューティングデバイス10、22のソフトウェア48にモデムオブザーバを追加することによって、モデムフィードバックを使用する。モデムオブザーバは、モデム50のためのネットワーク条件および/または利用可能アップリンク帯域幅を確認するためにモデム50をポーリングする。ネットワーク条件が輻輳しており、および/または利用可能アップリンク帯域幅が所定のしきい値未満である場合には、モデムオブザーバは、ネットワークスタックに、アクティブ接続の数を制限するように指示する。第1の実施形態では、モデムオブザーバは各アプリケーションに関連付けられる(すなわち、ウェブ系アプリケーション(たとえば、ブラウザ、ビデオストリーミング、オーディオストリーミングなど)ごとに別々のモデムオブザーバが存在する)。第2の実施形態では、モデムオブザーバは、ウェブ系アプリケーションのすべてに関連付けられるハイパーテキスト転送プロトコル(http)内に存在する(すなわち、すべてのウェブ系アプリケーション間で共有される1つのモデムオブザーバが存在する)。理解されているように、ウェブブラウザアプリケーションのためのhttpスタックは、httpトランザクションを管理する責任を担うブラウザモジュールのうちの1つである。httpスタックは、ブラウザネットワーク接続を開き、リモートサーバにhttp要求を送信する。
【００２４】
この関連で、図4は、ネットワーク輻輳を確認し、モデム50を通して転送されるアクティブ接続を制御するために、モデム50からフィードバックを受信するモデムオブザーバ60を有するソフトウェア48の例示的な実施形態のブロック図を示す。アクティブ接続のこの制御は性能を改善する。図示されるように、モデムオブザーバ60は、すべてのウェブアプリケーション64の場合にhttpスタック62に関連付けられる。しかしながら、先に言及されたように、ウェブアプリケーション64内のアプリケーションごとのネットスタックに別々のモデムオブザーバ60が関連付けられる場合がある。理解されているように、ウェブアプリケーション64は、論理的には、伝送制御プロトコル/インターネットプロトコル(TCP/IP)スタック66の上位に位置する。TCP/IPスタック66は、ウェブアプリケーション64からのパケットを組み立て、それらのパケットをネットドライバ68に渡し、ネットドライバはパケットをバス70を通してモデム50に渡す。バス70は、共有メモリドライバ(SMD:shared memory driver)、セキュアデジタル入力/出力(SDIO:secure digital input/output)、高速インターチップ(HSIC:high speed inter chip)プロトコル(ユニバーサルシリアルバス(USB:universal serial bus)2.0の一部)などに従って動作することができる。モデムオブザーバ60は、モデムインターフェースソフトウェア74内のモデムインターフェースデーモン72と通信する。モデムインターフェースソフトウェア74は、モデムドライバ76を使用して、ネットインターフェース78およびバス70を通してモデム50を制御する。
【００２５】
図4を引き続き参照すると、モデム50は、制御チャネルモジュール82およびデータチャネルモジュール84を有するネットワークインターフェース80を含む。ネットワークインターフェース80は、モデムドライバ86と通信し、モデムドライバはモデムサービスモジュール88と通信する。モデムサービスモジュール88は、アップリンクチャネルを介して送信されるのを待つパケットの数についての情報を提供することができ、モデム50が利用可能な帯域幅および他のネットワーク条件についての情報も提供することができる。したがって、モデムインターフェースデーモン72が、ネットワーク輻輳に関連する情報のためにモデム50をポーリングするとき、モデムサービスモジュール88は、要求された情報によって応答するソフトウェアである。モデム50はさらに、ネットドライバ68からパケットを受信するネットワーク入力/出力90を含む。パケットはネットワーク入力/出力90からセルラープロトコルモジュール92に渡り、そこで、NICまたはアンテナ24を通して送信するために処理される。
【００２６】
モデム50からのフィードバックを確保し、それによってモデムを制御する例示的なプロセスが、図5を参照しながら提供される。ネットワーク条件が、開いているアクティブな接続が多すぎる結果としてモデム50においてさらなる輻輳が生じることになるとき、プロセス100は、モデム50からの情報を確保し、システムの全体性能を改善するようにアクティブ接続の数を制限する。それに応じて、プロセス100は、コンピューティングデバイス10、22上のウェブアプリケーションのインストールを開始する(ブロック102)。ウェブアプリケーションのインストールは、ダウンロードプロセスを通して行うことができるか、リムバーブル媒体(たとえば、ディスク、CD、DVDなど)を通してインストールすることができるか、またはソフトウェアは、コンピューティングデバイス10、22の製造中にプリインストールすることができる。モデムオブザーバ60がインストールされる(ブロック104)。先に言及されたように、httpスタック62のために単一のモデムオブザーバ60がインストールされる場合があるか、またはウェブアプリケーションごとに1つ、複数のモデムオブザーバ60がインストールされる場合がある。ブロック102、104は比較的同時に、または長い間隔をおいて行われる場合があることを理解されたい。たとえば、モデムオブザーバ60は、オペレーティングシステムアップグレードまたはパッチの一部としてインストールされる場合があり、ウェブアプリケーションは、いつでもユーザによって開始することができる。
【００２７】
図5を引き続き参照すると、インストール後のある時点において、ユーザは、コンピューティングデバイス10、22のユーザインターフェースを使用して、ウェブアプリケーションを起動することができる(ブロック106)。例示的な実施形態では、ウェブアプリケーションは、GOOGLE CHROME、APPLE SAFARI、INTERNET EXPLORER、MOZILLA FIREFOXなどのウェブブラウザである。別の例示的な実施形態では、ウェブアプリケーションは、オーディオストリーミングプログラムまたはビデオストリーミングプログラムとすることができる。容易に理解されるように、さらに他のウェブアプリケーションも本開示の範囲内に入る。モデムオブザーバ60は、ウェブアプリケーションの起動に応答して、アップリンクチャネルの利用可能な帯域幅のためにモデム50をポーリングすることができる(ブロック108)。別の例示的な実施形態では、モデムオブザーバ60は、ウェブアプリケーションの起動を特に基準にすることなく、モデム50を定期的にポーリングすることができる。いずれの場合でも、利用可能な帯域幅および/または他のネットワーク条件に基づいて、制御システム40は、アクティブ接続の最大数を決定することができる(ブロック110)。本明細書において使用されるときに、アクティブ接続は、開いており、遠隔した場所とデータを交換している接続である。さらなる説明として、開いている接続がデータを交換していない場合には、その接続は依然として非アクティブと見なすことができる。
【００２８】
引き続き図5を参照すると、制御システム40は、アクティブ接続の現在数を決定することができる(ブロック112)。これらのアクティブ接続は、あらかじめ開いているウェブアプリケーションなどに起因する場合がある。ウェブアプリケーションは、httpスタック62が1つまたは複数の接続を起動することを要求する(ブロック114)。制御システム40は、現時点でアクティブな接続に新たに要求される接続を加えたものを接続の最大数と比較する(ブロック116)。次いで、制御システム40は、アクティブ接続の全数を、接続の最大数以下に制限する(ブロック118)。アクティブ接続を制限することは、要求をTCP/IPスタック66に渡さないことによって、または要求を延期することによって果たすことができる。
【００２９】
図5を引き続き参照すると、制御システム40は、開いているが、非アクティブである(すなわち、データを交換していない)接続が再開されたか否かを判断する(ブロック120)。すなわち、ユーザがウェブページをリフレッシュするとき、または類似の状況のように、休止状態であった接続がウェブページによって再起動される場合がある。ブロック120への回答がイエスである場合には、プロセス100はブロック108に戻り、モデムオブザーバ60は、利用可能な帯域幅のためにモデム50をポーリングする。ブロック120への回答がノーである場合には、再開されていないが、非アクティブの接続が存在しており、プロセス100は、制御システム40が、ユーザが新たなアプリケーションを起動したか否かを判断することによって継続する(ブロック122)。ブロック122への回答がイエスである場合には、ユーザが新たなアプリケーションを起動しており、したがって、プロセスは、指示されるように、ブロック106における開始を繰り返す。ブロック122への回答がノーである場合には、ユーザは新たなアプリケーションを起動しておらず、プロセスは、再開されたが、非アクティブの接続を監視することによって繰り返す(ブロック120)。
【００３０】
図6および図7は、プロセス100を実施するために、そして特に、モデムフィードバックを与えることができるようなモデムオブザーバ60でウェブアプリケーションを登録するために与えることができる例示的なコマンドに関する論理フローを与える。これに関連して、図6は、例示的なウェブアプリケーション64であるブラウザ132が、モデムオブザーバ60に、モデムオブザーバ60を初期化するinitコマンド134を送信する論理フロー130を示す。そのようなinitコマンド134は、ブロック106(図5)の一部とすることができる。モデムオブザーバ60は、モデムインターフェースデーモン72にregisterBWEstimationListenerコマンド136を送信する。このregisterBWEstimationListenerコマンド136は、モデムインターフェースデーモン72に、モデムインターフェースデーモン72からの報告を受信させる。そのような報告は、ブロック108(図5)において説明されたようなアップリンクチャネル上で利用可能な帯域幅を指示するモデム50からの情報を与える。ブラウザ132は、httpスタック62を作成するinitコマンド138も送信する。initコマンド138後に、ブラウザ132はさらに、モデムオブザーバ60にhttpスタック62への参照を与えるregisterNetStackコマンド140を、モデムオブザーバ60に送信することができる。利用可能な帯域幅に関連するモデムインターフェースデーモン72からの情報を使用することによって、モデムオブザーバ60は、httpスタック62内の開いているアクティブな接続の数を動的に変更または制限することができる。
【００３１】
図6は、ウェブアプリケーションの起動に関する例示的なコマンドを示すが、図7は、モデムオブザーバ60が、論理フロー150においてモデムインターフェースデーモン72からの報告をいかに扱うかに関する例示的なコマンドを示す。モデムサービスモジュール88(図4)は、モデムインターフェースデーモン72にhandlereport信号152を送信し、それにより、モデムインターフェースデーモン72は、その中の変数として報告を伴うupdateBWestimation信号154をモデムオブザーバ60に送信させる。制御システム40の一部としてのモデムオブザーバ60は、報告が、ダウンリンク帯域幅をアップリンク帯域幅で割ったものがしきい値比未満であることを指示する場合には、httpスタック62に第1の信号156を送信する。第1の信号は、アクティブ接続の最大数を最小値に設定する。そうでない場合には、モデムオブザーバ60は、httpスタック62に、接続の最大数をデフォルト値に設定する第2の信号158を送信する。信号156、158は、図5のブロック110に対応する。
【００３２】
実験データは、アクティブ接続の数を制限または抑制することが、性能に好影響を及ぼすことを示唆する。これに関連して、テストウェブサイトを使用して実験が行われた。具体的には、テストウェブサイトは、140個の大量の(たとえば16kbよりも多くの)画像を有する。アップロード帯域幅は45KBit/secに設定され、ダウンロード帯域幅は2500Kbit/secに設定され、往復遅延時間(RRT)は60msであった。ウェブブラウジングアプリケーションは、Agilent上のデフォルトAndroidブラウザであった。このセットアップは10回の繰返しを通して実行された。その結果は、以下のTable 1 (表1)に記載される。
【００３３】
【表１】
2017508341.tif 000003
【００３４】
実験は以下の観測結果を明らかにする。アップリンクを介して送信される確認応答(ACK)の遅延によって、少なくとも接続数が10よりも多いときに、ダウンロードされるデータチャンクの受信が遅くなる。接続が増えるにつれて、アップリンク上で、より多くのACKパケットが送信される。接続が増えるにつれて、より多くのHTTP GET要求再送が生じる。接続が増えるにつれて、ダウンロードリンク上に、より多くのパケット再送が現れる。したがって、ネットワーク条件が最適でない場合には、接続数が多い結果として、パケットが失われ、失われたデータを再送する際にリソースが費やされるので、ダウンロード時間が遅くなる。したがって、制限された帯域幅条件において接続の数を制限する、本開示の実施形態を実施することによって、明らかな性能改善を達成することができる。モデムフィードバックに基づいて減少したアクティブ接続の数は少なくとも以下の利点を有することを言及することによって、他の結論を要約することができる。第一に、アップリンクトラフィックが減少する(すなわち、送信されるACKパケットが少ない)こと、およびアップリンク上の再送の数が少ないことに起因して、モデムにかかる負荷が低減される。第二に、アップリンクとダウンリンクの両方において再送数が減少する。
【００３５】
本明細書において開示される実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路およびアルゴリズムは、電子ハードウェアとして、メモリまたは別のコンピュータ可読媒体に記憶され、かつプロセッサまたは他の処理デバイスによって実行される命令として、または両方の組合せとして実施できることは、当業者はさらに理解されよう。本明細書において説明されるマスターデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて利用される場合がある。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリとすることができ、また、任意のタイプの所望の情報を記憶するように構成することができる。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、その機能の観点から包括的に上記で説明されてきた。そのような機能がどのように実施されるかは、特定の用途、設計上の選択、および/または、システム全体に課された設計上の制約によって決まる。当業者は、説明された機能を、特定の用途ごとに種々の方法で実施することができるが、そのような実施態様の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきでない。
【００３６】
本明細書において開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途用集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジックデバイス、個別のゲートもしくはトランジスタロジック、個別ハードウェア構成要素、または本明細書において説明される機能を行うように設計されたこれらの任意の組合せを用いて、実施または実行することができる。プロセッサはマイクロプロセッサとすることができるが、代替形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。また、プロセッサは、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実施することができる。
【００３７】
本明細書において開示される実施形態は、ハードウェアにおいて、およびハードウェアに記憶される命令において具現化される場合があり、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野において知られている任意の他の形態のコンピュータ可読媒体に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替形態では、記憶媒体はプロセッサと一体化することができる。プロセッサおよび記憶媒体は、ASIC内に存在する場合がある。ASICは、リモート局に存在する場合がある。代替形態では、プロセッサおよび記憶媒体は、個別構成要素として、リモート局、基地局、またはサーバに存在する場合がある。
【００３８】
本明細書の例示的な実施形態のいずれかにおいて説明される動作ステップは、例および検討を提供するために説明されることにも留意されたい。説明される動作は、示される順序以外の数多くの異なる順序において実行することができる。さらに、単一の動作ステップにおいて説明される動作が、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な実施形態において論じられる1つまたは複数の動作ステップは、組み合わせることができる。流れ図に示される動作ステップは、当業者には容易に明らかになるように、数多くの異なる変更を受ける場合があることは理解されたい。情報および信号は、様々な異なる技術および技法のいずれかを使用して表される場合があることも、当業者には理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
【００３９】
本開示のこれまでの説明は、あらゆる当業者が本開示を作製または使用できるようにするために提供される。本開示に対する様々な変更形態が当業者には容易に明らかとなり、本明細書において規定される一般原理は、本開示の趣旨または範囲から逸脱することなく、他の変形形態に適用することができる。したがって、本開示は、本明細書において説明された例および設計に限定されるものではなく、本明細書において開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４０】
10  コンピューティングデバイス
12  ネットワーク
14  ハウジング
16  モニタ
18  キーボード
20  マウス
22  モバイル端末
24  リモートアンテナ
26  基地局(BS)
28  公衆陸上移動通信網(PLMN)
30  受信機経路
32  送信機経路
34  アンテナ
36  スイッチ
38  ベースバンドプロセッサ(BBP)
40  制御システム
42  周波数シンセサイザ
44  ユーザインターフェース
46  メモリ
48  ソフトウェア
50  ワイヤレスモデム
60  モデムオブザーバ
62  httpスタック
64  ウェブアプリケーション
66  TCP/IPスタック
68  ネットドライバ
70  バス
72  モデムインターフェースデーモン
74  モデムインターフェースソフトウェア
76  モデムドライバ
78  ネットインターフェース
80  ネットインターフェース
82  制御チャネルモジュール
84  データチャネルモジュール
86  モデムドライバ
88  モデムサービスモジュール
90  ネットワーク入力/出力
92  セルラープロトコルモジュール
100  プロセス
130  論理フロー
134  initコマンド
136  registerBWEstimationListenerコマンド
138  initコマンド
140  registerNetStackコマンド
150  論理フロー
152  handleReport信号
154  updateBWEstimation信号
156  第1の信号
158  第2の信号
【図１】
2017508341.tif 000004
【図２】
2017508341.tif 000005
【図３】
2017508341.tif 000006
【図４】
2017508341.tif 000007
【図５】
2017508341.tif 000008
【図６】
2017508341.tif 000009
【図７】
2017508341.tif 000010
【国際調査報告】
2017508341.tif 000011
2017508341.tif 000012