以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
図1に、本実施形態におけるネットワーク構成例を示す。以下では、Neighbor Awareness Networking(NAN)規格に準拠した無線LANシステムを用いた例について説明する。
NANデバイス102は、NAN規格に則った無線通信装置であり、以下に詳述する処理を行うことが可能である。なお、NANデバイス102は、NANに参加可能で、NANクラスタ内の他のNANデバイスと通信を行うことが可能であれば、どのような装置であってもよい。NANデバイス101、103〜106はNAN規格に則った無線通信装置である。なお、NANデバイス101、103〜106も、以下に詳述するNANデバイス102と同様の構成を有し、NANデバイス102の処理と同様な処理を行うことが可能である。NANデバイス101〜106は、NAN規格に基づいて、周囲の通信装置およびそれらが提供するサービスを発見、提供することができる。図1において、NANデバイス101〜106は、NANクラスタ107に参加している。NANデバイス101、105、106はNon-Master Non-SyncとしてNANクラスタ107に参加しており、NANデバイス102、103、104はMasterとしてNANクラスタ107に参加している。本実施形態では、NANデバイス101は、NANクラスタ107に参加している他のNANデバイスのNANデバイス情報を取得するように動作する。
NANデバイス101の電波到達範囲内にはNANデバイス102のみが存在し、NANデバイス101は、NANデバイス103〜106のNANデバイスとは地理的に遠いために通信できないものとする。同様に、NANデバイス102の電波到達範囲内にはNANデバイス101、103、104のみが存在し、NANデバイス102は、NANデバイス105、106とは通信できないものとする。NANデバイス103の電波到達範囲内にはNANデバイス102、105のみが存在し、NANデバイス103は、NANデバイス101、104、106とは通信できないものとする。NANデバイス104の電波到達範囲内にはNANデバイス102、106のみが存在し、NANデバイス104は、NANデバイス101、103、105とは通信できないものとする。また、NANデバイス105とNANデバイス106は、互いに通信できない位置に位置するものとする。
NANクラスタ107は、NANデバイス101〜106が参加しているネットワークである。本実施形態において、NANクラスタ107に参加しているNANデバイス101〜106は、6chでネットワークを構築している。NANクラスタ107のネットワーク内で、Discovery Window(DW)は、16Time Unit(TU)であり、また、DWの先頭から次のDWの先頭までは、512TUの間隔がある。なお、NANの無線チャネルとDWの構成は、これらに限定されない。各NANデバイスは、DW期間のみお互いにフレームの送受信を行い、それ以外の期間では送受信をしないことによって消費電力の低減を図る。
図2は、NANデバイス102の機能構成を示す図である。無線LAN制御部201は、他の無線LAN装置との間で無線信号の送受信を行うための制御を行う。また、無線LAN制御部201は、IEEE802.11に則った無線LAN制御を行う。NAN制御部202は、NAN規格に則った制御を行う。例えば、NAN制御部202は、NANクラスタ107内の他のNANデバイスと同期をとった上で、上述のSDFを送受信することにより、サービスの発見・検出を行う。待ち時間決定部203は、NAN制御部202を制御して、他のNANデバイスから送信されたNANデバイス情報を含むメッセージの受信のための待ち時間を決定するための制御を行う。待ち時間決定部203の詳細な処理は、図4、図5を用いて後述する。
アプリケーション制御部204は、発見されたサービスを実行するための制御を行う。例えば、NANデバイス102がプリントサービスを発見した場合、アプリケーション制御部204は、プリントのジョブを要求するアプリケーションを実行するための制御を行う。あるいは、NANデバイス102が写真共有サービスを発見した場合には、アプリケーション制御部204は、写真データを交換するアプリケーションを実行するための制御を行う。NANデバイス102は複数のサービスを実行するために、複数のアプリケーション制御部204を有することもできる。操作制御部205は、NANデバイス102に対してユーザにより入力部304(図3)を介して行われた操作を管理し、必要な信号を他の制御部201〜204へ伝達する。
図3に、NANデバイス102のハードウェア構成を示す。記憶部301は、ROM(Read Only Memory)、RAM(Random Access Memory)の両方、もしくは、いずれか一方により構成され、後述する各種動作を行うためのプログラムや、無線通信のための通信パラメータ等の各種情報を記憶する。なお、記憶部301として、ROM、RAM等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、DVDなどの記憶媒体を用いてもよい。
制御部302は、CPU(Central Processing Unit)、または、MPU(Micro Processing Unit)により構成され、記憶部301に記憶されたプログラムを実行することによりNANデバイス101全体を制御する。なお、制御部302は、記憶部301に記憶されたプログラムとOS(Operating System)との協働によりNANデバイス101全体を制御するようにしてもよい。また、制御部302は、機能部303を制御して、撮像や印刷、投影等の所定の処理を実行する。
機能部303は、NANデバイス101が所定の処理を実行するためのハードウェアである。例えば、NANデバイス101がカメラである場合、機能部303は撮像部であり、撮像処理を行う。また、例えば、NANデバイス101がプリンタである場合、機能部303は印刷部であり、印刷処理を行う。また、例えば、NANデバイス101がプロジェクタである場合、機能部303は投影部であり、投影処理を行う。機能部303が処理するデータは、記憶部301に記憶されているデータであってもよいし、後述する通信部306を介して他のNANデバイスと通信したデータであってもよい。
入力部304は、ユーザからの各種操作の受付を行う。出力部305は、ユーザに対して各種出力を行う。ここで、出力部305による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力等の少なくとも1つを含む。なお、タッチパネルのように入力部304と出力部305の両方を1つのモジュールで実現するようにしてもよい。
通信部306は、IEEE802.11シリーズに準拠した無線通信の制御や、IP(Internet Protocol)通信の制御を行う。また、通信部306はアンテナ307を制御して、無線通信のための無線信号の送受信を行う。NANデバイス101は通信部306を介して、画像データや文書データ、映像データ等のコンテンツを他のNANデバイスと通信する。
次に、図4に、本実施形態において、NANデバイス101が、NANクラスタ107内のNANデバイス102〜106のNANデバイス情報を取得するときの一連の処理の流れの例を示すシーケンス図を示す。なお、括弧に示される番号は、NANデバイス102〜106のいずれかのNANデバイス情報であることを示す。
本例では、NANデバイス101が、ユーザの操作に基づいてNANデバイス情報(装置情報)の取得要求(拡張Subscribeメッセージ、詳細は図6を用いて後述する)をNANクラスタ107内でブロードキャストするものとする。当該要求を受信したNANデバイス102は、当該要求に応答するとともに、当該要求をブロードキャストして転送する。これにより、NANデバイス101の電波到達範囲外のNANデバイスも、当該要求を受信することができる。
なお、本実施形態では、MasterおよびNon-Master Syncの役割を有するNANデバイスが、NANデバイスの要求を転送することができるものとする。これらの役割を有するNANデバイスは、定期的にSync Beaconを送信しており、Non-Master Non-Syncの役割を有するNANデバイスは、このSync Beaconを受信できれば、NANクラスタに参加できるからである。すなわち、Non-Master Non-Syncの役割を有するNANデバイスが転送処理を行わないことにより、不要な帯域の占有を防ぐことができる。本実施形態では、図1に示したように、NANクラスタ107において、NANデバイス102、103、104はMasterの役割を有し、NANデバイス101、105、106はNon-Master Non-Syncの役割を有する。そのため、NANデバイス102、103、104がNANデバイスの要求を転送できる。
S401において、まず、NANデバイス101のユーザが、NANデバイス101の入力部304を介して、NANクラスタ107内のNANデバイスのNANデバイス情報取得の処理を開始させる。NANデバイス101は、NANデバイス情報取得の処理を開始しても、DW期間になるまではNANデバイス情報の取得を要求するためのSubscribeメッセージの送信は行わない。
DW期間420になると、NANデバイス101は、Subscribeメッセージをブロードキャストで送信する(S402)。DW期間では、MasterであるNANデバイス102、103、104はSync Beaconを送信するが、ここではSync Beaconの送信に関する説明は省略する。本実施形態におけるSubscribeメッセージは、NAN規格で定義されるSubscribeメッセージを拡張した、NANデバイス情報を要求するための拡張Subscribeメッセージである。
図6に本実施形態における拡張Subscribeメッセージ構成600を示す。図6におけるメッセージ構成600は、NAN規格で定義されるSubscribeメッセージを拡張したもので、Service IDにNANデバイス情報を要求する(すなわち、収集する)サービスに関するSubscribeメッセージであることを示すCollectを表す値が格納される。更に、Service InfoにNANデバイスの情報を要求するための各種情報が格納される。Originator MAC Addressには、NANデバイス情報を要求した要求元のMACアドレスが格納される。すなわち、S402(および、後述するS404、S408、S409)では、Originator MAC Addressに、NANデバイス101のMACアドレスが格納される。
Originator MAC Addressに続くCollect IDには、複数回のデバイス情報の要求が行われた場合に、それぞれのデバイス情報の要求を識別するためのIDが指定される。例えば、NANデバイス101が複数回NANデバイス情報の要求を行った場合には、それぞれの拡張Subscribeメッセージは異なるCollect IDの値が指定される。これにより、拡張Subscribeメッセージを受信したNANデバイスは、該拡張Subscribeメッセージを重複して受信したか否かを検知することができる。拡張Subscribeメッセージを受信したNANデバイスは、以前に同じCollect IDの拡張Subscribeメッセージを受信していた場合には、重複して受信されたと認識し、応答や転送を行わない。一方、NANデバイスは、以前に受信したことがないCollect IDを含む拡張Subscribeメッセージを受信した場合には、Collect IDの値を変更しないで転送を行う。
Collect IDに続くHop Countには、拡張Subscribeメッセージが既に転送された回数を示す値が格納される。したがって、NANデバイス101が送信する拡張SubscribeメッセージのHop Countには、0が格納される。また、NANデバイス101から拡張Subscribeメッセージを受信したNANデバイス102はHop Countの値を1に設定して転送を行う。
Hop Countに続くHop Count Limitには、拡張Subscribeメッセージが転送してもよい回数が指定される。例えば、NANデバイス101がHop Count Limitに0が指定された拡張Subscribeメッセージを送信した場合は、それを受信したNANデバイス102は、当該拡張Subscribeメッセージを転送してはならない。また、NANデバイス101がHop Count Limitに1が指定された拡張Subscribeメッセージを送信した場合には、それを受信したNANデバイス102は、Hop Countを1に指定し、転送する。そして、その転送された拡張Subscribeメッセージを受信したNANデバイスは、Hop Count Limitが上限に達しているため、当該Subscribeメッセージを拡張転送してはならない。
このように、NANデバイス101は、Hop CountおよびHop Count Limitを指定することにより、拡張Subscribeメッセージを送信できる範囲を指定することができる。言い換えると、NANデバイス101は、NANクラスタ107内でNANデバイス情報を取得したいNANデバイスのホップ数を指定することができる。
図4の説明に戻る。S402における拡張Subscribeメッセージでは、Hop Countに0が格納され、Hop Count Limitに2が指定されているものとする。また、Collect IDは以前に指定されたことがない一意の値が指定されているものとする。NANデバイス101から送信された拡張Subscribeメッセージは、NANデバイス101の電波到達範囲内に位置するNANデバイス102により受信される。
NANデバイス102は、拡張Subscribeメッセージを受信すると、S403において、NANデバイス102のNANデバイス情報を格納した拡張Publishメッセージで応答する。本実施形態における拡張Publishメッセージは、NAN規格で定義されるPublishメッセージを拡張した拡張Publishメッセージである。
図7に、本実施形態における拡張Publishのメッセージの構成700を示す。図7におけるメッセージ構成700は、NAN規格で定義されるPublishメッセージを拡張したもので、Service IDにNANデバイスの情報を要求する(すなわち、収集する)サービスに関するPublishメッセージであることを示すCollectを表す値が格納される。更に、Service InfoにNANデバイスの情報を応答するための各種情報が格納される。Originator MAC Addressには、NANデバイス情報を要求した要求元のMACアドレスが格納される。すなわち、本実施形態では、Originator MAC Addressには、NANデバイス101のMACアドレスが指定される。Collect IDには、受信した拡張Subscribeメッセージに含まれるCollect IDが指定される。これにより、転送された本拡張Publishメッセージを受信したNANデバイスは、どのNANデバイス情報の要求に対する応答であるのかを識別することができる。
Collect IDに続くNAN Device Informationには、当該NANデバイスの各種情報が格納される。NAN Device Informationに含まれる最初の情報は、当該NAN Device InformationがどのNANデバイスの情報であるかを識別するためのMACアドレスである。S403では、NAN Device Informationに、NANデバイス102のMACアドレスが格納される。MACアドレスに続くDevice Nameには、どのNANデバイスであるかを識別するための文字列が格納される。S403では、”NAN Device 102”という文字列が格納される。
Device Nameに続くCluster IDには、どのクラスタに所属しているかを識別するためにNAN規格で定義されているCluster IDが指定される。本実施形態では、NANクラスタ107に対応するCluster IDが指定される。Roleには、NANデバイスが有する役割が格納される。すなわち、Roleには、Master、Non-Master Sync、Non-Master Non-Syncのどの役割でNANクラスタに参加しているのかということを識別する情報が格納される。Hop Countには、要求元のNANデバイスからから何ホップ離れたNANデバイスであるかを示す値が格納される。S403では、NANデバイス情報の要求元であるNANデバイス101からホップしていないNANデバイス102が応答しているため、Hop Countに0が格納される。すなわち、NANデバイス102は、受信した拡張Subscribeメッセージにおいて指定されたHop Countを入れて、拡張Publishメッセージとして応答することになる。Hop Countに続くMaster PreferenceおよびRandom Factorには、NAN規格で定義されたMasterまたはNon-Master Syncになりやすさを示す情報が含まれる。この情報を含む拡張Publishメッセージを受信したNANデバイスは、送信元のNANデバイスのMasterのなりやすさを知ることができる。
Master MAC AddressおよびAnchor Master MAC Addressには、それぞれ、NANデバイスがNANクラスタ内で同期をとるためのSync Beaconの送信元のMasterおよびAnchor MasterのNANデバイスのMACアドレスが指定される。なお、Anchor Masterとは、NANクラスタ内での時刻基準を定めるNANデバイスである。S403では、NANデバイス102がMasterおよびAnchor Masterの役割を有するため、Master MAC AddressおよびAnchor Master MAC Addressには、NANデバイス102のMACアドレスが格納される。
Anchor Master MAC Addressに続くAnchor Master PreferenceおよびAnchor Master Random Factorには、Anchor Masterの役割を有するNANデバイスがMasterまたはNon-Master Syncの役割を有するNANデバイスに遷移する可能性を示す情報が含まれる。この情報を含む拡張Publishメッセージを受信したNANデバイスは、Anchor Masterの役割を有するNANデバイスがNANクラスタ内で安定してAnchor Masterでい続けられるか、すなわち安定したNANクラスタであるのかを知ることができる。これらに続く、Hop Count to Anchor Masterには、NANデバイスからAnchor MasterのNANデバイスまでのホップ数が格納される。拡張Publishメッセージは、問い合わせをしたNANデバイスあるいは、問い合わせを転送したNANデバイスに応答を返すメッセージであるのでユニキャストで送信される。
図4の説明に戻る。NANデバイス102は、S402で受信した拡張SubscribeメッセージにおいてHop Count=0、Hop Count Limit=2であることから、更に他のNANデバイスからも情報を取得するために当該拡張Subscribeメッセージの転送をする(S404)。このとき、拡張SubscribeメッセージのOriginator MAC Address、Collect ID、Hop Count Limitは、S402と同じ値が指定される。一方で、Hop Countについては、S404におけるSubscribeメッセージはS402におけるSubscribeメッセージの転送であるため、インクリメントして1が指定される。
S404においてSubscribeメッセージを受信したNANデバイス101は、Originator MAC AddressおよびCollect IDから、NANデバイス101自身がS402で送信した拡張Subscribeメッセージの転送であることが判断できるため、当該受信に対しては応答しない。一方で、NANデバイス103、104は、以前に受信したことがないCollect IDを含む拡張Subscribeメッセージを受信したため、応答として拡張Publishメッセージを送信する(S405、S406)。このとき、S405において送信される拡張Publishメッセージには、NANデバイス103のNANデバイス情報が、S406において送信される拡張Publishメッセージには、NANデバイス104のNANデバイス情報がそれぞれ格納される。また、Hop Countについては、S404におけるSubscribeメッセージと同じく、1が指定される。これによって、NANデバイス101は、NANデバイス103、104が、NANデバイス101からNANデバイス102を介して1ホップ先のNANデバイスであることをわかるようになる。
S404で拡張Subscribeメッセージを転送したNANデバイス102は、他のNANデバイスのNANデバイス情報が格納された拡張Publishメッセージを受信すると、当該NANデバイス情報をNANデバイス101に通知する。しかし、1メッセージにつき1つのみのNANデバイスの情報を送ることは、帯域の利用効率が悪い。そのため、NANデバイス102は、S405で受信したNANデバイス103の情報を即座にNANデバイス101に送信せずに、図5に示すフローチャートに従って、より多くのNANデバイスからのNANデバイスの情報を含むメッセージを受信できないかを待つ。そしてその上で、NANデバイス102は、S405で受信したNANデバイス103のNANデバイス情報をNANデバイス101に送信する。
図5に、NANデバイス102が拡張Publishメッセージあるいは後述する拡張Follow-upメッセージを受信したときに、更なるメッセージの受信を待ち、受信したメッセージに含まれるNANデバイス情報を拡張Follow-upメッセージとして送信する処理のフローチャートを示す。なお、本処理は、NANクラスタ107内に存在する他のNANデバイスによっても行われ得る。
NANデバイス102は、拡張Publishメッセージを受信すると、該拡張Publishメッセージを受信したDW期間では拡張Follow-upメッセージを送信しない。そして、NANデバイス102は、DW期間が終わるまで他のNANデバイスから拡張Publishメッセージあるいは拡張Follow-upメッセージの受信を待ち続ける(S501)。
DW期間が終了すると、NANデバイス102は、当該DW期間中の後半のTUの期間、本実施形態では最後の2TUの期間で、拡張Publishメッセージあるいは拡張Follow-upメッセージを受信したかを判断する(S502)。これは、最後の2TUの期間で拡張Publishメッセージあるいは拡張Follow-upメッセージが受信された場合(S502のYes)、NANデバイス102は次のDW期間まで待つ(S503)。最後の2TUの期間でこれらのメッセージを受信した場合、他のNANデバイスが拡張Publishメッセージあるいは拡張Follow-upメッセージを送信するのに十分な時間が確保することができずに、送信されなかった可能性もあり得る。したがって、NANデバイス102は、次のDW期間で更に他のNANデバイスから拡張Publishメッセージあるいは拡張Follow-upメッセージが受信できる可能性があるため、次のDW期間まで待つ(S503)。そして次のDW期間になると再度、NANデバイス102は、DW期間が終わるまで拡張Publishメッセージあるいは拡張Follow-upメッセージの受信を待つ(S501)。
当該DW期間の最後の2TUの期間で拡張Publishメッセージあるいは拡張Follow-upメッセージが受信されなかった場合(S502のでNo)、処理はS504へ進む。S504 において、NANデバイス102は、当該DW期間で8つ以上のNANデバイスから拡張Publishメッセージあるいは拡張Follow-upメッセージを受信したかを判断する。これは、NANデバイス102が多くのNANデバイス情報を受信する場合は、NANクラスタ内に多くのNANデバイスが存在し、無線帯域が混雑している可能性が高く、そのため、拡張Publishメッセージあるいは拡張Follow-upメッセージを当該DW期間で送れなかったNANデバイスがいる可能性があるためである。そこで、NANデバイス102は、8つ以上の拡張Publishメッセージあるいは拡張Follow-upメッセージを受信した場合には(S504のYes)、S502でYesであった場合と同様に、次のDW期間でも拡張Publishあるいは拡張Follow-upメッセージを待つ(S503)。
S504で8つ以上の拡張Publishメッセージあるいは拡張Follow-upメッセージを受信しなかった場合は(S504のNo)、処理はS505へ進む。S505において、NANデバイス102は、拡張Publishメッセージあるいは拡張Follow-upメッセージの受信を十分に待ったと判断して、未送信のNANデバイス情報を一度に次のDW期間の開始時に拡張Follow-upメッセージとして送信することを決定する(S505)。
このフローチャートにより、NANデバイス102は、一つのNANデバイスからNANデバイス情報を受信したとしても、即座にその情報をNANデバイス101に返さない。NANデバイス情報を受信したタイミングおよびNANデバイス情報を受信した数に応じて、NANデバイス102は、待ち時間を決定することができる。それにより、NANクラスタ107内の複数のNANデバイスがNANデバイス情報を送ることによる帯域の占有を軽減することができる。なお、S501では一回分のDW期間で受信待ちをしていたが、一回分のDW期間に限定されず、二回分またはそれ以上のDW期間で受信待ちをしてもよい。また、図5において、S502では、DW期間の最後の2TUでデバイス情報が受信されたかが判断されたが、このTU数は2に限定されない。また、S504では、DW期間に8個以上のNANデバイス情報が受信されたかが判断されたが、このNANデバイス情報の数は8に限定されない。
図4の説明に戻る。ここで、NANデバイス102は、S406においてNANデバイス104から送信された拡張Publishメッセージを、DW期間420の最後の1TU内で受信したものとして以降の説明をする。このとき、S502でYesに該当するため、NANデバイス102は、次のDW期間であるDW期間421においても拡張Publishメッセージあるいは拡張Follow-upメッセージを待ち続けつ。したがって、NANデバイス102は、NANデバイス101に対して、NANデバイス103とNANデバイス104のNANデバイス情報を送信しない。また、NANデバイス103とNANデバイス104は、Masterの役割を有するため、S404で受信した拡張Subscribeメッセージを転送する必要が有るが、DW期間420の終了してしまったために、DW期間420で転送できなかったものとして以降の説明をする。
DW期間421になると、DW期間420で、NANデバイス103とNANデバイス104は、拡張Subscribeメッセージを送信する(S408、S409)。S408とS409において送信される拡張Subscribeメッセージでは、Originator MAC Address、Collect ID、Hop Count Limitに、S402とS404において送信された拡張Subscribeメッセージに含まれる値と同じ値が指定される。一方で、Hop Countについては、S408と409において送信される拡張Subscribeメッセージは、S404で送信された拡張Subscribeメッセージの転送メッセージであるため、インクリメントされた値である2が指定される。ここで、Hop Count = Hop Count Limit = 2となるため、S408とS409において送信された拡張Subscribeメッセージを受信した、Masterの役割を有するNANデバイス(すなわち、NANデバイス102)は、当該拡張Subscribeメッセージを転送しない。
NANデバイス102は、S408とS409で送信された拡張Subscribeメッセージを受信すると、Originator MAC AddressおよびCollect IDに基づいて、S404でNANデバイス102が送信した拡張Subscribeメッセージの転送であることを判断する。したがって、NANデバイス102は、受信した拡張Subscribeメッセージに対して応答しない。すなわち、NANデバイス102は、拡張Publishメッセージを送信しない。
一方で、NANデバイス105は、NANデバイス103から拡張Subscribeメッセージを受信すると、その応答として自身のNANデバイス情報を含めた拡張Publishメッセージを送信する(S410)。同様に、NANデバイス106は、NANデバイス104から拡張Subscribeを受信すると、その応答として自身のNANデバイス情報を含めた拡張Publishメッセージを送信する(S411)。S410とS411において送信される拡張Publishメッセージに含まれるNAN Device Informationには、それぞれNANデバイス105とNANデバイス106のNANデバイス情報が含まれる。また、Hop Countについては、S408とS409において送信された拡張Subscribeメッセージで指定されたHop Countと同じ値である2が指定する。これにより、NANデバイス101からのホップ数を格納されたこととなる。
S410とS411における拡張Publishメッセージの送信は、DW期間421の最初の5TUの間に行われたものとする。したがって、NANデバイス103とNANデバイス104はそれぞれ、図5のフローチャートにより(S502でNo、S504でNo)、次のDW期間であるDW期間422で、それぞれS410とS411で受信したNANデバイス情報を拡張Follow-upのメッセージとしてNANデバイス102に送信することを決定する。
同様に、NANデバイス102は、DW期間421でNANデバイス情報を受信していない。したがって、NANデバイス102は、図5のフローチャートにより(S502でNo、S504でNo)、次のDW期間であるDW期間422で、S405とS406で受信したNANデバイス情報を拡張Follow-upのメッセージとしてNANデバイス101に送信することを決定する。
DW期間422になると、NANデバイス102は、拡張Follow-upメッセージで、NANデバイス103とNANデバイス104のNANデバイス情報を、NANデバイス101に送信する(S412)。拡張Follow-upメッセージのフレーム構成は図8に示す。また、同様にNANデバイス103はNANデバイス105の情報を、NANデバイス104はNANデバイス106の情報を拡張Follow-upメッセージで送信する(S413、S414)。
図8に、拡張Publishメッセージで受信した他のNANデバイスの情報を要求元に伝えるための、本実施形態における拡張Follow-upメッセージ構成800を示す。本実施形態では、拡張Follow-upメッセージは、拡張Publishメッセージを受信したNANデバイス102、103、104による送信される。図8におけるメッセージ構成800は、NAN規格で定義されるFollow-upメッセージを拡張したもので、Service IDにNANデバイスの情報を要求する(すなわち、収集する)サービスに関するFollow-upであることを示すCollectを表す値が格納される。更に、Service Infoに他のNANデバイス情報を伝達するための各種情報が格納される。Originator MAC Addressには、NANデバイスの情報を要求した要求元のMACアドレスが格納される。すなわち、本実施形態では、Originator MAC Addressには、NANデバイス101のMACアドレスが指定される。Collect IDには、受信した拡張Publishメッセージに含まれるCollect IDが指定される。これにより、本拡張Follow-upを受信したNANデバイスは、どのNANデバイスに対するNANデバイス情報要求に対する応答であるのかを識別することができる。
Collect IDに続くNumber of NAN Device Informationには、本拡張Follow-upメッセージに含まれる他のNANデバイスの数を示す値が格納される。S412で送信される拡張Follow-upメッセージには、NANデバイス103とNANデバイス104のNANデバイス情報が格納されるので、Number of NAN Device Information には2が格納される。一方で、S413で送信される拡張Follow-upメッセージには、NANデバイス105のNANデバイス情報が格納されるので、Number of NAN Device Information には1が格納される。同様に、S414で送信される拡張Follow-upメッセージには、NANデバイス106のNANデバイス情報が格納されるので、Number of NAN Device Information には1が格納される。
Number of NAN Device Informationに続く、NAN Device Informationには、NANデバイスの各種情報が格納される。NAN Device Informationの各種値は、図7を用いて説明した拡張Publishメッセージと同様であるため、説明を省略する。ただし、拡張PublishメッセージにおけるNAN Device Informationと異なり、Follow-upメッセージにおけるNAN Device Informationは、複数の他のNANデバイスのNANデバイス情報を含めることができる。その数は、Number of NAN Device Informationで指定された値と同じである。S412で送信される拡張Follow-upメッセージにおけるNAN Device Informationは2となり、それぞれS405とS406で受信した拡張PublishメッセージにおけるNAN Device Informationと同じである。S413とS414それぞれで送信される拡張Follow-upメッセージにおけるNAN Device Informationは1つとなり、それぞれS410とS411で受信した拡張PublishメッセージにおけるNAN Device Informationと同じである。
図4の説明に戻る。S413とS414において拡張Follow-upメッセージを受信すると、NANデバイス102は、再度、図5のフローチャートにより、NANデバイス情報を送信するタイミングを決定する。ここで、NANデバイス102は、S413とS414で送信された拡張Follow-upメッセージを、DW期間422の最初の5TU内で受信したとして、以降の説明をする。このとき、NANデバイス102は、図5のフローチャートにより(S502でNo、S504でNo)、次のDW期間で拡張Follow-upメッセージとしてNANデバイス105、106のNANデバイス情報を送信すると決定する。
その後DW期間423になると、NANデバイス102は、NAN Device InformationにNANデバイス105とNANデバイス106のNANデバイス情報を含めた、拡張Follow-upメッセージを、NANデバイス101に送信する(S415)。以上により、NANデバイス101は、NANクラスタ107に参加している他のNANデバイスの情報を収集することできる。
本実施形態では、NANデバイス102は、S405、S406、S413、S414で受信したNANデバイス情報を含むメッセージを即座に転送するのではなく、S412やS415の処理のように、一度に複数のNANデバイス情報をまとめて送信する。これにより、無線帯域の占有を低減している。また、本実施形態では、拡張Publishメッセージあるいは拡張Follow-upメッセージを受信したタイミングに応じて、他のNANデバイスからのNANデバイス情報を送信するタイミングが決定される。これにより、周囲のNANデバイスの数や無線帯域に応じて柔軟に応答をすることできる。なお、本実施形態では、NANクラスタ0107に存在するすべてのNANデバイスのNANデバイスの情報はまとめて送信されず、S403、S412、S415と3回に分けて送信されている。すなわち、NANデバイス101へのNANデバイス情報の送信が複数回になってしまっている分、無線の帯域は占有してしまうが、NANデバイス101が途中経過の情報を早く知ることができるという効果がある。
<実施形態2>
本実施形態では、Hop CountおよびHop Count Limitに基づいて、NANデバイス情報の受信の待ち時間を決定する点が、実施形態1とは異なる。実施形態1と同様である点については説明を省略する。本実施形態では、待ち時間決定部203の処理が実施形態1と異なる。図10に本実施形態におけるNANデバイス情報受信待ち時間決定処理を示す。
図10に、本実施形態における、NANデバイス102によるNANデバイス情報の待ち時間決定処理のフローチャートを示す。本処理は、拡張Subscribeメッセージを受信したNANデバイスにより実行され得る。なお、本処理は、NANクラスタ107内に存在する他のNANデバイスによっても行われ得る。
NANデバイス102は、拡張Subscribeメッセージを受信すると、まず、受信した拡張Subscribeメッセージに含まれるHop Count Limit(すなわち、NANデバイス情報の要求に対応する要求を送信(中継)できる回数に関する回数情報)およびHop Countを用いて、(Hop Count Limit - Hop Count - 1)×2 = Nを計算する。NANデバイス102は、その結果であるN回分のDW期間だけ他のNANデバイスからの拡張Publishメッセージおよび拡張Follow-upメッセージを待つ(S1001)。
S1001の処理について説明する。(Hop Count Limit - Hop Count)を計算することにより、まだ転送する必要がある残りのホップ数(中継できるNANデバイスの数)が求められる。ここで、DW期間920で送信された拡張Subscribeメッセージが転送されるために次のDW期間が必要となり、更にその応答を受信するのに別のDW期間が必要になるという場合を想定する。この場合、残りのホップ数である (Hop Count Limit - Hop Count - 1) に対して、拡張Subscribeメッセージの転送とその応答の受信のためのDW期間を想定して2倍することで、受信にかかるDW期間数が決定される。Hop Count Limit と Hop Count が同じであった場合には負の値となるが、この場合は、そもそも転送処理は行われない。
NANデバイス102はS1001の処理に応じてNANデバイス情報の受信を待ち、他のNANデバイス(NANデバイス103〜106の少なくともいずれか)のNANデバイス情報を受信できたかを判断する(S1002)。他のNANデバイスのNANデバイス情報が受信された場合は(S1002のYes)、NANデバイス102は、該他のNANデバイス情報を拡張Follow-upメッセージに含めて送信する(S1003)。一方、他のNANデバイスのNANデバイス情報が受信できなかった場合は(S1002のNo)、NANデバイス102は他のNANデバイス情報の受信待ちを終了し、拡張Follow-upメッセージを送信しない(S1004)。
図9に、本実施形態において、NANデバイス101が、NANクラスタ107内のNANデバイス102〜106のNANデバイス情報を取得するときの一連の処理の流れの例を示すシーケンス図を示す。図4と同様である点については、詳細な説明を省略する。
S901〜S903の処理は、図4と同様であるので詳細な説明を省略する。ただし、NANデバイス102は、S902で拡張Subscribeメッセージを受信すると、図10のフローチャートを実施して、NANデバイス情報を取得する待ち時間を決定する。ここで、S902で受信した拡張Subscribeメッセージには、実施形態1と同様に、Hop Count=0、Hop Count Limit=2と指定されたものとして以降の説明をする。この場合、S1002において、(Hop Count Limit - Hop Count -1 ) × 2 = 2となり、2回のDW期間、NANデバイス102は、他のNANデバイスからのNANデバイス情報を待ち、その間は転送処理を行わない。すなわち、NANデバイス102は、S904で拡張Subscribeメッセージを送信したDW期間920から、次のDW期間であるDW期間921およびDW期間922で拡張Publishメッセージおよび拡張Follow-upメッセージを待つ。
S905〜S908の処理は、図4と同様であるので詳細な説明を省略する。ただし、NANデバイス103およびNANデバイス104は、拡張Subscribeメッセージを送信した後に、拡張Publishメッセージおよび拡張Follow-upメッセージの受信のための待ち時間を決定するために、図10のフローチャートを実行する。ここでは、Hop Count = 1、Hop Count Limit = 2なので、NANデバイス103およびNANデバイス104は、0回のDW期間、他のNANデバイスからの情報を待つようにする。0回のDW期間の場合は、NANデバイス103およびNANデバイス104は、現在のDW期間921の期間だけ拡張Publishメッセージおよび拡張Follow-upメッセージを待ち、次のDW期間922において受信したNANデバイス情報をまとめて送信するように制御する(S1003)。
S909およびS910は実施形態1と同様であるので説明を省略する。NANデバイス103とNANデバイス104は、DW期間922になると、図10のS1001、S1002、S1003のフローに従って、DW期間の開始時に拡張Follow-upメッセージを送信する(S911、S912)。なお、このときに拡張Follow-upメッセージに格納される情報は、実施形態1と同様である。
NANデバイス102は、DW期間923になると、S1001、S1002、S1003のフローに従って、DW期間の開始時に拡張Follow-upメッセージを送信する(S913)。当該拡張Follow-upメッセージには、これまでにNANデバイス102が受信したすべての他のNANデバイス情報が含まれる。したがって、NANデバイス102は、S905、S906、S911、S912で受信したメッセージに含まれるNANデバイス103、104、105、106のNANデバイス情報を拡張Follow-upメッセージに格納して送信する。
このように、本実施形態によれば、NANデバイス102は、受信した他のNANデバイス情報をまとめて送信することによって、無線の帯域使用の占有を低減することができる。実施形態1とは異なり、NANデバイス102は、Hop Count および Hop Count Limit に基づいて、NANデバイス情報の受信の待ち時間を決定する。そのため、実施形態1よりも一度に多くのNANデバイス情報が送信されやすくなるため、より帯域の占有を防ぎやすくなる。一方で、実施形態2では、Hop Count Limitに大きな値が指定されたにも関わらず、そのホップ数分に相当するNANデバイスがNANクラスタ内に存在しなかった場合には、不必要にNANデバイス情報を獲得するまでに時間がかかってしまう。その点においては実施形態1では、Hop Count LimitによらずにNANデバイス情報の受信の待ち時間が決定されるため、NANデバイス情報の要求を行ったNANデバイスは、より早くNANデバイス情報を受信しやすくなる。
<変形例>
実施形態1と実施形態2を組み合わせてもよい。実施形態2ではHop Count Limitが大きい値が指定された場合に、不必要に他のNANデバイスの情報を取得するのに時間がかかるという問題がある。そのため、一定以上の大きさのHop Count Limitあるいは、(Hop Count Limit - Hop Count)が指定された場合には、NANデバイス102は、図4のフローチャートにしたがって待ち時間を決定する。一方で、一定未満の大きさのHop Count Limitあるいは、(Hop Count Limit - Hop Count)が指定された場合には、NANデバイス102は、図10のフローチャートにしたがって待ち時間を決定するようにしてもよい。このようにすることによって、Hop Count Limitが大きい場合に不必要にNANデバイスの情報取得に時間がかかる可能性を減らすとともに、Hop Count Limitが小さい場合には複数のNANデバイス情報をまとめやすくなる。
また、図5、図10では、拡張Follow-upメッセージは、次のDW期間の最初に送信するよう制御されたが、拡張Follow-upメッセージの送信タイミングはこれに限定されない。例えば、拡張Follow-upメッセージをその前のDW期間の最後に送信するように制御されることにより、NANデバイス情報を要求するNANデバイスは、より早くNANデバイス情報を収集することができる。
また、各実施形態において、NANデバイスは、DW期間だけでなく、それ以外の期間で拡張Publishメッセージや拡張Follow-upメッセージ受信できるように制御してもよい。その場合、NAN規格で規定されるFurther NAN Service Discovery Attributeを拡張Subscribeメッセージに含めることで、NANデバイスは、DW期間以外でフレームを送受信できる期間を通知するができる。これを受信したNANデバイスは、Further NAN Service Discovery Attributeで指定されたDW期間以外の期間に、拡張Publishメッセージまたは拡張Follow-upメッセージを送信することができる。
また、各実施形態において、NANデバイスは、拡張Subscribeメッセージを受信すると、自身のNANデバイス情報を拡張Publishメッセージに含めて送信した後に、拡張Subscribeメッセージを転送している。しかし、逆に、NANデバイスは、先に拡張Subscribeメッセージを転送した後に、自身のNANデバイス情報を拡張Publishメッセージで送信してもよい。あるいは、転送した拡張Subscribeメッセージの応答が他のNANデバイスから返ってきてから、NANデバイスは、拡張Follow-upメッセージとして、受信した拡張Subscribeメッセージに対する応答を送信するようにしてもよい。すなわち、図9の例では、NANデバイス102は、S903で応答するのではなく、S913で拡張Follow-upメッセージに自身のNANデバイス情報を含めてよい。また、このとき、NANデバイス102は、拡張Follow-upメッセージではなく、拡張PublishメッセージとしてNANデバイス102〜106のNANデバイス情報を含めることができる。
また、図7、8において、拡張Publishメッセージおよび拡張Follow-upメッセージに含まれるNAN Device Informationは、Service Infoに格納されるとした。しかし、るNAN Device Informationは、フレームの他のフィールドに含まれてもよい。Service Infoは、NAN規格において256bytesまでのデータが格納できるので、それを超えるサイズのNAN Device Informationである場合にはService Infoではなく、他のフィールドを使って送信される必要がある。例えば、NAN規格にある各ベンダで自由に指定できる値であるVendor Specific Attributeを用いてもよい。また、更に発展させて、NANデバイスは、複数のNANデバイスから、合計で256bytes以上のNAN Device Informationを受信した場合には、その時点で256bytes以内に収まる範囲で拡張Follow-upメッセージを送信してもよい。
また、実施形態2では、実施形態1と異なり、NANデバイスは、待ち時間の最後の方に拡張Follow-upメッセージまたはPublishメッセージを受信したとしても、固定の時間だけ他のNANデバイス情報の受信を待っている。しかし、例えば、S502やS504に該当する場合には、NANデバイスは、更に次のDW期間を待つようにしても良い。
このように、以上の実施形態によれば、NANデバイスは、参加しているNANクラスタに存在する他のNANデバイスのNANデバイス情報を効率的に取得できるとともに、無線帯域の占有の低減が実現される。したがって、NANデバイスは、該NANデバイスの電波到達範囲内に存在しないNANデバイスのNANデバイス情報を効率的に取得し、サービスを発見することが可能となる。また、NANデバイスが、該NANデバイスにとって、ホップ数が多いNANデバイスがNANクラスタ内を移動した場合でも継続的にサービスを発見できる可能性が高くなる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。