(57)【要約】【課題】冗長化された通信経路を備える計算機システムにおいて、通信経路の高速なフェイルオーバー、及び、待機系経路の診断を可能にする。【解決手段】ネットワークに接続される少なくとも第１及び第２インターフェースを備える計算機であって、前記第１インターフェースは、第１アドレスを保持し、前記第２インターフェースは、前記第１アドレス及び第２アドレスを保持し、前記計算機は、送信元アドレスが前記第１アドレスであるパケットを前記第１インターフェースから送信し、送信元アドレスが前記第２アドレスであるパケットを前記第２インターフェースから送信し、前記第１インターフェースに接続された通信経路の状態が正常でないと判定された場合、送信元アドレスが前記第１アドレスであるパケットを前記第２インターフェースから送信する。【選択図】図２
2008283608.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される複数のインターフェースと、前記複数のインターフェースに接続されるプロセッサと、前記プロセッサに接続される記憶装置と、を備える計算機であって、
前記複数のインターフェースは、第１インターフェース及び第２インターフェースを含み、
前記第１インターフェースは、
第１アドレスを保持し、
前記第１インターフェースが受信したパケットの宛先アドレスが前記第１アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、
前記第２インターフェースは、
前記第１アドレス及び第２アドレスを保持し、
前記第２インターフェースが受信したパケットの宛先アドレスが前記第１アドレス又は前記第２アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、
前記プロセッサは、
送信元アドレスが前記第１アドレスであるパケットを前記第１インターフェースから送信し、
送信元アドレスが前記第２アドレスであるパケットを前記第２インターフェースから送信し、
前記第１インターフェースに接続された、前記ネットワーク上の通信経路の状態が正常でないと判定された場合、送信元アドレスが前記第１アドレスであるパケットを前記第２インターフェースから送信することを特徴とする計算機。
【請求項２】
前記プロセッサは、
送信元アドレスが前記第１アドレスである前記パケットを前記第１インターフェースから送信した後、送信された前記パケットに対する応答を第１の所定の時間内に受信しなかった場合、前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定し、
送信元アドレスが前記第２アドレスである前記パケットを前記第２インターフェースから送信した後、送信された前記パケットに対する応答を前記第１の所定の時間内に受信しなかった場合、前記第２インターフェースに接続された、前記ネットワーク上の通信経路の状態が正常でないと判定することを特徴とする請求項１に記載の計算機。
【請求項３】
前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定された場合、前記プロセッサは、
前記第１インターフェースに前記第２アドレスを保持させ、
送信元アドレスが前記第２アドレスであるパケットを前記第１インターフェースから送信し、
前記第１インターフェースから送信された前記パケットに対する応答を前記第１の所定の時間内に受信しなかった場合、前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定することを特徴とする請求項１に記載の計算機。
【請求項４】
前記プロセッサは、前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定された後、所定の条件が満たされた場合、前記第１インターフェースに前記第２アドレスを保持させることを特徴とする請求項３に記載の計算機。
【請求項５】
前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定されてから第２の所定の時間が経過したとき、前記所定の条件が満たされることを特徴とする請求項４に記載の計算機。
【請求項６】
計算機を制御するプログラムであって、
前記計算機は、ネットワークに接続される複数のインターフェースと、前記複数のインターフェースに接続されるプロセッサと、前記プロセッサに接続される記憶装置と、を備え、
前記複数のインターフェースは、第１インターフェース及び第２インターフェースを含み、
前記第１インターフェースは、
第１アドレスを保持し、
前記第１インターフェースが受信したパケットの宛先アドレスが前記第１アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、
前記第２インターフェースは、
前記第１アドレス及び第２アドレスを保持し、
前記第２インターフェースが受信したパケットの宛先アドレスが前記第１アドレス又は前記第２アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、
前記プログラムは、
送信元アドレスが前記第１アドレスであるパケットを前記第１インターフェースから送信する手順と、
送信元アドレスが前記第２アドレスであるパケットを前記第２インターフェースから送信する手順と、
前記第１インターフェースに接続された、前記ネットワーク上の通信経路の状態が正常でないと判定された場合、送信元アドレスが前記第１アドレスであるパケットを前記第２インターフェースから送信する手順と、を前記プロセッサに実行させることを特徴とするプログラム。
【請求項７】
前記プログラムは、さらに、
送信元アドレスが前記第１アドレスである前記パケットを前記第１インターフェースから送信した後、送信された前記パケットに対する応答を第１の所定の時間内に受信しなかった場合、前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定する手順と、
送信元アドレスが前記第２アドレスである前記パケットを前記第２インターフェースから送信した後、送信された前記パケットに対する応答を前記第１の所定の時間内に受信しなかった場合、前記第２インターフェースに接続された、前記ネットワーク上の通信経路の状態が正常でないと判定する手順と、を前記プロセッサに実行させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定された場合、前記プログラムは、さらに、
前記第１インターフェースに前記第２アドレスを保持させる手順と、
送信元アドレスが前記第２アドレスであるパケットを前記第１インターフェースから送信する手順と、
前記第１インターフェースから送信された前記パケットに対する応答を前記第１の所定の時間内に受信しなかった場合、前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定する手順と、を前記プロセッサに実行させることを特徴とする請求項６に記載のプログラム。
【請求項９】
前記プログラムは、前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定された後、所定の条件が満たされた場合、前記第１インターフェースに前記第２アドレスを保持させる前記手順を前記プロセッサに実行させることを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定されてから第２の所定の時間が経過したとき、前記所定の条件が満たされることを特徴とする請求項９に記載のプログラム。
【請求項１１】
ネットワークに接続される複数のインターフェースと、前記複数のインターフェースに接続されるプロセッサと、前記プロセッサに接続される記憶装置と、を備える計算機を制御する方法であって、
前記複数のインターフェースは、第１インターフェース及び第２インターフェースを含み、
前記第１インターフェースは、
第１アドレスを保持し、
前記第１インターフェースが受信したパケットの宛先アドレスが前記第１アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、
前記第２インターフェースは、
前記第１アドレス及び第２アドレスを保持し、
前記第２インターフェースが受信したパケットの宛先アドレスが前記第１アドレス又は前記第２アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、
前記方法は、
前記プロセッサが、送信元アドレスが前記第１アドレスであるパケットを前記第１インターフェースから送信する手順と、
前記プロセッサが、送信元アドレスが前記第２アドレスであるパケットを前記第２インターフェースから送信する手順と、
前記第１インターフェースに接続された、前記ネットワーク上の通信経路の状態が正常でないと判定された場合、前記プロセッサが、送信元アドレスが前記第１アドレスであるパケットを前記第２インターフェースから送信する手順と、を含むことを特徴とする方法。
【請求項１２】
前記方法は、さらに、
送信元アドレスが前記第１アドレスである前記パケットが前記第１インターフェースから送信された後、送信された前記パケットに対する応答を第１の所定の時間内に受信しなかった場合、前記第１インターフェースに接続された前記通信経路の状態が正常でないと前記プロセッサが判定する手順と、
送信元アドレスが前記第２アドレスである前記パケットが前記第２インターフェースから送信された後、送信された前記パケットに対する応答を前記第１の所定の時間内に受信しなかった場合、前記第２インターフェースに接続された、前記ネットワーク上の通信経路の状態が正常でないと前記プロセッサが判定する手順と、を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定された場合、前記方法は、さらに、
前記プロセッサが、前記第１インターフェースに前記第２アドレスを保持させる手順と、
前記プロセッサが、送信元アドレスが前記第２アドレスであるパケットを前記第１インターフェースから送信する手順と、
前記第１インターフェースから送信された前記パケットに対する応答を前記第１の所定の時間内に受信しなかった場合、前記第１インターフェースに接続された前記通信経路の状態が正常でないと前記プロセッサが判定する手順と、を含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記第１インターフェースに前記第２アドレスを保持させる前記手順は、前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定された後、所定の条件が満たされた場合に実行されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記第１インターフェースに接続された前記通信経路の状態が正常でないと判定されてから第２の所定の時間が経過したとき、前記所定の条件が満たされることを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で開示される技術は、ネットワークに接続された計算機による通信の制御に関し、特に、通信経路の冗長化に関する。
【背景技術】
【０００２】
ネットワーク技術の進展の結果、ネットワークによって通信可能に接続された複数の計算機からなる計算機システムが実現している。このような計算機システムの耐障害性を高めるために、ネットワーク上の通信経路を冗長化する技術が知られている。
【０００３】
例えば、特許文献１には、ネットワークに接続される二つの独立したネットワークアダプタ（ＮＡ）を備える計算機（通信局）が開示されている。二つのＮＡはネットワークに接続され、そのネットワークに接続された他の計算機と通信するインターフェース（例えば、いわゆるネットワークインターフェースカード）である。一方のＮＡを経由する通信経路に障害が発生した場合、もう一方のＮＡを介して通信が実行される。このように、通信経路を冗長化することによって、ネットワークの一点に障害が発生しても運用が停止しない、耐障害性の高い計算機システムを実現することができる。
【特許文献１】特許第３８００３３８号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１によれば、一つの計算機が備える二つのＮＡには、それぞれ、異なるＭｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ（ＭＡＣ）アドレスが割り当てられる。例えば、二つのＮＡのうち一方が、ユーザパケットの送受信に使用される現用系、もう一方が、現用系に接続された通信経路が異常となった場合にユーザパケットの送受信に使用される待機系であると仮定する。この場合、現用系ＮＡと待機系ＮＡに割り当てられたＭＡＣアドレスが異なるため、待機系ＮＡのＭＡＣアドレスを現用系ＮＡのＭＡＣアドレスと同じ値に書き換えるまで、待機系ＮＡは、現用系ＮＡを引き継いでユーザパケットを送受信することができない。
【０００５】
あるいは、あらかじめ現用系ＮＡと待機系ＮＡに同一のＭＡＣアドレスを割り当てることもできる。しかし、その場合、現用系ＮＡと待機系ＮＡは、同一のＭＡＣアドレスを使用して診断パケットを送信する。ネットワークがスイッチングハブに接続されている場合、診断パケットの送信元ＭＡＣアドレスに基づいて、スイッチングハブが保持するＭＡＣアドレスとポートとの対応表が頻繁に更新される。その結果、現用系ＮＡ宛のパケットが現用系ＮＡに到達しない場合がある。例えば、スイッチングハブが待機系ＮＡから送信された診断パケットを受信したとき、待機系ＮＡのＭＡＣアドレスと待機系ＮＡのポート番号とが対応表に登録される。その後、スイッチングハブが現用系ＮＡ宛のパケットを受信すると、スイッチングハブは、待機系ＮＡが接続されたネットワークにそのパケットを送信する。その結果、現用系ＮＡにパケットが到達しない場合がある。
【課題を解決するための手段】
【０００６】
本願で開示する代表的な発明は、ネットワークに接続される複数のインターフェースと、前記複数のインターフェースに接続されるプロセッサと、前記プロセッサに接続される記憶装置と、を備える計算機であって、前記複数のインターフェースは、第１インターフェース及び第２インターフェースを含み、前記第１インターフェースは、第１アドレスを保持し、前記第１インターフェースが受信したパケットの宛先アドレスが前記第１アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、前記第２インターフェースは、前記第１アドレス及び第２アドレスを保持し、前記第２インターフェースが受信したパケットの宛先アドレスが前記第１アドレス又は前記第２アドレスと一致する場合、前記受信したパケットを前記プロセッサに送信し、前記プロセッサは、送信元アドレスが前記第１アドレスであるパケットを前記第１インターフェースから送信し、送信元アドレスが前記第２アドレスであるパケットを前記第２インターフェースから送信し、前記第１インターフェースに接続された、前記ネットワーク上の通信経路の状態が正常でないと判定された場合、送信元アドレスが前記第１アドレスであるパケットを前記第２インターフェースから送信することを特徴とする。
【発明の効果】
【０００７】
本発明の一実施形態によれば、現用系インターフェース及び待機系インターフェースがそれぞれ一意のアドレスを使用して診断パケットを送信することによって、それぞれの通信経路の状態を監視することができる。さらに、現用系インターフェースに接続された通信経路の状態が正常でなくなった場合、待機系インターフェースを新たな現用系インターフェースとして設定することによって、速やかにユーザパケットの送受信を開始することができる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施の形態を、図面を参照しながら説明する。
【０００９】
図１は、本発明の実施の形態の計算機のハードウェア構成を示すブロック図である。
【００１０】
本発明の実施の形態の計算機１００は、プロセッサ１０１、記憶装置１０２、ネットワークインターフェースカード（ＮＩＣ）１＿１０６Ａ、ＮＩＣ２＿１０６Ｂ及び入出力装置１０８を備える。プロセッサ１０１、記憶装置１０２、ＮＩＣ１＿１０６Ａ及びＮＩＣ２＿１０６Ｂは、相互に通信可能に接続される。
【００１１】
プロセッサ１０１は、記憶装置１０２に格納された種々のプログラムを実行する。
【００１２】
記憶装置１０２は、プロセッサ１０１によって実行されるプログラム及びプロセッサ１０１によって参照されるデータを格納する。記憶装置１０２は、例えば、半導体メモリ、磁気ディスク装置又はそれらの組み合わせであってもよい。本実施の形態の記憶装置１０２は、少なくとも、ユーザアプリケーション１０３、通信制御プログラム１０４及び冗長化ソフトウェア１０５を格納する。したがって、以下の説明においてユーザアプリケーション１０３、通信制御プログラム１０４及び冗長化ソフトウェア１０５が実行する処理は、実際には、ユーザアプリケーション１０３、通信制御プログラム１０４及び冗長化ソフトウェア１０５を実行するプロセッサ１０１によって実行される。
【００１３】
なお、図１に示す計算機１００は、一つのプロセッサ１０１のみを備える。しかし、計算機１００は、複数のプロセッサ１０１を備えてもよい。その場合、ユーザアプリケーション１０３、通信制御プログラム１０４及び冗長化ソフトウェア１０５の実行が、複数のプロセッサ１０１によって分担されてもよい。
【００１４】
ＮＩＣ１＿１０６Ａ及びＮＩＣ２＿１０６Ｂは、計算機１００をネットワークに接続するインターフェースである。
【００１５】
本実施の形態の計算機１００は、どのようなネットワークに接続されてもよい。図１には、計算機１００がネットワーク１＿１１０Ａ及びネットワーク２＿１１０Ｂに接続される例を示す。この例において、ＮＩＣ１＿１０６Ａは、ネットワーク１＿１１０Ａに接続されるポート１０７Ａを備える。ＮＩＣ２＿１０６Ｂは、ネットワーク２＿１１０Ｂに接続されるポート１０７Ｂを備える。
【００１６】
以下、ネットワーク１＿１１０Ａ及びネットワーク２＿１１０Ｂの両者に共通する説明をする場合、これらのネットワークを単にネットワーク１１０とも記載する。同様に、ＮＩＣ１＿１０６Ａ及びＮＩＣ２＿１０６Ｂの両者に共通する説明をする場合、これらのＮＩＣを単にＮＩＣ１０６とも記載する。ポート１０７Ａ及びポート１０７Ｂの両者に共通する説明をする場合、これらのポートを単にポート１０７とも記載する。
【００１７】
ネットワーク１＿１１０Ａ及びネットワーク２＿１１０Ｂは、スイッチングハブ１２０を介して他システム１３０と接続されてもよい。他システム１３０は、例えば、他の計算機（図示省略）を含んでもよい。その場合、計算機１００は、ネットワーク１１０及びスイッチングハブ１２０を介して他の計算機と通信することができる。
【００１８】
ネットワーク１１０にはどのような通信プロトコルが適用されてもよい。本実施の形態では、例えば、イーサネット（登録商標）プロトコルが適用される。
【００１９】
図１の計算機１００は、二つのＮＩＣ１０６を備えるが、実際には、計算機１００は三つ以上のＮＩＣ１０６を備えてもよい。
【００２０】
入出力装置１０８は、キーボード又はマウスのような入力装置、ＣＲＴ又は液晶表示装置のような出力装置、又は、それらの組み合わせであってもよい。計算機１００のユーザは、入出力装置１０８を操作して種々の情報（例えば、任意のコマンド）を計算機１００に入力することができる。入力された情報は、記憶装置１０２に格納されたプログラムを実行するプロセッサ１０１によって処理される。さらに、プロセッサ１０１は、入出力装置１０８に情報を表示させることができる。
【００２１】
図２は、本発明の実施の形態の計算機の機能ブロック図である。
【００２２】
図２のうち、図１において既に説明した部分については説明を省略する。
【００２３】
ユーザアプリケーション１０３は、計算機１００のユーザに種々のアプリケーションを提供するために実行される。ユーザアプリケーション１０３は、必要に応じて、ネットワーク１１０を介してデータ通信を実行する。このとき、ユーザアプリケーション１０３は、通信制御処理部２２１を使用する。
【００２４】
通信制御処理部２２１は、プロセッサ１０１が通信制御プログラム１０４を実行することによって実現される処理部である。あるいは、通信制御処理部２２１は、通信制御プログラム１０４と同等の機能を備える専用ハードウェアであってもよい。通信制御処理部２２１は、ユーザアプリケーション１０３からの要求に応じて、データ通信を制御する。具体的には、例えば、通信制御処理部２２１は、ＴＣＰ／ＩＰによる通信を制御してもよいし、その他のプロトコルによる通信を制御してもよい。例えば、通信制御処理部２２１は、ユーザアプリケーション１０３からの要求に応じてＩＰパケットを生成してもよい。
【００２５】
ユーザアプリケーション１０３が送受信するパケットを、以下、ユーザパケットと記載する。例えば、ユーザアプリケーション１０３からの要求に応じて通信制御処理部２２１が生成し、ＮＩＣ１０６から送信されるパケットは、ユーザパケットである。ＮＩＣ１０６が受信し、ＮＩＣ１０６から通信制御部２０４を経由してその内容がユーザアプリケーション１０３に渡されるパケットもユーザパケットである。
【００２６】
冗長化処理部２２２は、プロセッサ１０１が冗長化ソフトウェア１０５を実行することによって実現される処理部である。あるいは、冗長化処理部２２２は、冗長化ソフトウェア１０５と同等の機能を備える専用ハードウェアであってもよい。冗長化処理部２２２は、通信制御処理部２２１によって制御されるデータ通信の経路を冗長化する。
【００２７】
冗長化処理部２２２は、通信情報管理部２０１及び通信制御部２０４を含む。通信情報管理部２０１及び通信制御部２０４は、例えば、冗長化ソフトウェア１０５を構成するプログラムモジュールである。その場合、通信情報管理部２０１及び通信制御部２０４が実行する処理は、実際にはプロセッサ１０１によって実行される。
【００２８】
通信情報管理部２０１は、現用情報テーブル２０２及び診断情報テーブル２０３を管理する。これらのテーブルには、通信制御部２０４によって参照される情報が登録される。これらのテーブルに登録される情報は、具体的には、記憶装置１０２内の記憶領域のうち、通信情報管理部２０１によって管理される領域に格納される。
【００２９】
現用情報テーブル２０２及び診断情報テーブル２０３については、後で詳細に説明する（図３及び図４参照）。
【００３０】
通信制御部２０４は、ユーザパケットの送受信、診断パケットの送受信及び通信経路の切り替えを制御する。診断パケットとは、通信経路の状態（例えば、通信経路に障害が発生しているか否か）を監視するために送受信されるパケットである。これらの制御を実行するために、通信制御部２０４は、診断パケット生成部２０５、経路監視部２０６及びパケット送受信処理部２０７を含む。これらは、通信制御部２０４を構成するプログラムモジュールである。このため、これらのプログラムモジュールが実行する処理は、実際にはプロセッサ１０１によって実行される。
【００３１】
診断パケット生成部２０５は、診断パケットを生成する。
【００３２】
経路監視部２０６は、診断パケットに対する応答に基づいて、通信経路の状態を監視する。
【００３３】
パケット送受信処理部２０７は、ユーザパケット及び診断パケットの送受信処理を実行する。
【００３４】
これらの各部が実行する処理の詳細については、後で説明する（図５〜図９参照）。
【００３５】
ＮＩＣ制御部２０８Ａ及びＮＩＣ制御部２０８Ｂは、それぞれ、ＮＩＣ１＿１０６Ａ及びＮＩＣ２＿１０６Ｂを制御する。ＮＩＣ制御部２０８Ａ及びＮＩＣ制御部２０８Ｂは、例えば、記憶装置１０２に格納されたプログラムをプロセッサ１０１が実行することによって実現されてもよい。
【００３６】
本実施の形態の計算機１００は、二つのＮＩＣ１０６すなわちＮＩＣ１＿１０６Ａ及びＮＩＣ２＿１０６Ｂを備える。二つのＮＩＣ１０６のうち一方が現用ＮＩＣ、もう一方が待機ＮＩＣとして設定される。図２の例では、ＮＩＣ１＿１０６Ａが現用ＮＩＣ、ＮＩＣ２＿１０６Ｂが待機ＮＩＣである。計算機１００が三つ以上のＮＩＣ１０６を備える場合、一つのＮＩＣ１０６が現用ＮＩＣ、残りの全てが待機ＮＩＣとして設定される。現用情報テーブル２０２には、現用ＮＩＣとして設定されているＮＩＣ１０６を示す情報が登録される。
【００３７】
計算機１００は、現用ＮＩＣを使用してユーザパケットを送受信する。待機ＮＩＣは、現用ＮＩＣを使用してユーザパケットを送受信できなくなった場合に、現用ＮＩＣの代わりに使用される。すなわち、現用ＮＩＣがユーザパケットを送受信している間、待機ＮＩＣはユーザパケットを送信しない。
【００３８】
ＮＩＣ１＿１０６Ａは、送受信処理部２０９Ａ、受信ＭＡＣ情報管理部２１０Ａ及びポート１０７Ａを備える。
【００３９】
送受信処理部２０９Ａは、パケットの送受信処理を実行する。具体的には、送受信処理部２０９Ａは、パケット送受信処理部２０７からの要求に従って、ポート１０７Ａを介したパケットの送受信を実行する。送受信処理部２０９Ａは、例えば、ＮＩＣ１＿１０６Ａが備えるプロセッサであってもよい。
【００４０】
受信ＭＡＣ情報管理部２１０Ａは、ＮＩＣ１＿１０６Ａが受信するパケット（すなわちイーサネットフレーム）に設定されるＭＡＣアドレスを管理する。具体的には、受信ＭＡＣ情報管理部２１０Ａは、ＮＩＣ１＿１０６Ａが受信するパケットの宛先ＭＡＣアドレスを示す情報を保持する。図２の例において、受信ＭＡＣ情報管理部２１０Ａは、第１のＭＡＣアドレス情報２１１を保持する。
【００４１】
送受信処理部２０９Ａは、受信したパケットの宛先ＭＡＣアドレスが、受信ＭＡＣ情報管理部２１０Ａによって保持されているＭＡＣアドレスと一致する場合、そのパケットを通信制御部２０４に渡す。一方、送受信処理部２０９Ａは、受信したパケットの宛先ＭＡＣアドレスが、受信ＭＡＣ情報管理部２１０Ａによって保持されているＭＡＣアドレスと一致しない場合、そのパケットを破棄する。
【００４２】
なお、既に説明したように、通信制御部２０４が実行する処理は、実際にはプロセッサ１０１によって実行される。このため、ＮＩＣ１０６がパケットを通信制御部２０４を渡す処理は、実際には、ＮＩＣ１０６がパケットをプロセッサ１０１に送信することによって実行される。この送信は、例えば、ＮＩＣ１０６がいずれかの記憶領域（例えば、記憶装置１０２内の記憶領域）にパケットを格納し、その記憶領域のアドレスをプロセッサ１０１に通知することによって実行されてもよい。
【００４３】
受信ＭＡＣ情報管理部２１０Ａは、例えば、ＮＩＣ１＿１０６Ａが備えるメモリ又はそのメモリの記憶領域の一部であってもよい。
【００４４】
ＮＩＣ２＿１０６Ｂは、送受信処理部２０９Ｂ、受信ＭＡＣ情報管理部２１０Ｂ及びポート１０７Ｂを備える。これらは、それぞれ、送受信処理部２０９Ａ、受信ＭＡＣ情報管理部２１０Ａ及びポート１０７Ａと同様であるため、説明を省略する。
【００４５】
ただし、受信ＭＡＣ情報管理部２１０Ｂは、第１のＭＡＣアドレス情報２１２及び第２のＭＡＣアドレス情報２１３を保持する。第１のＭＡＣアドレス情報２１２は、第１のＭＡＣアドレス情報２１１と同一のアドレスを示す。第２のＭＡＣアドレス情報２１３は、第１のＭＡＣアドレス情報２１２と異なるアドレスを示す。この場合、送受信処理部２０９Ｂは、受信したパケットの宛先ＭＡＣアドレスが、第１のＭＡＣアドレス情報２１２及び第２のＭＡＣアドレス情報２１３のいずれかによって示されるアドレスと一致する場合、そのパケットを通信制御部２０４に渡す。一方、送受信処理部２０９Ｂは、受信したパケットの宛先ＭＡＣアドレスが、第１のＭＡＣアドレス情報２１２及び第２のＭＡＣアドレス情報２１３のいずれによって示されるアドレスとも一致しない場合、そのパケットを破棄する。
【００４６】
なお、図２に示す時点において、ＮＩＣ２＿１０６Ｂは待機ＮＩＣである。このため、ＮＩＣ２＿１０６Ｂは、本来、ユーザパケットを受信しても、それを通信制御部２０４に渡さずに破棄してよい。しかし、ユーザパケットの宛先ＭＡＣアドレスが、第１のＭＡＣアドレス情報２１２が示す値と同一である場合、上記のように、ＮＩＣ２＿１０６Ｂは、受信したユーザパケットを通信制御部２０４に渡してしまう。すなわち、通信制御部２０４は、現用ＮＩＣと待機ＮＩＣの双方から、ユーザパケットを受信することになる。この場合、通信制御部２０４は、現用情報テーブル２０２を参照して、現用ＮＩＣ以外のＮＩＣ１０６から受信したユーザパケットを破棄することができる。
【００４７】
図３は、本発明の実施の形態の現用情報テーブル２０２の説明図である。
【００４８】
現用情報テーブル２０２は、計算機１００が備える複数のＮＩＣ１０６のうち、現用ＮＩＣとして設定されているものに関する情報を含む。
【００４９】
具体的には、現用情報テーブル２０２は、現用のＮＩＣ識別子３０１及びＭＡＣアドレス３０２を含む。
【００５０】
現用のＮＩＣ識別子３０１には、現用ＮＩＣとして設定されているＮＩＣ１０６の識別子が登録される。
【００５１】
ＭＡＣアドレス３０２には、現用ＮＩＣとして設定されているＮＩＣ１０６がユーザパケットを送受信するために使用するＭＡＣアドレスが登録される。
【００５２】
図３の例では、現用のＮＩＣ識別子３０１に「ＮＩＣ１」、ＭＡＣアドレス３０２に「第１のＭＡＣアドレス」が登録されている。これは、ＮＩＣ１＿１０６Ａが現用ＮＩＣとして設定されていること、及び、ＮＩＣ１＿１０６Ａから送信されるユーザパケットの送信元ＭＡＣアドレスとして第１のＭＡＣアドレスが設定されることを示す。この第１のＭＡＣアドレスは、図２においてＮＩＣ１＿１０６Ａの受信ＭＡＣ情報管理部２１０Ａが保持する第１のＭＡＣアドレス情報２１１が示すアドレスと同一である。
【００５３】
なお、現用情報テーブル２０２に登録されている情報は、所定のコマンドに応じて入出力装置１０８に表示されてもよい。例えば、計算機１００のユーザが入出力装置１０８を操作して所定のコマンドを入力すると、そのコマンドを受信した冗長化処理部２２２が、図３に示す現用情報テーブル２０２の内容を入出力装置１０８に表示させてもよい。ユーザは、表示された情報を参照することによって、現在どのＮＩＣ１０６が現用ＮＩＣとして使用されているか、及び、現用ＮＩＣがどのアドレスをユーザパケットの送受信に使用しているかを知ることができる。このような機能によって現用ＮＩＣを特定することができるため、現用ＮＩＣへの誤操作を防止することができる。
【００５４】
図４は、本発明の実施の形態の診断情報テーブル２０３の説明図である。
【００５５】
診断情報テーブル２０３は、通信経路の診断に関する情報を含む。
【００５６】
具体的には、診断情報テーブル２０３は、ＮＩＣ識別子４０１、経路状態４０２及び診断パケット用ＭＡＣアドレス４０３を含む。
【００５７】
ＮＩＣ識別子４０１には、計算機１００が備えるＮＩＣ１０６の識別子が登録される。
【００５８】
経路状態４０２には、通信経路の状態を判定した結果が登録される。
【００５９】
診断パケット用ＭＡＣアドレス４０３は、各ＮＩＣ１０６が送信する診断パケットの送信元ＭＡＣアドレスとして設定される値が登録される。
【００６０】
図４の例では、ＮＩＣ識別子４０１として「ＮＩＣ１」及び「ＮＩＣ２」が登録される。これは、計算機１００がＮＩＣ１＿１０６Ａ及びＮＩＣ２＿１０６Ｂを備えることを示す。
【００６１】
図４の例では、ＮＩＣ識別子４０１の値「ＮＩＣ１」に対応する経路状態４０２及び診断パケット用ＭＡＣアドレス４０３として、それぞれ、「正常」及び「第１のＭＡＣアドレス」が登録される。これは、ＮＩＣ１＿１０６Ａを経由する通信経路（すなわち、ＮＩＣ１＿１０６Ａに接続された通信経路）の状態が正常であること、及び、ＮＩＣ１＿１０６Ａから送信される診断パケットの送信元ＭＡＣアドレスとして第１のＭＡＣアドレスが設定されることを示す。この第１のＭＡＣアドレスは、図２においてＮＩＣ１＿１０６Ａの受信ＭＡＣ情報管理部２１０Ａが保持する第１のＭＡＣアドレス情報２１１が示すアドレスと同一である。
【００６２】
図４の例では、ＮＩＣ識別子４０１の値「ＮＩＣ２」に対応する経路状態４０２及び診断パケット用ＭＡＣアドレス４０３として、それぞれ、「正常」及び「ＮＩＣ２に設定した第２のＭＡＣアドレス」が登録される。これは、ＮＩＣ２＿１０６Ｂに接続された通信経路の状態が正常であること、及び、ＮＩＣ２＿１０６Ｂから送信される診断パケットの送信元ＭＡＣアドレスとして第２のＭＡＣアドレスが設定されることを示す。この第２のＭＡＣアドレスは、図２においてＮＩＣ２＿１０６Ｂの受信ＭＡＣ情報管理部２１０Ｂが保持する第２のＭＡＣアドレス情報２１３が示すアドレスと同一である。
【００６３】
なお、診断情報テーブル２０３に登録されている情報は、所定のコマンドに応じて入出力装置１０８に表示されてもよい。例えば、計算機１００のユーザが入出力装置１０８を操作して所定のコマンドを入力すると、そのコマンドを受信した冗長化処理部２２２が、図４に示す診断情報テーブル２０３の内容を入出力装置１０８に表示させてもよい。ユーザは、表示された情報を参照することによって、現在の通信経路の状態、及び、各ＮＩＣ１０６が診断パケットの送受信に使用しているアドレスを知ることができる。このような機能によって待機系の通信経路の状態を知ることができるため、待機系の通信経路に障害が発生している場合には、予防保守をすることができる。
【００６４】
図５は、本発明の実施の形態の通信制御部２０４が実行するユーザパケット送信処理を示すフローチャートである。
【００６５】
以下の説明において各プログラム及びプログラムモジュールが実行する処理は、実際には、それらのプログラム等を実行するプロセッサ１０１によって実行される。
【００６６】
最初に、通信制御部２０４は、通信制御処理部２２１からユーザパケットを受け取る（ステップ５０１）。このユーザパケットは、例えば、ユーザアプリケーション１０３からの要求に従って通信制御処理部２２１が生成したものである。
【００６７】
次に、通信制御部２０４は、通信情報管理部２０１が保持する現用情報テーブル２０２を参照して、現用のＮＩＣ識別子３０１及びＭＡＣアドレス３０２の値を取得する（ステップ５０２）。
【００６８】
次に、通信制御部２０４のパケット送受信処理部２０７は、ステップ５０１において受け取ったユーザパケットを、ステップ５０２において取得した情報が示す現用ＮＩＣ（図３の例では、ＮＩＣ１＿１０６Ａ）から送信する（ステップ５０３）。具体的には、パケット送受信処理部２０７は、ステップ５０１において受け取ったユーザパケットの送信元ＭＡＣアドレスに、現用ＮＩＣのＭＡＣアドレス（図３の例では、第１のＭＡＣアドレス）を設定する。そして、パケット送受信処理部２０７は、そのユーザパケットの送信を、ＮＩＣ制御部２０８Ａを介してＮＩＣ１＿１０６Ａに指示する。
【００６９】
図６は、本発明の実施の形態の通信制御部２０４が実行する診断パケット送信処理を示すフローチャートである。
【００７０】
図６の処理は、いずれかのＮＩＣ１０６に接続された通信経路を診断する処理である。以下、診断対象である通信経路に接続されたＮＩＣ１０６を、診断対象であるＮＩＣ１０６と記載する。
【００７１】
最初に、通信制御部２０４は、診断パケット生成部２０５から診断パケットを取得する（ステップ６０１）。具体的には、ステップ６０１において、診断パケット生成部２０５が診断パケットを生成する。
【００７２】
次に、通信制御部２０４は、通信情報管理部２０１が保持する診断情報テーブル２０３を参照して、診断対象であるＮＩＣ１０６の診断パケット用ＭＡＣアドレス４０３の値を取得する（ステップ６０２）。
【００７３】
次に、通信制御部２０４のパケット送受信処理部２０７は、ステップ５０１において受け取ったユーザパケットを、診断対象であるＮＩＣ１０６から送信する（ステップ６０３）。具体的には、パケット送受信処理部２０７は、ステップ６０１において取得した診断パケットの送信元ＭＡＣアドレスに、ステップ６０２において取得したＭＡＣアドレスを設定する。そして、パケット送受信処理部２０７は、その診断パケットの送信を、ＮＩＣ制御部２０８を介して、診断対象であるＮＩＣ１０６に指示する。
【００７４】
結局、図２に示すように、ＮＩＣ１＿１０６Ａが現用ＮＩＣ、ＮＩＣ２＿１０６Ｂが待機ＮＩＣである場合、計算機１００は、ＮＩＣ１＿１０６Ａからユーザパケット及び診断パケットを送信し、ＮＩＣ２＿１０６Ｂから診断パケットを送信する。ＮＩＣ１＿１０６Ａから送信されるユーザパケットの送信元ＭＡＣアドレスとして、ＭＡＣアドレス３０２に登録されている第１のＭＡＣアドレスが設定される。ＮＩＣ１＿１０６Ａから送信される診断パケットの送信元ＭＡＣアドレスとして、「ＮＩＣ１」と対応する診断パケット用ＭＡＣアドレス４０３に登録されている第１のＭＡＣアドレスが設定される。ＮＩＣ２＿１０６Ｂから送信される診断パケットの送信元ＭＡＣアドレスとして、「ＮＩＣ２」と対応する診断パケット用ＭＡＣアドレス４０３に登録されている第２のＭＡＣアドレスが設定される。
【００７５】
図７は、本発明の実施の形態の通信制御部２０４が実行する経路判定処理を示すフローチャートである。
【００７６】
図７に示す経路判定処理は、ＮＩＣ１０６に接続された通信経路の状態が正常であるか否かを判定するために実行される。
【００７７】
最初に、通信制御部２０４は、図６において説明した診断パケット送信処理を実行する（ステップ７０１）。例えば、ステップ７０１において通信制御部２０４の経路監視部２０６が診断パケット送信処理の開始を指示し、その指示に従って診断パケット生成部２０５及びパケット送受信処理部２０７等が図６の各ステップを実行してもよい。
【００７８】
次に、通信制御部２０４の経路監視部２０６は、所定の時間待機する（ステップ７０２）。
【００７９】
次に、経路監視部２０６は、ステップ７０１で送信された診断パケットに対する応答を、ステップ７０２において待機していた所定の時間内に受信したか否かを判定する（ステップ７０３）。
【００８０】
ステップ７０３において、所定の時間内に応答を受信したと判定された場合、診断対象である通信経路の状態は正常であると判定される。この場合、経路監視部２０６は、診断情報テーブル２０３において、診断対象であるＮＩＣ１０６に対応する経路状態４０２に「正常」を登録して（ステップ７０４）、処理を終了する。
【００８１】
一方、ステップ７０３において、所定の時間内に応答を受信しなかったと判定された場合、診断対象である通信経路の状態が正常でない（すなわち異常である）と判定される。例えば、診断対象である通信経路に障害が発生している場合、このように判定される。この場合、経路監視部２０６は、診断情報テーブル２０３において、診断対象であるＮＩＣ１０６に対応する経路状態４０２に「異常」を登録する（ステップ７０５）。計算機１００は、状態が異常であると判定された通信経路を介して他システム１３０との間でユーザパケットを通信することができない。
【００８２】
次に、経路監視部２０６は、診断対象であるＮＩＣ１０６が現用ＮＩＣであるか否かを判定する（ステップ７０６）。
【００８３】
ステップ７０６において、診断対象であるＮＩＣ１０６が現用ＮＩＣであると判定された場合、現用ＮＩＣに接続された通信経路の状態が異常である。したがって、この場合、計算機１００は、他システム１３０との間でユーザパケットを通信することができない。このため、経路監視部２０６は、現用切り替え処理を実行して（ステップ７０７）、処理を終了する。現用切り替え処理については、図８を参照して詳細に説明する。
【００８４】
一方、ステップ７０６において、診断対象であるＮＩＣ１０６が現用ＮＩＣでないと判定された場合、診断対象であるＮＩＣ１０６は待機ＮＩＣである。計算機１００は、待機ＮＩＣを使用してユーザパケットを送受信しない。このため、待機ＮＩＣに接続された通信経路に異常が発生したとしても、現用ＮＩＣに接続された通信経路が正常であれば、計算機１００はユーザパケットを送受信することができる。このため、経路監視部２０６は、ステップ７０７を実行せずに処理を終了する。
【００８５】
図７に示す経路判定処理は、通信経路の状態を監視するために、各ＮＩＣ１０６を診断対象として、所定のタイミングで繰り返し実行されてもよい。例えば、経路判定処理は定期的に実行されてもよい。
【００８６】
図８は、本発明の実施の形態の通信制御部２０４が実行する現用切り替え処理を示すフローチャートである。
【００８７】
現用切り替え処理は、現用ＮＩＣに接続された通信経路の状態が異常となった場合に、現用ＮＩＣを新たな待機ＮＩＣとして設定し、待機ＮＩＣを新たな現用ＮＩＣとして設定するために実行される。正常な通信経路に接続された待機ＮＩＣを新たな現用ＮＩＣとして設定することによって、計算機１００は再びユーザパケットを送受信できるようになる。
【００８８】
最初に、通信制御部２０４の経路監視部２０６は、現用情報テーブル２０２及び診断情報テーブル２０３を参照し、切り替え先ＮＩＣを選択する（ステップ８０１）。切り替え先ＮＩＣとは、新たに現用ＮＩＣとして設定されるＮＩＣ１０６である。
【００８９】
例えば、ステップ８０１において経路監視部２０６は、診断情報テーブル２０３のＮＩＣ識別子４０１に登録されている識別子から、待機ＮＩＣの識別子であり、かつ、それに対応する経路状態４０２に「正常」が登録されている識別子を選択する。待機ＮＩＣの識別子とは、現用情報テーブル２０２に登録されていない識別子である。図４の例では、上記の条件に適合する「ＮＩＣ２」が切り替え先ＮＩＣとして選択される。
【００９０】
次に、経路監視部２０６は、ステップ８０１における選択に基づいて、診断情報テーブル２０３を更新する（ステップ８０２）。具体的には、経路監視部２０６は、現在の現用ＮＩＣの診断パケット用ＭＡＣアドレス４０３に登録されている値と、切り替え先ＮＩＣの診断パケット用ＭＡＣアドレス４０３に登録されている値とを入れ替える。図４の例では、「ＮＩＣ１」（すなわち現在の現用ＮＩＣの識別子）に対応する診断パケット用ＭＡＣアドレス４０３に、新たに「ＮＩＣ１に設定した第２のＭＡＣアドレス」が登録される。一方、「ＮＩＣ２」に対応する診断パケット用ＭＡＣアドレス４０３に、新たに「第１のＭＡＣアドレス」が登録される。
【００９１】
次に、経路監視部２０６は、ステップ８０１における選択に基づいて、現用情報テーブル２０２を更新する（ステップ８０３）。具体的には、経路監視部２０６は、現用情報テーブル２０２の現用のＮＩＣ識別子３０１に登録されている値を削除し、そこに切り替え先ＮＩＣの識別子（例えば「ＮＩＣ２」）を新たに登録する。
【００９２】
以上で現用切り替え処理が終了する。
【００９３】
例えば、図２に示す計算機システムにおいて、図８に示す現用切り替え処理が実行された結果、ＮＩＣ１＿１０６Ａが新たな待機ＮＩＣとなり、ＮＩＣ２＿１０６Ｂが新たな現用ＮＩＣとなる。この場合、計算機１００は、ＮＩＣ２＿１０６Ｂからユーザパケット及び診断パケットを送信し、ＮＩＣ１＿１０６Ａから診断パケットを送信する。ＮＩＣ２＿１０６Ｂから送信されるユーザパケットの送信元ＭＡＣアドレスとして、ＭＡＣアドレス３０２に登録されている第１のＭＡＣアドレスが設定される。ＮＩＣ２＿１０６Ｂから送信される診断パケットの送信元ＭＡＣアドレスとして、「ＮＩＣ２」と対応する診断パケット用ＭＡＣアドレス４０３に登録されている第１のＭＡＣアドレスが設定される。ＮＩＣ１＿１０６Ａから送信される診断パケットの送信元ＭＡＣアドレスとして、「ＮＩＣ１」と対応する診断パケット用ＭＡＣアドレス４０３に登録されている第２のＭＡＣアドレスが設定される。
【００９４】
上記のように、新たに待機ＮＩＣとなったＮＩＣ１＿１０６Ａは、送信元ＭＡＣアドレスとして第２のＭＡＣアドレスが設定された診断パケットを送信する。ＮＩＣ１＿１０６Ａに接続された通信経路の状態が正常になった場合、ＮＩＣ１＿１０６Ａは、送信した診断パケットに対する応答パケットを受信する。しかし、この応答パケットの宛先ＭＡＣアドレスには、診断パケットの送信元である第２のＭＡＣアドレスが設定されている。このため、受信ＭＡＣ情報管理部２１０Ａが第１のＭＡＣアドレス情報２１１のみを保持している限り、ＮＩＣ１＿１０６Ａは、受信した応答パケットを破棄する。このため、経路監視部２０６は、ＮＩＣ１＿１０６Ａが応答パケットを受信したこと、すなわち、ＮＩＣ１＿１０６Ａに接続された通信経路の状態が正常になったことを知ることができない。
【００９５】
ＮＩＣ１＿１０６Ａが受信した応答パケットを破棄せずに通信制御部２０４に渡すためには、ＮＩＣ１＿１０６Ａが送信する診断パケットの送信元ＭＡＣアドレスとして設定されるアドレスを、受信ＭＡＣ情報管理部２１０Ａが保持している必要がある。そのために実行される処理について、図９を参照して説明する。
【００９６】
図９は、本発明の実施の形態の通信制御部２０４が実行するＭＡＣアドレスの引継ぎ処理を示すフローチャートである。
【００９７】
最初に、通信制御部２０４の経路監視部２０６は、現用情報テーブル２０２を参照して、現用ＮＩＣを特定する（ステップ９０１）。具体的には、現用情報テーブル２０２に登録されている識別子が現用ＮＩＣの識別子である。
【００９８】
次に、経路監視部２０６は、現用ＮＩＣに設定されている第２のＭＡＣアドレスを、待機ＮＩＣの受信ＭＡＣ情報管理部２１０に設定する（ステップ９０２）。例えば、図８に示す処理が実行された結果、ＮＩＣ２＿１０６Ｂが新たな現用ＮＩＣとして設定された場合、経路監視部２０６は、受信ＭＡＣ情報管理部２１０Ｂが保持している第２のＭＡＣアドレス情報２１３を、待機ＮＩＣであるＮＩＣ１＿１０６Ａの受信ＭＡＣ情報管理部２１０Ａにコピーする（図２参照）。
【００９９】
ステップ９０２の処理は、例えば、経路監視部２０６が、診断情報テーブル２０３を参照し、待機ＮＩＣの診断パケット用ＭＡＣアドレス４０３に登録されている値を受信ＭＡＣ情報管理部２１０に保持させる指示を待機ＮＩＣに送信することによって実現されてもよい。
【０１００】
次に、経路監視部２０６は、現用ＮＩＣの受信ＭＡＣ情報管理部２１０から、ステップ９０２においてコピーされた第２のＭＡＣアドレスを削除する（ステップ９０３）。例えば、ステップ９０２において第２のＭＡＣアドレス情報２１３が受信ＭＡＣ情報管理部２１０Ｂから受信ＭＡＣ情報管理部２１０Ａにコピーされた場合、経路監視部２０６は、ステップ９０３において、第２のＭＡＣアドレス情報２１３を受信ＭＡＣ情報管理部２１０Ｂから削除する。
【０１０１】
ステップ９０３の処理は、例えば、経路監視部２０６が、診断情報テーブル２０３を参照し、待機ＮＩＣに対応する診断パケット用ＭＡＣアドレス４０３に登録されている値を受信ＭＡＣ情報管理部２１０から削除させる指示を現用ＮＩＣに送信することによって実現されてもよい。
【０１０２】
以上でＭＡＣアドレスの引継ぎ処理が終了する。
【０１０３】
図９に記載したＭＡＣアドレスの引継ぎ処理の結果、新たな待機ＮＩＣであるＮＩＣ１＿１０６Ａの受信ＭＡＣ情報管理部２１０Ａは、第１のＭＡＣアドレス情報２１１に加えて、第２のＭＡＣアドレス情報２１３を保持する。このため、ＮＩＣ１＿１０６Ａは、ＮＩＣ１＿１０６Ａ自身が送信した診断パケットに対する応答パケットを受信すると、それを破棄せずに通信制御部２０４に渡すことができる。
【０１０４】
したがって、ＭＡＣアドレスの引継ぎ処理は、現用ＮＩＣに接続された通信経路の状態が正常でないと判定されてから、現用切り替え処理によって設定された新たな待機ＮＩＣが最初に応答パケットを受信するまでの間に実行されることが望ましい。例えば、図７において、現用ＮＩＣに接続された通信経路の状態が正常でないと判定（ステップ７０６）された直後、又は、現用切り替え処理（ステップ７０７）が実行された直後に、ＭＡＣアドレスの引継ぎ処理が実行されてもよい。
【０１０５】
しかし、上記の時点では、現用切り替え処理又はそれに関連する処理のために、各ＮＩＣ１０６における処理が混雑している可能性がある。その場合、さらにＭＡＣアドレスの引継ぎ処理を実行すれば、さらなる処理の混雑がＮＩＣ１０６の性能を低下させるおそれがある。上記のように、ＭＡＣアドレスの引継ぎ処理は、新たな待機ＮＩＣが最初に応答パケットを受信するまでの間に実行されればよいため、必ずしも現用切り替え処理が実行された直後に実行される必要はない。このため、ＭＡＣアドレスの引継ぎ処理は、現用切り替え処理による処理の混雑を避けて実行されてもよい。
【０１０６】
図１０は、本発明の実施の形態におけるＭＡＣアドレスの引継ぎ処理の実行タイミングの例を示すフローチャートである。
【０１０７】
図１０のうち、ステップ７０１からステップ７０７までは、図７と同様であるため、説明を省略する。
【０１０８】
図１０の例では、経路監視部２０６は、現用切り替え処理（ステップ７０７）が実行された後、所定の条件が満たされたか否かを判定する（ステップ１００１）。ステップ１００１において所定の条件が満たされないと判定された場合、経路監視部２０６は、所定の条件が満たされるまで待つ。ステップ１００１において所定の条件が満たされると判定された場合、経路監視部２０６は、ＭＡＣアドレスの引継ぎ処理を実行する（ステップ１００２）。
【０１０９】
ステップ１００１における所定の条件は、ＭＡＣアドレスの引継ぎ処理が現用切り替え処理による処理の混雑を避けて実行されるように設定されることが望ましい。
【０１１０】
例えば、現用ＮＩＣに接続された通信経路の状態が正常でないと判定（ステップ７０６）されてから、所定の時間が経過した場合に、上記の所定の条件が満たされたと判定されてもよい。あるいは、現用切り替え処理（ステップ７０７）の実行が終了してから、所定の時間が経過した場合に、上記の所定の条件が満たされたと判定されてもよい。あるいは、現用切り替え処理（ステップ７０７）の実行が終了した後（又は、現用ＮＩＣに接続された通信経路の状態が正常でないと判定された後）、ＮＩＣ１０６の負荷を監視し、負荷の値が所定の閾値より低い場合に上記の所定の条件が満たされたと判定されてもよい。あるいは、現用切り替え処理（ステップ７０７）の実行が終了した後、新たな待機ＮＩＣが通信制御部２０４から診断パケットの送信要求を受けたときに、上記の所定の条件が満たされたと判定されてもよい。
【０１１１】
一方、受信ＭＡＣ情報管理部２１０Ａ及び２１０Ｂは、互いに同一の値である第１のＭＡＣアドレス情報２１１及び２１２を常に保持する。したがって、現用切り替え処理が実行された直後から、通信制御部２０４は、新たな現用ＮＩＣを介してユーザパケットを送受信することができる。
【０１１２】
以上、本発明の実施の形態によれば、計算機１００が備える現用ＮＩＣ及び待機ＮＩＣは、それぞれ、ユーザパケットの送受信に使用される同一のＭＡＣアドレスを保持する。さらに、待機ＮＩＣは、ユーザパケットの送受信に使用されるＭＡＣアドレスとは異なる、診断パケットの送受信に使用されるＭＡＣアドレスを保持する。計算機１００が複数の待機ＮＩＣを備える場合、各待機ＮＩＣが保持する診断パケットの送受信に使用されるＭＡＣアドレスは、それぞれ異なる。現用ＮＩＣは、ユーザパケットの送受信に使用されるＭＡＣアドレスを使用してユーザパケット及び診断パケットを送受信する。
【０１１３】
このため、計算機１００は、現用ＮＩＣ及び全ての待機ＮＩＣから、一意のＭＡＣアドレスを使用して診断パケットを送信し、それに対する応答パケットを受信することによって、全てのＮＩＣ１０６に接続された通信経路の状態を監視することができる。
【０１１４】
さらに、計算機１００は、現用ＮＩＣに接続された通信経路の状態が正常でなくなった場合、待機ＮＩＣの一つを新たな現用ＮＩＣとして設定する現用切り替え処理を実行する。新たな現用ＮＩＣは、あらかじめ、ユーザパケットの送受信に使用されるＭＡＣアドレスを保持している。このため、計算機１００は、新たな現用ＮＩＣを使用して、速やかにユーザパケットの送受信を開始することができる。
【０１１５】
さらに、計算機１００は、現用切り替え処理が実行された後、新たな現用ＮＩＣが待機ＮＩＣであったときに診断パケットの送受信に使用していたＭＡＣアドレスを、新たな待機ＮＩＣにコピーする。その結果、計算機１００は、現用切り替え処理を実行した後も、現用ＮＩＣ及び全ての待機ＮＩＣから、一意のＭＡＣアドレスを使用して診断パケットを送信し、それに対する応答パケットを受信することによって、全てのＮＩＣ１０６に接続された通信経路の状態を監視することができる。計算機１００がＮＩＣ１０６の処理の混雑を避けてＭＡＣアドレスのコピーを実行することによって、更なる混雑によるＮＩＣ１０６の性能低下を防ぐことができる。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施の形態の計算機のハードウェア構成を示すブロック図である。
【図２】本発明の実施の形態の計算機の機能ブロック図である。
【図３】本発明の実施の形態の現用情報テーブルの説明図である。
【図４】本発明の実施の形態の診断情報テーブルの説明図である。
【図５】本発明の実施の形態の通信制御部が実行するユーザパケット送信処理を示すフローチャートである。
【図６】本発明の実施の形態の通信制御部が実行する診断パケット送信処理を示すフローチャートである。
【図７】本発明の実施の形態の通信制御部が実行する経路判定処理を示すフローチャートである。
【図８】本発明の実施の形態の通信制御部が実行する現用切り替え処理を示すフローチャートである。
【図９】本発明の実施の形態の通信制御部が実行するＭＡＣアドレスの引継ぎ処理を示すフローチャートである。
【図１０】本発明の実施の形態におけるＭＡＣアドレスの引継ぎ処理の実行タイミングの例を示すフローチャートである。
【符号の説明】
【０１１７】
１００  計算機
１０１  プロセッサ
１０２  記憶装置
１０３  ユーザアプリケーション
１０４  通信制御プログラム
１０５  冗長化ソフトウェア
１０６Ａ、１０６Ｂ  ネットワークインターフェースカード（ＮＩＣ）
１０７Ａ、１０７Ｂ  ポート
１０８  入出力装置
１１０Ａ、１１０Ｂ  ネットワーク
２０１  通信情報管理部
２０２  現用情報テーブル
２０３  診断情報テーブル
２０４  通信制御部
２０５  診断パケット生成部
２０６  経路監視部
２０７  パケット送受信処理部
２０８Ａ、２０８Ｂ  ＮＩＣ制御部
２０９Ａ、２０９Ｂ  送受信処理部
２１０Ａ、２１０Ｂ  受信ＭＡＣ情報管理部
２１１、２１２  第１のＭＡＣアドレス情報
２１３  第２のＭＡＣアドレス情報
２２１  通信制御処理部
２２２  冗長化処理部
【図１】
2008283608.tif 000003
【図２】
2008283608.tif 000004
【図３】
2008283608.tif 000005
【図４】
2008283608.tif 000006
【図５】
2008283608.tif 000007
【図６】
2008283608.tif 000008
【図７】
2008283608.tif 000009
【図８】
2008283608.tif 000010
【図９】
2008283608.tif 000011
【図１０】
2008283608.tif 000012