以下、図面を参照し、本発明の実施形態を説明する。本実施形態では、無線通信端末の一例として、デジタルスチルカメラを用いて説明する。これに限らず、PC、携帯電話、PDA、光ディスク・HDDレコーダ、TV、ゲーム機、ビデオカメラなど、無線ネットワークに接続可能な装置を無線通信端末として使用することが可能である。
図1は、本実施形態によるデジタルスチルカメラ(以下、DSCと略記する)の構成を示している。図1に示すように、DSC10は、CPU101、入力インターフェース部102、ROM103、RAM104、表示部105、外部I/F(外部インターフェース)106、ファイル管理部107、記録部108、圧縮伸張エンジン109、撮像部110を備える。
CPU101は、ROM103に格納されている制御プログラムに従い、RAM104を作業領域に用いて各種制御を行う。また、このCPU101は、ネットワークプロトコルにより、外部I/F106を介して無線ネットワークに接続し、外部の無線通信端末と通信できるようになっている。外部の無線通信端末との通信時に送受信するデータは、RAM104に格納される。
入力インターフェース部102は、ユーザがDSC10に対する操作入力を行うためのスイッチ、ボタン、キー、ダイヤル等の操作入力部である。また、この入力インターフェース部102は、表示部105に重ねられたタッチパネル等であってもよい。表示部105は、画像や操作メニュー等を表示することが可能である。ファイル管理部107は、CPU101からの指示に従い、記録部108に記録されるファイルを管理する。
記録部108は、半導体メモリ、磁気メモリ、磁気ディスク、光ディスク、光磁気ディスク等の不揮発性の記録媒体、あるいはそれらに限らず、情報を記録することができる不揮発性の記録媒体であり、また上記記録媒体の組み合わせであってもよい。さらには、記録部108が単数の記録媒体のみから構成される必要は無く、記録部108が複数の記録媒体から構成されていても構わない。
圧縮伸張エンジン109は、画像の圧縮および伸張を行う。撮像部110は、被写体像を撮像し撮像データを生成する。
このような構成のDSC10では、撮影時には、入力インターフェース部102に入力された指示に従って、CPU101が撮像部110から撮像データを取り込む。さらに、CPU101は、撮像データに基づく画像を表示部105に表示するとともに、RAM104内に撮像データを格納する。そして、CPU101が圧縮伸張エンジン109に圧縮指示を行うと、圧縮伸張エンジン109は、上記RAM104内の撮像データを、CPU101が指定するフォーマットの画像へと圧縮する。圧縮された画像は、CPU101からの指示により、ファイル管理部107を通して記録部108に記録される。
このように記録部108に記録された画像の再生時には、まずCPU101からの指示により、ファイル管理部107を通して記録部108内の画像が読み出され、圧縮伸張エンジン109により、記録されているフォーマットに従い画像が伸張される。伸張された画像は表示部105に表示される。また、撮像時あるいは再生時のDSC10および画像に係る設定を行うための設定画面が表示部105に表示された状態で、ユーザは入力インターフェース102を用いてDSC10の設定を行うことが可能である。
次に、本実施形態によるDSC10の動作を説明する。図2はDSC10の動作の手順を示している。DSC10の電源がオンになると、CPU101は、アドホックネットワークの接続設定をRAM104に記憶済みであり、かつその接続設定を外部I/F106に反映済みであるか否かを判定する(S1)。
アドホックネットワークの接続設定をRAM104に記憶済みであり、かつその接続設定を外部I/F106に反映済みである場合、CPU101は登録待機動作を行う(S10)。一方、アドホックネットワークの接続設定をRAM104に記憶済みでない場合、またはその接続設定を記憶済みであっても外部I/F106に反映済みでない場合、CPU101は参加待機動作を行う(S20)。
以下、登録待機動作と参加待機動作について、第1〜第7の動作例を挙げて詳細に説明する。以下では、他の端末からの参加要求を受け付け、アドホックネットワークへの登録を行う端末を登録端末(Registrar:レジストラ)とし、他の端末に対してアドホックネットワークへの参加要求を行う端末を参加端末(Enrollee:エンローリー)とする。
<第1の動作例>
まず、第1の動作例を説明する。図3〜図4は、第1の動作例における登録待機動作の手順を示している。CPU101は、前回のセットアップの情報をクリアするため、RAM104に記憶されている自身の役割をクリアする(S110)。続いて、CPU101は、アドホックネットワークへの接続を指示するための自身の装置のボタンが押されたか否かを判断する(S111)。なお、アドホックネットワークへの接続の指示は、装置に取り付けられている物理的なボタンを押すことだけではなく、LCDに表示されるメニューやボタンを選択決定することによっても可能である。
ボタンが押されていない場合、処理はS115へ進む。一方、ボタンが押されている場合、CPU101は、自身の役割を登録端末(Registrar)としてRAM104に記憶する(S112)。続いて、CPU101は、受付期間中であるか否かを判断する(S113)。受付期間中である場合、処理はS115へ進む。一方、受付期間中でない場合、CPU101は受付期間を開始する(S114)。続いて、処理はS115へ進む。
受付期間は、アドホックネットワークへの参加を希望する端末から参加を受け付ける期間である。本実施形態では、登録端末がアドホックネットワークへの参加希望を無制限に受け付けないようにしており、受付期間内にアドホックネットワークへの参加を希望した参加端末のみがセットアップを行うことができる。
処理がS115へ進んだ場合、CPU101は、参加要求であるProbe Requestを他の装置から受信しているか否かを判断する(S115)。通常のProbe Requestには、送信元端末のMACアドレスのほか、セットアップ開始方法(ボタン押し方法、PINコード入力方法等)、送信元端末のUUID(Universally Unique Identifier)等が含まれている。アドホックネットワークの接続設定がなされていない参加端末はProbe Requestを受信することができないが、アドホックネットワークの接続設定がなされている登録端末はProbe Requestを受信することができる。
Probe Requestを他の装置から受信していない場合、処理はS123へ進む。一方、Probe Requestを他の装置から受信している場合、CPU101は、そのProbe Requestに、ボタン押しセットアップであることを示す情報(以下、PBC情報と略記する)が含まれているか否かを判断する(S116)。
Probe RequestにPBC情報が含まれていない場合、CPU101は、PBC情報を含まないProbe Responseを、外部I/F106を介してProbe Requestの送信元端末へ送信する(S122)。続いて、処理はS123へ進む。一方、Probe RequestにPBC情報が含まれている場合、CPU101は、受付期間中であるか否かを判断する(S117)。
受付期間中である場合、処理はS119へ進む。一方、受付期間中でない場合、CPU101は、RAM104に記憶済みのProbe Requestが存在するか否かを判断する(S118)。Probe Requestが存在する場合、処理はS119へ進む。一方、Probe Requestが存在しない場合、CPU101は受付期間を開始する(S1181)。つまり、受付期間は、自身のボタンが押されたタイミング、あるいは他の装置からPBC情報つきのProbe Requestを受信したタイミングで開始する。S1181の後、処理はS119へ進む。
処理がS119へ進んだ場合、CPU101は、自身の役割が登録端末であるか否かを判断する(S119)。自身の役割が登録端末でない場合、処理はS122へ進む。一方、自身の役割が登録端末である場合、CPU101は、受付期間中であるか否かを判断する(S1191)。
受付期間中である場合、CPU101は、PBC情報と、自身が登録端末であることを示す情報とを含むProbe Responseを、外部I/F106を介してProbe Requestの送信元端末へ送信し(S120)、受信したProbe RequestをRAM104に記憶する(S121)。なお、既に同一のMACアドレスを有する装置からのProbe Requestを記憶している場合は、さらに別に記憶する必要はない。S121の後、処理はS123へ進む。
一方、受付期間中でない場合、CPU101は、RAM104に記憶済みのProbe Requestの中でセットアップが未実施のものの送信元端末のMACアドレスと、受信したProbe Requestの送信元端末のMACアドレスとが同一であるか否かを判断する(S1211)。2つのMACアドレスが同一である場合、処理はS120へ進む。一方、2つのMACアドレスが同一でない場合、処理はS122へ進む。なお、ここではそれぞれのProbe Requestが同一であるかどうかをMACアドレスを用いて判断しているが、判断に用いる情報はMACアドレスに限らず、たとえばUUIDのように送信元端末を一意に識別できる情報であればよい。本動作例、および他の動作例の説明において、他にMACアドレスを用いて判断を行っている箇所についても同様である。
処理がS123へ進んだ場合、CPU101は、受付期間中であって、かつ受付期間の開始から所定時間が経過しているか否かを判断する(S123)。受付期間中でない、または受付期間の開始から所定時間が経過していない場合、処理はS128へ進む。一方、受付期間中であって、かつ受付期間の開始から所定時間が経過している場合、CPU101は受付期間を終了する(S124)。なお、本実施形態の説明において、「所定時間」を複数個所で用いているが、これらの「所定時間」が同一時間とは限らない。
続いて、CPU101は、RAM104に記憶済みのProbe Requestが存在するか否かを判断する(S125)。Probe Requestが存在しない場合、CPU101は登録待機動作を終了する。一方、Probe Requestが存在する場合、CPU101は、記憶済みのProbe Requestに関して、それらProbe Requestの送信元端末の全てとセットアップが完了しているか否かを判断する(S126)。
Probe Requestの送信元端末の1台以上とセットアップが完了していない場合、処理はS128へ進む。一方、Probe Requestの送信元端末の全てとセットアップが完了している場合、CPU101は記憶済みのProbe Requestを全てRAM104から削除し(S127)、登録待機動作を終了する。
処理がS128へ進んだ場合、CPU101はセットアップが現在実行中であるか否かを判断する(S128)。セットアップが現在実行中である場合、処理はS131へ進む。一方、セットアップの実行中ではない場合、CPU101は、RAM104に記憶済みのProbe Requestに関して、その送信元端末とセットアップを実施していないProbe Requestがあるか否かを判断する(S129)。
送信元端末とセットアップを実施していないProbe Requestがない場合、処理はS131へ進む。一方、送信元端末とセットアップを実施していないProbe Requestがある場合、CPU101は、RAM104に記憶済みのProbe Requestのうち、セットアップを実施していないいずれか1つの送信元端末からのProbe Requestの情報に基づいて、その送信元端末との間で、自身からセットアップを開始する(S130)。なお、セットアップを実施する送信元端末を選択する方法として、例えば最古に記憶していたProbe Requestを選択することができるが、これに限定せず様々な選択方法を用いることができる。S130に続いて、処理はS131へ進む。
処理がS131へ進んだ場合、CPU101は、セットアップが終了しているか否かを判断する(S131)。セットアップが終了していない場合、処理はS111に戻る。一方、セットアップが終了している場合、CPU101は、RAM104に記憶済みのProbe Requestの送信元端末の全てとの間でセットアップが完了しているか否かを判断する(S132)。
RAM104に記憶済みのProbe Requestの送信元端末の1台以上との間でセットアップが完了していない場合、処理はS111に戻る。一方、RAM104に記憶済みのProbe Requestの送信元端末の全てとの間でセットアップが完了している場合、CPU101は、現在受付期間外であるか否かを判断する(S133)。現在受付期間外である場合、処理はS127へ進む。一方、現在受付期間外でない場合、処理はS111に戻る。
上記の登録待機動作では、受付期間中にどの端末からもProbe Requestが送信されなかった場合、登録端末と他の端末との間でアドホックネットワークは形成されない。これに対して、受付期間中にどの端末からもProbe Requestが送信されなかった場合に、受付期間が終了しても、その後の所定期間内で最初にProbe Requestを送信した端末のみとの間でアドホックネットワークが形成されるようにしてもよい。これは、後述する他の動作例においても同様に適用可能である。
図5は、第1の動作例における参加待機動作の手順を示している。CPU101は、前回のセットアップの情報をクリアするため、RAM104に記憶されている自身の役割をクリアする(S200)。続いて、CPU101は、アドホックネットワークへの接続を指示するための自身の装置のボタンが押されたか否かを判断する(S201)。前述したように、アドホックネットワークへの接続の指示は、装置に取り付けられている物理的なボタンを押すことだけではなく、LCDに表示されるメニューやボタンを選択決定することによっても可能である。
ボタンが押されていない場合、再度S201の判断が行われる。一方、ボタンが押されている場合、CPU101は、自身の役割を未確定端末(E/R)としてRAM104に記憶し(S202)、PBC情報と、自身が未確定端末であることを示す情報とを含むProbe Requestを、外部I/F106を介して送信する(S203)。続いて、CPU101は、Probe Responseを受信したか否かを判断する(S204)。
Probe Responseを受信していない場合、再度S204の判断が行われる。一方、Probe Responseを受信した場合、CPU101は、そのProbe Responseが、PBC情報と、登録端末であることを示す情報とを含んでいるか否かを判断する(S205)。Probe Responseが2つの情報を含んでいる場合、処理はS206へ進む。一方、Probe Responseが2つの情報のうち少なくとも一方を含んでいない場合、処理はS209へ進む。
処理がS206へ進んだ場合、CPU101は、自身の役割を参加端末(Enrollee)としてRAM104に記憶し(S206)、Probe Responseの送信元端末からセットアップが開始されたか否かを判断する(S207)。セットアップが開始されていない場合、再度S207の判断が行われる。一方、セットアップが開始された場合、CPU101は、Probe Responseの送信元端末によるセットアップの開始に合わせて自身のセットアップを開始する(S2071)。
続いて、CPU101は、セットアップが完了したか否かを判断する(S208)。セットアップが完了していない場合、再度S208の判断が行われる。一方、セットアップが完了した場合、CPU101は参加待機動作を終了する。
一方、処理がS209へ進んだ場合、CPU101は、ボタンが押されてから所定時間が経過しているか否かを判断する(S209)。所定時間が経過している場合、CPU101は、タイムアウトエラーとして所定時間その旨を表示部105に表示し(S211)、参加待機動作を終了する。一方、所定時間が経過していない場合、CPU101は、このタイミングから所定時間が経過するのを待つ(S210)。続いて、処理はS203に戻る。
図6は、上記の登録待機動作と参加待機動作による動作の一例を示している。図6に示す例では、DSC10の構成を有する端末A,B,Cが存在している。端末Bは、電源が入れられると、自身がアドホックネットワークNW1の接続設定を記憶しており、それを反映済みであるので、登録待機動作を開始する(S1,S10に対応)。登録待機動作では、端末Bは自身の役割をクリアし、ボタンが押されると、自身の役割を登録端末(Registrar)として記憶し、受付期間を開始する(S110〜S114に対応)。なお、この動作例では、受付期間を終了するまでの所定の期間は一例として10秒としている。その後、端末BはProbe Requestの受信を待つ(S115に対応)。
一方、端末Aは、電源が入れられると、自身がアドホックネットワークの接続設定を記憶していないため、参加待機動作を開始する(S1,S20に対応)。参加待機動作では、端末Aは自身の役割をクリアし、ボタンが押されると、自身の役割を未確定端末(E/R)として記憶し、ボタン押しセットアップであることを示す情報(PBC情報)と、自身が未確定端末であることを示す情報(以下、E/R情報と略記する)とを含むProbe Requestを送信する(S200〜S203に対応)。
端末Bは、アドホックネットワークNW1に所属しているためProbe Requestを受信する(S115に対応)。端末Aから送信されたProbe Requestは、その中にPBC情報およびE/R情報を含んでいる(S116に対応)。その時点で端末Bは受付期間中であり、自身の役割を登録端末として記憶している(S117,S119,S1191に対応)。そこで、端末Bは、PBC情報と、自身が登録端末であることを示す情報(以下、Registrar情報と略記する)とを含むProbe Responseを端末Aに対して送信し(S120に対応)、端末Aから送信されたProbe Requestを記憶する(S121に対応)。
端末Aは、端末BからProbe Responseを受信すると(S204に対応)、Probe ResponseにPBC情報とRegistrar情報が含まれているので、自身の役割を参加端末(Enrollee)として記憶し(S205,S206に対応)、端末Bからセットアップが開始されるのを待つ(S207に対応)。
端末Bでは、Probe Responseの送信後、まだ受付期間が終了しておらず(S123に対応)、セットアップが行われていない(S128に対応)。端末AからのProbe Requestを記憶済みで、かつ端末Aとの間のセットアップが未実施であるため(S129に対応)、端末Aとの間で、端末Bからセットアップが開始される(S130に対応)。
端末Aは、端末Bからセットアップが開始された(S207に対応)後、セットアップを開始し(S2071に対応)、セットアップが完了すると(S208に対応)、参加待機動作を終了する。一方、端末Bは、セットアップを実施しつつ、Probe Requestの受信、受付期間の完了、およびセットアップの完了を待つ(S115,S123,S131に対応)。
端末Cは端末Aと同様に、電源が入れられボタンが押されると、自身を未確定端末として記憶し、PBC情報とE/R情報を含むProbe Requestを送信して、Probe Responseの受信を待つ(S1,S20,S200〜S203に対応)。端末BがProbe Requestを受信すると(S115に対応)、そのProbe RequestがPBC情報を含んでおり(S116に対応)、受付期間中であって自身が登録端末であるので(S117,S119,S1191に対応)、端末BはPBC情報とRegistrar情報を含むProbe Responseを端末Cへ返信して(S120に対応)、端末Cから送信されたProbe Requestを記憶する(S121に対応)。
端末Cは、Probe Responseを受信すると、Probe ResponseにPBC情報とRegistrar情報が含まれている(S205に対応)ので、自身の役割を参加端末として記憶し、端末Bからセットアップが開始されるのを待つ(S206,S207に対応)。その後、端末Bは、受付期間が10秒経過すると、受付期間を終了する(S123,S124に対応)。その際、端末Bは端末Aおよび端末CからのProbe Requestを記憶している(S125に対応)が、端末A,端末Cいずれともセットアップが終了していない(S126に対応)ため、端末Aとの間のセットアップの終了を待つ(S131に対応)。
端末Aと端末Bの間のセットアップが完了した(S131に対応)時点では、端末Bと端末Cの間のセットアップが完了していない(S132に対応)。また、端末Bと端末Cとの間のセットアップも実施しておらず(S128に対応)、記憶済みのProbe Requestの送信元端末の中で端末Cとの間のセットアップが未実施である(S129に対応)。このため、端末Bは端末Cとの間のセットアップを自身から開始する(S130に対応)。
端末Cは、端末Bからセットアップが開始されると(S207に対応)、セットアップを開始して(S2071に対応)、セットアップの完了を待ち(S208に対応)、セットアップの完了後に参加待機動作を終了する。
端末Bは、端末Cとの間のセットアップが完了した(S131に対応)際、記憶済みのProbe Requestの送信元である端末A、端末Cのいずれともセットアップが完了しており(S132に対応)、受付期間も終了している(S133に対応)ので、端末Aおよび端末CからのProbe Requestを全てRAM104から削除して(S127に対応)、登録待機動作を終了する。
上記のように、ユーザが端末A,B,Cのそれぞれに対して、アドホックネットワークへ参加するトリガを入力すれば、端末Aと端末Bの間のセットアップおよび端末Bと端末Cの間のセットアップが実行される。したがって、端末A,B,Cがアドホックネットワークに参加するための接続設定を一括で行うことができる。なお、セットアップに係る処理は重い処理であるので、本実施形態では、2つのセットアップを並行に行わず、一方のセットアップが完了した後で、他方のセットアップが開始されるようにしている。
<第2の動作例>
次に、第2の動作例を説明する。図7は、第2の動作例における登録待機動作の手順を示している。第2の動作例においても、図3に示す手順は同一である。また、図4に示す手順と、図7に示す手順との違いは、図4に示す手順では端末が自らセットアップを開始するのに対して、図7に示す手順ではセットアップが開始できる状態となった場合に端末が開始通知を送信し、参加端末からセットアップが開始されるのを待つということである。以下、図4に示す手順と異なる部分のみを説明する。
S128,S129で、セットアップが実行されておらず、かつ記憶済みのProbe Requestの中でその送信元端末とセットアップを実施していないProbe Requestが存在する場合、CPU101は、セットアップを実施していないProbe Requestの送信元端末のいずれか1つに対して、外部I/F106を介して開始通知を送信する(S150)。なお、Probe Requestの送信元端末を選択する方法として、例えば最古に記憶していたProbe Requestの送信元端末を選択することができるが、これに限定せず様々な選択方法を用いることができる。
開始通知の送信後、CPU101は、開始通知の送信先端末からセットアップが開始されたか否かを判断する(S151)。セットアップが開始されていない場合、再度S151の判断が行われる。一方、セットアップが開始された場合、CPU101は、開始通知の送信先端末によるセットアップの開始に合わせて自身のセットアップを開始する(S152)。続いて、処理はS131へ進む。
図8は、第2の動作例における参加待機動作の手順を示している。図5に示す手順と、図8に示す手順との違いは、図5に示す手順では端末がProbe Responseの送信元端末からセットアップが開始されるのを待つのに対して、図8に示す手順では端末が開始通知を受信するのを待ち、開始通知の受信後に自身からセットアップを開始するということである。以下、図5に示す手順と異なる部分のみを説明する。
S205,S206で、CPU101は、PBC情報と、Registrar情報とを含むProbe Responseを受信して、自身の役割を参加端末として記憶する。その後、CPU101は、Probe Responseの送信元端末から開始通知を受信したか否かを判断する(S220)。開始通知を受信していない場合、再度S220の判断が行われる。一方、開始通知を受信した場合、CPU101は、開始通知の送信元端末との間で、自身からセットアップを開始する(S221)。続いて、処理はS208へ進む。
図9は、上記の登録待機動作と参加待機動作による動作の一例を示している。図9に示す例では、DSC10の構成を有する端末A,B,Cが存在している。以下、図6に示す例と異なる部分のみを説明する。
端末Bが端末AへProbe Responseを返信して、端末Aから送信されたProbe Requestを記憶した(S120,S121に対応)後、セットアップの実行中ではなく(S128に対応)、かつ端末Aとの間でセットアップが行われていない(S129に対応)ため、端末Bは端末Aに対して開始通知を送信し(S150に対応)、端末Aからセットアップが開始されるのを待つ(S151に対応)。
端末Aは、端末Bからボタン押しセットアップであることを示す情報(PBC情報)と、自身が登録端末であることを示す情報(Registrar情報)とを含むProbe Responseを受信し、自身を参加端末として記憶した後、端末Bからの開始通知の受信を待つ(S205,S206,S220に対応)。開始通知を受信すると、端末Aは端末Bとの間で自身からセットアップを開始し(S221に対応)、セットアップの完了を待って(S208に対応)、参加待機動作を終了する。
端末Bは、端末Aからセットアップが開始される(S151に対応)と、セットアップを開始し(S152に対応)、セットアップの完了を待つ(S131に対応)。また、端末Bは、端末CへProbe Responseを返信して、端末Cから送信されたProbe Requestを記憶した(S120,S121に対応)時点では、端末Aとの間でセットアップを実行中である(S128に対応)。端末Aとの間のセットアップが完了した時点(S131に対応)では、端末Cとの間のセットアップが未実施である(S132に対応)。この時点では他にセットアップを行っておらず(S128に対応)、端末Cとの間でセットアップが未実施であるため(S129に対応)、端末Bは端末Cに対して開始通知を送信し(S150に対応)、端末Cからセットアップが開始されるのを待つ(S151に対応)。
端末Cは、端末BからPBC情報とRegistrar情報を含むProbe Responseを受信し、自身を参加端末として記憶した後、端末Bから開始通知の受信を待つ(S205,S206,S220に対応)。開始通知を受信すると、端末Cは端末Bとの間で自身からセットアップを開始し(S221に対応)、セットアップの完了を待って(S208に対応)、参加待機動作を終了する。
端末Bは、端末Cからセットアップが開始される(S151に対応)と、セットアップを開始し(S152に対応)、セットアップの完了を待つ(S131に対応)。端末Bは、端末Cとの間のセットアップが完了した(S131に対応)際、記憶済みのProbe Requestの送信元である端末A、端末Cのいずれともセットアップが完了しており(S132に対応)、受付期間も終了している(S133に対応)ので、端末Aおよび端末CからのProbe Requestを全てRAM104から削除して(S127に対応)、登録待機動作を終了する。
上記のように、参加端末となる端末A,Cから端末Bとのセットアップを開始することができる。従来のWPSでは、参加端末側からセットアップを開始するので、第2の動作例においては、セットアップ処理の手順を変更する必要がない。
<第3の動作例>
次に、第3の動作例を説明する。図10〜図12は、第3の動作例における登録待機動作の手順を示している。図3〜図4に示す手順と、図10〜図12に示す手順との違いは、図3〜図4に示す手順では、登録端末が自らセットアップを開始するのに対して、図10〜図12に示す手順では、登録端末が、セットアップ可能な状態であるときに受信したProbe Requestに対応して、セットアップ可能であることを示す情報を含むProbe Responseを送信し、参加端末からセットアップが開始されるのを待つということである。以下、図3〜図4に示す手順と異なる部分のみを説明する。
S116,S119で、受信したProbe RequestがPBC情報を含んでいて、自身の役割が登録端末である場合、CPU101は、自身がセットアップ可能な状態であるか否かを判断する(S170)。例えば、自身がセットアップを並列に複数行うことができないなどの理由により、自身がセットアップ可能な状態でない場合、処理はS171へ進む。一方、自身がセットアップ可能な状態である場合、処理はS172へ進む。
処理がS171へ進んだ場合、CPU101は、受付期間中であるか否かを判断する(S171)。受付期間中である場合、処理はS120へ進む。一方、受付期間中でない場合、CPU101は、RAM104に記憶済みのProbe Requestに関して、その送信元端末とセットアップを実施していないProbe Requestがあるか否かを判断する(S174)。
送信元端末とセットアップを実施していないProbe Requestがない場合、処理はS122へ進む。一方、送信元端末とセットアップを実施していないProbe Requestがある場合、CPU101は、RAM104に記憶済みのProbe Requestの中で、受信したProbe Requestの送信元端末のMACアドレスと、受信したProbe Requestの送信元端末のMACアドレスとが同一であるか否かを判断する(S175)。
2つのMACアドレスが一致しない場合、処理はS122へ進む。一方、2つのMACアドレスが一致する場合、CPU101はセットアップが可能であるか否かを判断する(S176)。セットアップが可能である場合、処理はS173へ進み、セットアップが可能でない場合、処理はS120へ進む。
処理がS172へ進んだ場合、CPU101は、受付期間中であるか否かを判断する(S172)。受付期間中でない場合、処理はS174へ進む。一方、受付期間中である場合、CPU101は、PBC情報と、登録端末であることを示す情報と、セットアップが実行可能であることを示す情報とを含むProbe Responseを、外部I/F106を介して送信する(S173)。続いて、処理はS121へ進む。
一方、S128,S129で、セットアップが行われておらず、かつ記憶済みのProbe Requestの中でその送信元端末とセットアップを実施していないProbe Requestが存在する場合、CPU101は、そのProbe Requestの送信元端末からセットアップが開始されたか否かを判断する(S153)。
記憶済みのProbe Requestの送信元端末からセットアップが開始された場合、CPU101は、その送信元端末によるセットアップの開始に合わせて自身のセットアップを開始する(S154)。続いて、処理はS131へ進む。一方、記憶済みのProbe Requestの送信元端末からセットアップが開始されていない場合、処理はS131へ進む。
図13は、第3の動作例における参加待機動作の手順を示している。図5に示す手順と、図13に示す手順との違いは、図5に示す手順では端末がProbe Responseの送信元端末からセットアップが開始されるのを待つのに対して、図13に示す手順では端末は、PBC情報と登録端末であることを示す情報を含むProbe Responseを受信しても、セットアップが実行可能であることを示す情報が含まれない限りは所定時間ごとにProbe Requestの送信を繰り返し、セットアップが実行可能であることを示す情報が含まれるProbe Responseを受信したときに、自身からセットアップを開始するということである。以下、図5に示す手順と異なる部分のみを説明する。
S201,S202で、CPU101は、ボタンが押されて、役割を未確定端末としてRAM104に記憶した後、自身の役割が未確定端末であるか否かを判断する(S230)。自身の役割が未確定端末である場合、処理はS203へ進む。一方、自身の役割が未確定端末でない場合、CPU101は、PBC情報と、自身が参加端末であることを示す情報とを含むProbe Requestを送信し(S231)、Probe Responseの受信を待つ(S204)。
Probe Responseを受信し、そのProbe Requestに、PBC情報と、登録端末であることを示す情報とが含まれている場合(S205)、CPU101は、自身の役割が未確定端末であるか否かを判断する(S232)。自身の役割が未確定端末でない場合、処理はS234へ進む。一方、自身の役割が未確定端末である場合、CPU101は、自身の役割を参加端末としてRAM104に記憶する(S233)。続いて、処理はS234へ進む。
処理がS234へ進んだ場合、CPU101は、Probe Responseに、セットアップが実行可能であることを示す情報が含まれているか否かを判断する(S234)。セットアップが実行可能であることを示す情報が含まれていない場合、処理はS210へ進む。一方、セットアップが実行可能であることを示す情報が含まれている場合、CPU101は、Probe Responseの送信元端末との間で、自身からセットアップを開始し(S235)、セットアップの完了を待つ(S208)。
図14は、上記の登録待機動作と参加待機動作による動作の一例を示している。図14に示す例では、DSC10の構成を有する端末A,B,Cが存在している。以下、図6に示す例と異なる部分のみを説明する。
端末Bは、端末Aからボタン押しセットアップであることを示す情報(PBC情報)を含むProbe Requestを受信し、自身が登録端末であることを認識している(S115,S116,S119に対応)。この時点では、端末Bは他の端末とセットアップを行っていないため、セットアップが可能であり(S170に対応)、また受付期間中でもある(S172に対応)。このため、端末Bは、PBC情報と、自身が登録端末であることを示す情報(Registrar情報)と、セットアップ実行可能であることを示す情報(以下、Registration Ready情報と略記する)とを含むProbe Responseを端末Aへ返信し(S173に対応)、端末Aから送信されたProbe Requestを記憶する(S121に対応)。
端末Aは、端末Bから受信したProbe Responseが、PBC情報、Registrar情報、およびRegistration Ready情報を含んでいるので、自身の役割を参加端末として記憶し、端末Bとの間で自身からセットアップを開始する(S205,S232〜S235に対応)。セットアップが完了すると(S208に対応)、端末Aは参加待機動作を終了する。
端末Bは、端末Aからセットアップが開始される(S153,S154に対応)と、セットアップの終了を待つ(S131に対応)。また、端末Bは、端末CからPBC情報を含むProbe Requestを受信し、自身が登録端末であることを認識している(S115,S116,S119に対応)。しかし、この時点では、端末Aとの間でセットアップを実施中であるためセットアップが可能でなく、また受付期間中である(S170,S171に対応)。このため、端末Bは、端末CへPBC情報とRegistrar情報を含むProbe Responseを返信して、端末Cから送信されたProbe Requestを記憶する(S120,S121に対応)。この時点では、端末Aとの間でセットアップが実行中である(S128に対応)。この後、端末Aとの間のセットアップが終了するが(S131に対応)、端末Cとの間のセットアップが未実施である(S132に対応)。
端末Cは、端末BからPBC情報とRegistrar情報を含むProbe Responseを受信し、自身を参加端末として記憶する(S205,S232,S233に対応)。しかし、端末BからのProbe ResponseにはRegistration Ready情報は含まれていない(S234に対応)。そこで、端末Cはしばらく待ち(S210に対応)、自身の役割が参加端末となっているので、PBC情報と、自身が参加端末であることを示す情報(以下、Enrollee情報と略記する)とを含むProbe Requestを送信する(S230,S231に対応)。
そして、端末Cは、PBC情報、Registrar情報、Registration Ready情報を含むProbe Responseを受信するまで、任意の時間間隔ごとにProbe Requestの送信とProbe Responseの受信を繰り返す。
一方、端末Bは、端末Cから繰り返し送信されるProbe Requestに対して、受付期間中はPBC情報とRegistrar情報を含むProbe Responseを端末Cに返信する(S115〜117,S119,S170,S171,S120)。受付期間が終了した後、端末Bが、PBC情報とEnrollee情報を含むProbe Requestを受信すると、記憶済みProbe Requestの送信元端末の中で端末Cとの間でセットアップが未実施で、かつ既に端末CからのProbe Requestを記憶済みであるため、受信したProbe Request中のMACアドレスは、記憶済みの端末CからのProbe Request中のMACアドレスと一致する(S174,S175に対応)。しかし、端末Aと端末Bの間でセットアップが実行中の間、他のセットアップが可能でない(S176に対応)ため、端末Bは、PBC情報とRegistrar情報を含むProbe Responseを端末Cに返信する(S120に対応)。
端末Bが端末Aとの間のセットアップを完了した後に端末CからPBC情報とEnrollee情報を含むProbe Requestを受信すると、自身は登録端末であることを認識しており、セットアップが可能である(S115,S116,S119,S170に対応)。受付期間が終了しており(S172に対応)、記憶済みの端末CからのProbe Requestの送信元端末のMACアドレスと、直前に端末Cから受信したProbe Requestの送信元端末のMACアドレスとが同一であり、セットアップが可能なので(S174,S175,S176に対応)、端末Bは、PBC情報、Registrar情報、Registration Ready情報を含むProbe Responseを端末Cへ返信し(S173に対応)、端末Cからセットアップが開始されるのを待つ(S153に対応)。
端末Cは、端末BからPBC情報とRegistrar情報とRegistration Ready情報とを含むProbe Responseを受信すると(S204,S205,S234に対応)、端末Bとの間で自身からセットアップを開始し(S235に対応)、セットアップの完了を待って(S208に対応)、参加待機動作を終了する。
端末Bは、端末Cからセットアップが開始される(S153に対応)と、セットアップを開始し(S154に対応)、セットアップの完了を待つ(S131に対応)。端末Bは、端末Cとの間のセットアップが完了した(S131に対応)際、記憶済みのProbe Requestの送信元である端末A、端末Cのいずれともセットアップが完了しており(S132に対応)、受付期間も終了している(S133に対応)ので、端末Aおよび端末CからのProbe Requestを全てRAM104から削除して(S127に対応)、登録待機動作を終了する。
上記のように、参加端末となる端末A,Cから端末Bとのセットアップを開始することができる。従来のWPSでは、参加端末側からセットアップを開始するので、第3の動作例においては、セットアップ処理の手順を変更する必要がない。また、第2の動作例では、端末A,Cからセットアップを開始させるために端末Bが開始通知を送信するが、第3の動作例では、Registration Ready情報を含むProbe Responseを端末Bが送信することで、端末A,Cからセットアップが開始される。
<第4の動作例>
次に、第4の動作例を説明する。図15〜図16は、第4の動作例における登録待機動作の手順を示している。図3〜図4に示す手順と、図15〜図16に示す手順との違いは、図3〜図4に示す手順では、受付期間中であってもセットアップを随時開始していくのに対し、図15〜図16に示す手順では、端末同士がProbe Request、Probe Responseを用いて受付期間の残り時間を伝えあい、受付期間が短い方を適用するとともに、受付期間が完了してからセットアップを随時開始していくということである。以下、図3〜図4に示す手順と異なる部分のみを説明する。
S115,S116,S119で、CPU101は、PBC情報を含むProbe Requestを受信し、自身が登録端末である場合に、受信したProbe Requestが、受付期間の残り時間を示す情報を含んでいるか否かを判断する(S190)。Probe Requestが、受付期間の残り時間を示す情報を含んでいない場合、処理はS195へ進む。一方、Probe Requestが、受付期間の残り時間を示す情報を含んでいる場合、CPU101は、受付期間中であるか否かを判断する(S191)。
受付期間中でない場合、CPU101は自身の受付期間を開始し、受付期間の残り時間を、Probe Requestに含まれる受付期間の残り時間に設定する(S192)。一方、受付期間である場合、CPU101は、自身が把握している受付期間の残り時間が、Probe Requestに含まれている受付期間の残り時間と比較して長いか否かを判断する(S193)。前者の残り時間と後者の残り時間が同一、または前者の残り時間のほうが短い場合、処理はS195へ進む。一方、前者の残り時間のほうが長い場合、CPU101は、自身の受付期間の残り時間を、Probe Requestに含まれている受付期間の残り時間で更新する(S194)。続いて、処理はS195へ進む。
処理がS195へ進んだ場合、CPU101は、受付期間中であるか否かを判断する(S195)。受付期間中でない場合、処理はS122へ進む。受付期間中である場合、CPU101は、PBC情報と、登録端末であることを示す情報と、自身の受付期間の残り時間とを含むProbe Responseを、外部I/F106を介してProbe Requestの送信元端末へ送信する(S196)。続いて、処理はS121へ進む。
また、S128,S129で、セットアップが実行中でなく、かつ記憶済みProbe Requestの中で送信元端末とセットアップを実施していないProbe Requestがある場合、CPU101は、受付期間中であるか否かを判断する(S197)。受付期間中である場合、処理はS131へ進む。一方、受付期間中でない場合、CPU101は、RAM104に記憶済みのProbe Requestのうち、セットアップを実施していないいずれか1つの送信元端末からのProbe Requestの情報に基づいて、その送信元端末との間で、自身からセットアップを開始する(S130)。
また、S131,S132でセットアップが終了し、記憶済みProbe Requestの全ての送信元端末とセットアップが完了している場合、処理はS127へ進む。一方、セットアップが完了していない場合、処理はS111へ戻る。
図17〜図20は、第4の動作例における参加待機動作の手順を示している。CPU101は、前回のセットアップの情報をクリアするため、RAM104に記憶されている自身の役割をクリアする(S250)。続いて、CPU101は、アドホックネットワークへの接続を指示するための自身の装置のボタンが押されたか否かを判断する(S251)。前述したように、アドホックネットワークへの接続の指示は、装置に取り付けられている物理的なボタンを押すことだけではなく、LCDに表示されるメニューやボタンを選択決定することによっても可能である。
ボタンが押されていない場合、再度S251の判断が行われる。一方、ボタンが押されている場合、CPU101は受付期間を開始し(S252)、自身の役割を未確定端末(E/R)としてRAM104に記憶する(S253)。続いて、CPU101は、PBC情報と、自身が未確定端末であることを示す情報と、自身の受付期間の残り時間を示す情報とを含むProbe Requestを、外部I/F106を介して送信する(S254)。続いて、CPU101は、Probe Requestを送信してから所定時間内にProbe Responseを受信したか否かを判断する(S255)。
Probe Requestを送信してから所定時間内にProbe Responseを受信しなかった場合(例えば、全ての端末がアドホックネットワークに所属してなく、Probe Requestを受信できる端末がない場合)、処理はS275へ進む。一方、Probe Requestを送信してから所定時間内にProbe Responseを受信した場合、CPU101は、そのProbe Responseが、PBC情報と、登録端末であることを示す情報とを含んでいるか否かを判断する(S256)。Probe Responseが2つの情報のうち少なくとも一方を含んでいない場合、処理はS275へ進む。
一方、Probe Responseが2つの情報を含んでいる場合、CPU101は、受信したProbe ResponseをRAM104に記憶する(S257)。なお、受信したProbe Responseと同一内容のProbe ResponseをRAM104に記憶済みである場合、受信したProbe Responseを記憶しなくてもよい。続いて、CPU101は、受信したProbe Responseの中に、受付期間の残り時間を示す情報が含まれているか否かを判断する(S258)。受付期間の残り時間を示す情報が含まれていない場合、処理はS261へ進む。一方、受付期間の残り時間を示す情報が含まれている場合、CPU101は、自身が把握している受付期間の残り時間が、Probe Responseに含まれている受付期間の残り時間と比較して長いか否かを判断する(S259)。
前者の残り時間と後者の残り時間が同一、または前者の残り時間のほうが短い場合、処理はS261へ進む。一方、前者の残り時間のほうが長い場合、CPU101は、自身の受付期間の残り時間を、Probe Responseに含まれている受付期間の残り時間で更新する(S260)。続いて、CPU101は、自身がアドホックネットワークに所属しているか否かを判断する(S261)。自身がアドホックネットワークに所属している場合、処理はS263へ進む。一方、自身がアドホックネットワークに所属していない場合、CPU101は、アドホックネットワークを生成する処理を行う(S262)。アドホックネットワークを生成した端末は、他の端末からのProbe Requestを受信できるようになる。そのため、ここでは、自身でアドホックネットワークの生成を行わずに、例えばProbe Response送信元のアドホックネットワークに所属するように処理を行って、Probe Requestを受信できるようにしてもよい。続いて、処理はS263へ進む。
処理がS263へ進んだ場合、CPU101は、受付期間中であって、かつ受付期間の開始から所定時間が経過しているか否かを判断する(S263)。受付期間中でない、または受付期間の開始から所定時間が経過していない場合、処理はS280へ進む。一方、受付期間中であって、かつ受付期間の開始から所定時間が経過している場合、CPU101は、受付期間を終了し(S264)、RAM104に記憶済みのProbe RequestおよびProbe Responseの中で、登録端末であることを示す情報を含むものがあるか否かを判断する(S265)。
登録端末であることを示す情報を含むProbe Requestがなく、かつ登録端末であることを示す情報を含むProbe Responseもない場合、処理はS270へ進む。一方、登録端末であることを示す情報を含むProbe Requestがある場合、または登録端末であることを示す情報を含むProbe Responseがある場合、CPU101は、自身の役割を参加端末としてRAM104に記憶(S266)する。
続いて、CPU101は、記憶済みのProbe RequestおよびProbe Responseの送信元端末のいずれかの端末からセットアップが開始されたか否かを判断する(S267)。セットアップが開始されていない場合、再度S267の判断が行われる。一方、セットアップが開始された場合、CPU101は、その送信元端末によるセットアップの開始に合わせて自身のセットアップを開始する(S2671)。続いて、CPU101は、セットアップが完了したか否かを判断する(S268)。
セットアップが完了していない場合、再度S268の判断が行われる。一方、セットアップが完了した場合、CPU101は、RAM104に記憶済みのProeb RequestおよびProbe Responseを全て削除し(S269)、参加待機動作を終了する。
一方、処理がS270へ進んだ場合、CPU101は、RAM104に記憶済みのProbe RequestおよびProbe ResponseのそれぞれのMACアドレスと自身のMACアドレスを比較して自身のMACアドレスが最大値であるか否かを判断する(S270)。自身のMACアドレスが最大値ではない場合、処理はS266へ進む。一方、自身のMACアドレスが最大値である場合、CPU101は、自身の役割を登録端末としてRAM104に記憶する(S271)。このように、第4の動作例では、ボタンが押された端末の中に登録端末が存在しない場合でも、アドホックネットワークへの参加を希望する端末の中で最大のMACアドレスを有する端末が登録端末となる。なお、ここでは最大のMACアドレスで判断を行っているが、例えば最小のMACアドレスを有する端末が登録端末となってもよいし、大小の判断を例えばUUIDのように端末を一意に識別できる値に基づいて行ってもよい。
続いて、CPU101は、RAM104に記憶済みのProbe RequestおよびProbe Resonseの送信元端末のうち、セットアップを実施していないいずれか1つの端末との間で、自身からセットアップを開始する(S272)。続いて、CPU101は、セットアップが終了したか否かを判断する(S273)。
セットアップが終了していない場合、再度S273の判断が行われる。一方、セットアップが終了した場合、CPU101は、RAM104に記憶済みのProbe RequestおよびProbe Responseの送信元端末の全てとの間でセットアップが完了しているか否かを判断する(S274)。RAM104に記憶済みのProbe RequestおよびProbe Responseの送信元端末の1台以上との間でセットアップが完了していない場合、処理はS272に戻る。一方、RAM104に記憶済みのProbe RequestおよびProbe Responseの送信元端末の全てとの間でセットアップが完了している場合、処理はS269へ進む。
一方、処理がS275へ進んだ場合、CPU101は、自身がアドホックネットワークに所属しているか否かを判断する(S275)。自身がアドホックネットワークに所属している場合、処理はS2761へ進む。一方、自身がアドホックネットワークに所属していない場合、CPU101は、アドホックネットワークを生成する処理を行う(S276)。
続いて、CPU101は、受付期間中であって、かつ受付期間の開始から所定時間が経過しているか否かを判断する(S2761)。受付期間中でない、または受付期間の開始から所定時間が経過していない場合、処理はS277へ進む。一方、受付期間中であって、かつ受付期間の開始から所定時間が経過している場合、CPU101は受付期間を終了する(S2762)。続いて、処理はS265へ進む。
処理がS277へ進んだ場合、CPU101は、ボタンが押されてから所定時間が経過しているか否かを判断する(S277)。所定時間が経過していない場合、処理はS280へ進む。一方、所定時間が経過している場合、CPU101は、タイムアウトエラーとして所定時間その旨を表示部105に表示し(S278)、RAM104に記憶済みのProbe RequestおよびProbe Responseを全て削除してから(S279)、参加待機動作を終了する。
処理がS280へ進んだ場合、CPU101は、Probe Requestを受信したか否かを判断する(S280)。Probe Requestを受信していない場合、処理はS289へ進む。一方、Probe Requestを受信した場合、CPU101は、受付期間中であるか否かを判断する(S281)。受付期間中でない場合、CPU101は、PBC情報を含まないProbe Responseを、外部I/F106を介してProbe Requestの送信元端末へ送信する(S288)。続いて、処理はS289へ進む。
一方、受付期間中である場合、CPU101は、Probe RequestにPBC情報が含まれているか否かを判断する(S282)。Probe RequestにPBC情報が含まれていない場合、処理はS288へ進む。一方、Probe RequestにPBC情報が含まれている場合、CPU101はProbe RequestをRAM104に記憶する(S283)。続いて、CPU101は、受信したProbe Requestの中に、受付期間の残り時間を示す情報が含まれているか否かを判断する(S284)。
受付期間の残り時間を示す情報が含まれていない場合、処理はS287へ進む。一方、受付期間の残り時間を示す情報が含まれている場合、CPU101は、自身が把握している受付期間の残り時間が、Probe Requestに含まれている受付期間の残り時間と比較して長いか否かを判断する(S285)。前者の残り時間と後者の残り時間が同一、または前者の残り時間のほうが短い場合、処理はS287へ進む。一方、前者の残り時間のほうが長い場合、CPU101は、自身の受付期間の残り時間を、Probe Requestに含まれている受付期間の残り時間で更新する(S286)。
続いて、CPU101は、PBC情報と、自身が未確定端末であることを示す情報と、自身の受付期間の残り時間とを含むProbe Responseを、外部I/F106を介してProbe Requestの送信元端末へ送信する(S287)。続いて、CPU101は、所定時間が経過するのを待ち(S289)、S254で再度Probe Requestを送信する。
図21は、上記の登録待機動作と参加待機動作による動作の一例を示している。図21に示す例では、DSC10の構成を有する端末A,B,Cが存在している。
端末Cは、電源が入れられると、自身がアドホックネットワークの接続設定を記憶していないため、参加待機動作を開始する(S1,S20に対応)。参加待機動作では端末Aは、自身の役割をクリアし、ボタンが押されると、受付期間(例えば10秒)を開始して、自身の役割を未確定端末(E/R)と記憶し、ボタン押しセットアップであることを示す情報(PBC情報)と、自身が未確定端末であることを示す情報(E/R情報)と、受付期間の残り時間(ここでは10秒)とを含むProbe Requestを送信する(S250〜S254に対応)。
端末Bは、S251でボタンが押されるのを待っており、この時点ではアドホックネットワークに所属していないので、Probe Requestを受信しProbe Responseを返信することができない。
端末Aは、電源が入れられると、自身がアドホックネットワークNW1の接続設定を記憶しており、それを反映済みであるので、登録待機動作を開始する(S1,S10に対応)。登録待機動作では、端末Aは自身の役割をクリアする(S110に対応)。端末Cのボタンが押されてProbe Requestが送信された時点では、端末Aのボタンは押されていない(S111に対応)ので、PBC情報を含むProbe Requestを受信すると(S115,S116に対応)、受付期間中ではなく、また記憶済みのProbe Requestが存在しないため、端末Aは受付期間を開始する(S117,S118,S1181に対応)。この時点では自身の役割は何も設定されていないため(S119に対応)、端末Aは、PBC情報を含まないProbe Responseを端末Cに返信する(S122に対応)。
端末Cは、所定時間(この場合、Probe Responseの受信待ち時間)が経過する前に端末AからProbe Responseを受信するが、そのProbe ResponseはPBC情報を含んでいない(S255,S256に対応)。端末Cはアドホックネットワークには所属していないため、端末Cのみからなるアドホックネットワークを生成する(S275,S276に対応)。
この時点では、受付期間中であり、ボタンを押されてからタイムアウトとなるべき時間が経過していない(S2761,S277に対応)。端末Cは、Probe Requestを受信していないので(S280に対応)、しばらく待ってから(S289に対応)、再度Probe Requestを送信し、PBC情報を含むProbe Responseを待つとともに、他の装置からのProbe Requestの受信を待つ(S254,S255,S256,S280に対応)。
しばらくしてから端末Bのボタンが押された後、端末Cの動作と同様にして、端末Bは、PBC情報を含むProbe Requestを送信する。端末AがPBC情報を含むProbe Requestを受信すると、既に受付期間中であり、自身の役割は何も設定されていないため、PBC情報を含まないProbe Responseを端末Bに送信する(S115〜S117,S119,S122に対応)。
端末CがPBC情報を含むProbe Requestを受信する(S280に対応)と、受付期間中であるため、端末CはProbe Requestを記憶する(S281〜S283に対応)。端末Bから送信されたProbe Requestに含まれる受付期間の残り時間は10秒であり、この時点で端末Cの受付期間の残り時間が7秒であったとすると、端末Cはそのまま自身の受付期間を用いる(S284〜S286に対応)。
続いて、端末Cは、PBC情報と、自身が未確定端末であることを示す情報(E/R情報)、と自身の受付期間の残り時間(7秒)とを含むProbe Responseを端末Bに返信し(S287に対応)、しばらく待ってから(S289に対応)、再度Probe Requestを送信し、PBC情報を含むProbe Responseを待つとともに、他の装置からのProbe Requestの受信を待つ(S254,S255,S256,S280に対応)。
端末Bが端末AからProbe Responseを受信する際の動作は、端末Cが端末AからのProbe Responseを受信する際の動作と同じなので省略する。端末Bが端末CからPBC情報を含むProbe Responseを受信すると(S255,S256に対応)、端末BはProbe Responseを記憶する(S257に対応)。受信したProbe Responseに含まれる受付期間の残り時間は7秒であり、自身の受付期間の残り時間10秒よりも短いため、端末Bは自身の受付期間の残り時間を7秒に更新する(S258〜S260に対応)。
端末CからのProbe Responseが端末AからのProbe Responseよりも早く送信されたとすると、端末Bはアドホックネットワークに所属していないためアドホックネットワークを生成する(S261,S262に対応)。受付期間は完了していないため(S263に対応)、端末Bはしばらく待ってから(S289に対応)、再度Probe Requestを送信し、PBC情報を含むProbe Responseを待つとともに、他の装置からのProbe Requestの受信を待つ(S254,S255,S256,S280に対応)。
端末Aは、ボタンが押されると自身の役割を登録端末(Registrar)として記憶する(S111,S112に対応)。その後に、例えば端末Bが繰り返し送信している、PBC情報を含むProbe Requestを受信すると、受付期間中であり、自身はRegistrarである(S115〜S117,S119に対応)。Probe Requestには端末Bの受付期間の残り時間(ここでは3秒とする)が含まれており、まだ自身も受付期間中であり、自身の受付期間も3秒であるので、何もせずに先に進む(S190,S191,S193に対応)。受付期間中であるので、端末Aは、PBC情報とRegistrar情報を含むProbe Responseを送信し、端末Bから送信されたProbe Requestを記憶する(S195,S196,S121に対応)。
端末BがProbe Responseを受信する動作、端末Cが端末BからProbe Requestを受信する動作、および端末Cが端末BへProbe Responseを送信する動作については、前述した端末Bと端末Cの間のProbe RequestとProbe Responseの送受信と同じ動作なので、ここでは省略する。
端末Aは、例えば端末Cが繰り返し送信している、PBC情報を含むProbe Requestを受信すると、端末Bが繰り返し送信した、PBC情報を含むProbe Requestを受信した場合と同じ動作を行う。動作内容についての説明は省略する。
端末Aは、受付期間の開始から所定の期間が経過すると受付期間を終了する(S123,S124に対応)。記憶済みのProbe Requestには、端末Bと端末Cを送信元端末とするものが存在するが、セットアップはどちらの端末とも完了しておらず、かつ現在セットアップが実行中でない(S125,S126,S128,S129に対応)。受付期間が完了しているため、端末Aは端末Bとの間で自身からセットアップを開始する(S197,S130に対応)。
一方、端末Bは、受付期間の開始から所定の期間が経過して受付期間が終了すると(S2761,S2762に対応)、端末AからのProbe ResponseがRegistrar情報を含んでいるので(S265に対応)、自身の役割を参加端末(Enrollee)として記憶する(S266に対応)。端末Aからセットアップが開始され、セットアップが完了すると(S267,S2671,S268に対応)、端末Aは記憶済みのProbe RequestおよびProbe Responseの全てを削除して(S269に対応)、参加待機動作を終了する。
端末Cは、自身の役割を参加端末として記憶し、端末Aからセットアップが開始されるのを待つが、端末Bと同じ動作なのでここでは説明を省略する。
端末Aと端末Bの間のセットアップが終了したとき、端末Aと端末Cの間のセットアップは終了しておらず、セットアップの実行中でない(S131,S132,S128,S129に対応)。受付期間は終了しているので、端末Aは端末Cとの間でセットアップを開始する(S197,S130に対応)。
端末Cは、端末Aからセットアップが開始され、セットアップが完了すると(S267,S2671,S268に対応)、記憶済みのProbe RequestおよびProbe Responseの全てを削除して(S269に対応)、参加待機動作を終了する。
端末Aは、端末Cとのセットアップが終了し、記憶済みのProbe Requestの送信元端末の全て(端末Bと端末C)とセットアップが完了したため(S132に対応)、記憶済みのProbe Requestの全てを削除して(S127に対応)、登録待機動作を終了する。
上記のように、受付期間が終了してから、各端末間のセットアップを行うことができる。登録端末の処理能力が限られている場合には、Probe RequestやProbe Responseの送受信に係る処理が集中しやすい受付期間が終了した後にセットアップを行うことは効果的である。また、最初にボタンが押された端末の受付期間を基準として、各端末の受付期間が更新されるので、各端末が認識する受付期間はほぼ同じとなる。よって、1つのトリガを基準とする所定の受付期間内に参加を受け付けた参加端末と登録端末との間で受付期間の終了後にセットアップを行うことができる。
<第5の動作例>
次に、第5の動作例を説明する。図22は、第5の動作例における登録待機動作と参加待機動作による動作の一例を示している。図22に示す例では、DSC10の構成を有する端末A,B,Cが存在している。
端末Aは、ボタンが押されると、ボタン押しセットアップであることを示す情報(PBC情報)と、自身が未確定端末であることを示す情報(E/R情報)とを含むProbe Requestを送信する。
端末Bは、自身のボタンが押されたこと、または他の端末からProbe Requestを受信したことを契機として受付期間を開始する。この例では、端末Bは、端末AからのProbe Requestを受信すると、受付期間を開始し、受信したProbe Requestを記憶する。端末Bは、ボタンが押されると、自身の役割を登録端末(Registrar)として記憶する。
端末Cは、ボタンが押されると、PBC情報とE/R情報を含むProbe Requestを送信する。端末Bは、端末CからのProbe Requestを受信すると、受信したProbe Requestを記憶する。端末Bは、受付期間中はProbe Responseを送信しない。受付期間が終了すると、端末Bは、PBC情報と、自身が登録端末であることを示す情報(Registrar情報)とを含むProbe Responseを端末Aと端末Cに返信する。
端末Aは、PBC情報とRegistrar情報を含むProbe Responseを受信すると、自身の役割を参加端末(Enrollee)として記憶する。同様に、端末Cも、PBC情報とRegistrar情報を含むProbe Responseを受信すると、自身の役割を参加端末(Enrollee)として記憶する。この後、端末Bは端末Aとのセットアップを開始し、そのセットアップが終了したら、端末Cとのセットアップを開始する。
<第6の動作例>
次に、第6の動作例を説明する。図23は、第6の動作例における登録待機動作と参加待機動作による動作の一例を示している。図23に示す例では、DSC10の構成を有する端末A,B,Cが存在している。
端末Aは、ボタンが押されると、ボタン押しセットアップであることを示す情報(PBC情報)と、自身が未確定端末であることを示す情報(E/R情報)とを含むProbe Requestを送信する。
端末Bは、自身のボタンが押されたこと、または他の端末からProbe Requestを受信したことを契機として受付期間を開始する。この例では、端末Bは、端末AからのProbe Requestを受信すると、受付期間を開始する。続いて、端末Bは、PBC情報も、自身の役割を示す情報も含まないProbe Responseを端末Aに返信し、受信したProbe Requestを記憶する。端末Bは、ボタンが押されると、自身の役割を登録端末(Registrar)として記憶する。PBC情報も、自身の役割を示す情報も含まないProbe Responseを受信した端末Aは、PBC情報とE/R情報を含むProbe Requestを定期的に送信する。このProbe Requestに対して、端末Bは上記のProbe Responseを返信する。
端末Cは、ボタンが押されると、PBC情報とE/R情報を含むProbe Requestを送信する。端末Bは、端末CからのProbe Requestを受信すると、PBC情報も、自身の役割を示す情報も含まないProbe Responseを端末Cに返信し、受信したProbe Requestを記憶する。PBC情報も、自身の役割を示す情報も含まないProbe Responseを受信した端末Cは、PBC情報とE/R情報を含むProbe Requestを定期的に送信する。このProbe Requestに対して、端末Bは上記のProbe Responseを返信する。
受付期間が終了した後に、端末AからのPBC情報とE/R情報を含むProbe Requestを受信すると、端末Bは、PBC情報と、自身が登録端末であることを示す情報(Registrar情報)とを含むProbe Responseを端末Cに返信する。また、受付期間が終了した後に、端末CからのPBC情報とE/R情報を含むProbe Requestを受信すると、端末Bは、PBC情報とRegistrar情報とを含むProbe Responseを端末Cに返信する。
端末Aと端末Cは、PBC情報とRegistrar情報を含むProbe Responseを受信すると、自身の役割を参加端末(Enrollee)として記憶する。この後、端末Bは端末Aとのセットアップを開始し、そのセットアップが終了したら、端末Cとのセットアップを開始する。
<第7の動作例>
次に、第7の動作例を説明する。図24は、第7の動作例における登録待機動作と参加待機動作による動作の一例を示している。図24に示す例では、DSC10の構成を有する端末A,B,Cが存在している。図24に示す例は、図23に示す例とほぼ同様であるが、端末Bが受付期間内に端末Aと端末CからPBC情報とE/R情報を含むProbe Requestを受信した場合に返信するProbe Responseには、PBC情報と、自身の役割を示す情報とが含まれず、受付期間中であることを示す情報が含まれるということが異なる。
上述したように、本実施形態によれば、登録端末となる端末において、アドホックネットワークの接続設定を行うための1つのトリガに対して、複数の端末から受け付けた参加要求(Probe Request)のそれぞれを対応させ、それぞれの参加要求に応答して複数の端末のそれぞれをアドホックネットワークに参加させる接続設定を行うことによって、複数の端末がアドホックネットワークに参加するための接続設定を一括で行うことができる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上記では、本発明をアドホックモードに適用した場合の説明を行ったが、セキュリティの許容度によっては、本発明をインフラストラクチャモードに適用してもよい。