(57)【特許請求の範囲】
【請求項１】
マルチホップネットワークを構成する通信装置であって、
ルートノードまでの通信経路を特定する識別子と、前記通信経路における通信データの宛先を示す宛先情報と、を含む経路情報に基づいて、前記通信データの転送に使用する前記通信経路を切替える切替え部と、
前記切替え部により切替えられた前記通信経路の前記宛先に対して、前記通信データを転送する制御部と、を備え、
前記切替え部は、新たな経路情報を取得した場合、前記通信データの転送に使用する通信経路を、前記新たな経路情報が示す通信経路に切替え、
前記新たな経路情報が示す経路情報のルートノードは、前記経路情報が示す前記通信経路の前記ルートノードと異なる
通信装置。
【請求項２】
前記経路情報は前記通信経路の優先度を示す優先度情報を含み、
前記切替え部は、前記経路情報が示す前記通信経路よりも優先度が高い通信経路の経路情報を取得した場合、前記通信データの転送に使用する前記通信経路を、前記優先度が高い前記通信経路に切替える
請求項１に記載の通信装置。
【請求項３】
前記識別子は、サーバアドレス、ボーダルータアドレス、及びRPL instance IDの少なくとも１つを含む
請求項１〜請求項２のいずれか１項に記載の通信装置。
【請求項４】
前記宛先情報は、前記通信データの転送先となる他の通信装置のアドレスを含む
請求項１〜請求項３のいずれか１項に記載の通信装置。
【請求項５】
所定の通信経路への切替えを指示する切替え指示を取得する取得部をさらに備え、  前記切替え部は、前記通信データの転送に使用する通信経路を、前記取得部が取得した前記切替え指示により指示された前記通信経路に切替える
請求項１〜請求項４のいずれか１項に記載の通信装置。
【請求項６】
前記通信経路の接続性を示す接続情報を収集する収集部をさらに備え、
前記切替え部は、前記収集部により収集された接続情報に基づいて、前記通信データの転送に使用する通信経路を切替える
請求項１〜請求項５のいずれか１項に記載の通信装置。
【請求項７】
前記切替え部は、前記接続情報に基づいて使用中の前記通信経路を接続不能と判定した場合、前記通信データの転送に使用する前記通信経路を、前記経路情報に基づき接続可能な通信経路に切替える
請求項６に記載の通信装置。
【請求項８】
前記接続情報は、前記通信データの転送に失敗した回数及びＩＣＭＰのエラー通知の少なくとも一方を含む
請求項６又は請求項７に記載の通信装置。
【請求項９】
請求項１〜請求項８のいずれか１項に記載の通信装置を複数備えるマルチホッピングネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置及びマルチホッピングネットワークに関する。
【背景技術】
【０００２】
従来、マルチホップネットワークにおける通信経路の形成方法として、通信装置からサーバ（ルートノード）までの通信経路を複数形成する方法が知られている。また、当該方法により形成された複数の通信経路の中から、通信データの転送に用いる通信経路を所定時間毎に切替えることにより、通信品質を維持する方法も知られている。
【０００３】
しかしながら、上記従来の方法では、通信装置から所定のサーバまでの通信経路の切替えは可能であるが、所定のサーバが他のサーバに切替えられた場合、サーバの切替えに応じて、所定のサーバまでの通信経路を他のサーバまでの通信経路に切替えたりすることができなかった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１３５８１７公報
【非特許文献】
【０００５】
【非特許文献１】P. Thubert et al., “RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks,” IETF, RFC6550, 2012
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ルートノードの切替えに応じて通信経路を切替えることができる通信装置及びマルチホッピングネットワークを提供する。
【課題を解決するための手段】
【０００７】
一実施形態に係る通信装置は、マルチホップネットワークを構成する。通信装置は、保持部と、記憶部と、切替え部と、制御部とを備える。保持部は、通信データを保持する。記憶部は、通信経路を特定する識別子と、通信経路における通信データの宛先を示す宛先情報と、を含む経路情報を記憶する。切替え部は、記憶部に記憶された経路情報に基づいて、通信データの転送に使用する通信経路を切替える。制御部は、切替え部により切替えられた通信経路の宛先に対して、通信データを転送する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る通信装置の機能構成を示すブロック図。
【図２】マルチホップネットワークの一例を示す図。
【図３】経路情報の一例を示す表。
【図４】第１実施形態に係る通信装置のハードウエア構成を示すブロック図。
【図５】マルチホップネットワークの一例を示す図。
【図６】第１実施形態に係る通信装置の動作を示すフローチャート。
【図７】第２実施形態に係る通信装置の機能構成を示すブロック図。
【図８】第２実施形態に係る通信装置の動作を示すフローチャート。
【図９】第３実施形態に係る通信装置の機能構成を示すブロック図。
【図１０】第３実施形態に係る通信装置の動作を示すフローチャート。
【図１１】第４実施形態に係る通信装置の動作を示すシーケンス図。
【図１２】ＤＩＯのフォーマットの一例を示す図。
【図１３】第４実施形態に係る通信装置の動作を示すフローチャート。
【図１４】ＤＯＤＡＧ情報の一例を示す図。
【図１５】ＤＯＤＡＧ情報の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。
【００１０】
（第１実施形態）
第１実施形態に係る通信装置１０について、図１〜図６を参照して説明する。本実施形態に係る通信装置１０は、マルチホップネットワークを構成する。マルチホップネットワークは、複数の通信装置（ノード）により構成される、ツリー型のトポロジーを有するネットワークである。マルチホップネットワークにおいて、各種の情報は、通信経路に従って、複数の通信装置の間で転送される。本実施形態において、通信装置１０は、使用中の通信経路を、他の通信装置から取得した他のルートノードへの新たな通信経路に切替える。
【００１１】
まず、本実施形態に係る通信装置１０の機能構成について、図１〜図３を参照して説明する。図１は、本実施形態に係る通信装置１０の機能構成を示すブロック図である。図１に示すように、この通信装置１０は、通信データ保持部１と、通信経路記憶部２と、通信経路切替え部３と、通信制御部４とを備える。
【００１２】
通信データ保持部１（以下、「保持部１」という）は、通信データを保持する。通信データは、マルチホップネットワークにおいて、転送の目的とされる任意のデータである。保持部１に保持された通信データは、通信経路に従って、通信装置１０から、マルチホップネットワークを構成する他の通信装置へ転送される。
【００１３】
通信経路記憶部２（以下、「記憶部２」という）は、経路情報を記憶する。経路情報は、各通信経路に対して設定される情報である。経路情報は、経路識別子と、宛先情報と、インターフェース情報と、優先度情報とを含むが、これに限られない。
【００１４】
経路識別子は、各通信経路を特定する情報である。各通信経路にＩＤが割当てられている場合、経路識別子として当該ＩＤを用いることができる。以下では、ＩＤ００（００は任意）により特定される通信経路を、通信経路００という。
【００１５】
また、通信装置１０からルートノード（最終宛先となる通信装置）までの通信経路が１つだけの場合、経路識別子として、ルートノードのアドレスを用いることができる。具体的には、経路識別子として、サーバアドレスやボーダルータアドレスなどを用いることができる。
【００１６】
ここで、図２は、通信装置１０が構成するマルチホップネットワークの一例を示す図である。図２のマルチホップネットワークは、４つの通信装置１０〜１３により構成されている。図２において、ルートノードは通信装置１３である。通信装置１０からルートノードまでの通信経路は、通信装置１１を経由する通信経路０１と、通信装置１２を経由する通信経路０２と、の２つ存在する。
【００１７】
図２に示すように、通信装置１０からルートノードまでの通信経路が２つある場合、ルートノードアドレスだけでは通信経路を特定できない。このような場合には、経路識別子として、ルートノードまでの複数の通信経路をそれぞれ識別する情報を、ルートノードアドレスと併用してもよい。このような情報として、例えば、RPL Instance IDを用いることができる。RPL Instance IDについては、後述する。
【００１８】
宛先情報は、通信経路毎に設定された通信データの宛先、すなわち、通信データの転送先となる通信装置を示す情報である。例えば、図２の通信経路０１の場合、通信装置１０の宛先は、通信装置１１である。以下では、「宛先」のことを「次ホップ」という。宛先情報は、例えば、次ホップとなる通信装置のアドレスである。
【００１９】
インターフェース情報は、通信経路ごと又は次ホップごとに設定された通信インターフェースを示す情報である。インターフェース情報として、通信装置１０が備える各通信インターフェースに割当てられたＩＤや種類を用いることができる。なお、通信装置１０が通信インターフェースを１つしか備えない場合、記憶部２はインターフェース情報を記憶しなくてもよい。
【００２０】
優先度情報は、通信経路を通信データの転送に使用するか否かの優先度を示す情報である。優先度情報が示す優先度は、「使用する」及び「使用しない」に対応する２値の優先度であってもよいし、多値の優先度であってもよい。以下では、優先度１は「使用する」に対応し、優先度０は「使用しない」に対応するものとする。１及び０は逆であってもよい。
【００２１】
ここで、図３は、図２の通信装置１０の記憶部２に記憶された経路情報の一例を示す表である。図３の経路情報によれば、通信装置１０は、通信経路０１を使用しており、通信データを無線で通信装置１１に転送する。図３に示すように、記憶部２には、複数の通信経路の経路情報が記憶されていてもよい。
【００２２】
通信経路切替え部３（以下、「切替え部３」という）は、記憶部２に記憶された経路情報に基づいて、通信データの転送に使用する通信経路を切替える。本実施形態において、切替え部３は、他の通信装置から経路情報を取得し、取得した経路情報と記憶部２に記憶された経路情報とを比較して、使用する通信経路を選択する。切替え部３は、使用する通信経路を選択すると、選択した通信経路の優先度を１に変更し、記憶部２に記憶された他の通信経路の優先度を０に変更する。これにより、通信経路は切替えられる。切替え部３による通信経路の選択方法については後述する。
【００２３】
通信制御部４（以下、「制御部４」という）は、切替え部３により切替えられた通信経路を使用して、通信データを転送する。制御部４は、まず、記憶部２に記憶された優先度情報を参照し、優先度１の経路情報を取得する。次に、制御部４は、取得した経路情報の宛先情報を参照して次ホップを取得する。そして、制御部４は、取得した次ホップに、通信インターフェースを介して、保持部１に保持された通信データを転送する。通信制御部４が転送する通信データは、他の通信装置から受信した通信データであってもよいし、通信装置１０が生成した通信データであってもよい。
【００２４】
記憶部２にインターフェース情報が記憶されている場合、制御部４は、インターフェース情報を参照し、使用する通信経路に設定された通信インターフェースを取得する。制御部４は、取得した通信インターフェースを介して通信データを転送する。これにより、通信装置１０が複数の通信インターフェースを備える場合であっても、通信経路に応じて通信インターフェースを使い分けることができる。
【００２５】
次に、本実施形態に係る通信装置１０のハードウエア構成について、図４を参照して説明する。本実施形態に係る通信装置１０は、コンピュータを備え、無線又は有線によるデータの通信が可能な装置である。通信装置１０は、例えば、サーバ、ルータ、センサ、スマートフォン、及びスマートメータであるが、これに限られない。いずれの場合も、通信装置１０は、コンピュータによりプログラムを実行することにより、上述の各機能構成を実現する。
【００２６】
ここで、図４は、本実施形態に係る通信装置１０のハードウエア構成を示すブロック図である。図４に示すように、この通信装置１０は、ＣＰＵ１０１と、入力装置１０２と、表示装置１０３と、通信インターフェース１０４と、主記憶装置１０５と、外部記憶装置１０６とを備え、これらはバス１０７により相互に接続されている。
【００２７】
ＣＰＵ（中央演算装置）１０１は、主記憶装置１０５上で、通信プログラムを実行する。通信プログラムとは、通信装置１０の各機能構成を実現するプログラムのことである。ＣＰＵ１０１が、通信プログラムを実行することにより、上述の各機能構成は実現される。
【００２８】
入力装置１０２は、通信装置１０に外部からデータや命令を入力するための装置である。入力装置１０２は、例えば、キーボード、マウス、及びタッチパネルなどの、ユーザが直接的に入力するための装置であってもよい。また、入力装置１０２は、外部装置からの入力を可能にするＵＳＢなどの装置や、ソフトウエアであってもよい。
【００２９】
表示装置１０３は、通信装置１０から出力される映像信号を表示するディスプレイである。表示装置１０３は、例えば、ＬＣＤ（液晶ディスプレイ）、ＣＲＴ（ブラウン管）、及びＰＤＰ（プラズマディスプレイ）であるが、これに限られない。保持部１に保持された通信データや、記憶部２に記憶された経路情報などは、この表示装置１０３により表示することができる。
【００３０】
通信インターフェース１０４は、この通信装置１０が、マルチホップネットワークを構成する他の通信装置と通信するための装置である。通信装置１０は、通信インターフェース１０４を介して、他の通信装置と所定の通信方式で無線通信又は有線通信を行う。通信装置１０は、例えば、規格や周波数帯域が同一の又は異なる、複数の通信インターフェースを備えてもよい。また、通信装置１０は、無線インターフェース及び有線通信インターフェースをそれぞれ備えてもよい。
【００３１】
主記憶装置１０５は、通信プログラムの実行の際に、通信プログラム、通信プログラムの実行に必要なデータ、及び通信プログラムの実行により生成されたデータなどを記憶する。通信プログラムは、主記憶装置１０５上で展開され、実行される。主記憶装置１０５は、例えば、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭであるが、これに限られない。保持部１及び記憶部２は、この主記憶装置１０５上及び外部記憶装置１０６上の少なくとも一方に構築される。また、主記憶装置１０５は、コンピュータのＯＳ、ＢＩＯＳ、及び各種のミドルウエアを記憶してもよい。
【００３２】
外部記憶装置１０６は、通信プログラム、通信プログラムの実行に必要なデータ、及び通信プログラムの実行により生成されたデータなどを記憶する。これらのプログラムやデータは、通信プログラムの実行の際に、主記憶装置１０５に読み出される。外部記憶装置１０６は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。
【００３３】
なお、通信プログラムは、コンピュータに予めインストールされていてもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶されていてもよい。また、通信プログラムは、インターネット上にアップロードされていてもよい。通信装置１０は、入力装置１０２及び表示装置１０３を備えない構成も可能である。
【００３４】
次に、本実施形態に係る通信装置１０の動作について、図５及び図６を参照して説明する。ここで、図５は、通信装置１０が構成するマルチホップネットワークの一例を示す図である。また、図６は、本実施形態に係る通信装置１０の動作を示すフローチャートである。
【００３５】
図５のマルチホップネットワークは、５つの通信装置１０〜１４により構成されている。図５において、通信装置１３，１４は、通信データを収集するサーバ（ルートノード）である。通信装置１０の記憶部２は、動作の開始時点において、図３に示した経路情報を記憶しているものとする。また、図６のフローチャートは、新たに受信した経路情報に対する優先度が高く設定されるポリシーに従った動作を示す。
【００３６】
ステップＳ１において、切替え部３は、通信インターフェース１０４を介して、他の通信装置から経路情報を取得する。他の通信装置は、通信装置１０の次ホップである通信装置１１であってもよいし、サーバである通信装置１３であってもよい。なお、通信装置１０が取得する経路情報は、優先度情報は含まなくてもよい。
【００３７】
ステップＳ２において、切替え部３は、取得した経路情報が新たな経路情報であるか判定する。新たな経路情報とは、記憶部２に記憶されていない経路情報のことである。具体的には、切替え部３は、取得した経路情報の経路識別子と、記憶部２に記憶された経路情報の識別子とを比較する。切替え部３は、取得した経路情報の経路識別子と、記憶部２に記憶された経路情報の識別子と、が一致しない場合、取得した経路情報を新たな経路情報と判定する。
【００３８】
取得した経路情報が新たな経路情報でない場合（ステップＳ２のＮＯ）、すなわち、取得した経路情報が通信経路０１又は通信経路０２の経路情報であった場合、処理は終了する。以降、制御部４は、通信経路０１を使用して通信データを転送する。
【００３９】
これに対して、取得した経路情報が新たな経路情報である場合（ステップＳ３のＹＥＳ）、処理はステップＳ３に進む。ここで、切替え部３が取得した新たな経路情報は、通信経路０３の経路情報であるものとする。通信経路０３は、図５において破線で示した通信経路である。通信経路０３のルートノードは通信装置１４であり、次ホップは通信装置１２である。
【００４０】
ステップＳ３において、切替え部３は、新たな経路情報を有する通信経路０３を、通信データの転送に使用する通信経路として選択する。
【００４１】
ステップＳ４において、記憶部２は、切替え部３が選択した通信経路０３の経路情報を記憶する。通信経路０３の経路情報には優先度情報が含まれない場合、優先度情報は空値となる。
【００４２】
ステップＳ５において、切替え部３は、通信経路０３の優先度を１に変更する。また、切替え部３は、通信経路０１，０２の優先度をいずれも０に変更する。これにより、使用する通信経路が通信経路０３に切替えられる。
【００４３】
以降、制御部４は、通信経路０３を使用して通信データを転送する。すなわち、制御部４は、通信データを通信経路０３の次ホップである通信装置１２に転送する。また、制御部４は、取得した経路情報を、通信経路が切替えられた後、他の通信装置に転送してもよい。
【００４４】
以上説明した通り、本実施形態によれば、通信装置１０は、他の通信装置から取得した経路情報に基づいて、使用する通信経路を切替えることができる。したがって、ルートノードが切替えられた場合、切替えられた新たなルートノードまでの経路情報を通信装置１０に入力することにより、通信装置１０が使用する通信経路を切替えることができる。このため、サーバの異常や、通信装置間の接続性の悪化により、通信装置１０からルートノードへの通信データの転送に不具合が生じた場合であっても、ルートノードを他の通信装置に切替えることにより、通信装置１０の通信データを容易に収集することができる。
【００４５】
具体的には、通信装置１０からサーバ１３への通信データの転送に不具合が生じた場合、代替サーバ１４をマルチホップネットワークに接続する。そして、代替サーバ１４から、直接又は他の通信装置１２を経由して、通信経路０３の経路情報を通信装置１０に入力する。これにより、通信装置１０は使用する通信経路を自動的に通信経路０３に切替え、代替サーバ１４に通信データを転送する。したがって、通信装置１０の通信データを代替サーバ１４により収集することができる。
【００４６】
なお、本実施形態において、経路情報が多値の優先度を示す優先度情報を含む場合、切替え部３は、新たな経路情報を有する通信経路のうち、優先度が高い通信経路を、通信データの転送に使用する通信経路として選択してもよい。ここでいう優先度が高い通信経路とは、例えば、優先度が所定値以上の通信経路、記憶部２に経路情報を記憶された通信経路よりも優先度が高い通信経路、又は使用中の通信経路よりも優先度が高い通信経路のことである。
【００４７】
（第２実施形態）
第２実施形態に係る通信装置１０について、図７及び図８を参照して説明する。本実施形態に係る通信装置１０は、切替え指示情報に応じて通信経路を切替える。
【００４８】
まず、第２実施形態に係る通信装置１０の機能構成について、図７を参照して説明する。図７は、本実施形態に係る通信装置１０の機能構成を示すブロック図である。図７に示すように、この通信装置１０は、切替え指示情報取得部５を備える。他の構成は第１実施形態と同様である。
【００４９】
切替え指示情報取得部５（以下、「取得部５」という）は、切替え指示情報を取得する。切替え指示情報とは、使用中の通信経路を、所定の通信経路へ切替えることを指示する情報である。以下、切替え指示情報が指示される通信経路を切替え指示経路という。切替え指示情報には、切替え指示経路を特定する経路識別子が含まれる。切替え指示情報として、例えば、所定の条件を満たすように経路情報の一部に変更を加えた情報を用いることができる。具体的には、ＲＰＬにおけるランク値を所定の値に設定したＤＯＤＡＧ情報を、切替え指示情報として用いることができる。ＤＯＤＡＧ情報については後述する。また、切替え指示情報として、所定のフォーマットの経路情報を用いることもできるが、切替え指示情報はこれに限られない。
【００５０】
本実施形態に係る通信装置１０のハードウエア構成は、第１実施形態と同様である。コンピュータが通信プログラムを実行することにより、取得部５の機能構成は実現される。
【００５１】
次に、本実施形態に係る通信装置１０の動作について、図８を参照して説明する。図８は、本実施形態に係る通信装置１０の動作を示すフローチャートである。以下では、通信装置１０は、図５のマルチホップネットワークを構成し、動作の開始時点において、通信経路０１，０３の経路情報を記憶し、通信経路０１を使用しているものとする。
【００５２】
ステップＳ６において、取得部５は、通信装置１０が通信インターフェース１０４を介して他の通信装置から受信した情報の中から、切替え指示情報を取得する。他の通信装置は、通信装置１０の次ホップである通信装置１１であってもよいし、サーバである通信装置１３であってもよい。
【００５３】
ステップＳ７において、切替え部３は、取得部５が取得した切替え指示情報の切替え指示経路が、使用中の通信経路であるか判定する。切替え部３は、切替え指示経路の経路識別子と、使用中の通信経路を特定する経路識別子とを比較し、両者が一致する場合、切替え指示経路は使用中の通信経路であると判定する。
【００５４】
切替え指示経路が使用中の通信経路である場合（ステップＳ７のＹＥＳ）、すなわち、切替え指示経路が通信経路０１である場合、処理は終了する。以降、制御部４は、通信経路０１を使用して通信データを転送する。
【００５５】
これに対して、切替え指示経路が使用中の通信経路でない場合（ステップＳ７のＮＯ）、すなわち、切替え指示経路が通信経路０２，０３である場合、処理はステップＳ８に進む。
【００５６】
ステップＳ８において、切替え部３は、切替え指示経路が記憶部２に経路情報を記憶された通信経路であるか判定する。切替え部３は、切替え指示経路の経路識別子と、記憶部２に記憶された経路情報の経路識別子とをそれぞれ比較し、両者が一致する場合、切替え指示経路の経路情報は記憶部２に記憶されていると判定する。
【００５７】
切替え指示経路の経路情報が記憶部２に記憶されていない場合（ステップＳ８のＮＯ）、すなわち、切替え指示経路が通信経路０２である場合、処理は終了する。以降、制御部４は、通信経路０１を使用して通信データを転送する。
【００５８】
これに対して、切替え指示経路の経路情報が記憶部２に記憶されている場合（ステップＳ８のＹＥＳ）、すなわち、切替え指示経路が通信経路０３である場合、処理はステップＳ９に進む。
【００５９】
ステップＳ９において、切替え部３は、切替え指示経路０３を、通信データの転送に使用する通信経路として選択する。
【００６０】
ステップＳ１０において、切替え部３は、切替え指示経路０３の優先度を１に変更する。また、切替え部３は、通信経路０１の優先度を０に変更する。これにより、使用する通信経路が通信経路０３に切替えられる。
【００６１】
以降、制御部４は、通信経路０３を使用して通信データを転送する。すなわち、制御部４は、通信データを通信経路０３の次ホップである通信装置１２に転送する。また、制御部４は、切替え指示情報を、通信経路が切替えられた後、他の通信装置に転送してもよい。
【００６２】
以上説明した通り、本実施形態によれば、通信装置１０は、他の通信装置から取得した切替え指示情報に基づいて、使用する通信経路を切替えることができる。切替えられる通信経路は、予め記憶部２に経路情報を記憶されているため、通信経路の経路情報を記憶部２に記憶させる時間が不要となり、短時間で通信経路を切替えることができる。
【００６３】
（第３実施形態）
第３実施形態に係る通信装置１０について、図９及び図１０を参照して説明する。本実施形態に係る通信装置１０は、通信経路の接続性に応じて通信経路を切替える。
【００６４】
まず、第３実施形態に係る通信装置１０の機能構成について、図９を参照して説明する。図９は、本実施形態に係る通信装置１０の機能構成を示すブロック図である。図９に示すように、この通信装置１０は、接続情報収集部６を備える。他の構成は第１実施形態と同様である。
【００６５】
接続情報収集部６（以下、「収集部６」という）は、接続情報を収集する。接続情報とは、通信経路の接続性を示す情報である。接続情報は、接続性の有無を示す情報であってもよいし、接続性の強さを示す情報であってもよい。接続情報として、例えば、通信データの転送に失敗した回数や、ＩＣＭＰのエラー通知を用いることができるが、接続情報はこれに限られない。
【００６６】
本実施形態に係る通信装置１０のハードウエア構成は、第１実施形態と同様である。コンピュータが通信プログラムを実行することにより、収集部６の機能構成は実現される。
【００６７】
次に、本実施形態に係る通信装置１０の動作について、図１０を参照して説明する。図１０は、本実施形態に係る通信装置１０の動作を示すフローチャートである。以下では、通信装置１０は、図５のマルチホップネットワークを構成し、動作の開始時点において、通信経路０１，０２，０３の経路情報を記憶し、通信経路０１を使用しているものとする。また、通信経路０１，０２は接続不能、通信経路０３は接続可能であるものとする。
【００６８】
ステップＳ１１において、収集部１１は、使用中の通信経路０１の接続性を示す接続情報を収集する。収集部６は、接続情報を他の通信装置から収集してもよいし、通信データの転送結果の履歴情報などから生成してもよい。他の通信装置は、通信装置１０の次ホップである通信装置１１であってもよいし、サーバである通信装置１３であってもよい。
【００６９】
ステップＳ１２において、切替え部３は、収集部６が収集した接続情報に基づいて、使用中の通信経路０１は接続可能であるか判定する。すなわち、切替え部３は、使用中の通信経路０１を用いて通信データをサーバである通信装置１３まで転送可能であるか判定する。
【００７０】
切替え部３は、例えば、接続情報が示す接続性と所定の閾値とを比較して当該判定を行う。例えば、接続情報が所定期間に通信データの転送に失敗した回数である場合、切替え部３は、転送に失敗した回数と、所定の閾値とを比較し、失敗した回数が閾値以上の場合、通信経路０１は接続不能と判定する。あるいは、切替え部３は、ＩＣＭＰのエラー通知の有無に基づいて、接続可能か判定してもよい。
【００７１】
使用中の通信経路０１が接続可能である場合（ステップＳ１２のＹＥＳ）、処理は終了する。以降、制御部４は、通信経路０１を使用して通信データを転送する。
【００７２】
これに対して、使用中の通信経路０１が接続不能である場合（ステップＳ１２のＮＯ）、処理はステップＳ１３に進む。
【００７３】
ステップＳ１３において、切替え部３は、使用中の通信経路以外の通信経路（他の通信経路）の経路情報が、記憶部２に記憶されているか判定する。
【００７４】
記憶部２に他の通信経路の経路情報が記憶されていない場合（ステップＳ１３のＮＯ）、処理は終了する。以降、通信装置１０は、マルチホップネットワークから切断される。あるいは、通信装置１０は、第１実施形態において説明した方法により、新たな通信経路を使用した通信を行ってもよい。
【００７５】
これに対して、記憶部２に他の通信経路の経路情報が記憶されている場合（ステップＳ１３のＹＥＳ）、処理はステップＳ１４に進む。
【００７６】
ステップＳ１４において、切替え部３は、収集部６が収集した接続情報に基づいて、記憶部２に経路情報を記憶された他の通信経路が接続可能であるか判定する。当該判定は、ステップＳ１２と同様の方法で行うことができる。他の通信経路の接続情報は、ステップＳ１１において収集されてもよいし、ステップＳ１４において収集されてもよい。
【００７７】
記憶部２に記憶された他の通信経路が全て接続不能である場合（ステップＳ１４のＮＯ）、処理は終了する。以降、通信装置１０は、マルチホップネットワークから切断される。あるいは、通信装置１０は、第１実施形態において説明した方法により、新たな通信経路を使用した通信を行ってもよい。
【００７８】
これに対して、記憶部２に記憶された他の通信経路の少なくとも１つが接続可能である場合（ステップＳ１４のＹＥＳ）、処理はステップＳ１５に進む。
【００７９】
ステップＳ１５において、切替え部３は、接続可能と判定された通信経路０３を、通信データの転送に使用する通信経路として選択する。接続可能な他の通信経路が複数ある場合には、切替え部３は、例えば、接続情報に基づいて接続性が最も良好な通信経路や、サーバ（ルートノード）までのホップ数が最も少ない通信経路を選択する。
【００８０】
ステップＳ１６において、切替え部３は、選択した通信経路０３の優先度を１に変更する。また、切替え部３は、通信経路０１，０２の優先度を０に変更する。これにより、使用する通信経路が通信経路０３に切替えられる。
【００８１】
以降、制御部４は、通信経路０３を使用して通信データを転送する。すなわち、通信データを、通信経路０３の次ホップである通信装置１２に転送する。
【００８２】
以上説明した通り、本実施形態によれば、使用中の通信経路の接続性がない、あるいは低い場合、通信装置１０は接続可能な他の通信経路を自動的に選択し、サーバ（ルートノード）と通信することができる。
【００８３】
（第４実施形態）
第４実施形態に係る通信装置１０について、図１１〜図１５を参照して説明する。本実施形態に係る通信装置１０は、通信規約としてＲＰＬ（IPv6 Routing Protocol for Low-Power and Lossy Networks）を採用したマルチホップネットワークを構成する。
【００８４】
まず、図１１を参照して、図２の通信装置１１〜１３が構成するマルチホップネットワークに通信装置１０が参加する際の、通信装置１０の通信経路を設定する方法について説明する。以下では、通信装置１１，１２は通信装置１０の隣接ノード、通信装置１３はルートノード（サーバ）であるものとする。
【００８５】
通信装置１０は、隣接ノード（通信装置）１１，１２に、ＤＩＳ（DODAG Information Solicitation）をマルチキャストで送信する。ＤＩＳは、受信したノードにＤＩＯ（DODAG Information Object）の送信を要求するメッセージである。ＤＩＳを受信した隣接ノード１１，１２は、通信装置１０に、ＤＩＯを送信する。
【００８６】
ＤＩＯは、マルチホップネットワークのトポロジーであるＤＯＤＡＧ（Destination Oriented Directed Acyclic Graph）に関するＤＯＤＡＧ情報を通知するメッセージである。ここで、図１２は、ＤＩＯのフォーマットの一例を示す図である。図１２に示すように、ＤＩＯは、ＤＯＤＡＧ情報として、RPL Instance ID、Version number、Rank、G、MOP、Pfr、DTSN、Flags、及びＤＯＤＡＧＩＤを通知する。
【００８７】
RPL Instance IDは、ＲＰＬの各インスタンスに与えられる識別子である。RPL Instance IDのデータ長は、１バイトである。RPL Instance IDは、最上位ビットが０のときグローバルなインスタンスを示し、１のときローカルなインスタンスを示す。RPL Instance IDは、経路識別子として用いることができる。
【００８８】
Version number（バージョン番号）は、各通信経路のバージョンである。バージョン番号のデータ長は、１バイトである。バージョン番号は、経路識別子として用いることができる。
【００８９】
Rank（ランク値）は、ルートノードまでのホップ数である。ランク値が小さい程、ルートノードに近いことを意味する。ルートノードのランク値は０である。ＲＰＬでは、このランク値に基づいて、通信経路が設定される。Rankのデータ長は２バイトである。
【００９０】
Gは、ルートノードとの接続性を示す。Gのデータ長は１ビットである。Gは、第３実施形態における接続情報として用いることができる。
【００９１】
ＤＯＤＡＧＩＤは、ルートノードのＩＰｖ６アドレスである。ＤＯＤＡＧＩＤのデータ長は１６バイトである。ＤＯＤＡＧＩＤは、経路識別子として用いることができる。
【００９２】
隣接ノード１１，１２から上述のようなＤＩＯを受信した通信装置１０は、ＤＩＯに含まれる各隣接ノード１１，１２のランク値などに基づいて、ルートノード（通信装置）１３への通信経路０１を設定する。通信装置１０は通信経路０１を設定すると、設定された通信経路０１のルートノード１３にＤＡＯ（Destination Advertisement Object）を送信する。ＤＡＯは、通信装置１０の次ホップ（親ノード）を通知するメッセージである。ＤＡＯを受信することにより、ルートノード１３は通信装置１０の次ホップを取得することができる。
【００９３】
ＤＡＯを受信したルートノード１３は、通信装置１０に、ＤＡＯ＿ＡＣＫを送信する。ＤＡＯ＿ＡＣＫは、ＤＡＯを受信したことを通知するメッセージである。通信装置１０がＤＡＯ＿ＡＣＫを受信すると、通信経路０１の設定が完了する。以降、通信装置１０は、通信経路０１を使用して通信データを転送することができる。
【００９４】
また、通信経路０１の設定の際、通信装置１０は、隣接ノード１１，１２から受信したＤＩＯにより通知されたＤＯＤＡＧ情報を、経路情報として記憶部２に記憶する。
【００９５】
次に、本実施形態に係る通信装置１０の動作について、図１３〜図１５を参照して説明する。図１３は、本実施形態に係る通信装置１０の動作を示すフローチャートである。以下では、通信装置１０は、サーバＡ（ルートノード）までの通信経路を設定されており、当該通信経路を設定する際に使用したＤＯＤＡＧ情報（ＤＯＤＡＧ１）を記憶しているものとする。本実施形態においては、経路情報は２段階の優先度を含み、RPL Instance IDの最上位ビットが経路情報の優先度を表す。
【００９６】
図１４は、通信装置１０の記憶部２に記憶されたＤＯＤＡＧ１（経路情報）の一例を示す図である。図１４に示すように、ＤＯＤＡＧ１には、RPL Instance IDと、ＤＯＤＡＧＩＤと、バージョン番号と、通信装置１０のランク値と、隣接ノードのアドレス及びランク値と、が含まれる。ランク値が０の通信装置はサーバＡである。図１４によれば、サーバＡのアドレスは、２００１：：１である。また、ＤＯＤＡＧＩＤは、サーバＡのアドレスである。
【００９７】
通信装置１０は、他の通信装置からＤＩＯを受信すると、図１３に示す、通信経路の切替え動作を開始する。
【００９８】
ステップＳ１７において、取得部５は、受信したＤＩＯにより通知されたＤＯＤＡＧ情報（ＤＯＤＡＧ２）を取得する。
【００９９】
ステップＳ１８において、切替え部３は、記憶部２に記憶されたＤＯＤＡＧ１に含まれる経路識別子と、取得したＤＯＤＡＧ情報に含まれる経路識別子と、を比較して、ＤＯＤＡＧ２が新たな経路情報であるか判定する。
【０１００】
ここで、図１５は、サーバＢをルートノードとする通信経路のＤＯＤＡＧ情報（ＤＯＤＡＧ２）の一例を示す図である。通信装置１０がＤＯＤＡＧ２を取得した場合、切替え部３は、ＤＯＤＡＧ１及びＤＯＤＡＧ２のRPL Instance ID、ＤＯＤＡＧＩＤ、バージョン番号、及びノードアドレス（サーバＡ，Ｂのアドレス）の少なくとも１つを経路識別子として用いることにより、当該判定を行うことができる。例えば、経路識別子がＤＯＤＡＧＩＤの場合、ＤＯＤＡＧ１のＤＯＤＡＧＩＤは２００１：：１であり、ＤＯＤＡＧ２のＤＯＤＡＧＩＤは２００２：：２であるから、切替え部３は、ＤＯＤＡＧ２は新たな経路情報であると判定する。
【０１０１】
取得したＤＯＤＡＧ２が新たな経路情報でない場合（ステップＳ１８のＮＯ）、処理は終了する。以降、制御部４は、ＤＯＤＡＧ１により設定された通信経路を使用して、通信データを転送する。したがって、通信装置１０の通信データは、サーバＡまで転送される。
【０１０２】
これに対して、取得したＤＯＤＡＧ２が新たな経路情報である場合（ステップＳ１８のＹＥＳ）、処理はステップＳ１９に進む。
【０１０３】
ステップＳ１９において、記憶部２は、取得したＤＯＤＡＧ２を記憶する。
【０１０４】
ステップＳ２０において、切替え部３は、ＤＯＤＡＧ２のインスタンスがローカルであるか判定する。すなわち、切替え部３は、ＤＯＤＡＧ２のRPL Instance IDの最上位ビットが１であるか判定する。
【０１０５】
ＤＯＤＡＧ２のインスタンスがグローバルであった場合（ステップ１８のＮＯ）、すなわち、ＤＯＤＡＧ２のRPL Instance IDの最上位ビットが０であった場合、処理は終了する。以降、制御部４は、ＤＯＤＡＧ１により設定された通信経路を使用して、通信データを転送する。したがって、通信装置１０の通信データは、サーバＡまで転送される。
【０１０６】
これに対して、ＤＯＤＡＧ２のインスタンスがローカルであった場合（ステップ１８のＹＥＳ）、すなわち、ＤＯＤＡＧ２のRPL Instance IDの最上位ビットが１であった場合、処理はステップＳ２１に進む。
【０１０７】
ステップＳ２１において、切替え部３は、ＤＯＤＡＧ２の優先度を１に変更する。また、切替え部３は、ＤＯＤＡＧ１の優先度を０に変更する。これにより、使用する通信経路がＤＯＤＡＧ２により設定された通信経路に切替えられる。
【０１０８】
以降、制御部４は、ＤＯＤＡＧ２により設定された通信経路を使用して通信データを転送する。したがって、通信装置１０の通信データは、サーバＢまで転送される。制御部４は、取得したＤＯＤＡＧ２を通知するＤＩＯを、通信経路が切替えられた後、他の通信装置に転送してもよい。
【０１０９】
以上説明した通り、本実施形態によれば、RPL Instance IDの最上位ビットを切替え指示情報として用いることにより、通信経路を切替えることができる。切替え指示情報は、これに限られず、例えば、ランク値、バージョン番号、ＤＯＤＡＧＩＤなどであってもよい。
【０１１０】
なお、本実施形態において、ＤＯＤＡＧ情報は、切替え指示情報として用いられたが、第１実施形態や第３実施形態における経路情報や接続情報として用いることも可能である。これにより、第１実施形態及び第３実施形態に係る通信装置を実現することができる。
【０１１１】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１１２】
１：通信データ保持部、２：通信経路記憶部、３：通信経路切替え部、４：通信制御部、５：切替え指示取得部、６：接続情報収集部、１０〜１４：通信装置
【図１】
0006313140.tif 000002
【図２】
0006313140.tif 000003
【図３】
0006313140.tif 000004
【図４】
0006313140.tif 000005
【図５】
0006313140.tif 000006
【図６】
0006313140.tif 000007
【図７】
0006313140.tif 000008
【図８】
0006313140.tif 000009
【図９】
0006313140.tif 000010
【図１０】
0006313140.tif 000011
【図１１】
0006313140.tif 000012
【図１２】
0006313140.tif 000013
【図１３】
0006313140.tif 000014
【図１４】
0006313140.tif 000015
【図１５】
0006313140.tif 000016