JP2013017079A - 判定装置、判定方法、および、プログラム - Google Patents

判定装置、判定方法、および、プログラム Download PDF

Info

Publication number
JP2013017079A
JP2013017079A JP2011149144A JP2011149144A JP2013017079A JP 2013017079 A JP2013017079 A JP 2013017079A JP 2011149144 A JP2011149144 A JP 2011149144A JP 2011149144 A JP2011149144 A JP 2011149144A JP 2013017079 A JP2013017079 A JP 2013017079A
Authority
JP
Japan
Prior art keywords
data reception
actual data
reception speed
determination
loop
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011149144A
Other languages
English (en)
Inventor
Yoshiki Nagato
良樹 永戸
Tomoharu Niimi
友春 新美
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Buffalo Inc
Original Assignee
Buffalo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Buffalo Inc filed Critical Buffalo Inc
Priority to JP2011149144A priority Critical patent/JP2013017079A/ja
Publication of JP2013017079A publication Critical patent/JP2013017079A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】不具合の判定の精度を向上することができる技術を提供する。
【解決手段】実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第1閾値を超えて、実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する。
【選択図】 図3

Description

本発明は、判定装置、判定方法、および、プログラムに関するものである。
コンピュータ等の電子装置が他の電子装置とデータ通信を行うために、ネットワークが利用されている。ネットワークに関連して、種々の不具合が生じ得る。例えば、通信ケーブルの誤接続などに起因して、意図しないループが形成され得る。このようなループが有るか否かを判定することは、ネットワークの管理にとって、有用である。ループが有るか否かを判定する方法として、種々の方法が提案されている。例えば、単位時間あたりのノンユニキャストパケット受信量をネットワークごとに算出し、算出されたノンユニキャストパケット受信量が所定の閾値より大きい場合に、ネットワークを被疑ネットワーク(レイヤ2ループ)として検出する方法が提案されている。
特開2006−217496号公報 特開2008−92118号公報
ところが、近年は、ネットワークを介して伝送されるデータ量が増加する傾向にある。従って、ネットワークにループ等の不具合が無い場合であっても、通信負荷は高くなり得る。この結果、単位時間当たりに受信するパケット量(例えば、ノンユニキャストパケットの受信量)を所定の閾値と比較して判定を行う場合には、不具合が無いにも拘わらずに、不具合が有ると誤判定する場合があった。特に、ループの外からループが有るか否かを判定する場合には、正しい判定結果を得ることが難しかった。
本発明の主な利点は、不具合の判定の精度を向上することができる技術を提供することである。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
[適用例1]
判定装置であって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を、監視する監視部と、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第1閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する判定部と、
を備える、判定装置。
ネットワークに意図しないループが形成された場合には、同じパケットが、ループを繰り返し循環し得る(例えば、ブロードキャストパケットが循環し得る。なお、パケットはフレームとも呼ばれる)。ループ中の中継装置は、通信の制御(たとえば、応答確認等)と、中継の制御(例えば、経路選択等)とを行わずに、ブロードキャストパケットの転送を行う。従って、ループが形成された場合には、ループにおけるパケットの単位時間当たりの転送量(換言すれば、ループ中の中継装置によって行われる同じパケットの受信と送信との、単位時間当たりの繰り返し数)は、ループ中の中継装置の性能の限界近くまで、加速度的に上昇する。また、ループ中の中継装置は、ループを循環するパケット量(単位時間当たりのパケット量)と同じ量のブロードキャストパケットを、ループ外に送信する。この結果、ループに接続されたループ外の中継装置において、実データ受信速度が加速度的に上昇する。このような実データ受信速度の加速度的な上昇は、マルチキャストパケットによっても、引き起こされ得る。
一方、或る送信装置が、サイズの大きなデータを、或る受信装置に送信する場合には、送信装置と受信装置とは、データの転送に付随して、通信の制御(例えば、応答確認等)を行う。また、送信装置と受信装置との間の中継装置は、送信装置からのデータを受信装置に届けるために、中継の制御(例えば、経路選択等)を行う場合がある。このように、データ転送に付随して、種々の処理が行われるので、送信装置と受信装置との間の中継装置においては、データ転送の開始によって実データ受信速度が上昇するものの、ループが形成されている場合と比べて、実データ受信速度の上昇が緩やかである可能性が高い。
以上により、実データ受信速度の上昇の傾きが比較的大きい場合には、ループが形成されている可能性が高く、実データ受信速度の上昇の傾きが比較的小さい場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。上記構成によれば、実データ受信速度が速くなった場合であっても、実データ受信速度の単位時間当たりの変化量が第1閾値(>ゼロ)を越えなかった場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、実データ受信速度の急な上昇を、第1閾値を用いて判定することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
[適用例2]
適用例1に記載の判定装置であって、
前記判定条件は、前記実データ受信速度の上昇後の低下の度合いが所定の基準よりも小さいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
判定装置。
ループが解消されない場合には、同じパケット(例えば、ブロードキャストパケット)は、ループ中の中継装置の性能の限界近くの速い速度で、ループを循環し続ける。すなわち、ループにおけるパケットの転送量(単位時間当たりのパケット量)は、限界近くまで上昇した後は、ほとんど変化しない。また、ループに接続されたループ外の中継装置は、ループを流れるパケット量(単位時間当たりの量)と同じ量のパケットを、ループから受信する。従って、実データ受信速度は、上昇の後には、ほとんど変化しない。一方、サイズの大きなデータが転送される場合には、一時的に実データ受信速度が上昇するものの、データ転送に付随する種々の処理(例えば、応答確認や経路選択等)に起因して、実データ受信速度は低減し得る。以上により、実データ受信速度の上昇後の低下の度合いが比較的小さい場合には、ループが形成されている可能性が高く、その低下の度合いが比較的大きい場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、実データ受信速度の上昇後の低下の度合いが所定の基準よりも大きい場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、上昇後にほとんど変化しない実データ受信速度が上記要件を満たすので、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
[適用例3]
適用例2に記載の判定装置であって、
前記判定部は、前記実データ受信速度の上昇後の前記実データ受信速度の単位時間当たりの変化量の絶対値が、ゼロよりも大きい第2閾値よりも小さい場合に、前記実データ受信速度の上昇後の低下の度合いが前記所定の基準よりも小さいと判定する、
判定装置。
この構成によれば、ネットワークにループが無い場合の、上昇後の実データ受信速度が大きく低下する状況と、ネットワークにループが有る場合の、上昇後の実データ受信速度がほとんど変化しない状況とを、適切に区別することができるので、判定の精度を向上することができる。
[適用例4]
適用例1ないし適用例3のいずれかに記載の判定装置であって、
前記監視部は、さらに、前記実データ受信速度を監視し、
前記判定条件は、前記実データ受信速度の上昇後の前記実データ受信速度が、ゼロよりも大きい第3閾値よりも大きいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
判定装置。
ループが形成された場合には、ループにおけるパケットの単位時間当たりの転送量が、ループ中の中継装置の性能の限界近くまで上昇する。従って、ループに接続されたループ外の中継装置において、実データ受信速度は、ループでの循環の速度(限界近い速度)に応じた速い速度に上昇する。一方、サイズの大きなデータが転送される場合には、データ転送中に、データ転送に付随する種々の処理(例えば、応答確認や経路選択)が実行されるので、ループが形成された場合と比べて、上昇後の実データ受信速度が低い傾向がある。以上により、上昇後の実データ受信速度が比較的速い場合には、ループが形成されている可能性が高く、上昇後の実データ受信速度が比較的遅い場合には、ループが形成されずにサイズの大きなデータが転送されている可能性が高い。
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、上昇後の実データ受信速度が第3閾値よりも小さい場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、上昇後の実データ受信速度が第3閾値よりも大きくなることによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
[適用例5]
適用例2ないし適用例4のいずれかに記載の判定装置であって、
前記監視部は、さらに、前記実データ受信速度の上昇後に、前記複数の通信ポートのうちの前記実データ受信速度の上昇した通信ポートである候補ポート以外の通信ポートを無効にした状態における、前記監視を行い、
前記判定条件は、前記複数の通信ポートのうちの前記候補ポート以外の通信ポートを無効にした状態において、前記実データ受信速度の上昇後における要件が満たされることを、前記不具合が有ると判定するための要件として含む、
判定装置。
候補ポートに接続されたネットワークにループが形成されている場合には、候補ポート以外のポートを無効にしたとしても、ループから短時間に大量のパケットが候補ポートに届き続けるので、候補ポートの実データ受信速度は、低下せずに、速いままである。一方、中継装置が、候補ポートを通じてサイズの大きなデータを中継する場合には、中継装置は、候補ポートと、候補ポート以外の通信ポート(「非候補ポート」とも呼ぶ)とを通じて、データを中継する。従って、候補ポート以外のポートを無効にすることによってデータ転送が止まるので、候補ポートの実データ受信速度が急激にゼロ近くまで低下する。以上により、非候補ポートを無効にしても実データ受信速度がほとんど変化しない(速い実データ受信速度が継続する)する場合には、ループが形成されている可能性が高い。また、非候補ポートを無効にすることによって実データ受信速度が大きく低下(変化)する場合には、ループが形成されずに大きなサイズのデータが転送された可能性が高い。
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、候補ポート以外のポートを無効にした状態において実データ受信速度の上昇後における要件が満たされない場合には、不具合が無いと判定されるので、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、候補ポート以外のポートを無効にした状態において実データ受信速度の上昇後における要件が満たされることによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
[適用例6]
適用例1ないし適用例5のいずれかに記載の判定装置であって、
前記判定条件は、前記実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第1時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
判定装置。
上述のように、ループが形成されると、ループからパケットを受信する通信ポートの実データ受信速度も上昇する。そして、上昇後は、ループが解消するまで、実データ受信速度はほとんど変化しない。一方、サイズの大きなデータが転送される場合には、一時的に実データ受信速度が上昇するものの、種々の要因(例えば、応答確認等の通信制御や、経路選択等の中継制御や、データ転送の完了等)によって実データ受信速度が低下し得る。すなわち、実データ受信速度が上昇した場合であっても、実データ受信速度の単位時間当たりの変化量は、短時間で、負値になり得る。以上により、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が比較的長期間に亘って続く場合には、ループが形成されている可能性が高い。また、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が比較的短期間で終了する場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、実データ受信速度が上昇を開始してから第1時間長さの期間の途中で終了する場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、実データ受信速度が上昇を開始してから第1時間長さの期間に亘って継続することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
[適用例7]
適用例1ないし適用例6のいずれかに記載の判定装置であって、
前記判定条件は、前記実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第2時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
判定装置。
ループが形成されると、ループにおけるパケットの単位時間当たりの転送量は、ループ中の中継装置の性能の限界近くまで、加速度的に上昇し、それに伴って、ループ外の中継装置における実データ受信速度も、加速度的に上昇する。従って、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量は、正値となり得る(すなわち、実データ受信速度の上昇の傾きが、時間の経過とともに急になり得る)。一方、サイズの大きなデータが転送される場合には、一時的に、実データ受信速度の上昇の傾きが時間の経過とともに急になったとしても、種々の要因(例えば、応答確認等の通信制御、経路選択等の中継制御、データ転送の完了等)によって、実データ受信速度の上昇の傾きが緩やかになり得る。以上により、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が(すなわち、実データ受信速度の上昇の傾きが、時間の経過とともに急になる状態が)、比較的長時間に亘って継続する場合には、ループが形成されている可能性が高い。また、そのような状態が比較的短時間で終了する場合には、ループが形成されずにサイズの大きなデータが転送された可能性が高い。
上記構成によれば、実データ受信速度が急激に上昇した場合であっても、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、実データ受信速度が上昇を開始してから第2時間長さの期間の途中で終了する場合には、不具合が無いと判定される。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、実データ受信速度が上昇を開始してから第2時間長さの期間に亘って継続することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
[適用例8]
ネットワークに不具合が有るか否かを判定する方法であって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視し、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第1閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する、
方法。
[適用例9]
プログラムであって、
中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視する機能と、
前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第1閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する機能と、
をコンピュータに実現させるためのプログラム。
なお、本発明は、種々の形態で実現することが可能であり、例えば、判定装置および判定方法、判定装置と通信ポートとを有する中継装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
ネットワークシステム1000を示す説明図である。 実データ受信速度Vの経時変化(変化パターン)の例を表すグラフである。 制御処理の説明図である。 制御処理の別の実施例の説明図である。 制御処理の別の実施例の説明図である。 制御処理の別の実施例の説明図である。 制御処理の別の実施例の説明図である。 制御処理の別の実施例の説明図である。 制御処理の別の実施例の説明図である。 制御処理の別の実施例の説明図である。 継続判定処理の説明図である。 判定制御部230を有する装置の別の態様を示すブロック図である。
A.第1実施例:
次に、本発明の実施の形態を実施例に基づき説明する。図1は、本発明の一実施例としてのネットワークシステム1000を示す説明図である。このネットワークシステム1000は、第1スイッチ110と、第2スイッチ120と、第3スイッチ130と、を含んでいる。第1スイッチ110と第2スイッチ120とは、いわゆるレイヤ2スイッチとして動作し、第3スイッチ130は、いわゆるレイヤ3スイッチとして動作する。
第1スイッチ110は、通信回線との接続のための6つのポートP11〜P16を有している。これらのポートP11〜P16は、IEEE802.3に準拠する物理ポートである。第2スイッチ120は、複数の同様のポートP21〜26を有している。第3スイッチ130は、複数の同様のポートP31〜P36を有している。
第1スイッチ110(第1ポートP11)は、第2スイッチ120(第2ポートP22)に接続され、第2スイッチ120(第1ポートP21)は、第3スイッチ130(第2ポートP32)に接続されている。ネットワークシステム1000は、ローカルエリアネットワークを形成する。第3スイッチ130(第1ポートP31)は、広域ネットワークNT(例えば、いわゆるインターネット)に接続されている。ネットワークシステム1000に接続された通信装置(例えば、第1スイッチ110に接続されたパーソナルコンピュータ140)は、ネットワークシステム1000を通じて、広域ネットワークNTに接続された通信装置(図示せず。例えば、メールサーバまたはWebサーバ)と通信可能である。
図1は、さらに、第2スイッチ120の構成を示すブロック図を示している。第2スイッチ120は、複数のポートP21〜P26を有する通信インタフェース210と、カウンタ225と、レイヤ2制御部220と、判定制御部230と、を有している。
通信インタフェース210は、いわゆる1000BASE-Tのインタフェースである。ただし、通信インタフェース210は、他の種類のインタフェースであってもよい。
カウンタ225は、通信インタフェース210に届いたフレームに関する情報を取得する(詳細は後述)。
レイヤ2制御部220は、通信インタフェース210の複数のポートP21〜P26の間の通信の中継(データフレームの転送)を行う。レイヤ2制御部220は、OSI参照モデルの第2層(データリンク層)のデータに従って、中継を行う
判定制御部230は、タイマ232と、CPU234と、RAM236と、ROM238とを有するコンピュータである。ROM238は、予め、プログラムを格納している。CPU234は、ROM238に格納されたプログラムを実行することによって、監視部302と、判定部304と、ポート制御部306と、を含む種々の処理部として動作する。以下、プログラムに従ってCPU234が或る処理部として処理を実行することを、その処理部が処理を実行する、とも表現する。タイマ232は、時間の計測に用いられる。判定制御部230は、第2スイッチ120が単位時間に実際に受信したデータの量を表す実データ受信速度を用いて、第2スイッチ120に接続されたネットワーク(例えば、第1スイッチ110を含むネットワーク、または、第3スイッチ130を含むネットワーク)に不具合が有るか否かを判定する(詳細は後述)。
なお、本実施例では、通信インタフェース210とレイヤ2制御部220とカウンタ225とのそれぞれは、専用のハードウェア(例えば、ASIC(Application Specific Integrated Circuit))によって実現されている。
図2は、実データ受信速度Vの経時変化(変化パターン)の例を表すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。実データ受信速度Vは、第2スイッチ120によって単位時間に実際に受信されたデータの量を表している。また、実データ受信速度Vは、1つのポートの受信速度を表している。本実施例では、第2スイッチ120は、いわゆるMACフレーム(以下、単に「フレーム」とも呼ぶ)の送受信を行う。従って、本実施例では、実データ受信速度Vは、MACフレームのフレーム長(データサイズ)に基づいて算出されることとする(一般的には、1つのMACフレームのフレーム長は、64〜1518bytesである(1byte=8bits))。実データ受信速度Vの単位は、例えば、bps(bits per second)で表される。グラフ中の最大受信速度M1は、理論的に可能な最大値を示している。例えば、フレーム長が64bytesである場合には、最大受信速度M1はおおよそ760Mbpsであり、フレーム長が1518bytesである場合には、最大受信速度M1はおおよそ900Mbpsである。図2(A)に示す第1パターンV1は、ネットワークにループが無い場合の実データ受信速度Vの変化パターンを示している。図2(B)の第2パターンV2は、ネットワークにループが有る場合の実データ受信速度Vの変化パターンを示している。まず、ネットワークにループがある場合について説明する。
図2(B)の第2パターンV2は、ネットワークにループが有る場合の実データ受信速度Vの変化パターンを示している。ループは、例えば、ユーザによるケーブルの誤接続による、図1の第1スイッチ110におけるループ経路150である。このようなループ経路150は、通信負荷の急激な上昇を引き起こし得る。例えば、パーソナルコンピュータ140が、ブロードキャストフレームを出力したと仮定する。第1スイッチ110は、ブロードキャストフレームを、そのフレームを受信したポートを除いた他の全てのポートから出力する。第1スイッチ110から出力されたフレームは、ループ経路150を介して、再び、第1スイッチ110に到達する。この結果、第1スイッチ110は、同じフレームを、繰り返し、複数のポートから出力する。ここで、第1スイッチ110は、ブロードキャストフレームの受信と送信とを、単なるリピータと同様に行う。すなわち、第1スイッチ110(より具体的には、第1スイッチ110のフレーム中継を制御するレイヤ2制御部(図示せず))は、複雑な中継制御(例えば、経路の選択等)を行わずに、受信したフレームを即時に他のポートから送信する。また、ループ経路150においては、ブロードキャストフレームの受信と送信とが、通信端末ではなく、中継装置(ここでは、第1スイッチ110)によって繰り返される。従って、ブロードキャストフレームの受信と送信とは、通信の制御(例えば、応答確認等)を行わずに、繰り返される。
このように、ループ経路150におけるフレームの転送量(単位時間当たりに転送されるフレーム量)は、第1スイッチ110の性能によって制限されるものの、中継の制御と通信の制御とによっては制限されない。従って、ループ経路150におけるフレームの転送量(換言すれば、第1スイッチ110によって行われる同じフレームの受信と送信との、単位時間当たりの繰り返し数)は、ループ経路150中の中継装置(ここでは、第1スイッチ110。より具体的には、第1スイッチ110の図示しないレイヤ2制御部)の性能の限界近くまで、加速度的に上昇する。また、ループ経路150に接続されたループ経路150外の中継装置(例えば、第2スイッチ120)は、ループ経路150を流れるフレームの量(単位時間当たりの量)と同じ量のフレームを、ループ経路150(第1スイッチ110)から受信する。従って、第2ポートP22における実データ受信速度Vは、加速度的に上昇し、そして、上昇後の実データ受信速度Vは、最大受信速度M1に近くなる。また、ループ経路150における同じフレームの循環は、ループ経路150が解消するまで継続する。従って、実データ受信速度Vは、ループ経路150が解消するまで、ほとんど変化せずに、最大受信速度M1に近い値(速い値)に維持される。なお、ループが形成された場合の実データ受信速度Vの上昇は、ブロードキャストフレームに限らず、マルチキャストフレームによっても引き起こされ得る。また、「実データ受信速度Vが累進的に(加速度的に)上昇する」とは、実データ受信速度Vの単位時間当たりの変化量が増加しつつ、実データ受信速度Vが上昇することを意味している(実データ受信速度Vの上昇の傾きが、時間の経過とともに急になる)。
上述のようなループ(ループ経路150)は、自然に解消することが困難である。従って、ネットワークにループが有る場合には、長期間に亘って、実データ受信速度Vが下がらずに、最大受信速度M1に近い高い受信速度が継続し得る。
第2スイッチ120は、第1スイッチ110から繰り返し受信する同じフレームを、他の通信装置(例えば、第3スイッチ130)へ送信し得る。このように大量の同じフレームが連鎖的に伝送され得る。この結果、ネットワークシステム1000における通常の通信が、停止し得る。
図2(A)に示す第1パターンV1は、ネットワークにループが無い場合の実データ受信速度Vの変化パターンを示している。図2(A)に示すように、実データ受信速度Vは、最大受信速度M1近くまで上昇し得る。例えば、パーソナルコンピュータ140(図1)が第2スイッチ120を介して大きなデータを送信(または、受信)する場合に、図2(A)のように実データ受信速度Vが上昇し得る。ここで、パーソナルコンピュータ140等のデータの送信装置と、図示しないデータの受信装置(例えば、メールサーバ)とは、データの送信と受信とに加えて、通信の応答確認等の他の処理(通信を制御する処理)も実行する。また、送信装置と受信装置との間に設けられた中継装置(例えば、第2スイッチ120)は、フレームを受信装置に届けるために、通信経路を選択する処理等の中継の制御を行う場合がある。このように、データの転送に付随して種々の処理が行われる。従って、データ転送の開始によって実データ受信速度Vが上昇するものの、実データ受信速度Vの上昇の傾きは、ネットワークにループがある場合と比べて、緩やかである傾向にある。また、データ転送に付随する種々の処理に起因して、上昇後の実データ受信速度V(実データ受信速度Vの最大値)は、ループが形成された場合と比べて、遅い傾向にある。また、上昇した実データ受信速度Vは、データ転送に付随する種々の処理に起因して、低減(変動)し得る。また、実データ受信速度Vは、データ転送の完了によって、低減する。このように、ループが形成されていない場合には、ループが形成されている場合と比べて、実データ受信速度Vは変動し易い。
図2(B)に示すような実データ受信速度Vの異常(実データ受信速度Vの急上昇、および、高い実データ受信速度Vの長時間に亘る継続)は、1つの中継装置によるループ(例えば、図1のループ経路150)に限らず、複数の中継装置を経由するループによっても、引き起こされ得る。例えば、図1に示すように、第1スイッチ110には、さらに別の第4スイッチ135(レイヤ2スイッチ)が接続され得る。ここで、第1スイッチ110と第4スイッチ135とが、誤って2本の通信経路で接続されたと仮定する(図1では、第1スイッチ110の第2ポートP12が、第4スイッチ135の第2ポートP42に接続され、第1スイッチ110の第3ポートP13が、第4スイッチ135の第3ポートP43に接続されている)。この場合には、第1スイッチ110と第4スイッチ135とを通るループ経路155が形成される。第1スイッチ110は、ブロードキャストフレームまたはマルチキャストフレームを第4スイッチ135に送信する。第4スイッチ135は、受信したフレームを、第1スイッチ110に送信する。以上により、同じフレームが、ループ経路155を繰り返し循環する。この結果、ループ経路155は、ループ経路150と同様に、ループ経路155に接続されたネットワーク(例えば、第2スイッチ120)に、実データ受信速度Vの異常を引き起こし得る。3つ以上の中継装置を通るループも、同様に、実データ受信速度Vの異常を引き起こし得る。そこで、本実施例では、判定制御部230は、実データ受信速度Vの経時変化を用いて、ネットワークに不具合が有るか否かを判定する。
図3(A)は、判定制御部230(図1)によって実行される制御処理のフローチャートである。最初のステップS100では、監視部302は、単位時間変化量Dを監視する。単位時間変化量Dは、実データ受信速度Vの単位時間当たりの変化量を表している(正値の単位時間変化量Dは、実データ受信速度Vの上昇を意味し、負値の単位時間変化量Dは、実データ受信速度Vの降下を意味している)。具体的には、監視部302は、まず、実データ受信速度V(実データ受信速度Vを表すデータ)を算出する。本実施例では、カウンタ225は、第2スイッチ120に届いたフレームのデータ量を、ポート毎にカウントしている(カウンタ225は、受信データ量を表す情報をリアルタイムに出力する)。判定制御部230の監視部302は、カウンタ225から、各ポートの受信データ量を取得する。そして、監視部302は、タイマ232を用いて所定時間(例えば、数msec)内の受信データ量を積算することによって、各ポートの実データ受信速度Vを算出する。なお、監視部302は、実データ受信速度Vの算出を、上記所定時間毎に繰り返し実行する。本実施例では、カウンタ225は、レイヤ2制御部220の処理とは独立に、上記カウントを行う。従って、カウンタ225は、レイヤ2制御部220がフレームを転送していない場合であっても、受信データ量を表す情報を出力することができる。
また、ステップS100では、監視部302は、単位時間変化量Dを、ポート毎に算出する。本実施例では、監視部302は、最新の実データ受信速度Vから、前回に算出した実データ受信速度Vを引いた差分を、単位時間変化量Dとして採用する。監視部302は、算出した単位時間変化量Dを、判定部304に通知する。
次のステップS110では、判定部304は、判定条件が満たされるか否かを判定する。本実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Caが満たされることである。
(要件Ca)単位時間変化量Dが第1閾値Th1より大きい(第1閾値Th1はゼロより大きい)
判定部304は、判定条件が満たされるか否かの判定を、ポート毎に行う(後述する他の実施例でも同様である)。以下、判定条件を満たすポートを「対象ポート」とも呼ぶ。
図3(B)は、実データ受信速度Vの変化パターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV11は、ループが無い場合のパターンの例を示し、第2パターンV12は、ループが有る場合のパターンの例を示している。各パターンV11、V12において、実データ受信速度Vが上昇している。ただし、ループが有る場合の第2パターンV12の単位時間変化量D(第2単位時間変化量D12)は、ループが無い場合の第1パターンV11の単位時間変化量D(第1単位時間変化量D11)と比べて、大きい。また、第1単位時間変化量D11は第1閾値Th1よりも小さい(要件Caが満たされない)。一方、第2単位時間変化量D12は第1閾値Th1よりも大きい(要件Caが満たされる)。
このようにループが有る場合と無い場合との間で実データ受信速度Vの上昇の傾き(単位時間変化量D)に差が生じ得る理由は、図2で説明した通りである。すなわち、ループ経路150中の第1スイッチ110は、ブロードキャストフレーム、または、マルチキャストフレームの受信と送信とを、通信の制御(例えば、応答確認等)と中継の制御(例えば、経路選択等)とを行わずに、繰り返す。従って、ループ経路150が形成されたことによって、第2スイッチ120が第1スイッチ110から受信する単位時間当たりのデータ量(実データ受信速度V)は、加速度的に上昇する(単位時間変化量Dが大きい)。一方、ループが無い場合にも、サイズの大きなデータの転送が始まることによって、実データ受信速度Vは上昇し得る。ただし、データの転送に付随して、通信の制御(例えば、応答確認等)、または、中継の制御(例えば、経路選択等)が行われ得る。従って、実データ受信速度Vの上昇の傾きは、ループがある場合と比べて、緩やかである傾向にある。
図3(A)の実施例では、判定部304は、ループが有る場合とループが無い場合との間の単位時間変化量Dの違いを、第1閾値Th1によって判別している。なお、本実施例では、第1閾値Th1は、判定精度が向上するように予め実験的に決定されている。ここで、ループが発生した場合には、単位時間変化量Dは、通信ポートの最大受信速度M1に依存せずに急激に上昇する。従って、本実施例では、第1閾値Th1は、通信ポートの最大受信速度M1に依存しない値である。ただし、第1閾値Th1は、通信ポートの最大受信速度M1が速いほど大きくなるように、予め決定されてもよい。
なお、第1閾値Th1は、ゼロよりも大きい。従って、要件Caが満たされる場合には、実データ受信速度Vは上昇している。このように、要件Caに従った判定は、実データ受信速度Vが上昇することと、その上昇の傾き(単位時間変化量D)が第1閾値Th1よりも大きいことと、の2つの要件が満たされているか否かを判定している、ということができる。
少なくとも1つのポートが判定条件を満たす場合には、次のステップS500(図3(A))で、ポート制御部306は、対象ポートを無効化し、通信の中継の対象から、そのポートを除外する。すなわち、第2スイッチ120は、無効なポートに届いたフレームを、他のポートに転送しない。また、第2スイッチ120は、無効なポートからフレームを送信しない。本実施例では、ポート制御部306は、レイヤ2制御部220に、対象ポートによって受信されたフレームと、対象ポートから送信すべきフレームとを無視する指示を送信する。レイヤ2制御部220は、指示に従って通信の中継を行う(対象ポートを通るデータフレームの転送が、省略される)。この結果、第1スイッチ110から第2スイッチ120に届く大量のフレームの影響が、第2スイッチ120から他の通信装置(例えば、第3スイッチ130)に及ぶことを抑制できる。ステップS500の終了に応じて、判定制御部230は、制御処理を終了する。なお、対象ポートを無効化する方法は、他の方法であってもよい。例えば、ポート制御部306は、通信インタフェース210に、対象ポートの電源をオフにする指示を送信してよい。通信インタフェース210は、指示に従って、対象ポートの電源をオフにしてよい。
全てのポートが判定条件を満たしていない場合には、判定制御部230(図1)は、制御処理を終了する。判定制御部230は、この制御処理を、定期的(例えば、数msec毎に)に繰り返す。本実施例では、制御処理の繰り返し周期は、実データ受信速度Vの算出の繰り返し周期と同じである。ここで、1回の判定だけではなく、連続する複数回の判定で判定条件が満たされることが、最終的に不具合があると判定するための要件であることが好ましい。こうすれば、ループが形成されていないにも拘わらずに不具合が有ると誤判定する可能性を低減できる(これは、後述する他の実施例についても同様である)。なお、制御処理の繰り返し周期は、実データ受信速度Vの算出の繰り返し周期よりも長くてもよい。
このように、第1実施例では、判定部304は、実データ受信速度Vの単位時間当たりの変化量(単位時間変化量D)を利用して不具合(例えば、意図しないループ)が有るか否かを判定するので、単位時間変化量Dを利用せずに実データ受信速度Vの大きさを利用して判定する場合と比べて、不具合があると誤判定する可能性を低減し、判定の精度を向上することができる。具体的には、上述したように、実データ受信速度Vが加速度的に上昇する場合(単位時間変化量Dが比較的大きい場合)には、ループが形成されている可能性が高く、実データ受信速度Vの上昇が緩やかである場合(単位時間変化量Dが比較的小さい場合)には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。図3(A)の判定は、実データ受信速度Vが急に上昇した場合と、実データ受信速度Vが緩やかに上昇した場合とを区別する。判定部304は、実データ受信速度Vが速くなった場合であっても、単位時間変化量Dが第1閾値Th1を越えなかった場合には、不具合が無いと判定する。従って、サイズの大きなデータが転送される場合に、ネットワークにループが無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、判定部304は、実データ受信速度Vの急な上昇を、第1閾値Th1を用いて判定することによって、不具合が有ると正しく判定することができる。これらの結果、判定の精度を向上することができる。
B.第2実施例:
図4(A)は、判定制御部230(図1)によって実行される制御処理の別の実施例のフローチャートである。図4(A)において、第1実施例(図3(A))のステップと同じステップには、同じ符号を付している。図4(A)の第2実施例と、図3(A)の第1実施例との間の差異は、第2実施例では、ステップS110とステップS500との間にステップS200、S210が追加されている点だけである。
第2実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Ca、Cbが満たされることである。
(要件Ca)単位時間変化量Dが第1閾値Th1より大きい(ステップS110)
(要件Cb)実データ受信速度Vの上昇後の所定時間T20内において、単位時間変化量Dの絶対値が第2閾値Th2未満である(ステップS210)(第2閾値Th2はゼロよりも大きい)
第2実施例では、単位時間変化量Dが第1閾値Th1よりも大きい場合に(ステップS110:Yes)、次のステップS200で、監視部302(図1)は、単位時間変化量Dの絶対値を監視する。このステップS200では、監視部302は、単位時間変化量Dの絶対値を算出する。後述するステップS210では、判定部304は、実データ受信速度Vの上昇が終了した後の所定時間内における単位時間変化量Dの絶対値を用いた判定を行う。判定部304は、単位時間変化量Dが正値からゼロまたは負値に変化したことを、実データ受信速度Vの上昇の終了とみなす。なお、監視部302は、単位時間変化量Dの絶対値の算出を、単位時間変化量Dの算出と同様に、所定時間毎に繰り返し実行する。
図4(B)は、実データ受信速度Vの変化パターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV21は、ループが無い場合のパターンの例を示し、第2パターンV22は、ループが有る場合のパターンの例を示している。両パターンV21、V22において、第1閾値Th1よりも大きな単位時間変化量Dで、実データ受信速度Vが上昇している。ループが無い場合であっても、大容量のデータファイルの転送が開始する等のネットワークの状況によっては、実データ受信速度Vは、第1閾値Th1よりも大きな単位時間変化量Dで、上昇し得る。ループが無い場合の第1パターンV21では、実データ受信速度Vは、上昇した後に、降下している。一方、ループが有る場合の第2パターンV22では、実データ受信速度Vは、上昇した後に、ほとんど降下せずに、おおよそ一定値に維持されている。
このようにループが有る場合と無い場合との間で、上昇後の実データ受信速度Vの変化に差が生じ得る理由は、図2で説明した通りである。すなわち、大きなサイズのデータ転送が行われる場合には、実データ受信速度Vが急激に上昇し得るものの、データ転送に付随する種々の処理(例えば、確認応答や経路選択等)、または、データ転送の完了に起因して、実データ受信速度Vが低減し得る。一方、ループが形成されている場合には、上昇後の実データ受信速度Vは、ループが解消されるまで、ほとんど変化せずに、維持される傾向にある。
第2実施例では、判定部304は、上昇後の実データ受信速度Vの変化の違いを、第2閾値Th2によって判別している。なお、本実施例では、第2閾値Th2は、判定精度が向上するように予め実験的に決定されている。
図中の第2時間T22は、実データ受信速度Vの上昇が終了した時間を示している。図4(A)のステップS200では、監視部302は、少なくとも、この時間T22から、所定時間T20が経過するまで(第3時間T23まで)、単位時間変化量Dの絶対値の算出を繰り返す。監視部302は、ステップS100と同様に、実データ受信速度Vを算出し、単位時間変化量Dを算出する。監視部302は、算出した単位時間変化量Dの絶対値を、判定部304に通知する。
次のステップS210では、判定部304は、ステップS200で算出された単位時間変化量Dの絶対値に従って、所定時間T20内において、単位時間変化量Dの絶対値が、所定の第2閾値Th2未満であるか否かを判定する(要件Cb)。本実施例では、判定部304は、単位時間変化量Dが正値からゼロまたは負値になったことに応じて、所定時間T20のカウントを始める。そして、判定部304は、監視部302から受信したデータ(単位時間変化量Dの絶対値)のうちの、所定時間T20内のデータを用いて判定を行う。所定時間T20は、判定精度が向上するように予め実験的に決定されている。
判定部304は、所定時間T20内の全ての単位時間変化量Dの絶対値が第2閾値Th2を超えなかった場合に、要件Cbが満たされたと判定する。例えば、実データ受信速度Vが図4(B)の第2パターンV22のように変化した場合には、所定時間T20に亘って、単位時間変化量D(D22)の絶対値が第2閾値Th2未満であるので、判定部304は、要件Cbが満たされたと判定する。
所定時間T20の間に得られた単位時間変化量Dの絶対値のうちの少なくとも一部が第2閾値Th2を超えている場合には、判定部304は、要件Cbが満たされないと判定する。例えば、実データ受信速度Vが図4(B)の第1パターンV21のように変化した場合には、所定時間T20の間に単位時間変化量D(D21)の絶対値が第2閾値Th2を超えているので、判定部304は、要件Cbが満たされないと判定する。
少なくとも1つのポートが判定条件を満たす場合には(S110:Yes、S210:Yes)、処理がステップS500に移行する。ステップS500の処理は、図3(A)のステップS500の処理と同じである。ステップS500の処理の終了に応じて、判定制御部230は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部230は、制御処理を終了する。なお、判定制御部230は、制御処理を繰り返し実行する。
以上のように、第2実施例では、図4(B)のパターンV21、V22のように、急激に実データ受信速度Vが上昇した場合であっても、判定部304は、実データ受信速度Vが上昇の後に安定する場合(飽和する場合)と、実データ受信速度Vが上昇の後に大きく変化する場合とを区別する(要件Cb)。上述したように、上昇の後に実データ受信速度Vが比較的長期間に亘ってほとんど変化しない場合には、ループが形成されている可能性が高く、上昇の後に実データ受信速度Vが比較的短期間のうちに低減(変化)する場合には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。この結果、要件Cbを追加することによって、判定の精度が向上する。例えば、不具合(例えば、意図しないループ)が無いにも拘わらずに第1閾値Th1よりも大きな単位時間変化量Dで実データ受信速度Vが上昇した場合に(例えば、通信帯域がほとんど使用されていない状況で大容量のデータファイルの転送が始まった場合に)、不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、判定部304は、上昇後の実データ受信速度Vがほとんど変化しないことを、第2閾値Th2を用いて判定することによって、不具合が有ると正しく判定することができる。
また、第2スイッチ120には、第2スイッチ120よりも通信速度が遅い中継装置(例えば、100BASE-Tのインタフェースを有する中継装置)が接続され得る。この場合には、その中継装置を通るネットワークに不具合(例えば、意図しないループ)が有っても、上昇後の実データ受信速度Vは、第2スイッチ120の最大受信速度M1と比べて十分に小さい。第2実施例の制御処理は、このような場合にも、不具合が有るという正しい判定結果を導くことができる。
C.第3実施例:
図5(A)は、判定制御部230(図1)によって実行される制御処理の別の実施例のフローチャートである。図5(A)において、第1実施例(図3(A))のステップと同じステップには、同じ符号を付している。図5(A)の第3実施例と、図3(A)の第1実施例との間の差異は、第3実施例では、ステップS110とステップS500との間にステップS205、S220が追加されている点だけである。
第3実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Ca、Ccが満たされることである。
(要件Ca)単位時間変化量Dが第1閾値Th1より大きい(ステップS110)
(要件Cc)上昇後の実データ受信速度Vが、第3閾値Th3より大きい(ステップS220)(第3閾値Th3はゼロよりも大きい)
第3実施例では、単位時間変化量Dが第1閾値Th1よりも大きい場合に(ステップS110:Yes)、次のステップS205で、監視部302(図1)は、実データ受信速度Vを監視する。このステップS205では、監視部302は、実データ受信速度Vを算出する。監視部302は、算出した実データ受信速度Vを判定部304に通知する。後述するステップS220では、判定部304は、実データ受信速度Vの上昇が終了した時点での実データ受信速度Vを用いた判定を行う。上述したように、監視部302は、実データ受信速度Vの算出を所定時間毎に繰り返し実行する。判定部304は、単位時間変化量Dが正値からゼロまたは負値に変化したことを、実データ受信速度Vの上昇の終了とみなす。
次のステップS220では、判定部304は、監視部302によって算出された実データ受信速度Vが第3閾値Th3を越えているか否かを判定する(要件Cc)。
図5(B)は、実データ受信速度Vの変化のパターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV31は、ループが無い場合のパターンの例を示し、第2パターンV32は、ループが有る場合のパターンの例を示している。両パターンV31、V32において、第1閾値Th1よりも大きな単位時間変化量Dで、実データ受信速度Vが上昇している。ループが無い場合の第1パターンV31では、実データ受信速度Vは、第1ピーク値VP31まで上昇した後に、実データ受信速度Vが降下している。一方、ループがある場合の第2パターンV32では、実データ受信速度Vは、第1ピーク値VP31よりも大きい第2ピーク値VP32まで上昇し、その後、ほとんど降下せずに高い値を維持している。ループが有る場合には、ループが無い場合と比べて、実データ受信速度Vが大きな値に上昇している。
このようにループが有る場合と無い場合との間で、上昇後の実データ受信速度Vに差が生じ得る理由は、図2で説明した通りである。すなわち、ループが形成された場合には、ループ中の中継装置(ここでは、第1スイッチ110)の性能の限界近くの速度まで、ループにおける単位時間当たりのフレームの転送量が上昇し得る、すなわち、実データ受信速度Vが最大受信速度M1近くまで上昇し得る。一方、大きなサイズのデータ転送が行われる場合には、実データ受信速度Vが上昇するものの、データ転送に付随する種々の処理(応答確認や経路選択等)が行われるので、ループが形成された場合と比べて上昇後の実データ受信速度Vが遅い傾向にある。
第3実施例では、判定部304は、上昇後の実データ受信速度Vの違いを、第3閾値Th3によって判別している。なお、本実施例では、第3閾値Th3は、判定精度が向上するように予め実験的に決定されている。具体的には、第3閾値Th3は、最大受信速度M1よりも若干小さい値に予め決定されている(例えば、第3閾値Th3は、700Mbpsである)。一般的には、フレーム長(データサイズ)が大きいほど、通信帯域を有効に利用することができる(例えば、大容量のデータファイルを転送する際に、フレーム長が大きいほど、実データ受信速度Vが最大受信速度M1に近くなる)。従って、フレーム長が大きいほど第3閾値Th3が大きいことが好ましい。
実データ受信速度Vが図5(B)の第2パターンV32のように変化した場合には、上昇後の実データ受信速度V(VP32)が第3閾値Th3を越えているので、判定部304は、要件Ccが満たされたと判定する。また、実データ受信速度Vが第1パターンV31のように変化した場合には、上昇後の実データ受信速度V(VP31)が第3閾値Th3未満であるので、判定部304は、要件Ccが満たされないと判定する。
少なくとも1つのポートが判定条件を満たす場合には(S110:Yes、S220:Yes)、処理がステップS500に移行する。ステップS500の処理は、図3(A)のステップS500の処理と同じである。ステップS500の処理の終了に応じて、判定制御部230は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部230は、制御処理を終了する。なお、判定制御部230は、制御処理を繰り返し実行する。
以上のように、第3実施例では、図5(B)のパターンV31、V32のように、急激に実データ受信速度Vが上昇した場合であっても、判定部304は、上昇後の実データ受信速度Vが比較的速い場合と、上昇後の実データ受信速度Vが比較的遅い場合とを区別する(要件Cc)。上述したように、上昇後の実データ受信速度Vが比較的速い場合には、ループが形成されている可能性が高く、上昇後の実データ受信速度Vが比較的遅い場合には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。この結果、要件Ccを追加することによって、判定の精度が向上する。例えば、不具合(例えば、意図しないループ)が無いにも拘わらずに第1閾値Th1よりも大きな単位時間変化量Dで実データ受信速度Vが上昇した場合に(例えば、通信帯域がほとんど使用されていない状況で大容量のデータファイルの転送が始まった場合に)、不具合が有ると誤判定する可能性を低減できる。また、ネットワークにループが形成された場合には、判定部304は、上昇後の実データ受信速度Vが速いことを第3閾値Th3を用いて判定することによって、不具合が有ると正しく判定することができる。
D.第4実施例:
図6(A)は、判定制御部230(図1)によって実行される制御処理の別の実施例のフローチャートである。図6(A)において、第2実施例(図4(A))のステップと同じステップには、同じ符号を付している。図6(A)の第4実施例と、図4(A)の第2実施例との間の差異は、第4実施例では、ステップS200、S210が、ステップS300、S310、S317、S320に置換されている点だけである。
第4実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Ca、Cdが満たされることである。
(要件Ca)単位時間変化量Dが第1閾値Th1より大きい(ステップS110)
(要件Cd)実データ受信速度Vの上昇後に、候補ポート以外のポートを無効にした状態で、所定時間T40内において、単位時間変化量Dの絶対値が第2閾値Th2未満である(ステップS320)
本実施例では、候補ポートは、第1閾値Th1よりも大きい単位時間変化量Dで実データ受信速度Vが上昇したポートである。
第4実施例では、単位時間変化量Dが第1閾値Th1よりも大きい場合に(ステップS110:Yes)、次のステップS300で、ポート制御部306(図1)は、候補ポート以外のポート(以下「非候補ポート」と呼ぶ)を無効化する。ポート制御部306は、非候補ポートの無効化を、対象ポートの無効化と同じ手順で行う。
次のステップS310では、監視部302は、単位時間変化量Dの絶対値を監視する。このステップS310では、監視部302は、非候補ポートが無効化された後の所定時間内において、候補ポートにおける単位時間変化量Dの絶対値を繰り返し算出する。
図6(B)は、実データ受信速度Vの変化パターンを示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV41は、ループが無い場合のパターンの例を示し、第2パターンV42は、ループが有る場合のパターンの例を示している。図6(B)の例では、両パターンV41、V42において、第1閾値Th1よりも大きな単位時間変化量Dで、実データ受信速度Vが上昇している。図中の第1時間T41は、非候補ポートが無効化された時間を示している。
ループが無い場合の第1パターンV41では、非候補ポートが無効化されたことに応じて、実データ受信速度Vが、降下している。この理由は、以下の通りである。すなわち、ループが無い場合であっても、第2スイッチ120を通るデータ転送が始まることによって、第1パターンV41のように実データ受信速度Vが上昇する。第2スイッチ120は、このようなデータ転送を、候補ポートと、他の通信ポート(すなわち、非候補ポート)を通じて、行う。ここで、非候補ポートを無効にすることによって、データ転送が止まる。この結果、候補ポートにおける実データ受信速度Vが降下する。
一方、ループが有る場合の第2パターンV42では、非候補ポートが無効化されたにも拘わらずに、候補ポートにおける実データ受信速度Vは、ほとんど降下せずに、おおよそ一定値に維持されている。第2スイッチ120を通らないループの原因は非候補ポートを介した通信とは無関係であるので、非候補ポートの無効化は、不具合を解消しない。すなわち、非候補ポートを無効にしたとしても、ループから短時間に大量のパケットが候補ポートに届き続ける。この結果、実データ受信速度Vは、ほとんど降下せずに、高い値に維持される。
図6(A)のステップS310では、監視部302は、少なくとも、第1時間T41から、所定時間T40が経過するまで(第2時間T42まで)、単位時間変化量Dの絶対値の算出を繰り返す。そして、監視部302は、算出した単位時間変化量Dの絶対値を、判定部304に通知する。このステップS310は、図4(A)のステップS200と同様に行われる。次のステップS317では、第1時間T41から所定時間T40が経過したことに応じて、ポート制御部306(図1)は、非候補ポートを有効化する。ポート制御部306は、ポートの有効化を、ポートの無効化の手順における「無効」を「有効」に入れ替えて得られる手順に従って、行う。
次のステップS320では、判定部304は、ステップS310で算出された単位時間変化量Dの絶対値に従って、所定時間T40内において、単位時間変化量Dの絶対値が、第2閾値Th2未満であるか否かを判定する(要件Cd)。この判定は、図4(A)のステップS210と同様に行われる。第4実施例では、判定部304は、非候補ポートを無効化した状態での実データ受信速度Vの変化の違いを、第2閾値Th2によって判別している(この第2閾値Th2は、図4の第2閾値Th2と同様に決定されている)。なお、判定部304とポート制御部306とは、非候補ポートが無効化されたことに応じて、所定時間T40のカウントを始める。そして、判定部304は、監視部302から受信したデータ(単位時間変化量Dの絶対値)のうちの所定時間T40内のデータを用いて判定を行う。所定時間T40は、判定精度が向上するように予め実験的に決定されている。
候補ポートが判定条件を満たす場合には、処理がステップS500に移行する。ステップS500の処理の終了に応じて、判定制御部230は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部230は、制御処理を終了する。なお、判定制御部230は、制御処理を繰り返し実行する。
以上のように、第4実施例では、図6(B)のパターンV41、V42のように、急激に実データ受信速度Vが上昇した場合であっても、判定部304は、非候補ポートを無効にした状態で、実データ受信速度Vが安定する場合(飽和する場合)と、実データ受信速度Vが大きく変化する場合とを区別する。この結果、判定の精度が向上する。例えば、意図しないループが無いにも拘わらずに第1閾値Th1よりも大きな単位時間変化量Dで実データ受信速度Vが上昇した場合に、不具合が有ると誤判定する可能性を低減できる。特に、第4実施例では、要件Cdは、実データ受信速度Vの上昇の後の、非候補ポートを無効にした状態での、単位時間変化量Dの絶対値に条件を課している。上述したように、第2スイッチ120を通らないループが形成された場合には、非候補ポートを無効にしたとしても、ループから短時間に大量のパケットが候補ポートに届き続ける。従って、非候補ポートを無効にしても実データ受信速度Vがほとんど変化しない場合には(単位時間変化量Dの絶対値が比較的小さい場合には)、ループが形成されている可能性が高い。一方、第2スイッチ120を通らないループが形成されていない場合であっても、第2スイッチ120を通るデータ転送に起因して、実データ受信速度Vが急激に上昇し得る。この場合、転送されるデータは、候補ポートと他のポート(非候補ポート)を通る。ここで、非候補ポートを無効にすると、データ転送が止まるので、実データ受信速度Vが急激にゼロ近くまで低下する。従って、非候補ポートを無効にすることによって、実データ受信速度Vが大きく変化する場合には(単位時間変化量Dの絶対値が比較的大きい場合)には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。従って、要件Cdを追加することによって、第2スイッチ120を経由しないループが有るか否かの判定精度が、向上する。
なお、本実施例では、ポート制御部306は、実データ受信速度Vの上昇が終了したことに応じて、非候補ポートを無効化する。この代わりに、ポート制御部306は、要件Caが満たされたことに応じて、実データ受信速度Vの上昇が終了する前に、非候補ポートを無効化してもよい。いずれの場合も、要件Cdは、実データ受信速度Vの上昇後の単位時間変化量Dに従って判定される、ということができる。また、より精度よく候補ポートを特定するために、非候補ポートを無効化する前の段階において(例えば、図6のステップS110とステップS300との間において)、図4の実施例のステップS200、S210の処理を実行してもよい。
E.第5実施例:
図7(A)は、判定制御部230(図1)によって実行される制御処理の別の実施例のフローチャートである。図7(A)において、第3実施例(図5(A))のステップと同じステップには、同じ符号を付している。図7(A)の第5実施例と、図5(A)の第3実施例との間の差異は、第5実施例では、ステップS200、S220が、ステップS300、S315、S317、S330に置換されている点だけである。
第5実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Ca、Ceが満たされることである。
(要件Ca)単位時間変化量Dが第1閾値Th1より大きい(ステップS110)
(要件Ce)実データ受信速度Vの上昇後に、候補ポート以外のポートを無効にしてから所定時間T50の経過後において、実データ受信速度Vが、第3閾値Th3より大きい(ステップS330)
第5実施例では、単位時間変化量Dが第1閾値Th1よりも大きい場合に(ステップS110:Yes)、処理がステップS300に移行する。このステップS300は、図6(A)のステップS300と同じである。
次のステップS315では、監視部302は、実データ受信速度Vを監視する。このステップS315では、監視部302は、非候補ポートが無効化された状態の、候補ポートの実データ受信速度Vを算出する。
図7(B)は、実データ受信速度Vの変化のパターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV51は、ループが無い場合のパターンの例を示し、第2パターンV52は、ループが有る場合のパターンの例を示している。図7(B)の例では、両パターンV51、V52において、第1閾値Th1よりも大きな単位時間変化量Dで、実データ受信速度Vが上昇している。実データ受信速度Vは、所定の第3閾値Th3よりも大きい値まで上昇している。実データ受信速度Vの上昇後、非候補ポートが無効化される。図中の第1時間T51は、非候補ポートが無効化された時間を示している。
図6(B)のパターンと同様に、ループが無い場合の第1パターンV51では、非候補ポートが無効化されたことに応じて、候補ポートの実データ受信速度Vが降下する(実データ受信速度Vは、第3閾値Th3よりも小さくなる)。ループが有る場合の第2パターンV52では、非候補ポートが無効化されたにも拘わらずに、候補ポートの実データ受信速度Vは、ほとんど降下せずに、おおよそ一定値に維持されている。このようにループが有る場合と無い場合との間で、非候補ポートを無効にした場合の実データ受信速度Vの変化に差が生じる理由は、図2、図6(B)で説明した通りである。すなわち、ループが形成されていない場合であっても、第2スイッチ120を通るデータ転送が始まることによって、実データ受信速度Vは最大受信速度M1に近い速度まで急激に上昇し得る。第2スイッチ120は、そのようなデータ転送(データ中継)を、候補ポートと非候補ポートとを通じて、行う。従って、非候補ポートが無効になることによって、データ転送が止まるので、実データ受信速度Vは、急激にゼロ近くまで低下する。一方、第2スイッチ120を通らないループが形成された場合には、実データ受信速度Vは急激に最大受信速度M1近くまで上昇する。その後、非候補ポートを無効にしたとしても、ループから候補ポートに短時間に大量のフレームが届き続けるので、実データ受信速度Vは、ほとんど下がらずに高い値に維持される。
図7(A)のステップS315では、監視部302は、少なくとも、非候補ポートが無効化されてから所定時間T50の経過後の第2時間T52で、候補ポートの実データ受信速度Vを算出する。監視部302は、算出した実データ受信速度Vを、判定部304に通知する。なお、本実施例では、所定時間T50は、判定精度が向上するように予め実験的に決定されている。次のステップS317では、ステップS315の完了に応じて、ポート制御部306は、非候補ポートを有効化する。
次のステップS330では、判定部304は、ステップS315で算出された実データ受信速度Vが第3閾値Th3より大きいか否かを判定する(要件Ce)。第5実施例では、判定部304は、非候補ポートを無効化した状態での実データ受信速度Vの違いを、第3閾値Th3によって判別している(この第3閾値Th3は、図5の第3閾値Th3と同様に決定されている)。なお、第1判定部304は、監視部302から受信したデータ(実データ受信速度V)のうちの、非候補ポートが無効化されてから所定時間T50の経過後の第2時間T52におけるデータを用いて判定を行う。
候補ポートが判定条件を満たす場合には(S110:Yes、S330:Yes)、処理がステップS500に移行する。ステップS500の処理の終了に応じて、判定制御部230は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部230は、制御処理を終了する。なお、判定制御部230は、制御処理を繰り返し実行する。
以上のように、第5実施例では、図7(B)のパターンV51、V52のように、急激に実データ受信速度Vが上昇した場合であっても、判定部304は、非候補ポートを無効にした状態で、実データ受信速度Vが比較的大きい場合と、実データ受信速度Vが比較的小さい場合とを区別する。この結果、判定の精度が向上する。例えば、不具合(例えば、意図しないループ)が無いにも拘わらずに第1閾値Th1よりも大きな単位時間変化量Dで実データ受信速度Vが上昇した場合に、不具合が有ると誤判定する可能性を低減できる。特に、第5実施例では、要件Ceは、実データ受信速度Vの上昇の後の、非候補ポートを無効にした状態での、実データ受信速度Vに条件を課している。上述のように、第2スイッチ120を通らないループが形成された場合には、非候補ポートを無効にしたとしても、実データ受信速度Vは、低下せずに、高い値に維持される。従って、非候補ポートを無効にした後も、実データ受信速度Vが比較的速い場合には、ループが形成されている可能性が高い。一方、第2スイッチ120を通らないループが形成されていない場合にも、サイズの大きなデータの転送が始まることによって、実データ受信速度Vが急激に最大受信速度M1に近い値(第3閾値Th3よりも速い値)に上昇し得る。ただし、非候補ポートを無効にすることによって、実データ受信速度Vは急激にゼロ近くまで低下する。従って、非候補ポートを無効した後に、実データ受信速度Vが比較的遅い場合には、ループが形成されずに、サイズの大きなデータが転送された可能性が高い。従って、要件Ceを追加することによって、第2スイッチ120を経由しないループが有るか否かの判定精度が、向上する。
なお、本実施例では、ポート制御部306は、実データ受信速度Vの上昇が終了したことに応じて、非候補ポートを無効化する。この代わりに、ポート制御部306は、要件Caが満たされたことに応じて、実データ受信速度Vの上昇が終了する前に、非候補ポートを無効化してもよい。いずれの場合も、要件Ceは、実データ受信速度Vの上昇後の実データ受信速度Vに従って判定される、ということができる。
F.第6実施例:
図8(A)は、判定制御部230(図1)によって実行される制御処理の別の実施例のフローチャートである。第6実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Cfが満たされることである。
(要件Cf)単位時間変化量Dがゼロ以上である状態が、実データ受信速度Vが上昇を開始してから少なくとも所定時間T60に亘って継続する
最初のステップS400では、監視部302(図1)は、単位時間変化量Dを監視する。具体的には、監視部302は、少なくとも、実データ受信速度Vが上昇を開始してから所定時間T60内において、実データ受信速度Vの算出と、単位時間変化量Dの算出とを、繰り返し実行する。監視部302は、算出した単位時間変化量Dを判定部304に通知する。
次のステップS410では、判定部304は、単位時間変化量Dがゼロ以上である状態が、実データ受信速度Vが上昇を開始してから所定時間T60に亘って継続したか否かを判定する(要件Cf)。判定部304は、単位時間変化量Dがゼロまたは負値から正値に変化したことを、実データ受信速度Vの上昇開始とみなす。そして、判定部304は、監視部302から受信したデータ(単位時間変化量D)のうちの、実データ受信速度Vが上昇を開始してから所定時間T60内のデータを用いて判定を行う。
図8(B)は、実データ受信速度Vの変化パターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV61は、ループが無い場合のパターンの例を示し、第2パターンV62は、ループが有る場合のパターンの例を示している。両パターンV61、V62において、実データ受信速度Vは、第1時間T61に上昇を開始し、最大受信速度M1近くまで上昇している(単位時間変化量D>ゼロ)。図中の第2時間T62は、第1時間T61から所定時間T60が経過した時間である。
ループが無い場合の第1パターンV61では、実データ受信速度Vは、上昇した後に、降下している。この降下は、第1時間T61から所定時間T60経過する前に(第2時間T62よりも前に)、生じている(要件Cfが満たされない)。一方、ループが有る場合の第2パターンV62では、実データ受信速度Vは、上昇した後に、降下せずに、一定値に維持されている。実データ受信速度Vが降下せずに上昇または維持する状態(すなわち、単位時間変化量Dがゼロ以上の状態)は、第1時間T61に始まり、第1時間T61から所定時間T60を経過するまで継続している(要件Cfが満たされる)。
このように、ループが有る場合と無い場合との間で、実データ受信速度Vの変化に差が生じる理由は、図2で説明した通りである。すなわち、ループが形成された場合には、ループが解消するまで、実データ受信速度Vが下がりにくい。従って、単位時間変化量Dがゼロ以上である状態が、比較的長時間に亘って継続する場合には、ループが形成されている可能性が高い。一方、大きなサイズのデータ転送が行われる場合には、実データ受信速度Vが上昇するものの、データ転送に付随する種々の処理(例えば、確認応答や経路選択等)、または、データ転送の完了に起因して、実データ受信速度Vが低減し得る。従って、単位時間変化量Dがゼロ以上である状態が、比較的短時間で終了する場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。
少なくとも1つのポートが判定条件を満たす場合には(S410:Yes)、処理がステップS500に移行する。このステップS500は、図3(A)のステップS500と同じである。ステップS500の処理の終了に応じて、判定制御部230は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部230は、制御処理を終了する。なお、判定制御部230は、制御処理を繰り返し実行する。すなわち、監視部302は、各ポートの単位時間変化量Dの算出を継続的に行い、判定部304は、要件Cfが成立するか否かの判定を、継続的に行う。
以上のように、第6実施例では、図8(B)のパターンV61、V62のように、実データ受信速度Vが上昇した場合であっても、判定部304は、所定時間T60よりも短い期間中だけ実データ受信速度Vが上昇し、続けて、実データ受信速度Vが降下する場合と、所定時間T60に亘って実データ受信速度Vが降下せずに上昇または維持し続ける場合とを区別する。上述したように、所定時間T60の期間に亘って実データ受信速度Vが降下しない場合には、ループが形成されている可能性が高く、所定時間T60の期間の途中で実データ受信速度Vが降下する場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。この結果、判定の精度が向上する。例えば、不具合(例えば、意図しないループ)が無いにも拘わらずに実データ受信速度Vが短時間の間だけ上昇(例えば、最大受信速度M1近くまで上昇)した場合に(例えば、大容量のデータファイルの転送が行われた場合に)、不具合が有ると誤判定する可能性を低減できる。
なお、本実施例の要件Cfに、上述の種々の実施例の要件を組み合わせてもよい。例えば、図3に示す実施例の要件Caを本実施例に適用してもよい(すなわち、不具合があると判定するための条件が、要件Caと要件Cfとの両方が満たされることであってよい)。
G.第7実施例:
図9(A)は、判定制御部230(図1)によって実行される制御処理の別の実施例のフローチャートである。第7実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Cgが満たされることである。
(要件Cg)2次変化量dDがゼロより大きい状態が、実データ受信速度Vが上昇を開始してから少なくとも所定時間T70に亘って継続する
2次変化量dDは、単位時間変化量Dの単位時間当たりの変化量を意味している。正値の2次変化量dDは、実データ受信速度Vの経時変化の傾き(すなわち、単位時間変化量D)が増加することを意味し、負値の2次変化量dDは、実データ受信速度Vの経時変化の傾き(単位時間変化量D)が減少することを意味し、ゼロの2次変化量dDは、実データ受信速度Vの経時変化の傾き(単位時間変化量D)が変化せずに維持されることを意味している。
最初のステップS405では、監視部302(図1)は、ポート毎の単位時間変化量Dと2次変化量dDとを監視する。具体的には、監視部302は、実データ受信速度Vの算出を繰り返すことによって、単位時間変化量Dを算出する。そして、監視部302は、単位時間変化量Dの算出を繰り返すことによって、2次変化量dDを算出する。本実施例では、監視部302は、最新の単位時間変化量Dから、前回に算出した単位時間変化量Dを引いた差分を、2次変化量dDとして採用する。監視部302は、算出した2次変化量dDを、判定部304に通知する。
次のステップS420では、判定部304は、2次変化量dDがゼロより大きい状態が、実データ受信速度Vが上昇を開始してから少なくとも所定時間T70に亘って継続したか否かを判定する(要件Cg)。なお、所定時間T70は、判定精度が向上するように予め実験的に決定されている。また、本実施例では、判定部304は、単位時間変化量Dがゼロまたは負値から正値に変化したことを、実データ受信速度Vの上昇の開始とみなす。そして、判定部304は、監視部302から受信したデータ(2次変化量dD)のうちの、実データ受信速度Vが上昇を開始してから所定時間T70の間のデータを用いて、判定を行う。
図9(B)、図9(C)は、実データ受信速度Vの変化パターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV71は、ループが無い場合のパターンの例を示し、第2パターンV72は、ループが有る場合のパターンの例を示している。両パターンV71、V72において、実データ受信速度Vは、第1時間T71に上昇を開始し、最大受信速度M1近くまで上昇している。図中の第2時間T72は、第1時間T71から所定時間T70が経過した時間である。
ループが無い場合の第1パターンV71では、実データ受信速度Vは、上昇した後に、降下している。ループが無い場合には、実データ受信速度Vの変化が、通信に関連して実行される処理(例えば、応答確認等のデータ送信装置またはデータ受信装置での処理、または、宛先選択等の中継装置での処理)の進捗状況によって制限される。従って、実データ受信速度Vが、上昇から降下まで、急激ではなくゆっくり変化する可能性が高い。この場合、単位時間変化量Dは、正値から徐々に負値に変化する。図9(B)の例では、第3時間T73において、2次変化量dDが正値から負値に変化している。この第3時間T73は、第1時間T71と第2時間T72との間の時間である。従って、第1パターンV71は、要件Cgを満たさない。
一方、ループが有る場合の第2パターンV72では、実データ受信速度Vは、第1時間T71から第4時間T74まで、累進的に上昇する。第4時間T74以降は、実データ受信速度Vは、おおよそ一定値に維持されている。この第4時間T74は、第3時間T73よりも後であるので、第2パターンV72は、要件Cgを満たしている。
2次変化量dDが正値である状態が比較的長時間に亘って継続する場合には、ループが形成されている可能性が高い。一方、2次変化量dDが正値である状態が比較的短時間で終了する場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。
少なくとも1つのポートが判定条件を満たす場合には(S420:Yes)、処理がステップS500に移行する。ステップS500の処理は、図1(A)のステップS500の処理と同じである。ステップS500の処理の終了に応じて、判定制御部230は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部230は、制御処理を終了する。なお、判定制御部230は、制御処理を繰り返し実行する。すなわち、監視部302は、各ポートの2次変化量dDの算出を継続的に行い、判定部304は、要件Cgが成立するか否かの判定を、継続的に行う。
以上のように、第7実施例では、図9(B)のパターンV71、V72のように実データ受信速度Vが上昇した場合であっても、判定部304は、所定時間T70の間に亘って実データ受信速度Vが累進的に上昇し続ける場合と、所定時間T70の途中で実データ受信速度Vの上昇の傾きが緩やかになる場合とを区別する。上述したように、実データ受信速度Vが累進的に上昇し続ける場合には、ループが形成されている可能性が高く、実データ受信速度Vの上昇の傾きが緩やかになる場合には、ループが形成されておらず、大きなサイズのデータ転送が行われている可能性が高い。この結果、判定の精度が向上する。例えば、不具合(例えば、意図しないループ)が無いにも拘わらずに実データ受信速度Vが短時間の間だけ累進的に上昇した場合に、不具合が有ると誤判定する可能性を低減できる。
なお、本実施例では、図9(C)に示すように、実データ受信速度Vが最大受信速度M1近くまで上昇するよりも前に(第4時間T74よりも前に)、判定部304は、不具合(例えば、意図しないループ)を検出可能である。従って、ポート制御部306は、第4時間T74よりも前にステップS500を実行可能である。これにより、実データ受信速度Vが最大受信速度M1近くまで上昇する可能性が低減される。この結果、第2スイッチ120の負荷が過剰に高くなる可能性を低減できる。また、第2スイッチ120を通じて他のネットワークに過剰な負荷が伝搬することを抑制できる。
なお、本実施例の要件Cgに、上述の種々の実施例の要件を組み合わせてもよい。例えば、図3に示す実施例の要件Caを本実施例に適用してもよい(すなわち、不具合があると判定するための条件が、要件Caと要件Cgとの両方が満たされることであってよい)。
H.第8実施例:
図10(A)は、判定制御部230(図1)によって実行される制御処理の別の実施例のフローチャートである。図10(A)において、第1実施例(図3(A))のステップと同じステップには、同じ符号を付している。図10(A)の第8実施例と、図3(A)の第1実施例との間の差異は、第8実施例では、ステップS100とステップS110との間にステップS108が追加され、さらに、ステップS110とステップS500との間にステップS120が追加されている点だけである。
第8実施例では、ネットワークに不具合(例えば、意図しないループ)が有ると判定するための判定条件は、以下の要件Ca、Chが満たされることである。
(要件Ca)単位時間変化量Dが第1閾値Th1より大きい(ステップS110)
(要件Ch)実データ受信速度Vの上昇時に、同じフレームが連続する(ステップS120)
図10(B)は、実データ受信速度Vの変化パターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV81は、ループが無い場合のパターンの例を示し、第2パターンV82は、ループが有る場合のパターンの例を示している。両パターンV81、V82において、第1閾値Th1よりも大きな単位時間変化量Dで、実データ受信速度Vが上昇している。図中のフレーム列FS1、FS2は、それぞれ、実データ受信速度Vの上昇中にポートが受信するフレームの例を示している。第1フレーム列FS1は、第1パターンV81のフレーム列を示し、第2フレーム列FS2は、第2パターンV82のフレーム列を示している。各フレーム列FS1、FS2に示された符号A〜Rは、互いに異なるフレームを表している。
ループが無い場合の第1フレーム列FS1は、1つのポートが次々と異なるフレームA〜Rを受信することを示している。一方、ループが有る場合の第2フレーム列FS2は、1つのポートが、異なるフレームB〜Eに加えて、同じフレームAを連続して受信することを示している。同じフレームの連続は、ループによって引き起こされ得る。本実施例では、同じフレームが連続すること(要件Ch)が、不具合(例えば、意図しないループ)が有ると判定するための要件の1つである。
ステップS100(図10(A))の次のステップS108では、監視部302(図1)は、第2スイッチ120によって受信されたフレームのFCS(Frame Check Sequence)を監視する。具体的には、監視部302は、FCSを取得してRAM236に格納する。後述するように、FCSは、フレームの同定に利用される。よく知られているように、MACフレームのFCSは、宛先MACアドレスと、送信元MACアドレスと、フレーム長と、データ(ペイロード)とを含む複数のフィールドから計算される。同じフレームからは同じFCSが算出される。一方、宛先MACアドレスと、送信元MACアドレスと、フレーム長と、データ(ペイロード)とのうちの少なくとも一部が異なるフレームからは、異なるFCSが算出される(異なるフレームから同じFCSが算出される可能性は非常に小さい)。
ステップS108では、監視部302は、現時点に至る所定時間内に受信した全てのフレームのFCSをRAM236に保持する。例えば、監視部302は、現在から1秒前までの間に受信した全てのフレームのFCSをRAM236に保持する。監視部302は、時間の経過に伴って、古いフレームのFCSをRAM236から消去し、新しく受信されたフレームのFCSをRAM236に格納する。なお、監視部302は、FCSの取得とRAM236への格納とを、休まずに継続的に行う。
次のステップS110は、図3(A)のステップS110と同じである(要件Ca)。単位時間変化量Dが第1閾値Th1よりも大きい場合には(S110:Yes)、次のステップS120で、判定部304は、候補ポートが同じフレームを連続して受信したか否かを判定する(要件Ch)。本実施例では、候補ポートは、第1閾値Th1よりも大きい単位時間変化量Dで実データ受信速度Vが上昇したポートである。判定部304は、RAM236に格納されたFCSを用いて、同じフレームが続いたか否かを判定する。本実施例では、判定部304は、単位時間変化量Dが第1閾値Th1よりも大きい期間において、同じフレームが少なくとも2つ続く場合に、要件Chが満たされると判定する。
候補ポートが判定条件を満たす場合には(S110:Yes、S120:Yes)、ステップS500が実行される。ステップS500の処理の終了に応じて、判定制御部230は、制御処理を終了する。全てのポートが判定条件を満たさない場合には、判定制御部230は、制御処理を終了する。なお、判定制御部230は、制御処理を繰り返し実行する。
以上のように、第8実施例では、図10(B)のパターンV81、V82のように、急激に実データ受信速度Vが上昇した場合であっても、判定部304は、同じフレームが連続する場合と、同じフレームが連続しない場合とを区別する。この結果、判定の精度が向上する。例えば、不具合(例えば、意図しないループ)が無いにも拘わらずに第1閾値Th1よりも大きな単位時間変化量Dで実データ受信速度Vが上昇した場合に、不具合が有ると誤判定する可能性を低減できる。特に、第8実施例では、判定条件が要件Chを含むので、第2スイッチ120を経由しないループが有るか否かの判定精度が、向上する。
I.第9実施例:
図11(A)は、判定制御部の別の実施例を示すブロック図である。図11(A)の判定制御部230Bと、図1の判定制御部230との間の差異は、図11(A)の判定制御部230Bには、第2判定部308としての機能が追加されている点だけである。本実施例の判定制御部230Bのハードウェア構成は、図1の判定制御部230と同じである(図11(A)では、CPU234とROM238とのみが示され、他の要素の図示が省略されている)。判定制御部230BのROM238は、更に、第2判定部308の機能を実現するためのプログラムを格納している。以下、判定部304を「第1判定部304」とも呼ぶ。
図11(B)は、第2判定部308によって実行される継続判定処理のフローチャートである。この継続判定処理では、ネットワークに不具合(例えば、意図しないループ)がいまだに有るか否かが判定される。第2判定部308は、第1判定部304によってネットワークに不具合が有ると判定されたことに応じて、この継続判定処理を定期的に実行する。なお、第1判定部304は、上述の各実施例と同様に、不具合が有るか否かを判定する。
最初のステップS600では、監視部302が、対象ポートにおける実データ受信速度Vと単位時間変化量Dの絶対値とを監視する。監視部302は、上述の各実施例と同様に、実データ受信速度Vと単位時間変化量Dとを算出し、算出した情報を第2判定部308に通知する。対象ポートの電源がオフになっている場合には、ポート制御部306は、対象ポートの電源をオンにする指示を通信インタフェース210に送信して、監視部302がデータを取得する間、対象ポートの電源をオンにする。ただし、レイヤ2制御部220は、対象ポートを介する通信の中継を行わないことが好ましい。
次のステップS610、S620では、第2判定部308は、不具合(例えば、意図しないループ)がいまだに有るか否かを判定する。本実施例では、不具合がいまだに有ると判定するための条件(継続条件と呼ぶ)は、以下の要件C1、C2が満たされることである。
(要件C1)単位時間変化量Dの絶対値が第2閾値Th2未満である(ステップS610)
(要件C2)実データ受信速度Vが第3閾値Th3より大きい(ステップS620)
第2閾値Th2と第3閾値Th3とは、図4、図5の実施例の閾値Th2、Th3と、それぞれ同じである。
図11(C)は、実データ受信速度Vの変化パターンの例を示すグラフである。横軸は時間Tを示し、縦軸は実データ受信速度Vを示している。図中の第1パターンV91は、ループが解消する場合のパターンの例を示し、第2パターンV92は、ループがいまだに有る場合のパターンの例を示している。第1パターンV91では、第1時間Trで、ネットワークのユーザがループを解消したこととしている(例えば、ユーザが図1のループ経路150を取り外す)。図中の判定時間Ta、Tb、Tc、Tdは、第2判定部308が継続判定処理を実行する時間を示している。第2判定部308は、継続判定処理を、所定時間Ti毎に、繰り返し実行する。
ループがいまだに有る場合の第2パターンV92では、実データ受信速度Vは、ほとんど変化せずに、第3閾値Th3よりも大きな値を維持している。定期的に繰り返される継続判定処理では、単位時間変化量D(D92)の絶対値は、第2閾値Th2よりも小さく(要件C1が満たされる)、実データ受信速度Vは、第3閾値Th3よりも大きい(要件C2が満たされる)。
ループが解消する場合の第1パターンV91では、ループが解消する第1時間Trよりも前には、第2パターンV92と同様に、実データ受信速度Vは、ほとんど変化せずに、第3閾値Th3よりも大きな値を維持している。実データ受信速度Vは、ループが解消した第1時間Trに、低下し始め、その後、実データ受信速度Vは、第3閾値Th3よりも低くなっている。従って、第3の判定時間Tcにおける継続判定処理では、単位時間変化量D(D91)の絶対値は、第2閾値Th2よりも大きく(要件C1が満たされない)、実データ受信速度Vは、第3閾値Th3よりも小さい(要件C2が満たされない)。
対象ポートが継続条件を満たす場合には(S610:Yes、S620:Yes)、ポート制御部306は対象ポートを有効化せずに、判定制御部230Bは、継続判定処理を終了する。対象ポートが継続条件を満たさない場合には(S610:No、または、S620:No)、処理は、ステップS700に移行する。このステップS700では、ポート制御部306は、対象ポートを有効化する。そして、判定制御部230Bは、継続判定処理を終了する。
以上のように、対象ポートが継続条件を満たしていない場合には、ポート制御部306は、対象ポートを有効化する。このように、ネットワークの不具合(例えば、意図しないループ)が解消したことに応じて、判定制御部230Bは、自動的に、中継処理を復旧することができる。従って、判定制御部230Bは、ネットワークを管理するユーザの労力を、大幅に低減できる。
J.第10実施例:
図12は、判定制御部230を有する装置の別の態様を示すブロック図である。図1に示す第1実施例の構成とは異なり、判定制御部230を有する判定装置300Bは、中継装置とは別の装置である。この判定装置300Bは、判定制御部230と、インタフェース248と、ディスプレイ249と、を有している。この判定装置300Bは、中継装置(図12では、第2スイッチ120B)に接続される。第2スイッチ120Bは、通信インタフェース210と、レイヤ2制御部220と、インタフェース228と、を有している。インタフェース228には、判定装置300Bのインタフェース248が接続されている。本実施例では、これらのインタフェース228、248は、いわゆるUSBインタフェースであるが、他の任意の通信インタフェースであってもよい。また、本実施例では、ディスプレイ249は、液晶ディスプレイであるが、他の任意のディスプレイ装置であってもよい。なお、図12では、図1と同じ要素には、同じ符号を付している。第2スイッチ120B(レイヤ2制御部220)は、図1の第2スイッチ120と同様に、通信を中継する。
判定装置300BのCPU234は、監視部302Bと、判定部304Bと、報知部309Bと、を含む種々の処理部として動作する。ROM238は、それらの処理部の機能をCPU234に実現させるためのプログラムを格納している(図示せず)。判定部304Bは、ネットワークに不具合(例えば、意図しないループ)が有るか否かを判定する。この判定としては、上述の任意の実施例の判定(判定部304による判定)を採用可能である。監視部302Bは、インタフェース248、228を介して、判定に利用される情報(例えば、実データ受信速度Vと、単位時間変化量D)を第2スイッチ120Bから取得する。レイヤ2制御部220は、判定装置300Bからの要求に応じて、情報を判定装置300B(監視部302B)に送信する。判定部304Bは、監視部302Bによって取得された情報を用いて、判定を行う。図6の要件Cd、または、図7の要件Ceを利用する場合には、ステップS300、S317で、CPU234が、非候補ポートの無効化と有効化とを、レイヤ2制御部220に指示する(CPU234が、図1のポート制御部306としても動作する)。この代わりに、レイヤ2制御部220が、判定装置300Bによって行われる判定の進捗状況に応じて、自発的に、非候補ポートを無効と有効とを切り替えてもよい。報知部309Bは、判定結果(例えば、対象ポートの識別情報)を、ディスプレイ249に表示する。ユーザは、ディスプレイ249を観察することによって、どのポートに接続されたネットワークに不具合が有るのかを、確認することができる。
このように、中継装置とは異なる判定装置300Bが、判定制御部230を有していても良い。ここで、判定制御部230のインタフェース248が、通信インタフェース210のポートに接続されてもよい。この場合には、監視部302Bは、専用のプロトコルに従って、レイヤ2制御部220から情報を取得する。また、上述の各実施例の制御処理においても、判定結果をユーザに報知する処理が行われても良い。判定結果の報知は、LEDやディスプレイを用いた表示であってもよく、また、ブザーやスピーカを用いた音による報知であってもよい。このような報知が行われる場合には、ステップS500(対象ポートの無効化)が省略されてもよい。
K.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
変形例1:
上述の各実施例において、実データ受信速度Vとしては、MACフレームのフレーム長に基づいて算出される値に限らず、単位時間に実際に受信したデータの量を表す任意の値を用いることができる。また、通信プロトコルが階層化されている場合には、任意の層のパケット(フレーム)のデータ量から、実データ受信速度Vが算出されてもよい。例えば、実データ受信速度Vは、単位時間に実際に受信したMACフレームの総数であってもよく、単位時間に実際に受信したIP(Internet Protocol)パケットの総数であってもよい。また、実データ受信速度Vは、フレームまたはパケットのペイロード長から算出されてもよく、ヘッダを含む全データの量から算出されてもよい。また、上記各実施例では、実データ受信速度を規定する単位時間は、1msecであるが、予め決められた他の任意の時間であってもよい。
変形例2:
上記各実施例において、中継装置は、レイヤ2スイッチに限らず、複数の通信ポートを有し、通信を中継する任意の装置であってもよく、例えば、レイヤ3スイッチでも、ルータでもよい。通信ポートは、物理ポートの代わりに、仮想的なポートであってもよい。仮想的なポートとしては、例えば、いわゆるリンクアグリゲーションの論理ポートが挙げられる。リンクアグリゲーションは、複数の物理ポート(回線)を束ねて1つの論理的なポート(回線)として扱う技術である。
変形例3:
上述の要件Ca(例えば、図3(A))には、種々の変形が可能である。例えば、要件Caは、所定期間内に亘って、単位時間変化量D>第1閾値Th1が継続することであってもよい。
変形例4:
上述の要件Cb(例えば、図4(A))には、種々の変形が可能である。単位時間変化量Dの絶対値が第2閾値Th2未満であることを要する期間(第1判定期間と呼ぶ)は、実データ受信速度の上昇の終了後の種々の期間(特定の期間)であってよい。例えば、第1判定期間の開始時間は、実データ受信速度Vの上昇が終了してから所定時間が経過した時間であってよい。また、第1判定期間の終了時間は、実データ受信速度Vの上昇時の単位時間変化量Dが大きいほど、第1判定期間が短くなるように、動的に決定されてもよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Cbのみであってもよい。この場合には、要件Cbは、実データ受信速度Vの上昇時の単位時間変化量Dが第1閾値Th1よりも大きいか否かに拘わらずに、実データ受信速度Vの上昇の終了後の特定の期間(第1判定期間)内において、単位時間変化量Dの絶対値が第2閾値Th2未満であること、であってもよい。
変形例5:
上述の要件Cc(例えば、図5(A))には、種々の変形が可能である。例えば、要件Ccは、実データ受信速度Vの上昇後の特定期間(第2判定期間と呼ぶ)内に亘って、実データ受信速度V>第3閾値Th3が継続することであってもよい。こうすれば、上昇後の実データ受信速度Vが飽和する場合と、そうでは無い場合とが区別されるので、判定の精度を向上することができる。ここで、第2判定期間は、実データ受信速度Vの上昇後の種々の期間であってよい。例えば、第2判定期間の開始時間は、実データ受信速度Vの上昇開始から所定時間が経過した時間(上昇終了前であり得る)であってよく、実データ受信速度Vの上昇が終了した時間であってよい。また、第2判定期間の終了時間は、第2判定期間の開始から所定時間が経過した時間であってよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Ccのみであってもよい。この場合には、要件Ccは、実データ受信速度Vの上昇時の単位時間変化量Dが第1閾値Th1よりも大きいか否かに拘わらずに、実データ受信速度Vの上昇の終了時の実データ受信速度Vが第3閾値Th3よりも大きいこと、であってよい。この代わりに、要件Ccは、実データ受信速度Vの上昇時の単位時間変化量Dが第1閾値Th1よりも大きいか否かに拘わらずに、実データ受信速度Vの上昇の終了後の特定の期間(第2判定期間)内において、実データ受信速度Vが第3閾値Th3よりも大きいこと、であってよい。
変形例6:
上述の要件Cd(例えば、図6(A))には、種々の変形が可能である。例えば、単位時間変化量Dの絶対値が第2閾値Th2未満であることを要する期間(第3判定期間と呼ぶ)は、実データ受信速度の上昇後の、非候補ポートが無効された状態における、種々の期間(特定の期間)であってよい。例えば、第3判定期間の開始時間は、非候補ポートを無効にしてから所定時間が経過した時間であってもよい。また、第3判定期間の終了時間は、実データ受信速度Vの上昇時の単位時間変化量Dが大きいほど、期間が短くなるように、動的に決定されてもよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Cdのみであってもよい。この場合には、要件Cdは、実データ受信速度Vの上昇時の単位時間変化量Dが第1閾値Th1よりも大きいか否かに拘わらずに、実データ受信速度Vの上昇後の、非候補ポートを無効にした状態における、特定の期間(第3判定期間)内において、単位時間変化量Dの絶対値が第2閾値Th2未満であること、であってよい。ここで、実データ受信速度Vの上昇したポートが候補ポートであり、その候補ポート以外のポートが非候補ポートである。候補ポートの総数が複数である場合には、1つの候補ポート毎に、判定を行えばよい。非候補ポートを無効するタイミングは、実データ受信速度Vの上昇の途中であってもよく、実データ受信速度Vの上昇が終了した後であってもよい。いずれの場合も、要件Cdは、実データ受信速度Vの上昇後の単位時間変化量Dの絶対値に従って判定される、ということができる。
変形例7:
上述の要件Ce(例えば、図7(A))には、種々の変形が可能である。例えば、要件Ceは、実データ受信速度Vの上昇後の、非候補ポートが無効な状態における特定期間(第4判定期間と呼ぶ)内に亘って、実データ受信速度V>第3閾値Th3が継続することであってもよい。こうすれば、不具合が無いにも拘わらずに不具合が有ると誤判定する可能性を低減できる。ここで、第4判定期間は、実データ受信速度Vの上昇後の、非候補ポートが無効な状態における種々の期間であってよい。例えば、第4判定期間の開始時間は、非候補ポートを無効にしてから所定時間が経過した時間であってよい。また、第4判定期間の終了時間は、第4判定期間の開始から所定時間が経過した時間であってよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Ceのみであってもよい。この場合には、要件Ceは、実データ受信速度Vの上昇時の単位時間変化量Dが第1閾値Th1よりも大きいか否かに拘わらずに、実データ受信速度Vの上昇後に、非候補ポートを無効にしてから所定時間の経過後において、実データ受信速度Vが第3閾値Th3よりも大きいことであってよい。この代わりに、要件Ceは、実データ受信速度Vの上昇時の単位時間変化量Dが第1閾値Th1よりも大きいか否かに拘わらずに、実データ受信速度Vの上昇後の、非候補ポートが無効な状態における特定期間(第4判定期間と呼ぶ)内において、実データ受信速度Vが第3閾値Th3よりも大きいこと、であってよい。ここで、実データ受信速度Vの上昇したポートが候補ポートであり、その候補ポート以外のポートが非候補ポートである。候補ポートの総数が複数である場合には、1つの候補ポート毎に、判定を行えばよい。非候補ポートを無効するタイミングは、実データ受信速度Vの上昇の途中であってもよく、実データ受信速度Vの上昇が終了した後であってもよい。いずれの場合も、要件Ceは、実データ受信速度Vの上昇後の実データ受信速度Vに従って判定される、ということができる。
変形例8:
上述の要件Ch(例えば、図10(A))には、種々の変形が可能である。例えば、フレーム(パケットとも呼ばれる)の同定に利用される情報(同定情報と呼ぶ)は、FCSに限らず、他の種々の情報であってよい。例えば、同定情報は、パケットに含まれるデータの全体または一部であってもよく、所定のハッシュ関数にパケットのデータの少なくとも一部を入力して得られる値であってもよい。
また、同じパケットが連続するか否かの判定に利用される期間(第5判定期間と呼ぶ)は、実データ受信速度Vが上昇を開始した後の種々の期間(特定の期間)であってよい。例えば、第5判定期間の開始時間は、実データ受信速度Vが上昇を開始した時間であってよい。また、第5判定期間の開始時間は、実データ受信速度Vの上昇が終了した時間であってもよい。第5判定期間の終了時間は、第5判定期間の開始から所定時間が経過した時間であってよい。いずれの場合も、要件Chは、この第5判定期間において同じパケットが少なくとも所定回数(2以上の整数)連続すること、であってよい。また、ネットワークに不具合が有ると判定するための判定条件が、この要件Chのみであってもよい。この場合には、要件Chは、実データ受信速度Vの上昇時の単位時間変化量Dが第1閾値Th1よりも大きいか否かに拘わらずに、実データ受信速度Vが上昇を開始した後の特定の期間(第5判定期間)において、同じパケットが少なくとも所定回数(2以上の整数)連続すること、であってよい。
変形例9:
ネットワークに不具合が有ると判定するための判定条件の要件は、上述の各実施例の要件に限らず、種々の要件であってよい。例えば、判定条件の要件は、上述したように、要件Ca〜Chから任意に選択された1つの要件であってよい。また、これらの要件Ca〜Chは、互いに矛盾せずに、組み合わせることが可能である。従って、判定条件の要件は、上述の要件Ca〜Chから任意に選択された複数の要件の組み合わせであってよい。ここで、各要件の判定に要する処理のタイミングをずらすことによって、複数の要件を1つずつ順番に判定してよい。例えば、以下の順番に各要件を判定してよい。
1)実データ受信速度Vの上昇時の要件(要件Ca、Cf、Cg、Ch)
2)実データ受信速度Vの上昇後の要件(要件Cb、Cc、Ch)
3)非候補ポートを無効にした状態の要件(要件Cd、Ce)
例えば、要件Cb(図4)と要件Cd(図6)とを組み合わせる場合には、要件Cbの判定の後に(図4のS210の後に)、要件Cdの判定のための処理(図6のS300〜S320の処理)を実行してよい。また、判定条件の要件は、実データ受信速度Vの経時変化のパターンが、予め準備された基準パターン(不具合が有る場合の典型的なパターン。例えば、図2(B)のパターン)と類似するという、パターンマッチング結果が得られること、を含んでも良い。また、判定条件の要件は、非候補ポートを無効にした状態における実データ受信速度Vの経時変化のパターンが、予め準備された基準パターンと類似するという、パターンマッチング結果が得られること、を含んでも良い。実データ受信速度Vの変化の経時変化のパターンが、図2(B)のように上昇後の変化が小さい基準パターンと類似する場合には、実データ受信速度Vの上昇後の低下の度合いが所定の基準よりも小さいということができる。ここで、監視部302、302Bは、実データ受信速度Vの経時変化のパターンを特定するために、定期的に実データ受信速度Vを取得(例えば、受信または算出)することが好ましい。
上述の種々の要件(例えば、要件Ca〜Ch、パターンマッチング)は、いずれも、実データ受信速度Vの変化のパターンにおけるループに起因する特徴に基づいている(例えば、実データ受信速度Vの急激な(加速度的な)上昇、実データ受信速度Vが最大受信速度M1近くまで上昇すること、上昇後に実データ受信速度Vがほとんど変化しないこと、等々)。それらの特徴は、データの宛先の種類が一部の種類であるパケット(例えば、ブロードキャストパケットとマルチキャストパケット)によって引き起こされるものである。しかし、ループが形成された場合には、実データ受信速度Vにおいて、上記一部の種類のパケットの占める割合が、他の種類のパケット(例えば、ユニキャストパケット)の占める割合と比べて、十分に大きい。従って、データの宛先(宛先の種類)を区別せずに算出された情報(例えば、実データ受信速度Vと単位時間変化量Dと2次変化量dD)を用いたとしても、適切な判定が可能である。そこで、上記各実施例では、監視部302は、データの宛先(宛先の種類)を区別せずに、判定に用いられる情報(例えば、実データ受信速度Vと単位時間変化量Dと2次変化量dD)を算出する。この結果、監視部302の構成を簡略化することができる。一般的には、データの宛先(宛先の種類)を区別せずに単位時間に実際に受信したデータの量を表す実データ受信速度に応じた判定を行うことによって、判定に利用される情報を生成するための構成を簡略化することができる。ただし、判定に利用される情報は、ブロードキャストパケットとマルチキャストパケットとの少なくとも一方のみから得られる情報であってもよい。
変形例10:
図12の実施例において、報知部309Bによる判定結果の報知は、表示や音による報知に限らず、ユーザに判定結果を知らせる任意の処理であってよい。例えば、報知部309Bは、判定結果を表す電子メールを、通信装置に送信してもよい。いずれの場合も、報知される情報は、ネットワークに不具合が有るか否かを表す情報であってよい。例えば、報知される情報は、対象ポートを特定せずに、ネットワークに不具合が有ることを表してよい。また、判定結果を報知する報知部309Bを、図1の第2スイッチ120に組み込んでもよい。また、報知部309Bを、図11(A)の判定制御部230Bに組み込んでもよい。この場合、報知部309Bは、継続判定処理の結果を報知してよい。また、ネットワークに不具合が有るか否かの判定結果は、対象ポートの無効化と判定結果の報知とに限らず、任意の用途に適用可能である。例えば、ポート制御部306は、対象ポートの帯域幅を、ゼロよりも大きく最大受信速度M1よりも小さい値に制限してもよい。
変形例11:
上述の各実施例において、ポート制御部306(図1)は、ユーザの指示に応じて、無効化された対象ポートを有効化してよい。ユーザは、不具合を解消した後に、ポート制御部306に指示を入力すればよい。指示の入力は、例えば、図示しない操作パネルの操作であってよい。
変形例12
上述の各実施例において、監視部302、302Bは、種々の情報を用いて、判定に利用される情報を監視してよい。例えば、図1のカウンタ225が省略されて、監視部302がポート毎のデータ量をカウントしてもよい。また、図12の実施例において、レイヤ2制御部220が、判定に必要な情報を算出し、監視部302Bは、算出された情報を第2スイッチ120Bから取得し、取得した情報をそのまま判定部304Bに通知してもよい。このように、監視部(例えば、監視部302、302B)は、判定に利用される情報を自分で算出することによって情報を監視してもよく、この代わりに、他の処理部によって算出された情報(判定に利用される情報)を、当該他の処理部から受け取ることによって、情報を監視してもよい。いずれの場合も、或る処理部が、判定に利用される情報を取得(例えば、受信または算出)して、取得した情報を判定部に提供(通知)するならば、その処理部は少なくともその情報を監視しているということができる。ここで、上記各実施例では、監視部(監視部302、302B)は、情報の監視を継続的に行っている。このかわりに、監視部は、判定に要する期間に限って、必要な情報を監視してもよい。例えば、図9の実施例では、監視部302は、2次変化量の監視を、所定時間T70の期間内に限ってもよい。
変形例13:
不具合がいまだに有ると判定するための条件(継続条件)は、図11に示す要件C1、C2を含む条件に限らず、種々の条件であってよい。例えば、継続条件は、判定条件の要件Cb〜Ceから選択された要件を含んでもよい。また、継続条件は、対象ポートが同じパケットを連続して受信すること、を要件として含んでもよい。
変形例14:
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図1の判定部304の機能を、専用のハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
110...第1スイッチ
120、120B...第2スイッチ
130...第3スイッチ
140...パーソナルコンピュータ
150...ループ経路
210...通信インタフェース
220...レイヤ2制御部
225...カウンタ
228...インタフェース
230、230B...判定制御部
232...タイマ
234...CPU
248...インタフェース
249...ディスプレイ
300B...判定装置
302、302B...監視部
304、304B...判定部(第1判定部)
306...ポート制御部
308...第2判定部
309B...報知部
1000...ネットワークシステム
NT...広域ネットワーク
P11〜P16、P21〜P26、P31〜P36...ポート

Claims (9)

  1. 判定装置であって、
    中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を、監視する監視部と、
    前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第1閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する判定部と、
    を備える、判定装置。
  2. 請求項1に記載の判定装置であって、
    前記判定条件は、前記実データ受信速度の上昇後の低下の度合いが所定の基準よりも小さいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
    判定装置。
  3. 請求項2に記載の判定装置であって、
    前記判定部は、前記実データ受信速度の上昇後の前記実データ受信速度の単位時間当たりの変化量の絶対値が、ゼロよりも大きい第2閾値よりも小さい場合に、前記実データ受信速度の上昇後の低下の度合いが前記所定の基準よりも小さいと判定する、
    判定装置。
  4. 請求項1ないし請求項3のいずれかに記載の判定装置であって、
    前記監視部は、さらに、前記実データ受信速度を監視し、
    前記判定条件は、前記実データ受信速度の上昇後の前記実データ受信速度が、ゼロよりも大きい第3閾値よりも大きいことを、前記不具合が有ると判定するための要件であって、前記実データ受信速度の上昇後における要件として含む、
    判定装置。
  5. 請求項2ないし請求項4のいずれかに記載の判定装置であって、
    前記監視部は、さらに、前記実データ受信速度の上昇後に、前記複数の通信ポートのうちの前記実データ受信速度の上昇した通信ポートである候補ポート以外の通信ポートを無効にした状態における、前記監視を行い、
    前記判定条件は、前記複数の通信ポートのうちの前記候補ポート以外の通信ポートを無効にした状態において、前記実データ受信速度の上昇後における要件が満たされることを、前記不具合が有ると判定するための要件として含む、
    判定装置。
  6. 請求項1ないし請求項5のいずれかに記載の判定装置であって、
    前記判定条件は、前記実データ受信速度の単位時間当たりの変化量がゼロ以上である状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第1時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
    判定装置。
  7. 請求項1ないし請求項6のいずれかに記載の判定装置であって、
    前記判定条件は、前記実データ受信速度の単位時間当たりの変化量の単位時間当たりの変化量がゼロより大きい状態が、前記実データ受信速度が上昇を開始してから少なくとも所定の第2時間長さの期間に亘って継続することを、前記不具合が有ると判定するための要件として含む、
    判定装置。
  8. ネットワークに不具合が有るか否かを判定する方法であって、
    中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視し、
    前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第1閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する、
    方法。
  9. プログラムであって、
    中継装置に設けられた複数の通信ポートのそれぞれにおける、単位時間に実際に受信したデータの量を表す実データ受信速度の単位時間当たりの変化量を監視する機能と、
    前記実データ受信速度の単位時間当たりの変化量が、ゼロよりも大きい第1閾値を超えて、前記実データ受信速度が上昇したという要件を、不具合が有ると判定するための要件として含む判定条件に従って、前記実データ受信速度の上昇した前記通信ポートに接続されたネットワークに不具合が有るか否かを判定する機能と、
    をコンピュータに実現させるためのプログラム。
JP2011149144A 2011-07-05 2011-07-05 判定装置、判定方法、および、プログラム Withdrawn JP2013017079A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011149144A JP2013017079A (ja) 2011-07-05 2011-07-05 判定装置、判定方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011149144A JP2013017079A (ja) 2011-07-05 2011-07-05 判定装置、判定方法、および、プログラム

Publications (1)

Publication Number Publication Date
JP2013017079A true JP2013017079A (ja) 2013-01-24

Family

ID=47689306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011149144A Withdrawn JP2013017079A (ja) 2011-07-05 2011-07-05 判定装置、判定方法、および、プログラム

Country Status (1)

Country Link
JP (1) JP2013017079A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015207813A (ja) * 2014-04-17 2015-11-19 株式会社富士通エフサス 測定装置および測定方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015207813A (ja) * 2014-04-17 2015-11-19 株式会社富士通エフサス 測定装置および測定方法

Similar Documents

Publication Publication Date Title
US20230171148A1 (en) Monitoring and detecting causes of failures of network paths
CA2949613C (en) Poe-based power supply method and pse
US8661295B1 (en) Monitoring and detecting causes of failures of network paths
US9787591B2 (en) Autonomic ingress traffic load balancing in link aggregation groups by modification of switch routing
CN108243111B (zh) 确定传输路径的方法和装置
JP5666685B2 (ja) 障害解析装置、そのシステム、およびその方法
US9110730B2 (en) Communication method and communication apparatus
JP5402484B2 (ja) 通信装置および通信制御方法
US9413454B1 (en) Automatic bandwidth adjustment on multi-fiber optics
JP2016201794A (ja) 故障検出装置、方法及びシステム
JP5673805B2 (ja) ネットワーク装置、通信システム、異常トラヒックの検出方法およびプログラム
TWI603205B (zh) 於晶載網路上之流量控制技術
CN102404170B (zh) 报文丢失检测方法、装置、及系统
US9001667B1 (en) Monitoring and detecting causes of failures of network paths
CN107948157A (zh) 一种报文处理方法及装置
CN108449408B (zh) 基于多路径的游戏加速系统
JP4946909B2 (ja) フレーム監視装置およびフレーム監視方法
US20150304185A1 (en) Operations Analysis of Packet Groups Identified based on Timestamps
US11509592B2 (en) Dynamic network receiver-driven data scheduling over a datacenter network for managing endpoint resources and congestion mitigation
JP2013017079A (ja) 判定装置、判定方法、および、プログラム
US8953469B2 (en) Communication device and computer program product
JP6458383B2 (ja) パケット処理プログラム,パケット処理装置及びパケット処理方法
US8699347B2 (en) Communication apparatus, communication system, communication method, and a computer-readable medium
JP2021064843A (ja) ネットワーク管理装置、故障区間判定方法、及びプログラム
JP7501772B2 (ja) テレメトリ情報通知装置、テレメトリ情報通知方法及びテレメトリ情報通知プログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141007