(57)【要約】  ノード（１０）は、隣接するノードである隣接ノードから、当該隣接ノードにおいて隣接するノードを示す隣接ノード情報を受信し、隣接ノードのなかに、受信した隣接ノード情報に示されるノードと共通である共通隣接ノードがあるか判定する。そして、ノード（１０）は、共通隣接ノードがあると判定された場合には、当該共通隣接ノードまたは隣接ノード情報の送信元である隣接ノードとの間で片パスのリンクを形成する旨の情報をリンクテーブル（１３ｃ）に登録する。また、ノード（１０）は、共通隣接ノードがないと判定された場合には、隣接ノード情報の送信元である隣接ノードとの間で両パスのリンクを形成する旨の情報をリンクテーブル（１３ｃ）に登録する。
2012132013.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードから構成される無線アドホックネットワークにおけるノードであって、
自ノードと隣接する第一の隣接ノードから、当該第一の隣接ノードと隣接するノードを示す隣接ノード情報を受信する受信部と、
自ノードと隣接する隣接ノードのなかに、受信した前記隣接ノード情報に示されるノードと共通である第二の隣接ノードがあるか判定する判定部と、
第二の隣接ノードがあると判定された場合には、当該第二の隣接ノードまたは前記第一の隣接ノードとの間で片パスのリンクを形成する旨の情報を記憶部に登録する第一の登録部と、
第二の隣接ノードがないと判定された場合には、前記第１の隣接ノードとの間で両パスのリンクを形成する旨の情報を前記記憶部に登録する第二の登録部と
を有することを特徴とするノード。
【請求項２】
前記受信部は、前記第一の隣接ノードから前記第一の隣接ノードが記憶するリンク情報をさらに受信し、
前記第一の登録部は、受信した前記リンク情報に示されるリンク方向に従って、前記第二の隣接ノードまたは前記第一の隣接ノードを選択し、選択したノードに対して片パスのリンクを形成する旨の情報を自ノードの記憶部に登録することを特徴とする請求項１に記載のノード。
【請求項３】
複数のノードと無線アドホックネットワークを形成するノードが、他のノードとの間でリンクを形成するリンク形成方法であって、
自ノードと隣接する第一の隣接ノードから、当該第一の隣接ノードと隣接するノードを示す隣接ノード情報を受信し、
自ノードと隣接する隣接ノードのなかに、受信した前記隣接ノード情報に示されるノードと共通である第二の隣接ノードがあるか判定し、
第二の隣接ノードがあると判定された場合には、当該第二の隣接ノードまたは前記第一の隣接ノードとの間で片パスのリンクを形成する旨の情報を記憶部に登録し、
第二の隣接ノードがないと判定された場合には、前記第一の隣接ノードとの間で両パスのリンクを形成する旨の情報を前記記憶部に登録することを特徴とするリンク形成方法。
【請求項４】
前記第一の隣接ノードから前記第一の隣接ノードが記憶するリンク情報をさらに受信し、
受信した前記リンク情報に示されるリンク方向に従って、前記第二の隣接ノードまたは前記第一の隣接ノードを選択し、選択したノードに対して片パスのリンクを形成する旨の情報を自ノードの記憶部に登録することを特徴とする請求項３に記載のリンク形成方法。
【請求項５】
複数のノードと無線アドホックネットワークを形成するノードとなるコンピュータに、他のノードとの間でリンクを形成するリンク形成方法を実行させるプログラムであって、
自ノードと隣接する第一の隣接ノードから、当該第一の隣接ノードと隣接するノードを示す隣接ノード情報を受信し、
自ノードと隣接する隣接ノードのなかに、受信した前記隣接ノード情報に示されるノードと共通である第二の隣接ノードがあるか判定し、
第二の隣接ノードがあると判定された場合には、当該第二の隣接ノードまたは前記第一の隣接ノードとの間で片パスのリンクを形成する旨の情報を記憶部に登録し、
第二の隣接ノードがないと判定された場合には、前記第一の隣接ノードとの間で両パスのリンクを形成する旨の情報を前記記憶部に登録する
処理を実行させるリンク形成プログラム。
【請求項６】
前記第一の隣接ノードから前記第一の隣接ノードが記憶するリンク情報をさらに受信し、
受信した前記リンク情報に示されるリンク方向に従って、前記第二の隣接ノードまたは前記第一の隣接ノードを選択し、選択したノードに対して片パスのリンクを形成する旨の情報を自ノードの記憶部に登録する処理を実行させる請求項５に記載のリンク形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード、リンク形成方法およびリンク形成プログラムに関する。
【背景技術】
【０００２】
近年、基地局やアクセスポイントを用いることなく端末間で自立分散型のネットワークを構築する無線アドホックネットワークが開発されている。無線アドホックネットワークは、無線通信が可能な多数の端末（以下、ノードという）が相互に接続されることで構築される。【０００３】
このような無線アドホックネットワークにおける各ノードは、隣接する他ノードとＨｅｌｌｏメッセージを交換して隣接ノードの存在を検出する。そして、ノードは、検出した全ての隣接ノードとの間で両パスのリンクを形成するために、全ての隣接ノードについてリンクテーブルに登録する。そして、ノード間でリンクの形成を行った後、各ノードは、リンクテーブルを用いて、通信データの転送制御を実施する。【０００４】
ここで、図１３を用いて、リンクテーブルの例を説明する。図１３は、従来のリンクテーブルの例を示す図である。図１３に例示するように、リンクテーブルは、全ての隣接ノード（図１３の例では、ｘ個のノード）について、隣接ノードを一意に識別する「リンクノードＩＤ」と、隣接ノードから自ノード方向への通信品質である「品質情報」とを記憶する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００９−５３８０２７号公報
【特許文献２】特表２００３−５２２４９５号公報
【特許文献３】特開２００５−１６８０２０号公報
【特許文献４】特開２００７−２６６６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した従来の技術では、リンクテーブルの容量が大きくなってしまうという課題があった。つまり、従来の技術では、全ての隣接ノードについてリンクテーブルに登録するので、リンクテーブルのエントリ数が多くなり、リンクテーブルの容量が大きくなってしまう。【０００７】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、リンクテーブルの容量を削減することを目的とする。
【課題を解決するための手段】
【０００８】
開示のノードは、自ノードと隣接する第一の隣接ノードから、当該第一の隣接ノードと隣接するノードを示す隣接ノード情報を受信する受信部と、自ノードと隣接する隣接ノードのなかに、受信した前記隣接ノード情報に示されるノードと共通である第二の隣接ノードがあるか判定する判定部と、第二の隣接ノードがあると判定された場合には、当該第二の隣接ノードまたは前記第一の隣接ノードとの間で片パスのリンクを形成する旨の情報を記憶部に登録する第一の登録部と、第二の隣接ノードがないと判定された場合には、前記第１の隣接ノードとの間で両パスのリンクを形成する旨の情報を前記記憶部に登録する第二の登録部とを有する。
【発明の効果】
【０００９】
開示のノードは、リンクテーブルの容量を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る通信システム構成を示す図である。
【図２】図２は、実施例１に係るノードの構成を示すブロック図である。
【図３】図３は、ルーティングテーブルの一例を示す図である。
【図４】図４は、隣接ノードテーブルを示す図である。
【図５】図５は、リンクテーブルを示す図である。
【図６】図６は、Ｈｅｌｌｏフレームの構成例を示す図である。
【図７】図７は、３ノードによる片パス構成の小ループを示す図である。
【図８】図８は、２ノード間の双方向リンクを示す図である。
【図９】図９は、ノード間でのリンクを形成する処理を説明する図である。
【図１０】図１０は、共通隣接ノードがある場合におけるノードのリンク形成処理手順を説明するためのフローチャートである。
【図１１】図１１は、共通隣接ノードがない場合におけるノードのリンク形成処理手順を説明するためのフローチャートである。
【図１２】図１２は、リンク形成プログラムを実行するコンピュータを示す図である。
【図１３】図１３は、従来のリンクテーブルの例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明に係るノード、リンク形成方法およびリンク形成プログラムの実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
以下の実施例では、実施例１に係る通信システムの構成、通信システム内のノードの構成およびノードの処理の流れを順に説明し、最後に実施例１による効果を説明する。【００１３】
［通信システムの構成］
まず、図１を用いて、通信システムの構成を説明する。図１は、実施例１に係る通信システム構成を示す図である。図１に示すように、通信システム１００は、無線アドホックネットワークを形成する複数のノード１０Ａ〜１０Ｇを有する。なお、無線アドホックネットワークを形成するノードの数は、これに限定されるものではない。【００１４】
ノード１０Ａ〜１０Ｇは、例えばコンピュータなどの近距離無線通信機能を有する通信装置である。このような各ノード１０Ａ〜１０Ｇは、隣接するノードとの間で経路情報やノード間リンクの通信品質情報などのノード情報を含むメッセージであるＨＥＬＬＯメッセージの送受信を定期的に行う。ここで、隣接するノードとは、無線通信が届く範囲内の他のノードであり、言い換えると、１Ｈｏｐで無線通信できる他のノードのことをいう。例えば、図１の例を用いて説明すると、ノード１０Ａの隣接ノードには、ノード１０Ｂ、ノード１０Ｃ、ノード１０Ｆが該当する。【００１５】
そして、各ノード１０Ａ〜１０Ｇは、ＨＥＬＬＯメッセージの送受信で得られた各経路の通信品質を計算し、その結果に基づいて最終宛先までの経路を複数構築し、最適な経路の確定を行ってルーティングテーブルを生成する。また、各ノード１０Ａ〜１０Ｇは、構築した経路に関して、実際のデータ通信の実績や隣接ノードとのＨＥＬＬＯメッセージの送受信から、各経路の通信品質を再計算し、経路の維持や最適経路の学習をして、ルーティングテーブルの随時変更を行う。【００１６】
ここで、図２を用いて、図１に示したノードの構成を説明する。図２は、実施例１に係るノードの構成を示すブロック図である図２に示すように、このノード１０は、通信制御Ｉ／Ｆ１１、制御部１２、記憶部１３を有する。以下にこれらの各部の処理を説明する。なお、図１に示したノード１０Ａ〜１０Ｇは、それぞれ同様の構成であり、ノード１０Ａ〜１０Ｇを区別せずに説明する場合には、ノード１０と記載する。【００１７】
通信制御Ｉ／Ｆ１１は、隣接ノードとの間でやり取りする各種情報に関する通信を制御する。例えば、通信制御Ｉ／Ｆ１１は、隣接ノードとの間でHELLOメッセージの送受信を行う。【００１８】
記憶部１３は、制御部１２による各種処理に必要なデータおよびプログラムを格納する。また、記憶部１３は、ルーティングテーブル１３ａ、隣接ノードテーブル１３ｂおよびリンクテーブル１３ｃを有する。なお、記憶部１３とは、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（flash  memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。【００１９】
ルーティングテーブル１３ａは、宛先ノードまでの経路に関する情報を記憶する。例えば、ルーティングテーブル１３ａは、図３に例示するように、グローバル宛先アドレスである宛先ＧＤ（Global  Destination）と、転送先アドレスの候補である転送先候補ＬＤ（Local  Destination）とを記憶する。図３は、ルーティングテーブルの一例を示す図である。【００２０】
ここで、グローバル宛先アドレスとは、最終的な宛先を示す宛先アドレスである。また、転送先候補ＬＤとは、ＧＤアドレスにメッセージを送る場合に、次に転送すべき転送先のアドレスの候補である。【００２１】
また、ルーティングテーブル１３ａは、経路品質情報として、宛先までのホップ数であるＨｏｐと、宛先までの経路上での遅延を数値化した経路品質である経路品質と、相手ノードから自ノード方向への通信品質である評価値とを記憶する。ここで、ホップ数とは、ＧＤアドレスにメッセージが到達するまでに必要な送信の回数である。また、経路品質は、宛先までの経路の通信品質である。また、評価値は、復路の通信品質である。【００２２】
隣接ノードテーブル１３ｂは、隣接ノードに関する情報を記憶する。例えば、隣接ノードテーブル１３ｂは、図４に例示するように、隣接ノードを一意に識別する隣接ノードＩＤと、隣接ノードから自ノード方向への通信品質である品質情報とを記憶する。また、隣接ノードテーブル１３ｂは、隣接ノードが保持する隣接ノードテーブルであるＮＴ（Neighbor  Table）と、隣接ノードが保持するリンクテーブルであるＬＴ（Link  Table）とを記憶する。図４は、隣接ノードテーブルを示す図である。【００２３】
リンクテーブル１３ｃは、リンクが形成されたノードに関する情報を記憶する。例えば、リンクテーブル１３ｃは、図５に例示するように、リンクが形成されたノードを一意に識別するリンクノードＩＤと、リンクが形成されたノードから自ノード方向への通信品質である品質情報とを記憶する。また、図５の例では、リンクテーブル１３ｃは、ｍ個分のエントリを記憶する。図５は、リンクテーブルを示す図である。【００２４】
また、リンクテーブル１３ｃは、後述する片パス登録部１２ｃおよび両パス登録部１２ｄによって、全て隣接ノード分の情報が登録されるのではなく、一部の隣接ノードの情報が登録される。なお、詳しい登録処理については、後に詳述する。【００２５】
制御部１２は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。また、制御部１２は、受信部１２ａ、判定部１２ｂ、片パス登録部１２ｃ、両パス登録部１２ｄを有する。例えば、実施例１のノード１０では、制御部１２として、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などを適用する。【００２６】
受信部１２ａは、隣接するノードである隣接ノードから、隣接ノードにおいて隣接するノードを示す隣接ノードの情報およびリンクの情報を受信する。例えば、受信部１２ａは、隣接ノードから、Ｈｅｌｌｏフレームを受信し、Ｈｅｌｌｏフレームに含まれる隣接ノードテーブルおよびリンクテーブルを取得する。そして、取得した隣接ノードテーブルおよびリンクテーブルを記憶部１３の隣接ノードテーブル１３ｂに登録する。【００２７】
ここで、図６を用いて、受信部１２ａが受信するHELLOフレームについて説明する。図６は、Ｈｅｌｌｏフレームの構成例を示す図である。図６に示すように、HELLOフレームは、アドホックヘッダ、ＨＥＬＬＯメッセージヘッダ、隣接ノードテーブル（図６では、ＮＴ  ＬＩＳＴと記載）、リンクテーブル（図６では、ＬＴ  ＬＩＳＴと記載）が設定される。【００２８】
アドホックヘッダは、HELLOフレームの宛先アドレスであるＬＤ（Local  Destination）と、HELLOフレームの送信元ノードのアドレスであるＬＳ（Local  Source）と、パケットの種別を示すパケットタイプ、パケットサイズを示すパケット長とが設定される。また、ＨＥＬＬＯメッセージヘッダは、HELLOフレームの送信元ノードの識別子であるＮｏｄｅ  ＩＤと、隣接ノードテーブルのエントリ数であるＮＴ  ＬＩＳＴ数と、リンクテーブルのエントリ数であるＬＴ  ＬＩＳＴ数とが設定される。なお、図６に例示するように、各データサイズについて、例えば、ＬＤが６バイトであり、ＬＳが６バイトであり、パケットタイプが１バイトであり、パケット長が２バイトであり、ＮＴ  ＬＩＳＴ数が２バイトであり、ＬＴ  ＬＩＳＴ数が２バイトである。【００２９】
判定部１２ｂは、自ノード１０と隣接する隣接ノードのなかに、受信した隣接ノード情報に示されるノードと共通である共通隣接ノードがあるか判定する。例えば、判定部１２ｂは、隣接ノードテーブル１３ｂに登録された他ノードの隣接ノードテーブル（図４の例では、「ＮＴ」の項目に相当）から隣接ノードＩＤを取得する。そして、判定部１２ｂは、隣接ノードテーブル１３ｂに登録された自ノードと隣接する隣接ノードＩＤを取得する。【００３０】
判定部１２ｂは、他ノードと隣接するノードＩＤと、自ノードと隣接する隣接ノードＩＤとを比較し、共通のノードＩＤが存在するか判定する。この結果、判定部１２ｂは、共通のノードＩＤが存在する場合には、片パスのリンクを形成する旨の指示を片パス登録部１２ｃに通知する。また、判定部１２ｂは、共通のノードＩＤが存在しない場合には、隣接ノードとの間で両パスのリンクを形成する旨の指示を両パス登録部１２ｄに通知する。【００３１】
片パス登録部１２ｃは、判定部１２ｂによって共通隣接ノードがあると判定された場合には、共通隣接ノードまたは隣接ノード情報の送信元である隣接ノードとの間で片パスのリンクを形成する旨の情報をリンクテーブル１３ｃに登録する。例えば、片パス登録部１２ｃは、片パスのリンクを形成する旨の指示を判定部１２ｃから受信すると、隣接ノードテーブル１３ｂに登録された他ノードのリンクテーブル（図４の例では、「ＬＴ」の項目に相当）を取得する。【００３２】
そして、片パス登録部１２ｃは、他ノードのリンクテーブルに示されるリンク方向に従って、共通隣接ノードまたは隣接ノード情報の送信元である隣接ノードを選択し、選択したノードに対して片パスのリンクを形成する旨の情報をリンクテーブル１３ｃに登録する。その後、片パス登録部１２ｃは、自ノードのリンクテーブルに更新があった場合に、Ｈｅｌｌｏフレームにてリンクテーブル１３ｃの更新を隣接ノードにブロードキャストする。【００３３】
このように、ＨｅｌｌｏフレームにてＬＴ更新を隣接ノードにブロードキャストすることで、Ｈｅｌｌｏフレームを受信した隣接ノードも同様のリンク形成処理を実施する。これにより、図７に例示するように、小ループのリンクが形成される。ここで、図７の例を用いて、３ノードによる片パス構成の小ループのリンクについて説明する。図７は、３ノードによる片パス構成の小ループを示す図である。図７の例では、ノード１０Ａとノード１０Ｂとの間に共通する隣接ノード１０Ｃがあることを示している。【００３４】
まず、図７に示すように、ノード１０Ａは、ノード１０Ｂとの間で片パスのリンクを形成し、ノード１０Ｂの情報をリンクテーブル１３ｃに登録する。そして、ノード１０Ａは、ＨｅｌｌｏフレームにてＬＴ更新を隣接ノード１０Ｂ、１０Ｃにブロードキャストする。その後、ノード１０Ｂ、１０Ｃがそれぞれ同様に片パスのリンクを形成する処理を行うことで、図７に示すように、ノード１０Ｂとノード１０Ｃとの間で片パスのリンクが形成され、ノード１０Ｃとノード１０Ａとの間で片パスのリンクが形成される。これにより、ノード１０Ａ〜１０Ｃの３ノードによる片パス構成の小ループのリンクが形成される。なお、図７の例では、矢印がリンクの方向を示している。【００３５】
このように、最小限のループを構成するようにリンク関係を形成することで、ノード間の到達率を確保できる。つまり、３つのノードの小ループの片パス構成が構成されるとき、自ノードがリンクしているノードを転送先として利用可能なので、リンクする必要がなくなる。【００３６】
このため、通信システム１００では、ノード間のデータ到達率を確保しつつ、リンクテーブル１３ｃに登録するエントリ数を減らすことができる。図７の例で説明すると、ノード１０Ａは、リンクテーブル１３ｃにノード１０Ｃの情報を登録しておらず、「ノード１０Ａ→ノード１０Ｃ」のリンクを形成していないが、「ノード１０Ａ→ノード１０Ｂ」のリンクを形成している。このため、ノード１０Ａは、ノード１０Ｂを転送先として利用してノード１０Ｃにデータを送信できる。【００３７】
両パス登録部１２ｄは、共通隣接ノードがないと判定された場合には、隣接ノード情報の送信元である隣接ノードとの間で両パスのリンクを形成する旨の情報をリンクテーブル１３ｃに登録する。例えば、両パス登録部１２ｄは、両パスのリンクを形成する旨の指示を判定部１２ｂから受信すると、リンクテーブル１３ｃに隣接ノードを登録する。その後、両パス登録部１２ｄは、Ｈｅｌｌｏフレームにてリンクテーブル１３ｃの更新を隣接ノードにブロードキャストする。【００３８】
このように、両パス登録部１２ｄは、Ｈｅｌｌｏフレームにてリンクテーブル１３ｃの更新を隣接ノードにブロードキャストすることで、Ｈｅｌｌｏフレームを受信した隣接ノードも同様のリンク形成処理を実施し、両パスのリンクを形成する。【００３９】
ここで、図８の例を用いて、２ノード間の双方向リンクについて説明する。図８は、２ノード間の双方向リンクを示す図である。図８に示すように、ノード１０Ａとノード１０Ｆとの間に共通する隣接ノード１０Ｃがない。そして、図８に示すように、ノード１０Ａとノード１０Ｆとの間で双方向リンクを形成する。このように、双方向リンクを形成することで、リンクテーブル１３ｃのエントリ数を減らすことはできないが、ノードが孤立することを防ぐことができる。【００４０】
次に、図９を用いて、ノード間でのリンクを形成する処理を説明する。図９は、ノード間でのリンクを形成する処理を説明する図である。なお、以下に説明するノード間でのリンクを形成する処理は、通信システム１００における各ノードの起動時から一定時間だけ行われる処理である。図９に示すように、ノード１０Ａは、隣接ノードであるノード１０Ｂ、１０Ｃ、１０ＦからＨｅｌｌｏフレームを受信する（ステップＳ１）。そして、ノード１０Ａは、隣接ノードテーブル１３ｂに記憶された自ノードと隣接する隣接ノードのＩＤである「Ｂ」、「Ｃ」、「Ｆ」と、受信したＨｅｌｌｏフレームに含まれる他ノード１０Ｂ、１０Ｃ、１０Ｆと隣接する隣接ノードのＩＤとを比較する。【００４１】
図９の例を用いて説明すると、ノード１０Ａは、自ノードと隣接する隣接ノードのＩＤである「Ｂ」、「Ｃ」、「Ｆ」と、ノード１０Ｂと隣接する隣接ノードのＩＤである「Ａ」、「Ｃ」、「Ｄ」、「Ｅ」とを比較する（ステップＳ２−１）。そして、ノード１０Ａは、隣接ノードのＩＤ「Ｃ」が共通する隣接ノードであると判定し、共通ノードありのリンク形成処理（後に、図１０を用いて詳述）を行う（ステップＳ３−１）。処理の結果、ノード１０Ａは、リンクテーブル１３ｃにリンクノードとして、ノード１０ＢのＩＤ「Ｂ」を登録して、ノード１０Ｂとの間で片パスのリンクを形成する。その後、ノード１０は、Ｈｅｌｌｏフレームにてリンクテーブル１３ｃの更新を隣接ノードにブロードキャストする（ステップＳ４）。【００４２】
また、ノード１０Ａは、自ノードと隣接する隣接ノードのＩＤである「Ｂ」、「Ｃ」、「Ｆ」と、ノード１０Ｆと隣接する隣接ノードのＩＤである「Ａ」とを比較する（ステップＳ２−２）。そして、ノード１０Ａは、共通する隣接ノードがないと判定し、共通ノードなしのリンク形成処理（後に、図１１を用いて詳述）を行う（ステップＳ３−２）。処理の結果、ノード１０Ａは、ノード１０Ｆとの間で両パスのリンクを形成するために、リンクテーブル１３ｃにリンクノードとして、ノード１０ＦのＩＤ「Ｆ」を登録する。その後、ノード１０は、Ｈｅｌｌｏフレームにてリンクテーブル１３ｃの更新を隣接ノードにブロードキャストする（ステップＳ４）。【００４３】
また、ノード１０Ａは、自ノードと隣接する隣接ノードのＩＤである「Ｂ」、「Ｃ」、「Ｆ」と、ノード１０Ｃと隣接する隣接ノードのＩＤである「Ａ」、「Ｂ」、「Ｅ」を比較する。そして、ノード１０Ａは、隣接ノードのＩＤ「Ｂ」が共通する隣接ノードであると判定し、共通ノードありのリンク形成処理を行う（ステップＳ３−１）。ここで、上記で説明したように、リンクテーブルのリンクノードにリンクノードＩＤ「Ｂ」が登録されたことにより、ノードＡ→ノードＢの方向で片パスリンクが形成されているので、リンクテーブルのリンクノードにリンクノードＩＤ「Ｃ」を登録しない。【００４４】
これにより、ノード１０Ａは、隣接ノードの情報を隣接ノード間で交換し、共通ノードがあれば３ノードで片パスリンクを形成することで、両パスリンク形成時よりもリンク数を減らし、メモリの使用量を削減することができる。また、ノード間でのリンクを形成する処理が終了した場合には、各ノード１０は、隣接ノードテーブル１３ｂを削除する処理を行うか、または、隣接ノードテーブル１３ｂを外部の装置に退避させる。【００４５】
［ノードによる処理］
次に、図１０、図１１を用いて、実施例１に係るノードによる処理を説明する。図１０は、共通隣接ノードがある場合におけるノードのリンク形成処理手順を説明するためのフローチャートである。図１１は、共通隣接ノードがない場合におけるノードのリンク形成処理手順を説明するためのフローチャートである。図１０の例では、ノード１０Ａ、ノード１０Ｂ、ノード１０Ｃとの間でリンクを形成する場合の例を説明する。図１１の例では、ノード１０Ａとノード１０Ｆとの間でリンクを形成する場合の例を説明する。【００４６】
図１０の例では、自ノードをノード１０Ａ、ノード１０Ａに隣接する隣接ノードをノード１０Ｂ、ノード１０Ａとノード１０Ｂと共通する隣接ノードである共通ノードをノード１０Ｃとして説明する。図１０に示すように、ノード１０Ａは、「自ノード１０Ａ→隣接ノード１０Ｂ」、「隣接ノード１０Ｂ→共通ノード１０Ｃ」、「共通ノード１０Ｃ→自ノード１０Ａ」（以下、「ＡＢＣ方向リンクの組」という）のうち、いずれかのリンクが存在するか判定する（ステップＳ１０１）。【００４７】
この結果、ノード１０Ａは、いずれのリンクが存在しないと判定した場合には（ステップＳ１０１否定）、ステップＳ１０３に進む。また、ノード１０Ａは、リンクが存在すると判定した場合には（ステップＳ１０１肯定）、「自ノード１０Ａ→共通ノード１０Ｃ」、「共通ノード１０Ｃ→隣接ノード１０Ｂ」、「隣接ノード１０Ｂ→自ノード１０Ａ」（以下、「ＡＣＢ方向リンクの組」という）のうち、いずれかのリンクが存在するか判定する（ステップＳ１０２）。【００４８】
この結果、ノード１０Ａは、いずれかのリンクが存在すると判定した場合には（ステップＳ１０２肯定）、リンクの向きが一方向ではなく、何かしらのエラーが生じており、そのまま処理を終了する。また、ノード１０Ａは、いずれのリンクも存在しないと判定した場合には（ステップＳ１０２否定）、ステップＳ１０３に進む。【００４９】
そして、ノード１０Ａは、ＡＢＣ方向リンクの組およびＡＣＢ方向リンクの組のうち、全てのリンクが存在しないか判定する（ステップＳ１０３）。この結果、ノード１０Ａは、全てのリンクが存在しないと判定した場合には（ステップＳ１０３肯定）、自ノード１０Ａのリンクテーブル１３ｃに隣接ノード１０Ｂを登録する（ステップＳ１０４）。そして、ノード１０Ａは、リンクテーブル１３ｃの変更をＨａｌｌｏフレームで隣接する各ノードに通知し（ステップＳ１０５）処理を終了する。【００５０】
また、Ｓ１０３において、ノード１０Ａは、全てのリンクが存在すると判定した場合には（ステップＳ１０３否定）、ＡＢＣ方向リンクの組のうち、いずれかのリンクが存在するか判定する（ステップＳ１０６）。この結果、ＡＢＣ方向リンクの組のうち、いずれかのリンクが存在すると判定された場合には（ステップＳ１０６肯定）、「自ノード１０Ａ→隣接ノード１０Ｂ」のリンクが存在するか判定する（ステップＳ１０７）。【００５１】
この結果、ノード１０Ａは、「自ノード１０Ａ→隣接ノード１０Ｂ」のリンクが存在しない場合には（ステップＳ１０７否定）、自ノード１０Ａのリンクテーブル１３ｃに隣接ノード１０Ｂを登録する（ステップＳ１０８）。そして、ノード１０Ａは、リンクテーブル１３ｃの変更をHELLOフレームで隣接する各ノードに通知し（ステップＳ１０５）処理を終了する。また、ノード１０Ａは、「自ノード１０Ａ→隣接ノード１０Ｂ」のリンクが存在する場合には（ステップＳ１０７肯定）、そのまま処理を終了する。【００５２】
Ｓ１０６の処理に戻って、ノード１０Ａは、ＡＢＣ方向リンクの組のうち、いずれかのリンクが存在しないと判定された場合には（ステップＳ１０６否定）、「自ノード１０Ａ→共通ノード１０Ｃ」のリンクが存在するか判定する（ステップＳ１０９）。【００５３】
この結果、ノード１０Ａは、「自ノード１０Ａ→共通ノード１０Ｃ」のリンクが存在しない場合には（ステップＳ１０９否定）、自ノード１０Ａのリンクテーブル１３ｃに共通ノード１０Ｃを登録する（ステップＳ１１０）。そして、ノード１０Ａは、リンクテーブル１３ｃの変更をHELLOフレームで隣接する各ノードに通知し（ステップＳ１０５）処理を終了する。また、ノード１０Ａは、「自ノード１０Ａ→共通ノード１０Ｃ」のリンクが存在する場合には（ステップＳ１０９肯定）、そのまま処理を終了する。【００５４】
次に、図１１を用いて、共通隣接ノードがない場合におけるノードのリンク形成処理手順を説明する。図１１の例では、自ノード１０Ａをノード１０Ａ、ノード１０Ａに隣接する隣接ノードをノード１０Ｆとして説明する。図１１に示すように、ノード１０Ａは、自ノード１０Ａのリンクテーブル１３ｃに隣接ノード１０Ｆが存在するか判定する（ステップＳ２０１）。この結果、ノード１０Ａは、隣接ノード１０Ｆが存在すると判定した場合には（ステップＳ２０１肯定）、そのまま処理を終了する。【００５５】
また、ノード１０Ａは、隣接ノード１０Ｆが存在しないと判定した場合には（ステップＳ２０１否定）、自ノード１０Ａのリンクテーブル１３ｃに隣接ノード１０Ｆを登録する（ステップＳ２０２）。そして、ノード１０Ａは、リンクテーブル１３ｃの変更をHELLOフレームで隣接する各ノードに通知し（ステップＳ２０３）、処理を終了する。【００５６】
[実施例１の効果]
上述してきたように、ノード１０は、隣接するノードである隣接ノードから、当該隣接ノードにおいて隣接するノードを示す隣接ノード情報を受信し、隣接ノードのなかに、受信した隣接ノード情報に示されるノードと共通である共通隣接ノードがあるか判定する。そして、ノード１０は、共通隣接ノードがあると判定された場合には、当該共通隣接ノードまたは隣接ノード情報の送信元である隣接ノードとの間で片パスのリンクを形成する旨の情報をリンクテーブル１３ｃに登録する。また、ノード１０は、共通隣接ノードがないと判定された場合には、隣接ノード情報の送信元である隣接ノードとの間で両パスのリンクを形成する旨の情報をリンクテーブル１３ｃに登録する。このため、全ての隣接ノードとの間で両パスのリンクを形成する場合に比較して、リンクテーブル１３ｃの容量を削減することができる。【００５７】
また、実施例１によれば、ノード１０は、隣接ノードからリンクテーブル１３ｃに記憶されたリンクの情報をさらに受信する。そして、ノード１０は、受信したリンクの情報に示されるリンク方向に従って、共通隣接ノードまたは隣接ノード情報の送信元である隣接ノードを選択し、選択したノードに対して片パスのリンクを形成する旨の情報をリンクテーブル１３ｃに登録する。このため、ノード１０は、３ノード間で確実に一方向の片パスリンクを形成することができる。
【実施例２】
【００５８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。【００５９】
（１）システム構成等
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、片パス登録部１２ｃと両パス登録部１２ｄを統合してもよい。【００６０】
（２）プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１２を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１２は、リンク形成プログラムを実行するコンピュータを示す図である。【００６１】
図１２に示したコンピュータ５は、ＣＰＵ５１、メモリ５２、ＨＤＤ５３および無線ＬＡＮインタフェースユニット５４がバス接続されている。また、ＨＤＤ５３には、通信端末装置に対応するリンク形成プログラム６１が格納されている。なお、リンク形成プログラム６１は、ＨＤＤ５３に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブなどを介してＣＰＵ５１によって読み出されてもよい。【００６２】
ＣＰＵ５１は、リンク形成プログラム６１を読み出してメモリ５２に展開し、リンク形成プログラム６１に対応するリンク形成プロセスを順次実行することで、コンピュータ５に開示の通信端末装置と同様の動作を実行させる。
【符号の説明】
【００６３】
１０、１０Ａ〜１０Ｇ  ノード
１１  通信制御Ｉ／Ｆ
１２  制御部
１２ａ  受信部
１２ｂ  判定部
１２ｃ  片パス登録部
１２ｄ  両パス登録部
１３  記憶部
１３ａ  ルーティングテーブル
１３ｂ  隣接ノードテーブル
１３ｃ  リンクテーブル
１００  通信システム
【図１】
2012132013.tif 000003
【図２】
2012132013.tif 000004
【図３】
2012132013.tif 000005
【図４】
2012132013.tif 000006
【図５】
2012132013.tif 000007
【図６】
2012132013.tif 000008
【図７】
2012132013.tif 000009
【図８】
2012132013.tif 000010
【図９】
2012132013.tif 000011
【図１０】
2012132013.tif 000012
【図１１】
2012132013.tif 000013
【図１２】
2012132013.tif 000014
【図１３】
2012132013.tif 000015
【国際調査報告】
2012132013.tif 000016
2012132013.tif 000017