説明

通信装置および通信プログラム

【課題】メッセージの伝達遅延を低減すること。
【解決手段】通信部1fは、ノード3,3a,3bのうち通信ができなくなったノードのアドレスを含むメッセージを受信すると、該アドレスを第1の記憶部1dに格納して、通信ポート1a,1b,1cのうち該メッセージを受信した通信ポート以外の通信ポートから該メッセージを送信する。制御部1gは、通信部1fがメッセージを送信した後に、第2の記憶部1eに記憶されたアドレス情報から第1の記憶部1dに記憶されたアドレスの設定を削除する。

【発明の詳細な説明】
【技術分野】
【0001】
本件は通信を中継する通信装置および通信プログラムに関する。
【背景技術】
【0002】
従来、ネットワーク上のノード間の通信を中継する通信装置が利用されている。例えば、通信装置には、OSI(Open Systems Interconnection)参照モデルのデータリンク層(第2層)で通信を中継するL2(Layer 2)スイッチ装置がある。また、例えば、通信装置には、同モデルのネットワーク層(第3層)で通信を中継するL3(Layer 3)スイッチ装置がある。
【0003】
通信装置は、宛先ノードにデータを届けるために、ネットワーク上の何れの経路にデータを送出すればよいかを学習する学習機能を備える。例えば、L2スイッチ装置は、ケーブルを接続するための複数の通信ポートを有する。L2スイッチ装置は、データの転送を行う際に、該データの送信元のノードの物理アドレスを取得し、該データを受信した通信ポートと物理アドレスとの対応をアドレステーブルに保持しておく。以降、L2スイッチ装置は、該ノードの物理アドレスを宛先とするデータを受信すると、アドレステーブルを参照して、該物理アドレスに対応するポートからデータを送出する。L3スイッチも同様の学習機能を備える。
【0004】
ここで、アドレステーブルからエントリを削除することがある。例えば、何れかの通信装置で障害が発生した場合である。この場合、障害箇所を通る経路は利用不可となる。このとき、通信装置が利用不可の経路にデータを送出するのは無駄な処理である。そこで、通信装置が、該障害箇所の情報の消去を促す制御パケットをフラッディングし、他の通信装置にアドレステーブルから該障害箇所の情報を消去させる提案がある。
【0005】
また、アドレステーブルの全情報を消去することもある。例えば、Ethernet(登録商標)ネットワークにおいて、スパニングツリーが再構成されたときが考えられる。このとき、アドレステーブルのエントリ数が多いと、消去に時間がかかることがある。そこで、宛先情報(物理アドレス)と宛先情報の総数以下の種類に分類された仮想的転送先情報とを対応させたテーブル、および該仮想的転送先情報と転送先(ポート)とを対応させたテーブルを管理することで、学習した情報の消去を短時間で行う提案がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−5458号公報
【特許文献2】国際公開第2007/86539号
【発明の概要】
【発明が解決しようとする課題】
【0007】
アドレステーブルの更新(エントリの削除)を促す情報(メッセージ)の、各通信装置への伝達が遅延することがある。例えば、通信装置が、アドレステーブルを更新した後に、該メッセージをフラッディングする場合である。この場合、テーブル更新の処理に時間がかかると、該通信装置によるフラッディングがその分遅れてしまう。通信装置が複数存在すればフラッディングの遅れは積算される。特に大規模なネットワークでは、末端の通信装置における伝達遅延が顕著となる。
【0008】
このような遅延は、通信の効率を悪化させる要因になり得る。例えば、障害箇所の消去を指示するメッセージの伝達が遅れると、通信装置が利用不可の経路にデータを送出してしまう可能性が高まるためである。
【0009】
1つの側面では、本発明は、メッセージの伝達遅延を低減する通信装置および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
通信部と制御部とを有する通信装置が提供される。通信部は、複数のノードのうち通信ができなくなったノードのアドレスを含むメッセージを受信すると、該アドレスを第1の記憶部に格納して、自装置が備える複数の通信ポートのうちメッセージを受信した通信ポート以外の通信ポートからメッセージを送信する。制御部は、通信部がメッセージを送信した後に、複数のノードのアドレスと複数の通信ポートとの対応関係が設定されたアドレス情報を記憶する第2の記憶部に記憶されたアドレス情報から第1の記憶部に記憶されたアドレスの設定を削除する。
【0011】
また、複数のノードのうち通信ができなくなったノードのアドレスを含むメッセージを受信すると、該アドレスを第1の記憶部に格納して、自装置が備える複数の通信ポートのうちメッセージを受信した通信ポート以外の通信ポートからメッセージを送信し、メッセージを送信した後に、複数のノードのアドレスと複数の通信ポートとの対応関係が設定されたアドレス情報を記憶する第2の記憶部に記憶されたアドレス情報から第1の記憶部に記憶されたアドレスの設定を削除する、処理をコンピュータに実行させる通信プログラム。
【発明の効果】
【0012】
一態様によれば、メッセージの伝達遅延を低減できる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態の情報処理システムを示す図である。
【図2】第2の実施の形態の情報処理システムを示す図である。
【図3】第2の実施の形態のスイッチ装置のハードウェア例を示す図である。
【図4】第2の実施の形態のスイッチ装置の機能を示すブロック図である。
【図5】第2の実施の形態のフラッシュメッセージの例を示す図である。
【図6】第2の実施の形態の学習テーブルの例を示す図である。
【図7】第2の実施の形態の障害MACアドレステーブルの例を示す図である。
【図8】第2の実施の形態の障害検知時の処理を示すフローチャートである。
【図9】第2の実施の形態のメッセージ受信時の処理を示すフローチャートである。
【図10】第2の実施の形態の学習テーブル更新処理を示すフローチャートである。
【図11】第2の実施の形態の学習テーブル更新処理の例を示す図である。
【図12】第2の実施の形態のメッセージ伝達の例を示すシーケンス図である。
【図13】メッセージ伝達の他の例を示すシーケンス図である。
【図14】第3の実施の形態の学習テーブル更新処理を示すフローチャートである。
【図15】第3の実施の形態のメッセージ伝達の例を示すシーケンス図である。
【図16】第3の実施の形態のエージング管理処理を示すフローチャートである。
【図17】第4の実施の形態のフラッシュメッセージの例を示す図である。
【図18】第4の実施の形態の障害MACアドレステーブルの例を示す図である。
【図19】第4の実施の形態の処理方式決定処理を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。この情報処理システムは、通信装置1,2,2a,2bおよびノード3,3a,3bを含む。ノードとは通信装置や情報処理装置である。より具体的には、ノードとはネットワークのルーティングを行うルータ装置、L3スイッチ装置およびサーバ装置などである。
【0015】
通信装置1,2,2a,2bは、ノード3,3a,3b間の通信を中継する。通信装置1,2,2a,2bは、例えば、L2スイッチ装置、ルータ装置およびL3スイッチ装置などである。通信装置1は、通信装置2,2a,2bと接続されている。通信装置2は、ノード3への伝送路に接続されている。通信装置2aは、ノード3aへの伝送路に接続されている。通信装置2bは、ノード3bへの伝送路に接続されている。
【0016】
通信装置1は、通信ポート1a,1b,1c、第1の記憶部1d、第2の記憶部1e、通信部1fおよび制御部1gを有する。
通信ポート1a,1b,1cは、通信装置2,2a,2bと接続するためのインタフェースである。通信ポート1aは、通信装置2と所定のケーブルを介して接続されている。通信ポート1bは、通信装置2aと所定のケーブルを介して接続されている。通信ポート1cは、通信装置2bと所定のケーブルを介して接続されている。
【0017】
第1の記憶部1dは、通信部1fが受信した所定のメッセージに含まれるアドレスを記憶する。
第2の記憶部1eは、ノード3,3a,3bのアドレスと通信ポート1a,1b,1cの対応関係が設定されたアドレス情報を記憶する。ノード3,3a,3bのアドレスとは、例えば各ノードの物理アドレスである。より具体的には、例えばMAC(Media Access Control)アドレスである。例えば、アドレス情報には、ノード3のアドレスと通信ポート1aとが対応付けられている。また、アドレス情報には、ノード3aのアドレスと通信ポート1bとが対応付けられている。更に、アドレス情報には、ノード3bのアドレスと通信ポート1cとが対応付けられている。
【0018】
通信部1fは、ノード3,3a,3bのうち通信ができなくなったノードのアドレスを含むメッセージを通信装置2,2a,2bの何れかから受信する。通信部1fは、該メッセージ内のアドレスを第1の記憶部1dに記録する。例えば、通信部1fは、ノード3のアドレスを含むメッセージを通信装置2から受信する。すると、通信部1fは、ノード3のアドレスを第1の記憶部に格納する。通信部1fは、該メッセージを受信した通信ポート以外の通信ポートから、該メッセージを送信する。例えば、通信部1fは、通信ポート1aからメッセージを受信した場合、通信ポート1b,1cから該メッセージを送信する。このようにして、他の通信装置2a,2bへのメッセージの通知を行い、通信装置2a,2bも同様にメッセージの送信を行う。このようにして、ネットワーク上の各通信装置に連鎖的にメッセージが伝達される。
【0019】
なお、メッセージの生成は、例えば、何れかの通信装置で通信ができなくなったノードが検知されたときに、該通信装置により行われる。例えば、通信装置2はノード3への経路で障害が発生し、該経路が使用不可となったことを検知すると、ノード3のアドレスに関するエントリの消去を促すメッセージを生成して、通信装置1(あるいは、通信装置1を含む他の通信装置)に送信する。
【0020】
制御部1gは、通信部1fがメッセージを送信した後に、第2の記憶部1eに記憶されたアドレス情報から第1の記憶部1dに記憶されたアドレスの設定を削除する。例えば、第1の記憶部1dに記憶されたアドレスがノード3のアドレスであるとする。その場合、制御部1gは、通信部1fがメッセージを送信した後に、ノード3のアドレスと通信ポート1aとを対応付けたエントリを第2の記憶部1eに記憶されたアドレス情報から削除する。
【0021】
通信装置1によれば、通信部1fにより、ノード3,3a,3bのうち通信ができなくなったノードのアドレスを含むメッセージが受信される。通信部1fにより、該アドレスが第1の記憶部1dに格納され、該メッセージを受信した通信ポート以外の通信ポートから該メッセージが送信される。通信部1fが該メッセージを送信した後に、制御部1gにより、第2の記憶部1eに記憶されたアドレス情報から第1の記憶部1dに記憶されたアドレスの設定が削除される。
【0022】
これにより、メッセージの伝達遅延を低減できる。具体的には、通信装置1は、通信装置2から受信したメッセージを他の通信装置に送信した後に、自身が保持するアドレス情報の更新を行う。このため、アドレス情報の更新を行ってから、メッセージを送信する場合に比べて、迅速にメッセージを伝達できる。
【0023】
特に、アドレス情報のエントリが多い場合、削除処理に時間がかかることがある。その場合、メッセージの伝達遅延が大きかった。これに対し、通信装置1のようにすれば、削除処理を待たずにメッセージを伝達でき、伝達遅延を軽減できる。
【0024】
また、大規模なネットワークでは、多数の通信装置が接続され得る。その場合、ある通信装置が送出したメッセージが末端の通信装置に到達するまでに時間がかかる。例えば、各通信装置がアドレス情報の更新を行ってからメッセージを送信すると、各通信装置でのメッセージ送信の遅れが積算され、特に末端の通信装置に該メッセージが到達するまでの遅延が顕著となっていた。これに対し、ネットワーク上の各通信装置が通信装置1のようにメッセージの送信後に自身が保持するアドレス情報を更新すれば、各通信装置へのメッセージの伝達遅延を効率的に低減できる。
【0025】
なお、通信装置1がアドレス情報を更新する処理方式は、複数考え得る。例えば、メッセージを送信した直後のタイミングでアドレス情報の更新を行う処理方式が考えられる。また、例えば、メッセージの送信後、該メッセージに含まれるアドレス宛てのデータを中継するタイミングでアドレス情報の更新を行う処理方式が考えられる。
【0026】
更に、通信装置1は、何れの処理方式でアドレス情報の更新を行うかを、受信したメッセージにより判断してもよい。例えば、該メッセージにアドレス情報の更新を行うタイミングを示す情報を含めれば、通信装置1は、該情報に基づいて、アドレス情報の更新を何れの処理方式で行うかを判断できる。
【0027】
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。この情報処理システムは、Ethernetによるネットワークで構築されている。この情報処理システムは、ネットワーク10,20、スイッチ装置100,100a,100b,100c,100d、サーバ装置200,200a,200b,300,300aを含む。また、この情報処理システムは、ネットワーク10,20、スイッチ装置100,100a,100b,100c,100dの間を結ぶ経路L11,L12,L13,L14,L21,L22,L23,L31,L32,L33,L41,L42を含む。経路L21,L22,L23,L33は、一方の端に接続する装置の図示を省略している。
【0028】
経路L11,L12,L13,L14は、LAN(Local Area Network)ケーブルで形成された信号の伝送路である。経路L11,L12,L13,L14は、LANケーブルおよび他の通信装置(L2スイッチ装置やL3スイッチ装置など)の両方で形成されるものでもよい。
【0029】
経路L21,L22,L23,L31,L32,L33,L41,L42は、LANケーブルおよび他の通信装置の両方で形成された信号の伝送路である。経路L21,L22,L23,L31,L32,L33,L41,L42は、LANケーブルにより形成されるものでもよい。
【0030】
スイッチ装置100,100a,100b,100c,100dは、OSI参照モデルのレイヤ2でEthernetフレーム(以下、単にフレームという)を中継するL2スイッチ装置である。L2スイッチ装置は、スイッチングハブと呼ばれることもある。
【0031】
スイッチ装置100は、経路L12を介してスイッチ装置100aに接続されている。スイッチ装置100は、経路L13を介してスイッチ装置100bに接続されている。スイッチ装置100は、経路L22に接続されている。スイッチ装置100は、経路L32を介してスイッチ装置100cに接続されている。
【0032】
スイッチ装置100aは、経路L11を介してネットワーク10に接続されている。スイッチ装置100aは、経路L12を介してスイッチ装置100に接続されている。スイッチ装置100aは、経路L21に接続されている。スイッチ装置100aは、経路L31を介してスイッチ装置100dに接続されている。
【0033】
スイッチ装置100bは、経路L13を介してスイッチ装置100に接続されている。スイッチ装置100bは、経路L14を介してネットワーク20に接続されている。スイッチ装置100bは、経路L23,L33に接続されている。
【0034】
スイッチ装置100cは、経路L32を介してスイッチ装置100に接続されている。スイッチ装置100cは、経路L42を介してスイッチ装置100dに接続されている。
スイッチ装置100dは、経路L31を介してスイッチ装置100aに接続されている。スイッチ装置100dは、経路L41を介してネットワーク10に接続されている。スイッチ装置100dは、経路L42を介してスイッチ装置100cに接続されている。
【0035】
スイッチ装置100,100a,100b,100c,100dは、各装置が備える通信ポートにLANケーブルのプラグが結合されて、各経路に接続する。ここで、以下の説明では、通信ポートを単にポートと称する。
【0036】
サーバ装置200,200a,200b,300,300aは、所定の情報処理を行う情報処理装置である。サーバ装置200,200a,200bは、ネットワーク10に接続されている。サーバ装置300,300aは、ネットワーク20に接続されている。この情報処理システムでは、サーバ装置200,200a,200b,300,300aの間でのフレームの送受信が可能である。
【0037】
図3は、第2の実施の形態のスイッチ装置のハードウェア例を示す図である。スイッチ装置100は、ポート101,101a,101b,101c、PHY102,102a,102b,102c、MAC部103、スイッチ処理部104および制御回路105を有する。
【0038】
ポート101,101a,101b,101cは、LANケーブルの端部に設けられたプラグを結合するためのコネクタ(RJ−45:Registered Jack - 45)や信号を終端するためのパルストランスを備えたアダプタである。ポート101には、経路L12上のLANケーブルが接続されている。ポート101aには、経路L22上のLANケーブルが接続されている。ポート101bには、経路L13上のLANケーブルが接続されている。ポート101cには、経路L32上のLANケーブルが接続されている。ポート101,101a,101b,101cは、受信した信号をPHY102,102a,102b,102cへ出力する。また、ポート101,101a,101b,101cは、PHY102,102a,102b,102cから出力された信号を、経路L12,L13,L22,L32それぞれのLANケーブルに送出する。
【0039】
PHY102,102a,102b,102cは、フレームの符号化および信号の復号を行う。PHY102は、ポート101およびMAC部103に接続されている。PHY102aは、ポート101aおよびMAC部103に接続されている。PHY102bは、ポート101bおよびMAC部103に接続されている。PHY102cは、ポート101cおよびMAC部103に接続されている。
【0040】
PHY102は、MAC部103が出力したフレームを符号化してポート101,101a,101b,101cに出力する。PHY102は、ポート101が出力した信号を復号して得たデータをMAC部103に出力する。PHY102の符号化方式としては、例えば、NRZ(Non Return to Zero)符号化方式、MLT−3(Multi Level Transmission - 3 level)符号化方式およびマンチェスタ符号化方式などが考えられる。PHY102a,102b,102cの動作もPHY102と同様である。
【0041】
MAC部103は、メディアアクセス制御を行う。MAC部103は、PHY102,102a,102b,102c、スイッチ処理部104および制御回路105と接続されている。MAC部103は、例えば、CSMA/CD(Carrier Sense Multiple Access / Collision Detection)の手順により、スイッチ処理部104が出力したフレームの、ネットワークへの送出を制御する。MAC部103は、MPU(Micro Processing Unit)103aおよびメモリ103bを有する。
【0042】
MPU103aは、MAC部103全体を制御する演算装置である。メモリ103bは、MPU103aの処理に用いるプログラムやデータを記憶する記憶装置である。
スイッチ処理部104は、MAC部103が受信したフレームを、宛先のノードに送信するために、何れのポートから送出すればよいかを判断する(スイッチング)。スイッチ処理部104は、MPU104aおよびメモリ104bを有する。
【0043】
MPU104aは、スイッチ処理部104全体を制御する演算装置である。メモリ104bは、MPU104aの処理に用いるプログラムやデータを記憶する記憶装置である。
制御回路105は、MAC部103およびスイッチ処理部104に接続されている。制御回路105は、制御用のメッセージを生成してMAC部103に出力する。制御回路105は、MAC部103から受け取った制御用のメッセージを処理する。制御回路105は、受信したメッセージに応じた処理を実行する。制御回路105は、MPU105aおよびメモリ105bを有する。
【0044】
MPU105aは、制御回路105全体を制御する演算装置である。メモリ105bは、MPU105aの処理に用いるプログラムやデータを記憶する記憶装置である。
なお、スイッチ装置100a,100b,100c,100dもスイッチ装置100と同様のハードウェアにより実現できる。
【0045】
図4は、第2の実施の形態のスイッチ装置の機能を示すブロック図である。スイッチ装置100は、記憶部110,140、通信制御部120、学習処理部130、メッセージ処理部150およびテーブル管理部160を有する。通信制御部120および学習処理部130の各要素の機能は、MPU103aが所定のプログラムを実行することで実現される。メッセージ処理部150およびテーブル管理部160の各要素の機能は、MPU105aが所定のプログラムを実行することで実現される。ただし、通信制御部120、学習処理部130、メッセージ処理部150およびテーブル管理部160の各要素の機能を専用のハードウェアで実装してもよい。
【0046】
記憶部110は、学習テーブルを記憶する。学習テーブルは、フレームに含まれる送信元MACアドレスと該フレームを受信したポートとを対応付けたものである。学習テーブルは学習処理部130により生成される。学習テーブルは、フレームの送信時に、スイッチ処理部104により参照される。スイッチ処理部104は、記憶部110に記憶された学習テーブルに基づき、該フレームを何れのポートから送出したらよいか判断する。
【0047】
通信制御部120は、メディアアクセス制御を行う。通信制御部120は、例えば、CSMA/CDによるフレームのネットワークへの送出を制御する。何れのポートに送出するかは、スイッチ処理部104により指示される。なお、スイッチ処理部104は、該フレームの宛先MACアドレスのエントリが学習テーブルに存在しない場合には、該フレームのフラッディングを通信制御部120に指示する。
【0048】
通信制御部120は、受信したフレームや制御用のメッセージを制御回路105に出力する。また、通信制御部120は、受信した制御用のメッセージを、該メッセージを受信した受信ポート以外のポートへフラッディングする。また、通信制御部120は、制御回路105が生成した制御用のメッセージを、全ポートへフラッディングする。
【0049】
学習処理部130は、フレームを受信すると、該フレームのヘッダに含まれる送信元MACアドレスを抽出する。学習処理部130は、抽出した送信元MACアドレスと、該フレームを受信した受信ポートの識別情報とを対応付けて学習テーブルに設定する。送信元MACアドレスのエントリが学習テーブルに既に存在する場合、学習処理部130は、既に設定されているエントリを残し、新たなエントリを登録しない。すなわち、先着の設定を優先する。
【0050】
記憶部140は、障害MACアドレステーブルを記憶する。障害MACアドレステーブルは、学習テーブルのうち、削除対象とするMACアドレスを保持するためのデータである。なお、以下の説明において、障害MACアドレステーブルを障害アドレステーブルと表記することもある。
【0051】
メッセージ処理部150は、制御用のメッセージを生成して、MAC部103に出力する。メッセージ処理部150は、MAC部103から取得した制御用のメッセージに含まれる情報を抽出して記憶部140に格納する。ここで、制御用のメッセージには、学習テーブルのエントリの削除を指示するフラッシュメッセージが含まれる。フラッシュメッセージは、所定のMACアドレスのエントリの削除を促す制御用のメッセージである。フラッシュメッセージには、削除対象のMACアドレスが含まれる。
【0052】
例えば、メッセージ処理部150は、他のスイッチ装置から受信したフラッシュメッセージに含まれるMACアドレスを抽出して、記憶部140に格納する。このとき、メッセージ処理部150は、該フラッシュメッセージを受信した受信ポートの識別情報に対応付けて、該MACアドレスを記憶部140に格納する。
【0053】
また、例えば、メッセージ処理部150は、経路L12,L13,L22,L32の何れかが障害で使用不能となったとき、該経路上のポートに対応するMACアドレスを含むフラッシュメッセージを生成してMAC部103に出力する。メッセージ処理部150は、障害のあった経路上のポートに対応するMACアドレスを、記憶部110に格納された学習テーブルに基づいて判断する。なお、メッセージ処理部150は、例えば、ポートのリンクダウンを検知することで、該経路の障害を検知できる。
【0054】
ここで、以下の説明において、フラッシュメッセージを単にメッセージと表記することがある。
テーブル管理部160は、記憶部140に記憶された障害MACアドレステーブルに基づいて、記憶部110に記憶された学習テーブルのエントリを削除する。
【0055】
なお、スイッチ装置100a,100b,100c,100dもスイッチ装置100と同様の機能を備える。
図5は、第2の実施の形態のフラッシュメッセージの例を示す図である。フラッシュメッセージ400には、ヘッダ410および障害MACアドレスリスト420の各フィールドが設けられている。
【0056】
ヘッダ410は、送信制御に用いる情報を格納するためのフィールドである。例えば、ヘッダ410には、フラッシュメッセージ400が、学習テーブルのエントリを消去するためのメッセージである旨を示す情報が含まれる。例えば、ヘッダ410には、宛先MACアドレスや送信元MACアドレスが含まれる。フラッシュメッセージ400はブロードキャストされるため、宛先MACアドレスには“FF:FF:FF:FF:FF:FF”が設定される。
【0057】
障害MACアドレスリスト420は、削除対象のMACアドレスを含む。例えば、スイッチ装置100aが経路L11での障害を検知したとする。すると、スイッチ装置100aは、フラッシュメッセージ400を生成して、経路L12,L21,L31へフラッディングする。このとき、スイッチ装置100aは、経路L11の先に接続されているサーバ装置200,200a,200bのMACアドレスを、障害MACアドレスリスト420に含める。
【0058】
ここで、以下の説明では、サーバ装置200上のNIC(Network Interface Card)のMACアドレスを“A”と略記する。サーバ装置200a上のNICのMACアドレスを“C”と略記する。サーバ装置200b上のNICのMACアドレスを“E”と略記する。サーバ装置300上のNICのMACアドレスを“B”と略記する。サーバ装置300a上のNICのMACアドレスを“D”と略記する。
【0059】
図6は、第2の実施の形態の学習テーブルの例を示す図である。学習テーブル111は、記憶部110に格納される。学習テーブル111には、MACアドレスおよびポートの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの経路情報を示す。
【0060】
MACアドレスの項目には、MACアドレスが設定される。ポートの項目には、ポートの識別情報が設定される。
例えば、学習テーブル111には、MACアドレスが“A”、ポートが“P1”という情報が設定される。これは、MACアドレス“A”に対応するサーバ装置200へフレームを送出する際に、ポート“P1”から送出すればよいことを示す。
【0061】
ここで、ポート“P1”はポート101の識別情報である。また、ポート“P2”はポート101aの識別情報である。また、ポート“P3”はポート101bの識別情報である。また、ポート“P4”はポート101cの識別情報である。
【0062】
図7は、第2の実施の形態の障害MACアドレステーブルの例を示す図である。障害MACアドレステーブル141は、記憶部140に格納される。障害MACアドレステーブル141には、障害MACアドレスおよび受信ポートの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのノードの情報を示す。
【0063】
障害MACアドレスの項目には、削除対象のMACアドレスが設定される。以下、障害MACアドレステーブル141および障害MACアドレスリスト420に設定されるMACアドレスを障害MACアドレスと呼ぶことがある。受信ポートの項目には、該MACアドレスを含むフラッシュメッセージを受信したポートの識別情報が設定される。
【0064】
障害MACアドレステーブル141は、スイッチ装置100がスイッチ装置100aから経路L12を介してフラッシュメッセージ400を受信した場合を例示している。フラッシュメッセージ400には、障害MACアドレスリスト420にMACアドレス“A”、“C”、“E”が設定されている。この場合、例えば、障害MACアドレステーブル141には、障害MACアドレスが“A”、受信ポートが“P1”という情報が設定される。また、障害MACアドレスが“C”、受信ポートが“P1”という情報が設定される。更に、障害MACアドレスが“E”、受信ポートが“P1”という情報が設定される。
【0065】
次に、以上の構成の情報処理システムの処理手順を説明する。まず、障害検知時の処理を説明する。ここで、経路L11上で障害が発生し、スイッチ装置100aが該障害を検知するものとする。
【0066】
図8は、第2の実施の形態の障害検知時の処理を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS11]スイッチ装置100aは、経路L11に接続するポートのリンクダウンを検知する。
【0067】
[ステップS12]スイッチ装置100aは、フラッシュメッセージ400を生成する。このとき、スイッチ装置100aは、自身が保持する学習テーブルから経路L11上のポートを検索し、該ポートに対応するMACアドレスを抽出する。スイッチ装置100aは、抽出したMACアドレス“A”、“C”、“E”を障害MACアドレスリスト420に設定する。
【0068】
[ステップS13]スイッチ装置100aは、フラッシュメッセージ400を経路L12,L21,L31上のポートへフラッディングする。
[ステップS14]スイッチ装置100aは、自身が保持する学習テーブルから、ステップS12で抽出したMACアドレスのエントリを削除する。
【0069】
このようにして、スイッチ装置100aはリンクダウンを検知すると、ダウンしたポートに対応するMACアドレスを取得して、フラッシュメッセージ400を生成し、フラッディングする。これにより、他の通信装置の、該MACアドレスに関するエントリの削除を促す。ここで、スイッチ装置100aは、フラッディングを行った後に、学習テーブルのエントリ削除を行うので、フラッシュメッセージ400を迅速に伝達開始できる。
【0070】
次に、フラッシュメッセージ400を受信したスイッチ装置100の処理手順を説明する。
図9は、第2の実施の形態のメッセージ受信時の処理を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
【0071】
[ステップS21]通信制御部120は、スイッチ装置100aから経路L12を介してフラッシュメッセージ400を受信し、メッセージ処理部150に出力する。このとき、フラッシュメッセージ400の受信ポートは、ポート101(識別情報“P1”)である。
【0072】
[ステップS22]メッセージ処理部150は、フラッシュメッセージ400が初回の受信であるか否かを判定する。初回の受信であるか否かは、例えば、記憶部140に記憶された障害MACアドレステーブル141を参照して、該フラッシュメッセージ400に含まれる障害MACアドレスリスト420中のMACアドレスが登録済であるか否かにより判断できる。該MACアドレスが未登録であれば、初回の受信であると判断する。該MACアドレスが登録済であれば、2度目以降の受信であると判断する。初回の受信である場合、処理をステップS23に進める。2度目以降の受信である場合、処理をステップS25に進める。
【0073】
[ステップS23]通信制御部120は、受信したフラッシュメッセージ400を、ポート101a,101b,101cへフラッディングする。
[ステップS24]メッセージ処理部150は、フラッシュメッセージ400の障害MACアドレスリスト420に含まれるMACアドレスを、受信ポートであるポート101の識別情報“P1”に対応付けて、障害MACアドレステーブル141に設定する。そして、処理を終了する。
【0074】
[ステップS25]メッセージ処理部150は、受信したフラッシュメッセージ400を破棄する。この場合、通信制御部120は、フラッシュメッセージ400のフラッディングを行わない。そして、処理を終了する。
【0075】
このように、スイッチ装置100は、フラッシュメッセージ400を受信すると、フラッディングを行う。また、スイッチ装置100は、フラッシュメッセージ400に設定されたMACアドレスを受信ポートに対応付けて障害MACアドレステーブル141に登録する。
【0076】
次に、スイッチ装置100は、記憶部110に記憶された学習テーブル111の更新(エントリの削除)を実行する。
図10は、第2の実施の形態の学習テーブル更新処理を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
【0077】
[ステップS31]テーブル管理部160は、記憶部140に記憶された障害MACアドレステーブル141を参照して、MACアドレスと対応する受信ポートの識別情報とを1つ抽出する。例えば、テーブル管理部160は、障害MACアドレス“A”と受信ポート“P1”の組を抽出したとする。
【0078】
[ステップS32]テーブル管理部160は、ステップS31で抽出した障害MACアドレスと同一のMACアドレスが記憶部110に記憶された学習テーブル111内に存在するか否かを判定する。存在する場合、処理をステップS33に進める。存在しない場合、処理をステップS35に進める。例えば、テーブル管理部160は、障害MACアドレス“A”と同一のMACアドレスのエントリが学習テーブル111に存在すると判断する。
【0079】
[ステップS33]テーブル管理部160は、学習テーブル111内の該MACアドレスのエントリに設定されたポートの識別情報が、ステップS31で抽出した受信ポートの識別情報と一致するか否かを判定する。一致する場合、処理をステップS34に進める。一致しない場合、処理をステップS35に進める。例えば、学習テーブル111では、MACアドレス“A”に対するポートが“P1”である。一方、ステップS31では、受信ポート“P1”を抽出している。この場合、テーブル管理部160はポートが一致すると判断する。
【0080】
[ステップS34]テーブル管理部160は、学習テーブル111上の該MACアドレスのエントリを削除する。例えば、テーブル管理部160は、学習テーブル111のMACアドレス“A”のエントリを削除する。
【0081】
[ステップS35]テーブル管理部160は、障害MACアドレステーブル141から、ステップS31で抽出したエントリを削除する。例えば、テーブル管理部160は、障害MACアドレス“A”のエントリを削除する。
【0082】
[ステップS36]テーブル管理部160は、障害MACアドレステーブル141内のエントリがなくなったか否かを判定する。エントリがなくなった場合、処理を終了する。エントリが残っている場合、処理をステップS31に進める。
【0083】
このようにして、スイッチ装置100は、障害MACアドレステーブル141に保持されたMACアドレスに関するエントリの、学習テーブル111からの削除を試みる。このとき、スイッチ装置100は、障害MACアドレスおよびフラッシュメッセージ400の受信ポートの組と、学習テーブル111上のMACアドレスおよびポートの組と、が一致する場合に、学習テーブル111上の該エントリを削除する。
【0084】
図11は、第2の実施の形態の学習テーブル更新処理の例を示す図である。図11では、スイッチ装置100,100a,100bの各ポートを例示している。図11では、各ポートを示す場合、ポートの識別情報を用いる。例えば、ポート101を示す場合、「ポート“P1”」のように表記する。
【0085】
スイッチ装置100の各ポートおよび学習テーブル111は、上述した通りである。
スイッチ装置100aは、ポート“P1a”、“P2a”、“P3a”、“P4a”を有する。ポート“P1a”は経路L11に接続されている。ポート“P2a”は経路L21に接続されている。ポート“P3a”は経路L12に接続されている。ポート“P4a”は経路L31に接続されている。また、スイッチ装置100aは学習テーブル111aを保持している。
【0086】
スイッチ装置100bは、ポート“P1b”、“P2b”、“P3b”、“P4b”を有する。ポート“P1b”は経路L13に接続されている。ポート“P2b”は経路L23に接続されている。ポート“P3b”は経路L14に接続されている。ポート“P3c”は経路L33に接続されている。また、スイッチ装置100bは学習テーブル111bを保持している。
【0087】
例えば、経路L11上の障害で、スイッチ装置100aがポート“P1a”のリンクダウンを検知する。すると、スイッチ装置100aは、フラッシュメッセージ400を生成する。このとき、スイッチ装置100aは、学習テーブル111a上から、ポート“P1a”に対応するMACアドレス“A”、“C”、“E”をフラッシュメッセージ400に含める。スイッチ装置100aは、フラッシュメッセージ400をフラッディングする。その後、スイッチ装置100aは、学習テーブル111aからMACアドレス“A”、“C”、“E”のエントリを削除する。
【0088】
スイッチ装置100は、スイッチ装置100aからフラッシュメッセージ400を受信する。受信ポートはポート“P1”である。すると、スイッチ装置100はフラッシュメッセージ400に含まれる障害MACアドレス“A”、“C”、“E”を抽出し、障害MACアドレステーブル141に受信ポートとともに保持する。そして、スイッチ装置100は、フラッシュメッセージ400をフラッディングする。その後、スイッチ装置100は、障害MACアドレステーブル141を参照して、学習テーブル111からMACアドレス“A”、“C”のエントリを削除する。MACアドレス“E”のエントリを削除しないのは、フラッシュメッセージ400の受信ポート“P1”と、学習テーブル111上の該エントリのポート“P4”とが一致しないからである。
【0089】
スイッチ装置100bは、スイッチ装置100からフラッシュメッセージ400を受信する。受信ポートはポート“P1b”である。すると、スイッチ装置100bはフラッシュメッセージ400に含まれる障害MACアドレス“A”、“C”、“E”を抽出し、スイッチ装置100と同様に障害MACアドレステーブルに保持する。そして、スイッチ装置100bは、フラッシュメッセージ400をフラッディングする。その後、スイッチ装置100bは、障害MACアドレステーブルを参照して、学習テーブル111bからMACアドレス“A”のエントリを削除する。MACアドレス“C”、“E”のエントリを削除しないのは、フラッシュメッセージ400の受信ポート“P1b”と、学習テーブル111b上の該エントリの各ポート“P2b”、“P4b”とが一致しないからである。
【0090】
次に、上記例における、フラッシュメッセージ400の送信タイミングを説明する。なお、スイッチ装置100,100a,100bのみを示して説明し、それ以外の装置の図示を省略する。
【0091】
図12は、第2の実施の形態のメッセージ伝達の例を示すシーケンス図である。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップST101]スイッチ装置100aは、ポート“P1a”のリンクダウンを検知する。
【0092】
[ステップST102]スイッチ装置100aは、フラッシュメッセージ400を生成して、フラッディングする。スイッチ装置100は、スイッチ装置100aからフラッシュメッセージ400を受信する。
【0093】
[ステップST103]スイッチ装置100aは、学習テーブル111aからポート“P1a”に対応するMACアドレス“A”、“C”、“E”のエントリを削除する。
[ステップST104]スイッチ装置100は、フラッシュメッセージ400に設定された障害MACアドレス“A”、“C”、“E”を受信ポート“P1”に対応付けて記憶部140に記憶された障害MACアドレステーブル141に設定する。スイッチ装置100は、フラッシュメッセージ400をフラッディングする。スイッチ装置100bは、スイッチ装置100からフラッシュメッセージ400を受信する。
【0094】
[ステップST105]スイッチ装置100は、障害MACアドレステーブル141を参照し、学習テーブル111からMACアドレス“A”、“C”のエントリを削除する。
[ステップST106]スイッチ装置100bは、フラッシュメッセージ400に設定された障害MACアドレス“A”、“C”、“E”を受信ポート“P1b”に対応付けて障害MACアドレステーブルに設定する。スイッチ装置100bは、フラッシュメッセージ400をフラッディングする。
【0095】
[ステップST107]スイッチ装置100bは、障害MACアドレステーブルを参照し、学習テーブル111bからMACアドレス“A”のエントリを削除する。
このようにして、スイッチ装置100,100a,100bは、フラッシュメッセージ400のフラッディング後に、それぞれ学習テーブル111,111a,111bを更新する。
【0096】
なお、ステップST103は、ステップST104と同時あるいはステップST104より後でもよい。同様に、ステップST105は、ステップST106と同時あるいはステップST106より後でもよい。
【0097】
次に、フラッシュメッセージ400の送信タイミングの他の例を説明する。以下に示す例では、図12と比較するため、スイッチ装置100,100a,100bが学習テーブル111,111a,111bを更新した後に、フラッシュメッセージ400をフラッディングするケースを示している。
【0098】
図13は、メッセージ伝達の他の例を示すシーケンス図である。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップST111]スイッチ装置100aは、ポート“P1a”のリンクダウンを検知する。
【0099】
[ステップST112]スイッチ装置100aは、学習テーブル111aからポート“P1a”に対応するMACアドレス“A”、“C”、“E”のエントリを削除する。
[ステップST113]スイッチ装置100aは、フラッシュメッセージ400を生成して、フラッディングする。スイッチ装置100は、スイッチ装置100aからフラッシュメッセージ400を受信する。
【0100】
[ステップST114]スイッチ装置100は、フラッシュメッセージ400に含まれる障害MACアドレスに基づいて、学習テーブル111から所定のエントリを削除する。
[ステップST115]スイッチ装置100は、フラッシュメッセージ400をフラッディングする。スイッチ装置100bは、スイッチ装置100からフラッシュメッセージ400を受信する。
【0101】
[ステップST116]スイッチ装置100bは、フラッシュメッセージ400に含まれる障害MACアドレスに基づいて、学習テーブル111bから所定のエントリを削除する。
【0102】
[ステップST117]スイッチ装置100bは、フラッシュメッセージ400をフラッディングする。
このように、スイッチ装置100,100a,100bが、それぞれ学習テーブル111,111a,111bを更新した後に、フラッシュメッセージ400をフラッディングすると、該更新処理によって、フラッディングのタイミングが遅延する。特に、図12と図13とを比較すると、図13では、フラッシュメッセージ400の生成元であるスイッチ装置100aから離れるほど、フラッディングのタイミングの遅延が顕著となることが分かる。
【0103】
そこで、スイッチ装置100,100a,100bは、図12に示したように、まず、障害MACアドレスを記録する。次に、フラッシュメッセージ400をフラッディングする。その後、記録した障害MACアドレスに基づく学習テーブル111,111a,111bの更新を行う。このようにして、フラッディングのタイミングの遅延を容易に低減できる。
【0104】
このとき、スイッチ装置100,100a,100bは、フラッシュメッセージ400の受信ポートも記録しておく。そして、障害MACアドレスと受信ポートとの組が、学習テーブル111,111a,111bに設定された組と一致する場合に、学習テーブル111,111a,111bから該エントリを削除する。このようにすれば、該障害MACアドレスのノードに対して、使用不能な経路以外の経路を学習している場合に、該経路の情報が削除されてしまうことを防止できる。
【0105】
なお、第2の実施の形態では、フラッディングの直後に学習テーブル111,111a,111bの更新処理を実行する場合を例示したが、例えば、フラッディング後から所定時間経過した後に、更新処理を実行してもよい。
【0106】
[第3の実施の形態]
以下、第3の実施の形態を説明する。前述の第2の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【0107】
第2の実施の形態では、スイッチ装置100がフラッシュメッセージ400をフラッディングした直後に、記憶部110に記憶された学習テーブル111を更新する例を示した。一方、スイッチ装置100は、他の方法で学習テーブル111を更新してもよい。第3の実施の形態では、第2の実施の形態とは異なる処理方式で学習テーブル111を更新する機能を提供する。
【0108】
ここで、第3の実施の形態の情報処理システムの構成は、図2で説明した第2の実施の形態の情報処理システムの構成と同様である。また、第3の実施の形態のスイッチ装置のハードウェアおよび機能は、図3,4で説明した第2の実施の形態のスイッチ装置100のハードウェアおよび機能と同様である。第3の実施の形態では、第2の実施の形態で用いた符号・名称と同一の符号・名称により、各構成を指し示すものとする。
【0109】
以下、第3の実施の形態の情報処理システムの処理手順を説明する。ここで、第3の実施の形態の障害検知時の処理は、図8で説明した第2の実施の形態の障害検知時の処理と同様である。また、第3の実施の形態のメッセージ受信時の処理は、図9で説明した第2の実施の形態のメッセージ受信時の処理と同様である。
【0110】
一方、第3の実施の形態では、学習テーブル更新処理が第2の実施の形態とは異なる。以下、学習テーブル更新処理の手順を説明する。なお、記憶部110には、図6で示した学習テーブル111が格納されているとする。記憶部140には、図7で示した障害MACアドレステーブル141が格納されているとする。
【0111】
図14は、第3の実施の形態の学習テーブル更新処理を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS41]通信制御部120は、中継対象のフレームを受信し、スイッチ処理部104に出力する。該フレームは、サーバ装置300からサーバ装置200へ向けて送信されたものであるとする。この場合、該フレームのヘッダの宛先MACアドレスは“A”、送信元MACアドレスは“B”である。
【0112】
[ステップS42]スイッチ処理部104は、記憶部110に記憶された学習テーブル111に基づいて、宛先MACアドレスを学習済であるか否かを判定する。学習済である場合、スイッチ処理部104はテーブル管理部160に処理を委譲して、処理をステップS43に進める。未学習である場合、処理をステップS47に進める。例えば、宛先MACアドレス“A”のエントリが学習テーブル111に登録されている。この場合、スイッチ処理部104は、該宛先MACアドレス“A”を学習済である。
【0113】
[ステップS43]テーブル管理部160は、宛先MACアドレスが記憶部140に記憶された障害MACアドレステーブル141内の障害MACアドレスに一致するか否かを判定する。一致する場合、処理をステップS44に進める。一致しない場合、処理をステップS48に進める。例えば、宛先MACアドレス“A”のエントリが障害MACアドレステーブル141に登録されている。この場合、テーブル管理部160は、宛先MACアドレスが障害MACアドレスに一致すると判定する。
【0114】
[ステップS44]テーブル管理部160は、ステップS43で判断した学習テーブル111および障害MACアドレステーブル141の同一MACアドレスのエントリにつき、ポートが一致するか否かを判定する。一致する場合、処理をステップS45に進める。一致しない場合、処理をステップS48に進める。例えば、学習テーブル111中ではMACアドレス“A”に対するポートが“P1”である。また、障害MACアドレステーブル141の障害MACアドレス“A”に対する受信ポートが“P1”である。この場合、テーブル管理部160は、両エントリにつきポートが一致すると判定する。
【0115】
[ステップS45]テーブル管理部160は、学習テーブル111から該宛先MACアドレスのエントリを削除する。例えば、テーブル管理部160は、学習テーブル111からMACアドレス“A”のエントリを削除する。
【0116】
[ステップS46]テーブル管理部160は、障害MACアドレステーブル141から該障害MACアドレスのエントリを削除する。例えば、テーブル管理部160は、障害MACアドレステーブル141から障害MACアドレス“A”のエントリを削除する。
【0117】
[ステップS47]通信制御部120は、ステップS41で受信したフレームを、受信ポート以外のポートにフラッディングする。そして、処理を終了する。
[ステップS48]スイッチ処理部104は、学習テーブル111を参照して、宛先MACアドレスに対して学習済の学習ポートを通信制御部120に通知する。通信制御部120は、ステップS41で受信したフレームを、該学習ポートから送出する。そして、処理を終了する。
【0118】
このように、第3の実施の形態のスイッチ装置100は、中継対象のフレームを受信したタイミングで、学習テーブル111の更新処理を実行する。
なお、ステップS44でポートが一致しないと判断した場合、障害MACアドレステーブル141から、宛先MACアドレスに対応するエントリを削除してもよい。
【0119】
次に、上記例における、フラッシュメッセージ400の送信タイミングを説明する。なお、スイッチ装置100,100a,100bのみを示して説明し、それ以外の装置の図示を省略する。なお、スイッチ装置100,100a,100bの各ポートと各経路との接続関係は、図11で示した接続関係と同様であるとする。また、スイッチ装置100,100a,100bは、それぞれ学習テーブル111,111a,111bを保持しているとする。
【0120】
図15は、第3の実施の形態のメッセージ伝達の例を示すシーケンス図である。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップST121]スイッチ装置100aは、ポート“P1a”のリンクダウンを検知する。
【0121】
[ステップST122]スイッチ装置100aは、フラッシュメッセージ400を生成して、フラッディングする。スイッチ装置100は、スイッチ装置100aからフラッシュメッセージ400を受信する。また、スイッチ装置100aは、学習テーブル111aからポート“P1a”に対応するMACアドレス“A”、“C”、“E”のエントリを削除する。
【0122】
[ステップST123]スイッチ装置100は、フラッシュメッセージ400に設定された障害MACアドレス“A”、“C”、“E”を受信ポート“P1”に対応付けて記憶部140に記憶された障害MACアドレステーブル141に設定する。スイッチ装置100は、フラッシュメッセージ400をフラッディングする。スイッチ装置100bは、スイッチ装置100からフラッシュメッセージ400を受信する。
【0123】
[ステップST124]スイッチ装置100bは、フラッシュメッセージ400に設定された障害MACアドレス“A”、“C”、“E”を受信ポート“P1b”に対応付けて障害MACアドレステーブルに設定する。スイッチ装置100bは、フラッシュメッセージ400をフラッディングする。
【0124】
[ステップST125]スイッチ装置100bは、経路L14を介して、サーバ装置300を送信元(MACアドレス“B”)とし、サーバ装置200を宛先(MACアドレス“B”)としたフレームを受信する。
【0125】
[ステップST126]スイッチ装置100bは、該フレームに含まれる宛先MACアドレス“A”を抽出し、該MACアドレスが障害MACアドレステーブル内の障害MACアドレスに一致すると判断する。更に、スイッチ装置100bは、障害MACアドレステーブル内の該障害MACアドレス“A”および受信ポート“P1b”の組と、学習テーブル111b内のMACアドレス“A”およびポート“P1b”の組と、が一致すると判断する。すると、スイッチ装置100bは、学習テーブル111bからMACアドレス“A”のエントリを削除する。更に、スイッチ装置100bは、障害MACアドレステーブルから障害MACアドレス“A”のエントリを削除する。
【0126】
[ステップST127]スイッチ装置100bは、ステップST125で受信したフレームをフラッディングする。スイッチ装置100は、該フレームを受信する。
[ステップST128]スイッチ装置100は、該フレームに含まれる宛先MACアドレス“A”を抽出し、該MACアドレスが障害MACアドレステーブル141内の障害MACアドレスに一致すると判断する。更に、スイッチ装置100は、障害MACアドレステーブル141内の該障害MACアドレス“A”および受信ポート“P1”の組と、学習テーブル111内のMACアドレス“A”およびポート“P1”の組と、が一致すると判断する。すると、スイッチ装置100は、学習テーブル111からMACアドレス“A”のエントリを削除する。更に、スイッチ装置100は、障害MACアドレステーブル141から障害MACアドレス“A”のエントリを削除する。
【0127】
[ステップST129]スイッチ装置100は、ステップST127で受信したフレームをフラッディングする。スイッチ装置100aは、該フレームを受信する。
[ステップST130]スイッチ装置100aは、該フレームに含まれる宛先MACアドレス“A”を抽出する。スイッチ装置100aは、学習テーブル111aに該宛先MACアドレス“A”のエントリが存在しないことを検知する(ステップST122で削除済のため)。スイッチ装置100aは、該フレームをフラッディングする。
【0128】
このように、スイッチ装置100,100bは、フラッシュメッセージ400を送受信した後、削除対象のMACアドレスを宛先としたフレームを中継する際に、該MACアドレスのエントリを学習テーブル111,111bから削除する。これにより、第2の実施の形態と同様の効果を得られる。
【0129】
なお、スイッチ装置100aは、ステップST122で学習テーブル111aの更新を行うものとした。一方、スイッチ装置100aは、ステップST129で中継対象のフレームを受信したときに、スイッチ装置100,100bと同様にして学習テーブル111aを更新してもよい。
【0130】
第3の実施の形態では、削除対象のMACアドレスを宛先としたフレームを受信しないと障害MACアドレステーブル141から該MACアドレスのエントリの削除が行われない。すると、障害MACアドレステーブル141に余分なエントリが残留する可能性がある。そこで、テーブル管理部160は、障害MACアドレステーブル141から余分なエントリを定期的に削除する。例えば、学習テーブル111のエージングタイマを利用することが考えられる。エージングタイマとは、学習テーブル111における各エントリの登録期限である。
【0131】
図16は、第3の実施の形態のエージング管理処理を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS51]テーブル管理部160は、記憶部140に記憶された障害MACアドレステーブル141のエントリごとにタイマ監視する。タイマのカウント開始のタイミングは、例えば該エントリが障害MACアドレステーブル141に設定されたタイミングである。
【0132】
[ステップS52]テーブル管理部160は、エージングタイマを超過したエントリが存在するか否かを判定する。存在する場合、処理をステップS53に進める。存在しない場合、処理をステップS51に進める。
【0133】
[ステップS53]テーブル管理部160は、エージングタイマを超過したエントリを障害MACアドレステーブル141から削除する。そして、処理をステップS51に進める。
【0134】
このように、スイッチ装置100は、障害MACアドレステーブル141のエントリを、エージングタイマによるカウントが満了したタイミングで削除する。学習テーブル111のエージングタイマを用いる理由は次の通りである。すなわち、該エージングタイマを超えてまで障害MACアドレステーブル141にエントリを保持したとしても、該エントリに対応する宛先MACアドレスにフレームを受信する可能性は低いと考えられる。このため、エージングタイマを超えた障害MACアドレスのエントリを用いた、学習テーブル111の更新が行われる可能性は低いと考えられるからである。
【0135】
これにより、障害MACアドレステーブル141に余分なエントリが残留する可能性を低減でき、メモリ105bを効率的に利用できる。
[第4の実施の形態]
以下、第4の実施の形態を説明する。前述の第2,第3の実施の形態との相違点を主に説明し、同様の事項の説明を省略する。
【0136】
第2,第3の実施の形態では、スイッチ装置100が学習テーブル111を更新するための異なる処理方式を例示した。ここで、何れの処理方式で更新するかを指定可能としてもよい。第4の実施の形態では、その機能を提供する。
【0137】
ここで、第4の実施の形態の情報処理システムの構成は、図2で説明した第2の実施の形態の情報処理システムの構成と同様である。また、第4の実施の形態のスイッチ装置のハードウェアおよび機能は、図3,4で説明した第2の実施の形態のスイッチ装置100のハードウェアおよび機能と同様である。第4の実施の形態では、第2の実施の形態で用いた符号・名称と同一の符号・名称により、各構成を指し示すものとする。
【0138】
図17は、第4の実施の形態のフラッシュメッセージの例を示す図である。フラッシュメッセージ400aには、ヘッダ410、障害MACアドレスリスト420および処理方式430の各フィールドが設けられている。
【0139】
ヘッダ410および障害MACアドレスリスト420は、図5で説明した通りである。
処理方式430は、学習テーブルの更新処理の処理方式を指定するためのフィールドである。ここで、処理方式は、次のようにして指定される。
【0140】
(1)処理方式“M1”は、第2の実施の形態で説明した手順で学習テーブルを更新する処理方式である。具体的には、フラッシュメッセージのフラッディングの直後に学習テーブルを更新する処理方式である。
【0141】
(2)処理方式“M2”は、第3の実施の形態で説明した手順で学習テーブルを更新する処理方式である。具体的には、フラッシュメッセージのフラッディング後、中継対象のフレームを受信した時に、学習テーブルを更新する処理方式である。
【0142】
なお、処理方式に設定がない(“NULL”)の場合、各スイッチ装置に設定されたデフォルトの処理方式を用いるものとする。
例えば、スイッチ装置100aが経路L11での障害を検知したとする。すると、スイッチ装置100aは、フラッシュメッセージ400aを生成して、経路L12,L21,L31へフラッディングする。このとき、スイッチ装置100aは、経路L11の先に接続されているサーバ装置200,200a,200bのMACアドレスを、障害MACアドレスリスト420に含める。また、スイッチ装置100aは、フラッシュメッセージ400aに学習テーブルの処理方式430を設定する。処理方式“M1”、“M2”、あるいは“NULL”の何れを設定するかは、情報処理システムの管理者により、スイッチ装置100aに予め設定される。
【0143】
図18は、第4の実施の形態の障害MACアドレステーブルの例を示す図である。障害MACアドレステーブル141aは、記憶部140に格納される。障害MACアドレステーブル141aには、障害MACアドレス、受信ポートおよび処理方式の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのノードの情報を示す。
【0144】
障害MACアドレスおよび受信ポートの項目の設定内容は、図7で説明した通りである。処理方式の項目には、該エントリを何れの処理方式で処理するかが設定される。
障害MACアドレステーブル141aは、スイッチ装置100がスイッチ装置100aから経路L12を介してフラッシュメッセージ400aを受信した場合を例示している。フラッシュメッセージ400aには、障害MACアドレスリスト420にMACアドレス“A”、“C”、“E”が設定されている。また、処理方式に“M1”が設定されている。この場合、例えば、障害MACアドレステーブル141aには、障害MACアドレスが“A”、受信ポートが“P1”、処理方式が“M1”という情報が設定される。また、障害MACアドレスが“C”、受信ポートが“P1”、処理方式が“M1”という情報が設定される。更に、障害MACアドレスが“E”、受信ポートが“P1”、処理方式が“M1”という情報が設定される。
【0145】
次に、以上の構成の情報処理システムの処理手順を説明する。ここで、第4の実施の形態の障害検知時の処理は、図8で説明した第2の実施の形態の障害検知時の処理と同様である。ただし、スイッチ装置100aは、フラッシュメッセージ400に代えてフラッシュメッセージ400aを生成し、送信する。また、第4の実施の形態のメッセージ受信時の処理は、図9で説明した第2の実施の形態のメッセージ受信時の処理と同様である。ただし、スイッチ装置100は、フラッシュメッセージ400aに含まれる処理方式430の設定内容を障害MACアドレステーブル141aに保持する。
【0146】
また、第4の実施の形態では、スイッチ装置100は、フラッシュメッセージ400aを受信した後、何れの処理方式で学習テーブル111の更新を行うかを判断する。次に、処理方式の判断処理の手順を説明する。
【0147】
図19は、第4の実施の形態の処理方式決定処理を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS61]テーブル管理部160は、記憶部140に記憶された障害MACアドレステーブル141aを参照して、各エントリの処理方式を判定する。処理方式が“M1”の場合、処理をステップS62に進める。処理方式が“M2”の場合、処理をステップS63に進める。処理方式が“NULL”の場合、処理をステップS64に進める。
【0148】
[ステップS62]テーブル管理部160は、各エントリを処理方式“M1”で処理する。具体的には、通信制御部120がフラッシュメッセージ400aをフラッディングした後に、テーブル管理部160は学習テーブル111の更新処理を行う。その手順は、図10で説明した通りである。そして、処理を終了する。
【0149】
[ステップS63]テーブル管理部160は、各エントリを処理方式“M2”で処理する。具体的には、フレームの中継が発生したタイミングで、テーブル管理部160は学習テーブル111の更新処理を行う。その手順は、図14で説明した通りである。そして、処理を終了する。
【0150】
[ステップS64]テーブル管理部160は、スイッチ装置100に予め設定されたデフォルトの処理方式で各エントリを処理する。例えば、情報処理システムの管理者により、処理方式“M1”、“M2”の何れを用いるかが、スイッチ装置100に予め設定される。そして、処理を終了する。
【0151】
このようにして、スイッチ装置100はフラッシュメッセージ400aに基づいて、複数の処理方式のうちの何れかにより、学習テーブル111の更新処理を行うこともできる。また、スイッチ装置が複数存在する場合、各スイッチ装置でデフォルトの処理方式が異なることもある。そのような場合にも、フラッシュメッセージ400aにより処理方式を指定することで、各スイッチ装置の処理方式を容易に統一することができる。
【0152】
なお、処理方式として“M1”、“M2”を例示したが、他の処理方式を選択可能としてもよい。例えば、フラッシュメッセージ400aをフラッディングした後、所定時間が経過してから、学習テーブル111を更新する処理方式が考えられる。
【0153】
また、第2〜第4の実施の形態では、スイッチ装置100,100a,100b,100c,100dとしてL2スイッチ装置を例示したが、これに限らない。例えば、レイヤ2のスイッチング機能を備えたL3スイッチ装置やルータ装置などにも、第2〜第4の実施の形態で示した機能を適用できる。
【0154】
以上、本件の通信装置および通信プログラムを図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されてもよい。また、本発明は前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0155】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、コンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0156】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAM(Random Access Memory)などがある。光磁気記録媒体には、MO(Magneto - Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0157】
上記プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM(Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータに格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0158】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【0159】
1,2,2a,2b 通信装置
1a,1b,1c 通信ポート
1d 第1の記憶部
1e 第2の記憶部
1f 通信部
1g 制御部
3,3a,3b ノード

【特許請求の範囲】
【請求項1】
複数のノードのうち通信ができなくなったノードのアドレスを含むメッセージを受信すると、該アドレスを第1の記憶部に格納して、自装置が備える複数の通信ポートのうち前記メッセージを受信した通信ポート以外の通信ポートから前記メッセージを送信する通信部と、
前記通信部が前記メッセージを送信した後に、前記複数のノードのアドレスと前記複数の通信ポートとの対応関係が設定されたアドレス情報を記憶する第2の記憶部に記憶された前記アドレス情報から前記第1の記憶部に記憶されたアドレスの設定を削除する制御部と、
を有する通信装置。
【請求項2】
前記通信部は、前記メッセージに含まれるアドレスを、前記メッセージを受信した通信ポートを示す情報に対応付けて前記第1の記憶部に格納し、
前記制御部は、前記第1の記憶部に格納されたアドレスと通信ポートとの対応と、前記アドレス情報に設定されたアドレスと通信ポートとの対応と、が一致する場合に、前記アドレス情報から該アドレスの設定を削除する、
請求項1記載の通信装置。
【請求項3】
前記制御部は、前記通信ができなくなったノードのアドレスを宛先としたデータを受信した際に、前記アドレス情報から該アドレスの設定を削除する、請求項1または2記載の通信装置。
【請求項4】
前記制御部は、前記第1の記憶部に記憶されたアドレスを、前記第1の記憶部に該アドレスを格納してから所定時間経過後に削除する、請求項1乃至3の何れか一項に記載の通信装置。
【請求項5】
前記所定時間は、前記アドレス情報の設定内容の登録期限と同じ時間である、請求項4記載の通信装置。
【請求項6】
前記メッセージは、前記アドレス情報からアドレスの設定を削除する手順を指定するための処理方式の情報を含み、
前記制御部は、前記メッセージに含まれる前記処理方式の情報に基づいて、前記アドレス情報からアドレスの設定を削除する、
請求項1乃至5の何れか一項に記載の通信装置。
【請求項7】
複数のノードのうち通信ができなくなったノードのアドレスを含むメッセージを受信すると、該アドレスを第1の記憶部に格納して、自装置が備える複数の通信ポートのうち前記メッセージを受信した通信ポート以外の通信ポートから前記メッセージを送信し、
前記メッセージを送信した後に、前記複数のノードのアドレスと前記複数の通信ポートとの対応関係が設定されたアドレス情報を記憶する第2の記憶部に記憶された前記アドレス情報から前記第1の記憶部に記憶されたアドレスの設定を削除する、
処理をコンピュータに実行させる通信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate