[0022]添付の図面に関して以下に記載される詳細な説明は、種々の構成の説明として意図されており、本明細書において説明される概念が実践され得る構成を表すことを意図しない。詳細な説明は、種々の概念を完全に理解してもらう目的で、具体的な詳細を含む。しかしながら、これらの概念はこれらの具体的な詳細なしに実践され得ることは当業者には明らかであろう。場合によっては、そのような概念を不明瞭にしないように、よく知られている構造および構成要素がブロック図の形で示される。
[0023]添付の図面を参照しながら、新規のシステム、装置、コンピュータプログラム製品、および方法の様々な態様が以下でより十分に説明される。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えられる。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、本発明の他の態様と組み合わせられるにせよ、本明細書で開示される新規のシステム、装置、コンピュータプログラム製品、および方法のいかなる態様をもカバーするものであることを、当業者は諒解されたい。たとえば、本明細書に記載される態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。加えて、本発明の範囲は、本明細書に記載した本発明の様々な態様に加えて、またはそれ以外の、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法を包含するものとする。本明細書で開示されるどの態様も請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
[0024]本明細書では特定の態様が説明されるが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は、特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であるものとし、それらのうちのいくつかが例として、図および好適な態様についての以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
[0025]普及しているワイヤレスネットワーク技術は、様々なタイプのワイヤレスローカルエリアネットワーク(WLAN)を含み得る。WLANは、広く使用されるネットワーキングプロトコルを採用して、近接デバイスを互いに相互接続するために使用され得る。本明細書で説明される様々な態様は、ワイヤレスプロトコルなど、任意の通信規格に適用され得る。
[0026]いくつかの態様では、ワイヤレス信号は、直交周波数分割多重(OFDM)、直接シーケンススペクトル拡散(DSSS)通信、OFDMとDSSS通信との組合せ、または他の方式を使用して、米国電気電子技術者協会(IEEE)802.11プロトコルに従って送信され得る。IEEE802.11プロトコルの実装形態は、センサー、計測、およびスマートグリッドネットワークのために使用され得る。有利には、IEEE802.11プロトコルを実装するいくつかのデバイスの態様は、他のワイヤレスプロトコルを実装するデバイスよりも少ない電力を消費し得、および/または比較的長い距離、たとえば約1キロメートル以上にわたってワイヤレス信号を送信するために使用され得る。
[0027]いくつかの実装形態では、WLANは、このワイヤレスネットワークにアクセスする構成要素である様々なデバイスを含む。たとえば、2つのタイプのデバイス、すなわちアクセスポイント(AP)および(局または「STA」とも呼ばれる)クライアントがあり得る。概して、APはWLANのためのハブまたは基地局として働き得、STAはWLANのユーザとして働く。たとえば、STAはラップトップコンピュータ、携帯情報端末(PDA)、モバイルフォンなどであり得る。一例では、STAは、インターネットまたは他のワイドエリアネットワークへの一般的な接続を得るために、WiFi(たとえば、IEEE802.11プロトコル)準拠のワイヤレスリンクを介してAPに接続する。いくつかの実装形態では、STAはAPとして使用されることもある。
[0028]ステーションはまた、アクセス端末(AT)、加入者局、加入者ユニット、移動局、リモートステーション、リモート端末、ユーザ端末、ユーザエージェント、ユーザデバイス、ユーザ機器、または他の何らかの用語を備えるか、それとして実装されるか、またはそれとして知られる場合がある。いくつかの実装形態では、アクセス端末は、携帯電話、コードレス電話、セッション開始プロトコル(SIP)電話、ワイヤレスローカルループ(WLL)ステーション、携帯情報端末(PDA)、ワイヤレス接続機能を有するハンドヘルドデバイス、またはワイヤレスモデムに接続された他の何らかの適切な処理デバイスを備える場合がある。したがって、本明細書で教示される1つまたは複数の態様は、電話(たとえば、携帯電話またはスマートフォン)、コンピュータ(たとえば、ラップトップ)、ポータブル通信デバイス、ヘッドセット、ポータブルコンピューティングデバイス(たとえば、携帯情報端末)、エンターテインメントデバイス(たとえば、音楽デバイスもしくはビデオデバイス、または衛星ラジオ)、ゲームデバイスまたはゲームシステム、全地球測位システムデバイス、あるいは、ワイヤレス媒体を介して通信するように構成された任意の他の適切なデバイスに組み込まれる場合がある。
[0029]「関連付ける」または「関連付け」という用語、あるいはそれらの任意の変形態は、本開示のコンテキスト内で可能な最も広い意味を与えられるべきである。例として、第1の装置が第2の装置に関連付けるとき、2つの装置が直接関連付けられ得るか、または中間装置が存在し得ることを理解されたい。簡潔のために、2つの装置間の関連付けを確立するためのプロセスが、装置のうちの1つによる「関連付け要求」と、後続の、他の装置による「関連付け応答」とを必要とする、ハンドシェイクプロトコルを使用して説明される。ハンドシェイクプロトコルが、例として、認証を行うためのシグナリングなど、他のシグナリングを必要とし得ることが、当業者には理解されよう。
[0030]本明細書における「第1」、「第2」などの名称を使用した要素への言及は、それらの要素の数量または順序を概括的に限定するものでない。むしろ、これらの指定は、2つ以上の要素またはある要素の2つ以上のインスタンスを区別する便利な方法として、本明細書では使用される。したがって、第1の要素および第2の要素への言及は、2つの要素のみが利用され得ること、または第1の要素が第2の要素に先行しなければならないことを意味しない。
[0031]上記で説明されたように、本明細書で説明されるいくつかのデバイスは、たとえば、IEEE802.11規格を実装し得る。そのようなデバイスは、STAとして使用されるのか、APとして使用されるのか、他のデバイスとして使用されるのかにかかわらず、スマートメータリングのためにまたはスマートグリッドネットワークにおいて使用され得る。そのようなデバイスは、センサー適用例を与えるか、またはホームオートメーションにおいて使用され得る。デバイスは、代わりにまたは追加として、ヘルスケアコンテキストにおいて、たとえばパーソナルヘルスケアのために使用され得る。それらのデバイスはまた、(たとえばホットスポットとともに使用するための)拡張された範囲のインターネット接続性を可能にするために、またはマシンツーマシン通信を実装するために、監視のために使用され得る。
[0032]いくつかの構成では、デバイス間のクエリ−応答トランザクションなどのプル指向トランザクションは、上位層メッセージ(たとえば、HTTP要求およびHTTP応答)の構文にカプセル化され、下位層(たとえばPHY/MAC/リンク層)に対してトランスペアレントである。したがって、デバイスの下位層は、そのような上位層(たとえば、UDP/TCP/IP層)プル指向トランザクションを認識しない。また、下位層は、そのような上位層トランザクションを区別し、そのような上位層プル指向トランザクションを利用してネットワーク性能を最適化する能力を持たない。したがって、下位層でのクエリ−応答トランザクションの処理の改善が必要である。
[0033]以下に説明される機構および技法は、クエリ−応答トランザクションを下位層および対応するイネーブラ(enablers)に公開し(expose)得、これによって、下位層でのクエリ−応答トランザクションの処理を改善または最適化することができる。具体的には、下位層は、上位層において開始または定義されたクエリ−応答トランザクションのためのトランザクションベースの配信(transaction-based delivery)を実行し得る。いくつかの構成では、単一のクエリ−応答トランザクションのために下位層において交換されるパケットはすべて、少なくともローカルネットワーク内でローカルにクエリ−応答トランザクションを一意に識別するトランザクションIDに関連付けられ得る。さらに、クエリ−応答トランザクションは、(1)Unitrieve、(2)Anytrieve、(3)Manytrieve、および(4)Multitrieveとして分類され得る。
[0034]Unitrieveは、単一のターゲットの応答側ノードからの応答をクエリ側(querying)ノードに対してフェッチする動作を指す(refers to)。Anytrieveは、1組の(a set of)潜在的な応答側ノードのうちの任意の1つの応答側ノードからの少なくとも1つの応答をクエリ側ノードに対してフェッチする動作を指す。Manytrieveは、1組の潜在的な応答側ノードのうちの任意のM個の異なる応答側ノードからのM個の応答をクエリ側ノードに対してフェッチする動作を指す。Mは1よりも大きい整数である。Multitrieveは、複数のターゲットの応答側ノードの各々から応答をフェッチする動作を指す。ターゲットの応答側ノード(targeted responding nodes)は、1組の潜在的な応答側ノードのサブセットであってもよい。
[0035]下位層の特定の構成に応じて、これらのタイプのトランザクションのパケットは、異なるように処理されてもよい。本開示で説明される機構および技法は、下位層において、クエリ−応答トランザクションのパケットを従来のプッシュ指向のパケット(たとえば、ユニキャストパケット)と区別するので、その機構および技法は、ネットワーク性能を改善または最適化することができる。
[0036]図1は、クエリ−応答トランザクションをサポートするPHY/MAC/リンク層パケット(フレーム)を示す図100である。下位層要求パケット110は、プリアンブル122と、宛先アドレスフィールド124と、ソースアドレスフィールド126と、タイプフィールド128と、トランザクションIDフィールド130と、応答数フィールド(number-of-responses field)132と、クエリフィールド134と、パッドフィールド136と、チェックサムフィールド138とを含み得る。特に、タイプフィールド128内に設定された値は、下位層要求パケット110がクエリタイプであることを示し得、クエリパケットのトランザクションタイプを示し得る。たとえば、「000」はUnitrieve要求を示し得る。「001」は、Multitrieve要求を示し得る。「010」は、Anytrieve要求を示し得る。「001」は、Manytrieve要求を示し得る。最上位ビット(たとえば「0」)は、下位層要求パケット110がクエリタイプであるというようなパケットタイプを示すために使用されることができる。さらに、タイプフィールド128内に設定されたNULL(または他の事前設定された値)も、下位層要求パケット110がレガシー下位層パケットとして処理されることを示し得る。トランザクションIDフィールド130内に設定された値は、下位層要求パケット110を他のクエリ−応答トランザクションのクエリパケットと区別することができる。応答数フィールド132内に設定された値は、下位層要求パケット110が応答側ノードから探している(seeking)応答パケットの数を示す。
[0037]下位層応答パケット150は、プリアンブル162と、宛先アドレスフィールド164と、ソースアドレスフィールド166と、タイプフィールド168と、トランザクションIDフィールド170と、識別IDフィールド172と、応答フィールド174と、パッドフィールド176と、チェックサムフィールド178とを含み得る。特に、タイプフィールド168内に設定された値は、下位層応答パケット150が応答タイプであることを示し得、応答パケットのトランザクションタイプを示し得る。たとえば、「100」はUnitrieve要求を示し得る。「101」は、Multitrieve要求を示し得る。「110」は、Anytrieve要求を示し得る。「101」は、Manytrieve要求を示し得る。最上位ビット(たとえば「1」)は、下位層応答パケット150が応答タイプであるというようなパケットタイプを示すために使用することができる。さらに、タイプフィールド168内に設定されたNULL(または他の事前設定された値)も、下位層応答パケット150がレガシー下位層パケットとして処理されることを示し得る。トランザクションIDフィールド170内に設定された値は、下位層応答パケット150を他のクエリ−応答トランザクションの応答パケットと区別することができる。識別IDフィールド172内に設定された値は、下位層応答パケット150を同じクエリ−応答トランザクションでの他の一意の(unique)応答パケットと区別することができる。
[0038]図2は、ネットワーク内のデバイス間のクエリ−応答トランザクションを示す図200である。ネットワーク251は、デバイスの中でも(among other devices)、共通チャネル232上で通信するデバイス221〜229を含む。
[0039]一態様では、いくつかの(certain)状況において、デバイス221は、デバイス225(すなわち、ターゲットの単一の応答側ノード(targeted single responding node))から応答を取り出すことを望む場合がある。デバイス221は、このクエリ−応答トランザクションのためにUnitrieveパケットを使用し得る。より具体的には、デバイス221の上位層は、上位層クエリパケットを構築し得る。上位層クエリパケットは、デバイス225の上位層ネットワークアドレスと、デバイス225から求められた(sought)応答情報を示すクエリ情報とを含み得る。デバイス221のPHY/MAC/リンク層は、下位層要求パケット110を構築し得る。デバイス221のPHY/MAC/リンク層は、宛先アドレスフィールド124においてデバイス225のMACアドレスを指定する。デバイス221のPHY/MAC/リンク層は、タイプフィールド128において、下位層要求パケット110がUnitrieve要求であることをさらに指定する。1つの応答が要求されたことを示すために、応答数フィールド132に値が設定され得る。あるいは、Unitrieve要求は1つの応答が要求されていることを意味する(implies)ので、応答数フィールド132は空のままでもよい。デバイス221のPHY/MAC/リンク層は、クエリフィールド134内に上位層クエリパケットをさらに含む。PHY/MAC/リンク層は、このクエリ−応答トランザクションに関連付けられたトランザクションIDを生成し得る、または、たとえばサーバから取得し得る。トランザクションIDは、進行中のトランザクションを識別する値であってもよく、デバイス221〜229の局所近傍内で一意であってもよい。PHY/MAC/リンク層は、トランザクションIDフィールド130にトランザクションIDを含む。それに応じて、PHY/MAC/リンク層は、プリアンブル122、ソースアドレスフィールド126、パッドフィールド136、およびチェックサムフィールド138のためのデータも準備する。このようにして、デバイス221のPHY/MAC/リンク層は、下位層要求パケット110を構築する。デバイス221は、共通チャネル232上で構築された下位層要求パケット110を送信する。その後、デバイス225は、下位層要求パケット110を受信する。
[0040]デバイス225は、PHY/MAC/リンク層において下位層要求パケット110を受信すると、タイプフィールド128内に設定されている値に基づいて下位層要求パケット110がクエリパケットであると決定し、とりわけ(among other things)、上位層クエリパケットとトランザクションIDとを下位層要求パケット110から取得し、それに応じて、上位層クエリパケットによって要求された応答情報を有する上位層応答パケットを構築する。次いで、デバイス225のPHY/MAC/リンク層は、下位層応答パケット150を構築する。たとえば、PHY/MAC/リンク層は、応答フィールド174に上位層応答パケットを、宛先アドレスフィールド164にデバイス221のMACアドレスを、およびトランザクションIDフィールド170にトランザクションIDを含む。PHY/MAC/リンク層は、タイプフィールド168において、下位層応答パケット150がUnitrieve応答であることを指定する。PHY/MAC/リンク層は、識別IDフィールド(distinguisher ID field)172を使用しない場合がある。それに応じて、PHY/MAC/リンク層は、プリアンブル162、ソースアドレスフィールド166、パッドフィールド176、およびチェックサムフィールド178のためのデータも準備する。このようにして、PHY/MAC/リンク層は、下位層応答パケット150を構築する。次いで、デバイス225は、共通チャネル232上で下位層応答パケット150をデバイス221に送信する。
[0041]別の態様では、いくつかの状況において、デバイス221は、デバイス222〜229のいずれか1つから応答を取り出すことを望む(desire)場合がある。デバイス221は、このクエリ−応答トランザクションのためにAnytrieveパケットを使用し得る。特に、デバイス221は、下位層要求パケット110を構築し得る。デバイス221のPHY/MAC/リンク層は、宛先アドレスフィールド124において、デバイス222〜229を含むネットワーク251内のすべてのデバイスを対象とするブロードキャストアドレスを指定し得る。さらに、デバイス222〜229は、同じマルチキャストグループに属し得る。したがって、PHY/MAC/リンク層は、宛先アドレスフィールド124において、マルチキャストアドレスまたはマルチキャストグループを対象とするグループインデックスを代わりに(alternatively)指定し得る。あるいは、PHY/MAC/リンク層は、宛先アドレスフィールド124において、デバイス222〜229の各々のアドレスを指定してもよい。デバイス221のPHY/MAC/リンク層は、タイプフィールド128において、下位層要求パケット110がAnytrieve要求であることを指定する。1つの応答が要求されたことを示すために、応答数フィールド132に値が設定され得る。あるいは、Anytrieve要求は1つの応答が要求されていることを意味するので、応答数フィールド132は空のままでもよい。デバイス221のPHY/MAC/リンク層は、Unitrieveに関して上記で説明したものと同様に、クエリフィールド134内に上位層クエリパケットをさらに含み、および(as well as)トランザクションIDフィールド130にトランザクションIDを含む。それに応じて、PHY/MAC/リンク層は、プリアンブル122、ソースアドレスフィールド126、パッドフィールド136、およびチェックサムフィールド138のためのデータも準備する。このようにして、デバイス221のPHY/MAC/リンク層は、下位層要求パケット110を構築する。デバイス221は、共通チャネル232上で構築された下位層要求パケット110を送信する。その後、デバイス222〜229は、下位層要求パケット110を受信する。
[0042]デバイス222〜229の特定のデバイス(たとえば、デバイス223)は、PHY/MAC/リンク層において下位層要求パケット110を受信すると、タイプフィールド128内に設定されている値に基づいて下位層要求パケット110がクエリパケットであると決定する。いくつかの構成では、特定のデバイスは、あらかじめ決定されたまたはランダムな時間期間の間、PHY/MAC/リンク層において下位層要求パケット110を一時的にバッファリングしてもよく、同じトランザクションIDを有する応答パケットがその時間期間内に共通チャネル232上で送信されたかどうかをさらに決定し得る。特定のデバイスは、そのような応答パケットが送信されたと決定した場合、応答しないと決定し得、それに応じて、受信されたクエリパケットを破棄し得る。特定のデバイスは、(たとえば、同じトランザクションIDを有する応答パケットが時間期間内に共通チャネル232上で送信されていないと決定すると)応答することを選択することができ、とりわけ、上位層クエリパケットとトランザクションIDを下位層要求パケット110から取得し、それに応じて、上位層クエリパケットによって要求された応答情報を有する上位層応答パケットを構築し得る。Unitrieveに関連して上記で説明したものと同様に、特定のデバイスのPHY/MAC/リンク層は、次いで、下位層応答パケット150を構築する。次いで、特定のデバイスは、共通チャネル232上で下位層応答パケット150をデバイス221に送信する。
[0043]いくつかの構成では、PHY/MAC/リンク層において下位層要求パケット110を受信すると、特定のデバイスは、上位層における上位層応答パケットを取得することに取りかかり(proceed to)、次いで、PHY/MAC/リンク層において下位層応答パケット150を構築し得る。上位層からの上位層応答パケットを待っている間、下位層応答パケット150を構築している間、または下位層応答パケット150を送信するための送信機会を待っている間、PHY/MAC/リンク層は、同じトランザクションIDを有する応答パケットが共通チャネル232上で送信されたかどうかをさらに決定し得る。さらに、PHY/MAC/リンク層は、随意に、あらかじめ決定されたまたはランダムな時間期間の間、構築された下位層応答パケット150をバッファリングし得る。待機中/構築中、または随意にバッファリング時間期間に、同じトランザクションIDを有する応答パケットが送信されたと特定のデバイスが決定した場合、特定のデバイスは、応答しないと決定し得、したがって、構築された下位層応答パケット150を破棄し得る。待機中/構築中、または随意にバッファリング時間期間に、同じトランザクションIDを有する応答パケットが送信されていないと特定のデバイスが決定した場合、特定のデバイスは、構築された下位層応答パケット150を共通チャネル232上で送信し得る。
[0044]また別の態様では、いくつかの状況では、デバイス221は、デバイス222〜229のうちの任意の5つの異なるデバイスから5つの応答(すなわち、構成可能な数の応答)を取り出すことを望み得る。デバイス221は、このクエリ−応答トランザクションのためにManytrieveパケットを使用し得る。特に、デバイス221は、下位層要求パケット110を構築し得る。デバイス221のPHY/MAC/リンク層は、Anytrieveに関連して上記で説明したものと同様に、宛先アドレスフィールド124において、ネットワーク251内のすべてのデバイス222〜229を対象とする1つまたは複数のMACアドレスを指定し得る。デバイス221のPHY/MAC/リンク層は、タイプフィールド128において、下位層要求パケット110がManytrieve要求であることを指定する。5つの異なる応答側からの5つの応答が要求されたことを示すために、応答数フィールド132に値(たとえば、5)が設定され得る。デバイス221のPHY/MAC/リンク層は、クエリフィールド134内に上位層クエリパケットをさらに含む。PHY/MAC/リンク層は、後述する識別IDを生成するために使用され得る機構(mechanism)を指定することもできる。デバイス221のPHY/MAC/リンク層は、トランザクションIDフィールド130にトランザクションIDを含む。それに応じて、PHY/MAC/リンク層は、プリアンブル122、ソースアドレスフィールド126、パッドフィールド136、およびチェックサムフィールド138のためのデータも準備する。このようにして、デバイス221のPHY/MAC/リンク層は、下位層要求パケット110を構築する。デバイス221は、共通チャネル232上で構築された下位層要求パケット110を送信する。その後、デバイス222〜229は、下位層要求パケット110を受信する。
[0045]デバイス222〜229の特定のデバイスは、PHY/MAC/リンク層において下位層要求パケット110を受信すると、タイプフィールド128内に設定されている値に基づいて下位層要求パケット110がクエリパケットであると決定する。いくつかの構成では、PHY/MAC/リンク層は、あらかじめ決定されたまたはランダムな時間期間の間、PHY/MAC/リンク層において下位層要求パケット110を一時的にバッファリングし得る。図3に示された動作304−Aに関連して以下に記載される抑制技法(suppression techniques)に関する条件が満たされない(たとえば、要求された数の識別された応答(requested number of distinguished responses)が共通チャネル232上で送信されていないと特定のデバイスが決定した)とき、特定のデバイスは、とりわけ、下位層要求パケット110から上位層クエリパケットおよびトランザクションIDを取得し、それに応じて、上位層クエリパケットによって要求された応答情報を有する上位層応答パケットを構築し得る。特定のデバイスは、条件が満たされていると決定したとき、図3に示された動作304−Aに関連して以下に説明するように、バッファリングされた下位層要求パケット110をドロップし得る。
[0046]次いで、特定のデバイスのPHY/MAC/リンク層は、下位層応答パケット150を構築する。たとえば、PHY/MAC/リンク層は、応答フィールド174に上位層応答パケットを、宛先アドレスフィールド164にデバイス221のMACアドレスを、およびトランザクションIDフィールド170にトランザクションIDを含む。PHY/MAC/リンク層は、タイプフィールド168において、下位層応答パケット150がManytrieve応答であることを指定する。PHY/MAC/リンク層は、識別IDを取得し、識別IDフィールド172に識別IDを含めることもできる。識別IDは、トランザクション内の各固有の(unique)下位層応答パケット150を識別するために使用される。たとえば、特定のデバイスは、同じ下位層応答パケット150を再送信することができ、または特定のデバイスのネクストホップノードは、同じ下位層応答パケット150を転送する(forward)ことができる。したがって、隣接デバイスは、同じ識別IDを有し得る同じ下位層応答パケット150の複数のコピーを受信し得る。識別IDが同じ応答に関連付けられている(たとえば、識別IDが同一であり得る)と決定すると、隣接デバイスは、下位層応答パケット150の複数のコピーを、トランザクション内の1つの一意の下位層応答パケット150と見なし、冗長な応答パケットをドロップし得る。さらに、特定のデバイスが、特定の識別IDを有する下位層応答パケット150を宛先に転送するためのネクストホップノードであり、特定のデバイスが、同じ特定の識別IDを有する別の下位層応答パケット150がすでに共通チャネル232上で宛先の方に送信されたことを検出した場合、特定のデバイスは、転送されるべき下位層応答パケット150をドロップし得る。特定のデバイスは、識別IDを生成するために、PHY/MAC/リンク層において事前設定された機構を使用し得る。特定のデバイスは、識別IDを生成するために、受信された下位層要求パケット110のクエリフィールド134において指定された機構を使用し得る。それに応じて、PHY/MAC/リンク層は、プリアンブル162、ソースアドレスフィールド166、パッドフィールド176、およびチェックサムフィールド178のためのデータも準備する。このようにして、PHY/MAC/リンク層は、下位層応答パケット150を構築する。
[0047]次いで、特定のデバイスは、共通チャネル232上で下位層応答パケット150をデバイス221に送信する。この例では、デバイス222、224、226、227、および229は各々、デバイス221に応答パケットを送信する。
[0048]いくつかの構成では、PHY/MAC/リンク層において下位層要求パケット110を受信すると、特定のデバイスは、上位層における上位層応答パケットの取得に取りかかり、次いで、PHY/MAC/リンク層において下位層応答パケット150を構築し得る。上位層からの上位層応答パケットを待っている間、下位層応答パケット150を構築している間、または下位層応答パケット150を送信するための送信機会を待っている間、ならびに(as well as)、随意に、追加のあらかじめ決定されたまたはランダムな時間期間に、特定のデバイスは、図3に示された動作306−Bおよび307−Bに関連して以下に記載される抑制技法に関する条件が満たされるかどうかを決定し得る。条件が満たされていないと特定のデバイスが決定した(たとえば、要求された数の一意の応答が共通チャネル232上で送信されていないと特定のデバイスが決定した)とき、特定のデバイスは、共通チャネル232上でデバイス221に下位層応答パケット150を送信する。特定のデバイスは、条件が満たされていると決定したとき、図3に示された動作306−Bおよび307−Bに関連して以下に説明するように、上位層応答パケットまたは下位層応答パケット150をドロップし得る。
[0049]別の態様では、いくつかの状況において、デバイス221は、デバイス226〜228の各々から応答パケットを取り出すことを望む場合がある。デバイス221は、このクエリ−応答トランザクションのためにMultitrieveパケットを使用し得る。特に、デバイス221は、下位層要求パケット110を構築し得る。デバイス226〜228は、同じマルチキャストグループに属し得る。したがって、PHY/MAC/リンク層は、宛先アドレスフィールド124において、マルチキャストアドレスまたはマルチキャストグループを対象とするグループインデックスを指定し得る。あるいは、PHY/MAC/リンク層は、宛先アドレスフィールド124において、デバイス226〜228の各々のアドレスを指定してもよい。デバイス221のPHY/MAC/リンク層は、タイプフィールド128において、下位層要求パケット110がMultitrieve要求であることを指定する。デバイス226〜228からの3つの応答(たとえば、ターゲットの応答側ノードに対応する)が要求されたことを示すための値が応答数フィールド132において設定され得る。デバイス221のPHY/MAC/リンク層は、Unitrieveに関連して上記で説明したものと同様に、下位層要求パケット110を構築する。デバイス221は、共通チャネル232上で構築された下位層要求パケット110を送信する。その後、デバイス222〜229は、下位層要求パケット110を受信する。
[0050]デバイス226〜228の各々は、PHY/MAC/リンク層において下位層要求パケット110を受信すると、タイプフィールド128内に設定されている値に基づいて下位層要求パケット110がクエリパケットであると決定し、とりわけ、上位層クエリパケットとトランザクションIDとを下位層要求パケット110から取得し、それに応じて、上位層クエリパケットによって要求された応答情報を有する上位層応答パケットを構築する。次いで、デバイス222〜229の各々のPHY/MAC/リンク層は、下位層応答パケット150を構築する。たとえば、PHY/MAC/リンク層は、応答フィールド174に上位層応答パケットを、宛先アドレスフィールド164にデバイス221のMACアドレスを、およびトランザクションIDフィールド170にトランザクションIDを含む。PHY/MAC/リンク層は、タイプフィールド168において、下位層応答パケット150がMultitrieve応答であることを指定する。PHY/MAC/リンク層は、識別IDフィールド172を使用しない場合がある。それに応じて、PHY/MAC/リンク層は、プリアンブル162、ソースアドレスフィールド166、パッドフィールド176、およびチェックサムフィールド178のためのデータも準備する。このようにして、PHY/MAC/リンク層は、下位層応答パケット150を構築する。次いで、デバイス222〜229の各々は、共通チャネル232上でそれぞれの下位層応答パケット150をデバイス221に送信する。
[0051]1つの技法では、Anytrieveパケット、Manytrieveパケット、Unitrieveパケット、Multitrieveパケット、およびレガシーパケットを区別するために、パラメータを追加することによって、または既存の(existing)パラメータを拡張することによって、レガシーPHY/MAC/リンク層APIが変更され得る。たとえば、Ethernet(登録商標) MAC層APIは、以下のように拡張され得る。Enqueue(transaction_type,packet_type,packet,toAddress)。上記で説明したように、transaction_typeは、Anytrieve、Manytrieve、Unitrieve、Multitrieve、およびNULL(またはN/A)のうちの1つである。NULLオプションは、パケットがクエリ−応答トランザクション(すなわち、双方向トランザクション)に関連付けられていないことを意味し、したがって、処理はプッシュ指向データパケットのレガシーPHY/MAC/リンク層フローに従い得る。パケットタイプは、Anytrieveパケット、Manytrieveパケット、Unitrieveパケット、およびMultitrieveパケットについては、クエリタイプまたは応答タイプのいずれかである。パケットタイプは、他のパケットの場合はNULL(またはN/A)である。Unitrieveパケットの場合、(たとえば、下位層要求パケット110の宛先アドレスフィールド124内の)toAddressは、ユニキャストアドレスであり得る。Anytrieve、Manytrieve、およびMultitrieveクエリパケットの場合、(たとえば、下層要求パケット110の宛先アドレスフィールド124内の)toAddressは、マルチキャストまたはブロードキャストアドレスであり得る。
[0052]図3は、クエリ−応答トランザクションを行うデバイスの動作を示す図300である。クエリ側ノード392は、共通チャネル232上での応答側ノード394との通信である。クエリ側ノード392および応答側ノード394の各々は、上位層332(たとえば、UDP/TCP/IP層)および下位層334(たとえば、PHY/MAC/リンク層)を有する。クエリ−応答トランザクションを開始するために、クエリ側ノード392(たとえば、デバイス221)の上位層332は、動作301において、上位層クエリパケットを構築する。次いで、上位層332は、拡張された下位層APIを使用して、下位層334に上位層クエリパケットおよびトランザクションタイプの指示(すなわち、Unitrieve、Multitrieve、Anytrieve、またはManytrieve)を送る。
[0053]動作302において、下位層334は、上位層クエリパケットの(for)トランザクションIDを取得または生成する。あるいは、トランザクションIDは、上位層332によって取得または生成され、動作301で、拡張された下位層APIを介して上位層332から下位層334に渡されている(passed down)可能性がある(may)。下位層334は下位層要求パケット110を構築する。次いで、下位層334は、トランザクションIDフィールド130にトランザクションIDを、クエリフィールド134に上位層クエリパケットを含む。
[0054]動作303において、下位層334は、下位層要求パケット110を、共通チャネル232上で応答側ノード394(すなわち、トランザクション応答側デバイス)に送信する。図2に示した例では、上記で説明したUnitrieveトランザクションの場合、応答側ノード394はデバイス225であり得る。上記で説明したAnytrieveトランザクションおよびManytrieveトランザクションの場合、応答側ノード394は、デバイス222〜229の各々であり得る。上記で説明したMultitrieveトランザクションの場合、応答側ノード394は、デバイス226〜228の各々であり得る。
[0055]動作304において、応答側ノード394の下位層334は、下位層要求パケット110を受信する。応答側ノード394の下位層334は、トランザクションIDおよびトランザクションタイプを取得する。下位層334は、トランザクションタイプがAnytrieveまたはManytrieveであると決定したとき、随意に、抑制の第1の技法で、以下に説明する動作304−Aを実行し得る。次いで、下位層334は、動作304−Aが実行されないとき、または動作304−Aが実行されてさらなる処理が必要であると決定されたとき(when operation 304-A is performed to determine that further processing is needed)、トランザクション情報とともに(along with)応答側ノード394の上位層332に上位層クエリパケットを渡す。
[0056]動作304−Aにおいて、実行されたとき、応答側ノード394の下位層334は、受信された下位層要求パケット110を関連するトランザクション情報とともに(たとえば、バッファに)記憶し、待機タイマ(wait timer)を開始する。下位層334は、応答数フィールド132に示される値Mを決定する。Anytrieveの場合、Mは1である。Manytrieveの場合、Mは1よりも大きい整数である。下位層334は、上位層クエリパケットを上位層332に渡す前に、送信リソースをリッスンする。待ち時間が経過する前に、同じトランザクションIDおよび異なる識別IDを有するM個の下位層応答パケット150が受信されると、下位層334は、トランザクション処理を抑制し、応答パケットの送信を控える。たとえば、下位層334は、下位層要求パケット110を破棄し得る。動作304−A内で、下位層334が同じトランザクションIDおよび異なる識別IDを有するM個の下位層応答パケット150を検出する前に待機タイマが満了した場合、下位層334は、さらなる処理のためのトランザクション情報とともに、バッファリングされた上位層クエリパケットを上位層332に渡すことを決定する。
[0057]動作305において、上位層は、受信されたとき、上位層クエリパケットを処理し、それに応じて要求された情報を取得する。次いで、上位層は、上位層応答パケットを構築し、応答側ノード394の下位層334に、トランザクションIDおよびパケットタイプ(すなわち、応答タイプ)の指示(the transaction ID and an indication of the packet type (i.e., a response type))を有する上位層応答パケットを送る。
[0058]動作306において、応答側ノード394の下位層334は、上位層応答パケットを処理し、トランザクションタイプ、トランザクションID、およびパケットタイプに従ってパケットを処理する。たとえば、この時点で(at this point)、下位層応答パケット150は、以下に説明するように、トランザクションタイプおよび特定の下位層に従ってスケジュールされ、遅延され、または抑制され得る。トランザクションタイプがAnytrieveまたはManytrieveであるとき、下位層334は、随意に、抑制の第2の技法で、以下に説明する動作306−Bを実行し得る。
[0059]動作306−Bにおいて、下位層334は、下位層応答パケット150を(たとえば、バッファに)記憶し、送信機会を待っている間、送信リソースをリッスンする。さらに、応答送信は、意図的に、あらかじめ決定されたまたはランダムな時間だけ遅延され得る。
[0060]動作307において、応答側ノード394は、必要なとき、下位層応答パケット150を共通チャネル232上でクエリ側ノード392に送信する。トランザクションタイプがAnytrieveまたはManytrieveであるとき、下位層応答パケット150を送信する前に、下位層334は、随意に、抑制の第2の技法で、動作307−Bを実行し得る。
[0061]動作307−Bにおいて、実行されると、下位層334は、対応する下位層要求パケット110の応答数フィールド132内に設定されている値Mを取得する。Anytrieveの場合、Mは1である。Manytrieveの場合、Mは1よりも大きい整数である。下位層応答パケット150が送られる前に、同じトランザクションIDおよび異なる識別IDを有するM個の下位層応答パケット150が受信された場合、下位層334は、下位層応答パケット150を送信することを抑制する。たとえば、下位層334は、下位層要求パケット110を破棄し得る。
[0062]さらに、クエリ−応答トランザクションに基づくパケット処理(query-response transaction based packet processing)を実施するデバイス221〜229は、より豊富な(richer)情報で下位層での媒体アクセスを制御し、したがって、ネットワーク効率を高め得る。たとえば、下位層は、AnytrieveおよびManytrieve動作の競合を最小限に抑えるために、応答リソースを事前に割り振ることができる。
[0063]クエリノード392は、クエリパケット(この例ではM個の応答)について所望される応答の数に基づいて、集中型コントローラまたは分散的な方法のいずれかによって、応答リソースと呼ばれる応答の送信のための共通チャネル232上の将来のリソースの割振りを要求し得る。割り振られた応答リソースのサイズは、送信スロットの単位で、識別された応答の予想される数に依存し得る。M個の応答の場合、割り振られたタイムスロットの数は、Mの関数、すなわちf(M)である。あるいは、割り振られた応答リソースのサイズがデフォルト値に設定されてもよい。
[0064]この例では、動作301内で、上位層332は、所望の応答の数(すなわち、M)を下位層334に示し得る。動作302内で、下位層334は、構築されている下位層要求パケット110の応答数フィールド132に所望の応答の数を含め得る。動作303内で、下位層334は、共通チャネル232上で所望の応答の数を含む下位層要求パケット110を送信する。
[0065]M個の所望の応答を示す下位層要求パケット110を受信すると、デバイス221〜229は、衝突(collisions)を最小限に抑えるために、応答側送信を予約されたf(M)個のスロットに拡散させるために、衝突回避機構(collision avoidance mechanism)を使用し得る。
[0066]第1の技法では、デバイス221〜229は、拡散機構を実装し得る。拡散機構を使用して、応答側ノードの各々は、デバイス固有の(device-specific)パラメータNを決定し得る。次いで、応答側ノードは、応答パケットに応答するためのf(M)スロットの中のf’(M,N)番目のスロットを選択するために、拡散関数(f’)を使用し得る。たとえば、Nは、応答側ノードのノードID(またはMACアドレス)のハッシュ値であってもよい。
[0067]第2の技法では、デバイス221〜229は、バックオフ機構を実装し得る。応答側ノードは、割り振られたリソースにおいて競合する可能性がある。各応答側ノードは、送信タイムスロットを選択し、時間を追跡し(keep track of time)、選択されたタイムスロットを決定するために、バックオフタイマを開始する。次いで、応答側ノードは、選択されたタイムスロットにおける応答パケットを送信することを開始する。送信タイムスロットは、様々な方法で応答リソースから選択されることができる。たとえば、デバイス221〜229は、送信タイムスロットをランダムに選択するように構成され得る。あるいは、デバイス221〜229は、クエリパケットの受信信号強度の関数に基づいて送信タイムスロットを選択するように構成されてもよい。あるいは、デバイス221〜229の各々は、各デバイスのデバイスIDハッシュの関数に基づいて送信タイムスロットを選択するように構成されてもよい。あるいは、デバイス221〜229の各々は、対応する情報識別子の統計の関数に基づいて送信タイムスロットを選択するように構成されてもよい。
[0068]さらに、デバイス221〜229は、上記の2つの技法のハイブリッドな使用を採用し得る。
[0069]さらに、クエリ側ノードは、すべてのf(M)個のスロットが使用されており、より少ない、次いで、所望の数(すなわち、M)の応答パケットが正常に(successfully)受信されたときにクエリ障害(query failure)が起こったと決定し得る。クエリ側ノードは、クエリパケットを再度送ることによってクエリ−応答トランザクションを再開し(reinitiate)得る。いくつかの構成では、取出しクエリの再開始(retrieval query re-initiation)を、クエリ障害が衝突に起因する状況に制限することによって、リソース使用量がさらに最適化され得る。クエリ側ノードは、すべての応答リソースをリッスンし、応答が正常に受信されない、割り振られたスロットの少なくとも一部において、共通チャネル232がビジーであるとき、その障害が衝突に起因すると判断する。衝突が検出された場合、クエリ側ノードは、最大N回の再開始まで(up to N re-initiations)クエリ−応答トランザクションを再開始し得る。Nは、構成可能な整数である。クエリ側ノードは、より少ない数の応答パケットを要求し、リソース使用量をさらに低減するために、再開始されたクエリパケット内の除外された応答側ノードのリストを提供し得る。クエリパケットを受信すると、除外された応答側ノードは各々、応答パケットを送信せず、したがって、応答リソース中の共通チャネル232上のトラフィックが低減する(reducing traffic)。
[0070]図4は、WiFi(たとえば、IEEE802.11)環境におけるクエリ−応答トランザクションのためのリソース割振りを示す図400である。この例では、デバイス221は、デバイス226〜228を対象とし、3つの応答、すなわち応答パケット452、454、456を要求するMultitrieve要求、すなわちクエリパケット442を開始することを望む。デバイス221は、クエリパケット442(すなわち、下位層要求パケット110)を構築し、とりわけ、クエリフィールド134内に対応する上位層クエリパケットを、応答数フィールド132内に「3」の指示を、および宛先アドレスフィールド124内にデバイス226〜228に関連付けられたMACアドレスを含む。さらに、応答リソースを決定するために、リソース割振り機構(たとえば、f(M))を使用しているデバイス221。この例では、リソース割振り機構は競合機構であり得、応答リソースは、とりわけ、クエリパケットを処理するための処理時間期間と、3つの応答パケットを送信するための送信時間と、2つの連続した応答パケット送信の間の1つのショートフレーム間スペース(one short interframe space)(SIFS)と、競合ウィンドウとを含み得る。潜在的な応答側ノードの数は3であるので、デバイス221〜229によって使用されるリソース割振り機構は、この例では、競合ウィンドウが5つのタイムスロットを含むと決定する。したがって、デバイス221は、クエリパケット442に、決定された応答リソースを示すNAVを含む。この例では、NAVは、後述するように、時点t1から時点t10までの時間期間を示す。このように、共通チャネル232上の非ターゲットのデバイスは、NAVを観測し、NAVによって示される時間期間(すなわち、決定された応答リソース)の間に信号を送信することを控え得る。
[0071]時点t1において、デバイス221は、共通チャネル232が空いている(free)ことを検出する。分散協調機能(DCF)フレーム間スペース(distributed coordination function (DCF) interframe space)(DIFS)およびバックオフ時間期間を待った後、時点(time point)t0において、デバイス221は、共通チャネル232上でクエリパケット442を送信する。デバイス226〜228は、時点t1においてクエリパケット442の受信を完了する。次いで、デバイス226〜228の各々は、クエリパケット442を処理するために、時点t1から時点t2までの時間期間を使用する。
[0072]時点t2において、デバイス226〜228は、クエリパケット442を処理することを完了し、応答数フィールド132に含まれる値(すなわち、この例では「3」)を決定する。この例では、デバイス221〜229はバックオフ機構を使用するように構成されている。バックオフ機構を使用して、デバイス226は、この例では5つのタイムスロットを含む競合ウィンドウの第2のタイムスロットが割り振られていると(that it is allocated the second time slot of the contention window)決定する。デバイス227は、競合ウィンドウの第4のタイムスロットが割り振られていると決定する。デバイス228は、競合ウィンドウの第5のタイムスロットが割り振られていると決定する。時点t2において、デバイス226〜228の各々は、競合ウィンドウ内のタイムスロットを決定するためにタイマを開始し得る。
[0073]その後、デバイス226は、タイマに基づいて、第1のタイムスロットがいつ経過したかを決定し得る。デバイス226は、また、第1のタイムスロットで送信が行われていないことを決定したとき、第2のタイムスロット内の時点t3において応答パケット452を送信する。デバイス227およびデバイス228は、第2のタイムスロットにおける応答パケット452の送信を検出し、次いで、競合ウィンドウ内のタイムスロットを決定するために使用されるタイマを停止する。
[0074]時点t4において、デバイス227およびデバイス228は、応答パケット452の送信が完了したことを検出する。デバイス227およびデバイス228は、SIFSを待ち、時点t5で、タイマを再び開始する。
[0075]デバイス227は、タイマに基づいて、第3のタイムスロットがいつ経過したかを決定し得る。デバイス227は、第3タイムスロットで送信が行われていないことも決定したとき、第4のタイムスロット内の時点t6において応答パケット454を送信する。デバイス228は、第4のタイムスロットにおける応答パケット454の送信を検出し、次いで、競合ウィンドウ内のタイムスロットを決定するために使用されるタイマを停止させる。
[0076]時点t7において、デバイス228は、応答パケット454の送信が完了したことを検出する。デバイス228は、SIFSを待ち、時点t8で、タイマを再び開始する。
[0077]デバイス228は、それが時点t8における第5のタイムスロットの開始であると(that it is the start of the fifth time slot)決定する。次いで、デバイス228は、第5のタイムスロット内の時点t9において応答パケット456を送信する。デバイス228は、NAVの終わりである時点t10において応答パケット456の送信を完了する。
[0078]別の構成では、デバイス221は、(時点t1から時点t10の代わりに)時点t2から時点t10までリソースを予約するためにNAV(図4に示すNAV’)を設定し得る。言い換えれば、デバイス221は、このクエリ−応答トランザクションのために、データ送信のためでなく、クエリパケット442を処理するために使用される、時点t1から時点t2までのリソースを予約しない。したがって、このクエリ−応答トランザクションに参加していない共通チャネル232上の他のデバイスは、データ送信のために、時点t1から時点t2までの時間期間の間、共通チャネル232を依然として(still)使用し得る。
[0079]図5は、WiFi(たとえば、IEEE802.11)環境におけるクエリ−応答トランザクションのためのリソース割振りを示す別の図500である。この例では、デバイス221は、デバイス226〜228を対象とし、3つの応答、すなわち応答パケット552、554、556を要求するMultitrieve要求、すなわちクエリパケット542を開始することを望む。デバイス221は、クエリパケット542(すなわち、下位層要求パケット110)を構築し、とりわけ、クエリフィールド134内に対応する上位層クエリパケットを、応答数フィールド132内に「3」の指示を、および宛先アドレスフィールド124内にデバイス226〜228に関連付けられたMACアドレスを含む。さらに、応答リソースを決定するために、リソース割振り機構(たとえば、f(M))を使用しているデバイス221。この例では、応答リソースは、チャネル割当て機構であり得、とりわけ、クエリパケットを処理するための処理時間期間と、3つの応答パケットを送信するための送信時間と、2つの連続した応答パケット送信の間の1つのSIFSとを含み得る。したがって、デバイス221は、クエリパケット542に、決定された応答リソースを示すNAVを含む。このように、共通チャネル232上の非ターゲットのデバイスは、NAVを観測し、NAVによって示される時間期間(すなわち、決定された応答リソース)の間に信号を送信することを控え得る。
[0080]時点t1において、デバイス221は、共通チャネル232が空いていることを検出する。DIFSおよびバックオフ時間期間を待った後、時点t0において、デバイス221は、共通チャネル232上でクエリパケット542を送信する。デバイス226〜228は、時点t1においてクエリパケット542の受信を完了する。次いで、デバイス226〜228の各々は、クエリパケット542を処理するために、時点t1から時点t3までの時間期間を使用する。
[0081]時点t3において、デバイス226〜228は、クエリパケット542の処理を完了し、応答数フィールド132に含まれる値(すなわち、この例では「3」)を決定する。この例では、デバイス221〜229はランダム選択機構(たとえば、コイントス機構)を使用するように構成されている。別の例では、デバイス221〜229は、複数のタイムスロットの割振りを拡散する拡散機構を使用するように構成され得る。ランダム選択機構を使用して、デバイス226は、それが応答パケットを送信するための第1の応答側ノードであると決定する。デバイス227は、それが応答パケットを送信するための第2の応答側ノードであると決定する。デバイス228は、それが応答パケットを送信するための第3の応答側ノードであると決定する。
[0082]デバイス226は、時点t3において、それが、第1の応答側ノードが応答パケット552を送信する機会またはタイムスロットであると決定する。次いで、デバイス226は、時点t3において応答パケット552を送信する。デバイス227およびデバイス228は、応答パケット552の送信を検出する。
[0083]時点t4において、デバイス227およびデバイス228は、応答パケット552の送信が完了したことを検出する。デバイス227は、SIFSを待ち、時点t6において、それが、第2の応答側ノードが応答パケット554を送信する機会またはタイムスロットであると決定する。次いで、デバイス227は、時点t6において応答パケット554を送信する。デバイス228は、応答パケット554の送信を検出する。
[0084]時点t7において、デバイス228は、応答パケット554の送信が完了したことを検出する。デバイス228は、SIFSを待ち、時点t9において、それが、第3の応答側ノードが応答パケット554を送信する機会またはタイムスロットであると決定する。次いで、デバイス227は、時点t9において応答パケット554を送信する。デバイス228は、NAVの終わりである時点t10において応答パケット556の送信を完了する。
[0085]別の構成では、デバイス221は、(時点t1から時点t10の代わりに)時点t3から時点t10までリソースを予約するためにNAV(図5に示すNAV’)を設定し得る。言い換えれば、デバイス221は、このクエリ−応答トランザクションのために、データ送信のためでなく、クエリパケット542を処理するために使用される、時点t1から時点t2までのリソースを予約しない。したがって、このクエリ−応答トランザクションに参加していない共通チャネル232上の他のデバイスは、データ送信のために、時点t1から時点t2までの時間期間の間、共通チャネル232を依然として使用し得る。
[0086]いくつかの構成では、デバイスは、競合機構とチャネル割当て機構の両方を使用し得る。たとえば、クエリ側デバイスは、5つの応答側デバイスのうちの任意の3つから3つの異なる応答を取り出したい場合がある。クエリ側ノードは、最初にNAVを取得し、次いで、NAVを3で割り、NAV/3が各所望の応答についての応答送信時間よりわずかに長いことを必要とし(require)得る。次いで、要求側デバイスは、第1および第2の応答側デバイスがスロット1について競合し、第3および第4の応答側デバイスがスロット2について競合し、第5の応答デバイスがスロット3を割り当てられるように、割当て機構を告知し得る。この技法は、デバイスの数が多く(large)、所望の応答が少なく、したがって(such that)、割当てによって誘発される遅延(assignment-induced delays)が競合衝突ほど重要でない(less critical than contention collisions)ような状況において有用であり得る。
[0087]図6は、クエリ−応答トランザクションでの応答側ノードにおける通信の方法(プロセス)のフローチャート600である。この方法は、第1のノード(たとえば、デバイス221〜229、装置1302/1302’)によって実行され得る。
[0088]動作613において、第1のノードは、第2のノードから、受信しているパケットを受信する。いくつかの構成では、パケットは、パケットがクエリであるか応答であるかを示すパケットタイプ情報を含む。動作616において、第1のノードは、受信されたパケットがクエリパケットであることを決定し、クエリパケットは少なくともトランザクション識別子を示す情報を含む。いくつかの構成では、受信されたパケットは、受信されたパケットのパケットタイプ情報に基づいてクエリパケットであると決定される。たとえば、図2を参照すると、デバイス225は、PHY/MAC/リンク層において下位層要求パケット110を受信すると、タイプフィールド128内に設定されている値に基づいて下位層要求パケット110がクエリパケットであると決定する。
[0089]動作619において、第1のノードは、クエリパケットに含まれる情報に基づいてトランザクションタイプを決定する。いくつかの構成では、トランザクションタイプは、(a)クエリパケットが1つのノードに応答を要求する、(b)クエリパケットが1組のノードのうちの任意のノードに応答を要求する、(c)クエリパケットが、N個のノードのうちの任意のM個のノードに応答を要求する、ここにおいて、NがMよりも大きい、または(d)クエリパケットが1組のノードの各ノードに応答を要求する、のうちの1つを示す。
[0090]動作623において、第1のノードは、トランザクションタイプまたはトランザクション識別子のうちの少なくとも1つに基づいて応答パケットを送信するかどうかを決定する。いくつかの構成では、第1のノードは、少なくともトランザクションタイプに基づいてクエリパケットに応答して応答パケットの送信を抑制するかどうかを決定する。いくつかの構成では、応答パケットを送信するかどうかの決定は、PHY層、MAC層、またはリンク層のうちの少なくとも1つにおいて実行される。動作626において、第1のノードは、応答を送信することを決定したことに応答して第2のノードに応答パケットを送信する。たとえば、図2を参照すると、デバイス222〜229の各々は、クエリパケットに含まれる情報に基づいてトランザクションタイプを決定し、応答パケットの送信を抑制するかまたは応答パケットを送信するかどうかを決定する。
[0091]図7は、Unitrieveトランザクションを実施する方法(プロセス)のフローチャート700である。この方法は、第1のノード(たとえば、デバイス221〜229、装置1302/1302’)によって実行され得る。
[0092]いくつかの構成では、クエリパケットはアドレスをさらに含む。図6に示した動作623内で、第1のノードは、動作713において、クエリパケットが1つのノードに応答を要求し、アドレスが第1のノードに関連付けられていることをトランザクションタイプが示すと決定する。動作716において、第1のノードは、応答パケットを送信することを決定する。たとえば、図2を参照すると、デバイス221およびデバイス225は、Unitrieveトランザクションを行う。
[0093]図8は、Anytrieveトランザクションを実施する方法(プロセス)のフローチャート800である。この方法は、第1のノード(たとえば、デバイス221〜229、装置1302/1302’)によって実行され得る。
[0094]いくつかの構成では、クエリパケットは、トランザクション識別子をさらに含み、トランザクションタイプは、クエリパケットが1組のノードのうちの任意のノードに応答を要求することを示す。図6に示した動作623内で、第1のノードは、動作813において、応答パケット内のトランザクション識別子がクエリパケット内のトランザクション識別子と一致する(matches)かどうかに基づいて、第2のノードからのクエリパケットに応答して、応答パケットが別のノードによって送信されるかどうかを決定する。
[0095]動作816において、第1のノードは、クエリパケットに応答して応答パケットが前記別のノードによって送信されると決定したことに応答して、応答パケットの送信を抑制することを決定する。動作819において、第1のノードは、クエリパケットに応答して応答パケットが前記別のノードによって送信されないと決定したことに応答して、応答パケットを送信することを決定する。いくつかの構成では、応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信する前に(before communicating the received query packet to an upper layer)、応答パケットの送信を抑制することを決定する。
[0096]いくつかの構成では、応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信した後、および上位層から送信のための応答パケットを受信した後、応答パケットの送信を抑制することを決定する。たとえば、図2を参照すると、デバイス221およびデバイス222〜229(特にデバイス223)は、Anytrieveトランザクションを行う(conduct)。
[0097]図9は、Manytrieveトランザクションを実施する方法(プロセス)のフローチャート900である。この方法は、第1のノード(たとえば、デバイス221〜229、装置1302/1302’)によって実行され得る。
[0098]いくつかの構成では、クエリパケットは、トランザクション識別子をさらに含み、トランザクションタイプは、クエリパケットがN個のノードのうちの任意のM個のノードに応答を要求することを示す。図6に示した動作623内で、第1のノードは、動作913において、応答パケットの各々の中のトランザクション識別子がクエリパケット内のトランザクション識別子と一致するかどうかに基づいて、第2のノードからのクエリパケットに応答して、M個の応答パケットがN個のノードのうちのM個のノードによって送信されるかどうかを決定する。M個の応答パケットは、互いに区別される。たとえば、図2を参照すると、下位層応答パケット150は各々、互いに区別するための識別IDを含み得る。特定のデバイスは、同じ識別IDを有し得る同じ下位層応答パケット150の複数の(multiple)コピーを受信し得る。識別IDが同じ応答に関連付けられている(たとえば、識別IDが同一であり得る)と決定すると、特定のデバイスは、下位層応答パケット150の複数のコピーを、トランザクション内の1つの一意の下位層応答パケット150と見なし、冗長な応答パケットをドロップし得る。詳細には、特定のデバイスが、特定の識別IDを有する下位層応答パケット150を宛先に転送するためのネクストホップノードであり、特定のデバイスが、同じ特定の識別IDを有する別の下位層応答パケット150がすでに共通チャネル232上で宛先の方に送信されたことを検出した場合、特定のデバイスは、転送されるべき下位層応答パケット150をドロップし得る。いくつかの構成では、パケット送信(たとえば、送信/スケジュール)またはパケットドロップに関する(about)決定は、ポリシー実施(policy enforcement)または輻輳条件などに従って、特定のデバイスまたはネットワーク管理デバイスによって行われ(made)得る。
[0099]クエリパケットに応答してM個の応答パケットがM個のノードによって送信されると、動作916において、第1のノードは、応答パケットの送信を抑制することを決定し得る。さらに、第1のノードは、送信されるべき第1の応答パケット(特定の識別IDを有する)が、別のノードによってすでに送信された第2の応答パケットと同じ特定の識別IDを有すると決定した場合、第1のノードは、第1の応答パケットの送信を抑制することを決定し得る。クエリパケットに応答して応答パケットがN個のノードのうちのM個未満(less than)のノードによって送信されると、動作919において、第1のノードは、応答パケットを送信することを決定し得る。
[00100]いくつかの構成では、応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信する前に、応答パケットの送信を抑制することを決定する。いくつかの構成では、応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信した後、および上位層から送信のための応答パケットを受信した後、応答パケットの送信を抑制することを決定する。たとえば、図2を参照すると、デバイス221およびデバイス222〜229(特にデバイス222、224、226、227、および229)は、Manytrieveトランザクションを行う。
[00101]図10は、Multitrieveトランザクションを実施する方法(プロセス)のフローチャート1000である。この方法は、第1のノード(たとえば、デバイス221〜229、装置1302/1302’)によって実行され得る。いくつかの構成では、クエリパケットはアドレスをさらに含む。図6に示した動作623内で、第1のノードは、動作1013において、クエリパケットが1組のノードの各ノードに応答を要求することをトランザクションタイプが示すと決定する。動作1016において、第1のノードは、アドレスが1組のノードを示し、第1のノードが1組のノード内にあると決定する。動作1019において、第1のノードは、応答パケットを送信することを決定する。たとえば、図2を参照すると、デバイス221およびデバイス226〜228は、Multitrieveトランザクションを行う。
[00102]図11は、クエリ−応答トランザクションでのクエリ側ノードにおける通信の方法(プロセス)のフローチャート1100である。この方法は、第1のノード(たとえば、デバイス221〜229、装置1302/1302’)によって実行され得る。動作1113において、第1のノードは、上位層から、およびPHY層、MAC層、またはリンク層のうちの少なくとも1つにおいて、トランザクションタイプと、そのトランザクションタイプに関連付けられたデータとを受信する。動作1116において、第1のノードは、データのトランザクション識別子を取得する。
[00103]動作1119において、第1のノードは、PHY層、MAC層、またはリンク層のうちの1つにおいて、トランザクションタイプ、データ、パケットタイプ、およびトランザクション識別子を含むようにクエリパケットを準備し、ここにおいて、パケットタイプは、クエリパケットがクエリであることを示し、ここにおいて、トランザクションタイプは、(a)クエリパケットが1つのノードに応答を要求する、(b)クエリパケットが1組のノードのうちの任意のノードに応答を要求する、(c)クエリパケットが、N個のノードのうちの任意のM個のノードに応答を要求する、ここにおいて、NがMよりも大きい、または(d)クエリパケットが1組のノードの各ノードに応答を要求する、のうちの1つを示し、動作1123において、第1のノードは、クエリパケットを送信する。いくつかの構成では、上位層からのクエリパケットは、トランザクションタイプとパケットタイプとを含む。トランザクション識別子は、PHY層、MAC層、またはリンク層において取得される。いくつかの構成では、動作1126において、第1のノードは、少なくとも1つの第2のノードからのクエリパケットに応答して、少なくとも1つの応答パケットを受信する。少なくとも1つの応答パケットの各々は、トランザクション識別子を含む。たとえば、図2を参照すると、デバイス221はクエリ側ノードである。
[00104]図12は、クエリ−応答トランザクションでのリソース割振りのための通信の方法(プロセス)のフローチャート1200である。この方法は、第1のノード(たとえば、デバイス221〜229、装置1302/1302’)によって実行され得る。動作1213において、第1のノードは、第2のノードからクエリパケットを受信し、クエリパケットは、(a)クエリパケットが関連付けられた第1のトランザクションの指示、(b)第1のトランザクションに関連付けられたM個の応答パケットが第2のノードによって要求されたことの指示であり、Mは0よりも大きい整数、(c)M個の応答パケットをチャネル上で第2のノードに送信するために割り振られた時間期間の指示、および(d)少なくともM個のタイムスロットを割り振るために使用されるチャネル割当て機構または競合機構のうちの少なくとも1つの指示、を含み得る。いくつかの構成では、M個の応答パケットの各々は、M個の応答パケットの残りの識別IDと区別するそれぞれの識別IDを含む。
[00105]動作1216において、第1のノードは、競合機構またはチャネル割当て機構のうちの示された少なくとも1つに従ってチャネルにアクセスするための示された時間期間に割り振られた少なくともM個のタイムスロットから第1のタイムスロットを取得する。いくつかの構成では、チャネル割当て機構は、少なくともM個のタイムスロットの割振りを拡散する拡散機構である。第1のタイムスロットは、拡散機構に従って取得される。いくつかの構成では、第1のタイムスロットは、第1のノードが他のノードと少なくともM個のタイムスロットのうちの1つのタイムスロット(a time slot)について競合する競合機構に従って取得される。
[00106]さらに、動作1223において、第1のノードは、別のノードから第2のノードへの第1のトランザクションに関連付けられたM個の応答パケットの第2の応答パケットの送信を検出する。動作1226において、第1のノードは、第1のタイムスロットを取得するために第2の応答パケットの送信に続く(subsequent to)少なくともM個のタイムスロットのうちの1つのタイムスロットを決定する。動作1229において、第1のノードは、チャネルが第1のタイムスロットで利用可能であると決定する。いくつかの構成では、第1のタイムスロットは、PHY層、MAC層、またはリンク層において取得される。動作1233において、第1のノードは、第1のタイムスロットにおいて、第1のトランザクションに関連付けられたM個の応答パケットのうちの第1の応答パケットをチャネル上で第2のノードに(to the second node on the channel)送信する。たとえば、図4〜図5を参照すると、デバイス221およびデバイス226〜228は、リソースを割り振るための方法を利用する。
[00107]図13は、例示的な装置1302における異なるモジュール/手段/構成要素間のデータフローを示す概念データフロー図1300である。本装置は第1のノードであり得る。本装置は、受信モジュール1304と、上位層1306と、下位層1308と、送信モジュール1310とを含む。装置1302/1302’は、第2のノード1350から信号を受信するように構成され得る。
[00108]一態様では、受信モジュール1304は、第2のノード1350からパケットを受信するように構成され得る。下位層1308は、受信されたパケットがクエリパケットであることを決定するように構成され得、クエリパケットは少なくともトランザクション識別子を示す情報を含む。下位層1308は、クエリパケットに含まれる情報に基づいてトランザクションタイプを決定するように構成され得る。下位層1308は、トランザクションタイプまたはトランザクション識別子のうちの少なくとも1つに基づいて応答パケットを送信するかどうかを決定するように構成され得る。下位層1308および/または送信モジュール1310は、応答を送信することを決定したことに応答して、応答パケットを第2のノード1350に送信するように構成され得る。
[00109]いくつかの構成では、下位層1308は、少なくともトランザクションタイプに基づいてクエリパケットに応答して応答パケットの送信を抑制するかどうかを決定するように構成され得る。
[00110]いくつかの構成では、応答パケットを送信するかどうかの決定は、下位層1308のPHY層、MAC層、またはリンク層(a PHY layer, a MAC layer, or a link layer of the lower layer 1308)のうちの少なくとも1つにおいて実行される。
[00111]いくつかの構成では、パケットは、そのパケットがクエリであるか応答であるかを示すパケットタイプ情報を含み、受信されたパケット内のパケットタイプ情報に基づいて受信されたパケットがクエリパケットであると決定される。
[00112]いくつかの構成では、トランザクションタイプは、(a)クエリパケットが1つのノードに応答を要求する、(b)クエリパケットが1組のノードのうちの任意のノードに応答を要求する、(c)クエリパケットが、N個のノードのうちの任意のM個のノードに応答を要求する、ここにおいて、NがMよりも大きい、または(d)クエリパケットが1組のノードの各ノードに応答を要求する、のうちの1つを示す。
[00113]いくつかの構成では、クエリパケットはアドレスをさらに含み、下位層1308は、クエリパケットがあるノード(one node)に応答を要求し、そのアドレスが第1のノードに関連付けられていることをトランザクションタイプが示すときに応答パケットを送信することを決定するように構成され得る。
[00114]いくつかの構成では、クエリパケットは、トランザクション識別子をさらに含み、トランザクションタイプは、クエリパケットが1組のノードのうちの任意のノードに応答を要求することを示す。下位層1308は、応答パケット内のトランザクション識別子がクエリパケット内のトランザクション識別子と一致するかどうかに基づいて、第2のノード1350からのクエリパケットに応答して、応答パケットが別のノードによって送信されるかどうかを決定するように構成され得る。下位層1308は、クエリパケットに応答して応答パケットが前記別のノードによって送信されると決定したことに応答して、応答パケットの送信を抑制することを決定するように構成され得る。下位層1308は、クエリパケットに応答して応答パケットが前記別のノードによって送信されていないと決定したことに応答して、応答パケットを送信することを決定するように構成され得る。
[00115]いくつかの構成では、応答パケットの送信を抑制することを決定すると、下位層1308のPHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層1306に通信する前に、応答パケットの送信を抑制することを決定するように構成され得る。
[00116]いくつかの構成では、応答パケットの送信を抑制することを決定すると、下位層1308のPHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層1306に通信した後、および上位層1306から送信のための応答パケットを受信した後、応答パケットの送信を抑制することを決定するように構成され得る。
[00117]いくつかの構成では、クエリパケットは、トランザクション識別子をさらに含み、トランザクションタイプは、クエリパケットがN個のノードのうちの任意のM個のノードに応答を要求することを示す。下位層1308は、応答パケットの各々の中のトランザクション識別子がクエリパケット内のトランザクション識別子と一致するかどうかに基づいて、第2のノード1350からのクエリパケットに応答して、M個の応答パケットがN個のノードのうちのM個のノードによって送信されるかどうかを決定するように構成され得る。M個の応答パケットは、互いに区別される。下位層1308は、クエリパケットに応答してM個の応答パケットが前記M個のノードによって送信されると決定したことに応答して、応答パケットの送信を抑制することを決定するように構成され得る。下位層1308は、クエリパケットに応答して応答パケットがN個のノードのうちのM個未満のノードによって送信されると決定したことに応答して、応答パケットを送信することを決定するように構成され得る。
[00118]いくつかの構成では、応答パケットの送信を抑制することを決定すると、下位層1308のPHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層1306に通信する前に、応答パケットの送信を抑制することを決定するように構成され得る。
[00119]いくつかの構成では、応答パケットの送信を抑制することを決定すると、下位層1308のPHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層1306に通信した後、および上位層1306から送信のための応答パケットを受信した後、応答パケットの送信を抑制することを決定するように構成され得る。
[00120]いくつかの構成では、クエリパケットはアドレスをさらに含む。下位層1308は、クエリパケットが1組のノードの各ノードに応答を要求することをトランザクションタイプが示すとき、応答パケットを送信することを決定するように構成され得、ここにおいて、アドレスは、1組のノードを示し、第1のノードは、1組のノード内にある。
[00121]別の態様では、下位層1308のPHY層、MAC層、またはリンク層のうちの少なくとも1つは、上位層1306から、トランザクションタイプおよびそのトランザクションタイプに関連付けられたデータを受信するように構成され得る。
[00122]下位層1308は、データのトランザクション識別子を取得するように構成され得る。
[00123]下位層1308のPHY層、MAC層、またはリンク層のうちの1つは、トランザクションタイプ、データ、パケットタイプ、およびトランザクション識別子(the transaction type, the data, a packet type, and the transaction identifier)を含むようにクエリパケットを準備するように構成され得る。パケットタイプは、クエリパケットがクエリであることを示す。トランザクションタイプは、(a)クエリパケットが1つのノードに応答を要求する、(b)クエリパケットが1組のノードのうちの任意のノードに応答を要求する、(c)クエリパケットが、N個のノードのうちの任意のM個のノードに応答を要求する、ここにおいて、NがMよりも大きい、または(d)クエリパケットが1組のノードの各ノードに応答を要求する、のうちの1つを示す。下位層1308および/または送信モジュール1310は、クエリパケットを送信するように構成され得る。
[00124]いくつかの構成では、上位層からのクエリパケットは、トランザクションタイプとパケットタイプとを含む。トランザクション識別子は、PHY層、MAC層、またはリンク層において取得される。
[00125]いくつかの構成では、受信モジュール1304および/または下位層1308は、少なくとも1つの第2のノード1350からのクエリパケットに応答して、少なくとも1つの応答パケットを受信するように構成され得る。少なくとも1つの応答パケットの各々は、トランザクション識別子を含む。
[00126]別の態様では、受信モジュール1304および/または下位層1308は、第2のノード1350からクエリパケットを受信するように構成され得る。クエリパケットは、(a)クエリパケットが関連付けられた第1のトランザクションの指示、(b)第1のトランザクションに関連付けられたM個の応答パケットが第2のノード1350よって要求されたことの指示であり、Mは0よりも大きい整数、(c)M個の応答パケットをチャネル上で第2のノード1350に送信するために割り振られた時間期間の指示、および(d)少なくともM個のタイムスロットを割り振るために使用されるチャネル割当て機構または競合機構のうちの少なくとも1つの指示、を含み得る。
[00127]下位層1308は、競合機構またはチャネル割当て機構のうちの示された少なくとも1つに従ってチャネルにアクセスするための示された時間期間に割り振られた少なくともM個のタイムスロットから第1のタイムスロットを取得するように構成され得る。
[00128]下位層1308および/または送信モジュール1310は、第1のタイムスロットにおいて、第1のトランザクションに関連付けられたM個の応答パケットのうちの第1の応答パケットをチャネル上で第2のノード1350に送信するように構成され得る。
[00129]いくつかの構成では、M個の応答パケットの各々は、M個の応答パケットの残りの識別IDと区別するそれぞれの識別IDを含む。
[00130]いくつかの構成では、チャネル割当て機構は、少なくともM個のタイムスロットの割振りを拡散する拡散機構である。第1のタイムスロットは、拡散機構に従って取得される。
[00131]いくつかの構成では、第1のタイムスロットは、第1のノードが他のノードと少なくともM個のタイムスロットのうちの1つのタイムスロットについて競合する競合機構に従って取得される。受信モジュール1304および/または下位層1308は、別のノードからの第2のノード1350への第1のトランザクションに関連付けられたM個の応答パケットの第2の応答パケットの送信を検出するように構成され得る。下位層1308は、第1のタイムスロットを取得するために第2の応答パケットの送信に続く少なくともM個のタイムスロットのうちの1つのタイムスロットを決定するように構成され得る。
[00132]いくつかの構成では、第1のタイムスロットは、下位層1308のPHY層、MAC層、またはリンク層において取得される。
[00133]いくつかの構成では、下位層1308は、チャネルが第1のタイムスロットにおいて利用可能であることを決定するように構成され得る。
[00134]図14は、処理システム1414を採用する装置1302’のためのハードウェア実装形態の一例を示す図1400である。処理システム1414は、バス1424によって全体的に表されるバスアーキテクチャを用いて実装される場合がある。バス1424は、処理システム1414の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続バスとブリッジとを含む場合がある。バス1424は、プロセッサ1404によって表される1つまたは複数のプロセッサおよび/またはハードウェアモジュールと、モジュール1304、1306、1308、1310と、コンピュータ可読媒体/メモリ1406とを含む様々な回路を互いにリンクする。バス1424はまた、タイミングソース、周辺機器、電圧調整器、および電力管理回路など、様々な他の回路をリンクし得るが、これらの回路は当技術分野においてよく知られており、したがって、これ以上説明されない。
[00135]処理システム1414はトランシーバ1410に結合される場合がある。トランシーバ1410は1つまたは複数のアンテナ1420に結合される。トランシーバ1410は、送信媒体を介して種々の他の装置と通信するための手段を与える。トランシーバ1410は、1つまたは複数のアンテナ1420から信号を受信し、受信された信号から情報を抽出し、抽出された情報を処理システム1414、具体的には受信モジュール1304に与える。さらに、トランシーバ1410は、処理システム1414、具体的には送信モジュール1310から情報を受信し、受信された情報に基づいて、1つまたは複数のアンテナ1420に適用されるべき信号を生成する。処理システム1414は、コンピュータ可読媒体/メモリ1406に結合されたプロセッサ1404を含む。プロセッサ1404は、コンピュータ可読媒体/メモリ1406に記憶されたソフトウェアの実行を含む全体的な処理に関与する。ソフトウェアは、プロセッサ1404によって実行されたとき、処理システム1414に、特定の装置のための上記で説明された様々な機能を実行させる。コンピュータ可読媒体/メモリ1406はまた、ソフトウェアを実行するときにプロセッサ1404によって操作されるデータを記憶するために使用され得る。処理システムは、モジュール1304、1306、1308および1310のうちの少なくとも1つをさらに含む。それらのモジュールは、プロセッサ1404内で動作し、コンピュータ可読媒体/メモリ1406内に存在する/記憶されるソフトウェアモジュールであるか、プロセッサ1404に結合された1つもしくは複数のハードウェアモジュールであるか、またはそれらの何らかの組合せであり得る。
[00136]処理システム1414はデバイス221〜229の構成要素であり得る。一構成では、通信のための装置1302/1302’は、図6〜図12に示されている動作を実行するための手段を含む。
[00137]具体的には、一態様では、装置1302/1302’は、第2のノードからパケットを受信するための手段を含む。
[00138]装置1302/1302’は、受信されたパケットがクエリパケットであることを決定するための手段を含み、クエリパケットは、少なくともトランザクション識別子を示す情報を含む。装置1302/1302’は、クエリパケットに含まれる情報に基づいてトランザクションタイプを決定するための手段を含む。装置1302/1302’は、トランザクションタイプまたはトランザクション識別子の少なくとも1つに基づいて応答パケットを送信するかどうかを決定するための手段を含む。
[00139]装置1302/1302’は、応答を送信することを決定したことに応答して第2のノードに応答パケットを送信するための手段を含む。装置1302/1302’は、少なくともトランザクションタイプに基づいてクエリパケットに応答して応答パケットの送信を抑制するかどうかを決定するための手段を含むように構成され得る。応答パケットを送信するかどうかの決定は、PHY層、MAC層、またはリンク層のうちの少なくとも1つにおいて実行される。第1のパケットがクエリパケットであることを決定するための手段は、下位層において決定を実行するように構成され得る。下位層は、PHY層、MAC層、またはリンク層である。
[00140]パケットは、そのパケットがクエリであるか応答であるかを示すパケットタイプ情報を含み得、受信されたパケット内のパケットタイプ情報に基づいて受信されたパケットがクエリパケットであると決定され得る。トランザクションタイプは、(a)クエリパケットが1つのノードに応答を要求する、(b)クエリパケットが1組のノードのうちの任意のノードに応答を要求する、(c)クエリパケットが、N個のノードのうちの任意のM個のノードに応答を要求する、ここにおいて、NがMよりも大きい、または(d)クエリパケットが1組のノードの各ノードに応答を要求する、のうちの1つを示し得る。
[00141]クエリパケットは、アドレスをさらに含む。送信するかどうかを決定するための手段は、クエリパケットがあるノードに応答を要求し、そのアドレスが装置1302/1302’に関連付けられていることをトランザクションタイプが示すときに応答パケットを送信することを決定するように構成され得る。
[00142]クエリパケットは、トランザクション識別子をさらに含み得、トランザクションタイプは、クエリパケットが1組のノードのうちの任意のノードに応答を要求することを示す。装置1302/1302’は、応答パケット内のトランザクション識別子がクエリパケット内のトランザクション識別子と一致するかどうかに基づいて、第2のノードからのクエリパケットに応答して、応答パケットが別のノードによって送信されるかどうかを決定するための手段を含むように構成され得る。抑制するかどうかを決定するための手段は、クエリパケットに応答して応答パケットが前記別のノードによって送信されると決定したことに応答して、応答パケットの送信を抑制することを決定するように構成され得る。送信するかどうかを決定するための手段は、クエリパケットに応答して応答パケットが前記別のノードによって送信されないと決定したことに応答して、応答パケットを送信することを決定するように構成され得る。
[00143]応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信する前に、応答パケットの送信を抑制することを決定し得る。応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信した後、および上位層から送信のための応答パケットを受信した後、応答パケットの送信を抑制することを決定し得る。
[00144]クエリパケットは、トランザクション識別子をさらに含み、トランザクションタイプは、クエリパケットがN個のノードのうちの任意のM個のノードに応答を要求することを示す。装置1302/1302’は、応答パケットの各々の中のトランザクション識別子がクエリパケット内のトランザクション識別子と一致するかどうかに基づいて、第2のノードからのクエリパケットに応答して、M個の応答パケットがN個のノードのうちのM個のノードによって送信されるかどうかを決定するための手段を含むように構成され得る。M個の応答パケットは、互いに区別される。抑制するかどうかを決定するための手段は、クエリパケットに応答してM個の応答パケットが前記M個のノードによって送信されると決定したことに応答して、応答パケットの送信を抑制することを決定するように構成され得る。送信するかどうかを決定するための手段は、クエリパケットに応答して応答パケットがN個のノードのうちのM個未満のノードによって送信されると決定したことに応答して、応答パケットを送信することを決定するように構成され得る。
[00145]応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信する前に、応答パケットの送信を抑制することを決定する。応答パケットの送信を抑制することを決定すると、PHY層、MAC層、またはリンク層のうちの少なくとも1つは、受信されたクエリパケットを上位層に通信した後、および上位層から送信のための応答パケットを受信した後、応答パケットの送信を抑制することを決定する。
[00146]クエリパケットは、アドレスをさらに含み得る。送信するかどうかを決定するための手段は、クエリパケットが1組のノードのうちの各ノードに応答を要求することをトランザクションタイプが示すときに応答パケットを送信することを決定するように構成され得る。アドレスは、1組のノードを示す。装置1302/1302’は、1組のノード内にある。
[00147]別の態様では、装置1302/1302’は、上位層から、およびPHY層、MAC層、またはリンク層のうちの少なくとも1つにおいて、トランザクションタイプと、そのトランザクションタイプに関連付けられたデータとを受信するための手段を含む。装置1302/1302’は、データのトランザクション識別子を取得するための手段を含む。装置1302/1302’は、PHY層、MAC層、またはリンク層のうちの1つにおいて、トランザクションタイプ、データ、パケットタイプ、およびトランザクション識別子を含むようにクエリパケットを準備するための手段を含む。パケットタイプは、クエリパケットがクエリであることを示す。トランザクションタイプは、(a)クエリパケットが1つのノードに応答を要求する、(b)クエリパケットが1組のノードのうちの任意のノードに応答を要求する、(c)クエリパケットが、N個のノードのうちの任意のM個のノードに応答を要求する、ここにおいて、NがMよりも大きい、または(d)クエリパケットが1組のノードの各ノードに応答を要求する、のうちの1つを示す。
[00148]装置1302/1302’は、クエリパケットを送信するための手段を含む。上位層からのクエリパケットは、トランザクションタイプとパケットタイプとを含む。トランザクション識別子は、PHY層、MAC層、またはリンク層において取得される。装置1302/1302’は、少なくとも1つの第2のノードからのクエリパケットに応答して少なくとも1つの応答パケットを受信するための手段を含むように構成され得る。トランザクション識別子を含んでいる少なくとも1つの応答パケットの各々。
[00149]別の態様では、装置1302/1302’は、第2のノードからクエリパケットを受信するための手段を含む。クエリパケットは、(a)クエリパケットが関連付けられた第1のトランザクションの指示、(b)第1のトランザクションに関連付けられたM個の応答パケットが第2のノードによって要求されたことの指示であり、Mは0よりも大きい整数、(c)M個の応答パケットをチャネル上で第2のノードに送信するために割り振られた時間期間の指示、および(d)少なくともM個のタイムスロットを割り振るために使用されるチャネル割当て機構または競合機構のうちの少なくとも1つの指示、を含む。
[00150]装置1302/1302’は、競合機構またはチャネル割当て機構のうちの示された少なくとも1つに従ってチャネルにアクセスするための示された時間期間に割り振られた少なくともM個のタイムスロットから第1のタイムスロットを取得するための手段を含む。装置1302/1302’は、第1のタイムスロットにおいて、第1のトランザクションに関連付けられたM個の応答パケットのうちの第1の応答パケットをチャネル上で第2のノードに送信するための手段を含む。M個の応答パケットの各々は、M個の応答パケットの残りの識別IDと区別するそれぞれの識別IDを含み得る。
[00151]第1のタイムスロットは、割振り、少なくともM個のタイムスロット、拡散する(that spreads allocation the at least M time slot)拡散機構に従って取得され得る。第1のタイムスロットは、第1のノードが他のノードと少なくともM個のタイムスロットのうちの1つのタイムスロットについて競合する競合機構に従って取得され得る。装置1302/1302’は、別のノードから第2のノードへの第1のトランザクションに関連付けられたM個の応答パケットの第2の応答パケットの送信を検出するための手段を含むように構成され得る。装置1302/1302’は、第1のタイムスロットを取得するために第2の応答パケットの送信に続く少なくともM個のタイムスロットのうちの1つのタイムスロットを決定するための手段を含むように構成され得る。第1のタイムスロットは、PHY層、MAC層、またはリンク層において取得され得る。装置1302/1302’は、チャネルが第1のタイムスロットで利用可能であると決定するための手段を含む。
[00152]上述の手段は、上述の手段によって具陳された機能を実行するように構成された、装置1302、および/または装置1302’の処理システム1414の上述のモジュールのうちの1つまたは複数であり得る。
[00153]開示されるプロセス/フローチャート中のブロックの特定の順序または階層は、例示的な手法の一例であることを理解されたい。設計選好に基づいて、プロセス/フローチャートにおけるブロックの特定の順序または階層は並べ替えられ得ることを理解されたい。さらに、いくつかのブロックは組み合わされるかまたは省略される場合がある。添付の方法クレームは、様々なブロックの要素を例示的な順序で提示したものであり、提示された特定の順序または階層に限定されるものではない。
[00154]前の説明は、いかなる当業者も本明細書に記載された様々な態様を実践することを可能にするために提供される。これらの態様に対する様々な修正は当業者には容易に明らかであり、本明細書において規定された一般的原理は他の態様に適用される場合がある。したがって、特許請求の範囲は、本明細書に示された態様に限定されるものではなく、クレーム文言に矛盾しない最大の範囲を与えられるべきであり、単数形の要素への言及は、そのように明記されていない限り、「唯一無二の」を意味するものではなく、「1つまたは複数の」を意味するものである。「例示的」という単語は、本明細書では例、事例、または例示の働きをすることを意味するために使用される。本明細書で「例示的」として記載される任意の態様は、必ずしも、他の態様よりも好ましいまたは有利であると解釈されるべきでない。別段に明記されていない限り、「いくつか(some)」という語は1つまたは複数を指す。「A、B、またはCのうちの少なくとも1つの」、「A、B、およびCのうちの少なくとも1つ」、「A、B、C、またはそれらの任意の組合せ」などの組合せは、A、B、および/またはCの任意の組合せを含み、複数のA、複数のB、または複数のCを含むことができる。具体的には、「A、B、またはCのうちの少なくとも1つ」、「A、B、およびCのうちの少なくとも1つ」、「A、B、C、またはそれらの任意の組合せ」などの組合せは、Aのみ、Bのみ、Cのみ、AおよびB、AおよびC、BおよびC、AおよびBおよびCとすることができ、任意のそのような組合せは、A、B、またはCのうちの1つまたは複数のメンバを含むことができる。本開示全体にわたって説明される種々の態様の要素に対するすべての構造的および機能的均等物は、当業者には既知であるか、または後に既知になり、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されることを意図する。さらに、本明細書において開示するいかなることも、そのような開示が特許請求の範囲に明示的に記載されているか否かにかかわらず、公に供するものではない。いかなるクレーム要素も、その要素が「ための手段」という句を使用して明確に列挙されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。