本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線ネットワークの概念図である。図1を参照して、この発明の実施の形態による無線ネットワーク100は、無線装置1〜12を備える。
無線装置1〜12は、無線ネットワーク100のユーザによってルーツノードが指定されると、その指定されたルーツノードがルーツアナウンスメッセージをブロードキャストすることによって階層構造を構築する。たとえば、無線装置1がルーツノードに指定されると、無線装置1は、ルーツアナウンスメッセージを無線ネットワーク100内でブロードキャストすることによって、無線装置1〜12は、階層構造を構築する。
また、無線装置1〜12のうち、たとえば、映像データ等のサービスを提供しようとする無線装置(サーバー)は、映像データ等の提供を受けようとする複数の無線装置(クライアント)へ階層構造を用いて映像データ等をマルチキャストする。
階層構造を構築する具体的な方法および各クライアントノードへ映像データ等をマルチキャストする具体的な方法については、後述する。
なお、この発明においては、「ルーツノード」とは、階層構造に配置された複数の無線装置のうち、最上位に配置された無線装置を言い、1個の無線装置からなる。
図2は、図1に示す無線装置1の構成を示す概略図である。図2を参照して、無線装置1は、アンテナ110と、インターフェース120と、通信制御手段130と、通信手段140と、ルーティングテーブル150と、マルチキャストテーブル160と、タイマー170とを含む。
アンテナ110は、無線通信空間からパケットを受信し、その受信したパケットをインターフェース120へ送信する。また、アンテナ110は、インターフェース120からパケットを受信し、その受信したパケットを無線通信空間へ送信する。
インターフェース120は、ルーツアナウンスメッセージRAM、ルーツリプライメッセージRRM、マルチキャストサービスメッセージMCAnnおよびマルチキャストテーブルメッセージMCTbl等の各種のメッセージを通信制御手段130から受信し、その受信したメッセージをアンテナ110へ送信する。
また、インターフェース120は、ルーツアナウンスメッセージRAM、ルーツリプライメッセージRRM、マルチキャストサービスメッセージMCAnnおよびマルチキャストテーブルメッセージMCTbl等の各種のメッセージをアンテナ110から受信し、その受信したメッセージを通信制御手段130へ送信する。
さらに、インターフェース120は、通信用のパケットを通信制御手段130から受信し、その受信したパケットをアンテナ110へ送信するとともに、通信用のパケットをアンテナ110から受信し、その受信したパケットを通信制御手段130へ送信する。
通信制御手段130は、ルーツアナウンスメッセージRAM等の各種のメッセージを通信手段140から受け、その受けたメッセージを送信する。
また、通信制御手段130は、マルチキャスト用のデータを通信手段140から受けると、その受けたデータのユニキャストを後述する方法によって行なう。
さらに、通信制御手段130は、インターフェース120から受けた各種のメッセージおよびデータを通信手段140へ出力する。
通信手段140は、電源(図示せず)がオンされ、無線ネットワーク100のユーザによって無線装置1がルーツノードに指定されると、後述するルーツアナウンスメッセージRAMを作成し、その作成したルーツアナウンスメッセージRAMを通信制御手段130へ送信する。
また、通信手段140は、通信制御手段130を介して、無線装置1が配置された階層よりも下位の階層に配置された無線装置からルーツリプライメッセージRRMを受信すると、その受信したルーツリプライメッセージRRMに基づいて、各無線装置を宛先とする経路をルーティングテーブル150に格納する。
さらに、通信手段140は、無線装置1がルーツノードでない場合、通信制御手段130を介して、無線装置1が属する階層よりも上位の階層に配置された無線装置からルーツアナウンスメッセージRAMを受信すると、その受信したルーツアナウンスメッセージRAMに基づいて、無線装置1が属する階層よりも上位の階層に配置された無線装置を宛先とする経路を計算し、その計算した経路をルーティングテーブル150に格納する。そして、通信手段140は、ルーツアナウンスメッセージRAMに対する応答メッセージであるルーツリプライメッセージRRMを作成して上位の階層に配置された無線装置へ送信するとともに、無線装置1が属する階層よりも下位の階層に配置された無線装置へルーツアナウンスメッセージRAMを転送する。
さらに、通信手段140は、無線装置1がルーツノードでない場合、通信制御手段130を介して、無線装置1が属する階層よりも下位の階層に配置された無線装置からルーツリプライメッセージRRMを受信すると、その受信したルーツリプライメッセージRRMに基づいて、無線装置1が属する階層よりも下位の階層に配置された無線装置を宛先とする経路を計算し、その計算した経路をルーティングテーブル150に格納する。そして、通信手段140は、無線装置1が所属する階層よりも上位の階層に配置された無線装置へルーツリプライメッセージRRMを転送する。
さらに、通信手段140は、無線装置1が映像データを提供するサーバである場合、階層構造が構築されると、マルチキャストアドレス(MA)を発生し、その発生したマルチキャストアドレスを含むマルチキャストサービスメッセージMCAnnを生成する。そして、通信手段140は、その生成したマルチキャストサービスメッセージMCAnnを無線ネットワーク100内でフラッディングする。
さらに、通信手段140は、無線装置1が映像データの提供を受けたいクライアントである場合、サーバからマルチキャストサービスメッセージMCAnnを受信すると、無線装置1のアドレスを含むマルチキャスト応答メッセージMCRepを生成し、その生成したマルチキャスト応答メッセージMCRepをマルチキャストサービスメッセージMCAnnの送信元(=サーバ)へ送信する。そして、通信手段140は、その受信したマルチキャストサービスメッセージMCAnnに含まれるマルチキャストアドレスと、そのマルチキャストアドレスに対応付けられた無線装置1のアドレスとを含むマルチキャストテーブル160を作成する。
さらに、通信手段140は、他の無線装置からマルチキャスト応答メッセージMCRepを受信すると、その受信したマルチキャスト応答メッセージMCRepの送信元をマルチキャストテーブル160に追加する。
さらに、通信手段140は、無線装置1がクライアントから離脱したいとき、無線装置1のアドレスを含む離脱メッセージMCPrnを生成し、その生成した離脱メッセージMCPrnを無線ネットワーク100内でフラッディングする。
さらに、通信手段140は、他の無線装置から離脱メッセージMCPrnを受けると、その受けた離脱メッセージMCPrnに含まれるアドレスをマルチキャストテーブル160から削除する。
さらに、通信手段140は、無線装置1がルーツノードである場合、マルチキャストテーブル160に登録されている無線装置のうちで、ルーツアナウンスメッセージRAMに対するルーツリプライメッセージRRMを送信しない無線装置を検知すると、ルーツリプライメッセージRRMを送信しない無線装置のアドレスをマルチキャストテーブル160から削除し、その削除後のマルチキャストテーブル160を含むマルチキャストテーブルメッセージMCTblを作成してフラッディングする。
さらに、通信手段140は、他の無線装置からマルチキャストテーブルメッセージMCTblを受信すると、その受信したマルチキャストテーブルメッセージMCTblに含まれるマルチキャストテーブル160によって無線装置1のマルチキャストテーブル160を更新する。
さらに、通信手段140は、無線装置1がルーツノードである場合、無線ネットワーク100に新たに参加した無線装置を検知すると、無線装置1が保持しているマルチキャストテーブル160を含むマルチキャストテーブルメッセージMCTblを生成し、その生成したマルチキャストテーブルメッセージMCTblを新たに参加した無線装置へユニキャストする。
さらに、通信手段140は、無線装置1が無線ネットワーク100へ新たに参加した無線装置である場合、ルーツノードからマルチキャストテーブルメッセージMCTblを受信すると、その受信したマルチキャストテーブルメッセージMCTblに含まれるマルチキャストテーブル160によって無線装置1のマルチキャストテーブル160を作成する。
ルーティングテーブル150は、各無線装置を宛先とする経路を格納する。マルチキャストテーブル160は、マルチキャストアドレスと、マルチキャストアドレスに対応付けられたクライアントのアドレスとからなる。タイマー170は、通信手段140からの指示によって時間を計測する。
なお、図1に示す無線装置2〜12の各々も、図2に示す無線装置1の構成と同じ構成からなる。
図3は、図2に示すルーティングテーブル150の構成を示す概念図である。図3を参照して、ルーティングテーブル150は、送信先(dst)と、次の無線装置(next hop)と、メトリック(metric)と、シーケンス番号(sequence number)と、関係(relation)と、階層ID(class ID)とからなる。そして、送信先、次の無線装置、メトリック、シーケンス番号、関係および階層IDは、相互に対応付けられる。
送信先は、無線通信の相手先のIPアドレスを示す。次の無線装置は、送信元と送信先との間で無線通信が行なわれるときに、各無線装置がパケットを送信する隣りの無線装置のIPアドレスを示す。メトリックは、送信先の無線装置までのホップ数を示す。シーケンス番号は、各経路の生成順を表す数値からなり、たとえば、より大きい数値は、経路が新しいことを示す。関係は、各無線装置と送信先の無線装置との間の関係を示し、“ルーツノード(root)”、“親(parent)”、“子(children)”、“兄弟(silbing)”および“不明(unknown)”のいずれかからなる。階層IDは、送信先の無線装置が配置される階層を示す。
図4は、キャッシュテーブルの構成を示す概念図である。図4を参照して、キャッシュテーブルCT(Cache Table)は、図3に示すルーティングテーブル150と同じ構成からなり、各無線装置が無線通信を行なうときに逐一作成されるものである。そして、この発明においては、キャッシュテーブルCTは、通信手段140によって無線通信ごとに作成される。
図5は、マルチキャストテーブルの構成を示す概念図である。図5を参照して、マルチキャストテーブル150は、マルチキャストアドレスと、クライアントの無線装置とを含む。マルチキャストアドレスおよびクライアントの無線装置は、相互に対応付けられる。
マルチキャストアドレスは、各サービス(たとえば、映像データ)に対応して設定されるアドレスであり、サーバによって無線ネットワーク100内でフラッディングされる。
クライアントの無線装置は、映像データの提供を受けたい無線装置のIPアドレスからなる。
図6は、ルーツアナウンスメッセージRAMの構成を示す概念図である。図6を参照して、ルーツアナウンスメッセージRAMは、IPヘッダIPHと、アナウンスメッセージAMとからなる。
IPヘッダIPHは、バージョン(version)と、ヘッダ長(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)と、ルーツIPアドレス(root IP address)とからなる。
メッセージタイプ、メッセージ長、ホップ数、TTLおよび階層IDの各々は、8ビットからなり、シーケンス番号は、16ビットからなり、ルーツIPアドレスは、32ビットからなる。
メッセージタイプは、アナウンスメッセージAMの種類を示す。メッセージ長は、アナウンスメッセージAMの長さを示す。ホップ数は、転送回数を示し、アナウンスメッセージAMを受信した無線装置によって“1”ずつインクリメントされる。
TTLは、アナウンスメッセージAMの生存時間を示し、アナウンスメッセージAMの最大転送回数(通常は、255)が格納される。シーケンス番号は、アナウンスメッセージAMの生成順を表す数値からなり、たとえば、より大きい数値は、アナウンスメッセージAMが新しいことを示す。そして、シーケンス番号は、ルーツノードによって管理される。
階層IDは、アナウンスメッセージAMの送信元の無線装置が所属する階層を示す数値からなる。そして、ルーツノードの階層IDは、“1”である。ルーツIPアドレスは、ルーツノードのIPアドレスを示す。
図7は、ルーツリプライメッセージRRMの構成を示す概念図である。図7を参照して、ルーツリプライメッセージRRMは、IPヘッダIPHと、リプライメッセージRMとからなる。IPヘッダIPHについては、図6において説明したとおりである。
リプライメッセージRMは、メッセージタイプ(message type)と、メッセージ長(message length)と、ホップ数(hop count)と、TTLと、シーケンス番号(sequence number)と、階層ID(class ID)と、リーフIPアドレス(leaf IP address)とからなる。
メッセージタイプ、メッセージ長、ホップ数、TTLおよび階層IDは、8ビットからなり、シーケンス番号は、16ビットからなり、リーフIPアドレスは、32ビットからなる。
メッセージタイプは、リプライメッセージRMの種類を示す。メッセージ長は、リプライメッセージRMの長さを示す。ホップ数は、転送回数を示し、リプライメッセージRMを受信した無線装置によって“1”つづインクリメントされる。
TTLは、リプライメッセージRMの生存時間を示し、リプライメッセージRMの最大転送回数(通常は、255)が格納される。シーケンス番号は、リプライメッセージRMの生成順を表す数値からなり、たとえば、より大きい数値は、リプライメッセージRMが新しいことを示す。そして、シーケンス番号は、ルーツノードによって管理される。
階層IDは、リプライメッセージRMの送信元の無線装置が所属する階層を示す数値からなる。リーフIPアドレスは、リプライメッセージRMを生成した無線装置のIPアドレスを示す。
(階層構造の構築)
図1に示す無線ネットワーク100における階層構造の構築について説明する。なお、以下においては、無線装置1がルーツノードであるものとして説明する。
図8は、図1に示す無線ネットワーク100における階層構造の一例を示す図である。無線装置1がルーツノードである場合、複数の無線装置1〜12は、たとえば、図8に示す階層構造に配置される。すなわち、無線装置1は、階層1に配置され、無線装置2,4は、階層1よりも下位の階層である階層2に配置され、無線装置1と直接無線通信を行なう。また、無線装置3,5,10,11は、階層2よりも下位の階層である階層3に配置される。そして、無線装置3,5は、無線装置2と直接無線通信を行ない、無線装置10,11は、無線装置4と直接無線通信を行なう。さらに、無線装置6,7,9,12は、階層3よりも下位の階層である階層4に配置される。そして、無線装置6は、無線装置5と直接無線通信を行ない、無線装置7,9は、無線装置3と直接無線通信を行ない、無線装置12は、無線装置10と直接無線通信を行なう。さらに、無線装置8は、階層4よりも下位の階層である階層5に配置され、無線装置6と直接無線通信を行なう。
この場合、無線装置1は、無線装置2,4の“親(parent)”であり、無線装置2,4は、無線装置1の“子(children)”である。また、無線装置2は、無線装置3,5の“親(parent)”であり、無線装置3,5は、無線装置2の“子(children)”である。さらに、無線装置3は、無線装置7,9の“親(parent)”であり、無線装置7,9は、無線装置3の“子(children)”である。さらに、無線装置5は、無線装置6の“親(parent)”であり、無線装置6は、無線装置5の“子(children)”である。さらに、無線装置6は、無線装置8の“親(parent)”であり、無線装置8は、無線装置6の“子(children)”である。
さらに、無線装置4は、無線装置10,11の“親(parent)”であり、無線装置10,11は、無線装置4の“子(children)”である。さらに、無線装置10は、無線装置12の“親(parent)”であり、無線装置12は、無線装置10の“子(children)”である。さらに、無線装置2,4は、相互に“兄弟(silbing)”であり、無線装置3,5,10,11は、相互に“兄弟(silbing)”であり、無線装置6,7,9,12は、相互に“兄弟(silbing)”である。
図8に示すように、第n+1(nは正の整数)階層に配置された1個以上の無線装置が、上位の階層(=第n階層)に所属する1個の無線装置と直接無線通信を行なえるように配置された階層構造を「木構造」という。すなわち、この発明においては、“親”が1個になるように複数の無線装置が階層状に配置された階層構造を「木構造」という。
次に、図8に示す階層構造を構築する具体的な方法について説明する。なお、以下においては、同じ階層に所属する無線装置同士は、相互に無線通信を行なわないことを前提として説明する。
図9は、ルーツノードとしての無線装置1が作成するルーツアナウンスメッセージRAM1を示す概念図である。また、図10は、ルーツノードとしての無線装置1がルーツアナウンスメッセージRAM1の送信時に作成するキャッシュテーブルの概念図である。さらに、図11は、ルーツノードとしての無線装置1がルーツアナウンスメッセージRAM1の送信時に作成するルーティングテーブルの概念図である。
さらに、図12は、ルーツアナウンスメッセージRAM1を受信した無線装置2が作成するキャッシュテーブルの概念図である。さらに、図13は、ルーツアナウンスメッセージRAM1を受信した無線装置2が作成するルーティングテーブルの概念図である。さらに、図14は、ルーツアナウンスメッセージRAM1を受信した無線装置2が作成するルーツリプライメッセージRRM1の概念図である。さらに、図15は、ルーツリプライメッセージRRM1を受信した無線装置1が作成するキャッシュテーブルの概念図である。さらに、図16は、ルーツリプライメッセージRRM1を受信した無線装置1が作成するルーティングテーブルの概念図である。
無線ネットワーク100のユーザによって、無線装置1がルーツノードとして決定されると、無線装置1の通信手段140は、図10に示すキャッシュテーブルCT1を作成するとともに、キャッシュテーブルCT1と同じ構成からなるルーティングテーブル150−1を作成する(図11参照)。この場合、無線装置1の通信手段140は、無線装置1の下位に存在する無線装置を知らないので、無線装置1宛てのキャッシュテーブルCT1およびルーティングテーブル150−1を作成する。
そして、無線装置1の通信手段140は、図9に示すルーツアナウンスメッセージRAM1を作成し、その作成したルーツアナウンスメッセージRAM1をブロードキャストする。
そうすると、無線装置2の通信手段140は、無線装置1からブロードキャストされたルーツアナウンスメッセージRAM1をアンテナ110およびインターフェース120を介して受信する。そして、無線装置2の通信手段140は、受信したルーツアナウンスメッセージRAM1に基づいて、図12に示すキャッシュテーブルCT2を作成するとともに、図13に示すルーティングテーブル150−2を作成する。ルーティングテーブル150−2における送信先=IPadd1、次の無線装置=IPadd1、シーケンス番号=1および階層=1は、ルーツアナウンスメッセージRAM1から抽出されたものであり、メトリック=1は、ルーツアナウンスメッセージRAM1のホップ数=0に基づいて求められたものであり、関係=rootは、ルーツアナウンスメッセージRAM1の送信元IPアドレス=IPadd1とルーツIPアドレス=IPadd1とが一致していることに基づいて求められたものである。
その後、無線装置2の通信手段140は、図14に示すルーツリプライメッセージRRM1を作成する。この場合、無線装置2の通信手段140は、ルーツノードである無線装置1からルーツアナウンスメッセージRAM1を直接受信したので、“2”を階層IDに格納してルーツリプライメッセージRRM1を作成する。そして、無線装置2の通信手段140は、その作成したルーツリプライメッセージRRM1を無線装置1へ送信する。
無線装置1の通信手段140は、無線装置2から送信されたルーツリプライメッセージRRM1を受信し、その受信したルーツリプライメッセージRRM1に基づいて、図15に示すキャッシュテーブルCT1−1および図16に示すルーティングテーブル150−1−1を作成し、無線装置1から無線装置2への経路を登録する。この場合、無線装置1の通信手段140は、階層ID=2である無線装置2からルーツリプライメッセージRRM1を直接受信したので、キャッシュテーブルCT1−1およびルーティングテーブル150−1−1の“関係”に“childrenn”を格納し、“階層ID”に“2”を格納し、“メトリック”に“1”を格納し、“送信先”および“次の無線装置”に“IPadd2”を格納する。また、無線装置1の通信手段140は、ルーツリプライメッセージRRM1のシーケンス番号=1を抽出して、キャッシュテーブルCT1−1およびルーティングテーブル150−1−1の“シーケンス番号”に“1”を格納する。
この段階で、図8に示す無線装置1−無線装置2間の階層構造が構築される。
図17は、中継ノードとしての無線装置2が作成するルーツアナウンスメッセージRAM2を示す概念図である。また、図18は、転送されたルーツアナウンスメッセージRAM2を受信した無線装置3,5が作成するキャッシュテーブルの概念図である。さらに、図19は、転送されたルーツアナウンスメッセージRAM2を受信した無線装置3,5が作成するルーティングテーブルの概念図である。
無線装置2の通信手段140は、図17に示すルーツアナウンスメッセージRAM2を作成し、その作成したルーツアナウンスメッセージRAM2をブロードキャストする。この場合、無線装置2の通信手段140は、ルーツアナウンスメッセージRAM1の“送信元IPアドレス”を“IPadd1”から“IPadd2”に変え、“ホップ数”を“0”から“1”に変え、“階層ID”を“1”から “2”(=無線装置2の階層)に変え、“TTL”を“255”から“254”に変えてルーツアナウンスメッセージRAM2を作成する。
そして、無線装置3,5の各々において、通信手段140は、無線装置2から送信されたルーツアナウンスメッセージRAM2を受信し、その受信したルーツアナウンスメッセージRAM2に基づいて、図18に示すキャッシュテーブルCT3−1,CT3−2および図19に示すルーティングテーブル150−3−1,150−3−2を作成し、自己が搭載された無線装置(無線装置3,5のいずれか)から無線装置1,2への経路を登録する。
この場合、キャッシュテーブルCT3−1およびルーティングテーブル150−3−1は、無線装置3において作成され、キャッシュテーブルCT3−2およびルーティングテーブル150−3−2は、無線装置5において作成される。
また、無線装置3の通信手段140は、ルーツアナウンスメッセージRAM2のルーツIPアドレス=IPadd1を参照して、無線装置1がルーツノードであることを検知する。さらに、無線装置3の通信手段140は、送信元IPアドレス=IPadd2、ホップ数=1、TTL=254および階層ID=2を参照して、ルーツアナウンスメッセージRAM2を階層=2に属する無線装置2から受信したこと、無線装置1までのホップ数(=メトリック)が“2”であること、無線装置2が無線装置3の“親”であること、および無線装置3が階層=3に属することを検知する。そして、無線装置3の通信手段140は、これらの検知した事項に基づいて、キャッシュテーブルCT3−1およびルーティングテーブル150−3−1を作成する。無線装置5の通信手段140も、無線装置3の通信手段140と同じ方法によってキャッシュテーブルCT3−2およびルーティングテーブル150−3−2を作成する。
図20は、ルーツアナウンスメッセージRAM2を受信した無線装置3が作成するルーツリプライメッセージRRM2の概念図である。また、図21は、ルーツリプライメッセージRRM2を受信した無線装置2が作成するキャッシュテーブルの概念図である。さらに、図22は、ルーツリプライメッセージRRM2を受信した無線装置2が作成するルーティングテーブルの概念図である。
さらに、図23は、ルーツリプライメッセージRRM2を受信した無線装置2が作成するルーツリプライメッセージRRM3の概念図である。また、図24は、ルーツリプライメッセージRRM3を受信した無線装置1が作成するキャッシュテーブルの概念図である。さらに、図25は、ルーツリプライメッセージRRM3を受信した無線装置1が作成するルーティングテーブルの概念図である。
そして、無線装置3の通信手段140は、図20に示すルーツリプライメッセージRRM2を作成し、その作成したルーツリプライメッセージRRM2を無線装置2へ送信する。また、無線装置5の通信手段140は、ルーツリプライメッセージRRM2の“送信元IPアドレス”を“IPadd3”から“IPadd5”に変え、“リーフIPアドレスを“IPadd3”から“IPadd5”に変えたルーツリプライメッセージRRMを作成し、その作成したルーツリプライメッセージRRMを無線装置2へ送信する。
無線装置2の通信手段140は、無線装置3から送信されたルーツリプライメッセージRRM2と、無線装置5から送信されたルーツリプライメッセージRRMとを受信する。そして、無線装置2の通信手段140は、その受信した2つのルーツリプライメッセージRRM2,RRMに基づいて、図21に示すキャッシュテーブルCT2−1および図22に示すルーティングテーブル150−2−1を作成し、無線装置2から無線装置3,5への経路を登録する。
この場合、無線装置2の通信手段140は、ルーツリプライメッセージRRM1(図14参照)を受信した無線装置1の通信手段140と同じ方法によってキャッシュテーブルCT2−1およびルーティングテーブル150−2−1を作成する。
その後、無線装置2の通信手段140は、図23に示すルーツリプライメッセージRRM3を作成し、その作成したルーツリプライメッセージRRM3を無線装置1へ送信する。
そして、無線装置1の通信手段140は、無線装置2から送信されたルーツリプライメッセージRRM3を受信し、その受信したルーツリプライメッセージRRM3に基づいて、図24に示すキャッシュテーブルCT1−2を作成し、無線装置1から無線装置3,5への経路をルーティングテーブル150−1−1(図16参照)に追加して図25に示すルーティングテーブル150−1−2を作成する。
この段階で、無線装置1−無線装置2−無線装置3,5からなる階層構造が構築される。
以後、上述した動作を繰り返し実行し、無線装置1〜12は、図8に示す階層構造を構築する。そして、図8に示す階層構造が構築された段階においては、ルーツノードである無線装置1は、無線装置2〜12の各々を送信先とする経路をルーティングテーブル150に格納している。また、無線装置2は、無線装置1,3,5〜9の各々を送信先とする経路をルーティングテーブル150に格納している。さらに、無線装置3は、無線装置1,2,7,9の各々を送信先とする経路をルーティングテーブル150に格納しており、無線装置5は、無線装置1,2,6,8の各々を送信先とする経路をルーティングテーブル150に格納している。無線装置4,6〜12についても同様である。
すなわち、各無線装置1〜12は、自己からルーツノード(=無線装置1)までの経路上に存在する無線装置と、自己を経由してパケットをルーツノード(=無線装置1)と送受信する無線装置とを送信先とする経路をルーティングテーブル150に格納しており、自己と兄弟関係にある無線装置にアクセス可能な無線装置を送信先とする経路をルーティングテーブル150に格納することはない。
ルーツノードである無線装置1は、上述した方法によって図8に示す階層構造が構築された後、周期的(たとえば、1秒間隔)にルーツアナウンスメッセージRAMを生成してブロードキャストし、上述した方法によって階層構造を構築し直す。つまり、ルーツノードである無線装置1は、階層構造を周期的に更新する。
引き続いて、図8に示す階層構造における経路を用いてサーバからクライアントノードへ映像データをマルチキャストする方法について説明する。
図26は、階層構造におけるサーバおよびクライアントを示す図である。また、図27から図33は、図26に示す階層構造におけるルーティングテーブル150の例を示す図である。さらに、図34は、マルチキャストテーブル160の具体例を示す図である。
図26を参照して、無線措置6が映像データを提供するサーバであり、無線装置3,4,11が映像データの提供を受けるクライアントである。そして、無線装置6は、図27に示すルーティングテーブル150−6−1を作成して保持しており、無線装置5は、図28に示すルーティングテーブル150−5−1を作成して保持しており、無線装置2は、図29に示すルーティングテーブル150−2−2を作成して保持しており、無線装置3は、図30に示すルーティングテーブル150−3−3を作成して保持している。また、無線装置1は、図31に示すルーティングテーブル150−1−3を作成して保持しており、無線装置4は、図32に示すルーティングテーブル150−4−1を作成して保持しており、無線装置11は、図33に示すルーティングテーブル150−11−1を作成して保持している。
このような状況において、無線装置6が映像データを提供したい場合、無線装置6の通信手段140は、映像データに対応したマルチキャストアドレスMA(=10)を発生し、その発生したマルチキャストアドレスMA(=10)と、自己のIPアドレスIPadd6とを含むマルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]を生成し、その生成したマルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]をフラッディングする。そして、無線装置6の通信手段140は、MA=10およびIPアドレスIPadd6をそれぞれマルチキャストアドレスおよびクライアントの欄に格納してマルチキャストテーブル160−1(図34の(a)参照)を作成する。
無線装置6からのマルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]は、図26に示す階層構造に従って無線装置1〜5,7〜12へ到達する。
なお、マルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]がフラッディングされる場合、複数の無線装置とリンクを有する無線装置2は、ルーティングテーブル150−2−2を参照して、マルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]の送信先を無線装置1,3と決定し、無線装置1へのマルチキャストサービスメッセージMCAnnのユニキャストを行ない、その後、無線装置3へのマルチキャストサービスメッセージMCAnnのユニキャストを行なうことによって無線装置1,3へマルチキャストサービスメッセージMCAnnを中継する。また、複数の無線装置とリンクを有する無線装置3,4も、同様にして、マルチキャストサービスメッセージMCAnnを無線装置6,7および無線装置10,11へそれぞれ中継する。この場合、無線装置3,4は、それぞれ、ルーティングテーブル150−3−3,150−4−1(図30,32参照)を参照して中継先である無線装置6,7および無線装置10,11をそれぞれ決定する。
このように、この発明におけるフラッディングとは、パケットを中継する各無線装置が中継先の個数に相当する回数だけパケットのユニキャストを繰り返し行なうことによってパケットを無線ネットワーク100内の全ての無線装置1〜12へ送信することを言う。なお、以下においては、「フラッディング」と言えば、この発明によるフラッディングを指すものとする。
無線装置1〜5,7〜12の通信手段140は、マルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]を受信すると、その受信したマルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]に基づいて、MA=10およびIPアドレスIPadd6をそれぞれマルチキャストアドレスおよびクライアントの欄に格納してマルチキャストテーブル160−1(図34の(a)参照)を作成する。
一方、マルチキャストサービスメッセージMCAnn=[IPadd6/MA=10]を受信した無線装置1〜5,7〜12のうち、映像データの提供を希望する無線装置3,4,11の通信手段140は、自己のアドレスを含むマルチキャスト応答メッセージMCRepを生成してフラッディングする。即ち、無線装置3の通信手段140は、マルチキャスト応答メッセージMCRep3=[IPadd3]を生成してフラッディングし、無線装置4の通信手段140は、マルチキャスト応答メッセージMCRep4=[IPadd4]を生成してフラッディングし、無線装置11の通信手段140は、マルチキャスト応答メッセージMCRep11=[IPadd11]を生成してフラッディングする。
そうすると、無線装置1,2,4〜12は、マルチキャスト応答メッセージMCRep3=[IPadd3]を無線装置3から受信し、無線装置1〜3,5〜12は、マルチキャスト応答メッセージMCRep4=[IPadd4]を無線装置4から受信し、無線装置1〜10,12は、マルチキャスト応答メッセージMCRep11=[IPadd11]を無線装置11から受信する。
すなわち、無線装置1,2,5〜10,12の通信手段140は、マルチキャスト応答メッセージMCRep3,4,11=[IPadd3],[IPadd4],[IPadd11]を受信し、無線装置3の通信手段140は、マルチキャスト応答メッセージMCRep4,11=[IPadd4],[IPadd11]を受信し、無線装置4の通信手段140は、マルチキャスト応答メッセージMCRep3,11=[IPadd3],[IPadd11]を受信し、無線装置11の通信手段140は、マルチキャスト応答メッセージMCRep3,4=[IPadd3],[IPadd4]を受信する。
そして、無線装置1,2,5〜10,12の通信手段140は、その受信したマルチキャスト応答メッセージMCRep3,4,11=[IPadd3],[IPadd4],[IPadd11]に含まれるIPアドレスIPadd3,IPadd4,IPadd11をマルチキャストテーブル160−1のクライアントの欄に追加してマルチキャストテーブル160−2(図34の(b)参照)を作成する。
また、無線装置3の通信手段140は、マルチキャスト応答メッセージMCRep4,11=[IPadd4],[IPadd11]に含まれるIPアドレスIPadd4,IPadd11と、無線装置3のIPアドレスIPadd3とをマルチキャストテーブル160−1のクライアントの欄に追加してマルチキャストテーブル160−2を作成する。
さらに、無線装置4の通信手段140は、マルチキャスト応答メッセージMCRep3,11=[IPadd3],[IPadd11]に含まれるIPアドレスIPadd3,IPadd11と、無線装置4のIPアドレスIPadd4とをマルチキャストテーブル160−1のクライアントの欄に追加してマルチキャストテーブル160−2を作成する。
さらに、無線装置11の通信手段140は、マルチキャスト応答メッセージMCRep3,4=[IPadd3],[IPadd4]に含まれるIPアドレスIPadd3,IPadd4と、無線装置11のIPアドレスIPadd11とをマルチキャストテーブル160−1のクライアントの欄に追加してマルチキャストテーブル160−2を作成する。
これによって、無線ネットワーク100内の全ての無線装置1〜12がマルチキャストテーブル160−2を共有する。
[データのマルチキャスト]
図35は、映像データをマルチキャストする方法を説明するための図である。無線装置1〜12の全てがマルチキャストテーブル160−2を共有すると、サーバである無線装置6の通信手段140は、マルチキャストテーブル160−2(図34の(b)参照)を参照して、映像データの受信を希望するクライアントが無線装置3,4,11であることを検知する。
そして、無線装置6の通信手段140は、マルチキャストアドレスMA=10をヘッダに含め、映像データをデータ領域に設定してデータMCData=[MA=10/映像データ]を作成する。
また、無線装置6の通信手段140は、ルーティングテーブル150−6−1(図27参照)を参照して、データMCDataを複数の無線装置3,4,11へ送信するための中継先を検出する。この場合、ルーティングテーブル150−6−1の送信先には、無線装置3,4,11のIPアドレスIPadd3,IPadd4,IPadd11が格納されていないので、無線装置6の通信手段140は、無線装置6の親である無線装置5をデータMCDataの中継先として検出する。そして、無線装置6の通信手段140は、データMCData=[Dst=IPadd5/Src=IPadd6/MA=10/映像データ]を通信制御手段130へ出力し、データMCData=[Dst=IPadd5/Src=IPadd6/MA=10/映像データ]を無線装置5へ送信するように通信制御手段130を制御する。
無線装置6の通信制御手段130は、通信手段140からの制御に従って、データMCData=[Dst=IPadd5/Src=IPadd6/MA=10/映像データ]を無線装置5へユニキャストする。この場合、無線装置6の通信制御手段130は、無線装置5からACKを受信しなければ、所定回数(=たとえば、10回)、データMCDataの再送制御を行なう。
無線装置5の通信手段140は、データMCData=[Dst=IPadd5/Src=IPadd6/MA=10/映像データ]を無線装置6から受信し、その受信したデータMCData=[Dst=IPadd5/Src=IPadd6/MA=10/映像データ]のMA=10を参照して、データMCDataがマルチキャストされるデータであることを検知する。そして、無線装置5の通信手段140は、マルチキャストテーブル160−2を参照して、マルチキャストアドレスMA=10に対応するアドレスIPadd6,IPadd3,IPadd4,IPadd11を検出し、データMCDataの受信を希望する無線装置が無線装置3,4,11であることを検知する。この場合、無線装置6は、データMCDataの送信元であるので、無線装置5の通信手段140は、データMCDataの受信を希望する無線装置から無線装置6を除外する。
そうすると、無線装置5の通信手段140は、ルーティングテーブル150−5−1(図28参照)を参照して、データMCDataを複数の無線装置3,4,11へ送信するための中継先を検出する。この場合、ルーティングテーブル150−5−1の送信先には、無線装置3,4,11のIPアドレスIPadd3,IPadd4,IPadd11が格納されていないので、無線装置5の通信手段140は、無線装置5の親である無線装置2をデータMCDataの中継先として検出する。そして、無線装置5の通信手段140は、データMCData=[Dst=IPadd5/Src=IPadd6/MA=10/映像データ]をデータMCData=[Dst=IPadd2/Src=IPadd6/MA=10/映像データ]へ更新し、その更新したデータMCData=[Dst=IPadd2/Src=IPadd6/MA=10/映像データ]を通信制御手段130へ出力し、データMCData=[Dst=IPadd2/Src=IPadd6/MA=10/映像データ]を無線装置2へ送信するように通信制御手段130を制御する。
そうすると、無線装置5の通信制御手段130は、通信手段140からの制御に従って、データMCData=[Dst=IPadd2/Src=IPadd6/MA=10/映像データ]を無線装置2へユニキャストする。この場合も、無線装置5の通信制御手段130は、無線装置2からACKを受信しなければ、所定回数(=たとえば、10回)、データMCDataの再送制御を行なう。
無線装置2の通信手段140は、データMCData=[Dst=IPadd2/Src=IPadd6/MA=10/映像データ]を無線装置5から受信し、その受信したデータMCData=[Dst=IPadd2/Src=IPadd6/MA=10/映像データ]のMA=10を参照して、データMCDataがマルチキャストされるデータであることを検知する。
そして、無線装置2の通信手段140は、マルチキャストテーブル160−2を参照して、マルチキャストアドレスMA=10に対応するアドレスIPadd6,IPadd3,IPadd4,IPadd11を検出し、データMCDataの受信を希望する無線装置が無線装置3,4,11であることを検知する。この場合も、無線装置6は、データMCDataの送信元であるので、無線装置2の通信手段140は、データMCDataの受信を希望する無線装置から無線装置6を除外する。
そうすると、無線装置2の通信手段140は、ルーティングテーブル150−2−2(図29参照)を参照して、データMCDataを複数の無線装置3,4,11へ送信するための中継先を検出する。この場合、ルーティングテーブル150−2−2の送信先には、無線装置3のIPアドレスIPadd3が格納されているので、無線装置2の通信手段140は、無線装置3へデータMCDataを送信するときの次の無線装置として無線装置3を検出する。
また、ルーティングテーブル150−2−2の送信先には、無線装置4,11のIPアドレスIPadd4,IPadd11が格納されていないので、無線装置2の通信手段140は、無線装置2の親である無線装置1をデータMCDataの中継先として検出する。この場合、無線装置2の通信手段140は、データMCDataを無線装置5から受信したので、無線装置5を中継先として検出することはない。
そして、無線装置2の通信手段140は、データMCData=[Dst=IPadd2/Src=IPadd6/MA=10/映像データ]をデータMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]に更新し、その更新したデータMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]をを通信制御手段130へ出力し、データMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]を無線装置1,3へ送信するように通信制御手段130を制御する。
そうすると、無線装置2の通信制御手段130は、データMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]を無線装置3へユニキャストし、その後、データMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]を無線装置1へユニキャストする。つまり、無線装置2の通信制御手段130は、データMCDataを中継すべき中継先の個数に相当する回数分だけ、データMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]のユニキャストを繰り返し行なう。この場合、無線装置2の通信制御手段130は、無線装置1または無線装置3からACKを受信しなければ、所定回数(=たとえば、10回)、データMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]の再送制御を行なう。
そして、無線装置3の通信手段140は、無線装置2からデータMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]を受信し、映像データを取得する。
一方、無線装置1の通信手段140も、無線装置2からデータMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]を受信し、その受信したデータMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]のMA=10を参照して、データMCDataがマルチキャストされるデータであることを検知する。
そして、無線装置1の通信手段140は、マルチキャストテーブル160−2を参照して、マルチキャストアドレスMA=10に対応するアドレスIPadd6,IPadd3,IPadd4,IPadd11を検出し、データMCDataの受信を希望する無線装置が無線装置3,4,11であることを検知する。この場合も、無線装置6は、データMCDataの送信元であるので、無線装置1の通信手段140は、データMCDataの受信を希望する無線装置から無線装置6を除外する。
そうすると、無線装置1の通信手段140は、ルーティングテーブル150−1−3(図31参照)を参照して、データMCDataを複数の無線装置3,4,11へ送信するための中継先を検出する。
この場合、無線装置1の通信手段140は、データMCDataを無線装置2から受信し、かつ、無線装置3へパケットを送信するには無線装置2を経由すべきことを検知するので、無線装置3へのデータMCDataの送信は、既に完了していることを認識する。したがって、無線装置1の通信手段140は、データMCDataを無線装置4,11へ送信すればよいことを検知する。
そして、無線装置1の通信手段140は、ルーティングテーブル150−1−3を参照して、データMCDataを無線装置4,11へ送信するには、データMCDataを無線装置4へ送信すればよいことを検知する。
そうすると、無線装置1の通信手段140は、データMCData=[Dst=IPadd1,IPadd3/Src=IPadd6/MA=10/映像データ]をデータMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]に更新し、その更新したデータMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]を通信制御手段130へ出力し、データMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]を無線装置4へ送信するように通信制御手段130を制御する。
そして、無線装置1の通信制御手段130は、通信手段140からの制御に従って、データMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]を無線装置4へユニキャストする。この場合も、無線装置1の通信制御手段130は、無線装置4からACKを受信しなければ、所定回数(=たとえば、10回)、データMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]の再送制御を行なう。
無線装置4の通信手段140は、データMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]を無線装置1から受信し、その受信したデータMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]のMA=10を参照して、データMCDataがマルチキャストされるデータであることを検知する。また、無線装置4の通信手段140は、データMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]から映像データを取り出し、映像データを取得する。
そして、無線装置4の通信手段140は、マルチキャストテーブル160−2を参照して、マルチキャストアドレスMA=10に対応するアドレスIPadd6,IPadd3,IPadd4,IPadd11を検出し、データMCDataの受信を希望する無線装置が無線装置3,4,11であることを検知する。この場合も、無線装置6は、データMCDataの送信元であるので、無線装置4の通信手段140は、データMCDataの受信を希望する無線装置から無線装置6を除外する。また、無線装置4の通信手段140は、データMCDataを無線装置1から受信したので、無線装置11のみへデータMCDataを送信すればよいことを検知する。
そして、無線装置4の通信手段140は、ルーティングテーブル150−4−1(図32参照)を参照して、データMCDataを無線装置11へ送信するには、無線装置11を中継先とすればよいことを検知する。
そうすると、無線装置4の通信手段140は、データMCData=[Dst=IPadd4/Src=IPadd6/MA=10/映像データ]をデータMCData=[Dst=IPadd11/Src=IPadd6/MA=10/映像データ]に更新し、その更新したデータMCData=[Dst=IPadd11/Src=IPadd6/MA=10/映像データ]を通信制御手段130へ出力し、データMCData=[Dst=IPadd11/Src=IPadd6/MA=10/映像データ]を無線装置11へ送信するように通信制御手段130を制御する。
無線装置4の通信制御手段130は、通信手段140からの制御に従って、データMCData=[Dst=IPadd11/Src=IPadd6/MA=10/映像データ]を無線装置11へユニキャストする。この場合も、無線装置4の通信制御手段130は、無線装置11からACKを受信しなければ、所定回数(=たとえば、10回)、データMCData=[Dst=IPadd11/Src=IPadd6/MA=10/映像データ]の再送制御を行なう。
無線装置11の通信手段140は、無線装置4から、データMCData=[Dst=IPadd11/Src=IPadd6/MA=10/映像データ]を受信し、映像データを取得する。
これによって、無線装置6(=サーバ)から複数の無線装置3,4,11(=複数のクライアント)へのデータMCDataのマルチキャストが完了する。
上述したように、この発明においては、データMCDataを中継する無線装置2は、データMCDataを中継すべき無線装置が複数個(=無線装置1,3)であれば、その複数の無線装置1,3の各々へデータMCDataをユニキャストすることによって、データMCDataを複数の無線装置1,3へ送信する。そして、このユニキャストにおいては、無線装置2は、無線装置1,3からACKを受信しなければ、データMCDataの再送制御を行なう。
図36は、この発明によるマルチキャスト方法を説明するためのフローチャートである。
図36を参照して、一連の動作が開始されると、データの提供元である無線装置6は、上述したマルチキャストアドレスMAを含むデータを生成して送信する(ステップS1)。
そして、無線装置5は、無線装置6からデータを受信し、その受信したデータ中のマルチキャストアドレスMAを検知する(ステップS2)。
その後、無線装置5は、マルチキャストテーブル160−2を参照して、その検知したマルチキャストアドレスMAに対応するIPアドレスIPadd6,IPadd3,IPadd4,IPadd11を検出する(ステップS3)。
引き続いて、無線装置5は、ルーティングテーブル150−5−1を参照して、IPアドレスIPadd3,IPadd4,IPadd11に基づいて、データを無線装置3,4,11へ送信するためのm個の無線装置(=無線装置2)を検出する(ステップS4)。
さらに、無線装置5は、m個の無線装置(=無線装置2)のいずれかへのデータのユニキャストを再送制御を行ないながた実行する(ステップS5)。
さらに、無線装置5は、m個の無線装置が2個以上であるとき、m個の無線装置の中で送信先を変えながらステップS5をm−1回繰り返し実行する(ステップS6)。
そして、無線装置2,1,4は、無線装置5と同じ方法によってデータを順次中継する(ステップS7)。
そうすると、無線装置3,4,11は、データを受信し、映像データを取得する(ステップS8)。
これによって、一連の動作が終了する。
なお、無線装置5は、データを無線装置2のみへ中継するため、実際には、ステップS6を実行しないが、無線装置2は、データを無線装置1,3へ中継するので、ステップS6を実行する。また、ステップS2〜ステップS6は、この発明によるマルチキャスト方式を用いてデータを中継するステップを構成する。
図37は、この発明によるマルチキャスト方法を用いた場合の通信特性のシミュレーション結果を示す図である。図37の(a)は、データの配信率とクライアント数との関係を示し、図37の(b)は、遅延とクライアント数との関係を示し、図37の(c)は、ホップ数とクライアント数との関係をす。
シミュレーションは、上述したマルチキャスト方法をNS−2のシミュレータ上のネットワーク層に実装して行なわれた。そして、36台の無線装置を30m間隔で150m×150mの範囲に格子状に並べ、角に配置された無線装置をルーツノードとした。また、MAC層には、IEEEE802.11aを設定し、通信速度をペイロード54Mbps、ヘッダおよび制御パケットを6Mbpsとして、ホワイトノイズだけの状態での通信可能距離と、キャリアセンス可能な距離を、それぞれ、約44mおよび約77mとした。
なお、図37の(a)〜(c)においては、比較例として、MAODVプロトコル、AODVプロトコルおよび上述した階層構造を用いたユニキャストによる通信方法(TBR unicast)を用いた場合の結果が示されている。また、図37の(a)〜(c)においては、この発明による方法は、“TBR multicast”と記されている。
この発明による方法を用いた場合(TBR multicast)の配信率は、MAODVおよびAODVを用いた場合よりも高い(図37の(a)参照)。
また、この発明による方法を用いた場合(TBR multicast)の遅延は、MAODVおよびAODVを用いた場合よりも小さく、MAODVに対しては、約3分の1以下になっている(図37の(b)参照)。
さらに、この発明による方法を用いた場合(TBR multicast)のホップ数は、MAODVおよびAODVを用いた場合よりも小さく、MAODVに対しては、約2分の1になっている(図37の(c)参照)。
また、図38は、この発明によるマルチキャスト方法を用いた場合の通信特性の他のシミュレーション結果を示す図である。図38の(a)は、データの配信率とクライアント数との関係を示し、図38の(b)は、遅延とクライアント数との関係を示し、図38の(c)は、ホップ数とクライアント数との関係をす。
なお、図38は、N個のサーバとN個のクライアントとの間でデータをマルチキャストした場合の通信特性を示す。
図38の(a)〜(c)に示す結果から、この発明によるマルチキャスト方法は、ホップ数が他の方法よりも若干多くなるが、配信率および遅延が他の方法よりも改善されている。
したがって、この発明によるマルチキャスト方法は、従来のマルチキャスト法(MAODV)よりも通信特性を向上してデータをマルチキャストできる。
従来のマルチキャスト法(MAODV)においては、MAC層でブロードキャストを採用しており、ブロードキャストには、再送制御がない。本願の発明者は、従来のマルチキャスト法(MAODV)を用いた場合に、通信特性が低下する原因を検討した結果、この再送制御がないことが従来のマルチキャスト法(MAODV)において通信特性が低下する原因であることを発見するに到った。
したがって、この発明においては、複数の中継先へデータのユニキャストを繰り返し行なうことによるマルチキャスト法を採用することによって、通信特性を向上してデータをマルチキャストできる。
[クライアントからの離脱]
次に、クライアントから離脱する場合について説明する。図39は、クライアントからの離脱を説明するための図である。また、図40は、マルチキャストテーブルの他の具体例を示す図である。
図39を参照して、クライアントである無線装置3,4,11のうち、無線装置11がクライアントから離脱したい場合、無線装置11の通信手段140は、マルチキャストテーブル160−2(図40の(a)参照)から無線装置11のIPアドレスIPadd11を削除してマルチキャストテーブル160−2をマルチキャストテーブル160−3(図40の(b)参照)に更新する。
そして、無線装置11の通信手段140は、無線装置11のIPアドレスIPadd11を含む離脱メッセージMCPrn=[IPadd11]を生成し、その生成した離脱メッセージMCPrn=[IPadd11]を無線ネットワーク100内でフラッディングする。
無線装置1〜10,12の通信手段140は、無線装置11から離脱メッセージMCPrn=[IPadd11]を受信し、その受信した離脱メッセージMCPrn=[IPadd11]からIPアドレスIPadd11を検出する。そして、無線装置1〜10,12の通信手段140は、マルチキャストテーブル160−2(図40の(a)参照)から無線装置11のIPアドレスIPadd11を削除してマルチキャストテーブル160−2をマルチキャストテーブル160−3(図40の(b)参照)に更新する。
これによって、無線ネットワーク100内の全ての無線装置1〜12は、同じマルチキャストテーブル160−3を共有する。
[ネットワークからの離脱]
引き続いて、あるクライアントが無線ネットワーク100から離脱する場合について説明する。図41は、無線ネットワーク100からの離脱を説明するための図である。
図41を参照して、ルーツノードである無線装置1は、ルーツアナウンスメッセージRAMを定期的にブロードキャストし、階層構造を再構築する。この場合、無線装置1(=ルーツノード)は、ルーツリプライメッセージRRMを送信しない無線装置11があれば、その無線装置11が無線ネットワーク100から離脱したと見なし、マルチキャストテーブル160−2(図40の(a)参照)から無線装置11のIPアドレスIPadd11を削除し、マルチキャストテーブル160−2をマルチキャストテーブル160−3(図40の(b)参照)に更新する。
そして、無線装置1(=ルーツノード)は、マルチキャストテーブル160−3を含むマルチキャストテーブルメッセージMCTblを作成し、その作成したマルチキャストテーブルメッセージMCTblを無線ネットワーク100内でフラッディングする。
そうすると、無線装置2〜10,12は、無線装置1からマルチキャストテーブルメッセージMCTblを受信し、その受信したマルチキャストテーブルメッセージMCTblに含まれるマルチキャストテーブル160−3に基づいて、自己のマルチキャストテーブル160−2をマルチキャストテーブル160−3に更新する。
これによって、無線ネットワーク100内に残っている全ての無線装置1〜10,12は、同じマルチキャストテーブル160−3を共有する。
[ネットワークへの参加]
あるクライアントが無線ネットワーク100へ参加する場合について説明する。図42は、無線ネットワーク100への参加を説明するための図である。
図42を参照して、ルーツノードである無線装置1は、ルーツアナウンスメッセージRAMを定期的にブロードキャストし、階層構造を再構築する。この場合、無線装置1(=ルーツノード)は、ルーツリプライメッセージRRMを新たに送信した無線装置11を検知すると、無線装置11が無線ネットワーク100へ新たに参加したと見なす。
そして、無線装置1(=ルーツノード)は、自己のマルチキャストテーブル160−3(図40の(b)参照)を含むマルチキャストテーブルメッセージMCTblを作成し、その作成したマルチキャストテーブルメッセージMCTblを無線装置11へ送信する。
無線装置11の通信手段140は、無線装置1(=ルーツノード)からマルチキャストテーブルメッセージMCTblを受信し、その受信したマルチキャストテーブルメッセージMCTblに含まれるマルチキャストテーブル160−3に基づいて、マルチキャストテーブル160−3を作成する。
これによって、無線ネットワーク100内の全ての無線装置1〜12は、同じマルチキャストテーブル160−3を共有する。
上述したように、無線ネットワーク100においては、クライアント3,4,11のうち、無線装置11がクライアントまたは無線ネットワーク100から離脱したとき、無線装置1〜10,12は、無線装置11を削除してマルチキャストテーブル160を更新し、無線装置11が無線ネットワーク100へ新たに参加した場合、無線装置1(=ルーツノード)は、保持しているマルチキャストテーブルを無線装置11へ送信する。
つまり、無線ネットワーク100においては、全ての無線装置1〜12は、常に、同じマルチキャストテーブル160を共有する。
その結果、無線装置1〜12のいずれの無線装置がクライアントになっても、サーバおよびクライアント以外の無線装置は、その共有しているマルチキャストテーブル160およびルーティングテーブル150を参照して、サーバから送信されたデータを送信先へ中継できる。
なお、上記においては、無線装置6のみがサーバである場合について説明したが、この発明においては、これに限らず、一般的には、サーバは、i(iは正の整数)個の無線装置からなり、クライアントは、j(jは正の整数)個の無線装置からなり、データをサーバからクライアントへ中継する無線装置は、k(kは正の整数)個の無線装置からなっていればよい。そして、k個の無線装置の各々は、上述したこの発明によるマルチキャスト方法によってデータをマルチキャストする。
また、上記においては、無線ネットワーク100は、階層構造からなると説明したが、この発明においては、これに限らず、無線ネットワーク100は、複数の無線装置が任意のトポロジーで配置されていればよい。そして、この発明による無線ネットワークは、複数の無線装置が任意のトポロジーで配置された無線ネットワーク100において、サーバであるj個の無線装置と、クライアントであるj個の無線装置と、データをj個の無線装置のいずれかからj個の無線装置へ中継するk個の無線装置とを備え、k個の無線装置の各々は、上述したこの発明によるマルチキャスト方法(図36に示すフローチャート)によってデータをマルチキャストするものであればよい。
これによって、階層構造以外のトポロジーからなる無線ネットワークにおいても、通信特性を向上してデータをマルチキャストできる。
さらに、この発明においては、データMCDataを受信し、その受信したデータMCData、ルーティングテーブル150およびマルチキャストテーブル160に基づいて、データMCDataの中継先を決定する通信手段140は、「決定手段」を構成する。
さらに、この発明によるマルチキャスト方法を用いてデータを送信する通信制御手段130は、「送信手段」を構成する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1〜12 無線装置、100 無線ネットワーク、110 アンテナ、120 インターフェース、130 通信制御手段、140 通信手段、150 ルーティングテーブル、160 マルチキャストテーブル、170 タイマー。