以下、添付の図面を参照して、本発明の実施の形態について、詳細に説明する。なお、以下に示す実施形態はいずれも単なる例にすぎず、説明された内容に本発明を限定することを意図したものではない。また、以下では、Neighbor Awareness Network(NAN)規格に準拠した無線LANシステムを用いた例について説明するが、これに限られない。すなわち、ネットワーク内の通信装置が、他の通信装置に情報を要求する際に、通信装置が送出した電波が届かない範囲に存在する装置に関する情報をも取得するように構成されるシステムに、以下の議論を適用することができる。なお、以下では、通信装置が従う規格のことを指して「NAN規格」と呼び、NAN規格に従って形成された、サービス探索及び発見のためのネットワークについては「NAN」と呼ぶ。
(無線通信システムの構成)
図1に本実施形態に係る無線通信システムの構成例を示す。本無線通信システムは、NAN規格に従って動作可能な無線通信装置(NANデバイス101〜104)を含んで構成される。なお、無線通信システムは、例えば不図示のアクセスポイントや端末など、他の通信装置を含みうる。また、NANデバイス101〜104は、NANに参加可能であり、アプリケーションに係る通信を行うことが可能な通信装置であれば、どのような装置であってもよい。
NANデバイス101〜104は、NAN規格に基づいて、周囲の通信装置とそれらの通信装置が提供するサービスを発見し、又は周囲のNANデバイスがNANデバイス101〜104によって提供されうるサービスを発見することを可能としうる。NANにおいては、RF機能をオンにする周期を共有するNANデバイスの集合によってNANクラスタが定義され、NANデバイスはNANクラスタに参加する。図1は、NANデバイス101〜104がNANクラスタ105に参加していることを示している。NANクラスタ105への参加のためには、NANデバイス101〜104は、NANクラスタ105のMasterとして動作するNANデバイスが送信したDiscovery Beaconを受信するなどの、NAN規格に定められた処理を行う。ただし、ここでは、これらの処理はすでに完了しているものとし、詳細には説明しない。なお、NANデバイスは、複数のNANクラスタに参加することができ、複数のNANクラスタは、互いに異なるDW(Discovery Window)期間を有しうる。
NANクラスタに属する通信装置(以下「NANデバイス」と呼ぶ。)は、それぞれ、Master、Non Master Sync、及びNon Master Non Syncのうちのいずれかの役割で動作する。Masterとして動作するNANデバイスは、他の端末がDWを識別し、そのDW期間に同期するためのビーコンであるSynchronization Beacon(以下では「Sync Beacon」と呼ぶ。)を周期的に送信する。また、Masterとして動作するNANデバイスは、NANクラスタに属していない端末に対して、そのNANクラスタを認識させるための信号であるDiscovery Beaconを送信する。Discovery Beaconは、例えば100msごとに、DW期間ではない期間に送信される。なお、各NANクラスタにおいて、少なくとも1台のNANデバイスがMasterとして動作する。Non Master Syncとして動作するNANデバイスは、Sync Beaconを送信するが、Discovery Beaconは送信しない。Non Master Non Syncとして動作するNANデバイスは、Sync BeaconもDiscovery Beaconも送信しない。
以下の説明では、NANデバイス101及び103は、Non−Master Non−SyncとしてNANクラスタ105に参加しており、NANデバイス102はMasterとしてNANクラスタ105に参加しているものとする。また、NANデバイス104は、Anchor MasterとしてNANクラスタ105に参加しているものとする。なお、Anchor Masterとは、Masterの一種であり、自身が参加しているNANクラスタのDWのタイミングを決定するなど、NANクラスタ内の時刻基準を決めるデバイスである。また、Anchor Masterは、自身が参加しているNANクラスタを識別するための識別情報を発行する。図1において、NANデバイス101の電波到達範囲内にはNANデバイス102及び103が存在し、他のNANデバイス(NANデバイス104)とは、地理的に遠い位置に存在するため、直接通信することができないものとする。同様に、NANデバイス102は、NANデバイス101、103及び104と直接通信可能であり、NANデバイス103は、NANデバイス101、102及び104と直接通信可能な位置に存在するものとする。また、NANデバイス104は、NANデバイス102及び103とのみ直接通信可能な位置に存在し、NANデバイス101とは直接通信することができないものとする。
NANクラスタ105は、上述のようにNANデバイス101〜104が参加しているネットワークである。本実施形態では、NANクラスタ105に参加しているNANデバイスは2.4GHzの周波数帯域の6ch(2.437GHz)でネットワークを構築するものとする。NANクラスタ105は、DW期間の長さが16TU(Time Unit、1TUは1024マイクロ秒)であり、また、DW期間の開始タイミングから次のDW期間の開始タイミングまでの時間間隔が512TUのNANクラスタである。なお、NANクラスタで使用される周波数チャネルとDW期間はこれらに限られず、他の周波数チャネルと他の期間長又は間隔を有するDW期間との少なくともいずれかが用いられてもよい。
上述のように、NANデバイスは、自身が参加中のNANクラスタに参加している他のNANデバイスのうち、自身の電波の到達範囲外のデバイスに関する情報を取得することができない。例えば、図1の例では、NANデバイス101は、NANデバイス104の情報を取得することができない。
ここで、NANデバイスに関する情報は、例えば、Master PreferenceやRandom Factor等の情報を含む。これらの情報は、Master、Non−Master Sync、Non−Master Non−Syncへのなりやすさを定める情報である。なお、本実施形態では、NANデバイス101〜104のMaster Preferenceは、それぞれ2、80、60、128であるものとする。
NANデバイスに関する情報は、NANクラスタにおいて上述の各役割で動作するNANデバイスがそれぞれ何台存在するのか、そしてそれらがクラスタ内の何ホップ先にいるのか等の情報を含みうる。ここで、1つのデバイスから見て、そのデバイスが送出した無線信号を別のデバイスが直接受信するまでを1ホップ目、その無線信号がその別のデバイスからさらに別のデバイスに転送されるのを2ホップ目、というようにホップ数が規定されうる。NANデバイスは、各役割のNANデバイスがそれぞれ何台存在するのかを、自身が参加しているNANクラスタの安定性や、サービス発見の容易さの指標として用いることができる。また、NANデバイスは、ホップ数が多い他のNANデバイスが存在する場合には、参加しているNANクラスタでは、NANデバイスがより広範囲に位置していると予想することができるため、移動した場合でも継続的にサービスを発見することができる。このため、地理的に移動するNANデバイスには、ホップ数が多い他のNANデバイスがNANクラスタに存在するか否かの情報が重要となる。一方で、地理的に移動しないNANデバイスには、近隣に何台程度のNANデバイスが存在するか等の情報が重要となる。このように、NANデバイスは、自身が参加中のNANクラスタにどのような他のNANデバイスがいるかの情報を取得することが重要となる。
NANデバイスは、例えば、以下のようにすることによって、直接電波の送受信をすることができない位置関係にある他のNANデバイスから、そのNANデバイスの情報を取得することができる。まず、情報を取得したい第1のNANデバイスは、周囲に情報の取得を要求する、情報取得要求メッセージをブロードキャストによって送信する。それを受信できた第2のNANデバイスは、その情報取得要求に応答する。また、第1のNANデバイスが、その第1のNANデバイスと直接通信できない他のNANデバイスから情報を取得するために、第2のNANデバイスがその情報取得要求を転送する。そしてその転送されたメッセージを受信した第3のNANデバイスは、転送された情報取得要求に対する応答を第2のNANデバイスへ送信する。そして、第2のNANデバイスは、その応答を、第1のNANデバイスへと転送する。なお、第3のNANデバイスは、受信したメッセージをさらに転送して、他のNANデバイスから応答を受けることができる。この処理が繰り返されることによって、第1のNANデバイスは、NANクラスタ内にいる他のNANデバイスの情報を取得することができる。ここで、情報取得要求の転送を行うNANデバイスは、DWにおいてSync Beaconを送信するNANデバイス、すなわち、Master、Non−Master Syncとして機能しているNANデバイスに限られてもよい。これらの役割のNANデバイスは、定期的にSync Beaconを送信しており、Sync Beaconを受信できる範囲内にいるNANデバイスのみが、対応するNANクラスタを認識することができ、参加することができる。このため、MasterおよびNon−Masterの役割のNANデバイスのいずれかが送信した情報取得要求は、NANクラスタ内のすべてのNANデバイスによって受信されることとなる。このため、Master、Non−Master Syncとして機能しているNANデバイスによって情報取得要求が転送されることによって、その情報取得要求を送信したNANデバイスは、すべてのNANデバイスから情報を取得することができる。そして、Non−Master Non−Syncの役割のNANデバイスがその情報取得要求を転送しないことにより、NANデバイスにおける不必要な電力消費と、不必要な信号の転送によるシステム内の帯域の浪費とを防ぐことができる。すなわち、NANデバイスは、自身がSyncBeaconを送信する役割で動作しているかを判定し、その判定結果に応じて、情報取得要求を転送するか否かを決定することができる。
ただし、必ずしもすべてのNANデバイスが、上述の情報取得要求に対応しているわけではない場合がありうる。すなわち、従来のNANデバイスは、NAN規格では情報取得要求の方法が仕様で規定されていないため、情報取得要求に対応している必要がない。このため、このようなNANデバイスは、例えばMaster、Non−Master Syncとして機能しているなど、メッセージを転送すべき立場にいた場合であっても、情報取得要求メッセージを転送しないことが想定される。この場合、情報取得要求メッセージが転送されず、NANクラスタ内の一部のNANデバイスは、その情報取得要求メッセージを受信することができない。そして、その情報取得要求メッセージを受信できなかったNANデバイスは、情報取得要求メッセージの転送を行うべき立場にあり、さらに情報取得要求に対応していたとしても、情報取得要求メッセージを受信できていないため、その転送を行うことはない。この場合、情報取得要求メッセージの最初の送信元のNANデバイスから見て、情報取得要求に対応していないNANデバイスより先に存在する(場合によってはホップ数が多い)NANデバイスは、情報取得要求に対する応答をすることができない。この結果、情報取得要求メッセージの最初の送信元のNANデバイスは、NANクラスタに参加している他のNANデバイスの一部からしか情報を取得できなくなってしまう。
例えば、図1の例において、NANデバイス102は、Masterであり、メッセージを転送すべき立場にあると言える。しかしながら、NANデバイス102が、NANデバイスの情報取得要求メッセージへの応答機能と情報取得要求メッセージの転送機能を有しないとすると、例えばNANデバイス101からの情報取得要求メッセージがNANデバイス104へ転送されなくなる。また、NANデバイス103は、Non−Master Non−Syncであるため、情報取得要求メッセージへ応答することはできても、その情報取得要求メッセージを転送する立場にはない。このため、NANデバイス101は、NANデバイス104の情報を取得できなくなってしまう。
したがって、NANデバイスは、例えば、NANクラスタの安定性や、サービス発見の容易さの判断が不確実になってしまいうる。また、NANデバイスは、本来得られるべき最大ホップ数のNANデバイスからの応答を得られなかった結果、NANクラスタの最大ホップ数を過少に特定してしまいうる。そして、NANデバイスは、自身が地理的に移動するか否かに応じて参加するNANクラスタを選択する際に、適切でないNANクラスタを選択してしまいうる。
これに対して、以下の実施形態では、メッセージを転送すべき立場のNANデバイスがメッセージの転送機能を有していない場合に、周囲のNANデバイスがそのNANデバイスに代わってメッセージの転送を行うようにする。
以下の説明では、上述の例のように、NANデバイス102は、NANクラスタ105のMasterであるが、NANデバイスの情報取得要求メッセージへの応答機能、および情報取得要求メッセージの転送機能を有しないものとする。また、これに対して、NANデバイス103は、NANクラスタ105のNon−Master Non−Syncであるが、メッセージの転送機能を有しているものとする。なお、以下では、主としてNANデバイス103の構成及び処理について説明するが、NANデバイス101やNANデバイス104が同様の機能を有し、同様の処理を実行してもよい。
(NANデバイスの構成)
図2に、NANデバイス103のハードウェア構成例を示す。NANデバイス103は、そのハードウェア構成として、例えば、記憶部201、制御部202、機能部203、入力部204、出力部205、通信部206及びアンテナ207を含む。
記憶部201は、ROM、RAMの両方、もしくは、いずれか一方により構成され、後述する各種動作を行うためのプログラムや、無線通信のための通信パラメータ等の各種情報を記憶する。ここで、ROMは、Read Only Memoryの頭字語であり、RAMは、Random Access Memoryの頭字語である。なお、記憶部201として、ROM、RAM等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、DVDなどの記憶媒体を用いてもよい。
制御部202は、CPU、または、MPUにより構成され、記憶部201に記憶されたプログラムを実行することによりNANデバイス103全体を制御する。ここで、CPUはCentral Processing Unitの頭字語であり、MPUはMicro Processing Unitの頭字語である。なお、制御部202は、記憶部201に記憶されたプログラムとOSとの協働によりNANデバイス103全体を制御するようにしてもよい。ここで、OSはOperating Systemの頭字語である。また、制御部202は、機能部203を制御して、撮像や印刷、投影等の所定の処理を実行する。
機能部203は、NANデバイス103が所定の処理を実行するためのハードウェアである。例えば、NANデバイス103がカメラである場合、機能部203は撮像部であり、撮像処理を行う。また、例えば、NANデバイス103がプリンタである場合、機能部203は印刷部であり、印刷処理を行う。また、例えば、NANデバイス103がプロジェクタである場合、機能部203は投影部であり、投影処理を行う。機能部203が処理するデータは、記憶部201に記憶されているデータであってもよいし、後述する通信部206を介して他のNANデバイスと通信したデータであってもよい。
入力部204は、ユーザからの各種操作の受付を行う。出力部205は、ユーザに対して各種出力を行う。ここで、出力部205による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力等の少なくとも1つを含む。なお、タッチパネルのように入力部204と出力部205の両方を1つのモジュールで実現するようにしてもよい。
通信部206は、IEEE802.11シリーズに準拠した無線通信の制御や、IP通信の制御を行う。IPはInternet Protocolの頭字語である。また、通信部206はアンテナ207を制御して、無線通信のための無線信号の送受信を行う。NANデバイス103は通信部206を介して、画像データや文書データ、映像データ等のコンテンツを他のNANデバイスと通信する。
図3に、NANデバイス103の機能構成例を示す。NANデバイス103は、機能構成として、例えば、無線LAN制御部301、NAN制御部302、情報転送制御部303、アプリケーション制御部304、及び操作制御部305を有する。
無線LAN制御部301は、他の無線LANによる通信を行うことができる通信装置との間で、対応する無線LANの信号フォーマットに従って無線信号の送受信を行うための制御を行う。また、無線LAN制御部301は、IEEE802.11規格シリーズに従って、無線LANに係る各種制御を実行する。NAN制御部302は、NAN規格に従って、サービス探索/発見等の各種制御を実行する。情報転送制御部303は、NAN制御部302を制御して、他のNANデバイスからNANデバイス情報要求を受信した場合に、NANデバイス103が情報要求を転送するか否かを決定するための制御を行う。
アプリケーション制御部304は、NANで発見されたサービスを実行するための制御を行う。例えば、NANデバイス103がプリントサービスを発見した場合、アプリケーション制御部304は、プリントのジョブを要求するアプリケーションを実行するための制御を行う。また、例えば、NANデバイス103が写真共有サービスを発見した場合は、アプリケーション制御部304は、写真データを交換するアプリケーションを実行するための制御を行う。NANデバイス103は、複数のサービスを探すことができ、それぞれのサービスに対応する複数のアプリケーション制御部304を有していてもよい。操作制御部305は、NANデバイス103のユーザからの操作を受け付けて管理し、その操作に応じて、無線LAN制御部301、NAN制御部302、情報転送制御部303、及びアプリケーション制御部304の各々へ、適時に適切な信号を伝達する。
(処理の流れ)
続いて、上述のようなNANデバイス103が実行する処理の流れの例について説明する。
<実施形態1>
図4は、情報要求の転送機能を有するNANデバイス103が、周囲のSync Beaconの送信元のデバイス(NANデバイス102)に情報要求の転送機能がない場合に自身の役割を変更する処理の流れの例を示している。なお、図4に示すフローチャートは、NANデバイス103の制御部202が記憶部201に記憶されている制御プログラムを実行し、情報の演算および加工並びに各ハードウェアの制御を実行することにより実現されうる。なお、図4のフローチャートに示すステップの一部または全部を例えばASIC等のハードウェアで実現する構成としてもよい。NANデバイス103は、NANクラスタ105に参加している間は継続して図4の処理を実行しうる。本処理では、NANデバイス103は、DW期間において(S401)、自分の役割がSync Beaconを送信する役割であるか否か、すなわち、Master又はNon−Master Syncとして動作しているかを判定する(S402)。NANデバイス103は、自身の役割がSync Beaconを送信する役割であると判定すると(S402でYES)、そのままSync Beaconを送信し(S403)、処理を終了する。なお、NANデバイス103は、自身の役割がSync Beaconを送信する役割でなくなった場合に本処理を再開するようにしてもよいし、S403の後に処理を終了せずに、そのまま本処理を継続してもよい。なお、NANデバイス103は、Sync Beaconを送信する役割である場合、受信した情報要求を転送するように構成される。
一方、NANデバイス103は、自身の役割がSync Beaconを送信する役割でないと判定した場合(S402でNO)、他にSync Beaconを送信するデバイスが存在するため、そのSync Beaconを受信する(S404)。本実施形態では、NANデバイス103は、Masterとして動作中のNANデバイス102と、Anchor Masterとして動作中のNANデバイス104とから、Sync Beaconを受信する。次に、NANデバイス103は、受信したSync Beaconから、NANデバイス102及び104が、NANデバイスの情報要求の転送機能を有しているかを判定する(S405)。
ここで、図10に、本実施形態において、情報要求の転送機能を有しているNANデバイスが送信するSync Beaconの構成例を示す。本構成例に係るSync Beacon1000は、NAN規格で規定されたSync Beaconを拡張し、NAN Attribute1001に、Transfer Attribute(TA)1002が追加されたものである。Sync Beacon1000にTA1002が含まれることにより、Sync Beaconを送信するNANデバイスは、自身が情報要求の転送機能を有していることを他のNANデバイスに通知することができる。Sync Beaconを受信したNANデバイスは、そのSync BeaconにTAが含まれていない場合、Sync Beaconの送信元のデバイスが情報要求の転送機能を有していないと判定することができる。なお、これは一例であり、別の手法によって、情報要求の転送機能の有無が示されてもよい。例えば、NAN規格で定められたService ID List Attributeにtransfer用のservice IDを付加されたSync Beaconによって、送信元のデバイスが情報要求の転送機能を有していることが示されてもよい。また、情報要求の転送機能を有しているNANデバイスは、自身のMaster Preferenceの下2桁を11で固定することにより、情報要求の転送機能を有していることを示しうる。さらに、NAN規格で定められたVender Specific Attributeに、転送機能の対応を示した情報が付与されることにより、その情報の送信元のデバイスが情報要求の転送機能を有していることが示されてもよい。
図4の説明に戻り、NANデバイス103は、受信したSync Beaconから、Sync Beaconの送信元がすべて情報要求の転送機能に対応していると判定した場合(S405でYES)は、何もしない。一方、NANデバイス103は、Sync Beaconの送信元のいずれかが転送機能に対応していないと判定した場合(S405でNO)、自身のMaster Preferenceを、転送機能を有しないNANデバイスより大きい値にする(S406)。NANデバイス103は、Sync Beaconの送信元で、かつ、転送機能を有しないNANデバイスが複数存在する場合には、それらの中で最大のMaster Preferenceよりも、自身のMaster Preferenceの値を大きくする。本実施形態では、NANデバイス102が転送機能に対応していないため、NANデバイス103は、NANデバイス102のMaster Preferenceの値である80より大きい値を、自身のMaster Preferenceの値として設定する。ここでは、NANデバイス103は、一例として、自身のMaster Preferenceの値を85としたものとする。これにより、NANデバイス103は、例えばMaster又はNon−Master Syncとなり、それに伴って、Sync Beaconを送信する立場となる。この結果、情報要求を転送できないが情報要求を転送すべき立場にあるNANデバイス102と交代して、NANデバイス103が、NANデバイスの情報要求を転送する役割となることができる。そして、これに伴って、転送機能を有していないNANデバイス102は、Master又はNon−Master Syncとしての役割を終えるため、情報要求を転送する役割から外れることができる。
続いて、図5を用いて、本実施形態における、図4のS406が実行された場合の、無線通信システムにおける処理の流れについて説明する。DW期間520において、NANデバイス102は、自身がMasterであり、Sync Beaconを送信する役割であるため、Sync Beaconを送信する(S501)。同様に、NANデバイス104も、自身がAnchor Masterであるため、Sync Beaconを送信する(S501)。NANデバイス103は、これらを受信し、図4の手順に基づいてNANデバイス102及び104が、クラスタ内の他のNANデバイスの情報を取得するためのフレームの転送機能を有するかを判定する。この結果、NANデバイス103は、NANデバイス102が転送機能を有していないことを把握する。その結果、NANデバイス103は、自分のMaster Preferenceを、NANデバイス102のMaster Preferenceより高い値に更新し(S502)、自身の役割をMasterとする。ここで、Master Preferenceは、NAN規格で定義されたMasterへのなりやすさを示す情報である。
これにより、次のDW期間521からは、NANデバイス103がSync Beaconを送信し(S503、S507)、NANデバイス102はSync Beaconを送信しなくなる。この後、NANデバイス101のユーザが、入力部204を介して、NANクラスタ105内のNANデバイスの情報取得の処理をNANデバイス101に開始させたものとする。この場合、NANデバイス101は、NANクラスタ内の他のNANデバイスの情報を得るために、NANデバイスの情報要求(Subscribeメッセージ)をブロードキャストする(S504)。
ここで、S504のSubscribeは、他のNANデバイスの情報を取得するために、NAN規格で規定されたSubscribeメッセージを拡張したメッセージである。図11を用いて、その拡張されたSubscribeメッセージのフレーム構成例について説明する。本メッセージは、他のNANデバイスの情報を要求した要求元のNANデバイス101によって送信され、さらにそのメッセージを受信したNANデバイスによって転送される。本メッセージでは、Service IDに、NANデバイスの情報収集サービスに関するSubscribeであることを示すCollectを表す値が格納される。
さらに、Service Infoに、NANデバイスの情報を要求するための各種情報が格納される。Originator MAC Addressには、NANデバイスの情報を要求した要求元のNANデバイスのMACアドレスが格納される。S504及びS505では、Originator MAC Addressに、NANデバイス101のMACアドレスが格納される。
Collect IDには、複数回の情報要求がなされた場合に、それぞれを識別するためのIDが格納される。例えば、NANデバイス101が複数回NANデバイスの情報を要求した場合には、それらのメッセージにおけるCollect IDの値はそれぞれ異なることとなる。これにより、そのメッセージを受信したNANデバイスは、そのメッセージを重複して受信したかを検知することができる。受信側のNANデバイスは、以前に同じCollect IDの拡張Subscribeメッセージを受信していた場合には、そのメッセージを重複して受信したと認識し、メッセージへの応答やメッセージの転送を行わない。一方で、受信側のNANデバイスは、以前に受信したことがないCollect IDのメッセージを受信した場合には、そのメッセージの応答やメッセージの転送を行う。なお、メッセージを転送する役割のNANデバイスは、メッセージの転送の際に、受信したメッセージのCollect IDの値を変更せずに、メッセージの転送を行う。
Hop Countは、本メッセージが転送された回数を示す値である。最初の送信元であるNANデバイス101は、Hop Countの値として0を格納して、本メッセージを送信する。また、NANデバイス103は、NANデバイス101から本メッセージを受信して転送する際に、Hop Countの値を1に設定して転送する。すなわち、メッセージの転送を行うNANデバイスは、転送すべきメッセージのHop Countの値を1だけ増やして、転送を行う。Hop Count Limitは、本メッセージの転送回数の限度を指定する。例えば、NANデバイス101が、Hop Count Limitを0とした本メッセージを送信した場合、それを受信したNANデバイスは、そのメッセージを転送しない。また、Hop Count Limitが1の場合には、そのメッセージを受信したNANデバイスは、Hop Countを1に指定し、Hop Count Limitは1のまま転送する。そして、その転送されたメッセージを受信したNANデバイスは、Hop Countの値がHop Count Limitで指定された上限に達しているため、そのメッセージを転送しない。Hop CountおよびHop Count Limitによって、メッセージの送信元のNANデバイスは、NANクラスタ内の何ホップ先までのNANデバイスの情報を取得したいかを指定することができる。
ここで、図5において、S504における拡張Subscribeメッセージでは、Hop Countは0であり、Hop Count Limitは1が指定されているものとする。また、本メッセージにおいて、Collect IDは、以前に指定されたことがない一意の値が指定されているものとする。NANデバイス101の電波到達範囲内にはNANデバイス102及び103が存在するため、NANデバイス102及び103が、S504のメッセージを受信する。
このとき、NANデバイス102は、拡張Subscribeメッセージを受信しても、NANデバイスの情報要求およびその転送に対応していないため、応答を行わない。一方、そのメッセージを受信したNANデバイス103は、NANデバイス103のNANデバイスとしての情報を格納したメッセージによって、その要求に対して応答する(S505)。このメッセージは、NAN規格のPublishメッセージを拡張したものである。図12を用いて、本メッセージのフレーム構成の例について説明する。
図12はNANデバイスの情報を伝えるために、NAN規格で規定されているPublishメッセージを拡張したメッセージの構成例を示している。本メッセージは、NANデバイスの情報要求を受信した、情報要求に対応しているNANデバイス103及び104によって送信される。本メッセージでは、Service IDに、NANデバイスの情報を収集するサービスに関するPublishであることを示すCollectを表す値が格納される。さらに、Service Infoには、NANデバイスの情報を通知するための各種情報が格納される。Originator MAC Addressには、情報要求元のNANデバイスのMACアドレスが格納される。すなわち、本実施形態では、Originator MAC Addressにおいて、NANデバイス101のMACアドレスが指定される。Collect IDには、本メッセージに対応する拡張Subscribeメッセージに含まれていたCollect IDが格納される。これにより、本メッセージを受信したNANデバイスは、どの情報要求に対応する応答であるかを識別することができる。
NAN Device Informationには、本メッセージを送信するNANデバイスの各種情報が格納される。NAN Device Informationに含まれる最初の情報は、このNAN Device Informationが、どのNANデバイスに関する情報であるかを識別するためのMACアドレスである。また、Device Nameは、そのNANデバイスの名称が格納される。Cluster IDには、NANクラスタのIDが格納され、Roleには、NAN Device Informationに関連付けられたNANデバイスのNANクラスタ内での役割を示す情報が格納される。
Hop Countには、本メッセージに対応する拡張Subscribeメッセージにおいて格納されたHop Countの値が格納される。例えば、S505では、NANデバイス103が応答しているが、NANデバイス103が受信した拡張Subscribeメッセージは、NANデバイス101から直接受信したものであるため、Hop Countは0である。このため、この応答メッセージでは、Hop Countに0が格納される。Master PreferenceおよびRandom Factorには、NAN規格で規定されているMaster又はNon−Master Syncへのなりやすさを示す情報が含まれる。本メッセージを受信したNANデバイスは、これらの情報により、本メッセージを送信したNANデバイスのMasterへのなりやすさを知ることができる。Master MAC AddressとAnchor Master MAC Addressには、本メッセージの送信デバイスがSync Beaconの基点とするMasterとAnchor MasterのMACアドレスが、それぞれ指定される。S505の応答時には、NANデバイス103は、自身がMasterとして動作しているため、自身のMACアドレスを格納する。
Anchor Master PreferenceおよびAnchor Master Random Factorには、Anchor Materの、Master又はNon−Master Syncへなりやすさを示す情報が格納される。本メッセージを受信したNANデバイスは、これらの情報により、Anchor MasterがNANクラスタ内で安定してAnchor Masterで居続けられるか、すなわち安定したNANクラスタであるかを知ることができる。図1の例では、NANデバイス104がAnchor Masterであるため、Anchor Master PreferenceおよびAnchor Master Random Factorには、NANデバイス104に関する情報が格納される。Hop Count to Anchor Masterには、本メッセージの送信者が基点とするAnchor Masterまでのホップ数が格納される。本メッセージは、情報要求元のNANデバイス、又は情報要求を転送したNANデバイスに応答を返すためのメッセージであるため、ユニキャストで送信されうる。
図5に戻り、NANデバイス103は、S504で受信したメッセージのHop Countが0であり、Hop Count Limitが1であることから、転送回数が上限に達していないことを認識することができる。このため、NANデバイス103は、受信した拡張Subscribeメッセージを転送する(S506)。このとき、拡張SubscribeのOriginator MAC Address、Collect ID、及びHop Count Limitには、S504のメッセージ内の値と同じ値が指定される。一方で、Hop Countについては、S506で送信されるメッセージはS504のメッセージを転送するものであるため、値をインクリメントした1が指定される。ここで、Hop Countが、Hop Count Limitと等しく1となるため、S506のメッセージを受信したNANデバイス104は、本メッセージのさらなる転送を行うことはない。
NANデバイス101は、S506のメッセージを受信する。しかしながら、Originator MAC AddressおよびCollect IDから、NANデバイス101は、本メッセージが、自身によってS504で送信されたメッセージが転送されたものであることを認識することができる。このため、NANデバイス101は、このメッセージに対しては応答しない。NANデバイス102は、NANデバイスの情報要求に対応していないため、本メッセージに対して応答しない。一方、NANデバイス104は、受信したメッセージ内のCollect IDが以前に受信したメッセージの値と異なるため、この要求に対する応答として拡張Publishメッセージを送信する(S508)。このとき、S508の拡張Publishメッセージには、NANデバイス104の情報が格納される。また、Hop Countは、S506で受信したメッセージに格納された値と同じ値である1が指定される。NANデバイス101は、メッセージ内のHop Countの値によって、本メッセージの送信者が他のNANデバイスを介した1ホップ先のNANデバイスであることを認識することができる。なお、図5の例では、NANデバイス104は、拡張Subscribeメッセージを受信したDW期間521の次のDW期間522において拡張Publishメッセージを送信しているが、これに限られない。例えば、同じDW期間521において拡張Publishメッセージが送信されてもよいし、DW期間522の後のDW期間において拡張Publishメッセージが送信されてもよい。
S506でメッセージの転送を行ったNANデバイス103は、他のNANデバイスの情報が格納された拡張Publishを受信すると、そのNANデバイスの情報を拡張Follow−upメッセージによってNANデバイス101に送信する(S509)。なお、このFollow−upメッセージの構成は、図12と同様であるため、ここでの説明については省略する。ただし、Service Control1201には、Follow−upを指定する値が格納される。
以上により、要求元のNANデバイス101が送信した要求を、その電波到達範囲外のNANデバイス104に対しても到達させることができ、NANデバイス101は、NANクラスタ105内の他のNANデバイスの情報を収集することができる。
本実施形態では、拡張Subscribeメッセージを転送するデバイスをSync Beaconを送信するNANデバイスに限定しつつ、NANデバイス101は、他のNANデバイスの情報を収集することができる。これにより、代理転送するNANデバイスを限定し、Subscribeメッセージが不必要に転送され、無線リソースが不必要に浪費されることを防ぐことができる。また、拡張Subscribeメッセージを転送する機能のないNANデバイスをSync Beaconを送信する役割から事前に外すため、代理転送のための処理は必要ない。これにより、NANデバイスが、NANクラスタ内の他のNANデバイスの情報を収集するまでの時間を短縮することができる。
<実施形態2>
本実施形態では、NANデバイス103は、Master Preferenceを変更せず、予め拡張Subscribeメッセージを転送することを宣言する。この処理は、情報転送制御部303が実行する。実施形態1との違いは、情報転送制御部303の動作のみであるため、まず、この動作について図6を用いて説明する。
図6に、本実施形態に係るNANデバイス103が、拡張Subscribeメッセージを転送するかを決定する処理の流れの例を示す。なお、図6に示すフローチャートは、NANデバイス103の制御部202が記憶部201に記憶されている制御プログラムを実行し、情報の演算および加工並びに各ハードウェアの制御を実行することにより実現されうる。なお、図6のフローチャートに示すステップの一部または全部を例えばAISC等のハードウェアで実現する構成としてもよい。本実施形態では、NANデバイス103は、NANクラスタ105に参加する際に本処理を実行する。NANデバイス103などのNANデバイスが、NANクラスタ105に参加する際に本処理を実行することで、新しいデバイスがNANクラスタに参加する度に、どのデバイスがメッセージの転送を行うのかを確定することができる。この場合、NANデバイスの流動性が低いNANクラスタにおいて、フレームが送信される回数を抑えることができる。なお、図6の処理は、定期的に実行されてもよい。この場合、NANデバイスの流動性の激しいNANクラスタにおいて、送受信するフレームの数を一定数に抑えることができる。S405までの処理は実施形態1と同様であるため、説明を省略する。本実施形態では、NANデバイス103は、NANデバイス102が拡張Subscribeメッセージの転送機能を有しないと判定すると(S405でNO)、情報代理転送の宣言を受信したかを判定する(S601)。情報代理転送の宣言は、NAN規格で規定されたPublishフレームを拡張したメッセージである。情報代理転送の宣言のフレームの構成例について、図13を用いて説明する。
本メッセージは、情報要求に対応しているNANデバイス103によって送信される。本メッセージでは、Service IDに、NANデバイスの情報を収集するサービスを転送することを示すAgent Collectを表す値が格納される。さらに、Service Infoには、転送処理を行うための各種情報が格納される。Master Rankには、転送処理を行うNANデバイスのMaster Rankを示す値が格納され、これにより、転送処理を行うデバイス選定の基準がわかる。転送宣言メッセージを受信したNANデバイスは、メッセージ内のMaster Rankと自身のMaster Rank、及び、そのメッセージのRSSIとから、自身が転送処理を行うべきかを判定することができる。なお、RSSIは、Received Signal Strength Indicatorの頭字語である。転送宣言メッセージは、周囲のデバイスに対して、自身が拡張Subscribeメッセージを転送することを周知するためのメッセージであり、ブロードキャストで送信される。
図6に戻り、NANデバイス103は、転送宣言メッセージを受信していない場合(S601でNO)は、転送宣言を送信する(S604)。一方、NANデバイス103は、転送宣言メッセージを受信した場合(S601でYES)は、そのメッセージのRSSIが閾値より高いかを判断する(S602)。RSSIの閾値は、例えば、−75dBmに設定される。NANデバイス103は、受信したメッセージのRSSIが閾値以下である場合(S602でNO)は、転送宣言を送信する(S604)。一方、NANデバイス103は、受信したメッセージのRSSIが閾値より高い場合(S602でYES)は、転送宣言しているデバイスのMaster Rankが、自身のMaster Rankより高いかを判定する(S603)。そして、NANデバイス103は、転送宣言しているデバイスのMaster Rankが、自身のMaster Rankより高い場合(S603でYES)は何もせず、処理を終了する。一方、NANデバイス103は、転送宣言しているデバイスのMaster Rankが、自身のMaster Rankより低い場合(S603でNO)は、転送宣言を送信する(S604)。NANデバイス103は、転送宣言を送信する処理に入った(S604)場合、又はSync Beaconを送信する役割で動作している(S403)場合、拡張Subscribeメッセージを受信すると、そのメッセージの転送を行う。一方で、NANデバイス103は、それ以外の場合には、メッセージの転送を行わない。
NANデバイス103が転送宣言を送信した後に、NANデバイス103と同様の機能を有するデバイスが、新たにNANクラスタ105に参加した場合について考える。この場合、新しく参加したデバイスは、図5の処理に従って転送宣言を送信する場合がある。この場合、NANデバイス103は、新しく参加したデバイスから転送宣言を受信したことに応じて、S601以降の処理を再度実行しうる。これにより、新たにNANデバイスがNANクラスタ105に参加する度に、拡張Subscribeメッセージを転送するデバイスが更新されうる。
図7は、図5と同様に、NANデバイス101が他のNANデバイスの情報を要求した場合の処理の流れを示すシーケンス図である。以下、無線通信システムにおける処理の流れについて図7を用いて説明する。なお、図5と同様の点については詳細な説明を省略する。
NANデバイス102及び104は、それぞれ、Master及びAnchor Masterとして動作しているため、DW期間720においてSync Beaconを送信している(S701)。そして、実施形態1と同様に、NANデバイス103は、NANデバイス102からのSync Beaconに基づいて情報転送が必要であると判定する(S702)。なお、本実施形態では、実施形態1と異なり、NANクラスタ105内での、Masterの役割で動作するNANデバイスの交代は行われない。すなわち、NANデバイス103は、情報転送が必要であると判定しても、自身がMasterとなるような処理は行わない。このため、次以降のDW期間721においても、NANデバイス102はMasterとして動作し続け、DW期間ごとにSync Beaconを送信する(S703、S705、S709)。
なお、本例では、NANデバイス103は、周囲から転送宣言を受信していないため、DW期間721において転送宣言を送信する(S704)。そして、NANデバイス101が、DW期間722において拡張Subscribeメッセージを送信したとする(S706)。この場合、NANデバイス103は、そのメッセージを受信すると、拡張Publishメッセージで応答し(S707)、また、自身が転送宣言を送信したデバイスであるため、拡張Subscribeメッセージを転送する(S708)。この後の処理は実施形態1と同様である。
以上により、要求元のNANデバイス101が送信した要求を、その電波到達範囲外のNANデバイス104に対しても到達させることができ、NANデバイス101は、NANクラスタ105内の他のNANデバイスの情報を収集することができる。
本実施形態では、NANクラスタ内のMasterを変更せずに、Sync Beaconを送信しないが、転送宣言を送信したNANデバイスが拡張Subscribeメッセージを転送する。これにより、NANデバイス103が電池残量の制限される携帯端末などであっても、消費電力を抑えたまま、必要に応じてNANデバイス101の要求に応えることができる。また、拡張Subscribeメッセージを転送するNANデバイスを予め決めておくことにより、NANデバイス101が、他のNANデバイスの情報を要求してから受信するまでの時間を削減することができる。
<実施形態3>
本実施形態では、NANデバイス103は、事前に転送機能があるかどうかの確認を行わず、拡張Subscribeメッセージの観測結果に応じてそのメッセージを転送するかを決定する。この処理は、情報転送制御部303が実行する。実施形態1との違いは、情報転送制御部303の動作のみであるため、まず、この動作について図8を用いて説明する。
図8に、本実施形態に係るNANデバイス103が、拡張Subscribeメッセージを転送するかを決定する処理の流れの例を示す。なお、図8に示すフローチャートは、NANデバイス103の制御部202が記憶部201に記憶されている制御プログラムを実行し、情報の演算および加工並びに各ハードウェアの制御を実行することにより実現されうる。なお、図8のフローチャートに示すステップの一部または全部を例えばASIC等のハードウェアで実現する構成としてもよい。NANデバイス103は、NANクラスタ105に参加している間、継続して(例えば周期的に)本処理を実行する。NANデバイス103は、DW期間において(S801でYES)、転送が必要な拡張Subscribeメッセージを受信した際(S802及びS803でYES)、まず、一定時間待機する(S804)。このとき、NANデバイス103は、拡張Subscribeメッセージの受信強度に応じて、待機時間を決定しうる。例えば、NANデバイス103は、受信強度≧−75dBmの場合は(待ち時間)[ms]=((受信強度)+235[dBm])×0.1[ms/dBm]、受信強度<−75dBmの場合は(待ち時間)[ms]=16のように決定しうる。
なお、待ち時間は、DW期間以外の区間と重なった場合はその期間を除き、DW期間内での経過時間とする。なお、上に示した式は一例であり、他の式が用いられてもよい。このとき、待ち時間は、拡張Subscribeメッセージの受信強度が高いほど長く、受信強度が低いほど短く設定されうる。これにより、より多くのNANデバイスに拡張Subscribeメッセージを転送できるようになる。他にも、NANデバイス103は、待ち時間の決定基準として、DW期間ごとに受信されるSync Beaconの受信強度を使用してもよい。この場合、待ち時間は、Sync Beaconの受信強度が高いほど短く、受信強度が低いほど長くなるように設定されうる。これにより、Masterに近い位置にあるNANデバイスが拡張Subscribeを転送することにより、もともとメッセージが送信されるはずの範囲における受信機に対して網羅的にメッセージを届かせることができる。また、待ち時間は、DW期間の数を基準に設定されてもよい。
NANデバイス103は、一定時間待機している間に、拡張Subscribeメッセージがすでに転送されているかどうかを判定する(S805)。この判定は、待機期間中に受信した拡張Subscribeメッセージのうち、図11におけるCollect IDが同じで、Hop Countが1増加しているものがあるかどうかによって行われる。NANデバイス103は、拡張Subscribeメッセージが転送されていなかった場合(S805でNO)、拡張Subscribeメッセージを転送する(S808)。これは、拡張Subscribeメッセージの転送が必要な場合で、かつ、その転送がなされていない場合は、周辺の転送を実行すべき立場のNANデバイスが、転送機能を有していないと考えられるからである。すなわち、周辺のMaster又はNon−Master Syncとして動作中のNANデバイスが転送機能を有しているのであれば、NANデバイス103は、そのNANデバイスから転送された拡張Subscribeメッセージが受信できるはずである。しかし、これを受信できなかったのであれば、その周辺のMaster又はNon−Master Syncとして動作中のNANデバイスは転送機能を有していないと考えられる。このため、NANデバイス103は、拡張Subscribeメッセージを転送する。一方、NANデバイス103は、すでに拡張Subscribeメッセージが転送されていると判定した場合(S805でYES)は、その転送された拡張Subscribeメッセージの受信強度を測定し、閾値と比較する(S806)。そして、NANデバイス103は、転送された拡張Subscribeメッセージの受信強度が閾値以下である場合(S806でNO)は、拡張Subscribeメッセージを転送する(S808)。一方で、NANデバイス103は、転送された拡張Subscribeメッセージの受信強度が閾値より高い場合(S806でYES)は、その拡張Subscribeメッセージを転送しない(S807)。
図9は、図5及び図7と同様に、NANデバイス101が他のNANデバイスの情報を要求した場合の処理の流れを示すシーケンス図である。以下、無線通信システムにおける処理の流れについて図9を用いて説明する。なお、図5又は図7と同様の点については詳細な説明を省略する。
NANデバイス102及び104は、それぞれ、Master及びAnchor Masterとして動作しているため、各DW期間においてSync Beaconを送信する(S901、S902、S905、S908)。その後、NANデバイス101が、拡張Subscribeメッセージを送信する(S903)。NANデバイス103は、このメッセージを受信すると、応答として拡張Publishメッセージを送信し(S904)、上述のようにして定められた一定時間だけ待機する。ここで、NANデバイス103は、待機期間中に他のNANデバイスから転送された拡張Subscribeメッセージを受信しなかったものとする。すると、NANデバイス103は、代理転送の必要があると判断し(S906)、拡張Subscribeメッセージを転送する(S907)。この後の処理は実施形態1及び2と同様であるため、説明を省略する。
以上により、要求元のNANデバイス101が送信した要求を、その電波到達範囲外のNANデバイス104に対しても到達させることができ、NANデバイス101は、NANクラスタ105内の他のNANデバイスの情報を収集することができる。
本実施形態では、NANデバイス103は、事前に、周囲のNANデバイスが拡張Subscribeメッセージの転送機能を有しているかを判断する必要がない。このため、NANデバイス103は、流動的に変化するクラスタにおいても、適応的に、メッセージの転送を行うか否かを決定することができる。また、事前に転送処理に係るフレームを送信する必要もないため、無線通信システム全体における電力消費を抑えることができ、また、無線リソースの浪費を防ぐこともできる。
上述の各実施形態では、NANにおける情報要求の転送に関して説明を行った。すなわち、NANデバイス103は、自身がSync Beaconを送信する役割(情報要求の転送を実行する役割)ではない場合に、その役割で動作する他のNANデバイスが情報要求の転送機能を有しているかを判定する。そして、情報要求の転送を実行する役割で動作する他のNANデバイスが、情報要求の転送機能を有しない場合に、NANデバイス103は、そのNANデバイスに代わって、情報要求の転送を実行するようにする。しかしながら、本発明は、その適用範囲がNANにおける情報要求の転送処理に限られるものではない。すなわち、第1の他の装置がネットワーク内の装置に対して情報を要求する際に、そのネットワーク内の通信装置が、第1の他の装置から送信された要求信号を転送可能なシステムにおいて上述の議論を適用することができる。この場合、通信装置は、自身が要求信号の転送を実行する役割でない場合に、周囲に存在する、要求信号の転送を実行する役割の第2の他の装置が、要求信号の転送機能を有しているかを判定する。そして、通信装置は、第2の他の装置が要求信号の転送機能を有しない場合に、自身が要求信号の転送を実行するようにする。また、通信装置は、要求信号の転送を実行する場合には、その要求信号への応答信号についても転送する。なお、初期的には、所定の信号(NANの場合はSync Beacon)を送出する役割の装置が要求信号の転送を実行する役割の装置として動作しうる。すなわち、通信装置は、所定の信号を送出する役割でない場合に、所定の信号を送出する役割の周囲に存在する装置が転送機能を有するか否かに応じて、自身が転送処理を実行するかを決定しうる。なお、信号の送信及び転送は、周期的に到来する期間においてなされてもよいし、そのような期間とは関係なく、任意のタイミングでなされてもよい。ただし、NANにおいては、NANクラスタ内の装置がRF機能をオンとしていることが確実な、周期的に到来するDW期間において、信号の送受信が行われることとなる。このように、上述の説明は、一般的な無線通信システムにおいて適用可能である。
<その他の実施形態>
上述の各実施形態は、任意に組み合わされてもよい。例えば、実施形態1と実施形態3との組み合わせについて検討する。実施形態1ではMaster Preferenceに上限があり、転送機能を有しないNANデバイスがMasterとして動作し続ける可能性がある。そこで、NANデバイス103は、拡張Subscribeメッセージが転送されていないことを検知した場合に、自身がMasterでなくとも、拡張Subscribeを代理で転送しうる。一方で、転送機能を持たないNANデバイスのMaster Preferenceが小さい場合には、NANデバイス103は、自身がMasterとして動作することにより、拡張Subscribeの転送までの時間を削減できる。
また、MasterになることができなかったNANデバイスは、代理で拡張Subscribeメッセージの転送を行う際に、代理転送を予め宣言しておくことにより、周囲のデバイスが転送制御のための処理を行わなくなる。また、これにより、拡張Subscribeの転送が行われるまでの時間を削減し、転送機能を有するNANデバイスがMasterになれない場合であっても、情報要求の転送を行うことができるようになる。
なお、実施形態2では、情報代理転送を行うデバイスを決定するための指標としてNANデバイスのMaster Rankおよび受信強度を使用する例について説明したが、別の指標が使用されてもよい。例えば、各NANデバイスにおける代理転送処理の優先度を別に設けて、その優先度に基づいて、どのデバイスが代理転送を実行するかが決定されてもよい。
各実施形態ではNANデバイスは各々のデバイスの情報のみ送信し、それを転送する例について説明したが、これに限られない。例えば、転送機能を有しないNANデバイスは、拡張Subscribeメッセージに対する応答として拡張Publishメッセージを送信する機能がないと考えられる。このため、転送機能を有するNANデバイスは、自身の情報に加えて、その転送機能を有しないNANデバイスの情報を代理で送信してもよい。例えば、NANデバイスは、自身のデバイスの情報を拡張Publishメッセージで送信した後、転送機能を持たないNANデバイスの情報をFollow−upメッセージで送信しうる。また、この情報は、拡張Publishに含められ、まとめて送信されてもよい。これにより、情報要求したデバイスは、より多くのNANデバイスの情報を取得することが可能となる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。