(57)【要約】【課題】ネットワーク帯域を削減する。【解決手段】制御装置は、受信部と、複製判定部と、記録指示部と、を備える。受信部は、メッセージを受信する。複製判定部は、受信されたメッセージが複製されて送信されたか否かを判定する。記録指示部は、受信されたメッセージが複製されて送信されたと判定された場合に、複製前のメッセージと、受信されたメッセージとの差分情報の記録を指示する。【選択図】図１０
2019159812.tif 000002
【特許請求の範囲】
【請求項１】
メッセージを受信する受信部と、
受信されたメッセージが複製されて送信されたか否かを判定する複製判定部と、
受信されたメッセージが複製されて送信されたと判定された場合に、複製前のメッセージと、受信されたメッセージとの差分情報の記録を指示する記録指示部と、
を備える制御装置。
【請求項２】
受信されたメッセージが、ネットワークを介して接続される記録装置に記録されたメッセージであるか否かを判定する記録判定部をさらに備え、
前記記録指示部は、受信されたメッセージが前記記録装置に記録されたメッセージであると判定され、かつ、複製されて送信されたと判定された場合に、前記差分情報の記録を指示する、
請求項１に記載の制御装置。
【請求項３】
前記記録判定部は、前記記録装置との接続関係に基づいて、受信されたメッセージが前記記録装置を経由して送信されたかを判定することにより、受信されたメッセージが前記記録装置に記録されたメッセージであるか否かを判定する、
請求項２に記載の制御装置。
【請求項４】
受信されたメッセージが記録対象であるか否かを判定する対象判定部をさらに備え、
前記複製判定部は、記録対象であると判定されたメッセージが、複製されて送信されたか否かを判定する、
請求項１に記載の制御装置。
【請求項５】
前記記録指示部は、さらに、受信されたメッセージの付随情報の記録を指示する、
請求項１に記載の制御装置。
【請求項６】
前記付随情報は、メッセージの受信時刻、および、メッセージのエラーを検出するための情報のうち少なくとも一部を含む、
請求項５に記載の制御装置。
【請求項７】
受信されたメッセージが、ネットワークを介して接続される記録装置に記録されたメッセージであるか否かを判定する記録判定部をさらに備え、
前記記録指示部は、受信されたメッセージが前記記録装置に記録されていないメッセージであると判定され、かつ、複製されて送信されたと判定された場合に、前記付随情報の記録を指示する、
請求項５に記載の制御装置。
【請求項８】
前記記録指示部は、前記付随情報の記録を指示した後、受信されたメッセージが前記記録装置に記録されたメッセージであると判定され、かつ、前記付随情報の記録を指示したメッセージが複製されて送信されたと判定された場合に、前記付随情報の記録を指示する、
請求項７に記載の制御装置。
【請求項９】
メッセージを受信する受信ステップと、
受信されたメッセージが複製されて送信されたか否かを判定する複製判定ステップと、
受信されたメッセージが複製されて送信されたと判定された場合に、複製前のメッセージと、受信されたメッセージとの差分情報の記録を指示する記録指示ステップと、
を含む制御方法。
【請求項１０】
コンピュータを、
メッセージを受信する受信部と、
受信されたメッセージが複製されて送信されたか否かを判定する複製判定部と、
受信されたメッセージが複製されて送信されたと判定された場合に、複製前のメッセージと、受信されたメッセージとの差分情報の記録を指示する記録指示部と、
として機能させるためのプログラム。
【請求項１１】
記録装置と、前記記録装置とネットワークを介して接続された制御装置と、を含む通信システムであって、
前記制御装置は、
メッセージを受信する受信部と、
受信されたメッセージが複製されて送信されたか否かを判定する複製判定部と、
受信されたメッセージが複製されて送信されたと判定された場合に、複製前のメッセージと、受信されたメッセージとの差分情報を前記記録装置に記録することを指示する記録指示部と、を備える、
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置、制御方法、プログラムおよび通信システムに関する。
【背景技術】
【０００２】
自動車、鉄道車両、および、航空機などの移動体では、事故が発生した場合に原因を切り分けるために、移動体の制御に用いられる複数の制御装置間の通信履歴を記録するという要求がある。また、これらの制御装置では、通信路の切断などにより、通信が不能になることを防ぐため、ＩＥＥＥ  ８０２．１ＣＢなどによって定義されるように、メッセージ（フレーム）を複製して異なる経路から送信する構成が取られる場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−５１７５５１号公報
【特許文献２】米国特許第５，７３２，２６５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、移動体内のネットワークの帯域の消費量が増加する場合があった。例えば、移動体内のネットワークに接続された記録装置に通信履歴を記録するように構成した場合、複製して送信される同じデータを記録装置に送信するため、ネットワーク帯域の消費量が増加するという問題があった。
【課題を解決するための手段】
【０００５】
実施形態の制御装置は、受信部と、複製判定部と、記録指示部と、を備える。受信部は、メッセージを受信する。複製判定部は、受信されたメッセージが複製されて送信されたか否かを判定する。記録指示部は、受信されたメッセージが複製されて送信されたと判定された場合に、複製前のメッセージと、受信されたメッセージとの差分情報の記録を指示する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態にかかる通信システムのブロック図。
【図２】本実施形態にかかる制御装置のブロック図。
【図３】本実施形態にかかる記録装置のブロック図。
【図４】制御装置の転送部のブロック図。
【図５】記録装置の転送部のブロック図。
【図６】複数ストリームで冗長化して送信する例を示す図。
【図７】複製送信テーブルの一例を示す図。
【図８】除去テーブルの一例を示す図。
【図９】フレームのフォーマット例を示す図。
【図１０】記録制御部のブロック図。
【図１１】本実施形態における記録制御処理のフローチャート。
【図１２】対象判定部による記録判定処理のフローチャート。
【図１３】タイマ処理のフローチャート。
【図１４】フレーム一時記憶部へのフレームの記録例を示す図。
【図１５】フレームが複製されていない場合のコマンドの例を示す図。
【図１６】フレームが記録装置に記録される場合のフレーム識別子の例を示す図。
【図１７】フレームが記録装置に記憶されない場合のフレーム識別子の例を示す図。
【図１８】フレーム情報の形式の一例を示す図。
【図１９】フレーム情報の形式の一例を示す図。
【図２０】選択処理のフローチャート。
【図２１】フレームが複製されている場合のコマンドの一例を示す図。
【図２２】コマンドの例を示す図。
【図２３】コマンドの例を示す図。
【図２４】記録装置による記録処理のフローチャート。
【図２５】記録装置の記憶部に記憶されるデータの構成例を示す図。
【図２６】変形例３にかかる通信システムのブロック図。
【図２７】変形例４にかかる通信システムのブロック図。
【図２８】変形例４のコマンドの例を示す図。
【図２９】本実施形態にかかる装置のハードウェア構成図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、この発明にかかる制御装置、制御方法、プログラムおよび通信システムの好適な実施形態を詳細に説明する。
【０００８】
上述のように、従来技術では、移動体内のネットワークの帯域の消費量が増加しうるという問題があった。デバイス間で伝送されるデータの量を低減する技術として、過去に送ったデータと同一のデータを送信する場合に、データの代わりにハッシュ値を送信する技術がある。しかし、このような技術は、ハッシュ値の衝突可能性があるため、事故原因の切り分けに用いることができない。ファイルのデータストリームの冗長データを排除して記録する技術もあるが、このような技術は、ストレージの容量を削減することはできても、ネットワーク帯域の使用率を下げることはできない。
【０００９】
本実施形態にかかる通信システムでは、受信されたメッセージが複製されて送信されたと判定された場合に、複製の基となったメッセージと受信されたメッセージとの差分情報を記録する。このようにして送信するメッセージの重複を排除することにより、ネットワーク帯域の削減が可能となる。以下ではメッセージがフレームを単位として送受信される例を説明するが、メッセージはどのような単位で送受信されてもよい。
【００１０】
図１は、本実施形態にかかる制御装置および記録装置を含む通信システムの構成例を示すブロック図である。
【００１１】
図１に示すように、本実施形態の通信システムは、制御装置１００ａ〜１００ｄと、センサ１０ａ〜１０ｄと、アクチュエータ２０ａ〜２０ｄと、表示装置３０と、記録装置２００と、がネットワークで接続された構成となっている。
【００１２】
制御装置１００ａ〜１００ｄは同様の構成を備えるため、区別する必要がない場合は単に制御装置１００という。同様に、区別する必要がない場合は単にセンサ１０、アクチュエータ２０という。
【００１３】
センサ１０は、接続された制御装置１００に対して検知信号を出力する。センサ１０は、例えば加速度センサ、車速センサ、および、ＧＰＳセンサであるが、その他のどのようなセンサであってもよい。アクチュエータ２０は、接続された制御装置１００の制御に従い動作する。制御装置１００は、センサ１０およびアクチュエータ２０の少なくとも一方が接続されていなくてもよい。図１では制御装置１００ａのみに表示装置３０が接続されているが、他の制御装置１００にも表示装置３０または他の表示装置が接続されてもよい。
【００１４】
記録装置２００は、複数の制御装置１００（図１では制御装置１００ａ、１００ｄ）間に接続される。
【００１５】
各装置の接続に用いられるネットワークは、例えばイーサネット（登録商標）であるが、これに限られるものではない。例えば、制御装置１００と、対応するセンサ１０、アクチュエータ２０、および、表示装置３０とは、イーサネットとは異なるネットワークで接続されてもよい。
【００１６】
本実施形態では、各制御装置１００および記録装置２００はリング型で接続される。接続形態はリング型に限るものではなく、メッシュ型、スター型、フルコネクト型、バス型、および、ツリー型などの、どのような接続形態であってもよい。冗長に送信されたフレームのうち、少なくとも１つが記録装置２００を経由するような接続形態が好ましい。
【００１７】
なお、上述の接続形態は、物理的な接続形態に限らず、ＩＥＥＥ  ８０２．１Ｑで定義されるようなＶＬＡＮ（Virtual  Local  Area  Network）を用いて形成された接続形態であってもよい。各装置は、ＩＥＥＥ  １５８８またはＩＥＥＥ  ８０２．１ＡＳなどの規格によって規定されるＰＴＰ（Precision  Time  Protocol）またはｇＰＴＰ（generalized-PTP）などのプロトコルによって時刻同期がされているものとする。
【００１８】
各制御装置１００では、接続されたセンサ１０、アクチュエータ２０、および、表示装置３０などを制御するアプリケーションが動作する。また、各制御装置１００は、他の制御装置１００および記録装置２００から受信したフレームの転送機能を備えており、他の装置宛てにフレームを転送する。記録装置２００も同様に他の装置宛てのフレーム転送機能を備えている。記録装置２００はそれに加えて、転送したフレームを記録する機能、および、制御装置１００からのフレーム記録の指示を受け付けて、指示された情報を記録する機能を備える。本実施形態は、例えば、航空機、電車、および、自動車など移動体の車載ネットワーク、並びに、工場およびプラントなどの産業用ネットワークに適用することができる。
【００１９】
図２は、本実施形態にかかる制御装置１００の機能構成の一例を示すブロック図である。図２に示すように、制御装置１００は、転送部１１０と、受信部１２０と、アプリケーション１３０と、送信部１４０と、受信ストリーム管理部１５０と、受信シーケンス番号管理部１６０と、送信シーケンス番号管理部１７０と、送信ストリーム管理部１８０と、記録制御部１９０と、を備えている。
【００２０】
転送部１１０は、他の装置（他の制御装置１００および記録装置２００）との間でフレームを転送する。転送部１１０の機能の詳細は後述する。
【００２１】
受信部１２０は、自装置宛てのフレームを転送部１１０から受け取り、アプリケーション１３０に渡す。アプリケーション１３０は、センサ１０、アクチュエータ２０、および、表示装置３０などと接続され、これら各部を制御する。送信部１４０は、アプリケーション１３０が他の装置に向けて送信するフレームを転送部１１０に渡す。
【００２２】
受信ストリーム管理部１５０は、フレーム重複除去時にストリーム（フロー）を管理する。ストリーム（フロー）は、１つの送信元から、１つまたは複数の送信先に向かう一方向のデータの流れであり、データはフレームに格納されて伝送される。受信シーケンス番号管理部１６０は、同様に、フレーム重複除去時に使用するシーケンス番号を管理する。フレーム重複除去は、転送部１１０がフレームを受信したときに、複製されて（重複して）送信された複数のフレームの重複を除去する処理である。
【００２３】
受信ストリーム管理部１５０は、例えば除去テーブル（後述）を参照して、受信したフレーム（受信フレーム）の重複を除去するかを判定する。受信シーケンス番号管理部１６０は、例えば、ストリームごとに、受信フレームのシーケンス番号を図示しない記憶部などに記憶して管理する。
【００２４】
送信ストリーム管理部１８０は、フレーム複製時にストリームを管理する。送信シーケンス番号管理部１７０は、フレーム複製時にシーケンス番号を管理する。フレーム複製は、転送部１１０でフレームを送信するときに、フレームを複製して送信する処理である。
【００２５】
送信ストリーム管理部１８０は、例えば複製送信テーブル（後述）を参照して、送信するフレームを複製して送信するかを判定する。送信シーケンス番号管理部１７０は、例えば、ストリームごとに、送信したフレームのシーケンス番号を図示しない記憶部などに記憶して管理する。
【００２６】
上記の受信ストリーム管理部１５０、受信シーケンス番号管理部１６０、送信シーケンス番号管理部１７０、および、送信ストリーム管理部１８０の機能は一例であり、例えば適用する規格（例えばＩＥＥＥ  ８０２．１ＣＢ）に応じて適宜変更されてよい。
【００２７】
記録制御部１９０は、転送部１１０で受信したフレームを記録装置２００に記録するように指示する処理を制御する。記録制御部１９０の機能の詳細は後述する。
【００２８】
図３は、本実施形態にかかる記録装置２００の機能構成の一例を示すブロック図である。図３に示すように、記録装置２００は、記憶部２０１と、破損検出部２０２と、転送部２１０と、受信部２２０と、受付部２３０と、送信部２４０と、受信ストリーム管理部２５０と、受信シーケンス番号管理部２６０と、送信シーケンス番号管理部２７０と、送信ストリーム管理部２８０と、対象判定部２９０と、を備えている。
【００２９】
受信ストリーム管理部２５０、受信シーケンス番号管理部２６０、送信シーケンス番号管理部２７０、および、送信ストリーム管理部２８０は、制御装置１００の受信ストリーム管理部１５０、受信シーケンス番号管理部１６０、送信シーケンス番号管理部１７０、および、送信ストリーム管理部１８０と同様の機能を有するため詳細な説明を省略する。
【００３０】
記憶部２０１は、ネットワークを流れるフレームを記録する。記憶部２０１は、例えば不揮発性の記憶媒体である。例えば記憶部２０１は、ＮＡＮＤフラッシュメモリ、ＮＡＮＤフラッシュメモリを記憶媒体としたＳＳＤ（Solid  State  Drive）、ＳＤ（Secure  Digital）カード、ｅＭＭＣ（embedded  Multi  Media  Card）、および、ＵＦＳ（Universal  Flash  Storage）などで実現される。
【００３１】
破損検出部２０２は、受信したフレームが破損していないかを、ＦＣＳ（Frame  Checksum  Sequence）などを用いて検出する。転送部２１０は、他の装置（他の制御装置１００）との間でフレームを転送する。
【００３２】
受信部２２０は、自装置宛てのフレームを転送部２１０から受け取り、受付部２３０に渡す。受付部２３０は、他の制御装置１００からのコマンドを受け付ける。例えば受付部２３０は、他の制御装置１００から送信されたフレーム情報の記録を指示するコマンド（記録コマンド）、および、記録対象の基準の変更指示を受け付ける。記録コマンドを受けた場合には、受付部２３０は、コマンドに含まれるフレームに関する情報を記憶部２０１に記録する。
【００３３】
送信部２４０は、受付部２３０などから他の制御装置１００に向けて送信するフレームを受け取り、転送部２１０に渡す。
【００３４】
対象判定部２９０は、転送部２１０によって転送されるフレームが記録対象であるか否かを判定する。例えば対象判定部２９０は、ＩＥＥＥ  ８０２．１ＣＢなどによって複製されているフレームの場合に記録対象であると判定する方法、ＴＳＮ（Time  Sensitive  Networking）のトラヒッククラス、または、ＶＬＡＮの優先度（Priority  Code  Pointの値）が一定値以上である場合に記録対象であると判定する方法、および、ストリームごとに記録対象とするか否かを示す情報を設定し、この情報を参照して判定する方法、などを用いることができる。
【００３５】
対象判定部２９０による判定方法、および、判定に用いる基準（優先度と比較する一定値、ストリームごとの設定など）は、他の制御装置１００から受け付けるコマンドによって変更できるようにしてもよい。対象判定部２９０によって記録すると判定されたフレームは、フレームの識別情報、受信時刻、および、受信した通信部（後述）の情報とともに記憶部２０１に記録される。
【００３６】
なお、制御装置１００の各部（転送部１１０、受信部１２０、アプリケーション１３０、送信部１４０、受信ストリーム管理部１５０、受信シーケンス番号管理部１６０、送信シーケンス番号管理部１７０、送信ストリーム管理部１８０、記録制御部１９０）および記録装置２００の各部（転送部２１０、受信部２２０、受付部２３０、送信部２４０、受信ストリーム管理部２５０、受信シーケンス番号管理部２６０、送信シーケンス番号管理部２７０、送信ストリーム管理部２８０、対象判定部２９０）は、例えば、１または複数のプロセッサとメモリにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００３７】
次に、制御装置１００の転送部１１０の機能の詳細について説明する。図４は、制御装置１００の転送部１１０の機能構成例を示すブロック図である。なお図４では、転送部１１０以外の一部の構成も記載されている。図４に示すように、転送部１１０は、除去部１１１と、転送先管理部１１２と、複製部１１３と、通信部１１４、１１５と、を備えている。
【００３８】
転送部１１０は、例えば、ＩＥＥＥ  ８０２．１ＣＢ規格に対応したスイッチチップによって実現される。
【００３９】
通信部１１４、１１５は、他の制御装置１００および記録装置２００との通信を行う。通信部１１４、１１５は、物理層、および、データリンク層のＭＡＣ（Media  Access  Controll）副層の機能を備えている。通信部１１４、１１５は、ＭＡＣ副層の機能により、ＦＣＳを確認した結果、エラーが検出された場合、エラーの発生とともにそのフレームを渡す機能を備えている。また、通信部１１４、１１５は、受信したフレームに対して、受信時刻のタイムスタンプを付与する機能を備えている。
【００４０】
除去部１１１は、受信したフレームが複製されて送信されたフレームであった場合に、重複するフレームを除去する。例えば除去部１１１は、受信ストリーム管理部１５０と受信シーケンス番号管理部１６０からの情報に基づき、他の装置で複製して送信されたフレームの重複除去を行う。受信ストリーム管理部１５０にて、重複除去が設定されていないストリームについては、除去部１１１は、重複除去を行わない。また、除去部１１１は、除去を行う前のフレームを記録制御部１９０に渡す。
【００４１】
転送先管理部１１２は、受信したフレームの転送先を管理する。例えば転送先管理部１１２は、受信したフレームの送信元アドレスをＶＬＡＮ  ＩＤごとに学習し、通信部１１４、１１５および受信部１２０のうち、いずれか、または両方にフレームを渡すかを選択する。受信したフレームの送信先アドレスとＶＬＡＮ  ＩＤが学習されているポートがあれば、そこにフレームを渡し、学習されているポートがなければ全ポートにフレームを渡す。転送先管理部１１２は、除去部１１１により重複が除去されたフレームを、受信部１２０および複製部１１３のうち選択した転送先に渡す。
【００４２】
複製部１１３は、送信するフレームの複製を行う必要がある場合に、フレームを複製して送信する。例えば複製部１１３は、送信ストリーム管理部１８０と送信シーケンス番号管理部１７０からの情報に基いてフレームを複製するか決定し、複製する場合にそのフレームを複製して送信する。複製部１１３は、送信ストリーム管理部１８０で複製が設定されていないフレームについては複製しない。また、複製部１１３は、転送先管理部１１２の他に、送信部１４０および記録制御部１９０からの要求によって、フレームの送信を受け付ける。
【００４３】
ここでは、通信部１１４、１１５の２つの通信部が備えられる例を示したが、３以上の通信部を備えられてもよい。例えばメッシュ型の接続形態とする場合であれば、接続する他の制御装置１００および記録装置２００ごとに１つの通信部を備えるように構成してもよい。
【００４４】
次に、記録装置２００の転送部２１０の機能の詳細について説明する。図５は、記録装置２００の転送部２１０の機能構成例を示すブロック図である。なお図５では、転送部２１０以外の一部の構成も記載されている。図５に示すように、転送部２１０は、除去部２１１と、転送先管理部２１２と、複製部２１３と、通信部２１４、２１５と、を備えている。
【００４５】
転送部２１０は、除去部２１１による除去処理前のフレームが、記録制御部１９０ではなく対象判定部２９０に渡される点が、制御装置１００の転送部１１０と異なる。それ以外の除去部２１１、転送先管理部２１２、複製部２１３、および、通信部２１４、２１５の機能は、制御装置１００の転送部１１０に含まれる除去部１１１、転送先管理部１１２、複製部１１３、および、通信部１１４、１１５と同様であるため詳細な説明を省略する。
【００４６】
次に、複数のストリームでフレームを冗長化して送信する構成の具体例について説明する。図６は、制御装置１００ａから制御装置１００ｃに複数ストリームで冗長化して送信する例を示す図である。同時に様々なストリームを流すことが可能であるが、説明を簡単にするため、ここでは、２つのＶＬＡＮ（ＶＬＡＮ  ＩＤ：１０、ＶＬＡＮ  ＩＤ：２０）が設定されているとする。ＶＬＡＮ  ＩＤが“１０”のＶＬＡＮは、制御装置１００ａから制御装置１００ｂを通って制御装置１００ｃにフレームが転送されるＶＬＡＮである。ＶＬＡＮ  ＩＤが“２０”のＶＬＡＮは、制御装置１００ａから制御装置１００ｄを通って制御装置１００ｃにフレームが転送されるＶＬＡＮである。
【００４７】
この環境で、ＩＥＥＥ  ８０２．１ＣＢで定義される方法を用いて、フレームの複製および除去を行い、高信頼なネットワークを実現する。ＩＥＥＥ  ８０２．１ＣＢでは、例えば以下のような方法でストリームを識別する。
・送信先ＭＡＣアドレスとＶＬＡＮ  ＩＤの組み合わせ
・送信元ＭＡＣアドレスとＶＬＡＮ  ＩＤの組み合わせ
【００４８】
ストリームを識別する方法は上記の方法に限られるものではない。例えば上位のＩＰ（Internet  Protocol）層のアドレス、および、さらに上位層のプロトコルのポート番号などの概念を組み合わせてもよい。また、送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、および、ＶＬＡＮ  ＩＤを組み合わせてもよい。
【００４９】
制御装置１００ａは、複製送信テーブルを参照して、フレームを複製して送信するかを決定する。図７は、送信ストリーム管理部１８０が使用する複製送信テーブルの一例を示す図である。
【００５０】
図７の複製送信テーブルは、１つのストリーム（矢印の左側）と複数のストリーム（矢印の右側）とを対応づけた形式となっている。図７の複製送信テーブルは、ストリームＩＤ：１のストリームで送信することが指定されたフレームが、ストリームＩＤ：２およびストリームＩＤ：３の２つのストリームに複製されて送信されることを定めている。
【００５１】
ストリームＩＤ：１は、送信先ＭＡＣアドレス（制御装置１００ｃのアプリケーション１３０が用いるＭＡＣアドレス）が“CC-CC-CC-CC-CC-CC”であり、ＶＬＡＮ  ＩＤが“１００”であるストリームに割り当てられる。ストリームＩＤ：２は、送信先ＭＡＣアドレスが“CC-CC-CC-CC-CC-CC”であり、ＶＬＡＮ  ＩＤが“１０”であるストリームに割り当てられる。ストリームＩＤ：３は、送信先ＭＡＣアドレスが“CC-CC-CC-CC-CC-CC”であり、ＶＬＡＮ  ＩＤが“２０”であるストリームに割り当てられる。
【００５２】
このようにストリームＩＤは、ＭＡＣアドレスとＶＬＡＮ  ＩＤの組み合わせごとに付与される値である。ストリームＩＤは、ストリームを識別する識別情報（ストリーム識別子）として利用することができる。ストリームＩＤを用いずに、ＭＡＣアドレスとＶＬＡＮ  ＩＤの組み合わせでストリームを識別してもよい。
【００５３】
制御装置１００ｃは、除去テーブルを参照して、フレームの重複を除去するかを決定する。図８は、受信ストリーム管理部１５０が使用する除去テーブルの一例を示す図である。
【００５４】
図８の除去テーブルは、複数のストリーム（矢印の左側）と１つのストリーム（矢印の右側）とを対応づけた形式となっている。図８の除去テーブルは、ストリームＩＤ：２およびストリームストリームＩＤ：３で受信されたフレームが重複するため、重複を除去してストリームＩＤ：１のフレームとして扱うことを定めている。
【００５５】
図６に戻り、制御装置１００ａのアプリケーション１３０が、送信先ＭＡＣアドレスを“CC-CC-CC-CC-CC-CC”とし、ＶＬＡＮ  ＩＤを“１００”としてフレームを送信したとする。制御装置１００ａの転送部１１０（複製部１１３）は、図７のような複製送信テーブルを参照し、このフレームがストリームＩＤ：１のストリームに属するため、複製する必要があると判定する。転送部１１０は、このフレームを複製し、ＶＬＡＮ  ＩＤが“１０”のストリーム（ストリームＩＤ：２）、および、ＶＬＡＮ  ＩＤが“２０”のストリーム（ストリームＩＤ：３）として送信する。転送部１１０は、この際、これらのフレームが同じものであることを示すために、同じシーケンス番号（図６の例では“３７６”）を付与して送信する。
【００５６】
図９は、フレームのフォーマット例を示す図である。図９に示すように、フレームは、送信先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＶＬＡＮ  Ｔａｇ（ＶＬＡＮタグ）、Ｒｅｄｕｎｄａｎｃｙ  Ｔａｇ（冗長タグ）、タイプ／長さ、データ、および、ＦＣＳを含む。
【００５７】
転送部１１０は、Ｒｅｄｕｎｄａｎｃｙ  Ｔａｇのシーケンス番号フィールドに、送信シーケンス番号管理部１７０でストリームごとに管理されるシーケンス番号を付与して送信する。図６の例では、転送部１１０は、複製したフレームについて同じ“３７６”を付与する。ＦＣＳは、ＶＬＡＮ  ＩＤおよびＲｅｄｕｎｄａｎｃｙ  Ｔａｇの付与によって変更される。従って転送部１１０は、ＦＣＳを計算して付与する。制御装置１００ｃの転送部１１０（除去部１１１）は、図８に示すような除去テーブルを参照し、複製されて送信されたフレームの重複を除去する。
【００５８】
重複の除去は、送信時に付与されたＲｅｄｕｎｄａｎｃｙ  Ｔａｇに含まれるシーケンス番号を用いて行われる。制御装置１００ｃの受信シーケンス番号管理部１６０は、ストリームごとに受信したシーケンス番号を管理している。転送部１１０（除去部１１１）は、既に受信したシーケンス番号のフレームを除去する。例えば除去部１１１は、最初に到着したフレームからＲｅｄｕｎｄａｎｃｙ  Ｔａｇを除去し、ＶＬＡＮ  ＩＤを“１００”に書き換える。重複が除去されたフレームは、受信部１２０を介してアプリケーション１３０に渡される。除去部１１１は、以降、同じシーケンス番号を受信した場合には、そのフレームを破棄する。なお、除去部１１１は、ＦＣＳチェックサムエラーが発生していない最初のフレームを渡すようにしてもよい。
【００５９】
次に、記録制御部１９０の機能の詳細について説明する。図１０は、記録制御部１９０の機能構成例を示すブロック図である。なお図１０は、制御装置１００ｃの記録制御部１９０を中心とした各装置（制御装置１００ａ、１００ｂ、１００ｃ、記録装置２００）の構成も示している。簡略化のため、一部の機能については図示を省略している。
【００６０】
図１０は、以下のようにフレームが送信される場合のフレームおよびデータなどの流れの例を示している。まず、制御装置１００ａは、アプリケーション１３０からの指示により、送信部１４０を介してフレームを送信する。ここでは、図６で説明したように、制御装置１００ｃのアプリケーション１３０宛（ＭＡＣアドレス：“CC-CC-CC-CC-CC-CC”）にＶＬＡＮ  ＩＤが“１００”のフレームが送信される。送信部１４０から送信されたフレームは、転送部１１０によって複製されて送信される。具体的にはＶＬＡＮ  ＩＤが“１０”のフレームが制御装置１００ｂを介して、制御装置１００ｃの転送部１１０に送られる。また、ＶＬＡＮ  ＩＤが“２０”のフレームが記録装置２００の転送部２１０と、制御装置１００ｄの転送部１１０を介して、制御装置１００ｃの転送部１１０に送られる。
【００６１】
図１０に示すように、記録制御部１９０は、対象判定部１９１と、破損検出部１９２と、記録判定部１９３と、複製判定部１９４と、記録管理部１９５と、フレーム一時記憶部１９６と、フレーム記録指示部１９７と、付随情報記録指示部１９８と、コマンド発行部１９９と、を備えている。
【００６２】
対象判定部１９１は、転送部１１０から除去処理を行う前のフレームを受け取り、その受信フレームが予め設定された記録対象であるか否かを判定する。
【００６３】
破損検出部１９２は、受信したフレームが破損していないかを、ＦＣＳなどを用いて検出する。
【００６４】
記録判定部１９３は、受信されたフレームまたは複製されたフレームが、記録装置２００で記録されているか否かを判定する。
【００６５】
複製判定部１９４は、受信したフレームが複製されて送信されているフレームであるか否かを判定する。
【００６６】
記録管理部１９５は、フレーム一時記憶部１９６の管理、並びに、フレーム記録指示部１９７および付随情報記録指示部１９８に対する記録の指示などを実行する。
【００６７】
フレーム一時記憶部１９６は、受信したフレームの情報を一時的に保持する記憶媒体である。フレーム一時記憶部１９６は例えば、ＤＲＡＭ（Dynamic  Random  Access  Memory）などで実現される。
【００６８】
フレーム記録指示部１９７は、フレームの情報を記録装置２００に記録するように指示する。付随情報記録指示部１９８は、フレームに付随する情報（フレーム付随情報）を記録装置２００に記録するように指示する。フレーム記録指示部１９７および付随情報記録指示部１９８は、記録指示部の一例である。
【００６９】
コマンド発行部１９９は、フレーム情報およびフレーム付随情報を記録装置２００に記録するためのコマンドを発行する。
【００７０】
次に、本実施形態にかかる制御装置１００による記録制御処理について説明する。図１１は、本実施形態における記録制御処理の一例を示すフローチャートである。以下では、図６および図１０と同様に、制御装置１００ａから複数のストリームでフレームを受信する制御装置１００ｃが主体となる場合を例に説明する。
【００７１】
制御装置１００ｃの通信部（通信部１１４または通信部１１５）は、制御装置１００ｂまたは制御装置１００ｄからフレームを受信する。通信部は、いずれの通信部で受信したかを示す情報（通信部に割り振られたポートの番号など）と、フレームを受信した時刻を示すタイムスタンプを、制御装置１００内に備えられる記憶部などに記録する（ステップＳ１０１）。タイムスタンプは、例えばＰＴＰまたはｇＰＴＰなどにより時刻同期している値を用いて付与される。
【００７２】
次に、転送部１１０は、受信したフレームを転送する転送処理を実行する（ステップＳ１０２）。転送処理は以下のような処理を含む。
【００７３】
まず転送部１１０内の除去部１１１は、受信ストリーム管理部１５０で管理されている除去テーブルなどを参照し、受信したフレームが除去の対象であるか否かを判断する。除去の対象である場合には、除去部１１１は、受信シーケンス番号管理部１６０で管理されている受信済みのシーケンス番号の情報を用いながら重複を除去する。除去部１１１は、必要に応じて送信先ＭＡＣアドレスの書き換えと、ＶＬＡＮ  ＩＤの書き換えを行って、除去処理後のフレームを転送先管理部１１２に出力する。
【００７４】
図６の例では、制御装置１００ｃのアプリケーション１３０宛に送信先アドレスが設定されたＶＬＡＮ  ＩＤが“１０”のフレームおよびＶＬＡＮ  ＩＤが“２０”のフレームは、ＶＬＡＮ  ＩＤが“１００”に書き換えられ、受信部１２０に出力される。送信先アドレスが制御装置１００ｃのアプリケーション１３０のアドレスでなければ、複製部１１３および通信部１１４または１１５を介して他の装置にフレームが転送される。一方、除去部１１１は、除去処理を行う前のフレームを記録制御部１９０に受け渡す機能を備えている。
【００７５】
除去部１１１から除去処理を行う前のフレームを受け取った記録制御部１９０は、以下の処理を実行する。まず記録制御部１９０の対象判定部１９１は、受け取ったフレームが予め記録されるように設定されたフレームであるか否かを判定する（ステップＳ１０３）。記録対象でない場合は（ステップＳ１０３：Ｎｏ）、フレーム付随情報およびフレーム情報を記録せずに処理を終了する。記録対象であるか判定する判定処理の詳細は後述する。
【００７６】
記録対象であると判定された場合（ステップＳ１０３：Ｙｅｓ）、破損検出部１９２は、ＦＣＳをチェックすることにより、フレームが破損しているか否かを検出する（ステップＳ１０４）。ＦＣＳチェックによりエラーとなった場合、破損検出部１９２は、フレームにＦＣＳエラーがあったことを記録する。
【００７７】
次に、複製判定部１９４は、受信フレームが複製されて送信されているか否かを判定する（ステップＳ１０５）。複製判定部１９４は、例えば、受信ストリーム管理部１５０で管理されている除去テーブルの情報を参照することで、この判定を行うことができる。例えば図８に示す除去テーブルの情報を参照すると、複製判定部１９４は、送信先ＭＡＣアドレスが“CC-CC-CC-CC-CC-CC”宛で、ＶＬＡＮ  ＩＤが“１０”または“２０”である場合には、受信フレームが複製されて送信されていると判定できる。
【００７８】
記録判定部１９３は、受信したフレームまたは複製されたフレームが記録装置２００で記録されるか否かを判定する（ステップＳ１０６）。例えば記録判定部１９３は、受信したフレームまたは複製されたフレームが記録装置２００の転送部２１０を経由し、かつ、記録装置２００の対象判定部２９０にて記録対象となっているかにより、この判定を行うことができる。記録判定部１９３は、この両方の条件を満たす場合に、記録装置２００で記録されていると判定する。それ以外の場合は、記録判定部１９３は、記録装置２００で記録されていないと判定する。判定結果は、フレーム一時記憶部１９６の「記録装置への記録」フィールド（後述）に記録される。
【００７９】
記録装置２００の転送部２１０を経由するか否かは、例えば、ネットワーク構成が固定の場合は、予め記録装置２００との接続関係を示す情報などを設定し、設定した情報を参照することで判定することができる。例えば、送信元の装置のＭＡＣアドレス、ＶＬＡＮ  ＩＤ、および、ポート番号の組み合わせごとに、記録対象とするか否かを示す情報を設定しておき、記録判定部１９３は、この情報を参照して判定してもよい。
【００８０】
ネットワーク構成が固定でない場合には、ＬＬＤＰ（Link  Layer  Discovery  Protocol）などの隣接する機器の情報を収集するプロトコルを用いてネットワークのトポロジを検出し、記録装置２００のＭＡＣアドレスから判定してもよい。
【００８１】
記録装置２００の対象判定部２９０で記録対象と判定されるかを示す設定を、複数の制御装置１００で共有するようにしてもよい。また、コマンドにより、制御装置１００ｃから記録装置２００の対象判定部２９０の設定を参照または変更できるようにしてもよい。
【００８２】
ステップＳ１０５およびステップＳ１０６の判定が終わると、記録管理部１９５による処理が行われる。まず記録管理部１９５は、ステップＳ１０５の判定で受信フレームが複製されていると判定されたか否かを判断する（ステップＳ１０７）。複製されていない場合（ステップＳ１０７：Ｎｏ）、記録管理部１９５は、フレーム記録指示部１９７および付随情報記録指示部１９８に対して、受信フレームのフレーム付随情報とフレーム情報の記録を指示する（ステップＳ１１７）。これらの処理の詳細については後述する。
【００８３】
受信フレームが複製されて送信されている場合（ステップＳ１０７：Ｙｅｓ）、記録管理部１９５は、フレーム一時記憶部１９６に古いフレームが記憶されているか否かを判定する（ステップＳ１０８）。例えば記録管理部１９５は、フレーム一時記憶部１９６に記録されている、受信フレームの属するストリームまたは受信フレームの複製フレームの属するストリームで、受信フレームのシーケンス番号を基準として一定値以上古いシーケンス番号のフレームのデータがあるか否かを判定する。
【００８４】
例えば記録管理部１９５は、受信フレームのシーケンス番号が“３７８”であった場合、受信フレームの属するストリームまたはその複製フレームの属するストリームで、１０以上古いシーケンス番号を持つフレームのデータがあるかを判定する。該当するフレームのデータがあった場合は（ステップＳ１０８：Ｙｅｓ）、記録管理部１９５は、フレーム記録指示部１９７および付随情報記録指示部１９８に対して、フレーム情報記録指示が済んでいない古いシーケンス番号を持つフレームについて、フレーム情報を記録指示する（ステップＳ１０９）。なお、この際、同じシーケンス番号を持つフレームがすべて集まらない場合、記録管理部１９５は、本来受信すべきだったフレームについて、受信時刻に未受信を示す特別な値を格納したフレーム付随情報を記録するように指示してもよい。そして記録管理部１９５は、記録を指示したデータを、フレーム一時記憶部１９６から削除する（ステップＳ１１０）。
【００８５】
古いフレームが記憶されていない場合（ステップＳ１０８：Ｎｏ）、および、古いフレームの削除後、記録管理部１９５は、フレーム一時記憶部１９６を参照し、複製されて同じシーケンス番号を持つすべてのフレームを受信したかを判定する（ステップＳ１１１）。すべてのフレームを受信した場合（ステップＳ１１１：Ｙｅｓ）、記録管理部１９５は、フレーム記録指示部１９７および付随情報記録指示部１９８に対して、フレーム付随情報とフレーム情報の記録を指示する（ステップＳ１１４）。また記録管理部１９５は、複製された同一のシーケンス番号を持つデータをフレーム一時記憶部１９６から削除する（ステップＳ１１５）。
【００８６】
すべてのフレームを受信していない場合（ステップＳ１１１：Ｎｏ）、記録管理部１９５は、フレームのデータおよびフレーム付随情報を、フレーム一時記憶部１９６に記録する（ステップＳ１１２）。
【００８７】
次に、記録管理部１９５は、ステップＳ１０６の判定でフレーム一時記憶部１９６に記憶されている受信フレームまたは受信フレームの複製フレームのうち、記録装置２００に記録されているフレームがあるか否かを判断する（ステップＳ１１３）。ある場合は（ステップＳ１１３：Ｙｅｓ）、記録管理部１９５は、フレーム記録指示部１９７および付随情報記録指示部１９８に対して、受信フレームのフレーム付随情報とフレーム情報の記録を指示する（ステップＳ１１７）。ない場合は（ステップＳ１１３：Ｎｏ）、記録管理部１９５は、付随情報記録指示部１９８に対して、フレーム付随情報のみを記録するように指示する（ステップＳ１１６）。例えば、この判定は、「記録装置への記録」フィールドを参照し、記録装置２００への記録がある場合に、記録装置２００に記録されているフレームがあると判定するようにしてもよい。
【００８８】
次に、対象判定部１９１が、フレームが記録対象であるか判定する記録判定処理について説明する。図１２は、対象判定部１９１による記録判定処理の一例を示すフローチャートである。
【００８９】
対象判定部１９１は、まず受信フレームの宛先アドレスが特定のアドレス宛であるか否かを判定する（ステップＳ２０１）。特定のアドレス宛ての場合（ステップＳ２０１：Ｙｅｓ）、対象判定部１９１は、受信フレームが記録対象であると判定する（ステップＳ２０５）。特定のアドレス宛てでない場合（ステップＳ２０１：Ｎｏ）、対象判定部１９１は、さらに優先度、例えば、受信フレームに含まれるＰＣＰ（Priority  Code  Point）の値が予め決められた値であるか否かを判定する（ステップＳ２０２）。ＰＣＰが予め決められた値であれば（ステップＳ２０２：Ｙｅｓ）、対象判定部１９１は、受信フレームが記録対象であると判定する（ステップＳ２０５）。
【００９０】
ＰＣＰが決められた値でない場合（ステップＳ２０２：Ｎｏ）、対象判定部１９１は、さらに、受信フレームのＶＬＡＮ  ＩＤが記録対象として予め決められた値（ＩＤ）であるか否かを判定する（ステップＳ２０３）。予め決められた値であれば（ステップＳ２０３：Ｙｅｓ）、対象判定部１９１は、受信フレームが記録対象であると判定する（ステップＳ２０５）。
【００９１】
ＶＬＡＮ  ＩＤが決められた値でない場合（ステップＳ２０３：Ｎｏ）、対象判定部１９１は、さらに受信したストリームが記録対象であるか否かを判定する（ステップＳ２０４）。ストリームの識別方法には、前述したように、いくつかの方法がある。例えばストリームは、ＭＡＣアドレスとＶＬＡＮの組み合わせで識別される。対象判定部１９１は、受信したストリームが、記録対象として予め決められたストリームであれば記録対象と判定する。例えば、フレームが複製されて送信される場合において、冗長なフレームを除去するように指定されているフレームについて記録対象としてもよい。
【００９２】
ストリームが記録対象の場合（ステップＳ２０４：Ｙｅｓ）、対象判定部１９１は、受信フレームが記録対象であると判定する（ステップＳ２０５）。ストリームが記録対象でない場合（ステップＳ２０４：Ｎｏ）、対象判定部１９１は、受信フレームは記録対象ではないと判定し（ステップＳ２０６）、記録判定処理を終了する。この場合、受信フレームのフレーム付随情報およびフレーム情報の記録は行われない。
【００９３】
なお、図１２の記録判定処理は一例であり、上記４つの判定（ステップＳ２０１〜ステップＳ２０４）のうち少なくとも一部を実施してもよいし、他の方法によって記録対象であるか判定してもよい。
【００９４】
図１１に示すように、制御装置１００は、古いフレームのデータをフレーム一時記憶部１９６から削除する処理を実行する（ステップＳ１０８〜ステップＳ１１０）。これにより、フレーム一時記憶部１９６に不要なデータが蓄積され記憶領域が不足することを回避可能となる。一方、図１１の処理は、フレームを受信したときに実行されるため、フレームを受信しない場合には、不要なデータの削除が行われない。そこで、フレームの受信とは独立に、例えば定期的に古いデータが存在しないか確認するように構成してもよい。
【００９５】
図１３は、このように構成した制御装置１００によるタイマ処理の一例を示すフローチャートである。タイマ処理は、例えば記録管理部１９５が、予め決められた一定の間隔で実行する、フレーム一時記憶部１９６の古いデータを確認して削除する処理である。タイマ処理では、通信が止まっているストリームにおいて、一定時間内にフレームが届かなかったことを記録するための処理を行う。
【００９６】
タイマ処理が開始されると、記録管理部１９５は、フレーム一時記憶部１９６から、最初のフレームの受信時刻から予め決められた時間が経過しているが、すべてのフレームそろっていないデータがあるか否かを判定する（ステップＳ３０１）。このようなデータが存在しない場合は（ステップＳ３０１：Ｎｏ）、タイマ処理を終了する。
【００９７】
このようなデータが存在する場合は（ステップＳ３０１：Ｙｅｓ）、記録管理部１９５は、フレーム付随情報とフレーム情報の記録を指示する（ステップＳ３０２）。このとき、記録管理部１９５は、時間内に受信できなかったフレームの受信時刻に未受信を示す特別な値を入れて記録してもよい。記録管理部１９５は、記録を指示したフレームのデータを、フレーム一時記憶部１９６から削除する（ステップＳ３０３）。
【００９８】
図１４は、フレーム一時記憶部１９６へのフレームの記録例を示す図である。図１４に示すように、各フレームに対して、ストリーム識別子、シーケンス番号、受信時刻、記録装置２００への記録の有無、ＦＣＳエラーの有無、受信ポート番号、フレーム全体のデータ、および、フレーム情報の記録指示が済んでいるか、が保存される。
【００９９】
ストリーム識別子は、この例の場合、送信先ＭＡＣアドレスとＶＬＡＮ  ＩＤの組み合わせである。シーケンス番号はフレームに付与されているシーケンス番号である。受信時刻は通信部１１４または１１５にて付与したタイムスタンプの値である。
【０１００】
記録装置２００への記録は、受信フレームが記録装置２００に記録されているかを記録判定部１９３が判定した結果である。ＦＣＳエラーは、破損検出部１９２によるエラーチェックの結果である。受信ポート番号は、いずれの通信部（受信ポート）から受信したかを示す識別子である。フレーム全体のデータは、フレームそのもののデータであり、例えば、フレームの長さ、および、フレームを構成するデータを含む。フレーム情報記録指示は、そのフレームのフレーム情報を記録装置２００に記録するよう指示したかを示す。１つの行が１つのフレームのデータである。
【０１０１】
次にフレーム付随情報とフレーム情報の記録について説明する。フレーム付随情報およびフレーム情報の記録が指示されると、コマンド発行部１９９は、記録装置２００に対してネットワークを介してコマンドを発行する。このとき、コマンド発行部１９９は、どのようなプロトコルを用いてもよい。
【０１０２】
記録装置２００のＭＡＣアドレス（“EE-EE-EE-EE-EE-EE”）は予め制御装置１００に保持されているものとする。コマンド発行部１９９は、いずれのＶＬＡＮを用いてコマンドを発行してもよいが、制御装置１００でコマンドが記録対象とされないように設定した方が好ましい。
【０１０３】
図１５は、フレームが複製されていない場合のコマンドの例を示す図である。この例では、コマンドは、送信元識別子、フレーム識別子、データセットの個数、および、データセットを含む。データセットの個数分、データセットを連続して格納することができる。データセットは、ストリーム識別子、フレーム付随情報の有無、フレーム付随情報、フレーム情報の有無、および、フレーム情報を含む。送信元識別子は、このコマンドの発行元を識別するための情報である。例えば、制御装置１００ｃで用いられているＭＡＣアドレスを送信元識別子とすることができる。送信元識別子は、転送部１１０を構成するスイッチに付与されたＭＡＣアドレスを用いてもよい。本実施形態では、“DD-DD-DD-DD-DD-DD”を用いるものとして説明する。フレーム識別子は、複製されたフレームを記録装置２００で一意に識別する情報である。
【０１０４】
フレーム識別子は、例えば図１６および図１７に示すように決めることができる。図１６は、受信フレームまたは受信フレームの複製フレームが記録装置２００に記録される場合のフレーム識別子の例を示す図である。この場合、フレーム識別子は、記録装置２００におけるストリーム識別子とシーケンス番号を含む。記録装置２００におけるストリーム識別子は、記録装置２００の転送部２１０によって受信される時の送信先ＭＡＣアドレスとＶＬＡＮ  ＩＤを含む。
【０１０５】
図１７は、受信フレームまたは受信フレームの複製フレームが記録装置２００に記録されない場合のフレーム識別子の例を示す図である。この場合、フレーム識別子は、制御装置１００におけるストリーム識別子とシーケンス番号を含む。制御装置１００におけるストリーム識別子は、記録を指示する制御装置１００の転送部１１０によって受信されたときの送信先ＭＡＣアドレスと、フレームが複製されるストリームのなかで最も小さいＶＬＡＮ  ＩＤを含む。なお、最小のＶＬＡＮ  ＩＤとする必要はなく、複製されるＶＬＡＮ  ＩＤの中で１つのＶＬＡＮ  ＩＤを特定できればよい。例えば、複数のＶＬＡＮ  ＩＤのうち予め定められたＶＬＡＮ  ＩＤとしてもよいし、最大のＶＬＡＮ  ＩＤとしてもよい。
【０１０６】
図１５の説明に戻り、データセットの個数は、この後に続くデータセットの数を示している。この場合のデータセットの個数は１である。データセットに含まれるストリーム識別子は、制御装置１００におけるストリーム識別子を格納する。フレーム付随情報の有無は、その後に続くフレーム付随情報があるかないかを示す。フレーム付随情報がない場合は、そのフレームの受信時刻、ＦＣＳエラーの有無、および、受信ポート番号などのフレーム付随情報が格納されない。フレーム情報の有無は、続くフレーム情報の有無を示している。フレーム付随情報の有無、および、フレーム情報の有無は、フレーム情報のみ記録する場合、および、フレーム付随情報のみ記録する場合に用いられる。
【０１０７】
図１８および図１９は、フレーム情報の形式の一例を示す図である。フレーム情報には２つのタイプが存在する。１つが差分形式（図１８）であり、もう１つが全記録形式（図１９）である。図１８および図１９に示すように、フレーム情報の先頭が、フレーム情報のタイプを示す。タイプには、差分形式か、全記録形式かを示す値が格納される。
【０１０８】
差分形式は、参照データからの差分のみを伝える機能を有する。差分形式のフレーム情報を用いることで、送信データの量を削減することができる。差分形式のフレーム情報は、基となるデータを参照する参照装置の識別子、データ参照をするストリームの識別子、差分データの個数、および、差分データの個数分の差分データを含む。
【０１０９】
参照装置は、記録装置２００の場合もあるし、制御装置１００の場合もある。例えば、後述するように、記録装置２００に記録済みのフレームにＦＣＳエラーが存在し、かつ、ＦＣＳエラーのないフレームの記録が指示されている場合は、ＦＣＳエラーのないフレームに対する差分を記録することが望ましい。この場合は、ＦＣＳエラーのないフレームを受信した制御装置１００が参照装置となる。記録装置２００に記録済みのフレームにＦＣＳエラーがなければ、記録装置２００が参照装置となる。
【０１１０】
上述したように、装置の識別子にはＭＡＣアドレスなどを用いることができる。ストリームの識別子には、ＭＡＣアドレスとＶＬＡＮ  ＩＤの組み合わせを用いることができる。差分形式では、連続する差分情報を複数個格納できる。いくつ格納するかを差分データ個数に設定する。
【０１１１】
差分情報は、開始位置、長さ、および、差分データを含む。開始位置は、参照するフレームの先頭を基準とした、データが異なる部分の先頭の位置を示している。差分データには、開始位置から“長さ”で示される位置までのデータが格納される。開始位置および長さは、例えばオクテット単位で扱われる。差分情報には、参照装置に記録されているフレームと差がある部分のデータのみが記録され、同じデータは記録されない。
【０１１２】
一方、全記録形式は、長さおよびフレームの全体データを含む。長さにフレームの長さが設定される。フレームの全体データに、フレームを構成するデータが格納される。
【０１１３】
このように本実施形態では、２つの形式のフレーム情報を用いることができる。図２０は、２つの形式のいずれかを選択するための選択処理の一例を示すフローチャートである。選択処理は、例えば図１１のステップＳ１１４、および、ステップＳ１１７などで、フレーム情報の記録を指示する場合に、いずれの形式で記録するかを選択するために実行される。
【０１１４】
記録管理部１９５は、まずフレーム一時記憶部１９６を参照し、フレーム情報を送信しようとしているフレームにＦＣＳエラーがあるか否かを確認する（ステップＳ４０１）。ＦＣＳエラーがある場合（ステップＳ４０１：Ｙｅｓ）、記録管理部１９５は、フレーム記録指示部１９７に、全記録形式で記録を指示する（ステップＳ４０７）。一方、ＦＣＳエラーがない場合（ステップＳ４０１：Ｎｏ）、記録管理部１９５は、フレーム一時記憶部１９６を参照し、該フレームまたはその複製フレームが記録装置２００に記録されているか否かを調べる（ステップＳ４０２）。
【０１１５】
記録装置２００へ記録されている場合（ステップＳ４０２：Ｙｅｓ）、記録管理部１９５は、さらに記録装置２００へ記録されたフレームにＦＣＳエラーがあるか否かを確認する（ステップＳ４０３）。ＦＣＳエラーがない場合（ステップＳ４０３）、記録管理部１９５は、記録装置２００に記録されているフレームを参照した差分形式で記録を指示する（ステップＳ４０４）。
【０１１６】
記録装置２００へ記録されていない場合（ステップＳ４０２：Ｎｏ）、および、記録装置２００に記録されたフレームにＦＣＳエラーがある場合（ステップＳ４０３：Ｙｅｓ）、記録管理部１９５は、ＦＣＳエラーのないフレーム情報を過去に記録指示したか否かを確認する（ステップＳ４０５）。これは図１４に示した「記録装置への記録」、ＦＣＳエラー、フレーム情報記録指示のフィールドを参照して行ってもよい。過去に記録指示した場合（ステップＳ４０５：Ｙｅｓ）、記録管理部１９５は、記録済みのストリームのフレームを参照した差分形式で記録を指示する（ステップＳ４０６）。過去に記録指示していない場合（ステップＳ４０５：Ｎｏ）、記録管理部１９５は、全記録形式で記録を指示する（ステップＳ４０７）。
【０１１７】
図２１は、フレームが複製されている場合のコマンドの一例を示す図である。図２１に示すように、フレームが複製して送信されている場合には、複数のデータセットがコマンド内に格納される場合がある。
【０１１８】
次に、フレームの受信タイミングの違いによるコマンドの違いの例について図２２および図２３を用いて説明する。図２２は、記録装置２００に記録されたフレームを受信する前に、記録装置２００に記録されていない複製フレームを受信した場合のコマンドの例を示す図である。図２３は、記録装置２００に記録されたフレームを受信した後に、記録装置２００に記録されていない複製フレームを受信した場合のコマンドの例を示す図である。
【０１１９】
図２２の上部は、記録装置２００に記録されていない複製フレームを受信したときの、当該フレームの記録を指示するコマンドの例である。この場合、記録装置２００に記録済みのフレームがフレーム一時記憶部１９６に記憶されていないため、フレーム情報は記録せず、フレーム付随情報のみを記録するコマンドが発行される（図１１のステップＳ１１６）。なお破線部は、該当するデータを送信しないことを示す。
【０１２０】
図２２の下部は、その後に記録装置２００に記録されたフレームを受信したときの、当該フレームの記録を指示するコマンドの例である。図６に示すようにフレームが２つのストリームに複製されるネットワーク構成であれば、すべてのフレームを受信したことになるため、受信フレームのフレーム情報の記録が指示される（図１１のステップＳ１１４）。なお図２２に示すように、データセット＃１については既にフレーム付随情報の記録を指示済みのため、フレーム付随情報の有無に“無”を設定し、フレーム付随情報の記録を省略してもよい。またデータセット＃１のフレーム情報は記録が指示されていないため、このタイミングでデータセット＃２とともに記録が指示される。
【０１２１】
図２３の上部は、記録装置２００に記録されたフレームを先に受信したときの、当該フレームの記録を指示するコマンドの例である。この場合、記録装置２００に記録済みのフレームのフレーム情報およびフレーム付随情報を記録するコマンドが発行される（図１１のステップＳ１１７）。
【０１２２】
図２３の下部は、その後に記録装置２００に記録されていない複製フレームを受信したときの、当該フレームの記録を指示するコマンドの例である。すべてのフレームを受信したことになるため、当該フレームのフレーム情報およびフレーム付随情報の記録が指示される（図１１のステップＳ１１４）。この場合は、データセット＃２のフレーム情報およびフレーム付随情報を共に記録済みのため、データセット＃１のフレーム情報およびフレーム付随情報の記録が指示される。
【０１２３】
次に、図２４を用いて記録装置２００による記録処理について説明する。図２４は、記録装置２００による記録処理の一例を示すフローチャートである。
【０１２４】
記録装置２００の通信部（通信部２１４または通信部２１５）は、フレームを受信すると、制御装置１００と同様にいずれの通信部で受信したかを示す情報（ポート番号など）と、フレームを受信した時刻を示すタイムスタンプを、例えば記憶部２０１に記録する（ステップＳ５０１）。
【０１２５】
次に、転送部２１０は、受信したフレームが制御装置１００から送信された自装置宛てのコマンドであるか否かを判定する（ステップＳ５０２）。自装置宛てのコマンドの場合（ステップＳ５０２：Ｙｅｓ）、受付部２３０は、コマンドに含まれるフレーム付随情報およびフレーム情報を、制御装置１００のデータとして記憶部２０１に記録する（ステップＳ５０３）。
【０１２６】
自装置宛てのコマンドでない場合（ステップＳ５０２：Ｎｏ）、転送部２１０は、フレームを、宛先となる他の装置に転送する（ステップＳ５０４）。その一方で、対象判定部２９０は、除去処理を行う前の受信フレームが記録対象であるか否かを判定する（ステップＳ５０５）。
【０１２７】
例えば対象判定部２９０は、図１２に示した記録判定処理を実行する。このように、制御装置１００の対象判定部１９１と記録装置２００の対象判定部２９０は、同様の記録判定処理を実行してもよい。図１２のうち一部を実行するなどにより、対象判定部１９１と対象判定部２９０とで異なる記録判定処理を実行してもよい。
【０１２８】
記録対象でない場合（ステップＳ５０５：Ｎｏ）、記録装置２００は処理を終了する。記録対象であった場合（ステップＳ５０５：Ｙｅｓ）、制御装置１００と同様に、破損検出部２０２は、ＦＣＳエラーをチェックすることにより、フレームが破損しているか否かを検出する（ステップＳ５０６）。ＦＣＳチェックによりエラーとなった場合、破損検出部２０２は、フレームにＦＣＳエラーがあったことを記録する。また破損検出部２０２は、受信フレームを記録装置２００のデータとして記憶部２０１に記録する（ステップＳ５０７）。
【０１２９】
図２５は、記録装置２００の記憶部２０１に記憶されるデータの構成例を示す図である。各データは、フレーム識別子によって管理されている。フレーム識別子ごとに、記録装置２００のデータ、制御装置のデータ１、制御装置のデータ２、・・・と分けられてデータが記録される。記録装置２００のデータフィールドは、記録装置２００での受信時刻、記録装置２００で受信したフレーム全体を構成するデータと長さ、記録装置２００で受信したときのＦＣＳエラーの有無、記録装置２００で受信した受信ポート番号が記録される。これらのフィールドは、記録装置２００で記録対象とされた場合に記録される。
【０１３０】
一方、制御装置１００のデータフィールドは、それぞれ、制御装置１００の識別子、ストリーム識別子、制御装置１００における受信時刻、フレームのデータ、制御装置１００におけるＦＣＳエラーの有無、制御装置１００における受信ポート番号が記録される。
【０１３１】
なお、コマンドの処理タイミングは上記に限らず、例えばＮＶＭ（Nonvolatile  Memory）  Express  over  fabricsなどで、制御装置１００から記録装置２００の記憶部２０１に一度書き込んだ後、記録装置２００がこれを読み出して処理してから改めて記憶部２０１に記憶させるようにしてもよい。
【０１３２】
（変形例１）
上記実施形態では、複製および除去を行うフレームのフォーマットとして、ＩＥＥＥ  ８０２．１ＣＢに定義されているＲｅｄｕｎｄａｎｃｙ  Ｔａｇを用いる方法を示した。この代わりに、ＩＥＣ  ６２４３９−３：２００６で規定されているＨＳＲ（High-availability  Seamless  Redundancy）およびＰＲＰ（Parallel  Redundancy  Protocol）を適用してもよい。ＨＳＲの場合は、ＨＳＲシーケンスタグが、ＰＲＰの場合はＰＲＰシーケンストレイラが、Ｒｅｄｕｎｄａｎｃｙ  Ｔａｇの代わりに用いられる。
【０１３３】
（変形例２）
上記実施形態では、各装置（制御装置１００、記録装置２００）の送信ストリーム管理部および受信ストリーム管理部が、装置ごとの複製および除去処理の情報（複製送信テーブル、除去テーブルなど）を保持する例を示した。これらの情報は各装置で共有されるようにしてもよい。
【０１３４】
（変形例３）
上記実施形態では、記録装置は１つであった。図２６に示すように、通信システムが複数の記録装置を備えてもよい。なお図２６は２つの記録装置（記録装置２００ａ、２００ｂ）を備える例が示されているが、３以上の記録装置が備えられてもよい。
【０１３５】
複数の記録装置２００が備えられる場合にも、記録判定部１９３が、各記録装置２００を対象として記録判定を行い、判定結果に合わせてフレーム情報を出力することで、帯域の消費量を削減することができる。事故などを考えると、複数の記録装置２００は離れた場所に配置されることが好ましい。
【０１３６】
（変形例４）
上記実施形態では、冗長に送信されたフレームのうち、少なくとも１つが記録装置２００を経由するような接続形態であり、記録装置２００に記録されたフレームとの差分を記録することによりネットワーク帯域の負荷を軽減した。図２７に示すように、冗長に送信されたフレームが記録装置２００を経由しない場合でもネットワーク帯域の負荷を軽減することができる。
【０１３７】
例えば、図２８に示すように、制御装置１００は、先に受信したフレームについてはフレーム付随情報のみの記録を指示する。制御装置１００は、複製されたフレームが受信されたときに、先に受信されたフレームのフレーム情報（全記録形式）、および、後から受信したフレームのフレーム付随情報とフレーム情報（差分形式）を送信する。これにより、複製された２つのフレームのデータを重複して送信する必要がなくなり、ネットワークの帯域負荷を軽減することができる。
【０１３８】
このように、本実施形態にかかる制御装置では、フレームのデータの差分を送信することで、ネットワーク帯域を削減しながら、通信路に異常がなかった否かを示すログデータを、記録装置２００に記録することができる。記録された情報は、例えば事故が発生した時の事故原因の解析に用いることができる。
【０１３９】
次に、本実施形態にかかる装置（制御装置、記録装置）のハードウェア構成について図２９を用いて説明する。図２９は、本実施形態にかかる装置のハードウェア構成例を示す説明図である。
【０１４０】
本実施形態にかかる装置は、ＣＰＵ（Central  Processing  Unit）５１などの装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【０１４１】
本実施形態にかかる装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【０１４２】
本実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【０１４３】
さらに、本実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１４４】
本実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１４５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４６】
１００  制御装置
１１０、２１０  転送部
１１１、２１１  除去部
１１２、２１２  転送先管理部
１１３、２１３  複製部
１１４、１１５、２１４、２１５  通信部
１２０、２２０  受信部
１３０  アプリケーション
１４０、２４０  送信部
１５０、２５０  受信ストリーム管理部
１６０、２６０  受信シーケンス番号管理部
１７０、２７０  送信シーケンス番号管理部
１８０、２８０  送信ストリーム管理部
１９０  記録制御部
１９１、２９０  対象判定部
１９２、２０２  破損検出部
１９３  記録判定部
１９４  複製判定部
１９５  記録管理部
１９６  フレーム一時記憶部
１９７  フレーム記録指示部
１９８  付随情報記録指示部
１９９  コマンド発行部
２００  記録装置
２０１  記憶部
２３０  受付部
【図１】
2019159812.tif 000003
【図２】
2019159812.tif 000004
【図３】
2019159812.tif 000005
【図４】
2019159812.tif 000006
【図５】
2019159812.tif 000007
【図６】
2019159812.tif 000008
【図７】
2019159812.tif 000009
【図８】
2019159812.tif 000010
【図９】
2019159812.tif 000011
【図１０】
2019159812.tif 000012
【図１１】
2019159812.tif 000013
【図１２】
2019159812.tif 000014
【図１３】
2019159812.tif 000015
【図１４】
2019159812.tif 000016
【図１５】
2019159812.tif 000017
【図１６】
2019159812.tif 000018
【図１７】
2019159812.tif 000019
【図１８】
2019159812.tif 000020
【図１９】
2019159812.tif 000021
【図２０】
2019159812.tif 000022
【図２１】
2019159812.tif 000023
【図２２】
2019159812.tif 000024
【図２３】
2019159812.tif 000025
【図２４】
2019159812.tif 000026
【図２５】
2019159812.tif 000027
【図２６】
2019159812.tif 000028
【図２７】
2019159812.tif 000029
【図２８】
2019159812.tif 000030
【図２９】
2019159812.tif 000031