以下、図面を参照しながら発明を実施するための形態について詳細に説明する。
[第1の実施形態]
まず、2台の無線通信機器の間で、IEEE 802.11x準拠の無線LANにおけるアドホックモードの通信パラメータ設定ネットワークを構築する場合について説明する。
図1には、アドホックモードにおいて、通信パラメータを設定する際のステップを示す。図1の各ステップは、6つの目的の異なる各ステップから構成される。ここで各ステップは、通信パラメータ設定ネットワーク形成ステップ101、マスター機器決定ステップ102、機器能力収集ステップ103、通信パラメータ転送方向決定ステップ104、通信パラメータ転送ステップ105、通信パラメータ設定ネットワーク終了ステップ106である。以下に、それぞれのステップでの機能について簡単に説明する。
<通信パラメータ設定ネットワーク形成ステップ101>
ここでは、機器Aと機器Bの間で通信パラメータ設定用ネットワークをアドホック接続によって形成する処理を行う。
<マスター機器決定ステップ102>
ここでは、機器Aと機器Bの間でどちらの機器が通信パラメータ設定用ネットワークのマスター機器となり、どちらの機器がスレーブ機器となるかを決定する処理と、各機器は相手が同一ネットワーク上に存在するか否かの監視処理を継続的に行う。
<機器能力収集ステップ103>
ここでは、ステップ102で決定されたマスター機器が同一ネットワーク上に存在するスレーブ機器が所有している機器能力属性値をスレーブ機器に問い合わせて収集する処理を行う。
<通信パラメータ転送方向決定ステップ104>
ここでは、ステップ103でマスター機器が収集した各スレーブ機器の機器能力属性値と自マスター機器の機器能力属性値とを比較する。その結果、どの機器からどの機器へ通信パラメータの転送を行うかをマスター機器が決定し、かつ、各スレーブ機器に対して通信パラメータの転送を行う上で必要となる、あて先や発信元情報などの指示を転送する。
<通信パラメータ転送ステップ105>
ここでは、ステップ104で決定された通信パラメータの転送方向に従って実際に通信パラメータ提供能力を持つ機器から通信パラメータ受理能力を持つ機器へ通信パラメータを転送する。
<通信パラメータ設定ネットワーク終了ステップ106>
ここでは、ステップ105の転送終了をきっかけに通信パラメータ設定ネットワークを終了するために必要となる処理を行う。尚、通信パラメータ設定ネットワーク終了ステップ106が終了した後は、通信パラメータ転送ステップ105において転送された通信パラメータを用いて新たなネットワークを構築することになる。
以上の6つのステップを実施することにより、アドホック無線通信において、通信パラメータを簡単に設定することができる。
尚、以下で説明する処理は、図1に示した通信パラメータ設定ネットワーク形成ステップ101からマスター機器決定ステップ102までの処理とする。
図2は、2台の無線通信機器によるアドホックなネットワークの構成の一例を示す図である。図2において、無線通信機器Aは、無線通信機能210にIEEE 802.11x準拠の無線LANを有するデジタルカメラ200であり、通信パラメータ設定ボタン220を押下することで通信パラメータ設定モードのネットワークを構築することが可能である。また、無線通信機器Bは無線通信機能211にIEEE 802.11x準拠の無線LANを有するプリンタ201であり、通信パラメータ設定ボタン221を押下することで通信パラメータ設定モードのネットワークを構築することが可能である。
そして、デジタルカメラ200(機器A)と、プリンタ201(機器B)との2者間でアドホックモードの無線通信パラメータ設定を行うものである。
ここで、図3及び図4を用いて、デジタルカメラ200(機器A)及びプリンタ201(機器B)の構成について説明する。
図3は、デジタルカメラ200(機器A)の構成の一例を示す概略ブロック図である。図3において、301はデジタルカメラ200を制御する制御部、302は画像処理部、303は制御命令(プログラム)や制御データが格納されているROM、304はRAMである。RAM304には、通信パラメータ設定用ネットワークを形成するための設定用通信パラメータが予め記憶されている。305は無線通信処理部であり、無線LANにおける通信制御を行う。306はアンテナ、307はアンテナ制御部である。
308は撮像部であり、309のCCDから入力された画素信号を取り込む。310はカードインタフェースであり、撮像画像や設定情報を格納する記録メディアカードの制御を行う。311は表示部であり、エラーメッセージなどの表示を行う。312は操作部であり、撮影、再生、設定などを指示するボタンを含む。313は二次電池を含む電源部である。314は無線以外の通信インタフェース部であり、例えばUSBやIEEE1394などの有線インタフェースである。315は通信パラメータ設定ボタンであり、通信パラメータ設定起動を行う。
図4は、プリンタ201(機器B)の構成の一例を示す概略ブロック図である。図4において、401はプリンタ201を制御する制御部、402は画像処理部、403は制御命令(プログラム)や制御データが格納されているROM、404はRAM、405は電源部である。RAM404には、通信パラメータ設定用ネットワークを形成するための設定用通信パラメータが予め記憶されている。406は無線以外の通信インタフェース部であり、例えばUSBやIEEE1394などの有線インタフェースである。
407はプリンタ用紙の給紙排紙を行う給紙排紙部である。408はプリンタエンジンであり、電子写真方式やインクジェット方式などの印字制御を行う。409はカードインタフェースであり、画像が格納された記録メディアカードの制御を行う。410は表示部であり、エラーメッセージなどを表示する。411は操作部であり、メニュー、設定などのボタンを含む。412は無線通信処理部であり、無線LANにおける通信制御を行う。413はアンテナ、414はアンテナ制御部である。415は通信パラメータ設定ボタンであり、通信パラメータ設定起動を行う。
尚、上述したハードウェア構成は、本発明に係る好適な実施形態の一つの事例であり、必ずしも同じハードウェア構成を有していなければいけないものではなく、本発明の精神を適用できるハードウェア構成であれば良いことは言うまでもない。
また、無線通信機器として、デジタルカメラ及びプリンタを例に説明したが、本発明はこれだけに限るものではなく、パーソナルコンピュータ(PC)、ファクシミリ、複合機、ノートPCなどに適用しても良いことは言うまでもない。
上述した構成において、まず、デジタルカメラ200(機器A)で通信パラメータ設定ボタン220が押下され、次に、プリンタ201(機器B)で通信パラメータ設定ボタン221が押下された場合に、アドホックモードの通信パラメータ設定ネットワークを構築するシーケンスについて説明する。
図5は、通信パラメータ設定制御機能を有する機器が2台の場合のシーケンスを示す図である。まず、ユーザがデジタルカメラ200(機器A)の通信パラメータ設定ボタン220を押下し、通信パラメータ設定制御機能を開始すると、機器Aは通信パラメータ設定ネットワークの形成を開始する。これにより、機器Aはプローブ要求(S501:Probe Request)を無線区間に向けて送出する。図5に示す例では、まだ近隣に無線機器が存在しないため、機器Aがビーコン(S502:Beacon)を送信し、アドホックネットワークのIBSS(Independent Basic Service Set)クリエイターとなる。
引き続き、機器Aと同様に、機器Bを起動すると、機器Bはプローブ要求(S503)を送出する。既に機器AがIBSSクリエイターとして存在するため、そのプローブ要求の応答として、機器Aから機器Bに向けてプローブ応答(S504:Probe Response)が送出される。これにより、機器Aと機器Bとの間で、通信パラメータ設定ネットワークが形成される。
次に、無線ドライバの機能により、機器A及び機器Bそれぞれにおいて通信パラメータ設定ネットワークが形成されたことが通知される。通知が通信パラメータ設定制御機能に引き渡された時点で、機器A及び機器Bは暗号化を実施する(S505及びS506)。尚、暗号化のアルゴリズムについては、特に規定しないが、例えば機器に固有の共通鍵に基づいて暗号化処理を行っても良い。また、暗号化処理は無線通信処理部305、412が実施しても良いし、制御部301、401が実施しても良い。
そして、通信パラメータ設定ネットワークが構築された時点で、図1に示したマスター機器決定ステップ102が開始される。ここでは、IBSSクリエイター及びジョイナー(Joiner)はお互いにビーコン(S507,S508)を送出し続ける。その後、所定のアルゴリズムによりどちらの機器がマスター機器となるかが決定されると、マスター機器からマスター宣言(S509)が送信される。
尚、機器A及び機器Bの間の通信は、上述のS505及びS506で暗号化されているため、このマスター機器決定ステップ102以降は安全に通信が行われる。
次に、3台の無線通信機器の間で、IEEE 802.11x準拠の無線LANにおけるアドホックモードの通信パラメータ設定ネットワークを構築する際に暗号化を実施し、第三の機器である想定されていない機器のネットワークへの参加を防止する処理について説明する。
図6は、3台の無線通信機器によるアドホックなネットワークの構成の一例を示す図である。図6に示すように、機器A及び機器Bは、図2に示したデジタルカメラ200及びプリンタ201である。また、機器Cは機器Aと同様に、無線通信機能610にIEEE 802.11x準拠の無線LANを有するデジタルカメラ600であり、通信パラメータ設定ボタン620を押下することで通信パラメータ設定モードのネットワークを構築することが可能である。
尚、デジタルカメラ600(機器C)の構成は、図3に示したデジタルカメラ200(機器A)の構成と同様であり、ここでの説明は省略する。
上述した構成において、まず、デジタルカメラ200(機器A)で通信パラメータ設定ボタン220が押下され、次に、プリンタ201(機器B)で通信パラメータ設定ボタン221が押下されてアドホックモードの無線通信パラメータ設定ネットワークを構築した後に、デジタルカメラ600(機器C)で通信パラメータ設定ボタン620が押下された場合のシーケンスについて説明する。
図7は、通信パラメータ設定制御機能を有する機器が3台の場合のシーケンスを示す図である。まず、図5に示した機器Aと機器Bとの間で行われる通信パラメータ設定ネットワークの形成(S501〜S506)と同様に、通信パラメータ設定ネットワークが構築される(S701〜S706)。
ここで、第三の機器である想定されていない機器Cの電源が投入され、機器A及び機器Bと同様に、通信パラメータ設定制御機能を開始する。まず、プローブ要求(S707)を送出し、既に機器AがIBSSクリエイターとして存在するため、プローブ要求の応答として、機器Aから機器Cに向けてプローブ応答(S708)が送出される。これにより、機器Cは無線パラメータ設定ネットワークに参加をすることとなる。
しかしながら、機器Cは想定されていない第三者であるため、機器Aと機器Bとの間のように暗号化は実施されていない。従って、無線通信パラメータ設定ネットワークが構築された後に、マスター機器決定ステップ102で決定されたマスター機器からのマスター宣言(S711)を認識することができない。
このように、通信の暗号化を実施することにより、通信パラメータ設定ネットワークに対して想定されていない第三者による機器の参加を防止することができる。
次に、図8を用いて、機器A、機器B、機器Cにより通信パラメータ設定ネットワークを構築する際のシーケンス(図7)を機器で行われる処理の観点から説明する。
図8は、第1の実施形態における機器が通信パラメータ設定ネットワークを構築する際の処理を示すフローチャートである。まず、機器において、その電源又は無線通信機能が投入されると、ランダムタイマーを起動し、そのタイムアウトを待つ(S801)。この処理は、複数の機器が同時に電源投入された場合に発生するプローブ要求の競合を避けるための処理である。このランダムタイマーがタイムアウトすると、機器はプローブ要求を送信する(S802)。そして、このプローブ要求に対する応答を待つ(S803)。
次に、プローブ要求に対してプローブ応答が返却された場合(S803で応答あり)、この機器はジョイナーとして設定する(S804)。ジョイナーの場合、通信パラメータ設定ネットワークに参加する機器の数が規定数以内であれば、IBSSクリエイターからの暗号化指示を受信する。ここで、暗号化指示を受信した場合には(S805のYES)、この機器、即ち、機器Bは暗号化を有効にする(S806)。
また、IBSSクリエイターからの暗号化指示を受信しなかった場合には(S805のNO)、通信パラメータ設定ネットワークに参加できなかったことを意味するので、そのまま処理を終了する。
一方、プローブ要求に対してプローブ応答が返却されなかった場合には(S803で未応答)、この機器の近傍に通信パラメータ設定ネットワークが存在していないものと判断する。これにより、この機器、即ち、機器Aは、IBSSクリエイターとして設定を行う(S807)。その後、IBSSクリエイターの機能として他の機器からのプローブ要求を待ち受ける(S808)。
次に、IBSSクリエイターとして設定した機器が他の機器からのプローブ要求を確認すると(S808のYES)、他の機器にプローブ応答を送信する(S809)。ここで、IBSSクリエイターは、プローブ応答を送信した機器の数を記憶し、その機器の数が予め定めた規定数に達したか否かを判定する(S810)。ここで、規定数となった場合は(S810のYES)、そのまま処理を終了する。
また、規定数となっていない場合は(S810のNO)、IBSSクリエイターは配下のジョイナーに対して、暗号化指示を行う(S811)。次に、暗号化指示が行き届いた時点で、IBSSクリエイターは、自身の暗号化を有効にする(S812)。
第1の実施形態によれば、IBSSクリエイターが通信パラメータ設定ネットワークに参加する機器の台数をカウントし、規定台数を超えた場合に、それ以降に参加を希望する他の機器に対して暗号化指示を送信しないようにすることにより、第三者や悪意を持った第三者による通信パラメータ設定ネットワークへの参加を拒絶することができる。
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態について詳細に説明する。第1の実施形態では、通信パラメータ設定ネットワーク構築時に参加台数の制限を行うことにより、通信パラメータ設定ネットワークへの第三者の参加を防止したが、第2の実施形態ではマスター機器決定ステップ102までは先行技術に記載されている既存の処理を行い、次の機器能力収集ステップ103において第三者の参加を防止するものである。
尚、第2の実施形態でも、図6に示した3台の無線通信機器によるアドホックなネットワークにおいて通信パラメータ設定ネットワークを構築する際に、想定されていない第三者によるネットワークへの参加を防止する処理について説明する。
図9は、第2の実施形態における通信パラメータ設定制御機能を有する機器のマスター機器決定ステップから機器能力収集ステップまでのシーケンスを示す図である。尚、図9では機器Aと機器Bとの間で、既に図1の通信パラメータ設定ネットワーク形成ステップ101が終了し、機器AがIBSSクリエイター、機器B及び機器Cがジョイナーであるものとする。
機器Aは、マスター問い合わせメッセージ(S901)をブロードキャストメッセージとして送信する。この時点では、マスター機器決定ステップ102が開始されたばかりであり、マスター機器は存在しないため、このマスター問い合わせメッセージ(S901)に対する応答は返却されない。
従って、機器Aは、自らをマスター機器と設定し、このマスター問い合わせメッセージ(S901)の送信を停止し、マスター宣言メッセージ(S902)の送信を開始する。最初のマスター宣言メッセージを送信した時点で、内部的に保持している参加受付状態を許容に設定する(S903)。
次に、ランダムなインターバルが経過した後、機器Bがマスター問い合わせメッセージ(S904)を送信する。ここで、機器Aは、機器Bからマスター問い合わせメッセージ(S904)が送信されたことを確認した段階でマスター宣言メッセージ(S905)を送信する。一方、機器Bは、機器Aより送信されたマスター宣言メッセージ(S905)を受信したことにより、スレーブ宣言メッセージ(S906)を送信する。
尚、この例では、機器Aに予め設定されている通信パラメータ設定ネットワークの構成規定機器数が2台であるものとする。
ここで、機器Aは、機器Bからのスレーブ宣言メッセージ(S906)を受信した時点で、内部的に保持している参加受付状態を非許容に変更する(S907)。これにより、マスター機器の参加受付状態が非許容となったため、第2の実施形態では、機器能力収集ステップ103以降の処理は機器Aと機器Bの間でのみ行われる。
例えば、ここで第三の機器Cが参入を試みようとした場合を想定する。まず、機器Cが機器Aや機器Bと同様に、マスター問い合わせメッセージ(S908)を送信する。この通信パラメータ設定ネットワークで既にマスター機器となっている機器Aが機器Cからのマスター問い合わせメッセージ(S908)を受信する。
ここで、機器Aは、内部的に保持している参加受付状態を参照する。この例では、既に参加受付状態は非許容となっているため、機器Aは機器Cに向けて、参加拒否通知メッセージ(S909)を送信する。この参加拒否通知メッセージ(S909)は機器Cにのみ送信され、機器Bとの通信は継続され、機器Bからは周期的にスレーブ宣言メッセージ(S910)が送信されてくる。
次に、上述した機器間のシーケンスの説明に引き続き、マスター側機器及びスレーブ側機器で行われる処理について説明する。尚、マスター機器決定ステップ102のマスター機器及びスレーブ機器の決定方法については公知であるため、ここでの説明は省略する。まず、図10を用いて、マスター側機器で行われる処理について説明する。
図10は、第2の実施形態における通信パラメータ設定制御機能を有するマスター側機器の処理を示すフローチャートである。尚、通信パラメータ設定制御機能を有する機器は、マスター機器決定ステップ102で決定した装置種別を判定し、自身がマスター側機器であることを認識しているものとする。
マスター側機器は、他のネットワーク参加機器からのマスター問い合わせメッセージを受信する(S1001)。そして、マスター問い合わせメッセージを受信したマスター側機器は、内部に保持している参加受付状態を参照する(S1002)。
ここで、参加受付状態が非許容の場合は(S1002のNO)、この時点で、マスター問い合わせメッセージ送信元の機器へ参加拒否通知メッセージを送信し(S1007)、マスター問い合わせメッセージ送信元の機器との通信を終了する。
一方、参加受付状態が許容の場合は(S1002のYES)、RAM304に保持しているスレーブ数を加算する(S1003)。そして、加算したスレーブ数が上限に達したか否かを判定する(S1004)。ここで、スレーブ数が上限に達した場合(S1004のYES)、このマスター機器は、RAM304に保持している参加受付状態を許容から非許容に変更する(S1005)。この処理により、これ以降の新規スレーブ機器のこのネットワークへの参加を拒否することができる。
また、上述のスレーブ数が上限に達していない場合は(S1004のNO)、この参加受付状態はそのままとする。その後、このマスター機器は、スレーブ機器群との間で次の機器能力収集ステップ103のシーケンスのやり取りを実施する(S1006)。
次に、上述のマスター側機器の処理に続き、図11を用いて、スレーブ側機器の処理について説明する。
図11は、第2の実施形態における通信パラメータ設定制御機能を有するスレーブ側機器の処理を示すフローチャートである。尚、通信パラメータ設定制御機能を有する機器は、マスター機器決定ステップ102で決定した装置種別を判定し、自身がスレーブ側機器であることを認識しているものとする。
スレーブ側機器は、マスター側機器に向けてマスター問い合わせメッセージを送信する(S1101)。ここで、マスター側機器から周期的に送信されているマスター宣言メッセージを受信する(S1102)。これにより、スレーブ側機器はマスター機器の存在を認識する。
その後、マスター側機器から、参加拒否通知メッセージが送信されてきているか否かを確認する(S1103)。ここで、マスター側機器から、参加拒否通知メッセージが送信されていない場合は(S1103のNO)、引き続き機器能力収集要求が送信されてくるか否かを判定する(S1104)。この判定処理を行う理由は、通信経路の伝播状況等により、参加拒否通知の取りこぼしなどが想定されるためである。
ここで、機器能力収集要求を受信したスレーブ側機器は、機器能力収集要求の送信元のマスター側機器に向けて、機器能力収集応答を送信する(S1105)。
一方、マスター側機器から参加拒否通知メッセージの受信を確認した場合(S1103のYES)又は機器能力収集要求の受信が確認できなかった場合(S1104のNO)、スレーブ側機器は、自身が通信パラメータ設定ネットワークへの参加が拒否されたと判断し、通信パラメータ設定ネットワークとの通信を終了し、無線通信機能を停止する。
尚、スレーブ側機器で、通信パラメータ設定ネットワークへの参加が拒否された場合、その旨をユーザインターフェースを介して表示するようにしても良い。
以上、説明した一連の処理により、無線パラメータ設定ネットワークに参加可能な機器の台数を限定することが可能となる。
[第3の実施形態]
次に、図面を参照しながら本発明に係る第3の実施形態について詳細に説明する。第1及び第2の実施形態では、通信パラメータ設定ネットワークへの新たな機器の参加を拒否する参加状態として規定数の機器が参加した状態、規定数の機器の参加を受け付けた状態としたが、第3の実施形態では機器能力収集要求を送信後のタイムアウト状態とするものである。
尚、第3の実施形態でも、図6に示した3台の無線通信機器によるアドホックなネットワークにおいて通信パラメータ設定ネットワークを構築する際に、想定されていない第三者によるネットワークへの参加を防止する処理について説明する。
図12は、第3の実施形態における通信パラメータ設定制御機能を有する機器のマスター機器決定ステップから機器能力収集ステップまでのシーケンスを示す図である。尚、図12では、機器Aと機器Bとの間で、既に通信パラメータ設定ネットワーク形成ステップ101が終了し、機器AがIBSSクリエイター、機器B及び機器Cがジョイナーであるものとする。
機器Aは、マスター問い合わせメッセージ(S1201)をブロードキャストメッセージとして送信する。この時点では、マスター機器決定ステップ102が開始されたばかりであり、マスター機器が存在しないため、このマスター問い合わせメッセージ(S1201)に対する応答は返却されない。
従って、機器Aは、自らをマスター機器と設定し、このマスター問い合わせメッセージ(S1201)の送信を停止し、マスター宣言メッセージ(S1202)の送信を開始する。
次に、ランダムなインターバルが経過した後、機器Bがマスター問い合わせメッセージ(S1203)をブロードキャストメッセージとして送信する。ここで、機器Aは、機器Bからマスター問い合わせメッセージ(S1203)が送信されたことを確認した段階でマスター宣言メッセージ(S1204)を送信する。一方、機器Bでは、機器Aより送信されたマスター宣言メッセージ(S1204)を受信したことにより、スレーブ宣言メッセージ(S1205)を送信する。
次に、機器Aは、機器Bからのスレーブ宣言メッセージ(S1205)を受信したことにより、図1に示した機器能力収集ステップ103を開始する。即ち、機器能力収集要求(S1206)を送信する。そして、送信と同時に、マスター側機器は参加受付タイマーをスタートさせる。この参加受付タイマーの起動中に、機器Bより機器能力収集応答(S1207)を受信することにより、次の通信パラメータ転送方向決定ステップ104へと状態が遷移する。
その後、参加受付タイマーのタイムアウト発生(S1208)により、機器Aは、参加受付状態を参加拒否に遷移させる。これにより、今後の通信パラメータ設定ネットワークへの新規参加は不可能となる。
この時点で、例えば機器Cがマスター問い合わせメッセージ(S1209)を送信した場合、機器Aは、機器Cに向けて参加拒否通知メッセージ(S1110)を送信し、この通信パラメータ設定ネットワークへの参加を拒絶する。
尚、図12では、既に機器A及び機器Bが機器能力収集ステップ103に遷移している状態で、新規にスレーブ機器(機器C)が参入しようとした場合を説明したが、既に2つのスレーブ機器(機器B及び機器C)が存在し、それぞれ機器能力収集ステップ103に遷移している状態であっても、本発明を適用することができる。
図13は、2つのスレーブ機器がそれぞれ機器能力収集ステップに遷移している場合のマスター機器決定ステップから機器能力収集ステップまでの通信パラメータ設定制御機能を有する3つの機器のシーケンスを示す図である。尚、図13では機器A、機器B、機器C間で、既に図1の通信パラメータ設定ネットワーク形成ステップ101が終了し、機器AがIBSSクリエイター、機器B及び機器Cがジョイナーであるものとする。
機器Aは、マスター問い合わせメッセージ(S1301)をブロードキャストメッセージとして送信する。この時点では、マスター機器決定ステップ102が開始されたばかりであり、マスター機器が存在しないため、このマスター問い合わせメッセージ(S1301)に対する応答は返却されない。
従って、機器Aは、自らをマスター機器と設定し、このマスター問い合わせメッセージ(S1301)の送信を停止し、マスター宣言メッセージ(S1302)の送信を開始する。
次に、ランダムなインターバルが経過した後、機器Bがマスター問い合わせメッセージ(S1303)をブロードキャストメッセージとして送信する。機器Bと同様に、機器Cもマスター問い合わせメッセージ(S1304)を送信する。ここで、機器Aは、機器B及び機器Cからマスター問い合わせメッセージ(S1303、S1304)が送信されたことを確認した段階でマスター宣言メッセージ(S1305)を送信する。
一方、機器Bは、機器Aより送信されたマスター宣言メッセージ(S1305)を受信したことにより、スレーブ宣言メッセージ(S1306)を送信する。機器Bと同様に、機器Cも、機器Aより送信されたマスター宣言メッセージ(S1305)を受信したことにより、スレーブ宣言メッセージ(S1307)を送信する
次に、機器Aは、機器B及び機器Cからのスレーブ宣言メッセージ(S1306及びS1307)を受信したことにより、機器能力収集ステップ103を開始する。即ち、機器能力収集要求(S1308)をブロードキャストメッセージとして送信する。この送信と同時に、マスター側機器は参加受付タイマーをスタートさせる。この参加受付タイマーの起動中に、機器Bより機器能力収集応答(S1309)を受信することにより、次の通信パラメータ転送方向決定ステップ104へと状態が遷移する。
その後、参加受付タイマーのタイムアウト発生(S1310)により、機器Aは、参加受付状態を参加拒否に遷移させる。これにより、今後の通信パラメータ設定ネットワークへの新規参加は不可能となる。
例えば、参加受付タイマーがタイムアウトした後に機器Cが機器能力収集応答(S1311)を送信した場合、機器Aは機器Cに向けて参加拒否通知メッセージ(S1312)を送信し、この通信パラメータ設定ネットワークへの参加を拒絶する。
尚、第3の実施形態では、機器Cのみがタイムアウトとなる場合について説明したが、機器Bでタイムアウト以降にしか機器能力収集応答を送信できなかった場合も、参加受付は拒否されることとなる。
次に、図14を用いて、上述したシーケンスを実現するための機器の処理について説明する。
図14は、第3の実施形態におけるマスター側機器の処理を示すフローチャートである。尚、スレーブ側機器の処理については、第2の実施形態と何ら変わらないため、ここでの説明は省略する。
まず、通信パラメータ設定制御機能を持つ機器が自己をマスター側機器と判定した時点で、参加受付状態を「許容」と初期設定を行う(S1401)。続いて、スレーブ側機器となるその他の通信パラメータ設定制御機能を持つ機器からのマスター問い合わせの受信を待ち、他の機器からのマスター問い合わせを受信する(S1402)。次に、マスター問い合わせを受信した時点で、マスター宣言を、マスター問い合わせの送信元機器へ送信する(S1403)。
一方、マスター問い合わせ送信元の機器は、マスター宣言の受信により、自己をスレーブ側機器と判断する。そして、スレーブ宣言を、マスター宣言送信元の機器に送信する。このスレーブ宣言を受信するマスター側機器では、一つ以上の通信機器からスレーブ宣言を受け取ったか否かを判定する(S1404)。ここで、一つの機器からもスレーブ宣言を受信していない場合(S1404のNO)、このマスター側機器が保有するスレーブ側機器が一つもないということなので、スレーブ側機器が現れるまで、マスター問い合わせの待ち受け状態(S1402)へと処理を戻す。
また、一つ以上の機器からスレーブ宣言を受信した場合(S1404のYES)、マスター側機器は、機器能力収集要求を送信する(S1405)。この機器能力収集要求を送信後、参加受付タイマーを開始させる(S1406)。その後、機器能力収集要求を送信後、スレーブ側機器より機器能力収集応答を受信する(S1407)と、マスター側機器は、通信パラメータ転送方向決定ステップ104へと遷移する。
その後、参加受付タイマーのタイマー値を判定し、タイマー値が満了している場合は(S1408のYES)、参加受付状態を「非許容」へ変更する(S1409)。
また、タイマー値が未満了である場合は(S1408のNO)、再びマスター問い合わせメッセージの受信待ち状態(S1402)に遷移する。
尚、第3の実施形態では、参加受付タイマーを機器能力収集要求の送信後に発動するように構成したが、通信パラメータ設定ネットワークを構築後、一番最初のスレーブ側機器の参入時に発動するように構成しても良い。その場合、図14に示すS1405とS1406とを入れ替えれば良い。
また、上述の参加受付タイマーを機器能力収集要求送信時ではなく、マスター宣言送信開始直後、図14に示すS1403の次に発動するように構成することも可能である。
また、タイマー満了時に、所定のユーザインターフェースを介してユーザの判断により参加受付時間を延長するように機能を拡張することも可能である。
[第4の実施形態]
次に、図面を参照しながら本発明に係る第4の実施形態について詳細に説明する。通信パラメータ設定制御機能を有する機器において、不必要な機器の通信パラメータ設定ネットワーク参加を防ぐ形態としては、これまで説明した第1の実施形態から第3の実施形態までの手法の他に、異なる視点として、機器の能力による方法もある。第4の実施形態では、通信パラメータ設定ネットワークに参加する際に事前に参加しようとする機器の機器能力を判定するものである。
尚、第4の実施形態でも、図6に示した3台の無線通信機器によるアドホックなネットワークにおいて通信パラメータ設定ネットワークを構築する際に、想定されていない第三者によるネットワークへの参加を防止する処理について説明する。
図15は、第4の実施形態における通信パラメータ設定制御機能を有する機器のマスター機器決定ステップから機器能力収集ステップまでのシーケンスを示す図である。尚、図15では、機器Aと機器Bとの間で、既に通信パラメータ設定ネットワーク形成ステップ101が終了し、機器AがIBSSクリエイター、機器B及び機器Cがジョイナーであるものとする。
機器Aは、マスター問い合わせメッセージ(S1501)をブロードキャストメッセージとして送信する。この時点では、マスター機器決定ステップ102が開始されたばかりであり、マスター機器は存在しないため、このマスター問い合わせメッセージ(S1501)に対する応答は返却されない。
従って、機器Aは、自らをマスター機器と設定し、このマスター問い合わせメッセージ(S1501)の送信を停止し、マスター宣言メッセージ(S1502)の送信を開始する。
次に、ランダムなインターバルが経過した後、機器Bがマスター問い合わせメッセージ(S1503)をブロードキャストメッセージとして送信する。ここで、機器Aは、機器Bからマスター問い合わせメッセージ(S1503)が送信されたことを確認した段階でマスター宣言メッセージ(S1504)を送信する。一方、機器Bでは、機器Aより送信されたマスター宣言メッセージ(S1504)を受信したことにより、スレーブ宣言メッセージ(S1505)を送信する。
次に、機器Aは、機器Bからのスレーブ宣言メッセージ(S1505)を受信したことにより、機器能力収集ステップ103を開始する。即ち、機器能力収集要求(S1506)を送信する。一方、機器Bは、機器能力収集要求(S1506)を受信したことにより、自身の機器能力を設定し、機器能力収集応答(S1507)を機器Aへ送信する。
次に、機器Aは、機器Bより機器能力収集応答(S1507)を受け、RAM304に保持している機器能力情報と照合し、機器Aの要求する機器能力を機器Bが満たしているか否かを判定する。ここで、機器能力を満たしていると判断した場合は、機器Bに向けて通信パラメータ受理者要求(S1508)を送信する。
更に、ランダムなインターバルが経過した後、機器Cがマスター問い合わせメッセージ(S1509)を送信する。機器Aは、機器Cからマスター問い合わせメッセージが送信されたことを確認した段階でマスター宣言メッセージ(S1510)を送信する。
一方、機器Cは、機器Aより送信されたマスター宣言メッセージ(S1510)を受信したことにより、スレーブ宣言メッセージ(S1511)を送信する。
次に、機器Aは、機器Cからのスレーブ宣言メッセージ(S1511)を受信したことにより、機器能力収集ステップ103を開始する。即ち、機器能力収集要求(S1512)を送信する。一方、機器Cは、機器能力収集要求(S1512)を受信したことにより、自身の機器能力を設定し、機器能力収集応答(S1513)を機器Aへ送信する。
次に、機器Aは、機器Cより機器能力収集応答(S1513)を受け、RAM304に保持している機器能力情報と照合し、機器Aの要求する機器能力を機器Cが満たしているか否かを判定する。ここで、機器Bと異なり、機器Cが機器能力を満たしていないと判断した場合は、機器Cに向けて参加非許容通知メッセージ(S1514)を送信する。この参加非許容通知を受信した機器Cは、通信パラメータ設定制御機能を終了する。
尚、図15では、既に機器A及び機器Bが機器能力収集ステップ103に遷移している状態で、新規にスレーブ機器(機器C)が参入しようとした場合を説明したが、既に2つのスレーブ機器(機器B及び機器C)が存在し、それぞれ機器能力収集ステップ103に遷移している状態であっても、本発明を適用することができる。
次に、図16を用いて、上述した図15に示すシーケンスを実現するための機器の処理について説明する。尚、ここでは、マスター側機器の処理についてのみ説明し、スレーブ側機器の処理については第2の実施形態と何ら変わらないため、その説明は省略する。
図16は、第4の実施形態における通信パラメータ設定制御機能を有する機器のマスター側機器での処理を示すフローチャートである。マスター側機器は、スレーブ側機器からスレーブ宣言メッセージを受信する(S1601)。スレーブ宣言メッセージを受信したマスター側機器は、スレーブ側機器へ、機器能力収集要求を送信し、スレーブ側機器から機器能力収集応答を受信することにより、機器能力の交換を実施する(S1602)。
次に、機器能力の交換が成功したか否かを判定し、失敗した場合は(S1603のNO)、この時点で、マスター側機器は、スレーブ側機器に対して、参加拒否通知メッセージを送信する(S1605)。
また、機器能力の交換が成功した場合は(S1602のYES)、マスター側機器は、スレーブ側機器から得られた機器能力と自身の保有している機器能力を判定し、スレーブ側機器から得られた機器能力が、自身の保有する機器能力を満たすか否かを判定する(S1603)。ここで、不一致である場合は(S1603のNO)、機器能力交換が失敗した場合と同様に、マスター側機器は、スレーブ側機器に対して、参加拒否通知メッセージを送信する(S1605)。
また、判定した結果、機器能力が一致或いは十分である場合は(S1603のYES)、通信パラメータ設定制御機能の通信パラメータ転送方向決定ステップ104を実行する(S1604)。
尚、第4の実施形態における機器能力は、暗号方式や認証方式を想定しているが、それ以外の能力によって判定することも可能である。
[第5の実施形態]
次に、図面を参照しながら本発明に係る第5の実施形態について詳細に説明する。第5の実施形態は、マスター機器決定ステップ102における要求信号及び応答信号に、乱数を用い、その乱数値を要素として、機器能力収集ステップ以降のシーケンスを暗号化することを特徴とする。
尚、第5の実施形態でも、図6に示した3台の無線通信機器によるアドホックなネットワークにおいて通信パラメータ設定ネットワークを構築する際に、想定されていない第三者によるネットワークへの参加を防止する処理について説明する。
図17は、第5の実施形態における通信パラメータ設定制御機能を有する機器のマスター機器決定ステップから機器能力収集ステップまでのシーケンスを示す図である。尚、図17では、機器Aと機器Bとの間で、既に通信パラメータ設定ネットワーク形成ステップ101が終了し、機器AがIBSSクリエイター、機器B及び機器Cがジョイナーであるものとする。
機器Aは、マスター問い合わせメッセージをブロードキャストメッセージ(S1701)として送信する。この時点においては、マスター機器決定ステップが開始されたばかりであり、マスター機器は存在しないため、このマスター問い合わせメッセージ(S1701)に対する応答は返却されない。
従って、機器Aは、自らをマスター機器と設定し、このマスター問い合わせメッセージ(S1701)の送信を停止し、マスター宣言メッセージ(S1702)の送信を開始する。尚、このマスター宣言メッセージ(S1702)には、マスター側機器によって生成された乱数(M Nonce)が付与されている。
次に、ランダムなインターバルが経過した後、機器Bがマスター問い合わせメッセージ(S1704)をブロードキャストメッセージとして送信する。尚、機器Bは、マスター問い合わせメッセージ(S1704)の送信前に、機器Aよりマスター宣言メッセージ(S1702)を受信していた場合は、上述の乱数(M Nonce)と、機器B内で生成された乱数(S Nonce)と、機器固有のSeedとで、セッション鍵を生成する(S1703)。
ここで、機器Aは、機器Bからマスター問い合わせメッセージ(S1704)が送信されたことを確認した後、乱数(M Nonce)と、マスター問い合わせメッセージに付与された乱数(S Nonce)と、機器固有のSeedとで、セッション鍵を生成する(S1705)。
次に、上述のセッション鍵を生成した後、機器Aは、平文にてマスター宣言メッセージ(S1706)を機器Bへと送信する。その後、マスター問い合わせメッセージの送信元に対して、機器Aは生成済みのセッション鍵を適用する(S1707)。
一方、機器Bでは、機器Aより送信されたマスター宣言メッセージ(S1706)を受信したことにより、生成済みのセッション鍵を適用する(S1708)。このセッション鍵を適用後、機器Bはこのセッション鍵による暗号化を実施し、スレーブ宣言メッセージ(S1709)を機器Aへ送信する。これ以降、機器Aと機器Bとの間の通信は、暗号化されることとなる。
その後、例えば第三の端末機器Cが出現したとする。また、機器Cは、機器Aより送信されていたマスター宣言メッセージ(S1706)を傍受済みであり、機器Bと同様に、セッション鍵を生成している(S1710)ものとする。
まず、機器Cは、マスター問い合わせメッセージ(S1711)を機器Aへ向けて送信する。一方、機器Aは、既に機器Bとの間で暗号化を確定しているため、機器Cから送信されたマスター問い合わせメッセージ(S1711)を受信できない。
従って、機器Cは、マスター問い合わせメッセージ(S1711)に対する返答を受信できないため、タイムアウトが発生する(S1712)。タイムアウトが発生した時点で、機器Cは通信パラメータ設定ネットワークに関する処理を終了する。
次に、上述した機器間のシーケンスの説明に引き続き、マスター側機器及びスレーブ側機器で行われる処理について説明する。まず、図18を用いて、マスター側機器で行われる処理について説明する。
図18は、第5の実施形態における通信パラメータ設定制御機能を有するマスター機器の処理を示すフローチャートである。マスター機器は、自己内で生成した乱数を付与してマスター宣言メッセージを送出する(S1801)。送出後、スレーブ候補機器よりの、マスター問い合わせメッセージを待ち受ける(S1802)。このマスター問い合わせメッセージ待ち受けにおいて、マスター問い合わせメッセージを未受信の場合は、マスター機器は、この待ち受け処理を繰り返す。
その後、スレーブ機器よりマスター問い合わせメッセージを受信すると(S1802のYES)、マスター機器は、自己内で生成した乱数(M Nonce)と、マスター問い合わせメッセージに付与されていたスレーブ側機器内にて生成された乱数(S Nonce)と、マスター機器内に保持されているSeedとから、通信パラメータ設定ネットワーク内にて有効なセッション鍵を生成する(S1803)。
次に、マスター機器は、暗号化は行わずに、マスター宣言メッセージをスレーブ機器へ送信する(S1804)。そして、マスター宣言メッセージの送信後、生成したセッション鍵を適用し(S1805)、スレーブ機器からのスレーブ宣言メッセージを待ち受ける。このスレーブ宣言メッセージを受信する(S1806)と、マスター機器はセッション鍵によってスレーブ宣言メッセージの復号化を実施する(S1807)。また、複号化に失敗した場合は(S1807のNO)、再びスレーブ宣言メッセージの受信待ち受け処理(S1806)に戻る。
一方、上述のスレーブ宣言メッセージの復号化に成功した場合は(S1807のYES)、通信パラメータ設定制御機能の次ステップである機器能力収集ステップ103へ遷移する(S1808)。
次に、上述のマスター側機器の処理に続き、図19を用いて、スレーブ側機器の処理について説明する。
図19は、第5の実施形態における通信パラメータ設定制御機能を有するスレーブ機器の処理を示すフローチャートである。まず、通信パラメータ設定制御機能を有する機器は、既に近傍にマスター側機器が存在する場合、マスター宣言メッセージを受信する(S1901)。マスター宣言メッセージには、マスター側機器の乱数(M Nonce)が含まれている。この乱数(M Nonce)と自己内で生成したスレーブ側機器の乱数(S Nonce)とSeedとから、通信パラメータ設定ネットワークにおいて使用するセッション鍵を生成する(S1902)。
セッション鍵を生成後、スレーブ側機器は、マスター問い合わせをブロードキャストで送信する(S1903)。このマスター問い合わせを送信後、マスター側機器からマスター宣言が送信されるまで待機する(S1904)。その後、マスター側機器からマスター宣言メッセージを受信すると(S1904のYES)、上述のセッション鍵生成時の乱数(M Nonce)と、ここで受信したマスター宣言メッセージ内に含まれる乱数(M Nonce)とを比較し、同一のものである場合は、生成したセッション鍵を適用する(S1905)。
次に、スレーブ側機器は、このセッション鍵を用いて暗号化したスレーブ宣言をマスター側機器へ送信する(S1906)。スレーブ宣言が正しくマスター側機器へ送信できた場合は、マスター側機器から機器能力収集要求が送信されてくるため、その機器能力収集要求を待ち受ける(S1907)。ここで、マスター側から解読できる機器能力収集要求を受信できなかった場合(S1907のNO)、スレーブ側機器は、通信パラメータ設定ネットワークに関する処理を終了する(S1909)。
また、マスター側機器より機器能力収集要求を受信した場合(S1907のYES)、スレーブ側機器は、通信パラメータ設定制御機能の次のステップである機器能力収集ステップ103の処理を実施する(S1908)。
第5の実施形態によれば、第1の実施形態よりも強力な暗号化処理によりマスター機器とスレーブ機器との間で通信パラメータ設定を実施することができる。
[他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。