[0004]ネットワークデバイスにおいてフレキシブルな送信間隔およびバックオフ間隔を実施するための様々な実施形態が開示される。いくつかの実施形態では、ネットワークデバイスによる通信の方法は、ネットワークデバイスにおいて、通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいてネットワークデバイスの総バックオフ持続時間を決定することと、ネットワークデバイスが総バックオフ持続時間中に通信媒体上で送信することを防止するために総バックオフ持続時間を開始することとを備える。
[0005]いくつかの実施形態では、この方法は、ネットワークデバイスにおいて総送信持続時間を決定することをさらに備え、ここにおいて総バックオフ持続時間を決定することは、総送信持続時間が総送信持続時間中に送信されるデータに関連付けられた所定の送信間隔を超えると決定したことに応答する。
[0006]いくつかの実施形態では、この方法は、総送信持続時間中にネットワークデバイスによって送信されるデータに関連付けられた優先度レベルに少なくとも部分的には基づいて、所定の送信間隔を決定することをさらに備える。
[0007]いくつかの実施形態では、総送信持続時間は、所定の送信間隔の倍数である。
[0008]いくつかの実施形態では、総バックオフ持続時間は、総送信持続時間中に送信されるデータに関連付けられた所定のバックオフ間隔の倍数である。
[0009]いくつかの実施形態では、この方法は、ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択することをさらに備え、ここにおいてバックオフ競合ウィンドウは、ネットワークデバイスが通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表す。
[0010]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を決定することが、総送信持続時間と所定の送信間隔との比に少なくとも部分的には基づいてネットワークデバイスにおいて実施するバックオフ間隔の数を決定することと、バックオフ間隔の数に少なくとも部分的には基づいて、総バックオフ持続時間を決定することとを備える。
[0011]いくつかの実施形態では、ネットワークデバイスにおいて総バックオフ持続時間を開始することは、ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定することと、第1のバックオフ間隔が経過したと決定された場合に、総バックオフ持続時間が第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含むかどうかを決定することと、総バックオフ持続時間が第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含むと決定された場合に、通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかを決定することと、を備える。
[0012]いくつかの実施形態では、この方法は、通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、第2のバックオフ間隔の持続時間を変化させるかどうかを決定することをさらに備える。
[0013]いくつかの実施形態では、この方法は、通信媒体上で送信が検出された場合に、第1のバックオフ間隔を決定するために使用されたバックオフ競合ウィンドウに対して、第2のバックオフ間隔を決定するためのバックオフ競合ウィンドウの長さを延長することと、通信媒体上で送信が検出されない場合に、第2のバックオフ間隔を決定するためのバックオフ競合ウィンドウの長さを所定の長さに設定すると決定することとをさらに備える。
[0014]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を決定することは、現在のバックオフ競合ウィンドウ、総送信持続時間、および所定の送信間隔のうちの少なくとも1つに基づいてネットワークデバイスに関連付けられた新たなバックオフ競合ウィンドウを決定することと、ここにおいて、新たなバックオフ競合ウィンドウが、ネットワークデバイスが通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表し、新たなバックオフ競合ウィンドウに少なくとも部分的には基づいて、総バックオフ持続時間を選択することと、を備える。
[0015]いくつかの実施形態では、この方法は、ネットワークデバイスにおいて総バックオフ持続時間が経過したと決定することと、総バックオフ持続時間が経過したと決定したことに応答して、通信媒体の制御権を取得するために少なくとも1つのメッセージを送信することとをさらに備える。
[0016]いくつかの実施形態では、この方法は、総送信持続時間および所定の送信間隔に少なくとも部分的には基づいてネットワークデバイスにおいて実施する連続したバックオフ間隔の数を決定することと、第1のバックオフ間隔が経過し、第2のバックオフ間隔が第1のバックオフ間隔の後に続いていると決定された場合に、通信媒体上で別のネットワークデバイスによる送信が検出されるかどうかを決定することと、通信媒体上で別のネットワークデバイスによる送信が検出されるかどうかに少なくとも部分的には基づいて、第2のバックオフ間隔の持続時間を変化させるかどうかを決定することと、をさらに備える。
[0017]いくつかの実施形態では、ネットワークデバイスは、プロセッサユニットと、プロセッサユニットに結合された時間間隔計算ユニットとを備え、時間間隔計算ユニットは、通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、ネットワークデバイスの総バックオフ持続時間を決定し、ネットワークデバイスが総バックオフ持続時間中に通信媒体上で送信することを防止するために総バックオフ持続時間を開始するように構成される。
[0018]いくつかの実施形態では、時間間隔計算ユニットは、総送信持続時間を決定するようにさらに構成され、ここにおいて総バックオフ持続時間を決定するように構成された時間間隔計算ユニットは、総送信持続時間が、総送信持続時間中に送信されるデータに関連付けられる所定の送信間隔を超えると決定したことに応答する。
[0019]いくつかの実施形態では、時間間隔計算ユニットは、ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択するようにさらに構成され、ここにおいて、バックオフ競合ウィンドウは、ネットワークデバイスが通信媒体上でデータ送信を延期する最大数の通信タイムスロットを表す。
[0020]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を決定するように構成された時間間隔計算ユニットは、総送信持続時間と所定の送信間隔との比に少なくとも部分的には基づいてネットワークデバイスにおいて実施するバックオフ間隔の数を決定し、バックオフ間隔の数に少なくとも部分的には基づいて、総バックオフ持続時間を決定するように構成された時間間隔計算ユニットを備える。
[0021]いくつかの実施形態では、ネットワークデバイスにおいて総バックオフ持続時間を開始するように構成された時間間隔計算ユニットは、ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定し、第1のバックオフ間隔が経過し、第2のバックオフ間隔が第1のバックオフ間隔の後に続いていると決定された場合に、通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、第2のバックオフ間隔の持続時間を変化させるかどうかを決定し、ここにおいて、総バックオフ持続時間が、第1のバックオフ間隔と、第2のバックオフ間隔とを含むように構成された時間間隔計算ユニットを備える。
[0022]いくつかの実施形態では、時間間隔計算ユニットは、通信媒体上で送信が検出された場合に、第1のバックオフ間隔を決定するために使用されたバックオフ競合ウィンドウに対して、第2のバックオフ間隔を決定するためのバックオフ競合ウィンドウの長さを延長し、通信媒体上で送信が検出されない場合に、第2のバックオフ間隔を決定するためのバックオフ競合ウィンドウの長さを所定の長さに設定すると決定するようにさらに構成される。
[0023]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を決定するように構成された時間間隔計算ユニットは、現在のバックオフ競合ウィンドウ、総送信持続時間、および所定の送信間隔のうちの少なくとも1つに基づいてネットワークデバイスに関連付けられた新たなバックオフ競合ウィンドウを決定し、ここにおいて、新たなバックオフ競合ウィンドウが、ネットワークデバイスが通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表し、新たなバックオフ競合ウィンドウに少なくとも部分的には基づいて、総バックオフ持続時間を選択するように構成された時間間隔計算ユニットを備える。
[0024]いくつかの実施形態では、機械実行可能命令を記憶した非一時的機械可読記憶媒体、機械実行可能命令は、ネットワークデバイスにおいて、通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、ネットワークデバイスの総バックオフ持続時間を決定し、ネットワークデバイスが総バックオフ持続時間中に通信媒体上で送信することを防止するためにネットワークデバイスにおいて総バックオフ持続時間を開始する命令を備える。
[0025]いくつかの実施形態では、命令は、ネットワークデバイスにおける総送信持続時間を決定する命令をさらに備え、ここにおいて総バックオフ持続時間を決定する命令は、総送信持続時間が、総送信持続時間中に送信されるデータに関連付けられる所定の送信間隔を超えると決定したことに応答する。
[0026]いくつかの実施形態では、命令は、ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択する命令をさらに備え、ここにおいて、バックオフ競合ウィンドウは、ネットワークデバイスが通信媒体上でデータ送信を延期する最大数の通信タイムスロットを表す。
[0027]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を決定する命令は、総送信持続時間と所定の送信間隔との比に少なくとも部分的には基づいてネットワークデバイスにおいて実施するバックオフ間隔の数を決定し、バックオフ間隔の数に少なくとも部分的には基づいて、総バックオフ持続時間を決定する命令を備える。
[0028]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を開始する命令は、ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定し、第1のバックオフ間隔が経過し、第2のバックオフ間隔が第1のバックオフ間隔の後に続いていると決定された場合に、通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、第2のバックオフ間隔の持続時間を変化させるかどうかを決定する命令を備え、ここにおいて、総バックオフ持続時間は、第1のバックオフ間隔と第2のバックオフ間隔とを含む。
[0029]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を決定する命令は、現在のバックオフ競合ウィンドウ、総送信持続時間、および所定の送信間隔のうちの少なくとも1つに基づいてネットワークデバイスに関連付けられた新たなバックオフ競合ウィンドウを決定し、ここにおいて、新たなバックオフ競合ウィンドウは、ネットワークデバイスが通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表し、新たなバックオフ競合ウィンドウに少なくとも部分的には基づいて、総バックオフ持続時間を選択する命令を備える。
[0030]いくつかの実施形態では、ネットワークデバイスは、通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、ネットワークデバイスの総バックオフ持続時間を決定するための手段と、ネットワークデバイスが総バックオフ持続時間中に通信媒体上で送信することを防止するために総バックオフ持続時間を開始するための手段とを備える。
[0031]いくつかの実施形態では、このネットワークデバイスは、ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択するための手段をさらに備え、ここにおいて、バックオフ競合ウィンドウは、ネットワークデバイスが通信媒体上でデータ送信を延期する最大数の通信タイムスロットを表す。
[0032]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を決定するための手段は、総送信持続時間と所定の送信間隔との比に少なくとも部分的には基づいてネットワークデバイスにおいて実施するバックオフ間隔の数を決定するための手段と、バックオフ間隔の数に少なくとも部分的には基づいて、総バックオフ持続時間を決定するための手段とを備える。
[0033]いくつかの実施形態では、ネットワークデバイスの総バックオフ持続時間を開始するための手段は、ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定するための手段と、第1のバックオフ間隔が経過し、第2のバックオフ間隔が第1のバックオフ間隔の後に続いていると決定された場合に、通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、第2のバックオフ間隔の持続時間を変化させるかどうかを決定するための手段とを備え、ここにおいて、総バックオフ持続時間は、第1のバックオフ間隔と、第2のバックオフ間隔とを含む。
[0034]添付の図面を参照することにより、本実施形態がよりよく理解され得、多数の目的、特徴、および利点が当業者に明らかになり得る。
[0044]以下の説明は、本発明の主題の技法を具現化する、例示的なシステムと、方法と、技法と、命令シーケンスと、コンピュータプログラム製品とを含む。ただし、記載される実施形態は、これらの具体的な詳細がなくても実施され得ることを理解されたい。たとえば、例は、WLANデバイスにおいてフレキシブルな送信間隔およびバックオフ間隔を実施するための動作について言及しているが、実施形態は、それらに限定されない。他の実施形態では、これらのフレキシブルな送信間隔およびバックオフ間隔のための動作が、他の適当な通信プロトコルおよび標準を実施するネットワークデバイス(たとえばWiMAX(登録商標)、電力線通信(PLC)、イーサネット(登録商標)など)によって実行されることもあり得る。他の例では、周知の命令インスタンス、プロトコル、構造、技法については、説明をわかりにくくしないように、詳細には示されていない。
[0045]IEEE802.11通信プロトコルによれば、ネットワークデバイスには、通常、送信機会(TXOP)限界(transmit opportunity limit)とも呼ばれる、所定の送信間隔が割り当てられる。所定の送信間隔は、ネットワークデバイスが、バックオフ間隔を開始することなく連続的に通信媒体にアクセスすることができる時間持続時間である。送信されるデータのタイプおよび優先度に応じて、ネットワークデバイスは、送信間隔(すなわちTXOP限界)の間、通信を送信することができる。送信間隔が経過した後で、ネットワークデバイスは、通信媒体の制御権を放棄し、他の競合するネットワークデバイスが通信媒体の制御権を取得することができるように、送信を所定のバックオフ間隔の間だけ延期する。例示的な送信/バックオフシーケンスは、バックオフ、送信、バックオフ、送信などで表現され得、ここで、各送信時間期間は、所定の送信間隔以下である。したがって、送信しているネットワークデバイスは、送信間隔中にのみ通信を送信することができ、一時的に、他の競合するネットワークデバイスに通信媒体の制御権を引き渡すことがある。これにより、送信のためにスケジューリングされたデータの有用性または新鮮度が低下する可能性がある。特に、時間に敏感なデータ(たとえばサウンディングデータ、ビームフォーミングパラメータなど)の場合には、1つの送信間隔の後でバックオフ間隔を開始し、通信媒体の制御権を放棄することは、時間に敏感なデータの有用性を低下させる可能性がある。これにより、通信システム(たとえばマルチユーザ多入力多出力(MU−MIMO)システム、ビームフォーミングシステムなど)の効率も低下する可能性がある。
[0046]いくつかの実施形態では、ネットワークデバイスは、複数の連続した送信間隔(たとえば複数の連続したTXOP限界)にわたって通信媒体の制御権を取得するように構成され得る。たとえば、ネットワークデバイスは、送信に利用可能なデータの量および/または送信間隔の持続時間に応じて、それが通信媒体の制御権を有する送信間隔の数を決定することができる。送信間隔を超える総送信持続時間にわたって通信媒体の制御権を維持した(たとえばデータを送信した)後で、ネットワークデバイスは、複数の連続したバックオフ間隔を開始することができる。たとえば、ネットワークデバイスは、2つの連続した送信間隔にわたって通信媒体上でデータを送信する場合には、送信、送信、バックオフ、バックオフ、送信、送信、バックオフ、バックオフなどの送信/バックオフシーケンスで示されるように、2つの連続したバックオフ間隔を開始することができる。さらに、いくつかの実施形態では、ネットワークデバイスは、複数の連続したバックオフ間隔を実施するときに、その通信媒体上で別のネットワークデバイスによる送信が検出されるかどうかに応じて、後続のバックオフ間隔の持続時間を変化させるかどうかを決定することができる。たとえば、ネットワークデバイスは、連続するバックオフ間隔を実施すると決定することもある。この例では、ネットワークデバイスは、現在のバックオフ間隔が経過した後で他のデバイスの送信が検出されたかどうかに応じて、後続のバックオフ間隔の持続時間を変化させるかどうかを決定することができる。
[0047]複数の送信間隔をクラスタ化/グループ化することにより、ネットワークデバイスがより長い持続時間にわたって通信媒体の制御権を維持できるようにすることができる。これは、ネットワークデバイスが、送信されるものとしてスケジューリングされた時間に敏感なデータを送信した後で通信媒体の制御権を放棄することを保証する助けになり得る。複数の送信間隔をグループ化することは、送信されるデータの「新鮮さ」に依拠するネットワークデバイスおよびシステムにとっても有用となり得る。また、ネットワークデバイスが複数の連続した送信間隔にわたって通信媒体の制御権を取得したときに複数のバックオフ間隔を実施することは、通信媒体上のネットワークデバイスの間の公平性を保証する助けとなり得る。
[0048]図1は、フレキシブルな送信間隔およびバックオフ間隔を実施するための機構を示す例示的な概念図である。図1は、ネットワークデバイス102、104、および110を含む通信ネットワーク100を示している。ネットワークデバイス102は、時間間隔計算ユニット106と、トランシーバユニット108とを含む。図1には示されていないが、ネットワークデバイス104および110も、ネットワークデバイス102と同様の時間間隔計算ユニットとトランシーバユニットとを含み得る。いくつかの実施形態では、ネットワークデバイス102、104、および110は、各々、ラップトップコンピュータ、タブレットコンピュータ、モバイル電話、スマート機器、ゲームコンソール、アクセスポイント、デスクトップコンピュータ、ウェアラブルデバイス、または他の適当な電子デバイスなどの電子デバイスであり得る。ネットワークデバイス102、104、および110は、各々、1つまたは複数の通信プロトコルを実施するように構成され得る(たとえば、通信ネットワーク100がWLANデバイスであり、ネットワークデバイス102、104、および110が、各々、WLANデバイスであることもある)。いくつかの実施形態では、WLAN通信プロトコルに加えて、ネットワークデバイス102、104、および110は、各々、他のタイプの通信(たとえばBLUETOOTH(登録商標)(Bluetooth(登録商標))、イーサネット、WiMAX、PLCなど)を可能にする他のプロトコルおよび関連する機能性を実施し得る。さらに、いくつかの実施形態では、ネットワークデバイス102、104、および110は、各々、1つまたは複数の無線トランシーバ、プロセッサ、アナログフロントエンド(AFE)ユニット、メモリ、他の構成要素、および/または通信プロトコルおよび関連する機能性を実施する他の論理を含み得る。
[0049]一実施形態では、ネットワークデバイス102は、通信ネットワーク100中の別のネットワークデバイス(たとえばネットワークデバイス110)にデータを送信すると決定し得る。ネットワークデバイス102は、通信媒体の制御権および通信媒体上の送信機会をめぐって他のネットワークデバイス104および110と競合する可能性がある。ネットワークデバイス102は、所定のバックオフ競合ウィンドウに少なくとも部分的には基づいて、バックオフ間隔を無作為に選択し得る。バックオフ競合ウィンドウは、ネットワークデバイス102が通信媒体の制御権を取得しようと試みる前に送信を延期すべき、好ましい数の通信タイムスロットとすることができる。通信タイムスロットは、ネットワークデバイス102、104、および110が通信媒体上でデータを送信する、または送信を延期することができる最小の時間単位を指すことがある。したがって、一実施形態では、バックオフ競合ウィンドウは、ネットワークデバイス102が通信媒体の制御権をめぐって競合してはならない最大数の通信タイムスロットであることがある。たとえば、バックオフ競合ウィンドウは、15個の通信タイムスロット、31個の通信タイムスロット、または別の適当な数のタイムスロットを含み得る。バックオフ間隔は、適当な下限(たとえばゼロ)からバックオフ競合ウィンドウまでの間の乱数を選択することによって選択され得る。たとえば、バックオフ競合ウィンドウが31個の通信タイムスロットを含む場合には、バックオフ間隔は、0から31の間の乱数を選択することによって決定され得る。一例では、バックオフ時間間隔が10個の通信タイムスロットとして定義された場合には、ネットワークデバイス102は、10個の通信タイムスロットの間は、データを送信する、または通信媒体の制御権を取得しようと試みることはできない。バックオフ間隔が経過した後で、ネットワークデバイス102は、通信媒体がビジーであるかどうか(たとえば通信媒体がネットワークデバイス110またはネットワークデバイス104によって使用されているかどうか)を決定することができる。通信媒体がビジーである場合には、ネットワークデバイス102は、別のバックオフ間隔を選択し、開始することができる。たとえば、ネットワークデバイス102は、直前のバックオフ間隔の2倍の別のバックオフ間隔を開始することもできる。通信媒体がビジーでない場合には、ネットワークデバイス102は、通信媒体の制御権を取得して、データを送信することができる。
[0050]ネットワークデバイス102が通信媒体の制御権を取得した後で、トランシーバユニット108は、バッファリングされたデータをネットワークデバイス110に送信し始めることができる。時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体上でデータを送信する持続時間を常時監視することができる。ネットワークデバイス102が通信媒体上でデータを連続的に送信する持続時間は、「総送信持続時間」と呼ばれる。時間間隔計算ユニット106は、総送信持続時間の間に送信されたデータの優先度およびタイプに少なくとも部分的には基づいて、所定の送信間隔または送信機会(TXOP)限界を決定することもできる。いくつかの実施形態では、WLANにおけるチャネルアクセスは、強化された分散チャネルアクセス(enhanced distributed channel access)(EDCA)プロトコルによって管理され得る。EDCAプロトコルは、各々が異なる所定の送信間隔と関連付けられた複数のチャネルアクセスの優先度およびデータタイプを定義することができる。一例では、4つのアクセス優先度があることがあり、それらのアクセス優先度の各々が、異なる所定の送信間隔と関連付けられ得る。たとえば、第1のアクセス優先度は、2msの送信間隔と関連付けられることがあり、第2のアクセス優先度は、4msの送信間隔と関連付けられることがある、などである。時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体上でデータを送信した連続した送信間隔の数を決定することができる。たとえば、送信間隔が2msであり、総送信持続時間が6msである場合には、時間間隔計算ユニット106は、ネットワークデバイス102が3つの連続した送信間隔にわたって通信媒体の制御権を有していたと決定することができる。複数の送信間隔(たとえば6msの総送信持続時間)にわたって通信媒体の制御権を有した後で、ネットワークデバイス102は、複数の連続したバックオフ間隔にわたって送信を延期することができる。ネットワークデバイス102が送信を延期する時間の総量は、「総バックオフ持続時間」と呼ばれる。総バックオフ持続時間の間、ネットワークデバイス102は、通信媒体の制御権をめぐって競合してはならず、通信媒体上でデータを送信してはならない。総バックオフ持続時間が経過した後で、ネットワークデバイス102は、通信媒体の制御権を取得しようと試みることができる。
[0051]時間間隔計算ユニット106は、総バックオフ持続時間を計算するために様々な技法を利用することができる。一実施形態では、時間間隔計算ユニット106は、バックオフ競合ウィンドウに少なくとも部分的には基づいて、バックオフ間隔を決定することができる。たとえば、時間間隔計算ユニット106は、バックオフ競合ウィンドウに少なくとも部分的には基づいて、バックオフ間隔を無作為に選択することができる。一実施形態では、バックオフ競合ウィンドウは、ネットワークデバイス102が通信媒体の制御権をめぐって競合してはならない最大時間間隔(たとえば通信タイムスロットの最大数)であり得る。時間間隔計算ユニット106は、バックオフ間隔の倍数として総バックオフ持続時間を決定することができる。一実施形態では、総バックオフ持続時間を構成するためにグループ化されるべきバックオフ間隔の数は、式1に示されるように、総送信持続時間を所定の送信間隔(すなわちTXOP限界)で割ることによって決定され得る。式1において、「round−up」関数は、結果を次の整数に切り上げるために使用され得る。
[0052]式1を参照すると、総送信持続時間を所定の送信間隔で割った結果が2.2である場合には、時間間隔計算ユニット106は、この結果を切り上げてバックオフ間隔数3にすることができる。別の実施形態では、バックオフ間隔の数は、総送信持続時間を所定の送信間隔で割って、その結果を最も近い整数に丸めることによって決定され得る。たとえば、総送信持続時間を所定の送信間隔で割った結果が2.2である場合には、時間間隔計算ユニット106は、その結果を丸めてバックオフ間隔数2にすることができる。別の実施形態では、時間間隔計算ユニット106は、総送信持続時間を所定の送信間隔で割った結果を丸めないこともある。この実施形態では、時間間隔計算ユニット106は、総バックオフ持続時間を決定するために小数の(すなわち非整数の)結果を使用することができる。
[0053]一実施形態では、時間間隔計算ユニット106は、式2に示されるように、バックオフ間隔の数に選択されたバックオフ間隔を掛けることによって、総バックオフ持続時間を決定することができる。
[0054]別の実施形態では、時間間隔計算ユニット106は、式3に示されるように総バックオフ持続時間を計算することができる。式3に示されるように、総バックオフ持続時間は、総送信持続時間を所定の送信間隔(すなわち所定の送信間隔の数)で割った結果を四捨五入せずに計算され得る。言い換えれば、総バックオフ持続時間は、バックオフ間隔に、直前の総送信持続時間で使用された所定の送信間隔の数を掛けることによって計算され得る。
[0055]別の実施形態では、時間間隔計算ユニット106は、有効バックオフ競合ウィンドウを生じるために、バックオフ競合ウィンドウに、直前の総送信持続時間で使用された所定の送信間隔の数を掛けることができる。上述のように、バックオフ競合ウィンドウは、ネットワークデバイスが通信媒体上の送信を延期すべき好ましい数の通信タイムスロットを示すことができる。たとえば、バックオフ競合ウィンドウは、ネットワークデバイス102が送信を延期し、通信媒体の制御権をめぐって競合してはならない通信タイムスロットの最大数を示すことができる。時間間隔計算ユニット106は、式4に示されるように、有効バックオフ競合ウィンドウを計算することができる。有効バックオフ競合ウィンドウは、総送信持続時間が所定の送信間隔を超えるか、所定の送信間隔未満であるか、または所定の送信間隔と等しいかに応じて、それぞれ現在のバックオフ競合ウィンドウを超える、現在のバックオフ競合ウィンドウ未満になる、または現在のバックオフ競合ウィンドウと等しくなり得る。時間間隔計算ユニット106は、次いで、ゼロから有効バックオフ競合ウィンドウまでの間の無作為な値を選択することによって、総バックオフ持続時間を選択することができる。
[0056]図2Aは、バックオフ持続時間を決定するための一実施形態の例示的な動作を示す流れ図(「フロー」)200である。フロー200は、ブロック202から開始する。
[0057]ブロック202で、ネットワークデバイスは、通信媒体上で送信する総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、総バックオフ持続時間を決定する。時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体上でデータを送信した時間の量を常時監視することができる。いくつかの実施形態では、ネットワークデバイス102が通信媒体の制御権を有していた送信持続時間は、ネットワークデバイス102によって送信されたデータの量に少なくとも部分的には基づいて決定され得る。さらに、時間間隔計算ユニット106は、ネットワークデバイス102によって送信されたデータの優先度に応じて、適当な送信間隔を選択することができる。いくつかの実施形態では、時間間隔計算ユニット106は、総送信持続時間が所定の送信間隔を超える場合に、総バックオフ持続時間を決定することができる。ネットワークデバイス102は、(たとえば時間に敏感なデータが無効にならないことを保証するために)複数の連続した送信間隔にわたって通信媒体上で通信を送信することができる。ネットワークデバイス102は、次の送信持続時間を開始し、次のデータのセットを送信する前に複数の連続したバックオフ間隔を実施するために、総バックオフ持続時間を決定することができる。時間間隔計算ユニット106は、総バックオフ持続時間を決定するために様々な技法を使用することができる。たとえば、時間間隔計算ユニット106は、上述した式1および式2、式3、または式4を用いて、総バックオフ持続時間を決定することができる。フローは、ブロック204に進む。
[0058]ブロック204で、ネットワークデバイスは、総バックオフ持続時間中の通信媒体上のネットワークデバイスからのデータ送信を防止するために、総バックオフ持続時間を開始する。いくつかの実施形態では、時間間隔計算ユニット106は、ネットワークデバイス102がデータを送信することと通信媒体の制御権をめぐって競合することとをどれくらい長く延期すべきかを常時監視するバックオフタイマを実装することができる。いくつかの実施形態では、時間間隔計算ユニット106は、選択された数の連続したバックオフ間隔が経過したかどうかを決定することができる。たとえば、時間間隔計算ユニット106は、ネットワークデバイス102が5つの連続したバックオフ間隔を実施すべきであると決定した場合には、5つの連続したバックオフ間隔が経過したかどうかを決定することができる。他の実施形態では、時間間隔計算ユニット106は、総バックオフ持続時間が経過したかどうかを決定するために、バックオフタイマにアクセスすることができる。別の実施形態では、バックオフタイマまたは別のバックグラウンドプロセスが、総バックオフ持続時間が経過するときに割込み(または他のトリガ信号)を生成することができる。総バックオフ持続時間が経過した後で、ネットワークデバイスは、通信媒体の制御権を再取得しようと試みることができる。ネットワークデバイスは、通信媒体の制御権を取得した後で、データ送信を開始することができる。ブロック204の後、フローは終了する。
[0059]図2Bは、バックオフ持続時間を決定するための別の実施形態の例示的な動作を示す流れ図250である。フロー250は、ブロック252で開始する。
[0060]ブロック252で、ネットワークデバイスは、通信媒体上でデータを送信する総送信持続時間を決定する。ネットワークデバイス102は、共有される通信媒体の制御権をめぐって、通信ネットワーク100中の他のネットワークデバイス(たとえばネットワークデバイス104および110)と競合することができる。ネットワークデバイス102が通信媒体の制御権を取得した後で、トランシーバユニット108は、ネットワークデバイス110にデータを送信することができる。時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体上でデータを送信した時間の量を常時監視することができる。いくつかの実施形態では、ネットワークデバイス102が通信媒体の制御権を有していた送信持続時間は、ネットワークデバイス102によって送信されたデータの量に少なくとも部分的には基づいて決定され得る。フローは、ブロック254に進む。
[0061]ブロック254で、ネットワークデバイスは、総送信持続時間が所定の送信間隔を超えると決定する。送信間隔(たとえばTXOP限界)は、ネットワークデバイス102がバックオフ無しで継続的に通信を送信することができる所定の時間間隔とすることができる。ネットワークデバイス102は、送信されたデータのタイプおよび優先度に応じて、異なる送信間隔を有することができる。たとえば、IEEE802.11通信プロトコルは、4つのアクセス優先度(または優先度レベル)を示すことがある。したがって、ネットワークデバイス102は、アクセス優先度の各々について1つの、4つの送信間隔を有し得る。時間間隔計算ユニット106は、ネットワークデバイスによって送信される通信の優先度に応じて、適当な送信間隔を選択することができる。一例では、時間間隔計算ユニット106は、「ベストエフォート」データ(たとえば中程度の優先度のデータ)が通信媒体上で送信されたと決定することがある。この例では、時間間隔計算ユニット106は、「ベストエフォート」データタイプに対応する送信間隔(たとえば2msの送信間隔)を選択することがある。複数の連続した送信間隔にわたってデータを送信した後で、ネットワークデバイス102は、通信媒体上の他のネットワークデバイスとの公平性を維持するために、複数の連続したバックオフ間隔にわたってデータ送信を延期することができる。フローは、ブロック256に進む。
[0062]ブロック256で、ネットワークデバイスは、総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、総バックオフ持続時間を決定する。ネットワークデバイス102は、(たとえば時間に敏感なデータが無効にならないことを保証するために)複数の連続した送信間隔にわたって通信媒体上で通信を送信することができる。ネットワークデバイス102は、次の送信持続時間を開始し、次のデータのセットを送信する前に複数の連続したバックオフ間隔を実施するために、総バックオフ持続時間を決定することができる。時間間隔計算ユニット106は、総バックオフ持続時間を決定するために様々な技法を使用することができる。たとえば、時間間隔計算ユニット106は、上述した式1および式2、式3、または式4を使用して、総バックオフ持続時間を決定することができる。フローは、ブロック258に進む。
[0063]ブロック258で、ネットワークデバイスは、総バックオフ持続時間中の通信媒体上のネットワークデバイスからのデータ送信を防止するために、総バックオフ持続時間を開始する。いくつかの実施形態では、時間間隔計算ユニット106は、ネットワークデバイス102がデータを送信することと通信媒体の制御権をめぐって競合することとをどれくらい長く延期すべきかを常時監視するバックオフタイマを実装することができる。いくつかの実施形態では、時間間隔計算ユニット106は、選択された数の連続したバックオフ間隔が経過したかどうかを決定することができる。たとえば、時間間隔計算ユニット106は、ネットワークデバイス102が5つの連続したバックオフ間隔を実施すべきであると決定した場合には、5つの連続したバックオフ間隔が経過したかどうかを決定することができる。他の実施形態では、時間間隔計算ユニット106は、総バックオフ持続時間が経過したかどうかを決定するために、バックオフタイマにアクセスすることができる。別の実施形態では、バックオフタイマまたは別のバックグラウンドプロセスが、総バックオフ持続時間が経過するときに割込み(または他のトリガ信号)を生成することができる。総バックオフ持続時間が経過した後で、ネットワークデバイスは、通信媒体の制御権を再取得しようと試みることができる。ネットワークデバイスは、通信媒体の制御権を取得した後で、データ送信を開始することができる。ブロック258の後、フローは終了する。
[0064]図3Aは、フレキシブルなバックオフ間隔を実施するための一実施形態の例示的な動作を示す流れ図300である。フロー300は、ブロック302で開始する。
[0065]ブロック302で、ネットワークデバイスは第1のバックオフ間隔が経過して、第1のバックオフ間隔の後に第2のバックオフ間隔が続く場合に、通信媒体上で別のネットワークデバイスによる送信が検出されるかどうかを決定する。いくつかの実施形態では、ネットワークデバイスは、総送信持続時間と、ネットワークデバイス102が通信媒体上で継続的にデータを送信することができる所定の送信間隔とに少なくとも部分的には基づいて、連続したバックオフ間隔の数を決定することができる。たとえば、総バックオフ持続時間を構成する上記の数の連続したバックオフ間隔は、第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含むことがある。この例では、第1のバックオフ間隔が経過した後で、ネットワークデバイス102は、別のネットワークデバイスが通信媒体上で送信を開始したかどうかを決定することができる。この確認は、ネットワークデバイス102が後続のバックオフ間隔(たとえば第2のバックオフ間隔)の持続時間を延長するかどうかを決定する助けとなり得る。フローは、ブロック304に進む。
[0066]ブロック304で、ネットワークデバイスは、通信媒体上で別のネットワークデバイスによる送信が検出されたかどうかに少なくとも部分的には基づいて、第2のバックオフ間隔の持続時間を変化させるかどうかを決定する。第1のバックオフ間隔が経過した後で別のデバイスによる送信が検出された場合には、ネットワークデバイスは、衝突が起きたかのように動作を実行することができる。一実施形態では、第1のバックオフ間隔が経過した後で別のデバイスによる送信が検出された場合には、ネットワークデバイスは、第2のバックオフ間隔の持続時間を延長することができる。ブロック304の後、フローは終了する。
[0067]図3Bは、フレキシブルなバックオフ間隔を実施するための別の実施形態の例示的な動作を示す流れ図350である。フロー350は、ブロック352で開始する。
[0068]ブロック352で、ネットワークデバイスは、データを送信するための総送信持続時間がそのデータに関連付けられた所定の送信間隔を超えると決定する。時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体上で通信を送信した時間の量を常時監視することができる。また、送信間隔は、ネットワークデバイス102が通信媒体上で継続的にデータを送信することができる所定の時間間隔とすることができる。複数の連続した送信間隔にわたってデータを送信した後で、ネットワークデバイス102は、通信媒体上の他のネットワークデバイスとの公平性を維持するために、複数の連続したバックオフ間隔にわたってデータ送信を延期することができる。フローは、ブロック354に進む。
[0069]ブロック354で、ネットワークデバイスは、総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、連続的なバックオフ間隔の数を決定する。言い換えれば、ネットワークデバイスは、総送信持続時間が経過した後に実施する総バックオフ持続時間を決定する。たとえば、時間間隔計算ユニット106は、ネットワークデバイスにおいて実施されるべき連続したバックオフ間隔の数を決定するために、上述の技術のうちの1つ(たとえば式1)を使用することができる。フローは、ブロック356に進む。
[0070]ブロック356で、第1のバックオフ間隔が経過し、第2のバックオフ間隔が第1のバックオフ間隔の後に続く場合には、ネットワークデバイスは、通信媒体上で別のネットワークデバイスによる送信が検出されるかどうかを決定する。たとえば、総バックオフ持続時間を構成する上記の数の連続したバックオフ間隔は、第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含むことがある。この例では、第1のバックオフ間隔が経過した後で、ネットワークデバイス102は、別のネットワークデバイスが通信媒体上で送信を開始したかどうかを決定することができる。いくつかの実施形態では、この確認は、ネットワークデバイス102が後続のバックオフ間隔(たとえば第2のバックオフ間隔)の持続時間を延長するかどうかを決定する助けとなり得る。フローは、ブロック358に進む。
[0071]ブロック358で、ネットワークデバイスは、通信媒体上で別のネットワークデバイスによる送信が検出されたかどうかに少なくとも部分的には基づいて、第2のバックオフ間隔の持続時間を変化させるかどうかを決定する。第1のバックオフ間隔が経過した後で別のデバイスによる送信が検出された場合には、ネットワークデバイスは、衝突が起きたかのように動作を実行することができる。一実施形態では、第1のバックオフ間隔が経過した後で別のデバイスによる送信が検出された場合には、ネットワークデバイスは、第2のバックオフ間隔の持続時間を延長することができる。ブロック358の後、フローは終了する。
[0072]図4Aは、総バックオフ持続時間を動的に変化させるための一実施形態の例示的な動作を示す流れ図400である。フロー400は、ブロック402で開始する。
[0073]ブロック402で、ネットワークデバイスにおいて、バックオフ間隔が開始される。いくつかの実施形態では、時間間隔計算ユニット106は、各バックオフ間隔を常時監視するバックオフタイマを実装することができる。時間間隔計算ユニット106は、バックオフ間隔の値をバックオフタイマに記憶することができる。時間間隔計算ユニット106は、バックオフタイマがゼロまでカウントダウンした後で、1つのバックオフ間隔が経過したと決定することができる。フローは、ブロック404に進む。
[0074]ブロック404で、ネットワークデバイスは、バックオフ間隔が経過したかどうかを決定する。いくつかの実施形態では、時間間隔計算ユニット106は、バックオフ間隔が経過するときに、バックオフタイマから通知(たとえば割込みまたはトリガ信号)を受信することができる。他の実施形態では、時間間隔計算ユニット106は、バックオフ間隔が経過したかどうかを決定するために、定期的にバックオフタイマにアクセスすることができる。バックオフ間隔が経過していない場合には、フローは、ブロック404にループして戻り、ブロック404で、ネットワークデバイス102は、バックオフ間隔が経過するまで待機する。バックオフ間隔が経過した場合には、フローは、ブロック406に進む。
[0075]ブロック406で、経過したバックオフ間隔が中間バックオフ間隔であるかどうかが決定される。別のバックオフ間隔の前のバックオフ間隔は、「中間バックオフ間隔」と呼ばれることもある。たとえば、時間間隔計算ユニット106は、ネットワークデバイス102が2つの連続したバックオフ間隔、第1のバックオフ間隔および第2のバックオフ間隔を実施すべきであると決定することがある。この例では、第2のバックオフ間隔が第1のバックオフ間隔の後に続く場合、第1のバックオフ間隔が、中間バックオフ間隔と呼ばれることがある。ただし、第2のバックオフ間隔の直後に続く別のバックオフ間隔はないので、第2のバックオフ間隔は、中間バックオフ間隔になり得ない。いくつかの実施形態では、時間間隔計算ユニット106は、総バックオフ持続時間が経過したかどうかを決定することができる。上述のように、選択された数のバックオフ間隔の総持続時間は、総バックオフ持続時間と呼ばれることがある。上記の例を参照すると、総バックオフ持続時間は、第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含み得る。他の実施形態では、総バックオフ持続時間は、任意の適当な数のバックオフ間隔(たとえば1つのバックオフ間隔、3つ以上のバックオフ間隔など)を含み得ることに留意されたい。総バックオフ持続時間が経過していない場合には、これは、ネットワークデバイス102が、次の送信間隔の前に少なくとも1つの他のバックオフ間隔(たとえば第2のバックオフ間隔)を開始することを示している。しかし、総バックオフ持続時間が経過した場合には、これは、ネットワークデバイスが、次の送信間隔の前にそれ以上のバックオフ間隔を開始しないことを示している。したがって、経過したバックオフ間隔が中間バックオフ間隔である場合(すなわち総バックオフ持続時間が経過していない場合)には、フローは、ブロック410に進む。そうでない場合、経過したバックオフ間隔が中間バックオフ間隔でない場合(たとえば総バックオフ持続時間が経過した場合)には、フローは、ブロック408に進む。
[0076]ブロック408で、経過したバックオフ間隔が中間バックオフ間隔でない場合には、総バックオフ持続時間が経過して、ネットワークデバイスが通信媒体の制御権を取得しようと試みているかどうかが決定される。上述のように、中間バックオフ間隔は、1つまたは複数のさらに別のバックオフ間隔がその後に続いているバックオフ間隔を指す。したがって、経過したバックオフ間隔が中間バックオフ間隔でない場合には、時間間隔計算ユニット106は、最終/最後のバックオフ間隔および総バックオフ持続時間が経過したと決定することができる。言い換えれば、時間間隔計算ユニット106は、選択された数の連続したバックオフ間隔が経過したと決定することができる。その結果として、時間間隔計算ユニット106は、ネットワークデバイス102(たとえばトランシーバユニット108)に、必要なら通信媒体の制御権をめぐって競合するように通知することができる。通信媒体の制御権を取得した後で、トランシーバユニット108は、通信媒体上でデータを送信することができる。ブロック408の後、フローは終了する。
[0077]ブロック410で、経過したバックオフ間隔が中間バックオフ間隔である場合には、ネットワークデバイスは、通信媒体上で送信が検出されるかどうかを決定する。たとえば、総バックオフ持続時間は、第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含むことがある。第1のバックオフ間隔(すなわち中間バックオフ間隔)が経過した後で、トランシーバユニット108は、通信媒体を感知し、別のネットワークデバイスが通信媒体上でデータを送信しているかどうかを決定することができる。ネットワークデバイス102は、通信媒体上で送信することを許可されておらず、また1つまたは複数のさらに別のバックオフ間隔を実施するように構成されているが、この確認は、ネットワークデバイス102が後続のバックオフ間隔(たとえば第2のバックオフ間隔)の持続時間を延長するかどうかを決定する助けとなり得る。いくつかの実施形態では、トランシーバユニット108は、通信媒体上に送信があるかどうかを決定するために、所定の感知時間間隔にわたって通信媒体をモニタリングすることができる。一実施形態では、感知時間間隔は、中間バックオフ間隔(たとえば第1のバックオフ間隔)の終端部分と、後続のバックオフ間隔(たとえば第2のバックオフ間隔)の先頭部分とにまたがることもある。別の実施形態では、感知時間間隔は、第1のバックオフ間隔の終端部分しか含まないこともある。別の実施形態では、感知時間間隔は、第2のバックオフ間隔の先頭部分しか含まないこともある。
[0078]いくつかの実施形態では、時間間隔計算ユニット106は、通信媒体上で送信が検出されるかどうかに少なくとも部分的には基づいて、バックオフ競合ウィンドウの長さを変化させるかどうかを決定することができる。バックオフ競合ウィンドウは、ネットワークデバイスが通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表すことがある。時間間隔計算ユニット106は、バックオフ競合ウィンドウの長さを変化させるかどうかを決定することによって、第2のバックオフ間隔の持続時間を変化させるかどうかを決定することができる。第2のバックオフ間隔の持続時間は、バックオフ競合ウィンドウから決定され得ることに留意されたい。通信媒体上で送信が検出されない場合には、フローは、ブロック412に進む。そうでない場合、通信媒体上で送信が検出される場合には、フローは、ブロック414に進む。
[0079]ブロック412で、中間バックオフ間隔が経過した後で通信媒体上で送信が検出されない場合には、競合ウィンドウの長さは、所定の持続時間(たとえば所定の最小持続時間、または特定の実装形態または標準仕様によって決定される所定の持続時間)に設定される。その結果として、次のバックオフ間隔持続時間は、競合ウィンドウの変化と同時に起こるように修正され得る。たとえば、競合ウィンドウが最小競合ウィンドウにリセットされた場合には、次のバックオフ間隔は、ゼロから最小競合ウィンドウまでの間の乱数として選択され得る。他の実施形態では、次のバックオフ間隔の持続時間は、現在のバックオフ間隔の持続時間と同じであることもある。フローは、次いで、ブロック402にループして戻り、ブロック402で、決定された持続時間を有する次のバックオフ間隔が開始される。いくつかの実施形態では、競合ウィンドウの長さは、次のバックオフ間隔を開始した後で(たとえば次のバックオフ間隔の進行中に)選択され得ることに留意されたい。バックオフ間隔の長さは、選択された競合ウィンドウの長さに応じて更新され得る。
[0080]ブロック414で、中間バックオフ間隔が経過した後で通信媒体上で送信が検出された場合には、競合ウィンドウは、衝突が起こったかのように修正され得る。いくつかの実施形態では、中間バックオフ間隔が経過した後で通信媒体上で送信が検出された場合に、競合ウィンドウの長さが延長され得る。その結果として、次のバックオフ間隔の長さが延長され得る。いくつかの実施形態では、ネットワークデバイス102は、中間バックオフ間隔が経過したときに別のネットワークデバイス110からの送信の開始を検出した場合には、ネットワークデバイス102との衝突として、この検出された送信を中断することができる。したがって、トランシーバユニット108が通信媒体上で別のネットワークデバイスからの送信を検出した場合には、時間間隔計算ユニット106は、次のバックオフ間隔の長さを延長することができる。たとえば、総バックオフ持続時間が第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含む場合には、第1のバックオフ間隔が経過した後で送信が検出され得る。その結果として、第2のバックオフ間隔の長さが延長され得る。いくつかの実施形態では、第2のバックオフ間隔の持続時間は、第1のバックオフ間隔の持続時間の2倍であることもある。他の実施形態では、第2のバックオフ間隔の持続時間は、別の適当な倍率で第1のバックオフ間隔の持続時間を超えることもある。いくつかの実施形態では、トランシーバユニット108が通信媒体上で別のネットワークデバイスからの送信を検出した場合には、時間間隔計算ユニット106は、第2のバックオフ間隔を決定するための競合ウィンドウの長さを延長することができる。いくつかの実施形態では、競合ウィンドウの長さは、(第1のバックオフ間隔の持続時間を決定するために使用された)現在の競合ウィンドウの長さの2倍に延長されることもある。他の実施形態では、競合ウィンドウの長さは、別の適当な倍率で現在の競合ウィンドウの長さを超えることもある。第2のバックオフ間隔の持続時間は、この延長された競合ウィンドウに少なくとも部分的には基づいて選択され得る。たとえば、第2のバックオフ間隔は、ゼロから延長された競合ウィンドウまでの間の乱数として選択され得る。ブロック414からブロック402まで進んで、次のバックオフ間隔が開始され得る。いくつかの実施形態では、競合ウィンドウの長さは、次のバックオフ間隔を開始した後で(たとえば次のバックオフ間隔の進行中に)選択され得ることに留意されたい。バックオフ間隔の長さは、この延長された競合ウィンドウの長さに応じて更新され得る。
[0081]図4Bは、総バックオフ持続時間を動的に変化させるための別の実施形態の例示的な動作を示す流れ図450である。フロー450は、ブロック452で開始する。
[0082]ブロック452で、ネットワークデバイスにおいて、ネットワークデバイスによって送信されたデータに少なくとも部分的には基づいて、総送信持続時間および所定の送信間隔が決定される。ネットワークデバイス102が通信媒体の制御権を取得した後で、トランシーバユニット108は、通信ネットワーク100中の他のネットワークデバイスにデータ(たとえばデータ/管理フレーム)を送信することができる。いくつかの実施形態では、時間間隔計算ユニット106は、ネットワークデバイス102によって送信されたデータの量に基づいて、総送信持続時間を決定することができる。たとえば、時間間隔計算ユニット106は、ネットワークデバイス102によって送信されたフレームの数および各フレームの長さに基づいて、総送信持続時間を決定することができる。別の実施形態では、時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体の制御権を有する持続時間を常時監視するために、送信タイマを実装することができる。さらに、時間間隔計算ユニット106は、総送信持続時間の間に送信されたデータのタイプおよび優先度に基づいて、送信間隔(たとえばTXOP限界)を決定することもできる。フローは、ブロック454に進む。
[0083]ブロック454で、ネットワークデバイスにおいて、バックオフ間隔が選択される。一実施形態では、時間間隔計算ユニット106は、バックオフ競合ウィンドウおよびローカルな乱数(または擬似乱数)発生器に少なくとも部分的には基づいて、バックオフ間隔を選択することができる。乱数発生器は、下限(たとえばゼロ)およびバックオフ競合ウィンドウをある値を選択することができる。選択された値は、バックオフ間隔として指定され得る。別の実施形態では、バックオフ間隔は、総送信持続時間の間に送信されたデータのタイプおよび優先度に基づいて事前に決定され得る。いくつかの実施形態では、バックオフ間隔は、送信間隔と同じ持続時間を有することもある。別の実施形態では、バックオフ間隔は、別の適当な所定の値でもあり得る。フローは、ブロック456に進む。
[0084]ブロック456で、ネットワークデバイスが送信を延期すべき連続したバックオフ間隔の数が、総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて決定される。複数の連続した送信間隔にわたってデータを送信した後、ネットワークデバイス102は、複数の連続したバックオフ間隔の間、データを送信する、または通信媒体の制御権をめぐって競合してはならない。一実施形態では、式1に示されるように、時間間隔計算ユニット106は、総送信持続時間を送信間隔で割ることができる。時間間隔計算ユニット106は、連続したバックオフ間隔の数を決定するために、その商を次に大きい整数に丸めることができる。たとえば、送信持続時間が3msであり、TXOP限界が2msである場合には、時間間隔計算ユニット106は、ネットワークデバイス102が2つの連続したバックオフ間隔を実施すべきであると決定することができる。上述のように、通信タイムスロットは、ネットワークデバイス102、104、および110がデータを送信する、または通信媒体上の送信を延期することができる時間の最小単位を指すことがある。上記の例では、(ブロック454で選択された)バックオフ間隔が7個の通信タイムスロットを含む場合には、ネットワークデバイス102は、通信媒体の制御権を取得しようと試みる前に14個の通信タイムスロット(すなわち2つの連続したバックオフ間隔)にわたって送信を延期することができる。選択された数のバックオフ間隔の総持続時間が、総バックオフ持続時間と呼ばれることがある。たとえば、時間間隔計算ユニット106がブロック456で2つの連続したバックオフ間隔を実施すると決定した場合には、総バックオフ持続時間は2つのバックオフ間隔を含み得る。フローは、ブロック458に進む。
[0085]ブロック458で、ネットワークデバイスにおいて、バックオフ間隔が開始される。いくつかの実施形態では、時間間隔計算ユニット106は、各バックオフ間隔を常時監視するバックオフタイマを実装することができる。時間間隔計算ユニット106は、バックオフ間隔の値を、バックオフタイマに記憶することができる。時間間隔計算ユニット106は、バックオフタイマがゼロまでカウントダウンした後で、1つのバックオフ間隔が経過したと決定することができる。フローは、ブロック460に進む。
[0086]ブロック460で、ネットワークデバイスは、バックオフ間隔が経過したかどうかを決定する。いくつかの実施形態では、時間間隔計算ユニット106は、バックオフ間隔が経過するときに、バックオフタイマから通知(たとえば割込みまたはトリガ信号)を受信することができる。他の実施形態では、時間間隔計算ユニット106は、バックオフ間隔が経過したかどうかを決定するために、定期的にバックオフタイマにアクセスすることができる。バックオフ間隔が経過していない場合には、フローは、ブロック460にループして戻り、ブロック460で、ネットワークデバイス102は、バックオフ間隔が経過するまで待機する。バックオフ間隔が経過した場合には、フローは、ブロック462に進む。
[0087]ブロック462で、経過したバックオフ間隔が中間バックオフ間隔であるかどうかが決定される。いくつかの実施形態では、時間間隔計算ユニット106は、図4Aのブロック406を参照して上述したように、経過したバックオフ間隔が中間バックオフ間隔であるかどうか、および総バックオフ持続時間が経過したかどうかを決定することができる。経過したバックオフ間隔が中間バックオフ間隔である場合(すなわち総バックオフ持続時間が経過していない場合)には、フローは、ブロック466に進む。そうでない場合、経過したバックオフ間隔が中間バックオフ間隔でない場合(たとえば総バックオフ持続時間が経過した場合)には、フローは、ブロック464に進む。
[0088]ブロック464で、経過したバックオフ間隔が中間バックオフ間隔でない場合には、総バックオフ持続時間が経過して、ネットワークデバイスが通信媒体の制御権を取得しようと試みていることが決定される。いくつかの実施形態では、経過したバックオフ間隔が中間バックオフ間隔でない場合には、時間間隔計算ユニット106は、図4Aのブロック408を参照して上述したように、最終/最後のバックオフ間隔および総バックオフ持続時間が経過したと決定することができる。その結果として、時間間隔計算ユニット106は、ネットワークデバイス102(たとえばトランシーバユニット108)に、必要なら通信媒体の制御権をめぐって競合するように通知することができる。通信媒体の制御権を取得した後で、トランシーバユニット108は、通信媒体上でデータを送信することができる。ブロック464の後、フローはループしてブロック452に戻る。
[0089]ブロック466で、経過したバックオフ間隔が中間バックオフ間隔である場合には、ネットワークデバイスは、通信媒体上で送信が検出されるかどうかを決定する。いくつかの実施形態では、トランシーバユニット108は、図4Aのブロック410を参照して上述したように、通信媒体上で送信があるかどうかを決定するために、所定の感知時間間隔にわたって通信媒体をモニタリングすることができる。通信媒体上で送信が検出されない場合には、フローは、ブロック468に進む。そうでない場合、通信媒体上で送信が検出される場合には、フローは、ブロック470に進む。
[0090]ブロック468で、中間バックオフ間隔が経過した後で通信媒体上で送信が検出されない場合には、競合ウィンドウの長さは、所定の持続時間(たとえば所定の最小持続時間、または特定の実装形態または標準仕様によって決定される所定の持続時間)に設定される。いくつかの実施形態では、図4Aのブロック412を参照して上述したように、通信媒体上で送信が検出さえない場合には、時間間隔計算ユニット106は、競合ウィンドウを修正することもあれば、修正しないこともある。フローは、次いで、ループしてブロック458に戻り、ブロック458で、適当な持続時間を有する次のバックオフ間隔が開始される。いくつかの実施形態では、競合ウィンドウの長さは、次のバックオフ間隔を開始した後で(たとえば次のバックオフ間隔の進行中に)選択され得ることに留意されたい。バックオフ間隔の長さは、選択された競合ウィンドウの長さに応じて更新され得る。
[0091]ブロック470で、中間バックオフ間隔が経過した後で通信媒体上で送信が検出された場合には、競合ウィンドウは、衝突が起こったかのように修正され得る。いくつかの実施形態では、時間間隔計算ユニット106は、図4Aのブロック414を参照して上述したように、通信媒体上で送信が検出された場合に競合ウィンドウを修正するために様々な技法を利用することができる。ブロック470からブロック458に進んで、次のバックオフ間隔が開始され得る。いくつかの実施形態では、競合ウィンドウの長さは、次のバックオフ間隔を開始した後で(たとえば次のバックオフ間隔の進行中に)選択され得ることに留意されたい。バックオフ間隔の長さは、延長された競合ウィンドウの長さに応じて更新され得る。図4Bには示されていないが、フローは、それ以上のバックオフ間隔が開始されないときに終了することができる。
[0092]図5は、通信ネットワーク中で総バックオフ持続時間を動的に変化させる2つのネットワークデバイスを示す例示的なタイミング図である。タイミング図500は、第1のネットワークデバイスの送信間隔およびバックオフ間隔を示し、タイミング図550は、第2のネットワークデバイスの送信間隔およびバックオフ間隔を示す。タイミング図500に示されるように、第1のネットワークデバイスは、通信媒体の制御権を取得し、通信媒体上でデータを送信する。図5に示されるように、第1のネットワークデバイスは、3つの連続した送信間隔504、506、および508(図5ではTXOPとして示される)にまたがる総送信持続時間502にわたって送信する。第1のネットワークデバイスは、式1〜式4を用いて上述したように、総送信持続時間502および送信間隔に少なくとも部分的には基づいて、総バックオフ持続時間510を決定する。図5では、第1のネットワークデバイスは、総バックオフ持続時間510が3つの連続したバックオフ間隔にまたがるべきであると決定する。第1のネットワークデバイスは、(たとえばバックオフ競合ウィンドウに基づいて)バックオフ間隔の持続時間を決定することができ、3つの連続したバックオフ間隔512、514、および516にわたって送信を延期することができる。タイミング図500では、バックオフ間隔512および514の各々の後には、さらなるバックオフ間隔が続いている。したがって、バックオフ間隔512および514は、各々、「中間バックオフ間隔」と呼ばれる。
[0093]第2のネットワークデバイスについてのタイミング図550を参照すると、第2のネットワークデバイスは、第1のネットワークデバイスが通信媒体の制御権を有している間(たとえば総送信持続時間502の間)は、いかなる送信も開始してはならず、通信媒体の制御権を取得しようと試みてもならない。これは、タイミング図550では、バックオフ間隔552で示されている。バックオフ間隔552が経過した後で、第2のネットワークデバイスは、通信媒体の制御権を取得しようと試みることができる。タイミング図550では、第2のネットワークデバイスは、通信媒体の制御権を取得し、2つの送信間隔554および556にまたがる送信持続時間にわたってデータを送信する。第1のネットワークデバイスに関連して同様に述べたように、利用可能な/バッファリングされたデータを送信した後で、第2のネットワークデバイスは、2つの連続したバックオフ間隔558および560を実施すると決定する。
[0094]第1のネットワークデバイスについてのタイミング図500を参照すると、総バックオフ持続時間510が経過した後で、第1のネットワークデバイスは、通信媒体の制御権をめぐって他のネットワークデバイスと競合することができる。タイミング図500では、第1のネットワークデバイスは、通信媒体の制御権を取得し、2つの送信間隔518および520にまたがる持続時間にわたってデータを送信する。上述のように、送信間隔518および520で利用可能な/バッファリングされたデータを送信した後で、第1のネットワークデバイスは、2つの連続したバックオフ間隔522および524を実施すると決定する。第1のネットワークデバイスは、無作為なバックオフ間隔を決定し、そのバックオフ間隔で示される持続時間を有する第1のバックオフ間隔522を開始する。バックオフ間隔522の後には別のバックオフ間隔524が続いているので、バックオフ間隔522は、中間バックオフ間隔である。中間バックオフ間隔522が経過した後で、第1のネットワークデバイスは、通信媒体上で別のネットワークデバイスからの送信があるかどうかを決定する。言い換えれば、第1のネットワークデバイスは、バックオフ間隔522は経過したが、総バックオフ持続時間510は経過していないと決定することができる。したがって、第1のネットワークデバイスは、通信媒体上で別のネットワークデバイスからの送信があるかどうかに応じて、少なくとも1つの後続のバックオフ間隔の持続時間を変化させるかどうかを決定することができる。タイミング図500および550では、第2のネットワークデバイスの送信間隔562(と、したがって送信)の開始は、第1のネットワークデバイスの中間バックオフ間隔522の終了時に起こる。したがって、第1のネットワークデバイスは、衝突が起こったかのように動作し、第2のバックオフ間隔524の持続時間を延長すると決定する。タイミング図500に示されるように、第2のバックオフ間隔524の持続時間は、第1のバックオフ間隔522の持続時間を超える。いくつかの実施形態では、第2のバックオフ間隔524の持続時間は、第1のバックオフ間隔522の持続時間の2倍とすることができる。他の実施形態では、第2のバックオフ間隔524の持続時間は、任意の適当な倍率で第1のバックオフ間隔522の持続時間を超え得る。別の実施形態では、第1のネットワークデバイスは、式4に示されるように、バックオフ競合ウィンドウの長さを延長し、有効バックオフ競合ウィンドウを決定することができる。第1のネットワークデバイスは、適当な下限(たとえばゼロ)と有効バックオフ競合ウィンドウとの間の無作為な値を選択することができる。第1のネットワークデバイスは、有効バックオフ競合ウィンドウに応じて選択された無作為な値に等しい数の通信タイムスロットにわたって第2のバックオフ間隔524を開始することができる。
[0095]図1〜図5および本明細書で説明される動作は、実施形態の理解を助けるための例であり、実施形態を制限する、または特許請求の範囲を制限するために使用されるべきものではないことを理解されたい。実施形態は、追加の動作を実行してもよいし、これらより少ない数の動作を実行してもよいし、動作を異なる順序で実行してもよいし、動作を並列に実行してもよいし、いくつかの動作を異なる形で実行してもよい。たとえば、図2Bは、ネットワークデバイス102が、通信が送信された後で総送信持続時間および送信間隔を決定するものとして示しているが、実施形態はこれに限定されない。他の実施形態では、ネットワークデバイス102は、通信媒体上でデータの送信を開始する前に、総送信持続時間および送信間隔を決定することもできる。たとえば、時間間隔計算ユニット106は、ネットワークデバイス102におけるバッファリングされたデータの量に少なくとも部分的には基づいて、ネットワークデバイス102の総送信持続時間を決定することができる。時間間隔計算ユニット106は、バッファリングされたデータのタイプ/優先度に少なくとも部分的に基づいて、送信間隔を決定することもできる。
[0096]図4Bは、ネットワークデバイス102が(たとえばバックオフ競合ウィンドウに基づいて)バックオフ間隔を選択した後でバックオフ間隔の数を計算するものとして示しているが、実施形態はこれに限定されない。他の実施形態では、時間間隔計算ユニット106は、バックオフ間隔を選択する前に、バックオフ間隔の数を計算することもできる。いくつかの実施形態では、時間間隔計算ユニット106は、送信されたデータ(またはバッファリングされたデータ)のタイプおよび優先度に少なくとも部分的には基づいて、所定のバックオフ間隔を選択することもできる。
[0097]いくつかの実施形態では、時間間隔計算ユニット106は、ネットワークデバイス102が実施すべき追加/余剰のバックオフ間隔の数を決定することができる。追加のバックオフ間隔の数は、総送信持続時間の間に越えた送信間隔境界の数と等しくすることができる。図5の例示的なタイミング図500を参照すると、総送信持続時間502は、3つの送信間隔504、506、および508にまたがる。図5では、総送信持続時間502が開始した後で、2つの送信間隔境界(すなわち送信間隔504と506との間の境界面、および送信間隔506と508との間の境界面)を超える。したがって、第1のネットワークデバイスは、2つの追加のバックオフ間隔を実施し、図5に示されるように、合計で3つの連続したバックオフ間隔512、514、および516わたって実施することができる。
[0098]いくつかの実施形態では、総送信持続時間が送信間隔未満である場合には、ネットワークデバイス102は所定数のバックオフ間隔にわたって送信を延期することができる。一実施形態では、ネットワークデバイス102は、総送信持続時間が送信間隔未満である場合には、少なくとも1つのバックオフ間隔にわたって送信を延期することができる。ただし、他の実施形態では、ネットワークデバイス102は、総送信持続時間が送信間隔未満である場合に、任意の適当な数の連続したバックオフ間隔(たとえば2つの連続したバックオフ間隔)にわたって送信を延期することができる。別の実施形態では、ネットワークデバイス102は、総送信持続時間が送信間隔未満である場合に、バックオフ間隔1つに満たない時間だけ送信を延期することもできる。
[0099]いくつかの実施形態では、時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体上で送信することができる連続した送信間隔の数を制限することができる。実質的には、時間間隔計算ユニット106は、ネットワークデバイス102が通信を送信することができる総送信持続時間を制限する、または連続的に送信され得るデータの量を制限することができる。たとえば、時間間隔計算ユニット106は、ネットワークデバイス102が最大送信持続時間を越えて送信してはならない、または最大数の連続した送信間隔を越えて送信してはならないと決定することができる。これにより、ネットワークデバイス102が通信媒体の制御権を取得した後で通信媒体を独占しないことを保証することができる。バッファリングされたデータを送信するために必要な時間の量が最大送信持続時間を越えると時間間隔計算ユニット106が決定した場合には、トランシーバユニット108は、バッファリングされたデータのうち送信されるべき部分を選択することができる。バッファリングされたデータのこの部分は、バッファリングされたデータの優先度/タイプ、そのデータが時間に敏感であるかどうか、宛先デバイスの優先度などに基づいて選択され得る。たとえば、トランシーバユニット108は、最高の優先度に関連付けられたデータの部分を送信すると決定することもある。最大送信持続時間の間にデータのこの部分を送信した後で、ネットワークデバイス102は、総バックオフ持続時間(たとえば適当な数の連続したバックオフ間隔)を開始することができる。総バックオフ持続時間が経過した後で、トランシーバユニット108は、通信媒体の制御権をめぐって競合することができる。トランシーバユニット108は、ネットワークデバイス102が通信媒体の制御権を取得した後で、残りのバッファリングされたデータの一部/すべてを送信することができる。別の例としては、ネットワークデバイス102から送信されるものとしてスケジューリングされたデータに関連付けられた送信時間が、ネットワークデバイス102に関連付けられた最大送信持続時間を越えると決定されることもある。したがって、ネットワークデバイス102は、最大送信持続時間にわたってそのデータの第1の部分を送信することができる。ネットワークデバイスは、データの第1の部分の送信に関連付けられた総バックオフ持続時間が経過した後で、そのデータの第2の部分を送信することができる。ネットワークデバイス102は、任意の適当な技法(たとえば、データの優先度、データの待ち時間指定、先入れ先出し式など)を使用して、データの第1の部分および第2の部分を選択することができることに留意されたい。さらに、いくつかの実施形態では、時間間隔計算ユニット106は、ネットワークデバイス102が通信媒体上で送信を行うことと、通信媒体の制御権をめぐって競合することとを延期する総バックオフ持続時間を制限することができる。いくつかの実施形態では、時間間隔計算ユニット106は、最大バックオフ持続時間または最大競合ウィンドウを決定することができる。いくつかの実施形態では、最大バックオフ持続時間および最大競合ウィンドウは、最大送信持続時間に少なくとも部分的には基づいて決定され得る。
[00100]いくつかの実施形態では、時間間隔計算ユニット106は、バッファリングされたデータの送信への利用可能性、送信されているデータのタイプおよび優先度などに応じて、複数の連続した送信間隔をクラスタ化するかどうかを決定することができる。たとえば、送信されるものとしてスケジューリングされたデータが時間に敏感なデータでない場合には、ネットワークデバイス102は、複数の連続した送信間隔をクラスタ化しないと決定することができる。
[00101]図3〜図5は、中間バックオフ間隔が経過した後で送信が検出された場合に次のバックオフ間隔の持続時間を延長する動作を示している。しかし、様々な他の実施形態が可能である。一実施形態では、中間バックオフ間隔が経過した後で、ネットワークデバイス102は、1つの後続のバックオフ間隔の持続時間を延長することがある。たとえば、ネットワークデバイス102が3つの連続したバックオフ間隔512、514、および516を実施すると決定するタイミング図500を考慮されたい。この例では、中間バックオフ間隔512が経過した後で送信が検出された場合に、ネットワークデバイス102は、次のバックオフ間隔514の持続時間のみを延長し、バックオフ間隔516の持続時間は延長しないことがある。中間バックオフ間隔514が経過した後で、ネットワークデバイス102は、通信媒体を再度感知し、バックオフ間隔516の持続時間を延長するかどうかを決定することができる。中間バックオフ間隔514が経過した後で送信が検出された場合には、ネットワークデバイス102は、次のバックオフ間隔516の持続時間を延長することができる。しかし、中間バックオフ間隔514が経過した後で送信が検出されない場合には、ネットワークデバイス102は、次のバックオフ間隔516の持続時間を延長しないこともある。言い換えると、バックオフ間隔516の持続時間は、最初のバックオフ間隔512の持続時間と同じであってもよい。別の実施形態では、中間バックオフ間隔が経過した後で、ネットワークデバイス102は、すべての後続のバックオフ間隔の持続時間を延長することができる。たとえば、ネットワークデバイス102が、3つの連続したバックオフ間隔512、514、および516を実施すると決定するタイミング図500を考慮されたい。この例では、中間バックオフ間隔512が経過した後で送信が検出された場合に、ネットワークデバイス102は、後続のバックオフ間隔514および516の持続時間を延長することができる。さらに、中間バックオフ間隔514が経過した後で、ネットワークデバイス102は、通信媒体を再度感知し、バックオフ間隔516の持続時間をさらに延長するかどうかを決定することができる。たとえば、ネットワークデバイス102は、最初に、各々2msの持続時間を有する3つのバックオフ間隔512、514、および516を実施すると決定することができる。バックオフ間隔512が経過した後で送信が検出された場合には、ネットワークデバイス102は、後続のバックオフ間隔514および516の各々の持続時間を4msに延長することができる。バックオフ間隔514が経過した後で送信が検出された場合には、ネットワークデバイス102は、バックオフ間隔516の持続時間を8msにさらに延長することができる。
[00102]当業者には理解されるように、本発明の主題の態様は、システム、方法、またはコンピュータプログラム製品として実施され得る。したがって、本発明の主題の態様は、完全にハードウェアの実施形態、ソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいはソフトウェアの態様と、本明細書においていずれも「回路」、「モジュール」、または「システム」と一般に呼ばれることがあるハードウェアの態様とを組み合わせた実施形態の形態を取り得る。さらに、本発明の主題の態様は、コンピュータ可読プログラムコードが実装された1つまたは複数のコンピュータ可読媒体に実装されたコンピュータプログラム製品の形態を取り得る。
[00103]1つまたは複数の非一時的コンピュータ可読媒体の任意の組合せが利用され得る。非一時的コンピュータ可読媒体は、一時的伝搬信号を唯一の例外として、すべてのコンピュータ可読媒体を備える。非一時的コンピュータ可読媒体は、コンピュータ可読記憶媒体であることもある。コンピュータ可読記憶媒体は、たとえば、電子的な、磁気的な、光学的な、電磁気学的な、赤外線の、または半導体のシステム、装置、またはデバイス、あるいはそれらの任意の適当な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例としては、1本または複数本のワイヤを有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読取り専用メモリ(CD−ROM)、光学記憶デバイス、磁気記憶デバイス、あるいはそれらに任意の適当な組合せが挙げられる(列挙したものはすべてを網羅しているわけではない)。本文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって使用される、またはそれらと組み合わせて使用されるプログラムを含むことができる、または記憶することができる、任意の有形の媒体であり得る。
[00104]本発明の主題の態様の動作を実行するためのコンピュータ可読媒体上に実装されたコンピュータプログラムコードは、Java(登録商標)、Smalltalk、C++などのオブジェクト指向のプログラミング言語を含む1つまたは複数のプログラミング言語と、「C」プログラミング言語またはそれに類するプログラミング言語などの従来の手続き型プログラミング言語との任意の組合せで書き込まれ得る。プログラムコードは、完全にユーザのコンピュータ上で実行してもよいし、部分的にユーザのコンピュータ上で実行してもよいし、独立型ソフトウェアパッケージとして実行してもよいし、一部はユーザのコンピュータ上で実行して、一部は遠隔コンピュータ上で実行してもよいし、あるいは完全に遠隔コンピュータまたはサーバ上で実行してもよい。後者のシナリオでは、遠隔コンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)など任意のタイプのネットワークを介してユーザのコンピュータに接続され得、その接続は、(たとえばインターネットサービスプロバイダを用いてインターネットを介して)外部コンピュータに対しても行われてもよい。
[00105]本発明の主題の態様について、本発明の主題の実施形態による方法、装置(システム)、およびコンピュータプログラム製品の流れ図および/またはブロック図を参照して説明した。流れ図および/またはブロック図の各ブロック、ならびに流れ図および/またはブロック図中のブロックの組合せは、コンピュータプログラム命令によって実施され得ることは理解されるであろう。これらのコンピュータプログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて機械を生成して、その命令が、そのコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されて、流れ図および/またはブロック図の1つまたは複数のブロックに指定される機能/作用を実施するための手段を生成するようにすることができる。
[00106]これらのコンピュータプログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスを特定の様式で機能させることができるコンピュータ可読媒体にも記憶され得、コンピュータ可読媒体に記憶されたそれらの命令が、流れ図および/またはブロック図の1つまたは複数のブロックに指定される機能/作用を実施する命令を含む製品を生成するようにすることができる。
[00107]コンピュータプログラム命令は、コンピュータまたは他のプログラマブル装置上で実行されるそれらの命令が、流れ図および/またはブロック図の1つまたは複数のブロックに指定される機能/作用を実施するためのプロセスを提供するように、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップが実行されてコンピュータ実施プロセスを生成するように、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにもロードされ得る。
[00108]図6は、フレキシブルな送信間隔およびバックオフ間隔のための機構を含む電子デバイス600の一実施形態を示すブロック図である。いくつかの実施形態では、電子デバイス600は、ラップトップコンピュータ、タブレットコンピュータ、ネットブック、モバイル電話、スマート機器、ウェアラブルデバイス、ゲームコンソール、デスクトップコンピュータ、ネットワークブリッジデバイス、または通信機能を含む他の適当な電子デバイスであり得る。たとえば、電子デバイス600は、WLAN通信媒体を介して通信するためのWLAN通信プロトコルを実施するWLANデバイスであり得る。電子デバイス600は、プロセッサユニット602(複数のプロセッサ、複数のコア、複数のノードを含む場合、および/またはマルチスレッドを実施する場合などもある)を含む。電子デバイス600は、メモリユニット606を含む。メモリユニット606は、システムメモリ(たとえば、キャッシュ、SRAM、DRAM、ゼロキャパシタRAM、ツイントランジスタRAM、eDRAM、EDO RAM、DDR RAM、EEPROM(登録商標)、NRAM、RRAM(登録商標)、SONOS、PRAMなどのうちの1つまたは複数)、または、コンピュータ可読記憶媒体のすでに上で説明された可能な実現形態のうちの任意の1つまたは複数であり得る。電子デバイス600は、また、バス610(たとえばPCI、ISA、PCI−Express、Hyper Transport(登録商標)、InfiniBand(登録商標)、NuBus、AHB、AXIなど)と、ネットワークインターフェース604とを含む。プロセッサユニット602、メモリユニット606、およびネットワークインターフェース604は、バス610に結合される。ネットワークインターフェース604は、ワイヤレスネットワークインターフェース(たとえばWLANインターフェース、Bluetoothインターフェース、WiMAXインターフェース、ZigBee(登録商標)インターフェース、ワイヤレスUSBインターフェースなど)、および/または有線ネットワークインターフェース(たとえば電力線通信インターフェース、イーサネットインターフェースなど)を含む。さらに、いくつかの実施形態では、電子デバイス600は、ハイブリッド通信機能性を実施するためのIEEE標準1905.1プロトコルを実行することができる。
[00109]電子デバイス600は、通信ユニット608も含む。通信ユニット608は、時間間隔計算ユニット612と、トランシーバユニット614とを含む。図1〜図5を参照して上述したように、時間間隔計算ユニット612は、電子デバイス600が通信媒体の制御権を有していた送信持続時間に少なくとも部分的には基づいて電子デバイス600のバックオフ持続時間を決定するための機能性を実行することができる。これらの機能性のいずれか1つは、部分的に(または完全に)ハードウェアで、および/またはプロセッサユニット602上で実施され得る。たとえば、機能性は、特定用途向け集積回路(ASIC)を用いて実施され得、プロセッサユニット602に実装された論理で実施され得、周辺デバイスまたはカード上のコプロセッサにおいて実施され得る。いくつかの実施形態では、通信ユニット608は、電子デバイス600の通信を可能にするために、システムオンチップ(SoC)、ASIC、または別の適当な集積回路上に実装され得る。いくつかの実施形態では、通信ユニット608は、追加のプロセッサおよびメモリを含み得、電子デバイス600の1つまたは複数の回路基板上の1つまたは複数の集積回路に実装され得る。さらに、実現形態は、より少ない数の構成要素、または図6には示されていない追加の構成要素(たとえばビデオカード、オーディオカード、追加のネットワークインターフェース、周辺デバイスなど)を含むことができる。たとえば、バス610で結合されたプロセッサユニット602に加えて、通信ユニット608は、少なくとも1つの追加のプロセッサユニットを含むこともできる。別の例としては、メモリユニット606は、バス610に結合されるものとして示してあるが、プロセッサユニット602に結合されていてもよい。
[00110]様々な実装形態および開発形態を参照して実施形態について説明したが、これらの実施形態は例示的なものであること、および本発明の主題の範囲がそれらに限定されないことは理解されるであろう。一般に、本明細書で説明したネットワークデバイスにおけるフレキシブルな送信間隔およびバックオフ間隔のための技法は、任意の1つまたは複数のハードウェアシステムと調和する機構で実施され得る。多くの変形、修正、追加、および改良が可能である。
[00111]本明細書において単数の場合として説明されている構成要素、動作、または構造については、複数の場合も可能である。最後に、様々な構成要素、動作、およびデータ記憶位置の間の境界は、ある程度任意であり、特定の動作は、具体的な例示的な構成の文脈において例示されたものである。他の機能性の割振りも構想され、それらも本発明の主題の範囲内に含まれ得る。一般に、例示的な構成において別個の構成要素として提示されている構造および機能性は、結合された構造または構成要素として実施され得る。同様に、単一の構成要素として提示されている構造および機能性は、別個の構成要素として実施され得る。これらおよび他の変形、修正、追加、および改良は、本発明の主題の範囲内に含まれ得る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ネットワークデバイスによる通信の方法であって、
前記ネットワークデバイスにおいて、通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、前記ネットワークデバイスの総バックオフ持続時間を決定することと、
前記ネットワークデバイスが前記総バックオフ持続時間中に前記通信媒体上で送信することを防止するために前記総バックオフ持続時間を開始することと、を備える、方法。
[C2]
前記ネットワークデバイスにおいて前記総送信持続時間を決定することをさらに備え、
ここにおいて、前記総バックオフ持続時間を決定することが、前記総送信持続時間が前記総送信持続時間中に送信されるデータに関連付けられた前記所定の送信間隔を超えると決定したことに応答する、C1に記載の方法。
[C3]
前記総送信持続時間中に前記ネットワークデバイスによって送信されるデータに関連付けられた優先度レベルに少なくとも部分的には基づいて、前記所定の送信間隔を決定することをさらに備える、C1に記載の方法。
[C4]
前記総送信持続時間が、前記所定の送信間隔の倍数である、C1に記載の方法。
[C5]
前記総バックオフ持続時間が、前記総送信持続時間中に送信されるデータに関連付けられた所定のバックオフ間隔の倍数である、C1に記載の方法。
[C6]
前記ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択することをさらに備え、ここにおいて、前記バックオフ競合ウィンドウが、前記ネットワークデバイスが前記通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表す、C1に記載の方法。
[C7]
前記ネットワークデバイスの前記総バックオフ持続時間を決定することが、
前記総送信持続時間と前記所定の送信間隔との比に少なくとも部分的には基づいて前記ネットワークデバイスにおいて実施するバックオフ間隔の数を決定することと、
前記バックオフ間隔の数に少なくとも部分的には基づいて、前記総バックオフ持続時間を決定することと、を備える、C1に記載の方法。
[C8]
前記ネットワークデバイスにおいて前記総バックオフ持続時間を開始することが、
前記ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定することと、
前記第1のバックオフ間隔が経過したと決定された場合に、
前記総バックオフ持続時間が前記第1のバックオフ間隔と、その後に続く第2のバックオフ間隔とを含むかどうかを決定することと、
前記総バックオフ持続時間が前記第1のバックオフ間隔と、その後に続く前記第2のバックオフ間隔とを含むと決定された場合に、
前記通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかを決定することと、を備える、C1に記載の方法。
[C9]
前記通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、前記第2のバックオフ間隔の持続時間を変化させるかどうかを決定することをさらに備える、C8に記載の方法。
[C10]
前記通信媒体上で前記送信が検出された場合に、前記第1のバックオフ間隔を決定するために使用されたバックオフ競合ウィンドウに対して、前記第2のバックオフ間隔を決定するためのバックオフ競合ウィンドウの長さを延長することと、
前記通信媒体上で送信が検出されない場合に、前記第2のバックオフ間隔を決定するための前記バックオフ競合ウィンドウの長さを所定の長さに設定すると決定することと、をさらに備える、C9に記載の方法。
[C11]
前記ネットワークデバイスの前記総バックオフ持続時間を決定することが、
現在のバックオフ競合ウィンドウ、前記総送信持続時間、および前記所定の送信間隔のうちの少なくとも1つに基づいて前記ネットワークデバイスに関連付けられた新たなバックオフ競合ウィンドウを決定することと、ここにおいて、前記新たなバックオフ競合ウィンドウが、前記ネットワークデバイスが前記通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表し、
前記新たなバックオフ競合ウィンドウに少なくとも部分的には基づいて、前記総バックオフ持続時間を選択することと、を備える、C1に記載の方法。
[C12]
前記ネットワークデバイスにおいて前記総バックオフ持続時間が経過したと決定することと、
前記総バックオフ持続時間が経過したと決定したことに応答して、前記通信媒体の制御権を取得するために少なくとも1つのメッセージを送信することと、をさらに備える、C1に記載の方法。
[C13]
前記総送信持続時間および前記所定の送信間隔に少なくとも部分的には基づいて前記ネットワークデバイスにおいて実施する連続したバックオフ間隔の数を決定することと、
第1のバックオフ間隔が経過し、第2のバックオフ間隔が前記第1のバックオフ間隔の後に続いていると決定された場合に、
前記通信媒体上で別のネットワークデバイスによる送信が検出されるかどうかを決定することと、
前記通信媒体上で別のネットワークデバイスによる送信が検出されるかどうかに少なくとも部分的には基づいて、前記第2のバックオフ間隔の持続時間を変化させるかどうかを決定することと、をさらに備える、C1に記載の方法。
[C14]
ネットワークデバイスであって、
プロセッサユニットと、
前記プロセッサユニットに結合された時間間隔計算ユニットと、を備え、前記時間間隔計算ユニットが、
通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、前記ネットワークデバイスの総バックオフ持続時間を決定し、
前記ネットワークデバイスが前記総バックオフ持続時間中に前記通信媒体上で送信することを防止するために前記総バックオフ持続時間を開始するように構成される、ネットワークデバイス。
[C15]
前記時間間隔計算ユニットが、
前記総送信持続時間を決定するようにさらに構成され、
ここにおいて前記総バックオフ持続時間を決定するように構成された前記時間間隔計算ユニットが、前記総送信持続時間が、前記総送信持続時間中に送信されるデータに関連付けられる前記所定の送信間隔を超えると決定したことに応答する、C14に記載のネットワークデバイス。
[C16]
前記時間間隔計算ユニットが、
前記ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択するようにさらに構成され、ここにおいて、前記バックオフ競合ウィンドウが、前記ネットワークデバイスが前記通信媒体上でデータ送信を延期する最大数の通信タイムスロットを表す、C14に記載のネットワークデバイス。
[C17]
前記ネットワークデバイスの前記総バックオフ持続時間を決定するように構成された前記時間間隔計算ユニットが、
前記総送信持続時間と前記所定の送信間隔との比に少なくとも部分的には基づいて前記ネットワークデバイスにおいて実施するバックオフ間隔の数を決定し、
前記バックオフ間隔の数に少なくとも部分的には基づいて、前記総バックオフ持続時間を決定するように構成された前記時間間隔計算ユニットを備える、C14に記載のネットワークデバイス。
[C18]
前記ネットワークデバイスにおいて前記総バックオフ持続時間を開始するように構成された前記時間間隔計算ユニットが、
前記ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定し、
前記第1のバックオフ間隔が経過し、第2のバックオフ間隔が前記第1のバックオフ間隔の後に続いていると決定された場合に、
前記通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、前記第2のバックオフ間隔の持続時間を変化させるかどうかを決定し、ここにおいて、前記総バックオフ持続時間が、前記第1のバックオフ間隔と、前記第2のバックオフ間隔とを含むように構成された前記時間間隔計算ユニットを備える、C14に記載のネットワークデバイス。
[C19]
前記時間間隔計算ユニットが、
前記通信媒体上で前記送信が検出された場合に、前記第1のバックオフ間隔を決定するために使用されたバックオフ競合ウィンドウに対して、前記第2のバックオフ間隔を決定するためのバックオフ競合ウィンドウの長さを延長し、
前記通信媒体上で送信が検出されない場合に、前記第2のバックオフ間隔を決定するための前記バックオフ競合ウィンドウの長さを所定の長さに設定すると決定するようにさらに構成される、C18に記載のネットワークデバイス。
[C20]
前記ネットワークデバイスの前記総バックオフ持続時間を決定するように構成された前記時間間隔計算ユニットが、
現在のバックオフ競合ウィンドウ、前記総送信持続時間、および前記所定の送信間隔のうちの少なくとも1つに基づいて前記ネットワークデバイスに関連付けられた新たなバックオフ競合ウィンドウを決定し、ここにおいて、前記新たなバックオフ競合ウィンドウが、前記ネットワークデバイスが前記通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表し、
前記新たなバックオフ競合ウィンドウに少なくとも部分的には基づいて、前記総バックオフ持続時間を選択するように構成された前記時間間隔計算ユニットを備える、C14に記載のネットワークデバイス。
[C21]
機械実行可能命令を記憶した非一時的機械可読記憶媒体であって、前記機械実行可能命令が、
ネットワークデバイスにおいて、通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、前記ネットワークデバイスの総バックオフ持続時間を決定し、
前記ネットワークデバイスが前記総バックオフ持続時間中に前記通信媒体上で送信することを防止するために前記ネットワークデバイスにおいて前記総バックオフ持続時間を開始する命令を備える、非一時的機械可読記憶媒体。
[C22]
前記命令が、
前記ネットワークデバイスにおける前記総送信持続時間を決定する命令をさらに備え、
ここにおいて前記総バックオフ持続時間を決定する前記命令が、前記総送信持続時間が、前記総送信持続時間中に送信されるデータに関連付けられる前記所定の送信間隔を超えると決定したことに応答する、C21に記載の非一時的機械可読記憶媒体。
[C23]
前記命令が、
前記ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択する命令をさらに備え、ここにおいて、前記バックオフ競合ウィンドウが、前記ネットワークデバイスが前記通信媒体上でデータ送信を延期する最大数の通信タイムスロットを表す、C21に記載の非一時的機械可読記憶媒体。
[C24]
前記ネットワークデバイスの前記総バックオフ持続時間を決定する前記命令が、
前記総送信持続時間と前記所定の送信間隔との比に少なくとも部分的には基づいて前記ネットワークデバイスにおいて実施するバックオフ間隔の数を決定し、
前記バックオフ間隔の数に少なくとも部分的には基づいて、前記総バックオフ持続時間を決定する命令を備える、C21に記載の非一時的機械可読記憶媒体。
[C25]
前記ネットワークデバイスの前記総バックオフ持続時間を開始する前記命令が、
前記ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定し、
前記第1のバックオフ間隔が経過し、第2のバックオフ間隔が前記第1のバックオフ間隔の後に続いていると決定された場合に、
前記通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、前記第2のバックオフ間隔の持続時間を変化させるかどうかを決定する命令を備え、ここにおいて、前記総バックオフ持続時間が、前記第1のバックオフ間隔と前記第2のバックオフ間隔とを含む、C21に記載の非一時的機械可読記憶媒体。
[C26]
前記ネットワークデバイスの前記総バックオフ持続時間を決定する前記命令が、
現在のバックオフ競合ウィンドウ、前記総送信持続時間、および前記所定の送信間隔のうちの少なくとも1つに基づいて前記ネットワークデバイスに関連付けられた新たなバックオフ競合ウィンドウを決定し、ここにおいて、前記新たなバックオフ競合ウィンドウが、前記ネットワークデバイスが前記通信媒体上のデータ送信を延期する最大数の通信タイムスロットを表し、
前記新たなバックオフ競合ウィンドウに少なくとも部分的には基づいて、前記総バックオフ持続時間を選択する命令を備える、C21に記載の非一時的機械可読記憶媒体。
[C27]
ネットワークデバイスであって、
通信媒体上で送信するための総送信持続時間および所定の送信間隔に少なくとも部分的には基づいて、前記ネットワークデバイスの総バックオフ持続時間を決定するための手段と、
前記ネットワークデバイスが前記総バックオフ持続時間中に前記通信媒体上で送信することを防止するために前記総バックオフ持続時間を開始するための手段と、を備える、ネットワークデバイス。
[C28]
前記ネットワークデバイスに関連付けられたバックオフ競合ウィンドウに少なくとも部分的には基づいてバックオフ間隔を選択するための手段をさらに備え、ここにおいて、前記バックオフ競合ウィンドウが、前記ネットワークデバイスが前記通信媒体上でデータ送信を延期する最大数の通信タイムスロットを表す、C27に記載のネットワークデバイス。
[C29]
前記ネットワークデバイスの前記総バックオフ持続時間を決定するための前記手段が、
前記総送信持続時間と前記所定の送信間隔との比に少なくとも部分的には基づいて前記ネットワークデバイスにおいて実施するバックオフ間隔の数を決定するための手段と、
前記バックオフ間隔の数に少なくとも部分的には基づいて、前記総バックオフ持続時間を決定するための手段と、を備える、C27に記載のネットワークデバイス。
[C30]
前記ネットワークデバイスの前記総バックオフ持続時間を開始するための手段が、
前記ネットワークデバイスにおいて開始された第1のバックオフ間隔が経過したかどうかを決定するための手段と、
前記第1のバックオフ間隔が経過し、第2のバックオフ間隔が前記第1のバックオフ間隔の後に続いていると決定された場合に、
前記通信媒体上で別のネットワークデバイスによって開始された送信が検出されるかどうかに少なくとも部分的には基づいて、前記第2のバックオフ間隔の持続時間を変化させるかどうかを決定するための手段と、を備え、ここにおいて、前記総バックオフ持続時間が、前記第1のバックオフ間隔と前記第2のバックオフ間隔とを含む、C27に記載のネットワークデバイス。