(57)【要約】【課題】不具合の判定の精度を向上することができる技術を提供する。【解決手段】実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第１閾値を超えて、実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する。【選択図】  図３
2013017079.tif 000002
【特許請求の範囲】
【請求項１】
判定装置であって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を、監視する監視部と、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第１閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する判定部と、
を備える、判定装置。
【請求項２】
請求項１に記載の判定装置であって、
前記判定条件は、前記実データ受信速度の上昇後の低下の度合いが所定の基準よりも小さいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
判定装置。
【請求項３】
請求項２に記載の判定装置であって、
前記判定部は、前記実データ受信速度の上昇後の前記実データ受信速度の単位時間当たりの変化量の絶対値が、ゼロよりも大きい第２閾値よりも小さい場合に、前記実データ受信速度の上昇後の低下の度合いが前記所定の基準よりも小さいと判定する、
判定装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の判定装置であって、
前記監視部は、さらに、前記実データ受信速度を監視し、
前記判定条件は、前記実データ受信速度の上昇後の前記実データ受信速度が、ゼロよりも大きい第３閾値よりも大きいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
判定装置。
【請求項５】
請求項２ないし請求項４のいずれかに記載の判定装置であって、
前記監視部は、さらに、前記実データ受信速度の上昇後に、前記複数の通信ポートのうちの前記実データ受信速度の上昇した通信ポートである候補ポート以外の通信ポートを無効にした状態における、前記監視を行い、
前記判定条件は、前記複数の通信ポートのうちの前記候補ポート以外の通信ポートを無効にした状態において、前記実データ受信速度の上昇後における要件が満たされることを、前記不具合が有ると判定するための要件として含む、
判定装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の判定装置であって、
前記判定条件は、前記実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第１時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
判定装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載の判定装置であって、
前記判定条件は、前記実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第２時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
判定装置。
【請求項８】
ネットワークに不具合が有るか否かを判定する方法であって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視し、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第１閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する、
方法。
【請求項９】
プログラムであって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視する機能と、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第１閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定装置、判定方法、および、プログラムに関するものである。
【背景技術】
【０００２】
コンピュータ等の電子装置が他の電子装置とデータ通信を行うために、ネットワークが利用されている。ネットワークに関連して、種々の不具合が生じ得る。例えば、通信ケーブルの誤接続などに起因して、意図しないループが形成され得る。このようなループが有るか否かを判定することは、ネットワークの管理にとって、有用である。ループが有るか否かを判定する方法として、種々の方法が提案されている。例えば、単位時間あたりのノンユニキャストパケット受信量をネットワークごとに算出し、算出されたノンユニキャストパケット受信量が所定の閾値より大きい場合に、ネットワークを被疑ネットワーク（レイヤ２ループ）として検出する方法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２１７４９６号公報
【特許文献２】特開２００８−９２１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、近年は、ネットワークを介して伝送されるデータ量が増加する傾向にある。従って、ネットワークにループ等の不具合が無い場合であっても、通信負荷は高くなり得る。この結果、単位時間当たりに受信するパケット量（例えば、ノンユニキャストパケットの受信量）を所定の閾値と比較して判定を行う場合には、不具合が無いにも拘わらずに、不具合が有ると誤判定する場合があった。特に、ループの外からループが有るか否かを判定する場合には、正しい判定結果を得ることが難しかった。
【０００５】
本発明の主な利点は、不具合の判定の精度を向上することができる技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
［適用例１］
判定装置であって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を、監視する監視部と、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第１閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する判定部と、
を備える、判定装置。
【０００８】
ネットワークに意図しないループが形成された場合には、同じパケットが、ループを繰り返し循環し得る（例えば、ブロードキャストパケットが循環し得る。なお、パケットはフレームとも呼ばれる）。ループ中の中継装置は、通信の制御（たとえば、応答確認等）と、中継の制御（例えば、経路選択等）とを行わずに、ブロードキャストパケットの転送を行う。従って、ループが形成された場合には、ループにおけるパケットの単位時間当たりの転送量（換言すれば、ループ中の中継装置によって行われる同じパケットの受信と送信との、単位時間当たりの繰り返し数）は、ループ中の中継装置の性能の限界近くまで、加速度的に上昇する。また、ループ中の中継装置は、ループを循環するパケット量（単位時間当たりのパケット量）と同じ量のブロードキャストパケットを、ループ外に送信する。この結果、ループに接続されたループ外の中継装置において、実データ受信速度が加速度的に上昇する。このような実データ受信速度の加速度的な上昇は、マルチキャストパケットによっても、引き起こされ得る。
【０００９】
一方、或る送信装置が、サイズの大きなデータを、或る受信装置に送信する場合には、送信装置と受信装置とは、データの転送に付随して、通信の制御（例えば、応答確認等）を行う。また、送信装置と受信装置との間の中継装置は、送信装置からのデータを受信装置に届けるために、中継の制御（例えば、経路選択等）を行う場合がある。このように、データ転送に付随して、種々の処理が行われるので、送信装置と受信装置との間の中継装置においては、データ転送の開始によって実データ受信速度が上昇するものの、ループが形成されている場合と比べて、実データ受信速度の上昇が緩やかである可能性が高い。
【００１０】
以上により、実データ受信速度の上昇の傾きが比較的大きい場合には、ループが形成されている可能性が高く、実データ受信速度の上昇の傾きが比較的小さい場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。上記構成によれば、実データ受信速度が速くなった場合であっても、実データ受信速度の単位時間当たりの変化量が第１閾値（＞ゼロ）を越えなかった場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、実データ受信速度の急な上昇を、第１閾値を用いて判定することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
【００１１】
［適用例２］
適用例１に記載の判定装置であって、
前記判定条件は、前記実データ受信速度の上昇後の低下の度合いが所定の基準よりも小さいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
判定装置。
【００１２】
ループが解消されない場合には、同じパケット（例えば、ブロードキャストパケット）は、ループ中の中継装置の性能の限界近くの速い速度で、ループを循環し続ける。すなわち、ループにおけるパケットの転送量（単位時間当たりのパケット量）は、限界近くまで上昇した後は、ほとんど変化しない。また、ループに接続されたループ外の中継装置は、ループを流れるパケット量（単位時間当たりの量）と同じ量のパケットを、ループから受信する。従って、実データ受信速度は、上昇の後には、ほとんど変化しない。一方、サイズの大きなデータが転送される場合には、一時的に実データ受信速度が上昇するものの、データ転送に付随する種々の処理（例えば、応答確認や経路選択等）に起因して、実データ受信速度は低減し得る。以上により、実データ受信速度の上昇後の低下の度合いが比較的小さい場合には、ループが形成されている可能性が高く、その低下の度合いが比較的大きい場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。
【００１３】
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、実データ受信速度の上昇後の低下の度合いが所定の基準よりも大きい場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、上昇後にほとんど変化しない実データ受信速度が上記要件を満たすので、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
【００１４】
［適用例３］
適用例２に記載の判定装置であって、
前記判定部は、前記実データ受信速度の上昇後の前記実データ受信速度の単位時間当たりの変化量の絶対値が、ゼロよりも大きい第２閾値よりも小さい場合に、前記実データ受信速度の上昇後の低下の度合いが前記所定の基準よりも小さいと判定する、
判定装置。
【００１５】
この構成によれば、ネットワークにループが無い場合の、上昇後の実データ受信速度が大きく低下する状況と、ネットワークにループが有る場合の、上昇後の実データ受信速度がほとんど変化しない状況とを、適切に区別することができるので、判定の精度を向上することができる。
【００１６】
［適用例４］
適用例１ないし適用例３のいずれかに記載の判定装置であって、
前記監視部は、さらに、前記実データ受信速度を監視し、
前記判定条件は、前記実データ受信速度の上昇後の前記実データ受信速度が、ゼロよりも大きい第３閾値よりも大きいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
判定装置。
【００１７】
ループが形成された場合には、ループにおけるパケットの単位時間当たりの転送量が、ループ中の中継装置の性能の限界近くまで上昇する。従って、ループに接続されたループ外の中継装置において、実データ受信速度は、ループでの循環の速度（限界近い速度）に応じた速い速度に上昇する。一方、サイズの大きなデータが転送される場合には、データ転送中に、データ転送に付随する種々の処理（例えば、応答確認や経路選択）が実行されるので、ループが形成された場合と比べて、上昇後の実データ受信速度が低い傾向がある。以上により、上昇後の実データ受信速度が比較的速い場合には、ループが形成されている可能性が高く、上昇後の実データ受信速度が比較的遅い場合には、ループが形成されずにサイズの大きなデータが転送されている可能性が高い。
【００１８】
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、上昇後の実データ受信速度が第３閾値よりも小さい場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、上昇後の実データ受信速度が第３閾値よりも大きくなることによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
【００１９】
［適用例５］
適用例２ないし適用例４のいずれかに記載の判定装置であって、
前記監視部は、さらに、前記実データ受信速度の上昇後に、前記複数の通信ポートのうちの前記実データ受信速度の上昇した通信ポートである候補ポート以外の通信ポートを無効にした状態における、前記監視を行い、
前記判定条件は、前記複数の通信ポートのうちの前記候補ポート以外の通信ポートを無効にした状態において、前記実データ受信速度の上昇後における要件が満たされることを、前記不具合が有ると判定するための要件として含む、
判定装置。
【００２０】
候補ポートに接続されたネットワークにループが形成されている場合には、候補ポート以外のポートを無効にしたとしても、ループから短時間に大量のパケットが候補ポートに届き続けるので、候補ポートの実データ受信速度は、低下せずに、速いままである。一方、中継装置が、候補ポートを通じてサイズの大きなデータを中継する場合には、中継装置は、候補ポートと、候補ポート以外の通信ポート（「非候補ポート」とも呼ぶ）とを通じて、データを中継する。従って、候補ポート以外のポートを無効にすることによってデータ転送が止まるので、候補ポートの実データ受信速度が急激にゼロ近くまで低下する。以上により、非候補ポートを無効にしても実データ受信速度がほとんど変化しない（速い実データ受信速度が継続する）する場合には、ループが形成されている可能性が高い。また、非候補ポートを無効にすることによって実データ受信速度が大きく低下（変化）する場合には、ループが形成されずに大きなサイズのデータが転送された可能性が高い。
【００２１】
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、候補ポート以外のポートを無効にした状態において実データ受信速度の上昇後における要件が満たされない場合には、不具合が無いと判定されるので、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、候補ポート以外のポートを無効にした状態において実データ受信速度の上昇後における要件が満たされることによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
【００２２】
［適用例６］
適用例１ないし適用例５のいずれかに記載の判定装置であって、
前記判定条件は、前記実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第１時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
判定装置。
【００２３】
上述のように、ループが形成されると、ループからパケットを受信する通信ポートの実データ受信速度も上昇する。そして、上昇後は、ループが解消するまで、実データ受信速度はほとんど変化しない。一方、サイズの大きなデータが転送される場合には、一時的に実データ受信速度が上昇するものの、種々の要因（例えば、応答確認等の通信制御や、経路選択等の中継制御や、データ転送の完了等）によって実データ受信速度が低下し得る。すなわち、実データ受信速度が上昇した場合であっても、実データ受信速度の単位時間当たりの変化量は、短時間で、負値になり得る。以上により、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が比較的長期間に亘って続く場合には、ループが形成されている可能性が高い。また、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が比較的短期間で終了する場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。
【００２４】
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、実データ受信速度が上昇を開始してから第１時間長さの期間の途中で終了する場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、実データ受信速度が上昇を開始してから第１時間長さの期間に亘って継続することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
【００２５】
［適用例７］
適用例１ないし適用例６のいずれかに記載の判定装置であって、
前記判定条件は、前記実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第２時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
判定装置。
【００２６】
ループが形成されると、ループにおけるパケットの単位時間当たりの転送量は、ループ中の中継装置の性能の限界近くまで、加速度的に上昇し、それに伴って、ループ外の中継装置における実データ受信速度も、加速度的に上昇する。従って、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量は、正値となり得る（すなわち、実データ受信速度の上昇の傾きが、時間の経過とともに急になり得る）。一方、サイズの大きなデータが転送される場合には、一時的に、実データ受信速度の上昇の傾きが時間の経過とともに急になったとしても、種々の要因（例えば、応答確認等の通信制御、経路選択等の中継制御、データ転送の完了等）によって、実データ受信速度の上昇の傾きが緩やかになり得る。以上により、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が（すなわち、実データ受信速度の上昇の傾きが、時間の経過とともに急になる状態が）、比較的長時間に亘って継続する場合には、ループが形成されている可能性が高い。また、そのような状態が比較的短時間で終了する場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。
【００２７】
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、実データ受信速度が上昇を開始してから第２時間長さの期間の途中で終了する場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、実データ受信速度が上昇を開始してから第２時間長さの期間に亘って継続することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
【００２８】
［適用例８］
ネットワークに不具合が有るか否かを判定する方法であって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視し、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第１閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する、
方法。
【００２９】
［適用例９］
プログラムであって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視する機能と、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第１閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する機能と、
をコンピュータに実現させるためのプログラム。
【００３０】
なお、本発明は、種々の形態で実現することが可能であり、例えば、判定装置および判定方法、判定装置と通信ポートとを有する中継装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００３１】
【図１】ネットワークシステム１０００を示す説明図である。
【図２】実データ受信速度Ｖの経時変化（変化パターン）の例を表すグラフである。
【図３】制御処理の説明図である。
【図４】制御処理の別の実施例の説明図である。
【図５】制御処理の別の実施例の説明図である。
【図６】制御処理の別の実施例の説明図である。
【図７】制御処理の別の実施例の説明図である。
【図８】制御処理の別の実施例の説明図である。
【図９】制御処理の別の実施例の説明図である。
【図１０】制御処理の別の実施例の説明図である。
【図１１】継続判定処理の説明図である。
【図１２】判定制御部２３０を有する装置の別の態様を示すブロック図である。
【発明を実施するための形態】
【００３２】
Ａ．第１実施例：
次に、本発明の実施の形態を実施例に基づき説明する。図１は、本発明の一実施例としてのネットワークシステム１０００を示す説明図である。このネットワークシステム１０００は、第１スイッチ１１０と、第２スイッチ１２０と、第３スイッチ１３０と、を含んでいる。第１スイッチ１１０と第２スイッチ１２０とは、いわゆるレイヤ２スイッチとして動作し、第３スイッチ１３０は、いわゆるレイヤ３スイッチとして動作する。
【００３３】
第１スイッチ１１０は、通信回線との接続のための６つのポートＰ１１〜Ｐ１６を有している。これらのポートＰ１１〜Ｐ１６は、ＩＥＥＥ８０２．３に準拠する物理ポートである。第２スイッチ１２０は、複数の同様のポートＰ２１〜２６を有している。第３スイッチ１３０は、複数の同様のポートＰ３１〜Ｐ３６を有している。
【００３４】
第１スイッチ１１０（第１ポートＰ１１）は、第２スイッチ１２０（第２ポートＰ２２）に接続され、第２スイッチ１２０（第１ポートＰ２１）は、第３スイッチ１３０（第２ポートＰ３２）に接続されている。ネットワークシステム１０００は、ローカルエリアネットワークを形成する。第３スイッチ１３０（第１ポートＰ３１）は、広域ネットワークＮＴ（例えば、いわゆるインターネット）に接続されている。ネットワークシステム１０００に接続された通信装置（例えば、第１スイッチ１１０に接続されたパーソナルコンピュータ１４０）は、ネットワークシステム１０００を通じて、広域ネットワークＮＴに接続された通信装置（図示せず。例えば、メールサーバまたはＷｅｂサーバ）と通信可能である。
【００３５】
図１は、さらに、第２スイッチ１２０の構成を示すブロック図を示している。第２スイッチ１２０は、複数のポートＰ２１〜Ｐ２６を有する通信インタフェース２１０と、カウンタ２２５と、レイヤ２制御部２２０と、判定制御部２３０と、を有している。
【００３６】
通信インタフェース２１０は、いわゆる1000BASE-Tのインタフェースである。ただし、通信インタフェース２１０は、他の種類のインタフェースであってもよい。
【００３７】
カウンタ２２５は、通信インタフェース２１０に届いたフレームに関する情報を取得する（詳細は後述）。
【００３８】
レイヤ２制御部２２０は、通信インタフェース２１０の複数のポートＰ２１〜Ｐ２６の間の通信の中継（データフレームの転送）を行う。レイヤ２制御部２２０は、ＯＳＩ参照モデルの第２層（データリンク層）のデータに従って、中継を行う
【００３９】
判定制御部２３０は、タイマ２３２と、ＣＰＵ２３４と、ＲＡＭ２３６と、ＲＯＭ２３８とを有するコンピュータである。ＲＯＭ２３８は、予め、プログラムを格納している。ＣＰＵ２３４は、ＲＯＭ２３８に格納されたプログラムを実行することによって、監視部３０２と、判定部３０４と、ポート制御部３０６と、を含む種々の処理部として動作する。以下、プログラムに従ってＣＰＵ２３４が或る処理部として処理を実行することを、その処理部が処理を実行する、とも表現する。タイマ２３２は、時間の計測に用いられる。判定制御部２３０は、第２スイッチ１２０が単位時間に実際に受信したデータの量を表す実データ受信速度を用いて、第２スイッチ１２０に接続されたネットワーク（例えば、第１スイッチ１１０を含むネットワーク、または、第３スイッチ１３０を含むネットワーク）に不具合が有るか否かを判定する（詳細は後述）。
【００４０】
なお、本実施例では、通信インタフェース２１０とレイヤ２制御部２２０とカウンタ２２５とのそれぞれは、専用のハードウェア（例えば、ＡＳＩＣ（Application Specific Integrated Circuit））によって実現されている。
【００４１】
図２は、実データ受信速度Ｖの経時変化（変化パターン）の例を表すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。実データ受信速度Ｖは、第２スイッチ１２０によって単位時間に実際に受信されたデータの量を表している。また、実データ受信速度Ｖは、１つのポートの受信速度を表している。本実施例では、第２スイッチ１２０は、いわゆるＭＡＣフレーム（以下、単に「フレーム」とも呼ぶ）の送受信を行う。従って、本実施例では、実データ受信速度Ｖは、ＭＡＣフレームのフレーム長（データサイズ）に基づいて算出されることとする（一般的には、１つのＭＡＣフレームのフレーム長は、64〜1518bytesである（1byte=8bits））。実データ受信速度Ｖの単位は、例えば、bps（bits per second）で表される。グラフ中の最大受信速度Ｍ１は、理論的に可能な最大値を示している。例えば、フレーム長が64bytesである場合には、最大受信速度Ｍ１はおおよそ760Mbpsであり、フレーム長が1518bytesである場合には、最大受信速度Ｍ１はおおよそ900Mbpsである。図２（Ａ）に示す第１パターンＶ１は、ネットワークにループが無い場合の実データ受信速度Ｖの変化パターンを示している。図２（Ｂ）の第２パターンＶ２は、ネットワークにループが有る場合の実データ受信速度Ｖの変化パターンを示している。まず、ネットワークにループがある場合について説明する。
【００４２】
図２（Ｂ）の第２パターンＶ２は、ネットワークにループが有る場合の実データ受信速度Ｖの変化パターンを示している。ループは、例えば、ユーザによるケーブルの誤接続による、図１の第１スイッチ１１０におけるループ経路１５０である。このようなループ経路１５０は、通信負荷の急激な上昇を引き起こし得る。例えば、パーソナルコンピュータ１４０が、ブロードキャストフレームを出力したと仮定する。第１スイッチ１１０は、ブロードキャストフレームを、そのフレームを受信したポートを除いた他の全てのポートから出力する。第１スイッチ１１０から出力されたフレームは、ループ経路１５０を介して、再び、第１スイッチ１１０に到達する。この結果、第１スイッチ１１０は、同じフレームを、繰り返し、複数のポートから出力する。ここで、第１スイッチ１１０は、ブロードキャストフレームの受信と送信とを、単なるリピータと同様に行う。すなわち、第１スイッチ１１０（より具体的には、第１スイッチ１１０のフレーム中継を制御するレイヤ２制御部（図示せず））は、複雑な中継制御（例えば、経路の選択等）を行わずに、受信したフレームを即時に他のポートから送信する。また、ループ経路１５０においては、ブロードキャストフレームの受信と送信とが、通信端末ではなく、中継装置（ここでは、第１スイッチ１１０）によって繰り返される。従って、ブロードキャストフレームの受信と送信とは、通信の制御（例えば、応答確認等）を行わずに、繰り返される。
【００４３】
このように、ループ経路１５０におけるフレームの転送量（単位時間当たりに転送されるフレーム量）は、第１スイッチ１１０の性能によって制限されるものの、中継の制御と通信の制御とによっては制限されない。従って、ループ経路１５０におけるフレームの転送量（換言すれば、第１スイッチ１１０によって行われる同じフレームの受信と送信との、単位時間当たりの繰り返し数）は、ループ経路１５０中の中継装置（ここでは、第１スイッチ１１０。より具体的には、第１スイッチ１１０の図示しないレイヤ２制御部）の性能の限界近くまで、加速度的に上昇する。また、ループ経路１５０に接続されたループ経路１５０外の中継装置（例えば、第２スイッチ１２０）は、ループ経路１５０を流れるフレームの量（単位時間当たりの量）と同じ量のフレームを、ループ経路１５０（第１スイッチ１１０）から受信する。従って、第２ポートＰ２２における実データ受信速度Ｖは、加速度的に上昇し、そして、上昇後の実データ受信速度Ｖは、最大受信速度Ｍ１に近くなる。また、ループ経路１５０における同じフレームの循環は、ループ経路１５０が解消するまで継続する。従って、実データ受信速度Ｖは、ループ経路１５０が解消するまで、ほとんど変化せずに、最大受信速度Ｍ１に近い値（速い値）に維持される。なお、ループが形成された場合の実データ受信速度Ｖの上昇は、ブロードキャストフレームに限らず、マルチキャストフレームによっても引き起こされ得る。また、「実データ受信速度Ｖが累進的に（加速度的に）上昇する」とは、実データ受信速度Ｖの単位時間当たりの変化量が増加しつつ、実データ受信速度Ｖが上昇することを意味している（実データ受信速度Ｖの上昇の傾きが、時間の経過とともに急になる）。
【００４４】
上述のようなループ（ループ経路１５０）は、自然に解消することが困難である。従って、ネットワークにループが有る場合には、長期間に亘って、実データ受信速度Ｖが下がらずに、最大受信速度Ｍ１に近い高い受信速度が継続し得る。
【００４５】
第２スイッチ１２０は、第１スイッチ１１０から繰り返し受信する同じフレームを、他の通信装置（例えば、第３スイッチ１３０）へ送信し得る。このように大量の同じフレームが連鎖的に伝送され得る。この結果、ネットワークシステム１０００における通常の通信が、停止し得る。
【００４６】
図２（Ａ）に示す第１パターンＶ１は、ネットワークにループが無い場合の実データ受信速度Ｖの変化パターンを示している。図２（Ａ）に示すように、実データ受信速度Ｖは、最大受信速度Ｍ１近くまで上昇し得る。例えば、パーソナルコンピュータ１４０（図１）が第２スイッチ１２０を介して大きなデータを送信（または、受信）する場合に、図２（Ａ）のように実データ受信速度Ｖが上昇し得る。ここで、パーソナルコンピュータ１４０等のデータの送信装置と、図示しないデータの受信装置（例えば、メールサーバ）とは、データの送信と受信とに加えて、通信の応答確認等の他の処理（通信を制御する処理）も実行する。また、送信装置と受信装置との間に設けられた中継装置（例えば、第２スイッチ１２０）は、フレームを受信装置に届けるために、通信経路を選択する処理等の中継の制御を行う場合がある。このように、データの転送に付随して種々の処理が行われる。従って、データ転送の開始によって実データ受信速度Ｖが上昇するものの、実データ受信速度Ｖの上昇の傾きは、ネットワークにループがある場合と比べて、緩やかである傾向にある。また、データ転送に付随する種々の処理に起因して、上昇後の実データ受信速度Ｖ（実データ受信速度Ｖの最大値）は、ループが形成された場合と比べて、遅い傾向にある。また、上昇した実データ受信速度Ｖは、データ転送に付随する種々の処理に起因して、低減（変動）し得る。また、実データ受信速度Ｖは、データ転送の完了によって、低減する。このように、ループが形成されていない場合には、ループが形成されている場合と比べて、実データ受信速度Ｖは変動し易い。
【００４７】
図２（Ｂ）に示すような実データ受信速度Ｖの異常（実データ受信速度Ｖの急上昇、および、高い実データ受信速度Ｖの長時間に亘る継続）は、１つの中継装置によるループ（例えば、図１のループ経路１５０）に限らず、複数の中継装置を経由するループによっても、引き起こされ得る。例えば、図１に示すように、第１スイッチ１１０には、さらに別の第４スイッチ１３５（レイヤ２スイッチ）が接続され得る。ここで、第１スイッチ１１０と第４スイッチ１３５とが、誤って２本の通信経路で接続されたと仮定する（図１では、第１スイッチ１１０の第２ポートＰ１２が、第４スイッチ１３５の第２ポートＰ４２に接続され、第１スイッチ１１０の第３ポートＰ１３が、第４スイッチ１３５の第３ポートＰ４３に接続されている）。この場合には、第１スイッチ１１０と第４スイッチ１３５とを通るループ経路１５５が形成される。第１スイッチ１１０は、ブロードキャストフレームまたはマルチキャストフレームを第４スイッチ１３５に送信する。第４スイッチ１３５は、受信したフレームを、第１スイッチ１１０に送信する。以上により、同じフレームが、ループ経路１５５を繰り返し循環する。この結果、ループ経路１５５は、ループ経路１５０と同様に、ループ経路１５５に接続されたネットワーク（例えば、第２スイッチ１２０）に、実データ受信速度Ｖの異常を引き起こし得る。３つ以上の中継装置を通るループも、同様に、実データ受信速度Ｖの異常を引き起こし得る。そこで、本実施例では、判定制御部２３０は、実データ受信速度Ｖの経時変化を用いて、ネットワークに不具合が有るか否かを判定する。
【００４８】
図３（Ａ）は、判定制御部２３０（図１）によって実行される制御処理のフローチャートである。最初のステップＳ１００では、監視部３０２は、単位時間変化量Ｄを監視する。単位時間変化量Ｄは、実データ受信速度Ｖの単位時間当たりの変化量を表している（正値の単位時間変化量Ｄは、実データ受信速度Ｖの上昇を意味し、負値の単位時間変化量Ｄは、実データ受信速度Ｖの降下を意味している）。具体的には、監視部３０２は、まず、実データ受信速度Ｖ（実データ受信速度Ｖを表すデータ）を算出する。本実施例では、カウンタ２２５は、第２スイッチ１２０に届いたフレームのデータ量を、ポート毎にカウントしている（カウンタ２２５は、受信データ量を表す情報をリアルタイムに出力する）。判定制御部２３０の監視部３０２は、カウンタ２２５から、各ポートの受信データ量を取得する。そして、監視部３０２は、タイマ２３２を用いて所定時間（例えば、数msec）内の受信データ量を積算することによって、各ポートの実データ受信速度Ｖを算出する。なお、監視部３０２は、実データ受信速度Ｖの算出を、上記所定時間毎に繰り返し実行する。本実施例では、カウンタ２２５は、レイヤ２制御部２２０の処理とは独立に、上記カウントを行う。従って、カウンタ２２５は、レイヤ２制御部２２０がフレームを転送していない場合であっても、受信データ量を表す情報を出力することができる。
【００４９】
また、ステップＳ１００では、監視部３０２は、単位時間変化量Ｄを、ポート毎に算出する。本実施例では、監視部３０２は、最新の実データ受信速度Ｖから、前回に算出した実データ受信速度Ｖを引いた差分を、単位時間変化量Ｄとして採用する。監視部３０２は、算出した単位時間変化量Ｄを、判定部３０４に通知する。
【００５０】
次のステップＳ１１０では、判定部３０４は、判定条件が満たされるか否かを判定する。本実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃａが満たされることである。
（要件Ｃａ）単位時間変化量Ｄが第１閾値Ｔｈ１より大きい（第１閾値Ｔｈ１はゼロより大きい）
判定部３０４は、判定条件が満たされるか否かの判定を、ポート毎に行う（後述する他の実施例でも同様である）。以下、判定条件を満たすポートを「対象ポート」とも呼ぶ。
【００５１】
図３（Ｂ）は、実データ受信速度Ｖの変化パターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ１１は、ループが無い場合のパターンの例を示し、第２パターンＶ１２は、ループが有る場合のパターンの例を示している。各パターンＶ１１、Ｖ１２において、実データ受信速度Ｖが上昇している。ただし、ループが有る場合の第２パターンＶ１２の単位時間変化量Ｄ（第２単位時間変化量Ｄ１２）は、ループが無い場合の第１パターンＶ１１の単位時間変化量Ｄ（第１単位時間変化量Ｄ１１）と比べて、大きい。また、第１単位時間変化量Ｄ１１は第１閾値Ｔｈ１よりも小さい（要件Ｃａが満たされない）。一方、第２単位時間変化量Ｄ１２は第１閾値Ｔｈ１よりも大きい（要件Ｃａが満たされる）。
【００５２】
このようにループが有る場合と無い場合との間で実データ受信速度Ｖの上昇の傾き（単位時間変化量Ｄ）に差が生じ得る理由は、図２で説明した通りである。すなわち、ループ経路１５０中の第１スイッチ１１０は、ブロードキャストフレーム、または、マルチキャストフレームの受信と送信とを、通信の制御（例えば、応答確認等）と中継の制御（例えば、経路選択等）とを行わずに、繰り返す。従って、ループ経路１５０が形成されたことによって、第２スイッチ１２０が第１スイッチ１１０から受信する単位時間当たりのデータ量（実データ受信速度Ｖ）は、加速度的に上昇する（単位時間変化量Ｄが大きい）。一方、ループが無い場合にも、サイズの大きなデータの転送が始まることによって、実データ受信速度Ｖは上昇し得る。ただし、データの転送に付随して、通信の制御（例えば、応答確認等）、または、中継の制御（例えば、経路選択等）が行われ得る。従って、実データ受信速度Ｖの上昇の傾きは、ループがある場合と比べて、緩やかである傾向にある。
【００５３】
図３（Ａ）の実施例では、判定部３０４は、ループが有る場合とループが無い場合との間の単位時間変化量Ｄの違いを、第１閾値Ｔｈ１によって判別している。なお、本実施例では、第１閾値Ｔｈ１は、判定精度が向上するように予め実験的に決定されている。ここで、ループが発生した場合には、単位時間変化量Ｄは、通信ポートの最大受信速度Ｍ１に依存せずに急激に上昇する。従って、本実施例では、第１閾値Ｔｈ１は、通信ポートの最大受信速度Ｍ１に依存しない値である。ただし、第１閾値Ｔｈ１は、通信ポートの最大受信速度Ｍ１が速いほど大きくなるように、予め決定されてもよい。
【００５４】
なお、第１閾値Ｔｈ１は、ゼロよりも大きい。従って、要件Ｃａが満たされる場合には、実データ受信速度Ｖは上昇している。このように、要件Ｃａに従った判定は、実データ受信速度Ｖが上昇することと、その上昇の傾き（単位時間変化量Ｄ）が第１閾値Ｔｈ１よりも大きいことと、の２つの要件が満たされているか否かを判定している、ということができる。
【００５５】
少なくとも１つのポートが判定条件を満たす場合には、次のステップＳ５００（図３（Ａ））で、ポート制御部３０６は、対象ポートを無効化し、通信の中継の対象から、そのポートを除外する。すなわち、第２スイッチ１２０は、無効なポートに届いたフレームを、他のポートに転送しない。また、第２スイッチ１２０は、無効なポートからフレームを送信しない。本実施例では、ポート制御部３０６は、レイヤ２制御部２２０に、対象ポートによって受信されたフレームと、対象ポートから送信すべきフレームとを無視する指示を送信する。レイヤ２制御部２２０は、指示に従って通信の中継を行う（対象ポートを通るデータフレームの転送が、省略される）。この結果、第１スイッチ１１０から第２スイッチ１２０に届く大量のフレームの影響が、第２スイッチ１２０から他の通信装置（例えば、第３スイッチ１３０）に及ぶことを抑制できる。ステップＳ５００の終了に応じて、判定制御部２３０は、制御処理を終了する。なお、対象ポートを無効化する方法は、他の方法であってもよい。例えば、ポート制御部３０６は、通信インタフェース２１０に、対象ポートの電源をオフにする指示を送信してよい。通信インタフェース２１０は、指示に従って、対象ポートの電源をオフにしてよい。
【００５６】
全てのポートが判定条件を満たしていない場合には、判定制御部２３０（図１）は、制御処理を終了する。判定制御部２３０は、この制御処理を、定期的（例えば、数msec毎に）に繰り返す。本実施例では、制御処理の繰り返し周期は、実データ受信速度Ｖの算出の繰り返し周期と同じである。ここで、１回の判定だけではなく、連続する複数回の判定で判定条件が満たされることが、最終的に不具合があると判定するための要件であることが好ましい。こうすれば、ループが形成されていないにも拘わらずに不具合が有ると誤判定する可能性を低減できる（これは、後述する他の実施例についても同様である）。なお、制御処理の繰り返し周期は、実データ受信速度Ｖの算出の繰り返し周期よりも長くてもよい。
【００５７】
このように、第１実施例では、判定部３０４は、実データ受信速度Ｖの単位時間当たりの変化量（単位時間変化量Ｄ）を利用して不具合（例えば、意図しないループ）が有るか否かを判定するので、単位時間変化量Ｄを利用せずに実データ受信速度Ｖの大きさを利用して判定する場合と比べて、不具合があると誤判定する可能性を低減し、判定の精度を向上することができる。具体的には、上述したように、実データ受信速度Ｖが加速度的に上昇する場合（単位時間変化量Ｄが比較的大きい場合）には、ループが形成されている可能性が高く、実データ受信速度Ｖの上昇が緩やかである場合（単位時間変化量Ｄが比較的小さい場合）には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。図３（Ａ）の判定は、実データ受信速度Ｖが急に上昇した場合と、実データ受信速度Ｖが緩やかに上昇した場合とを区別する。判定部３０４は、実データ受信速度Ｖが速くなった場合であっても、単位時間変化量Ｄが第１閾値Ｔｈ１を越えなかった場合には、不具合が無いと判定する。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、判定部３０４は、実データ受信速度Ｖの急な上昇を、第１閾値Ｔｈ１を用いて判定することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
【００５８】
Ｂ．第２実施例：
図４（Ａ）は、判定制御部２３０（図１）によって実行される制御処理の別の実施例のフローチャートである。図４（Ａ）において、第１実施例（図３（Ａ））のステップと同じステップには、同じ符号を付している。図４（Ａ）の第２実施例と、図３（Ａ）の第１実施例との間の差異は、第２実施例では、ステップＳ１１０とステップＳ５００との間にステップＳ２００、Ｓ２１０が追加されている点だけである。
【００５９】
第２実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃａ、Ｃｂが満たされることである。
（要件Ｃａ）単位時間変化量Ｄが第１閾値Ｔｈ１より大きい（ステップＳ１１０）
（要件Ｃｂ）実データ受信速度Ｖの上昇後の所定時間Ｔ２０内において、単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２未満である（ステップＳ２１０）（第２閾値Ｔｈ２はゼロよりも大きい）
【００６０】
第２実施例では、単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きい場合に（ステップＳ１１０：Ｙｅｓ）、次のステップＳ２００で、監視部３０２（図１）は、単位時間変化量Ｄの絶対値を監視する。このステップＳ２００では、監視部３０２は、単位時間変化量Ｄの絶対値を算出する。後述するステップＳ２１０では、判定部３０４は、実データ受信速度Ｖの上昇が終了した後の所定時間内における単位時間変化量Ｄの絶対値を用いた判定を行う。判定部３０４は、単位時間変化量Ｄが正値からゼロまたは負値に変化したことを、実データ受信速度Ｖの上昇の終了とみなす。なお、監視部３０２は、単位時間変化量Ｄの絶対値の算出を、単位時間変化量Ｄの算出と同様に、所定時間毎に繰り返し実行する。
【００６１】
図４（Ｂ）は、実データ受信速度Ｖの変化パターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ２１は、ループが無い場合のパターンの例を示し、第２パターンＶ２２は、ループが有る場合のパターンの例を示している。両パターンＶ２１、Ｖ２２において、第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで、実データ受信速度Ｖが上昇している。ループが無い場合であっても、大容量のデータファイルの転送が開始する等のネットワークの状況によっては、実データ受信速度Ｖは、第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで、上昇し得る。ループが無い場合の第１パターンＶ２１では、実データ受信速度Ｖは、上昇した後に、降下している。一方、ループが有る場合の第２パターンＶ２２では、実データ受信速度Ｖは、上昇した後に、ほとんど降下せずに、おおよそ一定値に維持されている。
【００６２】
このようにループが有る場合と無い場合との間で、上昇後の実データ受信速度Ｖの変化に差が生じ得る理由は、図２で説明した通りである。すなわち、大きなサイズのデータ転送が行われる場合には、実データ受信速度Ｖが急激に上昇し得るものの、データ転送に付随する種々の処理（例えば、確認応答や経路選択等）、または、データ転送の完了に起因して、実データ受信速度Ｖが低減し得る。一方、ループが形成されている場合には、上昇後の実データ受信速度Ｖは、ループが解消されるまで、ほとんど変化せずに、維持される傾向にある。
【００６３】
第２実施例では、判定部３０４は、上昇後の実データ受信速度Ｖの変化の違いを、第２閾値Ｔｈ２によって判別している。なお、本実施例では、第２閾値Ｔｈ２は、判定精度が向上するように予め実験的に決定されている。
【００６４】
図中の第２時間Ｔ２２は、実データ受信速度Ｖの上昇が終了した時間を示している。図４（Ａ）のステップＳ２００では、監視部３０２は、少なくとも、この時間Ｔ２２から、所定時間Ｔ２０が経過するまで（第３時間Ｔ２３まで）、単位時間変化量Ｄの絶対値の算出を繰り返す。監視部３０２は、ステップＳ１００と同様に、実データ受信速度Ｖを算出し、単位時間変化量Ｄを算出する。監視部３０２は、算出した単位時間変化量Ｄの絶対値を、判定部３０４に通知する。
【００６５】
次のステップＳ２１０では、判定部３０４は、ステップＳ２００で算出された単位時間変化量Ｄの絶対値に従って、所定時間Ｔ２０内において、単位時間変化量Ｄの絶対値が、所定の第２閾値Ｔｈ２未満であるか否かを判定する（要件Ｃｂ）。本実施例では、判定部３０４は、単位時間変化量Ｄが正値からゼロまたは負値になったことに応じて、所定時間Ｔ２０のカウントを始める。そして、判定部３０４は、監視部３０２から受信したデータ（単位時間変化量Ｄの絶対値）のうちの、所定時間Ｔ２０内のデータを用いて判定を行う。所定時間Ｔ２０は、判定精度が向上するように予め実験的に決定されている。
【００６６】
判定部３０４は、所定時間Ｔ２０内の全ての単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２を超えなかった場合に、要件Ｃｂが満たされたと判定する。例えば、実データ受信速度Ｖが図４（Ｂ）の第２パターンＶ２２のように変化した場合には、所定時間Ｔ２０に亘って、単位時間変化量Ｄ（Ｄ２２）の絶対値が第２閾値Ｔｈ２未満であるので、判定部３０４は、要件Ｃｂが満たされたと判定する。
【００６７】
所定時間Ｔ２０の間に得られた単位時間変化量Ｄの絶対値のうちの少なくとも一部が第２閾値Ｔｈ２を超えている場合には、判定部３０４は、要件Ｃｂが満たされないと判定する。例えば、実データ受信速度Ｖが図４（Ｂ）の第１パターンＶ２１のように変化した場合には、所定時間Ｔ２０の間に単位時間変化量Ｄ（Ｄ２１）の絶対値が第２閾値Ｔｈ２を超えているので、判定部３０４は、要件Ｃｂが満たされないと判定する。
【００６８】
少なくとも１つのポートが判定条件を満たす場合には（Ｓ１１０：Ｙｅｓ、Ｓ２１０：Ｙｅｓ）、処理がステップＳ５００に移行する。ステップＳ５００の処理は、図３（Ａ）のステップＳ５００の処理と同じである。ステップＳ５００の処理の終了に応じて、判定制御部２３０は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部２３０は、制御処理を終了する。なお、判定制御部２３０は、制御処理を繰り返し実行する。
【００６９】
以上のように、第２実施例では、図４（Ｂ）のパターンＶ２１、Ｖ２２のように、急激に実データ受信速度Ｖが上昇した場合であっても、判定部３０４は、実データ受信速度Ｖが上昇の後に安定する場合（飽和する場合）と、実データ受信速度Ｖが上昇の後に大きく変化する場合とを区別する（要件Ｃｂ）。上述したように、上昇の後に実データ受信速度Ｖが比較的長期間に亘ってほとんど変化しない場合には、ループが形成されている可能性が高く、上昇の後に実データ受信速度Ｖが比較的短期間のうちに低減（変化）する場合には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。この結果、要件Ｃｂを追加することによって、判定の精度が向上する。例えば、不具合（例えば、意図しないループ）が無いにも拘わらずに第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで実データ受信速度Ｖが上昇した場合に（例えば、通信帯域がほとんど使用されていない状況で大容量のデータファイルの転送が始まった場合に）、不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、判定部３０４は、上昇後の実データ受信速度Ｖがほとんど変化しないことを、第２閾値Ｔｈ２を用いて判定することによって、不具合が有ると正しく判定することができる。
【００７０】
また、第２スイッチ１２０には、第２スイッチ１２０よりも通信速度が遅い中継装置（例えば、100BASE-Tのインタフェースを有する中継装置）が接続され得る。この場合には、その中継装置を通るネットワークに不具合（例えば、意図しないループ）が有っても、上昇後の実データ受信速度Ｖは、第２スイッチ１２０の最大受信速度Ｍ１と比べて十分に小さい。第２実施例の制御処理は、このような場合にも、不具合が有るという正しい判定結果を導くことができる。
【００７１】
Ｃ．第３実施例：
図５（Ａ）は、判定制御部２３０（図１）によって実行される制御処理の別の実施例のフローチャートである。図５（Ａ）において、第１実施例（図３（Ａ））のステップと同じステップには、同じ符号を付している。図５（Ａ）の第３実施例と、図３（Ａ）の第１実施例との間の差異は、第３実施例では、ステップＳ１１０とステップＳ５００との間にステップＳ２０５、Ｓ２２０が追加されている点だけである。
【００７２】
第３実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃａ、Ｃｃが満たされることである。
（要件Ｃａ）単位時間変化量Ｄが第１閾値Ｔｈ１より大きい（ステップＳ１１０）
（要件Ｃｃ）上昇後の実データ受信速度Ｖが、第３閾値Ｔｈ３より大きい（ステップＳ２２０）（第３閾値Ｔｈ３はゼロよりも大きい）
【００７３】
第３実施例では、単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きい場合に（ステップＳ１１０：Ｙｅｓ）、次のステップＳ２０５で、監視部３０２（図１）は、実データ受信速度Ｖを監視する。このステップＳ２０５では、監視部３０２は、実データ受信速度Ｖを算出する。監視部３０２は、算出した実データ受信速度Ｖを判定部３０４に通知する。後述するステップＳ２２０では、判定部３０４は、実データ受信速度Ｖの上昇が終了した時点での実データ受信速度Ｖを用いた判定を行う。上述したように、監視部３０２は、実データ受信速度Ｖの算出を所定時間毎に繰り返し実行する。判定部３０４は、単位時間変化量Ｄが正値からゼロまたは負値に変化したことを、実データ受信速度Ｖの上昇の終了とみなす。
【００７４】
次のステップＳ２２０では、判定部３０４は、監視部３０２によって算出された実データ受信速度Ｖが第３閾値Ｔｈ３を越えているか否かを判定する（要件Ｃｃ）。
【００７５】
図５（Ｂ）は、実データ受信速度Ｖの変化のパターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ３１は、ループが無い場合のパターンの例を示し、第２パターンＶ３２は、ループが有る場合のパターンの例を示している。両パターンＶ３１、Ｖ３２において、第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで、実データ受信速度Ｖが上昇している。ループが無い場合の第１パターンＶ３１では、実データ受信速度Ｖは、第１ピーク値ＶＰ３１まで上昇した後に、実データ受信速度Ｖが降下している。一方、ループがある場合の第２パターンＶ３２では、実データ受信速度Ｖは、第１ピーク値ＶＰ３１よりも大きい第２ピーク値ＶＰ３２まで上昇し、その後、ほとんど降下せずに高い値を維持している。ループが有る場合には、ループが無い場合と比べて、実データ受信速度Ｖが大きな値に上昇している。
【００７６】
このようにループが有る場合と無い場合との間で、上昇後の実データ受信速度Ｖに差が生じ得る理由は、図２で説明した通りである。すなわち、ループが形成された場合には、ループ中の中継装置（ここでは、第１スイッチ１１０）の性能の限界近くの速度まで、ループにおける単位時間当たりのフレームの転送量が上昇し得る、すなわち、実データ受信速度Ｖが最大受信速度Ｍ１近くまで上昇し得る。一方、大きなサイズのデータ転送が行われる場合には、実データ受信速度Ｖが上昇するものの、データ転送に付随する種々の処理（応答確認や経路選択等）が行われるので、ループが形成された場合と比べて上昇後の実データ受信速度Ｖが遅い傾向にある。
【００７７】
第３実施例では、判定部３０４は、上昇後の実データ受信速度Ｖの違いを、第３閾値Ｔｈ３によって判別している。なお、本実施例では、第３閾値Ｔｈ３は、判定精度が向上するように予め実験的に決定されている。具体的には、第３閾値Ｔｈ３は、最大受信速度Ｍ１よりも若干小さい値に予め決定されている（例えば、第３閾値Ｔｈ３は、700Mbpsである）。一般的には、フレーム長（データサイズ）が大きいほど、通信帯域を有効に利用することができる（例えば、大容量のデータファイルを転送する際に、フレーム長が大きいほど、実データ受信速度Ｖが最大受信速度Ｍ１に近くなる）。従って、フレーム長が大きいほど第３閾値Ｔｈ３が大きいことが好ましい。
【００７８】
実データ受信速度Ｖが図５（Ｂ）の第２パターンＶ３２のように変化した場合には、上昇後の実データ受信速度Ｖ（ＶＰ３２）が第３閾値Ｔｈ３を越えているので、判定部３０４は、要件Ｃｃが満たされたと判定する。また、実データ受信速度Ｖが第１パターンＶ３１のように変化した場合には、上昇後の実データ受信速度Ｖ（ＶＰ３１）が第３閾値Ｔｈ３未満であるので、判定部３０４は、要件Ｃｃが満たされないと判定する。
【００７９】
少なくとも１つのポートが判定条件を満たす場合には（Ｓ１１０：Ｙｅｓ、Ｓ２２０：Ｙｅｓ）、処理がステップＳ５００に移行する。ステップＳ５００の処理は、図３（Ａ）のステップＳ５００の処理と同じである。ステップＳ５００の処理の終了に応じて、判定制御部２３０は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部２３０は、制御処理を終了する。なお、判定制御部２３０は、制御処理を繰り返し実行する。
【００８０】
以上のように、第３実施例では、図５（Ｂ）のパターンＶ３１、Ｖ３２のように、急激に実データ受信速度Ｖが上昇した場合であっても、判定部３０４は、上昇後の実データ受信速度Ｖが比較的速い場合と、上昇後の実データ受信速度Ｖが比較的遅い場合とを区別する（要件Ｃｃ）。上述したように、上昇後の実データ受信速度Ｖが比較的速い場合には、ループが形成されている可能性が高く、上昇後の実データ受信速度Ｖが比較的遅い場合には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。この結果、要件Ｃｃを追加することによって、判定の精度が向上する。例えば、不具合（例えば、意図しないループ）が無いにも拘わらずに第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで実データ受信速度Ｖが上昇した場合に（例えば、通信帯域がほとんど使用されていない状況で大容量のデータファイルの転送が始まった場合に）、不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、判定部３０４は、上昇後の実データ受信速度Ｖが速いことを第３閾値Ｔｈ３を用いて判定することによって、不具合が有ると正しく判定することができる。
【００８１】
Ｄ．第４実施例：
図６（Ａ）は、判定制御部２３０（図１）によって実行される制御処理の別の実施例のフローチャートである。図６（Ａ）において、第２実施例（図４（Ａ））のステップと同じステップには、同じ符号を付している。図６（Ａ）の第４実施例と、図４（Ａ）の第２実施例との間の差異は、第４実施例では、ステップＳ２００、Ｓ２１０が、ステップＳ３００、Ｓ３１０、Ｓ３１７、Ｓ３２０に置換されている点だけである。
【００８２】
第４実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃａ、Ｃｄが満たされることである。
（要件Ｃａ）単位時間変化量Ｄが第１閾値Ｔｈ１より大きい（ステップＳ１１０）
（要件Ｃｄ）実データ受信速度Ｖの上昇後に、候補ポート以外のポートを無効にした状態で、所定時間Ｔ４０内において、単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２未満である（ステップＳ３２０）
本実施例では、候補ポートは、第１閾値Ｔｈ１よりも大きい単位時間変化量Ｄで実データ受信速度Ｖが上昇したポートである。
【００８３】
第４実施例では、単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きい場合に（ステップＳ１１０：Ｙｅｓ）、次のステップＳ３００で、ポート制御部３０６（図１）は、候補ポート以外のポート（以下「非候補ポート」と呼ぶ）を無効化する。ポート制御部３０６は、非候補ポートの無効化を、対象ポートの無効化と同じ手順で行う。
【００８４】
次のステップＳ３１０では、監視部３０２は、単位時間変化量Ｄの絶対値を監視する。このステップＳ３１０では、監視部３０２は、非候補ポートが無効化された後の所定時間内において、候補ポートにおける単位時間変化量Ｄの絶対値を繰り返し算出する。
【００８５】
図６（Ｂ）は、実データ受信速度Ｖの変化パターンを示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ４１は、ループが無い場合のパターンの例を示し、第２パターンＶ４２は、ループが有る場合のパターンの例を示している。図６（Ｂ）の例では、両パターンＶ４１、Ｖ４２において、第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで、実データ受信速度Ｖが上昇している。図中の第１時間Ｔ４１は、非候補ポートが無効化された時間を示している。
【００８６】
ループが無い場合の第１パターンＶ４１では、非候補ポートが無効化されたことに応じて、実データ受信速度Ｖが、降下している。この理由は、以下の通りである。すなわち、ループが無い場合であっても、第２スイッチ１２０を通るデータ転送が始まることによって、第１パターンＶ４１のように実データ受信速度Ｖが上昇する。第２スイッチ１２０は、このようなデータ転送を、候補ポートと、他の通信ポート（すなわち、非候補ポート）を通じて、行う。ここで、非候補ポートを無効にすることによって、データ転送が止まる。この結果、候補ポートにおける実データ受信速度Ｖが降下する。
【００８７】
一方、ループが有る場合の第２パターンＶ４２では、非候補ポートが無効化されたにも拘わらずに、候補ポートにおける実データ受信速度Ｖは、ほとんど降下せずに、おおよそ一定値に維持されている。第２スイッチ１２０を通らないループの原因は非候補ポートを介した通信とは無関係であるので、非候補ポートの無効化は、不具合を解消しない。すなわち、非候補ポートを無効にしたとしても、ループから短時間に大量のパケットが候補ポートに届き続ける。この結果、実データ受信速度Ｖは、ほとんど降下せずに、高い値に維持される。
【００８８】
図６（Ａ）のステップＳ３１０では、監視部３０２は、少なくとも、第１時間Ｔ４１から、所定時間Ｔ４０が経過するまで（第２時間Ｔ４２まで）、単位時間変化量Ｄの絶対値の算出を繰り返す。そして、監視部３０２は、算出した単位時間変化量Ｄの絶対値を、判定部３０４に通知する。このステップＳ３１０は、図４（Ａ）のステップＳ２００と同様に行われる。次のステップＳ３１７では、第１時間Ｔ４１から所定時間Ｔ４０が経過したことに応じて、ポート制御部３０６（図１）は、非候補ポートを有効化する。ポート制御部３０６は、ポートの有効化を、ポートの無効化の手順における「無効」を「有効」に入れ替えて得られる手順に従って、行う。
【００８９】
次のステップＳ３２０では、判定部３０４は、ステップＳ３１０で算出された単位時間変化量Ｄの絶対値に従って、所定時間Ｔ４０内において、単位時間変化量Ｄの絶対値が、第２閾値Ｔｈ２未満であるか否かを判定する（要件Ｃｄ）。この判定は、図４（Ａ）のステップＳ２１０と同様に行われる。第４実施例では、判定部３０４は、非候補ポートを無効化した状態での実データ受信速度Ｖの変化の違いを、第２閾値Ｔｈ２によって判別している（この第２閾値Ｔｈ２は、図４の第２閾値Ｔｈ２と同様に決定されている）。なお、判定部３０４とポート制御部３０６とは、非候補ポートが無効化されたことに応じて、所定時間Ｔ４０のカウントを始める。そして、判定部３０４は、監視部３０２から受信したデータ（単位時間変化量Ｄの絶対値）のうちの所定時間Ｔ４０内のデータを用いて判定を行う。所定時間Ｔ４０は、判定精度が向上するように予め実験的に決定されている。
【００９０】
候補ポートが判定条件を満たす場合には、処理がステップＳ５００に移行する。ステップＳ５００の処理の終了に応じて、判定制御部２３０は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部２３０は、制御処理を終了する。なお、判定制御部２３０は、制御処理を繰り返し実行する。
【００９１】
以上のように、第４実施例では、図６（Ｂ）のパターンＶ４１、Ｖ４２のように、急激に実データ受信速度Ｖが上昇した場合であっても、判定部３０４は、非候補ポートを無効にした状態で、実データ受信速度Ｖが安定する場合（飽和する場合）と、実データ受信速度Ｖが大きく変化する場合とを区別する。この結果、判定の精度が向上する。例えば、意図しないループが無いにも拘わらずに第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで実データ受信速度Ｖが上昇した場合に、不具合が有ると誤判定する可能性を低減できる。特に、第４実施例では、要件Ｃｄは、実データ受信速度Ｖの上昇の後の、非候補ポートを無効にした状態での、単位時間変化量Ｄの絶対値に条件を課している。上述したように、第２スイッチ１２０を通らないループが形成された場合には、非候補ポートを無効にしたとしても、ループから短時間に大量のパケットが候補ポートに届き続ける。従って、非候補ポートを無効にしても実データ受信速度Ｖがほとんど変化しない場合には（単位時間変化量Ｄの絶対値が比較的小さい場合には）、ループが形成されている可能性が高い。一方、第２スイッチ１２０を通らないループが形成されていない場合であっても、第２スイッチ１２０を通るデータ転送に起因して、実データ受信速度Ｖが急激に上昇し得る。この場合、転送されるデータは、候補ポートと他のポート（非候補ポート）を通る。ここで、非候補ポートを無効にすると、データ転送が止まるので、実データ受信速度Ｖが急激にゼロ近くまで低下する。従って、非候補ポートを無効にすることによって、実データ受信速度Ｖが大きく変化する場合には（単位時間変化量Ｄの絶対値が比較的大きい場合）には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。従って、要件Ｃｄを追加することによって、第２スイッチ１２０を経由しないループが有るか否かの判定精度が、向上する。
【００９２】
なお、本実施例では、ポート制御部３０６は、実データ受信速度Ｖの上昇が終了したことに応じて、非候補ポートを無効化する。この代わりに、ポート制御部３０６は、要件Ｃａが満たされたことに応じて、実データ受信速度Ｖの上昇が終了する前に、非候補ポートを無効化してもよい。いずれの場合も、要件Ｃｄは、実データ受信速度Ｖの上昇後の単位時間変化量Ｄに従って判定される、ということができる。また、より精度よく候補ポートを特定するために、非候補ポートを無効化する前の段階において（例えば、図６のステップＳ１１０とステップＳ３００との間において）、図４の実施例のステップＳ２００、Ｓ２１０の処理を実行してもよい。
【００９３】
Ｅ．第５実施例：
図７（Ａ）は、判定制御部２３０（図１）によって実行される制御処理の別の実施例のフローチャートである。図７（Ａ）において、第３実施例（図５（Ａ））のステップと同じステップには、同じ符号を付している。図７（Ａ）の第５実施例と、図５（Ａ）の第３実施例との間の差異は、第５実施例では、ステップＳ２００、Ｓ２２０が、ステップＳ３００、Ｓ３１５、Ｓ３１７、Ｓ３３０に置換されている点だけである。
【００９４】
第５実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃａ、Ｃｅが満たされることである。
（要件Ｃａ）単位時間変化量Ｄが第１閾値Ｔｈ１より大きい（ステップＳ１１０）
（要件Ｃｅ）実データ受信速度Ｖの上昇後に、候補ポート以外のポートを無効にしてから所定時間Ｔ５０の経過後において、実データ受信速度Ｖが、第３閾値Ｔｈ３より大きい（ステップＳ３３０）
【００９５】
第５実施例では、単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きい場合に（ステップＳ１１０：Ｙｅｓ）、処理がステップＳ３００に移行する。このステップＳ３００は、図６（Ａ）のステップＳ３００と同じである。
【００９６】
次のステップＳ３１５では、監視部３０２は、実データ受信速度Ｖを監視する。このステップＳ３１５では、監視部３０２は、非候補ポートが無効化された状態の、候補ポートの実データ受信速度Ｖを算出する。
【００９７】
図７（Ｂ）は、実データ受信速度Ｖの変化のパターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ５１は、ループが無い場合のパターンの例を示し、第２パターンＶ５２は、ループが有る場合のパターンの例を示している。図７（Ｂ）の例では、両パターンＶ５１、Ｖ５２において、第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで、実データ受信速度Ｖが上昇している。実データ受信速度Ｖは、所定の第３閾値Ｔｈ３よりも大きい値まで上昇している。実データ受信速度Ｖの上昇後、非候補ポートが無効化される。図中の第１時間Ｔ５１は、非候補ポートが無効化された時間を示している。
【００９８】
図６（Ｂ）のパターンと同様に、ループが無い場合の第１パターンＶ５１では、非候補ポートが無効化されたことに応じて、候補ポートの実データ受信速度Ｖが降下する（実データ受信速度Ｖは、第３閾値Ｔｈ３よりも小さくなる）。ループが有る場合の第２パターンＶ５２では、非候補ポートが無効化されたにも拘わらずに、候補ポートの実データ受信速度Ｖは、ほとんど降下せずに、おおよそ一定値に維持されている。このようにループが有る場合と無い場合との間で、非候補ポートを無効にした場合の実データ受信速度Ｖの変化に差が生じる理由は、図２、図６（Ｂ）で説明した通りである。すなわち、ループが形成されていない場合であっても、第２スイッチ１２０を通るデータ転送が始まることによって、実データ受信速度Ｖは最大受信速度Ｍ１に近い速度まで急激に上昇し得る。第２スイッチ１２０は、そのようなデータ転送（データ中継）を、候補ポートと非候補ポートとを通じて、行う。従って、非候補ポートが無効になることによって、データ転送が止まるので、実データ受信速度Ｖは、急激にゼロ近くまで低下する。一方、第２スイッチ１２０を通らないループが形成された場合には、実データ受信速度Ｖは急激に最大受信速度Ｍ１近くまで上昇する。その後、非候補ポートを無効にしたとしても、ループから候補ポートに短時間に大量のフレームが届き続けるので、実データ受信速度Ｖは、ほとんど下がらずに高い値に維持される。
【００９９】
図７（Ａ）のステップＳ３１５では、監視部３０２は、少なくとも、非候補ポートが無効化されてから所定時間Ｔ５０の経過後の第２時間Ｔ５２で、候補ポートの実データ受信速度Ｖを算出する。監視部３０２は、算出した実データ受信速度Ｖを、判定部３０４に通知する。なお、本実施例では、所定時間Ｔ５０は、判定精度が向上するように予め実験的に決定されている。次のステップＳ３１７では、ステップＳ３１５の完了に応じて、ポート制御部３０６は、非候補ポートを有効化する。
【０１００】
次のステップＳ３３０では、判定部３０４は、ステップＳ３１５で算出された実データ受信速度Ｖが第３閾値Ｔｈ３より大きいか否かを判定する（要件Ｃｅ）。第５実施例では、判定部３０４は、非候補ポートを無効化した状態での実データ受信速度Ｖの違いを、第３閾値Ｔｈ３によって判別している（この第３閾値Ｔｈ３は、図５の第３閾値Ｔｈ３と同様に決定されている）。なお、第１判定部３０４は、監視部３０２から受信したデータ（実データ受信速度Ｖ）のうちの、非候補ポートが無効化されてから所定時間Ｔ５０の経過後の第２時間Ｔ５２におけるデータを用いて判定を行う。
【０１０１】
候補ポートが判定条件を満たす場合には（Ｓ１１０：Ｙｅｓ、Ｓ３３０：Ｙｅｓ）、処理がステップＳ５００に移行する。ステップＳ５００の処理の終了に応じて、判定制御部２３０は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部２３０は、制御処理を終了する。なお、判定制御部２３０は、制御処理を繰り返し実行する。
【０１０２】
以上のように、第５実施例では、図７（Ｂ）のパターンＶ５１、Ｖ５２のように、急激に実データ受信速度Ｖが上昇した場合であっても、判定部３０４は、非候補ポートを無効にした状態で、実データ受信速度Ｖが比較的大きい場合と、実データ受信速度Ｖが比較的小さい場合とを区別する。この結果、判定の精度が向上する。例えば、不具合（例えば、意図しないループ）が無いにも拘わらずに第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで実データ受信速度Ｖが上昇した場合に、不具合が有ると誤判定する可能性を低減できる。特に、第５実施例では、要件Ｃｅは、実データ受信速度Ｖの上昇の後の、非候補ポートを無効にした状態での、実データ受信速度Ｖに条件を課している。上述のように、第２スイッチ１２０を通らないループが形成された場合には、非候補ポートを無効にしたとしても、実データ受信速度Ｖは、低下せずに、高い値に維持される。従って、非候補ポートを無効にした後も、実データ受信速度Ｖが比較的速い場合には、ループが形成されている可能性が高い。一方、第２スイッチ１２０を通らないループが形成されていない場合にも、サイズの大きなデータの転送が始まることによって、実データ受信速度Ｖが急激に最大受信速度Ｍ１に近い値（第３閾値Ｔｈ３よりも速い値）に上昇し得る。ただし、非候補ポートを無効にすることによって、実データ受信速度Ｖは急激にゼロ近くまで低下する。従って、非候補ポートを無効した後に、実データ受信速度Ｖが比較的遅い場合には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。従って、要件Ｃｅを追加することによって、第２スイッチ１２０を経由しないループが有るか否かの判定精度が、向上する。
【０１０３】
なお、本実施例では、ポート制御部３０６は、実データ受信速度Ｖの上昇が終了したことに応じて、非候補ポートを無効化する。この代わりに、ポート制御部３０６は、要件Ｃａが満たされたことに応じて、実データ受信速度Ｖの上昇が終了する前に、非候補ポートを無効化してもよい。いずれの場合も、要件Ｃｅは、実データ受信速度Ｖの上昇後の実データ受信速度Ｖに従って判定される、ということができる。
【０１０４】
Ｆ．第６実施例：
図８（Ａ）は、判定制御部２３０（図１）によって実行される制御処理の別の実施例のフローチャートである。第６実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃｆが満たされることである。
（要件Ｃｆ）単位時間変化量Ｄがゼロ以上である状態が、実データ受信速度Ｖが上昇を開始してから少なくとも所定時間Ｔ６０に亘って継続する
【０１０５】
最初のステップＳ４００では、監視部３０２（図１）は、単位時間変化量Ｄを監視する。具体的には、監視部３０２は、少なくとも、実データ受信速度Ｖが上昇を開始してから所定時間Ｔ６０内において、実データ受信速度Ｖの算出と、単位時間変化量Ｄの算出とを、繰り返し実行する。監視部３０２は、算出した単位時間変化量Ｄを判定部３０４に通知する。
【０１０６】
次のステップＳ４１０では、判定部３０４は、単位時間変化量Ｄがゼロ以上である状態が、実データ受信速度Ｖが上昇を開始してから所定時間Ｔ６０に亘って継続したか否かを判定する（要件Ｃｆ）。判定部３０４は、単位時間変化量Ｄがゼロまたは負値から正値に変化したことを、実データ受信速度Ｖの上昇開始とみなす。そして、判定部３０４は、監視部３０２から受信したデータ（単位時間変化量Ｄ）のうちの、実データ受信速度Ｖが上昇を開始してから所定時間Ｔ６０内のデータを用いて判定を行う。
【０１０７】
図８（Ｂ）は、実データ受信速度Ｖの変化パターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ６１は、ループが無い場合のパターンの例を示し、第２パターンＶ６２は、ループが有る場合のパターンの例を示している。両パターンＶ６１、Ｖ６２において、実データ受信速度Ｖは、第１時間Ｔ６１に上昇を開始し、最大受信速度Ｍ１近くまで上昇している（単位時間変化量Ｄ＞ゼロ）。図中の第２時間Ｔ６２は、第１時間Ｔ６１から所定時間Ｔ６０が経過した時間である。
【０１０８】
ループが無い場合の第１パターンＶ６１では、実データ受信速度Ｖは、上昇した後に、降下している。この降下は、第１時間Ｔ６１から所定時間Ｔ６０経過する前に（第２時間Ｔ６２よりも前に）、生じている（要件Ｃｆが満たされない）。一方、ループが有る場合の第２パターンＶ６２では、実データ受信速度Ｖは、上昇した後に、降下せずに、一定値に維持されている。実データ受信速度Ｖが降下せずに上昇または維持する状態（すなわち、単位時間変化量Ｄがゼロ以上の状態）は、第１時間Ｔ６１に始まり、第１時間Ｔ６１から所定時間Ｔ６０を経過するまで継続している（要件Ｃｆが満たされる）。
【０１０９】
このように、ループが有る場合と無い場合との間で、実データ受信速度Ｖの変化に差が生じる理由は、図２で説明した通りである。すなわち、ループが形成された場合には、ループが解消するまで、実データ受信速度Ｖが下がりにくい。従って、単位時間変化量Ｄがゼロ以上である状態が、比較的長時間に亘って継続する場合には、ループが形成されている可能性が高い。一方、大きなサイズのデータ転送が行われる場合には、実データ受信速度Ｖが上昇するものの、データ転送に付随する種々の処理（例えば、確認応答や経路選択等）、または、データ転送の完了に起因して、実データ受信速度Ｖが低減し得る。従って、単位時間変化量Ｄがゼロ以上である状態が、比較的短時間で終了する場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。
【０１１０】
少なくとも１つのポートが判定条件を満たす場合には（Ｓ４１０：Ｙｅｓ）、処理がステップＳ５００に移行する。このステップＳ５００は、図３（Ａ）のステップＳ５００と同じである。ステップＳ５００の処理の終了に応じて、判定制御部２３０は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部２３０は、制御処理を終了する。なお、判定制御部２３０は、制御処理を繰り返し実行する。すなわち、監視部３０２は、各ポートの単位時間変化量Ｄの算出を継続的に行い、判定部３０４は、要件Ｃｆが成立するか否かの判定を、継続的に行う。
【０１１１】
以上のように、第６実施例では、図８（Ｂ）のパターンＶ６１、Ｖ６２のように、実データ受信速度Ｖが上昇した場合であっても、判定部３０４は、所定時間Ｔ６０よりも短い期間中だけ実データ受信速度Ｖが上昇し、続けて、実データ受信速度Ｖが降下する場合と、所定時間Ｔ６０に亘って実データ受信速度Ｖが降下せずに上昇または維持し続ける場合とを区別する。上述したように、所定時間Ｔ６０の期間に亘って実データ受信速度Ｖが降下しない場合には、ループが形成されている可能性が高く、所定時間Ｔ６０の期間の途中で実データ受信速度Ｖが降下する場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。この結果、判定の精度が向上する。例えば、不具合（例えば、意図しないループ）が無いにも拘わらずに実データ受信速度Ｖが短時間の間だけ上昇（例えば、最大受信速度Ｍ１近くまで上昇）した場合に（例えば、大容量のデータファイルの転送が行われた場合に）、不具合が有ると誤判定する可能性を低減できる。
【０１１２】
なお、本実施例の要件Ｃｆに、上述の種々の実施例の要件を組み合わせてもよい。例えば、図３に示す実施例の要件Ｃａを本実施例に適用してもよい（すなわち、不具合があると判定するための条件が、要件Ｃａと要件Ｃｆとの両方が満たされることであってよい）。
【０１１３】
Ｇ．第７実施例：
図９（Ａ）は、判定制御部２３０（図１）によって実行される制御処理の別の実施例のフローチャートである。第７実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃｇが満たされることである。
（要件Ｃｇ）２次変化量ｄＤがゼロより大きい状態が、実データ受信速度Ｖが上昇を開始してから少なくとも所定時間Ｔ７０に亘って継続する
２次変化量ｄＤは、単位時間変化量Ｄの単位時間当たりの変化量を意味している。正値の２次変化量ｄＤは、実データ受信速度Ｖの経時変化の傾き（すなわち、単位時間変化量Ｄ）が増加することを意味し、負値の２次変化量ｄＤは、実データ受信速度Ｖの経時変化の傾き（単位時間変化量Ｄ）が減少することを意味し、ゼロの２次変化量ｄＤは、実データ受信速度Ｖの経時変化の傾き（単位時間変化量Ｄ）が変化せずに維持されることを意味している。
【０１１４】
最初のステップＳ４０５では、監視部３０２（図１）は、ポート毎の単位時間変化量Ｄと２次変化量ｄＤとを監視する。具体的には、監視部３０２は、実データ受信速度Ｖの算出を繰り返すことによって、単位時間変化量Ｄを算出する。そして、監視部３０２は、単位時間変化量Ｄの算出を繰り返すことによって、２次変化量ｄＤを算出する。本実施例では、監視部３０２は、最新の単位時間変化量Ｄから、前回に算出した単位時間変化量Ｄを引いた差分を、２次変化量ｄＤとして採用する。監視部３０２は、算出した２次変化量ｄＤを、判定部３０４に通知する。
【０１１５】
次のステップＳ４２０では、判定部３０４は、２次変化量ｄＤがゼロより大きい状態が、実データ受信速度Ｖが上昇を開始してから少なくとも所定時間Ｔ７０に亘って継続したか否かを判定する（要件Ｃｇ）。なお、所定時間Ｔ７０は、判定精度が向上するように予め実験的に決定されている。また、本実施例では、判定部３０４は、単位時間変化量Ｄがゼロまたは負値から正値に変化したことを、実データ受信速度Ｖの上昇の開始とみなす。そして、判定部３０４は、監視部３０２から受信したデータ（２次変化量ｄＤ）のうちの、実データ受信速度Ｖが上昇を開始してから所定時間Ｔ７０の間のデータを用いて、判定を行う。
【０１１６】
図９（Ｂ）、図９（Ｃ）は、実データ受信速度Ｖの変化パターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ７１は、ループが無い場合のパターンの例を示し、第２パターンＶ７２は、ループが有る場合のパターンの例を示している。両パターンＶ７１、Ｖ７２において、実データ受信速度Ｖは、第１時間Ｔ７１に上昇を開始し、最大受信速度Ｍ１近くまで上昇している。図中の第２時間Ｔ７２は、第１時間Ｔ７１から所定時間Ｔ７０が経過した時間である。
【０１１７】
ループが無い場合の第１パターンＶ７１では、実データ受信速度Ｖは、上昇した後に、降下している。ループが無い場合には、実データ受信速度Ｖの変化が、通信に関連して実行される処理（例えば、応答確認等のデータ送信装置またはデータ受信装置での処理、または、宛先選択等の中継装置での処理）の進捗状況によって制限される。従って、実データ受信速度Ｖが、上昇から降下まで、急激ではなくゆっくり変化する可能性が高い。この場合、単位時間変化量Ｄは、正値から徐々に負値に変化する。図９（Ｂ）の例では、第３時間Ｔ７３において、２次変化量ｄＤが正値から負値に変化している。この第３時間Ｔ７３は、第１時間Ｔ７１と第２時間Ｔ７２との間の時間である。従って、第１パターンＶ７１は、要件Ｃｇを満たさない。
【０１１８】
一方、ループが有る場合の第２パターンＶ７２では、実データ受信速度Ｖは、第１時間Ｔ７１から第４時間Ｔ７４まで、累進的に上昇する。第４時間Ｔ７４以降は、実データ受信速度Ｖは、おおよそ一定値に維持されている。この第４時間Ｔ７４は、第３時間Ｔ７３よりも後であるので、第２パターンＶ７２は、要件Ｃｇを満たしている。
【０１１９】
２次変化量ｄＤが正値である状態が比較的長時間に亘って継続する場合には、ループが形成されている可能性が高い。一方、２次変化量ｄＤが正値である状態が比較的短時間で終了する場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。
【０１２０】
少なくとも１つのポートが判定条件を満たす場合には（Ｓ４２０：Ｙｅｓ）、処理がステップＳ５００に移行する。ステップＳ５００の処理は、図１（Ａ）のステップＳ５００の処理と同じである。ステップＳ５００の処理の終了に応じて、判定制御部２３０は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部２３０は、制御処理を終了する。なお、判定制御部２３０は、制御処理を繰り返し実行する。すなわち、監視部３０２は、各ポートの２次変化量ｄＤの算出を継続的に行い、判定部３０４は、要件Ｃｇが成立するか否かの判定を、継続的に行う。
【０１２１】
以上のように、第７実施例では、図９（Ｂ）のパターンＶ７１、Ｖ７２のように実データ受信速度Ｖが上昇した場合であっても、判定部３０４は、所定時間Ｔ７０の間に亘って実データ受信速度Ｖが累進的に上昇し続ける場合と、所定時間Ｔ７０の途中で実データ受信速度Ｖの上昇の傾きが緩やかになる場合とを区別する。上述したように、実データ受信速度Ｖが累進的に上昇し続ける場合には、ループが形成されている可能性が高く、実データ受信速度Ｖの上昇の傾きが緩やかになる場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。この結果、判定の精度が向上する。例えば、不具合（例えば、意図しないループ）が無いにも拘わらずに実データ受信速度Ｖが短時間の間だけ累進的に上昇した場合に、不具合が有ると誤判定する可能性を低減できる。
【０１２２】
なお、本実施例では、図９（Ｃ）に示すように、実データ受信速度Ｖが最大受信速度Ｍ１近くまで上昇するよりも前に（第４時間Ｔ７４よりも前に）、判定部３０４は、不具合（例えば、意図しないループ）を検出可能である。従って、ポート制御部３０６は、第４時間Ｔ７４よりも前にステップＳ５００を実行可能である。これにより、実データ受信速度Ｖが最大受信速度Ｍ１近くまで上昇する可能性が低減される。この結果、第２スイッチ１２０の負荷が過剰に高くなる可能性を低減できる。また、第２スイッチ１２０を通じて他のネットワークに過剰な負荷が伝搬することを抑制できる。
【０１２３】
なお、本実施例の要件Ｃｇに、上述の種々の実施例の要件を組み合わせてもよい。例えば、図３に示す実施例の要件Ｃａを本実施例に適用してもよい（すなわち、不具合があると判定するための条件が、要件Ｃａと要件Ｃｇとの両方が満たされることであってよい）。
【０１２４】
Ｈ．第８実施例：
図１０（Ａ）は、判定制御部２３０（図１）によって実行される制御処理の別の実施例のフローチャートである。図１０（Ａ）において、第１実施例（図３（Ａ））のステップと同じステップには、同じ符号を付している。図１０（Ａ）の第８実施例と、図３（Ａ）の第１実施例との間の差異は、第８実施例では、ステップＳ１００とステップＳ１１０との間にステップＳ１０８が追加され、さらに、ステップＳ１１０とステップＳ５００との間にステップＳ１２０が追加されている点だけである。
【０１２５】
第８実施例では、ネットワークに不具合（例えば、意図しないループ）が有ると判定するための判定条件は、以下の要件Ｃａ、Ｃｈが満たされることである。
（要件Ｃａ）単位時間変化量Ｄが第１閾値Ｔｈ１より大きい（ステップＳ１１０）
（要件Ｃｈ）実データ受信速度Ｖの上昇時に、同じフレームが連続する（ステップＳ１２０）
【０１２６】
図１０（Ｂ）は、実データ受信速度Ｖの変化パターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ８１は、ループが無い場合のパターンの例を示し、第２パターンＶ８２は、ループが有る場合のパターンの例を示している。両パターンＶ８１、Ｖ８２において、第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで、実データ受信速度Ｖが上昇している。図中のフレーム列ＦＳ１、ＦＳ２は、それぞれ、実データ受信速度Ｖの上昇中にポートが受信するフレームの例を示している。第１フレーム列ＦＳ１は、第１パターンＶ８１のフレーム列を示し、第２フレーム列ＦＳ２は、第２パターンＶ８２のフレーム列を示している。各フレーム列ＦＳ１、ＦＳ２に示された符号Ａ〜Ｒは、互いに異なるフレームを表している。
【０１２７】
ループが無い場合の第１フレーム列ＦＳ１は、１つのポートが次々と異なるフレームＡ〜Ｒを受信することを示している。一方、ループが有る場合の第２フレーム列ＦＳ２は、１つのポートが、異なるフレームＢ〜Ｅに加えて、同じフレームＡを連続して受信することを示している。同じフレームの連続は、ループによって引き起こされ得る。本実施例では、同じフレームが連続すること（要件Ｃｈ）が、不具合（例えば、意図しないループ）が有ると判定するための要件の１つである。
【０１２８】
ステップＳ１００（図１０（Ａ））の次のステップＳ１０８では、監視部３０２（図１）は、第２スイッチ１２０によって受信されたフレームのＦＣＳ（Frame Check Sequence）を監視する。具体的には、監視部３０２は、ＦＣＳを取得してＲＡＭ２３６に格納する。後述するように、ＦＣＳは、フレームの同定に利用される。よく知られているように、ＭＡＣフレームのＦＣＳは、宛先ＭＡＣアドレスと、送信元ＭＡＣアドレスと、フレーム長と、データ（ペイロード）とを含む複数のフィールドから計算される。同じフレームからは同じＦＣＳが算出される。一方、宛先ＭＡＣアドレスと、送信元ＭＡＣアドレスと、フレーム長と、データ（ペイロード）とのうちの少なくとも一部が異なるフレームからは、異なるＦＣＳが算出される（異なるフレームから同じＦＣＳが算出される可能性は非常に小さい）。
【０１２９】
ステップＳ１０８では、監視部３０２は、現時点に至る所定時間内に受信した全てのフレームのＦＣＳをＲＡＭ２３６に保持する。例えば、監視部３０２は、現在から１秒前までの間に受信した全てのフレームのＦＣＳをＲＡＭ２３６に保持する。監視部３０２は、時間の経過に伴って、古いフレームのＦＣＳをＲＡＭ２３６から消去し、新しく受信されたフレームのＦＣＳをＲＡＭ２３６に格納する。なお、監視部３０２は、ＦＣＳの取得とＲＡＭ２３６への格納とを、休まずに継続的に行う。
【０１３０】
次のステップＳ１１０は、図３（Ａ）のステップＳ１１０と同じである（要件Ｃａ）。単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きい場合には（Ｓ１１０：Ｙｅｓ）、次のステップＳ１２０で、判定部３０４は、候補ポートが同じフレームを連続して受信したか否かを判定する（要件Ｃｈ）。本実施例では、候補ポートは、第１閾値Ｔｈ１よりも大きい単位時間変化量Ｄで実データ受信速度Ｖが上昇したポートである。判定部３０４は、ＲＡＭ２３６に格納されたＦＣＳを用いて、同じフレームが続いたか否かを判定する。本実施例では、判定部３０４は、単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きい期間において、同じフレームが少なくとも２つ続く場合に、要件Ｃｈが満たされると判定する。
【０１３１】
候補ポートが判定条件を満たす場合には（Ｓ１１０：Ｙｅｓ、Ｓ１２０：Ｙｅｓ）、ステップＳ５００が実行される。ステップＳ５００の処理の終了に応じて、判定制御部２３０は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部２３０は、制御処理を終了する。なお、判定制御部２３０は、制御処理を繰り返し実行する。
【０１３２】
以上のように、第８実施例では、図１０（Ｂ）のパターンＶ８１、Ｖ８２のように、急激に実データ受信速度Ｖが上昇した場合であっても、判定部３０４は、同じフレームが連続する場合と、同じフレームが連続しない場合とを区別する。この結果、判定の精度が向上する。例えば、不具合（例えば、意図しないループ）が無いにも拘わらずに第１閾値Ｔｈ１よりも大きな単位時間変化量Ｄで実データ受信速度Ｖが上昇した場合に、不具合が有ると誤判定する可能性を低減できる。特に、第８実施例では、判定条件が要件Ｃｈを含むので、第２スイッチ１２０を経由しないループが有るか否かの判定精度が、向上する。
【０１３３】
Ｉ．第９実施例：
図１１（Ａ）は、判定制御部の別の実施例を示すブロック図である。図１１（Ａ）の判定制御部２３０Ｂと、図１の判定制御部２３０との間の差異は、図１１（Ａ）の判定制御部２３０Ｂには、第２判定部３０８としての機能が追加されている点だけである。本実施例の判定制御部２３０Ｂのハードウェア構成は、図１の判定制御部２３０と同じである（図１１（Ａ）では、ＣＰＵ２３４とＲＯＭ２３８とのみが示され、他の要素の図示が省略されている）。判定制御部２３０ＢのＲＯＭ２３８は、更に、第２判定部３０８の機能を実現するためのプログラムを格納している。以下、判定部３０４を「第１判定部３０４」とも呼ぶ。
【０１３４】
図１１（Ｂ）は、第２判定部３０８によって実行される継続判定処理のフローチャートである。この継続判定処理では、ネットワークに不具合（例えば、意図しないループ）がいまだに有るか否かが判定される。第２判定部３０８は、第１判定部３０４によってネットワークに不具合が有ると判定されたことに応じて、この継続判定処理を定期的に実行する。なお、第１判定部３０４は、上述の各実施例と同様に、不具合が有るか否かを判定する。
【０１３５】
最初のステップＳ６００では、監視部３０２が、対象ポートにおける実データ受信速度Ｖと単位時間変化量Ｄの絶対値とを監視する。監視部３０２は、上述の各実施例と同様に、実データ受信速度Ｖと単位時間変化量Ｄとを算出し、算出した情報を第２判定部３０８に通知する。対象ポートの電源がオフになっている場合には、ポート制御部３０６は、対象ポートの電源をオンにする指示を通信インタフェース２１０に送信して、監視部３０２がデータを取得する間、対象ポートの電源をオンにする。ただし、レイヤ２制御部２２０は、対象ポートを介する通信の中継を行わないことが好ましい。
【０１３６】
次のステップＳ６１０、Ｓ６２０では、第２判定部３０８は、不具合（例えば、意図しないループ）がいまだに有るか否かを判定する。本実施例では、不具合がいまだに有ると判定するための条件（継続条件と呼ぶ）は、以下の要件Ｃ１、Ｃ２が満たされることである。
（要件Ｃ１）単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２未満である（ステップＳ６１０）
（要件Ｃ２）実データ受信速度Ｖが第３閾値Ｔｈ３より大きい（ステップＳ６２０）
第２閾値Ｔｈ２と第３閾値Ｔｈ３とは、図４、図５の実施例の閾値Ｔｈ２、Ｔｈ３と、それぞれ同じである。
【０１３７】
図１１（Ｃ）は、実データ受信速度Ｖの変化パターンの例を示すグラフである。横軸は時間Ｔを示し、縦軸は実データ受信速度Ｖを示している。図中の第１パターンＶ９１は、ループが解消する場合のパターンの例を示し、第２パターンＶ９２は、ループがいまだに有る場合のパターンの例を示している。第１パターンＶ９１では、第１時間Ｔｒで、ネットワークのユーザがループを解消したこととしている（例えば、ユーザが図１のループ経路１５０を取り外す）。図中の判定時間Ｔａ、Ｔｂ、Ｔｃ、Ｔｄは、第２判定部３０８が継続判定処理を実行する時間を示している。第２判定部３０８は、継続判定処理を、所定時間Ｔｉ毎に、繰り返し実行する。
【０１３８】
ループがいまだに有る場合の第２パターンＶ９２では、実データ受信速度Ｖは、ほとんど変化せずに、第３閾値Ｔｈ３よりも大きな値を維持している。定期的に繰り返される継続判定処理では、単位時間変化量Ｄ（Ｄ９２）の絶対値は、第２閾値Ｔｈ２よりも小さく（要件Ｃ１が満たされる）、実データ受信速度Ｖは、第３閾値Ｔｈ３よりも大きい（要件Ｃ２が満たされる）。
【０１３９】
ループが解消する場合の第１パターンＶ９１では、ループが解消する第１時間Ｔｒよりも前には、第２パターンＶ９２と同様に、実データ受信速度Ｖは、ほとんど変化せずに、第３閾値Ｔｈ３よりも大きな値を維持している。実データ受信速度Ｖは、ループが解消した第１時間Ｔｒに、低下し始め、その後、実データ受信速度Ｖは、第３閾値Ｔｈ３よりも低くなっている。従って、第３の判定時間Ｔｃにおける継続判定処理では、単位時間変化量Ｄ（Ｄ９１）の絶対値は、第２閾値Ｔｈ２よりも大きく（要件Ｃ１が満たされない）、実データ受信速度Ｖは、第３閾値Ｔｈ３よりも小さい（要件Ｃ２が満たされない）。
【０１４０】
対象ポートが継続条件を満たす場合には（Ｓ６１０：Ｙｅｓ、Ｓ６２０：Ｙｅｓ）、ポート制御部３０６は対象ポートを有効化せずに、判定制御部２３０Ｂは、継続判定処理を終了する。対象ポートが継続条件を満たさない場合には（Ｓ６１０：Ｎｏ、または、Ｓ６２０：Ｎｏ）、処理は、ステップＳ７００に移行する。このステップＳ７００では、ポート制御部３０６は、対象ポートを有効化する。そして、判定制御部２３０Ｂは、継続判定処理を終了する。
【０１４１】
以上のように、対象ポートが継続条件を満たしていない場合には、ポート制御部３０６は、対象ポートを有効化する。このように、ネットワークの不具合（例えば、意図しないループ）が解消したことに応じて、判定制御部２３０Ｂは、自動的に、中継処理を復旧することができる。従って、判定制御部２３０Ｂは、ネットワークを管理するユーザの労力を、大幅に低減できる。
【０１４２】
Ｊ．第１０実施例：
図１２は、判定制御部２３０を有する装置の別の態様を示すブロック図である。図１に示す第１実施例の構成とは異なり、判定制御部２３０を有する判定装置３００Ｂは、中継装置とは別の装置である。この判定装置３００Ｂは、判定制御部２３０と、インタフェース２４８と、ディスプレイ２４９と、を有している。この判定装置３００Ｂは、中継装置（図１２では、第２スイッチ１２０Ｂ）に接続される。第２スイッチ１２０Ｂは、通信インタフェース２１０と、レイヤ２制御部２２０と、インタフェース２２８と、を有している。インタフェース２２８には、判定装置３００Ｂのインタフェース２４８が接続されている。本実施例では、これらのインタフェース２２８、２４８は、いわゆるＵＳＢインタフェースであるが、他の任意の通信インタフェースであってもよい。また、本実施例では、ディスプレイ２４９は、液晶ディスプレイであるが、他の任意のディスプレイ装置であってもよい。なお、図１２では、図１と同じ要素には、同じ符号を付している。第２スイッチ１２０Ｂ（レイヤ２制御部２２０）は、図１の第２スイッチ１２０と同様に、通信を中継する。
【０１４３】
判定装置３００ＢのＣＰＵ２３４は、監視部３０２Ｂと、判定部３０４Ｂと、報知部３０９Ｂと、を含む種々の処理部として動作する。ＲＯＭ２３８は、それらの処理部の機能をＣＰＵ２３４に実現させるためのプログラムを格納している（図示せず）。判定部３０４Ｂは、ネットワークに不具合（例えば、意図しないループ）が有るか否かを判定する。この判定としては、上述の任意の実施例の判定（判定部３０４による判定）を採用可能である。監視部３０２Ｂは、インタフェース２４８、２２８を介して、判定に利用される情報（例えば、実データ受信速度Ｖと、単位時間変化量Ｄ）を第２スイッチ１２０Ｂから取得する。レイヤ２制御部２２０は、判定装置３００Ｂからの要求に応じて、情報を判定装置３００Ｂ（監視部３０２Ｂ）に送信する。判定部３０４Ｂは、監視部３０２Ｂによって取得された情報を用いて、判定を行う。図６の要件Ｃｄ、または、図７の要件Ｃｅを利用する場合には、ステップＳ３００、Ｓ３１７で、ＣＰＵ２３４が、非候補ポートの無効化と有効化とを、レイヤ２制御部２２０に指示する（ＣＰＵ２３４が、図１のポート制御部３０６としても動作する）。この代わりに、レイヤ２制御部２２０が、判定装置３００Ｂによって行われる判定の進捗状況に応じて、自発的に、非候補ポートを無効と有効とを切り替えてもよい。報知部３０９Ｂは、判定結果（例えば、対象ポートの識別情報）を、ディスプレイ２４９に表示する。ユーザは、ディスプレイ２４９を観察することによって、どのポートに接続されたネットワークに不具合が有るのかを、確認することができる。
【０１４４】
このように、中継装置とは異なる判定装置３００Ｂが、判定制御部２３０を有していても良い。ここで、判定制御部２３０のインタフェース２４８が、通信インタフェース２１０のポートに接続されてもよい。この場合には、監視部３０２Ｂは、専用のプロトコルに従って、レイヤ２制御部２２０から情報を取得する。また、上述の各実施例の制御処理においても、判定結果をユーザに報知する処理が行われても良い。判定結果の報知は、ＬＥＤやディスプレイを用いた表示であってもよく、また、ブザーやスピーカを用いた音による報知であってもよい。このような報知が行われる場合には、ステップＳ５００（対象ポートの無効化）が省略されてもよい。
【０１４５】
Ｋ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１４６】
変形例１：
上述の各実施例において、実データ受信速度Ｖとしては、ＭＡＣフレームのフレーム長に基づいて算出される値に限らず、単位時間に実際に受信したデータの量を表す任意の値を用いることができる。また、通信プロトコルが階層化されている場合には、任意の層のパケット（フレーム）のデータ量から、実データ受信速度Ｖが算出されてもよい。例えば、実データ受信速度Ｖは、単位時間に実際に受信したＭＡＣフレームの総数であってもよく、単位時間に実際に受信したＩＰ（Internet Protocol）パケットの総数であってもよい。また、実データ受信速度Ｖは、フレームまたはパケットのペイロード長から算出されてもよく、ヘッダを含む全データの量から算出されてもよい。また、上記各実施例では、実データ受信速度を規定する単位時間は、１ｍｓｅｃであるが、予め決められた他の任意の時間であってもよい。
【０１４７】
変形例２：
上記各実施例において、中継装置は、レイヤ２スイッチに限らず、複数の通信ポートを有し、通信を中継する任意の装置であってもよく、例えば、レイヤ３スイッチでも、ルータでもよい。通信ポートは、物理ポートの代わりに、仮想的なポートであってもよい。仮想的なポートとしては、例えば、いわゆるリンクアグリゲーションの論理ポートが挙げられる。リンクアグリゲーションは、複数の物理ポート（回線）を束ねて１つの論理的なポート（回線）として扱う技術である。
【０１４８】
変形例３：
上述の要件Ｃａ（例えば、図３（Ａ））には、種々の変形が可能である。例えば、要件Ｃａは、所定期間内に亘って、単位時間変化量Ｄ＞第１閾値Ｔｈ１が継続することであってもよい。
【０１４９】
変形例４：
上述の要件Ｃｂ（例えば、図４（Ａ））には、種々の変形が可能である。単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２未満であることを要する期間（第１判定期間と呼ぶ）は、実データ受信速度の上昇の終了後の種々の期間（特定の期間）であってよい。例えば、第１判定期間の開始時間は、実データ受信速度Ｖの上昇が終了してから所定時間が経過した時間であってよい。また、第１判定期間の終了時間は、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが大きいほど、第１判定期間が短くなるように、動的に決定されてもよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Ｃｂのみであってもよい。この場合には、要件Ｃｂは、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きいか否かに拘わらずに、実データ受信速度Ｖの上昇の終了後の特定の期間（第１判定期間）内において、単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２未満であること、であってもよい。
【０１５０】
変形例５：
上述の要件Ｃｃ（例えば、図５（Ａ））には、種々の変形が可能である。例えば、要件Ｃｃは、実データ受信速度Ｖの上昇後の特定期間（第２判定期間と呼ぶ）内に亘って、実データ受信速度Ｖ＞第３閾値Ｔｈ３が継続することであってもよい。こうすれば、上昇後の実データ受信速度Ｖが飽和する場合と、そうでは無い場合とが区別されるので、判定の精度を向上することができる。ここで、第２判定期間は、実データ受信速度Ｖの上昇後の種々の期間であってよい。例えば、第２判定期間の開始時間は、実データ受信速度Ｖの上昇開始から所定時間が経過した時間（上昇終了前であり得る）であってよく、実データ受信速度Ｖの上昇が終了した時間であってよい。また、第２判定期間の終了時間は、第２判定期間の開始から所定時間が経過した時間であってよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Ｃｃのみであってもよい。この場合には、要件Ｃｃは、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きいか否かに拘わらずに、実データ受信速度Ｖの上昇の終了時の実データ受信速度Ｖが第３閾値Ｔｈ３よりも大きいこと、であってよい。この代わりに、要件Ｃｃは、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きいか否かに拘わらずに、実データ受信速度Ｖの上昇の終了後の特定の期間（第２判定期間）内において、実データ受信速度Ｖが第３閾値Ｔｈ３よりも大きいこと、であってよい。
【０１５１】
変形例６：
上述の要件Ｃｄ（例えば、図６（Ａ））には、種々の変形が可能である。例えば、単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２未満であることを要する期間（第３判定期間と呼ぶ）は、実データ受信速度の上昇後の、非候補ポートが無効された状態における、種々の期間（特定の期間）であってよい。例えば、第３判定期間の開始時間は、非候補ポートを無効にしてから所定時間が経過した時間であってもよい。また、第３判定期間の終了時間は、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが大きいほど、期間が短くなるように、動的に決定されてもよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Ｃｄのみであってもよい。この場合には、要件Ｃｄは、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きいか否かに拘わらずに、実データ受信速度Ｖの上昇後の、非候補ポートを無効にした状態における、特定の期間（第３判定期間）内において、単位時間変化量Ｄの絶対値が第２閾値Ｔｈ２未満であること、であってよい。ここで、実データ受信速度Ｖの上昇したポートが候補ポートであり、その候補ポート以外のポートが非候補ポートである。候補ポートの総数が複数である場合には、１つの候補ポート毎に、判定を行えばよい。非候補ポートを無効するタイミングは、実データ受信速度Ｖの上昇の途中であってもよく、実データ受信速度Ｖの上昇が終了した後であってもよい。いずれの場合も、要件Ｃｄは、実データ受信速度Ｖの上昇後の単位時間変化量Ｄの絶対値に従って判定される、ということができる。
【０１５２】
変形例７：
上述の要件Ｃｅ（例えば、図７（Ａ））には、種々の変形が可能である。例えば、要件Ｃｅは、実データ受信速度Ｖの上昇後の、非候補ポートが無効な状態における特定期間（第４判定期間と呼ぶ）内に亘って、実データ受信速度Ｖ＞第３閾値Ｔｈ３が継続することであってもよい。こうすれば、不具合が無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。ここで、第４判定期間は、実データ受信速度Ｖの上昇後の、非候補ポートが無効な状態における種々の期間であってよい。例えば、第４判定期間の開始時間は、非候補ポートを無効にしてから所定時間が経過した時間であってよい。また、第４判定期間の終了時間は、第４判定期間の開始から所定時間が経過した時間であってよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Ｃｅのみであってもよい。この場合には、要件Ｃｅは、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きいか否かに拘わらずに、実データ受信速度Ｖの上昇後に、非候補ポートを無効にしてから所定時間の経過後において、実データ受信速度Ｖが第３閾値Ｔｈ３よりも大きいことであってよい。この代わりに、要件Ｃｅは、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きいか否かに拘わらずに、実データ受信速度Ｖの上昇後の、非候補ポートが無効な状態における特定期間（第４判定期間と呼ぶ）内において、実データ受信速度Ｖが第３閾値Ｔｈ３よりも大きいこと、であってよい。ここで、実データ受信速度Ｖの上昇したポートが候補ポートであり、その候補ポート以外のポートが非候補ポートである。候補ポートの総数が複数である場合には、１つの候補ポート毎に、判定を行えばよい。非候補ポートを無効するタイミングは、実データ受信速度Ｖの上昇の途中であってもよく、実データ受信速度Ｖの上昇が終了した後であってもよい。いずれの場合も、要件Ｃｅは、実データ受信速度Ｖの上昇後の実データ受信速度Ｖに従って判定される、ということができる。
【０１５３】
変形例８：
上述の要件Ｃｈ（例えば、図１０（Ａ））には、種々の変形が可能である。例えば、フレーム（パケットとも呼ばれる）の同定に利用される情報（同定情報と呼ぶ）は、ＦＣＳに限らず、他の種々の情報であってよい。例えば、同定情報は、パケットに含まれるデータの全体または一部であってもよく、所定のハッシュ関数にパケットのデータの少なくとも一部を入力して得られる値であってもよい。
【０１５４】
また、同じパケットが連続するか否かの判定に利用される期間（第５判定期間と呼ぶ）は、実データ受信速度Ｖが上昇を開始した後の種々の期間（特定の期間）であってよい。例えば、第５判定期間の開始時間は、実データ受信速度Ｖが上昇を開始した時間であってよい。また、第５判定期間の開始時間は、実データ受信速度Ｖの上昇が終了した時間であってもよい。第５判定期間の終了時間は、第５判定期間の開始から所定時間が経過した時間であってよい。いずれの場合も、要件Ｃｈは、この第５判定期間において同じパケットが少なくとも所定回数（２以上の整数）連続すること、であってよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Ｃｈのみであってもよい。この場合には、要件Ｃｈは、実データ受信速度Ｖの上昇時の単位時間変化量Ｄが第１閾値Ｔｈ１よりも大きいか否かに拘わらずに、実データ受信速度Ｖが上昇を開始した後の特定の期間（第５判定期間）において、同じパケットが少なくとも所定回数（２以上の整数）連続すること、であってよい。
【０１５５】
変形例９：
ネットワークに不具合が有ると判定するための判定条件の要件は、上述の各実施例の要件に限らず、種々の要件であってよい。例えば、判定条件の要件は、上述したように、要件Ｃａ〜Ｃｈから任意に選択された１つの要件であってよい。また、これらの要件Ｃａ〜Ｃｈは、互いに矛盾せずに、組み合わせることが可能である。従って、判定条件の要件は、上述の要件Ｃａ〜Ｃｈから任意に選択された複数の要件の組み合わせであってよい。ここで、各要件の判定に要する処理のタイミングをずらすことによって、複数の要件を１つずつ順番に判定してよい。例えば、以下の順番に各要件を判定してよい。
１）実データ受信速度Ｖの上昇時の要件（要件Ｃａ、Ｃｆ、Ｃｇ、Ｃｈ）
２）実データ受信速度Ｖの上昇後の要件（要件Ｃｂ、Ｃｃ、Ｃｈ）
３）非候補ポートを無効にした状態の要件（要件Ｃｄ、Ｃｅ）
例えば、要件Ｃｂ（図４）と要件Ｃｄ（図６）とを組み合わせる場合には、要件Ｃｂの判定の後に（図４のＳ２１０の後に）、要件Ｃｄの判定のための処理（図６のＳ３００〜Ｓ３２０の処理）を実行してよい。また、判定条件の要件は、実データ受信速度Ｖの経時変化のパターンが、予め準備された基準パターン（不具合が有る場合の典型的なパターン。例えば、図２（Ｂ）のパターン）と類似するという、パターンマッチング結果が得られること、を含んでも良い。また、判定条件の要件は、非候補ポートを無効にした状態における実データ受信速度Ｖの経時変化のパターンが、予め準備された基準パターンと類似するという、パターンマッチング結果が得られること、を含んでも良い。実データ受信速度Ｖの変化の経時変化のパターンが、図２（Ｂ）のように上昇後の変化が小さい基準パターンと類似する場合には、実データ受信速度Ｖの上昇後の低下の度合いが所定の基準よりも小さいということができる。ここで、監視部３０２、３０２Ｂは、実データ受信速度Ｖの経時変化のパターンを特定するために、定期的に実データ受信速度Ｖを取得（例えば、受信または算出）することが好ましい。
【０１５６】
上述の種々の要件（例えば、要件Ｃａ〜Ｃｈ、パターンマッチング）は、いずれも、実データ受信速度Ｖの変化のパターンにおけるループに起因する特徴に基づいている（例えば、実データ受信速度Ｖの急激な（加速度的な）上昇、実データ受信速度Ｖが最大受信速度Ｍ１近くまで上昇すること、上昇後に実データ受信速度Ｖがほとんど変化しないこと、等々）。それらの特徴は、データの宛先の種類が一部の種類であるパケット（例えば、ブロードキャストパケットとマルチキャストパケット）によって引き起こされるものである。しかし、ループが形成された場合には、実データ受信速度Ｖにおいて、上記一部の種類のパケットの占める割合が、他の種類のパケット（例えば、ユニキャストパケット）の占める割合と比べて、十分に大きい。従って、データの宛先（宛先の種類）を区別せずに算出された情報（例えば、実データ受信速度Ｖと単位時間変化量Ｄと２次変化量ｄＤ）を用いたとしても、適切な判定が可能である。そこで、上記各実施例では、監視部３０２は、データの宛先（宛先の種類）を区別せずに、判定に用いられる情報（例えば、実データ受信速度Ｖと単位時間変化量Ｄと２次変化量ｄＤ）を算出する。この結果、監視部３０２の構成を簡略化することができる。一般的には、データの宛先（宛先の種類）を区別せずに単位時間に実際に受信したデータの量を表す実データ受信速度に応じた判定を行うことによって、判定に利用される情報を生成するための構成を簡略化することができる。ただし、判定に利用される情報は、ブロードキャストパケットとマルチキャストパケットとの少なくとも一方のみから得られる情報であってもよい。
【０１５７】
変形例１０：
図１２の実施例において、報知部３０９Ｂによる判定結果の報知は、表示や音による報知に限らず、ユーザに判定結果を知らせる任意の処理であってよい。例えば、報知部３０９Ｂは、判定結果を表す電子メールを、通信装置に送信してもよい。いずれの場合も、報知される情報は、ネットワークに不具合が有るか否かを表す情報であってよい。例えば、報知される情報は、対象ポートを特定せずに、ネットワークに不具合が有ることを表してよい。また、判定結果を報知する報知部３０９Ｂを、図１の第２スイッチ１２０に組み込んでもよい。また、報知部３０９Ｂを、図１１（Ａ）の判定制御部２３０Ｂに組み込んでもよい。この場合、報知部３０９Ｂは、継続判定処理の結果を報知してよい。また、ネットワークに不具合が有るか否かの判定結果は、対象ポートの無効化と判定結果の報知とに限らず、任意の用途に適用可能である。例えば、ポート制御部３０６は、対象ポートの帯域幅を、ゼロよりも大きく最大受信速度Ｍ１よりも小さい値に制限してもよい。
【０１５８】
変形例１１：
上述の各実施例において、ポート制御部３０６（図１）は、ユーザの指示に応じて、無効化された対象ポートを有効化してよい。ユーザは、不具合を解消した後に、ポート制御部３０６に指示を入力すればよい。指示の入力は、例えば、図示しない操作パネルの操作であってよい。
【０１５９】
変形例１２
上述の各実施例において、監視部３０２、３０２Ｂは、種々の情報を用いて、判定に利用される情報を監視してよい。例えば、図１のカウンタ２２５が省略されて、監視部３０２がポート毎のデータ量をカウントしてもよい。また、図１２の実施例において、レイヤ２制御部２２０が、判定に必要な情報を算出し、監視部３０２Ｂは、算出された情報を第２スイッチ１２０Ｂから取得し、取得した情報をそのまま判定部３０４Ｂに通知してもよい。このように、監視部（例えば、監視部３０２、３０２Ｂ）は、判定に利用される情報を自分で算出することによって情報を監視してもよく、この代わりに、他の処理部によって算出された情報（判定に利用される情報）を、当該他の処理部から受け取ることによって、情報を監視してもよい。いずれの場合も、或る処理部が、判定に利用される情報を取得（例えば、受信または算出）して、取得した情報を判定部に提供（通知）するならば、その処理部は少なくともその情報を監視しているということができる。ここで、上記各実施例では、監視部（監視部３０２、３０２Ｂ）は、情報の監視を継続的に行っている。このかわりに、監視部は、判定に要する期間に限って、必要な情報を監視してもよい。例えば、図９の実施例では、監視部３０２は、２次変化量の監視を、所定時間Ｔ７０の期間内に限ってもよい。
【０１６０】
変形例１３：
不具合がいまだに有ると判定するための条件（継続条件）は、図１１に示す要件Ｃ１、Ｃ２を含む条件に限らず、種々の条件であってよい。例えば、継続条件は、判定条件の要件Ｃｂ〜Ｃｅから選択された要件を含んでもよい。また、継続条件は、対象ポートが同じパケットを連続して受信すること、を要件として含んでもよい。
【０１６１】
変形例１４：
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図１の判定部３０４の機能を、専用のハードウェア回路によって実現してもよい。
【０１６２】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア（コンピュータプログラム）は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
【符号の説明】
【０１６３】
１１０...第１スイッチ
１２０、１２０Ｂ...第２スイッチ
１３０...第３スイッチ
１４０...パーソナルコンピュータ
１５０...ループ経路
２１０...通信インタフェース
２２０...レイヤ２制御部
２２５...カウンタ
２２８...インタフェース
２３０、２３０Ｂ...判定制御部
２３２...タイマ
２３４...ＣＰＵ
２４８...インタフェース
２４９...ディスプレイ
３００Ｂ...判定装置
３０２、３０２Ｂ...監視部
３０４、３０４Ｂ...判定部（第１判定部）
３０６...ポート制御部
３０８...第２判定部
３０９Ｂ...報知部
１０００...ネットワークシステム
ＮＴ...広域ネットワーク
Ｐ１１〜Ｐ１６、Ｐ２１〜Ｐ２６、Ｐ３１〜Ｐ３６...ポート
【図１】
2013017079.tif 000003
【図２】
2013017079.tif 000004
【図３】
2013017079.tif 000005
【図４】
2013017079.tif 000006
【図５】
2013017079.tif 000007
【図６】
2013017079.tif 000008
【図７】
2013017079.tif 000009
【図８】
2013017079.tif 000010
【図９】
2013017079.tif 000011
【図１０】
2013017079.tif 000012
【図１１】
2013017079.tif 000013
【図１２】
2013017079.tif 000014