<第1実施形態>
以下、本実施形態に係る通信装置について、図面を参照しながら詳細に説明する。以下では、IEEE802.11シリーズに準拠した無線LANシステムを用いた例について説明するが、通信形態は必ずしもIEEE802.11準拠の無線LANには限らない。
本実施形態に好適な事例におけるハードウェア構成について説明する。
図1は本発明の一実施形態に係る、通信ネットワークに接続可能な通信装置(提供装置または受信装置)の構成の一例を表すブロック図である。101は装置全体を示す。102は、記憶部103に記憶されるコンピュータプログラムを実行することにより装置全体を制御する制御部である。制御部102は、他の装置との間で通信パラメータの設定制御も行う。103は制御部102が実行するコンピュータプログラムと、通信パラメータ等の各種情報を記憶する記憶部である。後述する各種動作は、記憶部103に記憶されたコンピュータプログラムを制御部102が実行することにより行われる。
104は無線通信を行うための無線部である。105は各種表示を行う表示部でありLCDやLEDのように視覚で認知可能な情報の出力、あるいはスピーカなどの音出力が可能な機能を有する。
106は通信パラメータ設定処理を開始するトリガを与える設定ボタンである。制御部102は、ユーザによる設定ボタン106の操作を検出すると、後述する処理を実行する。
107はアンテナ制御部、そして108はアンテナである。109は、ユーザが各種入力を行うための入力部である。
図2は、後述の通信パラメータ設定動作において、後述の各装置が実行するソフトウェア機能ブロックの構成の一例を表すブロック図である。
201は装置全体を示している。202は通信パラメータの自動設定機能ブロックである。本実施形態では、ネットワーク識別子としてのSSID、暗号方式、暗号鍵、認証方式、認証鍵等の無線通信を行うために必要な通信パラメータの自動設定を行う。
203は各種通信にかかわるパケットを受信するパケット受信部である。ビーコン(報知信号)の受信は、パケット受信部203によって行われる。204は各種通信にかかわるパケットを送信するパケット送信部である。ビーコンの送信は、パケット送信部204によって行われる。なおビーコンには、送信元の機器の各種情報(自己情報)が付加される。
205はプローブリクエストなどの機器検索信号の送信を制御する検索信号送信部である。なお、プローブリクエストは、所望のネットワークを検索するためのネットワーク検索信号ということもできる。プローブリクエストの送信は、検索信号送信部205により行われる。また、受信したプローブリクエストに対する応答信号であるプローブレスポンスの送信も検索信号送信部205により行われる。
206は他の装置からのプローブリクエストなどの機器検索信号の受信を制御する検索信号受信部である。プローブリクエストの受信は、検索信号受信部206により行われる。また、プローブレスポンスの受信も検索信号受信部206により行われる。なお機器検索信号、及びその応答信号には、送信元の機器の各種情報(自己情報)が付加される。
207は、ネットワーク接続を制御するネットワーク制御部である。無線LANアドホックネットワークへの接続処理などは、ネットワーク制御部207により実施される。
通信パラメータ自動設定機能ブロックにおいて、208は、通信パラメータ自動設定における各種プロトコルを制御する自動設定制御部である。
209は相手機器に通信パラメータを提供する通信パラメータ提供部である。後述の通信パラメータ自動設定の提供処理は、自動設定制御部208の制御に基づいて、通信パラメータ提供部209により行われる。210は相手機器より通信パラメータを受信する通信パラメータ受信部である。後述の通信パラメータ自動設定の受信処理は、自動設定制御部208の制御に基づいて、通信パラメータ受信部210により行われる。
また、通信パラメータ自動設定処理が開始されてからの経過時間が当該設定処理の制限時間を越えたか否かの判定も、自動設定制御部208で行われる。また、当該制限時間を超えたと判定した場合には、自動設定制御部208の制御により、設定処理が中止される。
211は、通信パラメータ自動設定処理における役割を決定する役割決定部である。後述の役割決定処理は、役割決定部211により実施される。
212は、通信パラメータの自動設定の開始と終了の通知に関する処理を制御する設定通知制御部である。後述する提供装置における開始通知メッセージ、開始通知応答メッセージ、および完了通知メッセージの送受信処理は、設定通知制御部212により実施される。
213は、ビーコン制御部であり、ビーコン(報知信号)の送信タイミングを制御する。ここで、IEEE802.11無線LANのアドホックネットワークにおけるビーコンの送信アルゴリズムについて説明する。
アドホックネットワークにおけるビーコンの送信は、ネットワークを構成する全ての装置間で自律分散的に行われる。ビーコンの送信間隔(ビーコン周期)は,アドホックネットワークを最初に作成した装置が決定することになっており、通常は100ms程度の間隔でいずれかの装置からビーコンが送信される。なお、アドホックネットワークではいずれか1つの装置がビーコンの送信を開始することにより、ネットワークが形成される。
ビーコンを送信するタイミングはコンテンションウィンドウ(乱数発生範囲、以下CW)と呼ばれるパラメータにより制御される。ネットワーク内の各装置は、ビーコンを送信する時間になると0からCWの中からランダムなある値(CWrand)を求める。このCWrandに、予め定められた一定の間隔(スロットタイム)を掛けた時間をビーコン送信までの待ち時間(バックオフ時間)とする。
次に、前記ビーコン送信までの待ち時間をスロットタイムでデクリメントしていき、待ち時間が0になったときにビーコンを送信する。もし、自装置がビーコンを送信する前に他の装置からのビーコンを受信した場合は、ビーコンを送信する処理を中止する。
このようにすることにより、各装置から送信されるビーコンの衝突を防ぐことができる。アドホックネットワーク上の各装置は、0からCWの間の乱数を選択するので、ネットワークを構成している装置のうち、もっとも小さいCWrandを選択した装置がビーコンを送信することになる。
例えば、各装置に初期値として同一のCWが設定されている場合は、各装置によるビーコンの送信確率は同じになり、その結果として、各装置による単位時間当たりのビーコンの送信回数はほぼ同じになる。言い換えれば、各装置によるビーコンの送信頻度(送信割合)は同じになる。
一方でネットワーク上の1つの装置がCWを初期値よりも小さい値に設定すると、当該装置が他の装置よりもビーコンを送信する確率は高くなる。つまり、CWはビーコンの送信確率を決定するためのパラメータ、又はビーコンの単位時間当たりの送信回数を決定するためのパラメータということができる。
又、各装置が送信するビーコンの送信割合を決定するためのパラメータということもできる。また、CWはビーコンを送信するタイミングを決定するためのパラメータ、ビーコンの送信までの待ち時間を決定するためのパラメータと言い換えることもできる。
なお、CWの値は、CWmin(最小値)からCWmax(最大値)までの範囲で変更することが可能であり、CWminに設定すると単位時間当たりのビーコンの送信回数が最大になる。各装置には、初期値としてCWinit(>CWmin)が設定されており、通信パラメータ自動設定処理が実行されていない間は、初期値を用いてビーコンの送信が行われる。
図3は、通信装置A300(以下、装置A)、通信装置B301(以下、装置B)を示した図である。これら全ての装置は、先に説明した図1、図2の構成を有している。
装置Aと装置Bはともに、通信パラメータの提供装置、または受信装置として動作するか未決定の状態で、それぞれ、ネットワークA302(以下、ネットワークA)とネットワークB303(以下、ネットワークB)を作成している。
装置Aと装置Bは、それぞれの装置を相互に発見し、どちらの装置が提供装置となるか決定する。その結果、提供装置となった装置から受信装置となった装置に対して通信パラメータを提供する。
また、ネットワークAおよびネットワークBは、それぞれ、装置Aと装置Bにより作成されるアドホックネットワークである。アドホックネットワークは、IBSS(Independ Basic Service Set)と呼ばれ、各ネットワークはネットワーク識別子であるBSSIDにより区別される。ここで、BSSIDとはネットワークを作成する装置が生成するランダムな値のネットワーク識別子である。なお、SSIDは機器に予め設定しておくことも、ユーザが任意の値を設定することも可能なネットワーク識別子であり、BSSIDとは異なるものである。また、上記説明で明らかなように、BSSIDは、通信パラメータ自動設定処理によって提供装置から受信装置へ提供される通信パラメータではない。
図4は、装置Aと装置Bにおいて、設定ボタン106が押下され、装置Aと装置Bの間で通信パラメータの自動設定処理を実施した場合の処理シーケンスの一例を示した図である。
装置Aと装置B夫々において設定ボタン106が押されると、装置AはユニークなネットワークAを作成し(F401)、装置BもユニークなネットワークBを作成する(F402)。なお、ここでは装置Bの設定ボタン106が先に押され、装置Bが先にネットワークを作成するものとする。
装置Aと装置Bは、その動作役割(以下、役割)として提供装置にも受信装置にも確定していないことを示す「提供装置候補」に設定され(F403、F404)、動作役割を決定するまでの制限時間であるタイマT1を開始する(F405,F406)。
装置Aおよび装置Bは、ビーコン(報知信号)を送信する(F407、F408)。ビーコン信号は、作成したネットワークにおいて通信パラメータの自動設定処理機能を有している、あるいは自動設定処理中であることを通知する情報要素(Information Element)を含む。また、ビーコンに現時点の役割である「提供装置候補」を示す情報要素を含めてもよい。
このビーコンには、ネットワークAとネットワークBで異なるBSSIDが含まれるため、該ビーコンを受信した装置は、いずれのネットワークに属する装置から送信されたビーコンであるかを認識できる。
引き続いて、装置Bは、検索信号Aを送信する(F409)。検索信号Aにもビーコン同様に、通信パラメータの自動設定処理機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素を含めて送信する。
装置Aは装置Bから送信された検索信号Aを受信したら、検索応答信号Aを装置Bに対して送信する(F410)。検索応答信号Aにも、ビーコンや検索信号Aと同様に、通信パラメータの自動設定処理機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素を含めて送信する。
ここで、装置Bにおいて提供装置を検出できないままタイマT1が満了すると(F411)、装置Bは自身の動作役割を提供装置に設定する(F412)。
今度は、装置Aが検索信号Aを送信する(F413)。装置Aから送信される検索信号Aも、通信パラメータの自動設定処理機能を有している、あるいは自動設定処理中であることを示す情報要素や現時点の役割である「提供装置候補」を示す情報要素を含んでいる。
装置Bは装置Aから送信された検索信号Aを受信したら、検索応答信号Bを装置Aに対して送信する(F414)。検索応答信号Bには、ビーコンや検索信号Aと同様に、通信パラメータの自動設定処理機能を有している、あるいは自動設定処理中であることを示す情報要素、現時点の役割が含まれる。この時点では、装置Bは自身の動作役割を提供装置に決定しているため、「提供装置」を示す情報要素が含まれる。ここで、役割としての「提供装置」を示す情報要素に加えて、通信パラメータを提供可能な状態であることを示す情報要素を付加してもよい。
次に、装置Aは装置Bから送信された検索応答信号Bを受信し、装置Bの役割が提供装置であり、通信パラメータを提供可能な状態であることを確認する。そこで、装置Aは、タイマT1を停止して(F415)、自身の役割を受信装置に設定し(F416)、装置Bが作成したネットワークBへ参加する(F417)。これによって、装置Aと装置Bの間では、通信パラメータの自動設定プロトコル処理で交わされる通信メッセージ(プロトコルメッセージ)を相互に送受可能となる。
ここで、自動設定プロトコル処理とは、提供装置から受信装置へ通信パラメータを提供するために予め定められた各種通信メッセージの送受信を行う処理のことをいう。なお、WPSでは上記プロトコル処理のことをRegistrationプロトコルと呼んでいる(非特許文献1参照)。本実施形態では説明を簡単にするため、受信装置から提供装置に対して通信パラメータ設定起動を示すメッセージを送信し、該メッセージに応じて提供装置が受信装置に対する通信パラメータの提供処理を行う。そして、通信パラメータの提供が完了したら、提供装置が通信パラメータ設定完了のメッセージを送信するものとして説明する。
なお、F417で装置AがネットワークBに参加した時点では、暗号鍵、認証鍵等の通信パラメータが装置Aに設定されていないため、装置Aは装置Bとの間で暗号、認証を用いた通信を行うことはできない。
なお、装置Aと装置Bの間で、通信パラメータの提供装置あるいは受信装置の役割を決定するにあたっては、検索信号と検索応答信号を用いた。
しかし、敢えて検索信号や検索応答信号の送受を行わず、相互に送受信するビーコンの情報を用いて役割を決定してもよい
装置Aは装置Bが作成したネットワークに参加すると、装置Bに通信パラメータ設定起動を示すメッセージを送信し(F418)、提供装置である装置Bから受信装置である装置Aに対する通信パラメータ提供処理を行う(F419)。通信パラメータの提供が完了すると、装置Bは装置Aに対して通信パラメータ設定完了のメッセージを送信する(F420)。これにより通信パラメータ設定処理が完了し、装置Aと装置Bの間で通信パラメータが共有される。
そして、装置Aと装置Bでは、共有した通信パラメータを用いて通信接続処理を行う(F421)。
なお、通信パラメータ設定処理の終了と同時に通信接続処理の開始を行うことで、ユーザに操作を強いることなく装置Aと装置Bが通信可能となる。その場合に、装置が通信接続処理を開始したことを明示的に表す接続要求信号を送信してもよい。アドホックモードでは、インフラストラクチャモードのようなアソシエーション処理が行われないが、接続要求信号の受信により、接続を要求してきた装置を即座に認識することができる。
本実施形態では、装置Bは装置Aに対して、ネットワークBの通信パラメータを送信し、その通信パラメータで通信接続処理を行った。この場合、装置Aが装置Bに対して接続要求信号を送信することにより、装置Bは装置AがネットワークBへ参加したことを知ることができ、参加台数の把握も容易になる。
また、通信接続処理の開始前にユーザに接続開始を確認するようにし、ユーザからの操作に応じて通信接続処理を開始してもよい。例えば、通信パラメータ設定処理が終了すると、表示部105にて、接続を開始するか否かの選択を促す表示を行い、ユーザによる入力部109からの入力に応じて、通信接続処理を開始するようにしてもよい。
また、装置Bが装置Aに対して、ネットワークBと異なるネットワークを示す通信パラメータを送信してもよい。例えば、ネットワークCで通信するための通信パラメータを装置Bから装置Aへ提供し、提供後に装置A、B共にネットワークCで通信するようにしてもよい。その場合は、装置A又は装置BはネットワークC上で他方の装置を検出したことをトリガに通信接続処理を開始するようにすればよい。
図8は、装置Aと装置Bにおいて、設定ボタン106が押下され、装置Aと装置Bの間で提供装置あるいは受信装置のいずれで動作するかを決定し、通信パラメータの自動設定処理を実施した場合の動作フローの一例を示したフローチャートである。
以下、本フローチャートに沿って両装置が実行する制御について説明する。
まず、通信パラメータ設定処理の開始を指示するための設定ボタン106が押される(S801)。
設定ボタン106が押下された装置では、自身が現在すでにネットワークに参加しているかどうかを調べる(S802)。ここで、ネットワークに参加している場合とは、例えば既に他の装置との間で行った通信パラメータ設定処理によって共有した通信パラメータを用いてネットワークを構成している場合である。もしすでにネットワークに参加しているのであれば、参加中のネットワークに別の新しい装置を参加させるために、自身の役割を提供装置に設定する(S815)。そして、自身の役割が提供装置であることを示す情報等を含んだビーコンの送信を開始する(S816)。
その後、ネットワークへ参加する新しい装置からの通信パラメータ設定起動を示すメッセージを受信すると、通信パラメータ提供処理を開始する(S817)。即ち、ステップS817において開始する通信パラメータ提供処理では、自身がネットワークに参加している場合には、自身が参加中のネットワークの通信パラメータを提供する。なお、自身が現在すでにネットワークに参加している場合には、後述の図6で示す開始通知処理を起動する。ここで、ビーコン(報知信号)、検索信号(プローブリクエスト)、検索応答信号(プローブレスポンス)には、以下の情報要素が信号に応じて必須、あるいはオプションとして含まれるものとする。
・通信パラメータの自動設定処理機能を有する、あるいは自動設定処理中であることを通知する情報要素
・自装置の役割を示す情報要素
・提供機能が起動中か否かを示す情報要素
S802において、ネットワークに参加していない場合には、動作役割を決定するために自らネットワークを作成し(S803)、役割を提供装置候補に設定した上で(S804)、後述する提供装置探索処理を起動する(S805)。なお、ステップS803では、任意の無線LANチャネル上でネットワークを作成する。ここで、無線LANチャネルとは、無線LANでの通信に使用することが認められている通信チャネル(周波数チャネル)である。例えば、IEEE802.11g準拠の無線LANの場合は、日本国内で1chから13chまでの通信チャネルを使用できる。また、S805の提供装置探索処理については、図17、図19、図20により後述する。
提供装置探索処理の結果、役割が提供装置である装置を発見した場合は(S806)、自身の役割を受信装置に設定し(S807)、提供装置が作成したネットワークに参加する(S808)。ネットワークへ参加後、自身の役割が「受信装置」であることを示す情報を含んだビーコン送信を開始する(S809)。なお、この時点では提供装置から通信パラメータの提供を受けていないため、参加したネットワークにて暗号、認証を用いた通信を行うことはできない。ネットワークに参加した装置は、通信パラメータの提供を要求するために、通信パラメータ設定起動を示すメッセージを提供装置へ送信し、提供装置からの通信パラメータの受信処理を開始する(S810)。
他方、提供装置探索処理の結果、役割が提供装置である装置を発見できない場合には(S806)、自装置の役割を提供装置に設定する(S815)。そして、提供装置であることを示す情報を含んだビーコン送信を開始し(S816)、受信装置からの通信パラメータ設定起動を示すメッセージの受信に応じて、通信パラメータ提供処理を開始する(S817)。なお、ステップS817において開始する通信パラメータ提供処理では、自身がネットワークに参加していない場合には、ステップS803で作成したネットワークの通信パラメータを提供する。
また、役割が受信装置となり、提供装置からの通信パラメータの受信処理を開始した装置は、通信パラメータの受信が完了したかどうかを確認する(S811)。通信パラメータの受信が完了した場合には、表示部105でLCDにメッセージを表示する、あるいはLEDの点滅・点灯・色や音などでユーザが識別可能なように通信パラメータ設定の成功を示す表示を行い(S814)、処理を終了する(S822)。またエラーが発生した場合には(S812)、同様に表示部105でLCDにメッセージを表示する、あるいはLEDの点滅・点灯・色や音などでユーザが識別可能なようにエラー通知を行い(S813)、処理を終了する(S822)。
一方、役割が提供装置となり、通信パラメータ提供処理を開始した装置は、通信パラメータの提供が完了したかどうかを確認する(S818)。通信パラメータの提供が完了した場合には、表示部105でLCDにメッセージを表示する、LEDの点滅・点灯・色や音などでユーザが識別可能なように通信パラメータ設定の成功を示す表示を行い(S821)、処理を終了する(S822)。またエラーが発生した場合には(S819)、表示部105でLCDにメッセージを表示する、あるいはLEDの点滅・点灯・色や音などでユーザが識別可能なようにエラー通知を行い(S820)、処理を完了する(S822)。
図17は、図8のステップS805にて行われる提供装置探索処理を実施した場合の動作フローの一例を示したフローチャートである。以下、本フローチャートに沿って提供装置探索処理の制御について説明する。
まず、提供装置探索処理が開始されると、タイマT1を開始する(S1701)。引き続き、ネットワークを作成した通信チャネル(以下、自チャネルと呼ぶ)上でビーコン(報知信号)を送信する(S1702)。そして、自チャネルにビーコンを送信する間隔と、その他の通信チャネルにて検索信号(プローブリクエスト)を送信する間隔とを決定するために、自チャネルのビーコンインターバルを判定する(S1703)。検索信号を送信した後(後述のS1707の処理後)は、ビーコンインターバルによって決まる次のビーコン送信までだけ待機する。
タイマT1が満了したか否かを判定する(S1704)。タイマT1が満了していなければ、自チャネルにビーコン(報知信号)を送信する(S1705)。ここでビーコンを送信する期間は、ビーコンインターバルの長さだけでも良いし、それよりも長いランダムな長さでも良い。
次に、検索用チャネルを設定する(S1706)。検索用チャネルの設定にあたっては例えば次のような処理を行う。日本国内でIEEE802.11g準拠の無線LANの場合は、1chから13chまでを無線LANチャネルとして使用できる。本実施形態では、1回目の検索用チャネル設定処理では、1chを設定する。その後13chまでステップS1706の処理を実行するごとに1chずつチャネル番号を増加させていく。そして、13chを設定した後の次のステップS1706の処理では再度1chの設定を行うというようにチャネル設定を行う。なお、例えばアメリカ合衆国内では、1chから11chまでが使用できるため、日本国内と同様に1chから設定を行っていった場合は、11chを設定した後の次のステップS1706で再度1chの設定を行うということになる。
このように1チャネルごとにチャネルを切替える方法のほかに、とびとびにチャネルを切替えていく方法もある。IEEE802.11gの電波特性から、隣接チャネルには微弱ながらも電波が漏れるため、隣接チャネルで送信された検索信号を受信し、応答信号を返信することも可能であるという特性がある。よって、1回目のチャネル設定では、検索用チャネルを2chに設定して1chから3chまでの帯域の検索を行うことができる。即ち、設定された通信チャネルを中心とした3チャネルの帯域に渡って通信相手装置を探索する。同様に、2回目は5chに設定して4chから6chまでの検索を行う。以降、3回目は8ch、4回目は11ch、5回目は13ch、6回目で先頭に戻り2chに設定するというような検索チャネル設定方法でもよい。
なお、当然ながらチャネル選択は、ここで説明したようなシーケンシャルな設定順でなく、ランダムな設定順でもよいし、複数回同一のチャネルで検索処理を実施するようにしてもよい。さらには、ここで説明した以外にもチャネルを予め定めた手法により、グルーピングしてグループ毎に検索処理を実施しても良い。
このようにステップS1706での検索用チャネル設定処理は、予め定めたアルゴリズムによってチャネル設定を変化させるような処理である。
図17のフローチャートの説明に戻る。ステップS1706にて設定した検索用チャネルにて検索信号(プローブリクエスト)を通信ネットワーク上に送信する(S1707)。上記の検索信号送信後、検索応答の受信を次のビーコン送信時間まで待機する(S1708)。次のビーコン送信時間になっても検索応答を受信しない場合は、ステップS1704に戻り、タイマT1の残時間を判定し、タイマが満了していない場合は、再び自チャネルでのビーコン送信からの処理を繰り返す。
ステップS1708において、検索応答を受信した場合は、受信した検索応答信号の内容を確認し、相手装置の役割が通信パラメータ提供装置か否かを判定する(S1709)。相手装置の役割が通信パラメータ提供装置であった場合は、検索結果を保持し(S1710)、提供装置探索処理を終了する。また、ステップS1709での判定処理の結果、相手装置の役割が提供装置で無かった場合は、ステップS1704に戻り、タイマT1の残時間を判定し、タイマが満了していない場合は、再び自チャネルでのビーコン送信からの処理を繰り返す。なお、ステップS1704においてタイマT1が満了した場合は、提供装置を検出できなかったものとして、提供装置探索処理を終了する。
ここで説明したような提供装置探索処理を実施することにより、自チャネルでのビーコン送信と、他のチャネルでの検索処理を交互にすることができる。
以上のような、ビーコンを送信するチャネルと、検索信号を送信し、検索応答信号の受信を待機するチャネルと、を切替えながら提供装置探索処理を行う例、及びその効果について図19、20を用いて説明する。
図19は、図17の処理を行わず、自チャネルでのビーコン送信後にチャネルを順番に切替えながら提供装置を探索する場合の例を示した図である。装置Aは(a)で示される期間だけ自チャネルでビーコンを送信する。その後、(b)の期間に、提供装置が見つかるまで、全チャネルを切替えながら検索信号の送信と検索応答の受信待ちを行う。
一方、装置Bについても、装置Aと同様に(d)で示される期間だけ自チャネルでビーコンを送信する。その後、(e)の期間に、提供装置が見つかるまで、全チャネルを切替えながら検索信号の送信と検索応答の受信待ちを行う。
ここで、装置Aは(b’)の期間に、装置Bがネットワークを形成したチャネルで検索信号の送信と検索応答信号の受信待ちを行っているものとする。この場合、(b’)の期間に装置Bは自チャネルでビーコンを送信していないため、装置Aからの検索信号を受信できず、検索応答信号を返信することができない。
また、同様に、装置Bは(e’)の期間に、装置Aがネットワークを形成したチャネルで検索信号の送信と検索応答信号の受信待ちを行っているものとする。この場合も、(e’)の期間では装置Aは自チャネルでビーコンを送信していないため、装置Bからの検索信号を受信できず、検索応答信号を返信することができない。
このように、お互いが提供装置の探索処理を実施しているときは、自チャネルのビーコン報知期間は短く、自チャネルでビーコンを報知するまでの間の間隔が長いため、装置Aは装置Bを検出できず、装置Bは装置Aを検出することができない。
そこで、本実施形態で説明したような提供装置探索処理を実施することで、このような状況が生じる可能性を低減できる。図20は、装置A,装置Bが図17の提供装置探索処理を実施した場合の一例を示した図である。装置Aは(a)で示す期間に自チャネルでビーコンを送信する。その後、(b)で示す期間に第一のチャネルで検索処理を実施する。その後、再度自チャネルでビーコンを送信し(c)、その後は第二のチャネルで検索処理を実施する(d)。こうして、自チャネルでのビーコン送信と、他のチャネルでの検索信号送信及び検索応答信号の受信待機と、を交互に行う。
装置Bについても、装置Aと同様の処理を実施している。これにより、例えば、装置Bがネットワークを形成したチャネルでの検索処理を装置Aが行っている期間(d)と、装置Bがビーコンを報知している期間(o)が重なる。その結果、装置Aから送信される検索信号に対して装置Bが検索応答信号を返信することにより、装置Aは装置Bを検出することが可能となる。
同様に、装置Aがネットワークを形成したチャネルでの検索処理を装置Bが行っている期間(r)と、装置Aがビーコンを報知している期間(g)が重なる。その結果、装置Bから送信される検索信号に対して装置Aが検索応答信号を返信することにより、装置Bは装置Aを検出することが可能となる。
以上で説明した通り、本実施形態で説明した提供装置探索処理を実施することにより、相手の通信装置を検出する確率を向上させることができる。
なお、図17ではプローブリクエストに対するプローブレスポンスの受信を待機することにより、通信パラメータの設定処理を開始している提供装置を検索する方法(アクティブスキャン)について説明した。通信パラメータの設定処理を実行中の提供装置は、通信パラメータ自動設定を意味する付加情報を付加したビーコンを送信するので、受信装置は一定時間、当該ビーコンが送信されてくるのを待つ方法(パッシブスキャン)を用いるようにしてもよい。
また、ステップS1709では、受信した検索応答信号の情報要素に含まれる相手の役割が「提供装置」かどうかを判定する方法について説明した。ここで、受信した検索応答信号の情報要素に含まれる相手の役割が「提供候補装置」であった場合に、検索応答信号に含まれる情報を利用して自身の役割を提供装置に決定するか否かを判定してもよい。具体的には、例えば検索応答信号を送信する装置が、設定ボタン106を押下してから経過した時間を検索応答信号に格納して送信する。検索応答信号を受信した装置は、格納されている設定ボタン106を押下してから経過した時間と、自身の設定ボタン106を押下してから経過した時間とを比較する。比較した結果、自身の方が検索応答信号を送信した装置よりも以前に設定ボタン106を押下していた場合には、自身の役割を提供装置に設定し、ステップS816へ進む。
また、比較した結果、検索応答信号を送信した装置の方が自身よりも以前に設定ボタン106を押下していた場合には、検索応答信号を送信した装置へ通知信号を送信し、通知信号を受信した装置は自身の役割を提供装置に設定してもよい。
以上のように、通信パラメータ設定処理の開始を指示するユーザ操作がなされた時刻を検索応答信号に含めておき、探索された通信相手装置が提供装置として確定していない場合には、その時刻を参照して提供装置か否かを判定する様に構成できる。ここで、検索応答信号に含まれる時刻が、通信パラメータ設定処理の開始の指示が自身に対してなされた時刻よりも早い場合に、当該通信相手装置を提供装置として判定する。上記処理を行うことで、速やかに提供装置を決定することが可能となる。なお、比較する情報としては、上記ボタン106を押下してから経過した時間に限られるものではない。例えば装置のMACアドレスの大小を比較してもよいし、検索応答信号に含まれるTiming Synchronization Function (TSF)の値を比較してもよい。
次に、構築済みのアドホックネットワークへ通信パラメータの自動設定を用いて新たに装置を追加する場合について説明する。なお、構築済みのアドホックネットワークとは、通信パラメータ設定処理を行った装置間で共有された通信パラメータにより複数の装置で構成されたアドホックネットワークのことを指すものとする。
図5は、第1の通信装置A500(以下、装置A)、第2の通信装置B501(以下、装置B)、第3の通信装置C503(以下、装置C)、およびネットワーク502を示した図である。装置A、装置B、および装置Cは先に説明した図1、図2の構成を有している。
ここで、装置Aと装置Bから構成されるネットワーク502へ装置Cが参加する際に、装置Bと装置Cの設定ボタンが操作された場合を考える。
図6は、提供装置の通知処理動作を説明するフローチャート図である。図8のステップS802において、装置がネットワークへ参加中の場合に、該装置は図6の処理を開始する。
処理が開始されると、提供装置のビーコン制御部213は提供装置による単位時間当たりのビーコンの送信頻度(送信割合、送信回数)を増加させる(S601)。
なお、IEEE802.11無線LANのアドホックネットワークにおいては、プローブレスポンスを返信する装置は、プローブリクエストを受信する直前にビーコンを送信した装置であることが規定されている。
そこで、ステップS601では、CWを初期値よりも小さな値に設定する。これにより、提供装置による単位時間当たりのビーコンの送信回数が、ネットワークに参加中の他の装置よりも多くなる。この結果、新規に参加する装置による提供装置の検索処理(図8のステップS805)において、提供装置からのプローブレスポンスを短時間で検出することが可能となる。
このように、提供装置のビーコンの送信頻度を高くすることで、新規に参加する装置が提供装置を検索する場合に、提供装置からのプローブレスポンスを受信する確率が高くなる。また、新規に参加する装置がパッシブスキャンにより提供装置を検索する場合であっても、提供装置からのビーコンを受信する確率が上がる。
その結果、新規に参加する装置が提供装置を検出できないまま通信パラメータ設定処理の制限時間を経過してしまう確率を下げることが可能となる。また、新規に参加する装置が提供装置を短時間で検出することができれば、通信パラメータの提供が完了するまでの時間も短縮することができる。
その後、提供装置は、通信パラメータの自動設定が開始されたことを通知する開始通知メッセージをブロードキャスト送信する(S602)。なお、本開始通知メッセージをネットワークに参加している各装置にユニキャスト送信してもよい。また、本開始通知メッセージは、装置Bが提供装置としての動作を開始したことを通知するメッセージと言い換えることもできる。
提供装置は起動した提供処理がエラー終了する(S606)か、受信装置への通信パラメータの提供が完了する(S603)か、または他の装置からエラー通知又は完了通知メッセージを受信する(S605、S608)まで待機する。
提供処理が成功し、受信装置への通信パラメータの提供が完了した場合は(S603)、提供装置は完了通知メッセージをブロードキャスト送信する(S604)。なお、本完了通知メッセージをネットワークに参加している各装置にユニキャスト送信してもよい。
ステップ604により完了通知メッセージを送信するか、または他の装置から完了通知メッセージを受信した(S605)場合は、ステップS609ヘ進む。
また、提供処理が失敗した場合は(S606)、提供装置はエラー通知メッセージをブロードキャスト送信する(S607)。なお、エラー通知メッセージをネットワークに参加している各装置にユニキャスト送信してもよい。
ステップ607によりエラー通知メッセージを送信するか、または他の装置からエラー通知メッセージを受信した(S608)場合は、ステップS609へ進む。
ステップS609において、提供装置のビーコン制御部213はCWを初期値に再設定し、ステップS601にて増加したビーコンの送信頻度を元に戻す(S609)。なお、CWの初期値への再設定は、提供処理の開始後であれば、処理開始直後、提供処理完了後、エラー後のいつでもよい。処理開始後直後に再設定すれば、ビーコンを送信する頻度(回数)が低くなるので、ビーコン送信による消費電力をより効率的に低減することができる。また、ステップS602にて送信した開始通知メッセージは、提供処理がエラー終了するか、または受信装置へ通信パラメータを提供するか、または他の装置から通知メッセージを受信するまで、繰り返し送信される。
図7は、ネットワークに参加中の提供装置以外の装置(装置A)の代理応答処理動作を説明するフローチャート図である。装置Aが開始通知メッセージを受信すると、図7の処理が開始される。
装置Aの自動設定制御部208は、開始通信メッセージの受信を検出すると、ステップS702〜S707にて説明する処理の制限時間を経過したか否かを判定するためのタイマを起動する(S701)。
次に自動設定制御部208は、送信するビーコンおよび検索応答信号(プローブレスポンス)に含める情報の内容を変更する(S702)。ステップS702において、自動設定制御部208は、送信するビーコンおよび検索応答信号に、提供装置(装置B)を一意に識別する識別情報を付加する。識別情報としては、例えば提供装置のMACアドレス情報を格納する。これにより、検索信号に対して提供装置ではない装置Aが検索応答信号を返した場合でも、検索信号の送信元の装置は提供装置の存在を検出することが可能となる。
そして、ビーコン制御部213はCWを初期値より大きい値に変更して設定し(S703)、ビーコンの送信頻度(送信割合)を削減する。
これにより、ネットワークに参加中の提供装置以外の装置による単位時間当たりのビーコンの送信回数が、提供装置よりも少なくなる。この結果、新規に参加する装置による提供装置の検索処理(図8のステップS805)において、提供装置からのプローブレスポンスを短時間で検出することが可能となる。
その後、装置Aは提供装置から送信される完了通知メッセージまたはエラー通知メッセージを待ち受ける(S704、S705)。通知メッセージを受信すると、装置Aのビーコン制御部213はCWを初期値に再設定し(戻し)、ステップS703にて削減したビーコンの送信頻度を元に戻す(S706)。更に自動設定制御部208は、送信するビーコンおよび検索応答信号に含める情報の内容を、ステップS702で行った変更前の内容に戻す(S707)。すなわち、送信するビーコンおよび検索応答信号に付加された、提供装置(装置B)を一意に識別する識別情報を除去する。
なお、ステップS701にて設定したタイマが満了すると、受信装置はステップS702〜S707の処理を中止する。また、タイマ満了時にステップS702、ステップS703の処理が既に行われていた場合には、ステップS706、ステップ707と同様の再設定処理を行う。
図9は、本実施形態における各装置の動作を説明するシーケンス図である。装置Aは、通信パラメータの自動設定により装置Bから通信パラメータの提供を受け、該通信パラメータのネットワーク502に既に参加している(F901)。また、装置Cは、まだ通信パラメータの提供を受けていない。
ユーザにより装置Bの設定ボタンが操作されると、装置Bは図8の処理を起動する(F902)。装置Bは既に通信パラメータの自動設定により装置Aとので共有された通信パラメータを用いることによりネットワーク502へ参加しているため、自身の役割を提供装置に設定し、通信パラメータの提供処理を開始する(F902)。
まず、装置Bは図6の開始通知処理を起動する(F903)。開始通知処理を起動後、装置Bは開始通知メッセージを送信し、ビーコンの送信頻度を増加させる(F904)。
開始通知メッセージを受信した装置Aは図7の代理応答処理を起動し、ビーコンの送信頻度を削減する(F905)。
このように、装置Bがビーコンの送信頻度を増加し、装置Aがビーコンの送信頻度を削減することで、新たに参加する装置Cが提供装置である装置Bをより短時間に検出することができる。
ユーザにより装置Cの設定ボタン106が操作されると、装置Cは図8の処理を起動する。装置Cはネットワークに参加していないため、ネットワークの作成、役割を提供装置候補へ設定、等の処理を行った後、提供装置の検索処理を開始する。なお、図9では検索処理以降について示し、それより前の処理については省略している。装置Cは、提供装置を検出するために検索信号を送信する(F906)。
装置Cから送信された検索信号に対して、ネットワーク502では装置Aまたは装置Bが検索応答信号を返信する(F907a、F907b)。
装置Aが検索応答信号を返信する場合には、装置Aは提供装置である装置Bの識別情報(MACアドレス)を検索応答信号に格納して返信する(F907b)。また、装置Bが検索応答信号を返信する場合には、装置Bは自身が提供装置であることを示す情報を検索応答信号に格納して返信する(F907a)。このように、装置Cはネットワーク502のどの機器から検索応答信号を受信した場合でも、提供装置である装置Bを確実に検出することができる。
装置Cは提供装置の存在を検出すると、自身の役割を受信装置に設定する。(F908)。そして、装置Cはネットワーク502に参加し、提供装置である装置Bからネットワーク502での通信に必要な通信パラメータを受信する(F909)。
装置Bは装置Cへ通信パラメータを提供後、装置Aへ完了通知メッセージを送信する(F910)。完了通知メッセージの送信後、装置BはF903にて増加させたビーコンの送信頻度を元に戻す。装置Aは完了通知メッセージを受信すると、F905にて削減したビーコンの送信頻度を元に戻す。
このように、ユーザは設定ボタン106の操作のみを行うことで、自動的に装置Cをネットワーク502へ参加させることが可能となる。
なお、図9の説明では装置Bの設定ボタン106が操作された場合について説明したが、装置Aの設定ボタン106が操作される場合も考えられる。装置Aの設定ボタン106が操作された場合であっても、図8のステップS802を経て装置Aが提供装置となることで、図9の場合と同様に装置Cをネットワーク502に追加することが可能である。
上記処理によって通信装置間で簡単に通信パラメータを共有することが可能となる。前述した通り、装置Aと装置Bとで設定ボタン106を操作することで、装置Aと装置Bとの間で通信接続処理を行い、ネットワーク502を構成することとなる。
前記通信接続処理は、前述した通り、通信パラメータ設定処理完了後に自動で開始しても良いし、設定ボタン106の再押下や、入力部109による接続コマンド投入などによって行っても良い。
なお、前記通信接続処理は、共有された通信パラメータのうち、認証方式および暗号方式によって異なる。
本実施形態では、認証方式および暗号方式として採用される組み合わせは、例えば図10のとおりとなる。
Open認証とは、IEEE802.11規格において、Open System Authenticationとして定義されている認証方式であり、詳細はIEEE802.11規格を参照されたい。Shared認証とは、IEEE802.11およびIEEE802.11i規格にて、Shared Key Authenticationとして定義されている認証方式であり、暗号方式としてWEPを使用する。
なお、WEPは、Wired Equivalent Privacyの略であり、詳細についてIEEE802.11もしくはIEEE802.11i規格を参照されたい。またWPA認証方式、WPA−PSK認証方式、WPA2認証方式、およびWPA2−PSK認証方式は、Wi−Fiアライアンスが規定する暗号化方式の規格である。これらは、IEEE802.11i規格におけるRSNA(Robust Security Network Association)をベースとしている。
そして、TKIPは、Temporal Key Integrity Protocolの略である。CCMPは、CTRwith CBC−MAC Protocolの略であり、暗号方式にはAESを利用するものである。AESは、Advanced Encryption Standardの略である。
いずれについても詳細についてはWi−Fiアライアンスの仕様書またはテスト仕様書を参照されたい。WPA−PSK認証方式およびWPA2−PSK認証方式は、事前共有鍵による認証方式である。WPA認証方式およびWPA2認証方式は、別途用意した認証サーバによりユーザ認証を行い、認証サーバより通信経路の暗号鍵を取得する方式である。どちらも、詳細については、IEEE802.11i規格を参照されたい。
接続処理の方法は、認証方式によって異なる。現状取りうる認証方式としては、表にあるとおり、Open認証、Shared認証、WPA認証、WPA−PSK認証、WPA2認証、WPA2−PSK認証の6通りがある。このうち、WPA認証とWPA2認証、およびWPA−PSK認証とWPA2−PSK認証は、本質的には同一の認証方法である。このため、以下の説明ではWPAとWPA2およびWPA−PSKとWPA2−PSKは同一とみなし、4通り(OPEN、Shared、WPA、WPA−PSK)の認証方式について説明していく。
ただし、WPA認証については、別途認証サーバを外部に設置し、該認証サーバとの間で認証処理を行うため、本発明のように全ての通信装置が対等な立場で動作する場合には煩雑な処理となるため、ここでの説明は割愛する。
ここでは、本実施形態においては、Open認証、Shared認証、WPA−PSK認証のそれぞれについて説明を行う。
まず、Open認証について説明する。Open認証においては、互いの通信装置において、通信パラメータ自動設定処理において共有した通信パラメータを設定し、お互いを検索してIBSSネットワークを構成する。
次に、Shared認証について説明する。Shared認証の詳細な説明についてはIEEE802.11およびIEEE802.11iの仕様書に記述があるため詳細は省略するが、Shared認証を実施する場合は、RequesterとResponderを決定する必要がある。
インフラストラクチャモードにおいて、STA(ステーション)はRequesterとして動作し、AP(アクセスポイント)はResponderとして動作する。一方、アドホックモードでは、APが存在しない。このため、IBSSでShared KeyAuthenticationを実現するためには、STAにResponder機能の実装および、Requester/Responder役割決定アルゴリズムを実装する必要がある。
このRequester/Responder役割決定アルゴリズムは後述のWPA−PSK認証におけるSupplicant/Authenticator役割決定と同様の手法をとってもよい。例えば、通信パラメータ自動設定処理における通信パラメータ提供装置がResponderとなって、通信パラメータ受信装置がRequesterとなってもよい。
最後に、WPA−PSK認証について説明する。WPA−PSK認証は、IEEE802.11iおよび、WPAにて規格化されており、IBSSでの動作方法にも規定がある。図12にIEEE802.11iで規定されているシーケンスを記載する。詳細はIEEE802.11i規格を参照していただくとして、ここでは概要について説明をする。
まず、通信パラメータ自動設定処理が終了した装置Aと装置Bが存在するとする。通信パラメータ自動設定処理が完了した後、自動的あるいは、ユーザ操作によって、自動設定された通信パラメータを用いて、通信接続処理が実行される。
まず、装置Aと装置Bは互いに相手を検索する(F1201)。互いが認識できた場合は、装置Aと装置BのうちMACアドレスの大きなものがAuthenticatorとなり、他方がSupplicantとなる。そして、一度目の4ウェイハンドシェイクおよびグループキーハンドシェイクを実行する(F1202〜F1203)。
なお、4ウェイハンドシェイクとは、AuthenticatorとSupplicantとの間で乱数のやり取りを行い、事前共有鍵に基づいてペアワイズ鍵と呼ばれるユニキャストパケットの暗号鍵をセッション毎に生成する仕組みである。グループキーハンドシェイクは、Authenticatorが保有しているマルチキャストパケットやブロードキャストパケットの暗号鍵を送付する仕組みである。
その後、AuthenticatorとSupplicantの役割を交換して、再度4ウェイハンドシェイクとグループキーハンドシェイクを実施する(F1204〜F1205)。以上により装置Aと装置Bとの間で暗号化通信が可能となる。
このようにIEEE802.11i仕様完全準拠では、4ウェイハンドシェイクおよびグループキーハンドシェイクが複数回行われるため、処理が冗長となる。冗長な処理の実施および、役割決定アルゴリズムの実行のために、接続完了までに時間がかかる。よって、冗長な処理の削減や処理時間の改善のための手法をとることも可能である。
その手法としては、いくつか考えられるが、ここでは、
第一の方法:4ウェイハンドシェイクを1回に統合、
第二の方法:グループ鍵をネットワークで1つに統合、
第三の方法:グループ鍵およびペアワイズ鍵を全て1つに統合、
第四の方法:通信パラメータ自動設定処理のなかで鍵交換もあわせて実施、
の以上4つについて説明する。
前述の4つの方法による鍵交換シーケンスの回数の差異および、保有するペアワイズ鍵並びにグループ鍵の個数について図11に示す。
まず、保有する鍵の数について説明する。n個の通信機器からなるアドホックのIBSSネットワークでは、IEEE802.11iに完全準拠した場合は、ペアワイズ鍵は対向の通信機器分のn−1個必要である。また、グループ鍵は対向の通信機器分に加えて、自身の現在のグループ鍵と一つ前のグループ鍵の計2つが必要であり、合算するとn+1個が必要となる。自身のグループ鍵が2つ必要な理由は、グループキーハンドシェイクの進行状況によっては、同一ネットワークでは異なるグループ鍵を持つものが過渡期としては存在するからである。
第一の方法では、シーケンスを減らすだけであり、所有する鍵の数は変わらない。
第二の方法では、ペアワイズ鍵は同様にn−1個必要であるが、グループ鍵は全体で1個でよい。
第三の方法では、ペアワイズ鍵としてグループ鍵をそのまま利用するため、ペアワイズ鍵は0個となり、グループ鍵のみ1個持つこととなる。
第四の方法では、ペアワイズ鍵は同様にn−1個必要である。グループ鍵は、それぞれ所有しても良いし、全体で1つとしても良いため、場合によってn+1個持つ場合もあるし、1個だけ持つ場合もある。
次に、対向の装置1台当たりに実施される鍵交換の数について説明する。IEEE802.11iに完全に準拠した場合は、すでに図12で説明した通り、4ウェイハンドシェイクを2回、グループキーハンドシェイクを2回それぞれ実施する。
第一の方法では、冗長であった4ウェイハンドシェイクを削減するため、4ウェイハンドシェイクの実施回数が1回となる。グループキーハンドシェイクについては変わらず2回の実施となる。
第二の方法では、グループ鍵がネットワークで1つに統合されるため、常に新規端末に配布するだけとなり、グループキーハンドシェイクは1回となる。4ウェイハンドシェイクの実施回数については、第一の方法に準じて1回の実施でも良いし、IEEE802.11i規格に準拠して2回双方向で実施してもよい。
第三の方法では、予め設定した1つの鍵をペアワイズ鍵およびグループ鍵として利用するため、鍵交換シーケンスは行わない。
第四の方法では、WPSの通信パラメータ自動設定処理シーケンスで鍵交換処理相当を行ってしまうため、独立した4ウェイハンドシェイクは実施しない。グループキーハンドシェイクについては、任意の実行回数となる。
以上、図11を参照して説明したように、これらの方法は、先に述べたIEEE802.11i仕様に完全準拠したものに比べ、鍵交換シーケンス数および保有する鍵の数において有利となっている。
引き続き、前述の4つの手法についてシーケンス図を用いて詳細な説明を行う。
第一の方法について、図13を用いて説明する。
まず、通信パラメータ自動設定処理が終了した装置Aと装置Bが存在するとする。通信パラメータ自動設定処理が完了した後、自動的あるいは、ユーザ操作によって、自動設定された通信パラメータを用いて、通信接続処理が実行される。
まず、装置Aと装置Bは互いに相手を検索する(F1301)。互いが認識できた場合は、装置Aと装置BのうちMACアドレスの大きなものがAuthenticatorとなり、他方がSupplicantとなる。そして、4ウェイハンドシェイクおよび一度目のグループキーハンドシェイクを実行する(F1302〜F1303)。
その後、AuthenticatorとSupplicantの役割を交換して、再度グループキーハンドシェイクを実施する(F1304)。以上により通信が可能となる。
このように第一の方法では、IEEE802.11i仕様では一組の装置について2回実施される4ウェイハンドシェイク処理を1回に削減する。
4ウェイハンドシェイクは4ウェイハンドシェイクを実行している通信装置間でペアワイズ鍵を共有するための処理であるため、連続して2回実施してもセキュリティ向上にはならず、冗長なだけである。よって、第一の方法においては、従来方向を変えて2回実施していた4ウェイハンドシェイクを1回に削減することで、通常の接続処理に要する時間を短縮することができる。
第二の方法について、図14を用いて説明する。まず、通信パラメータ自動設定処理が終了した装置Aと装置Bが存在するとする。通信パラメータ自動設定処理が完了した後、自動的あるいは、ユーザ操作によって、自動設定された通信パラメータを用いて、通信接続処理が実行される。
まず、装置Aと装置Bは互いに相手を検索する(F1401)。互いが認識できた場合は、装置Aと装置BのうちMACアドレスの大きなものがAuthenticatorとなり、他方がSupplicantとなり、4ウェイハンドシェイクおよびグループキーハンドシェイクを実行する(F1402〜F1403)。以上により通信が可能となる。
IEEE802.11i仕様では、通信装置ごとに異なるグループ鍵が設定されているが、第二の方法でば、グループ鍵をネットワークとして1つに統合する。
ペアワイズ鍵は通信経路毎に用意するがグループ鍵はネットワークとして共通の1つを使いまわす。これによりグループキーハンドシェイク処理もIEEE802.11i準拠では2回実施しなければいけないところを、1回に削減できる。また、グループ鍵を1つだけ設定することにより、ブロードキャストパケット及びマルチキャストパケットの暗号・復号処理を送信した装置毎に異なる鍵を保持する必要がなく、簡潔になるという利点がある。
第三の方法は、非特許文献2に記載されているWPA−None(Optional IBSS Global Pre−Shared Key System)と同様である。
WPA−Noneの詳細については前述した文献に記載されているため詳細については割愛する。通常のWPAでは、4ウェイハンドシェイクにより、ペアワイズ鍵の元となる要素に乱数を作用させ、セッション鍵を生成する。一方、WPA−Noneでは、ペアワイズ鍵の元となる要素をそのままセッション鍵として適用する。
すなわち、第三の方法の大きな特徴は、鍵交換処理が実施されないことである。よって接続のたびにセッション鍵が生成される通常のWPA接続処理よりもセキュリティは低下する。そこで、本方法をとる場合は、接続の都度、通信パラメータ自動設定処理を起動して、そこで共有される通信パラメータの通信鍵を毎回ランダムにすることでセキュリティを向上できる。
第四の方法について、図15を用いて説明する。まず、図4の説明で述べたように、通信パラメータ自動設定における、通信相手検索および役割決定処理が実施される(F1501)。引き続き、通信パラメータ自動設定処理により、通信パラメータが通信パラメータ提供装置から通信パラメータ受信装置へ転送される(F1502)。このF1502の処理の中で、従来は実施していなかった鍵交換処理を通信パラメータ設定処理と同時実行する。
ここで、同時実行にあたっては、通信パラメータ設定処理のメッセージ交換処理で利用される乱数を鍵交換処理の乱数で利用するなどがある。よってF1502終了時点で装置Aと装置Bとでペアワイズ鍵が共有されている。通信パラメータ自動設定処理終了後、グループ鍵交換処理を実施する(F1503)。このように第四の方法は、通信パラメータ自動設定処理のなかで鍵交換もあわせて実施することを特徴としている。
第四の方法であれば、同一のネットワークであっても装置間のペアワイズ鍵はそれぞれ異なるためセキュリティが向上する。また通信パラメータ設定処理内で4ウェイハンドシェイク相当の処理を実施することにより、トータルの接続時間を短縮することが可能となる。
また、この説明ではグループ鍵交換は別途実施するとしたが、グループ鍵交換までも通信パラメータ設定処理内で実施すれば、さらにトータルの接続時間を短縮することが可能となる。
以上で説明した、IEEE802.11i準拠の方法とあわせて5つの方法については、システムとしてどれか1つを選んでも良いし、どの方法を使用するかの情報を通信パラメータに含めて提供するようにしてもよい。また、通信パラメータ自動設定処理のモードによって動的に切り替えを実施しても良い。
ここでは、通信パラメータ自動設定処理のモードによって動的に切り替えを実施する場合について、図16を用いて説明を行う。
通信パラメータ自動設定処理によって通信パラメータとして鍵交換が必要なWPA−PSKまたはWPA2−PSK等が選択されたとする。この場合、既にネットワークで利用されている鍵交換方式を判定する(S1601)。この判定処理により、既に何らかの鍵交換方式が選択されている場合は(S1601−2のYes)、その方式をそのまま使用する。特に選択されていない場合については(S1601−2のNo)、引き続き通信パラメータ自動設定の処理モードを判定する(S1602)。
ここで述べる処理モードとは、例えば通信パラメータ自動設定処理によって設定された通信パラメータを恒久的に使用するか、一時的なセッション情報として使用するかなどがある。例えば、設定された通信パラメータを恒久的に使用する処理モード(電源を一度オフした後に再度無線通信を行うときも同一の通信パラメータを用いるモード)であれば、セキュリティの高い方式(第一の方法、第四の方法等)を選択する。そして、一時的なセッション情報として使用するモード(一度電源をオフすると設定した通信パラメータを消去、もしくは使用不可能とするモード)であれば、セキュリティよりも処理負荷を優先した方式(第二の方法、第三の方法等)を選択するようにしてもよい。
処理モードによっても、どの鍵交換方式を利用するかが確定しない場合は(S1602−2のNo)、引き続き同一ネットワークに存在する通信装置の台数を判定する(S1603)。そして、通信装置の台数によって好適な鍵交換方式を選択する。たとえば、通信装置が2台の場合には、IEEE802.11iに完全準拠、もしくは第一の方法、第四の方法を選択し、通信装置が3台以上の場合には、第二の方法、第三の方法を選択するようにしてもよい。
このように本実施形態によれば、ネットワークに参加中の装置の設定ボタンが操作された場合に、当該装置が提供装置となって通信パラメータの提供処理を実行する。そのため、ユーザはネットワークに参加中の機器の中から提供装置、受信装置を意識することなく、任意の装置を選択すれば、通信パラメータの提供を受けることができる。
つまり、提供装置を選択すること無く、任意の機器の設定ボタンを操作することで、ネットワークへ新規に機器を追加することが可能となる。また、提供処理の終了後、増加させていたビーコンの送信頻度を元に戻すことにより、ビーコン送信による消費電力を低減することができる。なお、通信パラメータの提供処理開始後の直後にビーコンの送信頻度を元に戻せば、ビーコン送信による消費電力をより効率的に低減することができる。
そして通信パラメータを簡単に安全に提供した後に、ネットワークへ新規追加する際に、鍵交換アルゴリズムについての選択肢を広げ、それを自動的に判定して設定することにより、ネットワークを形成する際のユーザのストレスを低減させることができる。また、安全・簡単・短時間にネットワークを形成することができる。
<第2実施形態>
第1実施形態では、図17で説明した提供装置探索処理において、装置は、自装置の無線LANチャネル上でのビーコン送信処理と、他の無線LANチャネルでの提供装置探索処理と、を交互に実施する。そして、このように処理することによって、自装置と他の装置との間で、お互いの装置を検出しやすくすることを実現していた。対して、第2実施形態においては、提供装置探索処理は予め定められた無線LANチャネル上で行う例について説明を行う。
図18は、実施形態2において実施される提供装置探索処理の動作フローの一例を示したフローチャートである。
以下、本フローチャートにそって提供装置探索処理の制御について説明する。
まず、通信パラメータの自動設定処理の開始指示(設定ボタン106の押下)により図8で説明した処理が開始され、ステップS805において提供装置探索処理が開始される。提供装置探索処理が開始されると、タイマT1を開始する(S1801)。
無線LANチャネルを、現在の無線LANチャネルから、予め定められた無線LANチャネルに変更する(S1802)。ここで、予め定められた無線LANチャネルとして、通信ネットワークで利用可能な通信チャネルのうちの予め定められた一つのチャネルを用いればよい。なお、予め定められた無線LANチャネルとして、通信ネットワークで利用可能な通信チャネルのうち、通常の通信に利用しない通信チャネルを用いるようにしてもよい。通常の通信に利用する通信チャネルと提供装置探索処理に利用する通信チャネルを異なる通信チャネルにすることにより、他の装置間の通信に影響を与えることなく提供装置の探索処理を行うことができる。
無線LANチャネルを変更後、ビーコン(報知信号)送信処理を開始する(S1803)。ビーコン送信処理を開始した後は、IEEE802.11規格に基づいて、ビーコンインターバルによるビーコン送信制御を行うものとし、以降定期的にビーコン信号を送信しつづけるものとする。
前記タイマT1が満了したか否かを判定する(S1804)。タイマT1が満了していなければ、検索信号(プローブリクエスト)を送信する(S1805)。前記検索信号送信後、検索応答を受信するかを判定する(S1806)。検索応答を受信しない場合は、ステップS1804に戻り、タイマT1の残時間を判定し、タイマが満了していない場合は、再び検索信号送信からの処理を繰り返す。
ステップS1806において、検索応答を受信した場合は、受信した検索応答信号の内容を確認し、相手装置の役割が通信パラメータ提供装置か否かを判定する(S1807)。相手装置の役割が通信パラメータ提供装置であった場合は、検索結果を保持し(S1808)、提供装置探索処理を終了する。
また、ステップS1807での判定処理の結果、相手装置の役割が通信パラメータ提供装置で無かった場合は、ステップS1804に戻り、タイマT1の残時間を判定し、タイマが満了していない場合は、再び検索信号送信からの処理を繰り返す。なお、ステップS1804においてタイマT1が満了した場合は、提供装置を検出できなかったものとして、提供装置探索処理を終了する。
なお、ステップS810の通信パラメータ受信処理、ステップS817の通信パラメータ提供処理によって実行される通信パラメータ自動設定処理は、上記予め定められた通信チャネルを用いて行われる。よって、ステップS802からステップS815へ処理が進んだ場合には、ステップS815において通信チャネルが上記予め定められた通信チャネルに設定される。そして、通信パラメータの提供処理が成功した後、もしくはエラー終了した後に、通信チャネルを通信パラメータの自動設定処理の開始前の通信チャネルに復帰させる。本実施形態では、例えば、ステップS820、S821において通信チャネルの復帰が行われる。また、通信パラメータの受信処理がエラー終了した場合も、通信チャネルを通信パラメータの自動設定処理の開始前の通信チャネルに復帰させるようにしてもよい。本実施形態では、例えばステップS813において通信チャネルの復帰が行われるようにしてもよい。
このように本実施形態によれば、提供装置探索処理を予め定めた無線LANチャネル上で実施するため、極めてすみやかに提供装置を検出することが可能となる。通信パラメータ自動設定中は通信接続処理が中断する可能性があるが、提供装置探索処理が速やかに終了するため、通信接続処理の中断時間を短縮することが可能となる。
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態のみに限定する趣旨ではない。本発明の要旨を逸脱しない範囲で、実施形態は種々に変形することが可能である。
上記各実施形態では、提供装置による単位時間当たりのビーコンの送信回数を他の装置よりも多くするために、CWの値を変更する例について説明した。しかしながら、提供装置が他の装置よりもビーコンの送信回数を多くできるのであれば、他のパラメータを用いてもよい。例えば、ビーコンの送信間隔(ビーコン周期)を変更できるのであれば、提供装置においてビーコンの送信間隔を小さくすることによって、単位時間当たりにビーコンの送信回数を多くすることができる。
上記説明では、CWの変更は初期値より大きくする、又は小さくすると説明した。この変更は、各装置のCWの初期値が同一とは限らないため、変更可能な範囲内での最小値(CWmin)又は最大値(CWmax)に変更すれば、ビーコンの送信頻度(回数)をより確実に変更できる。また、開始通知メッセージは、通信パラメータの自動設定が開始されたことを通知するメッセージとして説明した。
しかしながら、開始通知メッセージは、設定ボタン106が操作されたことを通知するメッセージ、提供装置が他の受信装置に通信パラメータを提供できるようにするためのメッセージと言い換えることもできる。
また、上記説明は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などを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。