以下、本発明の一実施形態について説明する。本実施形態では、コグニティブ無線を使用する無線通信システムを想定する。本実施形態の無線通信装置は、複数の無線方式をサポートし、1つの無線インタフェースで複数の無線方式を切り替えながら使用することが可能である。なお、各無線通信装置が備える無線インタフェースの数は、必ずしも無線通信装置がサポートする無線方式の数以上であるとは限らない。例えば、無線通信装置がサポートする無線方式は、無線方式a、無線方式b、無線方式cの3種類であるが、備えている無線インタフェースは2つである場合がある。この場合、無線通信装置が同時に使用することができる無線方式は、3種類の内いずれか2種類となる。また、無線方式の具体例としては、無線方式aはIEEE802.11aとし、無線方式bはIEEE802.11bとし、無線方式cはIEEE802.16とすることが考えられる。また、これらは、IEEE802.11bでもチャネルが異なればそれぞれ無線方式a、b、cとしてもよい。
図1は本発明の一実施形態における無線通信装置(ノード)の構成を示した図である。無線通信装置は記憶部1と制御部2とN個の無線インタフェース3−1〜3−Nとを備える。記憶部1は無線通信装置が使用する情報を記憶する。制御部2は無線通信装置の制御を行う。無線インタフェース3−1〜3−Nは、他の無線通信装置と通信を行う。また、無線インタフェース3−1〜3−Nは、複数の無線方式を切り替えて使用することができる。
図2は本実施形態における無線通信装置10が把握している無線通信システムの構成を示した図である。図示する例では、この無線通信システムは無線通信装置10〜17を含む。無線通信装置10が無線通信システムの構成を把握する手順については後述する。
図示する例では、無線通信装置10のノードIDはsである。無線通信装置11のノードIDはn1_1である。無線通信装置12のノードIDはn1_2である。無線通信装置13のノードIDはn1_3である。無線通信装置14のノードIDはn2_1である。無線通信装置15のノードIDはn2_2である。無線通信装置16のノードIDはn2_3である。無線通信装置17のノードIDはn2_4である。
ノードIDの後ろの括弧内に記述されている分数は、無線通信装置10〜17がサポートしている無線方式の数と、無線通信装置10〜17が備えている無線インタフェースの数である。分母が無線通信装置10〜17がサポートしている無線方式の数を示し、分子が無線通信装置10〜17が備えている無線インタフェースの数を示す。図示する例では、無線通信装置10がサポートしている無線方式の数は3であり、無線通信装置10が備えている無線インタフェースの数は2である。無線通信装置11〜13がサポートしている無線方式の数と無線通信装置11〜13が備えている無線インタフェースの数についても図示する通りである。無線通信装置14〜17がサポートしている無線方式数と無線通信装置14〜17が備えている無線インタフェース数については、無線通信装置10は把握していない。また、無線通信装置10〜17間を結ぶ線は、無線通信装置間の無線接続(リンク)を示す。この線に添えられた数字は、無線通信装置10が把握している、その接続で同時に使用可能な無線方式の数である。図示する例では、無線通信装置10と無線通信装置11は接続されており、同時に使用可能な無線方式の数は3つである。他の無線通信装置間の接続および同時に使用可能な無線方式の数についても図示する通りである。
(Helloパケットの送信)
次に、無線通信装置10〜17が無線通信システムの構成を把握するために使用するHelloパケットの送信手順について説明する。Helloパケットは制御部2によって生成される。Helloパケットの生成方法については後述する。無線通信装置10〜17の制御部2は、定期的に、無線インタフェース3−1〜3−Nを介してHelloパケットを隣接する無線通信装置10〜17に送信する。このとき無線インタフェース3−1〜3−Nが使用する無線方式は、無線通信装置10〜17がサポートする無線方式のうちいずれかを使用する。また、無線通信装置10〜17は、受信したHelloパケットを他の無線通信装置10〜17に転送しない。この実現方法としては、HelloパケットのTime To Live(TTL)値を1と設定する方法がある。
制御部2が生成するHelloパケットのフォーマットについて説明する。図3は、本実施形態におけるHelloパケットのフォーマットを示した図である。図示する例では、Helloパケットのフィールドとして、「宛先アドレス」と、「自ノードID」と、「送信無線方式ID」と、「サポート無線方式数」と、「同時利用可能無線方式数」と、「Type」と、「ノードID」とがある。なお、Helloパケットは、無線通信装置10〜17がサポートする無線方式毎に生成される。以下では、Helloパケットを送信した無線通信装置10〜17を送信元と記載する。
「宛先アドレス」フィールドは、Helloパケットの送信先アドレスを登録するフィールドである。例えば、送信元の制御部2は、「宛先アドレス」のフィールドにブロードキャストアドレスを登録する。「自ノードID」フィールドは、自身のノードIDを登録するフィールドである。例えば、無線通信装置10の制御部2は、「自ノードID」のフィールドにsを登録する。また、無線通信装置11の制御部2は、「自ノードID」のフィールドにn1_1を登録する。
「送信無線方式ID」フィールドは、Helloパケットを送信する無線方式の無線方式IDを登録するフィールドである。本実施形態では、無線方式aの無線方式IDはaである。無線方式bの無線方式IDはbである。無線方式cの無線方式IDはcである。
「サポート無線方式数」フィールドは、送信元がサポートする無線方式の数を登録するフィールドである。例えば、無線通信装置10の制御部2は「サポート無線方式数」のフィールドに3を登録する。また、無線通信装置11の制御部2は「サポート無線方式数」のフィールドに3を登録する。
「同時利用可能無線方式数」フィールドは、送信元が同時に利用可能な無線方式の数を登録するフィールドである。例えば、無線通信装置10は、2つの無線インタフェースを備えているため、同時に利用可能な無線方式の数は2である。よって、無線通信装置10の制御部2は「同時利用可能無線方式数」のフィールドに2を登録する。また、無線通信装置11の制御部2は「同時利用可能無線方式数」のフィールドに2を登録する。
「Type」フィールドは、送信元と隣接する無線通信装置10〜17の情報を登録するフィールドである。送信元と隣接する無線通信装置10〜17の情報は、「Type=送信無線方式で片方向」と、「Type=送信無線方式で両方向」と、「Type=隣接ノード」と、「Type=フラッディング参加」との4つのフィールドがある。また、Helloパケットの「ノードID」フィールドは、各「Type」フィールドの情報に属する無線通信装置10〜17のノードIDを登録するフィールドである。
「Type=送信無線方式で片方向」と「Type=送信無線方式で両方向」の「ノードID」フィールドは、送信元が受信した他のHelloパケットを送信した無線通信装置10〜17のノードIDを登録するフィールドである。ただし、「Type=送信無線方式で片方向」の「ノードID」フィールドに登録されているノードIDを持つ無線通信装置10〜17については、送信元からのHelloパケットが受信されているか確認できていない。また、「Type=送信無線方式で両方向」の「ノードID」フィールドに登録されているノードIDを持つ無線通信装置10〜17に対して送信元は既にHelloパケットを送信しており、受信されているか確認できている。
「Type=隣接ノード」の「ノードID」フィールドには、送信元と隣接する無線通信装置10〜17に隣接している無線通信装置10〜17(前述した2ホップ隣接ノード)のノードIDを登録する。また、「Type=隣接ノード」フィールドは「接続無線方式数」毎に分かれている。「接続無線方式数」は、「Type=隣接ノード」の「ノードID」フィールドに登録されているノードIDを持つ無線通信装置10〜17が同時に使用可能な無線方式数である。図示する例では、「Type=隣接ノード」のフィールドは、「接続無線方式数=1」のフィールドと、「接続無線方式数=2」のフィールドとに分かれている。
「Type=フラッディング参加」の「ノードID」フィールドには、送信元がフラッディングの参加を依頼する無線通信装置10〜17のノードIDを登録する。また、「Type=フラッディング参加」フィールドは「ブロードキャスト無線方式数」毎に分かれている。「ブロードキャスト無線方式数」は、ブロードキャストを行う際に使用する無線方式数である。図示する例では、「Type=フラッディング参加」のフィールドは、「ブロードキャスト無線方式数=1」のフィールドと、「ブロードキャスト無線方式数=2」のフィールドとに分かれている。
(Helloパケットの受信)
次に、無線通信装置10〜17が無線通信システムの構成を把握するために使用するHelloパケットの受信手順について図4および図5を参照して説明する。無線通信装置10〜17の制御部2は、無線インタフェース3−1〜3−Nを介してHelloパケットを受信すると、受信したHelloパケットの内容をノード情報テーブルのエントリに記憶させる。なお、記憶部1はノード情報テーブルを記憶する。制御部2はノード情報テーブルのエントリをノードID毎に作成する。すなわち、1エントリには1つの無線通信装置10〜17の情報が登録される。図4は、制御部2が記憶部1に記憶させるノード情報テーブルのエントリのフォーマットを示した図である。以下では、Helloパケットを受信した無線通信装置10〜17を受信元と記載する。
図示する例では、ノード情報テーブルのエントリのフィールドとして、「ノードID」フィールドと、「ノード状態」フィールドと、「サポート無線方式数」フィールドと、「同時利用可能無線方式数」フィールドと、「参加要請するブロードキャスト参加無線方式数」フィールドと、「参加要請されたブロードキャスト参加無線方式数」フィールドと、「搭載無線方式情報」フィールドと、「隣接ノードID」フィールドとがある。また「搭載無線方式情報」フィールドは、「無線方式ID」フィールドと「無線方式状態」フィールドとの組み合わせを複数含む。また、「隣接ノードID」フィールドは、「ノードID」フィールドと「接続可能無線方式数」フィールドとの組み合わせを複数含む。これらの情報は、Helloパケットに含まれている情報に基づいて受信元の制御部2がノード情報テーブルに登録する。
「ノードID」フィールドは、Helloパケットに含まれる「自ノードID」フィールドに含まれている情報を登録するフィールドである。例えば、無線通信装置10が無線通信装置11から受信するHelloパケットの「自ノードID」フィールドにはn1_1が含まれているため、無線通信装置10の制御部2は「ノードID」のフィールドにn1_1を登録する。
「ノード状態」フィールドは、受信元と、このエントリの無線通信装置10〜17との接続状態を登録するフィールドである。登録する値は、「未確定」と「隣接」とがある。受信元の制御部2は、受信元と、このエントリの無線通信装置10〜17との接続が未確定の際に「未確定」を「ノード状態」フィールドに登録する。受信元の制御部2は、受信元と、このエントリの無線通信装置10〜17とがいずれかの無線方式で双方向に接続している際に「隣接」を「ノード状態」フィールドに登録する。
「サポート無線方式数」フィールドは、このエントリの無線通信装置10〜17がサポートする無線方式の数を登録するフィールドである。「同時利用可能無線方式数」フィールドは、このエントリの無線通信装置10〜17が同時に使用することができる無線方式の数を登録するフィールドである。
「参加要請するブロードキャスト参加無線方式数」フィールドは、このエントリの無線通信装置10〜17に対し、フラッディングの参加要請を行う場合において、このエントリの無線通信装置10〜17が使用する無線方式の数を登録するフィールドである。
「参加要請されたブロードキャスト参加無線方式数」フィールドは、このエントリの無線通信装置10〜17からフラッディングの参加要請を受けた場合において、受信元がブロードキャストを行う際に使用する無線方式の数を登録するフィールドである。
「搭載無線方式情報」フィールドは、「無線方式ID」フィールドと「無線方式状態」フィールドとの組み合わせを複数含む。「無線方式ID」フィールドは、このエントリの無線通信装置10〜17がサポートする無線方式の無線方式IDを登録するフィールドである。「無線方式状態」フィールドは、このエントリの無線通信装置10〜17と受信元との間の無線方式の状態を登録するフィールドである。「無線方式ID」は、無線方式に関連付けられているIDである。「無線方式状態」は「片方向」と「両方向」とがある。
「隣接ノードID」フィールドは、「ノードID」フィールドと、「接続可能無線方式数」フィールドとの組み合わせを複数含む。「ノードID」フィールドは、このエントリの無線通信装置10〜17と隣接する無線通信装置10〜17のノードIDを登録するフィールドである。「接続可能無線方式数」フィールドは、このエントリの無線通信装置10〜17と隣接する無線通信装置10〜17との間で同時に使用可能な無線方式の数を登録するフィールドである。
図5は無線通信装置10〜17がHelloパケットを受信した際の処理手順について示したフローチャートである。
(ステップS101)制御部2は、記憶部1が記憶するノード情報テーブルのエントリに、受信したHelloパケットの「自ノードID」フィールドに含まれるノードIDのエントリが含まれているか否か判断する。含まれていない場合はステップS102に進む。含まれている場合はステップS103に進む。以下、制御部2は、ノード情報テーブルのエントリのうち、受信したHelloパケットの「自ノードID」フィールドに含まれるノードIDのエントリに対して処理を行う。
(ステップS102)制御部2は、記憶部1が記憶するノード情報テーブルに、受信したHelloパケットの「自ノードID」フィールドに含まれるノードIDのエントリを作成する。また、制御部2は、このエントリの「ノード状態」のフィールドに「未確定」を登録する。その後ステップS103に進む。
(ステップS103)制御部2は、ノード情報テーブルの「サポート無線方式数」フィールドに受信したHelloパケットの「サポート無線方式数」フィールドに含まれる数を登録し、ノード情報テーブルの「同時利用可能無線方式数」フィールドに受信したHelloパケットの「同時利用可能無線方式数」フィールドに含まれる数を登録する。その後ステップS104に進む。
(ステップS104)制御部2は、ノード情報テーブルの「搭載無線方式情報」が含んでいる「無線方式ID」フィールドに、受信したHelloパケットの「送信無線方式ID」フィールドに含まれる「無線方式ID」が登録されているか否か判断する。「搭載無線方式情報」が含んでいる「無線方式ID」フィールドに、受信したHelloパケットの「送信無線方式ID」フィールドに含まれる「無線方式ID」が登録されていると制御部2が判断した場合はステップS106に進み、それ以外はステップS105に進む。
(ステップS105)制御部2は、ノード情報テーブルの「搭載無線方式情報」が含んでいる「無線方式ID」エントリに、受信したHelloパケットの「送信無線方式ID」フィールドに含まれる「無線方式ID」を登録し、ノード情報テーブルの「搭載無線方式情報」が含んでいる「無線方式ID」エントリに関連付けて、「無線方式状態」のエントリに「片方向」と登録する。その後ステップS106に進む。
(ステップS106)制御部2は、受信したHelloパケットに含まれる「Type=送信無線方式で片方向」フィールドもしくは「Type=送信無線方式で両方向」フィールドが含んでいる「ノードID」フィールドに自無線通信装置10〜17のノードIDが含まれているか否か判断する。含まれていると制御部2が判断した場合ステップS107に進み、それ以外の場合ステップS108に進む。
(ステップS107)制御部2は、ノード情報テーブルの「ノード状態」フィールドに「隣接」を登録する。また、受信したHelloパケットの「送信無線方式ID」に含まれる「無線方式ID」が、ノード情報テーブルの「搭載無線方式情報」フィールドが含んでいる「無線方式ID」フィールドに登録されている場合、制御部2は当該「無線方式ID」フィールドと関連付けられている「無線方式状態」フィールドに「両方向」を登録する。その後ステップS108に進む
(ステップS108)制御部2は、受信したHelloパケットの「Type=フラッディング参加」フィールドに関連付けられている「ノードID」フィールドに、自無線通信装置10〜17の「ノードID」が含まれているか否か判断する。含まれていると制御部2が判断した場合ステップS109に進み、それ以外の場合ステップS110に進む。
(ステップS109)制御部2は、受信したHelloパケットに含まれる「Type=フラッディング参加」フィールドに関連付けられている「ブロードキャスト無線方式数」フィールドの値を、ノード情報テーブルの「参加要請されたブロードキャスト参加無線方式数」フィールドに登録する。その後ステップS110に進む。
(ステップS110)制御部2は、受信したHelloパケットの「Type=隣接」フィールドに関連付けられている「ノードID」フィールドに登録されている「ノードID」毎に、ステップS111〜ステップS114の処理を実施する。制御部2は、ステップS111〜ステップS114の処理を実施していない「ノードID」を選択し、ステップS111に進む。制御部2が全ての「ノードID」に対してステップS111〜ステップS114の処理を実施した場合はステップS115に進む。
(ステップS111)制御部2は、ステップS110で選択した「ノードID」が、ノード情報テーブルの「隣接ノードID」フィールドに含まれている「ノードID」フィールドに登録されているか否か判断する。登録されていると制御部2が判断した場合ステップS113に進み、それ以外の場合はステップS112に進む。
(ステップS112)制御部2は、ノード情報テーブルの「隣接ノードID」フィールドが含んでいる「ノードID」フィールドにステップS110で選択した「ノードID」を登録する。その後、ステップS113に進む。
(ステップS113)制御部2は、ステップS110で選択した「ノードID」が登録されている「隣接ノードID」フィールドと関連付けられている「接続可能無線方式数」フィールドに、Helloパケットの「同時利用可能無線方式数」フィールドの値を登録する。その後、ステップS114に進む。
(ステップS114)ステップS110に戻る。
(ステップS115)記憶部1が記憶するノード情報テーブルの全てのフィールドには有効期限が記録されている。なお、ステップS101〜ステップS114の処理により参照、登録、または更新されたフィールドの有効期限は、制御部2がその処理を行った際に延長する。制御部2は、全てのフィールドの有効期限を確認し、有効期限が切れているフィールドの値を削除し、処理を終了する。
上述した手順により、無線通信装置10〜17の制御部2は、ノード情報テーブルにエントリを作成することができる。このノード情報テーブルの情報に基づいて、制御部2はフラッディングを実施する。
なお、無線通信装置10〜17において、同時利用可能な無線方式数が、サポートされる無線方式数よりも小さい場合、一部の無線方式は常に接続状態が無効となってしまう。それらを厳密に無効と判断し、リンクにおける接続可能な無線方式数をカウントしてもよいし、移動の少ない場合などには、無線方式が切り替わり次第、再度利用可能になることが期待できるため、有効期限を十分長くとっておき、接続可能な数が同時利用可能な無線方式数より多くなることを許すことも可能である。
(Helloパケットの生成方法)
次に、無線通信装置10〜17が無線通信システムの構成を把握するために使用するHelloパケットの生成方法について図6を参照して説明する。図6は無線通信装置10〜17の制御部2がHelloパケットを生成する際の処理手順について示したフローチャートである。
(ステップS201)制御部2は、記憶部1が記憶するノード情報テーブルのエントリ毎に、ステップS202〜ステップS206の処理を実施する。制御部2は、ステップS202〜ステップS206の処理を実施していないエントリを選択し、ステップS202に進む。制御部2が全てのエントリに対してステップS202〜ステップS206の処理を実施した場合はステップS207に進む。
(ステップS202)制御部2は、ステップS201で選択したエントリの「搭載無線方式情報」フィールドが含む「無線方式ID」フィールドに、当該Helloパケットを送信するために使用する無線方式の「無線方式ID」が登録されているか否か判断する。登録されていると制御部2が判断した場合ステップ203に進み、それ以外はステップS206に進む。
(ステップS203)制御部2は、「搭載無線方式情報」フィールドが含む「無線方式ID」フィールドと関連付けられている「無線方式状態」フィールドの値が「片方向」であるか「両方向」であるか判断する。フィールドの値が「片方向」であると制御部2が判断した場合ステップS204に進み、「両方向」であると制御部2が判断した場合ステップS205に進む。
(ステップS204)制御部2は、当該Helloパケットの「Type=送信無線方式で片方向」のフィールドに関連付けられている「ノードID」フィールドに、ステップS201で選択したエントリの「ノードID」フィールドに含まれる「ノードID」を登録する。その後、ステップS206に進む。
(ステップS205)制御部2は、当該Helloパケットの「Type=送信無線方式で両方向」のフィールドに関連付けられている「ノードID」フィールドに、ステップS201で選択したエントリの「ノードID」フィールドに含まれる「ノードID」を登録する。その後、ステップS206に進む。
(ステップS206)ステップS201に戻る。
(ステップS207)制御部2は、記憶部1が記憶するノード情報テーブルのエントリ毎に、ステップS208〜ステップS212の処理を実施する。制御部2は、ステップS208〜ステップS212の処理を実施していないエントリを選択し、ステップS208に進む。制御部2が全てのエントリに対してステップS208〜ステップS212の処理を実施した場合はステップS213に進む。
(ステップS208)制御部2は、ステップS201で選択したエントリの「ノード状態」フィールドに「隣接」が登録されているか否か判断する。「ノード状態」フィールドに「隣接」が登録されていると制御部2が判断した場合ステップS209に進み、それ以外の場合ステップS212に進む。
(ステップS209)制御部2は、ステップS207で選択したエントリの「隣接ノードID」フィールドが含む「ノードID」フィールドの値と、「接続可能無線方式数」フィールドの値とを取得する。取得した「接続可能無線方式数」フィールドの値と同一の値を持つ、Helloパケットの「Type=隣接ノード」の「接続無線方式数」フィールドに関連付けられている「ノードID」フィールドに、取得した「ノードID」フィールドの値を登録する。その後、ステップS210に進む。
(ステップS210)制御部2は、ステップS207で選択したエントリに含まれる「参加要請するブロードキャスト参加無線方式数」フィールドに登録されている値が0より大きいか否か判断する。0より大きいと制御部2が判断した場合はステップS211に進み、それ以外の場合はステップS212に進む。
(ステップS211)制御部2は、ステップS207で選択したエントリに含まれる「ノードID」フィールドの値と「参加要請するブロードキャスト参加無線方式数」フィールドの値とを取得する。取得した「参加要請するブロードキャスト参加無線方式数」フィールドの値と同一の値を持つ、Helloパケットの「Type=フラッディング参加」の「ブロードキャスト無線方式数」フィールドに関連付けられている「ノードID」フィールドに、取得した「ノードID」フィールドの値を登録する。その後、ステップS212に進む。
(ステップS212)ステップS207に戻る。
(ステップS213)処理を終了する。
上述した手順により、無線通信装置10〜17の制御部2は、無線通信装置10〜17が無線通信システムの構成を把握するために送信するHelloパケットを生成することができる。
(フラッディング参加申請ノードの決定)
次に、無線通信装置10〜17が送信するパケットのフラッディングに参加する無線通信装置10〜17を制御部2が決定する方法について図7を参照して説明する。図7は本実施形態において、無線通信装置10〜17が送信するパケットのフラッディングに参加する無線通信装置10〜17を制御部2が決定する手順を示したフローチャートである。
無線通信装置10〜17の制御部2は、ノード情報テーブルの情報に基づいて、フラッディングに参加する無線通信装置10〜17を定期的またはHelloパケットの受信時に決定する。この決定を行う無線通信装置10〜17を計算ノードと呼ぶ。
(ステップS301)制御部2は、記憶部1が記憶するノード情報テーブルのエントリのうち、「ノード状態」フィールドの値が「接続」となっているエントリ毎に、ステップS302〜ステップS307の処理を行う。制御部2は、ステップS302〜ステップS307の処理を実施しておらず、「ノード状態」フィールドの値が「接続」となっているエントリを選択し、ステップS302に進む。制御部2は、ノード状態が「接続」となっているエントリ全てについてステップS302〜ステップS307の処理を実施した場合はステップS308に進む。
(ステップS302)制御部2は、ステップS301で選択したエントリの「ノードID」フィールドに登録されているノードIDを持つ無線通信装置10〜17を隣接ノードとして記憶部1に記憶させる。また、制御部2は、当該エントリより「サポート無線方式数」フィールドの値と「同時利用可能無線方式数」フィールドの値とを取得する。その後ステップS303に進む。
(ステップS303)制御部2は、ステップS301で選択したエントリに含まれる「隣接ノードID」フィールドが含む「ノードID」フィールドに登録されている「ノードID」毎に、ステップS304〜ステップS306の処理を実施する。制御部2は、ステップS304〜ステップS306の処理を実施していない「ノードID」を選択し、ステップS304に進む。制御部2が全ての「ノードID」に対してステップS304〜ステップS306の処理を実施した場合、ステップS307に進む。
(ステップS304)ステップS303で選択した「ノードID」フィールドに登録されている無線通信装置10〜17が計算ノードでもなく隣接ノードでもないと制御部2が判断した場合、ステップS305に進む。それ以外はステップS306に進む。
(ステップS305)制御部2は、ステップS303で選択した「ノードID」に関連付けられて登録されている「接続可能無線方式数」フィールドの値を取得する。また、制御部2は、当該「ノードID」を持つノードは2ホップ先で隣接している「2ホップ隣接ノード」であるとして、「接続可能無線方式数」フィールドの値と関連付けて記憶部1に記憶させる。その後、ステップS306に進む。
(ステップS306)ステップS303に戻る。
(ステップS307)ステップS301に戻る。
(ステップS308)ここで、隣接ノードの集合をN1とする。また、「2ホップ隣接ノードの集合」をN2とする。また、フラッディング参加決定ノードの集合をFとする。また、フラッディング参加決定ノードがフラッディングに参加することによりフラッディングパケットが到達可能となったノードの集合をC2とする。制御部2は、ステップS302で記憶部1に記憶させた情報に基づいて、N1の値を設定する。また、制御部2は、ステップS305で記憶部1に記憶させた情報に基づいて、N2の値を設定する。その後、ステップS309に進む。また、現時点ではFとC2は空集合である。
(ステップS309)制御部2は、N1に属しFに属さないノードxと、N2に属しC2に属さないノードとのリンク(通信)において、ノードx毎に、ノードxがサポートする「サポート無線方式数」の値が「同時利用可能無線方式数」の値と等しくなるリンクの数sを求める。また、制御部2は、sが最大となるノードxをノードnとして記憶部2に記憶させる。その後、ステップS310に進む。
(ステップS310)制御部2は、ステップS309で求めたノードnのリンク数sが0であるか否か判断する。ノードnのリンク数sが0であると制御部2が判断した場合ステップS311に進み、それ以外と判断した場合ステップS312に進む。
(ステップS311)制御部2は、集合Fの値を一時集合F1に移動させ、集合Fを空集合とする。また、制御部2は、変数mを2とする。その後、ステップS314に進む。
(ステップS312)制御部2は、ノードnを集合Fに登録し、ブロードキャスト参加無線方式数を1とする。また、制御部2は、ノードnがサポートする「サポート無線方式数」の値が「同時利用可能無線方式数」の値と等しくなるリンクをもつノードを集合C2に登録する。その後、ステップS313に進む。
(ステップS313)制御部2は、N2とC2とが等しいか否か判断する。N2とC2が等しいと制御部2が判断した場合はステップS319に進み、それ以外はステップS309に戻る。
(ステップS314)制御部2は、N1に属しFに属さないノードxと、N2に属しC2に属さないノードとのリンクにおいて、ノードx毎に、ノードxの「同時利用可能無線方式数」の値と「リンクで接続可能な無線方式の数」の値との和が、ノードxでサポートする「サポート無線方式数」の値よりも大きく、かつ、ノードxでサポートする「サポート無線方式数」の値から「リンクで接続可能な無線方式の数」の値を減算した数に1を加算した値がmとなるリンクの数sを求める。また、制御部2は、sが最大となるノードxをノードnとして記憶部2に記憶させる。その後、ステップS315に進む。
(ステップS315)制御部2は、ステップS314で求めたノードnのリンク数sが0であるか否か判断する。ノードnのリンク数sが0であると制御部2が判断した場合ステップS316に進み、それ以外の場合ステップS317に進む。
(ステップS316)制御部2は、集合Fの値を一時集合F1に移動させ、集合Fを空集合とする。また、制御部2は、変数mに1を加算する。その後、ステップS314に戻る。
(ステップS317)制御部2は、ノードnをフラッディング参加ノードと決定し、フラッディング要請時のブロードキャスト参加無線方式数をmとする。また、制御部2は、ノードnを集合Fに登録するmとする。また、制御部2は、ノードnがサポートする「サポート無線方式数」が「同時利用可能無線方式数」と等しくなるリンクをもつノードを集合C2に登録する。その後、ステップS318に進む。
(ステップS318)制御部2は、N2とC2とが等しいか否か判断する。N2とC2が等しいと制御部2が判断した場合はステップS319に進み。それ以外はステップS314に戻る。
(ステップS319)処理を終了する。
上述した手順により、集合Fと集合F1とを求めることができる。集合Fと集合F1に登録されたすべてのノードが、フラッディングに参加するノードとなる。また、その際に使用する無線方式数は、集合Fに最後に登録されたときに決められた値となる。よって、無線通信装置10〜17の制御部2は、自無線通信装置10〜17が送信するパケットのフラッディングに参加する無線通信装置10〜17を決定することができる。
以下、図1に示した無線通信装置10〜17の構成において、無線通信装置10の制御部2が決定するフラッディングに参加するノードの具体的な決定方法について説明する。図8は本実施形態における無線通信装置10の記憶部1が記憶するノード情報テーブルのうち、「ノードID」フィールドの値が「n1_1」のエントリを示した図である。図示する例では、「ノードID」フィールドの値が「n1_1」のエントリの「ノード状態」フィールドの値は「隣接」であり、「サポート無線方式数」フィールドの値は「3」であり、「同時利用可能無線方式数」フィールドの値は「2」であり、「参加要請するブロードキャスト参加無線方式数」フィールドの値は「null」であり、「参加要請されたブロードキャスト参加無線方式数」の値は「null」であり、「搭載無線方式情報」の値は、「無線方式ID:a、無線方式状態:両方向」と、「無線方式ID:b、無線方式状態:両方向」と、「無線方式ID:b、無線方式状態:両方向」とであり、「隣接ノードID」の値は、「ノードID:s、接続可能無線方式数3」と、「ノードID:n2_1、接続可能無線方式数3」と、「ノードID:n2_2、接続可能無線方式数3」と、「ノードID:n2_3、接続可能無線方式数1」とである。
図9は本実施形態における無線通信装置10の記憶部1が記憶するノード情報テーブルのうち、「ノードID」の値が「n1_2」のエントリを示した図である。図示する例では、「ノードID」の値が「n1_2」のエントリの「ノード状態」の値は「隣接」であり、「サポート無線方式数」の値は「3」であり、「同時利用可能無線方式数」の値は「2」であり、「参加要請するブロードキャスト参加無線方式数」の値は「null」であり、「参加要請されたブロードキャスト参加無線方式数」の値は「null」であり、「搭載無線方式情報」の値は、「無線方式ID:b、無線方式状態:両方向」と、「無線方式ID:c、無線方式状態:両方向」とであり、「隣接ノードID」の値は、「ノードID:s、接続可能無線方式数2」と、「ノードID:n2_1、接続可能無線方式数2」と、「ノードID:n2_2、接続可能無線方式数1」と、「ノードID:n2_3、接続可能無線方式数2」と、「ノードID:n2_3、接続可能無線方式数2」とである。
図10は本実施形態における無線通信装置10の記憶部1が記憶するノード情報テーブルのうち、「ノードID」の値が「n1_3」のエントリを示した図である。図示する例では、「ノードID」の値が「n1_3」のエントリの「ノード状態」の値は「隣接」であり、「サポート無線方式数」の値は「3」であり、「同時利用可能無線方式数」の値は「2」であり、「参加要請するブロードキャスト参加無線方式数」の値は「null」であり、「参加要請されたブロードキャスト参加無線方式数」の値は「null」であり、「搭載無線方式情報」の値は、「無線方式ID:a、無線方式状態:両方向」とであり、「隣接ノードID」の値は、「ノードID:s、接続可能無線方式数1」と、「ノードID:n2_2、接続可能無線方式数1」と、「ノードID:n2_3、接続可能無線方式数1」と、「ノードID:n2_4、接続可能無線方式数1」とである。
無線通信装置10の制御部2は、図8〜図10に示したノード情報テーブルに基づいて、先述したステップS301〜ステップS307の処理を行う。制御部2は、ノードIDが「n1_1」の無線通信装置11と、ノードIDが「n1_2」の無線通信装置12と、ノードIDが「n1_3」の無線通信装置13とが隣接ノードであると記憶部1に記憶させる。また、制御部2は、ノードIDが「n1_1」の無線通信装置11がサポートする無線方式数は3であり、同時利用可能な無線方式数は2であることを記憶部1に記憶させる。また、制御部2は、ノードIDが「n1_2」の無線通信装置12がサポートする無線方式数は3であり、同時利用可能な無線方式数は2であることを記憶部1に記憶させる。また、制御部2は、ノードIDが「n1_3」の無線通信装置13がサポートする無線方式数は3であり、同時利用可能な無線方式数は2であることを記憶部1に記憶させる。
また、制御部2は、ノードIDが「n2_1」の無線通信装置14と、ノードIDが「n2_2」の無線通信装置15と、ノードIDが「n2_3」の無線通信装置16と、ノードIDが「n2_4」の無線通信装置17とが、2ホップ先で接続されているノード(2ホップ隣接ノード)であることを記憶部1に記憶させる。
また、制御部2は、隣接ノードである無線通信装置11が、接続可能無線方式数3でノードIDが「n2_1」の無線通信装置14に接続しており、隣接ノードである無線通信装置11が、接続可能無線方式数3でノードIDが「n2_2」の無線通信装置15に接続しており、隣接ノードである無線通信装置11が、接続可能無線方式数1でノードIDが「n2_3」の無線通信装置16に接続していることを記憶部1に記憶させる。
また、制御部2は、隣接ノードである無線通信装置12が、接続可能無線方式数2でノードIDが「n2_1」の無線通信装置14に接続しており、隣接ノードである無線通信装置12が、接続可能無線方式数1でノードIDが「n2_2」の無線通信装置15に接続しており、隣接ノードである無線通信装置12が、接続可能無線方式数2でノードIDが「n2_3」の無線通信装置16に接続しており、隣接ノードである無線通信装置12が、接続可能無線方式数2でノードIDが「n2_4」の無線通信装置17に接続していることを記憶部1に記憶させる。
また、制御部2は、隣接ノードである無線通信装置13が、接続可能無線方式数1でノードIDが「n2_1」の無線通信装置14に接続しており、隣接ノードである無線通信装置13が、接続可能無線方式数1でノードIDが「n2_3」の無線通信装置16に接続しており、隣接ノードである無線通信装置13が、接続可能無線方式数1でノードIDが「n2_4」の無線通信装置17に接続していることを記憶部1に記憶させる。
続いて、無線通信装置10の制御部2は、ステップS301〜ステップS307の処理で得た結果に基づいて、ステップS308の処理を実施する。制御部2は、隣接ノードの集合N1に含む無線通信装置11〜17のノードIDとして、「n1_1」と、「n1_2」と、「n1_3」とを記憶部2に記憶させる。また、制御部2は、2ホップ隣接ノードの集合N2に含む無線通信装置11〜17のノードIDとして、「n2_1」と、「n2_2」と、「n2_3」と、「n2_4」とを記憶部2に記憶させる。また、制御部2は、フラッディング参加ノードの集合Fと、Fに属する無線通信装置11〜17のフラッディングにより無線通信装置10からのパケットが到達可能となったノードの集合C2とを空集合φとする。また、制御部2は、変数mをnullと設定する。
続いて、無線通信装置10の制御部2は、ステップS301〜ステップS308の処理で得た結果に基づいて、ステップS309〜ステップS319の処理を実施する。
(ステップS309)制御部2は、N1に属しFに属さないノードxと、N2に属しC2に属さないノードとのリンク(通信)において、ノードx毎に、ノードxがサポートする「サポート無線方式数」の値が「同時利用可能無線方式数」の値と等しくなるリンクとして、ノードID「n1_1」の無線通信装置11とノードID「n2_1」との間のリンクと、ノードID「n1_1」の無線通信装置11とノードID「n2_2」との間のリンクとの2つのリンクがあると判断する。よってリンクの総数sは2であるため、制御部2は記憶部1にリンクの総数sは2であると記憶させる。
(ステップS310)制御部2は、sは0ではないと判断し、ステップS312に進む。
(ステップS312)制御部2は、ノードID「n1_1」をフラッディング参加ノードの集合Fに登録する。また、制御部2はブロードキャスト参加無線方式数を1と設定し、併せて集合Fに登録する。制御部2は、この2つの情報を関連付けて記憶部1に記憶させる。また、制御部2は、Fのフラッディングにより無線通信装置10からのパケットが到達可能となったノードの集合C2にノードID「n2_1」とノードID「n2_2」とを記憶させる。
(ステップS313)N2は「n2_1」と、「n2_2」と、「n2_3」と、「n2_4」であり、C2は「n2_1」と、「n2_2」である。そのため制御部2は、N2とC2とは等しくないと判断し、ステップS309に戻る。
(ステップS309)制御部2は、N1に属しFに属さないノードxと、N2に属しC2に属さないノードとのリンク(通信)において、ノードx毎に、ノードxがサポートする「サポート無線方式数」の値が「同時利用可能無線方式数」の値と等しくなるリンクは無いと判断する。よって、制御部2は記憶部1にリンクの総数sは0であると記憶させる。
(ステップS310)制御部2は、sは0であると判断し、ステップS311に進む。
(ステップS311)制御部2は、集合Fに含まれるノードID「n1_1(ブロードキャスト参加無線方式数1)」を、集合F1に写し、集合Fを空集合φとする。また、制御部2は、変数mを2と設定する。なお、この時点での集合および変数の値は以下の通りである。N1に含まれるノードIDは、「n1_1」、「n1_2」、「n1_3」である。N2に含まれるノードIDは、「n2_1」、「n2_2」、「n2_3」、「n2_4」である。Fは空集合φである。C2に含まれるノードIDは、「n2_1」、「n2_2」である。F1に含まれるノードIDは、「n1_1(ブロードキャスト参加無線方式数1)」である。変数mは2である。
(ステップS314)制御部2は、N1に属しFに属さないノード(n1_1、n1_2、n1_3)と、N2に属しC2に属さないノード(n2_3、n2_4)とのリンクにおいて、ノード(n1_1、n1_2、n1_3)の「同時利用可能無線方式数」の値と「リンクで接続可能な無線方式の数」の値との和が、ノード(n1_1、n1_2、n1_3)でサポートする「サポート無線方式数」の値よりも大きく、かつ、ノード(n1_1、n1_2、n1_3)でサポートする「サポート無線方式数」の値から「リンクで接続可能な無線方式の数」の値を減算した数に1を加算した値が2となるリンクとして、ノードID「n1_2」とノードID「n2_3」との間のリンクと、ノードID「n1_2」とノードID「n2_4」との間のリンクとの2つのリンクがあると判断する。よってリンクの総数sは2であるため、制御部2は記憶部1にリンクの総数sは2であると記憶させる。
(ステップS315)制御部2は、sは0ではないと判断し、ステップS317に進む。
(ステップS317)制御部2は、ノードID「n1_2」をフラッディング参加ノードの集合Fに登録する。また、制御部2はブロードキャスト参加無線方式数を2と設定し、併せて集合Fに登録する。制御部2は、この2つの情報を関連付けて記憶部1に記憶させる。また、制御部2は、Fのフラッディングにより無線通信装置10からのパケットが到達可能となったノードの集合C2にノードID「n2_3」とノードID「n2_4」とを追加記憶させる。
なお、この時点での集合および変数の値は以下の通りである。N1に含まれるノードIDは、「n1_1」、「n1_2」、「n1_3」である。N2に含まれるノードIDは、「n2_1」、「n2_2」、「n2_3」、「n2_4」である。Fに含まれるノードIDは、「n1_2(ブロードキャスト参加無線方式数2)」である。C2に含まれるノードIDは、「n2_1」、「n2_2」、「n2_3」、「n2_4」である。F1に含まれるノードIDは、「n1_1(ブロードキャスト参加無線方式数1)」である。変数mは2である。
(ステップS318)N2は「n2_1」と、「n2_2」と、「n2_3」と、「n2_4」であり、C2は「n2_1」と、「n2_2」と、「n2_3」と、「n2_4」である。そのため制御部2は、N2とC2とは等しいと判断し、ステップS319に進む。
(ステップS319)処理を終了する。
上述した手順により求めた集合Fと集合F1とに登録されたすべてのノードがフラッディングに参加するノードとなる。よって、無線通信装置10が送信するパケットのフラッディングに参加する無線通信装置は、ノードIDが「n1_2」の無線通信装置12と、ノードIDが「n1_1」の無線通信装置11との2つの無線通信装置である。また、各ノードにおいてフラッディング要請時のブロードキャスト参加無線方式数は最も大きいものを採用するため、ノードIDが「n1_1」の無線通信装置11のブロードキャスト参加無線方式数は1であり、ノードIDが「n1_2」の無線通信装置12のブロードキャスト参加無線方式数は2である。
また、制御部2は、上述した情報をノード情報テーブルの該当欄に記憶させる。なお、ノード情報テーブルの情報は次のHelloパケットによって広告される。
(フラッディングパケットの送受信)
次に、無線通信装置10〜17が実施するフラッディングパケットの送受信手順について説明する。フラッディングパケットを送信する無線通信装置10〜17は、フラッディングパケットをブロードキャストする。フラッディングパケットのフォーマットについては後述する。なお、フラッディングパケットの宛先は、ブロードキャストアドレスやマルチキャストアドレスなど、フラッディングを示すアドレスを使用する。
図11は本実施形態におけるフラッディングパケットのフォーマットを示した図である。図示する例では、フラッディングパケットのフォーマットのフィールドとして、「宛先アドレス」フィールドと、「フラッディング開始ノードID」フィールドと、「送信ノードID」フィールドと、「シーケンス番号」フィールドと、「データ部」フィールドとのフィールドがある。
「宛先アドレス」フィールドは、フラッディングパケットの送信先アドレスを登録するフィールドである。例えば、制御部2は、「宛先アドレス」フィールドにブロードキャストアドレスを登録する。「フラッディング開始ノードID」フィールドは、フラッディングパケットを作成した無線通信装置10〜17のノードIDを登録するフィールドである。例えば、無線通信装置10の制御部2は、「フラッディング開始ノードID」フィールドにsを登録する。また、無線通信装置11の制御部2は、「フラッディング開始ノードID」フィールドにn1_1を登録する。
「送信ノードID」フィールドは、フラッディングパケットを実際に送信する無線通信装置10〜17のノードIDを登録するフィールドである。例えば、無線通信装置10の制御部2は、「送信ノードID」のフィールドにsを登録する。また、無線通信装置11の制御部2は、「送信ノードID」のフィールドにn1_1を登録する。
「シーケンス番号」フィールドは、制御部2がフラッディングパケットを生成する際、1種類のフラッディングパケットに1つ設定される固有の番号であるシーケンス番号を登録するフィールドである。例えば、無線通信装置10の制御部2は、1番目に生成したフラッディングパケットにはシーケンス番号を1と設定し、2番目に生成したフラッディングパケットにはシーケンス番号を2と設定した場合、1番目に生成したフラッディングパケットの「シーケンス番号」フィールドには1を登録し、2番目に生成したフラッディングパケットの「シーケンス番号」フィールドには2を登録する。
「データ部」フィールドは、フラッディングパケットで送信するデータを登録するフィールドである。
図12は本実施形態におけるフラッディング管理テーブルを示した図である。無線通信装置10〜17の記憶部1は、フラッディング管理テーブルを記憶する。図示する例では、フラッディング管理テーブルの属性として、「フラッディング開始ノード」と、「シーケンス番号」とがある。「フラッディング開始ノード」には、フラッディングパケットに含まれるフラッディング開始ノードIDが記憶される。「シーケンス番号」には、フラッディングパケットに含まれるシーケンス番号が記憶される。フラッディングパケットを受信したタイミングで、制御部2は受信したフラッディングパケットの情報をフラッディング管理テーブルに記憶させる。
図13は無線通信装置10〜17がフラッディングパケットを受信した際の処理手順について示したフローチャートである。
(ステップS401)フラッディングパケットを受信した無線通信装置10〜17の制御部2は、受信したフラッディングパケットに含まれるフラッディング開始ノードIDとシーケンス番号との組み合わせが、記憶部1が記憶するフラッディング管理テーブルに含まれているか否か判断する。受信したフラッディングパケットに含まれるフラッディング開始ノードIDとシーケンス番号との組み合わせが、記憶部1が記憶するフラッディング管理テーブルに含まれていると制御部2が判断した場合、ステップS406に進む。それ以外ではステップS402に進む。
(ステップS402)制御部2は、受信したフラッディングパケットに含まれるフラッディング開始ノードIDとシーケンス番号とを記憶部1が記憶するフラッディング管理テーブルに記憶させる。その後、ステップS403に進む。
(ステップS403)制御部2は、記憶部1が記憶するノード情報テーブルを参照し、ノード情報テーブルのうち、フラッディングパケットに含まれる送信ノードIDのエントリにおいて、「参加要請されたブロードキャスト参加無線方式数」フィールドの値が1以上であるか否か判断する。「参加要請されたブロードキャスト参加無線方式数」フィールドの値が1以上であると制御部2が判断した場合ステップS404に進み、それ以外ではステップS406に進む。
(ステップS404)制御部2は、「参加要請されたブロードキャスト参加無線方式数」フィールドの値に基づいて、ブロードキャストする無線方式を決定する。例えば、「参加要請されたブロードキャスト参加無線方式数」フィールドの値が2であれば、制御部2は自身が備えている無線方式のうち2つの無線方式を使用して、受信したフラッディングパケットのブロードキャストを行うように決定する。その後、ステップS405に進む。
(ステップS405)制御部2は、受信したフラッディングパケットが含んでいる「送信ノードID」を自ノードIDに変更し、ステップS404で決定した無線方式を使用して変更後のフラッディングパケットをブロードキャストする。その後、ステップS407に進む。
(ステップS406)制御部2は、受信したフラッディングパケットを破棄する。その後、ステップS407に進む。
(ステップS405)処理を終了する。
上述したとおり、本実施形態によれば、無線通信装置10〜17がサポートしている無線通信方式と、同時に使用することができる無線通信方式の数に基づいて、フラッディングパケットを送信する無線通信方式の数を決定するため、無線通信装置10〜17が使用する無線方式が変化した場合においても、無線通信装置10〜17は、隣接する他の無線通信装置10〜17が現在使用している無線方式を知ることなく、フラッディングを効率化し、無線帯域を効率的に利用した上で、フラッディングパケットを受信することができないノードをより減少させるフラッディングを行うことができる。
なお、ステップS404で、制御部2は「参加要請されたブロードキャスト参加無線方式数」フィールドの値に基づいてブロードキャストする無線方式を決定する際に、自身が同時に通信可能な無線方式数(同時利用可能無線方式数)を超えた数の無線方式数を使用すると決定することも考えられる。この場合、無線通信装置10〜17が同時に通信可能な無線方式すべてでブロードキャストを行っても、無線方式の組み合わせによっては2ホップ隣接ノードにフラッディングパケットが到達しない場合も考えられる。
このような場合、全ての無線通信装置10〜17に対してフラッディングの参加を要請し、「参加要請するブロードキャスト参加無線方式数」を最大とすることで、すべての無線通信装置10〜17にフラッディングパケットを到達させるようにしても良い。
また、以下のようにステップS314〜ステップS319の手順をステップS314´〜ステップS319´に変更し、隣接ノードが同時利用可能な無線方式全てでブロードキャストを行っても、無線通信装置10〜17が使用している無線方式によっては到達できない2ホップ隣接ノードに対しては到達を期待しない方法も考えられる。
(ステップS314´)制御部2は、N1に属しFに属さないノードxと、N2に属しC2に属さないノードとのリンクにおいて、ノードx毎に、ノードxの「同時利用可能無線方式数」の値と「リンクで接続可能な無線方式の数」の値との和が、ノードxでサポートする「サポート無線方式数」の値よりも大きく、かつ、ノードxでサポートする「サポート無線方式数」の値から「リンクで接続可能な無線方式の数」の値を減算した数に1を加算した値がmとなり、かつ、ノードxで「同時利用可能無線方式数」の値がm以下であるリンクの数sを求める。また、制御部2は、sが最大となるノードxをノードnとして記憶部2に記憶させる。その後、ステップS315´に進む。
(ステップS315´)制御部2は、ステップS314で求めたノードnのリンク数sが0であるか否か判断する。ノードnのリンク数sが0であると制御部2が判断した場合ステップS316´に進み、それ以外の場合ステップS317´に進む。
(ステップS316´)制御部2は、集合Fの値を一時集合F1に移動させ、集合Fを空集合とする。また、制御部2は、変数mに1を加算する。その後、ステップS314´に戻る。
(ステップS317´)制御部2は、ノードnをフラッディング参加ノードと決定し、フラッディング要請時のブロードキャスト参加無線方式数をmとする。また、制御部2は、ノードnを集合Fに登録するmとする。また、制御部2は、ノードnがサポートする「サポート無線方式数」の値が「同時利用可能無線方式数」の値と等しくなるリンクをもつノードを集合C2に登録する。その後、ステップS318´に進む。
(ステップS318´)制御部2は、N2とC2とが等しいか否か判断する。N2とC2が等しいと制御部2が判断した場合ステップS319´に進む。また、「同時利用可能無線方式数」の値がm以下であるリンクが無い場合もステップS319´に進む。それ以外はステップS314´に戻る。
(ステップS319´)処理を終了する。
これにより、隣接ノードが同時利用可能な無線方式全てでブロードキャストを行っても、無線通信装置10〜17が使用している無線方式によっては到達できない2ホップ隣接ノードに対しては到達を期待せず、他の無線通信装置10〜17にはフラッディングパケットを到達させることができる。
なお、ステップS301〜ステップS319で説明したフラッディング参加申請ノードの決定手順において、計算ノードと隣接ノードとの間の無線リンクの接続可能な無線方式の数を利用し、計算ノードと隣接ノード間の到達に必要な通信回数の削減を期待する方法も考えられる。
例えば、ステップS309やステップS314で決定される隣接ノードにおいて、条件を満たす候補が複数あった場合、計算ノードとそれらの隣接ノードとの間のリンクで接続可能な無線方式の数が最大のものを優先して選ぶことで、計算ノードと隣接ノード間における通信回数の削減が期待できる。
また、同様にステップS309やステップS314で決定される隣接ノードにおいて、条件を満たす候補が複数あった場合、計算ノードとそれらの隣接ノードとの間のリンクで接続可能な無線方式の数と、隣接ノードで同時利用可能な無線方式の数が最大のものを優先して選ぶことで、計算ノードと隣接ノード間における通信回数の削減が期待できる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。