(57)【要約】【課題】複数の物理ポートを持つ一般の通信装置において、物理ポート間のフレーム転送のループを検出することができる通信装置を提供する。【解決手段】第１の対向装置と通信する第１の物理ポートと、第２の対向装置と通信する第２の物理ポートと、生成元の装置の識別子を含む識別情報を含む検査フレームを生成し、第１の物理ポートから検査フレームを送信し、第１の物理ポート又は第２の物理ポートにて受信したフレームが検査フレームであるか否かの検査結果及び受信したフレームの識別情報に基いて、第１の物理ポートから第１の物理ポート又は第２の物理ポートへのループの発生を検出するループ検出手段とを備える。【選択図】      図１
2014150503.tif 000002
【特許請求の範囲】
【請求項１】
第１の対向装置と通信する第１の物理ポートと、
第２の対向装置と通信する第２の物理ポートと、
生成元の装置の識別子を含む識別情報を含む検査フレームを生成し、前記第１の物理ポートから前記検査フレームを送信し、前記第１の物理ポート又は前記第２の物理ポートにて受信したフレームが前記検査フレームであるか否かの検査結果及び前記受信したフレームの前記識別情報に基いて、前記第１の物理ポートから前記第１の物理ポート又は前記第２の物理ポートへのループの発生を検出するループ検出手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記ループ検出手段は、前記第１の物理ポートから前記検査フレームを送信した後、所定の時間の間、前記第１の物理ポート又は前記第２の物理ポートにて受信したフレームが前記検査フレームであるか否かを検査する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１の物理ポート及び前記第２の物理ポートを含む複数の物理ポートを備え、
前記ループ検出手段は、前記複数の物理ポートから前記第１の物理ポートを選択し、前記複数の物理ポートにて受信したフレームが前記検査フレームであるか否かを検査し、更に、前記複数の物理ポートから前記第１の物理ポート以外の第３の物理ポートを選択し、前記複数の物理ポートにて受信したフレームが前記検査フレームであるか否かを検査する
ことを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記第１の物理ポート及び前記第２の物理ポートを含む複数の物理ポートを備え、
前記ループ検出手段は、前記複数の物理ポートから、前記検査フレームを同時に送信する
ことを特徴とする請求項１又は２に記載の通信装置。
【請求項５】
前記識別情報は、前記生成元の装置において、前記検査フレームが送信された物理ポートの識別子を更に含む
ことを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記ループ検出手段は、前記ループを検出したとき、前記第１の物理ポートの送信を禁止する
ことを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
前記ループ検出手段は、前記受信したフレームを送信した物理ポートの送信を禁止した場合は、アラームを発報する
ことを特徴とする請求項１乃至６のいずれか１項に記載の通信装置。
【請求項８】
生成元の装置の識別子を含む識別情報を含む検査フレームを生成して第１の物理ポートから送信し、
前記第１の物理ポート又は第２の物理ポートにて受信したフレームが前記検査フレームであるか否かの検査結果及び前記受信したフレームの前記識別情報に基いて、前記第１の物理ポートから前記第１の物理ポート又は前記第２の物理ポートへのループの発生を検出する
ことを特徴とする通信方法。
【請求項９】
第１の対向装置と通信する第１の物理ポート及び第２の対向装置と通信する第２の物理ポートを備えた通信装置が備えるコンピュータを、
生成元の装置の識別子を含む識別情報を含む検査フレームを生成する手段と、
前記第１の物理ポートから前記検査フレームを送信する手段と、
前記第１の物理ポート又は前記第２の物理ポートにて受信する手段と、
前記受信したフレームが前記検査フレームであるか否か、及び前記受信したフレームの前記識別情報を検査する手段と、
前記検査結果に基いて、前記第１の物理ポートから前記第１の物理ポート又は前記第２の物理ポートへのループの発生を検出するループ検出手段と
して機能させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理ポート間のフレーム転送のループを検出することができる、通信装置、通信方法、及び、通信プログラムに関する。
【背景技術】
【０００２】
例えば、イーサネット（登録商標）等のレイヤ２ネットワークでは、ネットワークにループが存在する場合は、フレームを無限に送信し続ける状態（ブロードキャストストーム）が発生し、通信帯域を圧迫してネットワーク機器やサーバの過負荷等の障害を引き起こす可能性がある。
【０００３】
ネットワークのループを構成する一部のリンクの利用を禁止することによりフレーム転送のループを回避する技術として、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）８０２．１Ｄとして規定されるスパニングツリープロトコル（ＳＴＰ）等の標準規格や、ネットワーク機器メーカによる独自のプロトコル等の技術が知られている。
【０００４】
しかし、ネットワーク端のスイッチ等のネットワーク機器にパーソナルコンピュータ等の端末が接続された際、その端末を用いて即座に通信を可能にするために、ＳＴＰが利用されないことが多い。そのため、ネットワークの一部ではＳＴＰが利用されていても、ＳＴＰが利用されていないネットワーク機器のポート間の接続によるフレーム転送のループの発生を抑止できないという問題がある。
【０００５】
ＬＡＮ（Local Area Network）におけるアクセス部分でのループ接続を検出してネットワークのダウン状態を未然に防ぐ、ループ接続検出方法の一例が、特許文献１に開示されている。
【０００６】
特許文献１のループ接続検出方法では、ＬＡＮのアクセス部分において、受信フレームのトラフィック量が検出され、トラフィック量が所定の閾値を超えているか否かが判定される。次に、ループ接続検出方法では、トラフィック量が閾値を超えていると判定されたとき、受信フレームに固有のフレーム情報が取得され、更に取得されたフレーム情報が、予め保持しているフレーム情報と比較される。そして、両者が同一である回数が、所定時間内に所定数あったとき、フレーム転送のループが発生していると判定される。
【０００７】
装置間の接続異常箇所を検出する接続異常検出方法の一例が、特許文献２に開示されている。
【０００８】
特許文献２の接続異常検出方法は、マスター装置とスレーブ装置を有するネットワークシステムにおいて、スレーブ装置の接続異常を検出するための技術である。ネットワークシステムは、マスター装置と複数のスレーブ装置とを含む。各スレーブ装置は、上流側ポートと下流側ポートを有する。マスター装置からのデータは、各スレーブ装置を経由してマスター装置へ戻される。
【０００９】
特許文献２の接続異常検出方法は、ネットワークシステムのトポロジ情報を取得するステップと、対象スレーブ装置が最下流である直列のトポロジを形成するように、各スレーブ装置のポートを接続又は切断するポート制御のステップと、ポート制御の後で検査用データを送信するステップと、検査用データの戻り状況に基づいて装置の接続異常を検出するステップとを有する。
【００１０】
特許文献２のマスター装置は、マスター装置と隣接する最上流のスレーブ装置とからなるネットワークから検査を始め、ポートを接続することにより順次スレーブ装置を追加して、マスター装置と最下流のスレーブ装置までを含むネットワークまで検査対象を拡大する。マスター装置は、ネットワークシステムのトポロジ情報に基づき、ネットワーク拡大の各段階で検査を行うことにより接続異常箇所を検出する。
【００１１】
フレーム転送経路のループを回避するリンク集約方法の一例が、特許文献３に開示されている。
【００１２】
特許文献３のリンク集約方法は、複数のリンクで接続された２台のスイッチ間で、フレーム転送経路のループを回避するための技術である。特許文献３ネットワークシステムは、複数のリンクで互いに接続されたリンク集約スイッチ及び対向スイッチと、複数のホストとを含む。リンク集約スイッチは、複数の物理ポートと、対向スイッチに接続された複数の物理ポートからなる論理ポートと、フレーム転送部と、ＭＡＣ（Media Access Control）アドレス学習テーブルとを有する。
【００１３】
特許文献３リンク集約スイッチのフレーム転送部は、フレーム送信要求を受けると、フレーム転送部から引き渡されたフレームの送信元アドレスを基に、所定のハッシュ関数を用いてフレームを送信する物理ポートを一つ選択する。フレーム転送部は、フレームを受信した場合は、論理ポートに集約される物理ポートから引き渡された受信フレーム内の宛先アドレスを基に、所定のハッシュ関数を用いて対応する物理ポートを一つ選択する。つまり、リンク集約スイッチは、対向スイッチとの間で、フレーム送信の際には送信元アドレスにより１つの物理ポートを特定し、フレーム受信の際には宛先アドレスにより１つの物理ポートを特定する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−１０１０９４号公報（第６−７ページ、図１、３、４）
【特許文献２】特開２０１２−１９５６５３号公報（第９−１２ページ、図１、３、５）
【特許文献３】特開２００５−１３０４０８号公報（第１０ページ、図５）
【発明の概要】
【発明が解決しようとする課題】
【００１５】
特許文献１のループ接続検出方法では、閾値を超えたトラフィック量を検出することによりループが検出される。そのため、特許文献１のループ接続検出方法では、予め閾値が設定される必要があるが、その閾値の決定が困難であるという問題がある。
【００１６】
更に、特許文献１のループ接続検出方法には、ブロードキャストストーム発生源となるパケットが発信されるまで、パケット転送経路のループの存在が分からないという問題がある。
【００１７】
特許文献２の接続異常検出方法では、マスター装置と隣接する最上流のスレーブ装置とからなるネットワークから検査を始め、マスター装置と最下流のスレーブ装置までを含むネットワークまで検査対象を拡大する。そして、ネットワーク拡大の各段階で検査が行われることにより接続異常箇所が検出される。そのため、特許文献２の接続異常検出方法には、マスター装置とスレーブ装置を有するネットワークシステムにしか適用できないという問題がある。
【００１８】
更に、特許文献２の接続異常検出方法は、ネットワークシステムのトポロジ情報を必要とする。そのため、接続異常検出方法には、トポロジ情報を利用できない場合には、適用できないという問題がある。
【００１９】
特許文献３のリンク集約方法では、リンク集約スイッチと対向スイッチ間に接続された複数のリンクによるフレーム転送のループが回避される。しかし、特許文献３のリンク集約方法では、フレーム転送のループは検出されない。そのため、リンク集約方法は、フレーム転送のループを検出することには、そもそも適用できない。
（発明の目的）
本発明の目的は、複数の物理ポートを持つ一般の通信装置において、物理ポート間のフレーム転送のループを検出することができる、通信装置、通信方法、及び、通信プログラムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明の通信装置は、第１の対向装置と通信する第１の物理ポートと、第２の対向装置と通信する第２の物理ポートと、生成元の装置の識別子を含む識別情報を含む検査フレームを生成し、第１の物理ポートから検査フレームを送信し、第１の物理ポート又は第２の物理ポートから受信したフレームが検査フレームであるか否かの検査結果及び受信したフレームの識別情報に基いて、第１の物理ポートから第１の物理ポート又は第２の物理ポートへのループの発生を検出するループ検出手段と、を備えることを特徴とする。
【００２１】
本発明の通信方法は、生成元の装置の識別子を含む識別情報を含む検査フレームを生成して第１の物理ポートから送信し、第１の物理ポート又は第２の物理ポートにて受信したフレームが検査フレームであるか否かの検査結果及び受信したフレームの識別情報に基いて、第１の物理ポートから第１の物理ポート又は第２の物理ポートへのループの発生を検出することを特徴とする。
【００２２】
本発明の通信プログラムは、第１の対向装置と通信する第１の物理ポート及び第２の対向装置と通信する第２の物理ポートを備えた通信装置が備えるコンピュータを、生成元の装置の識別子を含む識別情報を含む検査フレームを生成する手段と、第１の物理ポートから前記検査フレームを送信する手段と、第１の物理ポート又は第２の物理ポートにて受信する手段と、受信したフレームが検査フレームであるか否か、及び受信したフレームの識別情報を検査する手段と、検査結果に基いて、第１の物理ポートから第１の物理ポート又は第２の物理ポートへのループの発生を検出するループ検出手段として機能させることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、複数の物理ポートを持つ一般の通信装置において、物理ポート間のフレーム転送のループを検出することができるという効果がある。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態における通信装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態における通信装置のハードウェア構成の一例を示すブロック図である。
【図３】本発明の第１の実施形態における通信装置の動作を示すフローチャートである。
【図４】本発明の第１の実施形態における折り返し装置の構成を示すブロック図である。
【図５】本発明の第２の実施形態における通信装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について図面を参照して詳細に説明する。尚、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
図１は、本実施形態における通信装置の構成を示すブロック図である。
【００２６】
本実施形態の通信装置１００は、第１物理ポート１１０と、第２物理ポート１２０と、ループ検出手段１５０とを備える。通信装置１００は、スイッチやルータであってもよいし、ＮＩＣ（Network Interface Card）を備えたコンピュータであってもよい。
【００２７】
第１物理ポート１１０、第２物理ポート１２０は、それぞれ、１台の対向装置２１０、２２０とそれぞれ１本のリンク３１０、３２０を介して通信を行う。対向装置２１０、２２０は、リピータ、スイッチ等であってもよい。尚、対向装置２１０、２２０は、互いに接続されていてもよいし（リンク３３０）、他のホスト、リピータ、スイッチ等に接続されていてもよい（リンク３５０、３６０）。
【００２８】
本実施形態において、「ループ」とは、ある通信装置から同じ通信装置へのフレーム転送のループを意味する。「ループ」には、ある通信装置のある物理ポートから、同じ通信装置の同じ物理ポートへのフレーム転送のループ（自己ループ）も含まれる。
【００２９】
ループ検出手段１５０によるループ検出処理は、第１物理ポート１１０、第２物理ポート１２０を制御するポート制御手段（図示しない）等の起動元手段の処理中で起動される。そして、ループ検出手段１５０は、ループ検出処理が終了すると、起動元手段にループ検出処理の終了を通知する。起動元手段は、ループ検出処理の終了の通知を受けとると、ループ検出処理の呼出し後の処理を継続する。例えば、ポート制御手段は、第１物理ポート１１０、第２物理ポート１２０に対する、ポートの初期化、ポートの試験、フレームの送受信の開始や停止、又は、その他のプロトコル処理等の機能を有してもよい。ループ検出手段１５０は、例えば、ポートの初期化中のポート制御手段から起動されてもよいし、ポートの試験中のポート制御手段から起動されてもよい。又は、ループ検出手段１５０は、例えば、通信装置１００のループ検出処理開始用のボタン（図示しない）の押下等により、起動されてもよい。
【００３０】
ループ検出手段１５０は、検査フレームを生成する。検査フレームは、本発明のために使われるフレームであることが判別できる必要がある。そのためには、例えば、検査フレームのペイロードは、特定のビットパターンを含んでもよい。
【００３１】
更に、通信装置１００は、検査フレームに基づき、検査フレームの生成元装置である通信装置１００を一意に識別できる必要がある。そのためには、例えば、検査フレームのペイロードは、通信装置１００が有する物理アドレスの一つを含んでもよいし、通信装置１００を特定する特定のビットパターンを含んでもよい。
【００３２】
尚、検査フレームは、同じネットワークのすべての端末に配信されるブロードキャストフレーム、又は、存在しない物理アドレスを宛先に持つフレームであってもよい。ブロードキャストフレーム、又は、存在しない物理アドレスを宛先に持つフレームは、リピータ又はスイッチの、フレームを受信したポートを除くすべてのポートから送信（フラッディング）されるからである。
【００３３】
複数の検査フレームが送信される場合には、複数の検査フレームは、ブロードキャストフレーム又は存在しない物理アドレスを宛先に持つフレームと、その他のフレームとの組み合わせであってもよい。あるいは、フレーム転送のループの検出対象のネットワークが、通信装置１００と、リピータと、ホストから構成される場合には、検査フレームは、任意の物理アドレスを宛先に持つフレームであってもよい。任意の物理アドレスを宛先に持つフレームは、リピータのすべてのポートから送信されるからである。
【００３４】
ループの検出を行うために、初めに、ループ検出手段１５０は、複数の物理ポートから検査フレームを送信する。すなわち、ループ検出手段１５０は、フレーム転送のループの検出対象のネットワークに含まれるすべての物理ポート１１０、１２０から検査フレームを送信する。その際、ループ検出手段１５０は、複数の物理ポートから同時に検査フレームを送信してもよいし、ポート毎に順次、検査フレームを送信してもよい。
【００３５】
次に、ループ検出手段１５０は、複数の物理ポートから検査フレームを受信する。すなわち、ループ検出手段１５０は、フレーム転送のループの検出対象のネットワークに含まれるすべての物理ポート１１０、１２０から検査フレームを受信する。その際、ループ検出手段１５０は、複数の物理ポートから同時に検査フレームを受信してもよいし、ポート毎に順次、検査フレームを受信してもよい。
【００３６】
次に、ループ検出手段１５０は、受信したフレームが検査フレームであるか否かを判定する。例えば、ループ検出手段１５０は、受信したフレームのペイロードに特定のビットパターンが含まれるか否かを調べることにより、検査フレームであるか否かを判定することができる。
【００３７】
そして、ループ検出手段１５０は、受信した検査フレームを生成した装置が通信装置１００であるか否かを判定する。例えば、ループ検出手段１５０は、受信した検査フレームのペイロードに含まれる物理アドレスが通信装置１００が有する物理アドレスであるか否かを調べることにより、検査フレームを生成した装置が通信装置１００であるか否かを判定することができる。又は、ループ検出手段１５０は、受信した検査フレームのペイロードに通信装置１００を特定するビットパターンが含まれるか否かを調べることにより、検査フレームを生成した装置が通信装置１００であるか否かを判定してもよい。
【００３８】
最後に、ループ検出手段１５０は、受信したフレームが検査フレームであり、かつ受信した検査フレームの生成元装置が通信装置１００ならば、ループが存在すると判断する。検査フレームをポート毎に順次、送信する場合等では、ループ検出手段１５０は、受信した検査フレームを送信した物理ポートを、検査フレームを受信したタイミングから判別することができる。あるいは、ループ検出手段１５０は、検査フレームに含まれる情報から送信した物理ポートを判別してもよい。
【００３９】
ループ検出手段１５０は、ループの存在を検出したとき、受信した検査フレームを送信した物理ポートからのすべてのフレームの送信又は送受信を禁止してもよい。
【００４０】
尚、ループ検出手段１５０は、受信したフレームが検査フレームでない、又は受信した検査フレームの生成元装置が通信装置１００でないならば、所定の時間内に受信したフレームについて、同じ処理を繰り返す。
【００４１】
尚、本実施形態では、通信装置１００が２つの物理ポートを経由して２台の対向装置と接続される例を挙げたが、通信装置１００は、３つ以上の物理ポートを経由して３台以上の対向装置と接続されてもよい。すなわち、通信装置１００がｎ（ｎは３以上の整数）個の物理ポートを経由して、ｎ台の対向装置と接続される場合には、ｎ個の物理ポートの１番目の物理ポートからｎ番目の物理ポートまで順に、１個の物理ポートから検査フレームを送信する。そして、１個の物理ポートからの検査フレームの送信毎に、いずれかの物理ポートで検査フレームが受信されるか否かによって、ループの存在を検出することができる。ループの存在が検出されたたときは、送信元の物理ポートからのフレームの送信を停止する等、適宜、必要な処理を行えばよい。通信装置１００は、次の物理ポートあれば、その物理ポートを選択して、同じ処理を繰り返す。
【００４２】
図２は、本実施形態における通信装置のハードウェア構成の一例を示すブロック図である。
【００４３】
通信装置９０７は、記憶装置９０２と、ＣＰＵ（Central Processing Unit）９０３と、キーボード９０４と、モニタ９０５と、Ｉ／Ｏ（Input/Output）９０８とを備え、これらが内部バス９０６で接続されている。記憶装置９０２は、ループ検出手段１５０等のＣＰＵ９０３の動作プログラムを格納する。ＣＰＵ９０３は、通信装置９０７全体を制御し、記憶装置９０２に格納された動作プログラムを実行し、Ｉ／Ｏ９０８を介してループ検出手段１５０等のプログラムの実行やデータの送受信を行なう。なお、上記の通信装置９０７の内部構成は一例である。通信装置９０７は、ＣＰＵ９０３のみを備え、外部に備えられた、記憶装置９０２、キーボード９０４、モニタ９０５、及びＩ／Ｏ９０８を用いて動作してもよい。
【００４４】
次に、本実施形態の動作を説明する。
【００４５】
図３は、本実施形態における通信装置の動作を示すフローチャートである。
【００４６】
ループ検出手段１５０は、すべての未処理の物理ポートから、１つの物理ポートを選択する（ステップＳ１１０）。
【００４７】
ループ検出手段１５０は、生成元の識別情報を含む検査フレームを生成し、選択された物理ポートから検査フレームを送信する（ステップＳ１２０）。
【００４８】
ループ検出手段１５０は、すべての物理ポートから受信したすべてのフレームを検査する（ステップＳ１２５）。
【００４９】
受信したフレームが、検査フレームであり、かつ検査フレームを生成した装置が通信装置１００ならば（ステップＳ１２５：Ｙｅｓ）、ループ検出手段１５０は、フレーム転送のループが検出されたと判断し、選択されたポートの送受信を禁止する（ステップＳ１３０）。
【００５０】
受信したフレームが、検査フレームでないか、又は検査フレームを生成した装置が通信装置１００でないならば（ステップＳ１２５：Ｎｏ）、ループ検出手段１５０は、まだフレーム転送のループが検出されていないと判断し、次の処理に進む（ステップＳ１８０）。
【００５１】
ループ検出手段１５０は、ステップＳ１２０の終了から所定の時間が経過しているか否かを判定し（ステップＳ１８０）、経過していなければステップＳ１２５に戻り（ステップＳ１８０：Ｎｏ）、経過していればステップＳ１９０に進む（ステップＳ１８０：Ｙｅｓ）。
【００５２】
ループ検出手段１５０は、未処理の物理ポートがあるか否かを判定し（ステップＳ１９０）、あればステップＳ１１０に戻り（ステップＳ１９０：Ｙｅｓ）、なければ処理を終了する（ステップＳ１９０：Ｎｏ）。
【００５３】
以下に、具体例として、スイッチである第１対向装置２１０と第２対向装置２２０とがリンク３３０で接続される場合について説明する。
【００５４】
通信装置１００のループ検出手段１５０は、第１物理ポート１１０を選択する（ステップＳ１１０）。
【００５５】
ループ検出手段１５０は、生成元の識別情報を含む検査フレームを生成し、第１物理ポート１１０から検査フレームを送信する（ステップＳ１２０）。
【００５６】
通信装置１００からリンク３１０を経由して送信された検査フレームは、第１対向装置２１０により受信される。
【００５７】
第１対向装置２１０がスイッチの場合、検査フレームの宛先はブロードキャストアドレス又は第１対向装置２１０が未学習（ＭＡＣアドレス学習テーブルに未登録）のアドレスなので、第１対向装置２１０は、受信したリンク３１０を除く全てのリンク３３０、３５０から検査フレームを送信する。
【００５８】
あるいは、第１対向装置２１０がリピータの場合、第１対向装置２１０は、受信したリンク３１０を除く全てのリンク３３０、３５０から検査フレームを送信する。
【００５９】
尚、第１対向装置２１０が一般のホストの場合、第１対向装置２１０はリンク３３０、３５０を持たないので、第１対向装置２１０は、検査フレームをどこにも送信しない。
【００６０】
ただし、第１対向装置２１０が受信したフレームと同じペイロードを持つフレームを折り返し送信する特殊なホスト（以下、「折り返し装置」という。）の場合、第１対向装置２１０は、受信したリンク３１０から検査フレームを送信する。折り返し装置は、入力信号をそのまま出力信号として折り返す回路であってもよい。
【００６１】
第１対向装置２１０からリンク３３０を経由して送信された検査フレームは、第２対向装置２２０により受信される。
【００６２】
第２対向装置２２０も、第１対向装置２１０と同様な動作を行う。第２対向装置２２０がスイッチなので、検査フレームの宛先はブロードキャストアドレス又は第２対向装置２２０が未学習のアドレスなので、第２対向装置２２０は、受信したリンク３３０を除く全てのリンク３２０、３６０から検査フレームを送信する。
【００６３】
第２対向装置２２０からリンク３２０を経由して送信された検査フレームは、通信装置１００のループ検出手段１５０により受信される（ステップＳ１２５）。受信したフレームが検査フレームであり、かつ検査フレームを生成した装置が通信装置１００なので、ループ検出手段１５０は、フレーム転送のループが検出されたと判断する。そして、ループ検出手段１５０は、選択された第１物理ポート１１０の送受信を禁止する（ステップＳ１３０）。
【００６４】
ループ検出手段１５０は、ステップＳ１２０の終了から所定の時間が経過するまで（ステップＳ１８０）、受信したフレームを検査する（ステップＳ１８０：Ｎｏ）。
【００６５】
ループ検出手段１５０は、ステップＳ１２０の終了から所定の時間が経過した場合は、次の未処理のポートの処理を行う（ステップＳ１９０：Ｙｅｓ）。
【００６６】
尚、ループ検出手段１５０が送信した検査フレームが他の機器により転送される際に、検査フレームに不正な送信元物理アドレスが設定される可能性がある。更に、対向装置２１０、２２０がスイッチの場合、対向装置２１０、２２０が不正な送信元物理アドレスを持つ検査フレームを転送すると、対向装置２１０、２２０は不正な物理アドレスを学習（ＭＡＣアドレス学習テーブルに登録）する可能性がある。そこで、ループ検出手段１５０は、次の未処理のポートの処理を行う前に、対向装置２１０、２２０に、学習した物理アドレスの消去（ＭＡＣアドレス学習テーブルからの削除）を指示してもよい。ＭＡＣアドレス学習テーブルの学習内容の消去の指示には、例えば、Ｙ．１７３１やＩＥＥＥＥ８０２．１ａｇで規定されるＲＤＩ（Remote Deficit Indication）フレーム等を利用してもよい。
【００６７】
通信装置１００のループ検出手段１５０は、第２物理ポート１２０を選択する（ステップＳ１１０）。
【００６８】
ループ検出手段１５０は、第２物理ポート１２０から検査フレームを送信する（ステップＳ１２０）。
【００６９】
通信装置１００からリンク３２０を経由して送信された検査フレームは、第２対向装置２２０により受信される。
【００７０】
第２対向装置２２０がスイッチなので、検査フレームの宛先はブロードキャストアドレス又は第２対向装置２２０が未学習のアドレスなので、第２対向装置２２０は、受信したリンク３３０を除く全てのリンク３３０、３６０から検査フレームを送信する。
【００７１】
第２対向装置２２０からリンク３３０を経由して送信された検査フレームは、第１対向装置２１０により受信される。
【００７２】
第１対向装置２１０がスイッチなので、検査フレームの宛先はブロードキャストアドレス又は第１対向装置２１０が未学習のアドレスなので、第１対向装置２１０は、受信したリンク３３０を除く全てのリンク３１０、３５０から検査フレームを送信する。
【００７３】
第１物理ポート１１０の送受信は禁止されているので、第１対向装置２１０からリンク３１０を経由して送信された検査フレームは、通信装置１００により受信されない。
【００７４】
ループ検出手段１５０は、ステップＳ１２０の終了から所定の時間が経過するまで（ステップＳ１８０）、受信したフレームを検査する（ステップＳ１８０：Ｎｏ）。
【００７５】
ループ検出手段１５０は、ステップＳ１２０の終了から所定の時間が経過した場合は、未処理のポートがないので処理を終了する（ステップＳ１９０：Ｎｏ）。
【００７６】
以上の処理の結果、ループ検出手段１５０は、通信装置１００の第１物理ポート１１０から第２物理ポート１２０への、フレーム転送のループが検出されたと判断する。その際、第１物理ポート１１０の送受信は禁止されるので（第２物理ポート１２０の送受信は禁止されない）、リンク３３０に起因する第１物理ポート１１０から第２物理ポート１２０へのフレーム転送のループは発生しなくなる。この際、第１物理ポート１１０の送信と受信の両方が禁止されるので、同時に、同じくリンク３３０に起因する、第２物理ポート１２０から第１物理ポート１１０へのフレーム転送のループも発生しなくなる。
【００７７】
以上説明したように、本実施形態における通信装置１００は、物理ポート間のフレーム転送のループを検出することができる。その理由は、ループ検出手段１５０は、検査フレームを送信し、ループ検出手段１５０が送信した検査フレームを受信するか否かを検査するからである。
【００７８】
更に、通信装置１００が物理ポート間のフレーム転送のループを検出する際、通信装置１００は、閾値を設定した上で、トラフィック量を測定して、閾値を超えるトラフィック量を検出する必要はないという効果がある。その理由は、ループ検出手段１５０は、トラフィック量には関係なく、検査フレームを送信し、送信された検査フレームが受信されるか否かを検査するからである。
【００７９】
更に、通信装置１００が、ポートの初期化中に、ループ検出手段１５０によるフレーム転送のループ検出を行えば、通信装置１００は、直ちに物理ポート間のフレーム転送のループを検出することができる。その理由は、ループ検出手段１５０は、通常のフレームの送受信前に検査フレームを送信し、ループ検出手段１５０が送信した検査フレームを受信するか否かを検査するからである。
【００８０】
更に、通信装置１００は、マスター装置とスレーブ装置を有するネットワークシステム以外にも適用できるという効果がある。その理由は、通信装置１００は、通信装置１００、スイッチ、リピータ、又はホストを含む一般のアクセスネットワークを、フレーム転送のループを検出する対象にするからである。
【００８１】
更に、通信装置１００は、ネットワークシステムのトポロジ情報を利用できない場合にも、適用できるという効果がある。その理由は、ループ検出手段１５０は、予めトポロジ情報を取得せずに、検査フレームを送信し、ループ検出手段１５０が送信した検査フレームを受信するか否かを検査するからである。
【００８２】
更に、通信装置１００は、複数のリンクで接続された２台のスイッチを有するネットワークシステム以外にも適用できるという効果がある。その理由は、通信装置１００は、通信装置１００、スイッチ、リピータ、又はホストを含む一般のアクセスネットワークを、フレーム転送のループを検出する対象にするからである。
【００８３】
更に、通信装置１００は、フレーム転送のループを検出すると同時に、通信装置１００に接続された複数のリンクによるフレーム転送のループを回避できるという効果がある。その理由は、ループ検出手段１５０は、複数の物理ポートから検査フレームを送信し、ループ検出手段１５０が送信した検査フレームを受信するか否かを検査し、フレーム転送のループが検出された物理ポートの送信又は送受信を禁止するからである。
（第２の実施形態）
図４は、本実施形態における折り返し装置の構成を示すブロック図である。
【００８４】
本発明の第２の実施形態における通信装置の構成は、図１に示した第１の実施形態における通信装置の構成と同じである。但し、通信装置１０５は、それぞれ物理ポート１１０、１２０におけるイベントの発生を利用者に知らせるＬＥＤ（Light Emitting Diode）１１５、１２５を更に備える。本実施形態の説明においては、第１の実施形態と本実施形態とで共通する説明は省略し、第１の実施形態に対する本実施形態の相違点のみについて説明する。
【００８５】
折り返し装置３９０は、受信したフレームと同じペイロードを持つフレームを送信する。折り返し装置３９０は、ＬＡＮケーブル３７０又は３８０の一端に取り付けられて、ＬＡＮケーブル３７０、３８０の他端に取り付けられた通信装置１０５の物理ポート１１０、１２０との間でフレームを送受信する。
【００８６】
折り返し装置３９０に示したピン位置は、１０ＢＡＳＥ−Ｔ、１００ＢＡＳＥ−ＴＸ、１０００ＢＡＳＥ−Ｔ等で利用されるＬＡＮケーブル３７０、３８０の８Ｐ８Ｃモジュラーコネクタにおけるピン位置を示す。ここでは、折り返し装置３９０が、ピン位置１と３の間、及び、ピン位置２と６の間で受信信号を折り返して送信する例を示す。折り返し装置３９０のピン間は、電気的に直接接続されてもよい。折り返し装置３９０は、入力信号を受信フレームとして一旦記憶して、受信フレームと同じペイロードを持つ別のフレームを折り返し送信してもよい。折り返し装置３９０は、フレームのペイロード以外の構成要素を更に置き換えたフレームを折り返し送信してもよい。
【００８７】
図５は、本実施形態における通信装置の動作を示すフローチャートである。
【００８８】
ループ検出手段１５０は、生成元及び最初の送信元の物理ポートの識別情報を含む検査フレームを生成し、すべての物理ポートから検査フレームを送信する（ステップＳ１２５）。例えば、検査フレームのペイロードは、検査フレームの送信元の物理ポート番号を表すビットパターンを含んでもよい。
【００８９】
ループ検出手段１５０は、すべての物理ポートから受信した各フレームを検査する（ステップＳ１３５）。ここでは、一度に１つの受信フレームが検査されるものとする。
【００９０】
ループ検出手段１５０は、受信したフレームが、検査フレームであり、かつ検査フレームを生成した装置が通信装置１０５か否かを検査する（ステップＳ１４０）。
【００９１】
受信したフレームが、検査フレームであり、かつ検査フレームを生成した装置が通信装置１０５ならば（ステップＳ１４０：Ｙｅｓ）、ループ検出手段１５０は、フレーム転送のループが検出されたと判断し、選択されたポートの送信を禁止する（ステップＳ１５０）。
【００９２】
ループ検出手段１５０は、受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じか否かを検査する（ステップＳ１６０）。
【００９３】
受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じならば（ステップＳ１６０：Ｙｅｓ）、ループ検出手段１５０は、フレーム転送の自己ループ（１つの物理ポートによるフレーム転送のループ）が検出されたと判断し、物理ポートにおけるイベントの発生を利用者に知らせるＬＥＤを点灯する（ステップ１７５）。尚、ループ検出手段１５０がＬＥＤを点灯する例を示したが、ループ検出手段１５０は、ＬＥＤを点滅したり、点灯色を変えたりすることにより、フレーム転送の自己ループの発生を利用者に知らせてもよい。
【００９４】
受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じでないならば（ステップＳ１６０：Ｎｏ）、ループ検出手段１５０は、自己ループではないフレーム転送のループ（２つ以上の物理ポートによるフレーム転送のループ）が検出されたと判断し、アラームを発報する（ステップ１７０）。尚、ループ検出手段１５０がアラームを発報する例を示したが、ループ検出手段１５０は、ステップＳ１７５とは異なる形式でＬＥＤを点灯したり、アラーム音を鳴らしたりすることにより、自己ループ以外のフレーム転送のループの発生を利用者に知らせてもよい。
【００９５】
受信したフレームが、検査フレームでないか、又は検査フレームを生成した装置が通信装置１０５でないならば、ループ検出手段１５０は、ステップＳ１８０に進む（ステップＳ１４０：Ｎｏ）。
【００９６】
ループ検出手段１５０は、ステップＳ１２５の終了から所定の時間が経過しているか否かを判定し（ステップＳ１８０）、経過していなければステップＳ１３５に戻り（ステップＳ１８０：Ｎｏ）、経過していれば処理を終了する（ステップＳ１８０：Ｙｅｓ）。
【００９７】
例えば、スイッチである第１対向装置２１０と第２対向装置２２０とが、リンク３３０で接続される場合について説明する。
【００９８】
ループ検出手段１５０は、生成元及び最初の送信元の物理ポートの識別情報を含む検査フレームを生成し、第１物理ポート１１０及び第２物理ポート１２０から検査フレームを送信する（ステップＳ１２５）。
【００９９】
通信装置１０５からリンク３１０を経由して送信された検査フレームは、第１対向装置２１０により受信される。
【０１００】
第１対向装置２１０がスイッチなので、検査フレームの宛先はブロードキャストアドレス又は第１対向装置２１０が未学習のアドレスなので、第１対向装置２１０は、受信したリンク３１０を除く全てのリンク３３０、３５０から検査フレームを送信する。
【０１０１】
第１対向装置２１０からリンク３３０を経由して送信された検査フレームは、第２対向装置２２０により受信される。
【０１０２】
第２対向装置２２０がスイッチなので、検査フレームの宛先はブロードキャストアドレス又は第２対向装置２２０が未学習のアドレスなので、第２対向装置２２０は、受信したリンク３３０を除く全てのリンク３２０、３６０から検査フレームを送信する。
【０１０３】
通信装置１０５からリンク３２０を経由して送信された検査フレームは、第２対向装置２２０により受信される。
【０１０４】
第２対向装置２２０がスイッチなので、検査フレームの宛先はブロードキャストアドレス又は第２対向装置２２０が未学習のアドレスなので、第２対向装置２２０は、受信したリンク３２０を除く全てのリンク３３０、３６０から検査フレームを送信する。
【０１０５】
第２対向装置２２０からリンク３３０を経由して送信された検査フレームは、第１対向装置２１０により受信される。
【０１０６】
第１対向装置２１０がスイッチなので、検査フレームの宛先がブロードキャストアドレス又は第１対向装置２１０が未学習のアドレスなので、第１対向装置２１０は、受信したリンク３３０を除く全てのリンク３１０、３５０から検査フレームを送信する。
【０１０７】
第２対向装置２２０からリンク３２０を経由して送信された検査フレームは、通信装置１０５のループ検出手段１５０により受信される（ステップＳ１３５）。
【０１０８】
受信したフレームが検査フレームであり、かつ検査フレームを生成した装置が通信装置１０５なので（ステップＳ１４０：Ｙｅｓ）、ループ検出手段１５０は、フレーム転送のループが検出されたと判断する。そして、ループ検出手段１５０は、選択された第１物理ポート１１０の送信を禁止する（ステップＳ１５０）。
【０１０９】
ループ検出手段１５０は、受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じか否かを検査する（ステップＳ１６０）。
【０１１０】
受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じでないので（ステップＳ１６０：Ｎｏ）、ループ検出手段１５０は、自己ループではないフレーム転送のループが検出されたと判断し、アラームを発報する（ステップ１７０）。
【０１１１】
ループ検出手段１５０は、ステップＳ１２５の終了から所定の時間が経過するまで（ステップＳ１８０）、受信したフレームを検査する（ステップＳ１８０：Ｎｏ）。
【０１１２】
第１対向装置２１０からリンク３１０を経由して送信された検査フレームは、通信装置１０５のループ検出手段１５０により受信される（ステップＳ１３５）。受信したフレームが検査フレームであり、かつ検査フレームを生成した装置が通信装置１０５なので（ステップＳ１４０：Ｙｅｓ）、ループ検出手段１５０は、フレーム転送のループが検出されたと判断し、選択された第２物理ポート１２０の送信を禁止する（ステップＳ１５０）。
【０１１３】
ループ検出手段１５０は、受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じか否かを検査する（ステップＳ１６０）。
【０１１４】
受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じでないので（ステップＳ１６０：Ｎｏ）、ループ検出手段１５０は、自己ループではないフレーム転送のループが検出されたと判断し、アラームを発報する（ステップ１７０）。
【０１１５】
ループ検出手段１５０は、ステップＳ１２５の終了から所定の時間が経過した場合は、処理を終了する（ステップＳ１８０：Ｙｅｓ）。
【０１１６】
以上の動作の結果、ループ検出手段１５０は、通信装置１０５の第１物理ポート１１０及び第２物理ポート１２０でフレーム転送のループが検出されたと判断する。その際、第１物理ポート１１０及び第２物理ポート１２０の送信は禁止されるので、リンク３３０によるフレーム転送のループは発生しなくなる。
【０１１７】
以下に、具体例として、通信装置１０５の第１物理ポート１１０にＬＡＮケーブル３７０が接続され、第２物理ポート１２０にＬＡＮケーブル３８０が接続される場合について説明する。尚、ＬＡＮケーブル３７０、３８０は、それぞれ物理ポート１１０、１２０のどちらに接続されているのかが容易に確認できない状態にある。そこで、折り返し装置３９０が、ＬＡＮケーブル３７０又は３８０の任意の一方（ここは、ＬＡＮケーブル３７０）に接続される。
【０１１８】
その後、通信装置１０５のループ検出処理開始用のボタン（図示しない）が押下されると、ループ検出手段１５０の処理が起動される。
【０１１９】
ループ検出手段１５０は、前述と同じ動作（ステップＳ１２５からＳ１６０）を行う。
【０１２０】
通信装置１０５からリンク３７０を経由して送信された検査フレームは、折り返し装置３９０により受信される。折り返し装置３９０は、受信した検査フレームと同じペイロードを持つ検査フレームをリンク３７０から送信する。
【０１２１】
受信された検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じなので（ステップＳ１６０：Ｙｅｓ）、ループ検出手段１５０は、フレーム転送の自己ループが検出されたと判断し、第１物理ポート１１０を指し示す第１ＬＥＤ１１５を点灯する（ステップ１７０）。
【０１２２】
ループ検出手段１５０は、第２物理ポート１２０から検査フレームを受信しないので、第２物理ポート１２０を指し示す第２ＬＥＤ１２５を点灯しない。
【０１２３】
以上の処理の結果、折り返し装置３９０が接続された第１物理ポート１１０を指し示す第１ＬＥＤ１１５が点灯するので、折り返し装置３９０が接続されたＬＡＮケーブル３７０が第１物理ポート１１０に接続されていることがわかる。
【０１２４】
以上説明したように、本実施形態における通信装置１０５は、第１の実施例の効果に加えて、以下の効果を有する。
【０１２５】
第一に、本実施形態における通信装置１０５は、第１の実施例の効果に加えて、フレームの転送ループを検出する時間を短縮することができる。その理由は、全ての物理ポートから同時に検査フレームを送信し、所定の時間内で検査フレームを並列に受信するからである。
【０１２６】
第二に、本実施形態における通信装置１０５は、自己ループを検出し、自己ループが発生した物理ポートを特定することができる。その理由は、ループ検出手段１５０が、受信した検査フレームの最初の送信元の物理ポートが、検査フレームを受信した物理ポートと同じか否かを検査し、同じであれば、自己ループの発生した物理ポートのＬＥＤを点灯するからである。
【０１２７】
なお、図３、５の各処理は、ソフトウェアによって実行されてもよい。すなわち、各処理を行うためのコンピュータプログラムが、通信装置が備えるＣＰＵ（図２：９０３）によって読み込まれ、実行されてもよい。プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。そして、上記のプログラムは、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【０１２８】
あるいは、各処理は、個別の回路等の構成要素によって実行されてもよい。
【０１２９】
尚、本願発明は、上述の実施形態に限定されるものではなく、本願発明の要旨を逸脱しない範囲で種々変更、変形して実施することができる。
【図１】
2014150503.tif 000003
【図２】
2014150503.tif 000004
【図３】
2014150503.tif 000005
【図４】
2014150503.tif 000006
【図５】
2014150503.tif 000007