(57)【要約】【課題】簡易な方法で、到達率を確保しつつ、ホップ数の増加を抑制することを可能とする経路選択方法、ノード装置、中継システム、及び、プログラムを提供する。【解決手段】隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、算出した受信率とフレーム長とに基づいて、ユニキャストフレームの到達率を算出し、算出した到達率の逆数をリンクコストとして算出する。そして、隣接ノード装置から到達可能な各最終宛先までの経路毎のルートコストを隣接ノード装置から取得し、取得したルートコストに算出したリンクコストを積算して、自ノード装置から隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する。そして、データフレームを送信する際に、自ノード装置からデータフレームの最終宛先までの経路のルートコストに基づいて、データフレームの送信先となる隣接ノード装置を選択する。【選択図】図２
2015180013.tif 000002
【特許請求の範囲】
【請求項１】
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、
算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出し、
算出した前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
ことを特徴とするノード装置の経路選択方法。
【請求項２】
自ノード装置から送信対象の前記データフレームの前記最終宛先のノード装置までの経路の前記ルートコストが最小となるように、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
ことを特徴とする請求項１に記載のノード装置の経路選択方法。
【請求項３】
前記特定のフレームタイプのフレームの前記隣接ノード装置からの受信回数と当該隣接ノード装置より送信された前記特定のフレームタイプのフレームが自ノード装置に送信された送信回数とに基づいて、前記受信率を算出する、
ことを特徴とする請求項２又は３に記載のノード装置の経路選択方法。
【請求項４】
前記特定のフレームタイプのフレームはハローフレームである、
ことを特徴とする請求項１乃至３のいずれか一に記載のノード装置の経路選択方法。
【請求項５】
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出する第１の算出手段と、
算出された前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出する第２の算出手段と、
算出された前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出する第３の算出手段と、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得する取得手段と、
取得された前記ルートコストに算出された前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する第４の算出手段と、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する選択手段と、
を備える、
ことを特徴とするノード装置。
【請求項６】
複数のノード装置を含む中継システムであって、
前記ノード装置の各々が、
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出する第１の算出手段と、
算出された前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出する第２の算出手段と、
算出された前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出する第３の算出手段と、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得する取得手段と、
取得された前記ルートコストに算出された前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する第４の算出手段と、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する選択手段と、
を備える、
ことを特徴とする中継システム。
【請求項７】
ノード装置のコンピュータに、
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、
算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出し、
算出した前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
処理を実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路選択方法、ノード装置、中継システム、及び、プログラムに関する。
【背景技術】
【０００２】
近年、複数の通信装置（以下、ノード装置という）が自律分散的に相互接続するアドホックネットワークの研究が進められている。アドホックネットワークの各ノード装置は、通信環境に応じて自立的にネットワークを構築する。
【０００３】
具体的には、アドホックネットワークでは、アクセスポイントは設置されず、各ノード装置が、隣接するノード装置（以下、隣接ノード装置という）から受信したデータフレームをネットワークトポロジに基づいて、他の隣接ノード装置に中継することで、データフレームをゲートウェイ装置（以下、ＧＷ装置という）などの最終宛先の装置（以下、最終宛先装置という）に伝送する。
【０００４】
この際、各ノード装置は、ルートコストＣＲｏｕｔｅに基づいて経路を選択してデータフレームを送信する。つまり、最終宛先装置への経路が複数存在する場合には、各ノード装置が、どの経路を選択するかはルートコストＣＲｏｕｔｅの定義によることとなる。
【０００５】
代表的なルートコストＣＲｏｕｔｅの定義として、ホップ数をルートコストＣＲｏｕｔｅとする方法と、リンクのエラーレートの積算値をルートコストＣＲｏｕｔｅとする方法と、がある。
【０００６】
ポップ数をルートコストＣＲｏｕｔｅとし、図１（詳しくは後述）を参照して、ノード装置Ｎ７からノード装置Ｎ１に至る経路として、ノード装置Ｎ６とＮ５を経由する経路（Ｎ７，Ｎ６，Ｎ５，Ｎ１）と、ノード装置Ｎ４とＮ３とＮ２を経由する経路（Ｎ７，Ｎ４，Ｎ３，Ｎ２，Ｎ１）の２つの経路が存在しているとする。
【０００７】
この場合、経路（Ｎ７，Ｎ６，Ｎ５，Ｎ１）のルートコストＣＲｏｕｔｅは“３”、経路（Ｎ７，Ｎ４，Ｎ３，Ｎ２，Ｎ１）のルートコストＣＲｏｕｔｅは“４”となる。したがって、ホップ数の少ない経路（Ｎ７，Ｎ６，Ｎ５，Ｎ１）が選択されることとなる。この場合、ノード装置間の距離が長いノード装置Ｎ６とＮ５との間のリンクのエラーレートが高いと、ノード装置Ｎ１までデータフレームが到達しない可能性が有る。つまり、ホップ数をルートコストＣＲｏｕｔｅとすると、到達率が下がってしまうことになる。
【０００８】
一方、リンクのエラーレートの積算値をルートコストＣＲｏｕｔｅとし、ノード装置Ｎｉとノード装置Ｎｊ間のリンクをリンクＮｉ−Ｎｊと表すこととすると、経路（Ｎ７，Ｎ６，Ｎ５，Ｎ１）のルートコストＣＲｏｕｔｅは、リンクＮ７−Ｎ６とリンクＮ６−Ｎ５とリンクＮ５−Ｎ１の各エラーレートを積算した値となる。同様に、経路（Ｎ７，Ｎ４，Ｎ３，Ｎ２，Ｎ１）のルートコストＣＲｏｕｔｅは、リンクＮ７−Ｎ４とリンクＮ４−Ｎ３とリンクＮ３−Ｎ２とリンクＮ２−Ｎ１の各エラーレートを積算した値となる。
【０００９】
ここで、リンクＮ７−Ｎ４とリンクＮ７−Ｎ６のエラーレートが同じであり、リンクＮ２−Ｎ１とリンクＮ５−Ｎ１のエラーレートが同じであり、リンクＮ４−Ｎ３とリンクＮ３−Ｎ２のエラーレートの積算値がリンクＮ６−Ｎ５のエラーレートより小さいとする。つまり、以下の条件を満たすとする。
（リンクＮ７−Ｎ４のエラーレート）＝（リンクＮ７−Ｎ６のエラーレート）
（リンクＮ２−Ｎ１のエラーレート）＝（リンクＮ５−Ｎ１のエラーレート）
（リンクＮ４−Ｎ３のエラーレート）＋（リンクＮ３−Ｎ２のエラーレート）＜（リンクＮ６−Ｎ５のエラーレート）
【００１０】
この場合、エラーレートの積算値が小さい、経路（Ｎ７，Ｎ４，Ｎ３，Ｎ２，Ｎ１）が選択されることとなる。エラーレートの積算値をルートコストＣＲｏｕｔｅとすることで、到達率を上げることは可能となるが、ホップ数が増加してしまい、周波数利用効率が低下し、最大収容数が減少してしまう。
このように、両者は互いにトレードオフの関係にある。
【００１１】
他のルートコストＣＲｏｕｔｅの定義としては、例えば、特許文献１で提案されているルートコストＣＲｏｕｔｅの定義がある。特許文献１で提案されているルートコストＣＲｏｕｔｅは、経路上の各リンクの往路の受信率と復路の受信率とを乗算した値の逆数（１／（往路の受信率）×（復路の受信率））を各リンクのリンクコストＣＬｉｎｋとして、これらのリンクコストＣＬｉｎｋの積算値としている。このように、特許文献１で提案されている方法は、各リンクの往路と復路の双方向の受信率を測定し、ルートコストＣＲｏｕｔｅを算出している。
【００１２】
ここで、リンクＮ７−Ｎ４とリンクＮ７−Ｎ６のエラーレートが同じであるとすると、特許文献１で提案されている方法に基づいてリンクコストＣＬｉｎｋを算出した場合、リンクＮ７−Ｎ４とリンクＮ７−Ｎ６のリンクコストＣＬｉｎｋは同じとなる。同様に、リンクＮ２−Ｎ１とリンクＮ５−Ｎ１のエラーレートが同じであるとすると、リンクＮ２−Ｎ１とリンクＮ５−Ｎ１のリンクコストＣＬｉｎｋは同じとなる。
【００１３】
したがって、この場合、以下を満たす場合のみ、ホップ数の多い経路（Ｎ７，Ｎ４，Ｎ３，Ｎ２，Ｎ１）が選択される。
（リンクＮ４−Ｎ３のリンクコストＣＬｉｎｋ）＋（リンクＮ３−Ｎ２のリンクコストＣＬｉｎｋ）＜（リンクＮ６−Ｎ５のリンクコストＣＬｉｎｋ）
【００１４】
これにより、特許文献１で提案されている方法では、到達率を確保しつつ、ホップ数の増加を抑制することが可能となる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１２−１０５２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１で提案されている方法では、各リンクのリンクコストＣＬｉｎｋを算出するために、往路と復路の双方向の受信率を測定しなければならない。そのため、アルゴリズムが複雑となる。
【００１７】
一つの側面では、本発明は、簡易な方法で、到達率を確保しつつ、ホップ数の増加を抑制することを可能とする経路選択方法、ノード装置、中継システム、及び、プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１８】
一態様では、経路選択方法は、リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出し、算出した前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出し、前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、ことを特徴としている。
【発明の効果】
【００１９】
１つの側面として、簡易な方法で、到達率を確保しつつ、ホップ数の増加を抑制することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】実施形態におけるネットワークの構成例の一部を示す図である。
【図２】実施形態におけるネットワークを構成するノード装置の構成例を示す機能ブロック図である。
【図３】実施形態におけるデータフレームのヘッダのフォーマット例を示す図である。
【図４】図３に示すフォーマット例における各フィールドの説明である。
【図５】実施形態におけるハローフレームのヘッダのフォーマット例を示す図である。
【図６】図５に示すフォーマット例における各フィールドの説明である。
【図７】実施形態におけるフレーム長管理テーブルの例を示す図である。
【図８】実施形態における受信回数管理テーブルの例を示す図である。
【図９】実施形態におけるルーティングテーブルの例を示す図である。
【図１０】実施形態におけるフレーム受信処理のフローを説明するためのフローチャートの例である。
【図１１】実施形態における転送処理のフローを説明するためのフローチャートの例である。
【図１２】実施形態における更新処理のフローを説明するためのフローチャートの例である。
【図１３】実施形態におけるハローフレーム生成処理のフローを説明するためのフローチャートの例である。
【図１４】周波数利用効率の向上率を示すグラフである。
【図１５】実施形態におけるノード装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００２１】
以下に本発明の実施の形態について図面を参照しながら詳細に説明する。
図１は、本実施形態におけるネットワーク１００の構成例の一部を示す図である。ネットワーク１００は、アドホックネットワークの一例であり、複数のノード装置１を含んで構成されている。ノード装置１間には、リンクが存在しており、図１では、リンクを実線で表している。
【００２２】
ノード装置１は、例えば、電力メータなどの検針ノード装置や各種のセンサを具備するセンサノード装置などである。ノード装置１がセンサノード装置の場合、ノード装置１は、データサーバの命令に従って、あるいは、自立的にセンサ等から情報を収集し、収集した情報（データフレーム）を、データサーバへ送信する。
【００２３】
ノード装置１は、図１においては、「Ｎｉ」（ｉ＝１，・・，７）として示されている。「Ｎｉ」は、ノード装置１を一意に識別可能なノードＩＤ（IDentification）、例えば、ノード装置１のアドレスである。以下において、特定のノード装置１を指す場合、例えば、ノードＩＤがＮｉのノード装置１を指す場合には、ノード装置Ｎｉと称することとする。なお、図１におけるノード装置Ｎ１はＧＷ装置であるものとする。
【００２４】
リンクは、無線リンクでも、有線リンクでもよい。例えば、図１を参照して、ノード装置Ｎ１とノード装置Ｎ２とが、他のノード装置１による中継を経ることなく、直接、通信可能な場合に、「ノード装置Ｎ１とノード装置Ｎ２との間にリンクが存在する」という。
【００２５】
リンクは、動的に変化し、例えば、天候や遮蔽物などの影響で、ノード装置１間にリンクが新たに確立されたり、今まで確立されていたリンクが消滅したりすることがある。また、例えば、ノード装置１が可動式であれば、ノード装置１間の距離の変動によってリンクの有無が変化することもある。また、例えば、ケーブルの接続替えにより、新たなリンクが確立されたり、今まで存在していたリンクが消滅したり、ケーブルの切断等の障害によってリンクが消滅することもある。
【００２６】
次に、本実施形態におけるリンクコストＣＬｉｎｋの算出の際に用いるアルゴリズムについて説明する。本アルゴリズムでは、ハローフレームの受信率のみに基づいて、つまり、リンクの片方向の受信率のみに基づいて、各リンクにおけるユニキャストフレームの到達率を算出（推定）する。そして、算出した到達率の逆数をリンクコストＣＬｉｎｋとして算出する。
【００２７】
ここで、本実施形態においては、ユニキャストフレームはデータフレームとＡＣＫ（ACKnowledgement）フレームのことであり、ユニキャストフレームの到達率は、データフレームが転送先の隣接ノード装置１に到達し、且つ、転送先の隣接ノード装置１からのＡＣＫフレームが転送元のノード装置１に到達する確率である。つまり、ユニキャストフレームの到達率は、リンクの往路の受信率（データフレームの受信率）と復路の受信率（ＡＣＫフレームの受信率）とを乗算したものである。
【００２８】
１ビットのデータの片方向の受信率と、フレーム長ＬＨビットのハローフレームの受信率を、それぞれ、以下の式１と式２のように表すとすると、以下の式３が成り立つ。
【００２９】
【数１】
2015180013.tif 000003
【００３０】
【数２】
2015180013.tif 000004
【００３１】
【数３】
2015180013.tif 000005
【００３２】
したがって、１ビットのデータの片方向の受信率は、フレーム長ＬＨビットのハローフレームの受信率に基づいて、以下の式４により算出することが可能である。つまり、１ビットのデータの片方向の受信率は、フレーム長ＬＨビットのハローフレームの受信率をフレーム長ＬＨの逆数（１／ＬＨ）乗することで算出することが可能である。
【００３３】
【数４】
2015180013.tif 000006
【００３４】
また、フレーム長ＬＤビットのデータフレームの受信率と、フレーム長ＬＡビットのＡＣＫフレームの受信率は、１ビットのデータの片方向の受信率を用いて、それぞれ、以下の式５と式６にしたがって、算出することが可能である。
【００３５】
【数５】
2015180013.tif 000007
【００３６】
【数６】
2015180013.tif 000008
【００３７】
ユニキャストフレームの到達率は、上述したように、リンクの往路の受信率（データフレームの受信率）と復路の受信率（ＡＣＫフレームの受信率）とを乗算したものである。したがって、ユニキャストフレームの到達率は、式４乃至式６に基づいて、以下の式７のように表すことができる。つまり、ユニキャストフレームの到達率は、ハローフレームの受信率と各フレームのフレーム長とに基づいて、算出することが可能である。
【００３８】
【数７】
2015180013.tif 000009
【００３９】
ここで、本実施形態におけるリンクコストＣＬｉｎｋを、以下の式８のように定義する。すなわち、リンクにおけるユニキャストフレームの到達率の逆数をリンクコストＣＬｉｎｋと定義する。つまり、本実施形態におけるリンクコストＣＬｉｎｋは、データフレームの転送成功に必要な送信回数である。
【００４０】
【数８】
2015180013.tif 000010
【００４１】
また、本実施形態におけるユニキャストフレームのリンクＮｉ−Ｎｊにおける到達率を、以下の式９のように表すとすると、本実施形態におけるリンクＮｉ−ＮｊのリンクコストＣＬｉｎｋ（Ｎｉ，Ｎｊ）は、以下の式１０のように表すことができる。
【００４２】
【数９】
2015180013.tif 000011
【００４３】
【数１０】
2015180013.tif 000012
【００４４】
また、本実施形態におけるルートコストＣＲｏｕｔｅを、以下の式１１のように定義する。つまり、ルートコストＣＲｏｕｔｅを、経路上の各リンクのリンクコストＣＬｉｎｋの積算値と定義する。
【００４５】
【数１１】
2015180013.tif 000013
【００４６】
この場合、図１を参照して、経路（Ｎ７，Ｎ６，Ｎ５，Ｎ１）のルートコストＣＲｏｕｔｅ（Ｎ７，Ｎ６，Ｎ５，Ｎ１）は、以下の式１２のように、経路（Ｎ７，Ｎ４，Ｎ３，Ｎ２，Ｎ１）のルートコストＣＲｏｕｔｅ（Ｎ７，Ｎ４，Ｎ３，Ｎ２，Ｎ１）は、以下の式１３のように、それぞれ、表すことができる。
【００４７】
【数１２】
2015180013.tif 000014
【００４８】
【数１３】
2015180013.tif 000015
【００４９】
以上に説明したように、各リンクのリンクコストＣＬｉｎｋは、当該リンクにおけるユニキャストフレームの到達率の逆数であることから、当該リンクにおけるハローフレームの受信率と各フレームタイプのフレーム長とに基づいて、算出することが可能である。したがって、ルートコストＣＲｏｕｔｅは、経路上の各リンクのリンクコストＣＬｉｎｋの積算値であることから、経路上の各リンクにおけるハローフレームの受信率と各フレームのフレーム長とに基づいて、算出することが可能である。
【００５０】
次に、図２を参照して、本実施形態におけるノード装置１について説明する。図２は、本実施形態におけるネットワーク１００を構成するノード装置１の構成例を示す機能ブロック図である。
【００５１】
ノード装置１は、図２に示すように、通信部１０と、記憶部２０と、制御部３０と、を備えて構成されている。
【００５２】
通信部１０は、通信モジュールなどで構成され、他のノード装置１との間で通信を行う。例えば、通信部１０は、ハローフレームなどのフレームを送受信する。また、通信部１０は、フレームを受信すると、受信したフレームをフレーム種別特定部３１（詳しくは後述）に出力する。
【００５３】
記憶部２０は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリなどで構成されている。記憶部２０は、制御部３０を構成する、例えば、ＭＰＵ（Micro-Processing Unit）のワークエリア、ノード装置１全体を制御するための動作プログラムなどの各種プログラムを格納するプログラムエリア、詳しくは後述のフレーム長管理テーブルＴ１、受信回数管理テーブルＴ２、ルーティングテーブルＴ３などの各種データを格納するデータエリアとして機能する。また、データエリアには、自ノードＩＤなども格納されている。
【００５４】
ここで、図３と図４を参照して、データフレーム処理部３３（詳しくは後述）により生成されるデータフレームのヘッダについて説明する。図３は、本実施形態におけるデータフレームのヘッダのフォーマット例を示す図である。図４は、図３に示すフォーマット例における各フィールドの説明である。
【００５５】
本実施形態におけるデータフレームのヘッダは、図３に示すように、ＬＤ（Local Destination）と、ＬＳ（Local Source）と、ＧＤ（Global Destination）と、ＧＳ（Global Source）と、ＦＩＤ（Frame IDentification）と、フレームタイプと、を含む。
【００５６】
ＬＳは、転送元のノード装置１であり、例えば、図１を参照して、ノード装置Ｎ７によりノード装置Ｎ６へ送信されたデータフレームのＬＳは、ノード装置Ｎ７である。ＬＤは、転送先となる隣接ノード装置１であり、ＬＳとなるノード装置１のルート選択部３４（詳しくは後述）が、ルーティングテーブルＴ３を参照して、ＬＤを選択する。例えば、図１を参照して、ノード装置Ｎ７によりノード装置Ｎ６へ送信されたデータフレームのＬＤは、ノード装置Ｎ６である。
【００５７】
ＧＳは、データフレームの発行元のノード装置１であり、ＧＤは、データフレームの最終的な宛先となるノード装置１である。例えば、図１を参照して、ノード装置Ｎ７により発行されたデータフレームが、ノード装置Ｎ６、ノード装置Ｎ５の順番で中継され、最終的にノード装置Ｎ１へと送信される場合、該データフレームのＧＤは、ノード装置Ｎ１であり、ＧＳは、ノード装置Ｎ７である。
【００５８】
ＦＩＤは、データフレームの発行元のノード装置１におけるフレームＩＤ、つまり、発行元のノード装置１におけるデータフレームの生成回数を示す通し番号である。
【００５９】
フレームタイプは、フレームの種別を示す情報であり、データフレームにおいては、フレームの種別がデータフレームであることを示す情報が、「フレームタイプ」フィールドに格納される。フレームの種別としては、本実施形態においては、データフレームと、ＡＣＫフレームと、ハローフレームの３つが存在するものとする。
【００６０】
データフレームは、発行元のノード装置１（ＧＳ）が最終的な宛先となるノード装置１（ＧＤ）に伝達しようとしている情報を、ペイロードとして含むフレームである。
【００６１】
ＡＣＫフレームは、データフレームを受信した受信側のノード装置１（ＬＤ）が、「データフレームを受信した旨」を送信側のノード装置１（ＬＳ）に伝えるため送信されるフレーム、つまり、肯定応答である。
【００６２】
ハローフレームは、ハローフレーム生成部３５（詳しくは後述）により生成され、自ノード装置１の存在を他のノード装置１に対して通知するためのフレームであり、後述するように、経路作成に必要な情報を含んでいる。
【００６３】
次に、図５と図６を参照して、ハローフレーム生成部３５により生成されるハローフレームのヘッダについて説明する。図５は、本実施形態におけるハローフレームのヘッダのフォーマット例を示す図である。図６は、図５に示すフォーマット例における各フィールドの説明である。
【００６４】
本実施形態におけるハローフレームのヘッダは、図５に示すように、送信元ＩＤと、ＦＩＤと、フレームタイプと、ＧＤとルートコストＣＲｏｕｔｅとの組と、を含む。
【００６５】
送信元ＩＤは、ハローフレームの送信元のノード装置１のノードＩＤであり、例えば、送信元のノード装置１のアドレスである。
【００６６】
ＦＩＤは、ハローフレームの送信元のノード装置１におけるフレームＩＤ、つまり、送信元のノード装置１におけるハローフレームの生成回数（すなわち、送信回数）を示す通し番号である。
【００６７】
フレームタイプは、フレームの種別を示す情報であり、ハローフレームにおいては、フレームの種別がハローフレームであることを示す情報が、「フレームタイプ」フィールドに格納される。
【００６８】
ＧＤとルートコストＣＲｏｕｔｅとの組は、ハローフレームの送信元のノード装置１から到達可能な最終的な宛先（ＧＤ）のノードＩＤと当該ＧＤから送信元のノード装置１に至る経路の内で最小のルートコストＣＲｏｕｔｅとの組である。
【００６９】
次に、図７乃至図９を参照して、記憶部２０のデータエリアに格納されている、フレーム長管理テーブルＴ１、受信回数管理テーブルＴ２、ルーティングテーブルＴ３について、それぞれ、説明する。
【００７０】
図７は、本実施形態におけるフレーム長管理テーブルＴ１の例を示す図である。本実施形態におけるフレーム長管理テーブルＴ１は、例えば、リンク管理部３２（詳しくは後述）がリンクコストＣＬｉｎｋを算出する際に参照されるテーブルであり、図７に示すように、「フレームタイプ」と「フレーム長」とが対応付けられているテーブルである。
【００７１】
図８は、本実施形態における受信回数管理テーブルＴ２の例を示す図であり、ノード装置Ｎ７の受信回数管理テーブルＴ２の例である。本実施形態における受信回数管理テーブルＴ２は、リンク管理部３２により管理されているテーブルであり、図８に示すように、「隣接ノード装置１のノードＩＤ」と「受信回数」とが対応付けられているテーブルである。
【００７２】
受信回数は、対応する隣接ノード装置１から送信されたハローフレームの受信回数であり、対応する隣接ノード装置１からのハローフレームが受信される度に、リンク管理部３２によりインクリメントされる。
【００７３】
図９は、本実施形態におけるルーティングテーブルＴ３の例を示す図であり、ノード装置Ｎ７のルーティングテーブルＴ３の例である。本実施形態におけるルーティングテーブルＴ３は、リンク管理部３２により管理されており、データフレームの転送先となる隣接ノード装置１を選択するために必要となる情報（各経路のルートコスト）をＧＤごとに管理しているテーブルである。例えば、本実施形態におけるルーティングテーブルＴ３は、図９に示すように、「ＧＤのノードＩＤ」と「隣接ノード装置１のノードＩＤ」と「リンクコストＣＬｉｎｋ」と「ルートコストＣＲｏｕｔｅ」とが対応付けられているテーブルである。
【００７４】
隣接ノード装置１のノードＩＤは、対応するＧＤにデータフレームを送信する際の転送先候補となる隣接ノード装置１のノードＩＤである。
【００７５】
リンクコストＣＬｉｎｋは、対応する隣接ノード装置１との間のリンクのリンクコストＣＬｉｎｋである。ルートコストＣＲｏｕｔｅは、ＧＤから自ノード装置１までの経路上の各リンクのリンクコストＣＬｉｎｋの積算値であり、対応する隣接ノード装置１からのハローフレームに含まれるルートコストＣＲｏｕｔｅと対応する隣接ノード装置１との間のリンクのリンクコストＣＬｉｎｋとの積算値が、リンク管理部３２により格納される。
【００７６】
図２に戻り、制御部３０は、例えば、ＭＰＵなどで構成され、記憶部２０のプログラムエリアに格納されている動作プログラムを実行して、図２に示すように、フレーム種別特定部３１と、リンク管理部３２と、データフレーム処理部３３と、ルート選択部３４と、ハローフレーム生成部３５と、ＡＣＫフレーム処理部３６としての機能を実現すると共に、ノード装置１全体を制御する制御処理や詳しくは後述のフレーム受信処理やハローフレーム生成処理などの処理を実行する。
【００７７】
フレーム種別特定部３１は、通信部１０で受信したフレームの種別を特定する。具体的には、通信部１０は、フレームを受信すると、受信したフレームをフレーム種別特定部３１に出力する。フレーム種別特定部３１は、入力されたフレームのヘッダを解析して、フレームタイプに基づいて、フレームの種別を特定する。そして、フレーム種別特定部３１は、特定したフレームの種別がハローフレームの場合には、受信したフレームをリンク管理部３２に、特定したフレームの種別がデータフレームの場合には、受信したフレームをデータフレーム処理部３３に、特定したフレームの種別がＡＣＫフレームの場合には、受信したフレームをＡＣＫフレーム処理部３６に、それぞれ、出力する。
【００７８】
リンク管理部３２は、受信回数管理テーブルＴ２とルーティングテーブルＴ３の管理を行うことで、経路管理を行う。より具体的には、リンク管理部３２は、受信したフレームがハローフレームの場合に、受信したハローフレームを解析し、解析結果に基づいて、受信回数管理テーブルＴ２とルーティングテーブルＴ３の更新を行う。
【００７９】
例えば、リンク管理部３２は、受信したハローフレームの送信元ＩＤに基づいて、ハローフレームの送信元の隣接ノード装置１を特定する。そして、リンク管理部３２は、受信回数管理テーブルＴ２を参照して、特定した隣接ノード装置１に対応する受信回数をインクリメントする。この際、リンク管理部３２は、受信したハローフレームの送信元ＩＤと一致するノードＩＤが受信回数管理テーブルＴ２にない場合には、エントリを追加し、送信元ＩＤと受信回数“１”とを対応付けて格納する。
【００８０】
また、例えば、リンク管理部３２は、受信したハローフレームのＦＩＤに基づいて、送信元のノード装置１におけるハローフレームの送信回数を特定する。そして、リンク管理部３２は、インクリメントした後の受信回数と特定した送信回数とに基づいて、ハローフレームの受信率を算出すると共に、フレーム長管理テーブルＴ１を参照して、各フレームタイプのフレーム長（ＬＤ、ＬＡ、ＬＨ）を取得する。
【００８１】
そして、リンク管理部３２は、算出したハローフレームの受信率と各フレームタイプのフレーム長とに基づいて、上述の式７に従って、受信したハローフレームの送信元のノード装置１との間のリンクおけるユニキャストフレームの到達率を算出する。そして、リンク管理部３２は、算出した到達率の逆数をリンクコストＣＬｉｎｋとして算出し、算出したリンクコストＣＬｉｎｋで、ルーティングテーブルＴ３の特定した隣接ノード装置１に対応するリンクコストＣＬｉｎｋをそれぞれ更新する。
【００８２】
この際、特定した隣接ノード装置１のエントリがルーティングテーブルＴ３に存在しない場合、あるいは、ハローフレームに含まれるルートコストＣＲｏｕｔｅに対応付けられているＧＤの一部に特定した隣接ノード装置１のエントリが存在しない場合に、リンク管理部３２は、エントリを追加して、対応するフィールドに算出したリンクコストＣＬｉｎｋを格納する。
【００８３】
更に、リンク管理部３２は、受信したハローフレームに含まれるＧＤに対応付けられたルートコストＣＲｏｕｔｅに算出したリンクコストＣＬｉｎｋを積算した値で、ルーティングテーブルＴ３における対応するＧＤの特定した隣接ノード装置１（送信元）に対応するルートコストＣＲｏｕｔｅをそれぞれ更新する。
【００８４】
データフレーム処理部３３は、受信したデータフレームの処理を行う。より具体的には、まず、フレーム種別特定部３１よりデータフレームが入力されると、データフレーム処理部３３は、入力されたデータフレームのヘッダを解析し、ＬＤが自ノードＩＤと一致するか否かを判定する。そして、データフレーム処理部３３は、ＬＤが自ノードＩＤと一致しない場合には、受信したデータフレームを破棄する。
【００８５】
一方、ＬＤが自ノードＩＤと一致する場合には、データフレーム処理部３３は、ＡＣＫフレーム処理部３６に対して、ＡＣＫフレームの生成の指示を行うと共に、ＧＤが自ノードＩＤと一致するか否かを判定する。すなわち、データフレーム処理部３３は、受信したデータフレームの最終的な宛先が自ノード装置１か否かを判定する。
【００８６】
受信したデータフレームの最終的な宛先が自ノード装置１の場合には、データフレーム処理部３３は、受信したデータフレームを上位層に出力する。上位層は、データフレームの入力に応答して、受信したデータフレームの処理を行う。
【００８７】
一方、受信したデータフレームの最終的な宛先が他のノード装置１の場合には、データフレーム処理部３３は、受信したデータフレームの転送を行うために、ルート選択部３４に対して、ＬＤの選択を指示する。
【００８８】
また、データフレーム処理部３３は、ルート選択部３４より選択されたＬＤが通知されると、データフレームの送信処理を行う。より具体的には、データフレーム処理部３３は、ルート選択部３４より選択されたＬＤが通知されると、ヘッダのＬＳに自ノードＩＤを設定すると共に、ヘッダのＬＤにルート選択部３４より選択されたＬＤを設定する。そして、データフレーム処理部３３は、通信部１０を介して、設定したＬＤである隣接ノード装置１にデータフレームを転送する。
【００８９】
更に、データフレーム処理部３３は、上位層の要求に応答して、データフレームを生成し、通信部１０を介して、隣接ノード装置１に生成したデータフレームを送信する。この際、送信先の隣接ノード装置１は、ＧＤに応じてルート選択部３４により選択される。
【００９０】
ルート選択部３４は、受信したデータフレームを他のノード装置１へ転送する必要がある場合に、ルーティングテーブルＴ３を参照して、データフレームの転送先となる隣接ノード装置１、すなわち、ＬＤを選択する。そして、ルート選択部３４は、選択したＬＤをデータフレーム処理部３３へ通知する。
【００９１】
より具体的には、データフレーム処理部３３よりＬＤの選択を指示された場合に、ルート選択部３４は、転送対象のデータフレームのＧＤに対応するルーティングテーブルＴ３を特定する。そして、ルート選択部３４は、特定したルーティングテーブルＴ３のルートコストＣＲｏｕｔｅに基づいて、ＧＤまでのルートコストＣＲｏｕｔｅが最小となるように、送信先の隣接ノード装置１、すなわち、ＬＤを選択する。
【００９２】
ハローフレーム生成部３５は、所定のタイミング（例えば、定期的に）が到来すると、図５に例示するハローフレームを生成し、通信部１０を介して、生成したハローフレームを隣接ノード装置１へ送信する。この際、ハローフレーム生成部３５は、ルーティングテーブルＴ３を参照して、登録されているＧＤ毎に、当該ＧＤに対応する隣接ノード装置１のルートコストＣＲｏｕｔｅの内で最小のルートコストＣＲｏｕｔｅを特定し、特定したルートコストＣＲｏｕｔｅを当該ＧＤのノードＩＤと対応付けてそれぞれハローフレームに格納する。
【００９３】
ＡＣＫフレーム処理部３６は、データフレーム処理部３３によるＡＣＫフレームの生成の指示に応答して、ＡＣＫフレームを生成し、通信部１０を介して、受信したデータフレームの送信元のノード装置１（ＬＳ）に生成したＡＣＫフレームを送信する。
【００９４】
次に、図１０を参照して、本実施形態におけるフレーム受信処理の流れについて説明する。図１０は、本実施形態におけるフレーム受信処理のフローを説明するためのフローチャートの例である。本フレーム受信処理は、フレームの受信をトリガとして開始される。
【００９５】
フレーム種別特定部３１は、フレームを受信したか否かを判定する（ステップＳ００１）。フレーム種別特定部３１によりフレームを受信していないと判定された場合には（ステップＳ００１；ＮＯ）、処理はステップＳ００１の処理を繰り返し、フレームの受信を待つ。
【００９６】
一方、フレームを受信したと判定した場合には（ステップＳ００１；ＹＥＳ）、フレーム種別特定部３１は、受信したフレームのヘッダを解析し、フレームタイプに基づいて、フレームの種別を特定し（ステップＳ００２）、特定した種別がデータフレームか否かを判定する（ステップＳ００３）。
【００９７】
データフレームであると判定した場合には（ステップＳ００３；ＹＥＳ）、フレーム種別特定部３１は、受信したフレームをデータフレーム処理部３３に出力する（ステップＳ００４）。そして、データフレーム処理部３３は、ルート選択部３４などと連係して、受信したデータフレームの転送処理を行い（ステップＳ００５）、処理はステップＳ００１の処理へと戻り、前述の処理を繰り返す。
【００９８】
一方、データフレームではないと判定した場合には（ステップＳ００３；ＮＯ）、フレーム種別特定部３１は、更に、特定した種別がハローフレームか否かを判定する（ステップＳ００６）。
【００９９】
ＡＣＫフレームであると判定した場合には（ステップＳ００６；ＮＯ）、フレーム種別特定部３１は、受信したＡＣＫフレームをＡＣＫフレーム処理部３６に出力し（ステップＳ００７）、処理はステップＳ００１の処理へと戻り、前述の処理を繰り返す。
【０１００】
一方、ハローフレームであると判定した場合には（ステップＳ００６；ＹＥＳ）、フレーム種別特定部３１は、受信したフレームをリンク管理部３２に出力する（ステップＳ００８）。そして、リンク管理部３２は、受信回数管理テーブルＴ２とルーティングテーブルＴ３の更新処理を行い（ステップＳ００９）、処理はステップＳ００１の処理へと戻り、前述の処理を繰り返す。
【０１０１】
次に、図１１を参照して、本実施形態における転送処理の流れについて説明する。図１１は、本実施形態における転送処理のフローを説明するためのフローチャートの例である。本転送処理は、上述のフレーム受信処理のステップＳ００５の処理に対応する処理である。
【０１０２】
データフレーム処理部３３は、受信したデータフレームのヘッダを解析し、ＬＤが自ノードＩＤと一致するか否かを判定する（ステップＳ１０１）。
【０１０３】
ＬＤが自ノードＩＤと一致しないと判定した場合には（ステップＳ１０１；ＮＯ）、データフレーム処理部３３は、受信したデータフレームを破棄する（ステップＳ１０２）。そして、本処理は終了する。
【０１０４】
一方、ＬＤが自ノードＩＤと一致すると判定した場合には（ステップＳ１０１；ＹＥＳ）、データフレーム処理部３３は、ＡＣＫフレーム処理部３６に対して、ＡＣＫフレームの生成の指示を行う（ステップＳ１０３）。そして、ＡＣＫフレーム処理部３６は、ＡＣＫフレームを生成し、通信部１０を介して、送信元のノード装置１（ＬＳ）に生成したＡＣＫフレームを送信する（ステップＳ１０４）。
【０１０５】
そして、データフレーム処理部３３は、ＧＤが自ノードＩＤと一致するか否かを判定する（ステップＳ１０５）。すなわち、データフレーム処理部３３は、受信したデータフレームの最終的な宛先が自ノード装置１か否かを判定する。
【０１０６】
ＧＤが自ノードＩＤと一致すると判定した場合には（ステップＳ１０５；ＹＥＳ）、データフレーム処理部３３は、受信したデータフレームを上位層に出力し、上位層は、データフレームの入力に応答して、受信したデータフレームの処理を行う（ステップＳ１０６）。そして、本処理は終了する。
【０１０７】
一方、ＧＤが自ノードＩＤと一致しないと判定した場合には（ステップＳ１０５；ＮＯ）、データフレーム処理部３３は、ルート選択部３４に対して、ＬＤの選択を指示する（ステップＳ１０７）。
【０１０８】
ＬＤの選択の指示を受けたルート選択部３４は、転送対象のデータフレームのＧＤに対応するルーティングテーブルＴ３を特定し（ステップＳ１０８）、ＧＤまでのルートコストＣＲｏｕｔｅが最小となるように、ＬＤを選択する（ステップＳ１０９）。そして、ルート選択部３４は、データフレーム処理部３３に対し、選択したＬＤを通知する（ステップＳ１１０）。
【０１０９】
選択されたＬＤの通知を受けたデータフレーム処理部３３は、ヘッダの設定を行い（ステップＳ１１１）、通信部１０を介して、ルート選択部３４により選択されたＬＤである隣接ノード装置１にデータフレームを転送する（ステップＳ１１２）。そして、本処理は終了する。
【０１１０】
次に、図１２を参照して、本実施形態における更新処理の流れについて説明する。図１２は、本実施形態における更新処理のフローを説明するためのフローチャートの例である。本更新処理は、上述のフレーム受信処理のステップＳ００９の処理に対応する処理である。
【０１１１】
リンク管理部３２は、受信したハローフレームを解析し、送信元ＩＤに基づいて、ハローフレームの送信元の隣接ノード装置１を特定し（ステップＳ２０１）、特定した隣接ノード装置１のエントリが受信回数管理テーブルＴ２に有るか否かを判定する（ステップＳ２０２）。
【０１１２】
特定した隣接ノード装置１のエントリは存在しないと判定した場合には（ステップＳ２０２；ＮＯ）、リンク管理部３２は、エントリを追加し、送信元ＩＤと受信回数“１”とを対応付けて受信回数管理テーブルＴ２に格納する（ステップＳ２０３）。そして、処理は後述のステップＳ２０５の処理へと進む。
【０１１３】
一方、特定した隣接ノード装置１のエントリが存在すると判定した場合には（ステップＳ２０２；ＹＥＳ）、リンク管理部３２は、特定した隣接ノード装置１に対応する受信回数をインクリメントする（ステップＳ２０４）。
【０１１４】
そして、リンク管理部３２は、受信したハローフレームのＦＩＤに基づいて、送信元のノード装置１におけるハローフレームの送信回数を特定する（ステップＳ２０５）。そして、リンク管理部３２は、インクリメントした後の受信回数と特定した送信回数とに基づいて、ハローフレームの受信率を算出すると共に（ステップＳ２０６）、フレーム長管理テーブルＴ１を参照して、各フレームタイプのフレーム長（ＬＤ、ＬＡ、ＬＨ）を取得する（ステップＳ２０７）。
【０１１５】
そして、リンク管理部３２は、算出したハローフレームの受信率と取得した各フレームタイプのフレーム長とに基づいて、上述の式７に従って、受信したハローフレームの送信元のノード装置１との間のリンクおけるユニキャストフレームの到達率を算出する（ステップＳ２０８）。
【０１１６】
そして、リンク管理部３２は、算出した到達率の逆数をリンクコストＣＬｉｎｋとして算出し（ステップＳ２０９）、算出したリンクコストＣＬｉｎｋで、ルーティングテーブルＴ３の特定した隣接ノード装置１に対応するリンクコストＣＬｉｎｋをそれぞれ更新する（ステップＳ２１０）。この際、特定した隣接ノード装置１のエントリがルーティングテーブルＴ３に存在しない場合、あるいは、ハローフレームに含まれるルートコストＣＲｏｕｔｅに対応付けられているＧＤの一部に特定した隣接ノード装置１のエントリが存在しない場合に、リンク管理部３２は、エントリを追加して、対応するフィールドに算出したリンクコストＣＬｉｎｋを格納する。
【０１１７】
そして、リンク管理部３２は、受信したハローフレームに含まれる各ルートコストＣＲｏｕｔｅに算出したリンクコストＣＬｉｎｋを積算して、自ノード装置１までのルートコストＣＲｏｕｔｅを算出する（ステップＳ２１１）。
【０１１８】
そして、リンク管理部３２は、受信したハローフレームに含まれる各ルートコストＣＲｏｕｔｅに算出したリンクコストＣＬｉｎｋを積算した後のルートコストＣＲｏｕｔｅで、ルーティングテーブルＴ３の対応するルートコストＣＲｏｕｔｅをそれぞれ更新する（ステップＳ２１２）。そして、本処理は終了する。
【０１１９】
次に、図１３を参照して、本実施形態におけるハローフレーム生成処理の流れについて説明する。図１３は、本実施形態におけるハローフレーム生成処理のフローを説明するためのフローチャートの例である。本ハローフレーム生成処理は、所定のタイミングの到来をトリガとして開始される。
【０１２０】
ハローフレーム生成部３５は、所定のタイミングが到来したか否かを判定する（ステップＳ３０１）。ハローフレーム生成部３５により、所定のタイミングはまだ到来していないと判定された場合には（ステップＳ３０１；ＮＯ）、処理はステップＳ３０１の処理を繰り返し、所定のタイミングの到来を待つ。
【０１２１】
一方、所定のタイミングが到来したと判定した場合には（ステップＳ３０１；ＹＥＳ）、ハローフレーム生成部３５は、ルーティングテーブルＴ３を参照して、登録されているＧＤ毎に、当該ＧＤに対応する隣接ノード装置１のルートコストＣＲｏｕｔｅの内で最小のルートコストＣＲｏｕｔｅを特定する（ステップＳ３０２）。そして、ハローフレーム生成部３５は、当該ＧＤのノードＩＤと特定したルートコストＣＲｏｕｔｅとの組を含むハローフレームを生成する（ステップＳ３０３）。
【０１２２】
そして、ハローフレーム生成部３５は、通信部１０を介して、生成したハローフレームを隣接ノード装置１へ送信する（ステップＳ３０４）。そして、処理はステップＳ３０１の処理へと戻り、前述の処理を繰り返す。
【０１２３】
上記実施形態によれば、ノード装置１は、リンクが存在する隣接ノード装置１より送信された特定のフレームタイプのフレームの受信率を算出し、算出した受信率と各フレームタイプのフレーム長とに基づいて、ユニキャストフレームの到達率を算出し、算出した到達率の逆数を当該リンクのリンクコストＣＬｉｎｋとして算出する。そして、ノード装置１は、フレームの送信元の隣接ノード装置１から到達可能な各ＧＤまでの経路毎に、経路上のリンクのリンクコストＣＬｉｎｋの積算値であるルートコストＣＲｏｕｔｅを隣接ノード装置１から取得する。そして、ノード装置１は、取得したルートコストＣＲｏｕｔｅに算出したリンクコストを積算して、自ノード装置１からフレームの送信元の隣接ノード装置１を経由して到達可能な各ＧＤまでの経路のルートコストＣＲｏｕｔｅを算出する。そして、ノード装置１は、データフレームを送信する際に、自ノード装置１から送信対象のデータフレームのＧＤまでの経路のルートコストＣＲｏｕｔｅに基づいて、データフレームの送信先となる隣接ノード装置１を選択する。
【０１２４】
このように構成することで、簡易な方法で、到達率を確保しつつ、ホップ数の増加を抑制することが可能となる。
【０１２５】
ここで、図１４は、周波数利用効率の向上率を示すグラフである。図１４に示すグラフは、より具体的には、ホップ数をルートコストＣＲｏｕｔｅとした場合の周波数利用効率に対する、ユニキャストフレームの到達率の逆数をリンクコストＣＬｉｎｋとし、リンクコストＣＬｉｎｋの積算値をルートコストＣＲｏｕｔｅとした場合の周波数利用効率の向上率をＧＷ装置の収納半径毎にグラフ化したものである。図１４に示すように、収容半径が小さいほど、周波数利用効率の向上率が高くなる。したがって、ノード装置１の密度が高い都市部などでの運用時において、収容数を大幅に増加することが可能となる。
【０１２６】
また、上記実施形態によれば、ノード装置１は、ハローフレームの受信率を算出し、算出したハローフレームの受信率に基づいて、リンクコストＣＬｉｎｋを算出した。このように構成することで、ハローフレームは定期的に送信されるため、定期的にリンクコストＣＬｉｎｋを算出することが可能となる。したがって、適切な経路を維持することが可能となる。
【０１２７】
また、上記実施形態によれば、ノード装置１は、自ノード装置１から送信対象のデータフレームのＧＤまでの経路のルートコストＣＲｏｕｔｅが最小となるように、データフレームの送信先となる隣接ノード装置１を選択する。このように構成することで、より適切な経路を選択することが可能となる。
【０１２８】
また、上記実施形態によれば、ノード装置１は、特定のフレームタイプのフレームの受信回数と受信した特定のフレームタイプのフレームに含まれる当該特定のフレームタイプのフレームが自ノード装置１に送信された送信回数とに基づいて、受信率を算出した。このように構成することで、簡単な方法で、ネットワーク負荷を増大させることなく、リンクコストＣＬｉｎｋを算出することが可能となる。
【０１２９】
なお、上記実施形態において、ハローフレームの受信率と各フレームタイプのフレーム長とに基づいて、ユニキャストフレームの到達率を算出すると説明したが、これに限定されるものではなく、データフレームの受信率（又は、ＡＣＫフレームの受信率）と各フレームタイプのフレーム長とに基づいて、ユニキャストフレームの到達率を算出してもよい。
【０１３０】
例えば、データフレームの受信率とデータフレームのフレーム長ＬＤとに基づいて、１ビットのデータの片方向の受信率を、同様の方法により、算出することが可能である。したがって、データフレームの受信率に基づいて、ユニキャストフレームの到達率を算出することが可能である。この場合、データフレームに送信先の隣接ノード装置１にデータフレームを送信した回数を含めればよい。しかしながら、ハローフレームは定期的に送信されるため、定期的にリンクコストＣＬｉｎｋを算出することが可能である。したがって、ハローフレームの受信率に基づいて、リンクコストＣＬｉｎｋを算出するのが好ましい。
【０１３１】
また、上記実施形態において、各フレームタイプのフレーム長が固定化されているものとして説明したが、これに限定されるものではなく、フレーム長が可変の場合には、例えば、各フレームタイプのフレーム長を、使用している無線方式で使用可能な最大フレーム長として、リンクコストＣＬｉｎｋを算出してもよい。また、各フレームタイプのフレーム長の平均値をそれぞれ算出し、算出した平均値を用いてリンクコストＣＬｉｎｋを算出してもよい。
【０１３２】
図１５は、実施形態におけるノード装置１のハードウェア構成の例を示す図である。図２に示すノード装置１は、例えば、図１５に示す各種ハードウェアにより実現されてもよい。図１５の例では、ノード装置１は、ＭＰＵ２０１、ＰＨＹ（PHYsical layer）チップ２０２、およびタイマＩＣ（Integrated Circuit）２０３を備える。また、ノード装置１は、ＤＲＡＭ（Dynamic Random Access Memory）２０４、フラッシュメモリ２０５、無線通信モジュール２０６、および読取装置２０７を備える。
【０１３３】
ＭＰＵ２０１とＰＨＹチップ２０２の間を接続する通信インタフェースは、ＭＩＩ／ＭＤＩＯ（Media Independent Interface or Management Data Input/Output）２０９である。ＭＩＩとＭＤＩＯはいずれも、物理層とＭＡＣ（Media Access Control sublayer）副層との間のインタフェースである。また、ＭＰＵ２０１とタイマＩＣ２０３は、Ｉ２Ｃ／ＰＩＯ（Inter-Integrated Circuit or Parallel Input/Output）バス２１０を介して、接続されている。そして、ＤＲＡＭ２０４とフラッシュメモリ２０５と無線通信モジュール２０６と読取装置２０７は、ＰＣＩ（Peripheral Component Interconnect）バス２１１を介して、ＭＰＵ２０１に接続されている。
【０１３４】
ＭＰＵ２０１は、不揮発性記憶装置の一種であるフラッシュメモリ２０５に格納された動作プログラムをＤＲＡＭ２０４にロードし、ＤＲＡＭ２０４をワーキングメモリとして使いながら各種処理を実行する。ＭＰＵ２０１は、動作プログラムを実行することで、図２に示す制御部３０の各機能部を実現することができる。
【０１３５】
なお、上記動作を実行するための動作プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical disk）などのコンピュータで読み取り可能な記録媒体２０８に記憶して配布し、これをノード装置１の読取装置２０７で読み取ってコンピュータにインストールすることにより、上述の処理を実行するように構成してもよい。さらに、インターネット上のサーバ装置が有するディスク装置等に動作プログラムを記憶しておき、ＰＨＹチップ２０２もしくは無線通信モジュール２０６を介して、ノード装置１のコンピュータに動作プログラムをダウンロード等するものとしてもよい。
【０１３６】
なお、実施形態に応じて、ＤＲＡＭ２０４やフラッシュメモリ２０５以外の他の種類の記憶装置が利用されてもよい。例えば、ノード装置１は、ＣＡＭ（Content Addressable Memory）、ＳＲＡＭ（Static Random Access Memory）、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などの記憶装置を有してもよい。
【０１３７】
図２などに示すフレーム長管理テーブルＴ１、受信回数管理テーブルＴ２、ルーティングテーブルＴ３は、ＤＲＡＭ２０４、フラッシュメモリ２０５、あるいは不図示のその他の記憶装置により実現される。また、フラッシュメモリ２０５は、動作プログラムだけでなく、自ノードＩＤなども記憶している。
【０１３８】
ＰＨＹチップ２０２は、有線接続における物理層の処理を行う回路である。ネットワーク１００が無線ネットワークの場合には、ノード装置１はＰＨＹチップ２０２を備えなくてもよい。しかし、ノード装置１と外部ネットワークとの接続のために、ノード装置１はＰＨＹチップ２０２を備えていてもよい。
【０１３９】
例えば、ノード装置１は、イーサネット（登録商標）規格にしたがった有線ＬＡＮポートを備え、有線ＬＡＮポートに接続されたケーブルを介して外部ネットワークのＧＷ装置などに接続されていてもよい。
【０１４０】
その場合、ＭＰＵ２０１は、イーサネットフレームを生成し、ＭＩＩ／ＭＤＩＯ２０９を介してＰＨＹチップ２０２に出力することができる。そして、ＰＨＹチップ２０２は、ＭＰＵ２０１からの出力（すなわちイーサネットフレームを表す論理信号）を、ケーブルの種類に応じた信号（つまり電気信号または光信号）に変換し、ケーブルに出力する。こうして、ノード装置１はＰＨＹチップ２０２を用いて外部ネットワークにデータ（例えば、フレーム）を送信することができる。
【０１４１】
また、ＰＨＹチップ２０２は、ケーブルと有線ＬＡＮポートを介して外部ネットワークから入力される電気信号または光信号を、論理信号に変換し、ＭＩＩ／ＭＤＩＯ２０９を介してＭＰＵ２０１に出力することもできる。こうして、ノード装置１はＰＨＹチップ２０２を用いて外部ネットワークからデータ（例えば、フレーム）を受信することができる。
【０１４２】
タイマＩＣ２０３は、設定された時間が経過するまでカウントアップ動作を行い、設定された時間が経過すると割り込み信号を出力する回路である。
【０１４３】
無線通信モジュール２０６は、無線接続における物理層の処理を行うハードウェアである。無線通信モジュール２０６は、例えば、アンテナ、ＡＤＣ（Analog-to-Digital Converter）、ＤＡＣ（Digital-to-Analog Converter）、変調器、復調器、符号化器、復号器などを含む。
【０１４４】
なお、実施形態に応じて、ノード装置１のハードウェア構成は図１５とは異なっていてもよく、図１５に例示した規格・種類以外のその他のハードウェアをノード装置１に適用することもできる。
【０１４５】
例えば、図２に示す制御部３０の各機能部は、ハードウェア回路により実現されてもよい。具体的には、ＭＰＵ２０１の代わりに、ＦＰＧＡ（Field Programmable Gate Array）などのリコンフィギュラブル回路や、ＡＳＩＣ（Application Specific Integrated Circuit）などにより、図２に示す制御部３０の各機能部が実現されてもよい。もちろん、ＭＰＵ２０１とハードウェア回路の双方により、これらの機能部が実現されてもよい。
【０１４６】
以上において、いくつかの実施形態について説明した。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態を成すことができることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【０１４７】
以上の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、
算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出し、
算出した前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
ことを特徴とするノード装置の経路選択方法。
（付記２）
自ノード装置から送信対象の前記データフレームの前記最終宛先のノード装置までの経路の前記ルートコストが最小となるように、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
ことを特徴とする付記１に記載のノード装置の経路選択方法。
（付記３）
前記特定のフレームタイプのフレームの前記隣接ノード装置からの受信回数と当該隣接ノード装置より送信された前記特定のフレームタイプのフレームが自ノード装置に送信された送信回数とに基づいて、前記受信率を算出する、
ことを特徴とする付記２又は３に記載のノード装置の経路選択方法。
（付記４）
前記特定のフレームタイプのフレームはハローフレームである、
ことを特徴とする付記１乃至３のいずれか一に記載のノード装置の経路選択方法。
（付記５）
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出する第１の算出手段と、
算出された前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出する第２の算出手段と、
算出された前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出する第３の算出手段と、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得する取得手段と、
取得された前記ルートコストに算出された前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する第４の算出手段と、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する選択手段と、
を備える、
ことを特徴とするノード装置。
（付記６）
前記選択手段は、自ノード装置から送信対象の前記データフレームの前記最終宛先のノード装置までの経路の前記ルートコストが最小となるように、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
ことを特徴とする付記５に記載のノード装置。
（付記７）
前記第１の算出手段は、前記特定のフレームタイプのフレームの前記隣接ノード装置からの受信回数と当該隣接ノード装置より送信された前記特定のフレームタイプのフレームが自ノード装置に送信された送信回数とに基づいて、前記受信率を算出する、
ことを特徴とする付記５又は６に記載のノード装置。
（付記８）
前記特定のフレームタイプのフレームはハローフレームである、
ことを特徴とする付記５乃至７のいずれか一に記載のノード装置。
（付記９）
複数のノード装置を含む中継システムであって、
前記ノード装置の各々が、
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出する第１の算出手段と、
算出された前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出する第２の算出手段と、
算出された前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出する第３の算出手段と、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得する取得手段と、
取得された前記ルートコストに算出された前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する第４の算出手段と、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する選択手段と、
を備える、
ことを特徴とする中継システム。
（付記１０）
ノード装置のコンピュータに、
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、
算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出し、
算出した前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
処理を実行させる、
ことを特徴とするプログラム。
（付記１１）
ノード装置のコンピュータに、
リンクが存在する隣接するノード装置である隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、
算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記隣接ノード装置に対し送信されるデータフレームを前記隣接ノード装置が受信し、且つ、前記データフレームを受信した際に前記隣接ノード装置より自ノード装置に送信される肯定応答を自ノード装置が受信する確率である到達率を算出し、
算出した前記到達率の逆数を前記隣接ノード装置との間の前記リンクのリンクコストとして算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
処理を実行させるプログラムを記憶した記録媒体。
【符号の説明】
【０１４８】
１００    ネットワーク
Ｎｉ      ノード装置のノードＩＤ
１        ノード装置
１０      通信部
２０      記憶部
Ｔ１      フレーム長管理テーブル
Ｔ２      受信回数管理テーブル
Ｔ３      ルーティングテーブル
３０      制御部
３１      フレーム種別特定部
３２      リンク管理部
３３      データフレーム処理部
３４      ルート選択部
３５      ハローフレーム生成部
３６      ＡＣＫフレーム処理部
２０１    ＭＰＵ
２０２    ＰＨＹチップ
２０３    タイマＩＣ
２０４    ＤＲＡＭ
２０５    フラッシュメモリ
２０６    無線通信モジュール
２０７    読取装置
２０８    記録媒体
２０９    ＭＩＩ／ＭＤＩＯ
２１０    Ｉ２Ｃ／ＰＩＯバス
２１１    ＰＣＩバス
【図１】
2015180013.tif 000016
【図２】
2015180013.tif 000017
【図３】
2015180013.tif 000018
【図４】
2015180013.tif 000019
【図５】
2015180013.tif 000020
【図６】
2015180013.tif 000021
【図７】
2015180013.tif 000022
【図８】
2015180013.tif 000023
【図９】
2015180013.tif 000024
【図１０】
2015180013.tif 000025
【図１１】
2015180013.tif 000026
【図１２】
2015180013.tif 000027
【図１３】
2015180013.tif 000028
【図１４】
2015180013.tif 000029
【図１５】
2015180013.tif 000030