特許第6009700号(P6009700)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許6009700ピアツーピアプレアソシエーション発見動作
<>
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000002
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000003
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000004
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000005
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000006
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000007
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000008
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000009
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000010
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000011
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000012
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000013
  • 特許6009700-ピアツーピアプレアソシエーション発見動作 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6009700
(24)【登録日】2016年9月23日
(45)【発行日】2016年10月19日
(54)【発明の名称】ピアツーピアプレアソシエーション発見動作
(51)【国際特許分類】
   H04W 8/00 20090101AFI20161006BHJP
   H04W 76/02 20090101ALI20161006BHJP
   H04W 84/12 20090101ALI20161006BHJP
   H04W 84/18 20090101ALI20161006BHJP
【FI】
   H04W8/00 110
   H04W76/02
   H04W84/12
   H04W84/18
【請求項の数】40
【全頁数】32
(21)【出願番号】特願2015-561421(P2015-561421)
(86)(22)【出願日】2014年2月27日
(65)【公表番号】特表2016-514420(P2016-514420A)
(43)【公表日】2016年5月19日
(86)【国際出願番号】US2014018958
(87)【国際公開番号】WO2014137734
(87)【国際公開日】20140912
【審査請求日】2015年12月8日
(31)【優先権主張番号】13/786,799
(32)【優先日】2013年3月6日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100194814
【弁理士】
【氏名又は名称】奥村 元宏
(72)【発明者】
【氏名】ティング、セン−コーン
【審査官】 三浦 みちる
(56)【参考文献】
【文献】 特表2010−511323(JP,A)
【文献】 特表2013−504280(JP,A)
【文献】 特表2013−515392(JP,A)
【文献】 米国特許出願公開第2011/0216753(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24− 7/26
H04W 4/00−99/00
(57)【特許請求の範囲】
【請求項1】
ピアツーピア(P2P)ネットワーク中のクライアントデバイスを動作させる方法において、
前記方法は、
デバイス発見フェーズの間、
1つ以上のピアデバイスに対してプローブ要求をブロードキャストすることによって、前記P2Pネットワークの1つ以上のチャネルをスキャンして、前記ピアデバイスの存在を発見することと、前記プローブ要求は、前記クライアントデバイスによって提供される多数のP2Pサービスを示している多数の第1のハッシュ値を含み、
多数の前記ピアデバイスのそれぞれから、第1のフレームを受信し、各第1のフレームは、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを示しているサービス情報とを含むことと、
サービス発見フェーズの間、前記サービス情報に少なくとも部分的に基づいて、選択したピアデバイスにサービス発見要求を送ることとを含み、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することである方法。
【請求項2】
前記選択したピアデバイスが、前記サービス情報において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る請求項1記載の方法。
【請求項3】
記第1のフレームのうちの少なくとも1つは、プローブ応答を含む請求項1記載の方法。
【請求項4】
記プローブ応答は、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数の第2のハッシュ値を含む請求項3記載の方法。
【請求項5】
前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する請求項4記載の方法。
【請求項6】
前記特定のP2Pサービスは、以下の、ユニバーサル・プラグ・アンド・プレイサービス、ボンジュール・サービス、Wi−Fiディスプレイサービス、プリントサービス、ゲームサービス、ファイル共有サービスのうちの1つ以上を含む請求項1記載の方法。
【請求項7】
前記スキャンすることは、前記対応するピアデバイスからブロードキャストされるビーコンフレームを聞くことによって実行され、前記第1のフレームは、前記ビーコンフレームを含む請求項1記載の方法。
【請求項8】
前記ビーコンフレームのうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数のハッシュ値を含む請求項7記載の方法。
【請求項9】
前記1つ以上のピアデバイスはP2Pグループを含み、前記第1のフレームのそれぞれの1つは、前記P2Pグループのグループオーナーによりブロードキャストされるビーコンフレームを含む請求項1記載の方法。
【請求項10】
前記サービス情報は、前記P2Pグループの1人以上のメンバーが、前記1つ以上の特定のP2Pサービスを提供するように構成されているか否かを示す請求項9記載の方法。
【請求項11】
前記サービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスに対する1つ以上の更新を示す請求項1記載の方法。
【請求項12】
前記P2Pサービスに対する前記1つ以上の更新を示している前記ピアデバイスに対してのみ、サービス発見要求フレームを送信することをさらに含む請求項11記載の方法。
【請求項13】
プログラム命令を含んでいる一時的でないコンピュータ読取可能記憶媒体において、
前記命令は、ピアツーピア(P2P)ネットワークに関係付けられているクライアントデバイスのプロセッサによって実行されるときに、前記クライアントデバイスに、
デバイス発見フェーズの間、
1つ以上のピアデバイスに対してプローブ要求をブロードキャストすることによって、前記P2Pネットワークの1つ以上のチャネルをスキャンさせて、前記ピアデバイスの存在を発見させ、前記プローブ要求は、前記クライアントデバイスによって提供される多数のP2Pサービスを示している多数の第1のハッシュ値を含み、
多数の前記ピアデバイスのそれぞれから、第1のフレームを受信させ、各第1のフレームは、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを示しているサービス情報とを含み、
サービス発見フェーズの間、前記サービス情報に少なくとも部分的に基づいて、選択したピアデバイスにサービス発見要求を送らせ、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することである一時的でないコンピュータ読取可能記憶媒体。
【請求項14】
前記選択したピアデバイスが、前記サービス情報において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る請求項13記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項15】
記第1のフレームは、プローブ応答を含む請求項13記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項16】
記プローブ応答のうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数の第2のハッシュ値を含む請求項15記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項17】
前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する請求項16記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項18】
前記特定のP2Pサービスは、以下の、ユニバーサル・プラグ・アンド・プレイサービス、ボンジュール・サービス、Wi−Fiディスプレイサービス、プリントサービス、ゲームサービス、ファイル共有サービスのうちの1つ以上を含む請求項13記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項19】
スキャンするための、前記プログラム命令の実行は、前記クライアントデバイスに、
前記対応するピアデバイスからブロードキャストされるビーコンフレームを聞かせ、前記第1のフレームは、前記ビーコンフレームを含む請求項13記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項20】
前記ビーコンフレームのうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数のハッシュ値を含む請求項19記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項21】
前記1つ以上のピアデバイスはP2Pグループを含み、前記第1のフレームのそれぞれの1つは、前記P2Pグループのグループオーナーによりブロードキャストされるビーコンフレームを含む請求項13記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項22】
前記サービス情報は、前記P2Pグループの1人以上のメンバーが、前記1つ以上の特定のP2Pサービスを提供するように構成されているか否かを示す請求項21記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項23】
前記サービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスに対する1つ以上の更新を示す請求項13記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項24】
前記プログラム命令の実行は、さらに、前記クライアントデバイスに、
前記P2Pサービスに対する前記1つ以上の更新を示している前記ピアデバイスに対してのみ、サービス発見要求フレームを送信させる請求項23記載の一時的でないコンピュータ読取可能記憶媒体。
【請求項25】
ピアツーピア(P2P)ネットワークに関係付けられているクライアントデバイスにおいて、
前記クライアントデバイスは、
1つ以上のピアデバイスに対してプローブ要求をブロードキャストすることによって、前記P2Pネットワークの1つ以上のチャネルをスキャンして、前記ピアデバイスの存在を発見し、前記プローブ要求は、前記クライアントデバイスによって提供される多数のP2Pサービスを示している多数の第1のハッシュ値を含む手段と、
多数の前記ピアデバイスのそれぞれから、第1のフレームを受信し、各第1のフレームは、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを示しているサービス情報とを含む手段と、
前記サービス情報に少なくとも部分的に基づいて、選択したピアデバイスにサービス発見要求を送り、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することである手段とを具備するクライアントデバイス。
【請求項26】
前記選択したピアデバイスが、前記サービス情報において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る請求項25記載のクライアントデバイス。
【請求項27】
記第1のフレームのうちの少なくとも1つは、プローブ応答を含む請求項25記載のクライアントデバイス。
【請求項28】
記プローブ応答は、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数の第2のハッシュ値を含む請求項27記載のクライアントデバイス。
【請求項29】
前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する請求項28記載のクライアントデバイス。
【請求項30】
前記スキャンすることは、前記対応するピアデバイスからブロードキャストされるビーコンフレームを聞くことによって実行され、前記第1のフレームは、前記ビーコンフレームを含む請求項25記載のクライアントデバイス。
【請求項31】
前記ビーコンフレームのうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数のハッシュ値を含む請求項30記載のクライアントデバイス。
【請求項32】
前記1つ以上のピアデバイスはP2Pグループを含み、前記第1のフレームのそれぞれの1つは、前記P2Pグループのグループオーナーによりブロードキャストされるビーコンフレームを含む請求項25記載のクライアントデバイス。
【請求項33】
ピアツーピア(P2P)ネットワークに関係付けられているクライアントデバイスにおいて、
前記クライアントデバイスは、
1つ以上のピアデバイスとデータを交換するトランシーバと、
プロセッサとを具備し、
前記プロセッサは、
デバイス発見フェーズの間、
前記1つ以上のピアデバイスにプローブ要求を送信し、前記プローブ要求は、前記クライアントデバイスにより提供される多数のP2Pサービスを識別する第1のサービス情報を含み、前記第1のサービス情報は、前記クライアントデバイスによって提供される前記多数のP2Pサービスを識別する多数の第1のハッシュ値を含み、
多数の前記ピアデバイスのそれぞれから、プローブ応答を受信し、各プローブ応答は、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを識別する第2のサービス情報とを含み、
サービス発見フェーズの間、
前記第2のサービス情報に基づいて、選択したピアデバイスにサービス発見要求を送り、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することであるクライアントデバイス。
【請求項34】
前記選択したピアデバイスが、前記プローブ応答において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る請求項33記載のクライアントデバイス。
【請求項35】
記第2のサービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスを識別する多数の第2のハッシュ値を含む請求項33記載のクライアントデバイス。
【請求項36】
前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する請求項35記載のクライアントデバイス。
【請求項37】
前記特定のP2Pサービスは、以下の、ユニバーサル・プラグ・アンド・プレイサービス、ボンジュール・サービス、Wi−Fiディスプレイサービス、プリントサービス、ゲームサービス、ファイル共有サービスのうちの1つ以上を含む請求項33記載のクライアントデバイス。
【請求項38】
前記1つ以上のピアデバイスは、P2Pグループを含む請求項33記載のクライアントデバイス。
【請求項39】
前記第2のサービス情報は、前記P2Pグループの1人以上のメンバーが、前記1つ以上の特定のP2Pサービスを提供するように構成されているか否かを示す請求項38記載のクライアントデバイス。
【請求項40】
前記第2のサービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスに対する1つ以上の更新を示す請求項33記載のクライアントデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]
本実施形態は、一般的に、ワイヤレスピアツーピアネットワークに関連し、特に、Wi−Fi(登録商標)デバイスによって提供されるサービスのプレアソシエーション発見に関連する。
【関連技術の背景】
【0002】
[0002]
「Wi−Fiダイレクト」としても知られているWi−Fiアライアンスピアツーピア(P2P)仕様は、ピアデバイス間のプレアソシエーションサービス発見を可能にしている。このプロトコルは、もしあれば、何のサービスがピアSTAによって提供されるかを決定するために、クライアントデバイスまたは局(STA)が、Wi−Fi範囲内でピアSTAに問い合わせるのを可能にする。このようなサービスの例は、プリント、ゲーム、ファイル共有、および/または、インターネットゲートウェイサービスを含んでいてもよい。ピアSTAによって提供されるサービスを決定することは、典型的に、通信の少なくとも2つのフェーズ、デバイス発見フェーズと、後に続くサービス発見フェーズとを要求する。
【0003】
[0003]
デバイス発見フェーズの間、クライアントSTA(例えば、特定のP2Pサービスを要求するSTA)は、Wi−Fi通信範囲内で他のSTAのアイデンティティおよび/または利用可能性を決定する。到来ビーコンフレームに対して、3つのソーシャルチャネル(例えば、2.4GHz帯域中のチャネル1、6および11)を「スキャンすること」によって、および/または、これらのチャネルを聞くかもしれない任意のSTAにプローブ要求フレームをブロードキャストすることによって、クライアントSTAは典型的にこれを行う。その後、サービス発見フェーズの間、クライアントSTAは、それらが提供するサービスについて、(デバイス発見フェーズの間に発見した)利用可能なピアSTAに問い合わせる。クライアントSTAは、典型的に、クライアントSTAが、要求されたサービスを提供するピアSTAを識別するまで、サービス発見動作をサポートする各ピアSTAに、一回に1つの、サービス発見要求を送信する。
【0004】
[0004]
よって、サービス発見フェーズの間、要求されたサービスを提供するピアSTAを識別する前に、クライアントSTAは、(そのうちのいくつかは、何らP2Pサービスを提供しないかもしれない)いくつかのピアSTAに問い合わせることが多い。これは、クライアントSTAが、典型的に、サービス発見フェーズの後まで、(もしあれば)ピアSTAのそれぞれが提供するサービスに気付かないからである。さらに、クライアントSTAは、典型的に、各ピアSTAとのサービス発見動作(およびデバイス発見動作)を周期的に反復しない限り、以前に発見したピアSTAによって提供されたサービスが変化したか否かについての知識を有さない。よって、所望のサービスを提供するピアSTAを発見する際に、相当な量の時間とリソースが消費されるかもしれない。
【図面の簡単な説明】
【0005】
[0005]
本実施形態は例として図示されており、付随する図面の図によって限定されることは意図されていない。
図1A】[0006] 図1Aは、本実施形態が実現されるピアツーピア(P2P)Wi−Fiシステムを図示している。
図1B図1Bは、本実施形態が実現されるピアツーピア(P2P)Wi−Fiシステムを図示している。
図2】[0007] 図2は、いくつかの実施形態にしたがった、ワイヤレス局(STA)のブロックダイヤグラムを示している。
図3】[0008] 図3は、いくつかの実施形態にしたがった、プレアソシエーション発見動作を図示している例示的なフローチャートである。
図4】[0009] 図4は、いくつかの実施形態にしたがった、より詳細なプレアソシエーション発見動作を図示している例示的なフローチャートである。
図5】[0010] 図5は、いくつかの実施形態にしたがった、管理フレームのブロックダイヤグラムを示している。
図6A】[0011] 図6Aは、本実施形態が実現されてもよい別のP2P Wi−Fiシステムを図示している。
図6B図6Bは、本実施形態が実現されてもよい別のP2P Wi−Fiシステムを図示している。
図7】[0012] 図7は、いくつかの実施形態にしたがった、別のプレアソシエーション発見動作を図示している例示的なフローチャートである。
図8】[0013] 図8は、本実施形態が実現されてもよいP2P Wi−Fiシステムの別の実施形態を図示している。
図9】[0014] 図9は、いくつかの実施形態にしたがった、別のワイヤレスSTAのブロックダイヤグラムを示している。
図10】[0015] 図10は、プレアソシエーション発見動作の別の実施形態を図示している例示的なフローチャートである。
図11】[0016] 図11は、いくつかの実施形態にしたがった、デバイスおよびサービス発見フレームのブロックダイヤグラムを示している。
【詳細な説明】
【0006】
[0017]
簡潔にするためだけに、Wi−Fi使用可能なデバイスにより実行される、および、Wi−Fi使用可能なデバイスの間で実行される、プレアソシエーションサービス発見動作の状況において、本実施形態を以下に説明する。本実施形態は、他のさまざまなワイヤレス標準規格またはプロトコルの信号を使用して、プレアソシエーションサービス発見動作を実行するために、等しく適用可能であることが理解される。ここで使用するとき、用語WLANおよびWi−Fiは、IEEE802.11標準規格によって管理される通信、Bluetooth(登録商標)、ハイパーLAN(ヨーロッパにおいて主に使用され、IEEE802.11標準規格に相当するワイヤレス標準規格のセット)、ワイヤレス通信において使用される他の技術を含むことがある。さらに、用語「クライアントデバイス」は、ピアツーピア(P2P)ネットワークにおける特定のサービスを要求するワイヤレスデバイスに言及し、用語「ピアデバイス」は、P2Pネットワークにおけるクライアントデバイスによって発見可能であるワイヤレスデバイスに言及している。用語「デバイス」および「局」(またはSTA)は、ここで、交換可能に使用することがある。
【0007】
[0018]
以下の記述において、本開示の完全な理解を提供するために、特定のコンポーネント、回路、およびプロセスの例のような、多数の特定の詳細を明らかにしている。ここで使用されているような用語「結合されている」は、直接的に接続されていること、あるいは、1つ以上の介入しているコンポーネントまたは回路を通して接続されていることを意味する。また、本実施形態の完全な理解を提供するために、以下の記述において、および、説明の目的で、特定の術語を明らかにしている。しかしながら、これらの特定の詳細が本実施形態を実施するために要求されないかもしれないことは、当業者にとって明らかであろう。本開示を不明確にするのを防ぐために、他の例において、よく知られている回路およびデバイスをブロックダイヤグラム形態で示している。ここで説明している、さまざまなバスを介して提供される信号のうちのいずれかは、他の信号と時間多重化されるかもしれないし、1つ以上の共通のバスを介して提供されるかもしれない。付加的に、回路エレメント間またはソフトウェアブロック間の相互接続は、バスとして、または、単一の信号ラインとして示されているかもしれない。バスのそれぞれは代替的に単一の信号ラインになるかもしれず、単一の信号ラインのそれぞれは代替的にバスになるかもしれず、単一のラインまたはバスは、コンポーネント間の通信のための無数の物理的または論理的メカニズムのうちの任意の1つ以上を表しているかもしれない。本実施形態は、ここで説明する特定の例に限定して解釈されるものではなく、むしろその範囲内に、添付された特許請求の範囲によって規定されたすべての実施形態を含むものである。
【0008】
[0019]
図1Aおよび図Bは、本実施形態が実現されるかもしれないピアツーピア(P2P)Wi−Fiシステム100を図示している。システム100は、多数のピアSTA102〜104のWi−Fi通信範囲内に位置しているクライアント局(STA)101を含むように示されている。簡潔にするために、3つのピアSTA102〜104のみが図1Aおよび図1B中に示されているが、Wi−Fiシステム100は、任意の数のピアSTAを含んでいてもよいことを理解すべきである。STA101〜104は、Wi−Fi媒体(またはチャネル)を通して、P2P方法において、互いに通信するように構成されている。さらに特に、アクセスポイントの支援なしに、クライアントSTA101は、ピアSTA102〜104のそれぞれを、識別するか、または、発見してもよく、その後、ピアSTA102〜104のうちの選択した1つとの直接的なP2P接続を確立する。
【0009】
[0020]
図1Aにおいて示されているように、Wi−Fi通信に対して使用されているソーシャルチャネル(例えば、2.4GHz帯域におけるチャネル1、6および11)をスキャンすることによって、クライアントSTA101は、デバイス発見動作を開始してもよい。例えば、クライアントSTA101は、ソーシャルチャネルのそれぞれ上でプローブ要求(P_Req)フレームをブロードキャストしてもよく、P_Reqフレームに応答して、ピアSTA102〜104によって送信されるプローブ応答(P_Resp)フレームを聞いてもよい。P_Reqフレームは、クライアントSTA101が、ピアSTA102〜104のうちの対応する1つとの通信リンクを確立するか否かを決定するために、ピアSTA102〜104によって使用されるかもしれない管理情報を含んでいる。同様に、P_Respフレームも、パラメータを識別して、ピアSTA102〜104のうちの対応する1つと一致させるために、クライアントSTA101によって使用されるかもしれない管理情報を含んでいてもよい。STA101〜104のそれぞれと関係付けられている管理情報は、例えば、MACアドレスと、対応するSTAによってサポートされているデータレートとを含んでいてもよい。
【0010】
[0021]
本実施形態にしたがうと、P_Reqフレームは、クライアントSTA101によって提供される、1つ以上の対応するサービスを識別する1つ以上のサービスクエリストリングのリストも含んでいてもよい。これらのサービスクエリストリングは、サービス発見フェーズの間に、クライアントSTA101に対して提示されている場合、STA101がこれらのサービスをサポートできることを示すように、有効なサービス応答ストリングを有するだろう。反対に、クライアントSTA101が、任意の所定のサービスクエリストリングに対して無効であるか、または、空のサービス応答ストリングを有している場合、これは、対応するサービスをサポートしないことを示している。いくつかの実施形態に対して、各サービスクエリストリングは、クライアントSTA101によって提供される特定のサービスを識別していてもよい。さらに、各ピアSTAは、対応するサービス応答ストリングを有している、サポートされているサービスクエリストリングのリストを記憶してもよいので、特定のピアSTA内に記憶されている、サポートされているサービスクエリストリングのリストは、どのサービスが特定のピアSTAによってサポートされているかを示していてもよい。この方法において、クライアントSTA101は、サービス発見動作を始める前に、近くのピアSTA102〜104のそれぞれによりどのサービスがサポートされているかを決定してもよく、このことは、以下にさらに詳細に説明するように、クライアントSTA101が、選択したサブセットのピアSTAとともに、サービス発見動作を開始するのを可能にする。よって、クライアントSTA101によって要求される1つ以上のサービスをサポートすると(デバイス発見フェーズの間に)決定されているピアSTAのみとともに、サービス発見動作を開始することによって、選択したピアSTAとのP2P接続を確立することに関係付けられている時間および/またはリソースは(例えば、従来のP2P発見動作と比較したとき)、減少するかもしれない。
【0011】
[0022]
いくつかの実施形態に対して、各ピアSTAは、ピアSTAによってサポートされているサービスを識別するこれらのサービスクエリストリングにのみに、応答してもよい。例えば、クライアントSTA101が、(i)プリントサービスに対応する第1のサービスクエリストリングと、(ii)ゲームサービスに対応する第2のサービスクエリストリングとを含んでいるP_Reqフレームを送ることを想定する。ピアSTA103が、ゲームサービスではなく、プリントサービスをサポートする場合、ピアSTA103は、(ゲームサービスに対応するサービス応答ストリングではなく)プリントサービスに対応するサービス応答ストリングを含んでいるP_Respフレームを送ってもよい。
【0012】
[0023]
少なくともいくつかの実施形態に対して、各サービスクエリストリングはハッシュされて、対応するハッシュ値が発生されてもよく、(例えば、圧縮されていないサービスクエリストリングのリストよりもむしろ)クライアントSTA101によって提供されるサービスを識別するこのようなハッシュ値のリストは、P_Reqフレーム内で提供されてもよい。このようなP_Reqフレームを受信する各ピアSTAは、ピアSTAがどのサービスをサポートするかを示しているハッシュ値のリストを含むP_Respフレームを送ることにより、応答してもよい。その後、クライアントSTAは、どの望まれるサービスが、ピアSTAによってサポートされているかを決定するために、所望のハッシュ値のリストを、ピアSTAから受信したハッシュ値のリストと比較してもよい。(圧縮されていないサービスクエリストリングのリストよりもむしろ)P_ReqフレームおよびP_Respフレームにおいてハッシュ値のリストを提供することは、デバイス発見フェーズの間にP2Pデバイス間でサービス情報を交換することを可能にする値にまで、P_ReqフレームおよびP_Respフレームのサイズを制限するかもしれない。
【0013】
[0024]
図1Bにおいて示されているように、クライアントSTA101は、その後、どのサービスがピアSTA102〜104のそれぞれによってサポートされているかの決定に少なくとも部分的に基づいて、ピアSTA102〜104のうちの1つ以上とともに、サービス発見動作を開始する。例えば、ピアSTA102〜104のうちの1つ以上により、サポートされている1つ以上の特定のサービスを要求するために、クライアントSTA101は、サービス発見要求(SD_Req)フレームをピアSTA102〜104のうちの1つ以上に送ってもよい。ピアSTA102〜104のそれぞれは、もしあれば、サービス発見応答(SD_Resp)フレームを、要求するクライアントSTA101に返信することによって、受信したSD_Reqフレームに応答してもよい。クライアントSTA101は、その後、SD_Respフレームのそれぞれを解析して、対応するピアSTAが、クライアントSTA101が要求している特定のサービスを提供するか否かを確認する。例えば、要求に依存して、SD_Respフレームは、ピアSTAによって提供またはサポートされているすべてのサービスの詳細なリストを、および/または、クライアントSTA101によって要求される特定のサービスをピアSTAが提供できるか否かに関する確認を含んでいてもよい。
【0014】
[0025]
いくつかの実施形態に対して、SD_Reqフレームは、例えば、ユニバーサル・プラグ・アンド・プレイ(UPnP)および/またはボンジュール・サービスのような、あるP2Pサービスを要求するサービスクエリストリングを含んでいてもよい。このような実施形態に対して、ピアSTA102〜104は、これらがサービスクエリストリングをサポートしているか否かを決定してもよく、そうである場合、1つ以上のサービス応答ストリングを発生させてもよい。サービス応答ストリングは、SD_Respフレームの一部分として(または、他の何らかの適切な応答フレームにおいて)、クライアントSTA101に送信されてもよい。
【0015】
[0026]
ピアSTA102〜104のうちの1つが要求されたサービスを提供することをクライアントSTA101が決定または確認した場合、クライアントSTA101は、その後、ピアSTAによって提供される管理情報を使用して、そのピアSTAとのP2P接続を確立してもよい。クライアントSTA101は、ピアSTA102〜104のうちの1つより多くが、要求されたサービスを提供できることを決定した場合、クライアントSTA101は、もしあれば、接続を確立するために、ピアSTAのうちのどれを選択するかのオプションを、ユーザに提供してもよい。
【0016】
[0027]
図2は、図1Aおよび図1Bの、STA101〜104のうちの1つの実施形態であるSTA200を示している。STA200は、スキャナ210、送信機/受信機回路220、プロセッサ230およびメモリ240を含んでいる。周囲の環境をスキャンするのにスキャナ210を使用して、近くのピアSTA(例えば、STA200の範囲内のピアSTA)を検出して識別してもよい。いくつかの実施形態に対して、P_Reqフレームを周期的にブロードキャストすることによって、スキャナ210は近くのピアSTAをサーチしてもよい。さらに、スキャナ210は、隣接するデバイスからのビーコンフレームおよび/またはP_Respフレームを聞くことによって、ピアSTAをサーチしてもよい。送信機/受信機(すなわち「トランシーバ」)回路220は、発見したピアSTAに信号を送信し、発見したピアSTAからの信号を受信するために使用してもよい。
【0017】
[0028]
メモリ240は、ローカルキャッシュとして使用して、複数のピアSTAのMACアドレス(または、他の適切な識別情報)や、このようなSTAの位置座標や、STAによってサポートされているP2Pサービスや、任意の発見したピアSTAに関係する他の適切な位置またはコンフィギュレーション情報を記憶できる、STAテーブル242を含んでいてもよい。いくつかの実施形態に対して、STAテーブル242の各エントリは、関係付けられているSTAの名前を記憶するピアデバイスフィールドと、STAのMACアドレスを記憶するアドレスフィールドと、STAの位置座標を記憶する座標フィールドと、(もしあれば)STAが提供するように構成されているP2Pサービスについての情報を記憶するサービスフィールドとを含んでいる。STAテーブル242は、各関係付けられているピアSTAに対して、どのサービスがピアSTAによってサポートされているかを識別する多数のサービスクエリストリングに対応しているハッシュ値のリストを、および/または、ピアSTAによってサポートされているサービスのリストを記憶していてもよい。
【0018】
[0029]
メモリ240は、STA200についてのサービス情報を記憶するのに使用できるサービス情報テーブル244も含んでいてもよい。いくつかの実施形態に対して、STA200がサポートするように構成されているサービスの詳細なリストと、STA200によってサポートされている異なるサービスタイプのリストと、および/または、STA200によって提供される1つ以上のサービスへの更新または変更に関する情報とを、サービス情報テーブル244は含んでいてもよい。サービス情報テーブル244は、STA200によって提供される1つ以上のサービスを識別している多数のサービスクエリストリングに対応するハッシュ値のリストを記憶してもよく、および/または、実際のサービスクエリストリングも記憶してもよい。
【0019】
[0030]
さらに、メモリ240は、以下のソフトウェアモジュールを記憶してもよい一時的でないコンピュータ読取可能な記憶媒体(例えば、EPROM(登録商標)、EEPROM(登録商標)、フラッシュメモリ、ハードドライブ等のような、1つ以上の不揮発性メモリエレメント)も含んでいてもよい。
・近くのピアSTAの位置およびアイデンティティとともに、このようなピアSTAが、(例えば、デバイス発見動作の間に交換した管理フレームからパースされた情報を使用して)提供するかもしれない何らかのP2Pサービスについての情報を決定するP2Pデバイス発見ソフトウェアモジュール246。
・発見されたピアSTAのそれぞれに対して、そのSTAによって提供および/または要求される1つ以上のサービスが、STA200によって提供および/または要求される1つ以上のサービスと一致するか否かを、決定または確認するP2Pサービス発見ソフトウェアモジュール248。
各ソフトウェアモジュールは、プロセッサ230によって実行されるとき、対応する機能をSTA200に実行させる命令を含んでいる。よって、メモリ240の一時的でないコンピュータ読取可能な記憶媒体は、図3、4および7に関して説明した動作のすべてまたは一部分を実行するための命令を含んでいてもよい。
【0020】
[0031]
スキャナ210とトランシーバ220とメモリ240とに結合されているプロセッサ230は、STA200において(例えば、メモリ240内で)記憶されている1つ以上のソフトウェアプログラムの命令のスクリプトを実行する能力がある何らか適切なプロセッサであってもよい。例えば、プロセッサ230は、デバイス発見ソフトウェアモジュール246を、および/または、サービス発見ソフトウェアモジュール248を実行してもよい。デバイス発見ソフトウェアモジュール246は、プロセッサ230によって実行されて、他の近くのSTAを発見するとともに、近くのSTAが提供するかもしれないサービスについての情報を取得してもよい。一例として、プロセッサ230によって実行されるデバイス発見ソフトウェアモジュール246は、上述したように、1つ以上のサービスクエリストリングに対応するハッシュ値のリストを含んでいるP_Reqフレームを発生させてもよく、および/または、1つ以上のサービスクエリストリングに対応するハッシュ値のリストを含んでいるP_Respフレームを発生させてもよい。別の例として、(例えば、図6A図6Bおよび図7を参照して以下に議論するように)プロセッサ230によって実行されるデバイス発見ソフトウェアモジュール246は、P_Reqフレームを発生させてもよく、および/または、グループオーナーによってブロードキャストされるビーコンフレームを聞いてもよい。P_Reqフレームは、STA200の1つ以上の通信能力を識別する管理情報を含んでいてもよい。
【0021】
[0032]
プロセッサ230によって実行されるデバイス発見モジュール246は、管理情報と、サービス情報(SI)データとに対する受信したP_Respフレームをパースし、それに応じて、STAテーブル242を更新してもよい。例えば、デバイス発見ソフトウェアモジュール246を実行する際に、プロセッサ230は、(例えば、P_Respフレームに関係付けられているMACアドレスに基づいて)ピアSTAが、STA200によって以前に発見されたか否かを決定してもよい。このようなMACアドレスが、STAテーブル242中に存在しない場合、新たに発見したSTAに対して、プロセッサ230は、STAテーブル中に新たなエントリを生成させてもよく、適切なフィールドにおいて、管理情報とSIデータを記録してもよい。そうでなければ、プロセッサ230は、以前に発見したピアSTAに対して、STAテーブル242中の情報を単に更新してもよい。
【0022】
[0033]
例えば、STA200が別のSTAからプローブ要求を受信したとき、プロセッサ230によって実行されるデバイス発見ソフトウェアモジュール246は、P_Reqフレーム中に含まれている管理情報をパースして、プローブ要求において特定された通信の1つ以上のタイプをSTA200がサポートするか否かを決定してもよい。STA200が、要求するSTAとの接続を確立する能力がある場合、プロセッサ230によって実行されるデバイス発見ソフトウェアモジュール246は、要求するデバイスに返信するP_Respフレームを発生させてもよい。P_Respフレームは、(例えば、サービス情報テーブル244から取得した)管理情報とSIデータの両方を含んでいてもよい。例えば、1つ以上のP_Respフレームのフレームボディにおいて提供される情報エレメントにSIデータを追加してもよい。
【0023】
[0034]
いくつかの実施形態に対して、デバイス発見ソフトウェアモジュール246は、(例えば、サービス情報テーブル244から取得した)SIデータを、P_Reqフレームおよび/またはP_Respフレーム中にエンコードしてもよい。デバイス発見フェーズの間、これは、すべての発見可能なSTAがSIデータを交換するのを可能にし、および/または、すべての発見可能なSTAの対応するSTAテーブルを更新するのを可能にする。上述したように、これは、サービス発見動作を開始する前に、発見したピアSTAのそれぞれによって、どのサービスがサポートされているかを、要求するSTAが決定するのを可能にする。これは、次に、要求するSTAによって要求される1つ以上のサービスをサポートするこれらのピアSTAのみとともに、要求するSTAが、サービス発見動作を選択的に開始するのを可能にする。いくつかの実施形態に対して、デバイス発見ソフトウェアモジュール246は、STA200によって送信される、ビーコンフレームおよび/またはP_Respフレーム中にグループサービス情報(GSI)データをエンコードしてもよい。図6A図6Bおよび図7を参照して、以下に議論するように、GSIデータは、P2Pグループの複数のメンバーに対するP2Pサービス能力をアドバタイズしてもよく、サービス情報テーブル244から取得してもよい。
【0024】
[0035]
サービス発見ソフトウェアモジュール248は、プロセッサ230によって実行されて、もしあれば、どの発見したピアSTAが特定のサービスを提供するように構成されているかを決定または確認してもよい。例えば、プロセッサ230によって実行されるサービス発見ソフトウェアモジュール248は、STAテーブル242のサービスフィールド中に記憶されているサービス情報に基づいて、1つ以上のそれぞれのピアSTAに送信される1つ以上のSD_Reqフレームを、選択的に発生させてもよい。さらに特に、(例えば、いかなるP2Pサービスも提供しないピアSTAに対しては、SD_Reqフレームを発生させないように)あるサービス基準に一致するピアSTAに対してだけに、SD_Reqフレームを発生させてもよい。スキャナ210および/またはトランシーバ220を使用して、SD_Reqフレームを、意図するピアSTAに送信するとともに、このようなSTAからの対応するSD_Respフレームを聞いてもよい。プロセッサ230によって実行されるサービス発見モジュール248は、その後、詳細なサービス情報に対する受信したSD_Respフレームをパースして、もしあれば、どのピアSTAが特定のP2Pサービスを提供する能力があるかを決定または確認してもよく、その後、これに応じて、STAテーブル242を更新してもよい。
【0025】
[0036]
STA200が、別のSTAからサービス発見要求を受信したとき、プロセッサ230によって実行されるサービス発見ソフトウェアモジュール248は、受信したSD_Reqフレームを解析して、サービス発見要求とともに提供される1つ以上のサービス関連問い合わせに応答するSD_Respフレームを発生させてもよい。例えば、各SD_Reqフレームは、STA200によって提供されるサービスについての、さらに詳細な情報に対する問い合わせを含んでいてもよく、および/または、特定のP2Pサービスに対する要求を含んでいてもよい。プロセッサ230によって実行されるサービス発見ソフトウェアモジュール248は、よって、(例えば、サービス情報テーブル244から取得した情報に基づいて、)STA200によってサポートされているサービスの詳細なリストを、および/または、STA200が特定のP2Pサービスを提供する能力があるか否かに関する確認を、SD_Respフレーム中にエンコードしてもよい。
【0026】
[0037]
いくつかの実施形態に対して、SD_Reqフレームは、1つ以上のサービスクエリストリングを含んでいてもよい。このようなSD_Reqフレームを受信する各ピアデバイスは、その中に含まれている1つ以上のサービスクエリストリングを解析して、サービスクエリストリングによって示されている要求されるサービス(または同等なサービス)を、ピアデバイスが提供するか否かを決定してもよい。ピアデバイスが、要求されるサービスを提供する場合、その後、ピアデバイスは、1つ以上の要求されるサービスの利用可能性を確認する1つ以上のサービス応答ストリングを発生させて、送信するかもしれない。逆に言えば、ピアデバイスが、要求されるサービスを提供しない場合、その後、ピアデバイスは、何らサービス応答ストリングを送信しなくてもよい。各ピアデバイスは、対応するサービス応答ストリングを有する、サポートされているサービスクエリストリングのリストを記憶しているかもしれないので、特定のピアデバイス内に記憶されている、サポートされているサービスクエリストリングのリストは、特定のピアデバイスが、サポートされているサービスのうちの1つ以上を提供するか否かを示してもよい。
【0027】
[0038]
図3は、いくつかの実施形態にしたがった、プレアソシエーション発見動作300を図示している、実例となるフローチャートである。上記で説明したように、本実施形態は、デバイス発見動作の間に、STAがサービス情報を交換できるようにし、よって、サービス発見動作の間に、クライアントSTAによってなされる詳細なサービス問い合わせの数を減少させる(そして、潜在的に取り除く)。図1Aおよび図1Bも参照すると、動作300において、クライアント101は、P2Pネットワークをスキャンすることによって、デバイス発見動作を開始して、ピアSTA(310)を発見する。例えば、ビーコンフレームを聞くことによって、および/または、プローブ要求をブロードキャストして、プローブ応答を聞くことによって、クライアントSTA101は、ネットワークをスキャンしてもよい。
【0028】
[0039]
クライアントSTA101は、発見可能なピアSTA102〜104から、管理情報とSIデータとを伝えるデータフレームを受信する(320)。いくつかの実施形態に対して、SIデータは、ピアSTA102〜104のそれぞれのP2Pサービス能力を識別する。例えば、ビーコンフレーム中や、プローブ応答フレーム中や、ならびに/あるいは、近くのピアデバイスを識別および/または位置付けるのに使用されるかもしれない情報を伝える、他の何らかのタイプのデータフレーム中に、SIデータをエンコードしてもよい。
【0029】
[0040]
その後、クライアントSTA101は、SIデータを使用して、ピアSTA102〜104のうちの選択した1つ(またはそれ以上)とのP2P接続を確立してもよい(330)。例えば、SIデータは、(i)ピアSTAがP2Pサービスを提供するか否かを、(ii)STAによって提供されるP2Pサービスに対する更新および/または変更を、(iii)STAによってサポートされているサービスのタイプを、(iv)STAが提供するように構成されているサービスの詳細なリストを、および/または、(v)STAが、STA101によって要求される特定のサービスを提供するか否かを、示している情報を含んでいてもよい。よって、いくつかの実施形態に対して、クライアントSTA101は、SIデータを使用して、後続するサービス発見動作を実行するピアSTAの選択を狭めるかもしれない。他の実施形態において、クライアント101は、SIデータを使用して、もしあれば、ピアSTA102〜104のうちのどれと接続を確立するかを、直接決定してもよい(よって、サービス発見フェーズをまったくなしで済ませる)。
【0030】
[0041]
さらに、いくつかの実施形態に対して、(例えば、ハッシュされているか否かにかかわらず)サポートされているサービスクエリストリングのリストを、サービスクエリストリングと比較することによって、クライアント101は、ピアSTA102〜104のうちのいずれかが所望のサービスを提供するか否かを決定してもよい。例えば、クライアントSTA101は、そのサービスクエリストリングに対するハッシュ値を発生させてもよく、その後、ピアSTA102〜104によって提供されているSIデータ中に含まれている、ハッシュされたサポートされているサービスクエリストリングのリスト中に、一致するハッシュ値があるか否かを決定してもよい。
【0031】
[0042]
図4は、プレアソシエーション発見動作400のさらに詳細な実施形態を図示している、実例となるフローチャートである。図1Aおよび図1Bも参照すると、動作400において、クライアントSTA101は、ピアSTA102〜104にプローブ要求(P_Req)をブロードキャストする(410)。上述したように、P_Reqフレームは、どのサービスがクライアントSTA101によって提供されるかを示す1つ以上のサービスクエリストリングに対応するハッシュ値のリストを含んでいてもよい。ピアSTA102〜104は、クライアントSTA101にプローブ応答(P_Resp)を送信することによって、プローブ要求に応答する。上述したように、P_Respフレームは、どのサービスがピアSTA102〜104によってサポートされるかを示す1つ以上のサービスクエリストリングに対応する、ハッシュ値のリストを含んでいてもよい。
【0032】
[0043]
特に、ピアSTA102〜104のそれぞれは、クライアントSTA101に送信される各P_Respフレーム内に、管理情報とSIデータのセットとをエンコードしてもよい。SIデータは、もしあれば、ピアSTA102〜104のそれぞれが提供するように構成されているP2Pサービスについての情報を含む。SIデータの例は、(i)ピアSTAがP2Pサービスを提供するか否かを、(ii)STAによって提供されるP2Pサービスに対する更新および/または変更を、および/または、(iii)STAによってサポートされているサービスのタイプを、示している情報を含んでいてもよい。1つ以上のサービスクエリストリングに対応しているハッシュ値の先述のリストとして、P_Respフレーム中に含まれているSIデータをエンコードしてもよい。いくつかの実施形態に対して、P_Reqフレームは、(例えば、図2を参照して上記で説明したように)クライアントSTA101の1つ以上のP2Pサービス能力を識別するSIデータによりエンコードしてもよい。1つ以上のサービスクエリストリングに対応するハッシュ値の先述のリストとして、P_Reqフレーム中に含まれているSIデータをエンコードしてもよい。
【0033】
[0044]
クライアントSTA101は、ピアSTA102〜104によって送信されるP_Respフレームを受信し、対応するピアに関するSIデータに対して、各P_Respフレームをパースする(420)。クライアントSTA101は、その後、P_Respフレームに含まれるSIデータを解析して、もしあれば、ピアSTA102〜104のうちのどれに追加的なサービス情報について問い合わせるかを決定してもよい(430)。図1Aおよび図1B中に示されている例において、ピアSTA103は、クライアントSTA101に対する潜在的な候補サービスプロバイダであるが、STA102とSTA104は、そうではない。
【0034】
[0045]
いくつかの実施形態に対して、クライアントSTA101はSIデータを解析して、もしあれば、ピアSTA102〜104のうちのどれがP2Pサービスを提供するように構成されているか決定する(440)。例えば、いくつかのSTAは、他のピアSTAとのP2P通信の能力はあるが、P2Pサービス(例えば、UPnP、ボンジュール、Wi−Fiディスプレイ、プリント、ゲーム、および/または、ファイル共有サービス)をホスト管理または提供するように構成されていないかもしれない。よって、このようなピアSTAが何らP2Pサービスを提供しないとき、後続のサービス発見動作の間に(例えば、ステップ470において)、特定のP2Pサービスについて、このようなピアSTAに問い合わせることは議論の余地があるかもしれない。
【0035】
[0046]
さらに、いくつかの実施形態に対して、クライアントSTA101は、ピアSTA102〜104のうちのいずれかが、サービス記録を更新したか否かを決定してもよい(450)。例えば、クライアントSTAは、(例えば、図2のSTAテーブル242中に記憶されているデータに基づいて)ピアで実行される、前の、アソシエーションおよび/またはデバイス発見動作が原因で、ピアSTAによって提供される1つ以上のP2Pサービスの知識を既に有しているかもしれない。よって、これらのサービスが変化しない限り、(例えば、ステップ470において)特定のP2Pサービスについて、このようなピアに再度問い合わせることは議論の余地があるかもしれない。
【0036】
[0047]
さらに、いくつかの実施形態に対して、クライアントSTA101は、ピアSTA102〜104のうちのいずれかが、クライアントSTA101によって提供されるサービスに一致するサービスのタイプを提供するか否かを決定してもよい(460)。例えば、プリントサービスを要求するクライアントSTAは、ゲームサービスのみを提供するピアSTAとの接続を確立することに関心がないかもしれない。よって、このようなピアSTAが所望のタイプの何らかのサービスを提供しない場合、(例えば、ステップ470において)特定のP2Pサービスについて、ピアSTAに問い合わせることは議論の余地があるかもしれない。
【0037】
[0048]
さらに、いくつかの実施形態に対して、クライアントSTA101は、各ピアSTAに対して、何らかの一致する、サポートされているサービスクエリストリング、および/または、対応するハッシュエントリがあるか否かを決定してもよい(465)。一致する、サポートされているサービスクエリストリングおよび/または対応するハッシュエントリがある場合、その後、470で処理が続く。そうでなければ、処理は430に戻る。
【0038】
[0049]
したがって、ピアSTA102〜104のうちの1つ(例えば、STA103)が、P2Pサービスを提供する能力があることをクライアントSTA101が決定するまで、および/または、(例えば、ピアSTA102〜104のそれぞれから)受信したSIデータのすべてを解析することを終えるまで、クライアントSTA101は、ピアSTA102〜104のそれぞれから受信したSIデータを解析してもよい(430と440、および、オプション的に、450、460および/または465)。この方法において、クライアントSTA101は、後続するサービス発見動作を開始する潜在的な候補のリストを狭めるかもしれない。特に、クライアントSTA101は、選択したピアが、クライアントSTA101に対して有用なサービスまたは関連のあるサービスを提供できるだろう可能性に基づいて、サービス発見動作を実行するピアSTA102〜104のうちの1つ以上を選択してもよい。
【0039】
[0050]
クライアントSTA101は、その後、選択したピアSTAのそれぞれに問い合わせて、それらが特定のサービスを提供するか否かを決定または確認する(470)。例えば、ドキュメントをプリントすることを望んでいるクライアントSTA101は、ピアSTA103がプリントサービスを提供することを決定または確認してもよい。クライアントSTA101は、その後、プリントすることを意図しているドキュメントのために使用する特定のプリントサービスを要求するSD_ReqフレームをピアSTA103に送信してもよい。クライアント101によって要求される特定のプリントサービスを、ピアSTA103がサポートするか否かを示しているSD_RespフレームをクライアントSTA101に送信することによって、ピアSTA103は応答してもよい。さらに、SD_Respフレームは、ピアSTA103がサポートするように構成されているサービスのすべての詳細なリストも含んでいてもよい。
【0040】
[0051]
要求されるサービスをピアSTA103がサポートすることをSD_Respフレームが示している場合、クライアントSTA101は、その後、(例えば、P_Respフレーム内で)先に提供された管理情報を使用して、ピアSTA103とのP2P接続を確立してもよい。いくつかのケースにおいて、クライアントSTA101は、要求されるサービスを複数のピアSTAが提供できることを決定してもよい。よって、いくつかの実施形態に対して、クライアント101は、もしあれば、接続を確立するために、一致するピアSTAのうちのどれを選択するかのオプションを、ユーザに提供してもよい。
【0041】
[0052]
図5は、いくつかの実施形態にしたがった、管理フレーム500のブロックダイヤグラムを示している。管理フレーム500は、プローブ応答や、プローブ要求や、ビーコンや、および/または、P2Pデバイス発見動作の間に、ピアSTA間で交換されるかもしれない他の何らかのタイプのデータフレーム(例えば、制御フレームまたは管理フレーム)に対応していてもよい。管理フレーム500は、フレームボディ510とフレームチェックシーケンス(FCS)508とが続くMACヘッダ501を含んでいる。MACヘッダ501は、宛先MACアドレスと発信元MACアドレスの両方を含んでいてもよい。例えば、各STAは、デバイスの製造者によってその中にプログラムされている一意的なMACアドレスが割り当てられている。よって、個々のデバイスを一意的に識別するのに各MACアドレスを使用してもよい。FCS508は、チェックサムまたはエラー検出のために使用する他の適切な技術であってもよい。
【0042】
[0053]
フレームボディ510は、管理情報502と、サービス発見(SD)ビット503と、SIデータ520とを含んでいる。上記で議論したように、管理情報502は、管理フレーム500を発信したSTAを位置付けて、管理フレーム500を発信したSTAとの接続を確立するのに使用するかもしれない何らかの情報を含んでいてもよい(例えば、このような情報は、受信機MACアドレスおよび/またはサポートされているデータレートを含んでいてもよい)。SDビット503は、発信するSTAがサービス発見動作に参加する能力があるか否か(例えば、STAがSD_Reqフレームを送信および/またはSD_Reqフレームに応答できるか否か)を示す。例えば、SDビット503のアクティブ化は、STAがサービス発見動作を実行できることを示してもよい。しかしながら、SDビット503は、STAが実際に、提供するP2Pサービスを有しているか否かを示さないことに留意すべきである。
【0043】
[0054]
SIデータ520は、サービス情報利用可能(SIA)ビット504と、サービス更新インジケータ(SUI)フィールド505と、サービスタイプフィールド506とを含んでいる。少なくともいくつかの実施形態に対して、対応するデバイスによって提供される異なるサービスタイプのすべてを示している、ハッシュされた情報を、またはそうでなければ、圧縮された情報を、記憶させるための、ハッシュされたサポートされているサービスクエリ(SSQ)ストリングフィールド507も、SIデータ520は含んでいてもよい。SIAビット504は、発信するSTAが、1つ以上のP2Pサービスを提供するように構成されているか否かを示す。例えば、SIAビット504のアクティブ化は、STAがP2Pサービスを提供する能力があることを示していてもよい。上記で着目したように、SDビット503は、単に、STAがサービス発見動作を実行できるか否かを示しているに過ぎない。よって、同一の管理フレーム500のSIAビット504が非アクティブ化されている間、SDビット503をアクティブ化してもよい。
【0044】
[0055]
SUIフィールド505は、発信するSTAのサービスが変化するたびに、インクリメントされる数値を記憶してもよい。例えば、プリントサービスを提供するSTAは、より後にゲームサービスを提供し始める場合、そのSUIフィールド505中に記憶されている値をインクリメントしてもよい。その後、発信するSTAが異なる種類のゲームサービスを提供し始めた場合、SUIフィールド505中に記憶されている値を、再度インクリメントしてもよい。上記の実施形態において説明したように、ピアSTAはSUIフィールド505中に記憶されている値における変化を探して、ピアSTAが、発信するSTAとの別のサービス発見問い合わせを実行すべきか否かを決定してもよい。
【0045】
[0056]
サービスタイプフィールド506は、発信するSTAが提供する能力があるP2Pサービスのタイプのリストを含んでいてもよい。例えば、STAが複数のP2Pサービスをサポートしている場合、サービスタイプフィールド506は、サポートされている異なるタイプのP2Pサービス(例えば、UPnP、ボンジュール、Wi−Fiディスプレイ、プリント、ゲーム、ファイル共有等)のすべてを特定してもよい。上記の実施形態において説明したように、STAは、所望のタイプのP2Pサービスを提供しない潜在的な候補を、フィルタアウトしてもよい。
【0046】
[0057]
さらに、フレームボディ510のサイズ制限内に、異なるサービスタイプのすべてをエンコードするために、サービスタイプフィールド506は、ハッシュするか、または、圧縮してもよい。例示的なエンコードアルゴリズムは、サービスプロトコルタイプのアレイまたはビットマップを含んでいてもよい。
・STAによって使用されるプロトコルタイプの数値が、8(または16)よりも小さい場合、1オクテット(または2オクテット)ビットマップを使用して、プロトコルタイプを記述してもよい。
・プロトコルタイプが、8(または16)よりも大きい数値を有している場合、プロトコルタイプのアレイを使用して、プロトコルタイプを記述してもよい。
【0047】
[0058]
さらに特に、少なくとも1つの実施形態に対して、ハッシュされたSSQストリングフィールド507は、以下のエンコードアルゴリズムのうちの1つ以上を用いてもよい。
・SIデータ520中の、サポートされているサービスクエリストリングの数が、しきい値よりも小さい(例えば、8よりも小さい)場合、各クエリストリングに対するハッシュ値のアレイを生成させてもよい。例えば、クエリストリング中のすべてのオクテットに対してXOR動作を使用して、各クエリストリングに対するハッシュ値を生成させてもよい。
・クエリサービスが「トランザクション的」である(例えば、第1のクエリストリングが固定されて、所望のトランザクションを記述している可変ストリングが続く)場合、クエリストリングの第1の部分(すなわち、静的で、切り捨てられる部分)のみをハッシュする。例えば、2つのフィールド:ハッシュを計算するのに使用するクエリの長さと、所定の長さに切り捨てられるクエリストリングのハッシュとを有するエントリを、対応するアレイは有していてもよい。
【0048】
[0059]
先述の圧縮アルゴリズムは、例示的な目的のためだけに提供されており、上述した実施形態のいずれかを実現するのに必要でないかもしれないことに留意されたい。
【0049】
[0060]
管理フレーム500のフレームボディ510中に(例えば、1つ以上の情報エレメントとして)SIデータ520をエンコードすることによって、既存のP2P Wi−Fiシステムのアーキテクチャに対してわずかな修正で、本実施形態は実現されるかもしれない。特に、サービス情報の交換を容易にするための、プローブ要求、プローブ応答、および/または、ビーコンフレームの使用は、802.11標準規格から逸脱することなく、本実施形態を実現できるようにする。
【0050】
[0061]
図6Aおよび図6Bは、本実施形態が実現されるかもしれない、別のP2P Wi−Fiシステム600を図示している。システム600は、ピアSTA102〜104を含むP2Pグループ610のWi−Fi通信範囲内に位置するクライアントSTA101を含むように示されている。ピアSTA103とピアSTA104は、ピアSTA102(すなわち、「グループオーナー」)を介して、P2Pグループ610に接続されている。特に、これを通して他のピアSTA103とピアSTA104が通信するかもしれないアクセスポイントとして、グループオーナーSTA102は機能する。簡潔さのために、P2Pグループ610は、3つのピアSTA102〜104のみを含むように示されているが、P2Pグループ610は、任意の数のSTAを含んでいてもよいことを理解すべきである。
【0051】
[0062]
グループオーナーとして、ピアSTA102は、アクセスポイントが実行する機能のうちの多くを実行してもよい。例えば、図6Aにおいて示しているように、STA102は、タイミング同期化目的のために、規則的な間隔で、グループセッション情報(GSI)を含んでいるビーコンフレームをブロードキャストしてもよい。ビーコンフレームは、動作パラメータと、サポートされている能力と、および/または、P2Pグループ610内のメンバーシップとをアドバタイズしてもよい。さらに、P2Pグループ610のメンバーとして、ピアSTA103および104は、クライアントSTA101によってブロードキャストされるプローブ要求に対して、直接応答しない。むしろ、図6Bにおいて示しているように、グループオーナーSTA102が、P2Pグループ610を代表して、プローブ要求に応答する。
【0052】
[0063]
クライアントSTA101は、よって、グループオーナーSTA102によってブロードキャストされるビーコンフレームを聞くことによって、および/または、グループオーナーSTA102にP_Reqフレームを送信して、P_Respフレームを聞くことによって、デバイス発見動作を開始してもよい。P2Pグループ610に加わるために、および/または、P2Pグループ610の個々のメンバーSTA102〜104とのP2P接続を確立するために、ビーコンとP_Respフレームの両方は、クライアントSTA101によって使用されるかもしれない管理情報を含んでいてもよい。言い換えると、クライアントSTA101は、グループオーナーSTA102から受信した単一の通信に基づいて、ピアSTA102〜104のすべてを発見してもよい。
【0053】
[0064]
上述したように、P_Reqフレームおよび/またはビーコンフレームは、どのサービスがクライアントSTA101によって提供されているかを示している、1つ以上のサービスクエリストリングに対応しているハッシュ値のリストを含んでいてもよく、P_Respフレームは、どのサービスがピアSTA102および103のうちの対応する1つによってサポートされているかを示している、1つ以上のサービスクエリストリングに対応しているハッシュ値のリストを含んでいてもよい。この方法において、サービス発見動作を開始する前に、クライアントSTA101は、どのサービスがピアSTA102〜104のそれぞれによってサポートされているかを決定してもよい。
【0054】
[0065]
クライアントSTA101は、ビーコンおよび/またはP_Respフレームを解析して、ピアSTA102〜104を位置付けして識別し、その後、ピアSTA102〜104のうちの1つ以上とともに、サービス発見動作を開始してもよい。例えば、クライアントSTA101は、その後、SD_Reqフレームを、ピアSTA102〜104のうちの1つ以上に送って、対応しているピアSTAによってサポートされている特定のサービスを確認してもよい。ピアSTA102〜104のそれぞれは、もしあれば、SD_RespフレームをクライアントSTA101に返信することによって、受信したSD_Reqフレームに応答する。クライアントSTA101は、その後、SD_Respフレームのそれぞれを解析して、クライアントSTA101が要求している特定のサービスを対応するピアSTAが提供できるか否かを確認してもよい。この方法において、いったんクライアントSTA101がP2Pグループ610のメンバー(例えば、ピアSTA102〜104)を発見したら、クライアントSTA101は、P2Pグループ610のメンバーのうちのいずれかと、P2Pプロトコルを使用して通信してもよい。
【0055】
[0066]
ピアSTA102〜104のうちの1つが、要求されるサービスを提供するとクライアントSTA101が決定した場合、クライアントSTA101は、その後、P_Respフレームおよび/またはビーコンフレームにおいて提供される管理情報を使用して、そのピアSTAとのP2P接続を確立してもよい。代替的に、クライアントSTA101は、管理情報を使用して、P2Pグループ610に加わってもよい。P2Pグループ610のメンバーとして、クライアントSTA101は、他のメンバー(例えば、ピアSTA102〜104)のうちのいずれかによって提供されるサービスを使用してもよい。
【0056】
[0067]
図7は、いくつかの実施形態にしたがった、別のプレアソシエーション発見動作700を図示している例示的なフローチャートである。図6Aおよび図6Bも参照すると、動作700において、クライアントSTA101は、ピアSTAを発見するために、P2Pネットワークチャネルをスキャンすることによって、デバイス発見動作を開始する(710)。例えば、図6Aにおいて示されているように、ビーコンフレームを聞くことによって、および/または、図6Bにおいて示されているように、プローブ要求をブロードキャストしてプローブ応答を聞くことによって、クライアントSTA101は、ネットワークをスキャンしてもよい。
【0057】
[0068]
その後、クライアントSTA101は、P2Pグループ610のグループオーナーSTA102から管理フレームを受信する(720)。特に、管理フレームは、管理情報とともに、P2Pグループ610のメンバーSTA102〜104のすべてに対するP2Pサービス能力を識別しているGSIデータを含んでいてもよい。GSIデータの例は、(i)グループメンバーがP2Pサービスを提供するか否かを、(ii)グループメンバーのうちの1人以上によって提供されるP2Pサービスに対する更新および/または変更を、および/または、(iii)各グループメンバーによってサポートされるサービスのタイプを、示している情報を含んでいてもよい。
【0058】
[0069]
クライアントSTA101は、管理フレームに含まれるGSIデータを解析して、もしあれば、ピアSTA102〜104のうちのどれに、追加的なサービス情報を問い合わせるかを決定してもよい(730)。例えば、クライアントSTA101は、グループメンバーSTA102〜104のそれぞれに対して、(GSIデータを使用して)図4において上記に概略した解析を実行してもよい。この方法において、クライアントSTA101は、サービス発見動作を開始する潜在的な候補のリストを狭めるかもしれない。特に、クライアント101は、選択したグループメンバーが、クライアントSTA101によって要求されるサービスを提供できるだろう可能性に基づいて、P2Pグループ610の1つ以上のメンバーSTA102〜104を選択してもよい。
【0059】
[0070]
クライアントSTA101は、その後、P2Pグループ610に加わることを決めてもよく(740)、および/または、P2Pグループ610の1つ以上の選択したメンバーに直接問い合わせてもよい(750)。例えば、クライアントSTA101がP2Pグループ601に加わる場合、クライアントSTA101は、その後、グループ610の選択したメンバーに関する詳細なサービス情報について、グループオーナーSTA102に問い合わせてもよい。P2Pグループ610のメンバーが要求されるサービスを提供できることをクライアントSTA101が決定した場合、クライアントSTA101は、その後、そのメンバーと通信して、所望のサービスを実行してもよい。この方法において、STA間のすべての通信は、グループオーナーSTA102を通してルーティングされるだろう。
【0060】
[0071]
代替的に、クライアントSTA101は、選択したグループメンバーのそれぞれに、直接、個々にSD_Reqフレームを送信してもよい。選択したグループメンバーは、よって、要求される特定のサービスをグループメンバーがサポートするか否かを示しているSD_RespフレームをクライアントSTA101に送信することによって応答する。さらに、各SD_Respフレームは、対応するグループメンバーがサポートするように構成されているすべてのサービスの詳細なリストを含んでいてもよい。グループメンバーが要求されるサービスを提供できることをSD_Respが示している場合、クライアントSTA101は、グループオーナーSTA102から受信した管理情報を使用して、その特定のグループメンバーとの直接的なP2P接続を確立してもよい。
【0061】
[0072]
図8は、本実施形態が実現されるP2P Wi−Fiシステム800の別の実施形態を図示している。システム800は、ピアSTA802〜804のWi−Fi通信範囲内に位置しているクライアントSTA801を含むように示されている。簡潔さのために、3つのピアSTA802〜804のみを図8において示しているが、Wi−Fiシステム800は、任意の数のピアSTAを含んでいてもよいことを理解すべきである。STA801〜804は、P2P方法において、Wi−Fi媒体を通して互いに通信するように構成されている。しかしながら、図1Aおよび図1BのWi−Fiシステム100とは対照的に、システム800は、別のサービス発見動作が続くデバイス発見動作を実行することなく、プレアソシエーションサービス発見動作を実行してもよい。特に、デバイス発見動作およびサービス発見操作を、単一の動作に組み合わせてもよい。例えば、管理フレーム(例えば、ビーコン、P_Reqおよび/またはP_Resp)と、サービス発見フレーム(例えば、SD_Reqおよび/またはSD_Resp)とを交換することよりもむしろ、STA801〜804は、デバイスおよびサービス発見フレーム(例えば、DSD_Reqおよび/またはDSD_Resp)を使用して、管理情報と、サービス発見要求/応答との両方を交換してもよい。
【0062】
[0073]
図9は、図8のSTA801〜804の1つの実施形態であるSTA900を示している。STA900は、スキャナ910と、送信機/受信機(すなわち「トランシーバ」)回路920と、プロセッサ930と、メモリ940とを含んでいる。例えば、周期的にDSD_Reqフレームをブロードキャストして、DSD_Respフレームを聞くことによって、周囲の環境をスキャンするのにスキャナ910を使用して、近くのピアSTAを検出して識別してもよい。その後、トランシーバ回路920を使用して、発見したピアSTAに信号を送信して、発見したピアSTAから信号を受信してもよい。
【0063】
[0074]
メモリ940は、複数のピアSTAのMACアドレスと、このようなSTAの位置座標と、STAによってサポートされているP2Pサービスと、任意の発見したピアSTAに関する他の適切な位置またはコンフィギュレーション情報とを記憶するローカルキャッシュとして使用できるSTAテーブル942を含んでいてもよい。例えば、STAテーブル942の各エントリは、関係付けられてSTAのネームを記憶するピアデバイスフィールドと、STAのMACアドレスを記憶するアドレスフィールドと、STAの位置座標を記憶する座標フィールドと、STAが提供するように構成されているかもしれない任意のP2Pサービスについての情報を記憶するサービスフィールドとを含んでいてもよい。メモリ940は、STA900についてのサービス情報を記憶するのに使用できるサービス情報テーブル944も含んでいてもよい。例えば、サービス情報テーブル944は、STA900がサポートするように構成されているサービスの詳細なリストを、STA900によってサポートされている異なるサービスタイプのリストを、および/または、STA900によって提供される1つ以上のサービスに対する更新または変更に関する情報を含んでいてもよい。
【0064】
[0075]
さらに、メモリ940は、以下のソフトウェアモジュールを記憶しているかもしれない、一時的でないコンピュータ読取可能な記憶媒体も含んでいてもよい。
・近くのピアSTAの位置を決定および識別して、もしあれば、どの隣接ピアSTAが特定のサービスを提供する能力があるかを決定するP2Pデバイスおよびサービス発見ソフトウェアモジュール946。
ソフトウェアモジュールは、プロセッサ930によって実行されるとき、対応する機能をSTA900に実行させる命令を含んでいる。よって、メモリ940の一時的でないコンピュータ読取可能な記憶媒体は、図10に関して説明する動作のすべてまたは一部分を実行するための命令を含んでいてもよい。
【0065】
[0076]
スキャナ910とトランシーバ920とメモリ940とに結合されているプロセッサ930は、STA900中に記憶されている1つ以上のソフトウェアプログラムの命令のスクリプトを実行する能力がある、任意の適切なプロセッサであってもよい。例えば、プロセッサ930は、P2Pデバイスおよびサービス発見ソフトウェアモジュール946を実行して、他の近くのSTAを発見して、STAのうちのいずれかが、STA900によって要求される特定のサービスを提供できるか否かを決定してもよい。特に、プロセッサ930によって実行されるデバイスおよびサービス発見ソフトウェアモジュール946は、スキャナ910および/またはトランシーバ920を介してブロードキャストされるDSD_Reqフレームを発生させてもよい。DSD_Reqフレームは、STA900の1つ以上の通信能力を識別する管理情報とともに、STA900によって要求されている特定のサービスを特定するサービスクエリ(SQ)データとを含んでいてもよい。スキャナ910は、その後、隣接ピアSTAから返信されるDSD_Respフレームを聞く。
【0066】
[0077]
プロセッサ930によって実行されるデバイスおよびサービス発見モジュール946は、管理情報とともにサービス応答(SR)データに対して、受信したDSD_Respフレームをパースして、それに応じて、STAテーブル942を更新してもよい。いくつかの実施形態に対して、プロセッサ930は、単にピアSTAからのDSD_Respフレームの受信に基づいて、そのピアSTAが、要求されるサービスを提供する能力があるか否かを決定してもよい。代替的に、プロセッサ930は、サービス発見モジュール946を実行する際に、DSD_Respフレームに含まれているSRデータを解析して、もしあれば、ピアSTAのうちのどれが、要求されるP2Pサービスを提供できる能力があるかを決定してもよい。
【0067】
[0078]
STA900が、別のSTAからDSD_Reqフレームを受信するとき、プロセッサ930によって実行されるデバイスおよびサービス発見ソフトウェアモジュール946は、DSD_Reqフレーム中に含まれる管理情報をパースして、DSD_Reqフレーム中で特定された通信の1つ以上のタイプを、STA900がサポートするか否かを決定してもよい。さらに、プロセッサ930は、デバイスおよびサービス発見ソフトウェアモジュール946を実行する際に、DSD_ReqフレームからのSQデータをパースして、STA900が要求されるサービスを提供できるか否かを決定してもよい。STA900が、要求しているSTAとの接続を確立する能力があり、要求されるサービスを提供する能力がある場合、プロセッサ930によって実行されるデバイスおよびサービス発見モジュール946は、(例えば、スキャナ910を介して)要求するデバイスに返信するDSD_Respフレームを発生させてもよい。DSD_Respフレームは、サービス情報テーブル944から取得した管理情報およびSRデータの両方を含んでいてもよい。いくつかの実施形態に対して、STA900が要求されるサービスをサポートしない場合、DSD_Respフレームは発生されず、および/または、送信されない。
【0068】
[0079]
図10は、他の実施形態にしたがった、プレアソシエーション発見動作1000を図示している例示的なフローチャートである。上述したように、本実施形態は、STAが、単一の動作において、管理情報とサービス発見データとを交換できるようにし、よって、プレアソシエーション発見動作の、デバイス発見フェーズとサービス発見フェーズとを組み合わせる。図8も参照すると、動作1000において、Wi−Fi範囲内で、DSD_ReqフレームをピアSTAにブロードキャストしてDSD_Respフレームを聞くことによって、クライアントSTA801は、デバイスおよびサービス動作を開始する(1010)。各DSD_Reqフレームは、管理情報およびSQデータを含んでいてもよく、特定のP2Pサービスに対する要求を含んでいる。
【0069】
[0080]
いくつかの実施形態に対して、要求されるサービスをサポートできるピアSTA802〜804のみ(例えば、STA803)が、クライアントSTA801にDSD_Respフレームを送る。各DSD_Respフレームは、管理情報とともに、対応するピアSTAが提供するように構成されているP2Pサービスについての詳細な情報を含むSRデータを含んでいる。SRデータの例は、(i)対応するピアSTAによって提供されるサービスの詳細なリストを、および/または、(ii)ピアSTAが要求されるサービスを提供する能力があるか否かを、示している情報を含んでいてもよい。
【0070】
[0081]
クライアントSTA801は、ピアSTA803によって送信されるDSD_Respフレームを受信して、ピアSTA803に関する、管理情報とSRデータとのために、DSD_Respフレームをパースする(1020)。クライアントSTA801は、その後、DSD_Respフレームに含まれているSRデータを解析して、ピアSTA803によってサポートされている特定のサービスを決定してもよい。いくつかの実施形態に対して、(例えば、ピアSTA802〜804が特定の要求されるサービスを提供できるか否かに関わらず、ピアSTA802〜804が、クライアントSTA801にDSD_Respフレームを送信するケースにおいて)クライアントSTA801は、SRデータを解析して、もしあれば、どのピアSTAが、要求されるサービスをサポートできるかを決定してもよい。
【0071】
[0082]
最後に、クライアントSTA801は、DSD_Respフレームに含まれている管理情報を使用して、ピアSTA803とのP2P接続を確立してもよい(1030)。いくつかのケースにおいて、ピアSTA802〜804のうちの1つより多くが、要求されるサービスを提供する能力があるかもしれない。したがって、クライアントSTA801は、複数のDSD_Respフレームを受信するかもしれず、各DSD_Respフレームは、要求されるサービスを提供できるそれぞれのピアSTAを識別する。よって、いくつかの実施形態に対して、クライアントSTA801は、もしあれば、接続するために、どの一致するピアSTAを選ぶかのオプションを、ユーザに提供してもよい。
【0072】
[0083]
図11は、いくつかの実施形態にしたがった、デバイスおよびサービス発見(DSD)フレーム1100のブロックダイヤグラムを示している。DSDフレーム1100は、MACヘッダ1101と、管理情報1102と、サービスクエリ(SQ)データ1103と、FCS1104とを含んでいる。MACヘッダ1101は、宛先MACアドレスと発信元MACアドレスの両方を含んでいてもよい。FCS1104は、チェックサムまたはエラー検出のために使用する他の適切な技術であってもよい。
【0073】
[0084]
管理情報1102は、DSDフレーム1100を発信したSTAを位置付けて、DSDフレーム1100を発信したSTAとの接続を確立するのに使用するかもしれない何らかの情報を含んでいてもよい(例えば、このような情報は受信機MACアドレスを、および/または、サポートされているデータレートを含んでいてもよい)。SQデータは、発信するSTAが提供するように構成されているサービスの詳細なリストを含んでいてもよい。いくつかの実施形態に対して、SQデータは、STAが特定の要求されるサービスを提供する能力があるか否かを示している確認ビットも含んでいてもよい。
【0074】
[0085]
さらに、SQデータは、ハッシュされるか、または、圧縮されて、(例えば、管理情報1102のためのスペースを保持しながら)Wi−Fiデータフレームのサイズ制限内に、STAによってサポートされている異なるサービスのすべてをエンコードできるようにしてもよい。例示的なエンコードアルゴリズムは、
・SQデータ中のサービスの数が、小さい(例えば、8よりも小さい)場合、各サービスクエリに対するハッシュ値のアレイを生成させる。例えば、クエリストリング中のすべてのオクレットに対してXOR動作を使用して、各サービスクエリに対するハッシュ値を生成させてもよい。
・クエリサービスが「トランザクション的」である(例えば、第1のクエリストリングが固定されて、所望のトランザクションを記述している可変ストリングが続く)場合、クエリストリングの第1の部分(すなわち、静的で切り捨てられる部分)のみをハッシュする。例えば、2つのフィールド:ハッシュを計算するのに使用するクエリの長さと、所定の長さに切り捨てられるクエリストリングのハッシュとを有するエントリを、対応するアレイは有していてもよい。
ことを含んでいてもよい。
【0075】
[0086]
本実施形態は、既存のプレアソシエーションサービス発見動作に対して、いくつかの利点を提供するかもしれない。例えば、Wi−Fi管理フレーム(例えば、プローブ要求、プローブ応答、および/または、ビーコンフレーム)内にSIデータを含むことによって、本実施形態は、P2Pプレアソシエーション動作のデバイス発見フェーズの間に、クライアントSTAが特定のサービスのプロバイダに対するサーチを狭めることを可能にする。したがって、クライアントデバイスは、より早くて、より効率のよい方法で、後続のサービス発見動作を実行するかもしれない。さらに、管理情報とともにSQデータをブロードキャストすることによって、デバイス発見フェーズの間に、クライアントSTAは、その後、複数のサービス発見動作を実行する必要なく、要求されるサービスを提供する能力がある任意のピアSTAからサービス情報の完全なリストを取得できる。
【0076】
[0087]
先述の明細書において、本実施形態を、その特定の例示的な実施形態を参照して説明してきた。しかしながら、添付された特許請求の範囲において明らかにされている開示のより広い範囲から逸脱することなく、さまざまな改変および変更を行ってもよいことは明白であろう。明細書および図面は、したがって、限定的な意味よりもむしろ、実例となる意味であると考えるべきである。例えば、図3図4図7および/または図10のフローチャートにおいて図示されている方法ステップは、他の適切な順序で実行してもよく、および/または、複数のステップを単一のステップに組み合わせてもよい。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
[1]ピアツーピア(P2P)ネットワーク中のクライアントデバイスを動作させる方法において、
前記方法は、
デバイス発見フェーズの間、
前記P2Pネットワークの1つ以上のチャネルをスキャンして、1つ以上のピアデバイスの存在を発見することと、
多数の前記ピアデバイスのそれぞれから、第1のフレームを受信し、各第1のフレームは、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを示しているサービス情報とを含むことと、
サービス発見フェーズの間、前記サービス情報に少なくとも部分的に基づいて、選択したピアデバイスにサービス発見要求を送ることとを含み、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することである方法。
[2]前記選択したピアデバイスが、前記サービス情報において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る[1]記載の方法。
[3]前記スキャンすることは、前記ピアデバイスに対してプローブ要求をブロードキャストすることによって実行され、前記第1のフレームのうちの少なくとも1つは、プローブ応答を含む[1]記載の方法。
[4]前記プローブ要求は、前記クライアントデバイスによって提供される多数のP2Pサービスを示している多数の第1のハッシュ値を含み、前記プローブ応答は、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数の第2のハッシュ値を含む[3]記載の方法。
[5]前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する[4]記載の方法。
[6]前記特定のP2Pサービスは、以下の、ユニバーサル・プラグ・アンド・プレイサービス、ボンジュール・サービス、Wi−Fiディスプレイサービス、プリントサービス、ゲームサービス、ファイル共有サービスのうちの1つ以上を含む[1]記載の方法。
[7]前記スキャンすることは、前記対応するピアデバイスからブロードキャストされるビーコンフレームを聞くことによって実行され、前記第1のフレームは、前記ビーコンフレームを含む[1]記載の方法。
[8]前記ビーコンフレームのうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数のハッシュ値を含む[7]記載の方法。
[9]前記1つ以上のピアデバイスはP2Pグループを含み、前記第1のフレームのそれぞれの1つは、前記P2Pグループのグループオーナーによりブロードキャストされるビーコンフレームを含む[1]記載の方法。
[10]前記サービス情報は、前記P2Pグループの1人以上のメンバーが、前記1つ以上の特定のP2Pサービスを提供するように構成されているか否かを示す[9]記載の方法。
[11]前記サービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスに対する1つ以上の更新を示す[1]記載の方法。
[12]前記P2Pサービスに対する前記1つ以上の更新を示している前記ピアデバイスに対してのみ、サービス発見要求フレームを送信することをさらに含む[11]記載の方法。
[13]プログラム命令を含んでいるコンピュータ読取可能記憶媒体において、
前記命令は、ピアツーピア(P2P)ネットワークに関係付けられているクライアントデバイスのプロセッサによって実行されるときに、前記クライアントデバイスに、
デバイス発見フェーズの間、
前記P2Pネットワークの1つ以上のチャネルをスキャンさせて、1つ以上のピアデバイスの存在を発見させ、
多数の前記ピアデバイスのそれぞれから、第1のフレームを受信させ、各第1のフレームは、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを示しているサービス情報とを含み、
サービス発見フェーズの間、前記サービス情報に少なくとも部分的に基づいて、選択したピアデバイスにサービス発見要求を送らせ、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することであるコンピュータ読取可能記憶媒体。
[14]前記選択したピアデバイスが、前記サービス情報において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る[13]記載のコンピュータ読取可能記憶媒体。
[15]スキャンするための、前記プログラム命令の実行は、前記クライアントデバイスに、
前記ピアデバイスに対してプローブ要求をブロードキャストさせ、前記第1のフレームは、プローブ応答を含む[13]記載のコンピュータ読取可能記憶媒体。
[16]前記プローブ要求は、前記クライアントデバイスによって提供される多数のP2Pサービスを示している多数の第1のハッシュ値を含み、前記プローブ応答のうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数の第2のハッシュ値を含む[15]記載のコンピュータ読取可能記憶媒体。
[17]前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する[16]記載のコンピュータ読取可能記憶媒体。
[18]前記特定のP2Pサービスは、以下の、ユニバーサル・プラグ・アンド・プレイサービス、ボンジュール・サービス、Wi−Fiディスプレイサービス、プリントサービス、ゲームサービス、ファイル共有サービスのうちの1つ以上を含む[13]記載のコンピュータ読取可能記憶媒体。
[19]スキャンするための、前記プログラム命令の実行は、前記クライアントデバイスに、
前記対応するピアデバイスからブロードキャストされるビーコンフレームを聞かせ、前記第1のフレームは、前記ビーコンフレームを含む[13]記載のコンピュータ読取可能記憶媒体。
[20]前記ビーコンフレームのうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数のハッシュ値を含む[19]記載のコンピュータ読取可能記憶媒体。
[21]前記1つ以上のピアデバイスはP2Pグループを含み、前記第1のフレームのそれぞれの1つは、前記P2Pグループのグループオーナーによりブロードキャストされるビーコンフレームを含む[13]記載のコンピュータ読取可能記憶媒体。
[22]前記サービス情報は、前記P2Pグループの1人以上のメンバーが、前記1つ以上の特定のP2Pサービスを提供するように構成されているか否かを示す[21]記載のコンピュータ読取可能記憶媒体。
[23]前記サービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスに対する1つ以上の更新を示す[13]記載のコンピュータ読取可能記憶媒体。
[24]前記プログラム命令の実行は、さらに、前記クライアントデバイスに、
前記P2Pサービスに対する前記1つ以上の更新を示している前記ピアデバイスに対してのみ、サービス発見要求フレームを送信させる[23]記載のコンピュータ読取可能記憶媒体。
[25]ピアツーピア(P2P)ネットワークに関係付けられたクライアントデバイスにおいて、
前記クライアントデバイスは、
前記P2Pネットワークの1つ以上のチャネルをスキャンして、1つ以上のピアデバイスの存在を発見する手段と、
多数の前記ピアデバイスのそれぞれから、第1のフレームを受信し、各第1のフレームは、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを示しているサービス情報とを含む手段と、
前記サービス情報に少なくとも部分的に基づいて、選択したピアデバイスにサービス発見要求を送る手段とを具備し、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することであるクライアントデバイス。
[26]前記選択したピアデバイスが、前記サービス情報において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る[25]記載のクライアントデバイス。
[27]前記スキャンすることは、前記ピアデバイスに対してプローブ要求をブロードキャストすることによって実行され、前記第1のフレームのうちの少なくとも1つは、プローブ応答を含む[25]記載のクライアントデバイス。
[28]前記プローブ要求は、前記クライアントデバイスによって提供される多数のP2Pサービスを示している多数の第1のハッシュ値を含み、前記プローブ応答は、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数の第2のハッシュ値を含む[27]記載のクライアントデバイス。
[29]前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する[28]記載のクライアントデバイス。
[30]前記スキャンすることは、前記対応するピアデバイスからブロードキャストされるビーコンフレームを聞くことによって実行され、前記第1のフレームは、前記ビーコンフレームを含む[25]記載のクライアントデバイス。
[31]前記ビーコンフレームのうちの少なくとも1つは、前記対応するピアデバイスによってサポートされている前記P2Pサービスを示している多数のハッシュ値を含む[30]記載のクライアントデバイス。
[32]前記1つ以上のピアデバイスはP2Pグループを含み、前記第1のフレームのそれぞれの1つは、前記P2Pグループのグループオーナーによりブロードキャストされるビーコンフレームを含む[25]記載のクライアントデバイス。
[33]ピアツーピア(P2P)ネットワークに関係付けられているクライアントデバイスにおいて、
前記クライアントデバイスは、
1つ以上のピアデバイスとデータを交換するトランシーバと、
プロセッサとを具備し、
前記プロセッサは、
デバイス発見フェーズの間、
前記1つ以上のピアデバイスにプローブ要求を送信し、前記プローブ要求は、前記クライアントデバイスにより提供される多数のP2Pサービスを識別する第1のサービス情報を含み、
多数の前記ピアデバイスのそれぞれから、プローブ応答を受信し、各プローブ応答は、(i)対応するピアデバイスとのP2P接続を確立するための管理情報と、(ii)前記対応するピアデバイスによってサポートされている多数のP2Pサービスを識別する第2のサービス情報とを含み、
サービス発見フェーズの間、
前記第2のサービス情報に基づいて、選択したピアデバイスにサービス発見要求を送り、前記サービス発見要求は、1つ以上の特定のP2Pサービスを要求することであるクライアントデバイス。
[34]前記選択したピアデバイスが、前記プローブ応答において、前記1つ以上の特定のP2Pサービスに対するサポートを示す場合のみ、前記クライアントデバイスは、前記選択したピアデバイスに前記サービス発見要求を送る[33]記載のクライアントデバイス。
[35]前記第1のサービス情報は、前記クライアントデバイスによって提供される前記多数のP2Pサービスを識別する多数の第1のハッシュ値を含み、前記第2のサービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスを識別する多数の第2のハッシュ値を含む[33]記載のクライアントデバイス。
[36]前記クライアントデバイスは、前記第1のハッシュ値を前記第2のハッシュ値と比較して、前記対応するピアデバイスが、前記クライアントデバイスによって要求されることになる前記P2Pサービスをサポートするか否かを決定する[35]記載のクライアントデバイス。
[37]前記特定のP2Pサービスは、以下の、ユニバーサル・プラグ・アンド・プレイサービス、ボンジュール・サービス、Wi−Fiディスプレイサービス、プリントサービス、ゲームサービス、ファイル共有サービスのうちの1つ以上を含む[33]記載のクライアントデバイス。
[38]前記1つ以上のピアデバイスは、P2Pグループを含む[33]記載のクライアントデバイス。
[39]前記第2のサービス情報は、前記P2Pグループの1人以上のメンバーが、前記1つ以上の特定のP2Pサービスを提供するように構成されているか否かを示す[38]記載のクライアントデバイス。
[40]前記第2のサービス情報は、前記対応するピアデバイスによってサポートされている前記P2Pサービスに対する1つ以上の更新を示す[33]記載のクライアントデバイス。
図1A
図1B
図2
図3
図4
図5
図6A
図6B
図7
図8
図9
図10
図11