<実施形態1>
以下、本実施形態に係る通信装置について、図面を参照しながら詳細に説明する。以下では、IEEE802.11シリーズに準拠した無線LANシステムを用いた例について説明するが、通信形態は必ずしもIEEE802.11準拠の無線LANには限らない。
本実施形態に好適な事例におけるハードウェア構成について説明する。
図1は本発明を適用できる実施形態に係る、後述の各装置の構成の一例を表すブロック図である。101は装置全体を示す。102は、記憶部103に記憶される制御プログラムを実行することにより装置全体を制御する制御部である。制御部102は、他の装置との間で通信パラメータの設定制御も行う。103は制御部102が実行する制御プログラムと、通信パラメータ等の各種情報を記憶する記憶部である。後述する各種動作は、記憶部103に記憶された制御プログラムを制御部102が実行することにより行われる。
104はIEEE802.11シリーズに準拠した無線LAN通信を行うための無線部である。105は各種表示を行う表示部でありLCDやLEDのように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能な機能を有する。
106は通信パラメータ設定処理を開始するトリガを与える設定ボタンである。設定ボタン106が操作されると、通信パラメータの自動設定処理が開始される。制御部102は、ユーザによる設定ボタン106の操作を検出すると、後述する処理を実施する。
107はアンテナ制御部、そして108はアンテナである。109は、ユーザが各種入力を行うための入力部である。
図2は、後述の通信パラメータの自動設定動作を実行するソフトウェア機能ブロックの構成の一例を表すブロック図である。
201は装置全体を示している。202は通信パラメータの自動設定機能ブロックである。本実施形態では、ネットワーク識別子としてのSSID、暗号方式、暗号鍵、認証方式、認証鍵等の無線LAN通信を行うために必要な通信パラメータの自動設定を行う。なお、通信パラメータの自動設定を、以下、自動設定と簡略化する。
203は各種通信にかかわるパケットを受信するパケット受信部である。ビーコン(報知信号)の受信は、パケット受信部203によって行われる。204は各種通信にかかわるパケットを送信するパケット送信部である。ビーコンの送信は、パケット送信部204によって行われる。なおビーコンには、送信元の機器の各種情報が付加される。
205はプローブリクエストなどの機器検索信号の送信を制御する検索信号送信部である。なお、プローブリクエストは、所望のネットワークを検索するためのネットワーク検索信号ということもできる。プローブリクエストの送信は、検索信号送信部205により行われる。また、受信したプローブリクエストに対する応答信号であるプローブレスポンスの送信も検索信号送信部205により行われる。本実施形態では、ユーザが設定ボタン106を操作し、自動設定処理を開始した場合は、ビーコン、プローブリクエスト及びプローブレスポンスに自動設定中(自動設定動作中)であることを示す情報(IE:Information Element)を付加して送信する。
206は他の装置からのプローブリクエストなどの機器検索信号の受信を制御する検索信号受信部である。プローブリクエストの受信は、検索信号受信部206により行われる。また、プローブレスポンスの受信も検索信号受信部206により行われる。なお機器検索信号、及びその応答信号には、送信元の機器の各種情報が付加される。
207は、ネットワーク接続を制御するネットワーク制御部である。無線LANアドホックネットワークへの接続処理などは、ネットワーク制御部207により実施される。
自動設定機能ブロック202において、208は相手機器より通信パラメータを受信(受理)する通信パラメータ受信部であり、209は相手機器に通信パラメータを提供する通信パラメータ提供部である。210は、自動設定における各種プロトコルを制御する自動設定制御部である。後述の自動設定処理は、自動設定制御部210の制御に基づいて、通信パラメータ受信部208、通信パラメータ提供部209により行われる。
また、自動設定処理を開始してからの経過時間が当該設定処理の制限時間を越えたか否かの判定も、自動設定制御部210で行われる。また、当該制限時間を超えたと判定した場合には、自動設定制御部210の制御により、自動設定処理を中止する。
211は、通信パラメータを提供する装置(以下、提供装置)を検出する提供元検出部である。提供元検出部211は、検索信号送信部205および検索信号受信部206による検索信号の送信と応答により、提供装置の検出を行う。また、提供元検出部211は、パケット受信部203によるビーコンの受信により、提供装置の検出を行うこともできる。そして、通信パラメータの提供を受ける場合は、検出した提供装置に通信パラメータの提供を要求し、通信パラメータの提供を受ける。なお、以降の説明では通信パラメータの提供を受ける装置を受信装置と呼ぶことにする。
212は、通信パラメータ記憶部であり、提供装置から提供を受けた通信パラメータ、もしくは受信装置へ提供した通信パラメータを記憶する。なお、通信パラメータ記憶部212は、記憶部103に相当する。本実施形態では、他の装置から通信パラメータの提供を受けた際に、該通信パラメータを設定済パラメータとして記憶部103に記憶する。また、通信パラメータを他の装置へ提供した際に、該通信パラメータを設定済パラメータとして記憶部212に記憶する。記憶部103に記憶した設定済パラメータは、該設定済パラメータを用いて構成したネットワークでの通信が終了した際に破棄されるようにしてもよい。また、記憶部103に記憶してから一定時間経過後、装置の電源オフ時、等に破棄されるようにしてもよい。
213は、ビーコン制御部であり、ビーコン(報知信号)の送信タイミングを制御する。214は、ビーコン生成部であり、ビーコンを生成する。生成したビーコンは、パケット送信部204によりネットワークへ送信される。
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上記機能ブロックは一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分かれてもよい。
図3は、通信装置A32(以下、装置A)、通信装置B33(以下、装置B)、通信装置C34(以下、装置C)およびアドホックネットワークA31(以下、ネットワークA)を示した図である。これら全ての装置は、先に説明した図1、図2の構成を有している。
装置Aと装置Bは、この二装置間において自動設定処理を実施済みであり、装置AとBとの間で共有された通信パラメータAを用いてネットワークAを構築しているとする。なお、装置AとBの間で行われた自動設定処理では、装置Aが提供装置として動作し、装置Bが受信装置として動作したものとする。
本実施の形態においては、装置CをネットワークAへ参加させるため、ネットワークAに参加している装置Aと、装置Cとの間で自動設定処理を行う場合について説明する。
ここで、装置Aが提供装置となり、装置Cが受信装置となれば、ネットワークAの通信パラメータAを装置Aから装置Cへ提供できる。その結果、装置CはネットワークAへ参加し、装置A及びBとの間でデータ通信が可能となる。
図4は、装置Aと装置Cにおいて設定ボタン106が押下され、装置Aと装置Cの間で自動設定処理を実施した場合の処理シーケンスの一例を示した図である。
装置Aは、装置Bとの間で行われた自動設定処理により設定された通信パラメータAを用いて、既に装置Bとの間でネットワークAを構築済みである(F401)。
装置Aと装置Cにおいて設定ボタン106が押されると、装置CはユニークなネットワークCを作成する(F403)。装置AはネットワークAを構築済みであるため、新たなネットワークの作成は行わない。
ここで、ネットワークAとCとは、ネットワーク識別子であるBSSID(BasicService Set Identifier))により区別される。BSSIDとはネットワークを作成する装置が生成するランダムな値のネットワーク識別子である。なお、SSIDは機器に予め設定しておくことも、ユーザが任意の値を設定することも可能なネットワーク識別子であり、BSSIDとは異なるものである。また、上記説明で明らかなように、BSSIDは自動設定処理によって提供装置から受信装置へ提供される通信パラメータではない。
つぎに、装置Aと装置Cは、その動作役割(以下、役割)として提供装置と受信装置のいずれで動作するかの決定処理を開始する。まず、装置Aと装置Cは共に自装置の役割を提供装置候補に設定し(F402、F405)、提供装置の検索処理の制限時間であるタイマT1を開始する(F404,F406)。ここで、提供装置候補とは、提供装置として動作することは可能であるが、未だ提供装置にも受信装置にも決定されていない状態のことをいう。
つぎに、装置Aおよび装置Cは、自動設定機能を有している、あるいは自動設定処理中であることを通知する情報要素(Information Element)を含むビーコン(報知信号)を送信する(F407、F408)。ここで、ビーコンに現時点の役割である「提供装置候補」を示す情報要素を含めてもよい。
このビーコンには、ネットワークAとネットワークCとで異なるBSSIDが含まれるため、該ビーコンを受信した装置は、いずれのネットワークに属する装置から送信されたビーコンであるかを認識できる。
次に、装置Aは提供装置を検索するため、検索信号を送信する(F409)。検索信号にもビーコン同様に、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素が含まれている。
装置Cは装置Aから送信された検索信号を受信したら、検索応答信号を装置Aに対して送信する(F410)。該検索応答信号にも、ビーコンや検索信号と同様に、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素が含まれている。
ここで、装置Aにおいて提供装置を検出できないままタイマT1が満了すると(F411)、装置Aは自装置の役割を提供装置に設定する(F412)。
今度は、装置Cが提供装置を検出するため検索信号を送信する(F413)。装置Cから送信される検索信号にも、自動設定処理機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素が含まれている。
装置Aは装置Cから送信された検索信号を受信したら、検索応答信号を装置Cに対して送信する(F414)。該検索応答信号には、ビーコンや検索信号Aと同様に、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素が含まれる。この時点では、装置Aは自装置の役割を提供装置に決定しているため、装置Aは検索応答信号に「提供装置」を示す情報要素を含めて送信する。ここで、役割としての「提供装置」を示す情報要素に加えて、通信パラメータを提供可能な状態であることを示す情報要素を付加してもよい。
装置Cは装置Aから送信された検索応答信号を受信すると、装置Aの役割が提供装置であり、通信パラメータを提供可能な状態であることを確認する。そこで、装置Cは、タイマT1を停止して(F415)、自装置の役割を受信装置に設定し(F416)、ネットワークAへ参加する(F417)。
これによって、装置Aと装置Cの間では、通信パラメータの自動設定プロトコル処理で交わされる通信メッセージ(プロトコルメッセージ)を相互に送受可能となる。なお、F417で装置CがネットワークAに参加した時点では、暗号鍵、認証鍵等の通信パラメータが装置Cに設定されていないため、装置Cは装置Aとの間で暗号、認証を用いた通常のデータ通信を行うことはできない。
ここで、自動設定プロトコル処理とは、提供装置から受信装置へ通信パラメータを提供するために予め定められた各種通信メッセージの送受信を行う処理のことをいう。なお、WPSでは上記プロトコル処理のことをRegistrationプロトコルと呼んでいる(非特許文献1参照)。本実施形態では説明を簡単にするため、以下の1〜3の手順を自動設定プロトコル処理として説明する。
1.受信装置から提供装置に対して通信パラメータ設定起動を示すメッセージ(通信パラメータの提供を要求するメッセージ)を送信する。
2.該メッセージに応じて提供装置が受信装置に対して通信パラメータの提供処理を行う。
3.通信パラメータ提供が完了したら提供装置から受信装置へ通信パラメータ設定完了のメッセージを送信する。
ここで、上記説明では検索信号と検索応答信号を用いるアクティブスキャンによって提供装置の検索を行ったが、ビーコンの受信を待機することにより提供装置を検索するパッシブスキャンを用いてもよい。また、アクティブスキャンとパッシブスキャンを組み合わせて提供装置を検索するようにしてもよい。
装置CはネットワークAに参加すると、装置Aに通信パラメータ設定起動を示すメッセージを送信する(F418)。そして、該メッセージに応じて、装置Aから装置Cに対する通信パラメータAの提供処理が行われ(F419)、提供処理が完了すると、装置Aは装置Cに対して通信パラメータ設定完了のメッセージを送信する(F420)。これにより通信パラメータ設定処理が完了し、装置Aと装置Cとの間で通信パラメータAが共有される。
そして、装置Aと装置Cでは、共有した通信パラメータAを用いて通信接続処理を行う(F421)。なお、通信パラメータ設定処理が完了すると自動的に通信接続処理を開始することで、ユーザに操作を強いることなく装置Aと装置Cが通信可能となる。
このように、役割決定シーケンスにより装置Aが提供装置になれば通信パラメータAが装置Cへ提供される。しかしながら、装置Aと装置Cの設定ボタン106が押されるタイミングによっては、装置Cが提供装置になり、装置Aが受信装置になる場合も考えられる。この場合、通信パラメータAとは異なる通信パラメータCが装置Cから装置Aへ提供される。そうすると、装置Aと装置Cは通信パラメータCを用いて新たにネットワークを構築することは可能となるが、ネットワークAでの装置Bとの通信はできなくなってしまう。そこで、本実施形態では、このような状況が生じるのを防止するための処理について説明する。
図5は、装置Aと装置Cにおいて設定ボタン106が押下され、装置Aと装置Cの間で自動設定処理を実施した場合の処理シーケンスの一例を示した図である。
装置Aは、装置Bとの間で行われた自動設定処理により設定された通信パラメータAを用いて、既に装置Bとの間でネットワークAを構築済みである(F501)。
ここで装置Cにおいて設定ボタン106が押されると、装置CはユニークなネットワークCを作成する(F502)。
つぎに、装置Cは、提供装置と受信装置のいずれで動作するかの決定処理を開始する。まず、装置Cは自装置を提供装置候補に設定し(F503)、提供装置の検索処理の制限時間であるタイマT1を開始する(F504)。
つぎに、装置Cは、自動設定機能を有している、あるいは自動設定処理中であることを通知する情報要素(Information Element)を含むビーコン(報知信号)を送信する(F505)。ここで、ビーコンに現時点の役割である「提供装置候補」を示す情報要素を含めてもよい。
ひき続いて、装置Cは提供装置を検索するため、検索信号を送信する(F506)。検索信号にもビーコン同様に、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素が含まれている。
装置Aは装置Cから送信された検索信号を受信したら、検索応答信号を装置Cに対して送信する(F507)。装置Aが検索信号を受信した時点では、装置Aにて設定ボタン106は押下されておらず、装置Aは自動設定処理を開始していない。よって装置Aは自動設定機能を有しているが、自動設定処理中でないことを示す情報要素を含む検索応答信号を送信する。
ここで、装置Cにおいて提供装置を検出できないままタイマT1が満了すると(F508)、装置Cは自装置の役割を提供装置に設定する(F509)。
ここで、装置Aにおいて設定ボタン106が押されると、装置Aは自装置を提供装置候補に設定し(F510)、提供装置の検索処理の制限時間であるタイマT1を開始する(F511)。
つぎに、装置Aは、自動設定機能を有している、あるいは自動設定処理中であることを通知する情報要素(Information Element)を含むビーコン(報知信号)を送信する(F512)。ここで、ビーコンに現時点の役割である「提供装置候補」を示す情報要素を含めてもよい。
ひき続いて、装置Aは提供装置を検索するため、検索信号を送信する(F513)。検索信号もビーコン同様に、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素が含まれる。
装置Cは装置Aから送信された検索信号を受信したら、検索応答信号を装置Aに対して送信する(F514)。該検索応答信号には、ビーコンや検索信号と同様に、自動設定機能を有している、あるいは処理中であることを示す情報要素が含まれる。この時点では、装置Cは自装置の役割を提供装置に決定しているため、装置Cは検索応答信号に「提供装置」を示す情報要素を含めて送信する。ここで、役割としての「提供装置」を示す情報要素に加えて、通信パラメータを提供可能な状態であることを示す情報要素を付加してもよい。
装置Aは装置Cから送信された検索応答信号を受信すると、装置Cの役割が提供装置であり、通信パラメータを提供可能な状態であることを確認する。そこで、装置AはタイマT1を停止する(F515)。
ここで装置Aが自装置の役割を受信装置に設定すると、通信パラメータAとは異なる通信パラメータCが装置Cから装置Aへ提供されてしまう。そこで、ネットワークAを維持するために、自装置の役割を受信装置ではなく提供装置に設定する(F516)。
これにより、装置Cと装置Aの2台が提供装置となる。そこで、装置Aは装置Cに向けて、提供装置が複数存在することを知らせるためにセッションオーバーラップ通知を送信する(F517)。
装置Aからのセッションオーバーラップ通知を受信した装置Cは、提供装置としての動作を継続することができないと判断し、自装置の役割を受信装置に切替える(F518)。そして、装置Cは装置Aから通信パラメータの提供を受け、装置Aと装置Cとの間で共有した通信パラメータを用いて通信接続処理を行う(F519〜F523)。なお、F519〜F523の処理は、図4のF417〜F421の処理と同様であるため、説明を省略する。
図6は、装置Aと装置Cにおける動作フローの一例を示したフローチャートである。
以下、本フローチャートに沿って両装置が実行する制御について説明する。
まず、装置は自動設定処理の開始を指示するための設定ボタン106が押下されたかどうかを判定する(S601)。S601において設定ボタン106が押下されたと判定した場合には、装置は自装置の役割を提供装置候補に設定し(S602)、タイマT1を開始する(S603)。
そして、装置は役割を提供装置候補に設定後、自動設定機能を有する、もしくは自動設定処理中であることを示す情報要素を含んだビーコンの送信を開始する(S604)。ここで、ビーコンに現時点の役割である「提供装置候補」を示す情報要素を含めてもよい。
そして、装置は、提供装置が見つかるか、タイマT1が満了するまで、提供装置の検索処理を行う(S605〜S608)。具体的には、タイマT1が満了していなければ(S605)、検索信号(プローブリクエスト)を送信し(S606)、検索応答信号(プローブレスポンス)の受信を待つ(S607)。
検索応答信号を受信した場合は、装置は検索応答信号の情報要素に含まれる相手の役割が提供装置かどうかを判定する(S608)。相手の役割が提供装置であれば、タイマT1を停止する(S609)。
S607において検索応答信号を受信しない場合や、S608において受信した検索応答信号の情報要素に含まれる相手の役割が提供装置以外の場合は、再度S605より処理をやり直す。
S609におけるタイマT1の停止後、自装置が他の装置との間で既に自動設定処理を実施済みであるか否かを確認する(S610)。
なお、既に自動設定処理を実施済みであるか否かは、記憶部103に設定済パラメータが記憶されているか否かにより判定される。そして、既に他の装置との間で自動設定処理を実施済みである場合は、自装置の役割を提供装置に設定する(S611)。
そして、装置はセッションオーバーラップ通知を相手装置へ送信し(S612)、オーバーラップ通知を受信した相手装置が受信装置に切替わった後に、該相手装置に対する通信パラメータの提供処理を行う(S613)。
なお、オーバーラップ通知を送信後に表示部105にて自動設定処理を継続するか否かの指示入力をユーザに促す表示を行い、ユーザによる指示入力に応じて、自動設定処理を継続するか中止するかを切替えるようにしてもよい。また、オーバーラップ通知を送信すると、自動設定処理をエラー終了するようにしてもよい。
一方、S610の判定において、以前に自動設定処理を未実施の場合は、自装置の役割を受信装置に設定する(S614)。そして、提供装置として動作する相手装置から提供される通信パラメータの受信処理を行う(S615)。
また、S605において提供装置を発見できないままタイマT1が満了した場合、自装置の役割を提供装置に設定する(S616)。そして、提供装置に設定後に他の装置からオーバーラップ通知を受信すると(S617)、S614に進み、自装置の役割を受信装置へ切替え、提供装置(オーバーラップ通知の送信元)から通信パラメータの提供を受ける(S615)。
なお、セッションオーバーラップを受信した場合に、自動設定処理を再起動(S602から処理を再開)するようにしてもよい。この場合、提供装置の検索処理(S605〜S608)にて、上記オーバーラップ通知の送信元である提供装置が検出される。その結果、受信装置として該提供装置から通信パラメータの提供を受けることができる。また、セッションオーバーラップを受信した場合に、自動設定処理をエラー終了するようにしてもよい。
セッションオーバーラップ通知を受信しない場合は、受信装置としての動作を開始した装置に対する通信パラメータの提供処理を行う(S618)。
このように本実施の形態によれば、過去に行った自動設定処理によって設定された通信パラメータを用いてネットワークを構築している場合に、新たに自動設定処理を開始しても該ネットワークを確実に維持することが可能となる。
なお、上記説明では、装置Aと装置Bによって構築されているネットワークAに装置Cが新たに参加する場合について説明した。ここで、装置Bが何らかの原因(電波障害、ユーザの誤操作による電源オフ等)によりネットワークから一時的に離脱してしまう場合も考えられる。かかる場合であっても、本実施形態によれば、装置Aは装置Bとの間で共有した通信パラメータを装置Cへ提供するので、装置Bは通信パラメータAを用いて再びネットワークAに復帰することが可能となる。
また、上記説明では、S612にて提供装置としての動作を開始した相手装置へセッションオーバーラップ通知を送信するために、S611にて自装置の役割を提供装置に設定していた。しかしながら、必ずしも自装置の役割を提供装置に設定する必要はない。即ち、S610にて自動設定処理を既に実施済みと判定された場合は、S611の処理を省略し、S612にてセッションオーバーラップ通知を送信するようにしてもよい。
また、上記説明では、提供装置として動作している相手装置に対して、提供装置としての動作を中止させるためにセッションオーバーラップ通知を送信していた。しかしながら、相手装置に提供装置としての動作を規制させることができれば、必ずしもセッションオーバーラップ通知を用いなくてもよい。例えば、自動設定処理の中止を指示するメッセージ、提供装置としての動作の規制又は中止を指示するメッセージを用いてもよい。
また、上記説明では、S610にて記憶部103に設定済パラメータが記憶されているか否かに基づいて、自動設定処理を実施済みか否かを判定するものとしたが、他の方法により判定しても構わない。例えば、自動設定処理の実行履歴を記憶部103に記憶しておくようにし、該実行履歴に基づいて自動設定処理を実施済みか否かを判定するようにしてもよい。かかる場合、実行履歴として自動設定処理を行った時間(又は日時)を記憶しておき、自動設定処理を行ってからの経過時間に応じて、自動設定処理を実施済みか否かを判定するようにしてもよい。例えば、過去に自動設定処理を行った履歴があったとしても、一定時間(1時間後、1日後等)が経過していれば、自動設定処理を実施済でない、と判定するようにする等の方法がある。
<実施形態2>
実施形態1では、自動設定処理を開始した装置は、既に他の装置との間で自動設定処理を実施済みか否かに拘らず、まず提供装置候補となって提供装置の検索処理を行っていた。
実施形態2においては、役割決定のアルゴリズムが実施形態1と異なる場合の処理例について説明する。実施形態2で説明する役割決定アルゴリズムでは、自装置がネットワークに参加中か否かを最初に判定し、自装置がネットワークに参加していると判定された場合は、T1を待つことなく提供装置となるものとする。
実施形態2においても、装置構成およびネットワーク構成は実施形態1と同様である。
図8は、装置Aと装置Cにおいて設定ボタン106が押下され、装置Aと装置Cの間で自動設定処理を実施した場合の処理シーケンスの一例を示した図である。
装置Aは、装置Bとの間で行われた自動設定処理により設定された通信パラメータAを用いて既にネットワークAを構築済みである(F801)。
装置Aにおいて設定ボタン106が押されると、装置Aは最初に、ネットワークに参加中か否かを確認する。ここで、「ネットワークに参加している」とは、自装置が保有するBSSIDと同一のBSSIDを保有する他の装置が存在する場合を示す。例えば、装置Aが装置Bとの間で既に自動設定処理を行い、通信パラメータAを共有したとしても、装置Bの電源がオフされている場合は、装置Bは同一のBSSIDを保有していないことになる。このような場合は、装置Aはネットワークに参加してないものとする。
即ち、図3のネットワーク構成の場合、「ネットワークに参加している」とは、「装置Aと装置Bが同一のネットワーク上に存在している」ということである。よって、装置Aが作成したネットワークに装置Bが参加している場合、装置Bが作成したネットワークに装置Aが参加している場合は「ネットワークに参加している」と判断される。また、装置Aが作成したネットワークに装置Bが参加していない場合、装置Aと装置Bが異なるネットワークを作成した場合は、「ネットワークに参加していない」と判断される。ネットワークに参加しているか否かを判定するには、例えば、アクティブスキャンやパッシブスキャンを行い、自装置と同一のBSSIDを有し、異なるMACアドレスを持つ装置を発見できるか否かを判定すればよい。
また、同一のBSSIDで異なるMACアドレスを持つ装置を発見しただけでなく、当該装置と上位レイヤによる通信が可能な場合に「ネットワークに参加している」と判定するようにしてもよい。すなわち、同一のBSSIDで異なるMACアドレスを持つ装置を発見した場合でも上位レイヤによる通信が不可能であれば、「ネットワークに参加していない」と判定する。例えば、Pingを送信し、その応答を受信できるか否かによりネットワークに参加しているか否かを判定することができる。
装置AはネットワークAに参加中か否か、即ちネットワークAに装置Bが存在するか否かを確認し、装置Bの存在を確認できた時点で(F801−2)、自装置の役割を提供装置とする(F802)。
一方、装置Cにおいて設定ボタンが押されると、装置CはユニークなネットワークCを作成する(F803)。そして装置Cは、自装置を提供装置候補に設定し(F805)、タイマT1を開始する(F806)。
つぎに、装置Aおよび装置Cは、自動設定機能を有している、あるいは自動設定処理中であることを通知する情報要素(Information Element)を含むビーコン(報知信号)を送信する(F807、F808)。ここで、装置Cはビーコンに現時点の役割である「提供装置候補」を示す情報要素を含めてもよい。一方装置Aはビーコンに「提供装置」を示す情報要素を含めても良い。
次に、装置Cは提供装置を検索するためが検索信号を送信する(F813)。装置Cから送信される検索信号にも、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素が含まれている。
装置Aは装置Cから送信された検索信号を受信したら、検索応答信号を装置Cに対して送信する(F814)。該検索応答信号には、ビーコンや検索信号と同様に、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素が含まれる。この時点では、装置Aは自装置の役割を提供装置に決定しているため、装置Aは検索応答信号に「提供装置」を示す情報要素を含めて送信する。ここで、役割としての「提供装置」を示す情報要素に加えて、通信パラメータを提供可能な状態であることを示す情報要素を付加してもよい。
装置Cは装置Aから送信された検索応答信号を受信すると、装置Aの役割が提供装置であり、通信パラメータを提供可能な状態であることを確認する。そこで、装置Cは、タイマT1を停止して(F815)、自装置の役割を受信装置に設定し(F816)、ネットワークAへ参加する(D817)。これによって、装置Aと装置Cの間では、通信パラメータの自動設定プロトコル処理で交わされる通信メッセージを相互に送受可能となる。なお、F817で装置CがネットワークAに参加した時点では、暗号鍵、認証鍵等の通信パラメータが装置Cに設定されていないため、装置Cは装置Aとの間で暗号、認証を用いた通常のデータ通信を行うことはできない。
ここで、ここで、上記説明では検索信号と検索応答信号を用いるアクティブスキャンによって提供装置の検索を行ったが、ビーコンの受信を待機することにより提供装置を検索するパッシブスキャンを用いてもよい。また、アクティブスキャンとパッシブスキャンを組み合わせて提供装置を検索するようにしてもよい。
装置CはネットワークAに参加すると、装置Aに通信パラメータ設定起動を示すメッセージを送信する(F818)。そして、該メッセージに応じて装置Aから装置Cに対して通信パラメータAの提供処理が行われる(F819)。提供処理が完了すると、装置Aは装置Cに対して通信パラメータ設定完了のメッセージを送信する(F820)。これにより通信パラメータ設定処理が完了し、装置Aと装置Cとの間で通信パラメータAが共有される。
そして、装置Aと装置Cでは、共有した通信パラメータAを用いて通信接続処理を行う(F821)。
このように、装置Aがネットワークへ参加中であることを確認した時点で提供装置になれば、装置Cが受信装置に設定され、その結果通信パラメータAが装置Cへ提供される。しかしながら、このような制御を行ったとしても、装置Aと装置Cの設定ボタン106が押されるタイミングによっては、装置Cが提供装置になり、装置Aが受信装置になってしまう場合も考えられる。そこで、本実施形態では、このような状況が生じるのを防止するための処理について説明する。
図9は、装置Aと装置Cにおいて、設定ボタン106が押下され、装置Aと装置Cの間で自動設定処理を実施した場合の処理シーケンスの一例を示した図である。
装置Aは、装置Bとの間で行われた自動設定処理により設定された通信パラメータAを用いてネットワークAを構築済みである(F901)。
ここで、装置Cにおいて設定ボタン106が押されると、装置CはユニークなネットワークCを作成する(F902)。
つぎに、装置Cは自装置の役割を提供装置候補に設定し(F903)、タイマT1を開始する(F904)。
つぎに、装置Cは、自動設定機能を有している、あるいは自動設定処理中であることを通知する情報要素(Information Element)を含むビーコン(報知信号)を送信する(F905)。ここで、ビーコンに現時点の役割である「提供装置候補」を示す情報要素を含めてもよい。
ひき続いて、装置Cは提供装置を検索するため、検索信号を送信する(F906)。検索信号にもビーコン同様に、通信パラメータの自動設定処理機能を有している、あるいは処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素が含まれている。
装置Aは装置Cから送信された検索信号を受信したら、検索応答信号を装置Aに対して送信する(F907)。装置Aが検索信号を受信した時点では、装置Aにて設定ボタン106は押下されておらず、装置Aは自動設定処理を開始していない。よって装置Aは自動設定機能を有しているが、自動設定処理中でないことを示す情報要素を含む検索応答信号を送信する。
装置Cにおいて提供装置を検出できないままタイマT1が満了すると(F908)、装置Cは自装置の役割を提供装置に設定する(F909)。
ここで、装置Aにおいて設定ボタン106が押されると、装置Aは、自装置が参加しているネットワークAに、装置Bが参加していることを確認した上で(F910)、自装置の役割を提供装置に設定する(F911)。
ここで、装置Bの存在を確認できなかった場合は、装置Aは自装置の役割を提供装置候補に設定する。この場合の以降の動作シーケンスは、実施形態1で説明したものと同一となる。
つぎに、装置Aは、自動設定機能を有している、あるいは自動設定処理中であることを通知する情報要素(Information Element)を含むビーコン(報知信号)を送信する(F912)。ここで、ビーコンに現時点の役割である「提供装置」を示す情報要素を含めてもよい。
ひき続いて、装置Aは、他に提供装置が存在するか否かを調べるために、検索信号を送信する(F913)。検索信号Aもビーコン同様に、自動設定機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置」を示す情報要素が含まれている。
装置Cは装置Aから送信された検索信号を受信したら、検索応答信号を装置Aに対して送信する(F914)。検索応答信号にも、ビーコンや検索信号と同様に、自動設定処理機能を有している、あるいは自動設定処理中であることを示す情報要素が含まれる。この時点では、装置Cは自装置の役割を提供装置に決定しているため、装置Cは検索応答信号に「提供装置」を示す情報要素を含めて送信する。ここで、役割としての「提供装置」を示す情報要素に加えて、通信パラメータを提供可能な状態を示す情報要素を付加してもよい。
検索応答信号を受信した装置Aは、自装置以外にも提供装置が存在することを認識できる。そこで、装置Aは装置Cに提供装置としての動作を中止させるため、セッションオーバーラップ通知を送信する(F915)。
装置Aからのセッションオーバーラップ通知を受信した装置Cは、提供装置としての動作を継続することができないと判断し、自装置の役割を受信装置に切替える(F916)。そして、装置Cは装置Aから通信パラメータの提供を受け、装置Aと装置Cとの間で共有した通信パラメータを用いて通信接続処理を行う(F917〜F921)。なお、F917〜F921の処理は、図8のF817〜F821の処理と同様であるため、説明を省略する。
図7は実施形態2における装置Aと装置Cの動作フローの一例を示したフローチャートである。
以下、本フローチャートに沿って両装置が実行する制御について説明する。
まず、装置は通信パラメータ自動設定処理の開始を指示するための設定ボタン106が押下されたかどうかを判定する(S701)。
S701にて設定ボタン106が操作されたと判定した場合には、自装置が現在すでにネットワークに参加しているかどうかを調べる(S702)。
S702において、すでにネットワークに参加していると判定された場合は、新たに他の装置を該ネットワークに参加させるために、自装置の役割を提供装置に設定する(S719)。
提供装置として設定後、検索信号(プローブリクエスト)を送信し(S720)、検索応答信号(プローブレスポンス)の受信を一定時間待つ(S721)。S721において提供装置からの検索応答信号を受信した場合は、自装置が参加中のネットワークでの通信が維持できなくなる可能性がでるため、セッションオーバーラップ通知を相手の提供装置へ送信する(S722)。そして、オーバーラップ通知を受信した相手装置が受信装置に切替わった後に、該相手装置に対する通信パラメータの提供処理を行う(S723)。
なお、オーバーラップ通知を送信後に表示部105にて自動設定処理を継続するか否かの指示入力をユーザに促す表示を行い、ユーザによる指示入力に応じて、自動設定処理を継続するか中止するかを切替えるようにしてもよい。また、オーバーラップ通知を送信すると、自動設定処理をエラー終了するようにしてもよい。
S721において、提供装置からの検索応答信号を受信しない場合は、受信装置としての動作を開始した相手装置に対する通信パラメータの提供処理を行う(S723)。
S702において、ネットワークに参加していないと判定された場合は、実施形態1と同様の処理(図6のS602以降の処理)を継続していく。
このように本実施の形態によれば、実施形態1と役割決定のアルゴリズムが異なる場合でも実施形態1と同様の効果を得ることができる。
なお、図7のS702においてネットワークに参加していないと判定された場合は、図6のS602以降の処理を行うものとして説明したが、必ずしも全て同一の処理を行う必要はない。以下、変形例について説明する。
S702にて同一ネットワークに他の装置が存在しないと判定された場合は、該ネットワークを維持する必要性は低くなるので、受信装置として他の装置から新たに別の通信パラメータを受信しても良い場合もある。そこで、S702にて同一ネットワークに他の装置が存在しないと判定され、S708にて提供装置を検出できた場合は、既に他の装置との間で自動設定処理を実施済みか否かに関係なく、自装置の役割を受信装置に設定するようにしてもよい。即ち、S710の判定処理は省略し、S714以降に進むようにしてもよい。
また、上記説明では、予め装置Aと装置B間で行われた自動設定処理によって設定された通信パラメータAを用いてネットワークAが構築される場合について説明した。しかし、ユーザの手入力によって設定された通信パラメータにより装置Aと装置B間でネットワークを構築している場合であっても、本発明は適用できる。
この場合、手動設定時に設定された通信パラメータ(通信パラメータA’とする)を、設定済パラメータとして記憶部103に記憶しておく。そして、S702では、通信パラメータA’を用いたネットワークに参加しているか否かが判定される。該ネットワークに参加していると判定された場合は、S719にて自装置を提供装置に設定し、S723では相手装置に対して通信パラメータA’を提供する。また、該ネットワークに参加していないと判定された場合は、S703以降の処理が行われ、S710では通信パラメータを既に手動設定済みか否かが判定される。手動設定済みと判定された場合は、自装置の役割を提供装置に設定し(S711)、相手装置に対してセッションオーバーラップ通知を送信する(S712)。そして、S713では、相手装置に対して通信パラメータA’を提供する。また、手動設定済みでない場合は、自装置の役割を受信装置に設定し(S714)、提供装置である相手装置から通信パラメータを受信する(S715)。このようにすることにより、手動設定によりネットワークを構築し、該ネットワークに新たに他の装置を参加させるために自動設定処理を行う場合であっても、該ネットワークを維持することができる。
また、自動設定処理により設定済みか、手動設定により設定済みかによって、S702とS710の判定処理を異なるものとしても構わない。例えば、S702では、自動設定と手動設定のいずれで設定したかに拘らず、既に設定済みの通信パラメータを用いたネットワークに参加中か否かを判定し、S710では自動設定処理によって設定済みか否かのみを判定するようにしてもよい。つまり、手動設定により設定済みの場合は、S702にて該設定済みの通信パラメータによるネットワークに参加中か否かを判定し、参加中でないと判定された場合はS703以降の処理を行う。そして、S710の判定では、手動設定により設定済みではあるが、自動設定により設定済みではないため、S714以降の処理に進む。このようにすることにより、自動設定と手動設定のいずれの方法で設定済みかによって、ネットワーク維持の判断を適応的に切り替えることができる。例えば、既に自動設定処理によって設定済みの場合は、他の装置から別の通信パラメータの提供を受けることを防止できる。また、既に手動設定済みの場合は、該設定済みの通信パラメータを用いたネットワークに他の装置が存在していれば、該ネットワークを維持し、他の装置が存在しなければ、別の他の装置から新たに他の通信パラメータを受け入れ可能な状態とすることができる。
また、実施形態1と同様に、S712にてセッションオーバーラップ通知を送信するために、S711にて自装置の役割を提供装置に設定していた。しかしながら、必ずしも自装置の役割を提供装置に設定する必要はない。即ち、S710にて既に設定済みと判定された場合は、S711の処理を省略し、S712にてセッションオーバーラップ通知を送信するようにしてもよい。
また、相手装置に提供装置としての動作を規制させることができれば、他のメッセージを用いてもよく、必ずしもセッションオーバーラップ通知を用いなくてもよい。例えば、自動設定処理の中止を指示するメッセージ、提供装置としての動作の規制又は中止を指示するメッセージを用いてもよい。
また、上記説明はIEEE802.11準拠の無線LANを例に説明した。しかしながら、本発明は、ワイヤレスUSB、MBOA、Bluetooth(登録商標)、UWB、ZigBee等の他の無線媒体において実施してもよい。また、有線LAN等の有線通信媒体において実施してもよい。
ここで、MBOAは、Multi Band OFDM Allianceの略である。また、UWBは、ワイヤレスUSB、ワイヤレス1394、WINETなどが含まれる。
また、通信パラメータとしてネットワーク識別子、暗号方式、暗号鍵、認証方式、認証鍵を例にしたが、他の情報であってもよいし、他の情報も通信パラメータには含まれるようにしてもよいことは言うまでも無い。
本発明は前述の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、システムあるいは装置のコンピュータ(CPU、MPU)が記録媒体に格納されたプログラムコードを読み出し実行するようにしてもよい。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSが実際の処理の一部または全部を行い、前述の機能を実現してもよい。OSとは、Operating Systemの略である。
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、そのプログラムコードの指示に基づき、機能拡張ボードや機能拡張ユニットに備わるCPUが実際の処理の一部または全部を行い、前述の機能を実現してもよい。