[0024] 「例示的」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用される。本明細書で「例示的」であるとして説明されるいかなる実施形態も、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本発明の任意の他の態様とは無関係に実装されるか、本発明の任意の他の態様と組み合わされるかにかかわらず、本明細書で開示される新規のシステム、装置、および方法の任意の態様を包含するものであることを、当業者は諒解されたい。たとえば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法を包含するものとする。本明細書で開示されるいかなる態様も請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
[0025] 本明細書では特定の態様について説明するが、これらの態様の多くの変形形態および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であることが意図され、そのうちのいくつかが例として図面および好ましい態様の以下の説明において示される。発明を実施するための形態および図面は、限定的なものではなく本開示を説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびその等価物によって定義される。
[0026] 普及しているワイヤレスネットワーク技術は、様々なタイプのワイヤレスローカルエリアネットワーク(WLAN)を含み得る。WLANは、広く使用されるネットワーキングプロトコルを採用して、近接デバイスを互いに相互接続するために使用され得る。本明細書で説明される様々な態様は、ワイヤレスプロトコル、WiFi、またはより一般的には、ワイヤレスプロトコルのIEEE802.11ファミリーの任意のメンバーなど、任意の通信規格に適用され得る。たとえば、本明細書で説明される様々な態様は、サブ1GHz帯域を使用するIEEE802.11ahプロトコルの一部として使用され得る。
[0027] いくつかの実装形態では、WLANは、ワイヤレスネットワークにアクセスする構成要素である様々なデバイスを含む。たとえば、クライアント(局または「STA」とも呼ばれる)。たとえば、STAは、ラップトップコンピュータ、携帯情報端末(PDA)、モバイルフォンなどであり得る。一例では、STAは、インターネットまたは他のワイドエリアネットワークへの一般的接続性を得るために、WiFi(たとえば、IEEE802.11プロトコル)準拠ワイヤレスリンクを介して他のSTAに接続する。
[0028] 局「STA」はまた、アクセス端末(「AT」)、加入者局、加入者ユニット、移動局、モバイルデバイス、リモート局、リモート端末、ユーザ端末、ユーザエージェント、ユーザデバイス、ユーザ機器、または何らかの他の用語を含むか、それらのいずれかとして実装されるか、またはそれらのいずれかとして知られていることがある。いくつかの実装形態では、アクセス端末は、セルラー電話、コードレス電話、セッション開始プロトコル(「SIP」)電話、ワイヤレスローカルループ(「WLL」)局、携帯情報端末(「PDA」)、ワイヤレス接続能力を有するハンドヘルドデバイス、またはワイヤレスモデムに接続された何らかの他の適切な処理デバイスもしくはワイヤレスデバイスを含み得る。したがって、本明細書で教示される1つまたは複数の態様は、電話(たとえば、セルラーフォンまたはスマートフォン)、コンピュータ(たとえば、ラップトップ)、ポータブル通信デバイス、ヘッドセット、ポータブルコンピューティングデバイス(たとえば、個人情報端末)、エンターテインメントデバイス(たとえば、音楽もしくはビデオデバイス、または衛星ラジオ)、ゲームデバイスまたはシステム、全地球測位システムデバイス、あるいはワイヤレス媒体を介して通信するように構成された任意の他の好適なデバイスに組み込まれ得る。
[0029] 局のグループなどのデバイスは、たとえば、ネイバーフッドアウェアネットワーク(NAN:neighborhood aware network)、またはソーシャルWiFiネットワークにおいて使用され得る。たとえば、ネットワーク内の様々な局は、それらの局の各々がサポートするアプリケーションに関して、デバイス間(たとえば、ピアツーピア通信)ベースで互いと通信することができる。ソーシャルWiFiネットワークは、非集中タイプのワイヤレスネットワークである、アドホックワイヤレスネットワークであり得る。そのネットワークは、管理された(インフラストラクチャ)ワイヤレスネットワークにおけるアクセスポイントなど、先在するインフラストラクチャに依拠しないので、アドホックである。ソーシャルWiFiネットワークにおいて使用される発見プロトコルが、安全な通信と低電力消費とを保証しながら、モバイルデバイスが(たとえば、発見パケットまたはメッセージを送ることによって)自らを広告すること、ならびに(たとえば、ページングまたはクエリパケットまたはメッセージを送ることによって)他のSTAによって提供されたサービスを発見することを可能にすることが望ましい。
[0030] 図1は、本開示の態様が採用され得るワイヤレス通信システム100の一例を示す。ワイヤレス通信システム100は、第1のモバイルデバイスクラスタ110と、第2のモバイルデバイスクラスタ120と、第3のモバイルデバイスクラスタ130と、モバイルデバイス142とを含む。
[0031] 第1のモバイルデバイスクラスタ110は、モバイルデバイス112、114、116、118を含む。第2のモバイルデバイスクラスタ120は、モバイルデバイス118、122、124、126、128を含む。第3のモバイルデバイスクラスタ130は、モバイルデバイス132、134、136、138を含む。図1の特定の例では、モバイルデバイス142は、モバイルデバイスクラスタ110、120、130のいずれにも加入していない(たとえば、そのメンバーではない)。さらに、図1の特定の例では、モバイルデバイス118は、複数のモバイルデバイスクラスタ(すなわち、モバイルデバイスクラスタ110、120)に加入している(たとえば、そのメンバーである)。
[0032] ワイヤレス通信システム100は、他のモバイルデバイスのいずれかと通信することができる、モバイルデバイス112、114、116、118、122、124、126、128、132、134、136、および138を含み得る。一例として、モバイルデバイス112は、モバイルデバイス116と通信することができる。別の例として、モバイルデバイス112は、モバイルデバイス118と通信することができるが、この通信リンクは図1に示されない。
[0033] 様々なプロセスおよび方法が、モバイルデバイスのうちの任意の2つの間の、ワイヤレス通信システム100における送信のために使用され得る。たとえば、信号は、OFDM/OFDMA技法に従って送られ、受信され得る。そうである場合、ワイヤレス通信システム100は、OFDM/OFDMAシステムと呼ばれることがある。代替として、信号は、CDMA技法に従って、モバイルデバイスのうちの任意の2つの間で送られ、受信され得る。そうである場合、ワイヤレス通信システム100は、CDMAシステムと呼ばれることがある。
[0034] 様々な実施形態によれば、ワイヤレス通信システム100は、ネイバーフッドアウェアネットワークであってよく、モバイルデバイスクラスタ110、120、130のうちの1つまたは複数は、特定の共通のモバイルデバイスアプリケーションに関連付けられ得る。たとえば、モバイルデバイスクラスタ110、120、130の各々は、ソーシャルネットワーキングモバイルデバイスアプリケーション、ゲームモバイルデバイスアプリケーション、またはその組合せなど、それぞれの共通のモバイルデバイスアプリケーションに関連付けられ得る。
[0035] 動作時、ワイヤレス通信システム100のモバイルデバイスは、1つまたは複数のワイヤレス通信プロトコルに従って、ワイヤレス通信することができる。たとえば、少なくとも1つの実施形態では、ワイヤレス通信システム100のモバイルデバイスは、電気電子技術者協会(IEEE)802.11プロトコルに関連付けられた発見ビーコンなど、発見メッセージを送り、受信することができる。別の例として、ワイヤレス通信システム100のモバイルデバイスは、ワイヤレス通信システム100の各モバイルデバイスに共通であるネットワーク広告プロトコルを介して通信することができる。別の例として、第1のモバイルデバイスクラスタ110は、ネットワーク広告プロトコルとは異なる第2のプロトコルを使用して通信することができる。同様に、第2のモバイルデバイスクラスタ120は、ネットワーク広告プロトコルとは異なる第3のプロトコルを使用して通信することができ、第3のモバイルデバイスクラスタ130は、ネットワーク広告プロトコルとは異なる第4のプロトコルを使用して通信することができる。これに関連して、プロトコルは、それにおいて通信が発生するチャネル、通信のタイミング(たとえば、発見間隔のタイミング)など、通信するために使用されるパラメータを指す。
[0036] さらに例示のために、モバイルデバイス142は、オンになり、ワイヤレス通信システム100に共通のネットワーク広告プロトコルを介して第1の発見メッセージを受信するために、リスニング状態のままであり得る。たとえば、モバイルデバイス142は、モバイルデバイス122から第1の発見メッセージを受信することができる。第1の発見メッセージは、第2のモバイルデバイスクラスタ120に固有の情報を含んでよく、本明細書では「クラスタ発見メッセージ」と呼ばれることがある。たとえば、情報は、第2のモバイルデバイスクラスタ120に関連付けられたプロトコルの特性を指示することなどによって、第2のモバイルデバイスクラスタ120を指示(たとえば、広告)することができる。情報は、ネットワーク広告プロトコルに関連付けられたワイヤレスチャネルとは異なり得る、第2のモバイルデバイスクラスタ120に関連付けられたワイヤレスチャネルの指示を含み得る。代替または追加として、情報は、ネットワーク広告プロトコルに関連付けられたタイミングパラメータとは異なり得る、第2のモバイルデバイスクラスタ120に関連付けられたタイミングパラメータ(たとえば、発見間隔の開始時間および/または持続時間)の指示を含み得る。代替または追加として、情報は、(たとえば、ネットワークサイズがしきい値を超えることに基づいて、たとえば、第2のモバイルデバイスクラスタ120に関連付けられた推定帯域幅が小さすぎるかどうかに基づいて、モバイルデバイスが、第2のモバイルデバイスクラスタ120に加入するかどうかを決定することを可能にするために)第2のモバイルデバイスクラスタ120に関連付けられたネットワークサイズを含み得る。代替または追加として、情報は、第2のモバイルデバイスクラスタ120に関連付けられた、発見間隔および/または後続のリスニング間隔の持続時間を含み得る。代替または追加として、情報は、第2のモバイルデバイスクラスタ120に関連付けられた、ソーシャルネットワーキングモバイルデバイスアプリケーションまたはゲームモバイルデバイスアプリケーションについての情報など、クラスタ識別情報を含み得る。
[0037] 第1の発見メッセージを受信することに応答して、モバイルデバイス142は、第2のモバイルデバイスクラスタ120に関連付けられたプロトコルを使用して、モバイルデバイス122と通信するために、第1の発見メッセージ中の情報を使用することができる。たとえば、モバイルデバイス142は、第2のモバイルデバイスクラスタ120に加入するか、第2のモバイルデバイスクラスタ120に関連付けられた追加の情報(たとえば、モバイルデバイスアプリケーションに関係する情報)について、第2のモバイルデバイスクラスタ120のモバイルデバイスにクエリするか、またはその組合せを行うことができる。モバイルデバイス122と通信することは、(ネットワーク広告プロトコルに関連付けられた)第1のチャネルから、(第2のモバイルデバイスクラスタに関連付けられた)第2のチャネルへ、モバイルデバイス142のトランシーバを同調させることを含み得る。第2のチャネルに同調した後、モバイルデバイス142は、第2のモバイルデバイスクラスタ120に関連付けられる第2のタイミングパラメータによって決定される時間において、モバイルデバイス122から第2の発見メッセージを受信することができる。
[0038] 別の特定の例では、モバイルデバイス132は、ワイヤレス通信システム100に共通のネットワーク広告プロトコルを介して、第2の発見メッセージを送ることができる。第2の発見メッセージは、第3のモバイルデバイスクラスタ130に固有の情報を含み得る。1つまたは複数の他のデバイスが、第2の発見メッセージを受信することができる。たとえば、モバイルデバイス128は、モバイルデバイス132によって送られた第2の発見メッセージを受信することができる。モバイルデバイス132は、第3のモバイルデバイスクラスタ130に固有の情報に基づいて送られる、モバイルデバイス128からのメッセージを受信することができる。メッセージは、第3のモバイルデバイスクラスタ130に関連付けられたプロトコルを使用して送られ得る。モバイルデバイス128から送られたメッセージは、第3のモバイルデバイスクラスタ130に加入するための要求、第3のモバイルデバイスクラスタ130に関係する追加の情報についてのクエリ、またはその組合せであり得る。
[0039] 特定の実施形態では、モバイルデバイスクラスタ110、120および130の各々は、ワイヤレス通信システム100に共通のネットワーク広告プロトコルに関連付けられた発見間隔中に広告され得る。たとえば、ワイヤレス通信システム100に共通のネットワーク広告プロトコルに関連付けられた第1の発見間隔中に、第1のモバイルデバイスクラスタ110の特定のデバイス(モバイルデバイス114など)は、第1のモバイルデバイスクラスタ110を広告する発見メッセージを送ることができる。追加として、第1の発見間隔中に、第2のモバイルデバイスクラスタ120の特定のデバイス(モバイルデバイス126など)は、第2のモバイルデバイスクラスタ120を広告する発見メッセージを送ることができる。さらに、第1の発見間隔中に、第3のモバイルデバイスクラスタ130の特定のデバイス(モバイルデバイス136など)は、第3のモバイルデバイスクラスタ130を広告する発見メッセージを送ることができる。このようにして、第1の発見間隔中に、モバイルデバイス142は、(たとえば、ワイヤレス通信システム100に共通のネットワーク広告プロトコルに関連付けられたチャネルに同調することによって)ワイヤレス通信システム100に共通のネットワーク広告プロトコルを介して、モバイルデバイスクラスタの各々に関連付けられた発見メッセージを受信することができる。したがって、モバイルデバイス142は、特定のエリアにおいてアクティブであるモバイルデバイスクラスタを識別するために、(モバイルデバイスクラスタ110、120および130の各々に関連付けられたチャネルなど、様々なチャネルをスキャンする必要がない。
[0040] ワイヤレス通信システム100に共通のネットワーク広告プロトコルを利用することは、モバイルデバイスの特定のクラスタ(たとえば、モバイルデバイスクラスタ110、120、130のいずれか)に関係する情報の送信と受信とを可能にすることができることは諒解されよう。さらに、ネットワーク広告プロトコルとは異なるクラスタ固有のプロトコルに従って通信することによって、モバイルデバイスクラスタ110、120、130の各々は、特定のモバイルデバイスクラスタに関連付けられた1つまたは複数の特定のモバイルデバイスアプリケーションなど、クラスタ固有の特性に従って、通信を適合させることができる。
[0041] 図2は、ワイヤレス通信システム100内で採用され得るワイヤレスデバイス202において利用され得る様々な構成要素を示す。ワイヤレスデバイス202は、本明細書で説明される様々な方法を実施するように構成され得るデバイスの一例である。たとえば、ワイヤレスデバイス202は、モバイルデバイスのうちの1つを含み得る。
[0042] ワイヤレスデバイス202は、ワイヤレスデバイス202の動作を制御するプロセッサ204を含み得る。プロセッサ204は、中央処理ユニット(CPU)と呼ばれることもある。読取り専用メモリ(ROM)とランダムアクセスメモリ(RAM)の両方を含むことができるメモリ206は、命令とデータとをプロセッサ204に与えることができる。メモリ206の一部はまた、不揮発性ランダムアクセスメモリ(NVRAM)を含み得る。プロセッサ204は、通常、メモリ206内に記憶されたプログラム命令に基づいて、論理演算と算術演算とを実施する。メモリ206中の命令は、本明細書で説明される方法を実施するように実行可能であり得る。
[0043] プロセッサ204は、1つまたは複数のプロセッサとともに実装された処理システムを含み得るか、またはその構成要素であり得る。1つまたは複数のプロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、専用ハードウェア有限状態機械、または情報の計算もしくは他の操作を実施することができる任意の他の好適なエンティティの任意の組合せを用いて実装され得る。
[0044] 処理システムは、ソフトウェアを記憶するための機械可読媒体をも含み得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、任意のタイプの命令を意味すると広く解釈されたい。命令は、(たとえば、ソースコード形式、バイナリコード形式、実行コード形式、または他の適切なコード形式の)コードを含むことができる。命令は、1つまたは複数のプロセッサによって実行されたとき、処理システムに本明細書で説明される様々な機能を実施させる。
[0045] ワイヤレスデバイス202はまた、ワイヤレスデバイス202とリモートロケーションとの間のデータの送信と受信とを可能にするために送信機210および/または受信機212を含み得る、ハウジング208を含み得る。送信機210と受信機212とは組み合わされてトランシーバ214になり得る。アンテナ216は、ハウジング208に取り付けられ、トランシーバ214に電気的に結合され得る。ワイヤレスデバイス202はまた、複数の送信機、複数の受信機、複数のトランシーバ、および/または複数のアンテナ(図示せず)を含むことができる。
[0046] 送信機210は、異なるパケットタイプまたは機能を有するパケットをワイヤレスに送信するように構成され得る。たとえば、送信機210は、プロセッサ204によって生成された異なるタイプのパケットを送信するように構成され得る。ワイヤレスデバイス202がモバイルデバイスとして実装または使用されるとき、プロセッサ204は、複数の異なるパケットタイプのパケットを処理するように構成され得る。たとえば、プロセッサ204は、パケットのタイプを決定し、それに応じて、パケットおよび/またはパケットのフィールドを処理するように構成され得る。ワイヤレスデバイス202がモバイルデバイスとして実装または使用されるとき、プロセッサ204はまた、複数のパケットタイプのうちの1つを選択および生成するように構成され得る。たとえば、特定の事例では、プロセッサ204は、(クラスタ発見メッセージおよび/または発見メッセージなどの)発見パケットを生成し、何のタイプのパケット情報を使用するべきかを決定するように構成され得る。
[0047] 受信機212は、異なるパケットタイプを有するパケットをワイヤレスに受信するように構成され得る。いくつかの態様では、受信機212は、使用されたパケットのタイプを検出し、それに応じて、パケットを処理するように構成され得る。
[0048] ワイヤレスデバイス202はまた、トランシーバ214によって受信された信号のレベルを検出および定量化するために使用され得る、信号検出器218を含み得る。信号検出器218は、総エネルギー、シンボルごとのサブキャリア当たりのエネルギー、電力スペクトル密度および他の信号などの信号を検出することができる。ワイヤレスデバイス202はまた、信号を処理する際に使用するためのデジタル信号プロセッサ(DSP)220を含み得る。DSP220は、送信のためにパケットを生成するように構成され得る。いくつかの態様では、パケットは物理レイヤデータユニット(PPDU)を含み得る。
[0049] ワイヤレスデバイス202は、いくつかの態様では、ユーザインターフェース222をさらに含み得る。ユーザインターフェース222は、キーパッド、マイクロフォン、スピーカー、および/またはディスプレイを含み得る。ユーザインターフェース222は、ワイヤレスデバイス202のユーザに情報を伝達し、および/またはユーザからの入力を受信する、任意の要素または構成要素を含み得る。
[0050] ワイヤレスデバイス202の様々な構成要素は、バスシステム226によって互いに結合され得る。バスシステム226は、たとえば、データバスを含み得、ならびに、データバスに加えて、電力バスと、制御信号バスと、ステータス信号バスとを含み得る。ワイヤレスデバイス202の構成要素は、何らかの他の機構を使用して、互いに結合されるか、または互いに対する入力を受け付けるかもしくは与え得る。
[0051] いくつかの別々の構成要素が図2に示されているが、それらの構成要素のうちの1つまたは複数は、組み合わされるか、または共通に実装されることがある。たとえば、プロセッサ204は、プロセッサ204に関して上記で説明された機能を実装するためだけでなく、信号検出器218および/またはDSP220に関して上記で説明された機能を実装するためにも使用され得る。さらに、図2に示される構成要素の各々は、複数の別々の要素を使用して実装され得る。
[0052] 複数のモバイルデバイス間の適切な通信を可能にするために、モバイルデバイスは、モバイルデバイスの特性に関する情報を受信することができる。たとえば、モバイルデバイス142(図1)は、モバイルデバイス142とモバイルデバイス114(図1)との間の通信のタイミングを同期させるために、モバイルデバイス114についてのタイミング情報を受信することができる。代替または追加として、モバイルデバイス142は、別のモバイルデバイスの媒体アクセス制御(MAC)アドレスなど、他の情報を受信することができる。モバイルデバイス142は、メモリ206とプロセッサ204とを使用して実行されるソフトウェアを通してなど、そのような情報を単独で必要とするかどうかを決定することができる。
[0053] モバイルデバイス142(図1)は、複数の動作モードを有し得る。たとえば、モバイルデバイス142は、アクティブモード、通常動作モード、または全出力モードと呼ばれる第1の動作モードを有し得る。アクティブモードでは、モバイルデバイス142は、常に「アウェイク」状態であってよく、別のモバイルデバイスとデータをアクティブに送信/受信することができる。さらに、モバイルデバイス142は、省電力モードまたはスリープモードと呼ばれる第2の動作モードを有し得る。省電力モードでは、モバイルデバイス142は、「アウェイク」状態であり得るか、または、モバイルデバイス142が別のモバイルデバイスとデータをアクティブに送信/受信しない「ドーズ」もしくは「スリープ」状態であり得る。たとえば、モバイルデバイス142の受信機212、ならびに、場合によってはDSP220および信号検出器218は、ドーズ状態で低減された電力消費を使用して動作することができる。さらに、省電力モードでは、モバイルデバイス142は、別のモバイルデバイスとデータを送信/受信することが可能になるように、モバイルデバイスがある時間において「ウェイクアップ」する(たとえば、アウェイク状態に入る)必要があるかどうかをモバイルデバイスに指示する、他のモバイルデバイスからのメッセージ(たとえば、ページングメッセージ)をリッスンするために、時々アウェイク状態に入ることができる。
[0054] 上記で説明されたように、ワイヤレスデバイス202は、AP104またはSTA106を備え得、通信を送信および/または受信するために使用され得る。図3は、ワイヤレス通信を送信するためにワイヤレスデバイス202において利用され得る送信機モジュール300を示す。図3に示された構成要素は、たとえば、OFDM通信を送信するために使用され得る。
[0055] 送信機モジュール300は、送信のためにビットを変調するように構成された変調器302を備え得る。たとえば、送信機モジュール300が図2のワイヤレスデバイス202の構成要素として使用される場合、変調器302は、たとえばコンスタレーションに従ってビットを複数のシンボルにマッピングすることによって、プロセッサ204またはユーザインターフェース222から受信されたビットから複数のシンボルを決定し得る。それらのビットは、ユーザデータまたは制御情報に対応し得る。いくつかの態様では、それらのビットはコードワードにおいて受信される。一態様では、変調器302は、QAM(直交振幅変調)変調器、たとえば、16QAM変調器または64QAM変調器を備える。他の態様では、変調器302は、2位相シフトキーイング(BPSK)変調器または4位相シフトキーイング(QPSK)変調器を備える。
[0056] 送信機モジュール300は、変調器302からのシンボルまたはさもなければ変調されたビットを時間領域に変換するように構成された変換モジュール304をさらに備え得る。図3では、変換モジュール304は、逆高速フーリエ変換(IFFT)モジュールによって実装されるものとして示されている。いくつかの実装形態では、異なるサイズのデータのユニットを変換する複数の変換モジュール(図示せず)が存在する場合がある。
[0057] 図3では、変調器302および変換モジュール304は、DSP320中に実装されるものとして示されている。しかしながら、いくつかの態様では、変調器302と変換モジュール304の一方または両方は、プロセッサ204中でなど、ワイヤレスデバイス202の他の構成要素中で実装され得る。
[0058] 概して、DSP320は、送信のためのデータユニットを生成するように構成され得る。いくつかの態様では、変調器302および変換モジュール304は、制御情報を含む複数のフィールドと複数のデータシンボルとを備えるデータユニットを生成するように構成され得る。制御情報を含むそれらのフィールドは、たとえば、1つまたは複数のトレーニングフィールドと、1つまたは複数の信号(SIG)フィールドとを備える場合がある。トレーニングフィールドの各々は、ビットまたはシンボルの既知のシーケンスを含み得る。SIGフィールドの各々は、データユニットに関する情報、たとえばデータユニットの長さまたはデータレートの記述を含み得る。
[0059] 図3の説明に戻ると、送信機モジュール300は、変換モジュールの出力をアナログ信号に変換するように構成されたデジタルアナログ変換器306をさらに備え得る。たとえば、変換モジュール306の時間領域出力は、デジタルアナログ変換器306によってベースバンドOFDM信号に変換され得る。いくつかの態様では、送信機モジュール300の一部は、図2からのワイヤレスデバイス202中に含まれ得る。たとえば、デジタルアナログ変換器306は、プロセッサ204、トランシーバ214中で、またはワイヤレスデバイス202の別の要素中で実装され得る。
[0060] アナログ信号は、送信機310によってワイヤレスに送信され得る。アナログ信号は、送信機310によって送信される前に、たとえばフィルタ処理されることによって、または中間周波数もしくは搬送周波数にアップコンバートされることによって、さらに処理され得る。図3に示された態様では、送信機310は送信増幅器308を含む。送信されるより前に、アナログ信号は送信増幅器308によって増幅され得る。いくつかの態様では、増幅器308は低雑音増幅器(LNA)を備える。
[0061] 送信機310は、アナログ信号に基づいてワイヤレス信号中で1つまたは複数のパケットまたはデータユニットを送信するように構成される。それらのデータユニットは、プロセッサおよび/またはDSP320を使用して、たとえば上記で説明されたように変調器302と変換モジュール304とを使用して、生成され得る。上記で説明されたように生成され、送信され得るデータユニットについて、図5〜図7に関して以下でさらに詳細に説明する。
[0062] 図4は、ワイヤレス通信を受信するためにワイヤレスデバイス202において利用され得る受信モジュール400を示す。図4に示された構成要素は、たとえば、OFDM通信を受信するために使用され得る。いくつかの態様では、図4に示された構成要素は、以下でさらに詳細に説明されるように、1つまたは複数のトレーニングフィールドを含むデータユニットを受信するために使用される。たとえば、図4に示された構成要素は、図3に関して上記で説明された構成要素によって送信されたデータユニットを受信するために使用され得る。
[0063] 受信機412は、ワイヤレス信号中の1つまたは複数のパケットまたはデータユニットを受信するように構成される。以下で説明されるように受信され、復号され、またはさもなければ処理され得るデータユニットについて、図5〜図7に関してさらに詳細に説明する。
[0064] 図4に示された態様では、受信機412は受信増幅器401を含む。受信増幅器401は、受信機412によって受信されたワイヤレス信号を増幅するように構成され得る。いくつかの態様では、受信機412は、自動利得制御(AGC)手順を使用して、受信増幅器401の利得を調整するように構成される。いくつかの態様では、自動利得制御は、たとえば、利得を調整するために、受信されたショートトレーニングフィールド(STF)などの1つまたは複数の受信されたトレーニングフィールド内の情報を使用する。当業者はAGCを実施するための方法を理解されよう。いくつかの態様では、増幅器401はLNAを備える。
[0065] 受信モジュール400は、受信機412からの増幅されたワイヤレス信号をそのデジタル表現に変換するように構成されたアナログデジタル変換器402を備え得る。増幅されることに加えて、ワイヤレス信号は、デジタルアナログ変換器402によって変換される前に、たとえばフィルタ処理されることによって、または中間周波数もしくはベースバンド周波数にダウンコンバートされることによって、処理され得る。いくつかの態様では、アナログデジタル変換器402は、図2のプロセッサ204、トランシーバ214中で、またはワイヤレスデバイス202の別の要素中で実装され得る。
[0066] 受信モジュール400は、表現ワイヤレス信号を周波数スペクトルに変換するように構成された変換モジュール404をさらに備え得る。図4では、変換モジュール404は、高速フーリエ変換(FFT)モジュールによって実装されるものとして示されている。いくつかの態様では、変換モジュールは、それが使用する各点についてシンボルを識別し得る。
[0067] 受信モジュール400は、データユニットがそれを介して受信されるチャネルの推定値を形成することと、チャネル推定値に基づいてチャネルのいくつかの影響を除去することとを行うように構成された、チャネル推定器および等化器405をさらに備え得る。たとえば、チャネル推定器は、チャネルの関数を近似するように構成され得、チャネル等化器は、その関数の逆を周波数スペクトルにおけるデータに適用するように構成され得る。
[0068] いくつかの態様では、チャネル推定器および等化器405は、たとえば、チャネルを推定するために、ロングトレーニングフィールド(LTF)など、1つまたは複数の受信されたトレーニングフィールド中の情報を使用する。チャネル推定値は、データユニットの始めにおいて受信された1つまたは複数のLTFに基づいて形成され得る。このチャネル推定値は、その後、1つまたは複数のLTFに続くデータシンボルを等化するために使用され得る。一定の時間期間の後または一定数のデータシンボルの後、データユニット内で1つまたは複数の追加のLTFが受信され得る。追加のLTFを使用して、チャネル推定値が更新され得るか、または新しい推定値が形成され得る。この新しいまたは更新チャネル推定値は、追加のLTFに続くデータシンボルを等化するために使用され得る。いくつかの態様では、新しいまたは更新されたチャネル推定値は、追加のLTFに先行するデータシンボルを再等化するために使用される。当業者はチャネル推定値を形成するための方法を理解されよう。
[0069] 受信モジュール400は、等化されたデータを復調するように構成された復調器406をさらに備え得る。たとえば、復調器406は、たとえばコンスタレーションにおけるシンボルへのビットのマッピングを逆転させることによって、変換モジュール404とチャネル推定器および等化器405とによって出力されたシンボルから複数のビットを決定し得る。いくつかの態様では、受信モジュール400がワイヤレスデバイス202の一部分として実装される場合、それらのビットは、プロセッサ204によって処理または評価され得るか、あるいはユーザインターフェース222に情報を表示するかまたはさもなければ出力するために使用され得る。このようにして、データおよび/または情報が復号され得る。いくつかの態様では、それらのビットはコードワードに対応する。一態様では、復調器406は、QAM(直交振幅変調)復調器、たとえば16QAM復調器または64QAM復調器を備える。他の態様では、復調器406は、2位相シフトキーイング(BPSK)復調器または4位相シフトキーイング(QPSK)復調器を備える。
[0070] 図4では、変換モジュール404、チャネル推定器および等化器405、ならびに復調器406は、DSP420中に実装されるものとして示されている。しかしながら、いくつかの態様では、変換モジュール404、チャネル推定器および等化器405、ならびに復調器406のうちの1つまたは複数は、プロセッサ204中でなど、ワイヤレスデバイス202の別の構成要素中で実装され得る。
[0071] 上記で説明されたように、受信機412において受信されたワイヤレス信号は、1つまたは複数のデータユニットを備える。これらのデータユニットは、上記で説明された構成要素を使用して、復号、評価および/または処理され得る。たとえば、プロセッサおよび/またはDSP420は、変換モジュール404と、チャネル推定器および等化器405と、復調器406とを使用して、データユニット中のデータシンボルを復号するために使用され得る。
[0072] AP104とSTA106とによって交換されるデータユニットは、制御情報またはデータを含み得る。物理(PHY)レイヤにおいて、これらのデータユニットは、物理レイヤプロトコルデータユニット(PPDU)と呼ばれる場合がある。いくつかの態様では、PPDUはパケットまたは物理レイヤパケットと呼ばれることがある。各PPDUはプリアンブルとペイロードとを備え得る。プリアンブルはトレーニングフィールドとSIGフィールドとを含み得る。たとえば、トレーニングフィールドは、1つまたは複数のロングトレーニングフィールド(LTF)と1つまたは複数のショートトレーニングフィールド(STF)とを含み得る。ペイロードは、メディアアクセス制御(MAC)ヘッダおよび/またはユーザデータを備え得る。ペイロードは、BPSKシンボルまたはQPSKシンボルなど、1つまたは複数のデータシンボルを使用して送信され得る。
[0073] モバイルデバイスクラスタ(110、120、および130)など、ソーシャルWiFiネットワークにおいて、スケーラブルな動作を可能にするために、ネットワークにおける各デバイスによる送信は、ネットワークにおけるデバイスの数に基づいて制御されるべきである。たとえば、ネットワークにおけるデバイスの数に基づいて、ビーコンおよび/またはタイミング信号が送信される際のレートを調整することが、望ましいことがある。多数の適用例では、ネットワークにおけるデバイスの数の概算推定値を取得することは、十分である。ワイヤレスデバイスがネットワークにおけるデバイスの数を追跡するための1つの方法は、メッセージにおいて受信され、デバイスを表す、任意の識別子を単に記憶することである。新しいメッセージが受信されるときは常に、デバイスは、新しいメッセージ中の識別子を、デバイスにおいてすでに記憶されている識別子と比較し、その識別子が前に記憶されていない場合、その識別子を記憶することになる。ただし、この手法は、大きいメモリ要件と、より多数の受信された識別子をソートする必要性とにつながり得る。したがって、より大きいメモリ要件と、識別子をソートする必要性とを大きく低減することができる、ワイヤレスネットワークにおけるデバイスの数を追跡する方法を有することが、有益である。
[0074] 以下で説明されるような実装形態では、ブルームフィルタ(以下でさらに詳細に説明される)が、ネットワークにおけるデバイスの識別子を追跡するために使用される。ブルームフィルタは、k個のハッシュ関数がそれに関連付けられた、mビットのビットアレイである。別のワイヤレスデバイスに関連付けられた識別子を含むメッセージが、別のワイヤレスデバイスから受信されるときは常に、その識別子がブルームフィルタに追加される。ブルームフィルタにおける0の密度が、ブルームフィルタにおいてデバイスの数を推定するために使用される。いくつかの態様では、1の密度が、ブルームフィルタにおいてデバイスの数を推定するために使用され得る。ブルームフィルタは、あらかじめ定義されたビット数を含み、各ビットは、0または1のいずれかに設定され得るので、0の数が知られると、ブルームフィルタにおける1の数を決定することは、数学的に単純であり、その逆も同様であり得る。したがって、ネットワークにおけるデバイスの数を決定するために、ブルームフィルタにおける0の数または1の数のいずれかが使用され得る。
[0075] 図5は、一実装形態による、ワイヤレスネットワークにおけるワイヤレスデバイスの数を監視する方法のフローチャートである。方法500は、(図1に示された)モバイルデバイス112などのワイヤレスデバイスによって実施され得る。一実装形態では、ワイヤレスネットワークは、ソーシャルWiFiネットワークまたはアドホックネットワークである。ワイヤレスネットワークは、(図1に示された)モバイルデバイスクラスタ1120、120および130であり得る。ただし、方法はまた、インフラストラクチャタイプのワイヤレスネットワーク(たとえば、アクセスポイントを含むネットワーク)において使用されてもよく、ここにおいて、ワイヤレスデバイスは、それらの周囲の他のデバイスの数に基づいて、それらの挙動を緩和し得る。
[0076] ブロック502で、方法は、ワイヤレスデバイスからメッセージを受信することを含み、メッセージは、ワイヤレスデバイスに関連付けられた識別子を備える。メッセージは、たとえば、ワイヤレスネットワークにおける別のワイヤレスデバイス(「近隣ワイヤレスデバイス」とも呼ばれる)から、(図2に示された)ワイヤレスデバイス202の受信機212によって受信され得る。「近隣ワイヤレスデバイス」という用語は、単に、同じワイヤレスネットワークにおける別のワイヤレスデバイスを指す。メッセージは、別のワイヤレスデバイスからの任意のパケットまたはフレームであり得る。例示的な実装形態では、メッセージは、近隣ワイヤレスデバイスに関連付けられた識別子を含む。
[0077] ブロック504へ進むと、方法は、ブルームフィルタに識別子を追加(または入力)することを含む。このプロセスは、たとえば、(図2に示された)ワイヤレスデバイス202のプロセッサ204によって実施され得る。一実装形態では、メッセージが別のワイヤレスデバイスから受信されるときは常に、識別子がブルームフィルタに追加される。
[0078] ブルームフィルタは、空間効率の良い確率的データ構造である。ブルームフィルタは、mビットのビットアレイと、k個の異なるハッシュ関数とを含む。各ビットは、0または1の値を有し得る。k個の異なるハッシュ関数の各々は、一様なランダム分布をもつm個のアレイ位置のうちの1つに、入力文字列をマッピングする。例示的な実装形態では、mビットはすべて0に初期化される。識別子が受信されるときは常に、識別子がブルームフィルタに追加される。ブルームフィルタに識別子を追加するプロセスは、a)k個のハッシュ関数の各々に入力文字列として識別子を供給することと、ここにおいて、各ハッシュ関数は、1つのアレイ位置に入力文字列をマッピングする、b)k個のハッシュ関数によって識別されたアレイ位置におけるビットを、1に設定することとを含む。
[0079] 次にブロック506で、方法は、ブルームフィルタにおける0の数に基づいて、ブルームフィルタに追加された別個の文字列の数を推定することを含み、ここにおいて、別個の文字列の数は、ワイヤレスネットワークにおけるワイヤレスデバイスの数の推定値を表す。このプロセスは、たとえば、(図2に示された)ワイヤレスデバイス202のプロセッサ204によって実施され得る。一実装形態では、別個の文字列の数が、ブルームフィルタにおける1の密度(または、ブルームフィルタにおける0の密度)に基づいて決定される。別個の入力の推定数、別個の文字列の数
N distinct。ブルームフィルタに追加された
N distinctは、たとえば、次の公式によって計算され得る。
ただし、
N 0は、ブルームフィルタのmビットアレイにおける0の数を示す。したがって、方法は、個々の識別子を追跡または記憶する必要なしに、ワイヤレスネットワークにおけるデバイスの数を監視することを可能にする。結果として、方法は、少ない記憶空間のみを必要とする。1つの代替移植では、公式(1)は、次のように簡略化され得る。
公式(1a)は、特にmが十分に大きいとき、log(1−1/m)が1/mにほぼ等しいという事実を活用する。
[0080] 一実装形態では、方法は、任意のプロセスをさらに含んでよく、ここにおいて、第1のワイヤレスデバイスがワイヤレスネットワークに加入するとき、そのワイヤレスデバイスは、第2のワイヤレスデバイスに、第2のデバイスの現在のブルームフィルタを提供するように要求する。これは、第1のデバイスがワイヤレスネットワークにおけるデバイスの数の傾向を得ることを助ける。この時点から、第1のデバイスは、第2のデバイスから受信されたブルームフィルタを更新することによって、いかなる追加のデバイスをもカウントすることができる。一実装形態では、第2のワイヤレスデバイスは、第1のデバイスのネイバーのうちの1つであり得る。別の実装形態では、第1のワイヤレスデバイスは、複数の近隣ワイヤレスデバイスに、それらの現在のブルームフィルタを提供するように要求し得る。第1のワイヤレスデバイスが、2つ以上のワイヤレスデバイスからブルームフィルタを受信する場合、第1のワイヤレスデバイスは、受信されたブルームフィルタのビットOR演算を実施し、得られたブルームフィルタを、第1のワイヤレスデバイスのための現在のブルームフィルタとして記憶し得る。一実装形態では、ワイヤレスデバイスは、1つの近隣ワイヤレスデバイスからメッセージを受信してよく、メッセージは、近隣ワイヤレスデバイスのブルームフィルタと、近隣ワイヤレスデバイスのブルームフィルタが開始された時間とを含む。これは、ブルームフィルタを受信するワイヤレスデバイスが、受信されたブルームフィルタが古すぎるかどうかと、受信されたブルームフィルタが満了することを可能にするかどうかとを、知ることを可能にする。
[0081] いくつかの適用例では、この方法によって行われる推定の精度は、いくつかのワイヤレスデバイスがネットワークを離れていくことを明示的に指示することなく離脱することによって損なわれ得る。追加として、この方法の精度はまた、いくつかのワイヤレスデバイスがセキュリティの理由のためにそれらのMACアドレスを連続して変更することによっても損なわれる。これらの要因の影響に対処するための様々な方法がある。たとえば、方法は、ワイヤレスデバイスがランダムな時間の間隔において、ブルームフィルタのランダムに選択されたビットをリセットすることを可能にする、任意のプロセスをさらに含み得る。リセットされるべきビット数、およびランダムな間隔の分布は、次の、ネットワークにおけるワイヤレスデバイスの数、ワイヤレスデバイスがネットワークを離れるレート(外部ソースから来ることがある)、および、ワイヤレスデバイスがそれらのアドレスを変更する間隔のうちの1つまたは複数に基づいて、決定され得る。一実装形態では、ブルームフィルタの選択されたビットをリセットするこのプロセスはまた、発見メッセージが、ネットワークにおけるデバイスの数をカウントする際にブルームフィルタによって完全に無視されるとは限らないことを保証するために、発見メッセージを時々送ることを、ワイヤレスデバイスに要求する。ワイヤレスデバイスがそのような発見メッセージを送る頻度は、ブルームフィルタの選択されたビットをリセットするためのそのようなプロセスのパラメータによって決定される。
[0082] 代替として、方法は、ブルームフィルタにおけるmビットアレイのビットごとにカウンタを割り当て得る。mビットアレイのためのm個のカウンタがあってよく、各カウンタは、mビットアレイの異なるビットに割り当てられる。カウンタは、0と最大値C_maxとの間の整数値に設定され得る。たとえば、カウンタが3ビットを有する場合、C_maxは、7の値を有し得る。ブルームフィルタにおけるmビットアレイのビットが1に設定されるたびに、そのビットに関連付けられたカウンタが、C_maxの値にリセットされる。非0値を有する各カウンタの値は、持続時間Tの時間間隔ごとに1だけ低減される。たとえば、持続時間Tは、適用例に応じて、100マイクロ秒または1分であり得る。一実装形態では、持続時間Tは、次の、ワイヤレスデバイスがネットワークを離れるレート(外部ソースから来ることがある)、および、ワイヤレスデバイスがそれらのアドレスを変更する間隔のうちの1つまたは複数に基づいて、決定され得る。カウンタの値が0に低減されるとき、そのカウンタに対応するビットが0に設定される。上記で説明されたように、ネットワークのサイズは、0に設定されるかまたは1に設定される、ブルームフィルタにおけるビットに基づいて、推定され得る。
[0083] 一実装形態では、方法は、任意のプロセスをさらに含んでよく、ここにおいて、ワイヤレスデバイスは、握りこぶし近隣ワイヤレスデバイスにブルームフィルタのコピーを要求する。ワイヤレスデバイスは、次いで、ワイヤレスデバイスのブルームフィルタと、第1の近隣ワイヤレスデバイスのブルームフィルタとのビットANDを実施することによって、第1のブルームフィルタを生成する。ワイヤレスは、次いで、第1のブルームフィルタに基づいて、ワイヤレスデバイスおよび第1の近隣ワイヤレスデバイスが共有する、近隣ワイヤレスデバイスの数を推定する。第1のブルームフィルタにおける1の密度はまた、ネイバーのセットの交差におけるデバイスの数の良い推定値でもある。
[0084] 上記で説明されたように、ブルームフィルタは、k個の異なるハッシュ関数を含み、その各々は、ビットアレイ中のビット位置に入力文字列をマッピングする。ハッシュ関数は、たとえば、入力文字列の巡回冗長検査(CRC)であり得る。一実装形態では、k個の異なるハッシュ関数は、単一のハッシュ関数(たとえば、CRC)とk個の異なる文字列(「修正文字列(modification string)」と呼ばれる)とを使用して作成され得る。ブルームフィルタへの入力文字列(「ブルーム入力文字列」と呼ばれる)ごとに、k個の異なる入力文字列(「ハッシュ入力文字列」と呼ばれる)が生成され、ここにおいて、各ハッシュ入力文字列は、k個の修正文字列のうちの異なる1つとともにブルーム入力文字列を付加することによって作成される。その後、k個の異なるハッシュ入力文字列の各々が、単一のハッシュ関数に供給され、したがって、ビットアレイ中にビット位置が生成される。k個の異なるハッシュ入力文字列があるので、ビットアレイ中のk個のビット位置が識別される(そのうちのいくつかは、同じピット位置であり得る)。結果として、ブルームフィルタは、単一のハッシュ関数とk個の異なる文字列とを使用して、k個の異なるハッシュ関数をシミュレートする。
[0085] 別の実装形態では、k個のハッシュ入力文字列は、異なる方法で作成され得る。一例では、各ハッシュ入力文字列は、修正文字列のうちの異なる1つをブルーム入力文字列に付加することによって作成され得る。別の例では、各ハッシュ入力ハッシュ入力文字列は、修正文字列のうちの異なる1つをブルーム入力文字列の中間に挿入することによって作成され得る。
[0086] 上記で説明されたように、ブルームフィルタは、mビットのビットアレイと、k個の異なるハッシュ関数とを含む。一実装形態では、ハッシュ関数の数kは、1の値を有し、ビットアレイのサイズmは、推定されるべきワイヤレスネットワークの最大サイズの約2倍である値を有する。いくつかの適用例では、この単純なブルームフィルタは、ネイバーの数を推定する問題のために十分である。別の実装形態では、ブルームフィルタは、最大N個のデバイスを追跡するように設計され、ブルームフィルタのビットアレイmは、Nビットを有するように設計される。別の実装形態では、ブルームフィルタのサイズ(パラメータmおよびkの値)は、次の公式を使用して、ブルームフィルタに記憶されるべき別個の識別子の所望の数(nによって示される)と、フィルタに追加されていない識別子がブルームフィルタ中にあると決定される、所望の誤警報確率(pによって示される)とに基づいて、決定され得る。
[0087] 一実装形態では、メッセージ中の識別子は、近隣ワイヤレスデバイス、またはサービスもしくはアプリケーションに関連付けられ得る。メッセージ中の識別子は、フレームを送るワイヤレスデバイスを識別する発見フレームのMACアドレスであり得る。識別子はまた、フレーム中のサービス識別子であってもよく、ここにおいて、サービス識別子は、フレームの本体中にあってよく、または、フレーム中のアドレスフィールドのうちの1つに取って代わってよい。別の例として、識別子は、特定のアプリケーションに基づき、フレームの本体に位置する、識別子であり得る。したがって、方法は、ワイヤレスデバイスが受信する別個の識別子の数を推定するために、ブルームフィルタを使用する。
[0088] 図6は、一実装形態による、ブルームフィルタの1つの例示的な例を示す。ブルームフィルタは、すべてが0に初期化されたmビットのビットアレイ(600)と、k個の異なるハッシュ関数(図示せず)とを含み、ここにおいて、m=18、およびk=3である。k個の異なるハッシュ関数の各々は、一様なランダム分布をもつm個のアレイ位置のうちの1つに、入力文字列をマッピングまたはハッシングする。3つの入力文字列、すなわち、x、y、およびzが、ブルームフィルタに追加されている。入力文字列xに対して、ブルームフィルタは、図6においてxで始まる3本の矢印によって示されるように、(図示されないk個のハッシュ関数を使用して)入力文字列xをビットアレイ中の3つの異なるビット位置にマッピングする。結果として、入力文字列「x」に対応する3つのビット位置は、すべて1の値を有する。同様に、入力文字列yおよびzは、これらの文字列の各々をビットアレイ中の3つの異なるビット位置にマッピングし、これらのビット位置を1の値に設定することによって、ブルームフィルタに追加される。ブルームフィルタの得られたビットアレイが、図6に示されている。入力文字列wがブルームフィルタに追加されたかどうかを決定するために、ブルームフィルタは、wで始まる3本の矢印によって示されるように、入力文字列wをビットアレイ中の3つのビット位置にマッピングする。入力文字列wに対応するビット位置のうちの1つが0の値を有するので、入力文字列wはブルームフィルタ中にないと決定される。この決定は、ブルームフィルタがx、y、およびzのみを記憶し、wを記憶していないので、正しい。
[0089] 図7は、ネットワークにおけるワイヤレスデバイスの数と、ブルームフィルタからの推定された数とを比較する、シミュレーション結果700を示す。図8は、推定誤り率対ネットワークにおけるワイヤレスデバイスの数を示す、シミュレーション結果800を示す。シミュレーションでは、ブルームフィルタは、600バイトのビットアレイと、4個のハッシュ関数とを有する。図7および図8に示されるように、シミュレーション結果は、50個を超えるデバイスを含むワイヤレスネットワークでは、推定誤りがデバイスの実際の数の約2%以内であることを示している。
[0090] 上記の実装形態のいくつかでは、ブルームフィルタは、k個の異なるハッシュ関数(「ブルームハッシュ関数」と呼ばれる)を含み、その各々は、mビットのビットアレイ中のビット位置に入力文字列をマッピングする。ブルームハッシュ関数は、0とp−1との間の単一の整数に入力文字列をマッピングするハッシュ関数(「一般ハッシュ関数(general hash function)」と呼ばれる)を使用して実現されてよく、ここにおいて、pはmと同様である。ブルームハッシュ関数は、0とp−1との間の単一の整数に入力文字列をマッピングするために、一般ハッシュ関数を最初に使用し、次いで、単一の整数をmで除算した余りを発見するために、モジュロ演算を適用することによって実現されてよく、ここにおいて、余りは、mビットのビットアレイ中のビット位置に対応する。余りは、ブルームハッシュ関数によって返される値である。したがって、ブルームハッシュ関数は、次のように表され得る。
[0091] 一実装形態では、一般ハッシュ関数は、たとえば、入力文字列の巡回冗長検査(CRC)であり得る。一実装形態では、ブルームフィルタの一般ハッシュ関数は、入力文字列から複数のビットを選択し、パターンに従って、シーケンスにおいてそれらのビットを配列する関数であり得る。ビットのシーケンスの値は、したがって、一般ハッシュ関数の出力整数を表す。入力文字列から選択されたビットは、必ずしも入力文字列内で連続的であるとは限らない。一般ハッシュ関数は、あらかじめ定義されたパターンに基づいて、ビットシーケンスを生成し得る。たとえば、あらかじめ定義されたパターンは、最初のビット、最後のビット、中央のビット、開始からあらかじめ定義されたオフセットにおけるビット、または、終了からあらかじめ定義されたオフセットにおけるビットから開始する、入力文字列のBビットのシーケンスを定義し得る。あらかじめ定義されたパターンは、識別子文字列の奇数位置におけるBビットのシーケンス、または、識別子文字列の偶数位置におけるBビットのシーケンスを定義してよく、ここにおいて、シーケンスは、最初のビット、最後のビット、中央のビット、開始からあらかじめ定義されたオフセットにおけるビット、または、終了からあらかじめ定義されたオフセットにおけるビットから開始する。別の例では、あらかじめ定義されたパターンは、入力文字列からのビット1と、ビット37と、ビット8と、ビット9と、ビット15と、ビット3と、ビット2とを含む、ビットのシーケンスを定義し得る。
[0092] 上記の実装形態のうちのいくつかでは、ワイヤレスデバイスは、ワイヤレスネットワークに加入すると、第2のワイヤレスデバイスに、第2のデバイスの現在のブルームフィルタを提供するように要求する。一実装形態では、ブルームフィルタは、指定された管理サービス識別情報(たとえば、管理動作のために予約された0x000000または0xFFFFFF)とともに、発見タイプ長さ値(TLV)を使用して交換され得る。ブルームフィルタは、管理固有情報コンテナ(Management Specific Information Container)と呼ばれる発見TLVの任意のフィールドに記憶され得る。
[0093] 発見TLVは、ベンダー固有発見フレーム中で搬送され得る。代替として、TLVは、(たとえば、WiFiダイレクトシステムにおいて)ピアツーピア(P2P)情報要素中の属性として搬送され得る。情報要素は、ベンダー固有情報要素であり得る。一実装形態では、ブルームフィルタを交換するためのプロトコルは、新しいワイヤレス局がネイバーフッドアウェアネットワーク(NAN)同期ビーコンまたは発見フレームについてスキャンするとき、開始する。同期ビーコンまたは発見フレームが受信されると、新しい局は、同期ビーコンまたは発見フレームの送信側に、ブルームフィルタを求める要求を送る。要求は、管理発見TLVを使用して行われる。同期ビーコンまたは発見フレームの送信側は、次いで、管理発見TLVにおいてブルームフィルタで応答する。
[0094] 図9は、例示的なベンダー固有発見フレーム900を示す。示された実装形態では、ベンダー固有発見フレーム900は、カテゴリーフィールド910と、アクションフィールド920と、組織固有識別子(OUI)フィールド930と、OUIタイプフィールド940と、OUIサブタイプ950と、ダイアログトークン960と、1つまたは複数の発見タイプ長さ値(TLV)フィールド970〜980とを含む。示されたように、カテゴリーフィールド910は1オクテットであり、アクションフィールド920は1オクテットであり、OUIフィールド930は3オクテットであり、OUIタイプフィールド940は1オクテットであり、OUIサブタイプ950は1オクテットであり、ダイアログトークン960は1オクテットであり、1つまたは複数の発見TLVフィールド970〜980は可変長である。様々な実装形態では、ベンダー固有発見フレーム900は、図9に示された1つまたは複数のフィールドを省略することができる。ベンダー固有発見フレーム900中のフィールドは、異なる適切な長さであり得、異なる順序であり得ることを、当業者は諒解されよう。
[0095] いくつかの実装形態では、カテゴリーフィールド910は、パブリックアクションフレームを指示することができる。アクションフィールド920は、ベンダー固有アクションフレームを指示することができる。OUIフィールド930は、ベンダー、メーカー、または他の組織(「譲受人」と呼ばれる)をグローバルまたは世界的に一意に識別するために使用され得るものであり、譲受人の独占的使用のための各可能なタイプの派生識別子(MACアドレス、グループアドレス、サブネットワークアクセスプロトコル識別子など)のブロックを有効に予約することができる。OUIタイプフィールド940は、MAC識別子、コンテキスト依存識別子(CDI)、拡張一意識別子(EUI)など、OUIフィールド930のタイプを指示するために使用され得る。OUIサブタイプフィールド950は、OUIタイプフィールド940のサブタイプを指示することができる。ダイアログトークン960は、特定のトランザクションを指示するために選ばれ得る。TLVフィールド970および980について、図10に関して本明細書でより詳細に説明する。
[0096] 図10は、図1のワイヤレス通信システム100内で採用され得る発見タイプ長さ値(TLV)1000を示す。発見TLV1000は、発見フレームおよびP2P情報要素など、様々なメッセージ中で送信され得る。TLV1000は、(図9に示された)TLV970および980として、発見フレーム900中で実装され得る。様々な実装形態では、本明細書で説明されるいかなるデバイス(たとえば、図1に示されたモバイルデバイス112などのワイヤレスデバイス)も、発見TLV1000を送信することができる。
[0097] 示された実装形態では、発見TLV1000は、サービス識別子1010と、長さフィールド1020と、任意のサービス制御フィールド1030と、任意の範囲制御フィールド1050と、管理制御フィールド1060と、任意の管理固有情報コンテナ1070とを含む。発見TLV1000は、追加のフィールドを含んでよく、フィールドは並べ替えられ、除去され、および/またはサイズ変更され得ることが当業者には諒解されよう。たとえば、様々な実装形態では、発見TLV1000は、サービス制御フィールド1030、範囲制御フィールド1050、および/または管理制御1060を省略することができる。
[0098] 例示的な実装形態では、示されたサービス識別子フィールド1010は、6オクテット長である。いくつかの実装形態では、サービス識別子フィールド1010は、信号ごとにおよび/またはサービスプロバイダ間で長さが変化するなど、可変長であり得る。サービス識別子フィールド1010は、発見フレームのサービスまたはアプリケーションを識別する値を含み得る。たとえば、サービス識別子1010は、サービスに基づく、サービス名または他の値のハッシュを含み得る。いくつかの実装形態では、あらかじめ決定されたトークン値が予約され得る。たとえば、すべて0またはすべて1のサービス識別子は、NAN管理動作を指示することができる。
[0099] 長さフィールド1020は、発見TLV1000の長さ、または後続のフィールドの全長を指示するために使用され得る。図10に示された長さフィールド1020は、1オクテット長である。いくつかの実装形態では、長さフィールド1020は、信号ごとにおよび/またはサービスプロバイダ間で長さが変化するなど、可変長であり得る。いくつかの実装形態では、0(または、別のあらかじめ決定されたトークン値)の長さは、1つまたは複数の他のフィールド(サービス制御フィールド1030、範囲制御フィールド1050、管理制御1060、および/または管理固有情報コンテナ1070など)が存在しないことを指示することができる。
[0100] サービス制御フィールド1030は、適用可能なサービスの情報を含み得る。図10に示されたサービス制御フィールド1030は、1オクテット長である。いくつかの実装形態では、サービス制御フィールド1030は、信号ごとにおよび/またはサービスプロバイダ間で長さが変化するなど、可変長であり得る。
[0101] 範囲制御フィールド1050は、管理制御1060に関係する情報を含み得る。図10に示された範囲制御フィールド1050は、1オクテット長である。いくつかの実装形態では、範囲制御フィールド1050は、信号ごとにおよび/またはサービスプロバイダ間で長さが変化するなど、可変長であり得る。
[0102] 管理制御フィールド1060は、管理制御に関係する情報を搬送するために使用され得る。例示的な実装形態では、管理制御フィールド1060は、1または2オクテット長であり得る。いくつかの実装形態では、管理制御フィールド1060は、可変長を有する。
[0103] 管理固有情報コンテナ1070は、関係する追加の情報を搬送するために使用され得る。図10に示された管理固有情報コンテナ1070は、可変長である。例示的な実装形態では、管理固有情報コンテナ1070は、ブルームフィルタを含有するために使用され得る。
[0104] いくつかの実施形態では、ピアツーピアネットワークの1つまたは複数のノードは、ピアツーピアネットワークのノード間の通信のために1つまたは複数の可用性ウィンドウを調整するために、同期メッセージを送信することができる。ノードはまた、同じピアツーピアまたはネイバーフッドアウェアネットワーク内で動作するデバイス間のサービス発見を提供するために、発見クエリと応答とを交換することもできる。ネイバーフッドアウェアネットワークは、いくつかの態様では、ピアツーピアネットワークまたはアドホックネットワークと見なされ得る。ノードは、同期メッセージと発見メッセージとを周期的に送信および/または受信するために、スリープ状態から繰返しウェイクする。ノードが、電力を節約するためにスリープ状態により長くとどまり、ネットワーク上で同期メッセージを送信および/または受信するために、スリープ状態からウェイクしないことができた場合、有利となる。追加として、ノードによる同期メッセージと発見メッセージとの送信および再送信は、ネットワークに大量の不必要なオーバーヘッドを導入し得る。
[0105] いくつかの実施形態では、たとえば、ネットワーク輻輳を低減するために、ノードのサブセットのみが、同期メッセージを送信するように構成され得る。いくつかの実施形態では、ノードのサブセットは、指定または選定された「マスター」ノードであり得る。たとえば、外部電源へのアクセスを有するノードが、マスターノードとして選定され得るのに対して、バッテリー電力で実行するノードは、選定されなくてよい。様々な実施形態では、ノードは、発見マスターノード、同期マスターノード、および/またはアンカーマスターノードを含む、1つまたは複数の異なるタイプのマスターノードとして指定され得る。いくつかの実施形態では、1つまたは複数の発見マスターノードは、NAN発見メッセージを送信することができるが、一方他のノードは送信しなくてよい。いくつかの実施形態では、1つまたは複数の同期マスターノードは、同期メッセージを送信することができるが、一方他のノードは送信しなくてよい。
[0106] いくつかの実施形態では、1つまたは複数のアンカーマスターノードは、同期マスターノードおよび/または発見マスターノードとして優先的に選定され得る。アンカーノードは、プリセットされ、マスターノード選定に関して本明細書で説明されるように選定され、または、別の方法で決定され得る。アンカーノードを有するNANは、アンカー付き(anchored)NANと呼ばれることがあり、アンカーノードを有していないNANは、非アンカー付き(non-anchored)NANと呼ばれることがある。一実施形態では、NANは、単一のアンカーマスターノードを有し得る。
[0107] いくつかの実施形態では、NANにおける1つまたは複数のノードは、動的に決定された、またはプリセットされたマスター優先値(MPV)に基づいて、1つまたは複数のマスターノードを選定することができる。たとえば、外部電源へのアクセスをもつノードは、それらのMPVをより高く(たとえば、10に)設定することができるのに対して、バッテリー電力上のノードは、それらのMPVをより低く(たとえば、5に)設定することができる。選定プロセス中に、より高いMPVを有するノードは、選定されたマスターノードになる可能性がより高くなり得る。いくつかの実施形態では、アンカーノードは、非アンカーノードよりも高いMPVを有することができ、したがって、マスターノードとして選定される可能性がより高くなり得る。
[0108] 図11は、本開示の態様が採用され得る別のワイヤレス通信システム1100の一例を示す。ワイヤレス通信システム1100は、アンカーノード1110と、マスターノード1120と、非マスターノード1130とを含む。様々な実施形態では、ワイヤレス通信システム1100は、ワイヤレス通信システム100(図1)と同様であり得る。たとえば、1つまたは複数のノード1110〜1130は、モバイルデバイス112〜118、122〜128、および132〜142(図1)のいずれかを含み得る。いくつかの実施形態では、1つまたは複数のノード1110〜1130は、ワイヤレスデバイス202(図2)を含んでよく、方法500(図5)を実施することができる。いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、図1に関して上記で説明されたクラスタ110、120、および130など、特定のクラスタと対応し得る。
[0109] いくつかの実施形態では、各マスターノード1120は、無線範囲内の他のノードの識別子を追跡することができる。たとえば、各マスターノード1120は、図5〜図6に関して上記で説明されたように、範囲内の他のノードの識別子でブルームフィルタをポピュレートすることができる。したがって、いくつかの実施形態では、各マスターノード1120は、その関連付けられたクラスタ内のデバイスから受信されたすべてのNANフレームの送信アドレスをハッシングすることによって、そのブルームフィルタをポピュレートすることができる。いくつかの実施形態では、各マスターノード1120は、そのクラスタ内のデバイスのみのための識別子を追跡することができる。いくつかの実施形態では、各マスターノード1120は、クラスタにかかわらず、任意の発見されたデバイスのための識別子を追跡することができる。いくつかの実施形態では、マスターノード1120は、他のマスターノード1120および/またはアンカーノード1110の識別子を追跡することを控えることができる。他の実施形態では、マスターノード1120は、他のマスターノードおよび/またはアンカーノード1110のものを含む、識別子を追跡することができる。様々な実施形態では、アンカーノード1110は、マスターノード1120に関して本明細書で説明されるように、識別子を追跡することができる。
[0110] 様々な実施形態では、マスターノード1120は、アンカーノード1110においてルートをもつツリートポロジーを形成することができる。各マスターノード1120は、アンカーノード1110までのホップ距離を指示する情報を維持することができる。いくつかの実施形態では、アンカーノード1110およびマスターノード1120は、ツリートポロジーに従って、クラスタサイズを推定および伝搬することができる。本明細書で説明されるように、各マスターノード1120および/またはアンカーノード1110は、他のノードからブルームフィルタを受信することができる。各マスターノード1120および/またはアンカーノード1110は、受信されたブルームフィルタと、第1のワイヤレスデバイスのための現在またはローカルのブルームフィルタとのビットOR演算を実施することができる。いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、ブルームフィルタを要求することができる。いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、要求なしにブルームフィルタを受信することができる。
[0111] いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、ツリートポグラフィにおいて隣接したマスターノード1120からのみ、ブルームフィルタを受信することができる。いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、ツリートポグラフィにおいて子ノードからのみ、ブルームフィルタを受信することができる。いくつかの実施形態では、各マスターノード1120は、親ノードへマージされたブルームフィルタを送る前に、受信されたブルームフィルタとローカルブルームフィルタとの間のビットOR演算を実施することができる。したがって、いくつかの実施形態では、アンカーノード1110は、ワイヤレス通信システム1100におけるすべてのブルームフィルタのビットORを含有するブルームフィルタを、最終的に構築することができる。いくつかの実施形態では、アンカーノード1110は、ワイヤレス通信システム1100におけるブルームフィルタすべての発見された識別子を、最終的に構築することができる。
[0112] 上記で説明されたように、いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、たとえば、各子ノードまたは子マスターノード1120になど、他のノードにブルームフィルタを要求することができる。いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、サービス発見フレーム(SDF)を使用して要求を送信することができる。たとえば、各マスターノード1120および/またはアンカーノード1110は、設定された公開ビットを有するサービス発見属性1300(図13)を含むサービス発見フレームを送信することができる。
[0113] 様々な実施形態では、発見されたデバイスを求める要求は、送信するデバイスが発見されたデバイスの指示をそこから受信したデバイスの指示を含み得る。たとえば、アンカーノード1110は、それらのブルームフィルタ600(図6)をすでに提供したマスターノード1120の完全または部分的識別子(MACアドレスなど)のリストを含む、発見されたデバイス要求を、マスターノード1120へ送信することができる。いくつかの実施形態では、デバイスの指示自体は、送信するデバイスが発見されたデバイスの指示をそこから受信したデバイスを指示するブルームフィルタであり得る。
[0114] 様々な実施形態では、発見されたデバイスを求める要求は、要求に応答するべきであるデバイスのホップカウントを含み得る。ホップカウントは、最大、最小、または厳密なホップカウントであり得る。たとえば、アンカーノード1110は、1のホップカウントを指示する、発見されたデバイス要求を送信することができる。したがって、1ホップ離れたマスターノード1120のみが、発見されたデバイスの指示(図6のブルームフィルタ600など)で応答するように構成される。いくつかの実施形態では、ノードは、要求中に含まれるホップカウントに基づいて、発見されたデバイスを求める要求に選択的に応答することができる。たとえば、1つの特定のデバイスは、特定のデバイスのホップカウントよりも高いホップカウントを有するデバイスからの要求のみに応答することができる。
[0115] いくつかの実施形態では、各マスターノード1120および/またはアンカーノード1110は、図5に関してなど、本明細書で説明されたように、クラスタサイズを推定することができる。各マスターノード1120および/またはアンカーノード1110は、図12に関して以下で説明されるように、アンカー情報属性を介して、クラスタサイズ推定値またはその指示を送信することができる。一実施形態では、クラスタサイズ推定値またはその指示は、発見ウィンドウ間のある間隔において送信された発見ビーコン中に含まれ得る。
[0116] このようにして、一例では、各マスターノード1120は、発見されたデバイスを示すブルームフィルタ600(図6)を生成することができる。アンカーノード1110は、各マスターノード1120にブルームフィルタを要求することができ、たとえば、ビットOR演算を介して、ブルームフィルタをそれ自体のものとマージすることができる。いくつかの実施形態では、マスターノード1120は、子ノードからブルームフィルタを受信し、受信されたブルームフィルタをそれら自体のローカルブルームフィルタとマージし、マージされたブルームフィルタを親ノードに渡し、それによって、アンカーノード1110に、NAN全体のためのブルームフィルタを伝搬することができる。アンカーノード1110は、ネットワークサイズを推定し、そのビーコン中で推定値を送信することができる。マスターノード1120は、親ノードからビーコンを受信することができ、それら自体のビーコン中で推定されたネットワークサイズを再送信し、それによって、NAN全体にわたって、推定されたネットワークサイズを伝搬することができる。
[0117] 様々な実施形態では、各マスターノード1120および/またはアンカーノード1110は、たとえば、発見されたデバイス要求に応答して、間欠的に、周期的に、ランダムに、および/または擬似ランダムに、発見されたデバイス識別子を指示するブルームフィルタ600(図6)を送信することができる。
[0118] 図12は、媒体アクセス制御(MAC)フレーム1200の例示的な構造を示す。いくつかの態様では、媒体アクセス制御フレーム(MAC)1200は、上記で説明されたビーコン信号のために利用され得る。示されるように、MACフレーム1200は、フレーム制御(FC)フィールド1202、持続時間/識別情報(dur)フィールド1204、受信機アドレス(A1)フィールド1206、送信機アドレス(A2)フィールド1208、いくつかの態様ではNAN BSSIDまたはクラスタIDを指示することができる宛先アドレス(A3)フィールド1210、シーケンス制御(SC)フィールド1212、タイムスタンプフィールド1214、ビーコン間隔フィールド1216、能力フィールド1218、発見ウィンドウ情報を含み得る情報要素1220、およびフレーム検査シーケンス(FCS)フィールド1222という、11個の異なるフィールドを含む。フィールド1202〜1222は、いくつかの態様では、MACヘッダを含む。各フィールドは、1つまたは複数のサブフィールドまたはフィールドを含み得る。たとえば、媒体アクセス制御ヘッダ1200のフレーム制御フィールド1202は、プロトコルバージョン、タイプフィールド、サブタイプフィールド、および他のフィールドなど、複数のサブフィールドを含み得る。その上、本明細書で説明される様々なフィールドは、並べ替えられ、サイズ変更されてよく、いくつかのフィールドが省略されてよく、追加のフィールドが追加されてよいことが当業者には諒解されよう。
[0119] いくつかの態様では、NAN BSSIDフィールド1210は、NANデバイスのクラスタを指示することができる。別の実施形態では、各NANは、異なる(たとえば、擬似ランダム)NAN BSSID1210を有し得る。一実施形態では、NAN BSSID1210は、サービスアプリケーションに基づき得る。たとえば、アプリケーションAによって作成されたNANは、アプリケーションAの識別子に基づくBSSID1210を有し得る。いくつかの実施形態では、NAN BSSID1210は、標準化団体によって定義され得る。いくつかの実施形態では、NAN BSSID1210は、たとえば、デバイスロケーション、サーバにより割り当てられたIDなど、他のコンテキスト情報および/またはデバイス特性に基づき得る。一例では、NAN BSSID1210は、NANの緯度および経度ロケーションのハッシュを含み得る。示されたNAN BSSIDフィールド1210は、6オクテット長である。いくつかの実装形態では、NAN BSSIDフィールド1210は、4、5、または8オクテット長であり得る。いくつかの実施形態では、AP104は、情報要素中でNAN BSSID1210を指示することができる。
[0120] 様々な実施形態では、フレーム1200、または別の発見フレームは、アンカー情報属性、および/または、図13に関して以下で説明されるサービス発見属性1300などのサービス発見属性を含み得る。一実施形態では、NAN IEフィールド1220は含み得、フィールド1202は、アンカー情報属性および/またはサービス発見属性を含み得る。一実施形態では、アンカー情報属性は、クラスタサイズまたはクラスタサイズ推定値の指示を含み得る。一実施形態では、アンカー情報属性は、発見ウィンドウ間のある間隔において送られた発見ビーコン中に含まれ得る。一実施形態では、アンカー情報属性は、たとえば、周期的に、間欠的に、および/またはランダムもしくは擬似ランダムに、非請求の1つまたは複数のノード1110〜1130(図11)によって送信され得る。
[0121] 図13は、図11のワイヤレス通信システム1100内で採用され得る例示的なサービス発見属性1300を示す。様々な実施形態では、本明細書で説明される任意のデバイス、または別の互換デバイスは、たとえば、任意のノード1110〜1130(図11)、任意のモバイルデバイス112〜118、122〜128、および132〜142(図1)、ならびに/またはワイヤレスデバイス202(図2)など、サービス発見属性1300を送信することができる。ワイヤレス通信システム100(図1)および/またはワイヤレス通信システム1100(図11)における1つまたは複数のメッセージは、たとえば、NANビーコン1200(図12)、発見フレーム、プローブ応答、および/または発見クエリフレームなど、サービス発見属性1300を含み得る。一実施形態では、サービス発見フレームは、1つまたは複数のサービス発見属性1300を含有する、パブリックアクションフレームを含み得る。別の例として、サービス発見属性1300は、ベンダー固有IE中にあり得る。サービス発見属性1300の1つまたは複数のフィールドは、サービス発見属性1300に加えて、またはその代わりに、情報要素の属性中に含まれ得る。
[0122] 示された実施形態では、サービス発見属性1300は、属性識別子1305と、長さフィールド1320と、サービス識別子1310と、サービス制御フィールド1330と、マッチングフィルタコンテナ1350と、サービス応答フィルタ(SRF)情報コンテナ1360と、サービス固有情報コンテナ1370とを含む。サービス発見属性1300は、追加のフィールドを含んでよく、フィールドは並べ替えられ、除去され、および/またはサイズ変更され得ることが当業者には諒解されよう。たとえば、様々な実施形態では、サービス発見属性1300は、マッチングフィルタコンテナ1350および/またはマッチングフィルタコンテナ1350を省略することができ、追加の長さフィールドが含まれ得る。
[0123] 示されたサービス識別子フィールド1310は、6オクテット長である。いくつかの実装形態では、サービス識別子フィールド1310は、2、5、または12オクテット長であり得る。いくつかの実装形態では、サービス識別子フィールド1310は、信号ごとにおよび/またはサービスプロバイダ間で長さが変化するなど、可変長であり得る。サービス識別子フィールド1310は、発見フレームのサービスまたはアプリケーションを識別する値を含み得る。たとえば、サービス識別子1310は、サービスに基づく、サービス名または他の値のハッシュを含み得る。いくつかの実施形態では、あらかじめ決定されたトークン値が予約され得る。たとえば、すべて0またはすべて1のサービス識別子は、NAN管理動作を指示することができる。
[0124] 長さフィールド1320は、サービス発見属性1300の長さ、または後続のフィールドの全長を指示するために使用され得る。図13に示された長さフィールド1320は、2オクテット長である。いくつかの実装形態では、長さフィールド1320は、1、5、または12オクテット長であり得る。いくつかの実装形態では、長さフィールド1320は、信号ごとにおよび/またはサービスプロバイダ間で長さが変化するなど、可変長であり得る。いくつかの実施形態では、0(または、別のあらかじめ決定されたトークン値)の長さは、1つまたは複数の他のフィールド(サービス制御フィールド1330、マッチングフィルタコンテナ1350、サービス応答フィルタ情報コンテナ1360、サービス固有情報コンテナ1370、および/または発見されたアドレス情報コンテナ1380など)が存在しないことを指示することができる。
[0125] サービス制御フィールド1330は、適用可能なサービスの情報を指示することができる。図13に示されたサービス制御フィールド1330は、1オクテット長である。いくつかの実装形態では、サービス制御フィールド1330は、2、6、または8オクテット長であり得る。いくつかの実装形態では、サービス制御フィールド1330は、信号ごとにおよび/またはサービスプロバイダ間で長さが変化するなど、可変長であり得る。一実施形態では、サービス制御フィールド1330は、公開フラグと、サブスクライブフラグと、範囲制限フラグと、マッチングフィルタフラグと、サービス情報フラグと、APフラグと、発見されたアドレスフラグと、予約済みビットとを含み得る。一実施形態では、サービス制御フィールド1330は、発見されたデバイスを指示するブルームフィルタをフレームが含むという指示を含み得る。一実施形態では、サブスクライブフラグは、設定されるとき、受信するデバイスがそのブルームフィルタ600(図6)を送るための要求を指示することができる。一実施形態では、公開フラグは、設定されるとき、ブルームフィルタ600(図6)を含む応答フレームを指示することができる。サービス制御フィールド1330は、追加のフィールドを含んでよく、フィールドは並べ替えられ、除去され、および/またはサイズ変更され得ることが当業者には諒解されよう。
[0126] マッチングフィルタコンテナ1350は、マッチングフィルタ情報を指示することができる。図13に示されたマッチングフィルタコンテナ1350は、可変長である。いくつかの実装形態では、マッチングフィルタコンテナ1350は、2、6、または8オクテット長であり得る。マッチングフィルタコンテナ1350は、NANのためのマッチングフィルタ長さフィールドおよび/またはマッチングフィルタを含み得る。マッチングフィルタ長さフィールドは、マッチングフィルタの長さを指示することができる。マッチングフィルタ長さフィールドは、1オクテット長であり得る。一実施形態では、マッチングフィルタ長さは、0(または、別のあらかじめ決定されたトークン値)であってよく、マッチングフィルタが省略され得る。マッチングフィルタは、可変長であり得る。マッチングフィルタコンテナ1350は、追加のフィールドを含んでよく、フィールドは並べ替えられ、除去され、および/またはサイズ変更され得ることが当業者には諒解されよう。
[0127] サービス応答フィルタ情報コンテナ1360は、デバイスがクエリに応答するべきであるかどうかを指示することができる。いくつかの実施形態では、サービス応答フィルタ情報コンテナ1360は、サービス応答フィルタとサービス応答フィルタ長さフィールドとを含み得る。サービス応答フィルタは、たとえば、応答するべきではないデバイスの部分的および/または完全デバイス識別子(たとえば、MACアドレス)のリストを含み得る。一実施形態では、サービス応答フィルタは、応答するべきではないデバイスの識別子(たとえば、MACアドレス)のリストを指示するブルームフィルタを含み得る。図13に示されたサービス応答フィルタ情報コンテナ1360は、可変長である。いくつかの実装形態では、サービス応答フィルタ情報コンテナ1360は、2、6、または8オクテット長であり得る。
[0128] サービス固有情報コンテナ1370は、適用可能なサービスに関係する1つまたは複数の追加のデータフィールドをカプセル化することができる。図13に示されたサービス固有情報コンテナ1370は、可変長である。いくつかの実装形態では、サービス固有情報コンテナ1370は、1、5、または12オクテット長であり得る。サービス固有情報コンテナ1370は、サービス固有情報長さフィールドおよび/またはサービス固有情報フィールドを含み得る。サービス固有情報長さフィールドは、サービス固有情報フィールドの長さを指示することができる。一実施形態では、サービス固有情報長さフィールドは、0(または、別のあらかじめ決定されたトークン値)であってよく、サービス固有情報フィールドが省略され得る。サービス固有情報フィールドは、可変長であり得る。いくつかの実装形態では、サービス固有情報フィールドは、1、5、または12オクテット長であり得る。
[0129] いくつかの実施形態では、サービス固有情報フィールドは、発見されたアドレス情報コンテナを含み得る。発見されたアドレス情報コンテナは、送信するデバイス202(図2)によって発見されたデバイスの1つまたは複数のアドレスを指示することができる。たとえば、発見されたアドレス情報コンテナは、ブルームフィルタ600(図6)を含み得る。発見されたアドレス情報は、可変長であり得る。いくつかの実装形態では、発見されたアドレス情報コンテナは、1、5、または12オクテット長であり得る。
[0130] 本明細書で使用される「決定すること」という用語は、多種多様なアクションを包含する。たとえば、「決定すること」は、計算すること、算出すること、処理すること、導出すること、調査すること、探索すること(たとえば、テーブル、データベース、または別のデータ構造の中で探索すること)、確認することなどを含む場合がある。また、「決定すること」は、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリ中のデータにアクセスすること)などを含み得る。また、「決定すること」は、解決すること、選択すること、選ぶこと、確立することなどを含み得る。さらに、本明細書で使用される「チャネル幅」は、いくつかの態様では帯域幅を包含することがあり、または帯域幅と呼ばれることもある。
[0131] 上記で説明された方法の様々な動作は、様々なハードウェア構成要素および/もしくはソフトウェア構成要素、回路、ならびに/またはモジュールなど、その動作を実施することが可能な任意の適切な手段によって実施され得る。一般に、図に示された任意の動作は、その動作を実施することが可能な対応する機能的手段によって実施され得る。
[0132] 本開示に関して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)もしくは他のプログラマブル論理デバイス(PLD)、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明された機能を実施するように設計されたそれらの任意の組合せを用いて実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
[0133] 1つまたは複数の態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装され得る。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶され得るか、またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびblu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、一方ディスク(disc)は、データをレーザーで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は、非一時的コンピュータ可読媒体(たとえば、有形媒体)を備え得る。加えて、いくつかの態様では、コンピュータ可読媒体は、一時的コンピュータ可読媒体(たとえば、信号)を備え得る。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0134] 本明細書で開示された方法は、説明された方法を達成するための1つまたは複数のステップまたはアクションを備える。本方法のステップおよび/またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく変更され得る。
[0135] 説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装され得る。ソフトウェアに実装される場合、機能は1つまたは複数の命令としてコンピュータ可読媒体上に記憶され得る。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備え得る。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびBlu−ray(登録商標)ディスク(disc)を含み、一方ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。
[0136] したがって、いくつかの態様は、本明細書で提示された動作を実施するためのコンピュータプログラム製品を備え得る。たとえば、そのようなコンピュータプログラム製品は、本明細書で説明された動作を実施するために、1つまたは複数のプロセッサによって実行可能である命令を記憶した(および/または符号化した)コンピュータ可読媒体を備え得る。いくつかの態様では、コンピュータプログラム製品はパッケージング材料を含み得る。
[0137] ソフトウェアまたは命令はまた、送信媒体を介して送信され得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、送信媒体の定義に含まれる。
[0138] さらに、本明細書で説明された方法と技法とを実施するためのモジュールおよび/または他の適切な手段は、適用可能な場合、ユーザ端末および/または基地局によってダウンロードされ、および/または場合によっては取得され得ることを諒解されたい。たとえば、本明細書で説明された方法を実施するための手段の転送を容易にするために、そのようなデバイスがサーバに結合され得る。代替的に、本明細書で説明された様々な方法は、ユーザ端末および/または基地局が記憶手段をデバイスに結合し、または提供すると様々な方法を取得することができるように、記憶手段(たとえば、RAM、ROM、コンパクトディスク(CD)またはフロッピーディスクのような物理記憶媒体など)によって提供され得る。その上、本明細書で説明された方法と技法とをデバイスに与えるための任意の他の好適な技法が利用され得る。
[0139] 特許請求の範囲は、上記に示された厳密な構成および構成要素に限定されないことを理解されたい。上記で説明された方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
[0140] 上記は本開示の態様を対象とするが、本開示の他の態様およびさらなる態様は、その基本的範囲から逸脱することなく考案され得、その範囲は以下の特許請求の範囲によって決定される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ワイヤレスネットワークにおける近隣ワイヤレスデバイスの数を監視するように構成されたワイヤレスデバイスであって、
前記近隣ワイヤレスデバイスのうちの1つからメッセージを受信するように構成された受信機と、前記メッセージは、前記近隣ワイヤレスデバイスに関連付けられた識別子を備える、
ブルームフィルタに前記識別子を追加するように、および、前記ブルームフィルタにおける0の数、または前記ブルームフィルタにおける1の数に基づいて、前記ブルームフィルタに追加された別個の文字列の数を推定するように構成されたプロセッサと、前記別個の文字列の数は、前記ワイヤレスネットワークにおける前記近隣ワイヤレスデバイスの数の推定値を表す、
を備えるワイヤレスデバイス。
[C2]
前記ワイヤレスデバイスが、前記ワイヤレスネットワーク全体にわたる連続する伝搬のために、前記ワイヤレスネットワークにおける前記近隣ワイヤレスデバイスの数の前記推定値を備えるビーコンを送信するように構成されたアンカーデバイスを備える、C1に記載のワイヤレスデバイス。
[C3]
前記ブルームフィルタが、mビットのビットアレイとm個のカウンタとを含み、各カウンタは、前記ビットアレイ中の異なるビットに関連付けられ、各カウンタは、0と最大値との間の整数値を有し、ここにおいて、前記プロセッサが、
持続時間Tの時間間隔ごとに、非0値を有する各カウンタの前記値を1だけ低減することと、
カウンタの前記値が0に低減される場合、前記カウンタに対応する前記ビットを0に設定することと
を行うようにさらに構成される、C1に記載のワイヤレスデバイス。
[C4]
前記プロセッサが、前記ビットアレイのいずれかのビットが1に設定されるとき、前記ビットに対応する前記カウンタを前記最大値に設定するようにさらに構成される、C3に記載のワイヤレスデバイス。
[C5]
前記ブルームフィルタがmビットのビットアレイであり、前記ビットアレイに関連付けられたk個の異なるハッシュ関数を有しており、ここにおいて、各ハッシュ関数が、一様なランダム分布をもつm個のアレイ位置のうちの1つに、入力文字列をマッピングする、C1に記載のワイヤレスデバイス。
[C6]
前記ブルームフィルタに追加された前記別個の文字列の数N distinct が、次の公式によって計算され、すなわち、
ただし、N 0 は、前記アレイにおける0の数である、C5に記載のワイヤレスデバイス。
[C7]
前記ブルームフィルタが、最大N個のデバイスまで追跡するように設計され、前記ブルームフィルタのパラメータmが、ほぼNである値を有する、C5に記載のワイヤレスデバイス。
[C8]
前記k個のハッシュ関数のうちの少なくとも1つが、入力文字列の巡回冗長検査である、C5に記載のワイヤレスデバイス。
[C9]
前記k個のハッシュ関数のうちの少なくとも1つが、0とp−1との間の整数に入力文字列をマッピングする第1のハッシュ関数を使用して作成され、ここにおいて、前記少なくとも1つのハッシュ関数が、0とp−1との間の整数に入力文字列をマッピングするために、前記第1のハッシュ関数を使用することと、次いで、前記整数をmで除算した余りを発見するために、モジュロ演算を適用することとを含み、前記余りは、前記少なくとも1つのハッシュ関数によって返される値である、C5に記載のワイヤレスデバイス。
[C10]
前記第1のハッシュ関数が、前記入力文字列から複数のビットを選択し、パターンに従って、シーケンスにおいて前記ビットを配列し、前記ビットのシーケンスは、前記第1のハッシュ関数によって返される値である整数を表す、C9に記載のワイヤレスデバイス。
[C11]
前記識別子が、次の、MACアドレス、サービス識別子、またはアプリケーションベースの識別子のうちの1つである、C1に記載のワイヤレスデバイス。
[C12]
前記プロセッサが、前記ワイヤレスネットワークにおける前記近隣ワイヤレスデバイスのうちの少なくとも1つから、前記ブルームフィルタを要求するようにさらに構成される、C1に記載のワイヤレスデバイス。
[C13]
前記プロセッサが、前記ブルームフィルタを要求するために、前記近隣ワイヤレスデバイスへ、設定されたサブスクライブビットを備えるサービス発見フレームを送るように構成される、C12に記載のワイヤレスデバイス。
[C14]
前記サービス発見フレームが、そこからブルームフィルタがすでに受信された近隣ワイヤレスデバイスの指示、および、それに対して近隣デバイスが応答するべきであるホップカウントの指示のうちの、少なくとも1つを備える、C13に記載のワイヤレスデバイス。
[C15]
前記ワイヤレスデバイスが、アンカーノードおよびマスターノードのうちの少なくとも1つを備える、C13に記載のワイヤレスデバイス。
[C16]
前記プロセッサが、複数の前記近隣ワイヤレスデバイスから受信されたブルームフィルタのビット論理和を記憶することによって、前記近隣ワイヤレスデバイスのためのブルームフィルタを生成するようにさらに構成される、C12に記載のワイヤレスデバイス。
[C17]
前記ブルームフィルタが、mビットのビットアレイを含み、ここにおいて、前記プロセッサが、ランダムな時間の間隔において、1つまたは複数のビットを0にリセットするようにさらに構成され、前記1つまたは複数のビットは、前記ブルームフィルタの前記mビットからランダムに選び出され、ここにおいて、前記プロセッサが、次の、前記ネットワークにおけるワイヤレスデバイスの数、ワイヤレスデバイスが前記ネットワークを離れる推定レート、および、ワイヤレスデバイスがそれらのMACアドレスを変更する時間間隔のうちの1つまたは複数に基づいて、リセットされるべきビット数と前記ランダムな間隔の分布とを選ぶように構成される、C1に記載のワイヤレスデバイス。
[C18]
ワイヤレスネットワークにおける近隣ワイヤレスデバイスの数を監視する方法であって、
前記近隣ワイヤレスデバイスのうちの1つからメッセージを受信することと、前記メッセージは、前記近隣ワイヤレスデバイスに関連付けられた識別子を備える、
ブルームフィルタに前記識別子を追加することと、
前記ブルームフィルタにおける0の数に基づいて、前記ブルームフィルタに追加された別個の文字列の数を推定することと、前記別個の文字列の数は、前記ワイヤレスネットワークにおける前記近隣ワイヤレスデバイスの数の推定値を表す、
を備える方法。
[C19]
前記ブルームフィルタが、mビットのビットアレイとm個のカウンタとを含み、各カウンタは、前記ビットアレイ中の異なるビットに関連付けられ、各カウンタは、0と最大値との間の整数値を有し、ここにおいて、前記方法が、
持続時間Tの時間間隔ごとに、非0値を有する各カウンタの前記値を1だけ低減することと、
カウンタの前記値が0に低減される場合、前記カウンタに対応する前記ビットを0に設定することと
をさらに備える、C18に記載の方法。
[C20]
ビットが1に設定されるとき、前記ビットに対応する前記カウンタを前記最大値に設定することをさらに備える、C19に記載の方法。
[C21]
前記ブルームフィルタがmビットのビットアレイであり、前記ビットアレイに関連付けられたk個の異なるハッシュ関数を有しており、ここにおいて、各ハッシュ関数が、一様なランダム分布をもつm個のアレイ位置のうちの1つに、入力文字列をマッピングする、C18に記載の方法。
[C22]
前記k個のハッシュ関数のうちの少なくとも1つが、入力文字列の巡回冗長検査である、C21に記載の方法。
[C23]
前記k個のハッシュ関数が、単一のハッシュ関数とk個の異なる補足文字列とを使用して実現され、ここにおいて、前記ブルームフィルタに前記識別子を追加することが、
前記識別子および前記k個の補足文字列に基づいて、k個の補正された文字列を生成することと、
前記k個の補正された文字列を前記単一のハッシュ関数に供給し、したがって、k個のアレイ位置を生成することと
を備える、C21に記載の方法。
[C24]
前記ブルームフィルタのパラメータkが、1の値を有し、前記ブルームフィルタのパラメータmが、前記ワイヤレスネットワークの最大サイズの約2倍である値を有する、C21に記載の方法。
[C25]
前記識別子が、次の、MACアドレス、サービス識別子、またはアプリケーションベースの識別子のうちの1つである、C18に記載の方法。
[C26]
前記方法が、ワイヤレスネットワークに加入すると、前記ワイヤレスネットワークにおける少なくとも1つの近隣ワイヤレスデバイスから、前記ブルームフィルタを要求することと、近隣ワイヤレスデバイスからメッセージを受信することとをさらに備え、前記メッセージは、前記近隣ワイヤレスデバイスのブルームフィルタと、前記近隣ワイヤレスデバイスの前記ブルームフィルタが開始された時間とを含む、C18に記載の方法。
[C27]
前記方法が、複数の近隣ワイヤレスデバイスから受信されたブルームフィルタのビット論理和を記憶することによって、前記ワイヤレスデバイスのためのブルームフィルタを生成することをさらに備える、C26に記載の方法。
[C28]
少なくとも第1の近隣ワイヤレスデバイスに前記ブルームフィルタを要求することと、
ブルームフィルタに基づいて、ワイヤレスデバイスおよび前記第1の近隣ワイヤレスデバイスが共に有する、前記近隣ワイヤレスデバイスの数を推定することと、前記ブルームフィルタは、前記ワイヤレスデバイスの前記ブルームフィルタと、前記第1の近隣ワイヤレスデバイスの前記ブルームフィルタとのビット論理積を実施することによって生成される、
をさらに備える、C18に記載の方法。
[C29]
ワイヤレスネットワークにおける近隣ワイヤレスデバイスの数を監視するためのワイヤレスデバイスであって、
前記近隣ワイヤレスデバイスのうちの1つからメッセージを受信するための手段と、前記メッセージは、前記近隣ワイヤレスデバイスに関連付けられた識別子を備える、
ブルームフィルタに前記識別子を追加するための手段と、
前記ブルームフィルタにおける0の数に基づいて、前記ブルームフィルタに追加された別個の文字列の数を推定するための手段と、前記別個の文字列の数は、前記ワイヤレスネットワークにおける前記近隣ワイヤレスデバイスの数の推定値を表す、
を備えるワイヤレスデバイス。
[C30]
ワイヤレスネットワークにおける近隣ワイヤレスデバイスの数を監視するための方法を実施するように構成されたコンピュータ実行可能命令を備える、非一時的物理的コンピュータストレージであって、前記方法が、
前記近隣ワイヤレスデバイスのうちの1つからメッセージを受信することと、前記メッセージは、前記近隣ワイヤレスデバイスに関連付けられた識別子を備える、
ブルームフィルタに前記識別子を追加することと、
前記ブルームフィルタにおける0の数に基づいて、前記ブルームフィルタに追加された別個の文字列の数を推定することと、前記別個の文字列の数は、前記ワイヤレスネットワークにおける前記近隣ワイヤレスデバイスの数の推定値を表す、
を備える、非一時的物理的コンピュータストレージ。