(57)【要約】経路安定指標を含むフレームを受信する受信手段と、フレーム識別情報、隣接するノードを識別する送信先ノード識別情報、起源ノード識別情報を記憶する第１の記憶手段と、フレームの最終宛先が与えられたとき前記隣接するノードのそれぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、前記受信したフレームに含まれる経路安定指標に基づいて、前記フレームのフレーム識別情報が第１の記憶手段に記憶されているかどうかを判定する処理を行なうか否かを決定する経路安定指標処理手段と、前記経路安定指標が前記判定する処理を行なうことを示し、かつ、前記フレームのフレーム識別情報が第１の記憶手段に記憶されている場合のみ、第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて送信先ノードを選択する選択手段と、前記選択手段によって選択された送信先ノードに前記フレームを送信する送信手段と、を備えたノードが提供される。
2013042209.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、
前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、
前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されている場合のみ、第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、
を含むことを特徴とするノード装置。
【請求項２】
過去にフレームを前記送信先ノード装置に向けて送信してからの時間を計時する計時手段、
をさらに含み、
前記更新手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、送信手段が前記フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項３】
前記受信フレームの前記最終宛先までの経路に関する情報を取得する経路情報取得手段、
をさらに含み、
前記第２の記憶手段が記憶する送信可能性情報には、前記フレームの前記最終宛先までの経路に関する情報が含まれており、
前記フレームの前記最終宛先までの経路に関する情報が変化したときに、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項４】
前記フレームの前記最終宛先までの経路に関する情報は、ホップ数であることを特徴とする請求項３に記載のノード装置。
【請求項５】
前記フレームの前記最終宛先までの経路に関する情報は、前記経路の品質に関する情報であることを特徴とする請求項３に記載のノード装置。
【請求項６】
前記送信先ノード装置への前記フレームの送信において、前回の送信の際に、前記更新手段による前記送信先ノード装置への前記送信可能性の変更を経験している場合には、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項７】
前記送信先ノード装置への前記フレームの送信において、前記送信先フレームが前記最終宛先で指定されるノード装置の場合は、前記送信手段は、前記受信フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行わないように前記経路安定指標を変更した後、前記送信フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項８】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信するステップと、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先である前記隣接するノード装置の一つを識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けるステップと、
前記フレームが最終的に届けられる前記複数のノード装置の一つを識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を取得するステップと、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定するステップと、
経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されている場合のみ、第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新するステップと、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択するステップと、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信するステップと、
を備えることを特徴とするデータ転送方法。
【請求項９】
過去にフレームを前記送信先ノード装置に向けて送信してからの時間を計時するステップ、
をさらに含み、
前記送信するステップは、前記フレームを識別するフレーム識別情報が、前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とする請求項８に記載のデータ転送方法。
【請求項１０】
前記フレームの前記最終宛先までの経路に関する情報を取得するステップ、
をさらに含み、
前記送信可能性情報には、前記フレームの前記最終宛先までの経路に関する情報が含まれており、
前記フレームの前記最終宛先までの経路に関する情報が変化したときに、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記送信フレームを送信する、
ことを特徴とする請求項８に記載データ転送方法。
【請求項１１】
前記フレームの前記最終宛先までの経路に関する情報は、ホップ数であることを特徴とする請求項１０に記載のデータ転送方法。
【請求項１２】
前記フレームの前記最終宛先までの経路に関する情報は、前記経路の品質に関する情報であることを特徴とする請求項１０に記載のデータ転送方法。
【請求項１３】
前記送信先ノード装置への前記フレームの送信において、前回の送信の際に、前記更新手段による前記送信先ノード装置への前記送信可能性の変更を経験している場合には、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とする請求項８に記載のデータ転送方法。
【請求項１４】
前記送信先ノード装置への前記フレームの送信において、前記送信先フレームが前記最終宛先で指定されるノード装置の場合は、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行わないように前記経路安定指標を変更した後、前記送信フレームを送信する、
ことを特徴とする請求項８に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードを含むネットワークにおけるデータ通信方法およびそれを用いるネットワーク装置に関する。
【背景技術】
【０００２】
アドホックネットワークシステムでは、アドホックネットワーク通信端末（ノード装置、または単にノードとも呼ばれる）同士が自律的にネットワーク接続し、相互の通信を可能としている。「自律的に」という言葉は、使用者によって随時通信経路を設定したり、サーバやルータの通信管理を行う専用の通信端末やインフラを必要としない、ということを意味する。【０００３】
アドホックネットワークのルーティングプロトコル（アドホックプロトコル）には、リアクティブ型のＡｄｈｏｃ  Ｏｎ  Ｄｅｍａｎｄ  Ｄｉｓｔａｎｃｅ  Ｖｅｃｔｏｒ  Ａｌｇｏｒｉｔｈｍ（ＡＯＤＶ）やプロアクティブ型のＯｐｔｉｍｉｚｅｄ  Ｌｉｎｋ  Ｓｔａｔｅ  Ｒｏｕｔｉｎｇ（ＯＬＳＲ）が知られている。【０００４】
ＡＯＤＶでは、経路探索にブロードキャストを用いて、他の通信ノード装置がブロードキャストを繰り返し、目的のノード装置への経路を発見する手法である。通信ノード装置は、目標とする経路を発見するために周囲に「Ｒｏｕｔｅ  Ｒｅｑｕｅｓｔ（ＲＲＥＱ）」というフレームを送出する。このフレームには、検出目標の通信ノードＩＤが明記されている。【０００５】
周囲の通信ノード装置は、自身を検索していない場合は、新たにＲＲＥＱフレームを作成して、周囲へのブロードキャストを繰り返し行う。このとき各通信ノード装置は、送り先のメッセージが、隣接するどの通信ノード装置から受信されたものなのかを記録する。ＲＲＥＱメッセージが目的の通信ノードに達したとき、その目的の通信ノード装置は、「Ｒｏｕｔｅ  Ｒｅｐｌｙ（ＰＲＥＰ）」フレームを作成し、送り元のノードに対して、ＲＲＥＱフレームが送られてきた経路を辿るようにしてＰＲＥＰを送信する。こうすることによって、双方向の通信経路が作成される。【０００６】
ＯＬＳＲでは、通信ノード装置同士が定期的にフレームを交換し合うことで、ネットワーク全体を把握し、目的の通信ノードまでの経路を検出する。通信ノード装置は、周期的にハロー（ＨＥＬＬＯ）フレームを送出し、互いにその存在を通知し合う。通信相手となる通信ノード装置の存在が判明したところで、次に効率的にネットワーク全体にフレームを配信するための、Ｍｕｌｔｉ  Ｐｏｉｎｔ  Ｒｅｌｅｙ（ＭＰＲ）と呼ばれるフラッディング用のパスを生成する。ＭＰＲにより、各通信ノード装置から効率よくフレームをネットワーク全体へブロードキャストすることができる。次にこのＭＰＲを用いて、経路生成メッセージであるＴｅｃｈｎｏｌｏｇｙ  Ｃｏｎｔｒｏｌ（ＴＣ）フレームをノード装置同士が互いに配信することで全ノード装置がネットワークトポロジーを知ることができる。フレームを目標とする通信ノード装置に送るには、送信元となる通信ノード装置自信が知っているネットワークトポロジーを参照し、送るべき隣接通信ノード装置にフレームを渡す。隣接ノードも同様に処理を行う、最終的に目標ノード装置にフレームを配信する。【０００７】
上記のように、ネットワーク内の各ノード装置がネットワークトポロジーを把握することを前提としたネットワークシステムでは、ネットワーク環境の動的な変化にシステムが追従できない場合がある。たとえば、ノード装置がその時点で認識しているネットワークトポロジーに基づいて、データを送信しようとしても、必ず送信に成功するとは限らない。【０００８】
各ノード装置が自律的に動作するアドホックネットワークシステムにおいては、あるノード装置に宛てた送信フレームを中継する際には、その時点で有効な経路を各ノード装置が把握しておく必要がある。そのために、各ノード装置は、フレームの送信の際に参照する各種情報を格納するためのテーブルを備えている。それらのテーブルには、ノード装置に隣接する他のノードを記憶するための隣接ノード管理テーブル、フレームの送信元となるノード装置（「ＧＳ」（Ｇｌｏｂａｌ  Ｓｏｕｒｃｅ）とも呼ぶ）が、送信する複数のフレームの各々を一意に識別する識別情報を管理するＦＩＤ（Ｆｒａｍｅ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）管理テーブル、フレームを宛先となるノード装置（「ＧＤ（Ｇｌｏｂａｌ  Ｄｅｓｔｉｎａｔｉｏｎ）」とも呼ぶ）に送信するにあたり、どの隣接ノードに送信するかを決定するための情報を管理する重み付けテーブル、を備えている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開ＷＯ２０１１／０１３１６５パンフレット
【特許文献２】特開２００８−１６６９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながらアドホックネットワークにおいては、データ通信量が多い場合は、中継するノードのＦＩＤ管理テーブルが肥大化しリソースを圧迫するという問題があった。また、ＦＩＤ管理テーブルの検索、登録、削除の処理により各ノード装置のＣＰＵリソースの使用時間が増大するという問題があった。また、データの中継ノードの転送回数示すＨＯＰ数が多くなる場合、データのスループットに影響を与えてしまうという問題があった。【００１１】
よって、ＦＩＤ管理テーブルを用いて有効な経路を把握しつつ、データの転送スループットとメモリ、ＣＰＵのリソースを最適化する方法およびそれを用いたノード装置が望まれている。
【課題を解決するための手段】
【００１２】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されている場合のみ、第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、を含むことを特徴とするノード装置が提供される。
【発明の効果】
【００１３】
上記のノード装置によれば、既存技術のループ検知による経路選択方法を用いつつ、データの転送スループットとメモリ、ＣＰＵのリソースを最適化することができる。
【図面の簡単な説明】
【００１４】
【図１】アドホックネットワーク構成の例を示す図である。
【図２】ノード装置の機能ブロックの例を示す図である。
【図３】ノード装置のハードウェア構成の例を示す図である。
【図４】１つのノード装置における経路選択のための処理について説明する図である。
【図５】図１に示されているアドホックネットワークにおいて経路が選択される様子を説明する図である。
【図６】図１に示されているネットワークにおいてループが検知された様子を示す図である。
【図７】図１に示されているネットワークにおいてループが検知されたことによる経路が変更される様子を示す図である。
【図８】データフレームのフォーマットの例である。
【図９】ハローフレームのフォーマットの例である。
【図１０】ＡＣＫフレームのフォーマットの例である。
【図１１】重み付けテーブルの例である。
【図１２】バッファ部に格納されるデータの例を示す図である。
【図１３】図２の隣接ノード管理テーブルの例を示す図である
【図１４Ａ】図２のＦＩＤ管理テーブルの例を示す図である。
【図１４Ｂ】図２のＦＩＤ管理テーブルの例を示す図である。
【図１５】グローバルソース（ＧＳ）であるノード装置におけるデータフレームの送信処理の概略を示す図である。
【図１６】実施形態のノード装置がデータフレームを受信した後の処理の概略を示す図である。
【図１７】ネットワークの例である。
【図１８Ａ】実施形態のノード装置がデータフレームを受信した後の処理を示すフローチャート（その１）である。
【図１８Ｂ】実施形態のノード装置がデータフレームを受信した後の処理を示すフローチャート（その２）である。
【図１８Ｃ】実施形態のノード装置がデータフレームを受信した後の処理を示すフローチャート（その３）である。
【図１９】実施形態のノード装置から構成されるネットワークにおいて、リンクの障害がない場合のデータフレームの転送の様子を示す図である。
【図２０】実施形態のノード装置から構成されるネットワークにおいて、あるリンクに障害が発生した場合のデータフレームの転送の様子を示す図である。
【図２１】データフレームのフォーマットの別の例である。
【図２２Ａ】比較例のノード装置がデータフレームを受信した後の処理を示すフローチャート（その１）である。
【図２２Ｂ】比較例のノード装置がデータフレームを受信した後の処理を示すフローチャート（その２）である。
【図２３】比較例のノード装置がデータフレームを受信した後の処理の概略を示す図である。
【図２４】実施形態のノード装置から構成されるネットワークのスループットをホップ数に対してプロットした図である。
【発明を実施するための形態】
【００１５】
図１〜２０を参照しながら、ネットワークにおけるデータ通信方法およびそれを用いるネットワーク装置について説明する。本実施形態では、ＦＩＤ管理テーブルを用いて有効な経路を把握しつつ、データの転送スループットとメモリやＣＰＵのリソースを最適化する方法が提供される。
【００１６】
経路選択方法では、まず、データフレームの発信元であるノード（以下のＧＳ）が、自ノードの識別ＩＤ（ノードＩＤとも呼ぶ）と、自ノードが管理するＦｒａｍｅ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ（ＦＩＤ）をデータフレームに記載し送信する。データフレームのＧＳであるノード装置のノードＩＤとＦＩＤをフレームに記載することによって、個々のフレームを識別することができる。次に、このデータフレームを転送するノードは、自ノードのＦＩＤ管理テーブルを検索して登録がない場合、初めて受信したデータフレームとして、受信元（「ＬＳ］（Ｌｏｃａｌ  Ｓｏｕｒｃｅ）とも呼ぶ）のノードを記憶し、このノード以外のノードを選択して記憶した後、転送を行う。また、自ノードのＦＩＤ管理テーブルを検索して登録がある場合は、以前転送を行ったノードはループして届かなかったと判断し、記憶しているノードは使用不可にし、それ以外の転送先ノードがあれば同様に記憶して転送、無ければ、最初に受信したノードにバックトラックする。このように、ループを検知して異なる経路に転送したり、バックトラックしたりする事で、各ノードがデータ宛先毎に最適な経路を学習する。
【００１７】
本実施形態でネットワーク内を転送されるデータフレームには、データフレームが、その経路にはループが存在しないことをその経路のノード装置が認識済みである安定化経路を転送されようとする場合には、ループ検知のための処理を省略して、データの転送スループットとメモリやＣＰＵのリソースを改善するために導入されるループ検知フラグが含まれている。
【００１８】
ループ検知フラグは、具体的には「０」または「１」の値である。ループ検知フラグのデフォルト値は「１」である。つまり、ノード装置は初期状態において、ループ検知のための処理を実行する。もちろん、ループ検知フラグは、データフレームが安定化経路を転送されようとしているか否かを判定する情報を与えることができれば、「０」または「１」以外の値であっても構わない。ループ検知フラグの値は、経路安定指標とも呼ばれる。
【００１９】
図１はアドホックネットワーク構成の例を示す図である。図１のネットワーク１０は、以下の実施形態を適用することが可能なアドホックネットワークの一例であり、７つのノード装置、Ｘ、Ｙ、Ａ、Ｂ、Ｃ、ＤおよびＥを含んでいる。各ノード装置をネットワークトポロジーの観点から単にノードと呼ぶこともある。
【００２０】
ネットワーク１０はこれだけで閉じている必要はなく、ネットワーク１０内の１つまたは複数のノード装置がネットワーク１０とは別のネットワークに属する装置と接続されていても良い。たとえば、ネットワーク１０に属するノード装置の一つが、データ管理サーバを含む外部ネットワークのゲートウェイ装置に接続されていても良い。そして、そのノード装置によって送受信されるデータは、ゲートウェイ装置を介して外部のデータ管理サーバに送られ、管理されても良い。
【００２１】
ネットワーク１０を構成する各ノード装置には、それぞれ識別情報である「ノードＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）」が付与されている。図１の各ノードに付与された参照符号がノードＩＤを示すものとして説明する。各ノード装置にとって自分自身に付与されたノードＩＤを、自ノードＩＤともいう。
【００２２】
図１において、直接的に通信可能なノード装置間にはリンクが存在するという。リンクは実線で示されている。具体的には、ノード装置ＸとＤ、ノード装置ＤとＡ、ノード装置ＤとＥ、ノード装置ＥとＹ、ノード装置ＡとＢ、ノード装置ＡとＣ、ノード装置ＢとＣ、ノード装置ＢとＹの間にリンクが存在する。リンクは、無線によってノード装置の間を接続する無線リンクでも、有線によってノード装置の間を接続する有線リンクでも良い。
【００２３】
また、１つのリンクによって隔てられ、結び付けられている２つのノード装置は、互いに隣接するノード装置である。
【００２４】
このようなアドホックネットワーク１０のトポロジーは動的である。「トポロジーが動的である」とはノード装置の数の変化、またはリンクの数の変化があり得る、という意味である。すなわち、ネットワーク１０を構成するノード装置のいずれかが撤去されることもあるし、また新たなノード装置が追加されることもある。また、あるリンクが突然に消滅することもあるし、新たなリンクが発生することもある。ノード装置の数の変化およびリンクの数の変化は、ネットワークの管理者によって意図的に行われる場合もあるし、そうでない場合もある。
【００２５】
ネットワーク１０のノード装置間では、Ｐｒｏｔｏｃｏｌ  Ｄｅｔａ  Ｕｎｉｔ（ＰＤＵ）としてのフレームが送受信される。あるフレームがたとえば、ノード装置Ｘからノード装置Ｙに向けて送られる場合、ノード装置Ｘを「ＧＳ（Ｇｌｏｂａｌ  Ｓｏｕｒｃｅ）」、ノード装置Ｙを「ＧＤ（Ｇｌｏｂａｌ  Ｄｅｓｔｉｎａｔｉｏｎ）」と呼ぶ。図１では、ノード装置Ｘからノード装置Ｙへは、ノード装置Ｄ、Ｅを経由する経路、ノード装置Ｄ、Ａ、Ｂを経由する経路、ノード装置Ｄ、Ａ、Ｃ、Ｂを経由する経路などが存在する。これらの経路をそれぞれ、＜Ｘ、Ｄ、Ｅ、Ｙ＞、＜Ｘ、Ｄ、Ａ、Ｂ、Ｙ＞、＜Ｘ、Ｄ、Ａ、Ｃ、Ｂ、Ｙ＞とタプルで表記することがある。  経路＜Ｘ、Ｄ、Ｅ、Ｙ＞において、ノード装置ＸはＧＳ、ノード装置ＹはＧＤであることが既に述べた。ノード装置Ｘからノード装置Ｄにフレームが送信され、ノード装置Ｄによって受信されるとき、ノード装置Ｘを「ＬＳ（Ｌｏｃａｌ  Ｓｏｕｒｃｅ）」、ノード装置Ｄを「ＬＤ（Ｌｏｃａｌ  Ｄｅｓｔｉｎａｔｉｏｎ）」と呼ぶ。ＬＳとＬＤは一つのリンクによって隔てられた２つのノード装置に対して定義される。
【００２６】
経路におけるリンクの数はホップ数とも呼ばれる。たとえば、経路＜Ｘ、Ｄ、Ｅ、Ｙ＞において、ＧＳであるノードＸからＧＤであるノードＹまでのホップ数は３である。ＬＳからＬＤまでのホップ数は、定義より１である。
【００２７】
図１に示されているアドホックネットワーク１０のある一つのノード装置は、そのノード装置に隣接するノード装置の存在とノードＩＤを認識している。たとえば、ノード装置Ａは、隣接する３つのノード装置とそれぞれのノードＩＤであるＢ、Ｃ、Ｄを認識しており、ネットワーク１０の全体を把握している必要はない。別の言葉では、あるノード装置は、ホップ数１以内の範囲に属するノード装置およびリンクに関する情報のみを保持している。あるノード装置が保持している情報には、自分自身に関する情報も含まれる。よって、ネットワーク１０の規模が増大しても、各ノード装置がネットワーク全体を認識するためのデータの通信を行い、そのデータの通信がネットワークに多大な負荷を強いる結果、通信システム全体としての性能が悪化することはない。
【００２８】
また、ネットワーク１０内で送受信されるデータフレームには、フレーム識別情報が含まれており、一意に識別される。フレーム識別情報の一例では、データフレームのＧＳであるノード装置のノードＩＤと、各ノード装置がＧＳとなって送信するフレームの識別のための情報であるＦＩＤ（Ｆｒａｍｅ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）の組み合わせである。ＦＩＤの例としては、所定のビット数のシーケンス番号や、タイムスタンプを挙げることができる。ＦＩＤとしてたとえば、タイムスタンプを採用すると、複数のノードで同一のＦＩＤが生成される可能性がある。しかしながら、フレーム識別情報は、ＦＩＤとデータフレームのＧＳであるノード装置のノードＩＤの組み合わせであるので、異なるノード装置がそれぞれＧＳとなって送信したデータフレームは、異なるフレーム識別情報を有する。
【００２９】
上述のように、本実施形態におけるデータフレームには、ノード検知フラグが含まれる。
【００３０】
図２はノード装置の機能ブロックの例を示す図であり、図３はノード装置のハードウェア構成の例を示す図である。図４はそのような構成を有するノード装置における経路選択のための処理について説明する図である。
【００３１】
図２に示されているように、アドホックネットワーク１０を構成するノード装置１００は、受信部１０１と、フレームを送信する送信部１０２を備えている。受信部１０１は受信手段に対応する。また、送信部１０２は、送信手段に対応する。
【００３２】
また、ノード装置１００は、フレームの送信の際に参照する各種情報を格納するためのテーブルを備えている。それらのテーブルには、ノード装置に隣接する他のノードを記憶するための隣接ノード管理テーブル１０３、フレームを宛先となるノード装置（「ＧＤ（Ｇｌｏｂａｌ  Ｄｅｓｔｉｎａｔｉｏｎ）」とも呼ぶ）に送信するにあたり、どの隣接ノードに送信するかを決定するための情報を管理する重み付けテーブル１０４、フレームの送信元となるノード装置（「ＧＳ」（Ｇｌｏｂａｌ  Ｓｏｕｒｃｅ）とも呼ぶ）が、送信する複数のフレームの各々を一意に識別する識別情報を管理するＦＩＤ（Ｆｒａｍｅ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）管理テーブル１０５を備えている。ＦＩＤ管理テーブル１０５は記憶手段の一つである。
【００３３】
重み付けテーブル１０４は、フレームをどの隣接ノード装置に送信するかを決定するための情報をＧＤ毎に管理するためのテーブルである。図２に示されているノード装置１００は７つのノード装置から構成されるネットワーク１０に用いられるので、各ノード装置は最大６つ隣接ノードを有する。よってノード装置ｉ（ｉ＝１〜６）の重み付けテーブル１０４は、各隣接ノードごとに重み付けテーブル１０４ｉ−ｊ（ｊ＝１〜ｍａｘ６）を備えている。重み付けテーブル１０４に含まれている情報から、ＧＤ宛のフレームをどの隣接ノードをＬＤとして選択するか、を決めることができる。すなわち、ここでの「重み」とは、フレームのＧＤごとに、ノード装置１００に隣接する１つ以上のノード装置に関して、ＬＤを選択する際の優先度を表している。重み付けテーブル１０４も記憶手段の一つである。
【００３４】
さらにノード装置１００は、受信部１００が受信したフレームの種類を判定するフレーム分岐処理部１０６を備えている。フレームには、たとえば、データフレーム、ハローフレーム、およびＡＣＫ（ＡＣＫｎｏｗｌｅｄｇｅ）フレームなどが存在する。
【００３５】
データフレームは、ＧＳであるノード装置が、ＧＤであるノード装置に伝達しようとするデータをペイロードとして含む。つまり、フレームが定義される層より上位の層で定義されるプロトコルのＰＤＵがペイロードとしてデータフレームに含まれる。
【００３６】
ハローフレームは、制御情報を通信するための制御フレームの一種で、ノード装置１００が自分自身の存在を他のノード装置に通知するためのフレームである。ハローフレームを受信したノード装置は、ハローフレームの送信元のノード装置の存在に関する情報を自身の隣接ノード管理テーブル１０３に記憶したり、隣接ノード管理テーブル１０３を更新したり、さらに重み付けテーブル１０４を更新したりする。
【００３７】
ＡＣＫフレームは、あるノード装置からデータフレームを隣接するノード装置に送信したとき、データフレームの送信が成功した場合に隣接するノード装置から受け取るフレームである。逆にデータフレームを送信したノード装置が、所定の時間が経過しても、ＡＣＫフレームを受信できない場合には、データフレームの送信に失敗したことを意味する。
【００３８】
また、ノード装置１００は、それぞれのフレームの受信に伴う処理を行うための処理部を備えている。具体的には、ＡＣＫフレームに関する処理を行うＡＣＫ処理部１０７、ハローフレームの受信に伴って処理を行うリンク処理部１０８を備える。ＡＣＫ処理部１０７は、たとえば、データフレームの送信後の所定の時間内にＡＣＫフレームを受信するかどうかを監視する。リンク管理部１０８は、隣接ノード管理テーブルを管理し、重み付けテーブル１０４の管理にも関わる。リンク管理部１０８は、隣接ノード管理テーブル１０３に新たに隣接ノードを加えたり、認識不能となったノード装置に関するエントリを削除するエージング処理を行ったりする。また、リンク管理部１０８は、隣接ノード装置に関する重み付けテーブル１０４の追加、削除、または更新を行う。さらに、データフレームの受信に伴って処理を行うために、バッファ部１０９およびデータフレーム処理部１１０を備えている。これらのほかに、上位層処理部１１１、ハローフレーム生成部１１２、およびＦＩＤ（Ｆｒａｍｅ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）生成部１１３を備えている。上位層処理部１１１は、ノード装置１００がＧＳまたはＧＤである場合に、データフレームにペイロードとして含まれる上位層のＰＤＵを処理する。
【００３９】
ノード装置１００がフレームを受信すると、各部は次のように動作する。
ノード装置１００の受信部１０１がフレームを受信すると、受信したフレームをフレーム分岐処理部１０６に送る。フレーム分岐処理部１０６は、フレームの種類を判定する。たとえば受信したフレームが、データフレーム、ハローフレーム、およびＡＣＫ（ＡＣＫｎｏｗｌｅｄｇｅ）フレームのいずれであるかを判定する。
【００４０】
ハローフレームが受信された場合、フレーム分岐処理部１０６は、受信されたハローフレームをリンク管理部１０８に出力する。リンク管理部１０８では、ハローフレームの受信に応じて、隣接ノードの存在を認識し、認識結果を隣接ノード管理テーブル１０３に反映する。隣接ノード管理テーブル１０３に変更があった場合、リンク管理部１０８は重み付けテーブル１０４を更新しても良い。
【００４１】
ノード装置１００の受信部１０１がＡＣＫフレームを受信した場合、フレーム分岐処理部１０６は、受信したＡＣＫフレームをＡＣＫ処理部１０７に出力する。
【００４２】
バッファ部１０９は、データフレームの送信の失敗および再送のために、データフレームを格納する。
【００４３】
ＡＣＫ処理部１０７は、ＡＣＫフレームの受信に伴って、データフレームの送信の完了を認識し、不要になったデータフレームをバッファ部１０９から削除する。また、ＡＣＫ処理部１０７は、データフレームの送信の成否をデータフレーム処理部１１０に通知する。
【００４４】
ノード装置１００の受信部１０１がデータフレームを受信した場合、フレーム分岐処理部１０６は、受信されたデータフレームをバッファ部１０９に格納すると共にデータフレーム処理部１１０に送る。
【００４５】
フレーム分岐処理部１０６からデータフレームを受けたデータフレーム処理部１１０は、たとえば次のような処理を行う。
【００４６】
データフレーム処理部１１０が行う処理の一つは、受信部１０１が受信したデータフレームに対するＡＣＫフレームを生成し、その送信を送信部１０２に指令を出すことである。
【００４７】
また、データフレーム処理部１１０は、受信したデータフレームのＧＤがノード装置１００の自ノードＩＤと等しいか否かを判定する。そして、受信したデータフレームのＧＤがノード装置１００の自ノードＩＤと異なる場合には、データフレーム処理部１１０は、ＦＩＤ管理テーブル１０５を参照しながら、今回、受信したデータフレームが、ネットワーク１０内に形成された、フレームがループする経路（以下では、単にループ経路とも呼ぶ）を中継してノード装置１００に戻ってきたものであるか否かを判定する。「フレームがループする」とは、過去にノード装置１００がＬＳとなって送信したフレームがネットワーク１０内を中継されるうちにノード装置１００に戻って来ることである。
【００４８】
もし、今回受信したデータフレームが上記のようなループ経路をたどってきたものではないと判定された場合には、データフレーム処理部１１０は、受信したデータフレームを転送するためにＬＤとして指定する隣接ノード装置を選択し、送信部１０２に転送するように指令を出す。
【００４９】
また、もし、今回受信したデータフレームが上記のようなループ経路をたどってきたものであると判定された場合には、データフレーム処理部１１０は、過去にＬＤとして選択した隣接ノード装置が適切なＬＤではなかったと認識し、その認識の結果を重み付けテーブル１０４に反映させる。そして、データフレーム処理部１１０は、重み付けテーブル１０４を参照して、ＬＤとして選択可能な隣接ノード装置がまだ存在するか否かを判定する。
【００５０】
データフレーム処理部１１０は、ＡＣＫ処理部１０７からデータフレームの送信の成否の通知を受けると、そのデータフレームのＬＤとして選択したノード装置がＬＤとして適切か否かを判定し、その判定結果を重み付けテーブル１０４に反映させる。
【００５１】
ノード装置１００のリンク管理部１０８、データフレーム処理部１１０は、ループ検知フラグの値（経路安定指標）に依存する処理を決定、実行する。これらの部をまとめて経路安定指標処理手段とも呼ぶ。
【００５２】
ノード装置１００はまた、次のような処理を行う。
ハローフレームワーク生成部１１２は、重み付けテーブル１０４と隣接ノード管理テーブル１０３を利用して、定期的にハローフレームを生成し送信部１０２に送る。ハローフレームワーク生成部１１２からハローフレームを受けた送信部１０２は、隣接するノードに対してハローフレームを送信する。
【００５３】
上位層処理部１１１は、任意のタイミングでデータフレームにペイロードとして含めて送信する対象のデータをデータフレーム処理部１１０に送る。そのデータを受けたデータフレーム処理部１１０は、上位層処理部１１１の要求に応じてデータフレームを作成し、送信部１０２に送る。データフレーム処理部１１０からそのようなデータフレームを受けた送信部１０２は、ＬＤである隣接ノード装置にデータフレームを送信する。このようなデータフレームのＧＳは、ノード装置１００に他ならない。
【００５４】
図３は、上記のような機能を有するノード装置１００のハードウェア構成の例を示す図である。
【００５５】
図３では、ノード装置１００は、マイクロプロセッシングユニット（ＭＰＵ）２０１、物理層（ＰＨＹ）チップ２０２、タイマＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）２０３、Ｄｙｎａｍｉｃａｌ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）２０４、フラッシュメモリ２０５、および無線モジュール２０６を備える。
【００５６】
ＭＰＵ２０１とＰＨＹチップ２０２の間を接続する通信インターフェイスは、ＭＩＩ／ＭＤＩＯ（Ｍｅｄｉａ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｉｎｔｅｒｆａｃｅ  ｏｒ  Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）２０７である。ＭＩＩおよびＭＤＩＯはいずれも、物理層とＭＡＣ副層（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ｓｕｂｌａｙｅｒ）との間の通信を司るインターフェイス規格である。ＭＰＵ２０１とタイマＩＣは、Ｉ２Ｃ／ＰＩＯ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｏｒ  Ｐａｒａｌｌｅｌ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）バス２０８を介して接続されている。ＤＲＡＭ２０４、フラッシュメモリ２０５および無線モジュール２０６は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス２０９を介してＭＰＵ２０１に接続されている。
【００５７】
ＭＰＵ２０１は、フラッシュメモリ２０５に格納されたファームウェアなどのプログラムをＤＲＡＭ２０４にロードし、ＤＲＡＭ２０４をワーキングメモリとして使用しつつ処理を実行する。プログラムはフラッシュメモリ２０５ではなく、コンピュータ読み取り可能記憶媒体に記憶され、ノード装置１００にインストールされても良いし、インターネットなどネットワークからＰＨＹチップ２０２または無線モジュール２０６を介してダウンロードされ、ノード装置１００にインストールされても良い。また、ＤＲＡＭ２０４、フラッシュメモリ２０５といったメモリのほか、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ），ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置を有しても良い。また、プログラムは、図示されていない不揮発性記憶装置、たとえばハードディスクドライブなどに収納されていても良い。ＭＰＵ２０１は、プログラムを実行することで、図２のフレーム分岐処理部１０６、ＡＣＫ処理部１０７、リンク管理部１０８、データフレーム処理部１１０、上位層処理部１１１、ハローフレーム生成部１１２、ＦＩＤ生成部１１３として動作することが可能である。
【００５８】
ＤＲＡＭ２０４、フラッシュメモリ２０５、または図示されていない記憶装置は、隣接ノード管理テーブル１０３、重み付けテーブル１０４、ＦＩＤ管理テーブル１０５、バッファ部１０９を実現する。
【００５９】
フラッシュメモリ２０５には、ＭＰＵ２０１による処理のためのプログラムのみならず、ノード装置１００のノードＩＤなど、ノード装置１００に固有の情報を記憶している。
【００６０】
ＰＨＹチップ２０２は、有線接続における物理層の処理を行うデバイスである。ノード装置１００を含むアドホックネットワーク１０が無線ネットワークである場合にはＰＨＹチップ２０２を省略することも可能である。有線ネットワークの場合には、ノード装置１００はイーサネット（登録商標）規格に従ったＬＡＮポートを備え、ＬＡＮポートに接続されたケーブルを介して、ゲートウェイ装置などの外部の装置に接続されていても良い。
【００６１】
アドホックネットワーク１０が有線ネットワークの場合には、ＭＰＵ２０１は、イーサネットフレームを生成し、ＭＩＩ／ＭＤＯＩ２０７を介してＰＨＹチップ２０２に出力する。ＰＨＹチップ２０２は、ＭＰＵ２０１からのイーサネットフレームに関する情報を、ケーブルの種類に応じた信号に変換し、（図示されていない）ＬＡＮポートからノード装置１００の外部に出力することができる。また、ＰＨＹチップ２０２は、ノード装置１００の外部からケーブルおよびＬＡＮポートを介してノード装置１００に入力される信号を、ＭＩＩ／ＭＤＯＩ２０７を介してＭＰＵ２０１が認識可能な形に変換し、ＭＰＵ２０１に出力することができる。
【００６２】
無線モジュール２０８は、アドホックネットワーク１０が無線ネットワークである場合など、無線接続における物理層の処理を行う。図２の受信部１０１および送信部１０２は、無線モジュールによって実現される。無線モジュール２０８は、アンテナ、ＡＤコンバータやＤＡコンバータなどの変換器、変調器、復調器、アンプなどを含んでいても良い。
【００６３】
タイマＩＣ２０３は、設定された時間が経過するまで時間のカウントを行い、設定された時間の経過後、割り込み信号を出力する。たとえば、タイマＩＣ２０３は、隣接ノード管理テーブル１０３、重み付けテーブル１０４、ＦＩＤ管理テーブル１０５のエージング処理をそれぞれ所定の時間間隔で実行するための割り込み信号を出力しても良い。タイマＩＣ２０３は、計時手段に相当する。
【００６４】
また、受信部１０１、フレーム分岐処理部１０６、リンク管理部１０８、ハローフレーム生成部１１２はハローフレームの送受信を通じて、経路に関する情報を取得する経路情報取得手段に含まれる。
【００６５】
上記のような機能を有するノード装置１００のハードウェア構成は図３に示されているものには限定されない。他にも様々なバリエーションが存在する。たとえば、図２のフレーム分岐処理部１０６、ＡＣＫ処理部１０７、リンク管理部１０８、データフレーム処理部１１０、上位層処理部１１１、ハローフレーム生成部１１２、ＦＩＤ生成部１１３の一部またはすべては専用回路として構成されても良い。
【００６６】
＜ループの検出＞
次に各ノード装置における経路選択のための処理について説明する。
【００６７】
図４は、１つのノード装置における経路選択のための処理について説明する図である。図４に示されているネットワーク３０では、ノード装置βは、ノードα、ノードγ、ノードδ、ノードε、ノードζの５つの隣接ノード装置とリンクで接続されている。すなわちノード装置βからは、ノードβとノードαの間のリンクＬα、β、ノードβとノードγの間のリンクＬβ、γ、ノードβとノードδの間のリンクＬβ、δ、ノードβとノードεの間のリンクＬβ、ε、ノードβとノードζの間のリンクＬβ、ζの５つのリンクが伸びている。
【００６８】
また、ノードδとノードζは、リンクＬ１、ネットワーク３a、リンクＬ２を介して直接的または間接的に接続されているものとする。すなわち、ネットワーク３aは、リンクＬ１とリンクＬ２の接点であっても良い。
【００６９】
図４では、ノードβはノードαから、ＧＤを図４には示されていないノードηとするデータフレーム３０１を受信するものとする。ノードβからノードηへは、ノードγ、ノードδ、ノードε、ノードζのいずれを通っても到達可能であるとする。
【００７０】
ノード装置βは、重み付けテーブル１０４を有している。以下では、ノードηに対する重み付けテーブルをテーブル１０４−ηとして参照することがある。重み付けテーブル１０４−ηでは、ノードα、ノードγ、ノードδ、ノードε、ノードζの５つの隣接ノード装置に対して、重みＷα、Ｗγ、Ｗδ、Ｗε、Ｗζがそれぞれ付与されている。
【００７１】
ところで、ノード装置間の通信が無線である場合、通信時における環境やノード装置間の距離が通信品質に影響を及ぼすことがあり、ノード装置間の通信が有線である場合には、たとえばトラフィック量が通信品質に影響を及ぼすことがある。そのような影響を考慮に入れて、ここでは重みの範囲を０以上１以下とする。もちろん、重みはこの範囲に限定されず、この範囲の値以外の値を重みとして取り得る実施形態を想定することができる。また、ここでは、重みの値が小さいほど、その重みに対応するノードの優先度が高いとする。
【００７２】
さらに、ノードβはノードαから、データフレーム３０１を受信した時点での重みＷγ、Ｗδ、Ｗε、Ｗζの大小関係は、Ｗγ＜Ｗδ＜Ｗε＜Ｗζであったとする。つまり、ノードβにとって、ノードγ、ノードδ、ノードε、ノードζの４つの隣接ノードの中でノードγが最も優先度が高い。よって、ノードβは、データフレーム３０１の転送するためのＬＤとして、まずノードγを選択し、ノードγにデータフレーム３０１を送信する。
【００７３】
もし、ノードγへの送信が失敗すると、ノードβは重みＷγの値を増大させ、ノードηをＧＤとするデータフレームの送信時にノードγをＬＤとすることが適切ではないことを認識する。
【００７４】
送信失敗には次のようなものが含まれる。
（Ｆ１）リンクＬβ、γの障害によりノードβからノードγにデータフレーム３０１が到達しない、
（Ｆ２）ノードγの障害によりノードγがデータフレーム３０１を受け取れない、
（Ｆ３）ノードγからノードβにデータフレーム３０１が戻ってくる、
【００７５】
（Ｆ１）は、ノードβがデータフレーム３０１をノードγに転送した時点で、リンクＬβ、γに障害が発生し、データフレーム３０１がノードγまで届かない場合である。（Ｆ２）は、リンクＬβ、γには障害はないが、ノードγの機能に障害が発生していて、ノードγはデータフレーム３０１を受け取れない場合である。（Ｆ１）および（Ｆ２）では、ノードγからノードβにデータフレーム３０１に対するＡＣＫフレームが所定の時間内に返信されてこないことによって、ノード装置βは送信失敗を認識する。本実施形態では、（Ｆ１）または（Ｆ２）が起こったときには、重みＷγの値を所定の値だけ大きくする。
【００７６】
（Ｆ３）では、ノードβからノードγへのデータフレーム３０１の送信は、一旦成功する。このことは、ノードγからノードβにデータフレーム３０１に対するＡＣＫフレームが所定の時間内に返信されることによって確認することができる。このとき、ノードβは、ＬＤとして選択したノードγに対応する重みノードγからノードβにデータフレーム３０１に対する重みＷγの値を小さくしても良い。
【００７７】
しかしながら、（Ｆ３）の場合、ノードγからＧＤであるノードηまでデータフレーム３０１を転送することのできる経路が見付からなければ、ノードγはデータフレーム３０１をノードβに送り返す。これをバックトラック動作とも呼ぶ。
【００７８】
ノードγがバックトラック動作を行うと、ノードβは、ノードβ自身が過去にノードγに送信したデータフレーム３０１をノードγから受信する。このことによって、ノードβは、ノードβからノードηをＧＤとするデータフレーム３０１の送信において、ノードγをＬＤとして選択することは適切ではないと認識する。本実施形態では、（Ｆ３）が起こったときには、重みＷγの値を最大値に設定する。
【００７９】
図４に戻って、ここではノードβが、データフレーム３０１をノードγに送信した結果、ノードβは送信失敗を認識し、重みＷγの値を変更するとする。そして、その結果、重みＷγ、Ｗδ、Ｗε、Ｗζの大小関係は、Ｗδ＜Ｗε＜Ｗζ＜Ｗγと変化したとする。
【００８０】
続いてノードβは、データフレーム３０１をＧＤであるノードηに届けるために、ノードγとは異なるノードをＬＤとして選択し、データフレーム３０１を再送信することを試みる。この時点で、最も優先度の高いノードは、ノードδである。そこで、ノードβはノードδをＬＤとしてデータフレーム３０１を再送信する。
【００８１】
このとき、図４では次のようなことが起こる。ノードβから送られたデータフレーム３０１は、ノードδに到達する。ノードδは、データフレーム３０１に対するＡＣＫフレームをノードβに送信する。ノードδからＡＣＫフレームを受信したノードβは、ノードδへのデータフレーム３０１の送信の成功を認識し、重みＷεの値を小さくする。重みの値の変更によっても、重みＷγ、Ｗδ、Ｗε、Ｗζの大小関係は、Ｗδ＜Ｗε＜Ｗζ＜Ｗγが相変わらず成立する。ノードδに到達したデータフレーム３０１は、ネットワーク３ａを介してノードζに到達するとする。さらに、ノードζは、ＬＤとしてノードβを選択するとする。すると、ノードβは、自身が過去にノードδに送信したデータフレーム３０１をノードζから受信し、送信失敗を認識する。つまり、ノードβは、ノードβからノードηをＧＤとするデータフレーム３０１の送信において、ノードδをＬＤとして選択することは適切ではないと認識する。この場合は、（Ｆ４）＜β、δ、ネットワーク３ａ、ζ、β＞というループ経路が形成されていることによって、ノードβにデータフレーム３０１が戻ってくる、
ことによる送信失敗である。
【００８２】
（Ｆ４）が起こることによって、ノードβは、重みＷδの値を大きくする。たとえば、重みＷεの値を最大値に設定する。重みＷγ、Ｗδ、Ｗε、Ｗζの大小関係は、Ｗε＜Ｗζ＜Ｗγ＝Ｗδとなる。
【００８３】
次にノードβは、新たな重みの大小関係を参照して、ノードηをＧＤとするデータフレーム３０１を、ノードεをＬＤとして送信する。図４の例では、ノードεへのデータフレーム３０１の送信は成功するものとする。このデータフレーム３０１のノードεへの送信成功に伴って、ノードβは、ノードεに対する重みＷεの値を小さくするが、重みＷγ、Ｗδ、Ｗε、Ｗζの大小関係は相変わらずＷε＜Ｗζ＜Ｗγ＝Ｗδである。
【００８４】
このような重みの変更は変更手段で行われる。変更手段には、データフレーム処理部１１０が含まれる。
【００８５】
＜ループ検知処理と経路決定方法＞
図５は、図１に示されているアドホックネットワークにおいて、ループ検知処理を行いつつ経路が選択される様子を説明する図である。図５では、動的かつ自律分散的に経路が選択される。図５は、ノードＸがＧＳとなり、ノードＹをＧＤとするデータフレームを送信する場合の、ネットワーク１０内での経路の選択の様子を示している。図５では、ＸからＹに向けて始めてデータフレームが送信されるものとする。つまり、図１のネットワークの各リンクのループ検知フラグは「１」、つまり、各ノード装置は、ループ検知フラグのフィールドに１が格納されたデータフレームを送受信した場合、ループ検知処理を行う。したがって、図５の説明では、ループ検知フラグに関する処理には言及しない。
【００８６】
図５の説明において、ノード装置α（α＝Ｘ、Ｙ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ）における重み付けテーブル１０４−αで参照する。そして重み付けテーブル１０４−αにおけるノードβ（β≠α＝Ｘ、Ｙ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ）に対する重みをＷ（α）βと書く。厳密には、重みはＧＤごとに定義されるので、今の場合は、そして重み付けテーブル１０４−αにおけるＧＤがノードγであるフレームの送信におけるノードβ（β≠α＝Ｘ、Ｙ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ）に対する重みを定義すべきであり、それをＷγ（α）βや、Ｗα、γ、βと書く。しかしながら、図５の説明では、ＧＤがノードＹであるデータフレームの中継しか扱わないので、重み付けテーブル１０４−αにおけるノードβに対する重みをＷ（α）βと略記する。
【００８７】
ステップＳ１０１で、ＧＳであるノードＸは、隣接するノードＤをＬＤとして選択し、データフレームをノードＤに送信する。
【００８８】
ノードＤは、ノードＡとノードＥの２つの隣接するノードを有するが、重み付けテーブル１０４−Ｄにおいて、ノードＡとノードＥに対する重みは、大小関係Ｗ（Ｄ）Ａ＜Ｗ（Ｄ）Ｅであるとする。
【００８９】
ステップＳ１０２では、ノードＤは、ステップＳ１０１で受信したデータフレームを転送する際のＬＤとしてノードＡを選択し、データフレームをノードＡに送信する。
【００９０】
ステップＳ１０２でノードＤからデータフレームを受信したノードＡは、次の転送先を選択する。ノードＡの重み付けテーブル１０４−Ａでは、Ｗ（Ａ）Ｂ＜Ｗ（Ａ）Ｃが成立しているとする。
【００９１】
ステップＳ１０３では、ノードＡは、ステップＳ１０２で受信したデータフレームを転送する際のＬＤとしてノードＢを選択し、データフレームをノードＢに送信する。
【００９２】
ステップＳ１０３でノードＡからデータフレームを受信したノードＢは、次の転送先を選択する。ノードＢの重み付けテーブル１０４−Ｂでは、Ｗ（Ｂ）Ｙ＜Ｗ（Ｂ）Ｃが成立しているとする。
【００９３】
ステップＳ１０４では、ノードＢは、ステップＳ１０３で受信したデータフレームを転送する際のＬＤとしてノードＹを選択し、データフレームをノードＹに送信する。しかし、この時点で、ノードＢとノードＹを結ぶリンクに障害が発生し、ノードＹへの送信が失敗するとする。このノードＹへの送信失敗は、送信後、所定の時間内にノードＢはノードＹからＡＣＫフレームを受信しないことによって認識される。この状況は、図４で、ノートβからノードγへのデータフレームの送信の際に生じた送信失敗と同様の状況である。ノードＹへの送信失敗を認識したノードＢは、重み付けテーブル１０４−Ｂを更新する。その結果、Ｗ（Ｂ）Ｃ＜Ｗ（Ｂ）Ｙとなる。
【００９４】
次に、ステップＳ１０５でノードＢは、更新された重み付けテーブル１０４−Ｂにおける重みの大小関係Ｗ（Ｂ）Ｃ＜Ｗ（Ｂ）Ｙに従って、ノードＣにデータフレームを転送する。
【００９５】
ステップＳ１０６でノードＣは、ステップＳ１０５でノードＢから受信したデータフレームを、ノードＡに転送する。ノードＣがードＢからのデータフレームを転送する先は、ノードＡしかないからである。
【００９６】
ノードＣからデータフレームを受信したノードＡは、そのデータフレームが過去にノードＡ自身がノードＢに送信したものであることを認識する。つまり、＜Ａ、Ｂ、Ｃ、Ａ＞というループ経路が形成されている。この状況は、図４で、ノードβがノードδに送信したデータフレームをノードζから受信する状況と同様である。よって、ノードＡは、重み付けテーブル１０４−Ａを、ノードＡにおけるノードＢに対する重みの値は最大値となるように更新する。
【００９７】
ステップＳ１０１からＳ１０６までのデータフレームの転送経路は、図６のようである。すなわち、ノードＸからノードＹにデータを転送するとき、ノードＸはノードＤに送信し、ノードＤはノードＡに転送している。ノードＡはノードＢに転送したがノードＣから同一フレームを受け取った（ループ検知した）ので、「ノードＹに転送する場合、ノードＢに転送するのは適切ではない」と学習する。
【００９８】
次のステップＳ１０７でノードＡは次のような判断をする。ステップＳ１０６でノードＣから受信したデータフレームの転送先の選択で、そのデータフレームはもともとステップＳ１０２でノードＤから受信したものである。そして、過去にステップＳ１０３でノードＢに向けて送信されたものでもある。すると、ノードＡにとってＬＤとして採用していない隣接ノードはノードＣしかない。そして、ステップＳ１０７でノードＡは、ステップＳ１０６でノードＣから受信したデータフレームをノードＣに向けて送信する。
【００９９】
ノードＡからデータフレームを受信したノードＣは、そのデータフレームがステップＳ１０６でノードＣ自身がノードＡに向けて送信したものであることを認識する。よって、ノードＣは、重み付けテーブル１０４−ＣをノードＣにおけるノードＡに対する重みの値は最大値となるように更新する。
【０１００】
そして、ノードＣはステップＳ１０８で、ステップＳ１０７のノードＡと同様の判断を行い、ステップＳ１０７でノードＡから受信したデータフレームをノードＢをＬＤとして選択して転送する。ノードＣからノードＢへのデータフレームの転送は、バックトラック動作を定義する。このようなノードＣのバックトラック動作によって、ノードＢは、ノードＹをＧＤとするデータフレームの中継において、ノードＣから先は袋小路になっていることを認識する。
【０１０１】
次のステップＳ１０９においてノードＢは、ステップＳ１０８のノードＣと同様の判断を行い、データフレームをノードＡに送り返す。すなわち、ノードＣからデータフレームを受信したノードＢは、そのデータフレームがステップＳ１０５でノードＢ自身がノードＣに向けて送信したものであることを認識する。よって、ノードＢは、重み付けテーブル１０４−ＢをノードＢにおけるノードＣに対する重みの値は最大値となるように更新する。また、そのデータフレームは、過去にステップＳ１０４でノードＹに向けて送信され、失敗に終わったものでもあることを認識する。すると、ノードＢにとってＬＤとして採用していない隣接ノードはノードＡしかない。そして、ステップＳ１０９でノードＢは、ステップＳ１０８でノードＣから受信したデータフレームをノードＡに向けて送信する。
【０１０２】
ステップＳ１１０においてノードＡは、ノードＢから受信したデータフレームが、過去においてステップＳ１０２でノードＤから受信したものであり、ステップＳ１０３でノードＢに送信したものであり、ステップＳ１０６でノードＣから受信しステップＳ１０７でノードＣに送り返したものであることを認識する。そこで、ノードＡは、ステップＳ１０９でノードＢから受信したデータフレームをノードＤに転送する。つまり、本ステップの動作もバックトラック動作である。
【０１０３】
ノードＡからデータフレームを受信したノードＤは、重み付けテーブル１０４−ＤをノードＤにおけるノードＡに対する重みの値は最大値となるように更新する。
【０１０４】
次のステップＳ１１１でノードＤは、データフレームを転送するためのＬＤとしてまだ試していない他の隣接ノードであるノードＥを選択し、データフレームをノードＥに転送する。
【０１０５】
ノードＤからデータフレームを受信したノードＥにとって、そのデータフレームを転送するためのＬＤの候補はノードＹしかない。
【０１０６】
そこで、ステップＳ１１２でノードＥは、ステップＳ１１１でノードＤから受けたデータフレームをノードＹに向けて送る。
【０１０７】
以上のようにして、アドホックネットワーク１０においては、ネットワーク１０内に障害が発生しても、各ノードが自律分散的に動作することによって、データフレームは所望のＧＤまで届けられる。
【０１０８】
図６は、上記のような動作によって、ネットワーク１０にループ経路＜Ａ、Ｂ、Ｃ、Ａ＞が検知された様子を示している。
【０１０９】
図７は、ネットワーク１０にループ経路＜Ａ、Ｂ、Ｃ、Ａ＞が検知された結果、経路の変更が行われる様子を示している。
【０１１０】
図７の左側の図は、ノードＢとノードＹ間のリンクが不安定で時々切れるような状態である。図７の左側の図では、各リンクに付与されるループ検知フラグの値Ｌは、全てＬ＝１である。このとき、リンクが切れた場合は、ノードＡにてループ検出し、ノードＣに転送しても同様にループ検出し、ノードＤにバックトラックを行う。ノードＤはノードＡに転送して戻ってきたため、ここでもループ検知となり、他の経路のノードＥに転送を行う。
【０１１１】
図７の右側の図は、ループ経路検知処理の結果、経路＜Ｘ、Ｄ、Ｅ、Ｙ＞が出来た様子を示す図である。ここで、ノードＸ−Ｄ間、ノードＤ−Ｅ間、ノードＥ−Ｙ間のリンクが強固である場合、この経路で安定する。経路＜Ｘ、Ｄ、Ｅ、Ｙ＞を安定化経路と呼ぶ。
【０１１２】
しかしながら、無線ネットワークに参加するノードが固定的に設置されたり、追加や削除が頻発しない環境の場合、このループ検知処理による経路決定方法は、ノードが経路学習を行い、経路が安定した後はあまり使う必要がなくなってくる。そこで、経路が安定した後、すなわち安定化経路が形成された後は、安定化経路上の各ノードは、そのノードから伸びているリンクに付与されるループ検知フラグの値を「１」から「０」に変更し、以後、ループ検知処理を行わないように設定する。すなわち、ノードＸ−Ｄ間、ノードＤ−Ｅ間、ノードＥ−Ｙ間のリンクにはループ検知フラグＬ＝０が付与される。
＜フレームのフォーマット＞
図８は、本実施形態で用いられるフレームのフォーマットの例である。以下で示すフレームのフォーマットの例は単なる一例であり、フレームに含まれるフィールドの順序が異なっていたり、図示されていないフィールドを含んでいても良い。
【０１１３】
本例におけるデータフレーム３０２は、ＬＤ、ＬＳ、ＧＤ、ＧＳ、ＦＩＤ、タイプ、Ｌ、長さの各フィールドを持つヘッダおよびペイロードを含む。Ｌはループ検知フラグフィールドである。
【０１１４】
データフレーム３０２のＬＤフィールド、ＬＳフィールド、ＧＤフィールド、およびＧＳフィールドには、データフレーム３０２のＬＤ、ＬＳ、ＧＤ、およびＧＳである各ノード装置のノードＩＤがそれぞれ指定される。また、データフレーム３０２のＦＩＤフィールドには、データフレーム３０２のＧＳであるノード装置が生成してデータフレーム３０２に割り当てたＦＩＤが指定される。
【０１１５】
データフレーム３０２のタイプフィールドには、「データフレーム」というタイプを示す所定の定数が指定される。また、データフレーム３０２の長さフィールドには、ペイロードの長さが指定される。データフレーム３０２のペイロードは、データフレーム３０２が定義されるプロトコルよりも上位の層のプロトコルのＰＤＵである。
【０１１６】
例えば、ＭＡＣ副層を仮想的にさらに２つの副層に分割することを想定する。第１実施形態のフレームは、この仮想的な２つの副層のうちの下の方の副層で定義されてもよく、すなわち、ＭＡＣ副層で定義される他のプロトコル（例えばイーサネットなど）のＰＤＵをペイロードに含んでもよい。換言すれば、第１実施形態のフレームは、第２層で定義されるイーサネットフレームをカプセル化するフレームであってもよい。この場合、上位層処理部１１１はイーサネットフレームを処理する処理部であるから、公知のＭＡＣチップを用いて実現することもできる。
【０１１７】
ループ検知フラグは、データフレームが安定化経路を転送されようとする場合には、ループ検知のための処理を省略して、データの転送スループットとメモリやＣＰＵのリソースを改善するために導入される。
【０１１８】
ループ検知フラグは、具体的には「０」または「１」の値である。もちろん、ループ検知フラグは、データフレームが安定化経路を転送されようとしているか否かを判定する情報を与えることができれば、「０」または「１」以外の値であっても構わない。ループ検知フラグの値は、経路安定指標とも呼ばれる。また、ループ検知フラグの値（経路安定指標）に依存する処理を決定、実行するのは、ノード装置１００のリンク管理部１０８、データフレーム処理部１１０であるが、これらを経路安定指標処理手段とも呼ぶ。
【０１１９】
また、受信部１０１、フレーム分岐処理部１０６、リンク管理部１０８、ハローフレーム生成部１１２はハローフレームの送受信を通じて、経路に関する情報を取得する経路情報取得手段に含まれる。
【０１２０】
ループ検知フラグのデフォルト値は「１」である。つまり、ノード装置は初期状態において、ループ検知のための処理を実行する。
【０１２１】
しかしながら、図７のように、一旦、安定化経路が形成されると、安定化経路を構成するリンクに対するループ検知フラグは「０」に設定される。
【０１２２】
「ループ検知フラグ」が０であるか１であるかで、ノードの挙動が以下のように変わる。
【０１２３】
各ノード装置は、ループ検知フラグのフィールドに１が格納されたデータフレームを受信した場合、後述の比較例における動作と同様の動作を行う。
【０１２４】
各ノード装置は、ループ検知フラグのフィールドに１が格納されたデータフレームを送信（転送）する場合、後述の比較例における動作と同様の動作を行う。
【０１２５】
各ノード装置は、ループ検知フラグのフィールドに０が格納されたデータフレームを受信した場合、ループ検知のための確認動作を行わない。
【０１２６】
各ノード装置は、ループ検知フラグのフィールドに０が格納されたデータフレームを送信（転送）する場合、ＦＩＤ管理テーブルの登録動作を行なわない。
【０１２７】
つまり、ループ検知フラグが「１」の場合は比較例の処理と送信処理、受信処理は同じで、ループ検知フラグが「０」の場合は、受信処理はループ検知の判定を実施せず、送信処理はＦＩＤ管理テーブルの登録処理を行わない。
【０１２８】
また、各ノード装置は、次のような場合にループ検知フラグの値を変更する。
ループ検知フラグの値を「０」から「１」に変更するのは次の場合である。
（Ａ１）一定時間使用実績が無い経路への送信時
（Ａ２）経路を変更した最初の送信時
（Ａ３）ホップ数が変化した経路への送信時
（Ａ４）経路の評価値(スコア)が変化した経路への送信時
（Ａ５）前回ループした経路への送信時
【０１２９】
（Ａ１）では、ＦＩＤ管理テーブル１０５を参照することによって、経路に直前の一定時間に使用実績があるかないかを判断することができる。
【０１３０】
（Ａ３）および（Ａ４）のホップ数の変化および経路の評価値は、たとえば、隣接ノード管理テーブル１０３に一旦格納されるハローフレームのハローヘッダに含まれる情報から取得しても良い。
【０１３１】
図９は、ハローヘッダのフォーマットの例を示す図である。
ハローヘッダ７０１は、以下で述べるように、ＧＤ、ホップ数ｈ、経路品質重みｄ、復路品質重み、およびノードタイプを含んでいる。経路品質重みｄを（Ａ４）の経路の評価値として用いることができる。また、以下で述べるように、ハローフレームに含まれる情報から、（Ａ３）および（Ａ４）のホップ数の変化および経路の評価値を得ることができる。
【０１３２】
（Ａ５）の「前回ループした経路」とは、たとえば、図６において、前回、ノードＡからノードＢに向けてデータフレームを送信した結果、＜Ａ、Ｂ、Ｃ、Ａ＞のようなループ経路が形成された場合、再び、ノードＡからノードＢに向けてデータフレームを送信する際には、もし、ループ検知フラグの値が「０」ならば、「０」から「１」に変更する。
【０１３３】
また、ループ検知フラグの値を「１」から「０」に変更するのは次の場合である。
（Ｂ１）安定化経路中のリンクを介して送信されるとき
（Ｂ２）ＧＤへの送信時
【０１３４】
（Ｂ１）では、以下で詳述するが、たとえば、そのノード装置から伸びるリンクに付与されている重みの順序が前回から変化しなくなったようなノード装置からデータフレームが送信されるときに、ループ検知フラグの値を「１」から「０」に変更しても良い。
【０１３５】
（Ｂ２）では、ＬＤとしてＧＤが選択されると、ループ検知フラグの値を「１」から「０」に変更する。
【０１３６】
データフレーム３０３、３０４はそれぞれ、ステップＳ１０２およびＳ１０３におけるデータフレームである。
【０１３７】
データフレーム３０３は、図５のステップＳ１０２でノード装置Ｄがノード装置Ａに送信するデータフレームである。
【０１３８】
データフレーム３０３では、ＬＤフィールドには、ステップＳ１０２の送信においてＬＤとして選択されたノード装置ＡのノードＩＤ（すなわちＡ）が指定されている。
【０１３９】
ＬＳフィールドには、ステップＳ１０２の送信におけるＬＳであるノード装置ＤのノードＩＤ（すなわちＤ）が指定されている。
【０１４０】
ＧＤフィールドには、ＧＳであるノード装置ＸがステップＳ１０１の送信のときに指定したノード装置ＹのノードＩＤ（すなわちＹ）が指定されている。
【０１４１】
ＧＳフィールドには、ＧＳであるノード装置ＸのノードＩＤ（すなわちＸ）が指定されている。
【０１４２】
ＦＩＤフィールドには、ＧＳであるノード装置が生成したＦＩＤ（以下ＦＸとする）が指定されている。
【０１４３】
タイプフィールドには、「データフレーム」というタイプを示す所定の定数が指定されている。例えば、タイプは２ビットによって表すこともでき、（００）２でもよい。
【０１４４】
ループ検知フラグフィールド（Ｌ）には、ループ検知フラグの値が格納される。
長さフィールドには、データフレーム３０２のペイロードの長さＰａが指定される。なお、長さは例えばバイト単位で表されてもよいし、その他の単位で表されてもよい。
【０１４５】
データフレーム３０３には、ペイロードとして、ＭＡＣ層プロトコルのフレーム（例えばイーサネットフレーム）が含まれる。
【０１４６】
データフレーム３０４は、図５のステップＳ１０３でノード装置Ａがノード装置Ｂに送信するデータフレームである。
【０１４７】
ＬＤフィールドには、ステップＳ１０３の送信においてＬＤとして選択されたノード装置ＢのノードＩＤ（すなわちＢ）が指定されている。つまり、転送にあたって、ノード装置ＡはＬＤフィールドを書き換える。
【０１４８】
ＬＳフィールドには、ステップＳ１０３の送信におけるＬＳであるノード装置ＡのノードＩＤ（すなわちＡ）が指定されている。つまり、転送にあたって、ノード装置ＡはＬＳフィールドを書き換え、自ノードＩＤを設定する。
【０１４９】
ＧＤ、ＧＳ、ＦＩＤ、タイプ、長さの各フィールドと、ペイロードの内容は、ノード装置Ａが受信したデータフレーム３０３と同じである。
【０１５０】
ハローフレーム３１１は、図９に示されているように、ＬＤ、ＬＳ、ＧＤ、ＧＳ、ＦＩＤ、タイプ、ペイロードの各フィールドを含むヘッダを有する。ハローフレーム３１１の具体例はハローフレーム３１２である。ハローフレームは前述のように、制御情報を通信するための制御フレームの一種で、ノード装置１００が自分自身の存在を他のノード装置に通知するためのフレームである。ハローフレームを受信したノード装置は、ハローフレームの送信元のノード装置の存在に関する情報を自身の隣接ノード管理テーブル１０３に記憶したり、隣接ノード管理テーブル１０３を更新したり、さらに重み付けテーブル１０４を更新したりする。
【０１５１】
ハローフレーム３１１のＬＤフィールドには、ハローフレーム３１１を送信するノード装置に隣接するすべてのノード装置へのブロードキャストを表す特殊な値が指定される。なおここでの「ブロードキャスト」は隣接するすべてのノード装置へのブロードキャストである。以下、説明の便宜上、本例においてはノードＩＤが３バイトで表されるものとし、「０ｘ」は１６進数を表すものとする。また、０ｘ００００００と０ｘＦＦＦＦＦＦは予約されており、通常のノードＩＤとしては使われないものとする。本例におけるすべてのハローフレームでは、ハローフレーム３１２と同様、ＬＤフィールドに、当該ハローフレームを送信するノード装置に隣接するすべてのノード装置へのブロードキャストを表す特殊な値として、０ｘＦＦＦＦＦＦが指定されている。
【０１５２】
ハローフレーム３１１のＬＳフィールドには、ハローフレーム３１１を送信するノード装置自身のノードＩＤが指定される。よって、ノード装置Ａが送信するハローフレーム３１２のＬＳフィールドには、ノード装置ＡのノードＩＤであるＡが指定される。
【０１５３】
ハローフレーム３１１のタイプフィールドには、「ハローフレーム」というタイプを示す所定の定数が指定される。具体的には、「ハローフレーム」というタイプは、ハローフレーム３１２に例示するように所定の定数Ｈにより表され、例えばＨ＝（１０）２でもよい。
【０１５４】
ペイロードには、ハローヘッダが含まれている。
ハローヘッダは、ＧＤ、ホップ数ｈ、経路品質重みｄ、復路品質重み、およびノードタイプを含んでいる。
【０１５５】
ＧＤは例えば、図１８のハローヘッダを含むハローフレームの最初の送信元（ＧＳ）であるノード装置が持つ、重み付けテーブルに対応するグローバル宛先アドレス（ＧＤ）の情報である。
【０１５６】
ホップ数ｈは例えば、このハローフレームの送信元からＧＤとして設定されたノード装置までのホップ数の情報である。
【０１５７】
経路品質重みｄは、ＧＤまでの経路上での遅延から求めた値である。この経路品質重みｄを（Ａ４）の経路の評価値として用いることができる。
【０１５８】
復路品質重みは、相手のノード装置（ここでは、ハローフレームを送信したノード装置）から自ノード装置へ至る方向の通信品質に基づいて求めた値が格納される。
【０１５９】
ノードタイプには、ゲートウェイ、中継器、及び端末等の種類が定義される。
よって、ハローフレームの、たとえばハローヘッダに含まれる情報から、（Ａ３）および（Ａ４）のホップ数の変化および経路の評価値を得ることができる。
【０１６０】
また、本例におけるＡＣＫフレームは、図１０のＡＣＫフレーム３２１のように、ＬＤ、ＬＳ、ＧＤ、ＧＳ、ＦＩＤ、タイプの各フィールドを含むヘッダを有する。ＡＣＫフレーム３２１の具体例はＡＣＫフレーム３２２である。また、ＡＣＫフレーム３２２は、図５のステップＳ１０２でノード装置Ｄがノード装置Ａにデータフレーム３０３を送信したとき、ノード装置Ａがノード装置Ｄに返信するＡＣＫフレームである。
【０１６１】
ＡＣＫフレーム３２１のＬＤフィールドには、ＡＣＫフレーム３２１の送信の契機となったデータフレームを送信した隣接ノード装置のノードＩＤが指定される。よって、例えばＡＣＫフレーム３２２のＬＤフィールドには、ＡＣＫフレーム３２２をノード装置Ａが送信する契機となったデータフレーム３０３を送信した、ノード装置Ａの隣接ノード装置ＤのノードＩＤであるＤが指定される。
【０１６２】
ＡＣＫフレーム３２１のＬＳフィールドには、ＡＣＫフレーム３２１を送信するノード装置自身のノードＩＤが指定される。よって、ノード装置Ａが送信するＡＣＫフレーム３２２のＬＳフィールドには、ノード装置ＡのノードＩＤであるＡが指定される。
【０１６３】
また、ハローフレームと同様にＡＣＫフレームも転送されないので、本例におけるすべてのＡＣＫフレームでは、ＧＤフィールドに、ヌルを表す特殊な値０ｘ００００００が指定される。
【０１６４】
ＡＣＫフレーム３２１のＧＳフィールドとＦＩＤフィールドには、ＡＣＫフレーム３２１の送信の契機となったデータフレームのＧＳフィールドとＦＩＤフィールドの値がコピーされる。上記のように、ＧＳフィールドとＦＩＤフィールドの値の組み合わせにより、データフレームがネットワーク内で一意に識別される。よって、ＡＣＫフレーム３２１を送信するノード装置が、受信したデータフレームから値をコピーすることで、ＡＣＫフレーム３２１がどのデータフレームに対するものなのかを、ＡＣＫフレーム３２１を受信したノード装置において識別することが可能となる。
【０１６５】
よって、例えばデータフレーム３０３の受信を契機として送信されるＡＣＫフレーム３２２では、ＧＳフィールドとＦＩＤフィールドの値は、データフレーム３０３と同じく、それぞれＸとＦＸである。
【０１６６】
ＡＣＫフレーム３２１のタイプフィールドには、「ＡＣＫフレーム」というタイプを示す所定の定数が指定される。具体的には、「ＡＣＫフレーム」というタイプは、ＡＣＫフレーム３２２に例示するように所定の定数Ａにより表され、例えばＡ＝（１１）２でもよい。
【０１６７】
＜テーブルのフォーマット＞
図１１は、図２の重み付けテーブルの例を示す図である。図１１は、具体例として、図２のノード装置Ａの重み付けテーブル１０４Ａ−ｉ（１≦ｉ≦Ｍ）を示している。前述のように、「重み付けテーブル１０４」とは、ＧＤごとに管理される複数の重み付けテーブルの総称である。各重み付けテーブル１０４Ａ−ｉ（１≦ｉ≦Ｍ）は、対応するＧＤを記憶している。
【０１６８】
そして、各重み付けテーブル１０４−ｉは１つ以上のエントリを有し、各エントリは、最終更新時刻フィールドとＬＤフィールドと重みフィールドを有する。最終更新時刻フィールドには重みの学習のためにエントリが最後に更新された時刻が格納され、ＬＤフィールドには隣接ノード装置のノードＩＤが格納され、重みフィールドには当該隣接ノード装置に対応付けられた重みの値が格納される。
【０１６９】
図１のネットワーク１０では、ノード装置Ａにはノード装置Ｄ、Ｂ、およびＣが隣接している。したがって、重み付けテーブル１０４Ａ−Ｙは、これら３つの隣接ノード装置Ｄ、Ｂ、およびＣにそれぞれ対応する３つのエントリを有する。重み付けテーブルのエントリの内容は、次のとおりである。
【０１７０】
最終更新時刻フィールドには、エントリの最終更新時刻ＴＷＡ，Ｙ，Ｄが格納されている。
【０１７１】
ＬＤフィールドには、隣接ノード装置のノードＩＤが格納されている。たとえば、ＬＤがノードＤである場合には、ＬＤフィールドには「Ｄ」が格納される。
【０１７２】
重みフィールドには、隣接ノード装置に対応付けられる重みが格納されている。たとえば、ＧＤがノードＹであるデータフレームの送信におけるノード装置Ｄに対する重みは、ＷＡ，Ｙ，Ｄである。
【０１７３】
ＧＤがノードＢであるデータフレームの送信における各ＬＤに対する重みが格納されている重み付けテーブル１０４Ａ−Ｂのエントリの内容も同様である。
【０１７４】
なお、重み付けテーブル１０４は、同一のＧＤであれば、たとえＦＩＤとＧＳの組み合わせが異なるデータフレームを送信したとしても、送信の度に、送信先となったＬＤの重みが更新される。例えば、あるデータフレームの送信時に、リンク障害のため特定のＬＤの重みが大きくなっても（優先度が低くなっても）、すぐに別データフレーム（ＧＤとＬＤは同一）の送信で、リンク障害が解消されていて送信成功となれば、該ＬＤの重みは小さくなる（優先度は高くなる）。逆に、複数の異なるデータフレーム（ＧＤとＬＤは同一）が立て続けに、リンク障害のため送信失敗となれば、たとえ同一のＦＩＤとＧＳの組み合わせのデータフレームは１度しか送信を試していなくても、該当のＬＤの重みが最大値になってしまうことがある。
【０１７５】
図１２は、ノード装置Ａのバッファ部１０９−Ａ内のあるエントリを例示している。
バッファ部１０９は、受信部１０１が受信した個々のデータフレームにそれぞれ対応する複数のエントリを含む。そして、各エントリは、タイムアウト時刻と受信したデータフレームを含む。
【０１７６】
具体的には、図５のステップＳ１０２において、ノード装置Ｄからノード装置Ａがデータフレーム３０３を受信すると、バッファ部１０９−Ａには、タイムアウト時刻ＴＩ３，ｊとデータフレーム３０３とを含むエントリが作成される。図１２のタイムアウト時刻ＴＩ３，ｊは、ノード装置Ａが、データフレーム３０４を送信した後、データフレーム３０４に対するＡＣＫフレームの受信をいつまで待つのかを示す時刻である。つまり、ノード装置Ａは、タイムアウト時刻ＴＩ３，ｊまでにデータフレーム３０４に対するＡＣＫフレームをノード装置Ｂから受信することができなければ、タイムアウトして、ノード装置Ｂへのデータフレーム３０４の送信に失敗したと判断する。
【０１７７】
図１３は、図２の隣接ノード管理テーブル１０３の例を示す図である。隣接ノード管理テーブル１０３には、ノードＩＤフィールドと最終更新時刻フィールドがある。
【０１７８】
例えば、図１のネットワーク１０では、ノード装置Ｄにはノード装置Ｘ、Ａ、およびＥが隣接している。したがって、ノード装置Ｄの隣接ノード管理テーブル１０３−Ｄは、これら３つの隣接ノード装置Ｘ、Ａ、およびＥにそれぞれ対応する３つのエントリがある。そして、隣接ノード装置Ｎｉ（ｉ＝Ｘ、Ａ、Ｅ）に対応する各エントリにおいて、ノードＩＤフィールドには隣接ノード装置のノードＩＤが格納されており、最終更新時刻フィールドには、当該エントリが最後に更新された時刻が格納されている。
【０１７９】
図１４Ａ及び１４Ｂは、ＦＩＤ管理テーブル１０５の例を示す図である。図１４Ａ及び１４Ｂに示すように、ＦＩＤ管理テーブル１０５には、ＦＩＤ、ＧＳ、ＬＤ、ＯＬＳ、最終更新時刻の各フィールドがある。
【０１８０】
ＦＩＤ管理テーブル１０５におけるＦＩＤフィールドとＧＳフィールドは、データフレームを一意に識別するためのフィールドであり、受信したデータフレームのＦＩＤフィールドとＧＳフィールドから値がそれぞれコピーされる。
【０１８１】
ＦＩＤ管理テーブル１０５のＬＤフィールドには、ＦＩＤフィールドとＧＳフィールドの値により識別されるデータフレームを送信するために、最後にＬＤとして選択した隣接ノード装置のノードＩＤが格納される。
【０１８２】
また、ＦＩＤ管理テーブル１０５のＯＬＳフィールドには、ＦＩＤフィールドとＧＳフィールドの値により識別されるデータフレームを最初に受信したときに当該データフレームのＬＳフィールドに指定されていた隣接ノード装置のノードＩＤが格納される。ＯＬＳフィールドは、データフレームの転送のためにＬＤを選択するにあたって、ＬＤの候補の中からＯＬＳを除くためにも利用され、バックトラック動作のときのＬＤを決定するためにも利用される。
【０１８３】
そして、ＦＩＤ管理テーブル１０５の最終更新時刻フィールドには、エントリが最後に更新された時刻が格納される。
【０１８４】
図１４のＦＩＤ管理テーブル１０５は、図３のＤＲＡＭ２０４やフラッシュメモリ２０５により実現される。このＦＩＤ管理テーブル１０５は、以下の（ａ１）〜（ａ３）の各情報を対応付けて記憶する記憶手段の一例である。
【０１８５】
（ａ１）フレームを識別するフレーム識別情報
（ａ２）複数の隣接ノード装置のうちで、フレームの送信先であるノード装置を識別する送信先ノード識別情報
（ａ３）送信対象フレームを最初に送信してきたノード装置を識別する起源ノード識別情報
【０１８６】
なお、上記（ａ１）のフレームの例は、データフレームである。そして、フレーム識別情報の例は、ＧＳフィールドの値とＦＩＤフィールドの値の組み合わせである。
【０１８７】
また、上記（ａ２）のノード識別情報の具体例は、ＦＩＤ管理テーブル１０５のＬＤフィールドに格納される隣接ノード装置のノードＩＤであってもよい。
【０１８８】
（ａ３）の起源ノード識別情報の具体例は、ＦＩＤ管理テーブル１０５のＯＬＳフィールドに格納されるノードＩＤである。
【０１８９】
ノード装置１００がデータフレームを中継する場合には、ノード装置１００が最初に当該データフレームを受信したときの当該データフレームのＬＳフィールドの値が、ＦＩＤ管理テーブル１０５のＯＬＳフィールドに格納される。つまり、フレームを最初に送信してきたノード装置のノードＩＤが、ＯＬＳフィールドに格納される。
【０１９０】
また、ノード装置１００自身がＧＳとなる場合はＦＩＤ管理テーブル１０５のＯＬＳフィールドには自ノードＩＤが格納される。つまり、ノード装置１００自身が送信対象フレームを生成した場合、ＯＬＳフィールドには、ノード装置１００自身の識別情報である自ノードＩＤが格納される。換言すれば、ＯＬＳフィールドに格納されるノードＩＤは、ノード装置１００自身を中心としたホップ数１以下の範囲において、ノード装置１００が送信対象フレームの起源として認識するノード装置のノードＩＤである。
【０１９１】
図２の重み付けテーブル１０４は、図３のＤＲＡＭ２０４やフラッシュメモリ２０５により実現される。この重み付けテーブル１０４は、データフレームの最終宛先であるＧＤに対応付けて、複数の隣接ノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する記憶手段の一例である。
【０１９２】
送信可能性情報は、上記比較例では、具体的にはＬＤフィールドのノードＩＤと重みの値との組をそれぞれ含む、１つまたは複数のエントリで表されている。そして、送信可能性は、例えば「重みの値が１ならば送信不能であり、重みの値が１未満ならば送信可能である」というように表される。
【０１９３】
図２のデータフレーム処理部１１０は、例えば図３のＭＰＵ２０１とＤＲＡＭ２０４により実現され、送信可能性情報を更新する更新手段の一例である。受信部１０１などの受信手段が受信した受信フレームを識別するフレーム識別情報が、ＦＩＤ管理テーブル１０５などの記憶手段に（ａ１）のフレーム識別情報として記憶されている場合、更新手段としてのデータフレーム処理部１１０は、送信可能性情報を更新する。
【０１９４】
この場合に更新される送信可能性情報は、受信フレームに指定された最終宛先（つまりＧＤ）である受信フレーム宛先に対応付けられて、重み付けテーブル１０４などの記憶手段に記憶されている送信可能性情報である。送信可能性情報は、ＦＩＤ管理テーブル１０５などの記憶手段に、受信フレーム識別情報と対応付けられて記憶されている、（ａ２）の送信先隣接ノード識別情報により識別される第１の隣接ノード装置への送信可能性が「送信不能」を示すように、更新される。例えば、「ＦＩＤ管理テーブル１０５のＬＤフィールドと同じ値をＬＤフィールドに持つ、重み付けテーブル１０４のエントリにおいて、重みを１に設定する」という動作が、更新手段としてのデータフレーム処理部１１０により行われる。
【０１９５】
また、データフレーム処理部１１０と送信部１０２は、協働して、複数の隣接ノード装置の中から、送信可能な第２のノード装置を選択し、第２のノード装置へ受信フレームを送信する送信手段として機能する。送信手段の一部としてのデータフレーム処理部１１０は、受信フレーム宛先に対応付けられて重み付けテーブル１０４などの記憶手段に記憶されている送信可能性情報に基づいて、第２のノード装置を選択する。ここで、ＦＩＤ管理テーブル１０５などの記憶手段において、受信フレーム識別情報に対応付けられた（ａ３）の起源ノード識別情報として第３のノード装置が記憶されているとする。
【０１９６】
送信フレーム識別情報が、ＦＩＤ管理テーブル１０５などの記憶手段に（ａ１）のフレーム識別情報として記憶されている場合、送信手段としてのデータフレーム処理部１１０は、第３の隣接ノード装置を送信可能性情報によらず送信不能とみなす。つまり、データフレーム処理部１１０は、「ＯＬＳである隣接ノード装置は、重みの値によらず、送信不能である」と見なして、ＯＬＳである隣接ノード装置をＬＤの候補から除外する。そして、送信手段としてのデータフレーム処理部１１０は、第３の隣接ノード装置とは異なる、送信可能な第２の隣接ノード装置を選択する。
【０１９７】
また、データフレーム処理部１１０と送信部１０２は、協働してバックトラック手段としても機能する。バックトラック手段としてのデータフレーム処理部１１０と送信部１０２は、重み付けテーブル１０４などの記憶手段の送信可能性情報において、複数の隣接ノード装置の中に送信可能なものがなく、かつ受信フレーム識別情報がＦＩＤ管理テーブル１０５などの記憶手段に（ａ１）のフレーム識別情報として記憶されている場合に、第３のノード装置へ受信フレームを送信する。
【０１９８】
なお、ここで「複数の隣接するノード装置の中に送信可能なものがない」とは、「重みが１であるなど、送信可能性情報により送信不能と示されている隣接ノード装置か、上記のように送信可能性情報によらず送信不能と見なされている第３の隣接ノード装置しかない」という意味である。
【０１９９】
図１４Ａと図１４Ｂは、図５のステップＳ１０１〜Ｓ１１２での各ノード装置のＦＩＤ管理テーブル１０５を具体例として示している。以下、ステップＳ１０１〜Ｓ１１２がそれぞれ実行される時刻をＴＦ１０１〜ＴＦ１１２と表す。
【０２００】
ステップＳ１０１でノード装置Ｘがノード装置Ｄにデータフレームを送信するとき、ノード装置ＸはＦＩＤ管理テーブル１０５−Ｘに新たなエントリＥ１を作成する。
【０２０１】
そして、ノード装置Ｘは、エントリＥ１のＦＩＤフィールドとＧＳフィールドに、送信したデータフレームのＦＩＤとＧＳの値を設定する。
【０２０２】
ここで、データフレームのＧＳとＦＩＤの値は、前述のとおり、データフレームがネットワーク１内を転送されても書き換えられない。したがって、図５でネットワーク１内をステップＳ１０１〜Ｓ１１２で送信されるデータフレームのＦＩＤとＧＳの値は、図８のデータフレーム３０３および３０４と同じく、それぞれＦａとＸである。よって、ステップＳ１０１でノード装置Ｘは、エントリＥ１のＦＩＤフィールドとＧＳフィールドに、それぞれＦａとＸという値を設定する。なお、以下の各ステップＳ１０２〜Ｓ１１２で他のノード装置がそれぞれのＦＩＤ管理テーブル１０５のエントリのＦＩＤフィールドとＧＳフィールドに設定する値も、同じくＦａとＸである。よって、以下ではＦＩＤフィールドとＧＳフィールドに関する説明を省略する。
【０２０３】
また、ステップＳ１０１でノード装置Ｘは、ＬＤとして選択したノード装置ＤのノードＩＤであるＤを、エントリＥ１のＬＤフィールドに設定する。ＧＳとＦＩＤの値の組により一意に識別される、ある特定のデータフレームに関して、ＯＬＳとは、当該特定のデータフレームを最初に受信したときの当該特定のデータフレームのＬＳに指定されたノードＩＤで識別される隣接ノード装置のことである。
【０２０４】
しかしこのようにＯＬＳを定義すると、例えばノード装置ＸがＧＳとなってデータフレームを送信する場合に、ノード装置Ｘ自身にとっては、送信したデータフレームに関してＯＬＳが未定義となってしまう。そこで、以下ではＯＬＳの定義を拡張する。具体的には、「ノード装置Ｎｉ自身がＧＳとなってデータフレームを送信する場合には、当該データフレームに関するノード装置Ｎｉ自身にとってのＯＬＳとは、ノード装置Ｎｉ自身である」と定義する。換言すれば、ＯＬＳとは、ノード装置Ｎｉ自身が直接認識しているネットワークの範囲内において、ノード装置Ｎｉにとってデータフレームの起源として認識されるノード装置である。なおここで、「ノード装置Ｎｉ自身が直接認識しているネットワークの範囲」とは、ノード装置Ｎｉから見てホップ数１以下の範囲であり、具体的にはノード装置Ｎｉ自身と、ノード装置Ｎｉの隣接ノード装置のみが含まれる。
【０２０５】
以上の拡張されたＯＬＳの定義より、ステップＳ１０１でノード装置ＸがエントリＥ１のＯＬＳフィールドに設定する値は、ノード装置Ｘ自身のノードＩＤ（すなわちＸ）である。ノード装置Ｘは、もし今後ＧＳの値がＸでＦＩＤの値がＦａのデータフレームを受信することがあれば、以上のようにして作成したエントリＥ１に基づいて、「かつてノード装置Ｘ自身が送信したデータフレームを受信した」と認識することができる。
【０２０６】
また、ステップＳ１０１でノード装置Ｘは、現在時刻ＴＦ１０１をエントリＥ１の最終更新時刻フィールドに設定する。なお、以下の各ステップＳ１０２〜Ｓ１１２で他のノード装置がそれぞれのＦＩＤ管理テーブル１０５のエントリの最終更新時刻フィールドに設定する値は、同様に、各ステップＳ１０２〜Ｓ１１２が実行される時刻ＴＦ１０２〜ＴＦ１１２である。よって、以下では最終更新時刻フィールドに関する説明も省略する。
【０２０７】
そして、ステップＳ１０１でノード装置Ｘからデータフレームを受信したノード装置Ｄは、ステップＳ１０２でノード装置Ａにデータフレームを送信するときにＦＩＤ管理テーブル１０５−Ｄに新たなエントリＥ２を作成する。そして、ノード装置ＤはエントリＥ２において、ＯＬＳフィールドにはＸと設定し、ＬＤフィールドにはＡと設定する。
【０２０８】
続いて、ステップＳ１０２でノード装置Ｄからデータフレームを受信したノード装置Ａは、ステップＳ１０３でノード装置Ｂにデータフレームを送信するときにＦＩＤ管理テーブル１０５−Ａに新たなエントリＥ３を作成する。そして、ノード装置ＡはエントリＥ３において、ＯＬＳフィールドにはＤと設定し、ＬＤフィールドにはＢと設定する。
【０２０９】
続いて、ステップＳ１０３でノード装置Ａからデータフレームを受信したノード装置Ｂは、ステップＳ１０４でノード装置Ｙにデータフレームを送信するときにＦＩＤ管理テーブル１０５−Ｂに新たなエントリＥ４を作成する。そして、ノード装置ＢはエントリＥ４において、ＯＬＳフィールドにはＡと設定し、ＬＤフィールドにはＹと設定する。
【０２１０】
ところが、ステップＳ１０４での送信は、ノード装置ＢとＹの間のリンクの障害のために失敗する。すなわち、ノード装置Ｂは、ノード装置ＹからＡＣＫフレームを受信することができないため、タイムアウトする。その結果、ノード装置Ｂは、ステップＳ１０５のように、他の隣接ノード装置Ｃを次のＬＤとして再選択し、ノード装置Ｃにデータフレームを送信する。
【０２１１】
ここで、ステップＳ１０４とＳ１０５でそれぞれ送信されるデータフレームは、ＦＩＤの値がＦａでありＧＳの値がＸであるから、同一のデータフレームである。したがって、ステップＳ１０５でノード装置Ｂは、新たなエントリを作成するのではなく、既存のエントリＥ４を更新する。具体的には、ステップＳ１０５でノード装置Ｂは、エントリＥ４において、ＬＤフィールドの値をＣに上書きする。なお、ＧＳの値がＸでＦＩＤの値がＦａである同じデータフレームをノード装置Ｂが何度送信しようとも、「ノード装置Ｂが当該データフレームを最初に受信したのはノード装置Ａからである」という事実は変わらない。よって、エントリＥ４のＯＬＳフィールドの値は、書き換えられることはなく、Ａのままである。
【０２１２】
続いて、ステップＳ１０５でノード装置Ｂからデータフレームを受信したノード装置Ｃは、ステップＳ１０６でノード装置Ａにデータフレームを送信するときにＦＩＤ管理テーブル１０５−Ｃに新たなエントリＥ５を作成する。そして、ノード装置ＣはエントリＥ５において、ＯＬＳフィールドにはＢと設定し、ＬＤフィールドにはＡと設定する。
【０２１３】
そして、ステップＳ１０６でノード装置Ｃからデータフレームを受信したノード装置Ａは、受信したデータフレームのＧＳとＦＩＤの値をキーにしてＦＩＤ管理テーブル１０５−Ａを検索し、エントリＥ３を見つける。エントリＥ３が見つかったことから、ノード装置Ａは、「ノード装置Ａ自身がかつてステップＳ１０３で送信したのと同一のデータフレームをステップＳ１０６で受信した」と認識することができる。
【０２１４】
したがって、ノード装置Ａは、次のステップＳ１０７でデータフレームをノード装置Ｃに送信するに際して、ＦＩＤ管理テーブル１０５−Ａに新たなエントリを作成するのではなく、既存のエントリＥ３を更新する。具体的には、ステップＳ１０７でノード装置Ａは、エントリＥ３において、ＬＤフィールドの値をＣに上書きする。なお、エントリＥ３のＯＬＳフィールドの値は書き換えられることはなく、Ｄのままである。
【０２１５】
すると、ステップＳ１０７でノード装置Ａからデータフレームを受信したノード装置Ｃは、受信したデータフレームのＧＳとＦＩＤの値をキーにしてＦＩＤ管理テーブル１０５−Ｃを検索し、エントリＥ５を見つける。エントリＥ５が見つかったことから、ノード装置Ｃは、「ノード装置Ｃ自身がかつてステップＳ１０６で送信したのと同一のデータフレームをステップＳ１０７で受信した」と認識することができる。
【０２１６】
したがって、ノード装置Ｃは、次のステップＳ１０８でデータフレームをノード装置Ｂに送信するに際して、ＦＩＤ管理テーブル１０５−Ｃに新たなエントリを作成するのではなく、既存のエントリＥ５を更新する。具体的には、ステップＳ１０８でノード装置Ｎ５は、エントリＥ５において、ＬＤフィールドの値をＢに上書きする。なお、エントリＥ５のＯＬＳフィールドの値は書き換えられることはなく、Ｂのままである。
【０２１７】
すると、ステップＳ１０８でノード装置Ｃからデータフレームを受信したノード装置Ｂは、受信したデータフレームのＧＳとＦＩＤの値をキーにしてＦＩＤ管理テーブル１０５−Ｂを検索し、エントリＥ４を見つける。エントリＥ４が見つかったことから、ノード装置Ｂは、「ノード装置Ｂ自身がかつてステップＳ１０５で送信したのと同一のデータフレームをステップＳ１０８で受信した」と認識することができる。
【０２１８】
したがって、ノード装置Ｂは、次のステップＳ１０９でデータフレームをノード装置Ａに送信するに際して、ＦＩＤ管理テーブル１０５−Ｂに新たなエントリを作成するのではなく、既存のエントリＥ４を更新する。具体的には、ステップＳ１０９でノード装置Ｂは、エントリＥ４において、ＬＤフィールドの値をＡに上書きする。なお、エントリＥ４のＯＬＳフィールドの値は書き換えられることはなく、Ａのままである。
【０２１９】
すると、ステップＳ１０９でノード装置Ｂからデータフレームを受信したノード装置Ａは、受信したデータフレームのＧＳとＦＩＤの値をキーにしてＦＩＤ管理テーブル１０５−Ａを検索し、エントリＥ３を見つける。エントリＥ３が見つかったことから、ノード装置Ａは、「ノード装置Ａ自身がかつてステップＳ１０３で送信したのと同一のデータフレームをステップＳ１０９で受信した」と認識することができる。
【０２２０】
したがって、ノード装置Ａは、次のステップＳ１１０でデータフレームをノード装置Ｄに送信するに際して、ＦＩＤ管理テーブル１０５−Ａに新たなエントリを作成するのではなく、既存のエントリＥ３を更新する。具体的には、ステップＳ１１０でノード装置Ａは、エントリＥ３において、ＬＤフィールドの値をＤに上書きする。なお、エントリＥ３のＯＬＳフィールドの値は書き換えられることはなく、Ｄのままである。
【０２２１】
すると、ステップＳ１１０でノード装置Ａからデータフレームを受信したノード装置Ｄは、受信したデータフレームのＧＳとＦＩＤの値をキーにしてＦＩＤ管理テーブル１０５−Ｄを検索し、エントリＥ２を見つける。エントリＥ２が見つかったことから、ノード装置Ｎ２は、「ノード装置Ｄ自身がかつてステップＳ１０２で送信したのと同一のデータフレームをステップＳ１１０で受信した」と認識することができる。
【０２２２】
したがって、ノード装置Ｄは、次のステップＳ１１１でデータフレームをノード装置Ｅに送信するに際して、ＦＩＤ管理テーブル１０５−Ｄに新たなエントリを作成するのではなく、既存のエントリＥ２を更新する。具体的には、ステップＳ１１１でノード装置Ｄは、エントリＥ２において、ＬＤフィールドの値をＥに上書きする。なお、エントリＥ２のＯＬＳフィールドの値は書き換えられることはなく、Ｘのままである。
【０２２３】
そして、ステップＳ１１１でノード装置Ｄからデータフレームを受信したノード装置Ｅは、ステップＳ１１２でノード装置Ｙにデータフレームを送信するときにＦＩＤ管理テーブル１０５−Ｅに新たなエントリＥ６を作成する。そして、ノード装置ＥはエントリＥ６において、ＯＬＳフィールドにはＤと設定し、ＬＤフィールドにはＹと設定する。
＜データフレームの送受信処理＞
図１５〜２０を参照しながら、アドホックネットワーク１０のノード装置１００におけるデータフレームの送信動作を詳細に説明する。ここでは、図１７に示すようなアドホックネットワーク４０を想定する。そして、ノードＳからノードＧに向けてデータフレームを始めて送信する場合を考える。
【０２２４】
図１５は、グローバルソース（ＧＳ）であるノード装置Ｓにおけるデータフレームの送信処理の概略を示す図である。
【０２２５】
ステップＳ３０１では、データフレーム処理部１１０はデータフレーム４０１を作成する。より詳細には、データフレームのタイプフィールドにＤＡＴＡを、長さフィールドに長さを、ペイロードフィールドにデータを設定する。また、ＧＳおよびＬＳに自ノードのＩＤである「Ｓ」を設定する。図１５では、ＧＳおよびＬＳにはノードＳのＩＤである「Ｓ」が設定される。また、ＧＤには、宛先ノードのＩＤである「Ｇ」を設定する。
【０２２６】
次のステップＳ３０２では、ＬＤを選択するために、重み付けテーブル１０４を検索し、ＧＤがノードＧである重み付けテーブルを検索し、重みの値が最も小さい隣接ノードをＬＤとして選択する。図１７の場合は、ノードＳに隣接するのはノードＡだけなので、データフレーム４０１のＬＤとしてＡが選択される。
【０２２７】
そして、ステップＳ３０３で、データフレーム４０１中のＬＤフィールドにノードＡのＩＤである「Ａ」が設定される。
【０２２８】
次に、ステップＳ３０４で、ＦＩＤ生成部１１３から、送信したいデータフレームのＦＩＤ（Ｆｒａｍｅ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）であるＦＩＤ０を取得する。
【０２２９】
ステップＳ３０５では、ステップＳ３０４で取得したＦＩＤを、データフレーム４０１のＦＩＤフィールドに設定する。
【０２３０】
ステップＳ３０６では、ＦＩＤ管理テーブル１０５にデータフレーム４０１の情報を登録する。
【０２３１】
ステップＳ３０７では、ループ検知フラグフィールドＬにループ検知フラグの値を格納する。ここでは、デフォルト値Ｌ＝１が格納されるとする。
【０２３２】
最後にノードＳは、このようにして生成されたデータフレーム４０１をＬＤであるノードＡに向けて送信する。
【０２３３】
図１６は、図１７のネットワーク４０のノードＢにおけるデータフレームの受信後の処理を模式的に表す図である。
【０２３４】
図１８は、本実施形態における、ノード装置のデータフレームの転送処理を示している。
【０２３５】
本実施形態では、図１６に示されているように、ノード装置１００は、ハローフレーム７０１を送受信する。
【０２３６】
具体的には、ノード装置１００のハローフレーム生成部１１２は、ステップＳ８０１でハローフレーム７０１を生成する。そして、ステップＳ８０２で、送信部１０２からハローフレーム７０１を送信する。
【０２３７】
また、ノード装置１００は他のノード装置からのハローフレーム７０１を受信する。より詳細には、ステップＳ８０３でノード装置１００の受信部１０１は、他のノード装置からのハローフレーム７０１を受ける。受けたハローフレーム７０１は、フレーム分岐処理部１０６を介してリンク管理部１０８に送られる。ハローフレーム７０１の受信によって、ノード装置１００は、ある経路におけるホップ数の変化や、経路の評価値(スコア)が変化など、あるノードまでの経路に関する情報を取得することができる。
【０２３８】
データフレーム５０１を受信した後の処理は、図１８のステップＳ２０２から始まる。データフレームを受信した後の処理の間、Ｓ９００で示されているように、データフレーム処理部１１０は、計時手段を用いて、処理の時刻をカウントする。
【０２３９】
ステップＳ２０２では、受信したデータフレームのＬＤの値が自ノードのＩＤか否かを判定する。もし、この判定の結果がＮｏ、即ち否定的なものであるあったなら、そのデータフレームは受信すべきものではないので、ステップＳ２０４でフレームの廃棄をする。
【０２４０】
ステップＳ２０２の判定の結果がＹｅｓ、即ち肯定的なものであるなら、ノードＢはＡＣＫフレームを送信元のノードＡに送信する。
【０２４１】
次のステップＳ２０８では、受信したデータフレームのＧＤの値が自ノードのＩＤであるか否かを判定する。もし、この判定の結果がＹｅｓであるなら、ステップＳ２１０に進み、ステップＳ２１０で上位層処理部１１１に通知する。そして、上位層処理部１１１が、ノード装置がＧＤである場合に、データフレームにペイロードとして含まれる上位層のＰＤＵを処理する。
【０２４２】
ステップＳ２０８の判定の結果がＮｏであるなら、ステップＳ４００に進む。
ステップＳ４００では、受信したデータフレームのループ検知フラグＬが「０」、即ち、ループ検知のための処理をスキップするように設定されているか否かを判定する。このステップＳ４００における処理は、比較例にはなかったものであり、図１６の（１）として示されている通り、ノード装置のデータフレーム処理部１１０で処理される。
【０２４３】
ステップＳ４００での判定の結果がＹｅｓ、即ちループ検知フラグＬが「０」であり、ループ検知のための処理をスキップするように設定されている場合には、処理はステップＳ２１６に進む。
【０２４４】
ステップＳ４００での判定の結果がＮｏ、即ちループ検知フラグＬが「１」であり、ループ検知のための処理を行うように設定されている場合には、処理はステップＳ２１２に進む。
【０２４５】
ステップＳ２１２では、受信したデータフレームのＧＳとＦＩＤの値に基づいてＦＩＤ管理テーブル１０５を検索する。
【０２４６】
そして、次のステップＳ２１４では、ＦＩＤ管理テーブル１０５にエントリがあるか否かを判定する。
【０２４７】
ステップＳ２１４〜Ｓ２１６の処理は図１６の（２）で示されている。即ち、データフレームのＧＳおよびＦＩＤフィールドから値を読み出し、その値をキーにＦＩＤ管理テーブル１０５を検索する。そして、検索結果を判定する。
【０２４８】
ステップＳ２１４の判定の結果がＮｏであるなら、ステップＳ２１６に進む。ステップＳ２１６では、受信したデータフレームのＧＤの値をキーに重み付けテーブル１０４を検索する。
【０２４９】
ステップ２１８では、データフレームのＧＤの値が重み付けテーブル１０４のエントリにヒットするか否かを判定する。
【０２５０】
ステップ２１８の判定の結果がＹｅｓであれば、ステップＳ２２０に進み、重み付けテーブル１０４のエントリの調整処理を行う。この場合には、ノードＧをＧＤとするデータフレームの送信に際して、ＬＤとなるノードは前回の送信時から変更されるかも知れないし、同じノードが選択されるかも知れない。ステップＳ２２０の処理が終了すると、次のステップＳ４０２では、転送先が「変更あり」または「変更なし」であることを示す情報を記憶する。この情報はデータフレーム処理部１１０に記憶される。ステップＳ４０２の処理が終了すると、ステップＳ２２８に進む。
【０２５１】
ステップ２１８の判定の結果がＮｏであれば、ステップＳ２２２に進み、重み付けテーブル１０４に新たなエントリを登録する。この場合には、ノードＧをＧＤとするデータフレームの送信に際して、ＬＤとなるノードはこれまでノードＢからは送信されたことがない新規のノードとなる。ステップＳ２２２の処理が終了すると、次のステップＳ４０４では、転送先が「新規」であることを示す情報を記憶する。この情報はデータフレーム処理部１１０に記憶される。ステップＳ４０４の処理が終了すると、ステップＳ２２８に進む。
【０２５２】
ステップＳ２１４の判定の結果がＹｅｓであるなら、ステップＳ２２４に進む。この場合は、今回受信したデータフレームは、過去にノードＢから送信されたものである。よって、ループ経路が形成されている可能性がある。
【０２５３】
ステップＳ２２４では、受信したデータフレームのＧＤの値をキーに重み付けテーブル１０４を検索する。今の場合は、受信したデータフレームのＧＤの値は重み付けテーブル１０４に登録されているので、ステップＳ２２６で重み付けテーブル１０４に登録されているＬＤに対する重みを最大値に変更する。また、この場合には、ノードＧをＧＤとするデータフレームの送信に際して、ＬＤとなるノードは前回の送信時から変更される。ステップＳ２２６の処理が終了すると、ステップＳ４０６で、転送先は「変更あり」であることを示す情報を記憶する。この情報はデータフレーム処理部１１１０に記憶される。ステップＳ４０６の処理が終了すると、ステップＳ２２８に進む。
【０２５４】
ステップＳ２１６〜Ｓ２２６、Ｓ４０２〜Ｓ４０６の処理は図１６の（３）で示されている。即ち、データフレームのＧＤから値を読み出し、その値をキーに重み付けテーブル１０４を検索する。そして、検索結果を判定し、その結果により重み付けテーブル１０４の登録/更新と、送信先の変更の有無を認識する。
【０２５５】
ステップＳ２２８では、現時点での重み付けテーブルを参照しながら、転送先ノード、即ちＬＤを決定して取得する。
【０２５６】
ステップＳ４０８では、受信データフレームのループ検知フラグＬの更新処理を行う。ステップＳ４０８の処理は図１６の（４）で示されている。
【０２５７】
次のステップＳ２３０では、受信したデータフレームのＬＤおよびＬＳの更新処理を行う。具体的には、受信したデータフレームでは、ＬＤはノードＢのＩＤである「Ｂ」であったが、ノードＢの唯一の隣接ノードである「Ｄ」に変更する。また、ＬＳは、「Ａ」から「Ｂ」に変更する。ステップＳ２２８およびＳ２３０の処理はそれぞれ、図１６の（５）および（６）で示されている。
【０２５８】
ステップＳ２３０の次のステップＳ４１０では、受信したデータフレームのループ検知フラグＬが「０」、即ち、ループ検知のための処理をスキップするように設定されているか否かを判定する。このステップの処理は、ノード装置のデータフレーム処理部１１０で処理される。
【０２５９】
ステップＳ４１０での判定の結果がＹｅｓ、即ちループ検知フラグＬが「０」であり、ループ検知のための処理をスキップするように設定されている場合には、処理はステップＳ２４０に進む。
【０２６０】
ステップＳ４００での判定の結果がＮｏ、即ちループ検知フラグＬが「１」であり、ループ検知のための処理を行うように設定されている場合には、処理はステップＳ２３２に進む。
【０２６１】
次のステップＳ２３２では、受信したデータフレームのＧＳとＦＩＤをキーにＦＩＤ管理テーブル１０５を検索する。次に、ステップＳ２３４でＦＩＤ管理テーブル１０５のエントリに該当するものが存在するか否かを判定する。
【０２６２】
ステップＳ２３４の判定の結果がＹｅｓであれば、ステップＳ２３８でＦＩＤ管理テーブル１０５の更新処理を行ったあと、ステップＳ２４０に進む。ステップＳ２３４の判定の結果がＮｏであれば、ステップＳ２３６でＦＩＤ管理テーブル１０５に新規登録処理を行ったあと、ステップＳ２４０に進む。このステップＳ２３２〜Ｓ２３８の処理は、図１６の（７）として示されている。
【０２６３】
ステップＳ２４０では、データフレームの送信処理を行う。このステップＳ２４０の処理は、図１６の（８）として示されている。
【０２６４】
このように、「ループ検知フラグ」が０の場合は、受信処理はループ検知の判定を実施せず、送信処理は「ＦＩＤ管理テーブル」の登録処理を行わないので、ノードのＣＰＵリソースの低負荷化とメモリの有効活用があり、これにより転送効率を改善することができる。
【０２６５】
＜データフレームの転送の経路変更＞
図１９および図２０を用いて、データフレームの転送の経路変更について説明する。
【０２６６】
図１９および図２０に示されているネットワーク２０は、ノードＳ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇで構成される。ノードＳはノードＡとのみ隣接している。ノードＡは、ノードＳ、ノードＢおよびノードＣと隣接する。即ち、ノードＳとノードＡの間にリンクＬＳＡ、ノードＡとノードＢの間にリンクＬＡＢ、ノードＡとノードＣの間にリンクＬＡＣが存在する。ノードＢは、ノードＡとノードＤと隣接し、ノードＣはノードＡ、ノードＤ、およびノードＦと隣接する。即ち、ノードＢとノードＤの間にリンクＬＢＤ、ノードＣとノードＤの間にリンクＬＣＤ、ノードＣとノードＦの間にリンクＬＣＦが存在する。ノードＦは、ノードＣのほかにノードＥと隣接する。つまり、ノードＦとノードＥの間にリンクＬＥＦが存在する。ノードＤはノードＢとノードＣのほか、ノードＥと隣接する。つまり、ノードＤとノードＥの間にはリンクＬＤＥが存在する。ノードＧはノードＥのみと隣接する。即ち、ノードＥとノードＧの間にリンクＬＥＧが存在する。前例と同様に、リンクは有線リンクでも無線リンクでも良い。また、ネットワーク２０のリンクの一部が無線リンクであり、残りが有線リンクでも良い。
【０２６７】
図１９では、リンクＬＳＡ、リンクＬＡＢ、リンクＬＢＤ、リンクＬＤＥ、リンクＬＥＧが安定しているとする。すなわち、経路＜Ｓ、Ａ、Ｂ、Ｄ、Ｅ、Ｇ＞は安定経路である。このとき、各リンク間でのデータフレームの転送は、データフレームのループ検知フラグＬをＬ＝０、すなわちループ検知処理をしないという設定の下に行われる。
【０２６８】
図２０では、図１９に示されている状況から、リンクＬＡＢが何らかの理由で不安定になった場合の各リンクにおけるループ検知フラグの値の様子である。
【０２６９】
ノードＡはノードＳからループ検知フラグＬの値が「０」のデータフレームを受信する。すると、ループ検知処理は行わずに転送先を決める。このとき、ノードＡは転送先としてノードＢを選択するとする。
【０２７０】
ノードＡからノードＢに向けて送信されたデータフレームは、リンクＬＡＢが不安定であるがゆえに、ノードＢには到達しない。そこで、ノードＡは、データフレームの送信先として、残っている隣接ノードであるＣを選択する。経路変更に伴って、ループ検知フラグLを「１」に変更し、「ＦＩＤ管理テーブル」に登録したのち、データフレームをノードＣに転送する。
【０２７１】
ノードＣは、ループ検知フラグＬが「１」のデータフレームを受信したので、「ＦＩＤ管理テーブル」を参照してループ検知処理を行い、この結果、ループ経路ではないため、ＧＤであるノードＧ用の「重み付けテーブル」を参照してＬＤとしてノードＤを選択する。このとき、ノードＣはノードＧにデータフレームを転送した実績が無いためループ検知フラグLを「１」とし、「ＦＩＤ管理テーブル」に登録したのち、データフレームをノードＤに転送する。
【０２７２】
ノードＤは、ループ検知フラグLが「１」のデータフレームを受信したので、「ＦＩＤ管理テーブル」を参照してループ検知処理を行い、この結果ループではないため、ＧＤがノードＧ用の「重み付けテーブル」を参照して転送先をＥに決定する。このとき、ノードＤはノードＧにデータフレームを転送した実績があり、経路が安定しているためループ検知フラグL を「０」とし、「ＦＩＤ管理テーブル」に登録は行わないで、データフレームをノードＥに転送する。
【０２７３】
本例の場合、ループ検知の機能が働くのはノードＡの送信処理の部分と、ノードＣの受信処理と送信処理と、ノードＤの受信処理のみに限定される。
【０２７４】
（比較例）
図２１〜２３を参照して、上記実施形態の比較例について説明する。
【０２７５】
尚、本例の説明において、上記実施形態に記載のネットワークやネットワークを構成するノード装置の構成要素と同一または類似の機能を有するものについては、同一または類似の参照符号を付与し、詳細な説明を省略する。また、ノード装置における処理についても、同一または類似の処理については、同一または類似の参照符号を付与し、詳細な説明を省略する。
【０２７６】
本比較例においても、アドホックネットワークを構成するノード装置は、前述のノード装置１００と類似の構成を有する。即ち、本実施形態のノード装置１１００も、データフレーム処理部１１１０の処理を除けば、図２及び３に示されているようなブロック図およびハードウェア構成を有する。
【０２７７】
本例のノード装置のデータフレーム処理部では、図８に示されているデータフレームのうち、ループ検知フラグフィールドＬがないデータフレーム１５０１を扱う。
【０２７８】
図２１は、本実施形態で用いられるデータフレーム１５０１の構成例である。本例におけるデータフレーム３０２は、ＬＤ、ＬＳ、ＧＤ、ＧＳ、ＦＩＤ、タイプ、長さの各フィールドを持つヘッダおよびペイロードを含んでいる。
＜データフレームを受信した後の処理＞
次に、図２２および２３を参照しながら、データフレームの受信処理について説明する。図２２は、データフレームを受信した後の処理を示すフローチャートである。図２３は、ノードＢにおける処理を模式的に表す図である。
【０２７９】
データフレームを受信した後の処理は、ステップＳ２０２から始まる。ステップＳ２０２では、受信したデータフレームのＬＤの値が自ノードのＩＤか否かを判定する。もし、この判定の結果がＮｏ、即ち否定的なものであるあったなら、そのデータフレームは受信すべきものではないので、ステップＳ２０４でフレームの廃棄をする。
【０２８０】
ステップＳ２０２の判定の結果がＹｅｓ、即ち肯定的なものであるなら、ノードＢはＡＣＫフレームを送信元のノードＡに送信する。
【０２８１】
次のステップＳ２０８では、受信したデータフレームのＧＤの値が自ノードのＩＤであるか否かを判定する。もし、この判定の結果がＹｅｓであるなら、ステップＳ２１０に進み、ステップＳ２１０で上位層処理部１１１に通知する。そして、上位層処理部１１１が、ノード装置がＧＤである場合に、データフレームにペイロードとして含まれる上位層のＰＤＵを処理する。
【０２８２】
ステップＳ２０８の判定の結果がＮｏであるなら、Ｓ２１２に進む。
ステップＳ２１２では、受信したデータフレームのＧＳとＦＩＤの値に基づいてＦＩＤ管理テーブル１０５を検索する。
【０２８３】
そして、次のステップＳ２１４では、ＦＩＤ管理テーブル１０５にエントリがあるか否かを判定する。
【０２８４】
ステップＳ２１４〜Ｓ２１６の処理は図２３の（１）で示されている。即ち、データフレームのＧＳおよびＦＩＤフィールドから値を読み出し、その値をキーにＦＩＤ管理テーブル１０５を検索する。そして、検索結果を判定する。
【０２８５】
ステップＳ２１４の判定の結果がＮｏであるなら、ステップＳ２１６に進む。ステップＳ２１６では、受信したデータフレームのＧＤの値をキーに重み付けテーブル１０４を検索する。
【０２８６】
ステップ２１８では、データフレームのＧＤの値が重み付けテーブル１０４のエントリにヒットするか否かを判定する。
【０２８７】
ステップ２１８の判定の結果がＹｅｓであれば、ステップＳ２２０に進み、重み付けテーブル１０４のエントリの調整処理を行う。この場合には、ノードＧをＧＤとするデータフレームの送信に際して、ＬＤとなるノードは前回の送信時から変更されるかも知れないし、同じノードが選択されるかも知れない。ステップＳ２２０の処理が終了すると、ステップＳ２２８に進む。
【０２８８】
ステップ２１８の判定の結果がＮｏであれば、ステップＳ２２２に進み、重み付けテーブル１０４に新たなエントリを登録する。この場合には、ノードＧをＧＤとするデータフレームの送信に際して、ＬＤとなるノードはこれまでノードＢからは送信されたことがない新規のノードとなる。ステップＳ２２２の処理が終了すると、ステップＳ２２８に進む。
【０２８９】
ステップＳ２１４の判定の結果がＹｅｓであるなら、ステップＳ２２４に進む。この場合は、今回受信したデータフレームは、過去にノードＢから送信されたものである。よって、ループ経路が形成されている可能性がある。
【０２９０】
ステップＳ２２４では、受信したデータフレームのＧＤの値をキーに重み付けテーブル１０４を検索する。今の場合は、受信したデータフレームのＧＤの値は重み付けテーブル１０４に登録されているので、ステップＳ２２６で重み付けテーブル１０４に登録されているＬＤに対する重みを最大値に変更する。また、この場合には、ノードＧをＧＤとするデータフレームの送信に際して、ＬＤとなるノードは前回の送信時から変更される。ステップＳ２２６の処理が終了すると、ステップＳ２２８に進む。
【０２９１】
ステップＳ２１６〜Ｓ２２６の処理は図２３の（２）で示されている。即ち、データフレームのＧＤから値を読み出し、その値をキーに重み付けテーブル１０４を検索する。そして、検索結果を判定し、その結果により重み付けテーブル１０４の登録/更新を行う。
【０２９２】
ステップＳ２２８では、現時点での重み付けテーブルを参照しながら、転送先ノード、即ちＬＤを決定する。
【０２９３】
ステップＳ２３０では、受信したデータフレームのＬＤおよびＬＳの更新処理を行う。具体的には、受信したデータフレームでは、ＬＤはノードＢのＩＤである「Ｂ」であったが、ノードＢの唯一の隣接ノードである「Ｄ」に変更する。また、ＬＳは、「Ａ」から「Ｂ」に変更する。ステップＳ２２８〜Ｓ２３０の処理は、図２３の（３）および（４）で示されている。
【０２９４】
ステップＳ２３０の次のステップＳ２３２では、受信したデータフレームのＧＳとＦＩＤをキーにＦＩＤ管理テーブル１０５を検索する。次に、ステップＳ２３４でＦＩＤ管理テーブル１０５のエントリに該当するものが存在するか否かを判定する。
【０２９５】
ステップＳ２３４の判定の結果がＹｅｓであれば、ステップＳ２３８でＦＩＤ管理テーブル１０５の更新処理を行ったあと、ステップＳ２４０に進む。ステップＳ２３４の判定の結果がＮｏであれば、ステップＳ２３６でＦＩＤ管理テーブル１０５に新規登録処理を行ったあと、ステップＳ２４０に進む。ステップＳ２３２〜Ｓ２３８の処理は図２３の（５）で示されている。
【０２９６】
ステップＳ２４０ではデータフレームをノードＤに向けて送信する。
このように、本例におけるデータフレームの受信処理では、図１８のＳ４００、Ｓ４１０の処理が抜け落ちている。そのため、データフレームが安定化経路に沿って転送されるか否かに関わりなく、常に各ノードでループ経路検知処理を行うことになる。
【０２９７】
上記のようなノード装置から構成されるネットワークでは、データ通信量が多い場合は、中継するノードのＦＩＤ管理テーブルのリソースや、ＦＩＤ管理テーブルの検索、登録、削除の処理時間のＣＰＵリソースに対する影響が大きくなり、更に、データの中継ノードの転送回数示すホップ数が多くなる場合、データのスループットに影響を与えてしまう。
【０２９８】
＜作用効果＞
図２４は、本実施形態と比較例に示したノード装置を用いたときのスループットの比較のグラフである。
【０２９９】
図２４において、縦軸はスループットで、横軸はホップ（ＨＯＰ）数である。このグラフによると、ノードを経由する度に時間がかかり、全体的なスループットは低下する事を示している。
【０３００】
図中の遅延の意味は、ループ検知フラグが「１」で転送を行ったノードの割合である。すなわち、１００％であれば、比較例の場合と同等になる。このグラフから、遅延ノードの割合が少ない程、また、ホップ数が大きくなる程、スループットが向上する事がわかる。
【図１】
2013042209.tif 000003
【図２】
2013042209.tif 000004
【図３】
2013042209.tif 000005
【図４】
2013042209.tif 000006
【図５】
2013042209.tif 000007
【図６】
2013042209.tif 000008
【図７】
2013042209.tif 000009
【図８】
2013042209.tif 000010
【図９】
2013042209.tif 000011
【図１０】
2013042209.tif 000012
【図１１】
2013042209.tif 000013
【図１２】
2013042209.tif 000014
【図１３】
2013042209.tif 000015
【図１４Ａ】
2013042209.tif 000016
【図１４Ｂ】
2013042209.tif 000017
【図１５】
2013042209.tif 000018
【図１６】
2013042209.tif 000019
【図１７】
2013042209.tif 000020
【図１８Ａ】
2013042209.tif 000021
【図１８Ｂ】
2013042209.tif 000022
【図１８Ｃ】
2013042209.tif 000023
【図１９】
2013042209.tif 000024
【図２０】
2013042209.tif 000025
【図２１】
2013042209.tif 000026
【図２２Ａ】
2013042209.tif 000027
【図２２Ｂ】
2013042209.tif 000028
【図２３】
2013042209.tif 000029
【図２４】
2013042209.tif 000030
【手続補正書】
【提出日】平成26年3月28日(2014.3.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、
前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、
前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されている場合のみ、第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、
を含むことを特徴とするノード装置。
【請求項２】
過去にフレームを前記送信先ノード装置に向けて送信してからの時間を計時する計時手段、
をさらに含み、
前記更新手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、送信手段が前記フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項３】
前記受信フレームの前記最終宛先までの経路に関する情報を取得する経路情報取得手段、
をさらに含み、
前記第２の記憶手段が記憶する送信可能性情報には、前記フレームの前記最終宛先までの経路に関する情報が含まれており、
前記フレームの前記最終宛先までの経路に関する情報が変化したときに、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項４】
前記フレームの前記最終宛先までの経路に関する情報は、ホップ数であることを特徴とする請求項３に記載のノード装置。
【請求項５】
前記フレームの前記最終宛先までの経路に関する情報は、前記経路の品質に関する情報であることを特徴とする請求項３に記載のノード装置。
【請求項６】
前記送信先ノード装置への前記フレームの送信において、前回の送信の際に、前記更新手段による前記送信先ノード装置への前記送信可能性の変更を経験している場合には、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項７】
前記送信先ノード装置への前記フレームの送信において、前記送信先フレームが前記最終宛先で指定されるノード装置の場合は、前記送信手段は、前記受信フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行わないように前記経路安定指標を変更した後、前記送信フレームを送信する、
ことを特徴とする請求項１に記載のノード装置。
【請求項８】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信するステップと、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先である前記隣接するノード装置の一つを識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けるステップと、
前記フレームが最終的に届けられる前記複数のノード装置の一つを識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を取得するステップと、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定するステップと、
経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に前記フレーム識別情報として記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に前記フレーム識別情報として記憶されている場合のみ、第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新するステップと、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択するステップと、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信するステップと、
を備えることを特徴とするデータ転送方法。
【手続補正書】
【提出日】平成26年12月16日(2014.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、
前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、
前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されている場合のみ、前記第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、
を含み、
前記フレームに含まれている経路安定指標は、前記フレームを最初に送信したノード装置から前記フレームが最終的に届けられるノード装置までのフレームの経路が安定しているか否かを表しており、
前記経路安定指標処理手段は、前記経路が安定していないことを前記経路安定指標が表している場合には、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定する処理を行うことを決定し、前記経路が安定していることを前記経路安定指標が表している場合には、前記判定する処理を行わないことを決定する、
ことを特徴とするノード装置。
【請求項２】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、
前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、
前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されている場合のみ、前記第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、
過去にフレームを前記送信先ノード装置に向けて送信してからの時間を計時する計時手段と、
を含み、
前記更新手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記送信手段が前記フレームを送信する、
ことを特徴とするノード装置。
【請求項３】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、
前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、
前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されている場合のみ、前記第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、
前記フレームの前記最終宛先までの経路に関する情報を取得する経路情報取得手段と、
を含み、
前記第２の記憶手段が記憶する送信可能性情報には、前記フレームの前記最終宛先までの経路に関する情報が含まれており、
前記フレームの前記最終宛先までの経路に関する情報が変化したときに、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とするノード装置。
【請求項４】
前記フレームの前記最終宛先までの経路に関する情報は、ホップ数であることを特徴とする請求項３に記載のノード装置。
【請求項５】
前記フレームの前記最終宛先までの経路に関する情報は、前記経路の品質に関する情報であることを特徴とする請求項３に記載のノード装置。
【請求項６】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、
前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、
前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されている場合のみ、前記第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、
を含み、
前記送信先ノード装置への前記フレームの送信において、前回の送信の際に、前記更新手段による前記送信先ノード装置への前記送信可能性の変更を経験している場合には、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うように前記経路安定指標を変更した後、前記フレームを送信する、
ことを特徴とするノード装置。
【請求項７】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、
前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、
前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されている場合のみ、前記第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、
前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、
を含み、
前記送信先ノード装置への前記フレームの送信において、前記送信先ノード装置が前記最終宛先で指定されるノード装置の場合は、前記送信手段は、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行わないように前記経路安定指標を変更した後、前記送信フレームを送信する、
ことを特徴とするノード装置。
【請求項８】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信するステップと、
前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先である前記隣接するノード装置の一つを識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて第１の記憶手段に記憶するステップと、
前記フレームが最終的に届けられる前記複数のノード装置の一つを識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を第２の記憶手段に記憶するステップと、
前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定するステップと、
前記決定するステップによる決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されている場合のみ、前記第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新するステップと、
前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択するステップと、
前記選択するステップによって選択された前記送信先ノード装置に向けて前記フレームを送信するステップと、
を備え、
前記フレームに含まれている経路安定指標は、前記フレームを最初に送信したノード装置から前記フレームが最終的に届けられるノード装置までのフレームの経路が安定しているか否かを表しており、
前記決定するステップは、前記経路が安定していないことを前記経路安定指標が表している場合には、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定する処理を行うことを決定し、前記経路が安定していることを前記経路安定指標が表している場合には、前記判定する処理を行わないことを決定する、
ことを特徴とするデータ転送方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
ネットワークを構成する複数のノード装置のうち隣接するノード装置の一つから、経路安定指標を含むフレームを受信する受信手段と、前記フレームを識別するフレーム識別情報と、前記隣接するノード装置のうち、前記フレームを転送する先となる隣接するノード装置を識別する送信先ノード識別情報と、前記フレームが最初に送信されたノード装置を識別する起源ノード識別情報とを対応付けて記憶する第１の記憶手段と、前記複数のノード装置のうち、前記フレームが最終的に届けられるノード装置を識別する最終宛先が与えられたとき、前記隣接するノード装置それぞれへの送信可能性を表す送信可能性情報を記憶する第２の記憶手段と、前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されているかどうかを判定する処理を行うか否かを、前記フレームの前記経路安定指標に基づいて決定する経路安定指標処理手段と、前記経路安定指標処理手段による決定の結果が、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定することを示し、かつ前記フレームを識別するフレーム識別情報が、前記第１の記憶手段に記憶されている場合のみ、前記第２の記憶手段に記憶されている、前記送信先ノード識別情報により識別されるノード装置への前記送信可能性が送信不能を示すように更新する更新手段と、前記フレームの最終宛先に対応付けられて前記第２の記憶手段に記憶されている前記送信可能性情報に基づいて、前記複数のノード装置の中から隣接するノード装置の一つを送信先ノード装置として選択する選択手段と、前記選択手段によって選択された前記送信先ノード装置に向けて前記フレームを送信する送信手段と、を含み、前記フレームに含まれている経路安定指標は、前記フレームを最初に送信したノード装置から前記フレームが最終的に届けられるノード装置までのフレームの経路が安定しているか否かを表しており、前記経路安定指標処理手段は、前記経路が安定していないことを前記経路安定指標が表している場合には、前記フレームを識別するフレーム識別情報が前記第１の記憶手段に記憶されているかどうかを判定する処理を行うことを決定し、前記経路が安定していることを前記経路安定指標が表している場合には、前記判定する処理を行わないことを決定する、ことを特徴とするノード装置が提供される。
【国際調査報告】
2013042209.tif 000031
2013042209.tif 000032