IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 任天堂株式会社の特許一覧

特開2022-55618通信システム、通信方法、通信装置、および通信プログラム
<>
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図1
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図2
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図3
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図4
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図5
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図6
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図7
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図8
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図9
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図10
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図11
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図12
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図13
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図14
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図15
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図16
  • 特開-通信システム、通信方法、通信装置、および通信プログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022055618
(43)【公開日】2022-04-08
(54)【発明の名称】通信システム、通信方法、通信装置、および通信プログラム
(51)【国際特許分類】
   H04W 76/11 20180101AFI20220401BHJP
   H04W 4/00 20180101ALI20220401BHJP
   H04W 84/12 20090101ALI20220401BHJP
【FI】
H04W76/11
H04W4/00 111
H04W84/12
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2020163140
(22)【出願日】2020-09-29
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】金谷 拓実
(72)【発明者】
【氏名】井村 慶崇
(72)【発明者】
【氏名】柴田 崇由
(72)【発明者】
【氏名】黒瀬 翔
(72)【発明者】
【氏名】延 偉偉
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA21
5K067BB21
5K067EE23
5K067HH22
5K067HH23
(57)【要約】
【課題】各通信装置が互いに独立した複数の無線ネットワークを利用してそれぞれ通信を継続するための構成を提供する。
【解決手段】通信システムは、第1のBSSIDを用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成する第1の通信装置と、第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成する第2の通信装置とを含む。第1の通信装置は、BSSIDとして第1の識別値が指定された第1のフレームを送信するように構成されている。第1の通信装置および第2の通信装置は、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成されている。
【選択図】図15
【特許請求の範囲】
【請求項1】
第1のBSSID(basic service set identifier)を用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成する第1の通信装置と、
第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成する第2の通信装置とを備え、
前記第1のBSSIDは、前記第1の通信装置のMAC(media access control)アドレスと一致し、
前記第2のBSSIDは、前記第2の通信装置のMACアドレスと一致し、
前記第1の通信装置および前記第2の通信装置は、第1の識別値を共通に有しており、
前記第1の通信装置は、
BSSIDとして前記第1の識別値が指定された第1のフレームを送信するように構成されており、
BSSIDとして前記第1のBSSIDが指定されたフレームに加えて、BSSIDとして前記第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成されており、
前記第2の通信装置は、BSSIDとして前記第2のBSSIDが指定されたフレームに加えて、BSSIDとして前記第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成されている、通信システム。
【請求項2】
前記第1の通信装置は、前記第1の識別値とは異なる第2の識別値を前記第1のフレームを用いて送信するように構成されており、
前記第2の通信装置は、前記第1のフレームを受信して、前記第1のフレームに含まれる前記第2の識別値を格納するように構成されている、請求項1に記載の通信システム。
【請求項3】
前記第2の通信装置は、ユーザ操作に応じて、前記第1のフレームに含まれる前記第2の識別値を格納する、請求項2に記載の通信システム。
【請求項4】
前記第2の通信装置が前記第2の識別値を格納した後、前記第1の通信装置と前記第2の通信装置とは、BSSIDとして前記第2の識別値が指定された第2のフレームによりデータを交換するように構成されている、請求項2または3に記載の通信システム。
【請求項5】
前記第1のフレームは、宛先MACアドレスとしてブロードキャストアドレスが指定されており、
前記第2のフレームは、宛先MACアドレスとして前記第1の通信装置または前記第2の通信装置のMACアドレスが指定されている、請求項4に記載の通信システム。
【請求項6】
前記第1の通信装置は、前記第1の無線ネットワークでの通信に用いているのと同じ通信チャネルで前記第1のフレームを送信し、
前記第2の通信装置は、通信チャネルを順次変更して前記第1のフレームを探索する、請求項4または5に記載の通信システム。
【請求項7】
前記第2の通信装置は、前記第1のフレームの送信に用いられた通信チャネルで、前記第2の無線ネットワークでの通信を行う、請求項6に記載の通信システム。
【請求項8】
前記第1の通信装置および前記第2の通信装置は、アプリケーションプログラムを実行しており、
前記第1の識別値は、前記アプリケーションプログラムに含まれている、請求項2~7のいずれか1項に記載の通信システム。
【請求項9】
前記第2の識別値は、前記第1の通信装置のMACアドレスのうち特定のビットの値を変更することで生成される、請求項2~8のいずれか1項に記載の通信システム。
【請求項10】
前記第1の識別値および前記第2の識別値は、前記第1の通信装置のMACアドレス、前記第2の通信装置のMACアドレスおよびブロードキャストアドレスのいずれとも異なる値に設定されている、請求項2~9のいずれか1項に記載の通信システム。
【請求項11】
前記第1の無線ネットワークでの通信、前記第2の無線ネットワークでの通信、および、前記第1の通信装置と前記第2の通信装置との間の通信において、同一の通信チャネルが用いられる、請求項1~10のいずれか1項に記載の通信システム。
【請求項12】
第1の通信装置が第1のBSSID(basic service set identifier)を用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成するステップを備え、前記第1のBSSIDは、前記第1の通信装置のMAC(media access control)アドレスと一致し、
第2の通信装置が第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成するステップを備え、前記第2のBSSIDは、前記第2の通信装置のMACアドレスと一致し、
前記第1の通信装置が、BSSIDとして前記第1のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成するステップと、
前記第2の通信装置が、BSSIDとして前記第2のBSSIDが指定されたフレームに加えて、BSSIDとして前記第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成するステップと、
前記第1の通信装置が、BSSIDとして前記第1の識別値が指定された第1のフレームを送信するステップとを備える、通信方法。
【請求項13】
無線通信部を有する通信装置であって、
第1のBSSID(basic service set identifier)を用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成する手段を備え、前記第1のBSSIDは、前記通信装置のMAC(media access control)アドレスと一致し、
第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成する他の通信装置との間で共通の第1の識別値を格納する手段を備え、前記第2のBSSIDは、前記他の通信装置のMACアドレスと一致し、
BSSIDとして前記第1のBSSIDが指定されたフレームに加えて、BSSIDとして前記第1の識別値が指定されたフレームを有効なフレームとして受信処理する手段と、
BSSIDとして前記第1の識別値が指定された第1のフレームを送信する手段とを備える、通信装置。
【請求項14】
無線通信部を有するコンピュータで実行される通信プログラムであって、前記通信プログラムは、前記コンピュータに、
第1のBSSID(basic service set identifier)を用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成するステップを実行させ、前記第1のBSSIDは、前記コンピュータのMAC(media access control)アドレスと一致し、
第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成する他の通信装置との間で共通の第1の識別値を格納するステップを実行させ、前記第2のBSSIDは、前記他の通信装置のMACアドレスと一致し、
BSSIDとして前記第1のBSSIDが指定されたフレームに加えて、BSSIDとして前記第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成するステップと、
BSSIDとして前記第1の識別値が指定された第1のフレームを送信するステップとを実行させる、通信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、BSSID(basic service set identifier)を用いて無線ネットワークを構成する通信システム、通信方法、通信装置、および通信プログラムに関する。
【背景技術】
【0002】
典型的な無線通信においては、複数の通信装置間で無線ネットワークが構成される。複数の無線ネットワークに跨がる通信に関して、特開2017-191966号公報(特許文献1)は、特定のゲーム装置の間で通信グループを形成して通信を行っている場合であっても、その通信グループからブロードキャストされるフレームを受信できる範囲に存在する他のゲーム装置は、当該通信グループで実行されているゲームアプリケーションの進捗情報などの各種情報を取得することができるゲームシステムを開示する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017-191966号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述の先行技術文献に開示されるゲームシステムにおいては、別の通信グループ(無線ネットワークに相当)に属しているゲーム装置からのフレームを受信して、当該別の通信グループに所属先を変更する場合には、元の通信グループから離脱あるいは元の通信グループを開放する必要がある。
【0005】
本技術は、各通信装置が互いに独立した複数の無線ネットワークを利用してそれぞれ通信を継続するための構成を提供する。
【課題を解決するための手段】
【0006】
ある実施の形態に従う通信システムは、第1のBSSID(basic service set identifier)を用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成する第1の通信装置と、第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成する第2の通信装置とを含む。第1のBSSIDは、第1の通信装置のMAC(media access control)アドレスと一致する。第2のBSSIDは、第2の通信装置のMACアドレスと一致する。第1の通信装置および第2の通信装置は、第1の識別値を共通に有している。第1の通信装置は、BSSIDとして第1の識別値が指定された第1のフレームを送信するように構成されており、BSSIDとして第1のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成されている。第2の通信装置は、BSSIDとして第2のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成されている。
【0007】
この構成によれば、第1の通信装置と第2の通信装置との間で共通に保持されている第1の識別値に関して、第1の通信装置は、BSSIDとして第1のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理し、第2の通信装置は、BSSIDとして第2のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理する。第1の通信装置および第2の通信装置における受信処理によって、第1の無線ネットワークおよび第2の無線ネットワークを維持したまま、それらとは異なる独自の無線ネットワークを構成できる。このような独自の無線ネットワークを用いることで、第1の通信装置と第2の通信装置との間で直接のデータ交換などを容易に行うことができる。
【0008】
第1の通信装置は、第1の識別値とは異なる第2の識別値を第1のフレームを用いて送信するように構成されていてもよい。第2の通信装置は、第1のフレームを受信して、第1のフレームに含まれる第2の識別値を格納するように構成されていてもよい。この構成によれば、第1の通信装置と第2の通信装置との間でのみ有効な第2の識別値を共通に保持できる。
【0009】
第2の通信装置は、ユーザ操作に応じて、第1のフレームに含まれる第2の識別値を格納するようにしてもよい。この構成によれば、明示的なユーザ操作を受けた場合に限って、第1の無線ネットワークおよび第2の無線ネットワークとは異なる独自の無線ネットワークが構成されるので、不要な無線リソースの消費を防止できる。
【0010】
第2の通信装置が第2の識別値を格納した後、第1の通信装置と第2の通信装置とは、BSSIDとして第2の識別値が指定された第2のフレームによりデータを交換するように構成されていてもよい。この構成によれば、第1の通信装置と第2の通信装置との間で有効な第2の識別値を用いた無線ネットワークを構成できるので、第1の通信装置と第2の通信装置との間でデータ交換をする際に、周囲に存在する他の装置への影響を低減できる。
【0011】
第1のフレームは、宛先MACアドレスとしてブロードキャストアドレスが指定されていてもよい。第2のフレームは、宛先MACアドレスとして第1の通信装置または第2の通信装置のMACアドレスが指定されていてもよい。この構成によれば、第1のフレームの受信を希望する通信装置による第1のフレームの探索を容易化できるとともに、第1の通信装置と第2の通信装置との間でデータ交換をする際に、周囲に存在する他の装置への影響を低減できる。
【0012】
第1の通信装置は、第1の無線ネットワークでの通信に用いているのと同じ通信チャネルで第1のフレームを送信し、第2の通信装置は、通信チャネルを順次変更して第1のフレームを探索してもよい。この構成によれば、第1の無線ネットワークにおける通信を安定させた状態で第1のフレームを送信できる。
【0013】
第2の通信装置は、第1のフレームの送信に用いられた通信チャネルで、第2の無線ネットワークでの通信を行ってもよい。この構成によれば、第1の無線ネットワークでの通信、および、第1の通信装置と第2の通信装置との間の通信のいずれについても安定させることできる。
【0014】
第1の通信装置および第2の通信装置は、アプリケーションプログラムを実行してもよい。第1の識別値は、アプリケーションプログラムに含まれていてもよい。この構成によれば、同一のアプリケーションプログラムを実行する通信装置の間では、第1の識別値を共通の保有することを保証できる。
【0015】
第2の識別値は、第1の通信装置のMACアドレスのうち特定のビットの値を変更することで生成されてもよい。この構成によれば、MACアドレスについての予め定められた規則に従って、他のMACアドレスと重複あるいは衝突しない第2の識別値を容易に決定できる。
【0016】
第1の識別値および第2の識別値は、第1の通信装置のMACアドレス、第2の通信装置のMACアドレスおよびブロードキャストアドレスのいずれとも異なる値に設定されていてもよい。この構成によれば、既存の無線ネットワークとの独立性を保証できる。
【0017】
第1の無線ネットワークでの通信、第2の無線ネットワークでの通信、および、第1の通信装置と第2の通信装置との間の通信において、同一の通信チャネルが用いられてもよい。この構成によれば、第1の無線ネットワークでの通信、第2の無線ネットワークでの通信、および、第1の通信装置と第2の通信装置との間の通信のすべてについて、安定させることができる。
【0018】
別の実施の形態に従う通信方法は、第1の通信装置が第1のBSSIDを用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成するステップを含む。第1のBSSIDは、第1の通信装置のMACアドレスと一致する。通信方法は、第2の通信装置が第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成するステップを含む。第2のBSSIDは、第2の通信装置のMACアドレスと一致する。通信方法は、第1の通信装置が、BSSIDとして第1のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成するステップと、第2の通信装置が、BSSIDとして第2のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成するステップと、第1の通信装置が、BSSIDとして第1の識別値が指定された第1のフレームを送信するステップとを含む。
【0019】
さらに別の実施の形態に従えば、無線通信部を有する通信装置が提供される。通信装置は、第1のBSSIDを用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成する手段を含む。第1のBSSIDは、通信装置のMACアドレスと一致する。通信装置は、第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成する他の通信装置との間で共通の第1の識別値を格納する手段を含む。第2のBSSIDは、他の通信装置のMACアドレスと一致する。通信装置は、BSSIDとして第1のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理する手段と、BSSIDとして第1の識別値が指定された第1のフレームを送信する手段とを含む。
【0020】
さらに別の実施の形態に従えば、無線通信部を有するコンピュータで実行される通信プログラムが提供される。通信プログラムは、コンピュータに、第1のBSSIDを用いて、1または複数の他の周辺装置と第1の無線ネットワークを構成するステップを実行させる。第1のBSSIDは、コンピュータのMACアドレスと一致する。通信プログラムは、コンピュータに、第2のBSSIDを用いて、1または複数の他の周辺装置と第2の無線ネットワークを構成する他の通信装置との間で共通の第1の識別値を格納するステップを実行させる。第2のBSSIDは、他の通信装置のMACアドレスと一致する。通信プログラムは、コンピュータに、BSSIDとして第1のBSSIDが指定されたフレームに加えて、BSSIDとして第1の識別値が指定されたフレームを有効なフレームとして受信処理するように構成するステップと、BSSIDとして第1の識別値が指定された第1のフレームを送信するステップとを実行させる。
【発明の効果】
【0021】
本技術によれば、各通信装置が互いに独立した複数の無線ネットワークを利用してそれぞれ通信を継続できる。
【図面の簡単な説明】
【0022】
図1】本実施の形態に従う通信システムの概要を説明するための図である。
図2】本実施の形態に従う通信システムの概要を説明するための図である。
図3】本実施の形態に従う通信システムの概要を説明するための図である。
図4】本実施の形態に従う通信システムに含まれる通信装置のハードウェア構成を示す模式図である。
図5】IEEE802.11規格に従うフレームフォーマットの一例を示す模式図である。
図6】IEEE802.11規格に従うフレーム送信を説明するための図である。
図7図1に示す通信システムにおいて特定の通信装置が仮想BSSIDを有している例を示す。
図8図7に示す通信システムにおけるフレーム送信を説明するための図である。
図9】本実施の形態に従う通信システムにおいて仮想BSSを構成するための実装例を示す模式図である。
図10】本実施の形態に従う通信システムのある局面における動作を示す模式図である。
図11図10に示す通信システムに含まれる通信装置の間で構成される仮想BSSの一例を示す図である。
図12図11に示す通信システムにおいて新たな仮想BSSIDを交換する処理を示す図である。
図13】本実施の形態に従う通信システムにおいて提供されるユーザインターフェイスの一例を示す模式図である。
図14】本実施の形態に従う通信システムにおける通信チャネルの取り扱いの一例を説明するための模式図である。
図15図10図12に示す通信処理を実現するためのシーケンス図を示す。
図16】本実施の形態に従う通信システムにおいて募集通知を受信する通信装置の処理を説明するための図である。
図17】本実施の形態に従う通信システムに含まれる通信装置に実現される機能構成例を示す模式図である。
【発明を実施するための形態】
【0023】
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0024】
[A.概要]
まず、本実施の形態に従う通信システム1の概要について説明する。図1図3は、本実施の形態に従う通信システム1の概要を説明するための図である。
【0025】
本実施の形態に従う通信システム1は、無線通信により互いに情報をやり取り可能な複数の通信装置100_1,100_2,・・・および周辺装置200_1,200_2,・・・,200_6,・・・を含む。以下の説明では、通信装置100_1,100_2,・・・を「通信装置100」と総称するとともに、周辺装置200_1,200_2,・・・,200_6,・・・を「周辺装置200」と総称することもある。なお、周辺装置200も広義の通信装置に相当する。
【0026】
無線通信としては、例えば、IEEE(Institute of Electrical and Electronics Engineers)802.11規格に従う無線LAN(Local Area Network)を用いることができる。なお、本明細書において、「IEEE802.11規格」は、狭義のIEEE802.11(1997年策定)だけではなく、IEEE802.11から派生するすべての規格(例えば、IEEE802.11b,IEEE802.11g,IEEE802.11nなど)を包含する用語である。さらに、「IEEE802.11規格」は、今後策定される新たな派生規格についても包含し得る。
【0027】
図1には、IEEE802.11規格において定義されるインフラストラクチャーモード(infrastructure mode)による通信状態の一例を示す。インフラストラクチャーモードにおいては、1つの通信装置がアクセスポイント(AP:access point;以下、単に「AP」とも略称する。)として動作し、当該APに1または複数の通信装置が接続する。APに接続する1または複数の通信装置は、ステーション(STA:station;以下、単に「STA」とも略称する。)として動作する。なお、APとしての動作は「親機」を意味し、STAとしての動作は「子機」を意味するとみなすこともできる。
【0028】
説明の便宜上、通信装置100は、少なくともAPとして動作可能な通信装置を意味し、周辺装置200は、少なくともSTAとして動作可能な通信装置を意味する。但し、通信装置100と周辺装置200とが同一の構成を有していてもよい。この場合には、通信装置100および周辺装置200は、状況に応じて、APおよび/またはSTAとして動作する。
【0029】
インフラストラクチャーモードにおいて、1つのAPと1または複数のSTAとは無線ネットワークを構成する。このようなAPを中心とした無線ネットワークは、BSS(basic service set)と称されており、各無線ネットワーク(BSS)を一意に特定する識別子としてBSSID(basic service set identifier)が用いられる。典型的には、BSSIDとしては、APとして動作する通信装置のMAC(media access control)アドレスが用いられる。
【0030】
図1において、通信装置100_1および100_2がAPとして動作している。通信装置100_1を中心とする無線ネットワークのBSSIDは「BSS_1」であり、通信装置100_2を中心とする無線ネットワークのBSSIDは「BSS_2」であるとする。通常、「BSS_1」の値は、通信装置100_1のMACアドレスと一致し、「BSS_2」の値は、通信装置100_2のMACアドレスと一致する。
【0031】
BSS_1には、周辺装置200_1~200_3がSTAとして接続しており、BSS_2には、周辺装置200_4~200_6がSTAとして接続している。
【0032】
このように、APとして動作する通信装置100_1は、通信装置100_1のMACアドレスと一致するBSSIDを用いて、1または複数の周辺装置200と無線ネットワークを構成する。同様に、APとして動作する通信装置100_2は、通信装置100_2のMACアドレスと一致するBSSIDを用いて、1または複数の周辺装置200と無線ネットワークを構成する。
【0033】
本実施の形態に従う通信システム1においては、図1に示すような無線ネットワークを維持した状態で、別の無線ネットワークを仮想的に構成することができる。
【0034】
例えば、図2に示すように、BSS_1においてAPとして動作する通信装置100_1とBSS_2においてAPとして動作する通信装置100_2との間で、別のBSSID(この例では、「BSS_3」)をもつ無線ネットワークを構成することができる。
【0035】
なお、図2に示す例において、通信装置100_1および通信装置100_2のいずれか一方がBSS_3のAPとして動作し、他方がBSS_3のSTAとして動作するようにしてもよいし、あるいは、APとSTAとの厳密な区別をしないようにしてもよい。
【0036】
また、図3に示すように、BSS_1においてAPとして動作する通信装置100_1と、BSS_1においてSTAとして動作する周辺装置200_3およびBSS_2においてSTAとして動作する周辺装置200_4との間で、さらに別のBSSID(この例では、「BSS_4」)をもつ無線ネットワークを構成することもできる。
【0037】
このように、本実施の形態に従う通信システム1においては、任意の通信装置は、任意の無線ネットワークを維持した状態で、別の無線ネットワークを構成あるいは別の無線ネットワークに参加できる。
【0038】
[B.ハードウェア構成例]
次に、本実施の形態に従う通信システム1を構成する装置のハードウェア構成の一例について説明する。
【0039】
(b1:通信装置100)
本実施の形態に従う通信システム1に含まれる通信装置100は、どのような装置であってもよいが、一例として、無線通信機能を有するゲーム装置とすることができる。ゲーム装置としては、携帯型(あるいは、可搬型)であってもよいし、据置型であってもよい。
【0040】
図4は、本実施の形態に従う通信システム1に含まれる通信装置100のハードウェア構成を示す模式図である。図4を参照して、通信装置100は、コンピュータの一例であり、プロセッサ102と、主記憶部104と、補助記憶部106と、ディスプレイ114と、操作部116と、音声出力部118と、無線通信部120とを含む。これらのコンポーネントは、バス112を介して、互いにデータ通信可能に接続されている。
【0041】
プロセッサ102は、通信装置100が提供する処理を実行するための処理主体(処理手段)である。プロセッサ102は、補助記憶部106に格納されているシステムプログラム108およびアプリケーションプログラム110を読み込んで主記憶部104に展開して、後述するような各種の情報処理を実行する。
【0042】
システムプログラム108は、後述するような各処理を実現するための命令コードを含む。特に、システムプログラム108は、本実施の形態に従う通信プログラムを含む。
【0043】
主記憶部104は、プロセッサ102がアクセス可能な任意の記憶装置(記憶媒体)であり、例えば、DRAM(dynamic random access memory)といった揮発性記憶装置を用いて実装される。
【0044】
補助記憶部106は、例えば、ハードディスクやフラッシュメモリといった不揮発性記憶媒体を用いて実装される。あるいは、補助記憶部106は、例えば、光ディスクおよびカートリッジといった通信装置100に着脱可能な記憶媒体を用いて実装してもよい。この場合、通信装置100と任意の記憶媒体との組合せで通信装置を構成してもよい。
【0045】
ディスプレイ114は、プロセッサ102で実行される情報処理の結果として生成される画像を表示する。ディスプレイ114には、他の装置から受信した画像が表示される場合もある。ディスプレイ114は複数であってもよい。また、1または複数の外部ディスプレイを通信装置100が利用する構成であってもよい。
【0046】
操作部116は、主として、通信装置100のユーザからの操作を受け付ける。操作部116は、例えば、押ボタン、操作レバー、タッチパネル、マウスなどを用いて実装される。操作部116は、通信装置100とは別体の、有線または無線で接続されるゲームコントローラであってもよい。
【0047】
無線通信部120は、他の装置との間で無線信号を介してデータを送受信する。無線通信部120は、例えば、IEEE802.11規格に従う無線LANをサポートする。加えて、無線通信部120は、Bluetooth(登録商標)、ZigBee(登録商標)、赤外線通信などの通信方式をサポートするようにしてもよい。図4には、無線通信部120のブロックを集合的に描くが、互いに独立した複数の無線通信部120を実装してもよい。また、無線通信部120はプロセッサ102と一体化されていてもよい。
【0048】
図4には、通信装置100を一体の装置として描くが、複数の装置の集合体として実装してもよい。すなわち、通信装置100を複数の独立した装置の組合せによって実装してもよい。例えば、プロセッサ102、主記憶部104、補助記憶部106に相当するハードウェアを有する本体装置と、ディスプレイ114、操作部116、音声出力部118に相当するハードウェアを有する端末装置とが別体である構成を採用してもよい。このような構成は、通信装置100ではなく、通信システムと称されてもよい。
【0049】
また、通信装置100において実行される情報処理の少なくとも一部が、ネットワーク(広域ネットワークおよび/またはローカルネットワーク)上に分散配置された1または複数の他の装置によって分散的に実行されるようにしてもよい。
【0050】
(b2:周辺装置200)
本実施の形態に従う通信システム1に含まれる周辺装置200についても、どのような装置であってもよい。例えば、周辺装置200は、ラップトップ、デスクトップパソコン、携帯電話、スマートフォン、タブレットなどの汎用的な情報処理装置とすることができる。あるいは、周辺装置200は、ゲーム装置に接続される周辺機器(例えば、ゲームコントローラやスピーカなど)であってもよい。このような装置自体は、公知であるので、ここでは詳細な説明は行わない。
【0051】
(b3:その他)
上述したように、通信装置100および周辺装置200を区別するのは、説明の便宜上のためであり、通信装置100および周辺装置200が同一のハードウェア構成を有していてもよい。典型的には、通信装置100および周辺装置200のすべてをゲーム装置としてもよい。
【0052】
通信装置100および/または周辺装置200において実行される処理は、プロセッサがプログラムを実行することで実現されてもよいし、その一部または全部が、SoC(system on chip)、ASIC(application specific integrated circuit)、FPGA(field programmable gate array)などのハードワイヤード回路により実現されてもよい。ハードワイヤード回路の一部または全部は、無線通信部120に実装されてもよい。
【0053】
[C.BSSIDおよび仮想BSSID]
次に、本実施の形態に従う通信システム1における無線通信に関して、BSSIDおよび仮想BSSIDについて説明する。
【0054】
図5は、IEEE802.11規格に従うフレームフォーマットの一例を示す模式図である。図5に示すフレームフォーマット20は、PLCP(physical layer convergence protocol)プリアンブル22と、PLCPヘッダ24と、IEEE802.11ヘッダ26と、データフィールド28と、FCSフィールド30とを含む。
【0055】
PLCPプリアンブル22およびPLCPヘッダ24は、物理層での伝送に関する情報を含む。具体的には、PLCPプリアンブル22は、フレームフォーマット20の先頭に付加され、同期信号を示すビット列を含む。PLCPヘッダ24は、変調方式、データ長さなどの情報を含む。
【0056】
IEEE802.11ヘッダ26は、データリンク層での伝送に関する情報を含む。より具体的には、IEEE802.11ヘッダ26は、フレームコントロールフィールド261と、Duration/IDフィールド262と、宛先MACアドレスフィールド263と、送信元MACアドレスフィールド264と、BSSIDフィールド265と、シーケンスコントールフィールド266とを含む。
【0057】
フレームコントロールフィールド261は、フレームの種類、フレームの宛先、フレームの送信元の媒体(無線および有線のいずれであるか)、フラグメント情報、電力管理情報、WEP(wired equivalent privacy)の使用の有無などの情報を含む。
【0058】
Duration/IDフィールド262は、フレーム送信に必要な期間の情報を含む。
【0059】
宛先MACアドレスフィールド263は、宛先として指定された通信装置のMACアドレスを含む。
【0060】
送信元MACアドレスフィールド264は、送信元として指定された通信装置のMACアドレスを含む。
【0061】
BSSIDフィールド265は、送信元および宛先として指定された通信装置が属している無線ネットワークのBSSIDの値を含む。
【0062】
シーケンスコントールフィールド266は、複数のフレームを再構成するための情報を含む。
【0063】
データフィールド28は、伝送されるデータ本体が格納される。
FCSフィールド30は、伝送中に生じるエラーを検出するためのチェックビット列であるFCS(frame check sequence)を含む。
【0064】
基本的には、IEEE802.11ヘッダ26に含まれる情報に基づいて、通信装置間のフレーム伝送が制御される。より具体的には、送信先を特定する宛先MACアドレス(図5の宛先MACアドレスフィールド263に指定される値)と、BSSID(図5のBSSIDフィールド265に指定される値)との組合せによって、送信元の通信装置からのフレームを受信および処理する通信装置が決定される。すなわち、いずれかの通信装置からのフレームを受信した通信装置は、受信したフレームに含まれるIEEE802.11ヘッダ26の内容に基づいて、自装置宛のフレームであるか否かを判断する。自装置宛のフレームであると判断されると、受信したフレームの内容が解析され、必要な処理が実行される。一方、自装置宛のフレームではないと判断されると、受信したフレームは、当該フレームの内容が解析されることなく破棄される。
【0065】
図6は、IEEE802.11規格に従うフレーム送信を説明するための図である。図6には、図1に示す2つの無線ネットワークが存在する場合において、通信装置100_1がフレームを送信する場合の例を示す。図6中のチェックマークは、受信したフレームの内容を解析して処理することを意味する。なお、通信装置100_1,100_2および周辺装置200_1~200_6が互いに近接した位置に存在しており、いずれの通信装置も他の通信装置からのフレームを受信できるものとする。
【0066】
図6のCase1では、宛先MACアドレスとして、周辺装置200_1のMACアドレスが指定され、BSSIDとして、BSS_1が指定されている。この場合、周辺装置200_1のみが通信装置100_1からのフレームの内容を解析して処理することになる。
【0067】
ここで、宛先MACアドレスおよびBSSIDのいずれについても、特定の値ではなく、「すべて」を意味するブロードキャストアドレス(FF:FF:FF:FF:FF:FF)を指定することもできる(図6においては、「Broadcast」と示す。)。
【0068】
図6のCase2では、宛先MACアドレスとして、周辺装置200_1のMACアドレスが指定され、BSSIDとして、ブロードキャストアドレスが指定されている。この場合においても、周辺装置200_1のみが通信装置100_1からのフレームの内容を解析して処理することになる。
【0069】
なお、IEEE802.11規格によれば、IEEE802.11ヘッダ26のBSSIDの値としては、送信元の通信装置が属している無線ネットワークのBSSID、あるいは、ブロードキャストアドレスのみが許容される。
【0070】
図6のCase1およびCase2に示すように、宛先MACアドレスとして特定の値が指定されている場合には、BSSIDが一致していることを条件として、指定された値をもつ通信装置のみが受信したフレームの内容を解析して処理することになる。
【0071】
同様に、図6のCase3およびCase4では、宛先MACアドレスとして、周辺装置200_2のMACアドレスが指定されており、周辺装置200_2のみが通信装置100_1からのフレームの内容を解析して処理することになる。
【0072】
また、図6のCase5およびCase6では、宛先MACアドレスとして、周辺装置200_3のMACアドレスが指定されており、周辺装置200_3のみが通信装置100_1からのフレームの内容を解析して処理することになる。
【0073】
図6のCase7では、宛先MACアドレスとして、通信装置100_2のMACアドレスが指定され、BSSIDとして、BSS_1が指定されている。この場合、通信装置100_2は、受信したフレームにおいて自装置のMACアドレスが指定されていると判断するものの、指定されたBSSIDの値である「BSS_1」が自装置が属している無線ネットワークのBSSIDの値である「BSS_2」とは一致しないため、受信したフレームを破棄する。
【0074】
一方、図6のCase8では、宛先MACアドレスとして、通信装置100_2のMACアドレスが指定され、BSSIDとして、ブロードキャストアドレスが指定されている。この場合、通信装置100_2は、受信したフレームにおいて自装置のMACアドレスが指定されていると判断し、かつ、BSSIDとしてブロードキャストアドレスが指定されているので、通信装置100_1からのフレームの内容を解析して処理する。
【0075】
図6のCase8に示すような指定を行うことで、BSS_1に属している通信装置100_1から、異なる無線ネットワークであるBSS_2に属している通信装置100_2に対してフレームを送信できる。しかしながら、BSSIDが異なる無線ネットワークに属している通信装置のMACアドレスを取得することは容易ではないので、図6のCase8に示すようなフレームの生成は現実的ではない。また、このようなフレームは、複数の宛先に同一のデータを送信するような用途には適していない。すなわち、宛先の数だけフレームを生成および送信する必要があり、送信側の通信装置100における負荷が大きくなり得る。
【0076】
図6のCase9では、宛先MACアドレスとして、ブロードキャストアドレスが指定され、BSSIDとして、BSS_1が指定されている。この場合、BSS_1に属しているすべての通信装置(周辺装置200_1~200_3)が通信装置100_1からのフレームの内容を解析して処理することになる。図6のCase9は、同一の無線ネットワークに属しているSTAに対して、一斉にフレームを送信する場合などに有効である。
【0077】
しかしながら、通信装置100_1から他の無線ネットワークであるBSS_2に属している通信装置100_2および周辺装置200_4~200_6に対しては、フレームを伝送することができない。そこで、他のBSSに属している通信装置100および/または周辺装置200に対してフレームを送信する方法として、図6のCase10に示すように、宛先MACアドレスおよびBSSIDの両方に、ブロードキャストアドレスを指定することができる。この場合、BSSに関係なく、通信装置100_1からのフレームを受信可能なすべての通信装置(通信装置100_2および周辺装置200_1~200_6)が通信装置100_1からのフレームの内容を解析して処理することになる。
【0078】
しかしながら、図6のCase10に示すような指定を行うことで、送信元の通信装置からの電波の届く範囲にいるすべての通信装置が受信したフレームの内容を解析して処理することになるので、無関係な通信装置での処理負荷が増大し、あるいは、無関係な通信装置での誤った処理の発生などが懸念される。そのため、図6のCase10に示すようなフレームの生成も現実的ではない。
【0079】
なお、APとして動作する通信装置100同士は、無線ネットワークより上位のIP(internet protocol)レイヤにおいて、ルータなどを経由してデータを交換する方法も想定される。しかしながら、APとして動作する通信装置100同士を接続するルータが存在しない場合もある。また、ルータなどを経由することで、転送ホップ数などが増大して、データの伝送効率および伝送速度が低下し得る。
【0080】
このような新たな課題に対して、本実施の形態に従う通信システム1は、インフラストラクチャーモードにおいて構成される無線ネットワーク(BSS)が複数存在する場合であっても、複数のBSSに跨がって、効率的かつ柔軟にデータを交換可能な通信方法などを提供する。
【0081】
より具体的には、本実施の形態に従う通信システム1においては、IEEE802.11規格で用いるBSSID(一般的には、APとして動作する通信装置のMACアドレスが用いられるが、これに限られるものではない)とは別に、任意のBSSIDを指定できる新たな仕組みを導入する。以下の説明においては、IEEE802.11規格で用いるBSSIDとは異なる任意の値をもつBSSIDを「仮想BSSID」あるいは「VBSSID」とも称す。仮想BSSIDは、BSSを仮想的に構成するための識別値の一例である。仮想BSSIDとしては、任意のMACアドレスおよびブロードキャストアドレスと重複あるいは衝突しない任意の値を用いることができる。但し、仮想BSSIDとして、想定されるすべてのMACアドレスと完全に異なる値を選択しなくてもよく、MACアドレスとの重複あるいは衝突を現実的に回避できればよい。
【0082】
また、仮想BSSIDを用いて構成される無線ネットワークを「仮想BSS」とも称す。上述の図2に示す「BSS_3」および図3に示す「BSS_4」は、仮想BSSIDを用いて構成される仮想BSSの一例である。
【0083】
次に、仮想BSSIDを用いて仮想的に構成される無線ネットワーク(仮想BSS)の一例について説明する。
【0084】
図7は、図1に示す通信システム1において特定の通信装置が仮想BSSID50を有している例を示す。図7に示す通信システム1においては、APとして動作する通信装置100_1および通信装置100_2と、STAとして動作する周辺装置200_3とは、仮想BSSID50を共通に有しているとする。
【0085】
通信装置100_1、通信装置100_2および周辺装置200_3は、IEEE802.11ヘッダ26に仮想BSSID50を含むフレームを、自装置が属している仮想無線ネットワークに向けられたものであるとして処理することになる。
【0086】
図8は、図7に示す通信システム1におけるフレーム送信を説明するための図である。図8には、図7に示す通信システム1において、通信装置100_1がフレームを送信する場合の例を示す。図8中のチェックマークは、図6と同様に、通信装置100_1からのフレームの内容を解析して処理することを意味する。なお、通信装置100_1,100_2および周辺装置200_1~200_6が互いに近接した位置に存在しており、いずれの通信装置も他の通信装置から送信されたフレームを受信できるものとする。
【0087】
図8のCase1、Case2、Case4、Case5、Case7、Case8、Case10、Case11、Case13、Case14は、図6のCase1、Case2、Case3、Case4、Case5、Case6、Case7、Case8、Case9、Case10とそれぞれ同様であるので、詳細な説明は繰り返さない。
【0088】
図8のCase3では、周辺装置200_1は、仮想BSSID50を有していないので、自装置宛のフレームではないと判断し、内容を解析することなく受信したフレームを破棄する。図8のCase6においても同様に、周辺装置200_2は、仮想BSSID50を有していないので、自装置宛のフレームではないと判断し、内容を解析することなく受信したフレームを破棄する。
【0089】
これに対して、図8のCase9では、周辺装置200_3は、仮想BSSID50を有しているので、自装置宛のフレームであると判断し、通信装置100_1からのフレームの内容を解析して処理することになる。図8のCase12においても同様に、通信装置100_2は、仮想BSSID50を有しているので、自装置宛のフレームであると判断し、通信装置100_1からのフレームの内容を解析して処理することになる。
【0090】
図8のCase15では、仮想BSSID50を有している周辺装置200_3および通信装置100_2のみが、通信装置100_1からのフレームの内容を解析して処理することになる。
【0091】
図8に示すように、仮想BSSID50を有している周辺装置200_3は、自装置が属しているBSSのBSSID(通信装置100_1のMACアドレス)がBSSIDとして指定されたフレームに加えて、仮想BSSID50をBSSIDとして指定されたフレームを有効なフレームとして受信処理する。
【0092】
同様に、仮想BSSID50を有している通信装置100_2は、自装置が属しているBSSのBSSID(通信装置100_2のMACアドレス)がBSSIDとして指定されたフレームに加えて、仮想BSSID50をBSSIDとして指定されたフレームを有効なフレームとして受信処理する。
【0093】
なお、本明細書において、「有効なフレームとして受信処理する」とは、指定されたBSSIDに基づいて、フレームを破棄しないこと意味する。すなわち、受信されたフレームにおいて指定されている宛先MACアドレスが所定条件を満たせば、当該フレームは、内容を解析される対象となり得る。
【0094】
このように、仮想BSSID50を用いて仮想的に構成される無線ネットワーク(仮想BSS)を採用することで、仮想BSSに属していない通信装置において処理負荷が増大するような事態を回避することができるとともに、仮想BSSに属していない通信装置での誤った処理の発生なども回避できる。
【0095】
説明の便宜上、仮想BSSIDを用いて仮想的に構成される無線ネットワーク(仮想BSS)が1つだけの例を示すが、構成される仮想BSSの数には制限はない。また、各通信装置は、特定の1つの仮想BSSに属するだけではなく、複数の仮想BSSに同時に属することもできる。この場合には、各通信装置は、属している仮想BSSの数に相当する仮想BSSIDを有することになる。
【0096】
すなわち、説明の便宜上、APおよび/またはSTAとして動作する通信装置が1つの仮想BSSIDを有している例を示したが、各通信装置が有している仮想BSSIDの数には制限はない。
【0097】
仮想BSSは、BSSとは独立して構成されるので、複数のBSSに跨がって構成されてもよいし、単一のBSSに属する通信装置のうち一部の通信装置のみが仮想BSSを構成してもよい。さらに、いずれのBSSにも属していない通信装置が仮想BSSには属することもできる。
【0098】
ここで、本実施の形態に従う通信システム1において「仮想BSSに属する」という技術的意義について説明する。
【0099】
本実施の形態に従う通信システム1における仮想BSSは実体的に存在しなくてもよい。すなわち、仮想BSSにおいては、IEEE802.11規格に従うBSSのようなAPとSTAとの間の接続手続きは必要がない。少なくとも、いずれかの仮想BSSに属している通信装置が、当該仮想BSSに属していることを認識することで十分である。あるいは、いずれかの仮想BSSに属する予定の通信装置が、属する予定の仮想BSSを認識することで十分である。
【0100】
より具体的には、各通信装置は、自装置が属する仮想BSSを特定する仮想BSSIDを特定できればよい。仮想BSSIDを通信装置が特定できるようにする仕組みとしては、任意の方法を採用できる。
【0101】
例えば、通信装置で実行されるアプリケーションプログラムあるいはシステムプログラム、または、通信装置が保持するデータなどに、1または複数の仮想BSSIDを含めておくことができる。
【0102】
あるいは、通信装置が任意の通信手段を用いて他の通信装置と通信して、仮想BSSIDを交換してもよい。任意の通信手段としては、ブロードキャストアドレスや既知の仮想BSSIDなどを用いることができる。また、通信装置は、インターネット経由で、当該通信装置が参加すべき仮想BSSを特定する仮想BSSIDを取得するようにしてもよい。
【0103】
さらにあるいは、通信装置を操作するユーザが任意の仮想BSSIDの値、あるいは、仮想BSSIDを生成するための値を設定するようにしてもよい。
【0104】
IEEE802.11規格に従うBSSにおいては、APがBSSの構成、変更、開放などを管理するが、仮想BSSにおいては、APによる管理は必要ない。その結果、仮想BSSにおいては、APのような管理機能は必ずしも必要なく、APおよびSTAという明確な役割の違いなども必ずしも必要ない。例えば、IEEE802.11規格に従うBSSにおいては、ビーコンなどでアドバタイズ情報を配信することも必ずしも必要ではないので、STAとして動作する通信装置のみで仮想BSSを構成することも可能である。
【0105】
[D.仮想BSSIDの決定方法]
本実施の形態に従う通信システム1において用いられる仮想BSSIDは、IEEE802.11規格に従うBSSID(すなわち、APとして動作する通信装置のMACアドレス)とは重複あるいは衝突しない値であれば、どのような値を用いてもよい。
【0106】
仮想BSSIDは、仮想BSSを構成する通信装置の間に予め格納されていてもよいし、任意の方法で生成するようにしてもよい。例えば、以下のような方法が想定される。
【0107】
(1-1)通信装置の生産に係わる法人が製品ベンダー(ネットワーク機器メーカ)に割り当てられるOUI(organizationally unique identifier:ベンダーコード)を有している場合には、OUIの範囲から1または複数のMACアドレスを仮想BSSIDとして用いることができる。
【0108】
(1-2)通信装置で実行されるアプリケーションプログラムの開発者が保有する通信装置のMACアドレスを仮想BSSIDとして用いることができる。すなわち、市場には流通しないことが保証されているMACアドレスを仮想BSSIDとして用いてもよい。
【0109】
(2-1)仮想BSSに属する予定の任意の通信装置のMACアドレスから仮想BSSIDを生成することができる。STAとして動作する通信装置のMACアドレスであれば、BSSIDとして用いられることがないため、そのまま仮想BSSIDとして用いることができる。
【0110】
APとして動作する通信装置のMACアドレスであれば、通信装置のMACアドレスのうち特定のビットの値を変更することで仮想BSSIDを生成してもよい。例えば、MACアドレスに含まれるローカルビット(local bit)を「1」にセットすることで(通常は、「0」にセットされている)、仮想BSSIDとして用いることができる。ローカルビットは、MACアドレスの先頭オクテットに含まれるGLビットに相当する。
【0111】
なお、ローカルビットを用いて仮想BSSIDを生成した場合には、周囲に同一の仮想BSSIDが存在する可能性があるので、衝突検知を行うようにしてもよい。万が一、衝突が検知された場合には、当該仮想BSSIDの使用を一時的に生成し、各通信装置が共通のルールに従って新たな仮想BSSIDに変更するといった処理を採用してもよい。
【0112】
(2-2)ユーザ識別子、アプリケーション識別子、パスワードなどから算出されるハッシュを用いて、仮想BSSIDを生成することができる。
【0113】
上述の(1-1)および(1-2)では、予め静的に決定された仮想BSSIDを通信装置に組み込んでおく形態が想定され、上述の(2-1)および(2-2)では、通信装置が動作中に必要に応じて仮想BSSIDを動的に生成する形態が想定される。
【0114】
[E.仮想BSSの構成に係る実装例]
次に、本実施の形態に従う通信システム1において仮想BSSを構成するための実装例について説明する。
【0115】
図9は、本実施の形態に従う通信システム1において仮想BSSを構成するための実装例を示す模式図である。図9には、通信装置100の無線通信部120の主要部を示す。なお、周辺装置200においても同様の実装を採用できる。
【0116】
図9を参照して、無線通信部120は、送信回路1201と、受信回路1202と、送受信制御部1203と、送受信バッファ1204と、フレームフィルタ1205と、解析処理部1206とを含む。
【0117】
送信回路1201は、送受信制御部1203からの指示に従って、データ伝送に係る無線信号を生成および送信する。受信回路1202は、送受信制御部1203からの指示に従って、データ伝送に係る無線信号を受信および復号する。送受信制御部1203は、送信回路1201および受信回路1202による無線信号の送受信を制御する。
【0118】
送受信バッファ1204は、送受信制御部1203を介して受信されたデータ(フレーム)を一時的に格納するとともに、送受信制御部1203を介して送信されるデータ(フレーム)を一時的に格納する。
【0119】
フレームフィルタ1205は、送受信バッファ1204に格納される受信したフレームのIEEE802.11ヘッダ26の内容を参照して、条件に合致するものだけを解析処理部1206へ出力する。より具体的には、フレームフィルタ1205は、(1)IEEE802.11ヘッダ26の宛先MACアドレスフィールド263に指定された値が、自装置のMACアドレスと一致、あるいは、ブロードキャストアドレスと一致した場合であって、かつ、(2)IEEE802.11ヘッダ26のBSSIDフィールド265に指定された値が処理対象リスト1210に登録されているいずれかの値と一致した場合において、当該フレームを処理対象として解析処理部1206へ出力する。
【0120】
解析処理部1206は、受信したフレームの内容を解析し、解析した結果をアプリケーションへ出力する。
【0121】
フレームフィルタ1205に設定される処理対象リスト1210は、一種のホワイトリストとして実装されている。処理対象リスト1210には、内容を解析すべきフレームを特定するためのMACアドレスが規定される。
【0122】
通常、BSSIDとしてブロードキャストアドレスが指定されたフレームは常に処理する必要があるので、処理対象リスト1210には、ブロードキャストアドレス1211が常時登録される。
【0123】
通信装置がいずれかのBSSに属するようになると、処理対象リスト1210には、当該BSSを識別するためのBSSID1212が登録される。APとして動作する通信装置であれば、自装置のMACアドレスをBSSID1212として処理対象リスト1210に登録する。STAとして動作する通信装置であれば、接続先のAPのMACアドレスをBSSID1212として処理対象リスト1210に登録する。
【0124】
さらに、仮想BSSに属するためには、通信装置は、仮想BSSID値1213を処理対象リスト1210に登録する。仮想BSSID値1213を処理対象リスト1210に登録するタイミングは、用途に応じて適宜決定すればよい。
【0125】
なお、図9には、1つの仮想BSSID値1213のみが処理対象リスト1210に登録されている例を示すが、複数の仮想BSSID値1213を処理対象リスト1210に登録することもできる。一部または全部の仮想BSSID値1213は、動的に追加および削除されてもよい。また、特定の仮想BSSID値1213は、ブロードキャストアドレス1211と同様に、常時登録されていてもよい。
【0126】
図9に示すような実装例を採用する場合には、処理対象リスト1210に仮想BSSID値1213が登録された時点で、登録された仮想BSSID値1213により特定される仮想BSSに属しているとみなすこともできる。
【0127】
なお、図9に示す無線通信部120のそれぞれのコンポーネントは、無線通信部120に含まれるハードウェアおよび/またはソフトウェアによって実現されてもよいし、一部のコンポーネントは、プロセッサ102がソフトウェアを実行することで実現されてもよい。例えば、無線通信部120で実行されるファームウェアにより実現されてもよいし、プロセッサ102で実行される無線ドライバにより実現されてもよい。
【0128】
[F.アプリケーション例]
次に、本実施の形態に従う仮想BSSを利用したアプリケーションの一例について説明する。
【0129】
図10は、本実施の形態に従う通信システム1のある局面における動作を示す模式図である。図10を参照して、通信装置100の各々が2つの周辺装置200とそれぞれBSSを構成している例を示す。より具体的には、通信装置100_1は、周辺装置200_1A,200_1Bとの間で、BSSIDが「BSS_1」のBSSを構成している。通信装置100_2~100_5の各々についても同様である。
【0130】
図10に示すような状態において、通信装置100_1~100_5の一部または全部の間で仮想BSSを構成し、様々なアプリケーション(例えば、複数ユーザでのゲームのプレイ)を提供する処理について説明する。
【0131】
図11は、図10に示す通信システム1に含まれる通信装置100の間で構成される仮想BSSの一例を示す図である。図11を参照して、例えば、通信装置100_1~100_5の各々は、同一のアプリケーションプログラム110を利用可能であるとする。
【0132】
アプリケーションプログラム110は、実行コードに加えて、仮想BSSを構成するための仮想BSSID50を含んでいる。すなわち、仮想BSSID50は、アプリケーションプログラム110に含まれていてもよい。これにより、同一のアプリケーションプログラム110を実行している通信装置100の間では、アプリケーションプログラム110に含まれる仮想BSSID50を実質的に共有することができる。
【0133】
このように、アプリケーションプログラム110に含まれる仮想BSSID50を用いて仮想BSSを構成できる。仮想BSSID50は、他の通信装置のMACアドレスと衝突しないような値が設定される。
【0134】
図11には、通信装置100_1~100_5の間で、「VBSS_1」を仮想BSSIDとする仮想BSSを構成している例を示す。図11に示すVBSS_1は、通信装置100_1~100_5の各々がアプリケーションプログラム110に含まれる仮想BSSID50を有効化することで実現できる。例えば、通信装置100_1~100_5の各々がアプリケーションプログラム110を起動すると、起動処理の一部として、仮想BSSID50を有効化するようにしてもよい。あるいは、通信装置100_1~100_5の各々を操作するユーザが明示的に仮想BSSの構成を指定するようにしてもよい。
【0135】
アプリケーションプログラム110に含まれる仮想BSSID50を指定したフレームは、アプリケーションプログラム110を実行している通信装置以外では、内容が解析されることなく破棄されるので、他のアプリケーションプログラムを実行している通信装置、および、それ以外の近接した位置に存在する通信装置に対する影響を低減できる。
【0136】
VBSS_1においては、ユーザが一緒にゲームをプレイするための相手を選択するための情報(例えば、ユーザ名やアイコンなど)に加えて、新たな仮想BSSIDを交換する。ユーザ操作などによって、一緒にゲームをプレイする相手が決定されると、決定されたユーザが操作する通信装置の間で、新たな仮想BSSIDを用いた仮想BSSの利用が開始される。
【0137】
図12は、図11に示す通信システム1において新たな仮想BSSIDを交換する処理を示す図である。図12には、通信装置100_1と通信装置100_2とが新たな仮想BSSを構成する場合の処理例を示す。例えば、通信装置100_1が新たな仮想BSSID(以下、仮想BSSID50との区別のため「個別仮想BSSID52」とも称す。)を生成し、生成した個別仮想BSSID52を通信装置100_2との間で交換する。これによって、通信装置100_1と通信装置100_2との間で個別仮想BSSID52を共有することができ、この結果、通信装置100_1と通信装置100_2の間で、個別仮想BSSID52が示す「VBSS_2」として識別される仮想BSSが構成される。
【0138】
図11に示す通信システム1において、仮想BSSID50および個別仮想BSSID52は、少なくとも、通信装置100_1~100_5のMACアドレスおよびブロードキャストアドレス(FF:FF:FF:FF:FF:FF)のいずれとも異なる値に設定される。
【0139】
個別仮想BSSID52は、互いに異なる値であれば、複数用意してもよい。典型的には、ゲームをプレイするユーザグループ毎に都度生成するようにしてもよい。一対一で通信対戦を行うようなゲームを想定すると、通信装置100のペア毎に、互いに異なる個別仮想BSSID52が割り当てられてもよい。
【0140】
個別仮想BSSID52を用いて構成される仮想BSSにおいては、ゲームの実行に必要な情報がやり取りされる。個別仮想BSSID52を指定したフレームは、一緒にゲームをプレイするユーザの通信装置以外では、内容が解析されることなく破棄されるので、同じ種類のゲームをプレイする別のユーザ群が存在しても、互いに与える影響を低減できる。
【0141】
図13は、本実施の形態に従う通信システム1において提供されるユーザインターフェイスの一例を示す模式図である。図13には、通信装置100_1が主体となって、一緒にプレイするユーザを募集する場合の例を示す。より具体的には、図13(A)および図13(C)には、通信装置100_1のディスプレイ114の表示内容の一例を示し、図13(B)および図13(D)には、通信装置100_2のディスプレイ114の表示内容の一例を示す。
【0142】
図13(A)に示すように、ユーザの明示的または暗示的な指示などに応じて、通信装置100_1は、「対戦ゲームへの参加者を募集しますか?」といったメッセージ180を出力する。ユーザが「はい」を選択することで、通信装置100_1は、当該ゲームを提供するアプリケーションプログラム110に含まれる仮想BSSID50を指定したフレームにより、募集通知を送信する。仮想BSSID50を指定することで、図11に示すような、仮想BSSID50を用いた仮想BSSが構成される。このとき、通信装置100_1は、参加者を募集するゲーム用の個別仮想BSSID52を新たに生成し、募集通知に含める。
【0143】
仮想BSSID50を用いた仮想BSSにおいて、通信装置100_1と他の通信装置との間で、必要な情報が交換される。このような情報交換を取得することで、通信装置100_2は、図13(B)に示すように、「ユーザAが対戦ゲームへの参加者を募集しています。参加しますか?」といったメッセージ182を出力する。ユーザが「はい」を選択することで、通信装置100_2から通信装置100_1へユーザの参加の意思を示す参加要求が送信される。
【0144】
そして、通信装置100_1は、図13(C)に示すように、「ユーザBが対戦ゲームへの参加者を希望しています。承認しますか?」といったメッセージ184を出力する。ユーザが「はい」を選択することで、通信装置100_1は、参加を承認する旨の承認通知を通信装置100_2へ送信する。
【0145】
例えば、図13(D)に示すように、通信装置100_2は、「ユーザAが対戦ゲームへの参加者を承認しました。対戦ゲームを開始します。」といったメッセージ186を出力する。ユーザが「OK」を押すと、通信装置100_1と通信装置100_2とは、個別仮想BSSID52を用いた仮想BSSにおいて、当該ゲームに係るデータの交換を開始する。
【0146】
このように、本実施の形態に従う仮想BSSを利用することで、不特定多数のユーザに対して、参加者を募ることができるとともに、一緒にゲームをプレイするユーザが決定されると、データのやり取りを実質的に当該ユーザに係る通信装置間のみに制限できるので、それ以外の近接した位置に存在する通信装置に対する影響を低減できる。
【0147】
次に、上述したような仮想BSSを実現するための通信チャネルの取り扱いの一例について説明する。
【0148】
図14は、本実施の形態に従う通信システムにおける通信チャネルの取り扱いの一例を説明するための模式図である。
【0149】
IEEE802.11規格においては、複数の通信チャネルが利用可能である。例えば、図14(A)に示すように、通信装置100_1が周辺装置200_1A,200_1Bとの間で構成しているBSS_1において使用している通信チャネルCh_Aと、通信装置100_2が周辺装置200_2A,200_2Bとの間で構成しているBSS_2において使用している通信チャネルCh_Bとは、同一であるとは限らない。
【0150】
通信装置100_1がいずれの通信装置100と仮想BSSを構成するのかは未定であるので、典型的には、通信装置100_1は、自装置がBSSでの通信に用いているのと同じ通信チャネル(図14の例では、通信チャネルCh_A)で募集通知を送信するようにしてもよい。既存のBSS_1での通信に用いているのと同じ通信チャネルを用いることで、BSS_1における通信を安定させた状態で募集通知を送信できる。
【0151】
一方、通信装置100_2は、通信チャネルを順次変更して募集通知を探索する。すなわち、通信装置100_2は、固定またはランダムな周期で通信チャネルを適宜変更して、募集通知の受信を試みる。図14の例では、通信装置100_2は、通信チャネルCh_Aで募集通知を受信することになる。募集通知に応答して、通信装置100_1と通信装置100_2とが仮想BSS(VBSS_2)を構成する場合には、募集通知の送信に用いられた通信チャネルCh_Aがそのまま使用されてもよい。
【0152】
このとき、既存のBSS_2での通信に用いている通信チャネルと、仮想BSS(VBSS_2)での通信に用いられる通信チャネルとが異なっていれば、仮想BSSでの通信に用いられる通信チャネルと一致するように、既存のBSS_2での通信に用いられる通信チャネルが変更される。すなわち、通信装置100_2は、募集通知の送信に用いられた通信チャネルで、既存のBSS_2での通信を行う。
【0153】
図14の例では、通信装置100_2は、BSS_2での通信に用いる通信チャネルを通信チャネルCh_Bから通信チャネルCh_Aへ変更する(図14(B)参照)。このような通信チャネルの最適な選択および変更を行うことで、既存のBSS_1およびBSS_2に加えて、新たに構成される仮想BSS(VBSS_2)のいずれにおいても、通信を安定させることができる。
【0154】
以上のような通信チャネルの取り扱いによって、通信装置100_1のBSS_1での通信、通信装置100_2のBSS_2での通信、および、通信装置100_1と通信装置100_2との間(仮想BSS)の通信のいずれにおいても、同一の通信チャネルが用いられることになる。
【0155】
なお、募集通知を送信する通信チャネルは、任意の方法で選択するようにしてもよい。例えば、予め定められた固定の通信チャネルで募集通知を送信するようにしてもよいし、送信時点の通信の混雑度を計測し、その計測結果に基づいて通信チャネルを選択してもよい。さらにあるいは、すべての通信装置100が通信チャネルをサイクリックに順次変更して、募集通知の送信および/または受信を行うようにしてもよい。
【0156】
また、募集通知を用いて、既存のBSSに加えて仮想BSSを構成する場合には、図14(B)に示すように、一旦、既存のBSSおよび仮想BSSが同一の通信チャネルを利用するように構成した上で、さらに別の通信チャネルに一斉に切り替えるようにしてもよい。例えば、既存のBSSおよび仮想BSSの構成後に、当該時点の通信の混雑度を計測し、その計測結果に基づいて新たな通信チャネルを選択してもよい。このように、募集通知の送信に用いた通信チャネルとは異なる通信チャネルを用いて、その後の通信を行うようにしてもよい。
【0157】
図15は、図10図12に示す通信処理を実現するためのシーケンス図を示す。図15には、一例として、通信装置100_1を起因として仮想BSSを構成する場合の処理手順を示す。図15に示す各通信装置100が実行する処理は、典型的には、各通信装置100のプロセッサ102によるシステムプログラム108(図4など参照)の実行と、無線通信部120が提供する処理などとによって実現される。
【0158】
図15を参照して、通信装置100_1は、周辺装置200_1A,200_1Bとの間で、通信装置100_1のMACアドレスをBSSIDとして、BSSを構成する(シーケンスSQ2)。このように、通信装置100_1は、自装置のBSSIDを用いて、1または複数の他の周辺装置200と無線ネットワークを構成する。
【0159】
通信装置100_2および通信装置100_3についても同様の無線ネットワークを構成する(シーケンスSQ2)。すなわち、通信装置100_2および通信装置100_3は、それぞれ自装置のBSSIDを用いて、1または複数の他の周辺装置200と無線ネットワークをそれぞれ構成する。
【0160】
通信装置100_1は、アプリケーションプログラム110を実行する(シーケンスSQ4)。そして、通信装置100_1は、アプリケーションプログラム110に含まれる仮想BSSID50を無線通信部120のフレームフィルタ1205(図9参照)に登録する(シーケンスSQ6)。このように、通信装置100_1は、自装置が属しているBSSのBSSID(通信装置100_1のMACアドレス)がBSSIDとして指定されたフレームに加えて、仮想BSSID50がBSSIDとして指定されたフレームを有効なフレームとして受信処理するように構成される。
【0161】
通信装置100_2および通信装置100_3についても同様に受信処理を構成する(シーケンスSQ4およびSQ6)。すなわち、通信装置100_2および通信装置100_3は、それぞれ自装置が属しているBSSのBSSIDが指定されたフレームに加えて、仮想BSSID50がBSSIDとして指定されたフレームを有効なフレームとして受信処理するように構成される。
【0162】
続いて、例えば、通信装置100_1は、ゲームへの参加を募集するためのユーザ操作を受けると(シーケンスSQ8)(図13(A)など参照)、当該ゲーム用の個別仮想BSSID52を生成する(シーケンスSQ10)。個別仮想BSSID52は、例えば、通信装置100_1のMACアドレスに含まれるローカルビットを「1」にセットすることで生成してもよい。
【0163】
そして、通信装置100_1は、個別仮想BSSID52を含む募集通知を送信する(シーケンスSQ12)。募集通知は、アプリケーションプログラム110に含まれる仮想BSSID50により構成される仮想BSSにおいて送信される。すなわち、通信装置100_1は、BSSIDとして仮想BSSID50が指定されたフレームを送信する。このとき、通信装置100_1は、個別仮想BSSID52を募集通知のフレームを用いて送信する。
【0164】
より具体的には、募集通知を含むフレームは、宛先MACアドレスとして、ブロードキャストアドレスが指定され、BSSIDとして、仮想BSSID50が指定される(図8のCase15参照)。募集通知を示すメッセージおよび個別仮想BSSID52がフレームのデータフィールド28(図5参照)に格納される。このとき、通信装置100_1は、自装置がBSSでの通信に用いているのと同じ通信チャネルで募集通知を送信する。
【0165】
通信装置100_1による募集通知の送信は、固定またはランダムな周期で繰り返されてもよい(※1)。基本的には、最初に選択された通信チャネルに固定されるが、通信チャネルを適宜変更してもよい。
【0166】
通信装置100_2は、募集通知の受信を試みる(シーケンスSQ14)。募集通知の受信の試みは、固定またはランダムな周期で通信チャネルを適宜変更して行われてもよい。通信装置100_1は、通信装置100_1が構成しているBSSで用いている通信チャネルで募集通知を送信するので、通信装置100_2は、通信チャネルを順次変更して、募集通知を探索する。そして、通信装置100_2は、募集通知のフレームを受信すると、募集通知のフレームに含まれる個別仮想BSSID52を格納し、通信装置100_1が募集するゲームへの参加の要否をユーザへ提示する(シーケンスSQ16)。
【0167】
なお、通信装置100_3についても、通信装置100_2と同様の処理を実行する。
ここで、通信装置100_2は、ゲームへの参加を希望するユーザ操作を受けると(シーケンスSQ18)(図13(B)など参照)、参加要求を通信装置100_1へ送信する(シーケンスSQ20)。参加要求についても、アプリケーションプログラム110に含まれる仮想BSSID50により構成される仮想BSSにおいて送信される。
【0168】
なお、ゲームへの参加を希望するユーザ操作を受けることを条件に、募集通知のフレームに含まれる個別仮想BSSID52を格納するようにしてもよい。
【0169】
通信装置100_1は、通信装置100_2からの参加要求を受信すると、ゲームへの参加の許否をユーザへ提示する(シーケンスSQ22)。通信装置100_1は、ゲームへの参加を承認するユーザ操作を受けると(シーケンスSQ24)(図13(C)など参照)、承認通知を通信装置100_2へ送信する(シーケンスSQ26)。承認通知についても、アプリケーションプログラム110に含まれる仮想BSSID50により構成される仮想BSSにおいて送信される。
【0170】
以上の処理手順によって、対象のゲームに係る仮想BSSを構成する準備が整う。そして、通信装置100_1および通信装置100_2は、個別仮想BSSID52を無線通信部120のフレームフィルタ1205(図9参照)に登録する(シーケンスSQ28)。ここで、通信装置100_2が構成しているBSSで用いている通信チャネルと仮想BSSで用いられる通信チャネルとが異なっていれば、通信装置100_2は、通信装置100_2が構成しているBSSで用いている通信チャネルを仮想BSSで用いられる通信チャネルに変更してもよい。
【0171】
続いて、個別仮想BSSID52を用いて構成される仮想BSSを用いて、通信装置100_1と通信装置100_2とはゲームに係るデータの交換を開始する(シーケンスSQ30)。ここで、通信装置100_1および通信装置100_2は、募集通知のフレームが送信された通信チャネルで、データの交換に係るフレームを送受信する。
【0172】
通信装置100_1と通信装置100_2との間でデータ交換に用いられるフレームは、宛先MACアドレスとして、通信装置100_1のMACアドレス(通信装置100_1宛のフレームの場合)、または、通信装置100_2のMACアドレス(通信装置100_2宛のフレームの場合)が指定され、BSSIDとして、個別仮想BSSID52が指定される(図8のCase9およびCase12参照)。ゲームに係るデータは、フレームのデータフィールド28(図5参照)に格納される。
【0173】
このように、通信装置100_2が個別仮想BSSID52を格納した後、通信装置100_1と通信装置100_2とは、BSSIDとして個別仮想BSSID52が指定されたフレームによりゲームに係るデータを交換する。
【0174】
その後、通信装置100_1は、ゲームを終了するためのユーザ操作を受けると(シーケンスSQ32)、遮断通知を通信装置100_1へ送信する(シーケンスSQ34)。そして、通信装置100_1および通信装置100_2は、個別仮想BSSID52を無線通信部120のフレームフィルタ1205(図9参照)から削除する(シーケンスSQ36)。これによって、個別仮想BSSID52を用いて構成される仮想BSSは、実質的に開放される。
【0175】
説明の便宜上、1つの通信装置100が募集通知を送信する例を示したが、複数の通信装置100が募集通知を送信することもある。この場合には、ユーザが希望する参加先を選択するようにしてもよい。
【0176】
図16は、本実施の形態に従う通信システム1において募集通知を受信する通信装置100の処理を説明するための図である。図16(A)に示すように、任意の通信装置100が複数の募集通知を受信した場合には、受信した募集通知に含まれる仮想BSSIDとチャネルとを対応付けて順次格納する。このとき、通信装置100は、受信した募集通知に関連する属性情報(例えば、募集通知を送信したユーザ名など)も関連付けて格納してもよい。
【0177】
このように受信した募集通知を収集することで、通信装置100は、図16(B)に示すような募集通知の一覧表示188を出力できる。募集通知の一覧表示188は、周囲に存在する他の通信装置100からの募集通知を示す。ユーザが募集通知の一覧表示188に対して、参加を希望するものを1つ選択すると、通信装置100は、選択された募集通知に対応する通信装置100との間の仮想BSSにおいて、データの交換を開始する。
【0178】
なお、図15に示す処理手順では、募集通知を送信する通信装置100は特定の通信チャネルのみを利用する例を示したが、これに限らず、通信装置100は、通信チャネルをサイクリックに順次変更して、募集通知を送信するようにしてもよい。この場合、募集通知を受信する通信装置100は、特定の通信チャネルに固定して、募集通知を探索してもよいし、通信チャネルをランダムに順次変更して、募集通知を探索してもよい。
【0179】
なお、本実施の形態に従う通信システム1において構成する仮想BSSにおいては、AP(親機)とSTA(子機)との明確な区別は必要ないので、個別仮想BSSID52を生成する通信装置100を一意には決定できない場合もある。そのため、予め定められた規則に従って、仮想BSSを構成する通信装置100の間で個別仮想BSSID52を決定してもよい。例えば、任意の仮想BSSを構成する通信装置100の間で、最も若いMACアドレス、あるいは、最も古いMACアドレスから個別仮想BSSID52を生成するようにしてもよい。
【0180】
上述したように、本実施の形態に従う通信システム1においては、アプリケーションプログラム110に含まれる仮想BSSID50を用いて構成される仮想BSSにおいて募集通知、参加要求および承認通知などをやり取りし、一連のやり取りによりマッチングされた通信装置100の間では、アプリケーションプログラム110に含まれる仮想BSSID50とは別の個別仮想BSSID52を用いて構成される仮想BSSにおいて、ゲームに係るデータを交換する。このような2段階の仮想BSSを採用することで、より多くの通信装置100に対してゲームへの参加を募集することができるとともに、一緒にゲームをプレイすることが決定された後は、他の通信装置100への影響を低減できる。
【0181】
[G.通信装置100の機能構成]
次に、本実施の形態に従う通信システム1に含まれる通信装置100に実現される主要な機能構成について説明する。
【0182】
図17は、本実施の形態に従う通信システム1に含まれる通信装置100に実現される機能構成例を示す模式図である。図17に示される各機能モジュールは、典型的には、通信装置100のプロセッサ102によるシステムプログラム108(図4など参照)の実行と、無線通信部120が提供する処理などによって実現される。
【0183】
図17を参照して、通信装置100は、ネットワーク管理部1020と、アプリケーション実行部1025と、データ再構成部1026と、フレーム生成部1027とを含む。
【0184】
ネットワーク管理部1020は、ユーザ操作および/またはアプリケーション実行部1025からの要求に応じて、通信装置100が周辺装置200および/または他の通信装置100との間で無線ネットワークを構成する処理を担当する。より具体的には、ネットワーク管理部1020は、BSS構成部1021と、仮想BSS管理部1022と、個別仮想BSSID生成部1023と、個別仮想BSSID格納部1024とを含む。
【0185】
BSS構成部1021は、インフラストラクチャーモードにおいて、通信装置100がAPまたはSTAのいずれとして動作するのかを判断するともに、BSSを構成するために必要な処理シーケンスを実行する。典型的には、BSS構成部1021は、自装置のMACアドレスをBSSIDとして用いて、1または複数の他の周辺装置200と無線ネットワークであるBSSを構成する。BSS構成部1021は、通信装置100が構成したBSSを特定するBSSIDを無線通信部120のフレームフィルタ1205に登録する。
【0186】
仮想BSS管理部1022は、他の通信装置100との間で共有あるいは交換された仮想BSSIDを用いた仮想BSSの構成を管理する。典型的には、仮想BSS管理部1022は、1または複数の他の通信装置100との間で共通の仮想BSSID50を格納する。仮想BSS管理部1022は、仮想BSSID50および/または個別仮想BSSID52の無線通信部120のフレームフィルタ1205への登録あるいは削除を行う。仮想BSSID50をフレームフィルタ1205へ登録することで、自装置が属しているBSSのBSSIDがBSSIDとして指定されたフレームに加えて、仮想BSSID50をBSSIDとして指定されたフレームを有効なフレームとして受信処理するように構成される。
【0187】
個別仮想BSSID生成部1023は、必要に応じて、個別仮想BSSID52を生成する。
【0188】
個別仮想BSSID格納部1024は、他の通信装置100から取得した個別仮想BSSID52を格納する。
【0189】
アプリケーション実行部1025は、アプリケーションプログラム110を実行するエンジンである。アプリケーション実行部1025は、アプリケーションプログラム110に含まれる仮想BSSID50を保持する。
【0190】
データ再構成部1026は、無線通信部120(解析処理部1206)から受信した1または複数のフレームから送信されたデータを再構成する。データ再構成部1026は、再構成したデータをネットワーク管理部1020および/またはアプリケーション実行部1025へ出力する。
【0191】
フレーム生成部1027は、ネットワーク管理部1020および/またはアプリケーション実行部1025から提供されるデータを含む1または複数のフレームを生成する。典型的には、フレーム生成部1027は、BSSIDとして仮想BSSID50および/または個別仮想BSSID52が指定されたフレームを生成する。無線通信部120は、フレーム生成部1027が生成したフレームを送信する。
【0192】
[H.その他の形態]
説明の便宜上、2つの通信装置の間で仮想BSSID50および/または個別仮想BSSID52を用いて仮想的に無線ネットワークを構成する処理例を説明したが、より多くの通信装置の間で仮想的に無線ネットワークを構成することも当然に可能である。
【0193】
上述の説明においては、通信装置100が単体で必要な処理を実行する実装例を示すが、これに限らず、必要な処理の全部または一部を通信装置100とは別のコンピューティングリソース(典型的には、クラウド上にあるコンピューティングリソース)を利用して実現してもよい。処理の実行形態については、時代に応じて適切なものを採用すればよい。
【0194】
[I.利点]
本実施の形態に従う通信システムによれば、仮想BSSID50および/または個別仮想BSSID52を用いて、仮想的な無線ネットワークを構成することで、異なる無線ネットワーク(BSS)に属している複数の通信装置の間で、効率的かつ柔軟にデータ交換ができる。
【0195】
例えば、BSSIDとして、仮想BSSIDを指定するとともに、宛先MACアドレスとして、ブロードキャストアドレスを指定することで、仮想BSSIDを共有に有している複数の通信装置に対して、IPマルチキャストのように、まとめてデータを送信できる。送信対象は、送信元の通信装置からの電波の届く範囲にいる通信装置に限られるものの、ルータなどの中継装置は必要なく、また、送信元から受信側の通信装置に対して、フレームが直接送信されるので、データの伝送効率を高く維持できる。
【0196】
また、BSSIDとして、仮想BSSIDを指定していれば、宛先MACアドレスとして、ブロードキャストアドレスを指定したとしても、当該フレームは、仮想BSSIDをフレームフィルタに登録している通信装置のみが受信処理し、それ以外の通信装置(本実施の形態に従う仮想BSSIDの仕組みをサポートしていない装置を含む)は、内容を解析することなく、当該フレームを破棄する。そのため、BSSIDとして、ブロードキャストアドレスを指定した場合のように、周囲に存在する無関係な通信装置での処理負荷の増大や、無関係な通信装置での誤った処理の発生などを防止できる。
【0197】
本実施の形態に従う仮想BSSIDによる仮想的な無線ネットワークは、他の通信装置と共通に保持される仮想BSSIDおよび/または個別仮想BSSIDを指定されたフレームを選択的に受信できるフレームフィルタを実装するだけで実現できる。このようなフレームフィルタは、比較的容易に実装できるとともに、BSSIDの各々は6バイトしかないので、コンピューティングリソースの消費はわずかで済む。
【0198】
さらに、フレームフィルタを用いて実現することで、同時に所属できる仮想的な無線ネットワークの数を用意に増加させることができる。そのため、複数の無線ネットワークの各々でやり取りされるデータを利用した様々な情報やゲームをユーザへ提供できる。
【0199】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0200】
1 通信システム、20 フレームフォーマット、22 PLCPプリアンブル、24 PLCPヘッダ、26 IEEE802.11ヘッダ、28 データフィールド、30 FCSフィールド、50 仮想BSSID、52 個別仮想BSSID、100 通信装置、102 プロセッサ、104 主記憶部、106 補助記憶部、108 システムプログラム、110 アプリケーションプログラム、112 バス、114 ディスプレイ、116 操作部、118 音声出力部、120 無線通信部、180,182,184,186 メッセージ、188 一覧表示、200 周辺装置、261 フレームコントロールフィールド、262 Duration/IDフィールド、263 宛先MACアドレスフィールド、264 送信元MACアドレスフィールド、265 BSSIDフィールド、266 シーケンスコントールフィールド、1020 ネットワーク管理部、1021 BSS構成部、1022 仮想BSS管理部、1023 個別仮想BSSID生成部、1024 個別仮想BSSID格納部、1025 アプリケーション実行部、1026 データ再構成部、1027 フレーム生成部、1201 送信回路、1202 受信回路、1203 送受信制御部、1204 送受信バッファ、1205 フレームフィルタ、1206 解析処理部、1210 処理対象リスト、1211 ブロードキャストアドレス、1212 BSSID、1213 仮想BSSID値。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17