(57)【特許請求の範囲】
【請求項１】
送信元装置から宛先装置へ向けて送信され、それ自身の識別情報を含む制御パケットのうち消失した前記制御パケットの識別情報を含む診断パケット、および、前記制御パケットを、前記送信元装置から受信し、前記宛先装置へ送信するネットワーク送受信部と、
前記制御パケットの前記識別情報、および、前記制御パケットを送信する次の送信先を示すルーティング情報を通信履歴として保存する記憶部と、
前記診断パケットに含まれる前記識別情報と一致する識別情報が、前記通信履歴として前記記憶部に保存されているか否かを判定し、判定結果を前記診断パケットに追加する診断部と、
消失した前記制御パケットの前記ルーティング情報を前記記憶部から読み出し、前記ネットワーク送受信部に、前記ルーティング情報に含まれる前記次の送信先へ前記診断パケットを送信させる診断パケット中継部と、
を備える、制御装置。
【請求項２】
前記診断部は、前記ネットワーク送受信部が前記診断パケットを受信した際に、直前に前記判定結果を前記診断パケットに含めた前記送信元装置を特定し、特定した前記送信元装置に、前記診断パケットを前記次の送信先へ送信することを示す診断継続応答パケットを送信する、
請求項１に記載の制御装置。
【請求項３】
前記診断パケット中継部は、前記診断パケットを前記次の送信先へ送信した後、一定時間内に送信した前記次の送信先から前記診断継続応答パケットを受信しない場合、前記診断部の特定した直前に前記判定結果を前記診断パケットに含めた前記送信元装置に、自身の持つ診断パケットを送信する、
請求項２に記載の制御装置。
【請求項４】
前記制御装置は、前記診断パケットを格納するための診断パケットバッファ部をさらに備え、
前記診断部は、前記診断パケットバッファ部を介して前記診断パケットを前記送信元装置または前記宛先装置から受信し、
前記診断パケット中継部は、前記診断パケットバッファ部を介して、前記診断パケットを前記送信元装置または前記宛先装置に送信する、
請求項２または３に記載の制御装置。
【請求項５】
前記診断パケット中継部は、前記診断パケットの送信時に、前記診断パケットのサイズが予め定められた一定サイズを超えていた場合、前記診断パケットを複数のパケットに分割して複数の分割診断パケットを生成し、前記複数の分割診断パケットをそれぞれ、順次、前記送信元装置または前記宛先装置に送信する、
請求項１から４の何れか一項に記載の制御装置。
【請求項６】
それ自身の識別情報を含むパケットを、中継装置を介して宛先装置に送信し、送信終了後、前記宛先装置からの応答を受信するネットワーク送受信部と、
前記ネットワーク送受信部が、前記パケットを送信してから一定期間内に前記宛先装置から前記応答を受信できない場合に、前記応答を受信できない消失したパケットの識別情報を含む診断パケットを生成し、前記ネットワーク送受信部に、前記中継装置を介して前記宛先装置に前記診断パケットを送信させる診断依頼部と、
前記診断パケットを中継した前記中継装置及び受信した前記宛先装置それぞれが蓄積している通信履歴の中に前記消失したパケットの前記識別情報と一致する情報が含まれるか否かを判定した判定結果が前記中継装置及び前記宛先装置それぞれにより追加された診断パケットに基づいて、前記消失したパケットが通信経路のどこで消失したかを判別する消失位置判別部と、
を備える、制御装置。
【請求項７】
前記通信履歴は、自身から前記宛先装置までの間に経由する全ての前記中継装置を特定する識別情報を含み、
前記制御装置は、前記通信履歴に含まれる前記中継装置を特定する識別情報に基づいて、前記診断パケットが送信される中継装置の識別情報を設定する診断パケット中継部を、さらに備える、
請求項６に記載の制御装置。
【請求項８】
前記制御装置は、自身が蓄積している通信履歴と前記診断パケットに含まれている識別情報とに基づいて、その識別情報で特定されるパケットを受信したか否かを判定した判定結果から生成される診断情報を、前記診断パケットに含める診断部を、さらに備える、
請求項７に記載の制御装置。
【請求項９】
制御装置において実行される方法であって、
送信元装置から宛先装置へ向けて送信され、それ自身の識別情報を含む制御パケットのうち消失した前記制御パケットを特定する前記識別情報を含む診断パケット、および、前記制御パケットを受信し、
前記制御パケットの前記識別情報、および、前記制御パケットを送信する次の送信先を示すルーティング情報を、通信履歴として保存し、
前記診断パケットに含まれる前記識別情報と一致する識別情報が、前記通信履歴として保存されているか否かを判定し、判定結果を前記診断パケットに追加し、
消失した前記制御パケットの前記ルーティング情報を読み出し、前記ルーティング情報に含まれる前記次の送信先へ前記診断パケットを送信する、
方法。
【請求項１０】
制御装置において実行される方法であって、
それ自身の識別情報を含むパケットを、中継装置を介して宛先装置に送信し、送信終了後、前記宛先装置からの応答を受信し、
前記パケットを送信してから一定期間内に前記宛先装置から前記応答を受信できない場合に、前記応答を受信できない消失したパケットの識別情報を含む診断パケットを生成し、前記中継装置を介して前記宛先装置に前記診断パケットを送信し、
前記診断パケットを中継した前記中継装置及び受信した前記宛先装置それぞれが蓄積している通信履歴の中に前記消失したパケットの前記識別情報と一致する情報が含まれるか否かを判定した判定結果が前記中継装置及び前記宛先装置それぞれにより追加された診断パケットに基づいて、前記消失したパケットが通信経路のどこで消失したかを判別する、
方法。
【請求項１１】
コンピュータに、
送信元装置から宛先装置へ向けて送信され、それ自身の識別情報を含む制御パケットのうち、消失した前記制御パケットを特定する識別情報を含む診断パケット、および、前記制御パケットを受信する処理、
前記制御パケットの前記識別情報、および、前記制御パケットを送信する次の送信先を示すルーティング情報を、通信履歴として保存する処理、
前記診断パケットに含まれる前記識別情報と一致する識別情報が、前記通信履歴として保存されているか否かを判定し、判定結果を前記診断パケットに追加し、
消失した前記制御パケットの前記ルーティング情報を読み出し、前記ルーティング情報に含まれる前記次の送信先へ前記診断パケットを送信する処理、
を実行させるためのプログラム。
【請求項１２】
コンピュータに、
それ自身の識別情報を含むパケットを、中継装置を介して宛先装置に送信し、送信終了後、前記宛先装置からの応答を受信する処理、
前記パケットを送信してから一定期間内に前記宛先装置から前記応答を受信できない場合に、前記応答を受信できない消失したパケットの識別情報を含む診断パケットを生成し、前記中継装置を介して前記宛先装置に前記診断パケットを送信する処理、
前記診断パケットを中継した前記中継装置及び受信した前記宛先装置それぞれが蓄積している通信履歴の中に前記消失したパケットの前記識別情報と一致する情報が含まれるか否かを判定した判定結果が前記中継装置及び前記宛先装置それぞれにより追加された診断パケットに基づいて、前記消失したパケットが通信経路のどこで消失したかを判別する処理、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御装置、方法、および、プログラムに関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ；以下、ＰＬＣと称する）を含む制御装置は、他の制御装置とネットワークを介して、制御指示、制御情報等含むパケットを交換する。特に、送信元の制御装置から送信先の制御装置までの距離が離れている場合、中継ノードとなる他の制御装置を介して、送信先の制御装置にパケットを送信している。【０００３】
制御指示、制御情報等含むパケットは、ネットワーク障害、制御装置の異常等により消失する場合がある。パケットが消失した場合、送信元の制御装置、送信先の制御装置、または中継ノードとなる他の制御装置の動作に異常が発生する可能性が高い。また、制御信号、制御情報等を含むパケットの消失は、各制御装置により制御される制御対象機器の動作にも異常を発生させる可能性がある。このため、たとえ一時的な障害であったとしても、パケットの消失が発生した時点における障害要因を特定し、再発防止を行うことが必須である。【０００４】
しかしながら、制御装置または制御対象機器の動作に異常が発生しても、ネットワーク上でのパケットの消失箇所を特定することは困難である。このため、パケット消失の原因究明と、システムの復旧とに時間がかかっていた。そこで、パケットの消失箇所を簡易に特定する方法として、例えば、特許文献１には、パケットの中継経路情報であるルーティング情報を基に、パケットの送信先まで各中継ノードとなる制御装置の通信状況を確認することにより、異常の発生箇所を特定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１８１５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された技術では、送信元、送信先、および中継ノードとなる制御装置において、各制御装置が通信履歴を取っていない。このため、通信状態の確認を実施した時点で既にネットワーク内の障害が解消されていた場合、パケットの消失箇所を特定することができないという課題がある。【０００７】
本開示はこの課題を解決するためのものであり、ネットワークの状態にかかわらず、パケットの消失箇所を特定するための情報を保持することができる制御装置、方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示における制御装置は、送信元装置から宛先装置へ向けて送信され、それ自身の識別情報を含む制御パケットのうち消失した制御パケットの識別情報を含む診断パケット、および、制御パケットを、送信元装置から受信し、宛先装置へ送信するネットワーク送受信部と、制御パケットの識別情報、および、制御パケットを送信する次の送信先を示すルーティング情報を通信履歴として保存する記憶部と、診断パケットに含まれる識別情報と一致する識別情報が、通信履歴として記憶部に保存されているか否かを判定し、判定結果を診断パケットに追加する診断部と、消失した制御パケットのルーティング情報を記憶部から読み出し、ネットワーク送受信部に、ルーティング情報に含まれる次の送信先へ診断パケットを送信させる診断パケット中継部と、を備える。
【発明の効果】
【０００９】
上記目標を達成するために、本開示にかかる制御装置は、パケットの通信履歴を保存すること、または、パケットの通信履歴に基づく情報を受信することができるため、ネットワークの状態にかかわらず、パケットの消失箇所を特定するための情報を保持することができる。
【図面の簡単な説明】
【００１０】
【図１】本開示の実施の形態に係る制御システムの構成の一例を示す図
【図２】本開示の実施の形態に係る制御装置の構成を示す図
【図３】図２に示した制御装置のハードウエア構成の一例を示す図
【図４】本開示の実施の形態に係るノードＩＤのデータ構造を示す図
【図５】本開示の実施の形態に係るルーティングテーブルのテーブル構成を示す図
【図６】本開示の実施の形態に係る履歴テーブルのテーブル構成を示す図
【図７Ａ】本開示の実施の形態に係る制御パケットのデータ構成を示す図
【図７Ｂ】本開示の実施の形態に係る制御パケットのデータ構成を示す図
【図８】本開示の実施の形態に係る診断パケットのデータ構成を示す図
【図９】本開示の実施の形態に係るパケット消失箇所診断処理の全体の流れを示すフローチャート
【図１０】図９に示した障害検知処理における診断依頼処理を示すフローチャート
【図１１】図９に示した障害検知処理における診断処理を示すフローチャート
【図１２】図９に示した障害検知処理における診断実行処理を示すフローチャート
【図１３】図９に示した障害検知処理における診断パケット中継処理を示すフローチャート
【発明を実施するための形態】
【００１１】
以下、本開示の実施の形態に係る制御システム１００について、図面を参照しつつ説明する。なお、同一または同等の部分に同一の符号を付す。制御システム１００は、パケットの通信履歴を保存、または、パケットの通信履歴に基づく情報を受信することにより、ネットワークの状態にかかわらず、パケットの消失箇所を特定するための情報を保持することができるシステムである。
【００１２】
図１は、制御システム１００の構成の一例を示す図である。制御システム１００には、外部の制御対象機器を制御するＰＬＣを含む第１制御装置１ａ〜第４制御装置１ｄと、第１制御装置１ａ〜第４制御装置１ｄを接続するためのネットワークである第１ネットワーク２ａ〜第４ネットワーク２ｄとが含まれている。
【００１３】
第１制御装置１ａは、第１ネットワーク２ａを介して、第２制御装置１ｂと接続している。第２制御装置１ｂは、第２ネットワーク２ｂを介して第３制御装置１ｃに接続している。また、第２制御装置１ｂは、第４ネットワーク２ｄを介して第４制御装置１ｄに接続している。第３制御装置１ｃは、第３ネットワーク２ｃを介して、第４制御装置１ｄに接続している。なお、以下では、第１制御装置１ａ〜第４制御装置１ｄを総称して制御装置１と称する。また、以下では、第１ネットワーク２ａ〜第４ネットワーク２ｄを総称して、ネットワーク２と称する。
【００１４】
第１制御装置１ａ〜第４制御装置１ｄにはそれぞれ、ノードアドレスが付与されている。例えば、図１に示す第１制御装置１ａのノードアドレスはＮＤ＿Ａであり、第２制御装置１ｂのノードアドレスはＮＤ＿Ｂ、第３制御装置１ｃのノードアドレスはＮＤ＿Ｃ、第４制御装置１ｄのノードアドレスはＮＤ＿Ｄである。また、第１ネットワーク２ａ〜第４ネットワーク２ｄにはそれぞれ、ネットワークアドレスが付与されている。例えば、図１に示す第１ネットワーク２ａのネットワークアドレスはＡＮ＿Ｘであり、第２ネットワーク２ｂのネットワークアドレスはＡＮ＿Ｙ、第３ネットワーク２ｃのネットワークアドレスはＡＮ＿Ｚ、第４ネットワーク２ｄのネットワークアドレスはＡＮ＿Ｗである。
【００１５】
第１制御装置１ａ〜第４制御装置１ｄは、他の制御装置１との間で制御指示、制御情報等含むパケットを送受信する場合、ネットワークを介して隣接する制御装置１を経由し、他の制御装置１とパケットを送受信する。例えば、第１制御装置１ａから第４制御装置１ｄに制御指示、制御情報等含むパケットを送信する場合、パケットは、送信元の第１制御装置１ａから、第１ネットワーク２ａ、第２制御装置１ｂ、第２ネットワーク２ｂ、第３制御装置１ｃ、第３ネットワーク２ｃを順に経由して送信先の第４制御装置１ｄに送信される。もしくは、パケットは、送信元の第１制御装置１ａから、第１ネットワーク２ａ、第２制御装置１ｂ、第４ネットワーク２ｄを順に経由して送信先の第４制御装置１ｄに送信される。なお、以下では、送信元の制御装置１から送信先の制御装置１にパケットを送信する際、経由する制御装置１を中継先の制御装置１と称し、経由するネットワーク２を中継先のネットワーク２と称する。また、送信先の制御装置１は、請求の範囲における宛先装置の一例である。中継先の制御装置１は、請求の範囲における中継装置の一例である。送信元の制御装置１は、請求の範囲における送信元装置の一例である。
【００１６】
図２は、制御装置１の構成を示す図である。制御装置１は、制御対象機器及び特定の制御装置１を制御するコントロール部１１と、ネットワーク２を介して各種データを送受信するネットワーク送受信部１２と、各種パケットの送受信及び診断を行うパケット制御部１３とを含む。コントロール部１１は、制御パケット３０４を制御対象機器および特定の制御装置１と送受信することにより、制御対象機器および特定の制御装置１を制御する。制御パケット３０４には、制御要求パケットと制御応答パケットとが含まれる。制御要求パケットは、制御装置１から制御対象機器および特定の制御装置１に対して制御を要求するためのパケットである。制御要求パケットは、制御装置１のコントロール部１１で生成される。また、制御応答パケットは、制御要求パケットの実行結果を、制御対象機器および特定の制御装置１から、制御要求パケットの送信元の制御装置１に応答するためのパケットである。
【００１７】
ネットワーク送受信部１２は、ネットワーク２を介して、他の制御装置１と各種データを送受信する。ネットワーク送受信部１２が他の制御装置１との間で送受信するデータは、例えば、コントロール部１１が、制御対象機器および特定の制御装置１と送受信する制御パケット３０４、パケットの消失箇所を特定するための情報を収集するための診断パケット３０５等である。また、ネットワーク送受信部１２は、後述するパケット制御部１３の診断パケットバッファ部１３３と送信バッファ部１３８とに保存されているパケットを、定期的にネットワーク２に送信する。
【００１８】
パケット制御部１３は、受信したパケットを診断パケット３０５か否か判定する診断パケット判定部１３１と、診断パケット３０５以外のパケットを一時的に保存する受信バッファ部１３２と、診断パケット３０５を一時的に保存する診断パケットバッファ部１３３と、パケットの消失を診断する診断部１３４と、診断パケット３０５に中継先の情報を設定する診断パケット中継部１３５と、各種データ、各種プログラム等を保存する記憶部１３６と、各種制御を実行する中継制御部１３７と、送信するパケットを一時的に保存する送信バッファ部１３８とを備える。
【００１９】
診断パケット判定部１３１は、ネットワーク２を介して他の制御装置１から受信したパケットが診断パケット３０５か否かを判定する判定部である。受信バッファ部１３２は、診断パケット判定部１３１により診断パケット３０５ではないと判定されたパケットを、一時的に保存するバッファである。診断パケットバッファ部１３３は、診断パケット判定部１３１により診断パケット３０５と判定されたパケット、および、診断パケット中継部１３５で中継先の情報を設定された診断パケット３０５を、一時的に保存するバッファである。診断部１３４は、診断パケット３０５に含まれる情報を基に、後述する履歴テーブル３０３を参照してパケットの消失の有無を判定し、判定結果を診断パケット３０５に追記する。診断パケット中継部１３５は、診断部１３４で診断情報を追記された診断パケット３０５に、次の中継先の情報を設定する。具体的には、診断パケット中継部１３５は、次の中継先となる制御装置１のノードＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を診断パケット３０５に設定する。また、診断パケット中継部１３５は、設定した診断パケット３０５を、診断パケットバッファ部１３３に送信する。
【００２０】
記憶部１３６は、各種データ、各種プログラム等を保存する。記憶部１３６には、パケットの中継経路の情報であるルーティング情報を保存するルーティングテーブル３０２と、パケットの送受信履歴および送信時のルーティング情報を含む履歴テーブル３０３とが含まれている。ルーティングテーブル３０２と、履歴テーブル３０３について、詳細は後述する。
【００２１】
中継制御部１３７は、制御装置１として実行する各種制御を実行する制御部である。中継制御部１３７は、コントロール部１１の生成した制御要求パケットを、送信バッファ部１３８に送信する。中継制御部１３７は、受信バッファ部１３２を介して制御対象機器および特定の制御装置１から受信した制御応答パケットを、コントロール部１１へ送信する。
【００２２】
また、中継制御部１３７は、制御パケット３０４の履歴を管理する履歴管理部１４０と、診断を依頼する診断依頼部１４１と、パケットの消失位置を判別する消失位置判別部１４２とを備える。履歴管理部１４０は、中継制御部１３７で行われた制御パケット３０４の送受信に関する情報を、記憶部１３６に保存された履歴テーブル３０３に追記する。診断依頼部１４１は、制御対象機器および特定の制御装置１から制御応答パケットを、一定期間内に受信できなかった場合、診断パケット３０５を生成し、他の制御装置１に診断を依頼する。消失位置判別部１４２は、診断パケット３０５に含まれる診断情報から、診断対象のパケットの消失した位置を判別する。
【００２３】
パケット制御部１３に備えられた診断パケット判定部１３１と、受信バッファ部１３２と、診断パケットバッファ部１３３と、診断部１３４と、診断パケット中継部１３５と、中継制御部１３７と、送信バッファ部１３８とは、記憶部１３６に保存された制御プログラムを実行することにより、ソフトウエア上で実現することのできる機能である。各機能を実現する制御プログラムを実行し、制御装置１として動作することができるハードウエアの構成の一例を、図３に示す。
【００２４】
制御装置１は、プログラムを実行するプロセッサ１１１と、各種プログラム、データ等を保存する記憶装置１１２と、記憶装置１１２からプログラムを読み出して展開するメモリ１１３と、コントロールモジュール１１４と、ネットワーク接続装置１１５と、内部バス１１６とを備える。プロセッサ１１１と、記憶装置１１２と、メモリ１１３と、コントロールモジュール１１４と、ネットワーク接続装置１１５とは、内部バス１１６により相互に接続されている。
【００２５】
プロセッサ１１１は、メモリ１１３に展開されたプログラムを実行する。プロセッサ１１１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ−ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の各種演算処理装置を用いて構成することができる。記憶装置１１２は、プロセッサ１１１が実行する各種プログラムと、プロセッサ１１１が各種プログラムを実行する際に必要なデータ等を保存する。また、記憶装置１１２は、図２に示した記憶部１３６を実現するための装置である。記憶装置１１２には、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の揮発性または不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の記憶素子及び記憶媒体が含まれる。
【００２６】
メモリ１１３は、制御装置１の起動時に、記憶装置１１２に保存されている各種プログラムを読み込み、プロセッサ１１１に実行させることができるようにする記憶素子である。メモリ１１３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリなどの、データを高速に書き込むことができる揮発性または不揮発性の半導体メモリが含まれる。コントロールモジュール１１４は、図２に示したコントロール部１１を実現するため演算処理装置である。コントロールモジュール１１４は、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を用いて実現することができる。
【００２７】
ネットワーク接続装置１１５は、制御装置１を図２に示したネットワーク２に接続するための接続装置である。ネットワーク接続装置１１５は、図２に示したネットワーク送受信部１２を実現するための接続装置である。このため、ネットワーク接続装置１１５は、ネットワーク２を介して他の制御装置１および制御対象機器と制御パケット、各種データ等を送受信できることが好ましい。ネットワーク接続装置１１５は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等の各種のデータを送受信できるインターフェースにより構成することができる。
【００２８】
続いて、本実施の形態に係る制御システム１００で用いられる各種テーブル、パケット等のデータ構成について、図４から図８を参照しつつ、以下に説明する。まず、図４に示すノードＩＤ３０１のテーブルは、第１制御装置１ａ〜第４制御装置１ｄそれぞれを示すＩＤのデータ構造を示すテーブルである。ノードＩＤ３０１は、制御パケット３０４の送信元および送信先を指定する際に用いられる。ノードＩＤ３０１のデータ構造は、図４に示すとおり、ネットワークアドレスとノードアドレスを含む。ネットワークアドレスは、第１制御装置１ａ〜第４制御装置１ｄそれぞれから見て、下位のネットワーク２におけるアドレスが設定される。
【００２９】
例えば、図１において、第１制御装置１ａから第４制御装置１ｄにパケットを送信する場合、第１制御装置１ａ側を下位、第４制御装置１ｄ側を上位とする。また、図１において、第４制御装置１ｄから第１制御装置１ａにパケットを送信する場合、第１制御装置１ａ側を上位、第４制御装置１ｄ側を下位とする。
【００３０】
ここで、例えば、第１制御装置１ａから第４制御装置１ｄにパケットを送信する場合、第１制御装置１ａの下位にはネットワーク２が無い。したがって、図４に示すノードＩＤ３０１のテーブルにおいて、第１制御装置１ａのネットワークアドレスの欄にはブランクを示す「−」が入力される。また、第１制御装置１ａのノードアドレスの欄には、図１に示した第１制御装置１ａのノードアドレスＮＤ＿Ａが入力される。
【００３１】
第２制御装置１ｂの下位ネットワークは、第１ネットワーク２ａになる。このため、図４に示すノードＩＤ３０１のテーブルにおいて、第２制御装置１ｂのネットワークアドレスの欄には、図１に示した第１ネットワーク２ａのネットワークアドレスＡＮ＿Ｘが入力される。また、第２制御装置１ｂのノードアドレスの欄には、図１に示した第２制御装置１ｂのノードアドレスＮＤ＿Ｂが入力される。
【００３２】
第３制御装置１ｃの下位ネットワークは、第２ネットワーク２ｂになる。このため、図４に示すノードＩＤ３０１のテーブルにおいて、第３制御装置１ｃのネットワークアドレスの欄には、図１に示した第２ネットワーク２ｂのネットワークアドレスＡＮ＿Ｙが入力される。また、第３制御装置１ｃのノードアドレスの欄には、図１に示した第３制御装置１ｃのノードアドレスＮＤ＿Ｃが入力される。
【００３３】
第４制御装置１ｄの下位ネットワークは、第３ネットワーク２ｃになる。このため、図４に示すノードＩＤ３０１のテーブルにおいて、第４制御装置１ｄのネットワークアドレスの欄には、図１に示した第３ネットワーク２ｃのネットワークアドレスＡＮ＿Ｚが入力される。また、第４制御装置１ｄのノードアドレスの欄には、図１に示した第４制御装置１ｄのノードアドレスＮＤ＿Ｄが入力される。ノードＩＤ３０１のテーブルは、図２に示したパケット制御部１３の記憶部１３６に保存される。
【００３４】
続いて、図２に示したパケット制御部１３の記憶部１３６に保存されるルーティングテーブル３０２のデータ構造を、図５に示す。ルーティングテーブル３０２は、パケットの中継経路情報であるルーティング情報を設定するテーブルである。ルーティングテーブル３０２には、宛先ネットワークアドレスとともに、送信先の制御装置１にパケットを届けるために次に経由すべき中継先のノードＩＤ、すなわち、自装置と隣接するノードに関するノードＩＤが設定されている。このため、ルーティングテーブル３０２は、第１制御装置１ａ〜第４制御装置１ｄそれぞれで異なる。
【００３５】
例えば、図５に示すルーティングテーブル３０２は、第１制御装置１ａの記憶部１３６に保存されるテーブルである。このテーブルの１行目は、図１に示した第１制御装置１ａから、第１ネットワーク２ａ、第２制御装置１ｂ、第２ネットワーク２ｂ、第３制御装置１ｃ、第３ネットワーク２ｃを経由して第４制御装置１ｄにパケットを送信される場合を示している。第４制御装置１ｄには、第３ネットワーク２ｃが接続されている。このため、図５に示すルーティングテーブル３０２の宛先ネットワークアドレスには、図１に示した第３ネットワーク２ｃのネットワークアドレスＡＮ＿Ｚが入力される。
【００３６】
また、第１制御装置１ａから第４制御装置１ｄにパケットが送信される場合、第１制御装置１ａから次に経由される中継先は、第２制御装置１ｂである。図４に示したノードＩＤ３０１のテーブルには、第２制御装置１ｂのノードＩＤとして第２ノードが入力されている。このため、図５に示すルーティングテーブル３０２の中継先のノードＩＤには、第２制御装置１ｂのノードＩＤである第２ノードが入力される。
【００３７】
続いて、図５に示すルーティングテーブル３０２の２行目は、図１に示した第１制御装置１ａから、第１ネットワーク２ａ、第２制御装置１ｂ、第２ネットワーク２ｂを経由して、第３制御装置１ｃにパケットが送信される場合を示している。第３制御装置１ｃには、第２ネットワーク２ｂが接続されている。このため、図５に示すルーティングテーブル３０２の宛先ネットワークアドレスには、図１に示した第２ネットワーク２ｂのネットワークアドレスＡＮ＿Ｙが入力される。
【００３８】
また、第１制御装置１ａから第３制御装置１ｃにパケットが送信される場合、第１制御装置１ａから次に経由される中継先は、第２制御装置１ｂである。図４に示したノードＩＤ３０１のテーブルには、第２制御装置１ｂのノードＩＤとして第２ノードが入力されている。このため、図５に示すルーティングテーブル３０２の中継先のノードＩＤには、第２制御装置１ｂのノードＩＤである第２ノードが入力される。
【００３９】
また、図５に示すルーティングテーブル３０２の３行目は、図１に示した第１制御装置１ａから、第１ネットワーク２ａ、第２制御装置１ｂ、第４ネットワーク２ｄを経由して、第４制御装置１ｄにパケットが送信される場合を示している。第４制御装置１ｄには、第４ネットワーク２ｄが接続されている。このため、図５に示すルーティングテーブル３０２の宛先ネットワークアドレスには、図１に示した第４ネットワーク２ｄのネットワークアドレスＡＮ＿Ｗが入力される。
【００４０】
また、第１制御装置１ａから第４制御装置１ｄにパケットが送信される場合、第１制御装置１ａから次に経由される中継先は、第２制御装置１ｂである。図４に示したノードＩＤ３０１のテーブルには、第２制御装置１ｂのノードＩＤとして第２ノードが入力されている。このため、図５に示すルーティングテーブル３０２の中継先のノードＩＤには、第２制御装置１ｂのノードＩＤである第２ノードが入力される。
【００４１】
図５に示すルーティングテーブル３０２の４行目は、図１に示した第１制御装置１ａから、第１ネットワーク２ａを経由して、第２制御装置１ｂにパケットを送信する場合を示している。第２制御装置１ｂには、第１ネットワーク２ａが接続されている。このため、図５に示すルーティングテーブル３０２の宛先ネットワークアドレスには、図１に示した第１ネットワーク２ａのネットワークアドレスＡＮ＿Ｘが入力される。
【００４２】
また、第２制御装置１ｂは、図１に示したとおり、第１制御装置１ａに隣接している。図４に示したノードＩＤ３０１のテーブルには、第２制御装置１ｂのノードＩＤとして第２ノードが入力されている。このため、図５に示すルーティングテーブル３０２の中継先のノードＩＤには、第２制御装置１ｂのノードＩＤである第２ノードが入力される。
【００４３】
以上のとおり、ルーティングテーブル３０２には、第１制御装置１ａにおいて取り得るパケットの送信先を示す宛先ネットワークアドレスとともに、送信先の制御装置１にパケットを届けるために次に経由すべき中継先のノードＩＤ、すなわち、自装置と隣接するノードに関するノードＩＤが設定されている。同様に、第２制御装置１ｂ〜第４制御装置１ｄもそれぞれ、ルーティングテーブル３０２には、自装置において取り得るパケットの送信先と、送信先の制御装置１にパケットを届けるために次に経由すべき中継先のノードＩＤとが入力されている。
【００４４】
図６は、履歴テーブル３０３のデータ構成を示す図である。履歴テーブル３０３には、パケットの送信または受信した日時と、パケットの送信元を示す送信元識別情報と、パケットの送信先を示す宛先識別情報と、制御装置１が最終的に受信した最終受信パケット識別情報と、制御装置１が最終的に送信した最終送信パケット識別情報と、パケットの中継経路情報であるルーティング情報とが入力される。
【００４５】
日時には、制御装置１がパケットを送信する場合、制御装置１がパケットを送信した日時が入力される。また、制御装置１がパケットを受信する場合、制御装置１がパケットを受信した日時が入力される。制御装置１が送信と受信を行っている場合、例えば、制御装置１が中継先である場合には、送信した日時が入力される。ここでは、年月日と時分秒とが入力されている。なお、入力形式は任意である。送信元識別情報には、パケットの送信元を特定するための情報が入力される。ここでは、送信元の制御装置１を示すノードＩＤが入力される。なお、送信元の制御装置１が自装置である場合は、自装置のノードＩＤが入力される。
【００４６】
宛先識別情報には、パケットの送信先を特定するための情報が入力されている。ここでは、送信先の制御装置１を示すノードＩＤが入力される。なお、送信先の制御装置１が自装置である場合は、自装置のノードＩＤが入力される。
【００４７】
最終受信パケット識別情報は、送信元の制御装置１から最後に受信したパケットを識別するための情報が入力されている。なお、送信元の制御装置１から何も受信していない場合、または、自装置が送信元である場合、「なし」と入力される。最終送信パケット識別情報は、他の制御装置１に送信したパケットを識別するための情報が入力されている。最終送信パケット識別情報には、自装置が中継先である場合、他の制御装置１に中継したパケットを識別するための情報が入力される。また、自装置が送信先である場合、最終送信パケット識別情報には「なし」と入力される。
【００４８】
ルーティング情報は、最終送信パケット識別情報の示すパケットを中継した中継先を特定するための情報が入力される。ここでは、中継先の制御装置１を示すノードＩＤが入力される。なお、自装置が送信先である場合、中継先はないため、「なし」と入力される。
【００４９】
履歴テーブル３０３は、第１制御装置１ａ〜第４制御装置１ｄそれぞれにおいて、図２に示した記憶部１３６に保存されている。例えば、図６に示す履歴テーブル３０３は、第１制御装置１ａに保存されたテーブルとする。第１制御装置１ａから第４制御装置１ｄに、パケットαを送信する場合を、履歴テーブル３０３の１行目に示す。履歴テーブル３０３の１行目には、２０２０年２月１９日１０時２５分４７秒に、送信元の第１ノードが第４ノード宛てのパケットαを、次の中継先である第２ノードに送信したことが示されている。また、自装置が送信元であるため、最終受信パケット識別情報の欄には「なし」と入力されている。
【００５０】
また、第４制御装置１ｄから第１制御装置１ａに、パケットβが送信された場合を、履歴テーブル３０３の２行目に示す。履歴テーブル３０３の２行目には、２０２０年２月１９日１０時２６分６秒に、第１制御装置１ａがパケットβを受信したことが示されている。パケットβは、第４ノードが送信元である。また、パケットβの宛先が自装置であることから、最終送信パケット識別情報の欄には「なし」と入力されている。なお、履歴テーブル３０３は、請求の範囲における通信履歴の一例である。
【００５１】
続いて、図２に示した制御装置１のコントロール部１１が、制御対象機器および特定の制御装置１と送受信する制御パケット３０４のデータ構成について、図７Ａおよび図７Ｂを参照しつつ説明する。図７Ａは制御パケット３０４のうち制御要求パケットを示し、図７Ｂは制御パケット３０４のうち制御応答パケットを示している。図７Ａおよび図７Ｂに示す制御パケット３０４は、ヘッダー部とデータ部から構成されている。ヘッダー部には、制御パケット３０４の送信元を示す送信元ノードＩＤ、制御パケット３０４の送信先を示す宛先ノードＩＤ、送信先に送信する制御パケット３０４の種別等が含まれている。データ部には、送信元から送信先の制御装置１に送信されるパケットを識別するためのパケットＩＤが入力されている。
【００５２】
例えば、第１制御装置１ａが、第３制御装置１ｃにパケットαを送信し、パケットαに示された特定の制御を要求するものとする。この場合、図７Ａに示すヘッダー部の送信元ノードＩＤには、第１制御装置１ａのノードＩＤである第１ノードが入力される。宛先ノードＩＤには、第３制御装置１ｃのノードＩＤである第３ノードが入力される。パケット種別には、「要求」が入力される。また、データ部のパケットＩＤには、パケットα１が入力される。なお、パケットに設定されるパケットＩＤは、毎回異なるものが用いられる。
【００５３】
また、例えば、第３制御装置１ｃが、第１制御装置１ａから要求された制御を実行し、実行結果を第１制御装置１ａに応答するものとする。この場合、例えば、図７Ｂに示すヘッダー部の送信元ノードＩＤには、第３制御装置１ｃのノードＩＤである第３ノードが入力される。宛先ノードＩＤには、第１制御装置１ａのノードＩＤである第１ノードが入力される。パケット種別には、「応答」が入力される。また、データ部のパケットＩＤには、パケットα２が入力される。
【００５４】
続いて、診断パケット３０５のデータ構成について、図８を参照して説明する。診断パケット３０５は、図２に示した中継制御部１３７の診断依頼部１４１により生成される。生成された診断パケット３０５は、診断対象のパケットの送信先および送信先までに経由する中継先の制御装置１に順番に送信され、診断結果を追記される。なお、診断対象のパケットの送信先および送信先までに経由する中継先の制御装置１の情報は、各制御装置１において、図２に示した制御装置１の記憶部１３６に保存された履歴テーブル３０３を参照して設定される。
【００５５】
図８に示す診断パケット３０５は、ヘッダー部とデータ部から構成されている。ヘッダー部には、診断対象のパケットの送信元情報および送信先情報と、診断パケット３０５であるか否かを示す診断パケット識別情報とが含まれている。診断対象のパケットの送信元情報は、送信元の制御装置１を特定するための情報である。ここでは、送信元の制御装置１のノードＩＤが入力される。診断対象のパケットの送信先情報は、送信先の制御装置１を特定するための情報である。ここでは、送信先の制御装置１のノードＩＤが入力される。診断パケット識別情報は、このパケットが診断パケット３０５であるか否かを示す情報である。ここでは、診断パケット識別情報がＯＮである場合、パケットは診断パケット３０５とする。また、診断パケット識別情報がＯＦＦである場合、パケットは診断パケット３０５ではないものとする。
【００５６】
また、データ部には、診断する範囲と診断対象のパケットを示す診断依頼情報と、診断状態を示す診断ステータス情報と、診断結果情報とが含まれている。診断依頼情報には、消失箇所を特定したいパケットの送信元の制御装置１を特定するための捜索パケット送信元情報と、消失箇所を特定したいパケットの送信先の制御装置１を特定するための捜索パケット送信先情報と、消失箇所を特定したいパケットを特定するための捜索パケット識別情報とが含まれている。ここでは、捜索パケット送信元情報には、送信元の制御装置１のノードＩＤが入力される。捜索パケット送信先情報には、送信先の制御装置１のノードＩＤが入力される。
【００５７】
診断結果情報は、中継先と送信先の制御装置１それぞれにおける、消失箇所を特定したいパケットの送受信状態を診断した結果を示す情報である。診断結果情報は、図２に示した記憶部１３６に保存される履歴テーブル３０３に保存された情報を基に求められる。また、診断結果情報は、中継先と送信先の制御装置１それぞれから取得された情報が、取得された順に末尾に追記されていく。診断結果情報には、診断を実行した制御装置１を示す診断ノード識別情報と、診断対象のパケットの受信履歴を示す受信履歴情報と、診断対象のパケットの送信履歴を示す送信履歴情報とが含まれる。
【００５８】
ここでは、診断ノード識別情報として、診断を実行した制御装置１のノードＩＤが入力される。また、受信履歴情報には、診断対象のパケットを受信した場合「あり」が、受信しなかった場合「なし」が入力される。送信履歴情報とには、診断対象のパケットを送信した場合「あり」が、送信しなかった場合「なし」が入力される。
【００５９】
次に、図８に示す診断パケット３０５を参照して、具体例を説明する。図８に示す診断パケット３０５は、第１制御装置１ａから第４制御装置１ｄにパケットαを送信した際の送受信状況を診断するものである。診断パケット３０５の「状態１」は、図２に示した制御装置１の中継制御部１３７に含まれる診断依頼部１４１が、診断パケット３０５を生成した状態である。
【００６０】
診断パケット３０５の「状態１」のヘッダー部には、例えば、図８に示すとおり、送信元情報に第１制御装置１ａからの送信であることを示すノードＩＤである「第１ノード」が入力されている。送信先情報には、第４制御装置１ｄへの送信であることを示すノードＩＤである「第４ノード」が入力されている。また、診断パケット識別情報には、このパケットが診断パケット３０５であることを示す「ＯＮ」が入力されている。また、診断パケット３０５のデータ部には、診断依頼情報の捜索パケット送信元情報に、第１制御装置１ａからの送信であることを示すノードＩＤである「第１ノード」が入力されている。診断依頼情報の捜索パケット送信先情報に、第４制御装置１ｄへの送信であることを示すノードＩＤである「第４ノード」が入力されている。診断依頼情報の捜索パケット識別情報に、診断の対象となるパケットである「パケットα」が入力されている。
【００６１】
データ部の診断ステータス情報に「診断中」と入力されている。また、状態１では、診断パケット３０５が生成されたばかりであるため、診断結果情報のデータは無い。続いて、第１制御装置１ａは、図２に示した記憶部１３６に保存された履歴テーブル３０３のルーティング情報を参照し、次の中継先の制御装置１を特定して診断パケット３０５を送信する。
【００６２】
図１において、第１制御装置１ａから第４制御装置１ｄにパケットを送信可能な経路は、宛先ネットワークアドレスＡＮ＿Ｚ、次中継先ネットワークアドレスＡＮ＿Ｘ、ＡＮ＿Ｙ、または、宛先ネットワークアドレスＡＮ＿Ｗ、次中継先ネットワークアドレスＡＮ＿Ｘである。ここでは、図６に示した履歴テーブル３０３のルーティング情報に基づいて、パケットαを中継していくものとする。この場合、第１制御装置１ａから第４制御装置１ｄに、図８に示す診断パケット３０５を送信するための経路は、パケットαが送信された経路である、宛先ネットワークアドレスＡＮ＿Ｚ、次中継先ネットワークアドレスＡＮ＿Ｘ、ＡＮ＿Ｙの経路となる。
【００６３】
図１に示した第１制御装置１ａから第２制御装置１ｂに至るための第１ネットワーク２ａのネットワークアドレスはＡＮ＿Ｘである。このため、第１制御装置１ａから第２制御装置１ｂに診断パケット３０５を送信する。第２制御装置１ｂは、図２に示した診断部１３４により、記憶部１３６に保存した履歴テーブル３０３から、パケットαの送受信情報を取得する。第２制御装置１ｂの診断部１３４は、取得したパケットαの送受信情報から診断情報を生成する。第２制御装置１ｂの診断部１３４は、生成した診断情報を、第１診断情報として、図８に示す診断パケット３０５のデータ部に含まれる診断ステータス情報の後ろに追記する。第１診断情報を追記した状態を、図８の状態２に示す。
【００６４】
図８に示す状態２では、例えば、第１診断情報の診断ノード識別情報には、第２制御装置１ｂとのパケットαの送受信であることを示すノードＩＤとして「第２ノード」が入力されている。また、受信履歴情報および送信履歴情報に「あり」と入力されている。これにより、第２制御装置１ｂは、診断対象のパケットαを第１制御装置１ａから受信し、次の中継先の制御装置１に送信したことが分かる。
【００６５】
続いて、第２制御装置１ｂは、図６に示した履歴テーブル３０３に記録されたパケットαのルーティング情報を参照し、パケットαが送信されたネットワークおよび中継先の制御装置１を、診断パケット３０５を送信するためのネットワークおよび中継先の制御装置１として設定し、送信する。具体的には、診断パケット３０５を、次中継先ネットワークアドレスＡＮ＿Ｙを持つ第２ネットワーク２ｂを経由して、第３制御装置１ｃに送信する。第３制御装置１ｃは、図２に示した診断部１３４により、記憶部１３６に保存した履歴テーブル３０３から、パケットαの送受信情報を取得する。第３制御装置１ｃの診断部１３４は、取得したパケットαの送受信情報を、図８に示す診断パケット３０５の第１診断情報の後ろに第２診断情報として追記する。第２診断情報を追記した状態を、図８の状態３に示す。
【００６６】
図８に示す診断パケット３０５の状態３では、例えば、第２診断情報の診断ノード識別情報に、第３制御装置１ｃとのパケットαの送受信であることを示すノードＩＤとして「第３ノード」が入力されている。また、受信履歴情報および送信履歴情報に「なし」と入力されている。これにより、第３制御装置１ｃは、診断対象のパケットαを第２制御装置１ｂから受信しなかったことが分かる。
【００６７】
続いて、第３制御装置１ｃは、図５に示したルーティングテーブル３０２に記録された現在のルーティング情報を参照し、診断パケット３０５を送信するためのネットワークおよび中継先の制御装置１を設定する。第３制御装置１ｃは、設定したネットワークおよび中継先の制御装置１に診断パケット３０５を送信する。具体的には、第３制御装置１ｃは、診断パケット３０５を、宛先ネットワークアドレスＡＮ＿Ｚを持つ第３ネットワーク２ｃを経由して、第４制御装置１ｄに送信する。第４制御装置１ｄは、図２に示した診断部１３４により、記憶部１３６に保存した履歴テーブル３０３から、パケットαの送受信情報を取得する。第４制御装置１ｄの診断部１３４は、取得したパケットαの送受信情報を、図８に示す診断パケット３０５の第２診断情報の後ろに、第３診断情報として追記する。第３診断情報を追記した状態を、図８の状態４に示す。
【００６８】
図８に示す状態４では、例えば、第３診断情報の診断ノード識別情報には、第４制御装置１ｄとのパケットαの送受信であることを示すノードＩＤとして「第４ノード」が入力されている。また、受信履歴情報および送信履歴情報に「なし」と入力されている。これにより、第４制御装置１ｄは、診断対象のパケットαを第３制御装置１ｃから受信しなかったことが分かる。
【００６９】
第４制御装置１ｄまでの診断が終わると、第４制御装置１ｄの診断部１３４は、ヘッダー部の送信元情報と送信先情報とを反転させる。具体的には、図８に示す診断パケット３０５の状態５に示すとおり、送信元情報を第４ノードに、送信先情報を第１ノードに変更する。続いて、第４制御装置１ｄの診断部１３４は、診断パケット３０５のデータ部に入力された診断ステータス情報に「診断完了」と入力する。
【００７０】
続いて、第４制御装置１ｄの診断部１３４は、図１に示した、宛先ネットワークアドレスＡＮ＿Ｗ、次中継先ネットワークアドレスＡＮ＿Ｘの経路をとおり、第１制御装置１ａに診断パケット３０５を送信する。まず、第４制御装置１ｄの診断部１３４は、宛先ネットワークアドレスＡＮ＿Ｗを持つ図１に示した第４ネットワーク２ｄを経由して、第２制御装置１ｂに診断パケット３０５を送信する。第２制御装置１ｂの診断部１３４は、受信した診断パケット３０５を診断する。診断パケット３０５のデータ部に入力された診断ステータス情報は「診断完了」であるため、第２制御装置１ｂの診断部１３４は、診断結果を追記しない。その後、第２制御装置１ｂの診断部１３４は、次中継先ネットワークアドレスＡＮ＿Ｘを持つ第１ネットワーク２ａを介して、診断パケット３０５を第１制御装置１ａに送信する。
【００７１】
第１制御装置１ａの中継制御部１３７は、第２制御装置１ｂから受信した診断パケット３０５の情報を解析し、診断対象のパケットαが消失した箇所を特定する。ここでは、図８に示す診断パケット３０５の状態３において、第３制御装置１ｃは、診断対象のパケットαを第２制御装置１ｂから受信しなかったことが分かる。このため、第１制御装置１ａの中継制御部１３７は、第３制御装置１ｃでパケットαの消失があったものと判定する。
【００７２】
以下では、図８に示した診断パケット３０５を用いて、診断対象のパケットの消失箇所を特定する処理について、図９から図１３に示すフォローチャートを参照しつつ説明する。図９から図１３に示すフォローチャートに示す各処理は、パケット消失箇所診断処理プログラムとして図２に示した制御装置１の記憶部１３６に保存されている。
【００７３】
本実施の形態では、第１制御装置１ａから第４制御装置１ｄにパケットを送信する場合、通常、図５に示したルーティングテーブル３０２のうち、宛先ネットワークアドレスＡＮ＿Ｚ、次中継先ネットワークアドレスＡＮ＿Ｘ、ＡＮ＿Ｙの経路を通るものとする。この経路を、以下では第１経路と称する。また、第１経路において、ネットワーク２の輻輳、制御装置１の異常等、何らかの不具合が生じた場合、図５に示したルーティングテーブル３０２のうち、宛先ネットワークアドレスＡＮ＿Ｗ、次中継先ネットワークアドレスＡＮ＿Ｘの経路を通るものとする。この宛先ネットワークアドレスＡＮ＿Ｗ、次中継先ネットワークアドレスＡＮ＿Ｘを通る経路を、以下では第２経路と称する。
【００７４】
第１制御装置１ａの中継制御部１３７は、制御要求パケットであるパケットαを第４制御装置１ｄに送信した後、一定期間内に制御応答パケットを受信できなかった場合、パケット消失箇所診断処理プログラムを起動する。これにより、制御装置１の中継制御部１３７に、診断依頼部１４１が起動する。
【００７５】
図９は、第１制御装置１ａから第４制御装置１ｄにおいて実行される各処理を示すフローチャートである。第１制御装置１ａの中継制御部１３７で起動した診断依頼部１４１は、診断依頼処理を実行する（ステップＳ１０）。診断依頼処理については、図１０に示すフローチャートを参照しつつ説明する。
【００７６】
第１制御装置１ａの診断依頼部１４１は、診断パケット３０５を生成する（ステップＳ１０１）。具体的には、第１制御装置１ａの診断依頼部１４１は、まず、図８に示した診断パケット３０５のヘッダー部とデータ部の診断依頼情報、診断ステータス情報のデータ枠を生成する。第１制御装置１ａの診断依頼部１４１は、ヘッダー部の送信元情報に、第１制御装置１ａからのパケットの送信であることを示すノードＩＤを、図４に示したノードＩＤ３０１から選定し、入力する。第１制御装置１ａの診断依頼部１４１は、ヘッダー部の送信先情報に、第４制御装置１ｄへのパケットの送信であることを示すノードＩＤを、図４に示したノードＩＤ３０１から選定し、入力する。第１制御装置１ａの診断依頼部１４１は、ヘッダー部の診断パケット情報に、このパケットが診断パケット３０５であることを示す「ＯＮ」を入力する。第１制御装置１ａの診断依頼部１４１は、データ部の診断ステータス情報に「診断中」と入力する。
【００７７】
第１制御装置１ａの診断依頼部１４１は、データ部の診断依頼情報を生成する（ステップＳ１０２）。具体的には、第１制御装置１ａの診断依頼部１４１は、診断依頼情報の捜索パケット送信元情報に、第１制御装置１ａからのパケットの送信であることを示すノードＩＤを、図４に示したノードＩＤ３０１から選定し、入力する。第１制御装置１ａの診断依頼部１４１は、診断依頼情報の捜索パケット送信先情報に、第４制御装置１ｄへのパケットの送信であることを示すノードＩＤを、図４に示したノードＩＤ３０１から選定し、入力する。第１制御装置１ａの診断依頼部１４１は、診断依頼情報の捜索パケット識別情報に、診断対象となるパケットの識別情報を入力する。ここでは、パケットαと入力する。
【００７８】
第１制御装置１ａの診断依頼部１４１は、第１制御装置１ａから第４制御装置１ｄ宛てのパケットに対するルーティング情報を取得する（ステップＳ１０３）。具体的には、第１制御装置１ａの診断依頼部１４１は、図２に示した記憶部１３６から図６に示した履歴テーブル３０３におけるパケットαの送信履歴に対応する行レコードを取得する。ここでは、例えば、履歴テーブル３０３の１行目のレコードを取得する。
【００７９】
第１制御装置１ａの診断依頼部１４１は、診断パケット３０５の中継先を選定する（ステップＳ１０４）。具体的には、第１制御装置１ａの診断依頼部１４１は、ステップＳ１０３で取得した、図６に示した履歴テーブル３０３の行レコードに含まれたルーティング情報により、次中継先を第２制御装置１ｂとする。
【００８０】
ここで、図９に戻る。第１制御装置１ａの診断依頼部１４１は、図１０のステップＳ１０４で選定した第２制御装置１ｂに、第１ネットワーク２ａを介して診断パケット３０５を送信する（ステップＳ１１）。ここで第２制御装置１ｂに送信される診断パケット３０５は、図８の「状態１」のものである。
【００８１】
第２制御装置１ｂの診断部１３４は、診断パケットバッファ部１３３を介して診断パケット３０５を受信する（ステップＳ１２）。第２制御装置１ｂの診断部１３４は、診断処理を実行する（ステップＳ１３）。診断処理については、図１１に示すフローチャートを参照して以下に説明する。
【００８２】
第２制御装置１ｂの診断部１３４は、自装置が診断依頼を出していないか否かを判定する（ステップＳ１１１）。自装置が診断依頼を出していない場合（ステップＳ１１１；ＹＥＳ）、診断パケット３０５のデータ部に含まれる診断ステータス情報は「診断中」か否かを判定する（ステップＳ１１２）。また、第２制御装置１ｂの診断部１３４は、自装置が診断依頼を出していた場合（ステップＳ１１１；ＮＯ）、診断処理を終了し、図９に戻る。
【００８３】
診断パケット３０５のデータ部に含まれる診断ステータス情報が「診断中」である場合（ステップＳ１１２；ＹＥＳ）、第２制御装置１ｂの診断部１３４は診断実行処理を実行する（ステップＳ１１３）。また、診断パケット３０５のデータ部に含まれる診断ステータス情報が「診断中」でない場合（ステップＳ１１２；ＮＯ）、診断パケット中継処理を実行する（ステップＳ１１４）。なお、診断パケット中継処理について、詳細は後述する。
【００８４】
ステップＳ１１３で実行する診断実行処理については、図１２に示すフローチャートを参照しつつ、以下に説明する。第２制御装置１ｂの診断部１３４は、図２に示した記憶部１３６に保存された履歴テーブル３０３に、診断対象のパケットαを送信または受信した履歴があるか検索する（ステップＳ１２１）。第２制御装置１ｂの診断部１３４は、診断情報のデータ枠を生成する（ステップＳ１２２）。具体的には、第２制御装置１ｂの診断部１３４は、診断ノード識別情報と、受信履歴情報と、送信履歴情報とを含む診断情報のデータ枠を生成する。
【００８５】
第２制御装置１ｂの診断部１３４は、診断情報の診断ノード識別情報に、自身のノード識別情報を入力し、保存する（ステップＳ１２３）。具体的には、第２制御装置１ｂの診断部１３４は、図４に示したノードＩＤ３０１から選定した第２制御装置１ｂを示すノードＩＤを、診断情報のデータ枠である診断ノード識別情報に入力し、保存する。続いて、第２制御装置１ｂの診断部１３４は、ステップＳ１２１で検索した検索結果を、診断情報の、受信履歴情報および送信履歴情報に入力し、保存する（ステップＳ１２４）。具体的には、診断対象のパケットαを送信または受信した履歴を、診断情報のデータ枠である、受信履歴情報と送信履歴情報とに入力し、保存する。
【００８６】
第２制御装置１ｂの診断部１３４は、診断情報を診断パケット３０５に追記し、保存する（ステップＳ１２５）。具体的には、第２制御装置１ｂの診断部１３４は、診断パケット３０５のデータ部に含まれる診断ステータス情報の後ろに、診断ノード識別情報、受信履歴情報、および送信履歴情報が入力されたデータ枠である診断情報を追記し、保存する。この診断情報を、以下では、第１診断情報と称する。ここで保存された診断パケット３０５は、図８に示した診断パケット３０５の「状態２」のものである。第２制御装置１ｂの診断部１３４は、診断実行処理を終了し、図１１に戻る。
【００８７】
第２制御装置１ｂの診断部１３４は、診断パケット中継部１３５に診断済のパケットを送信する。診断パケット中継部１３５は、診断パケット中継処理を実行する（ステップＳ１１４）。診断パケット中継処理については、図１３を参照しつつ、以下に説明する。第２制御装置１ｂの診断パケット中継部１３５は、診断パケット３０５の送信先が自装置か否かを判定する（ステップＳ１３１）。具体的には、診断パケット中継部１３５は、図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤが、自装置のものか否か判断する。図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤは「第４ノード」である。第２制御装置１ｂのノードＩＤは「第２ノード」であるため、第２制御装置１ｂの診断パケット中継部１３５は、診断パケット３０５の送信先は自装置ではないと判定する（ステップＳ１３１；ＮＯ）。
【００８８】
第２制御装置１ｂの診断パケット中継部１３５は、診断パケット３０５の診断情報に含まれる送信履歴情報は「あり」か否かを判定する（ステップＳ１３５）。この時点における診断パケット３０５は、図８に示した診断パケット３０５の「状態２」のものである。図８に示す診断パケット３０５のデータ部に含まれる第１診断情報の送信履歴情報には「あり」と入力されている。したがって、第２制御装置１ｂの診断パケット中継部１３５は、診断パケット３０５の診断情報に含まれる送信履歴情報は「あり」と判定する（ステップＳ１３５；ＹＥＳ）。
【００８９】
第２制御装置１ｂの診断パケット中継部１３５は、図２に示した記憶部１３６に保存された履歴テーブル３０３のルーティング情報を基に、次の中継先を決定する（ステップＳ１３６）。具体的には、第２制御装置１ｂの診断パケット中継部１３５は、自装置の記憶部１３６に保存された履歴テーブル３０３のルーティング情報を参照して、次の中継先を決定する。ここでは、履歴テーブル３０３には、第１制御装置１ａから受信したパケットαを第４制御装置１ｄに送信した場合のルーティング情報として、第３制御装置１ｃを示す第３ノードが書き込まれているものとする。そこで、第２制御装置１ｂの診断パケット中継部１３５は、次の中継先を第３制御装置１ｃに決定する。
【００９０】
第２制御装置１ｂの診断パケット中継部１３５は、診断パケット中継処理を終了して、図１１に示す診断処理に戻る。続いて、第２制御装置１ｂの診断パケット中継部１３５は、診断処理を終了し、図９へ戻る。第２制御装置１ｂの診断パケット中継部１３５は、診断パケットバッファ部１３３を介して、診断パケット３０５を第３制御装置１ｃに送信する（ステップＳ１４）。第３制御装置１ｃの診断部１３４は、第２制御装置１ｂから送信された診断パケット３０５を、診断パケットバッファ部１３３を介して受信する（ステップＳ１５）。第３制御装置１ｃの診断部１３４は、診断処理を実行する（ステップＳ１６）。診断処理については、図１１を参照しつつ、以下に説明する。
【００９１】
ステップＳ１１１、ステップＳ１１２の処理については、上述の第２制御装置１ｂの診断部１３４での処理と同様である。第３制御装置１ｃの診断部１３４は、診断実行処理を実行する（ステップＳ１１３）。ステップＳ１１３で実行する診断実行処理については、図１２に示すフローチャートを参照しつつ、以下に説明する。
【００９２】
第３制御装置１ｃの診断部１３４は、図２に示した記憶部１３６に保存された履歴テーブル３０３に、診断対象のパケットαを送信または受信した履歴があるか検索する（ステップＳ１２１）。第３制御装置１ｃの診断部１３４は、診断情報のデータ枠を生成する（ステップＳ１２２）。
【００９３】
第３制御装置１ｃの診断部１３４は、診断情報の診断ノード識別情報に、自身のノード識別情報を入力し、保存する（ステップＳ１２３）。具体的には、第３制御装置１ｃの診断部１３４は、図４に示したノードＩＤ３０１から選定した第３制御装置１ｃを示すノードＩＤを、診断情報のデータ枠である診断ノード識別情報に入力し、保存する。第３制御装置１ｃの診断部１３４は、ステップＳ１２１で検索した検索結果を、診断情報の、受信履歴情報および送信履歴情報に入力し、保存する（ステップＳ１２４）。具体的には、診断対象のパケットαを送信または受信した履歴を、データ枠である診断情報の、受信履歴情報と、送信履歴情報とに入力し、保存する（ステップＳ１２４）。
【００９４】
第３制御装置１ｃの診断部１３４は、診断情報を診断パケット３０５に追記し、保存する（ステップＳ１２５）。具体的には、第３制御装置１ｃの診断部１３４は、診断パケット３０５のデータ部に含まれる診断ステータス情報の後ろに診断ノード識別情報、受信履歴情報、および送信履歴情報が入力されたデータ枠である診断情報を追記し、保存する。この診断情報を、以下では、第２診断情報と称する。ここで保存された診断パケット３０５は、図８に示した診断パケット３０５の「状態３」のものである。第３制御装置１ｃの診断部１３４は、診断実行処理を終了し、図１１に戻る。
【００９５】
第３制御装置１ｃの診断部１３４は、診断パケット中継部１３５に診断済の診断パケット３５０を送信する。第３制御装置１ｃの診断パケット中継部１３５は、診断パケット中継処理を実行する（ステップＳ１１４）。診断パケット中継処理については、図１３を参照しつつ、以下に説明する。第３制御装置１ｃの診断パケット中継部１３５は、診断パケット３０５の送信先が自装置か否かを判定する（ステップＳ１３１）。具体的には、第３制御装置１ｃの診断パケット中継部１３５は、図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤが、自装置のものか否か判断する。図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤは「第４ノード」である。第３制御装置１ｃのノードＩＤは「第３ノード」であるため、第３制御装置１ｃの診断パケット中継部１３５は、は、診断パケット３０５の送信先は自装置ではないと判定する（ステップＳ１３１；ＮＯ）。
【００９６】
第３制御装置１ｃの診断パケット中継部１３５は、は、診断パケット３０５の診断情報に含まれる送信履歴情報は「あり」か否かを判定する（ステップＳ１３５）。この時点における診断パケット３０５は、図８に示した診断パケット３０５の「状態３」のものである。図８に示す診断パケット３０５のデータ部に含まれる第２診断情報の送信履歴情報には「なし」と入力されている。したがって、第３制御装置１ｃの診断パケット中継部１３５は、診断パケット３０５の診断情報に含まれる送信履歴情報は「あり」ではないものと判定する（ステップＳ１３５；ＮＯ）。
【００９７】
第３制御装置１ｃの診断パケット中継部１３５は、図８に示した診断パケット３０５のヘッダー部に含まれる送信先情報と、現在のルーティング情報とを基に、次の中継先を決定する（ステップＳ１３４）。具体的には、第３制御装置１ｃの診断パケット中継部１３５は、診断パケット３０５のヘッダー部に含まれる送信先情報を取得する。ここで第３制御装置１ｃの診断パケット中継部１３５の取得する送信先情報は、図８に示した診断パケット３０５の「状態３」のものである。「状態３」の診断パケット３０５のヘッダー部に含まれる送信先情報には、第４制御装置１ｄを示すノードＩＤ「第４ノード」が入力されている。したがって、診断パケット３０５の送信先は、第４制御装置１ｄである。また、現在のルーティング情報は、自装置の記憶部１３６に保存されたルーティングテーブル３０２に保存されているものである。ここでは、ノードＩＤとして、第３ネットワーク２ｃのアドレスであるＡＮ＿Ｚを含む第４ノードが設定されているものとする。
【００９８】
第３制御装置１ｃの診断パケット中継部１３５は、自装置から第４制御装置１ｄへの経路を求める。ここでは、図１に示したとおり、第３制御装置１ｃと第４制御装置１ｄとは、第３ネットワーク２ｃを介して接続している。したがって、第３制御装置１ｃの診断パケット中継部１３５は、次の中継先を第４制御装置１ｄに決定する。
【００９９】
第３制御装置１ｃの診断パケット中継部１３５は、診断パケット中継処理を終了して、図１１に示す診断処理に戻る。続いて、第３制御装置１ｃの診断パケット中継部１３５は、診断処理を終了し、図９へ戻る。第３制御装置１ｃの診断パケット中継部１３５は、診断パケットバッファ部１３３を介して、診断パケット３０５を第４制御装置１ｄに送信する（ステップＳ１７）。第４制御装置１ｄの診断部１３４は、第３制御装置１ｃから送信された診断パケット３０５を受信する（ステップＳ１８）。第４制御装置１ｄの診断部１３４は、診断処理を実行する（ステップＳ１９）。診断処理については、図１１を参照しつつ、以下に説明する。
【０１００】
ステップＳ１１１、ステップＳ１１２の処理については、上述の第３制御装置１ｃの診断部１３４での処理と同様である。第４制御装置１ｄの診断部１３４は、診断実行処理を実行する（ステップＳ１１３）。ステップＳ１１３で実行する診断実行処理については、図１２に示すフローチャートを参照しつつ、以下に説明する。
【０１０１】
第４制御装置１ｄの診断部１３４は、図２に示した記憶部１３６に保存された履歴テーブル３０３に、診断対象のパケットαを送信または受信した履歴があるか検索する（ステップＳ１２１）。第４制御装置１ｄの診断部１３４は、診断情報のデータ枠を生成する（ステップＳ１２２）。
【０１０２】
第４制御装置１ｄの診断部１３４は、診断情報の診断ノード識別情報に、自身のノード識別情報を入力し、保存する（ステップＳ１２３）。具体的には、第４制御装置１ｄの診断部１３４は、図４に示したノードＩＤ３０１から選定した第４制御装置１ｄを示すノードＩＤを、診断情報のデータ枠である診断ノード識別情報に入力し、保存する。続いて、第４制御装置１ｄの診断部１３４は、ステップＳ１２１で検索した検索結果を、診断情報の、受信履歴情報および送信履歴情報に入力し、保存する（ステップＳ１２４）。具体的には、診断対象のパケットαを送信または受信した履歴を、診断情報のデータ枠である、受信履歴情報と、送信履歴情報とに入力し、保存する。
【０１０３】
第４制御装置１ｄの診断部１３４は、診断情報を診断パケット３０５に追記し、保存する（ステップＳ１２５）。具体的には、第４制御装置１ｄの診断部１３４は、診断パケット３０５のデータ部に含まれる診断ステータス情報の後ろに診断ノード識別情報、受信履歴情報、および送信履歴情報が入力されたデータ枠である診断情報を追記し、保存する。この診断情報を、以下では第３診断情報と称する。ここで保存された診断パケット３０５は、図８に示した診断パケット３０５の「状態４」のものである。第４制御装置１ｄの診断部１３４は、診断実行処理を終了し、図１１に戻る。
【０１０４】
第４制御装置１ｄの診断部１３４は、診断パケット中継部１３５に診断済の診断パケット３０５を送信する。第４制御装置１ｄの診断パケット中継部１３５は、診断パケット中継処理を実行する（ステップＳ１１４）。診断パケット中継処理については、図１３を参照しつつ、以下に説明する。第４制御装置１ｄの診断パケット中継部１３５は、診断パケット３０５の送信先が自装置か否かを判定する（ステップＳ１３１）。具体的には、第４制御装置１ｄの診断パケット中継部１３５は、図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤが、自装置のものか否か判断する。図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤは「第４ノード」である。第４制御装置１ｄのノードＩＤは「第４ノード」であるため、第４制御装置１ｄの診断パケット中継部１３５は、診断パケット３０５の送信先は自装置であると判定する（ステップＳ１３１；ＹＥＳ）。
【０１０５】
第４制御装置１ｄの診断パケット中継部１３５は、診断パケット３０５のデータ部に含まれる診断ステータス情報を「診断中」から「診断完了」に変更する（ステップＳ１３２）。第４制御装置１ｄの診断パケット中継部１３５は、診断パケット３０５のヘッダー部に含まれる送信元情報と送信先情報とを入れ替える（ステップＳ１３３）。具体的には、送信元情報に入力されていた送信元の「第１ノード」を送信先情報に入力し、送信先情報に入力されていた送信元の「第４ノード」を送信元情報に入力する。この時点における診断パケット３０５は、図８に示した診断パケット３０５の「状態５」のものである。
【０１０６】
第４制御装置１ｄの診断パケット中継部１３５は、図８に示した診断パケット３０５のヘッダー部に含まれる送信先情報と、図２に示した記憶部１３６のルーティングテーブル３０２に保存されている現在のルーティング情報とを参照し、次の中継先を決定する（ステップＳ１３４）。図８に示した診断パケット３０５の「状態５」において、診断パケット３０５の送信先は、第１制御装置１ａである。また、現在のルーティング情報は、ここでは、宛先ネットワークアドレスＡＮ＿Ｗ、次中継先ネットワークアドレスＡＮ＿Ｘを通る第２経路である。宛先ネットワークアドレスＡＮ＿Ｗは、第４ネットワーク２ｄのアドレスであり、次中継先ネットワークアドレスＡＮ＿Ｘは、第１ネットワーク２ａのアドレスである。このため、第４制御装置１ｄからは、第４ネットワーク２ｄ、第２制御装置１ｂ、第１ネットワーク２ａを経由して第１制御装置１ａに診断パケット３０５を送信することになる。したがって、第４制御装置１ｄの診断パケット中継部１３５は、中継先を第２制御装置１ｂに決定する。
【０１０７】
第４制御装置１ｄの診断パケット中継部１３５は、診断パケット中継処理を終了して、図１１に示す診断処理に戻る。続いて、第４制御装置１ｄの診断パケット中継部１３５は、診断処理を終了し、図９へ戻る。第４制御装置１ｄの診断パケット中継部１３５は、診断パケットバッファ部１３３を介して、診断パケット３０５を第２制御装置１ｂに送信する（ステップＳ２０）。第２制御装置１ｂの診断部１３４は、第４制御装置１ｄから送信された診断パケット３０５を、診断パケットバッファ部１３３を介して受信する（ステップＳ２１）。第２制御装置１ｂの診断部１３４は、診断処理を実行する（ステップＳ２２）。診断処理については、図１１を参照しつつ、以下に説明する。
【０１０８】
第２制御装置１ｂの診断部１３４は、自装置が診断依頼を出していないか否かを判定する（ステップＳ１１１）。自装置が診断依頼を出していない場合（ステップＳ１１１；ＹＥＳ）、診断パケット３０５のデータ部に含まれる診断ステータス情報は「診断中」か否かを判定する（ステップＳ１１２）。また、第２制御装置１ｂの診断部１３４は、自装置が診断依頼を出していた場合（ステップＳ１１１；ＮＯ）、診断処理を終了し、図９に戻る。
【０１０９】
現在の診断パケット３０５は、図８に示す「状態５」のものである。「状態５」の診断パケット３０５のデータ部に含まれる診断ステータス情報は「診断完了」と入力されている。したがって、第２制御装置１ｂの診断部１３４は、診断パケット３０５のデータ部に含まれる診断ステータス情報が「診断中」ではないものと判定する（ステップＳ１１２；ＮＯ）。第２制御装置１ｂの診断部１３４は、診断パケット中継部１３５に診断済の診断パケット３０５を送信する。第２制御装置１ｂの診断パケット中継部１３５は、診断パケット中継処理を実行する（ステップＳ１１４）。診断パケット中継処理については、図１３を参照しつつ、以下に説明する。
【０１１０】
第２制御装置１ｂの診断パケット中継部１３５は、診断パケット３０５の送信先が自装置か否かを判定する（ステップＳ１３１）。具体的には、第２制御装置１ｂの診断パケット中継部１３５は、図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤが、自装置のものか否か判断する。図８に示した診断パケット３０５のヘッダー部に入力された送信先情報のノードＩＤは「第１ノード」である。第２制御装置１ｂのノードＩＤは「第２ノード」である。このため、第２制御装置１ｂの診断パケット中継部１３５は、診断パケット３０５の送信先は自装置ではないと判定する（ステップＳ１３１；ＮＯ）。
【０１１１】
第２制御装置１ｂの診断パケット中継部１３５は、診断パケット３０５の診断情報に含まれる送信履歴情報は「あり」か否かを判定する（ステップＳ１３５）。この時点における診断パケット３０５は、図８に示した診断パケット３０５の「状態５」のものである。図８に示す診断パケット３０５のデータ部に含まれる第３診断情報の送信履歴情報には「なし」と入力されている。したがって、第２制御装置１ｂの診断部１３４は、診断パケット３０５の診断情報に含まれる送信履歴情報は「あり」ではないものと判定する（ステップＳ１３５；ＮＯ）。
【０１１２】
第２制御装置１ｂの診断パケット中継部１３５は、図８に示した診断パケット３０５のヘッダー部に含まれる送信先情報と、図２に示した記憶部１３６にあるルーティングテーブル３０２に保存されている現在のルーティング情報とを参照し、次の中継先を決定する（ステップＳ１３４）。図８に示した診断パケット３０５の「状態５」において、診断パケット３０５の送信先は、第１制御装置１ａである。また、現在のルーティング情報は、この宛先ネットワークアドレスＡＮ＿Ｗ、次中継先ネットワークアドレスＡＮ＿Ｘを通る第２経路である。宛先ネットワークアドレスＡＮ＿Ｗは、第４ネットワーク２ｄのアドレスであり、次中継先ネットワークアドレスＡＮ＿Ｘは、第１ネットワーク２ａのアドレスである。このため、第２制御装置１ｂからは、第１ネットワーク２ａを経由して第１制御装置１ａに診断パケット３０５を送信することになる。したがって、第２制御装置１ｂの診断パケット中継部１３５は、中継先を第１制御装置１ａに決定する。
【０１１３】
第２制御装置１ｂの診断パケット中継部１３５は、診断パケット中継処理を終了して、図１１に示す診断処理に戻る。続いて、第２制御装置１ｂの診断パケット中継部１３５は、診断処理を終了し、図９へ戻る。第２制御装置１ｂの診断パケット中継部１３５は、診断パケットバッファ部１３３を介して、診断パケット３０５を第１制御装置１ａに送信する（ステップＳ２３）。第１制御装置１ａの診断部１３４は、第２制御装置１ｂから送信された診断パケット３０５を受信する（ステップＳ２４）。第１制御装置１ａの診断部１３４は、受信した診断パケット３０５を図２に示した記憶部１３６に保存する。第１制御装置１ａの中継制御部１３７に含まれる消失位置判別部１４２は、記憶部１３６に保存された診断パケット３０５を読み出す。消失位置判別部１４２は、診断パケット３０５に含まれる診断情報に基づいて、診断対象のパケットαが通信経路のどの位置で消失したかを判別し、診断対象のパケットαの消失した位置を特定する（ステップＳ２５）。
【０１１４】
以上のように、実施の形態によれば、制御装置１は、記憶部１３６にパケットの通信履歴である履歴テーブル３０３を保存すること、または、パケットの通信履歴に基づく情報である診断パケット３０５を受信することができる。これにより、制御装置１は、ネットワークの状態にかかわらず、パケットの消失箇所を特定するための情報を保持することができる。
【０１１５】
さらに、制御装置１は、パケットの消失が発生した時点で、自動的に障害の発生していない経路が選択されルーティング情報が更新される、いわゆる動的ルーティングである場合でも、記憶部１３６に保存された履歴テーブル３０３、および、受信した診断パケット３０５に基づいて、パケットの消失が発生した経路に対して通信の確認をすることができる。
【０１１６】
（変形例１）
上記の実施の形態においては、制御装置１に、パケットの消失箇所を特定する機能と、それ以外の一般的な機能とを両方備えるものとした。これに限らず、一般的な機能を制御装置１とは別体の装置に備えるようにしてもよい。具体的には、パケットの消失箇所を特定する機能である、図２に示した診断パケット判定部１３１、診断パケットバッファ部１３３と、診断部１３４と、診断パケット中継部１３５と、中継制御部１３７の診断依頼部１４１および消失位置判別部１４２と以外の機能、コントロール部１１等を、制御装置１とは別体の装置に備える。なお、この場合、別体の装置とした一般的な機能と、パケットの消失箇所を特定する機能とを合わせて、制御装置１としてもよい。
【０１１７】
（変形例２）
上記の実施の形態においては、図２に示したネットワーク送受信部１２を、制御装置１に含まれるものとした。これに限らず、ネットワーク送受信部１２を、例えば、制御装置１とは別体の、通信ユニット、ネットワークインターフェースカード等のハードウエアとしてもよい。
【０１１８】
（変形例３）
上記の実施の形態においては、診断パケット３０５を１つのパケットとした。しかしながら、ネットワーク２に接続された制御装置１が多数ある場合、診断パケット３０５の容量が大きくなり、ネットワーク２で輻輳する可能性がある。このため、診断パケット３０５の容量が予め定められた一定サイズを超える場合には、複数の分割診断パケットに分割するようにしてもよい。
【０１１９】
この場合、例えば、診断パケット中継部１３５は、複数の分割診断パケットのヘッダー部にそれぞれパケットの順番を特定できる番号、符号等を入力する。診断パケット中継部１３５は、複数の分割診断パケットそれぞれを、順次、送信先の制御装置１へ送信する。診断部１３４は、受信した診断パケット３０５が分割診断パケットである場合、ヘッダー部に入力された、それぞれパケットの順番を特定できる番号、符号等を基に、１番最後の分割診断パケットを特定し、末尾に診断情報を追記する。また、中継制御部１３７は、受信した診断パケット３０５が分割診断パケットである場合、ヘッダー部に入力された、それぞれパケットの順番を特定できる番号、符号等を基に分割診断パケットをつなぎ合わせ、１つの診断パケット３０５を生成する。中継制御部１３７は、生成した診断パケット３０５に基づいて、パケットの消失箇所を特定する。
【０１２０】
（変形例４）
上記の実施の形態においては、診断依頼を行った第１制御装置１ａにおいて、診断対象のパケットの消失箇所を特定するものとした。これに限らず、診断パケット３０５を、制御システム１００の外部とは別体の、エンジニアリングツール、データ解析用機器等の外部機器において、診断パケット３０５の情報を解析することにより、パケットの消失箇所を特定してもよい。
【０１２１】
（変形例５）
上記の実施の形態においては、第１制御装置１ａ〜第４制御装置１ｄの間で診断パケット３０５を送受信するものとした。しかしながら、ネットワーク２の輻輳、制御装置１の故障等の理由により、第１制御装置１ａ〜第４制御装置１ｄの間で診断パケット３０５を送受信することができない可能性がある。そこで、まず、診断部１３４は、診断パケット３０５を受信すると、診断パケット３０５の診断結果情報に含まれる前回診断を実行した制御装置１を特定する。診断部１３４は、特定した制御装置１に、診断継続応答パケットを送信する。診断継続応答パケットは、送信元の制御装置１に備えられた診断パケット中継部１３５に受信される。
【０１２２】
また、診断パケット中継部１３５は、送信先の制御装置に診断パケット３０５を送信した後、予め定められた一定時間内に診断継続応答パケットを受信できなかった場合、前回診断を実行した制御装置１に、自身のもつ診断パケット３０５を返信する。前回診断を実行した制御装置１は、受信した診断パケット３０５を、診断パケット３０５の送信元の制御装置１に返送する。これにより、診断パケット３０５の送信元の制御装置１では、通信のできなくなっている箇所を特定することができる。
【０１２３】
また、本開示の実施の形態では、パケット消失箇所診断処理プログラムを、コンピュータが読み取り可能なＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記録媒体に格納して配布し、このプログラムをコンピュータにインストールすることにより、パケット消失箇所診断処理プログラムに含まれる各機能を実現することができるコンピュータを構成してもよい。そして、各機能をＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とアプリケーションとの分担、またはＯＳとアプリケーションとの協同により実現する場合には、アプリケーションのみを記録媒体に格納してもよい。
【０１２４】
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。
【産業上の利用可能性】
【０１２５】
本開示は、制御装置に好適に利用することができる。
【符号の説明】
【０１２６】
１  制御装置、１ａ  第１制御装置、１ｂ  第２制御装置、１ｃ  第３制御装置、１ｄ  第４制御装置、２  ネットワーク、２ａ  第１ネットワーク、２ｂ  第２ネットワーク、２ｃ  第３ネットワーク、２ｄ  第４ネットワーク、１１  コントロール部、１２  ネットワーク送受信部、１３  パケット制御部、１００  制御システム、１１１  プロセッサ、１１２  記憶装置、１１３  メモリ、１１４  コントロールモジュール、１１５  ネットワーク接続装置、１１６  内部バス、１３１  診断パケット判定部、１３２  受信バッファ部、１３３  診断パケットバッファ部、１３４  診断部、１３５  診断パケット中継部、１３６  記憶部、１３７  中継制御部、１３８  送信バッファ部、１４０  履歴管理部、１４１  診断依頼部、１４２  消失位置判別部、３０１  ノードＩＤ、３０２  ルーティングテーブル、３０３  履歴テーブル、３０４  制御パケット、３０５  診断パケット
【要約】
制御装置（１ａ、１ｂ、１ｃ、１ｄ）は、送信元装置から宛先装置へ向けて送信された制御パケットが消失した場合に、消失した制御パケットを特定する識別情報を含む診断パケットおよび制御パケットを送信元装置から受信し、宛先装置へ送信するネットワーク送受信部と、制御パケットを受信して送信する場合に、制御パケットに含まれる識別情報および制御パケットを送信する次の送信先を示すルーティング情報が通信履歴として保存される記憶部と、診断パケットを受信した場合に、診断パケットに含まれる識別情報と一致する識別情報が、通信履歴として記憶部に保存されているか否かを判定し、判定結果を診断パケットに追加する診断部と、判定結果を診断パケットに追加した場合に、記憶部から読み出した消失した制御パケットのルーティング情報に含まれる次の送信先へ診断パケットを送信させる診断パケット中継部と、を備える。【図１】
0006890737.tif 000002
【図２】
0006890737.tif 000003
【図３】
0006890737.tif 000004
【図４】
0006890737.tif 000005
【図５】
0006890737.tif 000006
【図６】
0006890737.tif 000007
【図７Ａ】
0006890737.tif 000008
【図７Ｂ】
0006890737.tif 000009
【図８】
0006890737.tif 000010
【図９】
0006890737.tif 000011
【図１０】
0006890737.tif 000012
【図１１】
0006890737.tif 000013
【図１２】
0006890737.tif 000014
【図１３】
0006890737.tif 000015