(57)【特許請求の範囲】
【請求項１】
データ送信元からデータ送信先への通信ネットワークを構築する複数のノード装置に含まれるノード装置に、
前記データ送信元から最初に送信された、前記データ送信先を最終宛先とする通信情報であって前記データ送信元から前記ノード装置までの通信経路の情報を有している該通信情報を、前記通信経路における前段のノード装置から受信し、
受信した前記通信情報が有している前記通信経路の情報に対して前記通信情報の前記データ送信先までの通信経路における後段のノード装置の識別情報を付加した通信情報を、前記後段のノード装置に送信し、
前記後段のノード装置に送信した通信情報が有しているものと同一である通信経路の情報を有しており前記データ送信元を最終宛先とする通信情報である折り返しの通信情報を、前記前段のノード装置に送信する、
処理を実行させることを特徴とする経路情報収集プログラム。
【請求項２】
前記ノード装置に、さらに、
前記前段のノード装置から前記通信情報を受信すると、該前段のノード装置の識別情報を記憶装置に保持し、
前記後段のノード装置から前記折り返しの通信情報を受信した場合、保持された前記識別情報を用いて、前記前段のノード装置へ、受信した前記折り返しの通信情報を送信する
ことを特徴とする請求項１に記載の経路情報収集プログラム。
【請求項３】
前記ノード装置に、さらに、
前記後段のノード装置から受信した、前記後段のノード装置に送信した前記通信情報に対する受信確認情報に基づいて、前記通信経路のノード装置間の通信状況を特定する
処理を実行させることを特徴とする請求項１又は２に記載の経路情報収集プログラム。
【請求項４】
前記ノード装置に、さらに、
前記後段のノード装置から、前記データ送信元を最終宛先とする通信情報であって該通信情報の最初の送信元から前記ノード装置までの通信経路の情報を有している該通信情報を受信すると、前記後段のノード装置から受信した前記通信情報が有している通信経路の情報に前記前段のノード装置の識別情報を付加した通信情報を、前記前段のノード装置に送信する、
処理を実行させることを特徴とする請求項１から３のうちのいずれか一項に記載の経路情報収集プログラム。
【請求項５】
データ送信元からデータ送信先への通信ネットワークを構築する複数のノード装置に含まれるノード装置が、
前記データ送信元から最初に送信された、前記データ送信先を最終宛先とする通信情報であって前記データ送信元から前記ノード装置までの通信経路の情報を有している該通信情報を、前記通信経路における前段のノード装置から受信し、
受信した前記通信情報が有している前記通信経路の情報に対して前記通信情報の前記データ送信先までの通信経路における後段のノード装置の識別情報を付加した通信情報を、前記後段のノード装置に送信し、
前記後段のノード装置に送信した通信情報が有しているものと同一である通信経路の情報を有しており前記データ送信元を最終宛先とする通信情報である折り返しの通信情報を、前記前段のノード装置に送信し、
前記データ送信元の装置が、前記複数のノード装置から送信される前記折り返しの通信情報を収集する
ことを特徴とする経路情報収集方法。
【請求項６】
データ送信元からデータ送信先への通信ネットワークを構築する複数のノード装置に含まれるノード装置であって、
前記データ送信元から最初に送信された、前記データ送信先を最終宛先とする通信情報であって前記データ送信元から前記ノード装置までの通信経路の情報を有している該通信情報を、前記通信経路における前段のノード装置から受信する受信部と、
受信した前記通信情報が有している前記通信経路の情報に対して前記通信情報の前記データ送信先までの通信経路における後段のノード装置の識別情報を付加した通信情報を、前記後段のノード装置に送信すると共に、前記後段のノード装置に送信した通信情報が有しているものと同一である通信経路の情報を有しており前記データ送信元を最終宛先とする通信情報である折り返しの通信情報を、前記前段のノード装置に送信する送信部と、
を備えることを特徴とするノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、経路情報収集プログラム、経路情報収集方法、及びノード装置に関する。
【背景技術】
【０００２】
アドホック通信技術とは、アクセスポイントを介さずに機器同士が直接通信を行う通信技術をいう。近年、アドホック通信技術を適用した各通信機器が周囲の通信機器を認識して、無線アドホックネットワーク技術が注目されている。
【０００３】
アドホックネットワークのルーティングプロトコル（アドホックプロトコル）の一例として、リアクティブ型のＡＯＤＶ（Adhoc On Demand Distance Vector Algorithm）やプロアクティブ型のＯＬＳＲ（Optimized Link State Routing）が挙げられる。さらに、アドホックプロトコルの一例として、通信要求に先立って、予め各ノードが自律的にデータ通信を行うための経路（ルート）を構築し、更に、最適な経路を随時学習し、経路変更するプロアクティブ型ルーティングプロトコルがある。
【０００４】
アドホックネットワークに関する技術の一例として、以下の技術がある。
第１技術として、複数の無線端末装置を経由して宛先の無線端末装置にパケットを送信するシステムにおけるパケットルーティング方法がある（例えば、特許文献１）。第１技術では、パケットを中継する無線端末装置が経路断を監視する。経路断を検出した無線端末装置が、パケットの宛先の無線端末装置に経路検索パケットを送信すると共に、送信元の無線端末装置に経路断を通知する。中継する無線端末装置は、経路検索パケットに従ってパケット転送の経路を再構築する。送信元の無線端末装置は、経路断の情報を受け取った場合に経路再構築を行う。
【０００５】
第２技術として、複数の無線端末装置を経由して宛先の無線端末にパケットを送信するシステムにおけるパケットルーティング方法がある（例えば、特許文献２）。第２技術では、中継する無線端末装置が無線信号を用いて直接パケットを伝送している無線端末装置との通信が切断されたことを検出する。通信が切断されたことを検出した無線端末装置は、自装置がパケットの宛先の無線端末装置か送信元の無線端末装置のいずれ側に位置するか判断する。送信元の無線端末装置側にいると判断した無線端末装置は、パケットの宛先の無線端末装置への経路修復の要求信号をブロードキャストで送信する。パケットの宛先の無線端末装置は、経路修復の要求信号をした場合、パケットの送信元の無線端末装置宛に経路再構築の要求をブロードキャストで送信する。
【０００６】
第３技術として、ネットワーク全体として、各ノード装置による自律分散処理の結果として、適切な経路が選択されてデータが送信される技術がある（例えば、特許文献３）。第３技術では、ノード装置が送信したことのあるフレームがネットワークを経由してノード装置自身に受信されると、前回選択した隣接ノード装置とは別の隣接ノード装置が送信先として試される。そして、送信可能な隣接ノード装置がないと、バックトラック手段によって上記第３の隣接ノード装置へと受信フレームが送信されるので、第３の隣接ノード装置に別の新たな経路を試させることができる。
【０００７】
第４の技術として、ネットワーク中の通信経路の状態を監視する技術がある（例えば、特許文献４）。第４の技術では、複数のノード装置を含むネットワーク中の第１のノード装置は、通信品質を調査する対象の経路の終点のノード装置である終点ノード宛てのフレームの転送先のノード装置から、経路の調査に使用する第１の調査フレームの送信先を選択する。第１のノード装置は、第１の調査フレームの送信先として選択した第２のノード装置への第１の調査フレームの送信に失敗すると、第１のノード装置と前記第２のノード装置との間の通信が失敗したことを記録した第２の調査フレームを生成する。第１のノード装置は、第２の調査フレームの送信先とする第３のノード装置を、終点ノード宛てのフレームの転送先となるノード装置から選択する。第１のノード装置は、第３のノード装置に第２の調査フレームを送信することにより、第３のノード装置を介して、第１のノード装置と第２のノード装置との間の通信が失敗したことを、終点ノードに通知する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２６９６２３号公報
【特許文献２】特開２００５−２３６６８７号公報
【特許文献３】国際公開第２０１１／０１３１６５号
【特許文献４】特開２０１４−１８３３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
アドホックネットワークを構築する各ノードは相互に通信することにより、経路情報を収集するためのフレーム（経路収集フレーム）は、その送信起点のノード（起点ノード）から対象ノードへ、中継を繰り返されながら送信される。経路収集フレームは、中継するノードを通過する毎に経路情報が累積して付加されていく。経路収集フレームが最終的に起点ノードに戻ってくることにより、起点ノードは、起点ノードと対象ノード間の経路情報を取得することができる。
【００１０】
しかしながら、通信障害の発生により経路収集フレームが途中で消失し、起点ノードに戻ってこない場合には、起点ノードは、起点ノードと対象ノード間の経路情報を全く取得することができない。そのため、通信障害が起きた経路についての追跡調査や特定をすることができない。
【００１１】
本発明の一側面では、通信障害が発生した場合の経路についての追跡調査を支援する技術を提供する。
【課題を解決するための手段】
【００１２】
本発明の一態様では、データ送信元からデータ送信先への通信ネットワークを構築する複数のノード装置に含まれるノード装置に、次の処理を実行させる。ノード装置は、データ送信元から最初に送信された、データ送信先を最終宛先とする通信情報であってデータ送信元からノード装置までの通信経路の情報を有している該通信情報を、通信経路における前段のノード装置から受信し、受信した通信情報が有している通信経路の情報に対して通信情報のデータ送信先までの通信経路における後段のノード装置の識別情報を付加した通信情報を、後段のノード装置に送信し、後段のノード装置に送信した通信情報が有しているものと同一である通信経路の情報を有しておりデータ送信元を最終宛先とする通信情報である折り返しの通信情報を、前段のノード装置に送信する。
【発明の効果】
【００１３】
本発明の一側面では、通信障害が発生した場合の経路についての追跡調査を支援することができる。
【図面の簡単な説明】
【００１４】
【図１】第４技術における、メッシュ状のアドホックネットワークでのトレースルート動作の一例を示す。
【図２】第４技術における、ホップ数が多い場合のトレースルート動作の一例を示す。
【図３】本実施形態におけるノード装置の一例を示す。
【図４】本実施形態における、トレースルート動作の一例を示す。
【図５】図４に対応する動作シーケンスを示す。
【図６】本実施形態における、ホップ数が多い場合のトレースルート動作の一例を示す。
【図７】本実施形態における、アドホック制御データフレームのフォーマットの例を示す。
【図８】本実施形態におけるノードのハードウェア構成例である。
【図９】本実施形態におけるフレーム送受信に関するノードの機能ブロック図の一例である。
【図１０】本実施形態におけるリンクテーブルの一例を示す。
【図１１】本実施形態におけるルーティングテーブルの一例を示す。
【図１２】本実施形態におけるＴＮＤルーティングテーブルの一例を示す。
【図１３】本実施形態におけるＴＮＤルーティングテーブルの更新例を示す。
【図１４】本実施形態における起点ノードの経路収集フレーム（往路用）の送信処理フローを示す。
【図１５】本実施形態における起点ノードの折り返しフレームの受信処理フローを示す。
【図１６】本実施形態における起点ノードの経路収集フレーム（復路用）の受信処理フローを示す。
【図１７】本実施形態における起点ノードの、経路収集フレーム（復路用）の受信待ち時間がタイムアウトになった場合の処理フローを示す。
【図１８】本実施形態における中継ノードの経路収集フレーム（往路用）受信処理フローを示す。
【図１９】本実施形態における中継ノードの折り返しフレームの受信処理フローを示す。
【図２０】本実施形態における中継ノードのバックトラックフレームの受信処理フローを示す。
【発明を実施するための形態】
【００１５】
例えば、上述した第４技術では、各ノードによって自律的に構築されたアドホックネットワークの中をどの様な経路でデータの疎通がされるか確認する事ができるトレースルート機能を持っている。このトレースルート機能では、送信起点のノードが送信した経路収集フレームに、中継する各ノードが自身の経路情報を付与して転送する。これにより、送信起点のノードから最終宛先の着信ノード迄の間に経由したノードの情報を識別することが可能である。また送信失敗による経路切り替えが発生した場合でも、その経路切り替えについての情報を含めて経路情報を取得することが可能である。
【００１６】
上記トレースルート機能では、経路収集フレームが送信起点のノードまで戻ってきた場合に経路情報の取得が可能である。
【００１７】
しかしながら、様々な外的要因で刻々と状況が変化する無線通信環境においては、ノード間で定期的に送受信している制御メッセージ（ＨＥＬＬＯ）よりも短い期間に、一時的に通信障害が発生する可能性がある。この場合、自律の経路情報変更が行われないため、経路途中において経路収集フレームの消失が起きると、経路収集フレームが送信起点のノードまで戻ってこない場合が考えられる。
【００１８】
その場合、送信起点のノードは、途中までの経路情報を取得することはできない。このようなケースになると、ping等を用いて保守者の手探りで障害発生パスを調査することになり、通信環境の保守に時間を要することになる。また、通信環境の保守対応が遅れることで、検針など業務データの到達率低下を引き起こしてしまう可能性がある。
【００１９】
図１は、第４技術における、メッシュ状のアドホックネットワークでのトレースルート動作の一例を示す。ノード装置（以下、「ノード」という）Ａ〜Ｅは、無線アドホック通信技術を搭載した通信端末である。
【００２０】
まずは、図１（Ａ）を用いて経路情報を取得することができる場合のトレースルート動作を説明する。図１（Ａ）では、送信起点のノードＡが、ターゲットとなるノードＥ宛に経路収集フレームを送信する場合について説明する。ここで、ノード間では、経路収集フレームが送受信される。中継するノードを通過する毎に、経路収集フレームには、その中継ノードから隣接する他の中継ノードへ送信可能か否かの経路情報が付与される。
【００２１】
（Ａ１）ノードＡは、「ノードＢ宛送信結果」に「成功」を設定した経路情報を経路収集フレームに付与し、その経路収集フレームをノードＢ宛に送信する。その結果、ここでは、ノードＢ宛への送信が失敗したと想定する。
【００２２】
（Ａ２）ノードＡはノードＢ宛への経路収集フレームの送信失敗を検出し、経路収集フレームの「ノードＢ宛送信結果」を「失敗」に変更する。その後、ノードＡは「ノードＣ宛送信結果」に「成功」を設定した経路情報をその経路収集フレームに付与し、その経路収集フレームをノードＣ宛に送信する。ノードＡからノードＣへの経路収集フレームの送信は正常に行われたとする。
【００２３】
（Ａ３）ノードＣは「ノードＤ宛送信結果」に「成功」を設定した経路情報を、受信した経路収集フレームに付与し、その経路収集フレームをノードＤ宛に送信する。ノードＣからノードＤへの経路収集フレームの送信は正常に行われたとする。
【００２４】
（Ａ４）ノードＤは「ノードＥ宛送信結果」に「成功」を設定した経路情報を、受信した経路収集フレームに付与し、その経路収集フレームをノードＥ宛に送信する。その結果、ここでは、ノードＥ宛への送信が失敗したと想定する。
【００２５】
（Ａ５）ノードＤはノードＥ宛への経路収集フレームの送信失敗を検出し、経路収集フレームの「ノードＥ宛送信結果」を「失敗」に変更する。その後、ノードＤは、「ノードＣ宛送信結果」に「成功」に設定した経路情報をその経路収集フレームに付与し、その経路収集フレームをノードＣ宛に送信する（バックトラック）。ノードＤからノードＣへの経路収集フレームの送信は正常に行われたとする。
【００２６】
（Ａ６）ノードＣは「ノードＡ宛送信結果」に「成功」を設定した経路情報を、受信したフレームに付与し、その経路収集フレームをノードＡ宛に送信する。ノードＣからノードＡへの経路収集フレームの送信は正常に行われたとする。
【００２７】
次に、図１（Ｂ）を用いて、経路情報を取得することができない場合のトレースルート動作を説明する。
【００２８】
（Ｂ１）ノードＡは、「ノードＢ宛送信結果」に「成功」を設定した経路情報を経路収集フレームに付与し、その経路収集フレームをノードＢ宛に送信する。その結果、ここでは、ノードＢ宛への送信が失敗したと想定する。
【００２９】
（Ｂ２）ノードＡはノードＢ宛への経路収集フレームの送信失敗を検出し、経路収集フレームの「ノードＢ宛送信結果」を「失敗」に変更する。その後、ノードＡは「ノードＣ宛送信結果」に「成功」を設定した経路情報をその経路収集フレームに付与し、その経路収集フレームをノードＣ宛に送信する。ノードＡからノードＣへの経路収集フレームの送信は正常に行われたとする。
【００３０】
（Ｂ３）ノードＣは「ノードＤ宛送信結果」に「成功」を設定した経路情報を、受信した経路収集フレームに付与し、その経路収集フレームをノードＤ宛に送信する。ノードＣからノードＤへの経路収集フレームの送信は正常に行われたとする。
【００３１】
（Ｂ４）ノードＤは「ノードＥ宛送信結果」に「成功」を設定した経路情報を、受信した経路収集フレームに付与し、その経路収集フレームをノードＥ宛に送信する。その結果、ここでは、ノードＥ宛への送信が失敗したと想定する。
【００３２】
（Ｂ５）ノードＤはノードＥ宛への経路収集フレームの送信失敗を検出し、経路収集フレームの「ノードＥ宛送信結果」を「失敗」に変更する。この場合、ターゲットとなるノードＥに対する経路は、ターゲットとなるノードＥに到達する前に行き止まりになったので、経路収集フレームの進行方向がターゲットノードから送信起点のノードに変更される（バックトラック）。したがって、ノードＤは、「ノードＣ宛送信結果」に「成功」に設定した経路情報をその経路収集フレームに付与し、その経路収集フレームをノードＣ宛に送信する。その結果、ここでは、ノードＣ宛への送信が失敗したと想定する。すると、ノードＡは、上記（Ｂ３）、（Ｂ４）で追加された経路情報を得ることができないまま、経路収集フレーム（バックトラックフレーム）が消失する。
【００３３】
（Ｂ６）ノードＡは、バックトラックの経路収集フレームの受信待ち時間のタイムアウトを検出する。この場合、ノードＡは、経路情報を何も得られず、経路収集の失敗となる。
【００３４】
図２は、第４技術における、ホップ数が多い場合のトレースルート動作の一例を示す。図２では、ノードＡ〜ノードＺまでの経路を取得したいが、ノードＸまでしか経路収集フレームが到達できず、経路収集フレーム（バックトラックフレーム）がノードＦ〜Ｅ間で消失してしまった場合の例を示す。
【００３５】
図２では、ノードＡはノードＡからノードＺまでの経路を確認したいが、ノードＸまでしか経路収集フレームが到達しなかったとする。すなわち、ノードＸは、ノードＹ宛に経路収集フレームを送信するが、その送信が失敗したとする（Ｂ１１）。
【００３６】
１つの通信経路が不通の場合、ノードＸは、他の通信経路でノードＹへ送信を試みる（Ｂ１２）。経路収集フレームがノードＹに届かず、他の不図示のノード（Ｙ’，Ｙ”）宛ても届かなかったとする。その結果、経路収集フレームの送信に対する受信確認（ＡＣＫ）フレームを受信することができないので、ＡＣＫ受信待ち時間の超過によるタイムアウトを検知すると、ノードＸは、送信起点のノードへ経路収集フレームを送信する（バックトラック）（Ｂ１３）。
【００３７】
ここで、前回の通信から時間が経ち、電波状況の変化等により通信不可になる場合がある。ノードＥ−Ｆ間の通信不具合により、経路収集フレーム（バックトラックフレーム）が消失したとする（Ｂ１４）。バックトラックフレームが返ってこないと、ノードＥは、通信経路が全くわからないため、どこで通信不具合が発生したのか特定が困難である。
【００３８】
図２によれば、ノードＡは、ホップ数が多くなるほど、前回の通信（ノードＡからノードＺ向きのフレーム送信）からバックトラックフレームが戻ってくるまでの経過時間Ｔ１が大きくなる。その結果、電波状況の変化が起きる可能性が高くなり、通信不具合が起きる可能性も高くなる。ノードＢ〜Ｙのどのノードでも同様のことが起こり得るので、ホップ数が多くなるとその分バックトラックフレームが消失する可能性が高くなる。
【００３９】
このように、経路途中でフレームが消失してしまうような通信障害が起きた場合、障害発生エリアの絞り込みが全く行えないため、保守者が以下の様な調査を行う必要がある。保守者が各ノードの近くまで行き、リンクテーブルやルーティングテーブルの情報を参照し、送信元から最終宛先までの経路を調査する（ホップ数が多い場合、対象ノードが数十台に及ぶケースもある）。
【００４０】
また、調査した経路情報を元に、ぞれぞれのノードに対してトレースルートやpingなどの調査フレームを複数回使用して、原因となるパスの絞り込みを行う。また、これらの調査作業はアドホックルーティングの動作詳細を理解した保守者でなければ実施できず、保守者であれば誰でも実施できる訳ではないため、調査効率も悪くなる傾向にある。
【００４１】
そこで、本実施形態では、各中継ノードが、経路データを次ホップノード宛に送信すると共に、経路収集の送信起点ノード宛にその時点の経路データを送信する。送信起点ノードは経路収集フレームがどのノードまで届いたかを知ることができ、途中でフレームが消失した場合でも消失する前までの経路情報を得ることが可能となる。
【００４２】
これにより、経路上の各ノードが、経路収集の送信起点のノード宛に経路収集フレームと同じフレーム（折り返しフレーム）を送信することにより、送信起点のノードは、経路上の各ノードまでの経路収集フレームの到達状況を把握することが可能となる。
【００４３】
また、隣接ノード間での送信元のノードを管理する管理情報を活用することで、折り返しフレームが、経路収集フレームと同じ経路を辿って送信起点のノードまで転送されるので、直近で使用実績のある経路を使用することが可能となる。
【００４４】
以下、本実施形態について、図面を参照して詳細に説明する。まず、本明細書での用語について説明をする。
【００４５】
「フレーム」とは、アドホックネットワークで用いるプロトコルに基づくデータ単位のことを指す。「フレーム」には、例えば、「ハローメッセージフレーム」、「データフレーム」が含まれるが、これらに限定はされない。
【００４６】
「ハローメッセージフレーム（ＨＥＬＬＯメッセージフレーム）」とは、制御情報を通信するための制御フレームの一種であり、ノード装置が、別のノード装置に対して互いの存在・状態の確認のために送出する特別なフレームのことを指す。なお、ＨＥＬＬＯメッセージフレームを単に、ＨＥＬＬＯメッセージと称する場合もある。
【００４７】
「データフレーム」とは、ネットワークが（スタートノードからゴールノードへと）伝送しようとするデータのことを指す。
【００４８】
「Global Destination（ＧＤ）」とは、アドホックネットワークにおいて最終的なあて先となるノードＩＤのことを指す。なお本明細書ではＧＤのことを、「グローバル宛先アドレス」と称することもある。
【００４９】
「Global Source（ＧＳ）」とは、アドホックネットワークにおいて最初の送り元であるノードＩＤのことを指す。なお本明細書ではＧＳのことを、「グローバル差出アドレス」と称することもある。
【００５０】
「Local Destination（ＬＤ）」とは、「グローバル差出アドレス（ＧＳ）」のノードから「グローバル宛先アドレス（ＧＤ）」のノードへ送信されるフレームを中継する隣接するノード間における、フレームのあて先ノードＩＤのことを指す。なお本明細書ではLDのことを、「ローカル宛先アドレス」と称することもある。
【００５１】
「Local Source（ＬＳ）」とは、「グローバル差出アドレス（ＧＳ）」のノードから「グローバル宛先アドレス（ＧＤ）」のノードへ送信されるフレームを中継する隣接するノード間における、フレームの送信元ノードＩＤのことを指す。なお本明細書ではＬＳのことを、「ローカル差出アドレス」と称することもある。
【００５２】
図３は、本実施形態におけるノード装置の一例を示す。ノード装置１は、データ送信元からデータ送信先への通信ネットワークを構築する複数のノード装置に含まれるノード装置である。ノード装置１は、受信部２、送信部３を含む。ノード装置１の一例として、ノード１１（図９）が挙げられる。通信ネットワークの一例として、アドホックネットワークが挙げられる。
【００５３】
受信部２は、他のノード装置から送信された通信情報を受信する。受信部２の一例として、受信部２６（図９）が挙げられる。
【００５４】
送信部３は、受信した前記通信情報に対して通信の通信経路における後段のノード装置の識別情報を付加した通信情報を、通信経路における前段のノード装置と後段のノード装置とに送信する。より具体的には、送信部３は、前段のノード装置へ送信された通信情報である折り返し情報を、起点となる送信元を最終宛先として、前段のノード装置へ送信する。送信部３の一例として、ルーティング部２３及び送信部２７が挙げられる。後段のノード装置の識別情報の一例としては、後段ノードのノードＩＤが挙げられる。
【００５５】
このように構成することにより、データ送信元（送信起点）のノードは、経路収集フレームの受信に依らず中継にて到達したノードまでの途中経路情報を取得することができるので、通信障害が発生した場合の経路についての追跡調査が容易になる。
【００５６】
ノード装置１は、さらに、記憶部４を含む。ノード装置１は、前段のノード装置から通信情報を受信すると、前段のノード装置の識別情報を記憶部４に保持する。前段のノード装置の識別情報を保持する記憶部４の一例として、送信元（ＬＳ）ノード情報３４を記憶するＲＡＭ１４または不揮発性メモリ１５（図８、図９）が挙げられる。このとき、送信部３は、後段のノード装置から折り返し情報を受信した場合、保持された識別情報を用いて、前段のノード装置へ折り返し情報を送信する。
【００５７】
このように構成することにより、折り返し情報は往路と同じ経路を辿って起点ノードまで転送されるので、直近で使用実績のある経路を使用することが可能となる。
【００５８】
ノード装置１に、さらに、特定部を含む。特定部５は、後段のノード装置から受信した、送信した通信情報に対する受信確認情報に基づいて、通信経路のノード装置間の通信状況を特定する。特定部の一例として、ルーティング２３が挙げられる。
【００５９】
このように構成することにより、ネットワーク中の通信経路の状態を監視することができる。
【００６０】
また、受信部２が後段のノード装置から通信情報を受信する。すると、送信部３は、後段のノード装置から受信した通信情報に前段のノード装置の識別情報を付加した通信情報を、前段のノード装置に送信する。
【００６１】
このように構成することにより、各ノード装置は、経路収集フレーム（復路）を中継することができる。
【００６２】
それでは、以下に本実施形態の詳細について説明する。
図４は、本実施形態における、トレースルート動作の一例を示す。図５は、図４に対応する動作シーケンスを示す。図４及び図５では、ノードＡがノードＥ宛にノードＡ，Ｅ間（往路）の経路収集を開始することを想定する。ここで、ノード間では、経路収集フレームが送受信される。中継するノードを通過する毎に、経路収集フレームには、その中継ノードから隣接する他の中継ノードへ送信可能か否かの経路情報が付与される。
【００６３】
（Ｓ１）ノードＡは、「ノードＢ宛送信結果」に「成功」を設定した経路情報を経路収集フレームに付与し、その経路収集フレームをノードＢ宛に送信する。その結果、ここでは、ノードＢ宛への送信が失敗したと想定する。
【００６４】
（Ｓ２）ノードＡはノードＢ宛への経路収集フレームの送信失敗を検出し、経路収集フレームの「ノードＢ宛送信結果」を「失敗」に変更する。その後、ノードＡは「ノードＣ宛送信結果」に「成功」を設定した経路情報をその経路収集フレームに付与し、その経路収集フレームをノードＣ宛に送信する。ノードＡからノードＣへの経路収集フレームの送信は正常に行われたとする。
【００６５】
（Ｓ３）ノードＣは、ノードＢから経路収集フレームを受信すると、「ノードＤ宛送信結果」に「成功」を設定した経路情報を、受信した経路収集フレームに付与する。ノードＣは、経路情報を付加した経路収集フレームをノードＤ宛に送信する（ノードＣからノードＤへの経路収集フレームの送信は正常に行われたとする）。
【００６６】
このとき、ノードＣは、送信元であるノードＡ宛に、その経路情報を付加した経路収集フレーム（折り返しフレーム）を送信する（ノードＣからノードＡへの経路収集フレームの送信は正常に行われたとする）。なお、折り返しフレームについて、最終宛先ノードまでに通過する中継ノードにおいて経路情報は付与されない。ノードＡは、受信した折り返しフレームを解析することにより、ノードＣがノードＤ宛に送信したことが分かる。
【００６７】
（Ｓ４）ノードＤは、ノードＣから経路収集フレームを受信すると、「ノードＥ宛送信結果」に「成功」を設定した経路情報を、受信した経路収集フレームに付与する。ノードＤは、経路情報を付与した経路収集フレームをノードＥ宛に送信する（その結果、ここでは、ノードＥ宛への送信が失敗したと想定する）。
【００６８】
このとき、ノードＤは、ノードＣ経由で送信元であるＡ宛に、その経路情報を付加した経路収集フレーム（折り返しフレーム）を送信する（ノードＤからノードＡへの経路収集フレームの送信は正常に行われたとする）。なお、折り返しフレームについて、最終宛先ノードまでに通過する中継ノードにおいて経路情報は付与されない。
【００６９】
ノードＡは、受信した折り返しフレームを解析することにより、ノードＤがノードＥ宛に送信したことが分かる。また、ノードＡは、上記（Ｓ３）において何らかの理由（通信障害など）で経路収集フレームを受信できなくても、上記（Ｓ４）で経路収集フレームを受信することによって到達情報を上書きできるため到達したことが確認可能となる。
【００７０】
（Ｓ５）ノードＤは、ノードＥ宛への経路収集フレームの送信失敗を検出し、経路収集フレームの「ノードＥ宛送信結果」を「失敗」に変更する。その後、ノードＤは、「ノードＣ宛送信結果」に「成功」に設定した経路情報をその経路収集フレームに付与し、その経路収集フレームをノードＣ宛に送信する（バックトラック）。その結果、ここでは、ノードＣ宛への送信が失敗したと想定する。なお、バックトラックを送信する場合には、折り返しフレームの送信は行われない。
【００７１】
すると、ノードＡは上記（Ｓ３）、（Ｓ４）において経路情報を得ている状態にて、経路収集フレームが消失する。ここで、当該（Ｓ５）におけるノードＣ宛送信（バックトラック）は、上記（Ｓ４）においてノードＣ宛またはノードＥ宛に送信してから、上記（Ｓ４）におけるノードＥ宛の送信の失敗を検出するまでの時間経過後に行わる。そのため、上記（Ｓ４）でのノードＣ宛送信と、当該（Ｓ５）でのノードＣ宛送信の前後では通信環境の変化が起きる可能性が高く、上記（Ｓ４）におけるノードＣ宛送信が成功し、上記（Ｓ５）Ｃ宛送信が失敗となることが十分考えられる。
【００７２】
なお、図４、図５の例ではホップ数が少ないため、通信環境の変化の発生が（Ｓ４）Ｃ宛送信と（Ｓ５）Ｃ宛送信の間の時間帯に限られるが、ホップ数の多い場合はもっと対象となる時間帯がより広がる。多ホップの場合の例を、図６にて説明する。
【００７３】
（Ｓ６）ノードＡは経路収集フレーム（復路）の受信待ち時間のタイムアウトを検出する。
【００７４】
上記Ｓ３、Ｓ４で得た情報により、ノードＡ→ノードＣ→ノードＤまでは送信が成功し、さらに、Ｓ６にて受信待ち時間のタイムアウトを検出した（ノードＥからの経路収集フレームが未受信のため）ことから、ノードＡは、次の判定を行うことができる。すなわち、ノードＡは、ノードＤ→ノードＥで送信が失敗となったことが分かる。
【００７５】
上述の例ではホップ数が少ない例を元に説明しているが、実動作では中継ノードによる転送が数十ホップすることも想定される。そのため、経路上の各ノードが経路収集の送信起点のノード宛に折り返す経路収集フレーム自身も消失することがあり得る。ただし、折り返しフレームは直近の通信実績のある経路を使用するため、全ての折り返しフレームが消失する可能性は低く、送信元ノードまで届いた各折り返しフレームを解析することで、最終宛先までの途中経路をトレースすることが可能となる。
【００７６】
なお、トレースルート用フレームは、通常のフレームの送信に対して、保守用として間欠的に送信される。これにより、例えば、ノードに搭載したセンサにより得られたセンサ値を収集するような通常のフレームの送受信に影響を及ぼさないように利用することができる。
【００７７】
図６は、本実施形態における、ホップ数が多い場合のトレースルート動作の一例を示す。図６では、ノードＡは、ノードＡからノードＺまでの経路を取得したいが、ノードＸまでしかパケットが到達できず、バックトラックパケットがノードＦ〜Ｅ間で消失してしまった場合を想定する。
【００７８】
まず、ノードＡは、経路収集フレームに経路情報（ノードＢ宛送信結果＝成功）を付加する。ノードＡは、経路情報を付加した経路収集フレームを、ノードＢへ送信する（Ｓ１１）。
【００７９】
ノードＢは、ノードＡから経路収集フレームを受信すると、受信した経路収集フレームに経路情報（ノードＣ宛送信結果＝成功）を付加する。ノードＢは、経路情報を付加した経路収集フレームを、ノードＣへ送信する（Ｓ１２）。このとき、ノードＢは、ノードＡ宛に、Ｃ宛に送信した経路収集フレームと同じフレーム（折り返しフレーム）を送信する（Ｓ１２ａ）。
【００８０】
ノードＣは、ノードＢから経路収集フレームを受信すると、受信した経路収集フレームに経路情報（ノードＤ宛送信結果＝成功）を付加する。ノードＣは、経路情報を付加した経路収集フレームを、ノードＤへ送信する（Ｓ１３）。このとき、ノードＣは、ノードＡ宛に、Ｄ宛に送信した経路収集フレームと同じフレーム（折り返しフレーム）を送信する（Ｓ１３ａ）。
【００８１】
それ以降でも同様に、各ノードは、経路収集フレームを受信すると、受信した経路収集フレームに経路情報を付加し、経路情報を付加した経路収集フレームを、次ポップのノードへ送信する（Ｓ１４〜Ｓ２０）。それと共に、各ノードは、ノードＡ宛に、次ホップのノード宛に送信した経路収集フレームと同じフレーム（折り返しフレーム）を送信する（Ｓ１４ａ〜Ｓ２０ａ）。
【００８２】
ノードＸは、ノードＷから経路収集フレームを受信すると、受信した経路収集フレームに経路情報（ノードＣ宛送信結果＝成功）を付加する。ノードＸは、経路情報を付加した経路収集フレームを、ノードＹへ送信する（Ｓ２１）。ただし、この例では、ノードＹへの経路収集フレームの送信は失敗したとする。このとき、ノードＸは、ノードＡ宛に、Ｙ宛に送信した経路収集フレームと同じフレーム（折り返しフレーム）を送信する（Ｓ２１ａ）。
【００８３】
１つの経路が不通の場合、ノードＸは、他の経路で確認する（Ｓ２１’、Ｓ２１”）。送信した経路収集フレームがノードＹに届かず、他のノード（Ｙ',Ｙ''）宛てにも届かなかった場合、ノードＸは、タイムアウトの検出後、受信した経路収集フレームに経路情報（ノードＷ宛送信結果＝成功）を付加する。ノードＸは、経路情報を付加した経路収集フレームを、ノードＷへ送信する（バックトラック）（Ｓ２２）。Ｓ２２以降では、経路収集フレームをバックトラックフレームと称する。
【００８４】
ノードＷは、ノードＸからバックトラックフレームを受信すると、受信したバックトラックフレームに経路情報（ノードＶ宛送信結果＝成功）を付加する。ノードＷは、経路情報を付加したバックトラックフレームを、ノードＶへ送信する（Ｓ２３）。
【００８５】
それ以降でも同様に、各ノードは、バックトラックフレームを受信すると、受信したバックトラックフレームに経路情報を付加し、経路情報を付加したバックトラックフレームを、次ポップのノードへ送信する（Ｓ２４〜Ｓ２７）。
【００８６】
ここで、前回の通信から時間が経ち、電波状況の変化等により通信不可になる場合がある。ノードＥ−Ｆ間の通信不具合により、バックトラックフレームが消失したとする（Ｓ２８）。
【００８７】
しかしながら、このようにバックトラックが返ってこなくても、Ｓ１２ａ〜Ｓ２１ａにおいて送信された折り返しフレームにより、送信元ノードＡは、途中までの経路情報を取得できているため、調査対象をノードＸの周辺エリアに絞ることができる。
【００８８】
図６によれば、期間Ｔ２においてフレーム消失が起きても、送信元ノードは、折り返しフレームを受信することで、経路探索フレームがどこまで到達したかを確認することができる。これにより経路収集フレームの消失したパスを絞り込むことが出来る。
【００８９】
（実施例）
図７は、本実施形態における、アドホック制御データフレームのフォーマットの例を示す。アドホック制御データフレーム（以下では、「データフレーム」と称する）は、アドホックヘッダ、セキュリティヘッダ、データヘッダ、アドホックメッセージ（ＡＭ）ヘッダ、アドホックメッセージを含む。
【００９０】
アドホックヘッダは、ローカル宛先アドレス（ＬＤ）、ローカル送信元アドレス（ＬＳ）、タイプ、フレームサイズなどの情報を含む。なお、Ｈｅｌｌｏフレームもアドホックヘッダを備えており、データフレームとＨｅｌｌｏフレームはタイプの値で識別される。例えば、データフレームではタイプ＝１、Ｈｅｌｌｏフレームでは、タイプ＝０に設定される。
【００９１】
データヘッダは、グローバル宛先アドレス（ＧＤ）、グローバル送信元アドレス（ＧＳ）、フレーム識別子（frame identifier、ＦＩＤ）、ＨＴＬ（Hop to live）、ホップ数等を含む。フレーム識別子は、アドホックフレーム毎に割り振られた識別番号である。ＨＴＬは、データフレームの有効期限を表す値である。隣接するノード間でフレームが転送される毎に、ＨＴＬの値が１ずつデクリメントされる。
【００９２】
ＡＭヘッダは、タイプ、サブタイプを含む。タイプは、アドホック制御データフレームの機能または用途の種別を特定する情報である。例えば、タイプに「Trace Route」が設定されている場合には、そのデータフレームは、経路情報の収集等に関係する機能を有する。
【００９３】
サブタイプは、「タイプ」で設定した機能また用途をさらに特定する情報である。例えば、サブタイプに「０ｘ００（収集）」が設定されている場合、そのデータフレームは、経路情報の収集のために用いられる経路収集フレームであることを示す。サブタイプに「０ｘ０２（折り返し）」が設定されている場合、そのデータフレームは、折り返しフレームであることを示す。
【００９４】
アドホックメッセージは、データペイロードに相当する。アドホックメッセージには、次ホップのノードに対する送信結果が累積して設定される。
【００９５】
図８は、本実施形態におけるノードのハードウェア構成例である。ノード１１は、ＣＰＵ（Central Processing Unit）１２、無線通信インターフェース（Ｉ／Ｆ）１３、ＲＡＭ（Random Access Memory）１４、不揮発性メモリ１５を含む。ＣＰＵ１２は、無線通信Ｉ／Ｆ１３、ＲＡＭ１４、不揮発性メモリ１５と所定のバスにより接続されている。
【００９６】
ＣＰＵ１２は、各種計算処理を担う。ＣＰＵ１２は、不揮発性メモリ１５等に格納した後述する処理を実現するプログラムを読み出し、当該プログラムを実行する。不揮発性メモリ１５は、例えばＲＯＭ（Read Only Memory）、または読み書き可能なＳＳＤ（Solid State Drive）等の半導体メモリである。ＲＡＭ１４は、データを一時的に保持する揮発性メモリである。
【００９７】
無線通信Ｉ／Ｆ１３は、無線ＬＡＮ（Local Area Network）接続のための処理を行うハードウェアである。無線通信Ｉ／Ｆ１３は、例えばアンテナ、ＡＤＣ（Analog-to-Digital Converter）、ＤＡＣ（Digital-to-Analog Converter）、変調器、復調器などを含む。
【００９８】
また、ノード１１は、これらの電子部品に電力を供給して動作させるための電源としての充電池も搭載している。また図示されていないが、ノード１１は計時のためのクロックまたはタイマを含む。
【００９９】
後述する実施形態で説明する処理を実現するプログラムは、プログラム提供者側から通信ネットワークを介して、例えば不揮発性メモリ１５等の記憶装置に格納してもよい。また、後述する実施形態で説明する処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置に設定されて、ＣＰＵ１２によってそのプログラムが読み出されて、実行されてもよい。
【０１００】
図９は、本実施形態におけるフレーム送受信に関するノードの機能ブロック図の一例である。不揮発性メモリ１５は、ルーティングテーブル３１、リンクテーブル３２、ターゲットノード宛（ＴＮＤ）ルーティングテーブル３３、送信元（ＬＳ）ノード情報３４等を格納する。
【０１０１】
なお、本実施形態では、ルーティングテーブル３１、リンクテーブル３２、ＴＮＤルーティングテーブル３３、送信元（ＬＳ）ノード情報３４は、不揮発性メモリ１５に格納するが、これに限定されず、ＲＡＭに格納してもよい。
【０１０２】
無線通信Ｉ／Ｆ１３は、受信部２６および送信部２７を含み、他のノードとの通信を行うための処理を行う。受信部２６は、ノード１１に送信されてきたフレームの信号を受信し、受信した信号をフレーム受信処理部２１に出力する。
【０１０３】
ＣＰＵ１２は、不揮発性メモリ１５等に格納したプログラムを読み出し、ＨＥＬＬＯ制御部２５、フレーム送信処理部２２、フレーム受信処理部２１、ルーティング部２３、アプリケーション処理部２４として機能する。
【０１０４】
フレーム受信処理部２１は、受信部２６から入力された信号を、ルーティング部２３で処理できるようにフレームに変換する。フレーム受信処理部２１の変換で得られるフレームには、経路収集フレーム、経路収集フレーム以外の制御フレーム、ユーザデータを格納したデータフレームなどが含まれる。フレーム受信処理部２１は、得られたフレームをルーティング部２３に出力する。
【０１０５】
アプリケーション処理部２４は、ノード１１宛のフレームがルーティング部２３から入力されると、入力されたフレームをアプリケーションプログラムにより処理する。また、アプリケーション処理部２４は、アプリケーションプログラムの処理によって他のノード１１に送信するデータフレームを生成することもできる。アプリケーション処理部２４は、生成したデータフレームをルーティング部２３に出力する。
【０１０６】
ルーティング部２３は、入力されたフレームの宛先（ＬＤ）が、当該ルーティング部２３を搭載しているノード宛てか、それ以外のノード宛かの判断を行う。そして、そのフレームの宛先（ＬＤ）が、当該ルーティング部２３を搭載するノード宛てである場合には、ルーティング部２３は、ルーティングテーブル３１に登録された情報を用いて、隣接するいずれのノード（ＬＤ）に転送するかを判定する。
【０１０７】
ルーティング部２３は、入力されたフレームに含まれているアドホックヘッダに基づいて、受信したＨＥＬＬＯメッセージの送信元をルーティングテーブル３１に登録する。また、受信したＨＥＬＬＯメッセージに含まれているノード情報を使用して経路品質やノード間リンクの通信品質を計算し、結果をルーティングテーブル３１やリンクテーブル３２に登録する。ルーティング部２３は、ルーティングテーブル３１やリンクテーブル３２に登録された情報を含むフレームを送信するように送信部２７を制御する。
【０１０８】
ルーティング部２３は、経路収集フレームを受信すると、その経路収集フレームからローカル差出アドレス（ＬＳ）を抽出し、抽出したローカル差出アドレス（ＬＳ）を送信元（ＬＳ）ノード情報３４として不揮発性メモリ１５に格納する。
【０１０９】
ルーティング部２３は、受信した経路収集フレームに、次ホップ（後段）のノード宛てに、次ホップのノード宛送信結果（デフォルト値＝成功）を付加した経路収集フレームを生成する。それと共に、ルーティング部２３は、前段のホップのノード宛てに、その生成した経路収集フレームと同一の経路情報を有する折り返しフレームを生成する。生成したフレームは、送信部２７を介して送信される。
【０１１０】
次ホップ（後段）のノード宛てに、次ホップのノード宛送信結果（デフォルト値＝成功）を付加した経路収集フレームを送信した後にその送信に対応する受信確認（ＡＣＫ）フレームの受信の可否に応じて、ルーティング部２３は、隣接ノードとの通信状況を特定する。すなわち、その受信確認（ＡＣＫ）フレームの受信ができた場合には、ルーティング部２３は、隣接ノードとの通信が成功、すなわち、通信状況は良好と特定する。一方、その受信確認（ＡＣＫ）フレームの受信ができなかった場合には、ルーティング部２３は、隣接ノードとの通信が失敗、すなわち、通信状況は不良と特定する。
【０１１１】
ルーティング部２３は、他のノードから折り返しフレームを受信した場合、送信元（ＬＳ）ノード情報３４として記憶されたＬＳに、折り返しフレームを転送するように制御する。
【０１１２】
ＨＥＬＬＯ制御部２５は、ルーティングテーブル３１に登録された情報を用いて、ＨＥＬＬＯメッセージフレームを生成し、フレーム送信処理部２２に出力する。ＨＥＬＬＯ制御部２５は、ルーティングテーブル３１に含まれている経路に関する情報を含むハローフレームを生成することができる。
【０１１３】
フレーム送信処理部２２は、送信部２７を制御して、フレームの送信を行う。
【０１１４】
図１０は、本実施形態におけるリンクテーブルの一例を示す。各ノードは、自身に隣接するノード分のリンクテーブル３１を有している。自身に隣接するノードとは、自身とアドホック通信を行うノードのことを示す。各ノードは、自身に隣接するノードからＨｅｌｌｏメッセージフレームを受信すると、そのＨｅｌｌｏメッセージフレームを送信したノードについてのリンクテーブル３１を生成する。
【０１１５】
リンクテーブル３１は、「ローカル差出アドレス（ＬＳ）」、「エージングタイマ」、「ＨＥＬＬＯ及び受信電波関連パラメータ」のデータ項目を含む。
【０１１６】
「ローカル差出アドレス（ＬＳ）」には、Ｈｅｌｌｏメッセージフレームの送信元のアドレス、すなわち隣接するノードより受信したＨｅｌｌｏメッセージフレームのアドホックヘッダに含まれるローカル差出アドレスが格納される。
【０１１７】
「エージングタイマ」は、リンクテーブル３１を削除するタイミングを調整する情報であり、リンクテーブル３１の作成時にデフォルト値が設定される。
【０１１８】
「ＨＥＬＬＯ及び受信電波関連パラメータ」には、隣接するノードより受信したＨｅｌｌｏメッセージフレームの各種ヘッダに含まれる情報及び受信電波の強度（または通信品質）、その他の受信電波関連パラメータが格納される。各ノードは、Ｈｅｌｌｏメッセージフレームに他のノードから受信した電波の通信品質に関わる情報を含めて送信している。ノードは、他のノード装置から受信したＨｅｌｌｏメッセージフレームを参照して、隣接ノードの通信品質を算出し、「ＨＥＬＬＯ及び受信電波関連パラメータ」に、算出した受信強度（または通信品質）に関わる情報を保持する。
【０１１９】
図１１は、本実施形態におけるルーティングテーブルの一例を示す。ルーティングテーブル３２は、グローバル宛先アドレス（ＧＤ）単位で管理される隣接ノードに対するルーティング情報を保持するテーブルであり、グローバル宛先アドレス毎に生成される。各ノードは、隣接するノードより受信したＨｅｌｌｏメッセージフレームから生成したリンクテーブル３１を用いて、ルーティングテーブル３２を生成する。
【０１２０】
ルーティングテーブル３２は、１つのグローバル宛先アドレス（ＧＤ）に対して、１つ以上の任意の数のローカル宛先アドレス（ＬＤ）を記録することができる。ルーティングテーブル３２は、例えば、経路のホップ数や経路中に含まれる各リンクの受信電波強度などを用いて計算された経路の品質を表す情報を、グローバル宛先とローカル宛先の組合せごとに記録することができる。
【０１２１】
図１２は、本実施形態におけるＴＮＤルーティングテーブルの一例を示す。ＴＮＤルーティングテーブル３３は、「グローバル宛先アドレス（ＧＤ）」、「経路収集開始時刻」、「途中経路情報」のデータ項目を含む。
【０１２２】
「グローバル宛先アドレス（ＧＤ）」には、ターゲットとなるノードのＩＤが格納される。「経路収集開始時刻」には、経路収集フレームを送信した日時が格納される。
【０１２３】
「途中経路情報」には、その経路収集フレームを受信した中継ノードから送信される折り返しフレームから得られる途中経路情報が格納される。より具体的には、途中経路情報とは、起点となる送信元（ＧＳ）のノードに隣接するノードから折り返しフレームを送信したノードまでの各中継ノードが付与した次ホップのノードに対する送信結果の累積情報である。
【０１２４】
図１３は、本実施形態におけるＴＮＤルーティングテーブルの更新例を示す。図４のＳ３にて、ノードＣは、送信元であるノードＡ宛に、ノードＢ，Ｃ，Ｄに対する送信結果を含む折り返しフレームを送信する。ノードＡは、その折り返しフレームを受信すると、図１３（Ａ）に示すように、ＴＮＤルーティングテーブルに登録する。
【０１２５】
次に、図４のＳ４にて、ノードＤは、送信起点であるノードＡ宛に、ノードＢ，Ｃ，Ｄ．Ｅに対する送信結果を含む折り返しフレームを送信する。ノードＡは、その折り返しフレームを受信すると、図１３（Ｂ）に示すように、ＴＮＤルーティングテーブルを更新する。
【０１２６】
この場合、図４のＳ５、Ｓ６において、ノードＡは、経路収集フレーム（復路）を受信できない。しかしながら、ノードＡが、受信タイムアウトを検出した場合であっても、経路収集フレーム（復路）未受信で、ＴＮＤルーティングテーブル３３は図１３（Ｂ）の状態のため、ノードＤまで到達したことが分かる。
【０１２７】
次に、ターゲットノードへ経路収集フレームを送信する起点となるノード（起点ノード）の処理について、図１４〜図１７を用いて説明する。なお、起点ノード及びターゲットノードは、いずれのノードもなることができる。
【０１２８】
図１４は、本実施形態における起点ノードの経路収集フレーム（往路）の送信処理フローを示す。起点ノードは、ユーザの操作により、ユーザの端末から送信された、ターゲットのノードまでの経路情報を収集する旨の経路収集指示情報を取得する（Ｓ３１）。経路収集指示情報には、ターゲットノードのノードＩＤが指定されている。
【０１２９】
起点ノードは、ルーティングテーブル３２から、ターゲットノード宛に送信することができる隣接ノードを取得する（Ｓ３２）。ここでは、起点ノードは、ルーティングテーブル３２から、指定されたターゲットノードをＧＤとするエントリに含まれるＬＤ（隣接ノードのノードＩＤ）を取得する。複数のＬＤが取得できる場合には、起点ノードは、例えば、通信品質の最もよいＬＤを取得する。
【０１３０】
Ｓ３２において、ルーティングテーブル３２から、送信先の隣接ノードが取得できた場合（Ｓ３３で「ＹＥＳ」）、起点ノードは、経路収集フレーム（往路用）を生成する。ここで、起点ノードは、生成したデータフレームのＡＭヘッダに「タイプ＝Ｔｒａｃｅ  Ｒｏｕｔｅ」、「サブタイプ＝“０ｘ００”（収集）」を設定する。また、起点ノードは、その経路収集フレーム（往路用）に、送信先の隣接ノード（次ポップノード）宛の送信結果（デフォルト値＝「成功」）を付与する（Ｓ３４）。
【０１３１】
起点ノードは、その送信結果（デフォルト値＝「成功」）が付与された経路収集フレームを、送信先の隣接ノード（次ポップノード）へ送信する（Ｓ３５）。このとき、起点ノードは、経路収集フレーム（往路用）に対応する経路収集フレーム（復路）を判別するために、経路収集フレーム（往路用）のデータヘッダに含まれるフレーム識別子を保持しておく。
【０１３２】
このとき、起点ノードは、送信先の隣接ノード（次ポップノード）がその送信した経路収集フレームを受信したことを通知する受信確認（ＡＣＫ）フレームを受信するまでのうち、所定時間を計測するＡＣＫ受信待ちタイマを起動する（Ｓ３６）。
【０１３３】
また、起点ノードは、経路収集フレーム（復路用）を受信するまでの待ち時間を計測するタイマを起動する（Ｓ３７）。
【０１３４】
隣接するノードから、経路収集フレームの送信に対するＡＣＫフレームを、ＡＣＫ受信待ちタイマにより計測される所定時間内に受信しない場合（Ｓ３８で「ＮＯ」）、起点ノードは、ＡＣＫ受信待ち時間のタイムアウトを検出する（Ｓ３９）。この場合、起点ノードは、Ｓ３４において、経路収集フレームに付与した次ポップノード宛送信結果を「失敗」に更新する（Ｓ４０）。
【０１３５】
Ｓ３８において、隣接するノードから、経路収集フレームの送信に対するＡＣＫフレームを、ＡＣＫ受信待ちタイマにより計測される所定時間内に受信した場合（Ｓ３８で「ＹＥＳ」）、起点ノードは、ＡＣＫ受信待ちタイマを停止する（Ｓ４１）。そして、起点ノーは、経路収集フレーム（復路用）の受信待ち状態になる（Ｓ４２）。
【０１３６】
Ｓ３３において、ルーティングテーブル３２から、送信先の隣接ノードが取得できなかった場合（Ｓ３３で「ＮＯ」）、起点ノードは、経路収集指示に対する応答として、経路収集失敗を示す応答をユーザの端末に送信する（Ｓ４３）。
【０１３７】
図１５は、本実施形態における起点ノードの折り返しフレームの受信処理フローを示す。起点ノードは、データフレームを受信する（Ｓ５１）。起点ノードは、受信したデータフレームが折り返しフレームであるかどうかを判定する。受信したデータフレームのＡＭヘッダにおいて「タイプ＝Ｔｒａｃｅ  Ｒｏｕｔｅ」で、「サブタイプ＝“０ｘ０２”（折り返し）」である場合、起点ノードは、受信したデータフレームは折り返しフレームであると判定し、Ｓ５２以降の処理を行う。
【０１３８】
折り返しフレームを受信した場合、起点ノードは、経路情報の収集中の状態であるか否かを判定する（Ｓ５２）。起点ノードは、経路収集フレーム（復路用）受信待ちタイマ（図１４のＳ３７）が起動している場合、経路情報の収集中の状態であると判定する。
【０１３９】
経路情報の収集中の状態でない場合（Ｓ５２で「ＮＯ」）、起点ノードは、Ｓ５４の処理を行う。
【０１４０】
経路情報の収集中の状態である場合（Ｓ５２で「ＹＥＳ」）、起点ノードは、図１３で説明したように、その折り返しフレームに含まれる途中経路情報を用いて、ＴＮＤルーティングテーブル３３を更新する（Ｓ５３）。
【０１４１】
起点ノードは、経路収集フレーム（復路用）の受信待ち状態になる（Ｓ５４）。
【０１４２】
図１６は、本実施形態における起点ノードの経路収集フレーム（復路用）の受信処理フローを示す。起点ノードは、データフレームを受信する（Ｓ６１）。起点ノードは、受信したデータフレームが経路収集フレーム（復路用）であるかどうかを判定する。受信したデータフレームのデータヘッダに含まれるフレーム識別子が、図１４のＳ３５で保持したフレーム識別子である場合、起点ノードは、受信したデータフレームは経路収集フレーム（復路用）であると判定し、Ｓ６２以降の処理を行う。
【０１４３】
経路収集フレーム（復路用）を受信した場合、起点ノードは、経路情報の収集中の状態であるか否かを判定する（Ｓ５２）。起点ノードは、経路収集フレーム（復路用）受信待ちタイマ（図１４のＳ３７）が起動している場合、経路情報の収集中の状態であると判定する。
【０１４４】
経路情報の収集中の状態でない場合（Ｓ６２で「ＮＯ」）、起点ノードは、Ｓ６７の処理を行う。
【０１４５】
経路情報の収集中の状態である場合（Ｓ６２で「ＹＥＳ」）、起点ノードは、経路収集フレーム（復路用）受信待ちタイマを停止する（Ｓ６３）。
【０１４６】
起点ノードは、ＴＮＤルーティングテーブル３３をクリアする（Ｓ６４）。起点ノードは、受信した経路収集フレーム（復路用）から、起点ノードとターゲットノードとの間の通信を中継する中継ノードについての情報を抽出する。起点ノードは、抽出した中継ノードについての情報に基づいて、ターゲットノードに対する経路情報を生成する（Ｓ６５）。起点ノードは、経路収集指示に対する応答として、生成した経路情報をユーザの端末に送信する（Ｓ６６）。
【０１４７】
起点ノードは、経路収集フレーム（復路用）の受信待ち状態になる（Ｓ６７）。
【０１４８】
図１７は、本実施形態における起点ノードの、経路収集フレーム（復路用）の受信待ち時間がタイムアウトになった場合の処理フローを示す。
【０１４９】
図１４のＳ３７において起動した経路収集フレーム（復路用）受信待ちタイマによる計測時間が、所定時間を超えた場合、起点ノードは、経路収集フレーム（復路用）受信待ち時間のタイムアウトを検出する（Ｓ７１）。
【０１５０】
起点ノードは、経路情報の収集中の状態であるか否かを判定する（Ｓ７２）。起点ノードは、経路収集フレーム（復路用）受信待ちタイマ（図１４のＳ３７）が起動している場合、経路情報の収集中の状態であると判定する。
【０１５１】
経路情報の収集中の状態でない場合（Ｓ７２で「ＮＯ」）、起点ノードは、本フローを終了する。
【０１５２】
経路情報の収集中の状態である場合（Ｓ７２で「ＹＥＳ」）、起点ノードは、ターゲットノードについてのＴＮＤルーティングテーブルを取得する（Ｓ７３）。起点ノードは、経路収集指示に対する応答として、取得したＴＮＤルーティングテーブルの「ＧＤ」、「経路収集開示時刻」、「途中経路情報」を、ユーザの端末に送信する（Ｓ７４）。
【０１５３】
次に、起点ノードとターゲットノードとの間の通信を中継するノード（中継ノード）の処理について、図１８〜図２０を用いて説明する。
【０１５４】
図１８は、本実施形態における中継ノードの経路収集フレーム（往路用）受信処理フローを示す。中継ノードは、データフレームを受信する（Ｓ８１）。中継ノードは、受信したデータフレームが経路収集フレーム（往路用）であるかどうかを判定する。受信したデータフレームのＡＭヘッダにおいて「タイプ＝Ｔｒａｃｅ  Ｒｏｕｔｅ」、「サブタイプ＝“０ｘ００”（収集）」で、かつそのフレーム識別子と同一のフレーム識別子を保持していない場合、起点ノードは、次の処理を行う。すなわち、起点ノードは、受信したデータフレームは経路収集フレーム（往路用）であると判定し、Ｓ８２以降の処理を行う。
【０１５５】
経路収集フレーム（往路用）を受信した場合、中継ノードは、その経路収集フレーム（往路用）を送信した隣接ノード（送信元（ＬＳ））に、ＡＣＫフレームを送信する（Ｓ８２）。
【０１５６】
中継ノードは、その隣接ノード（送信元（ＬＳ））のノードＩＤを送信元（ＬＳ）ノード情報３４として保持する（Ｓ８３）。
【０１５７】
中継ノードは、ルーティングテーブル３２から、ターゲットノード宛に送信することができる隣接ノードを取得する（Ｓ８４）。ここでは、中継ノードは、ルーティングテーブル３２から、受信した経路収集フレーム（往路用）に含まれるＧＤに対応するＧＤのエントリに含まれるＬＤ（隣接ノードのノードＩＤ）を取得する。複数のＬＤが取得できる場合には、中継ノードは、例えば、通信品質の最もよいＬＤを取得する。
【０１５８】
Ｓ８４において、ルーティングテーブル３２から、送信先の隣接ノードが取得できた場合（Ｓ８５で「ＹＥＳ」）、中継ノードは、転送用の経路収集フレーム（往路用）を生成する。ここで、中継ノードは、生成したデータフレームのＡＭヘッダに「タイプ＝Ｔｒａｃｅ  Ｒｏｕｔｅ」、「サブタイプ＝“０ｘ００”（収集）」を設定する。また、起点ノードは、生成した経路収集フレーム（往路用）に、送信先の隣接ノード（次ポップノード）宛の送信結果（デフォルト値＝「成功」）を付与する（Ｓ８６）。
【０１５９】
中継ノードは、その送信結果（デフォルト値＝「成功」）が付与された経路収集フレームを、送信先の隣接ノード（次ポップノード）へ送信する（Ｓ８７）。このとき、中継ノードは、経路収集フレーム（往路用）に対応する経路収集フレーム（復路）を判別するために、経路収集フレーム（往路用）のデータヘッダに含まれるフレーム識別子を保持しておく。
【０１６０】
さらに、中継ノードは、折り返しフレームを生成し、生成した折り返しフレームを、Ｓ８３で保持した送信元（ＬＳ）へ送信する（Ｓ８８）。ここでは、中継ノードは、次のようにして折り返しフレームを生成する。中継ノードは、Ｓ８６で生成した、その送信結果（デフォルト値＝「成功」）が付与された経路収集フレームから、起点ノード（ＧＳ）のノードＩＤを取得する。中継ノードは、その経路収集フレームにおいて、ＧＤに起点ノードのノードＩＤを設定し、ＬＤにノード情報３４から取得した送信元（ＬＳ）を設定し、ＡＭヘッダに「タイプ＝Ｔｒａｃｅ  Ｒｏｕｔｅ」、「サブタイプ＝“０ｘ０２”（折り返し）」を設定する。
【０１６１】
中継ノードは、送信先の隣接ノード（次ポップノード）がその送信した経路収集フレームを受信したことを通知する受信確認（ＡＣＫ）フレームを受信するまでのうち、所定時間を計測するＡＣＫ受信待ちタイマを起動する（Ｓ８９）。
【０１６２】
隣接するノードから、Ｓ８７での経路収集フレームの送信に対するＡＣＫフレームを、ＡＣＫ受信待ちタイマにより計測される所定時間内に受信しない場合（Ｓ９０で「ＮＯ」）、中継ノードは、ＡＣＫ受信待ち時間のタイムアウトを検出する（Ｓ９１）。この場合、中継ノードは、その隣接ノードとの通信状況は不良と判定し、Ｓ８６にて経路収集フレームに付与した次ポップノード宛送信結果を「失敗」に更新する（Ｓ９２）。
【０１６３】
Ｓ９０において、隣接するノードから、経路収集フレーム（往路用）の送信に対するＡＣＫフレームを、ＡＣＫ受信待ちタイマにより計測される所定時間内に受信した場合（Ｓ９０で「ＹＥＳ」）、中継ノードは、その隣接ノードとの通信状況は良好と判定する。この場合、中継ノードは、ＡＣＫ受信待ちタイマを停止する（Ｓ９３）。
【０１６４】
Ｓ８５において、ルーティングテーブル３２から、送信先の隣接ノードが取得できなかった場合（Ｓ８５で「ＮＯ」）、中継ノードは、送信元（ＬＳ）ノード情報３４から送信元（ＬＳ）を取得する（Ｓ９４）。
【０１６５】
中継ノードは、バックトラックフレームを生成し、生成したバックトラックフレームを送信元（ＬＳ）ノード情報３４から取得した送信元（ＬＳ）へ送信する（Ｓ９５）。ここでは、中継ノードは、次のようにしてバックトラックフレームを生成する。中継ノードは、Ｓ８１で受信した経路収集フレームから、起点ノード（ＧＳ）のノードＩＤを取得する。中継ノードは、その経路収集フレームにおいて、ＧＤに起点ノードのノードＩＤを設定し、ＬＤにノード情報３４から取得した送信元（ＬＳ）を設定する。
【０１６６】
なお、図１８では、経路収集フレーム（往路用）を受信した場合の処理について説明したが、経路収集フレーム（復路用）を受信した場合も、図１８と同様である。すなわち、上述した図１８の説明において、経路収集フレーム（往路用）を経路収集フレーム（復路用）と読み替えればよい。
【０１６７】
図１９は、本実施形態における中継ノードの折り返しフレームの受信処理フローを示す。中継ノードは、データフレームを受信する（Ｓ１０１）。中継ノードは、受信したデータフレームが折り返しフレームであるかどうかを判定する。受信したデータフレームのＡＭヘッダにおいて「タイプ＝Ｔｒａｃｅ  Ｒｏｕｔｅ」で、「サブタイプ＝“０ｘ０２”（折り返し）」である場合、中継ノードは、受信したデータフレームは折り返しフレームであると判定し、Ｓ１０２以降の処理を行う。
【０１６８】
折り返しフレームを受信した場合、中継ノードは、送信元（ＬＳ）ノード情報３４から送信元（ＬＳ）を取得する（Ｓ１０２）。
【０１６９】
中継ノードは、受信した折り返しフレームのＬＤに、送信元（ＬＳ）ノード情報３４から送信元（ＬＳ）を設定する。中継ノードは、その折り返しフレームを、送信元（ＬＳ）ノード情報３４から取得した送信元（ＬＳ）へ送信する（Ｓ１０３）。
【０１７０】
図２０は、本実施形態における中継ノードのバックトラックフレームの受信処理フローを示す。中継ノードは、データフレームを受信する（Ｓ１１１）。中継ノードは、受信したデータフレームがバックトラックフレームであるかどうかを判定する。
受信したデータフレームのデータヘッダのフレーム識別子と同一のフレーム識別子を保持し、最後に付与された次ポップノード宛送信結果が「失敗」と設定されている場合、中継ノードは、受信したデータフレームはバックトラックフレームであると判定する。その場合、中継ノードは、Ｓ１１２以降の処理を行う。
【０１７１】
バックトラックフレームを受信した場合、中継ノードは、送信元（ＬＳ）ノード情報３４から送信元（ＬＳ）を取得する（Ｓ１１２）。
【０１７２】
中継ノードは、受信したバックトラックフレームのＬＤに、送信元（ＬＳ）ノード情報３４から送信元（ＬＳ）を設定する。中継ノードは、そのバックトラックフレームを、送信元（ＬＳ）ノード情報３４から取得した送信元（ＬＳ）へ送信する（Ｓ１１３）。
【０１７３】
なお、図２０では、バックトラックフレームを受信した場合の処理について説明したが、経路収集フレーム（復路用）を受信した場合にも、中継ノードは、図２０のフローを実行しても良い。
【０１７４】
本実施形態によれば、経路途中の各ノードは、フレームを中継すると共に、送信起点宛に対して経路情報フレームを送信する。この経路情報フレームで中継ノードまでの到達を通知することによって、途中でフレームが消失した場合でも、送信起点ノードは途中までの経路情報を得ることができる。これにより、通信障害が起きたパスを即座に特定することができる。
【０１７５】
従って、経路途中でフレームが消失してしまうような通信障害であっても、事象をリアルタイムに監視できるため、該当無線区間の早期保全が可能となる。また、本実施形態では、最終到達ノードを指定したフレーム送信を行うことにより、原因となるパスを特定することが可能である。そのため、特定の保守者に限定する必要もないため効率良い調査が可能となり、調査工数の削減効果が期待できる。
【０１７６】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１７７】
１      中継装置
２      受信部
３      送信部
４      記憶部
５      特定部
１１    ノード
１２    ＣＰＵ
１３    無線通信Ｉ／Ｆ
１４    ＲＡＭ
１５    不揮発性メモリ
２１    フレーム受信処理部
２２    フレーム送信処理部
２３    ルーティング部
２４    アプリケーション処理部
２５    ＨＥＬＬＯ制御部
２６    受信部
２７    送信部
３１    ルーティングテーブル
３２    リンクテーブル
３３    ＴＮＤルーティングテーブル
３４    送信元（ＬＳ）ノード情報
【図１】
0006424668.tif 000002
【図２】
0006424668.tif 000003
【図３】
0006424668.tif 000004
【図４】
0006424668.tif 000005
【図５】
0006424668.tif 000006
【図６】
0006424668.tif 000007
【図７】
0006424668.tif 000008
【図８】
0006424668.tif 000009
【図９】
0006424668.tif 000010
【図１０】
0006424668.tif 000011
【図１１】
0006424668.tif 000012
【図１２】
0006424668.tif 000013
【図１３】
0006424668.tif 000014
【図１４】
0006424668.tif 000015
【図１５】
0006424668.tif 000016
【図１６】
0006424668.tif 000017
【図１７】
0006424668.tif 000018
【図１８】
0006424668.tif 000019
【図１９】
0006424668.tif 000020
【図２０】
0006424668.tif 000021