(57)【要約】【課題】アドホックネットワーク経路構築システムにおいて、ネットワークに掛かる負荷を軽減する。【解決手段】ノードは、センターノードから、センターノードのMACアドレス及び位置情報を記述したデータ部を含むリクエストパケットを受信し、リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、リクエスト送信先ノードが有ると判断すると、受信したリクエストパケットのデータ部にノード自身のMACアドレス及び位置情報を追加的に記述し、記述したリクエストパケットを、リクエスト送信先ノードに送信し、リクエスト送信先ノードが無いと判断すると、ノード自身を終端ノードと判断し、受信したリクエストパケットのデータ部に記述された全てのMACアドレス及び全ての位置情報を記述したデータ部を含むリプライパケットを生成し、受信したリクエストパケットの送信元であるリクエスト送信元ノードに、リプライパケットを送信する。【選択図】図４
2018117205.tif 000002
【特許請求の範囲】
【請求項１】
１個のセンターノードと、
複数のネクストホップノードと
を具備するアドホックネットワーク経路構築システムであって、
前記センターノードは、
前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを生成し、
前記センターノードと通信可能なエリアに位置する１以上のネクストホップノードに、前記リクエストパケットを送信し、
各前記ネクストホップノードは、
前記リクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ネクストホップノード自身を終端ノードと判断し、
前記終端ノードは、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードを除く各前記ネクストホップノードは、さらに、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信し、
前記センターノードは、さらに、
１以上の前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記受信した１以上のリプライパケットの前記データ部に記述された前記全てのMACアドレス及び前記全ての位置情報に基づき、ルーティングテーブルを作成する
アドホックネットワーク経路構築システム。
【請求項２】
請求項１に記載のアドホックネットワーク経路構築システムであって、
各前記ネクストホップノードは、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置情報を、前記受信したリクエストパケットの前記データ部から読み出し、
前記リクエスト送信元ノードの位置情報及び前記ネクストホップノード自身の位置情報に基づき、前記リクエスト送信元ノードの位置から離れた位置にあるリクエスト送信先ノードの有無を判断する
アドホックネットワーク経路構築システム。
【請求項３】
請求項２に記載のアドホックネットワーク経路構築システムであって、
各前記ネクストホップノードは、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置と前記ネクストホップノード自身の位置とを結んだ線分と直交し且つ前記ネクストホップノード自身の前記位置を通過する直線で、前記ネクストホップノード自身が通信可能なエリアを分断し、前記分断した通信可能なエリアのうち前記リクエスト送信元ノードの位置を含まないエリアに位置するリクエスト送信先ノードの有無を判断する
アドホックネットワーク経路構築システム。
【請求項４】
請求項３に記載のアドホックネットワーク経路構築システムであって、
各前記ネクストホップノードは、
複数のリクエスト送信元ノードから前記リクエストパケットを受信した場合、
何れか１つの前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信する
アドホックネットワーク経路構築システム。
【請求項５】
請求項４に記載のアドホックネットワーク経路構築システムであって、
各前記ネクストホップノードは、
前記リクエスト送信先ノードの有無を判断する際、
前記ネクストホップノード自身と通信可能なエリアに位置する１以上の別のネクストホップノードに、HELLOパケットを送信し、
前記HELLOパケットに対する応答パケットとして、応答元である別のネクストホップノードの位置情報を追加的に記述した応答パケットを要求し、
前記１以上の別のネクストホップノードから、前記別のネクストホップノードの位置情報を追加的に記述した応答パケットを受信し、
前記受信した応答パケットに追加的に記述された前記別のネクストホップノードの位置情報に基づき、前記リクエスト送信先ノードの有無を判断する
アドホックネットワーク経路構築システム。
【請求項６】
１個のセンターノードと、複数のノードとを有するアドホックネットワーク経路構築システムに含まれる各ノードであって、
前記センターノードから、前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ノード自身を終端ノードと判断し、
前記終端ノードと判断すると、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードと判断しないと、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信する
パケット制御部を具備する
ノード。
【請求項７】
請求項６に記載のノードであって、
前記パケット制御部は、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置情報を、前記受信したリクエストパケットの前記データ部から読み出し、
前記リクエスト送信元ノードの位置情報及び前記ネクストホップノード自身の位置情報に基づき、前記リクエスト送信元ノードの位置から離れた位置にあるリクエスト送信先ノードの有無を判断する
ノード。
【請求項８】
請求項７に記載のノードであって、
前記パケット制御部は、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置と前記ネクストホップノード自身の位置とを結んだ線分と直交し且つ前記ネクストホップノード自身の前記位置を通過する直線で、前記ネクストホップノード自身が通信可能なエリアを分断し、前記分断した通信可能なエリアのうち前記リクエスト送信元ノードの位置を含まないエリアに位置するリクエスト送信先ノードの有無を判断する
ノード。
【請求項９】
請求項８に記載のノードであって、
前記パケット制御部は、
複数のリクエスト送信元ノードから前記リクエストパケットを受信した場合、
何れか１つの前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信する
ノード。
【請求項１０】
請求項９に記載のノードであって、
前記パケット制御部は、
前記リクエスト送信先ノードの有無を判断する際、
前記ネクストホップノード自身と通信可能なエリアに位置する１以上の別のネクストホップノードに、HELLOパケットを送信し、
前記HELLOパケットに対する応答パケットとして、応答元である別のネクストホップノードの位置情報を追加的に記述した応答パケットを要求し、
前記１以上の別のネクストホップノードから、前記別のネクストホップノードの位置情報を追加的に記述した応答パケットを受信し、
前記受信した応答パケットに追加的に記述された前記別のネクストホップノードの位置情報に基づき、前記リクエスト送信先ノードの有無を判断する
ノード。
【請求項１１】
１個のセンターノードと、
複数のネクストホップノードと
を具備するアドホックネットワーク経路構築システムであって、
前記センターノードは、
前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを生成し、
前記センターノードと通信可能なエリアに位置する１以上のネクストホップノードに、前記リクエストパケットを送信し、
各前記ネクストホップノードは、
前記リクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ネクストホップノード自身を終端ノードと判断し、
前記終端ノードは、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードを除く各前記ネクストホップノードは、さらに、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信し、
前記センターノードは、さらに、
１以上の前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記受信した１以上のリプライパケットの前記データ部に記述された前記全てのMACアドレス及び前記全ての位置情報に基づき、ルーティングテーブルを作成する
アドホックネットワーク経路構築システム
に含まれる
センターノード。
【請求項１２】
１個のセンターノードと、
複数のネクストホップノードと
を具備するアドホックネットワーク経路構築方法であって、
前記センターノードは、
前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを生成し、
前記センターノードと通信可能なエリアに位置する１以上のネクストホップノードに、前記リクエストパケットを送信し、
各前記ネクストホップノードは、
前記リクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ネクストホップノード自身を終端ノードと判断し、
前記終端ノードは、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードを除く各前記ネクストホップノードは、さらに、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信し、
前記センターノードは、さらに、
１以上の前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記受信した１以上のリプライパケットの前記データ部に記述された前記全てのMACアドレス及び前記全ての位置情報に基づき、ルーティングテーブルを作成する
アドホックネットワーク経路構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、１個のセンターノード及び複数のノード（ネクストホップノード）を有するアドホックネットワーク経路構築システム、上記ノード（ネクストホップノード）、上記センターノード及び上記アドホックネットワーク経路構築方法に関する。
【背景技術】
【０００２】
１個のセンターノード及び複数のネクストホップノードを有するアドホックネットワーク経路構築システムが知られている（特許文献１及び特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２１１２００号公報
【特許文献２】国際公開ＷＯ２００８／１０５０３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アドホックネットワーク経路構築システムにおいては、経路探索のパケットを複数回フラッディングする。従って、ネットワークに掛かる負荷を軽減することが望ましい。
【０００５】
以上のような事情に鑑み、本開示の目的は、アドホックネットワーク経路構築システムにおいて、ネットワークに掛かる負荷を軽減することにある。
【課題を解決するための手段】
【０００６】
本開示の一形態に係るアドホックネットワーク経路構築システムは、
１個のセンターノードと、
複数のネクストホップノードと
を具備するアドホックネットワーク経路構築システムであって、
前記センターノードは、
前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを生成し、
前記センターノードと通信可能なエリアに位置する１以上のネクストホップノードに、前記リクエストパケットを送信し、
各前記ネクストホップノードは、
前記リクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ネクストホップノード自身を終端ノードと判断し、
前記終端ノードは、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードを除く各前記ネクストホップノードは、さらに、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信し、
前記センターノードは、さらに、
１以上の前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記受信した１以上のリプライパケットの前記データ部に記述された前記全てのMACアドレス及び前記全ての位置情報に基づき、ルーティングテーブルを作成する。
【０００７】
本形態によれば、センターノードがルーティングテーブルを作成する。これにより、センターノードだけが、経路を構築する際に必要な情報を格納する。そのため、各ネクストホップノードが消費するリソースを軽減することができる。また、ネットワーク内で送受信されるパケット量が抑えられ、ネットワークに掛かる負荷が軽減される。
【０００８】
各前記ネクストホップノードは、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置情報を、前記受信したリクエストパケットの前記データ部から読み出し、
前記リクエスト送信元ノードの位置情報及び前記ネクストホップノード自身の位置情報に基づき、前記リクエスト送信元ノードの位置から離れた位置にあるリクエスト送信先ノードの有無を判断する。
【０００９】
本形態によれば、全てのネクストホップノードは、リクエスト送信元ノードの位置から離れた位置にあるリクエスト送信先ノードにのみ、リクエストパケットを送信する。これにより、各ネクストホップノードが多数のネクストホップノードからリクエストパケットを受信する可能性を減らすことができる。
【００１０】
各前記ネクストホップノードは、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置と前記ネクストホップノード自身の位置とを結んだ線分と直交し且つ前記ネクストホップノード自身の前記位置を通過する直線で、前記ネクストホップノード自身が通信可能なエリアを分断し、前記分断した通信可能なエリアのうち前記リクエスト送信元ノードの位置を含まないエリアに位置するリクエスト送信先ノードの有無を判断する。
【００１１】
本形態によれば、全てのネクストホップノードは、通信可能エリアのうちの一部に位置するネクストホップノードにのみ、リクエストパケットを送信する。これにより、各ネクストホップノードが多数のネクストホップノードからリクエストパケットを受信する可能性を減らすことができる。
【００１２】
各前記ネクストホップノードは、
複数のリクエスト送信元ノードから前記リクエストパケットを受信した場合、
何れか１つの前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信する。
【００１３】
本形態によれば、全てのネクストホップノードは、リクエストパケットを１回しか送信しない。これにより、各ネクストホップノードが多数のネクストホップノードからリクエストパケットを受信する可能性を減らすことができる。
【００１４】
各前記ネクストホップノードは、
前記リクエスト送信先ノードの有無を判断する際、
前記ネクストホップノード自身と通信可能なエリアに位置する１以上の別のネクストホップノードに、HELLOパケットを送信し、
前記HELLOパケットに対する応答パケットとして、応答元である別のネクストホップノードの位置情報を追加的に記述した応答パケットを要求し、
前記１以上の別のネクストホップノードから、前記別のネクストホップノードの位置情報を追加的に記述した応答パケットを受信し、
前記受信した応答パケットに追加的に記述された前記別のネクストホップノードの位置情報に基づき、前記リクエスト送信先ノードの有無を判断する。
【００１５】
本形態によれば、ネクストホップノードは、１以上の別のネクストホップノードに、HELLOパケットに対する応答パケットとして、応答元である別のネクストホップノードの位置情報を追加的に記述した応答パケットを要求する。これにより、ネクストホップノードは、リクエストパケットを送信する前に、別のネクストホップノードの位置情報を取得することができるので、リクエストパケットを送信する対象を確実に絞り込むことができる。
【００１６】
本開示の一形態に係るノード（ネクストホップノード）は、
１個のセンターノードと、複数のノードとを有するアドホックネットワーク経路構築システムに含まれる各ノードであって、
前記センターノードから、前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ノード自身を終端ノードと判断し、
前記終端ノードと判断すると、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードと判断しないと、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信する
パケット制御部を具備する。
【００１７】
前記パケット制御部は、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置情報を、前記受信したリクエストパケットの前記データ部から読み出し、
前記リクエスト送信元ノードの位置情報及び前記ネクストホップノード自身の位置情報に基づき、前記リクエスト送信元ノードの位置から離れた位置にあるリクエスト送信先ノードの有無を判断する。
【００１８】
前記パケット制御部は、
前記リクエスト送信先ノードの有無を判断する際、
前記リクエスト送信元ノードの位置と前記ネクストホップノード自身の位置とを結んだ線分と直交し且つ前記ネクストホップノード自身の前記位置を通過する直線で、前記ネクストホップノード自身が通信可能なエリアを分断し、前記分断した通信可能なエリアのうち前記リクエスト送信元ノードの位置を含まないエリアに位置するリクエスト送信先ノードの有無を判断する。
【００１９】
前記パケット制御部は、
複数のリクエスト送信元ノードから前記リクエストパケットを受信した場合、
何れか１つの前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信する。
【００２０】
前記パケット制御部は、
前記リクエスト送信先ノードの有無を判断する際、
前記ネクストホップノード自身と通信可能なエリアに位置する１以上の別のネクストホップノードに、HELLOパケットを送信し、
前記HELLOパケットに対する応答パケットとして、応答元である別のネクストホップノードの位置情報を追加的に記述した応答パケットを要求し、
前記１以上の別のネクストホップノードから、前記別のネクストホップノードの位置情報を追加的に記述した応答パケットを受信し、
前記受信した応答パケットに追加的に記述された前記別のネクストホップノードの位置情報に基づき、前記リクエスト送信先ノードの有無を判断する。
【００２１】
本開示の一形態に係るセンターノードは、
１個のセンターノードと、
複数のネクストホップノードと
を具備するアドホックネットワーク経路構築システムであって、
前記センターノードは、
前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを生成し、
前記センターノードと通信可能なエリアに位置する１以上のネクストホップノードに、前記リクエストパケットを送信し、
各前記ネクストホップノードは、
前記リクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ネクストホップノード自身を終端ノードと判断し、
前記終端ノードは、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードを除く各前記ネクストホップノードは、さらに、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信し、
前記センターノードは、さらに、
１以上の前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記受信した１以上のリプライパケットの前記データ部に記述された前記全てのMACアドレス及び前記全ての位置情報に基づき、ルーティングテーブルを作成する
アドホックネットワーク経路構築システム
に含まれる。
【００２２】
本開示の一形態に係る経路構築方法は、
１個のセンターノードと、
複数のネクストホップノードと
を具備するアドホックネットワーク経路構築方法であって、
前記センターノードは、
前記センターノードのMAC（Media Access Control）アドレス及び位置情報を記述したデータ部を含むリクエストパケットを生成し、
前記センターノードと通信可能なエリアに位置する１以上のネクストホップノードに、前記リクエストパケットを送信し、
各前記ネクストホップノードは、
前記リクエストパケットを受信し、
前記リクエストパケットの送信先となるリクエスト送信先ノードの有無を判断し、
前記リクエスト送信先ノードが有ると判断すると、前記受信したリクエストパケットの前記データ部に前記ネクストホップノード自身のMACアドレス及び位置情報を追加的に記述し、前記記述したリクエストパケットを、前記リクエスト送信先ノードに送信し、
前記リクエスト送信先ノードが無いと判断すると、前記ネクストホップノード自身を終端ノードと判断し、
前記終端ノードは、
前記受信したリクエストパケットの前記データ部に記述された全ての前記MACアドレス及び全ての前記位置情報を記述したデータ部を含むリプライパケットを生成し、
前記受信したリクエストパケットの送信元であるリクエスト送信元ノードに、前記リプライパケットを送信し、
前記終端ノードを除く各前記ネクストホップノードは、さらに、
前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記リクエスト送信元ノードに、前記受信したリプライパケットを送信し、
前記センターノードは、さらに、
１以上の前記リクエスト送信先ノードから、前記リプライパケットを受信し、
前記受信した１以上のリプライパケットの前記データ部に記述された前記全てのMACアドレス及び前記全ての位置情報に基づき、ルーティングテーブルを作成する。
【発明の効果】
【００２３】
本開示によれば、アドホックネットワーク経路構築システムにおいて、ネットワークに掛かる負荷を軽減することができる。
【００２４】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００２５】
【図１】情報処理装置のハードウェア構成を示す。
【図２】アドホックネットワーク経路構築システムの機能的構成を示す。
【図３】センターノードの動作フローを示す。
【図４】ネクストホップノードの動作フローを示す。
【図５】センターノード及びネクストホップノードの動作シーケンスを示す。
【図６】SFRREQパケットを示す。
【図７】既存のRREQパケットのヘッダを示す。
【図８】リクエスト送信エリア及びリクエスト送信不可エリアを模式的に示す。
【図９】SFRREPパケットを示す。
【図１０】既存のRREPパケットのヘッダを示す。
【発明を実施するための形態】
【００２６】
以下、図面を参照しながら、本開示の実施形態を説明する。
【００２７】
１．アドホックネットワーク経路構築システムの概要
アドホックネットワークは、専用の基地局を含むインフラに依存しないネットワークである。具体的には、アドホックネットワークは複数のノードを含み、複数のノードは、Wi-Fi（登録商標）やBluetooth（登録商標）による端末装置（ノード）自体の中継機能を利用することにより相互に接続される。
【００２８】
典型的に、アドホックネットワークの経路を新規に構築するためには、複数の端末装置（ノード）のうち、特定の（任意の）１個のノードをセンターノードとする。センターノードは、センターノードと通信可能なエリアに位置する複数のノード（ネクストホップノード）に、経路探索のためのリクエストパケットをフラッディングする。
【００２９】
リクエストパケットを受信したノードは、ノード自身の端末情報を、受信したリクエストパケット内のバッファに追加的に記述する。ノードは、記述したリクエストパケットを、通信可能なエリアに位置する複数のノード（ネクストホップノード）にフラッディングする。このフラッディングの工程がホップの度に何度も繰り返される。
【００３０】
リクエストパケットを受信したノードは、ネクストホップノードが存在しない場合、ノード自身が終端ノードであると判断する。終端ノードは、リクエストパケットのバッファに蓄積された端末情報（リクエストパケット送信時に経由した複数のノード全ての端末情報）を記述したリプライパケットを生成する。終端ノードは、リプライパケットを、複数のネクストホップノード（リクエストパケット送信時に経由した複数のノードと同じ）を経由して、センターノードに送信する。
【００３１】
センターノードは、受信したリプライパケットに記述された、各ノードの端末情報に基づき、各ノード間の経路を計算し、ルーティングテーブル（経路表）を作成する。センターノードは、作成したルーティングテーブルをフラッディングし、全てのノードに供給する。各ノードはルーティングテーブルに基づき経路（ルート）を構築する。
【００３２】
このように、典型的に、アドホックネットワークの経路を新規に構築するためには、リクエストパケットをフラッディングする工程を何度も繰り返すため、ネットワークに掛かる負荷が高い。以上に鑑み、本実施形態によれば、アドホックネットワーク経路構築システムにおいて、ネットワークに掛かる負荷の軽減を図る。
【００３３】
２．情報処理装置のハードウェア構成
図１は、情報処理装置のハードウェア構成を示す。
【００３４】
ノードは、Wi-Fi（登録商標）やBluetooth（登録商標）による中継機能を有する情報処理装置であり、典型的には、屋内設置型（モバイルで無い）の端末装置である。例えば、情報処理装置は、例えばデスクトップタイプのパーソナルコンピューター、ＭＦＰ（Multifunction Peripheral）等の画像形成装置、ファクシミリ、テレビジョン受像機、家電機器等である。
【００３５】
ノードとしての情報処理装置１０は、制御部１１と、制御部１１とバス１７を介して接続された表示部１２、ネットワークインターフェース１３、操作部１５、記憶部１６及び位置情報取得装置１４とを有する。
【００３６】
制御部１１は、ＣＰＵ（Central Processing Unit）等を含む。制御部１１のＣＰＵ（Central Processing Unit）は、コンピューター読み取り可能な非一過性の記憶媒体の一例であるＲＯＭ（Read Only Memory）に記録されたプログラムをＲＡＭ（Random Access Memory）にロードして実行する。
【００３７】
記憶部１６は、ＲＯＭ（Read Only Memory）と、ＲＡＭと、ＨＤＤ（Hard Disk Drive）などの大容量の記憶装置とを含む。ＲＯＭは、制御部１１が実行するプログラムやデータなどを固定的に格納する。ＲＡＭには、ＲＯＭに格納されたプログラムがロードされる。
【００３８】
表示部１２は、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electroluminescence）ディスプレイ等を含む。表示部１２は、制御部１１から受け取った情報に基づいて演算処理を行い、生成した画像信号を画面に表示する。表示部１２は外付けの表示装置でもよい。
【００３９】
操作部１５は、キーボード、マウス、タッチパネル及び／又は各種スイッチ等を含む。操作部１５は、ユーザーからの操作を検出して制御部１１に出力する。
【００４０】
ネットワークインターフェース１３は、Wi-Fi（登録商標）やBluetooth（登録商標）を介して他の情報処理装置１０（ノード）と通信するためのインタフェースである。
【００４１】
位置情報取得装置１４は、情報処理装置１０自身の現在の位置情報を取得する。例えば、位置情報取得装置１４は、複数の無線ＬＡＮ（Local Area Network）アクセスポイントから送信されるWi-Fi（登録商標）の電波が情報処理装置１０に到達する周期をもとに、三角測量を用いて、情報処理装置１０の位置を計測する。あるいは、位置情報取得装置１４は、Bluetooth（登録商標）発信機（ビーコン）の電波が情報処理装置１０に到達する周期をもとに、情報処理装置１０の位置を計測する。また、位置情報取得装置１４は、ＧＰＳ（Global Positioning System）により、情報処理装置１０の位置を計測してもよい。
【００４２】
３．アドホックネットワーク経路構築システムの機能的構成
図２は、アドホックネットワーク経路構築システムの機能的構成を示す。
【００４３】
以下の説明において、センターノードとしての情報処理装置１０を「センターノード１０Ｃ」と称する。アドホックネットワークに含まれる複数のノードのうち、センターノード１０Ｃ以外の複数のノード１０を、センターノードと区別する目的で便宜的に、「ネクストホップノード１０Ｎ」と称することがある。すなわち、アドホックネットワーク経路構築システム１は、１個のセンターノード１０Ｃと、複数のネクストホップノード１０Ｎとを具備する。
【００４４】
センターノード１０Ｃは、ユーザー（管理者）が任意に決めることができる。パーソナルコンピューター等の端末装置（図示せず）は、ユーザーからの操作を受け付け、Wi-Fi（登録商標）やBluetooth（登録商標）を介して、任意の情報処理装置１０にセンターノードとして機能するよう要求する。
【００４５】
センターノード１０Ｃは、コンピューター読み取り可能な非一過性の記憶媒体の一例であるＲＯＭに記憶された情報処理プログラムをＲＡＭにロードして実行することで、パケット制御部１０１Ｃ及び構築経路管理部１０２Ｃとして機能する。
【００４６】
ネクストホップノード１０Ｎは、コンピューター読み取り可能な非一過性の記憶媒体の一例であるＲＯＭに記憶された情報処理プログラムをＲＡＭにロードして実行することで、パケット制御部１０１Ｎ及び構築経路管理部１０２Ｎとして機能する。
【００４７】
センターノード１０Ｃのパケット制御部１０１Ｃは、センターノード１０ＣのMACアドレス及び位置情報を記述したデータ部を含むSFRREQパケットを生成する。パケット制御部１０１Ｃは、センターノード１０Ｃと通信可能なエリアに位置する１以上のネクストホップノード１０Ｎに、SFRREQパケットを送信（フラッディング）する。
【００４８】
ネクストホップノード１０Ｎのパケット制御部１０１Ｎは、SFRREQパケットを受信し、SFRREQパケットの送信先となるネクストホップノード１０Ｎ（リクエスト送信先ノード）の有無を判断する。パケット制御部１０１Ｎは、リクエスト送信先ノードが有ると判断すると、受信したSFRREQパケットのデータ部にネクストホップノード１０Ｎ自身のMACアドレス及び位置情報を追加的に記述し、記述したSFRREQパケットを、ネクストホップノード１０Ｎ（リクエスト送信先ノード）に送信する。パケット制御部１０１Ｎは、リクエスト送信先ノードが無いと判断すると、ネクストホップノード１０Ｎ自身を終端ノードと判断する。終端ノードと判断すると、ネクストホップノード１０Ｎは、受信したSFRREQパケットのデータ部に記述された全てのMACアドレス及び全ての位置情報を記述したデータ部を含むSFRREPパケットを生成し、受信したSFRREQパケットの送信元であるリクエスト送信元ノードに、SFRREPパケットを送信する。終端ノードを除くネクストホップノード１０Ｎは、リクエスト送信先ノードから、SFRREPパケットを受信し、リクエスト送信元ノードに、受信したSFRREPパケットを送信する。
【００４９】
センターノード１０Ｃのパケット制御部１０１Ｃは、１以上のネクストホップノード１０Ｎから、SFRREPパケットを受信する。
【００５０】
センターノード１０Ｃの構築経路管理部１０２Ｃは、受信した１以上のSFRREPパケットのデータ部に記述された全てのMACアドレス及び全ての位置情報に基づき、ルーティングテーブルを作成する。構築経路管理部１０２Ｃは、作成したルーティングテーブルを、ネクストホップノード１０Ｎに供給する。
【００５１】
ネクストホップノード１０Ｎの構築経路管理部１０２Ｎは、センターノード１０Ｃが作成したルーティングテーブルを取得する。
【００５２】
４．センターノード及びネクストホップノードの動作フロー
図３は、センターノードの動作フローを示す。図４は、ネクストホップノードの動作フローを示す。図５は、センターノード及びネクストホップノードの動作シーケンスを示す。
【００５３】
センターノード１０Ｃの制御部１１Ｃは、ネットワークインターフェース１３Ｃを介して、通信可能な全てのネクストホップノード１０Ｎに、HELLOパケットを送信する（ステップＳ１０１）。以下便宜的に、センターノード１０ＣがHELLOパケットを送信した送信先のネクストホップノード１０Ｎを、「第１のネクストホップノード１０Ｎ１」と称する。
【００５４】
各第１のネクストホップノード１０Ｎ１の制御部１１Ｎは、ネットワークインターフェース１３Ｎを介して、センターノード１０ＣからHELLOパケットを受信する。HELLOパケットを受信した第１のネクストホップノード１０Ｎ１の制御部１１Ｎは、ネットワークインターフェース１３Ｎを介して、センターノード１０Ｃに、HELLOパケットを送信する。
【００５５】
センターノード１０Ｃの制御部１１Ｃは、ネットワークインターフェース１３Ｃを介して、複数の第１のネクストホップノード１０Ｎ１から、HELLOパケットを受信する（ステップＳ１０２、ＹＥＳ）。
【００５６】
HELLOパケットを受信すると、センターノード１０Ｃのパケット制御部１０１Ｃは、リクエストパケットとしてSFRREQパケットを生成する。センターノード１０Ｃのパケット制御部１０１Ｃは、生成したSFRREQパケットを、受信したHELLOパケットの送信元である複数の第１のネクストホップノード１０Ｎ１（リクエスト送信先ノード）全てに対し、ネットワークインターフェース１３Ｃを介してユニキャストで送信する（ステップＳ１０３）。SFRREQパケットの送信後、センターノード１０Ｃは、SFRREPパケット（後述）の受信待ち状態となる。
【００５７】
ここで「SFRREQパケット」について説明する。「SFRREQパケット」は、AODV（Ad hoc On-Demand Distance Vector）プロトコルで用いられる既存のRREQ（Route Request）パケットを改良した本実施形態特有のパケットであり、「Smart Flooding Route Requestパケット」の意味である。「SFRREQパケット」は、アドホックネットワークの経路を構築のために必要な情報を蓄積する。
【００５８】
図６は、SFRREQパケットを示す。図７は、既存のRREQパケットのヘッダを示す。
本実施形態のSFRREQパケットのヘッダ（SFRREQヘッダ）（図６）において、既存のRREQパケットのヘッダ（RREQヘッダ）（図７）からの変更点は、以下の通りである。即ち、本実施形態のSFRREQヘッダには、既存のRREQヘッダの「送信先IPアドレス」及び「送信元IPアドレス」の代わりに、「送信元MACアドレス」が記述されている。「送信元MACアドレス」は、SFRREQパケットの送信元であるノードのMACアドレスである。ステップＳ１０３の場合、「送信元MACアドレス」として、センターノード１０ＣのMACアドレスが記述される。
【００５９】
SFRREQパケットのデータ部は、RREQ IDと、MACアドレスバッファと、位置情報バッファとを含む。「RREQ ID」は、SFRREQパケットを固有に識別するためのID（identifier）である。「MACアドレスバッファ」は、このSFRREQパケットの送信元のノードのMACアドレスが蓄積（ホップの度に追加的に記述）される。ステップＳ１０３の場合、センターノード１０ＣのMACアドレスが記述される。「位置情報バッファ」には、このSFRREQパケットの送信元のノードの位置情報（位置情報取得装置１４が取得した情報）が蓄積（ホップの度に追加的に記述）される。ステップＳ１０３の場合、位置情報取得装置１４Ｃが取得した、センターノード１０Ｃの位置情報が記述される。
【００６０】
動作フローの説明に戻る。センターノード１０ＣにHELLOパケットを送信した各第１のネクストホップノード１０Ｎ１（リクエスト送信先ノード）のパケット制御部１０１Nは、ネットワークインターフェース１３Ｎを介して、センターノード１０ＣからSFRREQパケットを受信する（ステップＳ２０１、ＹＥＳ）。SFRREQパケットを受信すると、第１のネクストホップノード１０Ｎ１のパケット制御部１０１Nは、今までにSFRREQパケットを送信したことが有るか否かを判断する（ステップＳ２０２）。第１のネクストホップノード１０Ｎ１のパケット制御部１０１Nは、今までにSFRREQパケットを送信したことが無いと判断する（ステップＳ２０２、ＮＯ）。この場合、第１のネクストホップノード１０Ｎ１の制御部１１Ｎは、ネットワークインターフェース１３Ｎを介して、通信可能な全てのネクストホップノード１０Ｎに、HELLOパケットを送信する。以下便宜的に、第１のネクストホップノード１０Ｎ１がHELLOパケットを送信した送信先のネクストホップノード１０Ｎを、「第２のネクストホップノード１０Ｎ２」と称する。このとき、第１のネクストホップノード１０Ｎ１の制御部１１Ｎは、HELLOパケットに対する応答HELLOパケットとして、応答元である第２のネクストホップノード１０Ｎ２の位置情報を追加的に記述した応答HELLOパケットを要求する（ステップＳ２０３）。以下「応答HELLOパケット」は、応答元であるノードの位置情報を追加的に記述したHELLOパケットを意味する。
【００６１】
なお、第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、今までにSFRREQパケットを送信したことが有ると判断する（ステップＳ２０２、ＹＥＳ）。この場合、第１のネクストホップノード１０Ｎ１は、HELLOパケットを送信することなく、処理を終了する。言い換えれば、各ネクストホップノード１０Ｎは、SFRREQパケットを１回しか送信しない。これにより、各ネクストホップノード１０Ｎが多数のネクストホップノード１０ＮからSFRREQパケットを受信する可能性を減らすことができ、ネットワークに掛かる負荷を軽減することができる。
【００６２】
各第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、HELLOパケットを送信してから応答HELLOパケットを受信するまでの待機時間を利用し、以下の処理を行う。即ち、第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、センターノード１０Ｃから受信（ステップＳ２０１、ＹＥＳ）したSFRREQパケットのデータ部のMACアドレスバッファ内に、既に記述されているセンターノード１０ＣのMACアドレスに続いて、第１のネクストホップノード１０Ｎ１自身のMACアドレスを追加的に記述する。さらに、第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、SFRREQパケットのデータ部の位置情報バッファ内に、既に記述されているセンターノード１０Ｃの位置情報に続いて、第１のネクストホップノード１０Ｎ１自身の位置情報を追加的に記述する。これにより、第１のネクストホップノード１０Ｎ１のパケット制御部１０１Nは、SFRREQパケットを更新する。
【００６３】
第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、SFRREQパケットのデータ部の位置情報バッファ内に記述されているセンターノード１０Ｃの位置情報と、第１のネクストホップノード１０Ｎ１の位置情報とに基づき、第１のネクストホップノード１０Ｎ１のリクエスト送信エリア及びリクエスト送信不可エリアを算出する。単純に言えば、第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、センターノード１０Ｃの位置情報と、第１のネクストホップノード１０Ｎ１の位置情報とに基づき、SFRREQパケットの送信元であるセンターノード１０Ｃの位置から離れた位置にあるノード１０を、リクエスト送信先ノードとする。リクエスト送信エリア及びリクエスト送信不可エリアの算出方法を以下に説明する。
【００６４】
図８は、リクエスト送信エリア及びリクエスト送信不可エリアを模式的に示す。
通信可能エリアＡ１は、第１のネクストホップノード１０Ｎ１の電波の届く距離範囲である（同図では、模式的に、単に円形で示す）。第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、SFRREQパケットの送信元であるセンターノード１０Ｃの位置と第１のネクストホップノード１０Ｎ１の位置とを結んだ線分Ｌ１と直交し且つ第１のネクストホップノード１０Ｎ１自身の位置を通過する直線Ｌ２で、第１のネクストホップノード１０Ｎ１自身が通信可能なエリアＡ１を、２つのエリアＡ２、Ａ３に分断する。第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、通信可能なエリアＡ１を分断した２つのエリアＡ２、Ａ３のうち、SFRREQパケットの送信元であるセンターノード１０Ｃの位置を含まないエリアをリクエスト送信エリアＡ２とし、センターノード１０Ｃの位置を含むエリアをリクエスト送信不可エリアＡ３とする。
【００６５】
動作フローの説明に戻る。各第２のネクストホップノード１０Ｎ２の制御部１１Ｎは、ネットワークインターフェース１３Ｎを介して、第１のネクストホップノード１０Ｎ１からHELLOパケットを受信する（ステップＳ２０１でＮＯ、ステップＳ２０４でＹＥＳ）。HELLOパケットを受信した第２のネクストホップノード１０Ｎ２の制御部１１Ｎは、HELLOパケットに第２のネクストホップノード１０Ｎ２自身の位置情報（位置情報取得装置１４Ｎが取得した情報）を追加的に記述した応答HELLOパケットを生成する。第２のネクストホップノード１０Ｎ２の制御部１１Ｎは、応答HELLOパケットを、ネットワークインターフェース１３Ｎを介して、第１のネクストホップノード１０Ｎ１に送信する（ステップＳ２０５）。
【００６６】
第１のネクストホップノード１０Ｎ１の制御部１１Ｎは、各第２のネクストホップノード１０Ｎ２から、ネットワークインターフェース１３Ｎを介して、応答HELLOパケットを受信する（又は、既に受信している）（ステップＳ２０６、ＹＥＳ）。第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、各応答HELLOパケットに記述された、第２のネクストホップノード１０Ｎ２自身の位置情報を読み出す。第１のネクストホップノード１０Ｎ１の制御部１１Ｎは、各第２のネクストホップノード１０Ｎ２が、上記算出したリクエスト送信エリアＡ２及びリクエスト送信不可エリアＡ３の何れに位置するかを判断する（ステップＳ２０７）。
【００６７】
第１のネクストホップノード１０Ｎ１の制御部１１Ｎは、リクエスト送信エリアＡ２に位置する全ての第２のネクストホップノード１０Ｎ２（リクエスト送信先ノード）に対し（ステップＳ２０７、ＹＥＳ）、ネットワークインターフェース１３Ｎを介してユニキャストで、上記更新後のSFRREQパケットを送信する（ステップＳ２０８）。なお「更新後のSFRREQパケット」は、第１のネクストホップノード１０Ｎ１自身のMACアドレス及び位置情報を追加的に記述したSFRREQパケットである。
【００６８】
各第２のネクストホップノード１０Ｎ２（リクエスト送信先ノード）のパケット制御部１０１Ｎは、ネットワークインターフェース１３Ｎを介して、第１のネクストホップノード１０Ｎ１からSFRREQパケットを受信する（ステップＳ２０１、ＹＥＳ）。SFRREQパケットを受信すると、第２のネクストホップノード１０Ｎ２自身がリクエスト送信元ノードとなり、ステップＳ２０２乃至ステップＳ２０８の処理を繰り返す。
【００６９】
なお、第２のネクストホップノード１０Ｎ２は、以下の様に、SFRREQパケットを更新する。第２のネクストホップノード１０Ｎ２のパケット制御部１０１Nは、第１のネクストホップノード１０Ｎ１から受信（ステップＳ２０１、ＹＥＳ）したSFRREQパケットのデータ部のMACアドレスバッファ内に、既に記述されているセンターノード１０ＣのMACアドレス及びそれに続く第１のネクストホップノード１０Ｎ１のMACアドレスに続いて、第２のネクストホップノード１０Ｎ２自身のMACアドレスを追加的に記述する。さらに、第２のネクストホップノード１０Ｎ２のパケット制御部１０１Ｎは、SFRREQパケットのデータ部の位置情報バッファ内に、既に記述されているセンターノード１０Ｃの位置情報及びそれに続く第１のネクストホップノード１０Ｎ１の位置情報に続いて、第２のネクストホップノード１０Ｎ２自身の位置情報を追加的に記述する。
【００７０】
なお、第２のネクストホップノード１０Ｎ２は、以下の様に、リクエスト送信エリア及びリクエスト送信不可エリアを算出する。第２のネクストホップノード１０Ｎ２のパケット制御部１０１Ｎは、SFRREQパケットの送信元である第１のネクストホップノード１０Ｎ１の位置と第２のネクストホップノード１０Ｎ２の位置とを結んだ線分Ｌ１と直交し且つ第２のネクストホップノード１０Ｎ２自身の位置を通過する直線Ｌ２で、第２のネクストホップノード１０Ｎ２自身が通信可能なエリアＡ１を、２つのエリアＡ２、Ａ３に分断する。第２のネクストホップノード１０Ｎ２のパケット制御部１０１Ｎは、通信可能なエリアＡ１を分断した２つのエリアＡ２、Ａ３のうち、SFRREQパケットの送信元である第１のネクストホップノード１０Ｎ１の位置を含まないエリアをリクエスト送信エリアＡ２とし、第１のネクストホップノード１０Ｎ１の位置を含むエリアをリクエスト送信不可エリアＡ３とする。
【００７１】
一方、ネクストホップノード１０Ｎの制御部１１Ｎは、HELLOパケットを送信したが（ステップＳ２０３）、別のネクストホップノード１０Ｎから応答HELLOパケットを何ら受信しないこともある（ステップＳ２０６、ＮＯ）。あるいは、ネクストホップノード１０Ｎの制御部１１Ｎは、リクエスト送信エリアＡ２に位置する別のネクストホップノード１０Ｎが無いと判断することもある（ステップＳ２０７、ＮＯ）。これらの場合、SFRREQパケットの送信先となるノードが無いことを意味する。従って、ネクストホップノード１０Ｎの制御部１１Ｎは、ネクストホップノード１０Ｎが終端ノードと判断する。以下便宜的に、終端ノードであるネクストホップノード１０Ｎを、「終端ノード１０Ｎ３」と称する。
【００７２】
終端ノード１０Ｎ３のパケット制御部１０１Ｎは、リプライパケットとしてSFRREPパケットを生成する（ステップＳ２０９）。
【００７３】
ここで「SFRREPパケット」について説明する。「SFRREPパケット」は、AODVプロトコルで用いられる既存のSFRREP（Route Reply）パケットを改良した本実施形態特有のパケットであり、「Smart Flooding Route Replyパケット」の意味である。「SFRREPパケット」は、アドホックネットワークの経路を構築のために必要な情報を蓄積する。
【００７４】
図９は、SFRREPパケットを示す。図１０は、既存のRREPパケットのヘッダを示す。
本実施形態のSFRREPパケットのヘッダ（SFRREPヘッダ）（図９）において、既存のRREPパケットのヘッダ（RREPヘッダ）（図１０）からの変更点は、以下の通りである。即ち、本実施形態のSFRREPヘッダには、既存のRREPヘッダの「送信先IPアドレス」、「送信先シーケンス番号」及び「送信元IPアドレス」の代わりに、「送信元MACアドレス」が記述されている。「送信元MACアドレス」は、SFRREPパケットの送信元である終端ノード１０Ｎ３のMACアドレスである。
【００７５】
SFRREPパケットのデータ部は、終端ノード１０Ｎ３が取得したSFRREQパケットのデータ部と完全に同一である。即ち、SFRREPパケットのデータ部は、RREQ IDと、MACアドレスバッファと、位置情報バッファとを含む。「RREQ ID」は、終端ノード１０Ｎ３が取得したSFRREQパケットを固有に識別するためのIDある。「MACアドレスバッファ」には、センターノード１０Ｃから終端ノード１０Ｎ３までの各ノードのMACアドレスが、ホップ順に蓄積される。「位置情報バッファ」には、センターノード１０Ｃから終端ノード１０Ｎ３までの各ノードの位置情報が、ホップ順に蓄積される。
【００７６】
動作フローの説明に戻る。終端ノード１０Ｎ３のパケット制御部１０１Ｎは、生成したSFRREPパケットを、MACアドレスバッファにホップ順に蓄積されたMACアドレスを参照し、MACアドレスバッファに蓄積された順が新しい順（ホップ順）に、複数のネクストホップノード１０Ｎを遡ることで、センターノード１０Ｃまで送信する（ステップＳ２１０）。
【００７７】
具体的には、終端ノード１０Ｎ３のパケット制御部１０１Ｎは、生成したSFRREPパケットを、受信したSFRREQの送信元であるネクストホップノード１０Ｎ（例えば、第２のネクストホップノード１０Ｎ２）（リクエスト送信元ノード）に、SFRREPパケットを送信する。第２のネクストホップノード１０Ｎ２のパケット制御部１０１Ｎは、SFRREPパケットを、終端ノード１０Ｎ３（リクエスト送信先ノード）から受信し、第１のネクストホップノード１０Ｎ１（リクエスト送信元ノード）に送信する。第１のネクストホップノード１０Ｎ１のパケット制御部１０１Ｎは、SFRREPパケットを、第２のネクストホップノード１０Ｎ２（リクエスト送信先ノード）から受信し、センターノード１０Ｃ（リクエスト送信元ノード）に送信する。
【００７８】
センターノード１０Ｃのパケット制御部１０１Ｃは、ネットワークインターフェース１３Ｃを介して、SFRREQパケットの送信先である複数の第１のネクストホップノード１０Ｎ１（リクエスト送信先ノード）全てから、SFRREPパケットを受信する（ステップＳ１０４、ステップＳ１０５）。具体的には、センターノード１０Ｃのパケット制御部１０１Ｃは、最初にSFRREPパケットを受信してから特定時間（任意の時間長）以内に、複数の第１のネクストホップノード１０Ｎ１から、SFRREPパケットを受信する。センターノード１０Ｃのパケット制御部１０１Ｃは、受信したSFRREPパケットを、構築経路管理部１０２Ｃに供給する。
【００７９】
センターノード１０Ｃの構築経路管理部１０２Ｃは、受信した複数のSFRREPパケットを、到着した順にキューに入れ、各SFRREPパケットに記述された情報を、SFRREPパケット毎に、順に記憶部１６Ｃに蓄積する。具体的には、構築経路管理部１０２Ｃは、各SFRREPパケットのデータ部に含まれる、MACアドレスバッファに記述された全てのMACアドレスと、位置情報バッファに記述された全ての位置情報とを、記憶部１６Ｃの受信データ格納部１０４Ｃに蓄積する（ステップＳ１０６）。
【００８０】
センターノード１０Ｃのパケット制御部１０１Ｃは、特定時間SFRREPパケットを受信しなくなると、任意のタイミング（例えば、最初のSFRREPパケットを受信してから３分後）でSFRREPパケットの受信を打ち切る（ステップＳ１０７）。
【００８１】
続いて、センターノード１０Ｃの構築経路管理部１０２Ｃは、受信データ格納部１０４Ｃに蓄積したMACアドレス及び位置情報に基づき、ルーティングテーブルを作成する。具体的には、構築経路管理部１０２Ｃは、各ネクストホップノード１０ＮのMACアドレス毎に、各ネクストホップノード１０ＮにIPアドレスを割り振り、ルーティングテーブルを作成する（ステップＳ１０８）。ルーティングテーブルは、各ノード１０同士の繋がりを示す。構築経路管理部１０２Ｃは、作成したルーティングテーブルを、記憶部１６Ｃの構築経路格納部１０３Ｃに蓄積する。
【００８２】
センターノード１０Ｃの構築経路管理部１０２Ｃは、作成したルーティングテーブルの経路情報に基づき、各ネクストホップノード１０Ｎに向けて、IPアドレスとルーティングテーブルとを含んだパケットを送信する（ステップＳ１０９）。
【００８３】
各ネクストホップノード１０Ｎの構築経路管理部１０２Ｎは、ネットワークインターフェース１３Ｎを介して、IPアドレスとルーティングテーブルとを含んだパケットを受信する。構築経路管理部１０２Ｎは、受信したパケットに含まれる、IPアドレスとルーティングテーブルとを、記憶部１６Ｎの受信データ格納部１０５Ｎに蓄積する。各ネクストホップノード１０Ｎは、IPアドレスとルーティングテーブルとに基づき、データリンクを確立し、アドホックネットワークを構築する。
【００８４】
５．まとめ
典型的に、アドホックネットワークの経路を新規に構築するため、各ノードが、周囲のネクストホップノードに向けて、無差別にブロードキャストしてパケットを送信する技術が知られている。この技術によれば、ノードの数が増加するに従って、ネットワークに掛かる負荷やメモリリソースの消費が増大する。また、通信経路を探索するために、人間による手入力が必要であるとすれば、ノードのが増加するに従って、人的な手間も掛かる。
【００８５】
これに対して、本実施形態によれば、センターノード１０Ｃを除き、全てのネクストホップノード１０Ｎは、SFRREQパケットを１回しか送信しない（ステップＳ２０２、Ｓ２０３）。これにより、各ネクストホップノード１０Ｎが多数のネクストホップノード１０ＮからSFRREQパケットを受信する可能性を減らすことができる。
【００８６】
また、本実施形態によれば、センターノード１０Ｃを除き、全てのネクストホップノード１０Ｎは、通信可能エリアＡ１のうちの一部（リクエスト送信エリアＡ２）に位置するネクストホップノード１０Ｎにのみ、SFRREQパケットを送信する（ステップＳ２０７、Ｓ２０８）。これにより、各ネクストホップノード１０Ｎが多数のネクストホップノード１０ＮからSFRREQパケットを受信する可能性をさらに減らすことができる。
【００８７】
具体的には、本実施形態によれば、ネクストホップノード１０Ｎは、１以上の別のネクストホップノード１０Ｎに、HELLOパケットに対する応答パケットとして、応答元である別のネクストホップノード１０Ｎの位置情報を追加的に記述した応答HELLOパケットを要求する（ステップＳ２０３）。これにより、ネクストホップノード１０Ｎは、SFRREQパケットを送信する前に、別のネクストホップノード１０Ｎの位置情報を取得することができるので、SFRREQパケットを送信する対象を確実に絞り込むことができる。
【００８８】
また、本実施形態によれば、センターノード１０Ｃが、各ネクストホップノード１０ＮにIPアドレスを割り振り、ルーティングテーブルを作成する（ステップＳ１０８）。これにより、センターノード１０Ｃだけが、経路を構築する際に必要な情報を格納する構築経路格納部１０３Ｃを有し、各ネクストホップノード１０Ｎは有しない。そのため、各ネクストホップノード１０Ｎが消費するリソースを軽減することができる。また、ネットワーク内で送受信されるパケット量が抑えられ、ネットワークに掛かる負荷が軽減される。
【００８９】
以上のように、本実施形態によれば、ネットワークに掛かる負荷を軽減し、各ノードのメモリリソースの消費を抑え、人的な作業をなくすことができる。
【００９０】
本技術の各実施形態及び各変形例について上に説明したが、本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００９１】
１…アドホックネットワーク経路構築システム
１０…情報処理装置（ノード）
１０Ｃ…センターノード
１０Ｎ…ネクストホップノード
１０Ｎ１…第１のネクストホップノード
１０Ｎ２…第２のネクストホップノード
１０Ｎ３…終端ノード
１０１Ｃ、１０１Ｎ…パケット制御部 
１０２Ｃ、１０２Ｎ…構築経路管理部 
１０３Ｃ…構築経路格納部 
１０４Ｃ、１０５Ｎ…受信データ格納部
【図１】
2018117205.tif 000003
【図２】
2018117205.tif 000004
【図３】
2018117205.tif 000005
【図４】
2018117205.tif 000006
【図５】
2018117205.tif 000007
【図６】
2018117205.tif 000008
【図７】
2018117205.tif 000009
【図８】
2018117205.tif 000010
【図９】
2018117205.tif 000011
【図１０】
2018117205.tif 000012