説明

ネットワーク通信パラメータを設定するための技術

ネットワークとインターフェースする1つまたは複数のコンピュータデバイスで実行されているアプリケーションのタイプに基づいて、ネットワークインターフェースでネットワーク通信パラメータを設定するための技術が開示される。したがって、たとえば、ネットワークインターフェースは、アプリケーションタイプに基づいて、実行しているアプリケーションごとに通信帯域幅、優先順位、またはそれらの組合せを設定できる。アプリケーションタイプに基づいてアプリケーションごとにネットワーク通信パラメータを設定することによって、アプリケーションはネットワークとより効率的に通信できるようになる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示はコンピュータネットワークに関し、より詳細には、コンピュータネットワークのためのネットワーク通信パラメータを設定することに関する。
【背景技術】
【0002】
通信ネットワークは、電子デバイス間で様々な情報を転送するために使用されている。しかし、通信ネットワークを介して転送される情報量が増加するにつれて、ネットワークを調節する通信バックボーンにストレスがかかり、情報転送に望ましくない遅延を引き起こすことがある。これは、良くないユーザエクスペリエンスをもたらす場合がある。たとえばユーザは、他のネットワークノードへの転送を待つ間にしばらくの間ネットワークノードでパケットが保留されるためにユーザが情報転送における遅延を感知できる、ネットワークラグを経験することがある。さらに、ネットワークラグおよび他のネットワーク転送問題は、ゲームアプリケーション、音声通信アプリケーションなどの様々なアプリケーションに影響を与える場合がある。
【0003】
添付の図面を参照することにより、本開示をよりよく理解することができ、本開示の多数の特徴および利点が当業者に明らかになるであろう。
【図面の簡単な説明】
【0004】
【図1】本開示の一実施形態による通信システムのブロック図。
【図2】本開示の他の実施形態による通信システムのブロック図。
【図3】本開示の一実施形態による、図1のコンピュータデバイスのディスプレイのブロック図。
【図4】本開示の一実施形態による通信システムのブロック図。
【図5】本開示の一実施形態による、ネットワークへの通信パケットの方法の流れ図。
【図6】本開示の一実施形態によるコンピュータデバイスのブロック図。
【発明を実施するための形態】
【0005】
図1〜6は、ネットワークとインターフェースする1つまたは複数のコンピュータデバイスで実行されているアプリケーションのタイプに基づいて、ネットワークインターフェースでネットワーク通信パラメータを設定するための技術を示している。したがって、たとえばネットワークインターフェースは、アプリケーションタイプに基づいて、実行しているアプリケーションごとに通信帯域幅、優先順位、またはそれらの組合せを設定できる。アプリケーションタイプに基づいてアプリケーションごとにネットワーク通信パラメータを設定することによって、アプリケーションはより効率的にネットワークと通信できるようになる。たとえば、より広い帯域幅を必要とするが比較的高いレイテンシで十分に実行できるアプリケーションは、パケットを合体させることやジャンボフレームを使用することなどによって帯域幅をより効率的に使用できるのに対して、比較的低い帯域幅と低いレイテンシとを必要とするオンラインゲームなどの他のアプリケーションは、ネットワークにより迅速に情報を通信するために、帯域幅に対して効率性が低い場合がある。したがって両方のアプリケーションは、ラグなどのネットワーク問題を減らせばネットワークとより効率的に通信できるようになる。
【0006】
他の実施形態では、ワイヤレスネットワークインターフェースのためのネットワークパラメータは、インターフェースに関連付けられるコンピュータデバイスで実行されているアプリケーションのタイプに基づいて設定される。調整できるワイヤレスネットワークパラメータの例には、ネットワークアクセスポイントスキャニング頻度、ネットワーク承認頻度、ワイヤレスネットワークに通信されるワイヤレスパケットにおけるサービス品質(QOS)フィールドの設定、ネットワークチャネルスキャニング頻度などがある。したがって、たとえばコンピュータデバイスでゲームアプリケーションが実行されていることをネットワークインターフェースが決定すると、ネットワークインターフェースはコンピュータデバイスが固定式である可能性が高いと決定でき、したがってインターフェースはネットワークへの新しいアクセスポイントをスキャンする頻度を減らす。それによってネットワークインターフェースは通信オーバーヘッドを減らし、ネットワークとの通信効率を改善する。
【0007】
図1を参照すると、本開示の一実施形態による通信システム100のブロック図が示されている。通信システム100は、コンピュータデバイス102、ネットワーク110、および遠隔ノード150を含む。コンピュータデバイス102および遠隔ノード150は、それぞれネットワーク110に結合されている。ネットワーク110は、コンピュータデバイス102と遠隔ノード150との間の情報通信のための物理層と論理層とを提供する。したがってネットワーク110は、それぞれのパケット内に含まれるアドレス情報によってネットワークノード間でパケットを通信するように構成されたパケット交換ネットワークでよい。したがってネットワーク110は、関連するアドレス情報によってパケットを他のノードにルーティングするように構成された、ルータ、サーバ、ゲートウェイ、およびそれらの組合せなどのルーティングデバイスを有するノードのサブセットを備える複数のノードで構成される。したがって、パケットは宛先ノードに到達するまで一連のノードにルーティングされる。
【0008】
ネットワーク110は1つまたは複数のサブネットワークを含むことができ、それぞれのサブネットワークは、インターネットなどのワイドエリアネットワーク、およびローカルエリアネットワークなどでよいことが理解されよう。パケットは、それぞれのパケットに関連付けられるアドレス情報によってサブネットワーク間でルーティングされる。さらに、異なるサブネットワークは異なる通信メディアを使用して情報を転送できることが理解されよう。たとえばネットワーク110は、ワイヤレスネットワークと有線ネットワークの両方と、それらの組合せとを含むことができる。
【0009】
遠隔ノード150は、ネットワーク110を介して通信されるべきパケットのソースおよび宛先であるネットワークノードである。したがって、遠隔ノード150はクライアントサーバ構成におけるサーバ、およびピアツーピアネットワークにおいて構成されたコンピュータデバイスなどでよい。したがって、遠隔ノード150は、指定された機能を実行するためにネットワーク110に情報を提供する、およびそこから情報を受信する、1つまたは複数のアプリケーションを実行するように構成されている。
【0010】
コンピュータデバイス102は、デスクトップ、ラップトップ、サーバ、ハンドヘルドコンピュータデバイス、セルラー式電話、またはネットワーク110を介して遠隔ノードと通信するように構成された他のデバイスである。したがって、コンピュータデバイス102はプロセッサ105とネットワークインターフェース130とを含む。プロセッサ105は、プログラムの指定された機能を実行するためにアプリケーションおよび他のプログラムを実行するように構成された、汎用またはアプリケーション専用のプロセッサデバイスである。図1に示された例では、プロセッサ105が、アプリケーション120および121と、ライブラリ122と、アプリケーションアナライザ125とを実行する。それらについては以下でさらに説明する。
【0011】
ネットワークインターフェース130は、プロセッサ105からネットワーク110への通信のための物理層および論理層インターフェースを提供する、ネットワークインターフェースカードなどのデバイスである。したがって、ネットワークインターフェース130は、帯域幅および優先順位制御モジュール131を含むいくつかのプログラムを実行するプロセッサ115を含む。さらに、ネットワークインターフェース130は、プロセッサ105で実行しているそれぞれのアプリケーションに割り当てられる帯域幅および優先順位を設定するために帯域幅および優先順位制御モジュール131によって使用される、アプリケーション情報133と構成情報134とを格納する。本明細書で使用されるように、アプリケーションに割り当てられる帯域幅は、1つまたは複数の遠隔ノードにバイトが提供される、またはそこからバイトが受信されるレートを指す。特に、遠隔ノードからバイトが受信されるレートはダウンロード帯域幅と呼ばれ、遠隔ノードにバイトが提供されるレートはアップロード帯域幅と呼ばれる。アプリケーションに関連付けられる優先順位は、他のアプリケーションに関連して、アプリケーションによって提供されたバイト、またはアプリケーションをターゲットとしたバイトが、それぞれネットワークまたはアプリケーションに提供される、順序および方法を指す。特に、アップロード優先順位は、アプリケーションによって提供されたバイトがネットワーク110に通信される相対的順序および方法を指し、ダウンロード優先順位はネットワーク110から受信された、およびアプリケーションをターゲットとしたバイトがアプリケーションに提供される相対的順序および方法を指す。
【0012】
ネットワークインターフェース130は、それぞれのアプリケーションに割り当てられた帯域幅および優先順位が確実に十分であるようにするために、アプリケーションごとに帯域幅および優先順位を調節できる。たとえば、ネットワークインターフェース130は、アプリケーションから受信したネットワーク110に提供するためのバイトを格納するためのアップロードバッファ(図示せず)と、ネットワーク110から受信したバイトを格納するためのダウンロードバッファ(図示せず)とを含むことができる。ネットワークインターフェース130が関連バッファからバイトを取得する順序およびレートと、ネットワークインターフェース130が取得したバイトをパケット化して、結果として得られるパケットをネットワークに提供する(アップロードパケットのために)方法と、ネットワークインターフェース130がアプリケーションにバイトを提供する(ダウンロードパケットのために)順序とによって、アプリケーションの優先順位および帯域幅が決定される。したがって、ネットワークインターフェース130は、それぞれのアプリケーションに割り当てられた帯域幅と優先順位とを満たすための順序およびレートで、それぞれのバッファからバイトを取得することができる。これは、アプリケーション120が、アプリケーション121に対して比較的高いアップロード帯域幅を、およびアプリケーション121に対して比較的低いアップロード優先順位を割り当てられている例を参照すればよりよく理解されよう。したがって、ネットワークインターフェース130は、指定された単位時間(通信間隔と呼ばれる)にわたって、アプリケーション121に関連付けられるアップロード帯域幅の限界に達するまで、アプリケーション120に関連付けられるバイトを取得するよりも前に、アップロードバッファからアプリケーション121に関連付けられるバイトを取得することになる。アップロード帯域幅の限界に達すると、ネットワークインターフェース130は、指定された時間にわたってアプリケーション121のためのパケットを取得することをやめ、アプリケーション120の帯域幅の限界に達するまで、アプリケーション120に関連付けられるパケットを取得する。次いで、ネットワークインターフェース130は、それぞれのアプリケーションに関連付けられる優先順位および帯域幅を強化するために、連続通信間隔にわたって取得処理を繰り返す。他の実施形態では、ネットワークインターフェース130は、アプリケーション121についての全てのペンディング情報を通信すると、アプリケーション120に関連付けられるバイトをネットワークに通信する前に、一定の期間、またはプログラム可能な期間待つことができる。それによって、ネットワークインターフェース130は、アプリケーション121がより多くの送るべきデータを有するかどうかを決定する。
【0013】
他の実施形態では、ネットワークインターフェース130は、アプリケーションに関連付けられる優先順位に基づいて、そのアプリケーションに関連付けられるパケットについてのペイロードサイズを決定できる。したがって、たとえばネットワークインターフェース130は、アプリケーションの優先順位が低ければ低いほど、それだけアプリケーションから受信したそれぞれのパケット内に含めることができるバイトが多いことを決定できる。したがって、特定のアプリケーションのためのパケットを形成するために、ネットワークインターフェース130は、アプリケーションについての指定されたペイロードサイズに達するまでアップロードバッファからバイトを取得して、取得したバイトをペイロードとして有するパケットを形成できる。ある実施形態では、それぞれの通信間隔の間、ネットワークインターフェース130はアプリケーションについての対応する優先順位に基づいてアプリケーションごとにペイロードサイズを決定する。優先順位において、ネットワークインターフェース130は、そのアプリケーションについて決定されたパケットサイズに基づいてアプリケーションごとにパケットを形成する。一旦アプリケーションについての帯域幅限度に達すると、または特定のアプリケーションについて送るべき情報がもうない場合、ネットワークインターフェース130は次に優先順位が低いアプリケーションに進む。この処理は通信間隔ごとに繰り返される。
【0014】
ネットワークインターフェース130は、アプリケーションタイプに基づいてアプリケーションごとに優先順位および帯域幅を決定するように構成されている。特に、アプリケーションアナライザ125は、プロセッサ105で実行しているアプリケーションの名前を決定するように構成されたモジュールである。たとえば、アプリケーションアナライザ125は、プロセッサ105で実行しているオペレーティングシステムによって提供された処理情報、タスク情報、または他の情報にアクセスすることによってアプリケーション名を決定できる。アプリケーションアナライザ130は、それぞれのアプリケーションによってアクセスされているのは、ライブラリ122などの何のソフトウェアライブラリ、デバイスドライバ、オペレーティングシステムリソース、または他のルーチン、プログラム、およびリソースかを決定することもできる。アプリケーションアナライザ125は、アプリケーション名などのアプリケーションタイプと、アクセスされたライブラリおよび他のリソースなどとを示す情報を、アプリケーション情報133としてネットワークインターフェース130に提供する。
【0015】
帯域幅および優先順位制御モジュール131は、アプリケーション情報133と構成情報134とに基づいて、アプリケーションごとに帯域幅および優先順位を決定する。構成情報134は、プログラム可能情報または固定情報、あるいはそれらの組合せであり、そのアプリケーションに関連付けられる情報に基づいてアプリケーションが特定のタイプのアプリケーションである可能性を示す。したがって、構成情報134は、そのアプリケーションに関連付けられるアプリケーション名とアプリケーションタイプとのリストを含むことができる。たとえば、構成情報134は、特定の名前を有するアプリケーションはオンラインゲームアプリケーションであることを示すことができる。構成情報134は、アプリケーションによってアクセスされるライブラリおよび他のリソース、またはそれらの組合せに基づいて、アプリケーションが特定のタイプのアプリケーションである可能性を示すこともできる。たとえば、構成情報134は、特定のセットのライブラリと、デバイスドライバと、他のリソースとにアクセスするアプリケーションは、ビデオストリーミングアプリケーションである可能性が高いことを示すことができる。
【0016】
さらに、構成情報134は、特定のタイプのそれぞれのアプリケーションに割り当てられるべき帯域幅の量と優先順位のレベルとを示すことができる。たとえば、構成情報134は、ビデオストリーミングアプリケーションなどの、ネットワーク110を介して大量のビデオ情報を受信すると予想されるアプリケーションは、比較的高いダウンロード帯域幅と比較的低いダウンロード優先順位とを割り当てられるべきであることを示すことができる。逆に、構成情報134は、テキストチャットプログラムなどの、大量の情報を受信することは予想されないが低い通信レイテンシが所望されるアプリケーションは、比較的低いダウンロードおよびアップロード帯域幅と、比較的高いアップロードおよびダウンロード優先順位とを割り当てられるべきであることを示すことができる。
【0017】
構成情報134は、グラフィカルユーザインターフェースまたは他のインターフェースプログラムを介して、ユーザによって調整され得る。したがって、ユーザは、異なるタイプのプログラムに割り当てられた優先順位および帯域幅を調整でき、またプログラムは指定されたタイプのプログラムであることを示す情報を調整できる。したがって、たとえば、ユーザは最近インストールされたプログラムの名前は、そのプログラムが特定のタイプのプログラムであることを示していることを示すことができ、またアプリケーションタイプに割り当てられた相対的優先順位および帯域幅を調整することもできる。ある実施形態では、ユーザは関連するアップロードおよびダウンロード優先順位を個々に調整でき、また関連するアップロードおよびダウンロード帯域幅を個々に調整できる。したがってユーザは、特定のプログラムタイプに比較的高いアップロード優先順位、比較的低いダウンロード優先順位、比較的低いアップロード帯域幅、比較的高いダウンロード帯域幅、または他の何らかの組合せが割り当てられていることを示すことができる。
【0018】
帯域幅および優先順位制御モジュールは、アプリケーション情報133と構成情報134とを比較して、アプリケーション120と121とにそれぞれ関連付けられるアプリケーションタイプを決定し、決定されたタイプに基づいてアプリケーションごとに優先順位および帯域幅を割り当てる。ある実施形態では、構成情報134は、ネットワークゲームプログラム、テキストチャットプログラム、ビデオチャットプログラム、ビデオストリーミングプログラムなどの、複数の利用可能なアプリケーションタイプを格納するデジタルファイルを含む。帯域幅および優先順位制御モジュール131は、それぞれについて、それぞれのアプリケーションに関連付けられるアプリケーション情報133に基づいて、複数の利用可能なタイプからそれぞれのアプリケーションタイプを選択する。それに応じて、ネットワークインターフェース130は、対応するアプリケーションについて選択されたアプリケーションタイプに基づいてアプリケーションごとに通信を管理する。帯域幅および優先順位制御モジュール131は、アプリケーションによって所望される帯域幅および優先順位の量についてのアプリケーションからの静的表示のみに依存するのではなく、プロセッサ105によって提供される動的アプリケーション情報に自動的に基づいて、アプリケーションタイプを選択し、関連する優先順位および帯域幅を決定することが理解されよう。これにより、ネットワークインターフェース130は、適切な優先順位または帯域幅レベルを要求するためにそれぞれのプログラムを構成することをユーザに求めずに、実行しているアプリケーションごとに帯域幅および優先順位を柔軟に割り当てることができるようになる。たとえば、ネットワークインターフェース130は、たとえプログラム名が特定のアプリケーションタイプとして指定されていなくても、あるいはプログラム自体が特定の優先順位または帯域幅を要求していなくても、アプリケーションが特定のタイプのアプリケーションであることを、アプリケーションによってアクセスされるライブラリまたは他のリソースに基づいて動的に決定して、そのタイプに基づいて帯域幅および優先順位を割り当てることができる。さらに、たとえプログラムが特定の帯域幅または優先レベルを要求しても、ネットワークインターフェース130はその要求に応じずに、構成情報134によって示されたアプリケーションのタイプに基づいて帯域幅および優先順位を割り当てることができる。
【0019】
一実施形態では、ネットワークインターフェース130は、アプリケーションタイプに基づいて、ネットワーク110に通信するためにアプリケーションによって提供された1つまたは複数のバイトを通信から除外できることを決定できる。たとえば、ゲームアプリケーションについて、アプリケーションは、他の同様の定期的アップデート情報とともに、ゲーム世界におけるプレイヤーキャラクターについての定期的な位置アップデートを提供できる。これらの位置アップデートはゲームアプリケーションによって頻繁に提供されるものと予想されるので、ネットワーク110に位置アップデートを通信することを定期的に拒否することは、ユーザにゲームエクスペリエンスに影響を与えずに済む。したがって、アプリケーションがゲームアプリケーションであると決定することに応じて、ネットワークインターフェース130は、ゲームアプリケーションによってアップロードバッファから提供された1つまたは複数のバイトを、その1つまたは複数のバイトをネットワーク110に通信せずに定期的に削除できる。同様に、ネットワークインターフェース110は、指定されたタイプのアプリケーションのために、ダウンロードバッファからのバイトを、それらのバイトに関連付けられるターゲットのアプリケーションにそれらのバイトを通信せずに定期的に削除する。それによって、ネットワークインターフェース130は、ユーザエクスペリエンスに悪影響を及ぼさずに指定されたタイプのアプリケーションについての通信効率を改善できる。
【0020】
図2を参照すると、本開示の一実施形態による通信ネットワーク200のブロック図が示されている。通信ネットワーク200は、ネットワーク110と、コンピュータデバイス202および203と、ルータ239とを含む。ルータ239は、コンピュータデバイス202および203と、ネットワーク110との両方に接続されている。それぞれのコンピュータデバイス202および203は、それぞれがネットワーク110を介して遠隔ノード(図示せず)と通信するアプリケーションを実行するという点で、図1のコンピュータデバイス102と同様に構成されている。したがって、たとえば、コンピュータデバイス220がアプリケーション221と222とを実行し、コンピュータデバイス203がアプリケーション223と224とを実行する。コンピュータデバイス202および203は、それぞれのコンピュータデバイスで実行しているアプリケーションに関連付けられるアプリケーション情報を決定するために、それぞれが図1のアプリケーションアナライザ125と同様に構成されたアプリケーションアナライザ(それぞれ、アプリケーションアナライザ125およびアプリケーションアナライザ127)も含む。
【0021】
ルータ239は、パケットを受信して、パケットによって示されたアドレス情報に基づいてそれぞれのパケットを他のノードにルーティングするように構成されたデバイスである。図示された実施形態では、ルータ239は、ネットワーク110とコンピュータデバイス202および203との間にインターフェースを提供する。特にルータ239は、コンピュータデバイス202および203から受信したパケットを、ネットワーク110を介して宛先遠隔ノードにルーティングし、またネットワーク110から受信したパケットを、それぞれの対応する受信パケットに関連付けられるアドレス情報に基づいてコンピュータデバイス202および203のうちの1つまたは両方にルーティングする。
【0022】
ルータ239は、帯域幅制御モジュール230と、構成情報234と、アプリケーション情報240とを含み、それぞれは図1の対応するモジュールと同様に構成されている。さらに、ルータ239はパケットバッファ255と、通信ファブリック270とを含む。通信ファブリック270は、ルータ239が受信したパケットを適切な宛先にルーティングできるようにする、スイッチングファブリックなどの物理的インターフェースを提供する。パケットバッファ255は、コンピュータデバイス202および203、またはネットワーク110のいずれかから受信したパケットを含む、受信パケットを格納する。帯域幅制御モジュール230は、コンピュータデバイス202および203で実行しているそれぞれのアプリケーションのタイプに関連付けられる帯域幅および優先順位に基づいてルーティングするために、バッファ255からのパケットを通信ファブリック270に提供する。それによって、ルータ230は、図1のネットワークインターフェース130と同様の方法でアプリケーションタイプに基づいてパケット通信の帯域幅および優先順位の制御を提供する。しかし、ルータ239はコンピュータデバイス202と203の両方に帯域幅および優先順位を割り当てることができる。したがって、たとえばルータ239で、アプリケーションタイプに基づいてアプリケーション223に割り当てられるものよりも多くの帯域幅およびより高い優先順位を、アプリケーションタイプに基づいてアプリケーション220に割り当てることができる。ルータ239が異なるコンピューティングデバイスでアプリケーションタイプに基づいてアプリケーションについての帯域幅および優先順位を制御できるようにすることにより、全体的なネットワーク効率を改善できる。たとえば、ルータ239は、それぞれのアプリケーションに関連付けられるアプリケーションタイプを識別することによって、あるコンピュータデバイスの低レイテンシアプリケーションを、他のコンピュータデバイスの高レイテンシアプリケーションよりも優先させることができる。それによって、ルータ239はルータに接続された全てのコンピュータデバイスについての通信効率を高めることができる。
【0023】
ネットワークインターフェース130とルータ239の両方は、どのアプリケーションがアクティブであるかに基づいて、それぞれのアプリケーションに動的に割り当てられた相対的優先順位および帯域幅を調整することもできる。これは、本開示の一実施形態によるコンピュータデバイス102のディスプレイを示している図3を参照すればよりよく理解できるであろう。図3は、コンピュータデバイス102のディスプレイに表示されたウィンドウ302および304を示している。それぞれのウィンドウ302および304は異なるアプリケーションに関連付けられる。ユーザは、ウィンドウ上をクリックすることによって、または他のユーザ入力によって、ウィンドウのうちの1つをアクティブウィンドウとして選択する。ユーザがウィンドウ302をアクティブウィンドウにしたと決定することに応じて、プロセッサ105はアクティブアプリケーションを示すためにアプリケーション情報133にアップデートを提供する。それに応じて、帯域幅および優先順位制御モジュール130は、現在アクティブであるアプリケーションに割り当てられた帯域幅、優先順位、またはその両方を変更できる。たとえば、帯域幅および優先順位制御モジュール130は、アクティブウィンドウ302に関連付けられるアプリケーションの相対的優先順位および帯域幅を増やして、ウィンドウ304に関連付けられるアプリケーションの相対的優先順位および帯域幅を減らすことができる。その後ユーザがウィンドウ304をアクティブウィンドウとして選択すると、帯域幅および優先順位制御モジュールは、それに応じてアプリケーションの相対的優先順位および帯域幅を調整する。どのアプリケーションがアクティブウィンドウに関連付けられているかに基づいて優先順位と帯域幅とを調整することによって、ネットワークインターフェース130は、ユーザと対話しているアプリケーションについての通信効率を改善して、ユーザエクスペリエンスを改善できる。
【0024】
図4を参照すると、本開示の一実施形態による通信システム400のブロック図が示されている。通信システム400は、コンピュータデバイス402と、ネットワーク410と、遠隔ノード450とを含む。コンピュータデバイス402と遠隔ノード450とは、それぞれネットワーク410に結合されている。コンピュータデバイス402は、ネットワーク410を介して遠隔ノードと通信するように構成されたデスクトップ、ラップトップ、サーバ、ハンドヘルドコンピュータデバイス、セルラー式電話、または他のデバイスである。したがってコンピュータデバイス402は、プロセッサ405とワイヤレスネットワークインターフェース430とを含む。プロセッサ405は、アプリケーション420および421と、ライブラリ422と、アプリケーションアナライザ425とを実行する。
【0025】
ワイヤレスネットワークインターフェース430は、プロセッサ405とネットワーク410との間にワイヤレスインターフェースを提供するように構成されたデバイスである。したがって、ワイヤレスネットワークインターフェース430は、プロセッサ405に物理層および論理層インターフェースを提供する。特にワイヤレスネットワークインターフェース430は、いくつかの機能を実行して、ネットワーク410へのアクセスを提供する。たとえば、ワイヤレスネットワークインターフェースは、ネットワークスキャニング、ネットワーク承認、ネットワーク410に通信されるワイヤレスパケットにおけるサービス品質(QOS)フィールドの設定、ネットワークチャネルスキャニングなどを提供できる。ネットワークスキャニングは、現在使用しているアクセスポイントよりも、コンピュータデバイス402のより近くにワイヤレスアクセスポイントがあるかどうかを決定するために定期的にスキャンして、アクセスがより近くのアクセスポイントを経由するように通信をスイッチする、ワイヤレスネットワークインターフェース430を指す。ワイヤレスネットワークインターフェースがアクセスポイントをスキャンする頻度はネットワークスキャニング頻度と呼ばれる。ネットワーク承認は、ネットワーク410が承認をインターフェースに通信したかどうかを定期的に決定してネットワークへの接続が維持されたことを示す、ワイヤレスネットワークインターフェース430を指す。たとえば、ワイヤレスネットワークインターフェース430は、ネットワーク410に通信されるN個のパケットごとに、承認がネットワークから受信されたかどうかを決定するように構成され得る。Nは構成可能な整数値である。ワイヤレスネットワークインターフェース430が、承認が受信されたかどうかを決定する頻度(Nの値によって示される)はネットワーク承認頻度と呼ばれる。ネットワークチャネルスキャニングは、異なるワイヤレスネットワークチャネルにスイッチすることによってネットワーク410への接続を確立できるか、または改善できるかどうかを定期的に決定する、ワイヤレスネットワークインターフェース430を指す。ワイヤレスネットワークインターフェース430がワイヤレスネットワークチャネルをスキャンする頻度はネットワークチャネルスキャニング頻度と呼ばれる。ネットワークスキャニング、チャネルスキャニング、承認、およびネットワークへのワイヤレスアクセスを提供する他の処理は、ワイヤレスネットワークパラメータの例である。
【0026】
図4に示されたそれぞれのモジュールは、図1の対応するモジュールと同様に動作する。さらに、ネットワークインターフェース430は、構成情報434およびアプリケーション情報433に基づいてワイヤレスネットワークパラメータを調整するように構成された、ワイヤレス制御モジュール431を含む。特にワイヤレス制御モジュール431は、アプリケーション情報433と構成情報434とを比較してアプリケーション420および421に関連付けられるアプリケーションタイプを決定し、それに応じてワイヤレスネットワークパラメータを調整する。したがって、無線制御モジュール431は、実行されているアプリケーションのタイプに基づいて、ネットワークスキャニング頻度、ネットワーク承認頻度、ネットワークに通信されたあらゆるパケットのQOSフィールドの値、チャネルスキャニング頻度、または他の何らかのネットワークパラメータを調整できる。たとえば、ワイヤレス制御モジュール431がアプリケーション420および421は両方ともゲームアプリケーションであると決定し、ユーザは動き回りそうになく、したがってワイヤレスアクセスポイントを変更することによって利益を得ることはなさそうであることを示す場合、ワイヤレス制御モジュール431はネットワークスキャニング頻度を減らすことができる。これにより、プロセッサ415での通信オーバーヘッドの量が減少して通信効率が改善する。同様に、ユーザがゲームプログラムと対話している場合はコンピュータデバイスの環境が変化することはなさそうなので、チャネルスキャニングはあまり望ましくない場合がある。ワイヤレス信号強度が強く、パケット損失がわずかである場合、ワイヤレス制御モジュールはパケット承認を切ることもでき、それによってレイテンシおよび/またはスループットを改善できる。
【0027】
さらに、アプリケーションが開始または停止されると、どのアプリケーションが実行されているかについての変更がアプリケーション情報433で反映される。したがって、ワイヤレス制御モジュール431は、実行されているアプリケーションが変更するにつれて、ワイヤレスネットワークパラメータを動的に調整して、実行しているアプリケーションのあらゆる特定のセットにより効率の高い通信を提供できる。
【0028】
ある実施形態では、ワイヤレス制御モジュール431は、ワイヤレスネットワークパラメータを、アプリケーションごとに、またはアプリケーションタイプごとに設定できる。したがって、たとえばワイヤレス制御モジュール431は、ネットワーク承認頻度を第1のアプリケーション(またはアプリケーションタイプ)についてはある値に、第2のアプリケーション(またはアプリケーションタイプ)については他の第2の値に設定できる。例示のために、ワイヤレス制御モジュールは、承認を検査するためのゲームタイプアプリケーションについてのネットワーク承認頻度を100パケットごとに設定して、ビデオチャットプログラムについてのネットワーク承認頻度を2パケットごとに設定できる。したがって、ゲームアプリケーションによって提供されてネットワーク410に通信されるパケットについて、ネットワークインターフェース430は100パケットごとに承認を検査することになる。ビデオチャットアプリケーションによって提供されてネットワーク410に通信されるパケットについては、ネットワークインターフェース430は2パケットごとに承認を検査することになる。ある実施形態では、ワイヤレス制御モジュール431は、指定されたアプリケーションタイプについてはネットワークインターフェース430が承認を全く検査しないように承認頻度を設定できる。
【0029】
図5は、本開示の一実施形態による、実行しているアプリケーションのセットについての帯域幅および優先順位を設定する方法の流れ図を示している。ブロック502で、ルータまたはネットワークインターフェースカードなどのネットワークインターフェースデバイスが、コンピュータデバイスで実行されているアプリケーションのタイプを決定する。ブロック504で、ネットワークインターフェースデバイスが、対応する関連アプリケーションタイプに基づいてアプリケーションごとに通信優先順位を決定する。ブロック506で、ネットワークインターフェースデバイスが、対応する関連アプリケーションタイプに基づいてアプリケーションごとに帯域幅を決定する。ブロック508で、ネットワークインターフェースデバイスが、それぞれの実行しているアプリケーションによって提供された、またはそれらをターゲットとするバイトを含む集合がある、バイトの集合を受信する。ブロック510で、ネットワークインターフェースデバイスが、それぞれのアプリケーションに割り当てられた優先順位および帯域幅に基づいてバイトを通信する(アップロードされるべきバイトについてはネットワークに、またはダウンロードされたバイトについてはアプリケーションに、のいずれか)順序を決定する。ブロック512で、ネットワークに通信され得るバイト、またはネットワークから受信されたバイトに基づいてパケットが作成され、帯域幅制御エンジンに通信される。
【0030】
図6を参照すると、コンピュータデバイス604の特定の実施形態のブロック図が示されている。コンピュータデバイス604はプロセッサ670とメモリ660とを含む。メモリ660はプロセッサ670にアクセスできる。プロセッサ670はマイクロプロセッサ、マイクロコントローラなどでよい。メモリ660はコンピュータ可読メディアであり、ランダムアクセスメモリ(RAM)などの揮発性メモリでもよく、ハードディスクまたはフラッシュメモリなどの不揮発性メモリでもよい。
【0031】
メモリ660は、プログラム650とオペレーティングシステム607とを格納する。プログラム650およびオペレーティングシステム607は、本明細書に記載した方法のうちの1つまたは複数を実装するためにプロセッサ670を操作するための命令を含む。記述した方法を実装するべきプロセッサを操作するために、アプリケーションなどの他のプログラムもメモリ660に格納できる。
【0032】
上述の主題は例示的なものと見なされるべきであり、限定的なものと見なされるべきではない。添付の特許請求の範囲は、本発明の真の精神および範囲内のこのような全ての修正形態、拡張、および他の実施形態をカバーすることを意図する。たとえば、プロセッサ105を含むコンピュータデバイス102の他のモジュールは、帯域幅および優先順位制御モジュール131の実行を含む、ネットワークインターフェース130の1つまたは複数の機能を実行できる。したがって、法の許す最大限の範囲において、本発明の範囲は、以下の特許請求の範囲のおよびそれらの同等物の最も広い許容可能な解釈によって決定されるべきであり、上述の詳細な説明によって減縮または限定されるべきではない。

【特許請求の範囲】
【請求項1】
プロセッサデバイスで、第1のソフトウェアアプリケーションに関連付けられる第1の情報を受信することと、
前記第1の情報に基づいて、複数の利用可能なアプリケーションタイプから第1のアプリケーションタイプを選択することと、
前記第1のアプリケーションタイプに基づいて、前記第1のアプリケーションのネットワークとの通信を規制することとを備える、方法。
【請求項2】
通信を規制することが、前記第1のアプリケーションについての通信帯域幅を帯域幅制限に規制することを備え、前記帯域幅制限が前記第1のアプリケーションタイプに基づく、請求項1に記載の方法。
【請求項3】
通信を規制することが、
前記第1のアプリケーションタイプに基づいて優先レベルを決定することと、
複数のバイトを前記ネットワークに伝送順序で通信することであって、前記伝送順序が前記優先レベルに基づくこととを備える、請求項1に記載の方法。
【請求項4】
通信を規制することが、
前記第1のアプリケーションタイプに基づいて、パケットについてのペイロードサイズを決定することと、
前記ペイロードサイズを有する前記パケットを形成することと、
前記パケットを前記ネットワークに通信することとを備える、請求項1に記載の方法。
【請求項5】
前記第1の情報が、前記第1のアプリケーションに関連付けられるウィンドウはアクティブウィンドウであると示すかどうかに基づいて、前記第1のアプリケーションについての通信を規制することをさらに備える、請求項1に記載の方法。
【請求項6】
プロセッサデバイスで、第2のソフトウェアアプリケーションに関連付けられる第2の情報を受信することと、
前記第1の情報に基づいて、第2のアプリケーションタイプを決定することと、
前記第2のアプリケーションタイプに基づいて、前記第2のアプリケーションの前記ネットワークとの通信を規制することとをさらに備える、請求項1に記載の方法。
【請求項7】
前記第1のアプリケーションの通信を規制することが、前記第1のアプリケーションの第1の帯域幅への通信を規制することを備え、前記第2のアプリケーションの通信を規制することが、前記第2のアプリケーションの第2の帯域幅への通信を規制することを備え、前記第2の帯域幅は前記第1の帯域幅とは異なる、請求項6に記載の方法。
【請求項8】
前記第1のアプリケーションの通信を規制することが、前記第1のアプリケーションについての第1の優先レベルを決定することを備え、前記第2のアプリケーションの通信を規制することが、前記第2のアプリケーションについての第2の優先レベルを決定すること、および複数のパケットを伝送順序で前記ネットワークに通信することを備え、前記伝送順序が前記第1の優先レベルと前記第2の優先レベルとに基づく、請求項6に記載の方法。
【請求項9】
プロセッサデバイスで、ソフトウェアアプリケーションに関連付けられる情報を受信することと、
前記情報に基づいてアプリケーションタイプを決定することと、
前記アプリケーションタイプに基づいてワイヤレスネットワークパラメータを設定することと、
前記ワイヤレスネットワークパラメータに基づいてワイヤレスネットワークと通信することとを備える、方法。
【請求項10】
前記ワイヤレスネットワークパラメータを設定することが、前記アプリケーションタイプに基づいてネットワークスキャニング頻度を設定することを備える、請求項9に記載の方法。
【請求項11】
前記ワイヤレスネットワークパラメータを設定することが、前記アプリケーションタイプに基づいてネットワーク承認頻度を設定することを備える、請求項9に記載の方法。
【請求項12】
前記ワイヤレスネットワークパラメータを設定することが、品質サービス(QOS)フィールドを有する複数のパケットを形成することと、前記アプリケーションタイプに基づいて値を前記QOSフィールドに格納することと、前記複数のパケットを前記ワイヤレスネットワークに通信することとを備える、請求項9に記載の方法。
【請求項13】
前記ワイヤレスネットワークパラメータを設定することが、ネットワークインターフェースが利用可能なワイヤレスチャネルをスキャンする頻度を設定することを備える、請求項9に記載の方法。
【請求項14】
前記ワイヤレスネットワークパラメータを設定することが、ネットワークインターフェースが利用可能なワイヤレスアクセスポイントをスキャンする頻度を設定することを備える、請求項9に記載の方法。
【請求項15】
前記ワイヤレスネットワークパラメータを設定することが、前記ワイヤレスネットワークと通信することに関連付けられるバックオフ時間を設定することを備える、請求項9に記載の方法。
【請求項16】
前記ワイヤレスネットワークパラメータを設定することが、第1のアプリケーションについての第1のネットワーク承認頻度、および第2のアプリケーションについての第2のネットワーク承認頻度を設定することを備え、前記第1のネットワーク承認頻度が前記第2のネットワーク承認頻度とは異なる、請求項9に記載の方法。
【請求項17】
前記第1の承認頻度を設定することが、前記第1のアプリケーションによって通信された情報について、前記ネットワークからのどの承認も決定されないようにパラメータを設定することを備える、請求項9に記載の方法。
【請求項18】
プロセッサデバイスに結合された第1のポートと、
ネットワークに結合された第2のポートと、
前記プロセッサデバイスで実行しているアプリケーションについてのアプリケーションタイプを選択し、前記アプリケーションタイプに基づいて前記アプリケーションの前記ネットワークとの通信を規制するように構成された制御モジュールとを備える、ネットワークインターフェースデバイス。
【請求項19】
前記制御モジュールが、前記第1のアプリケーションタイプに基づいて、前記第1のアプリケーションについての帯域幅制限を設定することによって通信を規制するように構成されている、請求項18に記載のネットワークインターフェースデバイス。
【請求項20】
前記制御モジュールが、
前記第1のアプリケーションタイプに基づいて優先レベルを決定することと、
複数のバイトを前記ネットワークに伝送順序で通信することであって、前記伝送順序が前記優先レベルに基づくこととによって通信を規制するように構成されている、請求項18に記載のネットワークインターフェースデバイス。
【請求項21】
前記制御モジュールが、
前記第1のアプリケーションタイプに基づいて、パケットについてのペイロードサイズを決定することと、
前記ペイロードサイズを有する前記パケットを形成することと、
前記パケットを前記ネットワークに通信することとによって通信を規制するように構成されている、請求項18に記載のネットワークインターフェースデバイス。
【請求項22】
前記第1の情報が、前記第1のアプリケーションに関連付けられるウィンドウはアクティブウィンドウであると示すかどうかに基づいて、前記制御モジュールが通信を規制するように構成されている、請求項21に記載のネットワークインターフェースデバイス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2012−532494(P2012−532494A)
【公表日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2012−517842(P2012−517842)
【出願日】平成22年6月29日(2010.6.29)
【国際出願番号】PCT/US2010/040298
【国際公開番号】WO2011/008515
【国際公開日】平成23年1月20日(2011.1.20)
【出願人】(500395510)クゥアルコム・アセロス・インコーポレイテッド (8)
【氏名又は名称原語表記】Qualcomm Afheros,Inc.
【Fターム(参考)】