IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニック株式会社の特許一覧

特開2024-50054通信装置、通信制御方法及び通信システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024050054
(43)【公開日】2024-04-10
(54)【発明の名称】通信装置、通信制御方法及び通信システム
(51)【国際特許分類】
   H04L 41/0668 20220101AFI20240403BHJP
   H04W 84/18 20090101ALI20240403BHJP
【FI】
H04L41/0668
H04W84/18
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022156638
(22)【出願日】2022-09-29
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和3年度、国立研究開発法人情報通信研究機構「革新的情報通信技術研究開発委託研究/海中・水中IoTにおける無線通信技術の研究開発」、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000005821
【氏名又は名称】パナソニックホールディングス株式会社
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】古賀 久雄
(72)【発明者】
【氏名】池崎 一生
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA22
5K067EE06
5K067EE10
5K067EE22
5K067EE25
5K067HH33
(57)【要約】
【課題】親機及び子機から構成される通信ネットワークから親機が離脱したときに、通信ネットワークを適切に再構築すること。
【解決手段】本開示の一実施例に係る通信装置は、マルチホップ通信が行われる通信システムにおける通信装置であって、前記通信システムにおける親機が通信不可状態であることを検知する検知部と、前記親機が通信不可状態である場合、前記通信システムの中継経路における前記通信装置の位置に基づいて、前記通信装置が代理親機になるか否かを決定する決定部と、を備える。
【選択図】図4A
【特許請求の範囲】
【請求項1】
マルチホップ通信が行われる通信システムにおける通信装置であって、
前記通信システムにおける親機が通信不可状態であることを検知する検知部と、
前記親機が通信不可状態である場合、前記通信システムの中継経路における前記通信装置の位置に基づいて、前記通信装置が代理親機になるか否かを決定する決定部と、
を備える通信装置。
【請求項2】
前記親機が通信不可状態であり、前記通信装置の位置が前記親機から1ホップ目であり、かつ、前記通信システムにおける他の通信装置が前記親機から1ホップ目に存在する場合、前記決定部は、前記親機と前記通信装置との間の第1通信品質と、前記親機と前記他の通信装置との間の第2通信品質と、に基づいて、前記通信装置が前記代理親機になるか否かを決定する、
請求項1に記載の通信装置。
【請求項3】
前記親機が通信不可状態であり、前記通信装置の位置が前記親機から1ホップ目であり、前記他の通信装置が前記親機から1ホップ目に存在し、かつ、前記第1通信品質が前記第2通信品質と同一である場合、前記決定部は、待機時間を決定し、前記待機時間待機している間に前記他の通信装置から前記他の通信装置が代理親機になることを示す信号を受信しなかったならば、前記通信装置が前記代理親機になることを決定する、
請求項2に記載の通信装置。
【請求項4】
前記親機が通信不可状態であり、前記通信装置の位置が、前記通信装置が前記代理親機になったならば、前記親機が通信不可状態になった後の第2のマルチホップ通信が行われる第2の通信システムの第2の中継経路において、許容されるホップ上限数以内で、前記通信装置から最も下位に位置する通信装置まで中継可能である位置であり、かつ、前記通信システムにおける他の通信装置が、前記他の通信装置が代理親機になったならば、前記親機が通信不可状態になった後の第3のマルチホップ通信が行われる第3の通信システムの第3の中継経路において、前記許容されるホップ上限数以内で、前記他の通信装置から最も下位に位置する通信装置まで中継可能である位置に存在する場合、前記決定部は、待機時間を決定し、前記待機時間待機している間に前記他の通信装置から前記他の通信装置が代理親機になることを示す信号を受信しなかったならば、前記通信装置が前記代理親機になることを決定する、
請求項1に記載の通信装置。
【請求項5】
前記決定部は、前記待機時間をランダムに決定する、
請求項4に記載の通信装置。
【請求項6】
前記決定部は、前記中継経路における前記通信装置の位置に基づいて、前記待機時間を決定する、
請求項4に記載の通信装置。
【請求項7】
前記検知部は、前記親機からの定期信号を所定時間受信しない場合、前記親機が通信不可状態であることを検知する、
請求項1に記載の通信装置。
【請求項8】
前記親機が通信不可状態であり、かつ、前記通信装置の位置が前記親機から1ホップ目でない場合、前記決定部は、待機時間を決定し、前記待機時間待機している間に前記通信システムにおける他の通信装置から前記他の通信装置が代理親機になることを示す信号を受信しなかったならば、前記通信装置が前記代理親機になることを決定する、
請求項1に記載の通信装置。
【請求項9】
マルチホップ通信が行われる通信システムにおける通信装置が、
前記通信システムにおける親機が通信不可状態であることを検知し、
前記親機が通信不可状態である場合、前記通信システムの中継経路における前記通信装置の位置に基づいて、前記通信装置が代理親機になるか否かを決定する、
通信制御方法。
【請求項10】
マルチホップ通信が行われる通信システムであって、
前記通信システムを構成する子機の中から、前記通信システムの中継経路に基づいて、代理親機候補を決定し、
前記通信システムにおける親機が通信不可状態になった場合に、前記代理親機候補の中から代理親機を決定し、
前記代理親機候補は、前記代理親機候補が前記代理親機になったならば、前記親機が通信不可状態になった後の第2のマルチホップ通信が行われる第2の通信システムの第2の中継経路において、許容されるホップ上限数以内で、前記代理親機候補を除く前記子機に対して中継可能である、
通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置、通信制御方法及び通信システムに関する。
【背景技術】
【0002】
従来、電力線通信(PLC:Power Line Communication)でのマルチホップ通信が知られている(例えば、特許文献1参照)。このようなマルチホップ通信では、親機及び子機を含む複数台の通信端末から構成される通信ネットワーク(以下、単にネットワーク(NW:network)と呼ぶこともある)において、通信端末間で通信信号を中継することで、自端末と直接通信できない端末との通信を行う。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-036316号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記技術のように、1台の親機及び複数台の子機から構成される多台数環境において、親機が故障や電源断等の理由によりネットワークから離脱したときには、ネットワークを再構築する必要がある。このようにネットワークを再構築する際、いずれかの子機1台が親機になる必要がある。しかしながら、ホップ数の深い子機が親機になる場合(例えば、10ホップ目の子機が親機になるといった、それまでの親機から遠い子機が親機になる場合)、それまでにネットワークに参入していた子機の一部が、ホップ上限数の制約を受け、再構築されるネットワークに参入できないおそれがある。
【0005】
本開示の非限定的な実施例は、親機及び子機から構成される通信ネットワークから親機が離脱したときに、通信ネットワークを適切に再構築することができる通信装置、通信制御方法及び通信システムの提供に資する。
【課題を解決するための手段】
【0006】
本開示の一実施例に係る通信装置は、マルチホップ通信が行われる通信システムにおける通信装置であって、前記通信システムにおける親機が通信不可状態であることを検知する検知部と、前記親機が通信不可状態である場合、前記通信システムの中継経路における前記通信装置の位置に基づいて、前記通信装置が代理親機になるか否かを決定する決定部と、を備える。
【0007】
本開示の一実施例に係る通信制御方法は、マルチホップ通信が行われる通信システムにおける通信装置が、前記通信システムにおける親機が通信不可状態であることを検知し、前記親機が通信不可状態である場合、前記通信システムの中継経路における前記通信装置の位置に基づいて、前記通信装置が代理親機になるか否かを決定する。
【0008】
本開示の一実施例に係る通信システムは、マルチホップ通信が行われる通信システムであって、前記通信システムを構成する子機の中から、前記通信システムの中継経路に基づいて、代理親機候補を決定し、前記通信システムにおける親機が通信不可状態になった場合に、前記代理親機候補の中から代理親機を決定し、前記代理親機候補は、前記代理親機候補が前記代理親機になったならば、前記親機が通信不可状態になった後の第2のマルチホップ通信が行われる第2の通信システムの第2の中継経路において、許容されるホップ上限数以内で、前記代理親機候補を除く前記子機に対して中継可能である。
【0009】
なお、これらの包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、または、記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0010】
本開示の一実施例によれば、親機及び子機から構成される通信ネットワークから親機が離脱したときに、通信ネットワークを適切に再構築することができる。
【0011】
本開示の一実施例における更なる利点および効果は、明細書および図面から明らかにされる。かかる利点および/または効果は、いくつかの実施形態並びに明細書および図面に記載された特徴によってそれぞれ提供されるが、1つまたはそれ以上の同一の特徴を得るために必ずしも全てが提供される必要はない。
【図面の簡単な説明】
【0012】
図1】本開示の実施の形態1に係る通信システムの構成例を示す図
図2】本開示の実施の形態1に係るノードのハードウェア構成例を示す図
図3】本開示の実施の形態1に係るノードのCPUの機能構成例を示す図
図4A】本開示の実施の形態1に係る、親機故障前後のトポロジーの例を示す図
図4B】比較例に係る、親機故障前後のトポロジーの例を示す図
図5A】本開示の実施の形態1に係る、親機故障前のトポロジーの例及びリンクコストの例を示す図
図5B】本開示の実施の形態1に係る、親機故障前の自ノード情報及び隣接ノード情報の例を示す図
図6A】本開示の実施の形態1に係る、子機が代理親機になる処理の例を示すフローチャート
図6B図6AのステップS601の例を示すフローチャート
図7】本開示の実施の形態1に係る、子機故障前後のトポロジーの例を示す図
図8A】本開示の実施の形態1に係る、子機がネットワークから離脱した場合に別の子機が代理親機になる処理の例を示すフローチャート
図8B】本開示の実施の形態1に係る、代理親機が再度子機になる処理の例を示すフローチャート
図9】本開示の実施の形態2に係る、親機故障前後のトポロジーの例を示す図
図10】本開示の実施の形態2に係る、子機が代理親機になる処理の例を示すフローチャート
図11A】本開示の実施の形態2に係る、親機が待機時間を決定する処理の例を示すフローチャート
図11B】本開示の実施の形態2に係る、子機が待機時間を決定する処理の例を示すフローチャート
【発明を実施するための形態】
【0013】
以下、図面を適宜参照して、本開示の実施の形態について、詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【0014】
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【0015】
(実施の形態1)
<通信システムの構成>
図1は、本開示の実施の形態1に係る通信システム1の構成例を示す図である。
【0016】
通信システム1は、図1に示すように、親機M 10と、子機a1 20A1,子機a2 20A2,子機a3 20A3,・・・と、子機b1 20B1,・・・と、子機c1 20C1,・・・と、を有する。ここで、親機及び子機の後ろに付された英数字(M、a1、b1、c1等)は、親機及び子機の識別情報(識別子、識別番号、ID等と称されてもよい)を意味する。親機及び子機の識別情報は、簡潔かつわかりやすくするために、1~2個の英数字を用いて示されているが、実際には、シリアル番号(製造番号)、MAC(Medium Access Control)アドレス、その他の一意なランダムな文字列等であってよい。なお、通信システム1(通信ネットワーク)を構成する子機20の数及び接続形態は、図示されるものに限定されない。以下では、それぞれの子機を区別しない場合、子機20と表記する。
【0017】
通信システム1は、例えば、水中(例えば、海中)に配置されてもよい。このように通信システム1が配置される場合、例えば、親機M 10には、制御装置(図示せず)が接続され、各子機20には、この制御装置によって制御されるセンサ等の電子機器(図示せず)が接続されてもよい。あるいは、通信システム1は、例えば、工場やオフィスビル等の施設で用いられてもよい。このように通信システム1が配置される場合、親機M 10には、制御装置(図示せず)が接続され、各子機20には、この制御装置によって制御されるセンサ、照明器具、空調機器等の電子機器(図示せず)が接続されてもよい。なお、一部の子機20には電子機器が接続されなくてもよく、電子機器が接続されない子機20は、中継器(リピータ)として機能してもよい。
【0018】
なお、これらの親機M 10及び子機20は、通信ノード又は単にノード100、通信機器又は単に機器100、通信装置又は単に装置100、通信端末又は単に端末100等と総称されてもよく、親機は、ルート、マスタ等と称されてもよい。
【0019】
通信システム1において、各ノード100(親機M 10及び子機20の各々)は、電力線を通信回線として利用し電力線に信号を重畳するPLCを用いてマルチホップ通信を行う。
【0020】
例えば、図1において、子機a1 20A1、子機b1 20B1及び子機c1 20C1の(親機M 10からの)ホップ数は1であり、子機a2 20A2の(親機M 10からの)ホップ数は2であり、子機a3 20A3の(親機M 10からの)ホップ数は3である。なお、実施の形態1及び他の実施の形態において、ホップ上限数は10であり、通信システム1に接続可能なノードの最大数は1024台であるものとするが、ホップ上限数及びノードの最大数は、これらの値に限定されない。
【0021】
通信システム1では、親機M 10が、子機20から所定の情報を収集し、子機M 10の遠隔監視又は遠隔制御を行う。ここで、親機M 10と各子機20との間で直接的に又は間接的に通信が行われ、親機M 10と直接通信できない子機20は、直接通信可能な他の子機20に通信信号を順次中継することで、親機M 10と間接的に通信を行う。
【0022】
各ノード100(親機M 10及び子機20の各々)は、以下で説明するように他のノードとの間の通信品質(リンク品質と称されてもよい)を示すリンクコストを算出し、リンクコストに基づいて(例えば、リンクコストが最良(最小)となる経路(ルート)で)、他のノードと通信を行う。
【0023】
なお、通信システム1における通信方式は、有線通信方式であるPLCに限定されず、マルチホップ通信が可能であれば、PLC以外の有線通信方式であってもよいし、無線通信方式であってよい。
【0024】
以下では、元々親機として機能(動作)するようにされていたノード(例えば、親機M 10)が、故障等を理由として、通信システム1において構成されるマルチホップ通信ネットワーク(例えば階層型又はツリー型ネットワーク)から離脱した場合に、通信システム1におけるいずれかの子機(子ノード)が親機として機能する技術について説明する。なお、「親機M 10等のノードが通信ネットワークから離脱する」という表現は、「親機M 10等のノードが通信不能(状態)、通信不可(状態)又は不通(状態)になる」という表現で読み替えられてもよい。
【0025】
以下では、元々親機として機能するようにされていたノードをオリジナル親機と呼び、親機として機能するようになった(子)ノードを代理親機と呼ぶ。後述するように、子機が故障等を理由としてネットワークから離脱した場合にも、別の子機が親機として機能するのが良い場合もある(この場合、オリジナル親機と代理親機とが併存する)。以下では、このような別の子機も代理親機と呼ぶ。
【0026】
<ノードの構成>
図2は、実施の形態1に係るノード100のハードウェア構成例を示す図である。
【0027】
図2に示すように、ノード100は、中央処理装置(CPU:Central Processing Unit)201と、記憶装置202と、通信装置203と、機器インターフェース装置204と、を備える。ノード100は、上記以外の構成要素を備えてもよい。
【0028】
CPU201は、ノード100の全体の動作(例えば、通信装置203による通信等の、各種構成要素による処理等)を制御する。CPU201は、例えば、記憶装置202に含まれるHDD(Hard Disk Drive)、SSD(Solid State Drive)等に記憶された所定のプログラムを、記憶装置202に含まれるRAM(Random Access Memory)等にロードして実行することにより、ノード100の各種機能(後述する処理を含む)を実現する。CPU201が実行するプログラムは、記憶装置202に予め記憶されていてもよいし、インターネット等の電気通信回線を通じて又はメモリカード等の非一時的な記憶媒体に記憶されて提供されてもよい。
【0029】
記憶装置202は、非一時的な記憶媒体であり、HDD、SSD、ROM(Read Only Memory)等の不揮発性メモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)等の電気的に書換え可能な不揮発性メモリ、RAM等の揮発性メモリ等を含む。記憶装置202は、通信経路、トポロジー情報、通信可能なノード(例えば、直接通信可能な他のノード等)等に関する情報を記憶する(例えばテーブル形式で)。記憶装置202は、ノード100を動作させるための制御プログラム等のプログラム、このプログラムの実行に必要なデータ、ノード100の識別情報、ノード100(例えば、CPU201)が処理(加工)した他の情報/データ等も記憶する。
【0030】
ノード100が親機M 10である場合には、記憶装置202に、例えば、ネットワーク内で構築されたノード間の全通信経路を登録するための通信経路データテーブル、各ノードが直接通信可能な隣接ノードの情報(リンク情報)を記録するためのトポロジーテーブル等が記憶される。
【0031】
また、ノード100が子機20である場合には、記憶装置202に、例えば、当該ノード100が通信可能な隣接ノード(親機M 10又は他の子機20)と、当該ノード100と隣接ノード(親機M 10又は他の子機20)との間の通信品質を示す通信コスト値(リンクコスト)と、隣接ノードを経由した当該ノード100と親機M 10との間の通信品質を示す通信コスト値と、を表す通信可能ノードデータテーブル等が記憶される。子機20は、このようなテーブルを保持することにより、親機M 10までの経路を把握することができる。
【0032】
テーブル形式で記憶されるデータ/情報の具体例を図5Bに示しており、これについては後述する。
【0033】
図5Bに示す情報を含む、通信経路、トポロジー情報、通信可能なノード(例えば、直接通信可能な他のノード等)等に関する情報は、本開示に係る中継経路に関する情報の例である。
【0034】
通信装置203は、他のノード100との間で通信するための通信インターフェース装置である。通信装置203は、PLC用の通信インターフェース装置であってよい。なお、通信方式として、PLC以外の有線通信方式又は無線通信方式が用いられる場合、通信装置203は、当該有線通信方式又は無線通信方式に対応する通信インターフェース装置であってよい。通信装置203は、本開示に係る受信部の一例である。
【0035】
機器インターフェース装置204は、ノード100に接続される制御装置又は電子機器との間でデータを授受(入出力)するためのインターフェース装置である。機器インターフェース装置204は、例えば、イーサネット(登録商標)の規格に準拠した通信インターフェース装置であってよい。
【0036】
図3は、実施の形態1に係るCPU201の機能構成例を示す図である。
【0037】
CPU201は、パケット解析部301と、認証処理部302と、リンクコスト算出部303と、トポロジー管理部304と、パケット生成部305と、代理親機機能制御部306と、を備える。
【0038】
CPU201には、ハローパケット(Hパケット:Hello packet)(ハローメッセージ又はハロー信号と称されてもよい)、認証パケット及び通常パケットが入力される。Hパケットは、通信システム1(通信ネットワーク)で行われる認証処理に先だって一方のノードから、接続中のノードに向けて一斉に同報送信される。また、これ以外にも、Hパケットは、経路情報を更新するために各ノードによって隣接ノードに定期的に送信又は同報送信される(このようなHパケットは、定期信号と称されてもよい)。Hパケットは、自ノードの存在を通知するパケットを意味してよい。例えば、Hパケットには、ネットワークにおける親機の識別情報、Hパケットの送信元の情報、自ノードの隣接ノードの情報、リンクの通信品質の情報等が含まれる。認証パケットは、認証処理中に送受信されるパケットであり、通常パケットは、例えば、センサによって取得されるセンサデータ等であってよい。
【0039】
パケット解析部301は、入力される各種のパケット(Hパケット、認証パケット及び通常パケット)のデータ構造を解析してパケットの種別を判定し、その判定結果に基づいてパケットの転送先を振り分ける。パケット解析部301は、例えば、入力されたパケットがHパケットであると判定した場合には、そのHパケットをリンクコスト算出部303に出力する。パケット解析部301は、例えば、入力されたパケットが認証パケットであると判定した場合には、その認証パケットを認証処理部302に出力する。パケット解析部301は、例えば、入力されたパケットが通常パケットであると判定した場合には、その通常パケットをトポロジー管理部304に出力する。
【0040】
ノード100が子機20である場合、子機20のパケット解析部301は、さらに、次のように動作する。パケット解析部301は、親機M 10からHパケットを所定時間受信していないかに基づいて、親機M 10がネットワークから離脱したか否かを検知する。例えば、パケット解析部301は、親機M 10から所定時間Hパケットを受信していない場合、親機M 10がネットワークから離脱したことを検知する。そして、パケット解析部301は、親機M 10がネットワークから離脱したことを示す情報を代理親機機能制御部306に出力する。
【0041】
ノード100が代理親機である場合、代理親機のパケット解析部301は、さらに、次下のように動作する。パケット解析部301は、オリジナル親機M 10からHパケットを受信したかに基づいて、オリジナル親機M 10が通信可能状態になったか否かを検知する。例えば、パケット解析部301は、オリジナル親機M 10からHパケットを受信した場合、オリジナル親機M 10が通信可能状態になったことを検知する。そして、パケット解析部301は、オリジナル親機M 10が通信可能状態になったことを示す情報を代理親機機能制御部306に出力する。
【0042】
パケット解析部301は、本開示に係る検知部の一例である。
【0043】
認証処理部302は、パケット解析部301から入力された認証パケットを用いて、その認証パケットの送信元であるノードとの間で認証処理を実行する。認証処理部302は、認証処理中に生成するパケットである認証パケット、又は、他のノードから送信された認証パケットの応答をトポロジー管理部304に出力する。
【0044】
リンクコスト算出部303は、パケット解析部301から入力されたHパケットを用いて、当該ノードが送信元のノードから受信したHパケットの受信品質を示すリンクコストを算出する。リンクコスト算出部303は、そのリンクコストの算出結果を、Hパケットのデータ構造に書き込む(格納する)。また、Hパケットには、親機M 10からHパケットが送信された場合の各リンクコストの値も格納されている。リンクコスト算出部303は、リンクコストの算出結果を格納したHパケットをトポロジー管理部304に出力する。
【0045】
トポロジー管理部304は、親機M 10により生成されたトポロジー(すなわち、通信システム1を構成するノード及ぶその接続形態)を示すトポロジー情報を管理(取得)し、トポロジー情報に基づいて各種のパケットの出力先(例えば、パケット生成部305)を振り分けて出力する。トポロジー情報は、各ノードのトポロジー管理部304又は記憶装置202において保存される。また、トポロジー管理部304は、トポロジー情報だけでなく、上述した通信経路、通信可能なノード(例えば、直接通信可能な他のノード、図5Bに示す隣接ノード等)、自ノード等に関する情報もトポロジー管理部304又は記憶装置202に記憶させる。なお、親機M 10のトポロジー管理部304は、認証処理の対象となる1つ以上のノードの各々から送信されたHパケットに応じて親機M 10のリンクコスト算出部303により算出された各リンクコストに基づいて、トポロジーを生成(形成)し、トポロジーを示すトポロジー情報を他のノードに提供する。
【0046】
トポロジー管理部304は、本開示に係る判断部の一例である。
【0047】
パケット生成部305は、トポロジー管理部304から入力された認証パケット又は通常パケットに基づいて、送信先となる他のノードへのデータ通信用のパケット、Hパケット等を生成して出力する。
【0048】
代理親機機能制御部306は、通信システム1の中継経路における子機20の位置に基づいて、子機20が代理親機になるか否かを決定する等、子機20が代理親機になることに関わる制御を行う。代理親機機能制御部306は、親機M 10と子機20と代理親機とで、異なる制御を行う。
【0049】
子機20が、自ノードの判断に基づいて、自ノードが代理親機になることを決定する場合には、子機20の代理親機機能制御部306は、親機M 10がネットワークから離脱したことを示す情報をパケット解析部301から受け取ると、自ノード情報及び隣接ノード情報に基づいて、自ノードが代理親機になるか否かを決定する。例えば、子機20の代理親機機能制御部306は、自ノード情報及び隣接ノード情報に基づいて、以下で説明するように所定の条件を満たすか否かを判断することにより、自ノードが代理親機になるか否かを決定する。また、子機20の代理親機機能制御部306は、自ノードが代理親機になることを決定したとき、自ノードを代理親機として再起動させる。
【0050】
一方、子機20が、親機M 10からの指示(通知)に基づいて、自ノードが代理親機になることを決定する場合には、親機M 10の代理親機機能制御部306は、隣接ノード情報を含むトポロジー情報に基づいて、親機M 10がネットワークから離脱する際に代理親機になる子機20を事前に決定しておく。そして、親機M 10の代理親機機能制御部306は、親機M 10がネットワークから離脱する際に代理親機になる子機20が代理親機になることを示すメッセージ(指示)を、代理親機になる子機20に送信(通知)する。したがって、このような通知を受けていない子機20は、代理親機にはならない。このような通知を受けている子機20の代理親機機能制御部306は、自ノードが代理親機になることを決定したとき(親機M 10がネットワークから離脱したことを検知したとき)、自ノードを代理親機として再起動させる。
【0051】
上記のようにして再起動された代理親機の代理親機機能制御部306は、再度子機として動作する場合(例えば、オリジナル親機M 10が通信可能状態になったことを示す情報をパケット解析部301から受け取ると)、自ノードを子機として再起動させる。
【0052】
代理親機機能制御部306は、本開示に係る決定部の一例である。
【0053】
<通信システムの動作>
次に、ノード100の共通の動作について説明する。
【0054】
[認証処理]
ノード間で行われる認証処理(親機M 10と子機20との間で行われる認証処理)の処理手順例について説明する。この認証処理は、それぞれの認証処理部302によって主に実行される。前提として、親機M 10は、Hパケットを子機20に送信し、子機20は、親機M 10から送信されたHパケットを受信している。
【0055】
子機20は、参入したいネットワークの親機(親機M 10)に、参入要求フレームを含む認証パケットを発行し、親機M 10に送信する。親機M 10は、子機20から送信された認証パケットを受信すると、所定のテキスト列を設定して認証パケットを生成し、要求元の子機20(認証パケットの発行元である子機20)に送信する。
【0056】
子機20は、親機M 10から送信された認証パケットに含まれる所定のテキスト列を、子機20が予め記憶装置202等に保持している固有鍵を用いてエンコード(符号化)し、そのエンコード出力であるテキスト列を含む認証パケットを生成して親機M 10に送信する。
【0057】
親機M 10は、子機20から送信された認証パケットを受信すると、事前に設定されて記憶装置202等に保存されている固有鍵を用いて、その認証パケットに含まれるエンコード出力であるテキスト列をデコード(復号)する。また、親機M 10は、そのデコード出力であるテキスト列が、上記のとおり設定された所定のテキスト列と一致するか否かを判定する。親機M 10は、デコード出力であるテキスト列が所定のテキスト列と一致すると判定した場合(ネットワークへの参加を許可すると判定した場合)、ネットワークに特有のネットワーク鍵を固有鍵でエンコードして子機20に送信する。
【0058】
子機20は、親機M 10から送信されたエンコードされたネットワーク鍵を、固有鍵を用いてデコードしてネットワーク鍵を取得する。このネットワーク鍵の取得により、子機20は、親機M 10のデータ通信先として正式に認証されたことになる。子機20は、ネットワーク内でのデータ通信の際に、ネットワーク鍵を用いてエンコード又はデコードすることでデータ通信を行う。
【0059】
なお、認証処理は、例えば、HD-PLC(High Definition Power Line Communication)の規格において定められた4wayハンドシェイクに基づく処理であるが、認証処理は、上述した規格以外の他の方式に基づく処理であってもよい。例えば、認証処理は、有線高速ネット通信技術の統一規格であるG.hn(Gigabit Home Networking)、電力線搬送通信の業界団体であるHome Plug(Home Plug Power line Alliance)等の方式に基づく認証処理であってもよい。
【0060】
[トポロジー生成(マルチホップ形成)処理及びマルチホップ伝送]
次に、親機M 10と子機20との間のトポロジー生成及びマルチホップ伝送について説明する。
【0061】
親機M 10は、全てのノードに向けてHパケットを一斉に同報送信する。この同報送信に対して子機20のみがHパケットを受信できたとする。すると、親機M 10と当該子機20との間で、上述した認証処理が行われる。これにより、親機M 10と当該子機20との間で電力伝送及びデータ通信が可能となる。
【0062】
次に、この子機20は、他のノードに向けてHパケットを一斉に同報送信する。この同報送信に対してHパケットを受信できたノードが存在すれば、子機20を介して当該ノードと親機M 10との間で、上述した認証処理が行われ、その結果、この子機20を介した当該ノードと親機M 10との間のデータ通信が可能となり、この子機20と当該ノードとの間の電力伝送が可能となる。当該ノードについても同様の処理が行われる。
【0063】
[代理親機機能に関する動作]
以下、親機M 10が故障した場合等に、子機20が代理親機になる際の動作について説明する。
【0064】
図4Aは、実施の形態1に係る親機故障前後のトポロジーの例を示す図である。
【0065】
親機M 10が故障する前には、一例として、図4Aの(a)に示すように、親機M 10の下位に子機a1 20A1及び子機b1 20B1が接続されている。また、子機a1 20A1の下位に子機a2 20A2が接続されており、子機a2 20A2の下位に子機a3 20A3が接続されており、同様にして、子機a7 20A7の下位に子機a8 20A8が接続されている。また、子機b1 20B1の下位に子機b2 20B2が接続されており、子機b2 20B2の下位に子機b3 20B3が接続されており、同様にして、子機b9 20B9の下位に子機b10 20B10が接続されている。
【0066】
親機M 10が故障した後では、一例として、図4Aの(b)に示すように、元々1ホップ目に存在していた子機a1 20A1が代理親機になる。そして、代理親機a1 20A1の下位に子機b1 20B1が接続される。子機a2 20A2の下位側及び子機b1 20B1の下位側の接続は変更されない。また、子機a1 20A1の代わりに、子機b1 20B1が代理親機になってもよい。このように、元々1ホップ目に存在していた子機が代理親機になることにより、ホップ上限数の制約を受けることなく、全てのノードが新たなネットワークに参入できる。
【0067】
図4Bは、比較例に係る親機故障前後のトポロジーの例を示す図である。
【0068】
親機M 10が故障する前には、一例として、図4Bに示すように、図4Aの(a)と同じように親機M 10及び子機20が接続されている。
【0069】
一方、親機M 10が故障した後では、元々1ホップ目に存在していた子機が代理親機になるのではなく、代理親機になる子機がランダムに選択される。したがって、一例として、図4Bの(b)に示すように、元々2ホップ目に存在していた子機a2 20A2が代理親機になる可能性がある。そして、この場合には、代理親機a2 20A2の下位に子機a1 20A1が接続され、子機a1 20A1の下位に子機b1 20B1が接続される。子機a3 20A3の下位側及び子機b1 20B1の下位側の接続は変更されない。したがって、この場合、子機b10 20B10は、ホップ上限数の制約を受け、ネットワークに参入することができなくなってしまう。
【0070】
次に、元々1ホップ目に存在していた子機20が代理親機になる際の具体的な処理について説明する。
【0071】
図5Aは、実施の形態1に係る親機故障前のトポロジーの例及びリンクコストの例を示す図であり、図5Bは、実施の形態1に係る親機故障前の自ノード情報及び隣接ノード情報の例を示す図である。
【0072】
親機M 10が故障していない場合において、例えば、図5Aに示すように、親機M 10と子機a1 20A1との間のリンクコスト(LC:Link Cost)は、20であり、親機M 10と子機b1 20B1との間のLCは、20であり、親機M 10と子機c1 20C1との間のLCは、25である。また、親機M 10が故障していない場合において、例えば、図5Aに示すように、子機a1 20A1と子機b1 20B1との間のLCは、15であり、子機a1 20A1と子機c1 20C1との間のLCは、10であり、子機a1 20A1と子機a2 20A2との間のLCは、10である。
【0073】
各子ノードは、親機がネットワークから離脱する場合に備えて、自ノード情報及び上記のような隣接ノード情報を、自ノードの記憶装置202又はトポロジー管理部304に記憶させる。このことが、図5Bに示されている。
【0074】
子機a1 20A1は、図5Bの(a)に示すように、一例として、自ノード情報500Aを記憶している。自ノード情報500Aは、自ノードの識別情報を示す自ノードIDと、自ノードが親機であるか又は子機であるかを示すノード種別と、親機(例えば、親機M 10)までの自ノードの通信品質(親機と自ノードとの間の通信品質)を示すLCと、(親機からの)自ノードのホップ数と、を含む。例えば、自ノード情報500Aは、図5Aに示す情報に対応して、自ノードIDがa1であること、自ノードの種別が子機であること、親機M 10までの自ノードのLCが20であること、及び、自ノードのホップ数が1であること、を示している。
【0075】
また、子機a1 20A1は、図5Bの(b)に示すように、一例として、隣接ノード情報500Bを記憶している。隣接ノード情報500Bは、子機a1 20A1に隣接するノードの情報をレコードとして含む。隣接ノード情報500Bは、例えば、図5Aに示す情報に対応して、隣接ノードである親機M 10、子機b1 20B1、子機c1 20C1及び子機a2 20A2の4レコードを含む。また、隣接ノード情報500Bは、隣接ノード毎に、当該隣接ノードの識別情報を示す隣接ノードIDと、当該隣接ノードが親機であるか又は子機であるかを示すノード種別と、自ノードまでの当該隣接ノードの通信品質(自ノードと当該隣接ノードとの間の通信品質)を示すLCと、親機(例えば、親機M 10)までの当該隣接ノードの通信品質(親機と当該隣接ノードとの間の通信品質)を示すLCと、(親機からの)当該隣接ノードのホップ数と、を含む。例えば、図5Bの(b)のテーブルの中には、図5Aに示す値が示されている。なお、親機M 10(親機)のレコードについては、左から5番目の列及び左から6番目の列の情報は存在しない。また、子機a2 20A2(自ノードの子機)のレコードについては、左から5番目の列の情報は存在しない。
【0076】
各ノードは、ノード間でHパケットを交換することにより、図5Bの(a)及び(b)のテーブルの中に示す値を取得又は算出し、例えば自ノードの記憶装置202に、記憶させることができる。そして、各子機20は、親機M 10がネットワークから離脱したとき、このような自ノード情報及び隣接ノード情報を参照することにより、自ノードが代理親機になるか否かを決定することができる。
【0077】
具体的には、子機20が代理親機になるためには、以下の条件を満たす必要がある。
【0078】
1番目の条件は、ホップ数が1であることである。
【0079】
2番目の条件は、ホップ数が1である子機20が複数台存在する場合、親機M 10までの通信品質が最良であること(例えば、親機M 10までのLCが最小であること)である。なお、各子機20は、親機M 10が定期的に送信するHパケットから、1ホップ目の他の子機20の通信品質(LC)を把握することができる。
【0080】
3番目の条件は、ホップ数が1である子機20が複数台存在し、かつ、親機M 10までの通信品質が最良である子機20が複数台存在する場合、乱数に基づくランダム時間(以下、待機時間又は待ち時間とも呼ぶ)待機して、代理親機になることを示す信号を、ホップ数が1である他の子機20に送信したノード(ランダム時間待機している間に(上記信号を送信する前に)、ホップ数が1である他の子機20から、代理親機になることを示す信号を受信しなかったノード)であることである。
【0081】
例えば、図5A及び図5Bに示す例では、ホップ数が1である子機a1 20A1、子機b1 20B1及び子機c1 20C1が存在する。次に、これらの子機のうち、親機M 10までの通信品質が最良であるノードは、子機a1 20A1及び子機b1 20B1である(LC=20)。したがって、子機a1 20A1及び子機b1 20B1のいずれかが、代理親機となる。
【0082】
あるいは、親機M 10が、記憶装置202又はトポロジー管理部304に記憶されている通信経路データテーブル、トポロジーテーブル等を参照し、上記に従って、親機M 10と1ホップ目の子機20(隣接ノード20)との間のリンク品質(LC)等に基づいて、代理親機になる子機20を決定し、その旨を定期的にその子機に(送信)通知してよい。例えば、親機M 10は、最良(最小)のLCを有する1ホップ目の子機20を代理親機に決定してもよい。また、例えば、最良(最小)のLCを有する1ホップ目の子機20が複数台存在する場合、親機M 10は、ランダムに、又は、何らかの基準(例えば、通信性能)に基づいて、それら複数台の子機20のうちから1台の子機20を代理親機に決定してよい。なお、親機M 10から代理親機になる子機20への定期的な送信(通知)は、Hパケットを用いて行われてもよいし、これに専用のメッセージを用いて行われてもよい。このようなHパケット及び専用のメッセージは、定期信号と称されてもよい。
【0083】
上記の処理は、子機20及び親機M 10の代理親機機能制御部306によって行われてよい。
【0084】
なお、複数のノードが、親機又は代理親機として起動している場合、1台のノードが親機又は代理親機として機能するために、以下の処理が行われてよい。
【0085】
オリジナル親機M 10が、故障等から復旧して通信可能状態になった場合、オリジナル親機M 10からHパケットを受信した代理親機は、子機として再起動する。
【0086】
また、もしも、複数台の子機20が代理親機として再起動されている場合、他の代理親機からHパケットを受信して他の代理親機を検出した代理親機は、子機として再起動する。
【0087】
なお、図5Bに示す自ノード情報と隣接ノード情報とは、同一のテーブルに統合されてもよい。
【0088】
図6Aは、実施の形態1に係る、子機20が代理親機になる処理の例を示すフローチャートである。なお、子機20は、親機M 10との間で認証されているものとする。
【0089】
ステップS601において、子機20は、隣接ノード情報取得処理を実行する。ステップS601の例については後述する。
【0090】
ステップS602において、子機20(パケット解析部301)は、例えば親機M 10を送信元とするHパケットを所定時間受信していないかに基づいて、親機M 10がネットワークから離脱したか否かを検知する。
【0091】
親機M 10がネットワークから離脱していない場合(ステップS602;NO)、フローはステップS601に戻る。
【0092】
一方、親機M 10がネットワークから離脱した場合(ステップS602;YES)、ステップS603において、子機20(代理親機機能制御部306)は、図5Bに示す自ノード情報及び隣接ノード情報を参照して、自ノードのホップ数が最小ホップ数(すなわち1)であるか否かを判断する。
【0093】
自ノードのホップ数が最小ホップ数でない場合(ステップS603;NO)、ステップS609において、子機20(認証処理部302)は、別の子機20が再起動することでなった代理親機との間で認証処理を実行し(又は何らかの親機との間で認証されるのを待ち)、フローは終了する。
【0094】
一方、自ノードのホップ数が最小ホップ数である場合(ステップS603;YES)、ステップS604において、子機20(代理親機機能制御部306)は、図5Bに示す自ノード情報及び隣接ノード情報を参照して、上位ノード(すなわち親機M 10)と自ノードとの間のLCが最良(最小)であるか否かを判断する。
【0095】
上位ノードと自ノードとの間のLCが最良でない場合(ステップS604;NO)、ステップS609において、子機20(認証処理部302)は、別の子機20が再起動することでなった代理親機との間で認証処理を実行し(又は何らかの親機との間で認証されるのを待ち)、フローは終了する。
【0096】
一方、上位ノードと自ノードとの間のLCが最良である場合(ステップS604;YES)、ステップS605において、子機20(代理親機機能制御部306)は、図5Bに示す自ノード情報及び隣接ノード情報を参照して、上位ノードと自ノードとの間のLCと同一である、上位ノードとの間のLCを有する隣接ノードがあるか否かを判断する。
【0097】
上位ノードと自ノードとの間のLCと同一である、上位ノードとの間のLCを有する隣接ノードがない場合(ステップS605;NO)、フローは、以下で説明するステップS608に進む。
【0098】
一方、上位ノードと自ノードとの間のLCと同一である、上位ノードとの間のLCを有する隣接ノードがある場合(ステップS605;YES)、ステップS606において、子機20は、ランダム時間(代理親機機能制御部306が決定した待機時間)待機する。
【0099】
次いで、ステップS607において、子機20(パケット解析部301)は、隣接ノードから、代理親機になることを示す信号(Hパケット)を受信したか否かを判断する。
【0100】
隣接ノードからHパケットを受信した場合(ステップS607;YES)、ステップS609において、子機20(認証処理部302)は、代理親機との間で認証処理を実行し(又は何らかの親機との間で認証されるのを待ち)、フローは終了する。
【0101】
一方、隣接ノードからHパケットを受信していない場合(ステップS607;NO)、ステップS608において、子機20は、代理親機として再起動し、フローは終了する。
【0102】
次に、図6Bを参照して、図6AのステップS601における隣接ノード情報取得処理の例について説明する。この隣接ノード情報取得処理によって、図5Bのテーブルに示す値が取得される。
【0103】
ステップS651において、子機20(パケット解析部301)は、Hパケットを受信したか否かを判定する。
【0104】
Hパケットを受信していない場合(ステップS651;NO)、フローはステップS602に進む。
【0105】
一方、Hパケットを受信した場合(ステップS651;YES)、ステップS652において、子機20(パケット解析部301又はトポロジー管理部304)は、受信したHパケットに基づいて、オリジナル親機M 10に所属しているか否か(すなわち、オリジナル親機M 10が通信可能状態であるか通信不可状態であるか)を判断する。
【0106】
オリジナル親機M 10に所属している場合(ステップS652;YES)、ステップS653において、子機20(トポロジー管理部304)は、受信したHパケットに基づいて、自ノードとHパケットの送信元ノード(送信ノードと呼ぶ)との間のLCを、隣接ノード情報として記録する(図5Bの隣接ノード情報500Bの左から4番目の列を参照)。
【0107】
ステップS654において、子機20(トポロジー管理部304)は、受信したHパケットに基づいて、送信ノードのホップ数を、隣接ノード情報として記録する(図5Bの隣接ノード情報500Bの左から6番目の列を参照)。
【0108】
ステップS655において、子機20(パケット解析部301又はトポロジー管理部304)は、受信したHパケットに基づいて、Hパケットがオリジナル親機M 10から受信されたか否か(送信ノードがオリジナル親機M 10であるか否か)を判断する。
【0109】
Hパケットがオリジナル親機M 10から受信された場合(ステップS655;YES)、ステップS656において、子機20(トポロジー管理部304)は、受信したHパケットに基づいて、オリジナル親機M 10と自ノードとの間のLCを、自ノード情報及び隣接ノード情報として記録する(図5Bの自ノード情報500Aの左から3番目の列及び隣接ノード情報500Bの左から4番目の列を参照)。そして、フローはステップS602に進む。
【0110】
一方、Hパケットがオリジナル親機M 10から受信されていない場合(ステップS655;NO)、ステップS657において、子機20(パケット解析部301又はトポロジー管理部304)は、受信したHパケットに基づいて、送信ノードのホップ数が自ノードのホップ数以下であるか否かを判断する。
【0111】
送信ノードのホップ数が自ノードのホップ数以下でない場合(ステップS657;NO)、フローはステップS602に進む。
【0112】
一方、送信ノードのホップ数が自ノードのホップ数以下である場合(ステップS657;YES)、ステップS658において、子機20(トポロジー管理部304)は、受信したHパケットに基づいて、オリジナル親機M 10と送信ノード(隣接ノード)との間のLCを、隣接ノード情報として記録する(図5Bの隣接ノード情報500Bの左から5番目の列を参照)。そして、フローはステップS602に進む。
【0113】
ステップS652において、オリジナル親機M 10に所属していない場合(ステップS652;NO)、ステップS659において、子機20(パケット解析部301又はトポロジー管理部304)は、Hパケットがオリジナル親機M 10(例えば、故障から復旧したオリジナル親機M 10)から受信されたか否か(送信ノードがオリジナル親機M 10であるか否か)を判断する。
【0114】
Hパケットがオリジナル親機M 10から受信された場合(ステップS659;YES)、ステップS660において、子機20(認証処理部302)は、オリジナル親機M 10との間で認証処理を実行し(又は何らかの親機との間で認証されるのを待ち)、フローはステップS602に進む。
【0115】
一方、Hパケットがオリジナル親機M 10から受信されていない場合(ステップS659;NO)、フローはステップS602に進む。
【0116】
なお、ステップS653及びステップS654の順番は、図示されるものに限定されない。例えば、ステップS654が先に実行されてもよいし、ステップS653とステップS654とが並列に実行されてもよい。
【0117】
次に、子機が故障した場合等に、別の子機20が代理親機になる際の動作について説明する。
【0118】
図7は、実施の形態1に係る子機故障前後のトポロジーの例を示す図である。
【0119】
子機(例えば、子機a2 20A2)が故障する前には、一例として、図7の(a)に示すように、親機M 10の下位に子機a1 20A1及び子機b1 20B1が接続されている。また、子機a1 20A1の下位に子機a2 20A2が接続されており、子機a2 20A2の下位に子機a3 20A3が接続されており、同様にして、子機a7 20A7の下位に子機a8 20A8が接続されている。また、子機b1 20B1の下位に子機b2 20B2が接続されており、子機b2 20B2の下位に子機b3 20B3が接続されており、同様にして、子機b9 20B9の下位に子機b10 20B10が接続されている。
【0120】
子機a2 20A2が故障した後では、一例として、図7の(b)に示すように、子機a3 20A3が代理親機になる。このようにすることで、故障等によりネットワークから離脱した子機20の下位側にある1つ以上の子機が、親機からの制御(指示)を受けられないことにより機能しなくなることを防止する。
【0121】
この場合、代理親機になる子機20は、いずれであってもよく、上述した3番目の条件で示したように、代理親機が決定されてよい。例えば、各子機20は、いずれかの子機20のネットワークからの離脱に起因して親機M 10からの定期的なHパケットを所定時間受信しなかった後、乱数に基づくランダム時間(待機時間)待機して、代理親機になることを示す信号を他の子機20に送信した場合(ランダム時間待機している間に(上記信号を送信する前に)、他の子機20から、代理親機になることを示す信号を受信しなかった場合に)、代理親機になる。
【0122】
例えば、いずれかの子機20のネットワークから離脱に起因してオリジナル親機M 10が通信不可状態であり、別の子機20が親機M 10から1ホップ目に存在していなかった場合、別の子機20の代理親機機能制御部306は、待機時間を決定し、待機時間待機している間に他の子機20から他の子機20が代理親機になることを示す信号を受信しなかったならば、自ノードが代理親機になることを決定する。
【0123】
なお、オリジナル親機M 10がネットワークから離脱していて別の子機20が代理親機に既になっているときに、子機20がネットワークから離脱した場合にも(例えば、図6Aにおいて、ステップS603の後のステップS609において認証されるのを待っている場合にも)、同様の動作が行われてよい。したがって、図4Aの(b)に示す状態で、例えば、子機a3 20A3がネットワークから離脱した場合、例えば子機a4 20A4又は子機a5 20A5等がさらなる代理親機になってよい。
【0124】
図8Aは、実施の形態1に係る、子機20がネットワークから離脱した場合に別の子機20が代理親機になる処理の例を示すフローチャートである。なお、この別の子機20は、何らかの親機との間で認証されるのを待っており、ネットワークから離脱した子機20の下位側に存在するものとする。
【0125】
ステップS801において、子機20(パケット解析部301)は、親機を送信元とするHパケットを所定時間受信していないかに基づいて、親機を所定時間検知していないか否かを判断する。
【0126】
親機をまだ検知していない場合(ステップS801;NO)、フローはステップS801に戻る。
【0127】
一方、親機を所定時間の間に検知しなかった場合(ステップS801;YES)、ステップS802において、子機20は、ランダム時間待機する。
【0128】
次いで、ステップS803において、子機20(パケット解析部301)は、他のノードから、代理親機になることを示す信号(Hパケット)を受信したか否かを判断する。
【0129】
他のノードからHパケットを受信した場合(ステップS803;YES)、ステップS805において、子機20(認証処理部302)は、代理親機との間で認証処理を実行し(又は何らかの親機との間で認証されるのを待ち)、フローは終了する。
【0130】
一方、他のノードからHパケットを受信していない場合(ステップS803;NO)、ステップS804において、子機20は、代理親機として再起動し、フローは終了する。
【0131】
図8Bは、実施の形態1に係る、代理親機が再度子機になる処理の例を示すフローチャートである。
【0132】
ステップS851において、代理親機(パケット解析部301)は、オリジナル親機M 10からHパケットを受信したか否かを判定する。
【0133】
オリジナル親機M 10からHパケットを受信していない場合(ステップS851;NO)、フローはステップS851に戻る。
【0134】
一方、オリジナル親機M 10からHパケットを受信した場合(ステップS851;YES)、ステップS852において、代理親機は、子機として再起動し、フローは終了する。
【0135】
<実施の形態1における効果>
本実施の形態に係る子機20は、マルチホップ通信が行われる通信システム1における通信装置である。子機20のパケット解析部301は、通信システム1における親機M 10が通信不可状態であること(ネットワークから離脱したこと)を検知する。子機20の代理親機機能制御部306は、親機M 10が通信不可状態である場合、通信システム1の中継経路(トポロジー)における自ノードの位置(自ノードが親機M 10から1ホップ目に存在するか否か)に基づいて、自ノードが代理親機になるか否かを決定する。本実施の形態によれば、元々1ホップ目に存在していた子機20が代理親機になることにより、ホップ上限数の制約を受けることなく、全てのノードが新たなネットワークに参入できる。よって、通信ネットワークから親機が離脱したときに、通信ネットワークを適切に再構築することができる。
【0136】
(実施の形態2)
実施の形態2では、親機がネットワークから離脱した場合、1ホップ目に存在していた子機のいずれかが代理親機になるのではなく、所定の条件を満たす子機が代理親機候補として親機又は当該子機により決定され、代理親機候補の中からいずれかの子機が代理親機になる。ここで、所定の条件とは、代理親機になったならば、親機が通信不可状態になった後のマルチホップ通信が行われる通信システムの中継経路(トポロジー)において、許容されるホップ上限数以内(本実施の形態では10ホップ)以内で、他の子機(全ての末端のノード(最も下位にあるノード))に対して中継可能である(他の子機まで到達できること)であってよい。なお、以下において、実施の形態1と同一の要素及び動作については説明を省略し、異なる要素及び動作について説明する。
【0137】
<ノードの構成>
実施の形態2では、主に、代理親機機能制御部306の処理及びこれに関連する処理が、実施の形態1と異なる。上述したように、本実施の形態では、所定の条件を満たす子機が代理親機候補になる。ここで、所定の条件を満たす子機が複数台存在する場合、いずれの子機が代理親機になるかを決定するためのメカニズムが必要である。そこで、本実施の形態に係る代理親機機能制御部306は、上述したような待機時間に基づいて、複数の代理親機候補のうちのいずれが代理親機になるかを決定する。
【0138】
第1の例では、代理親機機能制御部306は、待機時間をランダムに決定してよい。
【0139】
第2の例では、代理親機機能制御部306は、予め定められた待機時間のリストから、ホップ数(通信システム1の中継経路(トポロジー)における子機20の位置)に応じて、待機時間を決定してよい。例えば、予め定められた待機時間のリストは、{x(秒),y(秒),z(秒)}(x<y<z)であってよく、代理親機機能制御部306は、例えば、1ホップ目の子機については、待機時間をx秒に決定し、2ホップ目の子機については、待機時間をy秒に決定し、3ホップ目の子機については、待機時間をz秒に決定する、等であってよい。したがって、中継経路において子機20が親機M 10から遠いほど、待機時間は長く決定(設定)されてよい。
【0140】
また、第2の例において、同一ホップ数の子機20が複数台存在する場合、例えば子機20から親機M 10までの(累積)LCに応じて、待機時間に強弱(大小)が設けられてもよい。例えば、x1<x2<y<zであり、親機M 10と1ホップ目の子機a1 20A1との間のLCが20であり、親機M 10と1ホップ目の子機b1 20B1との間のLCが25である場合、代理親機機能制御部306は、1ホップ目の子機a1 20A1については、待機時間をx1秒に決定し、1ホップ目の子機b1 20B1については、待機時間をx2秒に決定してよい。
【0141】
なお、第1の例及び第2の例において、上記に基づいて、親機M 10の代理親機機能制御部306が、全ての子機についての待機時間を決定してもよいし、子機の代理親機機能制御部306が、自ノードの待機時間を決定してもよい。待機時間は、ゼロ(秒)であってもよい。
【0142】
<通信システムの動作>
[代理親機機能に関する動作]
以下、親機M 10が故障した場合等に、子機20が代理親機になる際の動作について説明する。
【0143】
図9は、実施の形態2に係る、親機故障前後のトポロジーの例を示す図である。
【0144】
親機M 10が故障する前には、一例として、図9の(a)に示すように、親機M 10の下位に子機a1 20A1及び子機b1 20B1が接続されている。また、子機a1 20A1の下位に子機a2 20A2が接続されており、子機a2 20A2の下位に子機a3 20A3が接続されており、同様にして、子機a7 20A7の下位に子機a8 20A8が接続されている。また、子機b1 20B1の下位に子機b2 20B2が接続されており、子機b2 20B2の下位に子機b3 20B3が接続されており、同様にして、子機b9 20B9の下位に子機b10 20B10が接続されている。
【0145】
親機M 10が故障した後では、一例として、図9の(b)に示すように、所定の条件を満たす代理親機候補の1つである子機b2 20B2が代理親機になる。そして、代理親機b2 20B2の下位に子機b1 20B1及び子機b3 20B3が接続される。また、子機b1 20B1の下位に子機a1 20A1が接続される。子機a1 20A1の下位側及び子機b3 20B3の下位側の接続は変更されない。このようにすることで、ホップ上限数の制約を受けることなく、全てのノードが新たなネットワークに参入できる。
【0146】
図10は、実施の形態2に係る、子機20が代理親機になる処理の例を示すフローチャートである。なお、子機20は、親機M 10との間で認証されているものとする。
【0147】
ステップS601において、子機20は、隣接ノード情報取得処理を実行する。なお、隣接ノード情報取得処理の例については、図6Bを参照して既に説明されている。
【0148】
ステップS602において、子機20(パケット解析部301)は、親機M 10がネットワークから離脱したか否かを検知する。
【0149】
親機M 10がネットワークから離脱していない場合(ステップS602;NO)、フローはステップS601に戻る。
【0150】
一方、親機M 10がネットワークから離脱した場合(ステップS602;YES)、ステップS1001において、子機20(代理親機機能制御部306)は、図11A(例えば、ステップS1102参照)、図11B(例えば、ステップS1152参照)等に基づいて、自ノードが代理親機候補であるか否かを判断する。
【0151】
自ノードが代理親機候補でない場合(ステップS1001;NO)、ステップS609において、子機20(認証処理部302)は、別の子機20が再起動することでなった代理親機との間で認証処理を実行し(又は何らかの親機との間で認証されるのを待ち)、フローは終了する。
【0152】
一方、自ノードが代理親機候補である場合(ステップS1001;YES)、ステップS1002において、子機20は待機時間待機する。待機時間の決定については、図11A及び図11Bを参照して後述する。
【0153】
次いで、ステップS1003において、子機20(パケット解析部301)は、他の代理親機候補から、代理親機になることを示す信号(Hパケット)を受信したか否かを判断する。
【0154】
他の代理親機候補からHパケットを受信した場合(ステップS1003;YES)、ステップS609において、子機20(認証処理部302)は、代理親機との間で認証処理を実行し(又は何らかの親機との間で認証されるのを待ち)、フローは終了する。
【0155】
一方、他の代理親機候補からHパケットを受信していない場合(ステップS1003;NO)、ステップS608において、子機20は、代理親機として再起動し、フローは終了する。
【0156】
図11Aは、実施の形態2に係る、待機時間を決定する処理の例を示すフローチャートである。この例では、親機M 10が、上述した第2の例に従って、図11Aに示す処理を実行する。
【0157】
ステップS1101において、親機M 10(トポロジー管理部304)は、トポロジー情報を取得(又は算出)する。
【0158】
ステップS1102において、親機M 10(代理親機機能制御部306)は、取得されたトポロジー情報に基づいて、所定の条件を満たすか否かに応じて、代理親機候補を決定する。
【0159】
ステップS1103において、親機M 10(トポロジー管理部304)は、決定された各代理親機候補のLCを取得(又は算出)する。
【0160】
ステップS1104において、親機M 10(代理親機機能制御部306)は、取得されたLCに基づいて、上述したように、決定された各代理親機候補の待機時間を決定する。
【0161】
ステップS1105において、親機M 10(通信装置203)は、決定された待機時間を各代理親機候補に送信する。
【0162】
なお、第1の例に従う場合、ステップS1102の後、親機M 10(代理親機機能制御部306)は、各代理親機候補の待機時間をランダムに決定して各代理親機候補に送信してよい。
【0163】
以上の処理により、所定の条件を満たす子機20は、図10のステップS1002において、親機M 10から受信した待機時間待機することになる。
【0164】
図11Bは、実施の形態2に係る、待機時間を決定する処理の例を示すフローチャートである。この例では、子機20が、上述した第2の例に従って、図11Bに示す処理を実行する。
【0165】
ステップS1151において、子機20(トポロジー管理部304)は、トポロジー情報を取得する。
【0166】
ステップS1152において、子機20(代理親機機能制御部306)は、取得されたトポロジー情報に基づいて、自ノードが代理親機候補であるか否かを決定する。
【0167】
ステップS1153において、子機20(トポロジー管理部304)は、他の代理親機候補のLCを取得する。
【0168】
ステップS1154において、子機20(代理親機機能制御部306)は、自ノードのLC及び他の代理親機候補のLCに基づいて、自ノードの待機時間を決定する。なお、予め定められた待機時間のリストが、例えば親機M 10から、それぞれの子機20に通知されているものとする。
【0169】
なお、第1の例に従う場合、ステップS1152の後、子機20(代理親機機能制御部306)は、自ノードの待機時間をランダムに決定してよい。
【0170】
以上の処理により、所定の条件を満たす子機20は、図10のステップS1002において、自ノードが決定した待機時間待機することになる。
【0171】
<実施の形態2における効果>
本実施の形態に係る子機20は、マルチホップ通信が行われる通信システム1における通信装置である。子機20のパケット解析部301は、通信システム1における親機M 10が通信不可状態であること(ネットワークから離脱したこと)を検知する。子機20の代理親機機能制御部306は、親機M 10が通信不可状態である場合、通信システム1の中継経路(トポロジー)における自ノードの位置に基づいて、自ノードが代理親機になるか否かを決定する。より具体的には、子機20の位置が、子機20が代理親機になったならば、親機M 10が通信不可状態になった後のマルチホップ通信が行われる通信システムの中継経路において、許容されるホップ上限数以内で、子機20から最も下位に位置する他の子機20まで中継可能である位置であるか否かに基づいて、子機20の代理親機機能制御部306は、自ノードが代理親機になるか否かを決定する。本実施の形態によれば、上記位置に存在していた子機20が代理親機になることにより、ホップ上限数の制約を受けることなく、全てのノードが新たなネットワークに参入できる。よって、通信ネットワークから親機が離脱したときに、通信ネットワークを適切に再構築することができる。
【0172】
なお、上述した実施の形態1及び2において、各子機20は、オリジナル親機M 10がネットワークから離脱した場合であっても、オリジナル親機M 10の識別情報を記憶しておくことで、オリジナル親機M 10が、例えば故障から復旧して通信可能状態になったときに、元々のトポロジーに戻ることができる(あるいは、LCが再算出されてトポロジーが変更される)。
【0173】
また、上述した実施の形態1及び2において、CPU201の機能部は、適宜、他の機能部と統合されてもよいし、2つ以上のサブ機能部に分割されてもよい。
【0174】
また、上述した実施の形態1及び2において、フローチャート等に示すステップの順番は、図示するものに限定されない。
【0175】
上述した実施の形態1及び2において、代理親機が、故障等によりネットワークから離脱した場合、さらなる代理親機が、上述した代理親機の決定と同様に決定されてよい。したがって、上記で記載した「(オリジナル)親機M 10」は、「代理親機」で適宜読み替えられてよく、上記で記載した「代理親機」は、「さらなる代理親機」で適宜読み替えられてよい。
【0176】
上述した実施の形態1及び2において、1ホップ目に位置していた場合や所定の条件を満たす場合等に代理親機になることができる子機は、全ての子機であってもよいし、制限されてもよい(一部の子機でもよい)。例えば、インターネットに接続できるノードが、1ホップ目に位置していた場合や所定の条件を満たす場合等に代理親機になることができる子機の一例である。例えば、各ノードは、例えばインターネットに接続できるか否かに応じて、自ノードがそのような場合に代理親機になることができること(又はなってもよいこと)を示す情報(例えば、フラグ)をHパケットに含めて、ノード間で交換することにより、自ノードが代理親機になることができるか否か(又はなってもよいか否か)を通知してもよい。
【0177】
<実施の形態のまとめ>
本開示の一実施例に係る通信装置は、マルチホップ通信が行われる通信システムにおける通信装置であって、前記通信システムにおける親機が通信不可状態であることを検知する検知部と、前記親機が通信不可状態である場合、前記通信システムの中継経路における前記通信装置の位置に基づいて、前記通信装置が代理親機になるか否かを決定する決定部と、を備える。
【0178】
本通信装置において、前記親機が通信不可状態であり、前記通信装置の位置が前記親機から1ホップ目であり、かつ、前記通信システムにおける他の通信装置が前記親機から1ホップ目に存在する場合、前記決定部は、前記親機と前記通信装置との間の第1通信品質と、前記親機と前記他の通信装置との間の第2通信品質と、に基づいて、前記通信装置が前記代理親機になるか否かを決定する。
【0179】
本通信装置において、前記親機が通信不可状態であり、前記通信装置の位置が前記親機から1ホップ目であり、前記他の通信装置が前記親機から1ホップ目に存在し、かつ、前記第1通信品質が前記第2通信品質と同一である場合、前記決定部は、待機時間を決定し、前記待機時間待機している間に前記他の通信装置から前記他の通信装置が代理親機になることを示す信号を受信しなかったならば、前記通信装置が前記代理親機になることを決定する。
【0180】
本通信装置において、前記親機が通信不可状態であり、前記通信装置の位置が、前記通信装置が前記代理親機になったならば、前記親機が通信不可状態になった後の第2のマルチホップ通信が行われる第2の通信システムの第2の中継経路において、許容されるホップ上限数以内で、前記通信装置から最も下位に位置する通信装置まで中継可能である位置であり、かつ、前記通信システムにおける他の通信装置が、前記他の通信装置が代理親機になったならば、前記親機が通信不可状態になった後の第3のマルチホップ通信が行われる第3の通信システムの第3の中継経路において、前記許容されるホップ上限数以内で、前記他の通信装置から最も下位に位置する通信装置まで中継可能である位置に存在する場合、前記決定部は、待機時間を決定し、前記待機時間待機している間に前記他の通信装置から前記他の通信装置が代理親機になることを示す信号を受信しなかったならば、前記通信装置が前記代理親機になることを決定する。
【0181】
本通信装置において、前記決定部は、前記待機時間をランダムに決定する。
【0182】
本通信装置において、前記決定部は、前記中継経路における前記通信装置の位置に基づいて、前記待機時間を決定する。
【0183】
本通信装置において、前記検知部は、前記親機からの定期信号を所定時間受信しない場合、前記親機が通信不可状態であることを検知する。
【0184】
本通信装置において、前記親機が通信不可状態であり、かつ、前記通信装置の位置が前記親機から1ホップ目でない場合、前記決定部は、待機時間を決定し、前記待機時間待機している間に前記通信システムにおける他の通信装置から前記他の通信装置が代理親機になることを示す信号を受信しなかったならば、前記通信装置が前記代理親機になることを決定する。
【0185】
本開示の一実施例に係る通信制御方法は、マルチホップ通信が行われる通信システムにおける通信装置が、前記通信システムにおける親機が通信不可状態であることを検知し、前記親機が通信不可状態である場合、前記通信システムの中継経路における前記通信装置の位置に基づいて、前記通信装置が代理親機になるか否かを決定する。
【0186】
本開示の一実施例に係る通信システムは、マルチホップ通信が行われる通信システムであって、前記通信システムを構成する子機の中から、前記通信システムの中継経路に基づいて、代理親機候補を決定し、前記通信システムにおける親機が通信不可状態になった場合に、前記代理親機候補の中から代理親機を決定し、前記代理親機候補は、前記代理親機候補が前記代理親機になったならば、前記親機が通信不可状態になった後の第2のマルチホップ通信が行われる第2の通信システムの第2の中継経路において、許容されるホップ上限数以内で、前記代理親機候補を除く前記子機に対して中継可能である。
【0187】
上述の実施の形態においては、各構成要素に用いる「・・・部」という表記は、「・・・回路(circuitry)」、「・・・アッセンブリ」、「・・・デバイス」、「・・・ユニット」、又は、「・・・モジュール」といった他の表記に置換されてもよい。
【0188】
以上、図面を参照しながら実施の形態について説明したが、本開示はかかる例に限定されない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例又は修正例に想到し得ることは明らかである。そのような変更例又は修正例についても、本開示の技術的範囲に属するものと了解される。また、本開示の趣旨を逸脱しない範囲において、実施の形態における各構成要素は任意に組み合わされてよい。
【0189】
本開示はソフトウェア、ハードウェア、又は、ハードウェアと連携したソフトウェアで実現することが可能である。上記実施の形態の説明に用いた各機能ブロックは、部分的に又は全体的に、集積回路であるLSIとして実現され、上記実施の形態で説明した各プロセスは、部分的に又は全体的に、一つのLSI又はLSIの組み合わせによって制御されてもよい。LSIは個々のチップから構成されてもよいし、機能ブロックの一部又は全てを含むように一つのチップから構成されてもよい。LSIはデータの入力と出力を備えてもよい。LSIは、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0190】
集積回路化の手法はLSIに限るものではなく、専用回路、汎用プロセッサ又は専用プロセッサで実現してもよい。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。本開示は、デジタル処理又はアナログ処理として実現されてもよい。
【0191】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0192】
本開示は、通信機能を持つあらゆる種類の装置、デバイス、システム(通信装置と総称)において実施可能である。通信装置は無線送受信機(トランシーバー)と処理/制御回路を含んでもよい。無線送受信機は受信部と送信部、またはそれらを機能として、含んでもよい。無線送受信機(送信部、受信部)は、RF(Radio Frequency)モジュールと1または複数のアンテナを含んでもよい。RFモジュールは、増幅器、RF変調器/復調器、またはそれらに類するものを含んでもよい。通信装置の、非限定的な例としては、電話機(携帯電話、スマートフォン等)、タブレット、パーソナル・コンピューター(PC)(ラップトップ、デスクトップ、ノートブック等)、カメラ(デジタル・スチル/ビデオ・カメラ等)、デジタル・プレーヤー(デジタル・オーディオ/ビデオ・プレーヤー等)、着用可能なデバイス(ウェアラブル・カメラ、スマートウオッチ、トラッキングデバイス等)、ゲーム・コンソール、デジタル・ブック・リーダー、テレヘルス・テレメディシン(遠隔ヘルスケア・メディシン処方)デバイス、通信機能付きの乗り物又は移動輸送機関(自動車、飛行機、船等)、及び上述の各種装置の組み合わせがあげられる。
【0193】
通信装置は、持ち運び可能又は移動可能なものに限定されず、持ち運びできない又は固定されている、あらゆる種類の装置、デバイス、システム、例えば、スマート・ホーム・デバイス(家電機器、照明機器、スマートメーター又は計測機器、コントロール・パネル等)、自動販売機、その他IoT(Internet of Things)ネットワーク上に存在し得るあらゆる「モノ(Things)」をも含む。
【0194】
通信には、セルラーシステム、無線LANシステム、通信衛星システム等によるデータ通信に加え、これらの組み合わせによるデータ通信も含まれる。
【0195】
また、通信装置には、本開示に記載される通信機能を実行する通信デバイスに接続又は連結される、コントローラやセンサー等のデバイスも含まれる。例えば、通信装置の通信機能を実行する通信デバイスが使用する制御信号やデータ信号を生成するような、コントローラやセンサーが含まれる。
【0196】
また、通信装置には、上記の非限定的な各種装置と通信を行う、あるいはこれら各種装置を制御する、インフラストラクチャ設備、例えば、基地局、アクセスポイント、その他あらゆる装置、デバイス、システムが含まれる。
【産業上の利用可能性】
【0197】
本開示の一実施例は、マルチホップ通信システムに有用である。
【符号の説明】
【0198】
1 通信システム
10 親機M
20 子機
100 ノード
201 CPU
202 記憶装置
203 通信装置
204 機器インターフェース装置
301 パケット解析部
302 認証処理部
303 リンクコスト算出部
304 トポロジー管理部
305 パケット生成部
306 代理親機機能制御部
500A 自ノード情報
500B 隣接ノード情報
図1
図2
図3
図4A
図4B
図5A
図5B
図6A
図6B
図7
図8A
図8B
図9
図10
図11A
図11B