以下の説明は、いずれの当業者も、本発明を作製及び使用することが可能となるように提示され、具体的な用途及びその要件との関連で提供される。開示される実施形態に対する様々な修正は、当業者には容易に明らかとなるものであり、本明細書で定義される一般原理は、本発明の範囲から逸脱することなく、他の実施形態及び用途に適用することができる。それゆえ、本発明は、示される実施形態に限定されることを意図するものではなく、本明細書で開示される原理及び特徴に一致する最も広い範囲が与えられることを意図するものである。
本発明の幾つかの実施形態では、階層的コミュニティ内のピアツーピア通信環境内で動作している機器を同期化する一方で、そのコミュニティから退去することなく、機器の局所的なグループ分けを可能にするための、システム、装置、及び方法が提供される。それゆえ、機器のデフォルト階層は、その環境内の全ての機器を同期化するための枠組みを提供するが、その一方で、個々のグループ又はグループ階層は、より大きい階層内で機器と相互作用する能力を喪失することなく、機器の局所的な協働を可能にする。
序論
無線通信環境は、スマートフォン、タブレット、無線携帯情報端末、ラップトップコンピュータ、及びデスクトップコンピュータなどの、同じタイプ及び/又は異なるタイプの任意数の機器によって特徴付けることができる。異なる機器は、異なる特徴を有し、異なるアプリケーションを実行することができ、異なる電力レベル(例えば、バッテリー強度)、異なる通信ニーズ、異なる負荷(例えば、プロセッサに対して、アンテナに対して)を有する場合があり、様々な信号強度で、他の機器によって聴取することなどができる。更には、通信環境は流動的なものであり、機器は、継続的に、その環境を包含する空間領域内に入り、その中を通って移動し、出て行くことができる。
本明細書で開示される発明の幾つかの実施形態は、そのような環境内の機器が互いを検出して、直接的に、ピアツーピアで通信することを可能にするための、プロトコル、機構、及び/又はプロセスを提供する。これらの実施形態は、機器及びサービスを容易に検出可能としながらも、低消費電力を促進し、他の通信技術(例えば、Bluetooth(登録商標))と共存し、多帯域動作(例えば、2.4GHz及び5GHz)をサポートし、インフラストラクチャベースの技術との適合性を維持しつつも、ネットワークインフラストラクチャ(例えば、アクセスポイント)で通常遭遇する、スループット及びレイテンシの劣化を回避し、同期局(又はマスター)として機能している機器が、その環境から出て行く場合には、容易かつ迅速に回復し、多くの機器を有する高密度の環境に適応するように拡張可能である。これらの特徴及び利点、並びに他の特徴及び利点を、以下で説明する。
本発明の実施形態では、機器は、所定のチャネル上で、所定の時刻にランデブーするように、同期化される。機器がランデブーする間の期間は、可用性窓と命名され、全ての同期局は、同じ又は同様の、可用性窓のスケジュールを一斉配信又は広告する。可用性窓の間に、ピアは、マルチキャストデータ通信及び/又はユニキャストデータ通信を交換して、他の機器及びサービスを検出することができる。機器は、ピアとの進行中の通信に適応するために、可用性窓でのその機器の参加を延長するができる。
今後の1つ以上のランデブーのパラメータ(例えば、時刻及びチャネル)が、1つ以上のソーシャルチャネル上に一斉配信される周期的同期フレーム(PSF)を介して通信される。機器は、少なくとも1つのソーシャルチャネル上で、少なくとも1つのPSFを聴取するために十分な時間の長さにわたって周期的にリッスンするように、予めプログラムされる。
それゆえ、機器が、ピア機器の環境内で起動するか、又はその環境内に移動する場合、その機器は、所定のソーシャルチャネルに同調して、いつどこで他の機器とランデブーすることができるかを素早く探知する。機器がPSFを聴取しない場合には、その機器は、マスターとして機能するべきであると想定して、その機器自体のPSFの発行を開始することにより、存在し得るか又は後に出現する他の機器との同期を円滑にすることができる。
同期パラメータ(例えば、今後の可用性窓のスケジュール)はまた、一部の実装では、可用性窓の間に告知することができ、これにより、機器がパラメータを受信するために、それらの機器の無線をソーシャルチャネルに切り換える労力が削減される。機器は更に、PSFをリッスンしていないとき、可用性窓に関与しているとき、又は何らかの他の目的のために使用しているとき、その機器の無線の電源を切ることができる。同期階層に関与している機器は、それゆえ、インフラストラクチャ接続又はBluetooth(登録商標)リンクなどの、その機器の別の機能と、無線、アンテナ、及び/又は他の通信リソースを共有することができる。
ピア機器のコミュニティ内では、いずれが同期局になり、他の機器を同期化する責任を負うかを決定するために、選択手順が適用される。選択される同期局の数は、存在するピア機器の数、それらのピア機器の信号強度、信号伝播パターン、動作パラメータなどに応じて決定することができる。以下で説明されるように、同期局を選択又は特定するプロセスは、関与する機器の、実質上あらゆる関連因子を考慮することができる。
通信環境内の機器は、インフラストラクチャ要件の負担を有することなくピアツーピア通信に従事するが、同期局又はマスターの選択は、それらの機器を、同期を目的とする階層へと論理的に編成する。この階層内で、ルート同期局(又は「上位マスター」)は、そのルート同期局が一斉配信するPSFによって伝達される同期パラメータを介して、それらの機器の全体的な同期に関与する。ブランチ同期局と呼ばれる各下位マスターは、ルート同期局若しくは介在するブランチ同期局と同期してルート同期局の同期パラメータを再送信するか、又はそれ自体のPSF内部に再パッケージ化することにより、全体的な同期の範囲を拡張する。
単一の無線機器(例えば、ルート同期局)の無線範囲は限定されており、このことにより、通常は、その機器が局所的な領域を越えて機器を編成することが妨げられる。その機器の同期パラメータを再び一斉配信するように、下位のブランチ同期局に要求することにより、その単一の無線機器は、より広い区域にわたって拡散する機器の集合を同期化することが可能となる。そのコミュニティ全体が、結果的に生じる利益(例えば、サービス及び他の機器の即時の検出、より少ない電力消費)を享受する。
インフラストラクチャ要件(例えば、アクセスポイントを介した協調)を有する環境とは異なり、同期局の主要タスクは、ランデブーのパラメータを単に配布することであるため、同期局の喪失は、容易に是正される。例えば、欠落した同期局によって公表されたランデブーのスケジュールは、後継の同期局が選択される間も単純に維持されることにより、全ての機器が同期化されたまま保たれる。また、その後継の同期局は、一般的に、その同じスケジュールを維持することになる。
同期局、すなわちマスターを選択するための種々のアルゴリズムは、種々の時刻に、及び/又は種々の環境内で適用することができるが、全般的には、以下の目的のうちのいずれか、又は全てを促進するために役立つ:環境全体にわたる、マスターの均一な空間分布、環境内のマスターの調節可能な密度、及び、環境を構成する地理的エリアのサイズの制御。
本発明の幾つかの実施形態では、マスターを選択又は特定するためのアルゴリズムは、機器の様々なメトリック又は属性に基づいて、最も適切な機器が同期局として機能することを保証するように、定期的に実行される。この選択プロセスはまた、幾つの同期局がエリア内に既に存在しているか、所定のピア機器が幾つの同期局を聴取することができるか、どの程度それらの同期局が遠く離れているかなども(例えば、信号強度、又は何らかの他の距離の尺度に基づいて)、考慮することができる。
環境内の機器のグループは、より大きいデフォルトの階層とは別個に、又は並行して、それら自体の間で同期することができる。それらのグループは、例えば、ファイルを共有するか、又は共通のアプリケーションを実行するために、編成することができる。グループは、デフォルト階層を模倣して、1つ以上のブランチ同期局(又はグループマスター)を選択し、他の機器(すなわちリーフ又はスレーブ機器)が、その選択されたブランチ同期局に同期することによって、内部同期を維持することができる。グループルート同期局(又は「上位グループマスター」)は、近傍又は周囲の階層のメンバーと同期する(又は同期を試みる)ことができる。
グループの全てのメンバーを、単一の階層から選び出す必要はない。例えば、複数の階層に隣接する空間的エリア内では、グループは、それらの階層のうちの2つ以上からメンバーを選び出すことができる。
本発明の実施形態では、「デフォルト」階層は、比較的多数の機器(例えば、所定の空間的エリア内の全ての機器)を含み得る階層である。デフォルト階層のメンバーは、一致する「デフォルト」識別子を有する(かつ広告する)。「グループ」階層は、プライベートグループのメンバーから構成される。グループ階層のメンバーは、一致する「グループ」識別子を有する(かつ広告する)。
グループの全てのメンバーはまた、典型的には、デフォルト階層にも属するが、デフォルト階層の個々のメンバーは、いずれかのグループ階層のメンバーである場合も、又はメンバーではない場合もある。デフォルト識別子及びグループ識別子は、他の機器識別子(例えば、IPアドレス、MACアドレス、IMEI番号、IMSI番号)から区別可能である。
以下のセクションは、本発明の幾つかの実施形態に係る、デフォルト階層を形成するための、ピアツーピア環境内での機器の同期と、階層内での同期局又はマスターの選択と、デフォルト階層内での、又は複数のデフォルト階層にわたる、機器のグループの編成と、例示的なピア機器と、を論じるものである。
機器の同期
上述のように、本発明の幾つかの実施形態に係る、無線通信環境内での機器の同期は、それらの機器が、容易に互いを検出し、利用可能なサービスを特定し、直接的なピアツーピア通信(ユニキャスト及び/又はマルチキャスト)に従事しつつも、電力リソースを節約し、他の通信プロセスと共存することを可能にする。
同期は、機器がオンラインになるか、又は適合するプロトコルで動作している少なくとも1つの他の機器の範囲内に移動すると、直ちに開始され、それらの同期化された機器を包含する空間的エリア内で、その機器がオンラインである間は(例えば、その機器がピア機器の範囲内に存在する間は)維持することができる。
同期及びマスター選択のプロセスを通じて、機器は、自動的に階層へと編成され、この階層内では、階層の各レベル(又は層)の同期局(又はマスター)は、エリア内の機器間の同期を達成して維持するために、同期パラメータを周期的に一斉配信する。周期的同期フレーム(PSF)は、同期パラメータを配布するための1つの機構であり、同期化される全ての機器によって消費される。
周期的同期フレームは、限定するものではないが、機器のクロックを同期化するための情報、同期化される機器がその間にランデブーすることができる1つ以上の今後の可用性窓の説明、並びにそのPSFを送信したルート同期局及びブランチ同期局のメトリック又は属性などの、情報を伝達するために役立つ。本発明の他の実施形態では、PSFは、異なる情報の集合を含み得るが、通常は、少なくとも1つの可用性窓を特定する判定基準を含むものである。
階層の形成、及びその階層内での機器の同期は、限定するものではないが、最大深さ又は層、PSFの周期性、同期局の(例えば、全体及び/又は所定の機器の範囲内の)数、同期局又はマスターを選択するために使用される選択アルゴリズム、その選択アルゴリズムによって考慮される、機器のメトリック又は属性などの、構成パラメータ又は動作パラメータによって影響される場合がある。本発明の種々の実施形態では、種々のパラメータを適用することができる。
図1は、本発明の幾つかの実施形態に係る、機器間の同期を達成して維持するための、周期的同期フレームの使用を示す。
これらの実施形態では、周期的同期フレーム110(例えば、フレーム110a、110b、110n)は、1つ以上のソーシャルチャネル120(例えば、チャネル120a、120b、120n)上に、定期的に送信される。
異なる同期局は、同じソーシャルチャネル又は異なるソーシャルチャネル上に周期的同期フレームを送信することができ、いずれの所定の同期局も、1つ以上のソーシャルチャネルを使用して、そのPSFを伝達することができる。単一の環境内の異なる同期局は、恐らくは、互いに干渉することを回避するために、異なるソーシャルチャネルを使用することができるが、これは、1つのマスターによって使用されるソーシャルチャネルが、異なる目的(例えば、インフラストラクチャ接続)のために、及び/又は何らかの他の理由のために、異なるマスターによって使用中となる場合があるためである。
図1では複数のソーシャルチャネル120が示されるが、一部の実装では、1つの環境及び階層内の全てのマスター局は、同じソーシャルチャネルを使用することができる。本明細書で論じられるソーシャルチャネル及び/又は他のチャネルは、IEEE 802.11無線チャネルとすることができる。
ソーシャルチャネル120a、120b、120n上には、対応する周期的同期フレーム110a、110b、110nが、関与する同期局によって、周期的に一斉配信される。単一のチャネル上に単一の同期局によって一斉配信されるPSF(例えば、フレーム110a)のそれぞれは、それらが伝達する可用性窓のスケジュールの点などで、同一である場合もあれば、幾分異なる場合もある。
図1では、各チャネルのPSF周期(PA、PB、PN)は異なるが、複数のソーシャルチャネルが採用される、本発明の幾つかの実施形態では、2つ以上のチャネルのPSF周期を同一にすることができる。1つのチャネル上でのPSF間の例示的な周期は、約100ミリ秒とすることができる。異なる同期局は、同じPSF周期、又は異なるPSF周期を使用することができる。一部の実装では、PSF周期の長さ又は持続時間は、PSFを一斉配信する同期局の全体数(又は特定領域内の同期局の数)に反比例させることができる。
本発明の幾つかの実施形態では、PSF周期は、各ソーシャルチャネル上で異なるものとなるが、しかしながら、それらのPSFを発行する同期局の可用性窓周期は、同じものにすることができる。それゆえ、1つの階層内では、複数のPSF周期及び単一の可用性窓周期を実施することができる。
PSFを送信する場合、発行同期局又はマスターは、単に、その無線を正しいチャネルに同調させ、PSFを送信するために十分な長さで無線の電源をオンにすることのみを必要とする。その同期局は、PSFを発行した後は、そのチャネル上に留まる必要がなく、むしろ、その無線をオフにして電力を節約するか、その無線を異なるソーシャルチャネルに(例えば、異なるチャネル上にPSFを送信する準備のために)切り換えるか、又は、可用性窓に(以下で説明するように)参加すること、インフラストラクチャ通信を処理することなどの、何らかの他の目的のために、その無線を使用することができる。
本発明の異なる実施形態では、PSFは、例示的PSF 110xのエレメントの、部分集合若しくは上位集合、又は完全に異なる情報エレメントのセットを含み得る。PSF 110xの同期パラメータ(又は可用性窓パラメータ)である、チャネル130、時刻132、及び持続時間134の組み合わせは、同期化される機器がその間にランデブーすることが可能な、1つの可用性窓を定義する。チャネル130は、それらの機器がランデブーするチャネル(例えば、802.11無線チャネル)を特定し、時刻132は、それらの機器がランデブーする時刻を特定し、持続時間134は、その窓の最小持続時間を示す。
PSFの同期パラメータ又はデータは、任意数の可用性窓(ゼロ以上)を特定することができる。同じソーシャルチャネル又は異なるソーシャルチャネル上に、異なるマスターによって送信される、異なるPSFは、同じ可用性窓、又は異なる可用性窓を特定することができる。しかしながら、幾つかの実施形態では、ルート同期局によって設定される同期パラメータ(可用性窓のスケジュール又はシーケンスを含む)が、その階層全体にわたって適用される。
PSF 110xの同期パラメータの時刻エレメント132は、絶対的開始時刻(例えば、同期クロック、UTC(協定世界時)、又は何らかの他の共通基準に基づく)及び/又は相対的時刻を特定することができる。一部の実装では、タイムスタンプのフィールドが、PSF 110xを発行した局のTSF(時刻同期機能)を伝達する。
本発明の幾つかの実施形態では、時刻132は、同期している機器が可用性窓の開始時刻を計算するために使用する、複数の値を含む。これらの実施形態では、時刻132は、PSF 110xが発行同期局内部で形成され、送信のための待ち行列に登録されたとき(例えば、PSFが送信バッファ内に置かれたとき)を示すように構成される「目標の」タイムスタンプ、及び、そのPSFが局のアンテナを介して実際に発信されたときを示すように構成された「実際の」タイムスタンプを含み得る。PSFは、同期局によって「マスターオフセット」パラメータが算出される時点で、形成されたと見なされる。
このマスターオフセット値もまた、時刻132の一部、又は異なる情報エレメントとして、PSF 110x内部に含められるものであり、そのPSFを発行同期局が解放する時刻から測定される、次の可用性窓の開始に対する発行同期局の内部オフセットを表す。換言すれば、マスターオフセットは、その同期フレームを発行した局によって算出されるような、目標のタイムスタンプから可用性窓の開始までの期間を測定するものである。
これらの値を使用して、PSF 110xを発行した局を聴取するか又はその局と同期する機器は、以下のように、可用性窓の開始時刻に対するオフセットを計算することができる。
オフセット=マスターオフセット−(実際のタイムスタンプ−目標のタイムスタンプ)
それゆえ、同期している機器は、マスターオフセットを受信し、目標及び実際のタイムスタンプから、そのマスターオフセットの時間周期のうちの経過時間を測定することができ、次いで、マスターオフセットから、その経過した期間を差し引いて、可用性窓までの残りの時間量を決定する。
PSF 110xの持続時間134は、PSF 110xを発行した同期局がリッスンし、かつ通信のために利用可能となる、可用性窓の間の最小時間量を示す。この持続時間はまた、同期化される機器にも適用することができ、すなわち、その窓に参加する機器は、その窓の開始から測定される、少なくともその期間にわたって、利用可能となることが要求される場合がある。
本発明の幾つかの実施形態では、マスター機器は、少なくとも1つの局がマスター機器と通信している間は、その可用性窓を(例えば、持続時間134又は何らかの他の持続時間に適合する増分で)自動的に延長することができる。それゆえ、複数の局がマスター機器と通信することを望む場合であっても、その窓が延長されることになるため、それらの局は、別の可用性窓を待つことなく通信することが可能になり得る。
同様に、可用性窓に参加する機器は、そのピアのうちの少なくとも1つが通信に従事する間は、その機器の窓を延長することができる。それゆえ、別のピアと通信することを望む1つのピアは、可用性窓の間に、パケット、データグラム、メッセージ、又は他の通信のユニットの第1のセットを、その別のピアに、単に発行することができる。次いで、双方のピアは、アクティブな通信により、それらの窓を自動的に延長することになる。有利には、このことにより、可用性窓の間に帯域幅を飽和させるか又は独占することもなく、可用性窓の延長の間の広範なピアツーピア通信が可能となる。
可用性窓の間の、同期局の存在の最大持続時間は、PSF 110x内で指定することができ、及び/又は可用性窓の間に告知することもできる。例示的には、同期局は、異なるチャネル上にPSFを発行するために、別の通信機能用にその無線を使用するために、又は何らかの他の理由のために、その窓から撤退することが必要とされる場合がある。個々の機器に関しては、その窓内の一部の期間中に、それらの機器が通信するべきことを有さない場合、及び、その機器と通信する他の機器が存在しない場合には、それらの機器は、持続時間134の後に、可用性窓から撤退することができる。
図1に戻ると、優先度値(あるいは、マスター優先度値、又は選択値と命名される)は、マスター又は同期局となるための機器の好適性若しくは優先度を特定するために使用される値(例えば、整数)である。優先度値は、対応する機器の様々なメトリック、属性、若しくは特性、また恐らくは、通信環境又は機器の階層の特性を使用して算出される。機器の優先度値を算出するための例示的メトリックとしては、利用可能な電力リソース(例えば、バッテリー強度、AC接続)、プロセッサ負荷、信号強度などが挙げられる。
以下のセクションで説明されるように、同期化される機器の優先度値を、選択プロセスの一部として比較することにより、いずれの機器を同期局とするべきかが決定される。このプロセスは、毎回の可用性窓のシーケンスの間、又はそのシーケンスの後、固定スケジュールで、などのように、定期的に実行することができる。
PSF 110x内で、ブランチ同期優先度値136は、PSF 110xを一斉配信するブランチ同期局のマスター優先度値であり、そのデフォルト階層内で同期局となるための、その局の好適性又は優先度を示す。その優先度値を広告することによって、その局の範囲内の全ての機器は、選択プロセスを正確に適用して、例えば、それらの機器が、同期局となることに、より良好に適しているか否かを判定することができる。
同様に、ルート同期優先度値140は、PSF 110xが一斉配信されたデフォルト階層に関するルート同期局のマスター優先度値であり、同期局となるための、その局の好適性又は優先度を示す。以下で示されるように、階層全体にわたってルート同期優先度値140を伝播させることによって、その通信環境の周辺部の機器、又は複数の別個の階層に重複するエリア内の機器は、いずれの階層に加入するべきかを決定することができる。更には、同期階層内の全ての機器は、それらの機器が、ルート同期局となることに、より良好に適しているか否かを判定することができる。
ブランチ同期メトリック138は、PSF 110xを発行した同期局の様々なメトリック又は属性を含み、恐らくは、ブランチ同期優先度値136を算出するために使用されるメトリックを含む。同様に、ルート同期メトリック142は、デフォルト階層のルート同期局のメトリック又は属性を含む。上記で特定されたデータに加えて、メトリック138及び/又はメトリック142としては、局の名称及び/又はアドレス(例えば、MACアドレス)、それらの局のデフォルトのルート同期局の名称又はアドレス、タイムスタンプ、デフォルト階層内でのその局のレベル又は層(又はルートからのホップ数)、局のPSFの周期性、局によって使用されるソーシャルチャネルなどを挙げることができる。
PSF 110xが、デフォルト階層のルート同期局によって発行される場合、優先度値136、140が一致し、メトリック138、142もまた一致する。あるいは、優先度値のフィールドの一方、及びメトリックのフィールドの一方を省略することも可能である。
更には、グループ階層内で動作する同期局によって発行されるPSFは、そのグループに関連する優先度値及び/又はメトリックを伝達するための、追加的な情報エレメントを含み得る。具体的には、また以下のセクションで論じられるように、マスター選択プロセスは、デフォルト階層及びグループ階層に関して別個に実行され、それぞれに関する同期局として機能するための機器を選択又は特定する。追加的な優先度値及び/又はメトリックは、その発行局のグループに関する。
メトリック138、142が、優先度値136、140を算出するために使用されるデータを含む、本発明の幾つかの実施形態では、それらの優先度値を、周期的同期フレームから省略することができる。反対に、優先度値136、140が、PSF 110xを消費する機器によって(例えば、同期局を特定又は選択する目的のために)必要とされる全ての情報を提供する場合には、メトリック138、142を省略することができる。
同期識別子150は、PSF 110xを発行した局が関与するデフォルト階層及び/又はグループ階層に割り当てられる識別子を含む。前述のように、デフォルト識別子を使用して、領域内の全てのピア機器を包含する全体的な階層を特定することができる。グループ識別子は、機器のプライベートグループを特定することができる。他の同期識別子を、他の目的のために使用することができる。
本発明の幾つかの実施形態では、階層内の全ての機器に関するデフォルト識別子は、通常は0となり、アクセスポイント又は他のインフラストラクチャ機器との整合を維持することを望むマスター機器のみが、0以外の値を有するデフォルト識別子を使用することになる。この場合には、例えば、そのマスター機器は、所定のアルゴリズムを使用して、アクセスポイントのBSSID(基本サービスセット識別子)から、そのデフォルト識別子を得ることができる。この状況でのマスター機器は、同じアクセスポイントとの整合を同様に維持するピアとのみ、同期することが可能であり得る。
しかしながら、グループ識別子は、以下のセクションで説明されるように、グループルート同期局によって、別のグループメンバーによって、無作為に、又は何らかの他の方式で、設定することができる。0のグループ識別子は、いずれのグループのメンバーでもないことを示すために、機器によって使用することができる。それゆえ、アイドル状態のピア機器は、そのピア機器がデフォルト階層と同期化されているが、いずれのグループにも関与していないことを示す、0/0のデフォルト及びグループの識別子ペアを有し得る。プライベートグループ内でアクティブ状態であるピア機器は、通常は、0/xの識別子ペアを有し得るものであり、xは、その機器のグループによって使用される番号である。グループは、任意数のメンバーを有し得る。
一部の実装では、PSFは、図1に示すもの以外の情報エレメントを含み得る。例えば、PSFは、同期局又はマスターを選択するためのアルゴリズムを特定することができ、同期局に対する制約(例えば、互いの範囲内に存在することができる数)を指定することができ、その機器の階層に関する最大深さを広告することができ、ネットワークから局が撤退中であるという通知を提供することなどができる。
また、グループのメンバーである同期局がPSFを発行する場合、それらのフレームは、上述のグループ固有の優先度値/メトリックに加えて、又はそれらの代わりに、そのグループに固有の情報エレメントを含み得る。例えば、その局によって発行されるPSFは、その局の優先度値、グループ内でのその局のレベル又は層(又はグループのルートからのホップ数)、グループルート同期局の名称又はアドレス、グループ識別子、並びに/又は、その局が属するグループ階層及び/若しくはデフォルト階層に関連する任意の他のデータのうちの、一部又は全てを含む、グループ固有のエレメントのセットを含み得る。
同期局は、周期的同期フレームの発行までに規定の周期を有し得るが、その周期は柔軟性があり、変形態様に関して高い許容度が存在し得る。所定のPSFは、その局の無線に対する他の需要のために、通信チャネル上での競合のために、又は何らかの他の理由のために、時間が先行又は遅延される場合がある。一部の実装では、PSFは、100ミリ秒ごとに約+/−20ミリ秒で変動し得る。
周期的同期フレームは、日和見的に送信することができ、これは、同期局の無線が、通常はソーシャルチャネル上にPSFを発行する時刻に、異なるチャネルに同調されている場合には、その同期局は、その現在のチャネル上に、代わりにPSFを発行することができることを意味する。PSF一斉配信は、可能なときに、ソーシャルチャネル上での、それらの通常のスケジュールに復帰する。
PSFが、今後の可用性窓を特定するために非ソーシャルチャネル上に送信される、このタイプの状況は、機器の局所的なクラスターに極めて有用であり得る。そのような機器は、同じ(非ソーシャル)チャネル上で、同じインフラストラクチャネットワークに関連付けられる可能性が高い。このチャネル上でPSFを送信することにより、これらの機器の、チャネルの切り換え(すなわち、ソーシャルチャネルへの切り換え)のコストが節減され、それらの機器のインフラストラクチャ通信と干渉することが回避される。
最悪の場合には、同期局の通常のソーシャルチャネルに同調される新たな機器は、その同期局が異なるチャネル上でビジーである場合には、限定数のPSFを取り逃す恐れがある。しかしながら、同期局は、共通に使用される周波数(例えば、上述のような、特定の用途のために必要とされるインフラストラクチャのチャネル)に同調させることができ、それゆえ、その同じ機器に異なる時間に到達することができる。
図2は、本発明の幾つかの実施形態に係る、周期的同期フレーム内で特定された、可用性窓のシーケンスを示す図である。全ての同期局の可用性窓は、同じチャネル又は異なるチャネル上に、同じ時刻でスケジュールすることができるが、このことは、本発明の全ての実施形態で要求されるものではない。
図2の可用性窓230は、番号付けされ、繰り返しシーケンスとして遂行される。具体的には、パケット同期フレーム210は、230(0)〜230(n−1)で番号付けされたn個の可用性窓のスケジュールを明らかにする、同期パラメータを含む。1回の反復の後、可用性窓シーケンス番号(すなわち、0〜n−1)が繰り返される。周期的同期フレームは、任意数の可用性窓を定義することができる。
可用性窓の部分的シーケンス又は全シーケンスに関するスケジュールを特定することに加えて、PSFは、PSF 210のエレメント212などの情報エレメントで、いずれの可用性窓シーケンス番号が次に存在するかを特定することができる。周期的同期フレームはまた、次回の可用性窓までの残り時間を受信機器が正確に算出することを支援するための、上述のタイミング情報などの、他の情報も含み得る。
PSF内に含めることができる他の情報の中には、周期的同期フレームを送信するための発行局の周期、及びPSFが一斉配信されるチャネルがある。このことにより、ピア機器は、PSFを聴取して可用性窓のスケジュールを探知するために、そのピア機器が特定のソーシャルチャネル上でリッスンしなければならない、最大時間量を決定することが可能となる。
個別の可用性窓を特定する代わりに、一部の実装では、PSFは、可用性窓周期を報告することができ、個々の機器は、その窓がいつ発生するかを算出することができる。例えば、PSFは、次回の可用性窓に対するタイミング又はオフセット情報を提供して、発行同期局のPSF周期を報告することができる。その発行同期局をリッスンする機器は、次いで、可用性窓のシーケンスを決定することができる。PSFはまた、現在/次回の可用性窓のシーケンス番号も特定することができる。
同期局によってスケジュールされる可用性窓は、定期的な周期で発生する場合もあれば、そうではない場合もあり、その局のPSFと同期化される場合もあれば、そうではない場合もある。換言すれば、可用性窓は、PSFから同一のオフセットで発生する必要はない。可用性窓の全シーケンスが占める例示的な持続時間は、約5秒とすることができるが、本発明の実施形態の特定の実装は、より短い持続時間、又はより長い持続時間を採用することができる。
本発明の幾つかの実施形態では、周期的同期フレーム周期に関して存在するものよりも小さい、可用性窓周期に関する許容誤差が存在し、恐らくは、(PSFに関する毎秒+/−200ミリ秒と比較して)毎秒約+/−100マイクロ秒である。PSFは、極めて短い(例えば、1ミリ秒未満である)が、頻繁に発行される一方で、可用性窓は、比較的長く(例えば、50ミリ秒よりも長い)、遂行される頻度が低い(例えば、毎秒約1回)。PSFは、それらの短い持続時間のために、日和見的にスケジュールすることができるが、可用性窓は、機器の検出及び通信のために構成されるため、一般的には、日和見的にスケジュールすることができない。
頻度は低いが、可用性窓は、有意な期間にわたって無線インターフェースを独占し得るものであり、このことにより、厳密なスケジュールの順守は、特に、他の無線技術(例えば、Bluetooth(登録商標))が存在する場合には有利である。また、他の(同期化される)機器も、検出及び/又はピア通信に関して、広告された窓のスケジュールに依存しており、変形態様に関して残される余地はより少ない。
それゆえ、本発明の幾つかの実施形態では、PSF送信周期が、変形態様に関して比較的高い許容度を有する一方で、可用性窓周期は、変形態様に関して比較的低い許容度を有することになる。この方策の1つの利点は、毎回の周期的同期フレームの送信で発生する、Wi−Fi競合が許容される点である。PSF送信は、選択されたソーシャルチャネルが使用中でない場合にのみ可能であり、そのチャネル又は無線に関する競合が、PSFの発行を遅延させる場合もあれば、遅延させない場合もある。それゆえ、全てのPSF送信の厳密なスケジューリングは、達成することが困難である。
ピア機器が、最初にマスターと同期して、可用性窓に参加することを開始すると、その第1の窓(及び/又は全ての機器が参加することを要求される第1の窓)内に、その機器は、その機器自体を特定し、その優先度値を特定し、その選択メトリックを提供し、そのサービスなどを広告する、メッセージを発行することができる。次いで、その機器と通信することを望むいずれの機器も、コンタクトを取ることができる。
図2のPSF 210を介して広告されるn個の可用性窓は、2つの異なるチャネル220x、220y(すなわち、それぞれチャネルX及びチャネルY)上で遂行され、これらは通常、ソーシャルチャネルではないが、そうであることも可能である。同期局によってスケジュールされる可用性窓は、あるいは、同じチャネル上に発生させることもでき、又は3つ以上のチャネル間で分散させることもできる。
可用性窓は、ピア機器が、互いを検出し、かつ提供されるサービスを検出するための、主要機構として提供されるが、機器(同期局を含む)は、シーケンス内の1つ以上の窓をスキップすることができる。例えば、ピア機器が、可用性窓の間に、その無線を何らかの他の目的のために使用する必要がある場合には、そのピア機器は、その窓に全く参加しないことが可能であり、遅れて到着することも可能であり、又は早期に退去することも可能である。この機器は、同期局又は他の機器に、その不在を(例えば、マルチキャストメッセージを介して)報告する場合もあれば、報告しない場合もある。
本発明の幾つかの実施形態では、機器は、その機器自体に関する「存在モード」を設定し、その同期局及び/又は他のピアに、この値を広告することにより、その機器が、広告された可用性窓に同調又は参加する頻度を示すことができる。一部の実装では、存在モード(又はPM)は、1、2、4などの整数値である。機器のPMの逆数は、その機器がシーケンス内の幾つの可用性窓に参加するかを示す、分数である。例えば、機器のPM=1の場合には、その機器は、全ての可用性窓に参加し、その機器のPM=2の場合には、その機器は、2の倍数のシーケンス番号を有する全ての窓(すなわち、それらの窓の1/2)に参加し、PM=4の場合には、その機器は、シーケンス番号が4の倍数である全ての窓(すなわち、それらの窓の1/4)に参加する。
より高い存在モード値は、機器が、より多くの窓をスキップして、その無線をオフにすることにより、電力を節約することを可能にする。最終的には、シーケンス内の可用性窓の数(すなわち、図2のn)に等しい存在モードは、1回のシーケンスにつき、機器が1つのみの可用性窓に参加することを意味する。ゼロのPM値は、機器が常に(すなわち、単に可用性窓の間のみではなく)利用可能であることを示し得る。
本発明の幾つかの実施形態では、同期化される全ての機器は、その機器のマスターによって広告されるシーケンス内の、少なくとも1つの可用性窓に参加しなければならない。例えば、機器は、各シーケンスの可用性窓0の間に同期することを要求される場合がある。それゆえ、この場合には、可用性窓のシーケンスの長さに等しいPM値により、シーケンス番号0を有する可用性窓の間にのみ、その機器が存在することが示される。
可用性窓のシーケンスの長さは、一般的に、2の累乗(例えば、8、32、256)である。図2に示すように、マスターによって発行される可用性窓のシーケンス番号は、ゼロで開始して、長さ−1の値(例えば、7、31、255)に到達するまで1つずつ増大し、その後それらの番号が繰り返される。ブランチ同期局は、そのマスター(すなわち、ルート同期局又は別のブランチ同期局)の現在のシーケンス番号を採用して、(その同期フレーム内で)繰り返すことを要求される。それゆえ、1つのルート同期局の下で同期化される全ての機器は、いずれの可用性窓がシーケンス番号0を有するかについて一致する。
本発明の幾つかの実施形態では、異なる同期局によって広告される可用性窓のシーケンスは、異なる長さにすることができる。しかしながら、全てのシーケンスは、特定の存在モード値を有する全ての機器が同じ窓に参加するように、整合される。換言すれば、全ての機器は、いずれの特定の窓が所定の番号の倍数であるかについて一致する。
例えば、長さ8、16、及び64の可用性窓のシーケンスが、異なる機器のセット(例えば、異なる同期局と同期化された機器)間で使用中である、階層を考察する。8つの窓のシーケンスを実施する機器の間では、8つごとの窓が、可用性窓シーケンス番号0として知られることになる。また、それらの機器に関してシーケンス番号0を有する全ての可用性窓は、16個の窓の長さのシーケンスを有する機器に関しては、シーケンス番号0又は8を有する可用性窓として知られることになり、また、それらのシーケンス内に64個の可用性窓を有する機器に関しては、シーケンス番号0、8、16、24、32、40、48、又は56を有する可用性窓として知られることになる。
機器は、そのPMが示すよりも多くの可用性窓に参加する場合があるが、その存在モード値を(例えば、可用性窓シーケンス番号0内のマルチキャストメッセージを介して)告知することによって、他の機器は、その機器といつ相互作用することができるかを知ることになる。また、前述のように、1つの他の機器が、最大の(可用性窓シーケンスの長さに等しい)PM値を有する機器に通信を送る間は、その受信機器によって参加される窓の間に、その機器は、通信を遂行するために、そのチャネル上でのその存在を延長することになる。
更には、幾つかの実施形態では、1(又は何らかの他の閾値)よりも大きい存在モードを有するピア機器が通信を受信する場合は常に、そのピア機器は、所望の通信を円滑にするために、その存在モードを、1(又は、より低い他の値)に自動的に設定することができる。また更には、低い存在モード(例えば、ゼロ又は1)を有する機器は、1つの可用性窓内でマルチキャストフレームを受信した後、1つ以上の後続の窓内で、そのフレームを繰り返すことにより、その機器のピアにそのフレームを届けることを支援することができる。
同期局は、任意のPM値を有し得るものであり、周期的な間隔で(恐らくは、可用性窓の間でさえ)同期フレームを送信するが、同期フレームを送信していないときの可用性窓の間は、その無線を遮断するか、又は他の通信要件のために、その無線若しくはアンテナを使用することができる。
図2のPSF 210のフォーマットは、単なる例示であり、他の実装では、必要な情報(例えば、同期パラメータ)は、異なる形態で伝達することができる。例えば、可用性窓のスケジュールは、チャネル、時刻、持続時間、及び周期の組み合わせとして配布することができる。このフォーマットでは、チャネルのエレメントは、通信チャネルを特定し、時刻のエレメントは、可用性窓の開始時刻を特定し、持続時間のエレメントは、可用性窓の通常持続時間を示し、周期のエレメントは、可用性窓が遂行される周期を報告する。
本発明の幾つかの実施形態では、比較的長期間の(例えば、ファイル転送のため、ゲーム又は他のアプリケーションに従事するための)通信を遂行することを望む2つ以上のピア機器は、データ交換の目的のために、全体的な同期と並行して、ただし、スケジュールされた可用性窓の外で、又はスケジュールされた可用性窓に加えて、それら自体の同期を確立することができる。これらの実施形態では、2つ以上の機器のうちの1つは、非選択マスターの役割を担うことができ、これは、その機器が、以下のセクションで説明されるようなマスター選択プロセスに関与しないが、他の機器が(例えば、ファイル転送を遂行するため、ゲームをプレイするために)同期するために利用可能であることを意味する。非選択マスターと同期化される機器は、基本サービスセット(BSS)を形成することができる。
非選択マスターは、その非選択マスターが通信することになる他のピア機器が、その非選択マスターと同期するために使用する、同期フレームを発行することができるが、コミュニティ内の他の機器は、その同期フレームを無視する。例示的には、これらの同期フレームは、可用性窓の間に、又は合意されたチャネル上に、送信することができる。非選択マスターの同期フレームにより、その機器が非選択マスターであることを指定することができるため、その機器と直接通信することを必要としない機器は、その機器と同期するべきではないことを知ることになる。
ピアのコミュニティと同期するか又は同期を維持することを望む機器は、そうすることができない場合があるが、これは恐らくは、その機器が、そのコミュニティのソーシャルチャネルを監視することができないためか、スケジュールされた可用性窓の間に他のコミットメントを有するためか、又は何らかの他の理由のためである。この状況では、その機器は、非選択マスターとなり(かつ、その機器がいつ利用可能であるかを特定し)、他の機器がその機器を検出することを支援することができる。あるいは、その機器は、同期局に、その機器に適応するようにその同期スケジュールを変更する(例えば、その同期局の可用性窓のチャネル及び/又は時刻を変更する)ことをリクエストすることができ、又は、その機器の選択優先度値が、同期局になるべきであることを示す場合には、同期局になることができる。同期局として、特にルート同期局として、その機器は、可用性窓のスケジュールを変更することが可能である。
本発明の幾つかの実施形態では、ランデブーチャネル上での可用性窓の間に、同期局又は他の機器(例えば、非選択マスター)は、マスター指示フレーム(MIF)と呼ばれる、異なるタイプの同期フレームを一斉配信することができる。これらの実施形態では、マスター指示フレームは、定期的なPSFを発行する同期局との同期、又はデータを直接交換するために機器が同期することができる非選択マスターとの同期のいずれかを、ピア機器が達成又は維持することを支援する情報を提供する。マスター指示フレームは、可用性窓の間に送信することができるが、一般的には、例えば、ソーシャルチャネル上に発生している可用性窓の間に送信される場合を除いて、ソーシャルチャネル上に送信されることはない。
マスター指示フレームは、周期的同期フレームが含み得る任意のデータ、及び/又は他の情報を含み得る。例えば、MIFは、同期局によって、その同期局がPSFを送信するために異なるソーシャルチャネルの使用を開始することを報告するために送信される場合があり、非選択マスターによって、その非選択マスターが特定の時刻に特定のチャネル上で可用性の窓を有することを報告するために送信される場合があり、別の機器によって、その機器が何らかの他の同期局から聴取した同期データを報告するために、又はその機器の可用性を広告するために送信される場合などがある。
可用性窓が、PSFが通常(すなわち、発行同期局のPSF周期に従って)送信される時刻と重複する場合、その定期的なPSFは、可用性窓が遂行されるチャネル上に(かつソーシャルチャネル上にではなく)送信することができる。マスターのPSF周期の満了と重複しない可用性窓の間であっても、マスターは、そのマスターと同期化される機器が、定期的なPSFのためにソーシャルチャネルに同調する必要なく、必要な同期データを有することを保証するために、MIFを送信することができる。しかしながら、機器は、他のマスターを聞知するために、依然として、1つ以上のソーシャルチャネル上で周期的にリッスンすることができる。
1以外の存在モード値を有するピア機器は、全ての可用性窓に参加し得るものではないが、シーケンス番号0を有する可用性窓の間に存在することを要求され得るため、同期局は、デフォルトで、それらの窓の間はPSF又はMIFを常に一斉配信することができる。PSFは、短いが頻繁である一方で、MIFは、より長く、より低頻度であり、拡張されたサービス及び機器能力のペイロードをパックすることができる。
周期的同期フレームは、非同期機器がそれらの機器のピアと同期することを支援するために、頻繁に、通常は可用性窓の外で送信される点に、留意することができる。機器の集合が同期化された後、それらの機器は、特に、その無線の使用をより少なくすることによって電力を節約するように、その存在モードを調節している機器は、比較的まばらな可用性窓の間にのみ(又は主として)出合うことができる。同期を維持するために、これらの機器は、可用性窓の間に送信されるマスター指示フレームに依存することができる。
本発明の幾つかの実施形態では、機器は、一部の(又は全ての)可用性窓の開始時に保護期間を実施することを要求され、この保護期間の間、それらの機器はリッスンして、通信を受信することはできるが、送信は行わない。本発明の種々の実施形態では、この制約は、定期的なPSFを発行する同期局には常に適用される場合もあり、必ずしも適用されない場合もあるが、一般的に、非選択マスターには常に適用される。
図3は、本発明の幾つかの実施形態に係る、無線通信環境内での、ピアのコミュニティとの機器の同期を示す流れ図である。
動作302では、機器は、電源をオンにするか、又は環境内に入り、周期的同期フレーム(PSF)のための1つ以上の所定のソーシャルチャネル上でリッスンを開始する。PSFのデフォルトの周期性又は可能な周期性に関する情報を、その機器にプログラムすることができ、それゆえ、所定のソーシャルチャネル上に同期局によって一斉配信されるPSFを傍受するためには、限定数(例えば、1つ、2つ)のそれらの周期にわたって、その所定のソーシャルチャネル上でリッスンすることのみが必要となる場合がある。
動作304では、機器は、1つ以上のPSFを聴取して、それらの同期データを抽出する。本発明の例示的実施形態では、同じ機器階層内の同期局によって発行される全てのPSFは、同じ可用性窓のシーケンス又はスケジュールを広告する。同期局は、同じソーシャルチャネル又は異なるソーシャルチャネル上に、それらのPSFを送信することができ、同じ非ソーシャルチャネル上で可用性窓を遂行することができる。
機器が、いずれの周期的同期フレームも聴取しなかった場合には、その機器は、範囲内には同期局が存在しないと想定することができる。それゆえ、その機器は、ルート同期局の役割を担い、範囲内の他の機器を同期化するために、それ自体のPSFの発行を開始することができる。以下のセクションで説明されるように、同期局を選択するためのプロセスは、マスターとなるべき機器を特定するために、定期的に、又は更に継続的に適用することができる。
動作306では、機器は、その無線が別のアプリケーション又はサービスによって先に占有されていないと想定すると、その無線を指定のチャネルに同調させ、次回の可用性窓に参加する。参加することができない場合には、その機器は、参加が可能な次の可用性窓に参加することになるが、次の同期データのセットを受信し、そのチャネル及び開始時刻を探知するために、再びソーシャルチャネル上でリッスンすることが必要とされる場合がある。機器は、窓の次回のシーケンスの開始まで、可用性窓に参加することを延期することにより、必要とされる次回の窓(通常は、シーケンス番号0を有する窓)に同調することができる。
動作308では、可用性窓の間に、その機器が現在同期化されている同期局によって、同期フレーム(例えば、PSF又はMIF)が一斉配信される。このことにより、1つ以上のソーシャルチャネルを走査する必要性から機器を解放することができる。この同期フレームは、例示的には、可用性窓の開始時の初期保護期間又は静穏期間の間に送信することができ、その期間中は、同期局ではない機器(例えば、リーフ機器)は送信することができない。
動作310では、機器は、必要な場合又は望ましい場合には(例えば、その機器が、可用性窓の全シーケンスには参加することができない場合には)、その機器の存在モードを設定する。その機器が参加する少なくとも第1の可用性窓、及び/又はシーケンス番号0を有する第1の可用性窓の間に、その機器は、同期化される全ての機器に一斉配信されるメッセージ内で、その機器自体(例えば、アドレス、名称、サービス情報)を特定する。同時に、その機器は、その存在モードを広告することができる。
動作312では、機器は、可用性窓の間に、かつ/若しくは帯域外で、その同期化されたピアのうちの1つ以上と直接通信することができ、又はそれらの機器が、その機器と通信することもできる。上述のように、機器は、通信を円滑にするために、窓でのその機器の参加を1回以上延長することができ、その機器が(例えば、その無線を何らかの他の目的で使用するために)窓から退去しなければならない場合には、その機器のアクティブなピアに広告することになり、また、別のピアとのチャネル外での別個のランデブーを準備することができる。
本発明の幾つかの実施形態では、通信の輻輳及び衝突を低減するために、トラフィックの削減若しくは制限の処置を、一部又は全ての可用性窓の間に実施することができる。例示的には、可用性窓のシーケンスを制御する同期局は、処置をどの時点に置くかを指定することができる。一部の実装では、トラフィック削減の処置は、可用性窓の間にのみ適用され、可用性窓の延長の間には適用されない。必須の可用性窓(すなわち、シーケンス番号0を有する可用性窓)内では、トラフィック削減の処置は、必須のものとすることができる。
例として、トラフィック削減の処置は、機器が1つの可用性窓の間に送信することができるマルチキャストフレームの数(例えば、約3つ)に関して、機器を制限するために役立ち得る。ユニキャストフレームの送信もまた、制限することができる。
例えば、ユニキャスト送信は、未知の存在モード値又は1(又は何らかの他の閾値)よりも大きい値を有する機器に対して(及び/又は、それらの機器から)のみ、許容することができる。ユニキャストフレーム又はマルチキャストフレームの送信に対する制限は、ファイル転送などの限定された目的のために、それら自体の間で(例えば、非選択マスターと)同期している機器には、適用することができない。
動作314では、機器は、ソーシャルチャネル上でPSFをリッスンする必要がない場合、又は可用性窓に参加する必要がない場合、その無線の電源をオフにすることができる。
図3に示す本発明の方法は、単なる例示であり、本発明の他の実施形態に係る方法を限定するものではない。
上述のように、2つ以上のピアは、いずれかの可用性窓の外で、又は可用性窓に加えて、それら自体の同期に従事することができる。例えば、それらのピアのうちの1つは、非選択マスターの役割を担い、可用性窓の間に、マスター指示フレーム又は他の同期フレームを発行して、その非選択マスターのピアに、それらのピアが、その非選択マスターといつどこで同期することができるか(すなわち、時刻及びチャネル)について、報告することができる。
しかしながら、1つのピアが、同期することなく、別のピアとの短い通信の交換を望む場合がある。例えば、1つの階層と同期化された機器が、異なる(例えば、隣接する)階層内で同期化されたピアによって提供されるサービスを検出することを望む場合があり、隣接ピアにポーリングすることを望む場合などがある。少なくとも最初は、それらの機器は、重要な(例えば、ファイル転送と同様の)データ交換に従事することを目的とはしない。本発明の幾つかの実施形態は、帯域外の問い合わせ及び応答の形態で、この能力を提供する。
より具体的には、第1のピアは、隣接する階層の同期フレームを聴取することにより、その可用性窓のスケジュールを探知することができる。可能な場合には、そのピアは、隣接する階層の可用性窓のうちの1つ以上に参加することにより、他の機器を検出することができ、また、それらの隣接する機器のうちの1つ以上に、帯域外のフレームを送信することができる。
図4は、本発明の幾つかの実施形態に係る、帯域外交換を示す図である。上述の周期的同期フレームのタイミングと同様に、送信機器は、送信のための問い合わせを解放又は調製する時刻と、その問い合わせが実際に送信される時刻との間の、その機器自体の内部で生じる遅延を考慮しなければならない。
問い合わせタイムライン410は、問い合わせ機器でのアクティビティを反映し、その一方で、応答タイムライン430は、応答機器でのアクティビティを反映する。問い合わせを発行する場合、問い合わせ機器は、応答機器が、その問い合わせを受信し、処理し、反応するための時間を有するように、好適な問い合わせ有効期間450を選択しなければならない。
この例示的な問い合わせ及び応答では、問い合わせは、目標送信時間412での機器からの送信のために、待ち行列に登録される。アンテナ又は媒体に対する競合、及び/又は他の遅延(図4では、競合414として一括して表される)のために、この問い合わせは、実際の送信時間416まで、物理的に送信されない。
滞留時間418は、問い合わせ有効期間の残部であり、この間に、応答機器は、問い合わせを受信し、その応答を生成して送信しなければならない。滞留時間418の持続時間は、問い合わせ機器によって設定された問い合わせ有効期間、及び競合414の持続時間に応じて決定される。応答機器もまた、その機器の目標送信時間432と実際の送信時間436との間の、応答の遅延を経験し得るものであり、この遅延は、競合434として表される。
問い合わせは、(帯域外の問い合わせでは)関連する時間パラメータ(例えば、問い合わせ有効期間、目標送信時間、実際の送信時間、競合)のうちの、いずれか又は全てを特定することができ、それにより、応答機器は、その問い合わせが満了する前に応答することが可能であるか否かを、判定することができる。可能ではない場合には、その機器は、問い合わせを取り下げるか、又はその応答を中止することができる。問い合わせ機器が、問い合わせ有効期間中に応答を受信しない場合には、その機器は、再試行するか(例えば、より長い有効期間で)、問い合わせを破棄するか、又は他の処置を取ることができる。
本発明の幾つかの実施形態では、ピア機器は、そのピア機器が聴取することはできるが、同期化されていない同期局に対して、その同期局及びその局に同期化されている機器によって提供されるサービスを特定するために、帯域外の問い合わせを発行することができる。一部の実装では、その機器は、その機器の同期化されたピアに対して、それらの可用性窓のうちの1つ以上の間などに、他の同期局に関する情報を中継することができる。明らかにすることができる別の同期局(又は他のピア機器)についての情報としては、その同期局が監視するソーシャルチャネル、その可用性窓(例えば、時刻、チャネル、周期)、マスターオフセット、提供するサービス、アドレスなどのものを挙げることができる。それゆえ、帯域外の問い合わせは、その問い合わせの送信側の階層に機器が同期することを可能にし得る点で、準PSF又は準MIFとして機能することができる。
一部の非同期マスター(例えば、リーフ機器又は下位のマスターが同期していない、同期局)は、低電力の動作モードを採用することができる。この低電力の動作モードは、その局の同期フレーム内で示されることができ、あるいは、可用性窓のシーケンス若しくはスケジュール、及び/又は同期フレーム内で広告される存在モードによって、推定することができる。
1つのそのような動作モードでは、非同期マスターは、依然として周期的同期フレームを送信することができるが、長い周期(例えば、複数秒)を有する短い可用性窓を提供する。この可用性窓の、短い、まばらな性質により、非同期マスターによって提供されるサービスをピアが検出するために、ある程度の時間がかかる場合がある。
本発明の幾つかの実施形態に係る、通信環境内でのピアの同期の間に、ピア機器が階層へと編成される際、リーフ(又はスレーブ)機器は、範囲内のブランチ同期局と同期し、それらの局(及び恐らくは、他のリーフ機器)は、より高位のブランチ同期局と同期する、などとなり、1つのルート同期局が、その環境全体に同期情報を提供する。リーフ機器は、ルート同期局が範囲内に存在する場合には、そのルート同期局と直接同期することができる。
環境内の機器の動作パラメータは、その機器の階層の最大深さを指定することができ、この最大深さは、同期局のレベル又は層の数として定義することができる。ルート同期局の位置は、層ゼロとして定義され、ブランチ同期局は、1〜Dで番号付けられた層内に存在し、Dは、同期局が存在することができる最大の層である。
デフォルトでは、階層が編成されている間、ピア機器は、リーフとしての位置に落ち着くまで、周期的同期フレームを発行することができ、その時点で、PSFの送信を停止する。機器は、適用可能な選択アルゴリズムが、その機器の範囲内に同期局が存在しない場合を除いてさもなければその機器を同期局とすることが可能な場合であっても、リーフとなることを選択することができる。範囲内に同期局が存在しない場合には、その機器は、その役割を担わなければならない。
全てのマスターは、それらのエリア内の同期を維持するために、継続してPSFを発行し、階層内でのそのマスターのレベルの関数、すなわち層の関数である周期性で、そうすることができる。例えば、層0のルート同期局は、約100ミリ秒(ms)ごとにPSFを発行することができ、層1のブランチ同期局は、約150msごとにPSFを発行することができ、層2のブランチ同期局は、500msごとにPSFを発行することができる、などである。これらの値は単なる例示であり、PSF周期の持続時間を、決して限定又は制限するものではなく、異なる層内の同期局が、同じ周期を採用する場合もあり、同じ層内の同期局が、異なる周期を採用する場合もある。
マスターの層は、通常は、そのPSF内で報告される。この情報により、リッスンする機器は、その環境のその機器のエリア内での、階層の深さを決定することが可能となる。その深さ及び/又は他の情報(例えば、PSFを発行していることをその機器が聴取することができる同期局の数、最大階層深さ)に応じて、その機器は、その機器がリーフとなるべきであること、又は、継続してPSFを発行し、同期局のまま留まるべきであることを、決定することが可能になり得る。
階層の最大深さパラメータは、機器内にプログラムすることができ、及び/又は、周期的同期フレーム内で広告することもできる。同期局の最大数、同期局は、閾値数以下の他のマスターを(例えば、特定の範囲内で、特定の層で、全体で)聴取することができる間のみ、その役割を継続するという要件などの、他の制約も課すことができる。
例えば、階層の最大深さがDである場合、層S≧1(すなわち、ルートを除く全ての層)に位置する同期局は、層S内でD−Sの他の同期局が動作していることを、聴取することのみが可能であり、(それらの他のマスターが、より高い又はより良好な選択優先度値を有すると想定して)依然として同期局としての役割を果たし続けることができる。この規定は、ルート同期局の近傍での、より高レベルのブランチ同期局の集中、及び、より遠く離れたブランチ同期局の拡散を可能にし得る。
本発明の幾つかの実施形態では、選択アルゴリズム又はプロセスは、さもなければ優先度を与えられる別の機器よりも、現任の同期局を保持することを選択する場合があるが、ただし、その別の機器の選択優先度値が、現任の選択優先度値を閾値で超過する場合を除く。このことは、同期局のスラッシング又は過度の切り換えを回避するために役立ち得る。しかしながら、同期局の主要タスクは、単に同期データを一斉配信することであるため、同期局の切り換えは、その階層又は個々の機器に、高いトランザクションコストを課すものではない。
本発明の幾つかの実施形態では、機器は、その機器が聴取可能な最良の同期局(すなわち、最も高い優先度値を有する同期局)、又は、その機器が所定の範囲内で聴取可能な最良の(例えば、特定の閾値を超える信号強度を有する)同期局と同期する。
機器が環境内でオンラインになり、PSFをリッスンするとき、その機器が、階層の最深又は最大の層のブランチ同期局からのみ聴取する場合には、その機器は、その局にリーフとして同期することができる。しかしながら、その機器がまた、(例えば、周期的同期フレーム内で広告されるルート同期局の属性によって決定されるような)異なる階層内の別の同期局も聴取することができる場合には、その機器は、その別の同期局が、最大の深さ若しくは層に存在しない場合、又は、その別の同期局が、より良好な選択優先度値を有する場合には、その階層に加入することを優先する場合がある。
階層内の比較的深い(例えば、高い層の値の)他の機器を聴取することのみが可能な機器は、その機器が環境の周辺部に存在していると判定することが可能になり得る。他の機器の殆ど又は全てが、既に最大深さに存在している場合には、特に、高い優先度値を有する機器が現れる場合には、新たな階層が生成される可能性がある。
新たな環境/階層はまた、既存の1つが、過度に大きい空間的エリアに広がる場合にも、生成される可能性がある。例えば、階層の深さの組み合わせ、どの程度ピア機器が近接しているかの尺度、及び/又は他の因子が、新たな階層を生成する原因となり得る。以下のセクションで論じられるように、ピア間で検出される信号強度は、どの程度ピアが近接しているかを判定する1つの方法であり得る。
比較的近接するマスターとのみ同期するようにピアに要求することにより、その階層を比較的コンパクトにさせることができる。対照的に、ツリーの最大深さに対する高い限定は、その階層がより大きいエリアを有効範囲とすることを可能にし得る。これら(及び/又は他のパラメータ)を調節することによって、好適な階層を形成することができる。
階層を構成するための種々のパラメータは、機器の密度、通信負荷、及び/又は他の因子に応じて、種々の環境に適合される。例えば、負荷が比較的軽い(例えば、機器が低電力センサである)場合には、隠れ端末問題に関連する欠点を限定するべきであり、比較的深い(例えば、約10〜15のレベルの)階層を実施することができる。また、まばらな環境内では、以下で説明される同期局を選択するためのプロセスは、より迅速に解決される。
隠れ端末問題とは、互いの範囲内に存在しない複数の機器が、共通のピアと通信することを試みるシナリオを指す。それらの機器は、互いの送信を聴取することができないため、それらの送信を回避することができず、それらの機器の、共通のピアに対する通信が衝突する恐れがある。このことは、比較的短い期間の間に(すなわち、可用性窓の内部で)通信する必要性によって激化する場合があるが、軽負荷は、この問題を軽減する助けとなり、より重い負荷を有する高密度の環境内で可能な階層よりも、深い階層を可能にし得る。
本明細書で説明される同期の方法を使用しない場合には、環境内の全ての機器を検出するために必要な、検出フレームの総数は、機器の数の2乗に近づく可能性がある(すなわち、各機器は、他の全ての機器に、少なくとも1つのフレームを送信することが必要となる場合がある)。これらのフレームは、不規則な時刻に、任意のチャネル上に送信される。
対照的に、本発明の実施形態によって提供される集団同期は、機器(すなわち、同期局)の選択セットからの定期的な送信に基づく同期を可能にし、かつ良好に拡張される。完全な同期環境内では、全ての機器が互いを検出するために必要なフレームの数は、機器の数に比例する。シーケンス番号0を有する可用性窓の間に一斉配信される、1つの検出フレームは、範囲内の全ての他の機器に到達する。
同期局の選択
本発明の種々の実施形態では、いずれのピア機器を同期局(別名、マスター)とするべきかを決定するために、種々のアルゴリズムを適用することができる。所定の環境内で適用されるアルゴリズムは、通常は対称的なものであり、これは、全ての機器が、その機器自体及びそのピアに関する同じデータ、並びにそれらのデータに関する同じ判定基準を使用するため、全ての機器が、いずれの機器をルート同期局とするべきかに関して、及び、いずれの他の機器をブランチ同期局とするべきかに関して、同じ結論に達することを意味する。幾つかの実施形態では、指定の選択アルゴリズムは、各可用性窓(及びその窓の延長)の前に、その間に、若しくはその後に、又は、何らかの設定可能な数の可用性窓の後に、実行される。
前述のセクションで説明されたように、同期局を選択する際に重要な役割を果たし得る1つの機器パラメータは、同期局、すなわちマスターとなるための、その機器に関する優先度を示すマスター優先度値である。
各機器の優先度値は、その機器の同じメトリック(「選択メトリック」)又は属性を使用して、同じ方式で導き出される。例示的な選択メトリックとしては、有能電力(例えば、バッテリー強度)、その機器がAC(交流)電源に接続されているか否か、機器のタイプ、機器構成(例えば、機構、リソース)、アプリケーション又はユーティリティが機器の無線の使用を必要とするか否か(及び、それらの数)、その機器が複数のアンテナ及び送受信機を有するか否か、その機器が複数の帯域(例えば、2.4GHz及び5GHz)で動作することが可能か否か、プロセッサ負荷、送信の競合、存在モードなどが挙げられる。
単純な実装では、機器の優先度値は、その機器の残りのバッテリー電力に比例する整数値とすることができる。特定の高い値は、その機器がAC電源に接続されていることを示し得る。複数の機器の優先度値間での同点は、それらの機器の、ネットワーク(例えば、MAC)アドレス、IMSI(国際移動体加入者識別番号)、IMEI(国際移動体装置識別番号)、又は何らかの他の固有の特性を比較することによって、解決することができる。
一部の実装では、機器は、それらの機器の優先度値のみを互いに通信する場合があるが、優先度値を算出するために使用される選択メトリックもまた通信するか、又は優先度値の代わりに通信することができる。前述のように、階層のルート同期局の優先度値及び/又は選択メトリックは、全ての周期的同期フレーム内に含めることができ、ブランチ同期局のデータは、そのブランチ同期局が発行するPSF内に含めることができ、リーフ機器のデータは、可用性窓の間に告知することができる。
本発明の幾つかの実施形態では、最も高い優先度値を有するピア機器が、その環境のデフォルト階層のルート同期局になる。ブランチ同期局もまた、同期のエリアを拡大するように選択することができ、他のピアは、リーフ機器(又はスレーブ)となる。ルート同期局を除く全ての機器は、ルート同期局、又は他の同期局のうちの1つのいずれかに同期する。
本発明の幾つかの実施形態では、階層内の特定の層で展開されることに加えて、他のピア機器は、所定の機器に関連して、それらのピア機器がその機器に物理的に近接している程度によって、分類することができる。例えば、一実装では、所定の機器は、その機器が聴取することができるピア機器を、「近接範囲」、「中間範囲」、又は「遠隔範囲」の、3つの範囲のうちの1つに分類することができる。
範囲の測定値又は推定値は、受信信号強度表示(RSSI)及び/又は他の距離の表示(例えば、GPSデータ)から導き出すことができる。例示として、限定するものではないが、「近接範囲」は、約5メートルとして定義することができ、「中間範囲」は、約10メートルとして定義することができ、「遠隔範囲」は、約15メートル以上として定義することができる。
他の範囲(3つよりも多いか又は少ない)を、他の実装で使用することができる。例えば、機器は、上記の近接範囲、中間範囲、若しくは遠隔範囲の推定値のうちの1つ、又は何らかの他の範囲、又は信号強度に対応し得る、1つのみの範囲を考察することができる。境界条件を回避するために、ピア機器は、少なくとも、選択プロセスで考察されるための閾値RSSIで、聴取されることが必要とされる場合がある。
選択プロセスは、毎回の可用性窓の後(又は可用性窓の間)、可用性窓の毎回の完全シーケンスの後、又は何らかの他のスケジュールなどで、定期的に運用することができる。グループのメンバーである機器は、そのグループ階層と、そのデフォルト階層とに関して、選択プロセスを別個に実行することができる。例えば、その機器は、最初に、グループ内で適切な選択プロセスを実行して、その機器の役割/位置を見出し、次いで、デフォルト階層内で、その選択プロセスを再度実行して、その機器の役割/位置を決定することができる。この2つのプロセスは、同じものとすることができ、又は幾分異なるものとすることもできる。
その機器がマスター選択プロセスを実行すると、同期通信環境に入る新たな機器が、既存の同期局に取って代わる場合があり、階層内のリーフ又は下位のブランチ同期局である機器が、(例えば、より良好な優先度値を有する他の機器が撤退したため)繰り上がる場合があり、別の機器が、ブランチ同期局であることからリーフであることへと繰り下がる場合などがある。
機器が、階層内でリーフ又は同期局としての位置を取得した後、その機器は、継続して同期フレームをリッスンし、その機器が、それらのフレームを送信する局よりも、同期局となることに良好に適しているか否かを判定する。例えば、その機器は、機器の優先度値又は選択メトリックを、継続的に収集して処理することにより、他の機器が、その機器自体よりも、同期局となることに良好に適しているか否かを、判定することができる。
機器が、種々のピアからの同期フレームを聴取する場合、その機器は、その機器が聴取し、及び/又はフレーム内で特定される、マスターのリストを構築することができる。このことにより、機器は、その機器がマスターとなり、同期フレームの発行を開始するべきか否かを、周期的に判定することが可能となる。そのような判定は、その機器の優先度値(又は選択メトリック)と他の機器のそれらの値との比較、その機器が幾つのマスターを聴取するか、どの程度それらのマスター機器が遠く離れているか、及び/又は他の因子に応じて決定することができる。
図5Aは、本発明の幾つかの実施形態に係る、単一のデフォルト階層内で同期局を選択して同期することができるピア通信機器の集合を示す。図示のシナリオでは、ピア機器510は、同時に、若しくはほぼ同時に、オンラインになるか、又はそれらの環境に入ることにより、全ての機器は、その階層内でのそれらの機器自体に関する好適な位置を、ほぼ同時に決定することが要求される。
機器510a〜510jがオンラインになると、それらの機器は、少なくとも1つの指定されたソーシャルチャネル上でリッスンすることになる。このチャネルは、機器のファームウェア内にプログラムされる場合もあり、サービスプロバイダーによって、プロビジョニングプロセスの一部としてプログラムされる場合もあり、又は何らかの他の方式で、その機器に知らせることもできる。
それらの各機器は、1つの既知又はデフォルトのPSF周期(例えば、100ms)以上の持続時間にわたってリッスンし、その間に、同期局(ブランチ又はルート)が、通常は、(存在する場合には)1つの周期的同期フレームを一斉配信する。機器510の出現の前には、図示の環境内に他の機器は存在しなかったため、それらの機器はPSFを聴取しない。一部の実装では、機器は、同期局が存在しないと想定する前に、複数の異なるソーシャルチャネル上でリッスンすることができ、及び/又は、より長時間(例えば、複数のPSF周期)にわたってリッスンすることができる。
マスター機器が検出されないため、それらの機器は、全て、それらの機器が同期局としての機能を果たすべきであることを、ほぼ同時に判断し、それゆえ、それらの機器は、全て、PSFの発行を開始する。前述のセクションで説明されたように、PSFは、1つ以上の可用性窓のシーケンスを広告し、いずれの層でそれらが動作しているか(この場合は、層ゼロ又はルート)を指定し、それらのデフォルト識別子及びグループ識別子を報告し、また、発行元の優先度値及び/又は選択メトリックも提供する。
本発明の実施形態を説明する目的のために、図5Aでは、機器510fが、最良の(例えば、最も高い)優先度値を有するものであり、その次が、機器510dである。階層の最大深さは2であり、これは、2つのレベル又は層のマスター、すなわち、(層0の)ルート同期局、及び、その下の(層1の)1つのレベルのブランチ同期局のみが存在することを意味する。全ての他のピアは、それらの同期局に同期化されるリーフ機器となる。
それらの機器の全てがPSFを発行することにより、全ての機器は、少なくとも1つのピアの周期的同期フレームを検出する。衝突、干渉、及び再送信にも関わらず、各機器は、同期局として機能しているか又は機能することを試みているピアが存在することを認識することになる。
各機器は、その優先度値、他のピアの優先度値、及び/又は他の因子に応じて、PSFの発行を継続するか、あるいは停止するかのいずれかとなる。同期フレームを一斉配信する全ての機器が、それらの優先度値(又はそれらの選択メトリック)を報告するため、それらの機器を容易に比較して、いずれを同期局とするべきかを決定することができる。
図5Aの実施形態では、機器は、閾値数の同期局を(例えば、全体で、特定の層内で、特定の範囲内で)聴取した場合には、特に、これらの他の機器が、より良好な又はより高いマスター優先度値を有する場合には、PSFの発行を自動的に中止するように、プログラムすることができる。具体的には、全ての機器は、それらの機器が第1のマスターであると想定していたため、それらのPSFは、それらの機器が層0(すなわち、ルート)に存在することを示す。そのレベルでの同期局の閾値は、1である(すなわち、1つのみのルート同期局が存在することができる)ように構成されるため、機器が、より良好な優先度値を有する、層0で動作しているピアから1つのPSFを聴取する場合には、その機器は、直ちにPSFの発行を停止するべきである。
しかしながら、上述のように、本発明の幾つかの実施形態では、機器は、その機器が更に遠くを調べる前に、それらの機器に近接する同期局と最初に同期する。それゆえ、それらの機器は、最初は、それら自体(それらの選択メトリック又はマスター優先度値)と、近接範囲内(例えば、5メートル以内)に存在するとして、それらの機器が(例えば、RSSIに基づいて)検出する機器とのみを、比較することができる。
マスター選択アルゴリズム又はプロセスは、複数の範囲のそれぞれの内部の、同期局の最大数を提供することができる。第1の範囲(例えば、「近接」範囲)内で、ルート同期局(又は、上位マスター機器)となるために競合する機器は、その範囲に関する同期局の最大数(すなわち、1つ)を満たすか又は超過する、その範囲内のより適格な機器の数を認識すると、競合を中止することになる(かつ、同期フレームの一斉配信を停止する)。同様に、第2の範囲(例えば、「遠隔」範囲)内で、ルート同期局となるために競合する機器は、その範囲に関する同期局の最大数(すなわち、同じく1つ)を満たすか又は超過する、その範囲内のより適格な機器の数を認識すると、中止することになる。
最初に「近接」マスターと同期することによって、その環境は、少なくとも初期には、局所的クラスターへと集結する傾向がある。このことは、干渉を低減するために役立ち得るものであり、また、機器のユーザが、多くの場合は、より遠く離れた誰かよりも、そのユーザに近接する別のユーザとデータを共有している、現実的な状況も反映する。引き続き、より外側を調べることによって、機器のクラスターは、より大きい環境を検出して同期することができる。
図5Aに示す環境では、2つの範囲、すなわち「近接」及び「遠隔」が考察される。前述のように、近接又は遠隔に存在するものとしての、機器の分類は、2つの機器間の信号の強度及び/又は他の因子に応じて決定することができる。他の実施形態では、他の範囲を考察することができる。
図5Aでは、「近接」範囲環が、最良のマスター優先度値を有する2つの機器(機器510f、510d)に関して示される。この近接範囲環はまた、同期局になることがない例示的機器である、機器510aに関しても示される。
上記の説明を踏まえると、全ての機器は、1つのみのルート同期局が(層0で)存在可能であることを理解しているため、それらの機器は、より高い優先度値を有する機器が、近接範囲内に存在する場合には、全てが、PSFの発行を中止する。このことは、それらの機器の対応する近接範囲内で、機器510f及び510dのみが、周期的同期フレームの発行を継続し、それゆえ、それぞれが、それ自体の近接範囲内でルート同期局になることを意味する。それゆえ、この例示的シナリオでは、少なくとも2つの別個のデフォルト階層が、一方は機器510fをルートとし、一方は機器510dをルートとして一時的に存在する。間もなく示されるように、それらの階層は、融合することになる。
これらの2つのルート同期局の範囲内の他の機器は、それらのルート同期局に同期して、それらの可用性窓に参加することを開始することができる。双方のルート同期局の近接範囲内に存在する機器510iは、機器510fに同期するが、これは、その機器510fが、機器510dよりも良好なマスター優先度値を広告するためであることに留意されたい。
この時点で、各機器は、そのルート同期局を認識しているため、レベル0のマスターではない各機器は、層1でマスターとなることを入札するべきか否かを判定することができる。この判定は、階層の最大深さ、その機器がそのレベルで聴取する他のマスター候補の数(存在する場合)、その機器がどの程度それらの他のマスター候補に近接しているか、それらの機器の優先度値などの因子に応じて行うことができる。
図5A〜Dに示される本発明の実施形態では、環境に関する動作パラメータ又は構成パラメータは、所定の層又はレベルで、機器が、より良好な選択優先度値を有する、その層の他の同期局の、何らかの閾値を聴取することができる場合を除いて、別の同期局が必要であること(及び、その機器がその位置の候補であること)を想定するように、命じることができる。
図5A〜Dに示す実施例では、層1で、かつ階層の最大深さが2(例えば、層0及び層1の、同期局の2つの層)である場合、恐らくは、機器は、その層でいずれの他の機器も(又は、特定の範囲内のいずれの他のブランチ同期局も)聴取しない場合にのみ、層1のブランチ同期局になることを入札することができる。換言すれば、いずれの他の機器の範囲内でも、層1には1つのみのブランチ同期局が存在することができる。層1の同期局からPSFを聴取するいずれの機器も、その機器が聴取するその同期局が、より高いマスター優先度値を有する間は、その機器自体のPSFの送信、及び層1内のマスター機器になるための入札を辞退することになる。
それゆえ、図5Aでは、機器510f及び510d以外の一部の機器は、それらのルート同期局(510f、510d)と同じ可用性窓を広告するが、それら自体の層(すなわち、1)及びそれらの機器の優先度値を報告する、PSFを発行する。これらのピアのPSFを聴取する機器は、それらの優先度値が劣る場合には、レベル1のマスターになるための、それら自体の入札を中断するが、それらの優先度値が勝る場合には、継続することになる。
それゆえ、機器510g、510h、510iのうちの少なくとも1つは、ルート同期局510fの下で、層1のブランチ同期局になる。同様に、機器510a、510b、510c、510eのうちの少なくとも1つは、機器510dの下で、層1のブランチ同期局になる。それらの機器が、現在は、近接範囲のマスターのみを選択しているため、また、それらのピア間の距離のために、2つ以上の層1のブランチ同期局が、別個の階層内で実際に選択されることになる。
ルート同期局に対して近接範囲内に存在するが、不十分なマスター優先度を有する他の機器は、リーフ機器(又はスレーブ)となり、同期局と同期化されたまま維持される。層1のブランチ同期局は、その階層の範囲を拡張して、より多くの機器を同期化させるために役立つ。
例えば、機器510f及び機器510dの双方に関する近接範囲を越えて存在する、機器510jは、その機器自体の単一ノードの階層を確立している場合がある。全ての機器510が、同時にオンラインとなり、それら自体をルート同期局として指名するPSFの発行を開始したことが、思い起こされるであろう。機器510jが、その機器に近接するいずれの機器(例えば、機器510a、510h)よりも高いマスター優先度値を有すると想定すると、それらの機器が他の機器に従い、PSFの発行を中止した後であっても、その機器は、同期局として機能し続けることになる。機器510jの優先度値が、機器510d及び510fの優先度値よりも低いと更に想定すると、近接する機器(例えば、機器510a、510h)は、機器510jとではなく、機器510d及び510fと同期することになる。それゆえ、機器510jは、それ自体の環境及び階層を一時的に形成する。
ここで、機器510a、510hのいずれか又は双方が、層1のマスターになる場合には、それらの機器は、それらの機器のルート同期局の優先度値を広告するPSFの発行を開始する。機器510jは、それらのPSFを聴取して、「より良好な」ルート同期局をルートとする階層が、範囲内に存在することを理解し、それゆえ、その最良のルート同期局を広告する機器(すなわち、510h及び510aの双方を聴取することができる場合には、機器510h)と同期する。
このシナリオにより、機器(例えば、機器510j)は、その機器が、ピアのマスターを直接聴取できない場合には、又は、そのマスターが、その機器が現在リッスンしている範囲を超えて存在する場合には、より低いマスター優先度値を有するピア(例えば、機器510h)と同期し、そのピアの下でリーフになることが示される。このリーフ機器が、更に遠くを(例えば、「遠隔」範囲まで)調べるように構成されている場合には、そのリーフ機器は、その遠隔範囲の同期局に、又は完全に異なる機器に、直接同期することができる。あるいは、それ自体の1つのノードの階層の、ルート同期局として機能しつつ、機器510jは、より良好な遠隔範囲の同期局をリッスンすることを開始して、機器510fと直接同期することもできる。
本発明の幾つかの実施形態では、機器が、同期局になるように試みることを中止するべきか否かを決定するとき、機器が現在聴取することができる同期局の数を考慮することに加えて、それらの同期局の範囲もまた、考慮することができる。例えば、また上述のように、ピア機器が、周期的同期フレームの発行を停止して、より良好な優先度値を有する近接範囲のピアに従うことができるのは、そのピア機器が、第1の閾値数(例えば、1)の、そのようなピアを聴取する場合である。これらの実施形態では、ピア機器はまた、より良好な近接範囲の同期局が聴取されない場合であっても、より良好なマスター優先度値(例えば、3)を有する、第2の閾値の遠隔範囲のピア機器を聴取する場合には、PSFの発行を停止することができる。
図5Bは、本発明の幾つかの実施形態に係る、図5Aに示す近接範囲の同期及びマスター機器の選択から生じ得る、階層の図である。線分は同期を表し、矢印は、PSFを発行し、かつ可用性窓を管理している、同期局を指し示す。
複数の機器が、層1のブランチ同期局として機能し、PSFを送信している可能性があるが、図5Bでは、それらのうちの1つ(機器510h)のみが、そのルート同期局の範囲を越えて、その階層を実際に拡張している。図5Bに示す機器の同期及び編成は、全ての機器がオンラインになった時間から約1秒で、又は1つの可用性窓で、決定することができる。全てのピアが、適切な役割及び層に定まるために必要とされる持続時間は、機器の数、マスター選択アルゴリズムが実行される可用性窓の頻度及び持続時間、並びに/又は他の因子に応じて、実装ごとに異なるものとなる。
本発明の幾つかの実施形態では、図5Bに示すような同期ツリー又は階層は、経路指定の目的のために使用されることを意図するものではなく、ピアツーピア方式で、直接通信することができるように、エリア内で機器を同期化することを意図するものである。
近接範囲での同期の後、本発明の例示的実施形態では、ルート同期局(すなわち、レベル0のルート同期局である、機器510f、510d)は、その時点で、更に遠くを調べて、異なる同期局に同期するべきか否かを判定する。例示の目的のために、「遠隔」範囲は、近接範囲の距離の約2倍であると想定することができる。
幾つかの他の実施形態では、全ての同期局は、より長い範囲で機器をリッスンし、リーフ機器は、近接範囲に焦点を置いたまま維持される。それらの機器が、近接範囲内で同期局になるためには不十分な優先度値を有する場合には、より長い範囲の同期局になるべきか否かを判定する労力を、それらの機器に費やさせる理由は殆どない。更に他の実施形態では、全ての機器が、より長い範囲で機器をリッスンすることができる。
図5Cは、遠隔範囲のマスター選択及び同期が開始する場合の、図5Aの機器を示す。図5Cでは、完全な範囲環は示されないが、機器510fの遠隔範囲は、機器510b、510cを除く全ての機器を包含し、機器510dの遠隔範囲は、機器510gを除く全ての機器を含むことを、想定することができる。それゆえ、全ての機器は、それら2つの上位機器の少なくとも一方の、遠隔範囲の内部に存在する。
ルート同期局510fは、遠隔範囲であっても、より高いマスター優先度を有する同期局を報告する、いずれの同期フレームも聴取することがないため、PSFの発行、及びその可用性窓のシーケンスの広告を、衰えることなく継続する。しかしながら、ルート同期局510dは、より良好なマスター優先度値を機器510fが有することを、素早く探知する。機器510dは、機器510fのPSFから直接、又は、ルート同期局510fの下で層1のブランチ同期局として機能する機器510h、510iの一方によって発行されるPSFから、このことを探知することができる。
しかしながら、機器510dは、層1のブランチ同期局となることにより良好に適している、範囲内のいずれの機器も聴取することがないため、ルート同期局510fによって命じられる可用性窓のスケジュールを広告し、その機器の層1内での位置を告知し、その機器自体の優先度値及び機器510fの優先度値を報告する、PSFの発行を開始する。
機器510dの近接範囲内の、層1のブランチ同期局として機能していたかもしれない他の機器は、機器510dを聴取して、レベル1のブランチ同期局としてのPSFの発行を停止することになるが、これは、機器510dが、ルート同期局510fによってのみ超過される、2番目に高いマスター優先度値を有するためであり、かつ、それらの機器がマスターとして機能することを中止しなければならない、より良好なマスターの閾値数が、1であるためである。この例示的実施形態では、階層の最大深さが2(すなわち、層0及び層1)であるため、層2にはいずれのマスターも存在することがない。
機器510a、510b、510c、510eは、リーフ機器として、機器510dに同期化されたまま維持される(それらの機器のうちのいずれも、マスターとなり得ない)が、機器510fによって公表され、この時点で機器510dによって広告される、新たな可用性窓のスケジュールを順守することになる。本発明の例示的実施形態では、機器510a、510b、510c、510eは、それらのうちのいずれもルート同期局ではなかったため、遠隔範囲の機器をリッスンすることがなく、それゆえ、それらの機器は、機器510fとは直接同期しない。それらの機器が、最良の遠隔範囲の同期局をリッスンする他の実施形態では、それらは、機器510fと直接同期することができる。
機器510jは、レベル1のブランチ同期局として機能する機器510hと同期化されていた。機器510hは、遠隔範囲の機器をリッスンしない(その機器は、ルート同期局ではなかった)ため、機器510dを聴取せず、それゆえ、依然として、機器510jの近接範囲内の、最良のレベル1のブランチ同期局の候補とすることができる。その場合には、機器510jは、機器510hと同期化されたまま維持される。
このことは、機器510gを、閾値数の層1のブランチ同期局を聴取しない唯一の機器のままに据え置く。その機器は、ルート同期局ではなかったため、依然として、近接範囲の機器のみをリッスンしている。それゆえ、その機器は、機器510fと同期化されたまま維持されることになり、機器510dのものと同様のPSFの送信を開始して、その機器自体を層1内に置き、そのマスター優先度値を告知する。
図5Dは、本発明の幾つかの実施形態に係る、図5Bの2つの別個の階層を融合させることによって形成される階層を示す。
全体のルート同期局が選択された後、同じ階層内の全ての同期局は、可用性窓の同じスケジュール及びシーケンスを広告する。それゆえ、同じ階層内で別のマスターの代わりに1つのマスターに同期しても、殆ど相違がない。しかしながら、機器は、いずれの適用可能な構成パラメータ(例えば、階層の最大深さ、所定の範囲内の同期局の最大数)にも準拠しなければならない。
図5A〜Dに示すように、本発明の幾つかの実施形態では、ピア機器は、最初に、近接範囲の階層へと、それら自体を編成する。その直後に、これらの局所的クラスターは、単一の、デフォルトの同期環境へと融合する。図示の実施形態では、近接範囲のルート同期局のみが、近接範囲を越えて調べて(又はリッスンして)おり、そのため、殆どの機器は、1つの機器と同期化されている状態から、別の機器と同期化される状態へと変更する必要がなかった。より多くの(又は全ての)機器が更に遠くを調べる、別の実施形態では、より多くの機器が、それらの局所的又は近接範囲のマスターから遠隔範囲のマスターへと、同期を変更する可能性が高い。
近接範囲のルート同期局が、そのマスター優先度値に基づいて、近接範囲を越えて調べる場合、層を変更する可能性があり、又は同じレベルに留まる可能性もある。そのルート同期局の下のブランチ同期局も、同様にレベルを変更する可能性がある。例えば、十分な深さを提供する環境内では、近接範囲のルート同期局が、より長い範囲での競合の後に降格される場合には、その相対編成を維持するために、そのブランチ同期局を、同じ数のレベルだけ自動的に降格させることができる。
しかしながら、これに対する1つの代替案として、近接範囲のルート同期局の新たな層が決定された後、そのブランチ同期局は、選択プロセスを再開して、その近接同期局よりも下に、近接範囲の階層を定めることができる。
本発明の幾つかの実施形態では、ピア機器は、単にいずれのレベルの階層でも同期局となるように、独断的に、その機器自体を(例えば、PSFを発行することによって)指名することはできない。機器が、同期局を、その局の層Sには関わりなく聴取して、その同期局がその機器よりも高いマスター優先度値を有すると機器が想定する場合、機器は、その機器の下でリーフになることができ、又は、閾値数の、より低いレベルの層S+1のブランチ同期局を聴取しない場合には、レベルS+1でブランチ同期局になることができる。
図6は、本発明の幾つかの実施形態に係る、ピアツーピア通信環境内のデフォルト階層内で、1つ以上の同期局を選択する方法を示す流れ図である。図示の方法は、毎回の可用性窓の前、可用性窓の間、若しくは後、全ての可用性窓の何らかの部分集合の後(例えば、同期局の指定シーケンス内の最初又は最後の窓の後)、何らかの複数の可用性窓の後(例えば、2つごとの窓の後)、又は何らかの他の規則性で実行することができ、図5A〜Dに示す選択プロセスとは異なる。図6に示すプロセスは、複数の範囲を利用し、それらの範囲は、上述の近接範囲、中間範囲、及び遠隔範囲に対応する場合もあれば、対応しない場合もある。
図6の流れ図内に示される本発明の実施形態では、リーフ(又はスレーブ)機器は、「closeLeaf」と命名された範囲に対応する信号強度よりも大きい信号強度でその機器が聴取する、最良の同期局と同期することになる。ブランチ同期局は、異なる信号強度に対応する「closeMaster」範囲内でその機器が聴取する、最良の同期局と同期することになり、この局を、ルート同期局とすることができる。
比較すると、closeMaster範囲は、closeLeaf範囲よりも大きく、これは、closeLeaf範囲に関連する信号強度閾値が、closeMaster範囲に関連する信号強度閾値よりも高いことを意味する。このことは、リーフ機器の局所的クラスター化を促進するが、その一方で、ブランチ同期局は、より遠くに離れて存在する、より良好なブランチ同期局(又は恐らくは、ルート同期局)と同期することが可能である。
「遠隔」範囲は、任意の機器がリッスンする、最も遠い距離を表すために使用することができる。それゆえ、「遠隔」範囲は、closeLeaf範囲及びcloseMaster範囲の双方よりも大きいが、対応する信号強度は、それらの範囲に対応する信号強度よりも低い。
図示のプロセスでは、所定の機器が(その機器がリーフである場合には)closeLeaf範囲で、又は(その機器がマスターである場合には)closeMaster範囲で聴取する最良のピア機器が、その機器自体である場合には、その機器は、その機器が遠隔範囲で聴取する最良のマスター機器と同期することになる。一部の実装では、全ての機器は、遠隔範囲で、かつcloseLeaf範囲又はcloseMaster範囲のいずれか(いずれか適切な方)で、その機器が聴取する最良の同期局を追跡し続け、それらの同期パラメータ及びマスター優先度値を(例えば、メモリ内に)記憶する。
所定の機器がいずれの同期局と同期するべきかを特定するために使用される、上述の3つの範囲以外に、他の範囲を使用して、所定の機器の、同期局(又はマスター)としての、若しくはリーフとしての役割を、又は、その機器が同期局となるために競合を継続するべきか否かを、決定する支援をすることができる。例えば、機器は、その機器が、shortRange及びmidRangeと命名される2つの範囲の内部で聴取する同期局の数を、追跡することができる。
例示的実装では、shortRangeは、約1メートルとすることができ、closeLeaf範囲及びcloseMaster範囲は、約4メートル及び約5メートルとすることができ、midRangeは、5〜10メートルとすることができ、遠隔範囲は、約30メートルとすることができる。本発明の他の実施形態では、マスター選択プロセスは、より少ない範囲又は追加的な範囲を考察する場合があり、それらの範囲は、実質上任意の距離に拡張することができ、様々な信号強度に対応することができる。
それゆえ、範囲の1つのセット(例えば、closeLeaf、closeMaster、midLeaf、midMaster、遠隔)を使用して、所定の機器がいずれのマスター機器と同期するかを、決定することができる。異なる範囲のセット(例えば、shortRange、midRange)を使用して、その機器の役割を特定することもできる。
動作604では、機器は、その機器が同期化されている同期局から、同期フレーム(例えば、PSF、MIF)を最近受信したか否かを判定する。同期フレームが、最後のPSF周期内で、又は何らかの他の適用可能な時間周期(例えば、可用性窓周期)内で受信されている場合には、この方法は動作610に進み、受信されていない場合には、この方法は動作606に続く。
動作606では、その機器は、閾値数の可用性窓又は可用性窓時間周期(又は他の適用可能な時間周期)が、同期フレームを受信することなく経過しているか否かを判定する。経過している場合には、この方法は動作608に続き、経過していない場合には、その機器は、その現在の状態及び現在の同期を維持して、マスター選択プロセスを実行することなく、図示の方法から退出する。顕著な是正措置を講じる必要はないが(取り逃したPSFの数は、閾値に達していないため)、その機器は、最近は同期化されておらず、同期局を選択するために使用する、現在のマスター優先度値を有し得ない。
動作608では、機器は、そのピア機器の階層のルート同期局になるが、以前のルート同期局の、可用性窓のシーケンス若しくはスケジュール及びPSFの周期性を、それらが機器の他の動作と衝突しない限り維持することができる。ルートを含む、いずれかの同期局が置き換えられる場合の目的は、環境内の同期を維持することであり、それゆえ、その優先度は、可能な場合には、同じ同期パラメータで継続するべきである。動作608の後、その機器に関して、マスター選択プロセスが終了する。
動作610では、機器は、優先度値(又は選択メトリック)を使用して、適用可能なマスター選択アルゴリズムの実行を開始するが、この優先度値は、その機器が同期フレーム(例えば、PSF、MIF)を介して受信し、かつ/若しくは他の機器(例えば、その機器が現在同期化されていない同期局)から聴取したものか、又は、他の機器によって中継されたものである。具体的には、機器は、その機器のマスター優先度値と、他の機器のマスター優先度値とを比較する。
上述のように、同期局は、種々の範囲で検討することができる。これらの実施形態では、同期局候補から受信される同期フレームのRSSI(受信信号強度表示)、又はRCPI(受信チャネル電力インジケータ)などの、他の機器の信号の強度の何らかの他の測定値を使用して、それらの範囲を決定することができる。
動作610の一部として、機器は、以下のものを含めた、図6の方法を実行する機器に関連する幾つかの値を算出する(範囲は上記で説明されている)。
マスター優先度値を比較する際、本発明の幾つかの実施形態では、機器は、以下の規則を使用して、その機器自体と、その機器が聴取することができる1つ以上の他の機器のそれぞれとを比較し、それらの機器との比較で、その機器自体をランク付けする。
規則1:機器がルート同期局であり、他の機器が、そのルートのツリー内に存在する場合(又は逆も同様)、又は機器がリーフであり、他の機器が、その機器の現在の同期局である場合(又は逆も同様)には、それらのマスター優先度値が比較される。より高い優先度値を有する機器が勝ち、より高くランク付けされ、等しい場合には、それらのMACアドレスが比較され、より高い(又はより低い)MACアドレスが勝つ。
規則2:規則1が適用されず、いずれの機器もルート同期局ではないが、それらが同じツリー内に存在する場合には、それらの機器の層に応じて比較が決定される。それらが異なる層内に存在する場合には、より低い番号が付けられた層内の(すなわち、よりルートに近い)機器が勝つ。それらが同じ層内に存在する場合には、より高いマスター優先度値を有する機器が勝ち、等しい場合には、それらのMACアドレスが比較される。
規則3:機器が異なる階層内に存在する(すなわち、それらが同じルート同期局を有さない)場合には、それらのルート同期局のマスター優先度値が比較される。より高い優先度値をルート同期局が有する機器が勝ち、等しい場合には、それら機器のMACアドレス、又はそれらのルート同期局のMACアドレスが比較される。
規則1及び規則2は、同期階層の安定性を促進すると共に、全体として、その階層の所定の機器からルート同期局への、最短経路を確立する。規則3は、互いに近接する2つの別個の階層が、単一の階層へと融合する機会を有することを保証する。
動作610を遂行する間に、図示の方法を実施する機器は、他の機器によって広告されるデフォルト識別子及びグループ識別子を考察し、その機器自体とは異なるデフォルト識別子を広告する機器を無視することができる。上述のように、デフォルト識別子は、ピア機器のより大きい階層を特定し、その一方で、グループ識別子は、ピアのより小さい階層を特定する。
以下のセクションで説明されるように、同期局を特定又は選択するための手順を実行する機器はまた、その機器が、そのプライベートグループのルート同期局である場合を除いて、異なるグループ識別子を広告する機器も無視することができる。より具体的には、グループのメンバーは、通常、図6のものと同様の選択プロセスを実行することができるが、そのグループに属している機器を考察するためのみであり、その一方で、グループルート同期局は、その後、デフォルト階層と同期するために、図示の方法を実行することができる。
動作612では、機器は、その機器がbestFarMasterである(すなわち、その機器の遠隔範囲内の全ての機器の中で、最も高いマスター優先度を有する)か否かを判定する。そうである場合には、この方法は動作608に戻り、そうではない場合には、この方法は動作614へと進む。
動作614では、機器は、numHigherM(すなわち、より高いマスター優先度を有する、midRange内の同期局の数)が、閾値、又はmidRangeの同期局の最大数(maxM)よりも少ないか否か、及びnumHigherS(すなわち、より高いマスター優先度を有する、shortRange内の同期局の数)が、閾値、又はshortRangeの同期局の最大数(maxS)よりも少ないか否かを判定する。そうである場合には、この方法は動作630に進み、そうではない場合には、この方法は動作620に続く。
本発明の幾つかの実施形態では、この方法は、numHigherMがmaxMよりも小さい場合か、又はnumHigherS<maxSである場合のいずれかで、動作614から動作630に進む(すなわち、「論理積」演算ではなく「論理和」演算が実行される)。
動作620では、機器は、その機器自体をリーフとして指名するが、これは、その機器が一部の他の機器よりも高いマスター優先度値を有する場合であっても、より高い値を有する、shortRange内の閾値数の同期局が、既に所定の位置に存在するためである。その機器が周期的同期フレームを発行していた場合には、その機器は中止する。
動作622では、機器は、その機器がcloseLeaf範囲内の最良の機器(すなわち、closeLeaf範囲内の最良の候補)であるか否かを判定する。そうである場合には、この方法は動作640に進み、そうではない場合には、動作624に続く。
動作624では、機器は、bestCloseLeaf(すなわち、最も高いマスター優先度値を有する、closeLeaf範囲内の同期局)と同期する。次いで、この方法は終了する。
動作630では、機器は、同期局の役割を担う。このことは、他のピア機器を同期化するために、周期的同期フレームを発行して、可用性窓のシーケンスを管理することを、その機器に要求することになる。
動作632では、機器は、その機器がcloseMaster範囲で最良の機器(すなわち、最も高いマスター優先度値を有する、closeMaster範囲内の機器)であるか否かを判定する。そうである場合には、この方法は動作640に進み、そうではない場合には、動作634に続く。
動作634では、機器は、bestCloseMaster(すなわち、closeMaster範囲内の最良の同期局)と同期する。次いで、この方法は終了する。
動作640では、機器は、ルート同期局とすることができる、bestFarMaster(すなわち、遠隔範囲内で最高のマスター優先度値を有するもの)と同期する。次いで、この方法は終了する。
図7A〜Eは、本発明の幾つかの実施形態に係る、図6のマスター選択プロセスの実行を示す。
図7Aは、環境内に分散されたピア機器の集合を示す。機器の標識は、それらのマスター優先度値(及び、2つの機器のメトリックが同点である場合には、それらのMACアドレス)の逆順の、その機器のランク付けを示すものであり、機器710a<機器710b<機器710c<...<機器710i<機器710jである。それゆえ、この環境内の全ての機器のうちで、機器710jが、最も高いマスター優先度値を有し、この環境内の「最良の」機器と見なされる。
上述のように、複数の異なる範囲が、同期局の選択、及び機器の同期に関連する。上位の3つの機器(機器710h、710i、710j)に関する「遠隔」範囲の限界を、例示的な「近接」範囲を示すスケール702と共に図7A〜Eに示す。図示の実施形態では、(図6に関連して上述されたような)closeLeaf範囲及びcloseMaster範囲は等しく、スケール702によって表される近接範囲に一致する。
図7Bは、各機器が、その機器が聴取することができる最も近い同期局と同期する場合に(例えば、動作634で)確立される、近接範囲の接続を示す。図示のシナリオでは、殆どの機器は、上位の3つの機器のうちの1つの、近接範囲内に存在するため、それらの機器のうちの1つと同期する。しかしながら、機器710c、710dは、近接範囲内に他の機器を見出さないため、現時点では、非同期(すなわち、それら自体の1つの機器の階層内)のままである。
一部の機器(例えば、機器710b、710e、710f)は、それらが最初に同期するものよりも良好な同期局を聴取することができるが、それらが聴取することができる最良のものではなく、最も近い同期局のみを探している点に、留意することができる。また、いずれの機器も、リーフになる理由を未だ見出していないため、全ての機器は、依然として同期フレームを送信している可能性がある。
図7Cは、同期局が、より良好な遠隔範囲の同期局をリッスンして接続する場合の環境を示す。例えば、また図6に示す方法に従って、機器710c、710d、710iは、動作630で同期局になり、動作632で、それらの機器が近接範囲内で最良の同期局であることを検出し、次いで、動作640を実施して、それらは、遠隔範囲内の最良の同期局と同期した。それゆえ、機器710iは、機器710jと同期し、機器710c、710dは、機器710iと同期する。
また、一部の機器は、短範囲及び/又は中間範囲で、より良好な選択優先度値を有する、閾値数の同期局を聴取するため、この時点で、リーフの状態に遷移する。例えば、また図6に示す方法に従って、機器710a、710b(及び/又は他の機器)は、動作614に到達し、短範囲及び中間範囲で、それらの機器が幾つのマスターを聴取するかを判定する。これらの値の一方又は双方が、それらの閾値以上であるため、それらの機器は、動作620、622、及び624を実施して、closeLeaf範囲内の最良の同期局に同期化されるリーフになる。例示的には、短範囲及び中間範囲の双方は、近接範囲よりも長い距離であるが、遠隔範囲よりも小さい。
機器710a、710b、及び710fの破線の輪郭は、それらの機器が現時点でリーフ機器であることを示す。リーフとして、それらの機器は、周期的同期フレームの発行を中止する。
また図7Cを参照すると、非リーフ機器は、それらのマスター優先度値、及びそれらのルート同期局の優先度値を広告する、同期フレームの発行を開始又は継続する。例えば、機器710eは、機器710e及び710hの優先度値を広告し、機器710gは、機器710g及び710jの優先度値を広告する。
図7Dは、機器710gが、機器710eに接近するように物理的に移動された後ではあるが、依然として機器710hの遠隔範囲を越えている環境を示す。具体的には、機器710gは、機器710eの近接範囲内に移動する。
その同期フレームを介して、機器710gは、そのマスター優先度値、及び機器710jの優先度値を広告する。機器710eが、マスター選択プロセスの一部として、これらの値を比較する場合、その機器は、機器710hに勝る機器710jに関する優先度に注目する。それゆえ、機器710eは、この時点で機器710gと同期する。
図7Eでは、機器710eは、その優先度値、及びその新たなルート同期局である機器710jの優先度値を広告する、同期フレームの発行を開始している。機器710hは、機器710jのマスター優先度値を、その機器自体と比較して、機器710jがより好ましいルートであることを理解する。
機器710hは、それゆえ、図7Eに示すように、階層の最大深さパラメータが許容する場合には、機器710jの拡張された階層と同期することができる。機器710eが、階層の最大深さに存在していた場合には、機器710hは、機器710eと同期することは可能であるが、リーフとして機能することのみが可能である。機器710gが最大深さに存在していた場合には、機器710eは、リーフであることのみが可能であり、機器710hは、他のピアが範囲内に存在しない場合には、それ自体の階層を開始することが可能である。
本発明の幾つかの実施形態では、マスター選択アルゴリズム又はプロセスは、継続的である。これらの実施形態では、このプロセスは、全ての可用性窓で再開又は反復されるため、全ての機器が、階層内のそれらの「正しい」レベルに配置されるまでに、ある程度の時間がかかる場合がある。機器は、環境内へと移動し、環境内で移動し、環境から外に移動するため、階層は継続的に変化し得る。
しかしながら、機器の同期は、遙かに迅速に生じるものであり、進行中のマスター選択プロセスによって劣化しないことに注目すべきである。すなわち、同期は、全ての機器をその正しい論理的位置に就かせることによって左右されるものではない。
具体的には、階層のルート同期局及びブランチ同期局として機能している機器が、経時的に変化し得る場合であっても、殆どの実装では、このことが同期に干渉することはない。これらの実装では、同じ可用性窓のスケジュールが、その階層全体にわたって適用されるため、ルート同期局の役割(又はブランチ同期局の役割)を新たに担ういずれの機器も、他の機器と既に同期化されていることになり、それらの他の機器は、その機器と同期化されることになる。
本発明の幾つかの実施形態では、機器のマスター優先度値を計算するために使用される選択メトリックには、その機器の送信範囲及び電力レベルが含まれる。単純な例として、より高い送信電力又は送信範囲を有する機器は、より小さい送信電力/範囲を有する全ての機器に勝る、同期局となるための優先度を有することになる。機器の電力の予備が減少するにつれて、その優先度値は、同様に低下することになる。他の実施形態では、他のメトリックを考察することができる。
これらの実施形態では、送信電力/範囲が利用可能ではない場合には(又は機器間で同点が存在する場合には)、最も高いバッテリー充電残量を有する機器が、より高い優先度値を有することになる。送信範囲及びバッテリー充電の双方が未知(又は同点)である場合には、機器のMACアドレス(又は他のアドレス/識別子)を比較することができる。
これらの実施形態では、マスター又は同期局の選択が、継続的又は定期的なプロセスであるため、同期局であることのコスト(例えば、電力の使用)は、異なるピア間で共有される。1つの局の電力レベルが(例えば、周期的同期フレームの定期的な発行により)低下すると、別の機器が、その機器に取って代わることになる。
他の実施形態では、他のメトリックを考察することができる。前述のように、これらのマスター選択メトリック、及び/又は、それらのメトリックの組み合わせを表す単純なマスター優先度値は、機器によって、その機器が同期フレームを一斉配信するときに広告される。
プライベートグループ
本発明の幾つかの実施形態では、特定のデフォルト階層の(又は異なるデフォルト階層の)2つ以上のメンバーは、ファイル転送に従事するか、ゲームをプレイするか、又は何らかの他のアクティビティを遂行するために、グループを形成することができる。グループとして編成することによって、メンバーは、より高い帯域幅、より低いレイテンシ、より少ない競合、及び/又は他の協働の利点から恩恵を享受することができる。例えば、2つ(又は、それよりも多く)の機器は、プライベートグループを作り出すことにより、向上したデータレートのセッションを遂行してデータを交換することができる。
前述のセクションで説明されたように、機器は、その機器が一斉配信する同期フレーム(例えば、PSF、MIF)内で、その機器が同期化されているか又は同期化されていた階層の「デフォルト」識別子、及び、その機器が属するグループの「グループ」識別子などの、複数の識別子を広告することができる。本発明の幾つかの実施形態では、全ての階層は、通常のピアツーピア動作を反映するために、0などの、同じデフォルト識別子を採用する。複数のデフォルト階層に近接して存在する機器は、より良好なルート同期局又は上位マスターを広告する階層に、単純に加入することができる。それゆえ、異なる階層間で同じデフォルト識別子を使用することは、衝突を引き起こさない。
本発明のこの実施形態の一部の実装では、典型的なデフォルト階層との同期を維持することができないか、又は維持しない機器によって、非ゼロのデフォルト識別子が広告される。インフラストラクチャのビーコン(例えば、アクセスポイント)との整合を維持しなければならないマスターは、非ゼロのデフォルト識別子を広告する機器の一例である。
そのようなマスターに関する非ゼロのデフォルト識別子は、所定のアルゴリズムの実行を通じて、インフラストラクチャのビーコンのBSSID(基本サービスセット識別子)から得ることができる。インフラストラクチャのビーコンと同期化されるマスターは、グループに属する場合もあれば、属さない場合もあり、同じビーコンと整合する他の機器と同期することのみが可能であり得る。
0のグループ識別子、又はグループ識別子の不在により、いずれのグループにも関与していない機器を特定することができる。ゼロよりも大きい値は、アクティブなグループによる使用のために保留することができる。種々の実装では、グループ識別子は、種々の桁(例えば、16ビット、32ビット)を有し得る。
本発明の実施形態では、グループ識別子として採用される具体的な値は、そのグループのメンバー間で共通に実行されるアプリケーション若しくはサービス(例えば、AirPrint(商標)、App Game Kit(商標)アプリケーション、ファイル共有ユーティリティ)、又は、そのアプリケーションをサポートする、より高いレベルのプロトコル層によって、恐らくは無作為に選択される。このアプリケーションは、より低いレベルのプロトコル層にグループのメンバーを(例えば、MACアドレス又は他の識別子によって)特定し、そのグループ識別子をメンバー間に分配する。
本発明の幾つかの実施形態では、デフォルト識別子及びグループ識別子のデュプル「0/0」は、アイドル状態の機器を特定するために役立つものであり、このアイドル状態の機器とは、デフォルト階層内で同期化されているが、グループ内でアクティブではないことにより、アクティブなデータセッションに従事していない機器として定義することができる。アイドル状態の機器は、検出プロトコル、他のアドレス指定、及び経路指定プロトコルなどを単に運用することになる。2つ以上の機器が、何らかの方式で(例えば、データ又はアプリケーションを共有することによって)協働することを選択する場合には、それらの機器は、グループを作成するか、又はグループに加入することになる。
同じグループに属する機器は、デフォルト階層全体を同期化するための上述の方式と同様に、それら自体の間で同期して、グループ階層を形成する。それらの機器は、そのグループ内に留まる間は、互いに同期化されたまま維持される。
グループ内の機器の数、及び任意の他の適用可能なパラメータに応じて、そのグループの一部のメンバーは、グループルート同期局(すなわち、そのグループのルート同期局、別名上位グループマスター)の下でブランチ同期局となることができ、全ての他のメンバーは、リーフ(又はスレーブ)となる。グループメンバーは、マスター又は同期局を選択又は特定するためのプロセスを継続して実行することができるが、グループ内でのそれらのメンバーシップは、同期局としてグループメンバーを選択することのみを考察するように、そのプロセスを調節することにより、グループ階層を確立する。選択されたグループルート同期局は、そのグループとデフォルト階層との間の境界に跨ることになり、示されるように、デフォルト階層と同期することを試みる。それゆえ、グループ階層内でアクティブであるか否かに関わらず、機器は、通常、その機器が同期するマスターを1つのみ有することになる。
本発明の幾つかの実施形態では、同期の目的のために、グループの各メンバーは、そのメンバーがどのように(例えば、いずれと)同期するべきかを指定する規則を見出し、適用するまで、以下のような規則を順次考察する。デフォルト階層に関する上述のパラメータ(例えば、同期局の最大数、特定の範囲内の同期局の数)と同様に、グループメンバーは、同期局として機能するべきか否かを決定する際に、様々な因子又はパラメータを考慮することができる。
規則1:グループ機器は、同じグループのメンバーである(すなわち、同じグループ識別子を広告する)、近接範囲内の(それ自体以外の)最良の機器と同期する。その機器は、グループルート同期局又はグループブランチ同期局のいずれかとなる。
規則2:機器が、グループのメンバーである、近接範囲での最良の機器である場合には、その機器は、グループのメンバーである、遠隔範囲内の(それ自体以外の)最良の機器と同期する。
規則3:機器が、グループのメンバーである、遠隔範囲内の最良の機器である場合には、その機器は、グループルート同期局の役割を担い、同じデフォルト識別子(例えば、0)を広告し、それゆえ同じデフォルト階層の一部であり、グループ識別子を有さないか、又は異なるグループ識別子の、近接範囲での(それ自体以外の)最良の同期局と同期する。しかしながら、一部の実装では、グループルート同期局は、異なるグループ内でアクティブな同期局と、同期することはない。
規則4:機器がグループルート同期局であり、デフォルト階層内の、近接範囲での最良の同期局である場合には、その機器は、同じデフォルト階層のメンバーである、遠隔範囲での最良の同期局と同期する。
規則5:機器がグループルート同期局であり、デフォルト階層内の、遠隔範囲での最良の同期局である場合には、その機器は、グループ階層及びデフォルト階層の双方のルート同期局であり、いずれの他の機器にも同期しない。その機器は、これらの規則を適用する前にその機器が動作していた同期パラメータを維持して、その機器が発行するあらゆる同期フレーム内で、それらの同期パラメータを広告する。
グループ階層内で広告される同期パラメータは、デフォルト階層の同期パラメータと同様か、又は同一とすることができる。具体的には、可用性窓は、同じ時刻に、同じ持続時間で、同じ通信チャネル又は異なる通信チャネル上に、スケジュールすることができる。
この可用性窓のスケジュールの同期は、自然に生じる可能性があり、これは、グループのメンバーが同じデフォルト階層から選び出されている可能性があり、それゆえ、共通の同期パラメータのセットの下で既に同期化されていたためである。更には、グループのルート同期局が、デフォルト階層に同期化される場合、そのデフォルト階層は、そのルート同期局が同期化される同期局から、そのグループ同期パラメータを得ることになり、この同期パラメータは、デフォルト階層の同期パラメータとなる。
しかしながら、グループルート同期局の可用性窓の公表スケジュールは、輻輳した通信チャネルを回避するように構成することができ、5GHz帯域内のチャネルを(全てのメンバー機器が、その帯域を使用することが可能な場合には)使用することができ、メンバー機器によって共有されるアプリケーション又はサービスとの干渉を回避することが必要な場合には、その可用性窓のパラメータ(例えば、長さ、周期)を調節し、及び/又は他の因子を考慮することができる。それゆえ、種々の環境又は種々の実装では、グループの同期パラメータは、隣接するデフォルト階層のものと同一である場合もあり、又は、様々な程度で異なる場合もある。
グループが解散する場合、メンバーは、最初は、それらが同期化されていたグループ同期局に同期化されたまま留まることができる。各グループ同期局は、(グループルート同期局の場合には)特定の階層に直接同期化されるか、又はグループルート同期局と同期化される。グループルート同期局は、特定の階層と同期化されるため、その階層のルート同期局の同期パラメータを広告する。そのグループルート同期局と同期化されることによって、それゆえ、グループメンバーは、その階層と既に同期化されている可能性がある。メンバーがグループから退去して、マスター選択アルゴリズムの実行を再開する場合、それらのメンバーは、単にグループ同期局のみではなく、可能な同期のために、デフォルト階層内の全てのマスターを再び考察することになる。
本発明の幾つかの実施形態では、グループ動作に関するアプリケーションを開く第1の機器が、プライベート識別子を設定して、そのグループの広告を(例えば、周期的同期フレーム及び/又はマスター指示フレームを介して)開始する。グループの性質又は目的は、プライベート識別子として同じ通信内で特定することができ、検出プロトコル若しくはサービスプロトコルを介して決定することができ、又は何らかの他の方式で探知することができる。
スレーブ又はリーフ機器は、通常は、階層内で沈黙している(すなわち、同期フレームを発行しない)が、その機器が可用性窓の間に一斉配信するマスター指示フレーム内で、プライベートグループを広告することができる。この広告は、The Game CreatorsによるApp Game Kit(商標)、又は何らかの他のゲームアプリケーション若しくはコンテンツ共有アプリケーションなどの、ネットワークアプリケーションあるいはマルチユーザソーシャルアプリケーションをサポートする、特定のアプリケーションレベルのプロトコルを介して伝達することができる。他の機器が、第1の機器とコンタクトを取る場合、そのアプリケーションが、それらの機器の加入のためのリクエストを受信して承諾する。
機器は、そのグループのプライベート識別子に一致するように、その機器のプライベート識別子を設定することによって、かつグループ同期局と同期することによって、そのグループに加入する。その後、その機器が同期化されるグループマスターによって広告される、可用性窓に参加する。
図9A〜Bは、本発明の幾つかの実施形態に係る、階層的に編成されたピア機器の環境内での、プライベートグループの作成を示す。
これらの図では、機器910a〜910mは、機器910a>機器910b>機器910c>...>機器910mのように、それらのマスター優先度値の順序で標識される。例示的機器910eの表示が拡大されており、この拡大図に示すように、機器の標識の下方のデュプルは、その機器のデフォルト識別子及びグループ識別子を、x/yの形式で特定し、xはデフォルト識別子であり、yはグループ識別子である。スケール902は、この環境内の近接範囲に等しい距離を示す。
図9Aでは、ピア機器の集合は、2つの階層へと編成され、一方は機器910aをルートとし、他方は機器910cをルートとする。全ての機器は、それらのデフォルト識別子及びグループ識別子のデュプル0/0によって示されるように、現時点でアイドル状態である。
近接範囲の限界が示される機器910gは、機器910iによって広告される(機器910cに関する)マスター優先度値よりも高い(機器910aに関する)マスター優先度値を、その一方又は双方が広告する、機器910f、910jの近接範囲内に存在する場合であっても、機器910aをルートとするツリーではなく、機器910cをルートとするツリーと同期化されている点に、留意することができる。
このことは、例えば、機器910f及び910jのいずれもが、恐らくは、実施されているプロトコルによって指定される最大階層深さにより、同期局として機能することができない場合に生じ得る。この実装では、階層の最大深さとは、ルート同期局と最も遠いリーフ機器との間の最大ホップ数を指す。それゆえ、3の最大深さでは、リーフ機器の1つの層が後に続く、最大3つのレベルのマスター機器(層0の1つのルート同期局、並びに層1及び層2のブランチ同期局)が存在することが可能である。換言すれば、階層の最大深さは、同期局を見出すことができる層又はレベルの最大数を特定することができ、リーフ機器は、それらの層(ルート層ゼロを除く)及び1つの追加層内に見出すことができる。
図9Aの環境内では、機器910g、910h、910i、及び910jが、データを交換すること(例えば、ゲームをプレイすること、又はドキュメントを共有すること)を選択する場合には、それらの機器は、異なるグループ識別子、例えば1を実施する。適用可能な規則及び好適な選択プロセス(例えば、前述のセクションで説明されたプロセス)を使用して、これらの機器は、グループのルート同期局として機器910gを選択するが、これは、その機器が、それらの機器の中で最良のマスター優先度値を有するためである。
例示的実装では、グループの作成は、第1の機器が、マルチプレイヤー態様を有するゲームアプリケーションを開くときに開始する。このゲームは、Bonjour(登録商標)プロトコル又は他の手段を使用して、グループ識別子と共に、ゲームインスタンスの可用性を広告することができる。他の潜在的プレイヤーの機器は、それゆえ、加入することを望む場合には、それらの機器のグループ識別子を適宜に変更するべきであることを通知される。
図9Bは、プライベートグループが、1のグループ識別子を採用して、それら自体の間で同期した後の、図9Aの環境及び機器を示す。機器910h、910i、及び910jは、(例えば、上記の規則1(又は規則2)によって要求されるように)それらのグループルート同期局である機器910gと同期しており、機器910gは、(例えば、上記の規則4によって要求されるように)遠隔範囲内の最良のデフォルト階層マスター機器としての機器910cと同期している。
機器910gは、グループメンバーを同期させたまま保つように、定期的な同期フレーム(例えば、PSF)を発行し、また、機器910cによって広告される可用性窓に参加することにより、機器910cの階層との同期も保持する。機器910cはまた、機器910cによって広告されるスケジュールに一致するように、その可用性窓のうちの1つ以上をスケジュールすることによって、機器910h及び910iも、機器910cをルートとする階層と同期化させることができる。
図9Bの環境内では、機器910mは、グループ1がアクティブである間、機器910hと同期したまま維持することができるが、これは、機器910hが、同じデフォルト識別子を有する、近接範囲内の最良のマスター機器であるためである。プライベートグループが解散すると、そのグループの個々の機器は、それらのマスター選択アルゴリズムの通常の実行を再開することになり、その環境内のピア機器が場所を変更していない場合には、機器構成は、図9Aに示す機器構成に、又は同様の構成に戻ることができる。
本発明の幾つかの実施形態では、グループは、そのグループ自体の最大階層深さを保有し、この最大グループ深さは、デフォルト階層の深さを拡張するために(例えば、グループのルート同期局が、デフォルト階層のメンバーである非グループ機器と同期する場合に)適用することができる。例えば、図9Bを参照して、機器910dが、機器910cよりも高いマスター優先度値を有すると仮定し(又は、それらが場所を交換したと仮定し)、その双方が、グループルート同期局910gの遠隔範囲内に存在するが、近接範囲内には存在しないと仮定する。上記の同期規則は、機器910gが機器910dと同期することを命じるが、このことは、通常、デフォルト階層の最大深さ(すなわち、3)により禁じられる。
しかしながら、本発明のこれらの実施形態では、デフォルトの最大深さが、グループの最大深さパラメータによって拡張される。それゆえ、図9Bの最大デフォルト階層深さが3であり、かつ最大グループ階層深さが2である場合には、そのグループの少なくとも1つのメンバーを横断する、デフォルトのルート同期局からリーフ機器までの最長経路は、5である。この例示的シナリオでは、機器910gは、例えば機器910dと同期することが可能であり、最大経路距離は、デフォルトのルート同期局910aとリーフ機器910mとの間(すなわち、910a→910b→910d→910g→910h→910m)で示される。
異なるグループ識別子を有するが、同じアプリケーションを運用している2つ以上のグループは、融合することができる。階層内での同期プロセスと同様に、メンバーは、組み合わされたグループのメンバーである最良の同期局の下で同期して、その局のグループ識別子を採用するか、又は恐らくは、その融合したグループに関する新たなグループ識別子を生成する。
図10A〜Cは、本発明の幾つかの実施形態に係る、複数のプライベートグループの融合を示す。これらの実施形態では、機器は、ファイルを共有するため、ゲームをプレイするため、共有のリソースを使用するためなどに、同じアプリケーション又は適合するアプリケーションを運用している場合がある。例えば、1つのプライベートグループの機器は、同じアプリケーションを使用している別のプライベートグループに接近移動することができ、より低いレベルのプロトコル層は、より高い層(例えば、そのアプリケーション)に、他の機器の可用性を通知することができる。このアプリケーションは、その構成、又はアプリケーションに対して与えられた制約に応じて、そのアプリケーションのグループに、それらの機器を追加することができる(又は追加しない場合もある)。
図10Aでは、機器は、それらの優先度値に従った順序で標識され、機器1010a>機器1010b>...>機器1010eである。機器1010a及び1010bは、グループ識別子1を有する1つのプライベートグループを形成し、その一方で、機器1010c、1010d、及び1010eは、グループ識別子2を有する第2のグループを形成する。それらのグループルート同期局(すなわち、機器1010a、1010c)は、同じ階層又は異なる階層に同期化される場合があり、また更に、デフォルト階層内の同じ機器に同期化される場合がある。
これらの機器の2つのグループが、共に接近移動するにつれて、又は、機器1010cをルートとするグループ内の機器が、より良好なグループルート同期局を広告する他方のグループを検出すると、これらのグループは、融合を開始することができる。共通のアプリケーションを運用しているが、異なるグループ識別子を有する複数のグループを、融合させるべきか否かの決定は、そのアプリケーションによって行われる。融合される場合には、それらのグループの一方は、それらのグループ識別子を取り下げて、他方のグループ識別子を採用する。2つの異なるグループが、同じグループ識別子を個別に採用するシナリオでは、それらのグループが接近する場合には、自動的に融合することができる。
図10Bは、機器1010dが機器1010bの同期フレームを聴取した後の、図10Aの機器を示す。グループルート同期局1010aは、機器1010cよりも高い優先度値を有するため、機器1010dは、そのグループのグループ識別子を採用して、機器1010cとの同期を中断する。
機器1010dにグループを変更するように導いた、機器1010bによって発行された同期フレームは、ソーシャルチャネル上に発行されたマスター指示フレーム(MIF)とすることができる。図10A〜Cに反映される本発明の実施形態では、機器は、ソーシャルチャネルに時折同調するようにプログラムされ、このことにより、それらの機器は、それらが既に同期化されている機器以外の機器を、聴取することが可能となる。この場合には、機器1010dは、機器1010bによって発行されたMIFを聴取することが可能となった。
グループ又は同期化された機器の他のセットによって観察される、殆どの可用性窓の間に、それらの機器は、広く使用されていない(例えば、ソーシャルチャネルではない)チャネル上でランデブーすることになる。しかしながら、一部の可用性窓(例えば、64個の可用性窓のシーケンス内の、シーケンス番号0、15、31、及び47を有する可用性窓)の間には、ランデブーは、ソーシャルチャネル上で生じる。それゆえ、2つの別個のグループは、異なる(非ソーシャルの)チャネル上で、それらの時間の殆どを費やすため、機器1010dは、通常は機器1010bを聴取することはないが、1つ以上のソーシャルチャネル上に一斉配信される周期的MIFにより、機器は、同期化された機器のそれら自体のクラスターの、外側の機器を聞知することが可能となる。
図10Cは、機器1010c、1010eが、グループ1と機器1010aのマスター優先度値とを広告する機器1010dを聴取した後の環境を示す。それらの機器もまた、グループ2を破棄して、そのグループと同期する。
図10A〜Cに示す本発明の実施形態では、共通のアプリケーションを使用する2つの別個のグループを融合させるプロセスは、より多くの相互作用を伴い得る。この実施形態では、一方のグループ内の機器が、他方のグループ内の機器を聴取することができるように、それらのグループが最初に範囲内に入ると、それらのグループの機器は、それらの共通のデフォルト階層と最初に同期する。このことにより、それらの機器の双方が、同じ可用性窓のスケジュール上に置かれ、この同じスケジュールにより、それらの機器は、互いを容易に検出して、それらのサービスを容易に検出することができる(例えば、それらの機器は、この時点でBonjourプロトコルを実行することができる)。例えば、それらの機器は、この時点で、同じ可用性窓のスケジュールを適用しているため、同じソーシャルチャネル上で(例えば、少なくとも可用性窓のシーケンス番号0の間に)周期的にランデブーすることになる。
これらの周期的なソーシャルランデブーの間に発行されるMIF、及び/又はBonjourフレームを介して、機器1010d(及び/又は他の機器)は、同じアプリケーションを使用しているが異なるグループ識別子を有するピア機器に対する、その機器の近接性を検出し、また逆も同様である。これらの機器上で、共通のアプリケーション(又は何らかのユーティリティソフトウェア、若しくは通信プロトコルの上位層)は、双方のグループの機器が協働することができるように、グループ識別子の一方を取り下げなければならないと判断する。
グループ2が取り下げられると想定すると、機器1010dは、グループ識別子1を採用して、上述のもののような、グループと同期するための規則のセットを適用することになる。上記の規則1は、機器1010dを機器1010bと同期させるが、これは、その機器が、近接範囲内の最良のグループ機器又は同期局であるためである。
次いで、機器1010c、1010eは、他方のグループを(例えば、ソーシャルチャネル上の可用性窓の間のMIFを介して、又はBonjourを介して)聞知し、グループ識別子2をグループ識別子1と交換し、適用可能なグループ同期の規則を適用する。上述のもののような同期規則のセットは、機器1010eが機器1010cと同期するべきであることを(例えば、規則1に従って)示す場合がある。しかしながら、このシナリオに関する有効な規則のセットは、階層内のより低い層の(すなわち、よりルートに近い)機器と同期することを、より重視して強調することができる。それゆえ、機器1010dは、層1に存在し、かつ近接範囲内に存在する一方で、機器1010cは、層2に存在するため、機器1010eは、そのマスターとして機器1010dを選択することになる。
本発明の幾つかの実施形態では、機器によって適用される、構成パラメータ及び/又は機器の挙動は、プライベートグループが作成されるとき、維持されるとき、又は解散するときに、変化し得る。例えば、最大階層深さパラメータは、一部又は全てのグループメンバーが階層との同期を維持することを、さもなければそのパラメータが阻止する場合であっても、グループのメンバーが、それらのメンバーのグループルート同期局を介して、階層と同期することが可能となるように、上書きすることができる。
上述のように、グループが形成される場合、追加的な最大「グループ」階層深さを、デフォルト階層の最大深さに追加することができる。グループ内の機器の、又は、グループメンバーではないがグループメンバーを通じてデフォルト階層と同期化されている機器の、デフォルトのルート同期局からの最大ホップ数は、その2つの深さパラメータの合計に等しい。
別の例としては、デフォルト階層内でリーフであったことにより、同期フレームを一斉配信していなかった機器は、その機器がプライベートグループのメンバーになると、同期フレームを一斉配信することができる。この変更された挙動は、一時的なものに過ぎない可能性があり、そのグループが、さもなければそのグループを聞知しない機器を含むことを、可能にし得る。更には、また既に論じられたように、グループ内でマスターを選択するプロセスは、機器がプライベートグループの一部ではない場合に実行する、「通常の」マスター選択プロセスとは、異なるものにすることができ、上書きすることができる。
ピア機器
図8は、本発明の幾つかの実施形態に係る、ピア通信機器のブロック図である。2つの主要なプロトコル層又は演算層である、論理リンク層及びデータリンク層が、図8に示される。論理リンク層の上位で、1つ以上のアプリケーション及び/又はユーティリティ(例えば、mDNS、Bonjour)が動作することができ、データリンク層の下位には、物理層が存在して、伝送媒体を介したフレームの送信、及び伝送媒体からのフレームの受信に関与する。
本発明の幾つかの実施形態では、論理リンク層及びデータリンク層は、別個のプロセッサによって、又は単一の構成要素上に存在する集積回路によって、物理的に実装することができる。図8の例示的な通信機器では、とりわけ、プロセッサ、メモリ、ディスプレイ、アンテナ、及び通信ポートの構成要素などの、機器の一部の構成要素は、明瞭性のために省略されている。
データリンク層内で、同期フレーム(例えば、周期的同期フレーム、すなわちPSF、マスター指示フレーム、すなわちMIF)が、同期ステートマシン810によって発行され、及び/又は受信される。着信した同期フレームは、マスターデータベース820にルーティングされ、次いで、論理リンク層へと上方に伝達される。データフレームは、パケット待ち行列822によって処理される。
同期ステートマシン810は、リーフ及びマスターの、2つのモードを有し、一部の実装では継続的に動作する。前述のように、マスター機器、別名、同期局は、周期的同期フレームを発行する機器であり、その一方で、リーフ機器は、周期的同期フレームを発行せずに、マスターと同期化される。
ステートマシンは、ピア機器の(例えば、その機器がリーフである場合には)その現在の同期局への同期に関与する。機器がマスターである場合には、ステートマシン810は、その機器の周期的同期フレーム及び/又はマスター指示フレームの送信を管理し、また、その機器の可用性窓の存在も管理する。
走査ステートマシン812は、周期的同期フレームのためのソーシャルチャネルを走査する。無線チャネルマネージャ814は、他のエンティティ(例えば、インフラストラクチャのモジュール)と共に、異なる無線(例えば、Wi−Fi、Bluetooth(登録商標))間で、無線リソース(例えば、共用アンテナ)を管理する。同期ステートマシン810は、適切な時間に、無線チャネルマネージャ814と相互作用して、その機器の無線を可用性窓のための正しいチャネルに切り換える。走査ステートマシン812、及び/又は機器の他の構成要素は、他の目的(例えば、新たな機器のためのチャネルを走査すること)のために、無線チャネルマネージャと相互作用することができる。
ピアキャッシュ816は、ホストのピア機器が通信しているか、又は通信しようとしている、限定数の他の機器の、関連情報を記憶する。このキャッシュの使用は、一部のハードウェア/ファームウェア実装での、メモリの制約に関連する問題を軽減するために役立ち得る。例えば、データリンク層は、典型的には大きいメモリバンクへのアクセスを有さない、専用のWi−Fiチップセットによって実装することができる。ピアキャッシュ816内の情報は、ピアデータベース836内の情報と同期化される。
マスター選択コード818は、ピアデータベース836からの情報、及び/又は他の情報を使用して、同期局を選択又は特定するための選択プロセスを実行するために、周期的に実行される。例えば、このコードの実行により、マスターとなるための機器の好適性に基づいて、マスターデータベース820内に、機器のランク付けを生じさせることができる。
マスターデータベース820は、ピア機器が認識する全てのマスターに関するデータを記憶する。そのようなデータは、同期及び/又はマスター選択のために使用することができ、そのようなデータとしては、RSSI(例えば、最新のフレーム、複数のフレームの平均、最小、最大の)、マスター優先度値、選択メトリック、及び同期パラメータを挙げることができるが、これらに限定されない。
本発明の幾つかの実施形態では、毎回の周期的同期フレームの受信時に、マスターデータベース820は、データが追加投入されるか、又は更新され、マスター選択コード818が実行される。
データリンク層のパケット待ち行列822は、着信データフレーム及び/又は発信データフレームを記憶する。論理リンク層のパケット待ち行列832は、他の機器から着信するピアトラフィック、及び他の機器へと発信されるピアトラフィックを記憶する。
パケットスケジューラ830は、同期化された機器への、マルチキャスト、ブロードキャスト、及びユニキャストのトラフィック、並びに、そのピアが同期化されていないマスター(「非同期マスター」)及び非同期マスターと同期化されている機器への、帯域外の問い合わせ/応答をスケジュールする。ピアデータベースは、非同期マスターの可用性窓、存在モードに関する情報、及び他のタイミング関連の情報を記憶する。
存在モードマネージャ834は、因子に基づいて、ピア機器の存在モード制御し、それらの因子としては、同期化された機器への現在のアクティブなデータリンク、それらの機器への現在のデータレート、走査要件、帯域外問い合わせ要件、電力管理状態、Bluetooth(登録商標)要件、他の無線要件などを挙げることができるが、これらに限定されない。
ピアデータベース836は、図8に示すピア機器が既知の、全ての機器を特定し、各機器に関する情報を記憶する。この情報としては、その機器のルートマスター、他のマスター、マスター選択メトリック、能力(例えば、サポートされる周波数帯域、チャネル帯域幅、変調/データレート)、存在モード、その機器によってサポートされるサービス、未解決のブロックACK合意などを挙げることができるが、これらに限定されない。ピアデータベース836は、それゆえ、優先度値によって順序付けすることができる候補機器のリストを提供することによって、マスター選択プロセスを支援することができる。
アプリケーションインターフェース838は、より高位のシステム層及びモジュールに対するインターフェースを含み、より高位のシステム層及びモジュールとしては、構成及びネットワーク管理、GUI(グラフィカルユーザインターフェース)、サービス広告、及び検出などを挙げることができるが、これらに限定されない。GUIは、機器のユーザに、周囲のピアのリスト、それらのピアの物理的近接性、範囲、若しくは信号強度、それらのピアのサービスのリスト、及び/又は他の情報を提示することができる。
図8に提示されるピア機器の構成は、例示的なものである。本発明の他の実施形態では、ピア機器の構成は、様々な程度で異なる場合がある。例えば、図8のピア機器の構成要素の機能を、異なる方式で組み合わせることができ、単一の構成要素の機能を細分することができ、及び/又は、複数の構成要素の機能を融合させることができる。
幾つかの実施形態では、ピア機器は、アプリケーション(例えば、図8の高位層に存在するアプリケーション及びユーティリティ)をサポートするための、アプリケーションプロセッサを含む。このアプリケーションプロセッサは、メモリ管理、グラフィック処理、及び/又は、アプリケーションによって必要とされる他の機能を提供する。これらの実施形態のピア機器はまた、無線通信を実行するためのベースバンドプロセッサ、並びに、通信及び通信処理をサポートするための、対応するメモリ及び送受信機も含む。
ベースバンドプロセッサは、論理リンク層及びデータリンク層内に示される構成要素、並びに、それらの構成要素と併せて説明される機能性の全てを含み得る。ベースバンドプロセッサはまた、通常は物理層に関連する、幾つかのタスク(例えば、チャネル符号化)も処理することができる。
それゆえ本発明の幾つかの実施形態では、ピア機器の「通信モジュール」又は「無線通信モジュール」とは、直前に説明した堅牢なベースバンドプロセッサを指す場合がある。幾つかの他の実施形態では、通信モジュールは、機器のアンテナを運用又は管理するための、ベースバンドプロセッサ及び対応する送受信機と、恐らくは、ベースバンドプロセッサによって使用されるメモリとを包含し得る。更に他の実施形態では、通信モジュールは、図8の論理リンク層及びデータリンク層の構成要素と、ピア機器にデータを送信し、かつピア機器からデータを受信するために必要な、他の構成要素とを包含し得る。
本発明の幾つかの実施形態は、本明細書で説明されるようなピアツーピア通信プロトコルと、ピア機器の無線リソース又は他の通信リソースを必要とする他のアプリケーションとの、共存を促進する。例えば、機器は、アプリケーション、又はBluetooth(登録商標)などの別のプロトコルを運用することができる。
これらの実施形態では、Bluetooth(登録商標)通信は、その機器の可用性窓、及びその可用性窓に対するあらゆる延長の間を除き、必要に応じて実行することができる。可用性窓の外では、Bluetooth(登録商標)の走査、問い合わせ、及び/又は他の動作が可能となり、更には、本明細書で提供されるプロトコルに従って順守するデータフレームよりも優先権を得ることができる。
マスターの周期的同期フレームは、その機器のアンテナを使用するBluetooth(登録商標)(又は他のアプリケーション/プロトコル)の動作により、遅延する恐れがあるが、通常は、取り下げられることはない。Bluetooth(登録商標)又は他の動作は、帯域外の問い合わせ及び応答の間には、許容されない場合がある。
本明細書で提供されるような、ピア機器の同期及び動作はまた、そのピア機器の階層の一部ではない何らかの通信インフラストラクチャ(例えば、アクセスポイント)に依存する、アプリケーション又はプロトコルとも共存することができる。
本発明の幾つかの実施形態が実行される環境は、汎用コンピュータ、又はハンドヘルドコンピュータ、スマートフォン、若しくは他のモバイル機器などの、特殊目的機器を組み込むことができる。そのような機器の詳細(例えば、プロセッサ、メモリ、データ記憶装置、ディスプレイ)は、明瞭性のために省略される場合がある。
この「発明を実施するための形態」で説明されるデータ構造及びコードは、典型的には、コンピュータ可読記憶媒体上に記憶され、このコンピュータ可読記憶媒体は、コンピュータシステムによる使用のための、コード及び/又はデータを記憶することが可能な、任意の装置又は媒体とすることができる。コンピュータ可読記憶媒体としては、不揮発性メモリ、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタル多目的ディスク又はデジタルビデオディスク)などの、磁気及び光記憶装置、あるいは、現在既知の、又は今後開発される、コンピュータ可読媒体を記憶することが可能な他の媒体が挙げられるが、これらに限定されない。
「発明を実施するための形態」で説明される方法及びプロセスは、上述のようなコンピュータ可読記憶媒体内に記憶させることが可能な、コード及び/又はデータとして具体化することができる。コンピュータシステムが、コンピュータ可読記憶媒体上に記憶されたそれらのコード及び/又はデータを読み取り、実行すると、そのコンピュータシステムは、データ構造及びコードとして具体化され、かつコンピュータ可読記憶媒体内に記憶された、それらの方法及びプロセスを実行する。
更には、以下で説明される方法及びプロセスは、ハードウェアモジュール内に含めることができる。例えば、ハードウェアモジュールとしては、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、及び、現在既知の、又は今後開発される他のプログラム可能論理装置を挙げることができるが、これらに限定されない。ハードウェアモジュールが作動すると、そのハードウェアモジュールは、ハードウェアモジュール内に含まれる方法及びプロセスを実行する。
本発明の実施形態の前述の説明は、例示及び説明のみを目的として、提示されている。それらの説明は、網羅的であることも、又は開示される形態に本発明を限定することも、意図するものではない。したがって、多くの修正態様及び変形態様が、当業者には明らかとなるであろう。本発明の範囲は、上述の開示によってではなく、添付の特許請求の範囲によって定義される。