(57)【要約】【課題】ルート回避プロトコルを含むソフトウェアを再起動等した場合に、ネットワーク管理者等の負担を大きく増大させることなく、通信の中断を回避することができる通信装置を提供すること。【解決手段】本発明にかかる通信装置１０は、ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成するプロトコル部１１と、プロトコルデータの送受信処理を実行する通信部１２と、プロトコル部１１における動作が停止している状態において、プロトコル部１１の代わりにプロトコルデータを生成し、生成したプロトコルデータを通信部１２へ出力する代替処理部１３と、を備える。【選択図】図１
2016116102.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成するプロトコル部と、
前記プロトコルデータの送受信処理を実行する通信部と、
前記プロトコル部における動作が停止している状態において、前記プロトコル部の代わりに前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力する代替処理部と、を備える通信装置。
【請求項２】
前記プロトコル部における動作を停止する際に、前記プロトコルデータに関する処理を前記プロトコル部から前記代替処理部へ切り替え、前記プロトコル部を動作させる際に、前記プロトコルデータに関する処理を前記代替処理部から前記プロトコル部へ切り替える切替制御部をさらに備える、請求項１に記載の通信装置。
【請求項３】
前記代替処理部は、
前記プロトコル部において前記プロトコルデータを生成するために用いられるデータ生成情報を保持する設定情報保持部と、
前記設定情報保持部に保持されている前記データ生成情報を用いて前記プロトコルデータを生成するデータ生成部と、を有する請求項１又は２に記載の通信装置。
【請求項４】
前記プロトコル部における動作が停止している状態において
前記代替処理部は、
前記通信部において受信した前記プロトコルデータが、前記プロトコル部が動作している際に受信した正常なプロトコルデータと一致していないと判定した場合、前記通信部を停止させる解析部を有する、請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
動作を停止している前記プロトコル部の動作を再開させる場合、
前記代替処理部は、
前記通信部を停止させる処理を実行したか否かを示す情報を前記プロトコル部へ出力する、請求項４に記載の通信装置。
【請求項６】
前記通信部は、
前記プロトコル部の動作を停止させた場合においても動作を継続することができるハードウェアに搭載されている、請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
前記プロトコル部が再起動している状態において、
前記代替処理部は、
再起動することなく前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力する、請求項１乃至６のいずれか１項に記載の通信装置。
【請求項８】
ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成するプロトコル部と、前記プロトコルデータの送受信処理を実行する通信部とを有する通信装置において実行されるデータ処理方法であって、
前記プロトコル部における動作が停止している際に、前記プロトコル部の動作を停止させた場合であっても動作を継続することができるハードウェアにおいて、前記プロトコル部の代わりに前記プロトコルデータを生成し、
生成した前記プロトコルデータを前記通信部へ出力する、データ送信方法。
【請求項９】
前記プロトコル部における動作を停止させることを示す情報を受け取った後に、前記ハードウェアにおいて、前記プロトコル部の代わりに前記プロトコルデータを生成する、請求項８に記載のデータ送信方法。
【請求項１０】
前記プロトコルデータを生成する際に、前記プロトコル部において前記プロトコルデータを生成するために用いられるデータ生成情報を用いて前記プロトコルデータを生成する、請求項８又は９に記載のデータ送信方法。
【請求項１１】
ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを受信する通信部と、前記プロトコルデータを解析するプロトコル部とを有する通信装置において実行されるデータ受信方法であって、
前記プロトコル部における動作が停止している際に、前記プロトコル部の動作を停止させた場合であっても動作を継続することができるハードウェアにおいて、前記プロトコル部の代わりに、前記通信部において受信した前記プロトコルデータが、前記プロトコル部が動作している際に受信した正常なプロトコルデータと一致しているか否かを判定し、
受信した前記プロトコルデータが、前記正常なプロトコルデータと一致していないと判定した場合、前記通信部を停止させるデータ受信方法。
【請求項１２】
動作を停止している前記プロトコル部の動作を再開させる場合、
前記通信部を停止させる処理を実行したか否かを示す情報を前記プロトコル部へ出力する、請求項１１に記載のデータ受信方法。
【請求項１３】
ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを送信する第１の通信装置と、
前記第１の通信装置から送信された前記プロトコルデータを受信し、他の通信装置へ前記プロトコルデータを送信する第２の通信装置と、を備える通信システムであって、
前記第２の通信装置は、
前記他の通信装置へ送信する前記プロトコルデータを生成するプロトコル部と、前記プロトコルデータの送受信処理を実行する通信部と、前記プロトコル部における動作が停止している状態において、前記プロトコル部の代わりに前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力する代替処理部と、を有する通信システム。
【請求項１４】
ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成するプロトコル部と、前記プロトコルデータの送受信処理を実行する通信部と、を有するコンピュータに実行させるプログラムであって、
前記プロトコル部における動作を停止する際に、前記プロトコルデータに関する処理を前記プロトコル部から、前記プロトコル部の代わりに前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力する代替処理部へ切り替えることをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置、データ送信方法、データ受信方法、通信システム及びプログラムに関し、例えばループ回避プロトコルを用いる通信装置、データ送信方法、データ受信方法、通信システム及びプログラムに関する。
【背景技術】
【０００２】
複数の通信装置を用いてネットワークを構成する場合、ループ形状の通信経路が形成されることがある。ループ形状の通信経路においてデータが送受信されると、ネットワークにおいて大量のデータが送受信されることとなり、ネットワークが輻輳する。そのため、一般的に、データがループ形状の通信経路において送受信されることを回避するためにループ回避プロトコルが用いられる。ループ回避プロトコルには、例えば、スパニングツリープロトコル（Spanning Tree Protocol：ＳＴＰ）、Ｒａｐｉｄ ＳＴＰ（ＲＳＴＰ）及び仮想ＬＡＮを考慮したＭｕｌｔｉｐｌｅ ＳＴＰ（ＭＳＴＰ）等がある。ＭＳＴＰは、ＩＥＥＥ８０２．１Ｑにおいて定義されている。以下の記載においては、ＳＴＰ、ＲＳＴＰ及びＭＳＴＰの総称として、ｘＳＴＰを用いる。
【０００３】
ｘＳＴＰは、一般的にアプリケーションソフトウェアとして通信装置に実装される。そのため、通信装置のアプリケーションソフトウェアをリセットもしくは再起動等すると、隣接する装置に対して、ｘＳＴＰデータを送信することができなくなる。この場合、隣接する装置は、アプリケーションソフトウェアが再起動等された通信装置に障害が発生したと判断し、トポロジの再構築が行われることとなる。トポロジの再構築が行われると、一定時間ネットワークにおける通信が中断してしまう。
【０００４】
特許文献１には、隣接する装置は、疑似的にｘＳＴＰデータを生成することによって、ｘＳＴＰを動作させるアプリケーションソフトウェアを再起動等した通信装置からｘＳＴＰデータを受信した場合と同様の処理を行うことが記載されている。これによって、アプリケーションソフトウェアの再起動等により通信装置からｘＳＴＰデータが送信されてこない場合であっても、隣接する装置は、アプリケーションソフトウェアが再起動等された通信装置に障害が発生したと判断しなくなる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１６００００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載されている動作を行う場合、ソフトウェアを再起動等する通信装置と接続しているすべての装置において、疑似的にｘＳＴＰデータを生成する機能を搭載する必要がある。そのため、複数の通信装置を、疑似的にｘＳＴＰデータを生成する機能を有する通信装置に置き換える、もしくは、複数の通信装置に対して疑似的にｘＳＴＰデータを生成する機能を搭載させるためのバージョンアップ作業等を行う必要があり、ネットワーク管理者等の負担が増大するという問題がある。
【０００７】
本発明の目的は、ルート回避プロトコルを含むソフトウェアを再起動等した場合に、ネットワーク管理者等の負担を大きく増大させることなく、通信の中断を回避することができる通信装置、データ送信方法、データ受信方法、通信システム及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の態様にかかる通信装置は、ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成するプロトコル部と、前記プロトコルデータの送受信処理を実行する通信部と、前記プロトコル部における動作が停止している状態において、前記プロトコル部の代わりに前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力する代替処理部と、を備えるものである。
【０００９】
本発明の第２の態様にかかるデータ送信方法は、ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成するプロトコル部と、前記プロトコルデータの送受信処理を実行する通信部とを有する通信装置において実行されるデータ処理方法であって、前記プロトコル部における動作が停止している際に、前記プロトコル部の動作を停止させた場合であっても動作を継続することができるハードウェアにおいて、前記プロトコル部の代わりに前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力するものである。
【００１０】
本発明の第３の態様にかかるデータ受信方法は、ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを受信する通信部と、前記プロトコルデータを解析するプロトコル部とを有する通信装置において実行されるデータ受信方法であって、前記プロトコル部における動作が停止している際に、前記プロトコル部の動作を停止させた場合であっても動作を継続することができるハードウェアにおいて、前記プロトコル部の代わりに、前記通信部において受信した前記プロトコルデータが、前記プロトコル部が動作している際に受信した正常なプロトコルデータと一致しているか否かを判定し、受信した前記プロトコルデータが、前記正常なプロトコルデータと一致していないと判定した場合、前記通信部を停止させるものである。
【００１１】
本発明の第４の態様にかかる通信システムは、ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを送信する第１の通信装置と、前記第１の通信装置から送信された前記プロトコルデータを受信し、他の通信装置へ前記プロトコルデータを送信する第２の通信装置と、を備える通信システムであって、前記第２の通信装置は、前記他の通信装置へ送信する前記プロトコルデータを生成するプロトコル部と、前記プロトコルデータの送受信処理を実行する通信部と、前記プロトコル部における動作が停止している状態において、前記プロトコル部の代わりに前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力する代替処理部と、を有するものである。
【００１２】
本発明の第５の態様にかかるプログラムは、ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成するプロトコル部と、前記プロトコルデータの送受信処理を実行する通信部と、を有するコンピュータに実行させるプログラムであって、前記プロトコル部における動作を停止する際に、前記プロトコルデータに関する処理を前記プロトコル部から、前記プロトコル部の代わりに前記プロトコルデータを生成し、生成した前記プロトコルデータを前記通信部へ出力する代替処理部へ切り替えることをコンピュータに実行させるものである。
【発明の効果】
【００１３】
本発明により、ルート回避プロトコルを含むソフトウェアを再起動等した場合に、ネットワーク管理者等の負担を大きく増大させることなく、通信の中断を回避することができる通信装置、データ送信方法、データ受信方法、通信システム及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかる通信装置の構成図である。
【図２】実施の形態２にかかる通信装置のハードウェア及びソフトウェアの構成の図である。
【図３】実施の形態２にかかるアプリケーションソフトウェアの構成図である。
【図４】実施の形態２にかかる外部通信装置の構成の図である。
【図５】実施の形態２にかかるソフトウェアアプリケーション停止時の処理の流れを示す図である。
【図６】実施の形態２にかかるソフトウェアアプリケーション起動時の処理の流れを示す図である。
【図７】実施の形態２にかかるフレーム受信部における受信処理の流れを示す図である。
【図８】実施の形態２にかかるプロトコル簡易解析部における解析処理の流れを示す図である。
【図９】実施の形態２にかかるフレーム作成部におけるＢＰＤＵ作成処理の流れを示す図である。
【図１０】実施の形態２にかかる通信装置が代替処理部を用いてＳＴＰ動作を行う際のネットワークについて説明する図である。
【図１１】実施の形態２にかかる通信装置が代替処理部を用いてＳＴＰ動作を行う際のネットワークについて説明する図である。
【発明を実施するための形態】
【００１５】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。はじめに、図１を用いて通信装置１０の構成例について説明する。通信装置１０は、プロトコル部１１、通信部１２及び代替処理部１３を有している。
【００１６】
プロトコル部１１は、ネットワークに発生するループを回避するループ回避プロトコルにおいて用いられるプロトコルデータを生成する。プロトコル部１１は、例えば、通信装置１０に搭載されるアプリケーションソフトウェアとして動作してもよい。
【００１７】
ループ回避プロトコルは、例えば、スパニングツリープロトコル（Spanning Tree Protocol：ＳＴＰ）、Ｒａｐｉｄ ＳＴＰ（ＲＳＴＰ）及び仮想ＬＡＮを考慮したＭｕｌｔｉｐｌｅ ＳＴＰ（ＭＳＴＰ）等がある。以下の記載においては、ＳＴＰ、ＲＳＴＰ及びＭＳＴＰの総称として、ｘＳＴＰを用いる。
【００１８】
プロトコルデータは、例えば、ｘＳＴＰにおいて用いられるＢＰＤＵ（Bridge Protocol Data Unit）であってもよい。ＢＰＤＵは、装置間において通信される制御フレームとして用いられる。ＢＰＤＵは、例えば、ルートブリッジのＩＤ及びルートブリッジへのパスコスト等を含んでもよい。通信装置１０は、他の通信装置から定期的にＢＰＤＵが送信されてこない場合、他の通信装置に障害が発生したと判定する。また、他の通信装置は、通信装置１０から定期的にＢＰＤＵが送信されてこない場合、通信装置１０に障害が発生したと判定する。
【００１９】
通信部１２は、プロトコルデータの送受信処理を実行する。通信部１２には、例えば、通信装置１０を構成するハードウェアの一部として、ＦＰＧＡ（Field Programmable Gate Array）もしくはチップセットが用いられてもよい。通信部１２は、隣接する通信装置との間において、プロトコルデータを送受信するインタフェースとして用いられる。
【００２０】
代替処理部１３は、プロトコル部１１の動作が停止している状態において、プロトコル部１１の代わりにプロトコルデータを生成する。さらに、代替処理部１３は、生成したプロトコルデータを通信部１２へ出力する。
【００２１】
プロトコル部１１の動作が停止している状態とは、例えば、アプリケーションソフトウェアをリセットもしくは再起動した場合に発生する状態であってもよい。言い換えると、プロトコル部１１の動作が停止している状態とは、アプリケーションソフトウェアをリセットした後、アプリケーションソフトウェアのリセットを解除するまでの間、もしくは、アプリケーションソフトウェアの再起動処理を実行後、アプリケーションソフトウェアが起動するまでの間の状態であってもよい。
【００２２】
また、アプリケーションソフトウェアが再起動等して、プロトコル部１１の動作が停止した場合においても、通信部１２の動作は停止しないとする。通信部１２は、ソフトウェアの再起動等による影響が及ばないＦＰＧＡ等によって動作する。そのため、通信部１２は、アプリケーションソフトウェアが停止している状態においても、プロトコルデータの送受信処理を継続することができる。
【００２３】
例えば、代替処理部１３も、通信部１２と同様に、ソフトウェアの再起動等による影響が及ばないＦＰＧＡ等によって動作する。そのため、代替処理部１３は、プロトコル部１１の動作が停止している状態において、プロトコル部１１の代わりにプロトコルデータを生成することができる。言い換えると、ソフトウェアが再起動した場合であっても、代替処理部１３は再起動することなく、プロトコルデータを生成することができる。また、代替処理部１３がプロトコルデータを通信部１２へ出力することによって、通信部１２は、プロトコルデータを他の通信装置へ送信することができる。
【００２４】
以上説明したように、図１の通信装置１０は、代替処理部１３を有する。これにより、プロトコル部１１がアプリケーションソフトウェアの再起動等により動作が停止した場合であっても、通信部１２は、代替処理部１３において生成されたプロトコルデータを他の通信装置へ送信することができる。
【００２５】
他の通信装置は、通信装置１０のアプリケーションソフトウェアの動作が停止している場合においても、通信装置１０からプロトコルデータを受信することができる。そのため、他の通信装置は、通信装置１０のアプリケーションソフトウェアの動作が停止している場合であっても、通信装置１０に障害が発生していると判断することがなくなる。
【００２６】
また、代替処理部１３における機能は、アプリケーションソフトウェアを再起動等する通信装置に搭載されればよい。つまり、アプリケーションソフトウェアを再起動する通信装置１０の周辺の通信装置には、代替処理部１３における機能を搭載する必要はない。そのため、ネットワークの管理者は、ネットワーク上の全ての通信装置に、代替処理部１３における機能を搭載させるための作業を行う必要はなく、ネットワーク上の一部の通信装置に、代替処理部１３における機能を搭載させるための作業を実施すればよい。これにより、ネットワーク上の全ての通信装置に、代替処理部１３における機能を搭載させる場合と比較して、ネットワーク管理者の負担を軽減することができる。
【００２７】
（実施の形態２）
続いて、図２を用いて通信装置１０のハードウェア及びソフトウェアの構成について説明する。通信装置１０は、アプリケーションソフトウェア２０、ＯＳ（Operating System）３０、ハードウェア４０及び外部通信装置５０を有している。アプリケーションソフトウェア２０は、図１のプロトコル部１１を含む。また、外部通信装置５０は、図１の通信部１２及び代替処理部１３を含む。
【００２８】
ハードウェア４０は、ＣＰＵ(Central Processing Unit)及びメモリを有している。ＣＰＵが、メモリに格納されているプログラムを実行することによって、アプリケーションソフトウェア２０において提供される機能が動作する。また、ハードウェア４０は、ＣＰＵ及びメモリ等が動作するために必要な電力を供給する電源を有している。
【００２９】
ＯＳ３０は、アプリケーションソフトウェア２０がハードウェア４０にアクセスするために必要なインタフェースを提供する。さらに、ＯＳ３０は、ＣＰＵ及びメモリ等のハードウェア資源を管理して、複数のアプリケーションソフトウェアにおけるハードウェア資源の使用を制御する。
【００３０】
外部通信装置５０は、アプリケーションソフトウェア２０もしくはＯＳ３０が停止している状態においても動作することができる、ＦＰＧＡもしくはチップセット等であってもよい。また、外部通信装置５０は、ハードウェア４０における電源とは異なる電源を有してもよい。つまり、外部通信装置５０は、ハードウェア４０に電源を供給する電源とは別の電源を有してもよい。これによって、外部通信装置５０は、ハードウェア４０と独立して動作することができる。
【００３１】
続いて、図３を用いて、アプリケーションソフトウェア２０の構成例について説明する。アプリケーションソフトウェア２０は、ユーザインタフェース２１、切り替え制御部２２及びプロトコル部２３を有している。
【００３２】
ユーザインタフェース２１は、通信装置１０を操作するユーザが、情報の入力等を容易に行うために提供されるインタフェースである。例えば、ユーザインタフェース２１は、プロトコル部２３の再起動を指示する情報の入力を受け付けてもよい。ユーザインタフェース２１は、プロトコル部２３の再起動を指示する情報を受け取った場合、再起動を指示する情報を切り替え制御部２２へ出力する。
【００３３】
切り替え制御部２２は、ｘＳＴＰにおけるプロトコルデータに関する処理を、プロトコル部２３と代替処理部１３との間において切り替える制御を実行する。例えば、切り替え制御部２２は、ユーザインタフェース２１から、プロトコル部２３の再起動を指示する情報を受け取った場合、ｘＳＴＰにおけるプロトコルデータに関する処理をプロトコル部２３から代替処理部１３へ切り替える。ｘＳＴＰにおけるプロトコルデータに関する処理は、例えば、ＢＰＤＵの受信処理、受信したＢＰＤＵの解析処理、ＢＰＤＵの生成処理もしくは生成したＢＰＤＵの送信処理等であってもよい。
【００３４】
プロトコル部２３は、ｘＳＴＰの動作に必要なＢＰＤＵを受け取る。ＢＰＤＵは他の通信装置から送信され、外部通信装置５０は送信されたＢＰＤＵを受信する。プロトコル部２３は、外部通信装置５０から出力されたＢＰＤＵを受け取る。また、プロトコル部２３は、ＢＰＤＵを解析し、通信ポート状態を転送可能（Forwarding）もしくは無効（Disable）等に設定する。さらに、プロトコル部２３は、ＢＰＤＵを生成する。プロトコル部２３は、生成したＢＰＤＵを、外部通信装置５０を介して他の通信装置へ送信する。
【００３５】
また、プロトコル部２３は、切り替え制御部２２によって、ｘＳＴＰにおけるプロトコルデータに関する処理が代替処理部１３に切り替えられることを通知された場合、ｘＳＴＰ動作に必要な情報を代替処理部１３へ出力する。ｘＳＴＰ動作に必要な情報は、例えば、各ポートにおいて送信もしくは受信されていたＢＰＤＵに関する情報である。正常にｘＳＴＰが動作している場合、通信装置１０は、他の通信装置から定期的に同じＢＰＤＵを受信する。さらに、通信装置１０は、定期的に他の装置へ同じＢＰＤＵを送信する。そのため、代替処理部１３は、プロトコル部２３において送信もしくは受信していたＢＰＤＵに関する情報を受け取ることによって、プロトコル部２３における動作の一部を代替することができる。
【００３６】
続いて、図４を用いて本発明の実施の形態２にかかる外部通信装置５０の構成例について説明する。外部通信装置５０は、設定情報記憶部５１、フレーム受信部５２、プロトコル簡易解析部５３、フレーム作成部５４、フレーム送信部５５及び通信制御部５６を有している。設定情報記憶部５１、プロトコル簡易解析部５３、フレーム作成部５４及び通信制御部５６は、図１の代替処理部１３に相当する。フレーム受信部５２及びフレーム送信部５５は、図１の通信部１２に相当する。
【００３７】
設定情報記憶部５１は、アプリケーションソフトウェア２０から出力されたｘＳＴＰ動作に必要な情報を保持する。例えば、設定情報記憶部５１は、ｘＳＴＰにおけるプロトコルデータに関する処理が代替処理部１３に切り替えられる前に、プロトコル部２３が受信及び送信していたＢＰＤＵに関する情報を取得する。さらに、設定情報記憶部５１は、プロトコル部２３が受信及び送信していたＢＰＤＵに関する情報を保持すると、簡易プロトコル維持設定を有効にすることを示す情報を保持する。簡易プロトコル維持設定は、代替処理部１３において、ｘＳＴＰにおけるプロトコルデータに関する処理を実行するための設定である。ここでは、簡易プロトコル維持設定は、例えば、プロトコル部２３が受信及び送信していたＢＰＤＵに関する情報を保持したことを示す情報であってもよい。
【００３８】
フレーム受信部５２は、他の通信装置から送信されたデータを受信する。他の通信装置から送信されたデータは、例えば、ｘＳＴＰの動作に必要なＢＰＤＵ、及び、画像データもしくは音声データ等のユーザデータであってもよい。
【００３９】
フレーム受信部５２は、ｘＳＴＰにおけるプロトコルデータに関する処理が代替処理部１３に切り替わっている場合、受信したＢＰＤＵをプロトコル簡易解析部５３へ出力し、ｘＳＴＰにおけるプロトコルデータに関する処理がプロトコル部２３である場合、受信したＢＰＤＵをプロトコル部２３へ出力する。もしくは、フレーム受信部５２は、ｘＳＴＰにおけるプロトコルデータに関する処理をプロトコル部２３及び代替処理部１３のどちらが実行するかにかかわらず、受信したＢＰＤＵをプロトコル部２３及びプロトコル簡易解析部５３に出力してもよい。フレーム受信部５２は、例えば、データを受信するインタフェースとして用いられるポートであってもよい。また、フレーム受信部５２は、複数のポートを有していてもよい。
【００４０】
プロトコル簡易解析部５３は、フレーム受信部５２から出力されたＢＰＤＵを解析する。具体的には、プロトコル簡易解析部５３は、フレーム受信部５２から出力されたＢＰＤＵが、設定情報記憶部５１に格納されているＢＰＤＵと一致するか否かを確認する。プロトコル簡易解析部５３が、フレーム受信部５２から出力されたＢＰＤＵと比較するＢＰＤＵは、プロトコル部２３が受信していたＢＰＤＵである。
【００４１】
通常、ｘＳＴＰの動作においては、ネットワークに障害等が発生せず、トポロジの再構築等が実施されない場合、通信装置１０は、他の通信装置へ定期的に同じＢＰＤＵを送信する。言い換えると、ネットワークに障害等が発生していない場合、通信装置１０は、他の通信装置から定期的に同じＢＰＤＵを受信する。そのため、プロトコル簡易解析部５３は、フレーム受信部５２から出力されたＢＰＤＵが、設定情報記憶部５１に保持されているＢＰＤＵと同じであると判定した場合、ネットワークに障害等が発生していないと判定することができる。
【００４２】
一方、プロトコル簡易解析部５３は、フレーム受信部５２から出力されたＢＰＤＵと、設定情報記憶部５１に保持されているＢＰＤＵが同じではない、つまり、一致しないと判定した場合、ネットワークに障害等が発生していると判定する。ネットワークに障害等が発生した場合、障害を検出した通信装置は、障害を通知もしくはトポロジの再構築を行うことを示すＢＰＤＵを他の通信装置へ送信する。言い換えると、障害を検出した通信装置は、今までに送信していたＢＰＤＵと異なるＢＰＤＵを送信する。そのため、プロトコル簡易解析部５３は、今までと異なるＢＰＤＵを受信した場合、ネットワークに障害等が発生していると判定することができる。また、プロトコル簡易解析部５３は、プロトコル指定のタイムアウト時間以上ＢＰＤＵを受信しない場合も、ネットワークに障害等が発生していると判定する。プロトコル指定のタイムアウト時間は、例えば、スパニングツリープロトコルにおいては、Ｈｅｌｌｏタイマ×３回、等と定められていてもよい。
【００４３】
プロトコル簡易解析部５３は、フレーム受信部５２から出力されたＢＰＤＵと、設定情報記憶部５１に保持されているＢＰＤＵとが一致しないと判定した場合、判定結果を設定情報記憶部５１及び通信制御部５６へ出力する。また、プロトコル簡易解析部５３は、プロトコル指定のタイムアウト時間以上ＢＰＤＵを受信しない場合も、判定結果を設定情報記憶部５１及び通信制御部５６へ出力する。設定情報記憶部５１は、プロトコル簡易解析部５３から、フレーム受信部５２から出力されたＢＰＤＵと、設定情報記憶部５１に保持されているＢＰＤＵとが一致しないとする判定結果を受け取った場合、簡易プロトコル設定情報を無効にする。
【００４４】
フレーム作成部５４は、設定情報記憶部５１に保持されているＢＰＤＵと同じＢＰＤＵを生成する。フレーム作成部５４は、生成したＢＰＤＵをフレーム送信部５５へ出力する。また、フレーム作成部５４は、フレーム送信部５５が複数のポートを有する場合、ポートごとにＢＰＤＵを生成する。
【００４５】
フレーム送信部５５は、他の通信装置へデータを送信する。例えば、フレーム送信部５５は、フレーム作成部５４から出力されたＢＰＤＵを他の通信装置へ送信する。また、フレーム送信部５５は、画像データもしくは音声データ等のユーザデータを他の通信装置へ送信してもよい。フレーム送信部５５は、例えば、データを送信するインタフェースとして用いられるポートであってもよい。また、フレーム送信部５５は、複数のポートを有していてもよい。
【００４６】
通信制御部５６は、フレーム受信部５２及びフレーム送信部５５における通信状態を制御する。例えば、フレーム受信部５２及びフレーム送信部５５がポートである場合について説明する。通信制御部５６は、それぞれのポートを転送可能（Forwarding）、Learningもしくは無効（Disable）に設定する。もしくは、通信制御部５６は、それぞれのポートについてLinkdownもしくはLinkupを設定する。Forwarding、Learning及びDisableは、ｘＳＴＰの動作において遷移するポートの状態である。Linkdownは、ポートを使用することができない状態であり、Linkupは、ポートを使用することができる状態であることを示している。
【００４７】
通信制御部５６は、プロトコル簡易解析部５３から、フレーム受信部５２から出力されたＢＰＤＵと、設定情報記憶部５１に保持されているＢＰＤＵとが一致しないとする判定結果を受け取った場合、フレーム受信部５２及びフレーム送信部５５における全てのポートをLinkdownさせる。フレーム受信部５２から出力されたＢＰＤＵと、設定情報記憶部５１に保持されているＢＰＤＵとが一致しないと判定された場合、ネットワークに障害が起きていると推定される。この場合、ｘＳＴＰにおける通常の動作を行う場合、トポロジーの再構築に伴う処理等を実行する必要がある。しかし、代替処理部１３は、ネットワークに障害が発生していない場合における通常の処理を、プロトコル部２３の代わりに実行する。そのため、通信制御部５６は、ネットワークに障害が発生した場合には、通信装置１０をネットワークから切り離すために、フレーム受信部５２及びフレーム送信部５５を通信することができない状態に設定する。
【００４８】
ｘＳＴＰにおけるプロトコルデータに関する処理が、プロトコル部２３に切り替わった場合、プロトコル部２３がｘＳＴＰの全ての動作を実行することができる。この場合、通信制御部５６は、フレーム受信部５２及びフレーム送信部５５をLinkupさせ、通信装置１０をネットワークに追加するようにしてもよい。
【００４９】
続いて、図５を用いて本発明の実施の形態２にかかる切り替え制御部２２及びプロトコル部２３におけるソフトウェアアプリケーション停止時の処理の流れについて説明する。はじめに、切り替え制御部２２は、ユーザインタフェース２１を介してソフトウェアアプリケーションの再起動要求を受け付ける（Ｓ１１）。次に、切り替え制御部２２は、プロトコル部２３へ切替指示メッセージを出力する（Ｓ１２）。切替指示メッセージは、ｘＳＴＰにおけるプロトコルデータに関する処理を、プロトコル部２３から代替処理部１３へ切り替えることを指示するメッセージである。
【００５０】
次に、プロトコル部２３は、プロトコルデータを設定情報記憶部５１へ出力する（Ｓ１３）。具体的に、プロトコルデータは、プロトコル部２３において受信していたＢＰＤＵ及びプロトコル部２３において生成していたＢＰＤＵ等である。また、複数のポートにおいて、ＢＰＤＵの受信及び送信を行っていた場合、プロトコルデータは、ポートごとに送信及び受信していたＢＰＤＵであってもよい。
【００５１】
次に、プロトコル部２３は、設定情報記憶部５１における簡易プロトコル維持設定を有効化する（Ｓ１４）。言い換えると、プロトコル部２３は、設定情報記憶部５１における簡易プロトコル維持設定を有効化することを指示するメッセージを設定情報記憶部５１へ出力する。次に、プロトコル部２３は、ＢＰＤＵの送信を停止する（Ｓ１５）。つまり、プロトコル部２３は、ＢＰＤＵの生成を停止することによって、フレーム送信部５５を介したＢＰＤＵの送信を停止する。
【００５２】
続いて、図６を用いて本発明の実施の形態２にかかるプロトコル部２３におけるソフトウェアアプリケーション起動時の処理の流れについて説明する。はじめに、再起動もしくはリセット処理等によって、停止していたアプリケーションソフトウェアが起動される（Ｓ２１）。アプリケーションソフトウェアが起動されると、プロトコル部２３も起動し、動作可能な状態となる。
【００５３】
次に、プロトコル部２３は、設定情報記憶部５１に保持されている簡易プロトコル維持設定が有効であるか否かを判定する（Ｓ２２）。プロトコル部２３は、簡易プロトコル維持設定が有効であると判定すると、プロトコル状態を復元する（Ｓ２３）。プロトコル状態を復元するとは、代替処理部１３において送受信していたＢＰＤＵを、プロトコル部２３においても送受信することができるようにすることである。ステップＳ２２において、簡易プロトコル維持設定が有効である場合、ネットワークに障害等が発生していない状態において、代替処理部１３が動作していたことを示す。そのため、プロトコル部２３は、代替処理部１３における動作を引き続き継続するために、プロトコル状態を復元する。
【００５４】
次に、プロトコル部２３は、設定情報記憶部５１に保持されている簡易プロトコル維持設定を無効化する（Ｓ２４）。
【００５５】
ステップＳ２２において、プロトコル部２３は、簡易プロトコル維持設定が無効であると判定すると、初期状態からプロトコル動作を実行する（Ｓ２５）。初期状態からプロトコル動作を実行するとは、通信装置１０をネットワークに接続し、ルートポート及びブロッキングポート等を決定する動作である。簡易プロトコル維持設定が無効である場合、フレーム受信部５２及びフレーム送信部５５は、Linkdownの状態となり、ネットワークから切り離された状態である。そのため、プロトコル部２３は、初期状態からプロトコル動作を実行する必要がある。
【００５６】
続いて、図７を用いて本発明の実施の形態２にかかるフレーム受信部５２における受信処理の流れについて説明する。はじめに、フレーム受信部５２は、他の通信装置から送信されたＢＰＤＵを受信する（Ｓ３１）。次に、フレーム受信部５２は、設定情報記憶部５１に保持されている簡易プロトコル維持設定が有効であるか否かを判定する（Ｓ３２）。
【００５７】
フレーム受信部５２は、簡易プロトコル維持設定が有効であると判定した場合、プロトコル簡易解析部５３へＢＰＤＵを出力する（Ｓ３３）。フレーム受信部５２は、簡易プロトコル維持設定が無効であると判定した場合、プロトコル部２３へＢＰＤＵを出力する（Ｓ３４）。
【００５８】
もしくは、フレーム受信部５２は、ステップＳ３２における簡易プロトコル維持設定が有効であるか否かの判定をしない場合、プロトコル簡易解析部５３及びプロトコル部２３へＢＰＤＵを出力してもよい。
【００５９】
続いて、図８を用いて本発明の実施の形態２にかかるプロトコル簡易解析部５３における解析処理の流れについて説明する。はじめに、プロトコル簡易解析部５３は、フレーム受信部５２から出力されたＢＰＤＵを受け取る（Ｓ４１）。
【００６０】
次に、プロトコル簡易解析部５３は、受け取ったＢＰＤＵが、設定情報記憶部５１に保持されているＢＰＤＵと同一であるか否かを判定する（Ｓ４２）。プロトコル簡易解析部５３は、受け取ったＢＰＤＵが、設定情報記憶部５１に保持されているＢＰＤＵと同一であると判定した場合、処理を終了する。
【００６１】
プロトコル簡易解析部５３は、受け取ったＢＰＤＵが、設定情報記憶部５１に保持されているＢＰＤＵと同一ではないと判定した場合、判定結果を通信制御部５６へ出力する。つまり、プロトコル簡易解析部５３は、フレーム受信部５２及びフレーム送信部５５における有効ポートをLinkdownさせるように制御する（Ｓ４３）。有効ポートとは、他の通信装置とＢＰＤＵを送受信しているポートである。
【００６２】
次に、プロトコル簡易解析部５３は、設定情報記憶部５１に保持されている簡易プロトコル維持設定を無効化する（Ｓ４４）。また、プロトコル簡易解析部５３は、ステップＳ４１において、プロトコル指定のタイムアウト時間以上ＢＰＤＵを受信しない場合、ネットワークに障害が発生しているとの判定結果を通信制御部５６へ出力してもよい。
【００６３】
続いて、図９を用いて本発明の実施の形態２にかかるフレーム作成部５４におけるＢＰＤＵ作成処理の流れについて説明する。はじめに、フレーム作成部５４は、ｘＳＴＰにおいて定められているＢＰＤＵの送信タイミングであることを検知する（Ｓ５１）。次に、フレーム作成部５４は、設定情報記憶部５１に保持されている簡易プロトコル維持設定が有効であるか否かを判定する（Ｓ５２）。フレーム作成部５４は、簡易プロトコル維持設定が無効であると判定した場合、処理を終了する。
【００６４】
フレーム作成部５４は、簡易プロトコル維持設定が有効であると判定した場合、ＢＰＤＵを作成する（Ｓ５３）。フレーム作成部５４が作成するＢＰＤＵは、プロトコル部２３が送信していたＢＰＤＵと同一のＢＰＤＵである。次に、フレーム作成部５４は、作成したＢＰＤＵをフレーム送信部５５へ出力する（Ｓ５４）。フレーム送信部５５は、受け取ったＢＰＤＵを他の通信装置へ送信する。
【００６５】
続いて、図１０を用いて、通信装置１０が代替処理部１３を用いてＳＴＰ動作を行う際のネットワークについて説明する。図１０のネットワークは、通信装置１０及び通信装置１００〜１４０を有している。図１０においては、通信装置１０は、代替処理部１３を有し、通信装置１００〜１４０は、代替処理部１３を有していないとする。それぞれの通信装置におけるｐ１、ｐ２及びｐ３は、通信装置におけるポートの名称を示している。例えば、通信装置１０は、ｐ１を用いて、通信装置１００と通信を行っている。
【００６６】
図１０のネットワークにおいては、通信装置１００をルートブリッジとする。この場合、通信装置１０のｐ１は、rootポートとなり、通信装置１０のｐ２及びｐ３は、designatedポートとなる。さらに、通信装置１３０のｐ２及び通信装置１４０のｐ２は、Blocking状態となる。その他のポートは、Forwarding状態となる。
【００６７】
図１０のネットワークにおいて、障害等発生していない場合、ＳＴＰにおけるプロトコルデータに関する処理を通信装置１０のプロトコル部２３が実施しても、通信装置１０の代替処理部１３が実施しても、通常通りデータ転送を行うことができる。
【００６８】
続いて、図１１を用いて、通信装置１０がｐ１、ｐ２及びｐ３をLinkdownする場合の動作について説明する。図１１においては、通信装置１０の代替処理部１３が動作している際に、通信装置１００が、通信装置１０へＴＣ（Topology Change）フラグが設定されたＢＰＤＵを送信する。ＴＣフラグは、例えば、ネットワーク内において障害が発生し、トポロジの再構築を行う際に設定される。通信装置１０のプロトコル簡易解析部５３は、ＴＣフラグが設定されたＢＰＤＵは、プロトコル部２３が受信していたＢＰＤＵと異なると判定する。この場合、通信装置１０は、ｐ１、ｐ２及びｐ３をLinkdown状態とする。
【００６９】
通信装置１０は、ｐ１、ｐ２及びｐ３をLinkdown状態とすることによって、ネットワークから切り離された状態となる。
【００７０】
以上説明したように、通信装置１０は、アプリケーションソフトウェアをリセットもしくは再起動する際に、代替処理部１３をもちいてｘＳＴＰ動作を継続することができる。そのため、通信装置１０の周囲の通信装置は、通信装置１０からＢＰＤＵを受信することができるため、トポロジの再構築に伴う通信の中断を発生させることが無い。
【００７１】
また、代替処理部１３を用いてｘＳＴＰ動作を継続している際に、ネットワークに障害が発生すると、通信装置１０の全てのポートをLinkdown状態とすることによって、通信装置１０をネットワークから切り離した状態とすることができる。代替処理部１３は、プロトコル部２３における全ての機能を代替するのではなく、ネットワークに障害が発生していない通常時の動作を継続させるための機能を代替することを前提としている。そのため、ネットワークに障害が発生している状態において、代替処理部１３が動作している通信装置１０を通信可能状態とすると、ネットワークにおけるｘＳＴＰ動作が正常に実施されない可能性がある。そのため、ネットワークに障害が発生している状態においては、代替処理部１３を用いてｘＳＴＰ動作を継続している通信装置１０をネットワークから切り離すことによって、ネットワークにおいて正常にｘＳＴＰ動作を実現させることができる。
【００７２】
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明はアプリケーションソフトウェアにおける処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。）
【００７３】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７５】
１０  通信装置
１１  プロトコル部
１２  通信部
１３  代替処理部
２０  アプリケーションソフトウェア
２１  ユーザインタフェース
２２  切り替え制御部
２３  プロトコル部
３０  ＯＳ
４０  ハードウェア
５０  外部通信装置
５１  設定情報記憶部
５２  フレーム受信部
５３  プロトコル簡易解析部
５４  フレーム作成部
５５  フレーム送信部
５６  通信制御部
１００〜１４０  通信装置
【図１】
2016116102.tif 000003
【図２】
2016116102.tif 000004
【図３】
2016116102.tif 000005
【図４】
2016116102.tif 000006
【図５】
2016116102.tif 000007
【図６】
2016116102.tif 000008
【図７】
2016116102.tif 000009
【図８】
2016116102.tif 000010
【図９】
2016116102.tif 000011
【図１０】
2016116102.tif 000012
【図１１】
2016116102.tif 000013