本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線通信システムの概念図である。図1を参照して、この発明の実施の形態による無線通信システム100は、無線装置1〜12を備える。
無線装置1〜12は、無線通信システム100のユーザによってルーツノードが指定されると、その指定されたルーツノードがルーツアナウンスメッセージをブロードキャストすることによって階層構造を構築する。たとえば、無線装置1がルーツノードに指定されると、無線装置1は、ルーツアナウンスメッセージを無線通信システム100内でブロードキャストすることによって、無線装置1〜12は、階層構造を構築する。また、無線装置1〜12は、階層構造の構築と同時に各無線装置に受信チャネルを割り当てる。そして、無線装置1〜12は、階層構造の構築および各無線装置への受信チャネルの割当が終了すると、その割り当てた受信チャネルを用いて無線通信を行なう。
階層構造を構築する具体的な方法および各無線装置へ受信チャネルを割り当てる具体的な方法については、後述する。
なお、この発明においては、「ルーツノード」とは、階層構造に配置された複数の無線装置のうち、最上位に配置された無線装置を言い、1個の無線装置からなる。
図2は、図1に示す無線装置1の構成を示す概略図である。図2を参照して、無線装置1は、アンテナ110と、インターフェース111〜11j(jは正の整数)と、チャネル割当手段120と、ルーティングテーブル130と、タイマー140と、通信手段150とを含む。
アンテナ110は、無線通信空間からパケットを受信し、その受信したパケットをインターフェース111〜11jのいずれかへ送信する。また、アンテナ110は、インターフェース111〜11jのいずれかからパケットを受信し、その受信したパケットを無線通信空間へ送信する。
インターフェース111〜11jの各々は、たとえば、4個のチャネルCh1〜Ch4を有する。この4個のチャネルCh1〜Ch4は、相互に周波数が異なり、重複しないチャネルである。
そして、インターフェース111〜11jの各々は、ルーツアナウンスメッセージ、ルートリプライメッセージ、スキャンメッセージおよびスキャンリプライメッセージをチャネル割当手段120から受信し、その受信したルーツアナウンスメッセージ、ルートリプライメッセージ、スキャンメッセージおよびスキャンリプライメッセージをアンテナ110へ送信する。
また、インターフェース111〜11jの各々は、ルーツアナウンスメッセージ、ルートリプライメッセージ、スキャンメッセージおよびスキャンリプライメッセージをアンテナ110から受信し、その受信したルーツアナウンスメッセージ、ルートリプライメッセージ、スキャンメッセージおよびスキャンリプライメッセージをチャネル割当手段120へ送信する。
さらに、インターフェース111〜11jの各々は、通信用のパケットを通信手段150から受信し、その受信したパケットをアンテナ110へ送信するとともに、通信用のパケットをアンテナ110から受信し、その受信したパケットを通信手段150へ送信する。
チャネル割当手段120は、電源(図示せず)がオンされると、インターフェース111〜11jのいずれかのインターフェースが有する4個のチャネルCh1〜Ch4から1個のチャネルを共通チャネルCh_comとして選択する。
また、チャネル割当手段120は、無線通信システム100のユーザによって無線装置1がルーツノードに指定されると、後述する方法によってルーツアナウンスメッセージを作成し、その作成したルーツアナウンスメッセージを共通チャネルCh_comを有するインターフェース(インターフェース111〜11jのいずれか)へ送信する。
さらに、チャネル割当手段120は、共通チャネルCh_comを有するインターフェース(インターフェース111〜11jのいずれか)を介して、無線装置1が配置された階層よりも下位の階層に配置された無線装置からルートリプライメッセージを受信すると、その受信したルートリプライメッセージに基づいて、各無線装置を宛先とする経路を後述する方法によってルーティングテーブル130に格納する。
さらに、チャネル割当手段120は、無線装置1がルーツノードでない場合、共通チャネルCh_comを有するインターフェース(インターフェース111〜11jのいずれか)を介して、無線装置1が所属する階層よりも上位の階層に配置された無線装置からルーツアナウンスメッセージを受信すると、その受信したルーツアナウンスメッセージに基づいて、無線装置1が所属する階層よりも上位の階層に配置された無線装置を宛先とする経路を後述する方法によって計算し、その計算した経路をルーティングテーブル130に格納する。そして、チャネル割当手段120は、ルーツアナウンスメッセージに対する応答メッセージであるルートリプライメッセージを後述する方法によって作成して上位の階層に配置された無線装置へ送信するとともに、無線装置1が所属する階層よりも下位の階層に配置された無線装置へルーツアナウンスメッセージを転送する。
さらに、チャネル割当手段120は、無線装置1がルーツノードでない場合、共通チャネルCh_comを有するインターフェース(インターフェース111〜11jのいずれか)を介して、無線装置1が所属する階層よりも下位の階層に配置された無線装置からルートリプライメッセージを受信すると、その受信したルートリプライメッセージに基づいて、無線装置1が所属する階層よりも下位の階層に配置された無線装置を宛先とする経路を後述する方法によって計算し、その計算した経路をルーティングテーブル130に格納する。そして、チャネル割当手段120は、無線装置1が所属する階層よりも上位の階層に配置された無線装置へルートリプライメッセージを転送する。
さらに、チャネル割当手段120は、無線装置1が無線通信システム100へ新たに参加した場合、後述する方法によってスキャンメッセージを作成してブロードキャストする。
さらに、チャネル割当手段120は、無線装置1以外の無線装置からスキャンメッセージを受信すると、その受信したスキャンメッセージに対する応答メッセージであるスキャンリプライメッセージを後述する方法によって作成してスキャンメッセージの送信元へ送信する。
ルーティングテーブル130は、各無線装置を宛先とする経路を格納する。タイマー140は、チャネル割当手段120からの指示によって時間を計測する。通信手段150は、インターフェース111〜11jおよびアンテナ110を介して通信相手の無線装置と無線通信を行なう。
なお、図1に示す無線装置2〜12の各々も、図2に示す無線装置1の構成と同じ構成からなる。
図3は、図2に示すルーティングテーブル130の構成を示す概念図である。図3を参照して、ルーティングテーブル130は、送信先(dst)と、次の無線装置(next hop)と、メトリック(metric)と、シーケンス番号(sequence number)と、関係(relation)と、階層ID(class ID)と、チャネル(channel)とからなる。そして、送信先、次の無線装置、メトリック、シーケンス番号、関係、階層IDおよびチャネルは、相互に対応付けられる。
送信先は、無線通信の相手先のIPアドレスを示す。次の無線装置は、送信元と送信先との間で無線通信が行なわれるときに、各無線装置がパケットを送信する隣りの無線装置のIPアドレスを示す。メトリックは、送信先の無線装置までのホップ数を示す。シーケンス番号は、各経路の生成順を表す数値からなり、たとえば、より大きい数値は、経路が新しいことを示す。関係は、各無線装置と送信先の無線装置との間の関係を示し、"ルーツノード(root)"、"親(parent)"、"子(children)"、"兄弟(silbing)"および"不明(unknown)"のいずれかからなる。階層IDは、送信先の無線装置が配置される階層を示す。チャネルは、"送信先"の受信チャネルまたは"次の無線装置"の受信チャネルを示す。
図4は、キャッシュテーブルの構成を示す概念図である。図4を参照して、キャッシュテーブルCT(Cache Table)は、図3に示すルーティングテーブル130と同じ構成からなり、各無線装置が無線通信を行なうときに逐一作成されるものである。そして、この発明においては、キャッシュテーブルCTは、チャネル割当手段120および通信手段150によって無線通信ごとに作成される。
図5は、ルーツアナウンスメッセージの構成を示す概念図である。図5を参照して、ルーツアナウンスメッセージRAMは、IPヘッダIPHと、アナウンスメッセージAMとからなる。IPヘッダIPHは、バージョン(vrsion)と、ヘッダ長(header length)と、サービスタイプ(type of service)と、トータル長(total length)と、識別番号(identification)と、フラグ(flag)と、フラグメントオフセット(fragment offset)と、生存時間(time to live)と、プロトコル(protocol)と、ヘッダチェックサム(header checksum)と、送信元IPアドレス(source IP address)と、送信先IPアドレス(destination IP address)と、オプション(option)と、パディング(padding)とからなる。
バージョンは、4ビットからなり、ヘッダ長は、4ビットからなり、サービスタイプは、8ビットからなり、トータル長は、16ビットからなり、識別番号は、16ビットからなり、フラグは、3ビットからなり、フラグメントオフセットは、13ビットからなり、生存時間は、8ビットからなり、プロトコルは、8ビットからなり、ヘッダチェックサムは、16ビットからなり、送信元IPアドレスは、32ビットからなり、送信先IPアドレスは、32ビットからなり、オプションは、16ビットからなり、パディングは、16ビットからなる。
アナウンスメッセージAMは、メッセージタイプ(message type)と、メッセージ長(message length)と、ホップ数(hop count)と、TTLと、シーケンス番号(sequence number)と、階層ID(class ID)と、チャネル数(number of channel)と、ルーツIPアドレス(root IP address)と、割当チャネル(assigned channel)と、ターゲットチャネル(target channel)とからなる。
メッセージタイプ、メッセージ長、ホップ数、TTL、階層IDおよびチャネル数の各々は、8ビットからなり、シーケンス番号は、16ビットからなり、ルーツIPアドレス、割当チャネルおよびターゲットチャネルの各々は、32ビットからなる。
メッセージタイプは、アナウンスメッセージAMの種類を示す。そして、メッセージタイプは、[a8|a7|a6|a5|a4|a3|a2|a1]の形式の8ビットデータからなる。1番目のビットa1は、"1"が格納され、2番目のビットa2は、"0"が格納され、3番目のビットa3は、"0"が格納され、4番目のビットa4は、チャネル割当を行なうとき、"1"が格納され、それ以外のとき、"0"が格納され、5番目から8番目のビットa5〜a8の各々は、予約済みである。
メッセージ長は、アナウンスメッセージAMの長さを示す。ホップ数は、転送回数を示し、アナウンスメッセージAMを受信した無線装置によって"1"つづインクリメントされる。
TTLは、アナウンスメッセージAMの生存時間を示し、アナウンスメッセージAMの最大転送回数(通常は、255)が格納される。シーケンス番号は、アナウンスメッセージAMの生成順を表す数値からなり、たとえば、より大きい数値は、アナウンスメッセージAMが新しいことを示す。そして、シーケンス番号は、ルーツノードによって管理される。
階層IDは、アナウンスメッセージAMの送信元の無線装置が所属する階層を示す数値からなる。そして、ルーツノードの階層IDは、"1"である。チャネル数は、アナウンスメッセージAMに格納されているチャネル数を示す。ルーツIPアドレスは、ルーツノードのIPアドレスを示す。割当チャネルは、アナウンスメッセージAMの送信元の無線装置の受信チャネルを示す。ターゲットチャネルは、アナウンスメッセージAMを受信した無線装置に割り当てるべき受信チャネルを示す。
図6は、ルートリプライメッセージの構成を示す概念図である。図6を参照して、ルートリプライメッセージRRMは、IPヘッダIPHと、リプライメッセージRMとからなる。IPヘッダIPHについては、図5において説明したとおりである。
リプライメッセージRMは、メッセージタイプ(message type)と、メッセージ長(message length)と、ホップ数(hop count)と、TTLと、シーケンス番号(sequence number)と、階層ID(class ID)と、チャネル数(number of channel)と、リーフIPアドレス(leaf IP address)と、リーフ割当チャネル(leaf assigned channel)と、隣接割当チャネル(neighbor assigned channel)とからなる。
メッセージタイプ、メッセージ長、ホップ数、TTL、階層IDおよびチャネル数の各々は、8ビットからなり、シーケンス番号は、16ビットからなり、リーフIPアドレス、リーフ割当チャネルおよび隣接割当チャネルの各々は、32ビットからなる。
メッセージタイプは、リプライメッセージRMの種類を示す。そして、メッセージタイプは、[b8|b7|b6|b5|b4|b3|b2|b1]の形式の8ビットデータからなる。1番目のビットb1は、"0"が格納され、2番目のビットb2は、親子関係を構築するとき、"1"が格納され、3番目のビットb3は、兄弟関係を構築するとき、"1"が格納され、4番目のビットb4は、チャネル割当を行なうとき、"1"が格納され、それ以外のとき、"0"が格納され、5番目から8番目のビットb5〜b8の各々は、予約済みである。
メッセージ長は、リプライメッセージRMの長さを示す。ホップ数は、転送回数を示し、リプライメッセージRMを受信した無線装置によって"1"つづインクリメントされる。
TTLは、リプライメッセージRMの生存時間を示し、リプライメッセージRMの最大転送回数(通常は、255)が格納される。シーケンス番号は、リプライメッセージRMの生成順を表す数値からなり、たとえば、より大きい数値は、リプライメッセージRMが新しいことを示す。そして、シーケンス番号は、ルーツノードによって管理される。
階層IDは、リプライメッセージRMの送信元の無線装置が所属する階層を示す数値からなる。チャネル数は、リプライメッセージRMに格納されているチャネル数を示す。リーフIPアドレスは、リプライメッセージRMを生成した無線装置のIPアドレスを示す。リーフ割当チャネルは、リプライメッセージRMを生成した無線装置に割り当てられた受信チャネルを示す。隣接割当チャネルは、ルートリプライメッセージRRMを中継する無線装置に割り当てられた受信チャネルを示す。ルートリプライメッセージRRMが複数の無線装置によって中継される場合、隣接割当チャネルは、ルートリプライメッセージRRMが中継されるごとにルートリプライメッセージRRMを中継する無線装置に割り当てられた受信チャネルに更新される。また、ルートリプライメッセージRRMを中継する無線装置が存在しない場合、隣接割当チャネルには、リーフ割当チャネルと同じチャネルが格納される。
図7は、スキャンメッセージの構成を示す概念図である。図7を参照して、スキャンメッセージSCMは、メッセージタイプ(message type)と、メッセージ長(message length)と、待ち時間(wait time)と、受信チャネル(receive channel)とからなる。
メッセージタイプ、メッセージ長および待ち時間の各々は、8ビットからなり、受信チャネルは、32ビットからなる。
メッセージタイプは、スキャンメッセージSCMの種類を示す。そして、メッセージタイプは、[c8|c7|c6|c5|c4|c3|c2|c1]の形式の8ビットデータからなる。1番目のビットc1は、"1"が格納され、2番目のビットc2は、"0"が格納され、3番目のビットc3は、"0"が格納され、4番目のビットc4は、チャネル割当を行なうとき、"1"が格納され、それ以外のとき、"0"が格納され、5番目のビットc5は、スキャンが行なわれるとき、"1"が格納され、それ以外のときは、"0"が格納される。6番目のビットc6は、スキャンウェイトが行なわれるとき、"1"が格納され、それ以外のときは、"0"が格納される。7番目および8番目のビットc7,c8の各々は、予約済みである。
メッセージ長は、スキャンメッセージSCMの長さを示す。待ち時間は、スキャンメッセージSCMを生成した無線装置のインターフェースが1個のインターフェースのみからなる場合、スキャンメッセージSCMを受信した無線装置がスキャンリプライメッセージを送信するまでに待つ時間である。受信チャネルは、スキャンメッセージSCMを生成した無線装置が待ち受けているチャネルである。
スキャンメッセージSCMは、後述するように、チャネル割当が無線通信システム100において既に行なわれた後に、無線通信システム100に新たに参加した無線装置によって作成されて送信されるものであり、新たに参加した無線装置は、全てのインターフェース111〜11jの全てのチャネルCh1〜Ch4を用いてスキャンメッセージSCMを送信するので、新たに参加した無線装置が1個のインターフェースを備える場合、その新たに参加した無線装置は、4個のチャネルCh1〜Ch4の全てを用いてスキャンメッセージSCMを送信した後でなければ、スキャンメッセージSCMに対するスキャンリプライメッセージSCRMを受信できないので、スキャンメッセージSCMを受信した無線装置が新たに参加した無線装置によるスキャンメッセージSCMの送信が終了した後にスキャンリプライメッセージSCRMを送信するようにするために、インターフェースが1個である場合、待ち時間を含めてスキャンメッセージSCMを作成することにしたものである。
図8は、スキャンリプライメッセージの構成を示す概念図である。図8を参照して、スキャンリプライメッセージSCRMは、メッセージタイプ(message type)と、メッセージ長(message length)と、ホップ数(hop count)と、TTLと、シーケンス番号(sequence number)と、階層ID(class ID)と、チャネル数(number of channel)と、ルーツIPアドレス(root IP address)と、割当チャネル(assigned channel)と、ターゲットチャネル(target channel)とからなる。
メッセージタイプ、メッセージ長、ホップ数、TTL、階層IDおよびチャネル数の各々は、8ビットからなり、シーケンス番号は、16ビットからなり、ルーツIPアドレス、割当チャネルおよびターゲットチャネルの各々は、32ビットからなる。
メッセージタイプは、スキャンリプライメッセージSCRMの種類を示す。そして、メッセージタイプは、[d8|d7|d6|d5|d4|d3|d2|d1]の形式の8ビットデータからなる。1番目のビットd1は、"0"が格納され、2番目のビットd2は、親子関係を構築するとき、"1"が格納され、3番目のビットd3は、兄弟関係を構築するとき、"1"が格納され、4番目のビットd4は、チャネル割当を行なうとき、"1"が格納され、それ以外のとき、"0"が格納され、5番目から8番目のビットd5〜d8の各々は、予約済みである。
メッセージ長は、スキャンリプライメッセージSCRMの長さを示す。ホップ数は、転送回数を示し、スキャンリプライメッセージSCRMを受信した無線装置によって"1"つづインクリメントされる。
TTLは、スキャンリプライメッセージSCRMの生存時間を示し、スキャンリプライメッセージSCRMの最大転送回数(通常は、255)が格納される。シーケンス番号は、スキャンリプライメッセージSCRMの生成順を表す数値からなり、たとえば、より大きい数値は、スキャンリプライメッセージSCRMが新しいことを示す。そして、シーケンス番号は、ルーツノードによって管理される。
階層IDは、スキャンリプライメッセージSCRMの送信元の無線装置が所属する階層を示す数値からなる。チャネル数は、スキャンリプライメッセージSCRMに格納されているチャネル数を示す。ルーツIPアドレスは、スキャンリプライメッセージSCRMを生成した無線装置のIPアドレスを示す。割当チャネルは、スキャンリプライメッセージSCRMを生成した無線装置に割り当てられた受信チャネルを示す。ターゲットチャネルは、スキャンリプライメッセージSCRMを受信した無線装置に割り当てられる受信チャネルを示す。
図1に示す無線通信システム100における階層構造の構築および無線装置1〜12への受信チャネルの割当について詳細に説明する。なお、以下においては、無線装置1がルーツノードであるものとして説明する。
図9は、図1に示す無線通信システム100における階層構造の一例を示す図である。無線装置1がルーツノードである場合、複数の無線装置1〜12は、たとえば、図9に示す階層構造に配置される。すなわち、無線装置1は、階層1に配置され、無線装置2〜4は、階層1よりも下位の階層である階層2に配置され、無線装置1と直接無線通信を行なう。また、無線装置5〜11は、階層2よりも下位の階層である階層3に配置される。そして、無線装置5〜7は、無線装置2と直接無線通信を行ない、無線装置8,9は、無線装置3と直接無線通信を行ない、無線装置10,11は、無線装置4と直接無線通信を行なう。さらに、無線装置12は、階層3よりも下位の階層である階層4に配置され、無線装置10と直接無線通信を行なう。
この場合、無線装置1は、無線装置2〜3の"親(parent)"であり、無線装置2〜4は、無線装置1の"子(children)"である。また、無線装置2は、無線装置5〜7の"親(parent)"であり、無線装置5〜7は、無線装置2の"子(children)"である。さらに、無線装置3は、無線装置8,9の"親(parent)"であり、無線装置8,9は、無線装置3の"子(children)"である。さらに、無線装置4は、無線装置10,11の"親(parent)"であり、無線装置10,11は、無線装置4の"子(children)"である。さらに、無線装置10は、無線装置12の"親(parent)"であり、無線装置12は、無線装置10の"子(children)"である。さらに、無線装置2〜4は、相互に"兄弟(silbing)"であり、無線装置5〜7は、相互に"兄弟(silbing)"であり、無線装置8,9は、相互に"兄弟(silbing)"であり、無線装置10,11は、相互に"兄弟(silbing)"である。
図9に示すように、1個以上の無線装置が、上位の階層に所属する1個の無線装置と直接無線通信を行なえるように配置された階層構造を「木構造」という。すなわち、この発明においては、"親"が1個になるように複数の無線装置が階層状に配置された階層構造を「木構造」という。
次に、図9に示す階層構造を構築する方法および各無線装置へ受信チャネルを割り当てる方法について説明する。なお、以下においては、同じ階層に所属する無線装置同士は、相互に無線通信を行なわないことを前提として説明する。
図10は、図9に示す階層構造の構築および各無線装置への受信チャネルの割当を行なう動作を説明するためのフローチャートである。なお、図10においては、図9に示す階層構造のうち、無線装置1−無線装置2−無線装置5〜7からなる階層構造の構築および無線装置1,2,5〜7への受信チャネルの割当について説明する。
図10を参照して、無線装置1,2,5〜7の電源がオンされると、無線装置1,2,5〜7の各々において、チャネル割当手段120は、インターフェース111〜11jのうちの1つのインターフェースが有する4個のチャネルCh1〜Ch4から1個のチャネルを共通チャネルCh_comとして選択する。この場合、無線装置1,2,5〜7の各々において、チャネル割当手段120は、たとえば、インターフェース111のチャネルCh1を共通チャネルCh_comとして選択する。なお、電源がオンされると、インターフェース111のチャネルCh1を共通チャネルCh_comとして選択することは、無線装置1,2,5〜7の全てに予め登録されている。
その後、無線通信システム100のユーザによって、無線装置1がルーツノードとして決定される(ステップS1)。そして、無線装置1のチャネル割当手段120は、後述する方法によって、ルーツアナウンスメッセージRAMを作成し、その作成したルーツアナウンスメッセージRAMを共通チャネルCh_comを用いてブロードキャストする(ステップS2)。
そうすると、無線装置2のチャネル割当手段120は、無線装置1からブロードキャストされたルーツアナウンスメッセージRAMをアンテナ110およびインターフェース111(共通チャネルCh_com)を介して受信する(ステップS3)。そして、無線装置2のチャネル割当手段120は、受信したルーツアナウンスメッセージRAMに基づいて、後述する方法によって、無線装置2から無線装置1への経路情報を登録する(ステップS4)。その後、無線装置2のチャネル割当手段120は、後述する方法によって、ルートリプライメッセージRRMを作成し、その作成したルートリプライメッセージRRMを共通チャネルCh_comを用いて無線装置1へ送信する(ステップS5)。
無線装置1のチャネル割当手段120は、無線装置2から送信されたルートリプライメッセージRRMを共通チャネルCh_comを用いて受信し(ステップS6)、その受信したルートリプライメッセージRRMに基づいて、無線装置1から無線装置2への経路を登録する(ステップS7)。
一方、無線装置2のチャネル割当手段120は、ルーツアナウンスメッセージRAMを共通チャネルCh_comを用いて無線装置5〜7へ転送する(ステップS8)。そして、無線装置5〜7の各々において、チャネル割当手段120は、無線装置2から送信されたルーツアナウンスメッセージRAMを共通チャネルCh_comを用いて受信し(ステップS9)、その受信したルーツアナウンスメッセージRAMに基づいて、自己が搭載された無線装置(無線装置5〜7のいずれか)から無線装置1,2への経路を登録する(ステップS10)。そして、無線装置5〜7の各々において、チャネル割当手段120は、後述する方法によって、ルートリプライメッセージRRMを作成し、その作成したルートリプライメッセージRRMを共通チャネルCh_comを用いて無線装置2へ送信する(ステップS11)。
無線装置2のチャネル割当手段120は、無線装置5〜7から送信されたルートリプライメッセージRRMを共通チャネルCh_comを用いて受信し(ステップS12)、その受信したルートリプライメッセージRRMに基づいて、無線装置2から無線装置5〜7への経路を登録する(ステップS13)。そして、無線装置2のチャネル割当手段120は、共通チャネルCh_comを用いてルートリプライメッセージRRMを転送する(ステップS14)。
そうすると、無線装置1のチャネル割当手段120は、無線装置2によって転送されたルートリプライメッセージRRMを共通チャネルCh_comを用いて受信し(ステップS15)、その受信したルートリプライメッセージRRMに基づいて、無線装置1から無線装置5〜7への経路を登録する(ステップS16)。そして、一連の動作は、終了する。
(1)図10に示すステップS2の詳細な動作
図11は、図10に示すステップS2の詳細な動作を説明するためのフローチャートである。図10に示すステップS1の後、無線装置1のチャネル割当手段120は、ルーツアナウンスタイマをタイマー140に設定し(ステップS21)、時間をチェックする(ステップS22)。
そして、無線装置1のチャネル割当手段120は、ルーツアナウンスタイマが満期になったか否かを判定する(ステップS23)。ルーツアナウンスタイマが満期にならないと判定されたとき、一連の動作は、ステップS22へ移行する。
ステップS23において、ルーツアナウンスタイマが満期になったと判定されると、無線装置1のチャネル割当手段120は、後述する方法によってルーツアナウンスメッセージRAMを作成する(ステップS24)。そして、無線装置1のチャネル割当手段120は、自ノードへの経路情報をキャッシュテーブルCTに登録し(ステップS25)、自ノードへの経路情報をキャッシュテーブルCTから計算し、その計算した経路情報をルーティングテーブル130へ登録する(ステップS26)。その後、無線装置1のチャネル割当手段120は、ステップS24において作成したルーツアナウンスメッセージRAMをブロードキャストする(ステップS27)。これによって、図10に示すステップS2の詳細な動作が終了する。
(1−1)図11に示すステップS24の詳細な動作
図12は、図11に示すステップS24の詳細な動作を説明するためのフローチャートである。図11に示すステップS23において、ルーツアナウンスタイマが満期になったと判定されると、無線装置1のチャネル割当手段120は、シーケンス番号を1つインクリメントし(ステップS31)、階層IDに"1"をセットし(ステップS32)、自己(無線装置1)の待受チャネル(「受信チャネル」とも言う。以下、同じ。)を後述する方法によって決定する(ステップS33)。
そして、無線装置1のチャネル割当手段120は、自己(無線装置1)の待受チャネル(=受信チャネル)を物理的に切り替える(ステップS34)。これによって、インターフェース112が受信専用の固定インターフェースと決定される。その後、無線装置1のチャネル割当手段120は、チャネル割当を行なうか否かを判定する(ステップS35)。なお、この発明においては、受信専用のインターフェースを「固定インターフェース」と言う。
ステップS35において、チャネル割当を行なわないと判定されたとき、一連の動作は、図11に示すステップS25へ移行する。一方、ステップS35において、チャネル割当を行なうと判定されたとき、無線装置1のチャネル割当手段120は、後述する方法によって、隣接ノードの待受チャネルを決定する(ステップS36)。そして、一連の動作は、図11に示すステップS25へ移行する。
(1−1−1)図12に示すステップS33の詳細な動作
図13は、図12に示すステップS33の詳細な動作を説明するためのフローチャートである。図12に示すステップS32の後、無線装置1のチャネル割当手段120は、既に割当済みの待受チャネルが存在するか否かを判定する(ステップS41)。
そして、無線装置1のチャネル割当手段120は、ステップS41において、既に割当済みの待受チャネルが存在しないと判定したとき、固定インターフェースから待受チャネルを無作為に選択する(ステップS42)。無線装置1が2個以上のインターフェースを備えている場合、固定インターフェースは、無線装置1において2個以上のインターフェースから予め決定されており、無線装置1のチャネル割当手段120は、固定インターフェースとして予め決定されたインターフェースが有する4個のチャネルCh1〜Ch4から待受チャネルを無作為に選択する。たとえば、無線装置1においては、インターフェース112が固定インターフェースとして予め決定されており、無線装置1のチャネル割当手段120は、インターフェース112のチャネルCh1を待受チャネルとして無作為に選択する。なお、固定インターフェースは、各無線装置がパケットの受信用に用いる専用のインターフェースである。また、無線装置1が1個のインターフェースを備えている場合、無線装置1のチャネル割当手段120は、その1個のインターフェースが有する4個のチャネルCh1〜Ch4から待受チャネルを無作為に選択する。この場合、無線装置1は、その1個のインターフェースをパケットの送受信用のインターフェースとして用いる。
一方、無線装置1のチャネル割当手段120は、ステップS41において、既に割当済みの待受チャネルが存在すると判定したとき、その既に割り当てた待受チャネルを選択する(ステップS43)。そして、ステップS42またはステップS43の後、一連の動作は、図12に示すステップS34へ移行する。
(1−1−2)図12に示すステップS36の詳細な動作
図14は、図12に示すステップS36の詳細な動作を説明するためのフローチャートである。なお、図14に示すフローチャートは、無線装置1,2,5〜7における処理を対象としたフローチャートである。したがって、無線装置1,2,5〜7を意味する無線装置xにおける処理として図14に示すフローチャートを説明した後に、無線装置1が図14に示すフローチャートに従って隣接ノードの待受チャネルを決定する動作について説明する。
無線装置1のチャネル割当手段120は、図12に示すステップS35において、チャネル割当を行なうと判定すると、親のチャネルと自己(=無線装置x)のチャネルとが分かっているか否かを判定する(ステップS51)。
そして、無線装置xのチャネル割当手段120は、ステップS51において、親のチャネルと自己(=無線装置x)のチャネルとが分かっていないと判定したとき、親のチャネルは分かっていないが、指定されたチャネルが分かっているか否かをさらに判定する(ステップS52)。無線装置xのチャネル割当手段120は、ステップS52において、親のチャネルおよび指定されたチャネルが分かっていないと判定したとき、エラー処理を行なう(ステップS53)。この場合、隣接ノードの待受チャネルは決定されない。
一方、ステップS52において、無線装置xのチャネル割当手段120は、親のチャネルは分かっていないが、指定されたチャネルが分かっていると判定したとき、指定されたチャネル以外のチャネルから隣接ノードの待受チャネルを無作為に選択する(ステップS54)。
また、無線装置xのチャネル割当手段120は、ステップS51において、親のチャネルおよび自己(=無線装置x)のチャネルが分かっていると判定したとき、親のチャネルと指定されたチャネルとが同じチャネルか否かをさらに判定する(ステップS55)。そして、ステップS55において、無線装置xのチャネル割当手段120は、親のチャネルと指定されたチャネルとが同じチャネルであると判定したとき、親のチャネルを隣接ノードの待受チャネルとして選択する(ステップS56)。一方、ステップS55において、無線装置xのチャネル割当手段120は、親のチャネルと指定されたチャネルとが同じチャネルでないと判定したとき、親のチャネルおよび指定されたチャネル以外のチャネルから隣接ノードの待受チャネルを無作為に選択する(ステップS57)。
そして、ステップS53、ステップS54、ステップS56およびステップS57のいずれかの後、一連の動作は、図11に示すステップS25へ移行する。
なお、親のチャネルと指定されたチャネルとが同じチャネルである場合に親のチャネルを隣接ノードの待受チャネルとして選択する(ステップS56)ことにしたのは、隣接ノードのインターフェースが1個である場合にも、チャネル割当を行なうことができるようにするためである。
次に、無線装置1のチャネル割当手段120が図14に示すフローチャートに従って隣接ノードの待受チャネルを決定する動作について説明する。
無線装置1は、階層構造の最上位の階層に所属するので、"親"となる無線装置が存在しない。したがって、無線装置1のチャネル割当手段120は、親のチャネルが分かっていないので、ステップS51において、通常、"NO"と判定する。
そして、無線装置1のチャネル割当手段120は、図13に示すステップS42またはステップS43において無線装置1の待受チャネルCh1を選択しているので、指定されたチャネルが分かっている。したがって、無線装置1のチャネル割当手段120は、ステップS52において、"YES"と判定し、ステップS54において、指定されたチャネル以外のチャネルから隣接ノードの待受チャネルを無作為に選択する。
より具体的には、無線装置1のチャネル割当手段120は、図13に示すステップS42またはステップS43においてインターフェース112のチャネルCh1を無線装置1の待受チャネルとして選択しているので、ステップS54において、インターフェース112以外のj−1個のインターフェース111,113〜11jのうちの1個のインターフェースが有する3個のチャネルCh2〜Ch4から1つのチャネルCh2を隣接ノードの待受チャネルとして無作為に選択する。なお、無線装置1が1個のインターフェースを備えるとき、その1個のインターフェースのチャネルCh1以外の3個のチャネルCh2〜Ch4から1つのチャネルCh2を隣接ノードの待受チャネルとして無作為に選択する。
(1−2)図11に示すステップS27の詳細な動作
図15は、図11に示すステップS27の詳細な動作を説明するためのフローチャートである。図11に示すステップS26の後、無線装置1のチャネル割当手段120は、宛先IPアドレスから利用するインターフェースを決定する(ステップS61)。この場合、無線装置1のチャネル割当手段120は、ルーツアナウンスメッセージRAMを無線装置2,5〜7へインターフェース111の共通チャネルCh_com(=Ch1)を用いてブロードキャストしようとしているので、ステップS61において、インターフェース111を利用するインターフェースと決定する。
そして、無線装置1のチャネル割当手段120は、待ち時間を決定し(ステップS62)、IPヘッダを作成する(ステップS63)。その後、無線装置1のチャネル割当手段120は、ルーツアナウンスメッセージRAMをインターフェース111の共通チャネルCh_com(=Ch1)を用いて送信する(ステップS64)。そして、一連の動作は、図10に示すステップS3へ移行する。
図16は、ルーツノードとしての無線装置1が作成するルーツアナウンスメッセージを示す概念図である。図16を参照して、無線装置1が作成するルーツアナウンスメッセージRAM1は、IPヘッダIPH1と、アナウンスメッセージAM1とからなる。
アナウンスメッセージAM1において、ホップ数は、"0"からなり、TTLは、"255"からなり、シーケンス番号は、図12に示すステップS31において1つインクリメントされ、"1"からなる。また、階層IDは、図12に示すステップS32においてルーツノードであることを示す"1"に設定され、チャネル数は、"2"からなり、ルーツIPアドレスは、無線装置1のIPアドレスIPadd1からなり、割当チャネルは、図13に示すステップS42においてチャネルCh1に設定され、隣接ノードの待受チャネルであるターゲットチャネルは、図14に示すステップS54においてチャネルCh2に設定される。
また、図15に示すステップS63において、IPヘッダIPH1の送信元IPアドレスは、無線装置1のIPアドレスIPadd1に設定され、IPヘッダIPH1の送信先IPアドレスは、ブロードキャストアドレスIPadd_bcstに設定される。
そして、ルーツアナウンスメッセージRAM1は、図15に示すステップS64においてブロードキャストされる。
図17は、ルーツノードとしての無線装置1がルーツアナウンスメッセージRAMの送信時に作成するキャッシュテーブルの概念図である。また、図18は、ルーツノードとしての無線装置1がルーツアナウンスメッセージRAMの送信時に作成するルーティングテーブルの概念図である。
図17を参照して、無線装置1のチャネル割当手段120は、図11に示すステップS25において、キャッシュテーブルCT1を作成する。キャッシュテーブルCT1において、送信先は、無線装置1のIPアドレスIPadd1からなり、次の無線装置は、無線装置1のIPアドレスIPadd1からなり、メトリックは、"0"からなり、シーケンス番号は、"1"からなり、関係は、 "self"からなり、階層IDは、送信先(=無線装置1)がルーツノードであるので、"1"からなり、チャネルは、送信先の無線装置(=無線装置1)の受信チャネルがチャネルCh1であるので(図11に示すステップS24の詳細な動作を示す図13に示すステップS42またはステップS43において決定される)、"Ch1"からなる。
図18を参照して、無線装置1のチャネル割当手段120は、図11に示すステップS26において、ルーティングテーブル130−1を作成する。ルーティングテーブル130−1は、キャッシュテーブルCT1と同じ構成からなる。ルーツノードである無線装置1のチャネル割当手段120は、1回目のチャネル割当を行なう場合、自己以外の無線装置の存在を検知していないので、自己宛の経路からなるキャッシュテーブルCT1を作成し、その作成したキャッシュテーブルCT1と同じ構成からなるルーティングテーブル130−1を作成する。
(2)図10に示すステップS3〜S5の詳細な動作
図19は、図10に示すステップS3〜S5の詳細な動作を説明するためのフローチャートである。
図19を参照して、図10に示すステップS2の後、無線装置2のチャネル割当手段120は、無線装置1からルーツアナウンスメッセージRAM1を受信し、その受信したルーツアナウンスメッセージRAM1を後述する方法によって解析する(ステップS71)。
そして、無線装置2のチャネル割当手段120は、現在のシーケンス番号Seq1を受信したシーケンス番号Seq2と比較し、シーケンス番号Seq2がシーケンス番号Seq1よりも新しいか否かを判定する(ステップS72)。シーケンス番号は、上述したように、大きい数値の方が、ルーツアナウンスメッセージRAM1が新しいことを示す。したがって、無線装置2のチャネル割当手段120は、シーケンス番号Seq1の数値とシーケンス番号Seq2の数値との大小関係を比較することによって、シーケンス番号Seq2がシーケンス番号Seq1よりも新しいか否かを判定する。
無線装置2のチャネル割当手段120は、ステップS72において、シーケンス番号Seq2がシーケンス番号Seq1よりも新しいと判定したとき、キャッシュテーブルをクリアする(ステップS73)。
そして、無線装置2のチャネル割当手段120は、チャネル割当を行なうか否かを判定する(ステップS74)。このチャネル割当を行なうか否かの判定は、ルートアナウンスメッセージRAM1のメッセージタイプに基づいて判定される。無線装置2のチャネル割当手段120は、ステップS74において、チャネル割当を行なわないと判定したとき、親(=無線装置1)の待受チャネルを自己(=無線装置2)のターゲットチャネルとする(ステップS75)。このように、チャネル割当を行なわない場合に、親の待受チャネルと同じチャネルを無線装置2の待受チャネルとするのは、無線通信システム100内の全ての無線装置に共通チャネルCh_comを設定することもあるからである。
一方、無線装置2のチャネル割当手段120は、ステップS74において、チャネル割当を行なうと判定したとき、ルーツアナウンスメッセージRAM1からターゲットチャネル(=Ch2)を取り出す(ステップS76)。
そして、ステップS75またはステップS76の後、無線装置2のチャネル割当手段120は、後述する方法によって、無線装置2から無線装置1への経路情報をキャッシュテーブルへ登録する(ステップS77)。
その後、無線装置2のチャネル割当手段120は、ルートリプライメッセージ送信タイマをセットし(ステップS78)、シーケンス番号をシーケンス番号Seq1からシーケンス番号Seq2へ更新し(ステップS79)、階層IDを更新する(ステップS80)。そして、無線装置2のチャネル割当手段120は、自己宛の経路情報をキャッシュテーブルへ登録する(ステップS81)。
一方、ステップS72において、無線装置2のチャネル割当手段120は、シーケンス番号Seq2がシーケンス番号Seq1よりも新しくないと判定したとき、すなわち、シーケンス番号Seq2がシーケンス番号Seq1と同じであると判定したとき、ルートリプライメッセージRRMが送信済であるか否かをさらに判定する(ステップS82)。無線装置2のチャネル割当手段120は、ルートリプライメッセージRRMを送信したとき、ルートリプライメッセージRRMが送信済であることを示すフラグを記憶手段に記憶しているので、その記憶手段に記憶されたフラグを検索することによって、ルートリプライメッセージRRMが送信済であるか否かをさらに判定する。
ステップS82において、無線装置2のチャネル割当手段120は、ルートリプライメッセージRRMが送信済でないと判定したとき、無線装置2から無線装置1への経路情報をキャッシュテーブルに登録する(ステップS83)。
そして、ステップS81、ステップS82の"YES"およびステップS83のいずれかの後、一連の動作は、図10に示すステップS6へ移行する。
(2−1)図19に示すステップS71の詳細な動作
図20は、図19に示すステップS71の詳細な動作を説明するためのフローチャートである。図20を参照して、図10に示すステップS2の後、無線装置2のチャネル割当手段120は、受信したルーツアナウンスメッセージRAM1からホップ数(=0)+1="1"を取り出す(ステップS91)。
そして、無線装置1のチャネル割当手段120は、ルーツアナウンスメッセージRAM1からTTL−1=255−1=254を取り出す(ステップS92)。引き続き、無線装置2のチャネル割当手段120は、ルーツアナウンスメッセージRAM1からシーケンス番号(=1)を取り出し(ステップS93)、さらに、ルーツアナウンスメッセージRAM1から階層ID(=1)を取り出す(ステップS94)。
その後、無線装置2のチャネル割当手段120は、ルーツアナウンスメッセージRAM1からルーツIPアドレス(=IPadd1)を取り出し(ステップS95)、ルーツアナウンスメッセージRAM1から送信元の待受チャネル(=Ch1)を取り出す(ステップS96)。そして、一連の動作は、図19に示すステップS72へ移行する。
(2−2)図19に示すステップS77およびステップS83の詳細な動作
図21は、図19に示すステップS77およびステップS83の詳細な動作を説明するためのフローチャートである。なお、図21に示すフローチャートは、無線装置1,2,5〜7における処理を対象としたフローチャートである。したがって、無線装置1,2,5〜7を意味する無線装置xにおける処理として図21に示すフローチャートを説明した後に、無線装置2が図21に示すフローチャートに従って経路情報をキャッシュテーブルへ登録する動作について説明する。
図21を参照して、図19に示すステップS75またはステップS76またはステップS82の"NO"の後、無線装置xのチャネル割当手段120は、無線装置xからルーツノード(=無線装置1)への経路情報をキャッシュテーブルCTに登録する(ステップS101)。
その後、無線装置xのチャネル割当手段120は、送信元アドレスがルーツアドレスと同じであるか否かを判定する(ステップS102)。この場合、無線装置xのチャネル割当手段120は、ルーツアナウンスメッセージRAMのIPヘッダIPHの送信元IPアドレスを図20に示すステップS95で取り出したルーツIPアドレスと比較することによって、送信元アドレスがルーツアドレスと同じであるか否かを判定する。
ステップS102において、無線装置xのチャネル割当手段120は、送信元アドレスがルーツアドレスと同じであると判定したとき、受信した階層ID+1を自己の階層IDとして仮定する(ステップS103)。
一方、ステップS102において、無線装置xのチャネル割当手段120は、送信元アドレスがルーツアドレスと同じでないと判定したとき、シーケンス番号が新しいか否かをさらに判定する(ステップS104)。
そして、ステップS104において、無線装置xのチャネル割当手段120は、シーケンス番号が新しくないと判定したとき、階層IDを割当済みか否かをさらに判定する(ステップS105)。
ステップS104において、無線装置xのチャネル割当手段120は、階層IDを割当済みであると判定したとき、受信した階層ID_Rと自己に割り当てられた階層ID_Aとを比較する(ステップS106)。
そして、ID_R=ID_A−1であるとき、無線装置xのチャネル割当手段120は、送信先との関係を"親"とする(ステップS107)。また、ID_R=ID_A+1であるとき、無線装置xのチャネル割当手段120は、送信先との関係を"子"とする(ステップS108)。さらに、ID_R=ID_Aであるとき、無線装置xのチャネル割当手段120は、送信先との関係を"兄弟"とする(ステップS109)。さらに、ID_R=ID_A−1、ID_R=ID_A+1およびID_R=ID_Aのいずれでもないとき、無線装置xのチャネル割当手段120は、送信先との関係を"UNKNOWN"とする(ステップS110)。
一方、ステップS104において、シーケンス番号が新しいと判定されたとき、またはステップS105において、階層IDが割当済みでないと判定されたとき、無線装置xのチャネル割当手段120は、ルーツノード(=無線装置1)を送信先とする場合の次のホップ(次の無線装置)との関係を"親"とする(ステップS111)。そして、無線装置xのチャネル割当手段120は、受信した階層ID_Rに"1"を加えたID_R+1を自己(=無線装置x)の階層IDとして仮定する(ステップS112)。
そうすると、ステップS107〜ステップS110およびステップS112のいずれかの後、無線装置xのチャネル割当手段120は、隣接ノードへの経路情報をキャッシュテーブルへ登録する(ステップS113)。
そして、ステップS103またはステップS113の後、一連の動作は、図19に示すステップS78または図10に示すステップS6へ移行する。
次に、無線装置2が図21に示すフローチャートに従って経路情報をキャッシュテーブルへ登録する動作について説明する。
無線装置2のチャネル割当手段120は、無線装置1からルーツアナウンスメッセージRAM1を受信するので、ステップS101において、送信先が無線装置1のIPアドレスIPadd1からなり、次の無線装置が無線装置1のIPアドレスIPadd1からなり、メトリックが"1"からなり、シーケンス番号が"1"からなり、関係が"root"からなり、階層IDが"1"からなり、チャネルが"Ch1"からなる経路情報をキャッシュテーブルCTへ登録する。
そして、無線装置2のチャネル割当手段120は、ステップS102において送信元アドレスがルーツアドレスと同じであると判定し、ステップS103において、受信した階層ID(=1)に"1"を加えた1+1=2を自己の階層IDとして仮定する。
(2−3)図19に示すステップS78の詳細な動作
図22は、図19に示すステップS78の詳細な動作を説明するためのフローチャートである。図22を参照して、ルーツアナウンスメッセージRAMを受信した無線装置xのチャネル割当手段120は、図19に示すステップS77の後、ルートリプライタイマをタイマー140にセットする(ステップS121)。
そして、無線装置xのチャネル割当手段120は、時間をチェックし(ステップS122)、ルートリプライタイマが満期になったか否かを判定する(ステップS123)。ルートリプライタイマが満期になっていないとき、一連の動作は、ステップS122へ移行する。そして、無線装置xのチャネル割当手段120は、ステップS123においてルートリプライタイマが満期になったと判定したとき、ルートリプライメッセージRRMを送信したことを表すフラグをプロトコルにセットする(ステップS124)。
その後、無線装置xのチャネル割当手段120は、経路情報を計算し、キャッシュテーブルCTからルーティングテーブル130へ経路情報をコピーする(ステップS125)。引き続き、無線装置xのチャネル割当手段120は、自己の待受チャネルを図19に示すステップS75またはステップS76において決定されたチャネルに物理的に切り替える(ステップS126)。そして、無線装置xのチャネル割当手段120は、ルートリプライメッセージRRMを作成し(ステップS127)、その作成したルートリプライメッセージRRMをルーツノードを送信先とするときの次ホップノードへ送信する(ステップS128)。その後、一連の動作は、図19に示すステップS79へ移行する。
無線装置2のチャネル割当手段120が図22に示すフローチャートに従ってルートリプライメッセージ送信タイマをセットする場合、自己(=無線装置2)の待受チャネルを図19のステップS76で取り出したチャネルCh2に物理的に切替える(図22のステップS126参照)。これによって、無線装置2の待受チャネルは、インターフェース111のチャネルCh2に設定される。
(2−3−1)図22に示すステップS125の詳細な動作
図23は、図22に示すステップS125の詳細な動作を説明するためのフローチャートである。
無線装置xのチャネル割当手段120は、図22に示すステップS124の後、関係が"root"となっている経路をキャッシュテーブルCTから取り出す(ステップS131)。そして、無線装置xのチャネル割当手段120は、取り出した経路からメトリックが最小である経路を選択する(ステップS132)。
引き続き、無線装置xのチャネル割当手段120は、選択した経路をルーティングテーブル130へ登録する(ステップS133)。そして、無線装置xのチャネル割当手段120は、登録したルーツノードへの経路情報から次ホップノードのアドレスIPadd_nextを取得する(ステップS134)。
そうすると、無線装置xのチャネル割当手段120が、アドレスIPadd_nextがルーツノードのアドレスIPadd_rootと同じであるか否かを判定する(ステップS135)。
ステップS135において、無線装置xのチャネル割当手段120は、アドレスIPadd_nextがアドレスIPadd_rootと同じでないと判定したとき、次ホップノードへの経路情報を計算する(ステップS136)。
その後、無線装置xのチャネル割当手段120は、選択した経路が更新対象であるか否かを判定する(ステップS137)。この場合、無線装置xのチャネル割当手段120は、ルーツノードが宛先として登録されているが、次ホップ、メトリックおよびシーケンス番号のいずれかが異なれば、選択した経路が更新対象であると判定する。
なお、選択した経路が更新対象であるか否かを判定することにしたのは、各無線装置が複数のインターフェース111〜11jを備える場合に、全てに同じ共通チャネルCh_comが設定されていた場合、各無線装置は、全く同じメッセージを重複して受信する。したがって、各無線装置が全く同じメッセージを重複して処理するのを回避するために、選択した経路が更新対象であるか否かを判定することにしたものである。
ステップS137において、無線装置xのチャネル割当手段120は、選択した経路が更新対象であると判定すると、選択した経路をルーティングテーブル130へ登録する(ステップS138)。そして、ステップS135において、アドレスIPadd_nextがアドレスIPadd_rootと同じであると判定されたとき、またはステップS138の後、無線装置xのチャネル割当手段120は、自己が所属する階層を決定する(ステップS139)。より具体的には、無線装置xのチャネル割当手段120は、図21に示すステップS103またはステップS112において仮定した階層IDを自己の階層IDとして決定する。
そして、ステップS137において、選択した経路が更新対象でないと判定されたとき、またはステップS138の後、一連の動作は、図22に示すステップS126へ移行する。
(2−3−1−1)図23に示すステップS133およびステップS138の詳細な動作
図24は、図23に示すステップS133およびステップS138の詳細な動作を説明するためのフローチャートである。図24を参照して、無線装置xのチャネル割当手段120は、図23に示すステップS132またはステップS137の"YES"の後、選択した経路が更新対象であるか否かを判定する(ステップS141)。この場合、無線装置xのチャネル割当手段120は、ルーツノードが宛先として登録されているが、次ホップ、メトリックおよびシーケンス番号のいずれかが異なれば、選択した経路が更新対象であると判定する。
そして、ステップS141において、無線装置xのチャネル割当手段120は、選択した経路が更新対象であると判定したとき、選択した経路における"関係"が"親"として登録されるか否かをさらに判定する(ステップS142)。ステップS142において、無線装置xのチャネル割当手段120は、選択した経路の"関係"が"親"として登録されると判定したとき、既に"関係"が"親"として登録されている経路が存在するか否かをさらに判定する(ステップS143)。
ステップS143において、無線装置xのチャネル割当手段120は、既に"関係"が"親"として登録されている経路が存在すると判定したとき、選択した経路の次ホップノードが"親"として登録されているか否かをさらに判定する(ステップS144)。そして、ステップS144において、無線装置xのチャネル割当手段120は、選択した経路の次ホップノードが"親"として登録されていないと判定したとき、既に"親"として登録されている経路の"関係"を"UNKNOWN"に更新する(ステップS145)。
そうすると、ステップS142の"NO"、またはステップS143の"NO"、またはステップS144の"NO"、またはステップS145の後、無線装置xのチャネル割当手段120は、選択した経路をルーティングテーブル130へ上書き登録する(ステップS146)。その後、無線装置xのチャネル割当手段120は、自己が所属する階層を決定する(ステップS147)。より具体的には、無線装置xのチャネル割当手段120は、図21に示すステップS103またはステップS112において仮定した階層IDを自己の階層IDとして決定する。
そして、ステップS141の"NO"、またはステップS147の後、一連の動作は、図23に示すステップS134またはステップS139へ移行する。
(3)図10に示すステップS6,S7の詳細な動作
図25は、図10に示すステップS6,S7の詳細な動作を説明するためのフローチャートである。無線装置xのチャネル割当手段120は、図10に示すステップS5の後、ルートリプライメッセージRRMを受信し、その受信したルートリプライメッセージRRMを解析する(ステップS151)。より具体的には、無線装置xのチャネル割当手段120は、ルートリプライメッセージRRMからホップ数+1、TTL−1、シーケンス番号、送信元の階層ID、送信元のIPアドレスおよび送信元の待受チャネルを取り出すことによって、ルートリプライメッセージRRMを解析する。
その後、無線装置xのチャネル割当手段120は、受信したシーケンス番号と自己が持つシーケンス番号とが一致するか否かを判定する(ステップS152)。
ステップS152において、無線装置xのチャネル割当手段120は、受信したシーケンス番号と自己が持つシーケンス番号とが一致すると判定したとき、無線装置xからルートリプライメッセージRRMの送信元への経路情報をキャッシュテーブルに登録する(ステップS153)。そして、無線装置xのチャネル割当手段120は、送信元アドレスへの経路を後述する方法によって計算し(ステップS154)、送信元アドレスが隣接ノードアドレスに一致するか否かを判定する(ステップS155)。なお、無線装置xのチャネル割当手段120は、ルートリプライメッセージRMMのIPヘッダIPHに格納された送信元IPアドレスとリプライメッセージRMに格納されたリーフIPアドレスとを比較することによって、送信元アドレスが隣接ノードアドレスに一致するか否かを判定する。無線装置xのチャネル割当手段120は、無線装置xに隣接する無線装置からルートリプライメッセージRRMを受信するので、IPヘッダIPHの送信元IPアドレスが無線装置xに隣接する隣接ノードアドレスになり、リプライメッセージRMのリーフIPアドレスがルートリプライメッセージRRMの送信元IPアドレスになるからである。
ステップS155において、無線装置xのチャネル割当手段120は、送信元アドレスが隣接ノードアドレスに一致しないと判定したとき、隣接ノードアドレスへの経路を後述する方法によって計算する(ステップS156)。
ステップS155において、送信元アドレスが隣接ノードアドレスに一致すると判定されたとき、またはステップS156の後、無線装置xのチャネル割当手段120は、自己(=無線装置x)がルーツノードであるか否かを判定する(ステップS157)。その後、無線装置xのチャネル割当手段120は、自己(=無線装置x)がルーツノードでないと判定したとき、ルートリプライメッセージRRMを転送する(ステップS158)。
そして、ステップS152において、受信したシーケンス番号と自己が持つシーケンス番号とが一致しないと判定されたとき、またはステップS157において自己がルーツノードであると判定されたとき、またはステップS158の後、一連の動作は、図10に示すステップS8へ移行する。
(3−1)図25に示すステップS154,S156の詳細な動作
図26は、図25に示すステップS154,S156の詳細な動作を説明するためのフローチャートである。図25に示すステップS153またはステップS155の"NO"の後、無線装置xのチャネル割当手段120は、指定されたアドレスが宛先として登録されている経路を取り出す(ステップS161)。
そして、無線装置xのチャネル割当手段120は、取り出した経路からメトリックが最も小さい経路を選択する(ステップS162)。その後、無線装置xのチャネル割当手段120は、上述した方法によって、取り出した経路が更新対象であるか否かを判定する(ステップS163)。
無線装置xのチャネル割当手段120は、ステップS163において、取り出した経路が更新対象であると判定したとき、取り出した経路をルーティングテーブルへ登録する(ステップS164)。
そして、ステップS163において、取り出した経路が更新対象でないと判定されたとき、またはステップS164の後、一連の動作は、図25に示すステップS155またはステップS157へ移行する。
[無線装置1−無線装置2間の階層構造の構築およびチャネル割当]
図27は、ルーツアナウンスメッセージRAM1を受信した無線装置2が作成するキャッシュテーブルの概念図である。また、図28は、ルーツアナウンスメッセージRAM1を受信した無線装置2が作成するルーティングテーブルの概念図である。さらに、図29は、ルーツアナウンスメッセージRAM1を受信した無線装置2が作成するルートリプライメッセージRRM1の概念図である。さらに、図30は、ルートリプライメッセージRRM1を受信した無線装置1が作成するキャッシュテーブルの概念図である。さらに、図31は、ルートリプライメッセージRRM1を受信した無線装置1が作成するルーティングテーブルの概念図である。さらに、図32は、階層構造の構築過程を示す第1の概念図である。
無線装置1からルーツアナウンスメッセージRAM1を受信した無線装置2のチャネル割当手段120は、無線装置2から無線装置1への経路情報をキャッシュテーブルCTに登録する(図10のステップS4、図19のステップS77および図21のステップS101参照)。この場合、無線装置2のチャネル割当手段120は、キャッシュテーブルCT2を作成する(図27参照)。
そして、無線装置2のチャネル割当手段120は、無線装置2から無線装置1への経路情報をキャッシュテーブルCT2に登録した後、図19のステップS78の詳細な動作を示す図22のステップS125において、無線装置2から無線装置1への経路のうち、メトリックが最小である経路をルーティングテーブル130−2へ登録する(図23のステップS133および図28参照)。この場合、無線装置2のチャネル割当手段120は、ルーツアナウンスメッセージRAMを初めて受信したので、キャッシュテーブルCT2に登録されている無線装置2から無線装置1への経路は、1個しかなく(図27参照)、その1個の経路をルーティングテーブル130−2へ登録する(図28参照)。
その後、無線装置2のチャネル割当手段120は、ルーティングテーブル130−2から次の無線装置のIPアドレスIPadd1(=IPadd_next)を取り出し(図23のステップS134参照)、次の無線装置のIPアドレスIPadd1がルーツノードのIPアドレスIPadd1(=IPadd_root)に一致すると判定する(図23のステップ参照S135)。そして、無線装置2のチャネル割当手段120は、図21のステップS103において自己(=無線装置2)の階層IDとして仮定した"2"を自己(=無線装置2)の階層IDとして決定する(図23のステップS139参照)。
そうすると、無線装置2のチャネル割当手段120は、ルートリプライメッセージRRM1を作成する(図22のステップS127および図29参照)。この場合、無線装置2のチャネル割当手段120は、リプライメッセージRM1のホップ数に"0"を格納し、TTLに"255"を格納し、シーケンス番号に"1"を格納し、無線装置2の階層IDであると決定した"2"を階層IDに格納し、チャネル数に"2"を格納し、無線装置2のIPアドレスIPadd2をリーフIPアドレスに格納し、無線装置2の待受チャネルとして設定したチャネルCh2をリーフ割当チャネルおよび隣接割当チャネルに格納してルートリプライメッセージRRM1を作成する(図29参照)。そして、無線装置2のチャネル割当手段120は、その作成したルートリプライメッセージRRM1を無線装置1へ送信する(図10のステップS5、図19のステップS78および図22のステップS128参照)。
そして、無線装置2のチャネル割当手段120は、シーケンス番号を"0"から"1"に更新し(図19のステップS79参照)、階層IDを"2"に更新する(図19のステップS80参照)。その後、無線装置2のチャネル割当手段120は、自己宛の経路情報をキャッシュテーブルCT2に登録する(図19のステップS81参照)。すなわち、無線装置2のチャネル割当手段120は、第2行目の経路情報をキャッシュテーブルCT2に登録する(図27参照)。
図10のステップS6において、無線装置2からルートリプライメッセージRRM1を受信した無線装置1のチャネル割当手段120は、ルートリプライメッセージRRM1からホップ数+1(=0+1=1)、TTL−1(=255−1=244)、シーケンス番号(=1)、送信元の階層ID(=2)、送信元のIPアドレス(=IPadd2)および送信元の待受チャネル(=Ch2)を取り出す(図25のステップS151参照)。
そして、無線装置1のチャネル割当手段120は、受信したシーケンス番号(=1)と自己が保持するシーケンス番号(=1)とが同じであると判定し(ステップS152の"YES"参照)、無線装置1から無線装置2への経路情報をキャッシュテーブルCT1(図17参照)に登録する(図25のステップS153参照)。この場合、無線装置1のチャネル割当手段120は、無線装置2のIPアドレスIPadd2を送信先および次の無線装置に格納し、"1"をメトリックに格納し、"1"をシーケンス番号に格納し、"子(children)"を関係に格納し、無線装置2の階層IDである"2"を階層IDに格納し、無線装置2の待受チャネルである"Ch2"をチャネルに格納する。これによって、キャッシュテーブルCT1は、キャッシュテーブルCT1−1(図30参照)に更新される。
その後、無線装置1のチャネル割当手段120は、送信元アドレス(=無線装置2のIPアドレス)への経路を計算する(図25のステップS154参照)。より具体的には、無線装置1のチャネル割当手段120は、指定されたアドレス(=無線装置2のIPアドレス)が宛先として登録されている経路をキャッシュテーブルCT1−1から取り出す(図26のステップS161参照)。この場合、無線装置2を宛先としてキャッシュテーブルCT1−1に登録されている経路は、キャッシュテーブルCT1−1の第2行目の経路であるので、無線装置1のチャネル割当手段120は、この第2行目の経路を取り出す。
そして、無線装置1のチャネル割当手段120は、その取り出した経路からメトリックが最も小さい経路を選択する(図26のステップS162参照)。この場合、キャッシュテーブルCT1−1から取り出された経路は、1個であるので、無線装置1のチャネル割当手段120は、キャッシュテーブルCT1−1から取り出した経路をメトリックが最も小さい経路として選択する。
そうすると、無線装置1のチャネル割当手段120は、取り出した経路の"次の無線装置"、"メトリック"および"シーケンス番号"のうち、"次の無線装置"および"メトリック"がルーティングテーブル130−1(図18参照)に既に登録されている経路と異なるので、取り出した経路が更新対象であると判定する(図26のステップS163の"YES"参照)。そして、無線装置1のチャネル割当手段120は、取り出した経路をルーティングテーブル130−1に登録する(図26のステップS164参照)。これによって、ルーティングテーブル130−1は、ルーティングテーブル130−1−1(図31)に更新される。
送信元アドレス(無線装置2のIPアドレス)への経路の計算(図25のステップS154参照)を終了した無線装置1のチャネル割当手段120は、ルートリプライメッセージRRM1のリーフIPアドレス(=IPadd2)と、送信元IPアドレス(=IPadd2)とを取り出し、両者が一致すると判定する(図25のステップS155の"YES"参照)。そして、無線装置1のチャネル割当手段120は、自己がルーツノードであると判定し(図25のステップS157の"YES"参照)、無線装置2から受信したルートリプライメッセージRRM1の転送を行なわない。
図10に示すステップS1〜ステップS7が実行された段階においては、無線装置1の待受チャネルがチャネルCh1に決定され、無線装置2の待受チャネルがチャネルCh2に決定され、無線装置1の階層IDが"1"に決定され、無線装置2の階層IDが"2"に決定され、無線装置1を"親"とし、無線装置2を"子"とする階層構造が構築される(図32参照)。
[無線装置2−無線装置5〜7間の階層構造の構築およびチャネル割当]
図33は、中継ノードとしての無線装置2が作成するルーツアナウンスメッセージRAMを示す概念図である。また、図34は、転送されたルーツアナウンスメッセージRAM2を受信した無線装置5〜7が作成するキャッシュテーブルの概念図である。さらに、図35は、転送されたルーツアナウンスメッセージRAM2を受信した無線装置5〜7が作成するルーティングテーブルの概念図である。
図33を参照して、ルーツアナウンスメッセージRAM2は、IPヘッダIPH2と、アナウンスメッセージAM2とからなる。
アナウンスメッセージAM2において、ホップ数は、"1"からなり、TTLは、"254"からなり、シーケンス番号は、"1"からなる。また、階層IDは、無線装置2の階層IDである "2"に設定され、チャネル数は、"2"からなり、ルーツIPアドレスは、無線装置1のIPアドレスIPadd1からなり、割当チャネルは、無線装置2の待受チャネルであるチャネルCh2に設定され、隣接ノードの待受チャネルであるターゲットチャネルは、無線装置2の待受チャネル(=Ch2)と異なるチャネルCh3に設定される。
また、IPヘッダIPH2の送信元IPアドレスは、無線装置2のIPアドレスIPadd2に設定され、IPヘッダIPH2の送信先IPアドレスは、ブロードキャストアドレスIPadd_bcstに設定される。
ルートリプライメッセージRRM1を無線装置1へ送信した無線装置2のチャネル割当手段120は、自己の親(=無線装置1)の待受チャネル(=Ch1)および自己(=無線装置2)の待受チャネル(=Ch2)以外のチャネルCh3,Ch4から1つのチャネルを無作為に選択して隣接ノードの待受チャネルを決定する。この場合、無線装置2のチャネル割当手段120は、たとえば、チャネルCh3を隣接ノードの待受チャネルとして決定する。
そして、無線装置2のチャネル割当手段120は、無線装置1から受信したルーツアナウンスメッセージRAM1(図16参照)において、IPヘッダIPH1の送信元IPアドレスをIPadd1からIPadd2に変え、アナウンスメッセージAM1のホップ数を"0"から"1"に変え、アナウンスメッセージAM1のTTLを"255"から"254"に変え、アナウンスメッセージAM1の階層IDを"1"から"2"に変え、アナウンスメッセージAM1の割当チャネルを"Ch1"から"Ch2"に変え、ターゲットチャネルを"Ch2"から"Ch3"に変えてルートアナウンスメッセージRAM2を作成し、その作成したルートアナウンスメッセージRAM2をブロードキャストする(図10のステップS8参照)。
無線装置2からルーツアナウンスメッセージRAM2を受信した無線装置5〜7の各々のチャネル割当手段120は、上述した図19〜図24に示すフローチャートに従って、ルーツアナウンスメッセージRAM2を解析し(図19のステップS71)、受信したシーケンス番号(=1)が現在のシーケンス番号(=0)よりも新しいと判定する(図10のステップS72の"Seq1<Seq2"参照)。
そして、無線装置5〜7の各々のチャネル割当手段120は、キャッシュテーブルをクリアし(図19のステップS73参照)、チャネル割当を行なうと判定する(図19のステップS74の"YES"参照)。
その後、無線装置5〜7の各々のチャネル割当手段120は、ルーツアナウンスメッセージRAM2からターゲットチャネル(=Ch3)を取り出す(図19のステップS76参照)。そして、無線装置5〜7のチャネル割当手段120は、それぞれ、無線装置5〜7から無線装置1(=ルーツノード)への経路情報をキャッシュテーブルCT3−1,CT3−2,CT3−3の第1行目に登録する(図19のステップS77、図21のステップS101および図34の(a)〜(c)参照)。この場合、無線装置5〜7のチャネル割当手段120は、無線装置1のIPアドレスIPadd1を送信先に格納し、無線装置2のIPアドレスIPadd2を次の無線装置に格納し、ルーツアナウンスメッセージRAM2に含まれるホップ数(=1)に"1"を加算して計算した"2"をメトリックに格納し、"root"を関係に格納し、無線装置1(=ルーツノード)の階層IDである"1"を階層IDに格納し、ルーツアナウンスメッセージRAM2の割当チャネルCh2(=無線装置1を送信先とする経路における"次の無線装置"である無線装置2の待受チャネル)をチャネルに格納して無線装置5〜7から無線装置1(=ルーツノード)への経路情報をそれぞれキャッシュテーブルCT3−1〜CT3−3の第1行目に登録する。
また、無線装置5のチャネル割当手段120は、ルーツアナウンスメッセージRAM2の送信元アドレス(=IPadd2)がルーツアドレス(=IPadd1)と異なると判定し(図21のステップS102参照)、ルーツアナウンスメッセージRAM2のシーケンス番号(=1)が新しいと判定する(図21のステップS104参照)。そして、無線装置5のチャネル割当手段120は、ルーツノード(=無線装置1)への経路における次のホップである無線装置2との関係を"親"とし(図21のステップS111参照)、受信した階層ID_Rに"1"を加算したID_R+1=2+1=3を自己(=無線装置5)の階層IDとして仮定する(図21のステップS112参照)。そうすると、無線装置5のチャネル割当手段120は、無線装置5から無線装置2への経路情報をキャッシュテーブルCT3−1の第2行目に登録する(図21のステップS113および図34の(a)参照)。
無線装置6,7のチャネル割当手段120は、無線装置5のチャネル割当手段120と同じ動作に従って、それぞれ、無線装置6,7から無線装置2への経路情報をキャッシュテーブルCT3−2,CT3−3の第2行目に登録する(図21のステップS102,S104,S111〜S113および図34の(b),(c)参照)。
その後、無線装置5〜7のチャネル割当手段120は、図19のステップS78の詳細な動作である図22に示すフローチャートを実行する。より詳細には、無線装置5〜7のチャネル割当手段120は、図22のステップS121〜ステップS124を順次実行した後、関係が"root"である経路のうち、メトリックが最も小さい経路をルーティングテーブル130−3−1〜130−3−3の第1行目に登録する(図22のステップS125、図23のステップS131〜S133および図35の(a)〜(c)参照)。
そして、無線装置5〜7のチャネル割当手段120は、ルーツノード(=無線装置1)への経路情報から次のホップノード(=無線装置2)のIPアドレスIPadd2を取得し(図23のステップS134参照)、その取得したIPアドレスIPadd2がルーツノード(=無線装置1)のIPアドレスIPadd1に一致しないと判定し(図23のステップS135の"NO"参照)、次のホップノード(=無線装置2)への経路情報を計算する(図23のステップS136参照)。この時点で、ルーティングテーブル130−3−1〜130−3−3には、ルーツノード(=無線装置1)への経路情報のみが登録されており、ルーツノード(=無線装置1)への経路情報におけるメトリック(=2)が次のホップノード(=無線装置2)への経路情報におけるメトリック(=1)と異なるので、無線装置5〜7のチャネル割当手段120は、選択した経路情報が更新対象であると判定し(図23のステップS137の"YES"参照)、次のホップノード(=無線装置2)への経路情報をルーティングテーブル130−3−1〜130−3−3の第2行目に登録する(図23のステップS138および図35の(a)〜(c)参照)。
その後、無線装置5〜7のチャネル割当手段120は、図21のステップS112で仮定した自己(=無線装置5〜7)の階層ID(=3)を自己(=無線装置5〜7)が所属する階層IDと決定する(図23のステップS139参照)。
なお、無線装置1のチャネル割当手段120は、無線装置2によって転送されたルーツアナウンスメッセージRAM2を共通チャネルCh_comを用いて受信し、その受信したルーツアナウンスメッセージRAM2を図19〜図24に示すフローチャートに従って処理する。この場合、無線装置1のチャネル割当手段120は、受信したルーツアナウンスメッセージRAM2を解析し(図19のステップS71)、受信したシーケンス番号Seq2(=1)が現在のシーケンス番号Seq1(=1)よりも新しくないと判定する(図19のステップS72のSeq1=Seq2参照)。
そして、無線装置1のチャネル割当手段120は、ルートリプライメッセージを送信済でないと判定し(図19のステップS82の"NO"参照)、経路情報をキャッシュテーブルへ登録する(図19のステップS83参照)。この場合、無線装置1のチャネル割当手段120は、図19のステップS83の詳細な動作を示す図21のフローチャートを実行する。より具体的には、無線装置1のチャネル割当手段120は、ルーツノード(=無線装置1)への経路情報をキャッシュテーブルへ登録するステップS101を実行するが、この経路情報は、自己(=無線装置1)宛ての経路情報であり、既に登録済であるので(図11のステップS25および図30参照)、図21のステップS101においては、経路情報をキャッシュテーブルCT1−1へ新たに登録することなく、次のステップS102を実行する。そして、無線装置1のチャネル割当手段120は、送信元アドレス(=IPadd2)がルーツアドレス(=IPadd1)と異なると判定し(図21のステップS102参照)、シーケンス番号が新しくないと判定し(図21のステップS103の"NO"参照)、階層IDを割当済と判定する(図21のステップS105の"YES"参照)。その後、無線装置1のチャネル割当手段120は、受信した階層ID_R(=2)と自己に割り当てられた階層ID_A(=1)とを比較し(図21のステップS106参照)、ID_R=ID_A+1が成立するので、送信先との関係を"子"とする(図21のステップS108参照)。そして、無線装置1のチャネル割当手段120は、隣接ノード(=無線装置2)への経路情報をキャッシュテーブルCT1−1へ登録するステップS113を実行するが、この経路情報もキャッシュテーブルCT1−1に既に登録済であるので(図30参照)、図21のステップS113においては、経路情報をキャッシュテーブルCT1−1へ新たに登録することなく、ルーツアナウンスメッセージRAM2の受信処理を終了する。このように、自己の階層よりも下位の階層に所属する無線装置2からルーツアナウンスメッセージRAM2を受信した無線装置1のチャネル割当手段120は、キャッシュテーブルへの経路情報の登録を行なわず、ルートリプライメッセージを作成して送信することもない。
図36は、ルーツアナウンスメッセージを受信した無線装置が作成するルートリプライメッセージの他の概念図である。また、図37は、ルートリプライメッセージを受信した無線装置が作成するキャッシュテーブルの他の概念図である。さらに、図38は、ルートリプライメッセージを受信した無線装置が作成するルーティングテーブルの他の概念図である。
無線装置5のチャネル割当手段120は、上述した方法によって、ルーツアナウンスメッセージRAM2の受信(図10のステップS9参照)および無線装置5から無線装置1,2へ向かう経路情報の登録(図10のステップS10および図23参照)が終了すると、自己(=無線装置5)の待受チャネルをチャネルCh3に物理的に切り替える(図22のステップS126参照)。これによって、無線装置5の受信チャネルCh3は、インターフェース111のチャネルCh3に決定される。そして、無線装置5のチャネル割当手段120は、ルートリプライメッセージRRM2(図36参照)を作成し、その作成したルートリプライメッセージRRM2をルーツノード(=無線装置1)を送信先とするときの次ホップノード(=無線装置2)へ送信する(図10のステップS11および図22のステップS127,S128参照)。
この場合、無線装置5のチャネル割当手段120は、リプライメッセージRM2のホップ数に"0"を格納し、TTLに"255"を格納し、シーケンス番号に"1"を格納し、無線装置5の階層IDであると決定した"3"を階層IDに格納し、チャネル数に"2"を格納し、無線装置5のIPアドレスIPadd5をリーフIPアドレスに格納し、無線装置5の待受チャネルとして設定したチャネルCh5をリーフ割当チャネルおよび隣接割当チャネルに格納してルートリプライメッセージRRM2を作成する(図36参照)。
無線装置6のチャネル割当手段120は、上述した方法によって、ルーツアナウンスメッセージRAM2の受信(図10のステップS9参照)および無線装置1,2への経路情報の登録(図10のステップS10および図23参照)が終了すると、自己(=無線装置6)の待受チャネルをチャネルCh3に物理的に切り替えるとともに(図22のステップS126参照)、無線装置5のチャネル割当手段120と同じ動作に従って、ルートリプライメッセージを作成して無線装置2へ送信する(図10のステップS11および図22のステップS127,S128参照)。これによって、無線装置6の受信チャネルCh3は、インターフェース112のチャネルCh3に決定される。この場合、無線装置6のチャネル割当手段120は、ルートリプライメッセージRRM2のIPヘッダIPH2の送信元IPアドレス(=IPadd5)を無線装置6のIPアドレスIPadd6に代え、リプライメッセージRM2のリーフIPアドレス(=IPadd5)を無線装置6のIPアドレスIPadd6に代えたルートリプライメッセージを作成する。
また、無線装置7のチャネル割当手段120は、上述した方法によって、ルーツアナウンスメッセージRAM2の受信(図10のステップS9参照)および無線装置1,2への経路情報の登録(図10のステップS10および図23参照)が終了すると、自己(=無線装置6)の待受チャネルをチャネルCh3に物理的に切り替えるとともに(図22のステップS126参照)、無線装置5のチャネル割当手段120と同じ動作に従って、ルートリプライメッセージを作成して無線装置2へ送信する(図10のステップS11および図22のステップS127,S128参照)。これによって、無線装置7の受信チャネルCh3は、インターフェース111のチャネルCh3に決定される。この場合、無線装置7のチャネル割当手段120は、ルートリプライメッセージRRM2のIPヘッダIPH2の送信元IPアドレス(=IPadd5)を無線装置7のIPアドレスIPadd7に代え、リプライメッセージRM2のリーフIPアドレス(=IPadd5)を無線装置7のIPアドレスIPadd7に代えたルートリプライメッセージを作成する。
そして、無線装置5〜7のチャネル割当手段120は、シーケンス番号を"1"に更新し(図19のステップS79参照)、階層IDを"3"に更新する(図19のステップS80参照)。
その後、無線装置5のチャネル割当手段120は、自己(=無線装置5)宛ての経路情報をキャッシュテーブルCT3−1の第3行目に登録し(図19のステップS81および図34の(a)参照)、無線装置6のチャネル割当手段120は、自己(=無線装置6)宛ての経路情報をキャッシュテーブルCT3−2の第3行目に登録し(図19のステップS81および図34の(b)参照)、無線装置7のチャネル割当手段120は、自己(=無線装置7)宛ての経路情報をキャッシュテーブルCT3−3の第3行目に登録する(図19のステップS81および図34の(c)参照)。
無線装置2のチャネル割当手段120は、無線装置5からのルートリプライメッセージRRM2を受信し(図10のステップS12参照)、図25および図26に示すフローチャートに従ってルートリプライメッセージRRM2の受信処理およびルートリプライメッセージRRM2の転送処理を行なう(図10のステップS13,S14参照)。
より具体的には、無線装置2のチャネル割当手段120は、受信したルートリプライメッセージRRM2(図36参照)を解析し(図25のステップS151参照)、受信したシーケンス番号(=1)と自己(=無線装置2)が持つシーケンス番号(=1)とが一致すると判定する(図25のステップS152の"YES"参照)。そして、無線装置2のチャネル割当手段120は、無線装置2から無線装置5への経路情報をキャッシュテーブルCT2−1(図37参照)の第3行目に登録する(図25のステップS153参照)。この場合、無線装置2のチャネル割当手段120は、ルートリプライメッセージRRM2のホップ数(=0)に基づいて、0+1=1を計算して"1"をメトリックに格納し、ルートリプライメッセージRRM2の階層ID=3に基づいて、"子(children)"を関係に格納し、ルートリプライメッセージRRM2のリーフ割当チャネル(=Ch3)をチャネルに格納して無線装置5への経路情報をキャッシュテーブルCT2−1の第3行目に登録する。
その後、無線装置2のチャネル割当手段120は、ルートリプライメッセージRRM2の送信元である無線装置5への経路を計算する(図25のステップS154参照)。より具体的には、無線装置2のチャネル割当手段120は、指定されたアドレスである無線装置5のIPアドレスIPadd5が宛先として登録されている経路をキャッシュテーブルCT2−1から取り出し(図26のステップS161参照)、その取り出した経路からメトリックが最も小さい経路を選択する(図26のステップS162参照)。この場合、無線装置2のチャネル割当手段120は、1個の経路をキャッシュテーブルCT2−1から取り出すので、その取り出した経路をメトリックが最も小さい経路として選択する。
そして、無線装置2のチャネル割当手段120は、取り出した経路の"次の無線装置(=IPadd5)"がルーティングテーブル130−2(図28参照)に登録されている経路の"次の無線装置(=IPadd1)と異なるので、取り出した経路が更新対象であると判定し(図26のステップS163の"YES"参照)、取り出した経路をルーティングテーブル130−2の第2行目に登録する(図26のステップS126参照)。これによって、ルーティングテーブル130−2は、ルーティングテーブル130−2−1(図38参照)に更新される。
その後、無線装置2のチャネル割当手段120は、上述した方法によって、送信元アドレスが隣接ノードアドレスに一致すると判定し(図25のステップS155の"YES"参照)、自己(=無線装置2)がルーツノードではないと判定する(図25のステップS157の"NO"参照)。そして、無線装置2のチャネル割当手段120は、ルートリプライメッセージRRM2のIPヘッダIPH2の送信先IPアドレス(=IPadd2)を無線装置1のIPアドレスIPadd1に変え、送信元IPアドレス(=IPadd5)を無線装置2のIPアドレスIPadd2に変え、ホップ数を"1"に変え、TTLを254に変え、隣接割当チャネルをチャネルCh3から自己の受信チャネルCh2に変えたルートリプライメッセージを無線装置1へ転送する(図10のステップS14参照)。
また、無線装置2のチャネル割当手段120は、無線装置6から受信したルートリプライメッセージに基づいて、無線装置2から無線装置6への経路情報をキャッシュテーブルCT2−1(図37参照)の第4行目へ登録し、無線装置6を宛先とする経路をルーティングテーブル130−2−1(図38参照)の第3行目に登録する。そして、無線装置2のチャネル割当手段120は、送信先IPアドレスおよび送信元IPアドレスをそれぞれ無線装置1のIPアドレスおよび無線装置2のIPアドレスに変え、ホップ数を"1"に変え、TTLを254に変え、隣接割当チャネルをチャネルCh3からチャネルCh2に変えたルートリプライメッセージを無線装置1へ転送する。
さらに、無線装置2のチャネル割当手段120は、無線装置7から受信したルートリプライメッセージに基づいて、無線装置2から無線装置7への経路情報をキャッシュテーブルCT2−1(図37参照)の第5行目へ登録し、無線装置7を宛先とする経路をルーティングテーブル130−2−1(図38参照)の第4行目に登録する。そして、無線装置2のチャネル割当手段120は、送信先IPアドレスおよび送信元IPアドレスをそれぞれ無線装置1のIPアドレスおよび無線装置2のIPアドレスに変え、ホップ数を"1"に変え、TTLを254に変え、隣接割当チャネルをチャネルCh3からチャネルCh2に変えたルートリプライメッセージを無線装置1へ転送する。
図39は、ルートリプライメッセージのさらに他の概念図である。また、図40は、ルートリプライメッセージを受信した無線装置が作成するキャッシュテーブルのさらに他の概念図である。さらに、図41は、ルートリプライメッセージを受信した無線装置が作成するルーティングテーブルのさらに他の概念図である。さらに、図42は、階層構造の構築過程を示す第2の概念図である。
無線装置5〜7から送信されたルートリプライメッセージを無線装置2から受信した無線装置1のチャネル割当手段120は、図25および図26に示すフローチャートに従ってルートリプライメッセージの受信処理を行なう。
この場合、無線装置1のチャネル割当手段120は、無線装置5によって生成され、かつ、無線装置2によって転送されたルートリプライメッセージRRM3を受信する。そして、無線装置1のチャネル割当手段120は、上述した動作によって、図25のステップS151〜S154(図26のステップS161〜ステップS164)を実行し、受信したルートリプライメッセージRRM3に基づいて、無線装置1から無線装置5への経路情報をキャッシュテーブルCT1−2(図40参照)およびルーティングテーブル130−1−2(図41参照)に登録する。
その後、無線装置1のチャネル割当手段120は、ルートリプライメッセージRRM3のリーフIPアドレス(=IPadd5)と送信元IPアドレス(=IPadd2)とに基づいて、送信元アドレス(=IPadd5)が隣接ノードアドレス(=IPadd2)と異なると判定し(図25のステップS155の"NO"参照)、隣接ノードアドレス(=IPadd2)への経路を計算する(図25のステップS156参照)。この場合、無線装置1のチャネル割当手段120は、無線装置2への経路を計算するが、その計算した経路は、ルーティングテーブル130−1−2に既に登録された経路と同じであるので、その計算した経路が更新対象ではないと判定し(図26のステップS163参照)、その計算した経路をルーティングテーブル130−1−2へ上書きしない。
そして、無線装置1のチャネル割当手段120は、自己(=無線装置1)がルーツノードであると判定し(図25のステップS157の"YES"参照)、ルートリプライメッセージを転送しない。
また、無線装置1のチャネル割当手段120は、無線装置6によって生成され、かつ、無線装置2によって転送されたルートリプライメッセージを受信し、上述した動作によって、無線装置6への経路情報をキャッシュテーブルCT1−2の第4行目(図40参照)およびルーティングテーブル130−1−2の第4行目(図41参照)に登録する。
さらに、無線装置1のチャネル割当手段120は、無線装置7によって生成され、かつ、無線装置2によって転送されたルートリプライメッセージを受信し、上述した動作によって、無線装置7への経路情報をキャッシュテーブルCT1−2の第5行目(図40参照)およびルーティングテーブル130−1−2の第5行目(図41参照)に登録する。
図10に示すステップS1〜ステップS16が実行された段階においては、無線装置1の待受チャネルがチャネルCh1に決定され、無線装置2の待受チャネルがチャネルCh2に決定され、無線装置5〜7の待受チャネルがチャネルCh3に決定され、無線装置1の階層IDが"1"に決定され、無線装置2の階層IDが"2"に決定され、無線装置5〜7の階層IDが"3"に決定され、無線装置1を"親"とし、無線装置2を"子"とし、無線装置2を"親"とし、無線装置5〜7を"子"とする階層構造が構築される(図42参照)。
上述した動作によって、無線装置1−無線装置2−無線装置5〜7からなる階層構造が構築されるとともに、受信チャネルCh1〜Ch3が階層順に無線装置1,2,5〜7に割り当てられる。
また、無線装置1,3,8,9は、上述した動作と同じ動作によって、無線装置1−無線装置3−無線装置8,9からなる階層構造を構築するとともに、受信チャネルが階層順に無線装置1,3,8,9に割り当てられる。
さらに、無線装置1,4,10,11,12は、上述した動作と同じ動作によって、無線装置1−無線装置4−無線装置10,11−無線装置12からなる階層構造を構築するとともに、受信チャネルが無線装置1,4,10,11,12に階層順に割り当てられる。
そして、無線装置3,4には、受信チャネルCh2が割り当てられ、無線装置8,9には、受信チャネルCh4が割り当てられ、無線装置10,11には、受信チャネルCh3が割り当てられ、無線装置12には、受信チャネルCh4が割り当てられる。すなわち、ルーツノードとしての無線装置1を"親"とする無線装置2〜4には、同じ受信チャネルCh2が割り当てられ、無線装置2を"親"とする無線装置5〜7には、同じ受信チャネルCh3が割り当てられ、無線装置3を"親"とする無線装置8,9には、同じ受信チャネルCh4が割り当てられ、無線装置4を"親"とする無線装置10,11には、同じ受信チャネルCh3が割り当てられる。
これによって、無線装置1〜12が4階層の階層構造に配置された無線通信システム100が形成される(図9参照)。
上述したように、無線装置1がルーツノードとして決定されると、無線装置1がルーツアナウンスメッセージRAMを作成してブロードキャストし、無線装置2〜4,10がルーツアナウンスメッセージRAMを中継し、無線装置2〜12がルートリプライメッセージRRMを作成して送信することによって、図9に示す階層構造が構築されるとともに、その階層構造を構築する過程において、無線装置1、無線装置1に隣接する無線装置2〜4、無線装置2〜4に隣接する無線装置5〜11および無線装置10に隣接する無線装置12の順に受信チャネルが各無線装置に割り当てられる。
そして、各階層に所属する無線装置は、自己が所属する階層よりも下位の階層に配置され、かつ、自己に直接無線通信を行なう無線装置の受信チャネルを決定し、その決定した受信チャネルを下位の階層に配置された無線装置に割り当てる。たとえば、無線装置1は、無線装置2〜4の受信チャネルCh2を決定して無線装置2〜4に割り当て、無線装置2は、無線装置5〜7の受信チャネルCh3を決定して無線装置5〜7に割り当て、無線装置3は、無線装置8,9の受信チャネルCh4を決定して無線装置8,9に割り当て、無線装置4は、無線装置10,11の受信チャネルCh3を決定して無線装置10,11に割り当て、無線装置10は、無線装置12の受信チャネルCh4を決定して無線装置12に割り当てる。
このように、階層構造の構築とともに、階層構造の最上位の階層に所属する無線装置から最下位の階層に所属する無線装置へ向かって階層順に受信チャネルが各無線装置に割り当てられ、親の無線装置(たとえば、無線装置1)が子の無線装置(たとえば、無線装置2〜4)の受信チャネルを割り当てる。
したがって、階層構造に配置された複数の無線装置に受信チャネルを効率的に割り当てることができる。
この発明においては、上述した階層構造の構築および受信チャネルの割当は、定期的に行なわれる。すなわち、ルーツノードである無線装置1のチャネル割当手段120は、1回目の階層構造の構築および受信チャネルの割当が終了した後、タイマー140によって一定時間を計測し、一定時間が経過すると、新たなルーツアナウンスメッセージRAMを作成してブロードキャストする。
この場合、無線装置1のチャネル割当手段120は、1回目のチャネル割当において無線装置1に割り当てられた受信チャネルCh1を無線装置1の受信チャネルとして割り当て(図13のステップS41の"YES"およびステップS43参照)、図14に示すフローチャートに従って無線装置2〜4の受信チャネルを選択するとともに、無線装置2〜4の受信チャネルCh2と同じチャネルCh2を用いて新たなルーツアナウンスメッセージRAM(=シーケンス番号を1つインクリメントしたルーツアナウンスメッセージ)を無線装置2〜4へ送信する。すなわち、無線装置1のチャネル割当手段120は、受信チャネルCh1と異なるチャネルCh2を用いて新たなルーツアナウンスメッセージRAMを無線装置2〜4へ送信する。そして、無線装置1のチャネル割当手段120は、無線装置2〜12によって作成されたルートリプライメッセージRRMを受信専用であるインターフェース112の受信チャネルCh1を用いて受信する。
また、無線装置2〜4は、受信チャネルCh2を用いてルーツアナウンスメッセージRAMを受信するとともに、ルートリプライメッセージRRMを無線装置1の受信チャネルCh1と同じチャネルCh1を用いて無線装置1へ送信する。そして、無線装置2は、無線装置5〜7の受信チャネルCh3と同じチャネルCh3を用いてルーツアナウンスメッセージRAMを無線装置5〜7へ転送し、無線装置3は、無線装置8,9の受信チャネルCh4と同じチャネルCh4を用いてルーツアナウンスメッセージRAMを無線装置8,9へ転送し、無線装置4は、無線装置10,11の受信チャネルCh3と同じチャネルCh3を用いてルーツアナウンスメッセージRAMを無線装置10,11へ転送する。
さらに、無線装置10は、受信チャネルCh3を用いてルーツアナウンスメッセージRAMを受信するとともに、ルートリプライメッセージRRMを無線装置4の受信チャネルCh2と同じチャネルCh2を用いて無線装置4へ送信する。そして、無線装置10は、無線装置12の受信チャネルCh4と同じチャネルCh4を用いてルーツアナウンスメッセージRAMを無線装置12へ送信する。
さらに、無線装置12は、受信チャネルCh4を用いてルーツアナウンスメッセージRAMを受信するとともに、ルートリプライメッセージRRMを無線装置10の受信チャネルCh3と同じチャネルCh3を用いて無線装置10へ送信する。
その他、無線装置1〜12は、図10〜図15および図19〜図26に示すフローチャートに従って階層構造の構築およびチャネル割当を行なう。
このように、チャネル割当が行なわれた後に、ルーツアナウンスメッセージRAMがブロードキャストされる場合、無線装置1は、自己が所属する階層よりも下位の階層に所属する無線装置2〜4の受信チャネルCh2を用いて一斉にルーツアナウンスメッセージRAMを無線装置2〜4へ送信し、無線装置2は、自己が所属する階層よりも下位の階層に所属する無線装置5〜7の受信チャネルCh3を用いて一斉にルーツアナウンスメッセージRAMを無線装置5〜7へ送信し、無線装置3は、自己が所属する階層よりも下位の階層に所属する無線装置8,9の受信チャネルCh4を用いて一斉にルーツアナウンスメッセージRAMを無線装置8,9へ送信し、無線装置4は、自己が所属する階層よりも下位の階層に所属する無線装置10,11の受信チャネルCh3を用いて一斉にルーツアナウンスメッセージRAMを無線装置10,11へ送信する。したがって、この発明によれば、ブロードキャストするときのコストを低減できる。
[新たな無線装置の参加]
図43は、図9に示す無線通信システム100に無線装置13が新たに参加した場合の模式図である。図43に示すように、無線装置13が無線通信システム100へ新たに参加した場合における無線装置13の階層構造への組込みおよび無線装置13へのチャネル割当について説明する。たとえば、無線装置13は、無線装置2,3,7,8の周囲において無線通信システム100へ新たに参加するものとする。なお、無線装置13は、図2に示す無線装置1と同じ構成からなる。
図44は、無線通信システム100に新たに参加した無線装置の状態遷移を示す図である。無線装置13は、電源がオンされ、起動された後に、ルーツアナウンスメッセージRAMを受信すると、ルーティングに参加する。この場合、無線装置13は、インターフェース111〜11jを順次切り替えるとともに、その切り替えたインターフェースにおいてチャネルCh1〜Ch4を順次切り替えながらルーツアナウンスメッセージRAMを受信するので、いずれかのインターフェースのいずれかのチャネルでルーツアナウンスメッセージRAMを必ず受信できる。また、「ルーティングに参加」とは、無線装置13が、図19〜図26に示すフローチャートに従って、ルーツアナウンスメッセージRAMを受信した無線装置2〜12と同じ動作を行なって階層構造に組み込まれるととともに、自己の受信チャネルを割り当てられることを言う。
また、無線装置13は、起動後、一定時間、メッセージを受信しなかった場合、後述するスキャン(SCAN)を開始する。これによって、無線装置13は、階層構造に組み込まれるとともに、自己の受信チャネルを割り当てられる。
さらに、無線装置13は、ルーティングに参加した状態において、一定時間、メッセージを受信しなかった場合、後述するスキャンを開始する。
さらに、無線装置13は、スキャンを開始した後に、隣接ノードから応答があった場合、ルーティングに参加する。
さらに、無線装置13は、ルーティングに参加した状態、またはスキャンを開始した状態において電源がオフされると、無線通信システム100への参加が終了する。
図45は、スキャンメッセージSCMを送信する動作を説明するためのフローチャートである。図45を参照して、一連の動作が開始されると、無線装置13のチャネル割当手段120は、スキャンタイマをタイマー140にセットし(ステップS171)、時間をチェックする(ステップS172)。
その後、無線装置13のチャネル割当手段120は、スキャンタイマが満期になったか否かを判定する(ステップS173)。そして、ステップS173において、スキャンタイマが満期になっていないと判定されたとき、一連の動作は、ステップS172へ戻る。 一方、無線装置13のチャネル割当手段120は、ステップS173において、スキャンタイマが満期になったと判定したとき、スキャンメッセージSCMを作成し(ステップS174)、その作成したスキャンメッセージSCMをブロードキャストする(ステップS175)。この場合、無線装置13のチャネル割当手段120は、インターフェース111〜11jを順次切り替えるとともに、その切り替えたインターフェースにおいてチャネルCh1〜Ch4を順次切り替えてスキャンメッセージSCMを送信する。その結果、新たに参加した無線装置13の周囲に存在する無線装置2,3,7,8に受信チャネルが既に割り当てられていても、スキャンメッセージSCMは、必ず、無線装置2,3,7,8のいずれかの無線装置によって受信される。そして、一連の動作は、終了する。
図46は、新たに参加した無線装置が作成するスキャンメッセージの例を示す図である。無線装置13のチャネル割当手段120は、受信チャネルをチャネルCh4に設定したスキャンメッセージSCM1を作成してブロードキャストする。なお、無線装置13のチャネル割当手段120は、無線装置13が複数のインターフェースを備える場合、待ち時間を設定せずにスキャンメッセージSCM1を作成し、無線装置13が1個のインターフェースを備える場合、待ち時間を設定してスキャンメッセージSCM1を作成する。
図47は、スキャンメッセージを受信する動作およびスキャンリプライメッセージを送信する動作を説明するためのフローチャートである。なお、図47においては、無線装置2,3,7,8のうち、無線装置2が無線装置13からスキャンメッセージSCM1を受信するものとして説明する。
図47を参照して、一連の動作が開始されると、無線装置2のチャネル割当手段120は、インターフェース111の受信チャネルCh2を用いてスキャンメッセージSCM1を受信する(ステップS181)。そして、無線装置2のチャネル割当手段120は、スキャンメッセージSCM1を解析する(ステップS182)。より具体的には、無線装置2のチャネル割当手段120は、スキャンメッセージSCM1から無線装置13の受信チャネルCh4を取り出すとともに、待ち時間が設定されていれば、その設定された待ち時間を取り出し、待ち時間が設定されていなければ、待ち時間が設定されていないことを検知する。
その後、無線装置2のチャネル割当手段120は、スキャンメッセージSCM1を送信したノードのインターフェースがシングルインターフェースか否かを判定する(ステップS183)。この場合、無線装置2のチャネル割当手段120は、スキャンメッセージSCM1から待ち時間を取り出した場合、スキャンメッセージSCM1を送信したノードのインターフェースがシングルインターフェースであると判定し、待ち時間が設定されていないことを検知したとき、スキャンメッセージSCM1を送信したノードのインターフェースがシングルインターフェースでないと判定する。
無線装置2のチャネル割当手段120は、ステップS183において、シングルインターフェースであると判定したとき、スキャンリプライ送信タイマ(=待ち時間)をタイマー140にセットする(ステップS184)。
ステップS183において、シングルインターフェースでないと判定されたとき、またはステップS184の後、無線装置2のチャネル割当手段120は、スキャンリプライメッセージSCRMを作成し(ステップS185)、宛先(=無線装置13)の待受チャネルCh4からインターフェースを決定する(ステップS186)。
その後、無線装置2のチャネル割当手段120は、IPヘッダを作成し(ステップS187)、スキャンリプライメッセージSCRMを無線装置13の受信チャネルCh4で送信する(ステップS188)。これによって、一連の動作は終了する。
図48は、図47に示すステップS185の詳細な動作を説明するためのフローチャートである。図48を参照して、無線装置2のチャネル割当手段120は、図47のステップS183の"NO"またはステップS184の後、現在保持しているシーケンス番号をスキャンリプライメッセージSCRMのシーケンス番号に設定し(ステップS191)、現在、自己(=無線装置2)に割り当てられている階層ID(=2)をスキャンリプライメッセージSCRMの階層IDに設定する(ステップS192)。
そして、無線装置2のチャネル割当手段120は、自己(=無線装置2)の待受チャネルを設定し(ステップS193)、チャネル割当を行なうか否かを判定する(ステップS194)。ステップS194において、チャネル割当を行なわないと判定されたとき、一連の動作は、図47に示すステップS186へ移行する。
一方、無線装置2のチャネル割当手段120は、ステップS194においてチャネル割当を行なうと判定したとき、新しく参加する無線装置13の待受チャネルを決定する(ステップS195)。この場合、無線装置2のチャネル割当手段120は、自己(=無線装置2)の"子"である無線装置5〜7に割り当てた待受チャネルCh3と同じチャネルを無線装置13の待受チャネルとして決定する。
その後、無線装置2のチャネル割当手段120は、ホップ数、TTL、ルーツIPアドレス、割当チャネルおよびターゲットチャネルを設定してスキャンリプライメッセージSCRMを作成する。
そして、ステップS194"NO"またはS195の後、一連の動作は、図47に示すステップS186へ移行する。
図49は、スキャンリプライメッセージを受信する動作を説明するためのフローチャートである。図49を参照して、一連の動作が開始されると、無線装置13のチャネル割当手段120は、チャネルCh4を用いてスキャンリプライメッセージSCRMを受信し(ステップS201)、スキャンリプライメッセージSCRMを解析する(ステップS202)。
その後、無線装置13のチャネル割当手段120は、チャネル割当を行なうか否かを判定し(ステップS203)、チャネル割当を行なうと判定したとき、スキャンリプライメッセージSCRMからターゲットチャネルを取り出す(ステップS204)。
一方、ステップS203においてチャネル割当を行なわないと判定されたとき、無線装置13のチャネル割当手段120は、スキャンリプライメッセージSCRMから割当チャネル(=親のチャネル)を取り出し、その取り出した割当チャネルをターゲットチャネルとする(ステップS205)。
そして、ステップS204またはステップS205の後、無線装置13のチャネル割当手段120は、無線装置13から無線装置2への経路情報をキャッシュテーブルCTに登録する(ステップS206)。
その後、無線装置13のチャネル割当手段120は、ルートリプライメッセージ送信タイマをタイマー140にセットする(ステップS207)。
そして、無線装置13のチャネル割当手段120は、シーケンス番号を更新し(ステップS208)、階層IDを更新し(ステップS209)、自己宛の経路情報をキャッシュテーブルCTに登録する(ステップS210)。これによって、一連の動作は、終了する。
なお、図49に示すステップS206の詳細な動作は、上述した図21に示すフローチャートに従って実行される。また、図49に示すステップS207の詳細な動作は、上述した図22〜図24に示すフローチャートに従って実行され、スキャンリプライメッセージSCRMを受信した無線装置13のチャネル割当手段120は、図22〜図24に示すフローチャートに従ってルートリプライメッセージRRMの無線装置2への送信処理を行なう。そして、無線装置2のチャネル割当手段120は、図25および図26に示すフローチャートに従ってルートリプライメッセージRRMの受信処理を行なう。これによって、無線装置13は、無線装置5〜7とともに第3階層に所属し、無線装置2を無線装置13の"親"とする階層構造が構築されるとともに、チャネルCh3が無線装置13の待受チャネルとして割り当てられる。
図50は、スキャンメッセージSCMを受信した無線装置2が作成する応答メッセージRPMの概念図である。図50を参照して、応答メッセージRPMは、IPヘッダIPH4と、スキャンリプライメッセージSCRM1とからなる。
無線装置2のチャネル割当手段120は、図47に示すステップS185において、ホップ数に"1"を格納し、TTLに"255"を格納し、シーケンス番号に"1"を格納し、階層IDに"2"を格納し、チャネル数に"2"を格納し、ルーツIPアドレスに"IPadd1"を格納し、割当チャネルに"Ch2"を格納し、ターゲットチャネルに"Ch3"を格納したスキャンリプライメッセージSCRM1を作成する。
また、無線装置2のチャネル割当手段120は、図47に示すステップS187において、送信元IPアドレスに"IPadd2"を格納し、送信先IPアドレスに"IPadd13"を格納したIPヘッダIPH4を作成する。
そして、無線装置2のチャネル割当手段120は、図47に示すステップS188において、スキャンリプライメッセージSCRM1を含む応答メッセージRPMを無線装置13へ送信する。
図51は、スキャンリプライメッセージSCRM1を受信した無線装置13が作成するキャッシュテーブルCTの概念図である。また、図52は、スキャンリプライメッセージSCRM1を受信した無線装置13が作成するルーティングテーブル130の概念図である。さらに、図53は、スキャンリプライメッセージSCRM1を受信した無線装置13が作成するルートリプライメッセージRRMの概念図である。
無線装置2からスキャンリプライメッセージSCRM1を含む応答メッセージRPMを受信した無線装置13のチャネル割当手段120は、ルーツノードである無線装置1への経路情報と、隣接ノードである無線装置2への経路情報とをキャッシュテーブルCT3−4(図51参照)へ登録する(図49のステップS206参照)。
より具体的には、無線装置13のチャネル割当手段120は、応答メッセージRPMのスキャンリプライメッセージSCRM1に含まれるルーツIPアドレス(=IPadd1)、シーケンス番号(=1)、割当チャネル(=Ch2)およびホップ数(=1)と、応答メッセージRPMのIPヘッダIPH4に含まれる送信元IPアドレス(=IPadd2)とに基づいて、ルーツIPアドレス(=IPadd1)を送信先とする経路情報をキャッシュテーブルCT3−4の第1行目に登録する(図21のステップS101および図51参照)。
また、無線装置13のチャネル割当手段120は、次のホップである無線装置2との関係を"親"とし(図21のステップS111参照)、受信した階層ID(=2)に"1"を加えた"3"を無線装置13が所属する階層IDとして仮定し(図21のステップS112参照)、無線装置2への経路情報をキャッシュテーブルCT3−4の第2行目に登録する(図21のステップS113および図51参照)。
その後、無線装置13のチャネル割当手段120は、ルートリプライメッセージ送信タイマのセット(図49のステップS207参照)の詳細な動作を示す図22のステップS125(=図23に示すフローチャート)において、ルーツノードである無線装置1への経路情報をルーティングテーブル130−3−4の第1行目に登録するとともに(図23のステップS133参照)、隣接ノードである無線装置2への経路情報をルーティングテーブル130−3−4の第2行目に登録する(図23のステップS138参照)。そして、無線装置13のチャネル割当手段120は、図21のステップS112で仮定した階層ID(=3)に基づいて、自己が所属する階層を第3階層と決定する(図23のステップS139参照)。
その後、無線装置13のチャネル割当手段120は、図49のステップS204で取り出した待受チャネル(=Ch3)に基づいて、自己(=無線装置13)の待受チャネルをチャネルCh3に物理的に切り替えるとともに(図22のステップS126参照)、ルートリプライメッセージRRM4(図53参照)を作成する(図22のステップS127参照)。そして、無線装置13のチャネル割当手段120は、作成したルートリプライメッセージRRM4を無線装置2の待受チャネルCh2と同じチャネルCh2を用いて無線装置2へ送信する(図22のステップS128参照)。
引き続いて、無線装置13のチャネル割当手段120は、シーケンス番号を更新し(図49のステップS208参照)、階層IDを"3"に更新し(図49のステップS209参照)、自己宛の経路情報をキャッシュテーブルCT3−4の第3行目に登録する(図49のステップS210および図51参照)。
図54は、ルートリプライメッセージを受信した無線装置が作成するキャッシュテーブルのさらに他の概念図である。また、図55は、ルートリプライメッセージを受信した無線装置が作成するルーティングテーブルのさらに他の概念図である。さらに、図56は、ルートリプライメッセージを受信した無線装置が作成するキャッシュテーブルのさらに他の概念図である。さらに、図57は、ルートリプライメッセージを受信した無線装置が作成するルーティングテーブルのさらに他の概念図である。さらに、図58は、階層構造の構築過程を示す第3の概念図である。
無線装置13からルートリプライメッセージRRM4を受信した無線装置2のチャネル割当手段120は、図25および図26に示すフローチャートに従ってルートリプライメッセージRRM4の受信処理を行なう。
無線装置2のチャネル割当手段120は、ルートリプライメッセージRRM4を解析し(図25のステップS151参照)、受信したシーケンス番号(=1)と、自己が保持するシーケンス番号(=1)とが同じであると判定し(図25のステップS152の"YES"参照)、無線装置2から無線装置13への経路情報をキャッシュテーブルCT2−2の第6行目に登録する(図25のステップS153および図54参照)。
その後、無線装置2のチャネル割当手段120は、送信元アドレス(=IPadd13)への経路を計算するステップS154において、キャッシュテーブルCT2−2から無線装置13への経路を取り出し、次の無線装置(=無線装置13)がルーティングテーブル130−2−2に既に登録されている"次の無線装置"と異なるので、取り出した経路が更新対象であると判定し(図26のステップS163参照)、取り出した経路をルーティングテーブル130−2−2の第5行目に登録する(図26のステップS164および図55参照)。
そして、無線装置2のチャネル割当手段120は、送信元アドレス(=IPadd13)が隣接ノードアドレス(=IPadd13)と同じであると判定し(図25のステップS155の"YES")、自己(=無線装置2)がルーツノードでないと判定する(図25のステップS157の"NO")。そうすると、無線装置2のチャネル割当手段120は、ルートリプライメッセージRRMを無線装置1へ転送する(図25のステップS158)。この場合、無線装置2のチャネル割当手段120は、図39に示すルートリプライメッセージRRM3のリーフIPアドレスをIPadd5からIPadd13に変えたルートリプライメッセージRRMを無線装置1へ転送する。
無線装置2からルートリプライメッセージRRMを受信した無線装置1のチャネル割当手段120は、図25および図26に示すフローチャートに従ってルートリプライメッセージRRMの受信処理を行なう。すなわち、無線装置1のチャネル割当手段120は、ルートリプライメッセージRRMを解析し(図25のステップS151参照)、受信したシーケンス番号(=1)と、自己が保持するシーケンス番号(=1)とが同じであると判定し(図25のステップS152の"YES"参照)、無線装置1から無線装置13への経路情報をキャッシュテーブルCT1−3の第6行目に登録する(図25のステップS153および図56参照)。
その後、無線装置1のチャネル割当手段120は、送信元アドレス(=IPadd13)への経路を計算するステップS154において、キャッシュテーブルCT1−3から無線装置13への経路を取り出し、次の無線装置(=無線装置13)がルーティングテーブル130−1−3に既に登録されている"次の無線装置"と異なるので、取り出した経路が更新対象であると判定し(図26のステップS163参照)、取り出した経路をルーティングテーブル130−1−3の第6行目に登録する(図26のステップS164および図57参照)。
その後、無線装置1のチャネル割当手段120は、送信元アドレス(=IPadd13)が隣接ノードアドレス(=IPadd2)と異なると判定し(図25のステップS155の"NO)、隣接ノードアドレスへの経路を計算する(図25のステップS156参照)。この場合、無線装置1のチャネル割当手段120は、ステップS156の詳細な動作を示す図26のフローチャートのステップS163において、取り出した経路が更新対象ではないと判定し、無線装置2への経路をルーティングテーブル130−1−3へ再登録することはない。
引き続いて、無線装置1のチャネル割当手段120は、自己(=無線装置1)がルーツノードであると判定し(図25のステップS157の"YES")、ルートリプライメッセージを転送することはない。
これによって、無線通信システム100へ新たに参加した無線装置13は、無線装置2の"子"として第3階層に配置されるとともに、無線装置5〜7の待受チャネルCh3と同じチャネルCh3が待受チャネルとして割り当てられる(図58参照)。
このように、無線装置13は、無線通信システム100に新たに参加した場合、階層構造に組み込まれるとともに、自己の待受チャネルを割り当てられる。
したがって、この発明によれば、無線通信システム100に新たに参加する無線装置13が存在する場合も、その無線装置13を含めて階層構造を構築できるとともに、待受チャネルを無線装置13に効率的に割り当てることができる。
なお、上記においては、スキャンメッセージSCを受信する無線装置は、1個であると説明したが、スキャンメッセージSCは、2個以上の無線装置によって受信される場合もある。この場合、新たに参加した無線装置13のチャネル割当手段120は、複数の無線装置から複数のスキャンリプライメッセージSCRMを受信する。そして、無線装置13のチャネル割当手段120は、スキャンリプライメッセージSCRMに対するルートリプライメッセージRRMを送信するとき、ルーツノードを送信先とするときの次ホップノードへルートリプライメッセージRRMを送信する(図22のステップS128)。したがって、無線装置13のチャネル割当手段120が複数のスキャンリプライメッセージSCRMを受信する場合でも、ルーツノードへ向かう経路における"次の無線装置"へルートリプライメッセージRRMを送信するので、新たに参加する無線装置13の"親"は、1個に決定される。
[チャネル割当のやり直し処理]
図59は、無線通信システム100における一部の階層構造を示す概念図である。図59を参照して、無線通信システム100に新たに参加した無線装置13は、本来、無線装置2の"子"として階層構造に組み込まれるべきであるが、誤って、無線装置7の"子"として階層構造に組み込まれる場合もある。たとえば、無線装置7が無線装置13からのスキャンメッセージSCを受信した場合である。
このような場合、無線通信システム100においては、複数の無線装置1〜13への待受チャネルの割当をやり直す。ルーツノードである無線装置1のチャネル割当手段120は、無線装置13が無線通信システム100に新たに参加したことを検知できるので(図57のルーティングテーブル130−1−3参照)、無線通信システム100に新たに参加した無線装置を検知すると、複数の無線装置1〜13への待受チャネルの割当をやり直す。
すなわち、無線装置1のチャネル割当手段120は、上述した方法によって、ルーツアナウンスメッセージRAMを作成し、その作成したルーツアナウンスメッセージRAMを全てのインターフェース111〜11jの全てのチャネルCh1〜Ch4を用いて無線装置2〜13へブロードキャストし、複数の無線装置1〜13のチャネル割当手段120は、上述した方法によって、待受チャネルの割当をやり直す。これによって、無線装置7の"子"として誤って階層構造に組み込まれた無線装置13を無線装置2の"子"として本来の階層構造に組み込むことができる。
なお、この待受チャネルの割当のやり直しは、無線通信システム100に新たに参加した無線装置を検知したタイミングだけでなく、次のタイミングで行なわれてもよい。通常のチャネル割当は、上述したように、定期的に行なわれる。すなわち、一定時間ごとに、タイミングt1、タイミングt2、タイミングt3、・・・のタイミングで行なわれる。そして、無線通信システム100に新たに参加した無線装置がタイミングt2とタイミングt3との間で検知された場合、チャネル割当のやり直しは、次のチャネル割当のタイミングt3で行なわれるようにしてもよい。
[通信動作]
上述した方法によって、受信チャネルが各無線装置1〜12(または1〜13)に割り当てられると、各無線装置1〜12(または1〜13)は、その割り当てられた受信チャネルを用いて他の無線装置と無線通信を行なう。
図60は、無線通信システム100の一部の階層構造を示す他の概念図である。上述したチャネル割当によって、受信チャネルCh1は、無線装置1のインターフェース112に割り当てられ、受信チャネルCh2は、無線装置2のインターフェース111に割り当てられ、受信チャネルCh3は、無線装置5のインターフェース111、無線装置6のインターフェース112および無線装置7のインターフェース11jに割り当てられる。そして、無線装置1は、インターフェース112を受信専用のインターフェースとして用い、無線装置2は、インターフェース111を受信専用のインターフェースとして用い、無線装置5は、インターフェース111を受信専用のインターフェースとして用い、無線装置6は、インターフェース112を受信専用のインターフェースとして用い、無線装置7は、インターフェース11jを受信専用のインターフェースとして用いる。
無線装置1の通信手段150は、無線装置2へパケットを送信する場合、たとえば、インターフェース112以外のインターフェース111のチャネルCh2を用いてパケットを無線装置2へ送信する。すなわち、無線装置1の通信手段150は、無線装置2の受信チャネルCh2を用いてパケットを無線装置2へ送信する。
そして、無線装置2の通信手段150は、インターフェース111の受信チャネルCh2を用いて無線装置1からのパケットを受信する。また、無線装置2の通信手段150は、無線装置1へパケットを送信する場合、たとえば、インターフェース111以外のインターフェース11jのチャネルCh1を用いてパケットを無線装置1へ送信する。すなわち、無線装置2の通信手段150は、無線装置1の受信チャネルCh1を用いてパケットを無線装置1へ送信する。
さらに、同様にして、無線装置2の通信手段150は、無線装置5〜7へパケットを送信する場合、無線装置5〜7の受信チャネルCh3と同じチャネルCh3を用いてパケットを無線装置5〜7へ送信するとともに、無線装置5〜7からのパケットを受信チャネルCh2を用いて受信する。
さらに、無線装置5は、インターフェース111以外のインターフェース112〜11jのチャネルCh1,Ch2,Ch4のいずれかを用いてパケットを無線装置2へ送信し、無線装置2からのパケットをインターフェース111の受信チャネルCh3を用いて受信する。無線装置6は、インターフェース112以外のインターフェース111,113〜11jのチャネルCh1,Ch2,Ch4のいずれかを用いてパケットを無線装置2へ送信し、無線装置2からのパケットをインターフェース112の受信チャネルCh3を用いて受信する。無線装置7は、インターフェース11j以外のインターフェース111〜11j−1のチャネルCh1,Ch2,Ch4のいずれかを用いてパケットを無線装置2へ送信し、無線装置2からのパケットをインターフェース11jの受信チャネルCh3を用いて受信する。
その結果、無線装置1,2,5〜7の各々は、2以上のインターフェースを備えている場合、パケットの送信およびパケットの受信を同時に行なうことができる。
無線装置1,2,5〜7の各々が1個のインターフェースを備える場合、通信手段150は、自己に割り当てられた受信チャネル以外のチャネルを用いてパケットを相手方へ送信し、そのパケットの送信が終了した後に、受信チャネルを用いて相手方からのパケットを受信する。
上述したチャネル割当によって、各階層に所属する無線装置は、自己が所属する階層から2階層以内に存在する無線装置と異なる受信チャネルが割り当てられる。たとえば、第3階層に所属する無線装置5〜11は、第1階層に所属する無線装置1と、第2階層に所属する無線装置2〜4とは、異なる受信チャネルが割り当てられる(図9参照)。
したがって、第1階層に所属する無線装置1および第3階層に所属する無線装置5〜11が第2階層に所属する無線装置2〜4からの通信範囲内に存在していても、無線通信の混信を回避できる。
[兄弟関係を用いたチャネル割当]
上記においては、同じ階層に所属する無線装置同士は、相互に無線通信を行なわないことを前提にしてチャネル割当について説明したが、この発明においては、同じ階層に所属する無線装置同士が相互に無線通信を行なうことによって、チャネル割当を行なってもよい。
兄弟関係を構築する動作について説明する。なお、兄弟関係とは、同じ無線装置を親の無線装置とし、かつ、同じ階層に所属する複数の無線装置を言う。図61から図63は、それぞれ、兄弟関係を構築する動作を説明するための第1から第3の概念図である。図64は、兄弟関係を構築するときのキャッシュテーブルの概念図である。図65は、兄弟関係を構築するときのキャッシュテーブルのさらに他の概念図である。図66は、兄弟関係を構築するときのルーティングテーブルの概念図である。図67は、兄弟関係を構築するときのキャッシュテーブルのさらに他の概念図およびルーティングテーブルの他の概念図である。図68は、兄弟関係を構築するときのキャッシュテーブルのさらに他の概念図である。図69から図73は、兄弟関係を構築するときのキャッシュテーブルのさらに他の概念図およびルーティングテーブルのさらに他の概念図である。
図61を参照して、兄弟関係が構築されるとき、ルーツノードである無線装置1は、上述した方法によってルーツアナウンスメッセージRAMを生成し、その生成したルーツアナウンスメッセージRAMを送信する。この場合、無線装置1は、キャッシュテーブルCT1(図64参照)を作成する。
無線装置3および4は、無線装置1から送信されたルーツアナウンスメッセージRAMを受信し(図61の(a)参照)、その受信したルーツアナウンスメッセージRAMを解析する。そして、無線装置3および4は、自己から無線装置1への経路情報をルーツアナウンスメッセージRAMから取り出し、その取り出した経路情報を登録してキャッシュテーブルCT3−5(図65参照)を作成する。
そして、無線装置1は、ルートリプライメッセージRRMの送信タイマーを設定し、その設定した送信タイマーが発動すると、ルーティングテーブルをルーティングテーブル130−1(図66参照)に更新する。
その後、無線装置3は、ルーツアナウンスメッセージRAMの転送タイマーをセットし、そのセットした転送タイマーが発動すると、ルーツアナウンスメッセージRAMをブロードキャストする(図61の(b)参照)。
そして、無線装置3は、複数の親候補からメトリック>元親>更新時間の優先順位で無線装置1を"親"として決定するとともに、自己の階層IDを親の階層ID(=1)に"1"を加えることによって"2"と計算する。この場合、無線装置3は、自己宛の経路情報をキャッシュテーブルCT3−5に登録し、キャッシュテーブルCT3−5をキャッシュテーブルCT3−6(図67の(a)参照)に更新する。そして、無線装置3は、その更新したキャッシュテーブルCT3−6に基づいてルーティングテーブル130−3−5(図67の(b)参照)を作成する。
その後、無線装置1,2,4,8は、無線装置3からのルーツアナウンスメッセージRAMを受信する。そして、無線装置1,2,4,8は、ルーツアナウンスメッセージRAMを解析し、無線装置3および無線装置3を経由した無線装置1(ルーツノード)への経路情報を取り出す。そうすると、無線装置1,2,4,8は、その取り出した経路情報を登録して、それぞれ、キャッシュテーブルCT1−4,CT4−1,CT2−3,CT8−1(図68の(a)〜(d)参照)を作成する。
そして、無線装置4は、ルーツアナウンスメッセージRAMの転送タイマーをセットし、そのセットした転送タイマーが発動すると、ルーツアナウンスメッセージRAMをブロードキャストする(図62の(a)参照)。その後、無線装置4は、複数の親候補からメトリック>元親>更新時間の優先順位で無線装置1を"親"として決定するとともに、自己の階層IDを親の階層ID(=1)に"1"を加えることによって"2"と計算する。この場合、無線装置4は、自己宛の経路情報をキャッシュテーブルCT4−1に登録し、キャッシュテーブルCT4−1をキャッシュテーブルCT4−2(図69の(a)参照)に更新する。そして、無線装置4は、その更新したキャッシュテーブルCT4−2に基づいてルーティングテーブル130−4−1(図69の(b)参照)を作成する。
その後、無線装置1,3は、無線装置4からルーツアナウンスメッセージRAMを受信する(図62の(a)参照)。そして、無線装置1,3は、ルーツアナウンスメッセージRAMを解析し、無線装置4または無線装置4を経由した無線装置1(ルーツノード)への経路情報を取り出す。
そうすると、無線装置1は、取り出した経路情報を登録してキャッシュテーブルCT1−5(図70の(a)参照)を作成し、無線装置3は、取り出した経路情報を登録してキャッシュテーブルCT3−7(図70の(b)参照)を作成する。
その後、無線装置4は、無線装置3から受信したルートアナウンスメッセージRAMに呼応して、兄弟関係の構築のためにルートリプライメッセージRRMを作成して無線装置3へ送信する。無線装置3および無線装置4は、同じ階層に所属するため、兄弟関係になることができる。したがって、無線装置3から同じ階層IDを含むルートアナウンスメッセージRAMを受信した無線装置4は、兄弟関係の構築を示すフラグ(=メッセージタイプ[b8|b7|b6|b5|b4|1|b2|b1])を含むリートリプライメッセージRRMを作成して無線装置3へ送信する(図62の(b)参照)。この場合、無線装置4は、キャッシュテーブルCT4−3(図71の(a)参照)およびルーティングテーブル130−4−2(図71の(b)参照)を作成する。そして、キャッシュテーブルCT4−3の第3行目の経路情報は、兄弟候補である。
無線装置3は、無線装置4からルートリプライメッセージRRMを受信し、その受信したルートリプライメッセージRRMを解析して無線装置4を経由する経路をキャッシュテーブルCT3−8(図72の(a)参照)に登録する。そして、無線装置3は、無線装置4から受信したルートリプライメッセージRRMに兄弟関係の構築を示すフラグがセットされているので、無線装置4を無線装置3の兄弟とし、無線装置4への経路をルーティングテーブルに登録してルーティングテーブル130−3−5をルーティングテーブル130−3−6(図72の(b)参照)に更新する。これによって、無線装置3から無線装置4への兄弟関係が構築される。
その後、無線装置3は、無線装置4からルートアナウンスメッセージRAMを受信したことに呼応して、兄弟関係の構築のためのルートリプライメッセージRRMを無線装置4へ送信する(図63参照)。
無線装置3および無線装置4は、同じ階層に所属するため、兄弟関係になることができる。したがって、無線装置4から同じ階層IDを含むルートアナウンスメッセージRAMを受信した無線装置3は、兄弟関係の構築を示すフラグ(=メッセージタイプ[b8|b7|b6|b5|b4|1|b2|b1])を含むリートリプライメッセージRRMを作成して無線装置4へ送信する(図63参照)。この場合、無線装置3は、キャッシュテーブルCT3−8(図72の(a)参照)およびルーティングテーブル130−3−6(図72の(b)参照)を作成している。そして、キャッシュテーブルCT3−8の第4行目の経路情報は、兄弟候補である。
無線装置4は、無線装置3からルートリプライメッセージRRMを受信し、その受信したルートリプライメッセージRRMを解析して無線装置3を経由する経路をキャッシュテーブルCT4−4(図73の(a)参照)に登録する。そして、無線装置4は、無線装置3から受信したルートリプライメッセージRRMに兄弟関係の構築を示すフラグがセットされているので、無線装置3を無線装置4の兄弟とし、無線装置3への経路をルーティングテーブルに登録してルーティングテーブル130−4−2をルーティングテーブル130−4−3(図73の(b)参照)に更新する。これによって、無線装置4から無線装置3への兄弟関係が構築される。
その後、無線装置2と無線装置3との間でも、兄弟関係を構築するためのルートアナウンスメッセージRAMおよびルートリプライメッセージRRMのやり取りが行なわれ、無線装置2および無線装置3は、兄弟関係を構築する。
また、無線装置5−無線装置6間および無線装置6−無線装置7間でも、兄弟関係を構築するためのルートアナウンスメッセージRAMおよびルートリプライメッセージRRMのやり取りが行なわれ、無線装置6は、無線装置5,7との間で兄弟関係を構築する。さらに、無線装置9−無線装置10間でも、兄弟関係を構築するためのルートアナウンスメッセージRAMおよびルートリプライメッセージRRMのやり取りが行なわれ、無線装置9は、無線装置10との間で兄弟関係を構築する。さらに、無線装置11−無線装置12間でも、兄弟関係を構築するためのルートアナウンスメッセージRAMおよびルートリプライメッセージRRMのやり取りが行なわれ、無線装置11は、無線装置12との間で兄弟関係を構築する。
さらに、無線装置7−無線装置8間でも、ルートアナウンスメッセージRAMおよびルートリプライメッセージRRMのやり取りが行なわれ、無線装置7−無線装置8間で、リンクが形成され、無線装置8−無線装置9間でも、ルートアナウンスメッセージRAMおよびルートリプライメッセージRRMのやり取りが行なわれ、無線装置8−無線装置9間で、リンクが形成される。
図74は、兄弟関係の構築を考慮した場合の階層構造を示す概念図である。図74を参照して、兄弟関係の構築を考慮した場合の階層構造は、無線装置1が階層1に配置され、無線装置2〜4が階層2に配置され、無線装置5〜10が階層3に配置され、無線装置11,12が階層4に配置され、階層2において無線装置2−無線装置3間および無線装置3−無線装置4間でリンクが形成され、階層3において無線装置5−無線装置6間、無線装置6−無線装置7間、無線装置7−無線装置8間、無線装置8−無線装置9間、および無線装置9−無線装置10間でリンクが形成され、階層4において無線装置11−無線装置12間でリンクが形成された構造となる。
そして、図74に示す階層構造において、たとえば、受信チャネルCh1が無線装置1に割り当てられ、受信チャネルCh2が無線装置2〜4に割り当てられ、受信チャネルCh3が無線装置5〜10に割り当てられ、受信チャネルCh4が無線装置11,12に割り当てられる。
そうすると、1つのリンクを構成する無線装置7,8は、相互に異なる無線装置と親子関係を構築し、同じ受信チャネルCh3が割り当てられ、1つのリンクを構成する無線装置8,9も、相互に異なる無線装置と親子関係を構築し、同じ受信チャネルCh3が割り当てられる。その結果、無線装置7,8間および無線装置8,9間で混信が生じる。
そこで、このような混信が生じる場合、受信チャネルの再割当が行なわれる。図75は、チャネル変更依頼パケットの構成を示す図である。図75を参照して、チャネル変更依頼パケットCHREQは、ヘッダHED_Qと、メッセージMES_Qとを含む。ヘッダHED_Qは、タイプと、TTLと、パケットシーケンス番号と、ライフタイムとからなる。また、メッセージMES_Qは、メッセージシーケンス番号と、子の受信チャネルとからなる。
タイプは、"チャネル依頼"からなる。TTLは、チャネル変更依頼パケットCHREQの生成元から送信先までのホップ数に設定され、中継されるごとに"1"づつデクリメントされる。そして、TTLが"0"になると、チャネル変更依頼パケットCHREQは、転送されない。パケットシーケンス番号は、チャネル変更依頼パケットCHREQの生成順を示す数値からなり、たとえば、より大きい数値は、チャネル変更依頼パケットCHREQが新しいことを示す。ライフタイムは、チャネル変更依頼パケットCHREQの生存時間(単位は、たとえば、秒である)を示す。
メッセージシーケンス番号は、メッセージMES_Qの生成順を示す数値からなり、たとえば、より大きい数値は、メッセージMES_Qが新しいことを示す。子の受信チャネルは、受信チャネルを変更すべき無線装置の変更後の受信チャネルを示す。
そして、チャネル変更依頼パケットCHREQは、ルーツノードによって生成され、受信チャネルの最適化を担当する無線装置(=親の無線装置)へ送信される。
図76は、チャネル割当ケットの構成を示す図である。図76を参照して、チャネル割当パケットCHASSは、ヘッダHED_Aと、メッセージMES_Aとを含む。ヘッダHED_Aは、タイプと、TTLと、パケットシーケンス番号と、ライフタイムとからなる。また、メッセージMES_Aは、ソースアドレスと、メッセージシーケンス番号と、子の受信チャネルとからなる。
タイプは、"チャネル割当"からなる。TTLは、チャネル割当パケットCHASSの生成元から送信先までのホップ数に設定され、中継されるごとに"1"づつデクリメントされる。そして、TTLが"0"になると、チャネル割当パケットCHASSは、転送されない。パケットシーケンス番号は、チャネル割当パケットCHASSの生成順を示す数値からなり、たとえば、より大きい数値は、チャネル割当パケットCHASSが新しいことを示す。ライフタイムは、チャネル割当パケットCHASSの生存時間(単位は、たとえば、秒である)を示す。
メッセージシーケンス番号は、メッセージMES_Aの生成順を示す数値からなり、たとえば、より大きい数値は、メッセージMES_Aが新しいことを示す。子の受信チャネルは、受信チャネルを変更すべき無線装置の変更後の受信チャネルを示す。
そして、チャネル割当パケットCHASSは、受信チャネルの最適化を担当する無線装置(=親の無線装置)によって生成され、ブロードキャストによって送信される。
図77は、チャネル通知パケットの構成を示す図である。図77を参照して、チャネル通知パケットCHNotifyは、ヘッダHED_Nと、メッセージMES_Nとを含む。ヘッダHED_Nは、タイプと、TTLと、パケットシーケンス番号と、ライフタイムとからなる。また、メッセージMES_Nは、ソースアドレスと、メッセージシーケンス番号と、子の受信チャネルとからなる。
タイプは、"チャネル通知"からなる。TTLは、チャネル通知パケットCHNotifyの生成元から送信先までのホップ数に設定され、中継されるごとに"1"づつデクリメントされる。そして、TTLが"0"になると、チャネル通知パケットCHNotifyは、転送されない。パケットシーケンス番号は、チャネル通知パケットCHNotifyの生成順を示す数値からなり、たとえば、より大きい数値は、チャネル通知パケットCHNotifyが新しいことを示す。ライフタイムは、チャネル通知パケットCHNotifyの生存時間(単位は、たとえば、秒である)を示す。
メッセージシーケンス番号は、メッセージMES_Nの生成順を示す数値からなり、たとえば、より大きい数値は、メッセージMES_Nが新しいことを示す。子の受信チャネルは、受信チャネルを変更すべき無線装置の変更後の受信チャネルを示す。
そして、チャネル通知パケットCHNotifyは、受信チャネルを変更した無線装置によって生成され、受信チャネルを変更した無線装置と関係のある兄弟および子の無線装置へ送信される。
なお、受信チャネルを変更した無線装置は、自己からルーツノードまでの経路上に存在する無線装置へ受信チャネルを変更したことを示すチャネル変更通知メッセージRREPを送信する。
図78は、チャネル変更依頼パケットの例を示す図である。図79は、チャネル割当パケットの例を示す図である。図80は、チャネル通知パケットの例を示す図である。図81は、チャネルの再割当の概念図である。
ルーツノードである無線装置1は、図74に示す階層構造が構築される過程において、無線装置2〜無線装置12から親子関係、兄弟関係および従兄弟関係における経路情報と、無線装置2〜無線装置12の受信チャネルとを受信するので、無線通信システム100全体におけるトポロジーおよび各無線装置2〜12の受信チャネルを認識している。
そこで、ルーツノードである無線装置1は、無線通信システム100全体におけるトポロジーおよび各無線装置2〜12に割り当てられた受信チャネルに基づいて、混信を生じる箇所を探索する。そして、ルーツノードである無線装置1は、無線装置7−無線装置8間および無線装置8−無線装置9間で混信が生じることを検知する。
次に、ルーツノードである無線装置1は、混信が生じる箇所を検知すると、受信チャネルを変更すべき無線装置を決定する。より具体的には、ルーツノードである無線装置1は、受信チャネルを変更する無線装置の個数が少なくなるように受信チャネルを変更すべき無線装置を決定する。この場合、無線装置2の子である無線装置は、3個の無線装置5〜7であり、無線装置3の子である無線装置は、1個の無線装置8であるので、受信チャネルを変更すべき無線装置を無線装置8と決定する。そして、ルーツノードである無線装置1は、受信チャネルを変更すべき無線装置(=無線装置8)を決定すると、無線装置2,3の受信チャネルCh2および無線装置5〜7,9の受信チャネルCh3を参照して、混信が生じないように、無線装置8の変更後の受信チャネルを受信チャネルCh1に決定する。
そうすると、ルーツノードである無線装置1は、チャネル変更依頼パケットCHREQ1(図78参照)を生成し、その生成したチャネル変更依頼パケットCHREQ1を無線装置8の親である無線装置3へユニキャストする(図81参照)。この場合、チャネル変更依頼パケットCHREQ1は、"チャネル依頼"からなるタイプと、"32"からなるTTLと、"10"からなるパケットシーケンス番号と、"20"からなるライフタイムと、"30"からなるメッセージシーケンス番号と、"Ch1"からなる子の受信チャネルとを含む。
無線装置3は、無線装置1からチャネル変更依頼パケットCHREQ1を受信し、その受信したチャネル変更依頼パケットCHREQ1のタイプ="チャネル依頼"を参照して、自己の子である無線装置8の受信チャネルの変更依頼を受信したことを検知する。そして、無線装置3は、子の受信チャネルがCh1からなるので、無線装置8の受信チャネルを受信チャネルCh1に変更すべきことを検知する。
そうすると、無線装置3は、チャネル割当パケットCHASS1(図79参照)を生成し、その生成したチャネル割当パケットCHASS1を無線装置8へ送信する(図81参照)。この場合、チャネル割当パケットCHASS1は、"チャネル割当"からなるタイプと、"32"からなるTTLと、"20"からなるパケットシーケンス番号と、"20"からなるライフタイムと、IPadd3からなるソースアドレスと、"40"からなるメッセージシーケンス番号と、"Ch1"からなる子の受信チャネルとを含む。
無線装置8は、無線装置3からチャネル割当パケットCHASS1を受信し、その受信したチャネル割当パケットCHASS1のタイプ="チャネル割当"および子の受信チャネル=Ch1を参照して、自己の受信チャネルCh3を受信チャネルCh1に変更すべきことを検知する。そして、無線装置8は、自己の受信チャネルCh3を受信チャネルCh1に変更する。
そうすると、無線装置8は、チャネル通知パケットCHNotify1(図80参照)を生成し、その生成したチャネル通知パケットCHNotify1を無線装置3,7および9へ送信する(図81参照)。この場合、チャネル通知パケットCHNotify1は、"チャネル通知"からなるタイプと、"32"からなるTTLと、"30"からなるパケットシーケンス番号と、"20"からなるライフタイムと、IPadd8からなるソースアドレスと、"50"からなるメッセージシーケンス番号と、"Ch1"からなる子の受信チャネルとを含む。
また、無線装置8は、受信チャネルCh3を受信チャネルCh1に変更したことを示すチャネル変更通知メッセージRREPを生成し、その生成したチャネル変更通知メッセージRREP1を無線装置3を経由して無線装置1へ送信する(図81参照)。
そして、無線装置3,7,9は、無線装置8からチャネル通知パケットCHNotify1を受信し、その受信したチャネル通知パケットCHNotify1のタイプ="チャネル通知"、ソースアドレス=IPadd8および子の受信チャネル=Ch1を参照して、無線装置8の受信チャネルCh3が受信チャネルCh1に変更されたことを検知する。
また、無線装置3は、無線装置8からチャネル変更通知メッセージRREP1を受信し、その受信したチャネル変更通知メッセージRREP1を無線装置1へ中継する。
無線装置1は、チャネル変更通知メッセージRREP1を無線装置3から受信し、無線装置8の受信チャネルが受信チャネルCh3から受信チャネルCh1へ変更されたことを検知する。
これによって、無線装置8と従兄弟関係にある無線装置7,9、無線装置8と親子関係にある無線装置3およびルーツノードである無線装置1は、無線装置8の受信チャネルが受信チャネルCh3から受信チャネルCh1に変更されたことを検知する。そして、無線装置1,3,7,9の各々は、自己のルーティングテーブルに登録された各種の経路情報のうち、無線装置8を送信先とする経路情報の受信チャネルを受信チャネルCh3から受信チャネルCh1に変更する。
その後、無線装置3,7,9は、チャネルCh1を用いて無線装置8へパケットを送信する。その結果、無線装置2がチャネルCh3を用いて無線装置5〜7へパケットを送信し、無線装置3がチャネルCh1を用いて無線装置8へパケットを送信し、無線装置4がチャネルCh3を用いて無線装置9,10へパケットを送信しても、無線装置7−無線装置8間および無線装置8−無線装置9間で混信が生じない。
なお、無線装置8は、自己の子の無線装置が存在する場合、チャネル通知パケットCHNotifyを子の無線装置へも送信する。このように、受信チャネルを変更した無線装置8は、自己の受信チャネルを変更したことを示すチャネル通知パケットCHNotifyを自己よりも階層が"1"だけ上位である無線装置、自己と同じ階層に存在する無線装置および子の無線装置へ送信する。
上述したように、ルーツノード(=無線装置1)は、同一階層において無線通信に混信が生じる箇所を探索し、受信チャネルを変更すべき無線装置の個数が最も少なくなるように受信チャネルを変更すべき無線装置(=無線装置8)を決定する。そして、ルーツノード(=無線装置1)は、受信チャネルを変更すべき無線装置(=無線装置8)を決定すると、変更後の受信チャネル(=Ch1)を決定し、受信チャネルを変更すべき無線装置(=無線装置8)の親(=無線装置3)に受信チャネルの変更を依頼する。
そうすると、受信チャネルを変更すべき無線装置(=無線装置8)の親(=無線装置3)は、ルーツノード(=無線装置1)からの依頼に応じて、変更後の受信チャネル(=Ch1)を子の無線装置(=無線装置8)に割り当て、受信チャネルを変更すべき無線装置(=無線装置8)は、自己の受信チャネルを変更する。そして、受信チャネルを変更すべき無線装置(=無線装置8)は、受信チャネルを変更したことを親の無線装置(=無線装置3)および同じ階層に所属する隣接無線装置(=無線装置7,9)に通知するとともに、受信チャネルを変更したことをルーツノード(=無線装置1)に報告する。
その結果、受信チャネルを変更すべき無線装置(=無線装置8)と関係がある無線装置(=無線装置1,3,7,9)は、受信チャネルを変更すべき無線装置(=無線装置8)が受信チャネルを変更したことを検知する。
したがって、兄弟関係におけるチャネルの再割当を行なうことによって、同一階層で混信が生じないように各無線装置に受信チャネルを効率的に割り当てることができる。
なお、この発明においては、各無線装置1〜13のインターフェースの個数は、1個以上であればよく、各インターフェースのチャネル数は、2個以上であればよい。インターフェースの個数が1個であっても、上述した方法によって、階層構造を構築できるとともに、受信チャネルを複数の無線装置に割り当てることもできるからである。また、チャネル数が2個以上であれば、隣接する2つの階層に所属する無線装置に異なる受信チャネルを割り当てることができるからである。
また、この発明においては、無線装置1がルーツアナウンスメッセージRAMを無線装置2〜12へブロードキャストし、無線装置2〜4,10がルーツアナウンスメッセージRAMを転送し、無線装置2〜12がルートリプライメッセージRRMを自己の階層よりも上位の階層に所属する無線装置へ送信することによって、階層構造が構築され、受信チャネルが複数の無線装置に割り当てられる。したがって、無線通信システム100を構成する複数の無線装置1〜12は、第n(nは正の整数)階層に配置された第1の無線装置と、第n階層よりも下位の階層である第n+1階層に配置され、各々が第1の無線装置と直接無線通信を行なうk(kは正の整数)個の第2の無線装置を含み、第1の無線装置は、第1の受信チャネルを自己の受信チャネルとして割り当て、第1の受信チャネルと異なる第2の受信チャネルをk個の第2の無線装置に割り当てるための受信チャネルとして選択するとともに、第1および第2の受信チャネルを含むチャネル割当パケットをk個の第2の無線装置へ送信し、k個の第2の無線装置の各々は、チャネル割当パケットを第1の無線装置から受信し、その受信したチャネル割当パケットに含まれる第1および第2の受信チャネルに基づいて、第2の受信チャネルを自己の受信チャネルとして割り当てるものであればよい。
この場合、たとえば、無線装置1が"第1の無線装置"に相当し、無線装置2が"k個の第2の無線装置"に相当し、または、無線装置2が"第1の無線装置"に相当し、無線装置5〜7が"k個の第2の無線装置"に相当する。すなわち、1個の"親"としての無線装置が"第1の無線装置"に相当し、第1の無線装置の"子"としての1個以上の無線装置が"k個の第2の無線装置"に相当する。そして、ルーツアナウンスメッセージRRMが"チャネル割当パケット"に相当する。
さらに、上記においては、インターフェース111〜11jの各々は、同じ4個のチャネル数Ch1〜Ch4を有すると説明したが、この発明においては、これに限らず、インターフェース111〜11jは、相互に異なるチャネル(=2以上のチャネル)を有していてもよい。
さらに、上記においては、無線装置1がルーツノードとして決定された場合について説明したが、この発明においては、これに限らず、無線装置1以外の無線装置がルーツノードとして決定されてもよく、その場合、そのルーツノードとして決定された無線装置がルーツアナウンスメッセージを作成してブロードキャストすることによって、ルーツノードとして決定された無線装置が最上位の階層に配置された階層構造が構築されるとともに、受信チャネルが複数の無線装置に割り当てられる。
さらに、この発明においては、チャネル割当処理とは、階層構造に配置された無線装置に受信チャネルを割り当てることおよび/または階層が同じである無線装置間における受信チャネルの再割当を行なうことを言う。そして、受信チャネルの再割当は、受信チャネルが最上位の階層に所属すべき無線装置から最下位の階層に所属すべき無線装置へ向かって階層順に割り当てられた後に実行される。
さらに、この発明においては、無線装置1〜13の各々は、停止する無線装置であっても、移動可能な無線装置であってもよい。そして、無線通信システム100は、停止する無線装置と、移動可能な無線装置とによって構成されていてもよい。
さらに、無線通信システム100は、1個のインターフェースを有する無線装置と、複数のインターフェースを有する無線装置とによって構成されてもいてもよい。
さらに、この発明においては、スキャンメッセージSCは、「チャネル割当要求パケット」を構成し、スキャンリプライメッセージSCRMは、「チャネル割当要求応答パケット」を構成する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1〜13 無線装置、100 無線通信システム、110 アンテナ、111〜11j インターフェース、120 チャネル割当手段、130 ルーティングテーブル、140 タイマー、150 通信手段。