(57)【特許請求の範囲】
【請求項１】
各ポートを識別するポート番号に対応付けて、前記ポートを介して接続される装置のアドレス情報を記憶する記憶部と、
障害の影響を受ける装置のアドレス情報を含む障害宛先リストを受信する受信部と、
前記受信部によって障害宛先リストが受信された場合に、前記障害宛先リストが受信されたポートを識別するポート番号に対応付けられたアドレス情報を前記記憶部から抽出する抽出部と、
前記抽出部によって抽出されたアドレス情報と、前記受信された障害宛先リストに含まれるアドレス情報との両方に含まれるアドレス情報を特定する特定部と、
前記特定部によって特定されたアドレス情報で前記障害宛先リストに含まれるアドレス情報を書き換え、前記障害宛先リストが受信されたポート以外の各ポートから、書き換えた障害宛先リストを送信する送信部と
を有することを特徴とする通信制御装置。
【請求項２】
前記特定部によって特定されたアドレス情報を前記記憶部から削除する削除部をさらに有することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記送信部は、前記抽出部によって抽出されたアドレス情報と、前記受信された障害宛先リストに含まれるアドレス情報との両方に含まれるアドレス情報が存在しないと前記特定部によって特定された場合には、前記障害宛先リストを送信しないことを特徴とする請求項１または２に記載の通信制御装置。
【請求項４】
コンピュータによって実行される通信制御方法であって、
障害の影響を受ける装置のアドレス情報を含む障害宛先リストを受信し、
前記障害宛先リストを受信した場合に、前記障害宛先リストが受信されたポートを識別するポート番号に対応付けられたアドレス情報を、各ポートを識別するポート番号に対応付けて、前記ポートを介して接続される装置のアドレス情報を記憶する記憶部から抽出し、
前記抽出したアドレス情報と、前記受信された障害宛先リストに含まれるアドレス情報との両方に含まれるアドレス情報を特定し、
前記特定したアドレス情報で前記障害宛先リストに含まれるアドレス情報を書き換え、前記障害宛先リストが受信されたポート以外の各ポートから、書き換えた障害宛先リストを送信する、
ことを特徴とする通信制御方法。
【請求項５】
コンピュータに、
障害の影響を受ける装置のアドレス情報を含む障害宛先リストを受信し、
前記障害宛先リストを受信した場合に、前記障害宛先リストが受信されたポートを識別するポート番号に対応付けられたアドレス情報を、各ポートを識別するポート番号に対応付けて、前記ポートを介して接続される装置のアドレス情報を記憶する記憶部から抽出し、
前記抽出したアドレス情報と、前記受信された障害宛先リストに含まれるアドレス情報との両方に含まれるアドレス情報を特定し、
前記特定したアドレス情報で前記障害宛先リストに含まれるアドレス情報を書き換え、前記障害宛先リストが受信されたポート以外の各ポートから、書き換えた障害宛先リストを送信する、
処理を実行させることを特徴とする通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、通信制御方法および通信制御プログラムに関する。
【背景技術】
【０００２】
従来、イーサネット（登録商標）スイッチなどの通信制御装置は、広域イーサネット（登録商標）やＬＡＮ（Local  Area  Network）などのネットワークに用いられ、データの転送制御を実施する。この通信制御装置は、複数のポートを有し、サーバや他の通信制御装置と接続される。
【０００３】
また、通信制御装置は、ポートと当該ポートを介して接続される装置のＭＡＣ（Media  Access  Control）アドレスとを対応付けて記憶する学習テーブルを保持し、学習テーブルに従って、受信したデータを宛先に転送する。
【０００４】
ここで、通信制御装置が実行する学習テーブルの学習の例について説明する。通信制御装置は、送信元をアドレスＡ、宛先をアドレスＢとするデータＸをポート１から受信し、学習テーブルにアドレスＡが登録されていないとする。
【０００５】
この場合、通信制御装置は、送信元のアドレスＡとポート１とを対応付けて学習テーブルに登録する。そして、通信制御装置は、宛先のアドレスＢが学習テーブルに登録されている場合には、学習テーブルにより特定されるポートからデータＸを送信する。一方、通信制御装置は、宛先のアドレスＢが学習テーブルに登録されていない場合には、ポート１以外からデータＸをフラッディングする。
【０００６】
この結果、通信制御装置は、アドレスＡとポート１とを対応付けることができ、以後にアドレスＡ宛のデータを他ポートから受信した場合には、フラッディングすることなく、ポート１から送信することができる。
【０００７】
そして、通信制御装置は、ポート２で障害を検出した場合、ポート２に接続される宛先アドレスを学習テーブルから特定し、特定した宛先アドレスを障害宛先アドレスとして含めたフラッシュメッセージを全ポートにフラッディングする。このフラッシュメッセージを受信した他の通信制御装置は、フラッシュメッセージに含まれる宛先アドレスに関する情報を学習テーブルから削除し、受信したフラッシュメッセージを受信ポート以外の全ポートにフラッディングする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００８／１１１１２８号
【特許文献２】特許第４４７３７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の技術では、不要なフラッディングが発生するという課題があった。例えば、従来の技術では、障害時に、ネットワーク内の全ての通信制御装置にフラッシュメッセージを送信していたので、障害に影響されない通信制御装置を送信先とする不要なフラッディングが発生する。
【００１０】
また、障害に影響されない通信制御装置の学習テーブルに記憶される情報まで削除されるので、削除された宛先については、学習テーブルの再学習が実行されることになる。したがって、学習テーブルの再学習に伴って、不要なフラッディングが発生する。
【００１１】
１つの側面では、不要なフラッディングの発生を防止できる通信制御装置、通信制御方法および通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の案では、通信制御装置は、各ポートを識別するポート番号に対応付けて、前記ポートを介して接続される装置のアドレス情報を記憶する記憶部を有する。通信制御装置は、障害の影響を受ける装置のアドレス情報を含む障害宛先リストを受信する受信部を有する。通信制御装置は、前記受信部によって障害宛先リストが受信された場合に、前記障害宛先リストが受信されたポートを識別するポート番号に対応付けられたアドレス情報を前記記憶部から抽出する抽出部を有する。通信制御装置は、前記抽出部によって抽出されたアドレス情報と、前記受信された障害宛先リストに含まれるアドレス情報との両方に含まれるアドレス情報を特定する特定部を有する。通信制御装置は、前記特定部によって特定されたアドレス情報で前記障害宛先リストに含まれるアドレス情報を書き換え、前記障害宛先リストが受信されたポート以外の各ポートから、書き換えた障害宛先リストを送信する送信部を有する。
【発明の効果】
【００１３】
不要なフラッディングの発生を防止できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る通信制御装置の構成を示すブロック図である。
【図２】図２は、実施例２に係る通信制御装置の構成を示すブロック図である。
【図３】図３は、学習テーブルに記憶される情報の例を示す図である。
【図４】図４は、障害宛先リストの例を示す図である。
【図５】図５は、実施例２に係る通信制御装置を用いて形成されるシステム構成図である。
【図６】図６は、通信制御装置Ａが保持する学習テーブルの例を示す図である。
【図７】図７は、通信制御装置Ｂが保持する学習テーブルの例を示す図である。
【図８】図８は、通信制御装置Ｃが保持する学習テーブルの例を示す図である。
【図９】図９は、通信制御装置Ｄが保持する学習テーブルの例を示す図である。
【図１０】図１０は、通信制御装置Ｂにおけるフラッシュメッセージの更新例を示す図である。
【図１１】図１１は、実施例２に係る通信制御装置における障害検出時の処理の流れを示すフローチャートである。
【図１２】図１２は、実施例２に係る通信制御装置におけるフラッシュメッセージ受信時の処理の流れを示すフローチャートである。
【図１３】図１３は、ネットワーク例を示す図である。
【図１４】図１４は、障害の影響を示す図である。
【図１５】図１５は、通信制御プログラムを実行するコンピュータシステムの例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する通信制御装置、通信制御方法および通信制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。実施例で説明する通信制御装置は、例えば、イーサネット（登録商標）スイッチ、スイッチングハブ、レイヤ２スイッチ、ルータ、レイヤ３スイッチ、スイッチ機能を有するサーバなど、ネットワークに用いられてデータの転送制御を実施する装置である。
【実施例１】
【００１６】
図１は、実施例１に係る通信制御装置の構成を示すブロック図である。図１に示すように、通信制御装置１は、記憶部１ａと受信部１ｂと抽出部１ｃと特定部１ｄと送信部１ｅとを有し、記憶部１ａに記憶される情報に従って、受信したデータを宛先に転送する。
【００１７】
記憶部１ａは、各ポートを識別するポート番号に対応付けて、ポートを介して接続される装置のアドレス情報を記憶する。受信部１ｂは、障害の影響を受ける装置のアドレス情報を含む障害宛先リストを受信する。抽出部１ｃは、受信部１ｂによって障害宛先リストが受信された場合に、障害宛先リストが受信されたポートを識別するポート番号に対応付けられたアドレス情報を記憶部１ａから抽出する。特定部１ｄは、抽出部１ｃによって抽出されたアドレス情報と、受信部１ｂによって受信された障害宛先リストに含まれるアドレス情報との両方に含まれるアドレス情報を特定する。送信部１ｅは、特定部１ｄによって特定されたアドレス情報で障害宛先リストに含まれるアドレス情報を書き換え、障害宛先リストが受信されたポート以外の各ポートから、書き換えた障害宛先リストを送信する。
【００１８】
このように、実施例１に係る通信制御装置１は、受信した障害宛先リストを、障害となった経路で影響のある宛先のみを含む障害宛先リストに更新して、他の装置に転送するので、障害の影響がある宛先のみを初期化することができる。この結果、不要なフラッディングの発生を防止できる。
【実施例２】
【００１９】
次に、実施例２に係る通信制御装置について説明する。ここでは、通信制御装置の構成、処理の具体例、処理の流れ、実施例２による効果を順に説明する。
【００２０】
［通信制御装置の構成］
図２は、実施例２に係る通信制御装置の構成を示すブロック図である。図２に示すように、通信制御装置１０は、通信制御Ｉ／Ｆ部１１と学習テーブル１２と受信部１３とスイッチング制御部１４と障害検出部１５と抽出部１６と特定部１７と削除部１８と送信部１９とを有する。なお、ここで図示した各制御部は例であり、これら以外の制御部を有していてもよい。
【００２１】
通信制御Ｉ／Ｆ部１１は、ポート１、ポート２、ポート３〜ポートＮ（Ｎは自然数）を有し、他装置との間でやり取りされるデータの送受信を制御する。例えば、通信制御Ｉ／Ｆ部１１は、ポート１〜ポートＮで受信されたパケット、フレームなどのデータを受信部１３に出力する。また、通信制御Ｉ／Ｆ部１１は、送信部１９から入力されたデータをポート１〜ポートＮから宛先に送信する。また、通信制御Ｉ／Ｆ部１１が有するポート１〜ポートＮ各々には、各ポートを識別するポート番号が割り与えられている。
【００２２】
学習テーブル１２は、スイッチング制御部１４によって学習されたルーティング情報を記憶する。図３は、学習テーブルに記憶される情報の例を示す図である。図３に示すように、学習テーブル１２は、「ＳｒｃＭａｃ」と「ポート番号」とを対応付けて記憶する。ここで記憶される「ＳｒｃＭａｃ」は、学習された送信元のＭＡＣアドレスであり、ポートと接続される装置のＭＡＣ（Media  Access  Control）アドレスである。「ポート番号」は、ポートを一意に識別する識別子である。
【００２３】
図３の例の場合、ＭＡＣアドレスＡの装置がポート番号Ｐ１のポートを介して接続されており、ＭＡＣアドレスＡの装置にデータを送信する場合には、ポート番号Ｐ１のポートから送信することが示されている。また、ＭＡＣアドレスＢの装置がポート番号Ｐ２のポートを介して接続されており、ＭＡＣアドレスＢの装置にデータを送信する場合には、ポート番号Ｐ２のポートから送信することが示されている。また、ＭＡＣアドレスＣの装置がポート番号Ｐ１のポートを介して接続されており、ＭＡＣアドレスＣの装置にデータを送信する場合には、ポート番号Ｐ１のポートから送信することが示されている。
【００２４】
同様に、ＭＡＣアドレスＤの装置がポート番号Ｐ３のポートを介して接続されており、ＭＡＣアドレスＤの装置にデータを送信する場合には、ポート番号Ｐ３のポートから送信することが示されている。また、ＭＡＣアドレスＥの装置がポート番号Ｐ２のポートを介して接続されており、ＭＡＣアドレスＥの装置にデータを送信する場合には、ポート番号Ｐ２のポートから送信することが示されている。また、ＭＡＣアドレスＦの装置がポート番号Ｐ１のポートを介して接続されており、ＭＡＣアドレスＦの装置にデータを送信する場合には、ポート番号Ｐ１のポートから送信することが示されている。
【００２５】
図２に戻り、受信部１３は、通信制御Ｉ／Ｆ部１１の各ポートを介してデータを受信する。例えば、受信部１３は、各ポートを介して受信したデータのヘッダやペイロード等を参照する。そして、受信部１３は、受信されたデータが障害宛先リストを含んだフラッシュメッセージである場合には、当該フラッシュメッセージを抽出部１６に出力する。また、受信部１３は、受信されたデータがフラッシュメッセージ以外の通常のデータである場合には、当該データをスイッチング制御部１４に出力する。また、受信部１３は、受信されたデータがＳＮＭＰ（Simple  Network  Management  Protocol）トラップなどの障害検出を示すメッセージである場合には、当該メッセージを障害検出部１５に出力する。なお、受信部１３は、データが受信されたポートのポート番号をあわせて上記の各制御部に出力してもよい。
【００２６】
スイッチング制御部１４は、受信部１３によって受信されたデータを宛先に送信するルーティング制御を実行する。例えば、スイッチング制御部１４は、受信部１３からデータと当該データが受信されたポート番号等を受け付けて、受け付けたデータのヘッダから宛先のＭＡＣアドレスを取得する。続いて、スイッチング制御部１４は、受信したデータから取得した宛先ＭＡＣアドレスが学習テーブル１２に記憶されているか否かを判定する。
【００２７】
そして、スイッチング制御部１４は、ＭＡＣアドレスが学習テーブル１２に記憶されている場合には、当該ＭＡＣアドレスに対応するポート番号を学習テーブル１２から特定する。その後、スイッチング制御部１４は、特定したポート番号が割り与えられたポートから、受信されたデータを送信する。一方、スイッチング制御部１４は、ＭＡＣアドレスが学習テーブル１２に記憶されていない場合には、当該データをフラッディングする。言い換えると、スイッチング制御部１４は、受信したポート以外のポートから当該データを送信する。
【００２８】
次に、学習テーブル１２の学習について説明する。スイッチング制御部１４は、受信したデータのヘッダから送信元のＭＡＣアドレスを取得する。続いて、スイッチング制御部１４は、受信したデータから取得した送信元ＭＡＣアドレスが学習テーブル１２に記憶されているか否かを判定する。
【００２９】
そして、スイッチング制御部１４は、送信元ＭＡＣアドレスが学習テーブル１２に記憶されていない場合、当該送信元ＭＡＣアドレスを学習する。具体的には、スイッチング制御部１４は、当該送信元ＭＡＣアドレスを抽出したデータが受信されたポート番号と当該送信元ＭＡＣアドレスとを対応付けて学習テーブル１２に格納する。
【００３０】
ここで、図３を用いて、学習テーブル１２の学習の一例を説明する。例えば、受信部１３が、送信元ＭＡＣアドレスがアドレスＧであるデータをポート番号Ｐ５から受信し、当該データとポート番号Ｐ５をスイッチング制御部１４に出力したとする。この場合、スイッチング制御部１４は、学習テーブル１２を参照し、アドレスＧが学習テーブル１２に記憶されていないと判定する。そして、スイッチング制御部１４は、アドレスＧとポート番号Ｐ５とを対応付けて、学習テーブル１２に格納する。
【００３１】
図２に戻り、障害検出部１５は、障害を検出した場合に、障害宛先リストを含むフラッシュメッセージを生成して、各ポートから送信する。例えば、障害検出部１５は、受信部１３によって障害検出メッセージが受信された場合、ネットワークモニタなどによる各ポートの監視によってデータ滞留を検出した場合、物理的なハードウェアエラーを検出した場合に障害発生を検出する。なお、障害検出部１５が障害検出に用いる手法は、監視ソフトウェアやＳＮＭＰなど公知の様々な手法を用いることができる。
【００３２】
一例として、障害検出部１５は、ポート番号Ｐ１のポートで障害が検出された場合、図３に示した学習テーブル１２を参照し、ポート番号Ｐ１に対応付けられたアドレスＡ、アドレスＣ、アドレスＦを抽出する。そして、障害検出部１５は、抽出したアドレスＡ、アドレスＣ、アドレスＦを障害宛先リストに含むフラッシュメッセージを生成する。その後、障害検出部１５は、生成したフラッシュメッセージを、障害が検出されたポート番号Ｐ１以外のポートから送信する。
【００３３】
抽出部１６は、受信部１３によって障害宛先リストが受信された場合に、障害宛先リストが受信されたポートを識別するポート番号に対応付けられたアドレス情報を学習テーブル１２から抽出する。例えば、受信部１３が、障害宛先リストを含むフラッシュメッセージをポート番号Ｐ１から受信したとする。この場合、抽出部１６は、受信部１３からポート番号Ｐ１とフラッシュメッセージとを受信する。
【００３４】
そして、抽出部１６は、ポート番号Ｐ１と対応付けられたアドレスＡ、アドレスＣ、アドレスＦを抽出して、特定部１７に出力する。なお、抽出部１６は、受信部１３から受信したポート番号Ｐ１とフラッシュメッセージについても、特定部１７に出力する。
【００３５】
特定部１７は、抽出部１６によって抽出されたアドレス情報と、受信部１３によって受信された障害宛先リストに含まれるアドレス情報との両方に含まれるアドレス情報を特定する。例えば、受信部１３によって、図４に示した障害宛先リストを含むフラッシュメッセージが受信された場合の例について説明する。図４は、障害宛先リストの例を示す図である。
【００３６】
この場合、特定部１７は、図４に示す障害宛先リストを含むフラッシュメッセージを抽出部１６から受信し、当該障害宛先リストからアドレスＡ、アドレスＣ、アドレスＥを抽出する。また、特定部１７は、フラッシュメッセージが受信されたポート番号Ｐ１に対応付けられたアドレス情報として学習テーブル１２に記憶されるアドレスＡ、アドレスＣ、アドレスＦを抽出部１６から受信する。
【００３７】
そして、特定部１７は、フラッシュメッセージから抽出したアドレスＡ、アドレスＣ、アドレスＥと、抽出部１６から受信したアドレスＡ、アドレスＣ、アドレスＦとを比較する。この結果、特定部１７は、両方に含まれるアドレス情報として、アドレスＡ、アドレスＣを特定する。その後、特定部１７は、特定したアドレスＡとアドレスＣと、フラッシュメッセージが受信されたポート番号Ｐ１とを削除部１８と送信部１９に出力する。
【００３８】
削除部１８は、特定部１７によって特定されたアドレス情報を学習テーブル１２から削除する。上記例を用いて具体的に説明すると、削除部１８は、特定部１７からアドレスＡとアドレスＣとを受信する。この場合、削除部１８は、学習テーブル１２を参照し、アドレスＡを有するレコードである「アドレスＡ、ポート番号Ｐ１」と、アドレスＣを有するレコードである「アドレスＣ、ポート番号Ｐ１」を学習テーブル１２から削除する。
【００３９】
送信部１９は、特定部１７によって特定されたアドレス情報で障害宛先リストに含まれるアドレス情報を書き換え、障害宛先リストが受信されたポート以外の各ポートから、書き換えた障害宛先リストを送信する。例えば、送信部１９は、特定されたアドレスＡとアドレスＣと、受信されたフラッシュメッセージと、フラッシュメッセージが受信されたポート番号Ｐ１とを特定部１７から受信する。
【００４０】
そして、送信部１９は、受信されたフラッシュメッセージに含まれる障害宛先リスト「アドレスＡ、アドレスＣ、アドレスＥ」を、特定部１７によって特定された「アドレスＡ、アドレスＣ」に書き換えて、新たな障害宛先リストを生成する。その後、送信部１９は、生成した新たな障害宛先リストを含む新たなフラッシュメッセージを、更新前のフラッシュメッセージが受信されたポート番号Ｐ１以外のポート各々から送信する。また、送信部１９は、特定部１７が比較した結果、両方に含まれるアドレスが存在しない場合には、受信されたフラッシュメッセージの送信を停止する。
【００４１】
［処理の具体例］
次に、図５〜図１０を用いて、実施例２に係る通信制御装置における処理の具体例を説明する。図５は、実施例２に係る通信制御装置を用いて形成されるシステム構成図である。図６は、通信制御装置Ａが保持する学習テーブルの例を示す図である。図７は、通信制御装置Ｂが保持する学習テーブルの例を示す図である。図８は、通信制御装置Ｃが保持する学習テーブルの例を示す図である。図９は、通信制御装置Ｄが保持する学習テーブルの例を示す図である。図１０は、通信制御装置Ｂにおけるフラッシュメッセージの更新例を示す図である。
【００４２】
図５に示すように、このシステムは、通信制御装置Ａと通信制御装置Ｂと通信制御装置Ｃと通信制御装置Ｄとが互いに通信可能に接続されている。具体的には、通信制御装置Ａは、ポート番号Ｐ３を介して通信制御装置Ｂと接続される。通信制御装置Ｂは、ポート番号Ｐ１を介して通信制御装置Ａと接続され、ポート番号Ｐ３を介して通信制御装置Ｃと接続される。通信制御装置Ｃは、ポート番号Ｐ１を介して通信制御装置Ｂと接続され、ポート番号Ｐ３を介して通信制御装置Ｄと接続される。通信制御装置Ｄは、ポート番号Ｐ１を介して通信制御装置Ｃと接続される。なお、各装置における上記したポート番号以外のポートは、図示しない他の装置や他のネットワークに接続されている。
【００４３】
そして、通信制御装置Ａは、図６の左図に示すように、「項番、ＳｒｃＭａｃ、ポート番号」として「１、Ａ、Ｐ１」、「２、Ｂ、Ｐ２」、「３、Ｃ、Ｐ１」、「４、Ｄ、Ｐ３」、「５、Ｅ、Ｐ１」、「６、Ｆ、Ｐ２」を記憶する学習テーブルを有する。また、通信制御装置Ｂは、図７の左図に示すように、「項番、ＳｒｃＭａｃ、ポート番号」として「１、Ａ、Ｐ１」、「２、Ｂ、Ｐ２」、「３、Ｃ、Ｐ１」、「４、Ｄ、Ｐ３」、「５、Ｅ、Ｐ４」、「６、Ｆ、Ｐ１」を記憶する学習テーブルを有する。
【００４４】
また、通信制御装置Ｃは、図８の左図に示すように、「項番、ＳｒｃＭａｃ、ポート番号」として「１、Ａ、Ｐ１」、「２、Ｂ、Ｐ２」、「３、Ｃ、Ｐ２」、「４、Ｄ、Ｐ３」、「５、Ｅ、Ｐ４」、「６、Ｆ、Ｐ１」を記憶する学習テーブルを有する。また、通信制御装置Ｄは、図９に示すように、「項番、ＳｒｃＭａｃ、ポート番号」として「１、Ａ、Ｐ２」、「２、Ｂ、Ｐ２」、「３、Ｃ、Ｐ２」、「４、Ｄ、Ｐ３」、「５、Ｅ、Ｐ４」、「６、Ｆ、Ｐ１」を記憶する学習テーブルを有する。
【００４５】
このような状態において、図５に示したように、通信制御装置Ａがポート番号Ｐ１のポートで障害を検出したとする。この場合、通信制御装置Ａは、障害が検出されたポート番号Ｐ１と対応付けられたアドレスとして「Ａ、Ｃ、Ｅ」を学習テーブルから特定する。続いて、通信制御装置Ａは、図６の右図に示すように、特定されたアドレス「Ａ、Ｃ、Ｅ」を有する項番１、３、５を図６の左図に示した学習テーブルから削除して、新たに項番を割り当てる。そして、通信制御装置Ａは、特定したアドレス「Ａ、Ｃ、Ｅ」を障害宛先リストとするフラッシュメッセージを生成し、生成したフラッシュメッセージをポート番号Ｐ１以外のポートであるポート番号Ｐ２、Ｐ３、Ｐ４各々のポートから送信する。
【００４６】
そして、通信制御装置Ｂは、通信制御装置Ａから送信されたフラッシュメッセージをポート番号Ｐ１のポートで受信する。続いて、通信制御装置Ｂは、図１０に示すように、自装置が有する学習テーブルを参照して、フラッシュメッセージを受信したポート番号Ｐ１と対応付けられたアドレスとして「Ａ、Ｃ、Ｆ」を抽出する。そして、通信制御装置Ｂは、受信したフラッシュメッセージに含まれるアドレス「Ａ、Ｃ、Ｅ」と、自装置の学習テーブルから抽出したアドレス「Ａ、Ｃ、Ｆ」とを比較して、両方に含まれるアドレス「Ａ、Ｃ」を特定する。その後、通信制御装置Ｂは、受信したフラッシュメッセージの障害宛先リスト「Ａ、Ｃ、Ｅ」を、特定した「Ａ、Ｃ」に更新する。そして、通信制御装置Ｂは、更新した障害宛先リスト「Ａ、Ｃ」を含むフラッシュメッセージを、フラッシュメッセージを受信したＰ１以外のポートであるＰ２、Ｐ３、Ｐ４各々のポートから送信する。また、通信制御装置Ｂは、図７の右図に示すように、特定されたアドレス「Ａ、Ｃ」を有する項番１、３のレコードを図７の左図に示す学習テーブルから削除して、各レコードに新たに項番を割り当てる。
【００４７】
そして、通信制御装置Ｃは、通信制御装置Ｂから送信されたフラッシュメッセージをポート番号Ｐ１のポートで受信する。続いて、通信制御装置Ｃは、通信制御装置Ｂと同様に、自装置が有する学習テーブルを参照して、フラッシュメッセージを受信したポート番号Ｐ１と対応付けられたアドレスとして「Ａ、Ｆ」を抽出する。そして、通信制御装置Ｃは、受信したフラッシュメッセージに含まれるアドレス「Ａ、Ｃ」と、自装置の学習テーブルから抽出したアドレス「Ａ、Ｆ」とを比較して、両方に含まれるアドレス「Ａ」を特定する。その後、通信制御装置Ｃは、受信したフラッシュメッセージの障害宛先リスト「Ａ、Ｃ」を、特定した「Ａ」に更新する。そして、通信制御装置Ｃは、更新した障害宛先リスト「Ａ」を含むフラッシュメッセージを、フラッシュメッセージを受信したＰ１以外のポートであるＰ２、Ｐ３、Ｐ４各々のポートから送信する。また、通信制御装置Ｃは、図８の右図に示すように、特定されたアドレス「Ａ」を有する項番１のレコードを図８の左図に示した学習テーブルから削除して、各レコードに新たに項番を割り当てる。
【００４８】
そして、通信制御装置Ｄは、通信制御装置Ｃから送信されたフラッシュメッセージをポート番号Ｐ１のポートで受信する。続いて、通信制御装置Ｄは、通信制御装置Ｂ、Ｃと同様に、自装置が有する学習テーブルを参照して、フラッシュメッセージを受信したポート番号Ｐ１と対応付けられたアドレスとして「Ｆ」を抽出する。そして、通信制御装置Ｄは、受信したフラッシュメッセージに含まれるアドレス「Ａ」と、自装置の学習テーブルから抽出したアドレス「Ｆ」とを比較して、両方に含まれるアドレスがないと判定する。したがって、通信制御装置Ｄは、受信したフラッシュメッセージを破棄し、自装置の学習テーブルの更新をすることなく、さらに、フラッシュメッセージの転送も停止する。このように、各通信制御装置は、障害の影響を受ける宛先のみ学習テーブルから削除するとともに、障害宛先リストを更新して、接続される装置に送信する。
【００４９】
［処理の流れ］
次に、図１１と図１２を用いて、通信制御装置が実行する処理について説明する。ここでは、図１１を用いて障害検出時の流れを説明し、図１２を用いてフラッシュメッセージ受信時の流れを説明する。なお、ここでは、各処理を上述した通信制御装置１０を実行する例で説明する。
【００５０】
（障害検出時の流れ）
図１１は、実施例２に係る通信制御装置における障害検出時の処理の流れを示すフローチャートである。図１１に示すように、通信制御装置１０の障害検出部１５は、障害を検出した場合（ステップＳ１０１Ｙｅｓ）、障害を検出したポートのポート番号を特定する（ステップＳ１０２）。
【００５１】
続いて、障害検出部１５は、学習テーブル１２を参照し、特定したポート番号に対応付けられたアドレスを、障害の影響がある宛先として特定する（ステップＳ１０３）。そして、障害検出部１５は、特定したアドレスを障害宛先リストとするフラッシュメッセージを生成し（ステップＳ１０４）、生成したフラッシュメッセージを障害が検出されたポート以外の全ポートから送信するフラッディングを実行する（ステップＳ１０５）。その後、ステップＳ１０１に戻って以降の処理を繰り返し実行する。
【００５２】
（フラッシュメッセージ受信時の流れ）
図１２は、実施例２に係る通信制御装置におけるフラッシュメッセージ受信時の処理の流れを示すフローチャートである。図１２に示すように、通信制御装置１０の抽出部１６は、受信部１３によってフラッシュメッセージが受信された場合（ステップＳ２０１Ｙｅｓ）、当該フラッシュメッセージが受信されたポートのポート番号を特定する（ステップＳ２０２）。
【００５３】
そして、抽出部１６は、特定した受信ポートに対応する学習済みの宛先アドレスのリストを生成する（ステップＳ２０３）。つまり、抽出部１６は、特定したポート番号に対応付けられたアドレス情報を学習テーブル１２から抽出する。
【００５４】
続いて、抽出部１６は、受信されたフラッシュメッセージに含まれる障害宛先リストからアドレスを抽出する（ステップＳ２０４）。そして、特定部１７は、フラッシュメッセージから抽出したアドレスと学習テーブル１２から抽出したアドレスとを比較する（ステップＳ２０５）。
【００５５】
その後、特定部１７が比較した結果、両方に含まれるアドレスが存在する場合には（ステップＳ２０６Ｙｅｓ）、削除部１８は、両方に含まれるアドレスを含むレコードを学習テーブル１２から削除する（ステップＳ２０７）。続いて、送信部１９は、受信されたフラッシュメッセージに含まれる障害宛先リストを、特定部１７がステップＳ２０５の比較によって特定したアドレスで書き換えた新たなフラッシュメッセージを生成する（ステップＳ２０８）。その後、送信部１９は、生成した新たなフラッシュメッセージを、更新前のフラッシュメッセージが受信されたポート番号以外のポート各々から送信し（ステップＳ２０９）、ステップＳ２０１以降の処理を繰り返す。
【００５６】
一方、送信部１９は、特定部１７が比較した結果、両方に含まれるアドレスが存在しない場合には（ステップＳ２０６Ｎｏ）、受信されたフラッシュメッセージの送信を停止し（ステップＳ２１０）、ステップＳ２０１以降の処理を繰り返す。
【００５７】
［実施例２による効果］
実施例２によれば、通信制御装置は、受信したフラッシュメッセージに含まれる障害宛先リストと受信したポート番号とから、自装置に影響を及ぼす宛先を特定し、特定した宛先のみを学習テーブルから削除する。そして、通信制御装置は、受信したフラッシュメッセージに含まれる障害宛先リストを更新した上で、接続される他の装置に転送することができる。この結果、各通信制御装置は、障害の影響を受ける宛先のみを削除して、フラッシュメッセージを転送することができ、不要なフラッディングの発生を防止できる。
【００５８】
例えば、図１３に示したネットワークにおけるＮ４−Ｎ５間で障害が発生した例について説明する。図１３は、ネットワーク例を示す図であり、図１４は、障害の影響を示す図である。
【００５９】
図１３に例示するネットワークでは、通信制御装置を示すＮ１からＮ８までが接続されている。具体的には、Ｎ１は、Ｎ２とＮ４と接続され、Ｎ２は、Ｎ１とＮ３とＮ４とＮ５と接続され、Ｎ３は、Ｎ２とＮ６とＮ７と接続され、Ｎ４は、ＭＡＣアドレスＡの装置とＮ１とＮ２とＮ５と接続される。また、Ｎ５は、Ｎ２とＮ４とＮ６とＮ８とに接続され、Ｎ６は、Ｎ３とＮ５とＮ７とＮ８とに接続され、Ｎ７は、Ｎ３とＮ６とに接続され、Ｎ８は、Ｎ５とＮ６とに接続される。
【００６０】
また、図１３の各Ｎに示したＡは、ＭＡＣアドレスＡの装置を宛先とするデータの送信ポートを示す。一例として、Ｎ２は、宛先がＭＡＣアドレスＡであるデータをＮ４に対して送信する。また、Ｎ８は、宛先がＭＡＣアドレスＡであるデータをＮ５に対して送信する。
【００６１】
このような状態において、Ｎ５は、Ｎ４と接続されるポート１で障害を検出した場合、ＭＡＣアドレスＡを障害宛先リストとするフラッシュメッセージをポート１以外のポートから送信する。つまり、Ｎ５は、フラッシュメッセージをＮ２とＮ６とＮ８に送信する。そして、Ｎ２では、Ｎ５からフラッシュメッセージを受信したポートと宛先ＭＡＣアドレスの送信先ポートとが異なることより、学習テーブルの更新も実行せず、Ｎ１、Ｎ４、Ｎ３へのフラッシュメッセージの転送も実行しない。つまり、Ｎ２は、ＭＡＣアドレスＡに対してデータを送信する場合には、Ｎ４に対して送信するため、Ｎ５からＭＡＣアドレスＡ宛てが障害であることを受信しても、この情報を破棄することができる。
【００６２】
同様に、Ｎ６では、Ｎ５からフラッシュメッセージを受信したポートと宛先ＭＡＣアドレスの送信先ポートとが同じことより、学習テーブルからＭＡＣアドレスＡを削除し、Ｎ３、Ｎ７、Ｎ８へフラッシュメッセージを送信する。また、Ｎ８では、Ｎ５からフラッシュメッセージを受信したポートと宛先ＭＡＣアドレスの送信先ポートとが同じことより、学習テーブルからＭＡＣアドレスＡを削除し、Ｎ６へのフラッシュメッセージを送信する。
【００６３】
そして、Ｎ７では、Ｎ６からフラッシュメッセージを受信したポートと宛先ＭＡＣアドレスの送信先ポートとが同じことより、学習テーブルからＭＡＣアドレスＡを削除し、Ｎ３へのフラッシュメッセージを送信する。Ｎ６では、既に学習テーブルからＭＡＣアドレスＡが削除済みであるが、Ｎ８からフラッシュメッセージを受信したポートと宛先ＭＡＣアドレスの送信先ポートとが異なる。このため、Ｎ６では、学習テーブルの更新も実行せず、フラッシュメッセージの転送も実行しない。
【００６４】
また、Ｎ３では、Ｎ６およびＮ７からフラッシュメッセージを受信した場合でも、受信ポートと宛先ＭＡＣアドレスの送信先ポートとが異なることより、学習テーブルの更新も実行せず、フラッシュメッセージの転送も実行しない。
【００６５】
上述したように、Ｎ５からＭＡＣアドレスＡを含むフラッシュメッセージがネットワーク内に送信された場合、図１４に示すように、障害の影響がない通信制御装置では、学習テーブルの更新が実行されない。一方、障害の影響がある通信制御装置では、学習テーブルの更新が実行される。具体的には、ＭＡＣアドレスＡを宛先とするデータがＮ５を経由しないＮ１、Ｎ２、Ｎ３、Ｎ４については、学習テーブルの更新が実行されない。一方、ＭＡＣアドレスＡを宛先とするデータがＮ５を経由するＮ５、Ｎ６、Ｎ７、Ｎ８については、学習テーブルの更新が実行される。
【００６６】
このように、障害の影響を受ける通信制御装置のみの学習テーブルの更新が実行され、障害の影響を受けない通信制御装置の学習テーブルの更新が実行されないように制御することができる。
【実施例３】
【００６７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００６８】
（アドレス情報）
例えば、実施例１〜２では、アドレス情報としてＭＡＣアドレスを用いた例について説明したが、これに限定されるものではなく、ＩＰ（Internet  Protocol）アドレスなど他の情報を用いることもできる。
【００６９】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図３、図４、図６〜図９等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば抽出部１６と特定部１７とを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７１】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【００７２】
図１５は、通信制御プログラムを実行するコンピュータシステムの例を示す図である。図１５に示すように、コンピュータシステム１００は、バス１００ａにＣＰＵ１０５、ＲＯＭ（Read  Only  Memory）１０４、ＲＡＭ（Random  Access  Memory）１０１が接続される。また、コンピュータシステム１００は、バス１００ａにＮＩＣ（Network  Interface  Card）１０２、ＨＤＤ（Hard  Disk  Drive）１０３が接続されている。また、ＨＤＤ１０３には、図２に示した学習テーブル１２に対応する学習テーブル１０３ａが設けられる。
【００７３】
ＲＯＭ１０４は、通信制御プログラム１０４ａを保持する。記録媒体の例としてＲＯＭ１０４を例に挙げたが、ＨＤＤ、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【００７４】
ＣＰＵ１０５は、通信制御プログラム１０４ａを読み出して実行することで、受信部１３、スイッチング制御部１４、障害検出部１５、抽出部１６、特定部１７、削除部１８、送信部１９と同様の動作を通信制御プロセス１０５ａとして実現する。このようにコンピュータシステム１００は、ＲＯＭ１０４からプログラムを読み出して実行することで通信制御方法を実行する通信制御装置として動作する。
【符号の説明】
【００７５】
１  通信制御装置
１ａ  記憶部
１ｂ  受信部
１ｃ  抽出部
１ｄ  特定部
１ｅ  送信部
１０  通信制御装置
１１  通信制御Ｉ／Ｆ部
１２  学習テーブル
１３  受信部
１４  スイッチング制御部
１５  障害検出部
１６  抽出部
１７  特定部
１８  削除部
１９  送信部
【図１】
0005553036.tif 000002
【図２】
0005553036.tif 000003
【図３】
0005553036.tif 000004
【図４】
0005553036.tif 000005
【図５】
0005553036.tif 000006
【図６】
0005553036.tif 000007
【図７】
0005553036.tif 000008
【図８】
0005553036.tif 000009
【図９】
0005553036.tif 000010
【図１０】
0005553036.tif 000011
【図１１】
0005553036.tif 000012
【図１２】
0005553036.tif 000013
【図１３】
0005553036.tif 000014
【図１４】
0005553036.tif 000015
【図１５】
0005553036.tif 000016