(57)【要約】トランキング機能を持たないスイッチングハブとの間で柔軟性の高いトランキングを行うことができるようにする。コンピュータ（１）は、複数の通信インターフェース（１ａ），（１ｂ），（１ｃ），（１ｄ）の物理アドレス、および通信相手コンピュータがコンピュータ（１）宛に送信するデータを複数の通信インターフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット（４）を生成し（ステップＳ１）、コンピュータ（３）に送信する（ステップＳ２）。コンピュータ（３）は、コンピュータ（１）に対して送信する送信データ（５）の宛先とすべき通信インターフェースを、通知された分散アルゴリズムに従って決定し、その通信インターフェースの物理アドレスを宛先として指定して、送信データ（５）を送信する。
2004088931.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御プログラムにおいて、
前記コンピュータに、
前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、
ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、
処理を実行させることを特徴とするデータ通信負荷分散制御プログラム。
【請求項２】
前記分散アルゴリズム通知パケットは、システム起動時にブロードキャストで送信することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項３】
データ通信のアプリケーション毎に前記分散アルゴリズムを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項４】
前記通信相手コンピュータ毎に前記分散アルゴリズムを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項５】
データ通信のアプリケーション毎に、通信に使用可能な前記通信インタフェースを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項６】
前記通信相手コンピュータ毎に通信に使用可能な前記通信インタフェースを指定した前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項７】
前記通信相手コンピュータへの送信データを、前記複数の通信インタフェースに対して分散させて送信することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項８】
前記コンピュータに対して、前記コンピュータと協働して処理を実行する協働コンピュータが接続されている場合、前記協働コンピュータに実装されている協働通信インタフェースの物理アドレスを含めた前記分散アルゴリズム通知パケットを生成することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項９】
前記通信相手コンピュータへの送信データを、前記通信インタフェースと前記協働通信インタフェースとに分散させて送信することを特徴とする請求の範囲第８項記載のデータ通信負荷分散制御プログラム。
【請求項１０】
前記コンピュータに対して新たな通信インタフェースが追加されると、追加された前記通信インタフェースの物理アドレスを含み、前記通信インタフェースを分散処理の使用対象に含めることを通知する前記分散アルゴリズム通知パケットを生成し、
生成した前記分散アルゴリズム通知パケットを前記通信相手コンピュータに送信することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項１１】
前記コンピュータから通信インタフェースが取り外されると、取り外された前記通信インタフェースを分散処理の使用対象から除外することを通知する前記分散アルゴリズム通知パケットを生成し、
生成した前記分散アルゴリズム通知パケットを前記通信相手コンピュータに送信することを特徴とする請求の範囲第１項記載のデータ通信負荷分散制御プログラム。
【請求項１２】
複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させるための負荷分散データ送信プログラムにおいて、
コンピュータに、
前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納し、
前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを前記分散アルゴリズムに従って決定し、
宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを送信する、
処理を実行させることを特徴とする負荷分散データ送信プログラム。
【請求項１３】
複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御方法において、
前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、
ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、
処理を実行させることを特徴とするデータ通信負荷分散制御方法。
【請求項１４】
複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させるためのデータ通信負荷分散方法において、
前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納し、
前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを前記分散アルゴリズムに従って決定し、
宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを前記通信相手コンピュータに対して送信する、
処理を実行させることを特徴とするデータ通信負荷分散方法。
【請求項１５】
実装された複数の通信インタフェース経由の通信負荷を分散させるデータ通信負荷分散制御装置において、
前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータから送られるデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成するパケット生成手段と、
ネットワークを介して接続されている前記通信相手コンピュータに対し、前記パケット生成手段で生成された前記分散アルゴリズム通知パケットを送信するパケット送信手段と、
を有することを特徴とするデータ通信負荷分散制御装置。
【請求項１６】
複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させる負荷分散データ送信装置において、
前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納する格納手段と、
前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを、前記分散アルゴリズムに従って決定する決定手段と、
宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを送信する送信手段と、
を有することを特徴とする負荷分散データ送信装置。
【請求項１７】
複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、
ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、
処理を実行させることを特徴とするデータ通信負荷分散制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
複数の通信インタフェースを実装可能な通信相手コンピュータまでの伝送路の通信負荷を分散させるための負荷分散データ送信プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記複数の通信インタフェースの物理アドレス、および前記通信相手コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを受信すると、前記複数の通信インタフェースの物理アドレスと前記分散アルゴリズムとをデータテーブルに格納し、
前記通信相手コンピュータに対して送信する送信データの宛先とすべき前記通信インタフェースを前記分散アルゴリズムに従って決定し、
宛先に決定された前記通信インタフェースの前記物理アドレスを宛先として指定し、前記送信データを送信する、
処理を実行させることを特徴とする負荷分散データ送信プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】  本発明は多重化した伝送路を介してデータ通信を行う際のデータ通信負荷分散制御プログラム、およびデータ負荷分散制御方法に関し、特にトランキングを用いたデータ通信負荷分散制御プログラム、およびデータ負荷分散制御方法に関する。
【背景技術】  複数の装置間の通信の高帯域化を図る方法の１つにトランキングがある。トランキングは、装置間を複数の伝送路で接続する。そして、各装置では、複数の伝送路それぞれに接続されたネットワークインタフェースカード（ＮＩＣ）を論理的に１つのＬＡＮポートとして取り扱う。これにより、装置間の伝送帯域を向上させることができる。
図２１は、従来のトランキングシステムの構成例を示す図である。従来のトランキングシステムは、コンピュータ９１０、スイッチングハブ９２０、および相手側コンピュータ９３０，９４０，９５０，９６０で構成される。
コンピュータ９１０は、アプリケーション９１１、トランキング機構部９１２、ＮＩＣ９１３〜９１６を有している。アプリケーション９１１は、相手側コンピュータ９３０，９４０，９５０，９６０と通信を行い、様々なデータ処理を行う処理機能である。トランキング機構部９１２は、複数のＮＩＣ９１３〜９１６を１つのＬＡＮポートとみなしてスイッチングハブ９２０との間の通信を行う。なお、トランキング機構部９１２は、複数のＮＩＣ９１３〜９１６のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスや各ＮＩＣ９１３〜９１６で共有するＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス等が設定された構成情報９１２ａを有している。
ＮＩＣ９１３〜９１６は、それぞれ個別の伝送路でスイッチングハブ９２０に接続されており、スイッチングハブ９２０との間でデータ通信を行う。
スイッチングハブ９２０は、８つのＬＡＮポートのうちの４つが、コンピュータ９１０のＮＩＣ９１３〜９１６に接続されている。他の４つのＬＡＮポートは、相手側コンピュータ９３０，９４０，９５０，９６０に接続されている。
また、スイッチングハブ９２０は、トランキング対応部９２１を有している。トランキング対応部９２１は、各ＬＡＮポートへの接続相手のＩＰアドレス等の情報が格納された構成情報９２１ａを有している。
このような構成のシステムにおいて、コンピュータ９１０とスイッチングハブ９２０との間でトランキングが行われる。すなわち、コンピュータ９１０は、多重化したＮＩＣ９１３〜９１６を使用して１つの論理的なＮＩＣを生成する。そしてコンピュータ９１０は、論理的なＮＩＣを通してデータの送受信を行う。
スイッチングハブ９２０は、コンピュータ９１０から送られたデータを、相手側コンピュータ９３０，９４０，９５０，９６０へ送る。また、スイッチングハブ９２０は、相手側コンピュータ９３０，９４０，９５０，９６０から送られたデータを、トランキング対応部９２１が、コンピュータ９１０に接続されたＬＡＮポートの１つに振り分け、そのＬＡＮポートを介してコンピュータ９１０にデータを送信する。
これにより、コンピュータ９１０とスイッチングハブ９２０との間のデータ通信帯域が拡大される。
なお、トランキング対応部９２１を有するスイッチングハブ９２０を介さずに、複数のＬＡＮポートの負荷分散制御を行うこともできる。たとえば、複数のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタを有するホストコンピュータが、通信相手に対して任意のＬＡＮアダプタの物理アドレスを通知する。通信相手は、通知された物理アドレスを指定してデータをホストコンピュータに送信する。これにより、複数の通信相手から送られるデータを、複数のＬＡＮアダプタに負荷分散して受信することができる（例えば、特許文献１参照）。
【特許文献１】      特開平７−２４５６１９号公報（第１図）
しかし、従来の方式では、基本的にコンピュータとスイッチングハブとが共にトランキング機能を持っていないと接続できず、適用条件が限定されたものとなっていた。しかも、スイッチングハブとコンピュータの間で、使用するＮＩＣ数、ポート数や、分散アルゴリズムを一致させて設定する必要があり、トランキングを実行するための専用ＭＡＣアドレスも定義しなければならないので、設定が煩雑でユーザがミスを引き起こしやすいものとなっていた。
更に、使用するＮＩＣ数を増減させたい場合には、上記設定情報を変更するために、一旦通信を中断しなければスイッチングハブ側の設定ができない。そのため、設定変更が、システムの稼働率を低下させる要因となっていた。
また、トランキング機能を持たないスイッチングハブのみを使用してトランキング機能を実現する場合、コンピュータ間でＩＰアドレスやＭＡＣアドレスの情報を交換する等の手段により、使用するＮＩＣを決定することができるが、アドレス情報のみの交換では分散アルゴリズムが限定される。例えば、通信相手装置が１台の場合には、特定のＮＩＣしか使用されず分散できないといった問題があった。
【発明の開示】
本発明はこのような点に鑑みてなされたものであり、トランキング機能を持たないスイッチングハブとの間で柔軟性の高いトランキングを行うことができるコンピュータを提供することを目的とする。
本発明では上記課題を解決するために、図１に示すようなデータ通信負荷分散制御プログラムが提供される。本発明に係るデータ通信負荷分散制御プログラムは、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御部１ｅの機能を実現するものである。このデータ通信負荷分散制御プログラムに基づいて、コンピュータ１が以下の処理を実行する。
コンピュータ１は、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレス、および通信相手のコンピュータ３がコンピュータ１宛に送信するデータを複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット４を生成する（ステップＳ１）。そして、コンピュータ１は、ネットワークを介して接続されている通信相手コンピュータに対し、分散アルゴリズム通知パケット４を送信する（ステップＳ２）。
これにより、コンピュータ１に実装されている複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレスを他のコンピュータ３に通知し、負荷分散アルゴリズムを指定することができる。
また、上記課題を解決するために、図１に示すような負荷分散データ送信プログラムが提供される。本発明に係る負荷分散データ送信プログラムは、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄを実装可能な通信相手のコンピュータ１までの伝送路の通信負荷を分散させるための負荷分散データ送信部３ｂの機能を実現するものである。この負荷分散データ送信プログラムに基づいて、コンピュータ３は以下の処理を実行する。
コンピュータ３は、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレス、およびコンピュータ１宛に送信するデータを複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット４を受信すると、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレスと分散アルゴリズムとをデータテーブル３ｃに格納する。次に、コンピュータ３は、通信相手コンピュータに対して送信する送信データ５の宛先とすべき通信インタフェースを分散アルゴリズムに従って決定する。さらに、コンピュータ３は、宛先に決定された通信インタフェースの物理アドレスを宛先として指定し、送信データ５を送信する。
これにより、コンピュータ３から通信相手コンピュータに対して送信する送信データ５は、分散アルゴリズム通知パケット４で指定された分散アルゴリズムで複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄそれぞれを介した伝送路へ負荷を分散して送信される。
また、上記課題を解決するために、複数の通信インタフェースを実装可能なコンピュータにおける伝送路の通信負荷を分散させるためのデータ通信負荷分散制御方法において、前記複数の通信インタフェースの物理アドレス、および通信相手コンピュータが前記コンピュータ宛に送信するデータを前記複数の通信インタフェースに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケットを生成し、ネットワークを介して接続されている前記通信相手コンピュータに対し、前記分散アルゴリズム通知パケットを送信する、処理を実行させることを特徴とするデータ通信負荷分散制御方法が提供される。
このようなデータ通信負荷分散制御方法によれば、コンピュータに実装されている複数の通信インタフェースの物理アドレスを他のコンピュータに通知し、負荷分散アルゴリズムを指定することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】  図１は、実施の形態に適用される発明の概念図である。
図２は、本発明を適用したシステムの構成例を示す図である。
図３は、トランキング機構部の内部構成を示す図である。
図４は、サーバコンピュータのハードウェア構成例を示す図である。
図５は、データ通信処理手順を示すフローチャートである。
図６は、分散アルゴリズム通知処理を示す概念図である。
図７は、分散アルゴリズム通知パケットのためのフレーム構成を示す図である。
図８は、分散アルゴリズム通知パケットのデータ部の内容例を示す図である。
図９は、サーバコンピュータ側の分散アルゴリズムテーブルのデータ構造例を示す図である。
図１０は、分散アルゴリズム通知パケットに応じた分散アルゴリズムテーブルの登録例を示す図である。
図１１は、サーバコンピュータから送信するデータの負荷分散処理状況を示す図である。
図１２は、クライアントコンピュータから送信するデータの負荷分散処理状況を示す図である。
図１３は、第２の実施の形態のシステム構成例を示す図である。
図１４は、第２の実施の形態に係る分散アルゴリズムテーブルのデータ構造例を示す図である。
図１５は、第２の実施の形態におけるシステム起動時の処理手順を示すフローチャートである。
図１６は、複数のサーバコンピュータを用いたときのデータ送信手順を示す図である。
図１７は、複数のサーバコンピュータを用いた場合のデータ送信状況を示す図である。
図１８は、ＮＩＣを１枚増設する場合の原理説明図である。
図１９は、ＮＩＣ追加時の分散アルゴリズムテーブル更新手順を示すフローチャートである。
図２０は、ＮＩＣを１枚削除する場合の原理説明図である。
図２１は、従来のトランキングシステムの構成例を示す図である。
【発明を実施するための最良の形態】  以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。本発明は、コンピュータ１とコンピュータ３の間のデータ通信に適用される。コンピュータ１は、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄを有している。各通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレスは、それぞれ「ａ」、「ｂ」、「ｃ」、「ｄ」である。通信インタフェース１ａ，１ｂ，１ｃ，１ｄは、それぞれ個別の伝送路でスイッチングハブ２に接続されている。
更にコンピュータ１は、データ通信負荷分散制御プログラムを実行することで、データ通信負荷分散制御部１ｅの機能が構築される。データ通信負荷分散制御部１ｅは、伝送路の通信負荷を分散させる機能を有している。具体的には、データ通信負荷分散制御部１ｅは、以下の処理を実効する。
データ通信負荷分散制御部１ｅは、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレス、および通信相手のコンピュータ３がコンピュータ１宛に送信するデータを複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット４を生成する（ステップＳ１）。そして、データ通信負荷分散制御部１ｅは、ネットワークを介して接続されている通信相手のコンピュータ３に対し、分散アルゴリズム通知パケット４を送信する（ステップＳ２）。
これにより、コンピュータ１に実装されている複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレスを他のコンピュータ３に通知し、負荷分散アルゴリズムを指定することができる。
一方、コンピュータ３は、通信インタフェース３ａを有しており、この通信インタフェース３ａがスイッチングハブ２に接続されている。また、コンピュータ３は、分散負荷データ送信プログラムを実行することで、コンピュータ１までの伝送路の通信負荷を分散させるための負荷分散データ送信部３ｂの機能を実現する。具体的には、負荷分散データ送信部３ｂは、以下の処理を実行する。
負荷分散データ送信部３ｂは、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレス、およびコンピュータ１宛に送信するデータを複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄに分散させる場合の分散アルゴリズムを含む分散アルゴリズム通知パケット４を受信すると、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレスと分散アルゴリズムとをデータテーブル３ｃに格納する。図１の例では、物理アドレス「ａ，ｂ，ｃ，ｄ」、分散アルゴリズム「ラウンドロビン」が登録されている。
次に、負荷分散データ送信部３ｂは、通信相手コンピュータに対して送信する送信データ５の宛先とすべき通信インタフェースを分散アルゴリズムに従って決定する。さらに、コンピュータ３は、決定された通信インタフェースの物理アドレスを宛先として指定し、送信データ５を送信する。たとえば、送信データ５が４つに分割され、最初のデータ５ａは、宛先として物理アドレス「ａ」が指定されて送信される。これにより、データ５ａは、スイッチングハブ２において通信インタフェース１ａに転送される。２つ目のデータ５ｂは、宛先として物理アドレス「ｂ」が指定されて送信される。これにより、データ５ｂは、スイッチングハブ２において通信インタフェース１ｂに転送される。３つ目のデータ５ｃは、宛先として物理アドレス「ｃ」が指定されて送信される。これにより、データ５ｃは、スイッチングハブ２において通信インタフェース１ｃに転送される。４つ目のデータ５ｄは、宛先として物理アドレス「ｄ」が指定されて送信される。これにより、データ５ｄは、スイッチングハブ２において通信インタフェース１ｄに転送される。
これにより、コンピュータ３から通信相手コンピュータに対して送信する送信データ５は、分散アルゴリズム通知パケット４で指定された分散アルゴリズムで複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄそれぞれを介した伝送路へ負荷を分散して送信される。
このように、コンピュータ１側からコンピュータ３へ、分散アルゴリズム通知パケット４により、複数の通信インタフェース１ａ，１ｂ，１ｃ，１ｄの物理アドレスと分散アルゴリズムとを通知し、コンピュータ３において、分散アルゴリズムに従って決定された通信インタフェースの物理アドレス宛に送信データ５を送信するようにした。そのため、スイッチングハブ２にトランキング機能が無くても、複数の伝送路を用いたトランキングが可能となる。その結果、柔軟性の高いネットワークシステムを構築することができる。
しかも、スイッチングハブ２にトランキング機構が不要であるため、安価なスイッチングハブ２を使用できる。また、分散アルゴリズムをコンピュータ１側から通知するため、アルゴリズムの変更や、通信インタフェースの増減への対応が容易である。
また、コンピュータ１の通信相手となるコンピュータ３が複数存在した場合、それぞれに個別の分散アルゴリズムを通知することで、通信相手のコンピュータ毎に、通信に使用する通信インタフェースを分けることが出来る。
さらに、コンピュータ３において送信相手の通信インタフェースを決定するため、ＯＳＩ階層モデルにおけるネットワーク層やさらに上位のプロトコルを参照して送信相手の通信インタフェースを決定することも可能である。たとえば、通信に使用されるアプリケーションの種別に応じて、送信相手の通信インタフェースを決定することもできる。
以下、図１に示した構成をサーバクライアントシステムに適用した場合の実施の形態について具体的に説明する。
［第１の実施の形態］
まず、本発明の第１の実施の形態について説明する。なお、以下の説明において、データリンク層でのデータ送信を説明するときには、信号の単位を特にフレームと呼ぶこととする。
図２は、本発明を適用したシステムの構成例を示す図である。サーバコンピュータ１００には、スイッチングハブ２００を介して複数のクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃが接続されている。
サーバコンピュータ１００内には、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）サーバ１１０、トランキング機構部１２０、およびＮＩＣ１３１〜１３４が設けられている。
ＷＷＷサーバ１１０は、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃ内のＷｅｂブラウザ３１０，３１０ａ，３１０ｂ，３１０ｃからの要求に応答して、様々なコンテンツを提供する。なお、サーバコンピュータ１００のノード名は「ｈｏｓｔＡ」である。また、クライアントコンピュータ３００のノード名は「ｈｏｓｔＢ」、クライアントコンピュータ３００ａのノード名は「ｈｏｓｔＣ」、クライアントコンピュータ３００ｂのノード名は「ｈｏｓｔＤ」、クライアントコンピュータ３００ｃのノード名は「ｈｏｓｔＥ」である。
トランキング機構部１２０は、ＷＷＷサーバ１１０とＮＩＣ１３１〜１３４との間に設けられている。トランキング機構部１２０は、複数のＮＩＣ１３１〜１３４束ねて、論理的な高通信帯域を確保している。そして、トランキング機構部１２０は、ＷＷＷサーバ１１０からクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃ宛に送信するデータを含むパケットを生成し、複数のＮＩＣ１３１〜１３４の何れか１つを選択して送信する。
なお、トランキング機構部１２０は、分散アルゴリズムテーブル１２１を有している。分散アルゴリズムテーブル１２１には、データ送信の際の負荷分散のアルゴリズムが定義されている。そして、トランキング機構部１２０は、分散アルゴリズムテーブル１２１を参照し、ＮＩＣ１３１〜１３４それぞれを介した通信の負荷が均等になるように、パケットの送信に使用するＮＩＣを選択する。すなわち、負荷分散が行われる。負荷分散は、たとえば、ラウンドロビン方式によって行われる。
また、トランキング機構部１２０は、サーバコンピュータ１００の起動時に、各クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに対して分散アルゴリズム通知パケットを送信する。分散アルゴリズム通知パケットは、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃがサーバコンピュータ１００宛にパケットを送信する際に宛先として指定すべき物理アドレス（ＭＡＣアドレス）の選択アルゴリズムを指定する情報である。どのような分散アルゴリズムを通知するのかは、分散アルゴリズムテーブル１２１に定義されている。なお、分散アルゴリズム通知パケットには、サーバコンピュータ１００の各ＮＩＣ１３１〜１３４のＭＡＣアドレスも含まれる。
ＮＩＣ１３１〜１３４は、ＬＡＮケーブル等によりスイッチングハブ２００に接続されている。ＮＩＣ１３１〜１３４は、スイッチングハブ２００との間でのフレームの送受信を行う。また、各ＮＩＣ１３１〜１３４には、個別のＭＡＣアドレスが設定されている。図２の例では、ＮＩＣ１３１のＭＡＣアドレスは「ａ」であり、ＮＩＣ１３２のＭＡＣアドレスは「ｂ」であり、ＮＩＣ１３３のＭＡＣアドレスは「ｃ」であり、ＮＩＣ１３４のＭＡＣアドレスは「ｄ」である。
スイッチングハブ２００は、複数のＬＡＮポート２１１〜２１４，２２１〜２２４を有しており、ＬＡＮポートから入力されたフレームを、そのフレームの宛先のＭＡＣアドレスに対応するＮＩＣが接続されたＬＡＮポートへ転送する。ＬＡＮポート２１１〜２１４は、それぞれＬＡＮケーブルを介してサーバコンピュータ１００のＮＩＣ１３１〜１３４に接続されている。また、ＬＡＮポート２２１〜２２４は、それぞれＬＡＮケーブルを介してクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに接続されている。
複数のクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃは、それぞれＷｅｂブラウザ３１０，３１０ａ，３１０ｂ，３１０ｃを有している。Ｗｅｂブラウザ３１０，３１０ａ，３１０ｂ，３１０ｃは、ユーザからの操作入力に応答して、ＷＷＷサーバ１１０が提供するコンテンツの取得要求を出力する。
また、クライアントコンピュータ３００内には、トランキング機構部３２０とＮＩＣ３３１とが設けられている。
トランキング機構部３２０は、Ｗｅｂブラウザ３１０とＮＩＣ３３１との間に設けられている。トランキング機構部３２０は、Ｗｅｂブラウザ３１０から出力されたコンテンツの取得要求を含むフレームをＮＩＣ３３１経由で送信する。
なお、トランキング機構部３２０は、分散アルゴリズムテーブル３２１を有している。分散アルゴリズムテーブル３２１は、サーバコンピュータ１００に対して送信するデータを複数のＮＩＣ１３１〜１３４に負荷分散させるためのアルゴリズムが定義されている。分散アルゴリズムテーブル３２１は、サーバコンピュータ１００のトランキング機構部１２０からブロードキャストで配信された分散アルゴリズム通知パケットに基づいて設定される。
トランキング機構部３２０は、データを送信する際、分散アルゴリズムテーブル３２１に基づいて、サーバコンピュータ１００に対して送信するフレームの宛先ＭＡＣアドレスを決定する。たとえば、ラウンドロビン方式によって、複数のＮＩＣ１３１〜１３４それぞれに均等にフレーム送信が行われるようにＭＡＣアドレスが決定される。
ＮＩＣ３３１は、ＬＡＮケーブルを介してスイッチングハブ２００のＬＡＮポート２２１に接続されており、スイッチングハブ２００との間でフレームの送受信を行う。ＮＩＣ３３１のＭＡＣアドレスは、「ｘ」である。
次に、サーバコンピュータ１００のトランキング機構部１２０とクライアントコンピュータ３００のトランキング機構部３２０との内部構成について説明する。
図３は、トランキング機構部の内部構成を示す図である。サーバコンピュータ１００のトランキング機構部１２０は、分散アルゴリズムテーブル１２１、分散アルゴリズム通知部１２２、送信データ負荷分散処理部１２３、および受信データ受け渡し部１２４を有している。
分散アルゴリズムテーブル１２１には、クライアントコンピュータ３００との間のデータ通信に適用する負荷分散アルゴリズムが定義されている。
分散アルゴリズム通知部１２２は、分散アルゴリズムテーブル１２１を参照し、クライアントコンピュータ３００に対して、クライアントコンピュータ３００からサーバコンピュータ１００へ送信するデータに関する分散アルゴリズムを通知する。分散アルゴリズムは、分散アルゴリズム通知パケット２０により通知される。
送信データ負荷分散処理部１２３は、送信データ１１１を受け取ると、分散アルゴリズムテーブル１２１を参照し、送信相手となるクライアントコンピュータ３００に応じた分散アルゴリズムを決定する。そして、送信データ負荷分散処理部１２３は、決定した分散アルゴリズムに従って、送信データ１１１を複数のＮＩＣ１３１〜１３４に振り分けて送信する。
受信データ受け渡し部１２４は、クライアントコンピュータ３００から受け取ったデータをＷＷＷサーバ１１０に渡す。なお、受信データ受け渡し部１２４は、受信データが分散処理により分割転送され、複数のＮＩＣ１３１〜１３４から入力された場合、分割されたデータを連結してＷＷＷサーバ１１０に渡す。
クライアントコンピュータ３００のトランキング機構部３２０は、分散アルゴリズムテーブル３２１、分散アルゴリズム取得部３２２、送信データ負荷分散処理部３２３、および受信データ受け渡し部３２４を有している。
分散アルゴリズムテーブル３２１には、サーバコンピュータ１００との間のデータ通信に適用する負荷分散アルゴリズムが定義されている。
分散アルゴリズム取得部３２２は、サーバコンピュータ１００から送られてくる分散アルゴリズム通知パケット２０を受け取り、分散アルゴリズムテーブル３２１の内容を更新する。
送信データ負荷分散処理部３２３は、送信データ３１１を受け取ると、分散アルゴリズムテーブル３２１を参照し、送信相手となるサーバコンピュータ１００に応じた分散アルゴリズムを決定する。そして、送信データ負荷分散処理部３２３は、決定した分散アルゴリズムに従って、送信データ３１１を構成する複数のデータの宛先ＭＡＣアドレスを複数のＮＩＣ１３１〜１３４に振り分けて送信する。
受信データ受け渡し部３２４は、サーバコンピュータ１００から受け取ったデータをＷｅｂブラウザ３１０に渡す。なお、受信データ受け渡し部３２４は、受信データが分散処理により分割転送され、複数のＮＩＣ１３１〜１３４経由で転送された場合、分割されたデータを連結してＷｅｂブラウザ３１０に渡す。
なお、図２、図３では、クライアントコンピュータ３００の構成のみが詳細に示されているが、他のクライアントコンピュータ３００ａ，３００ｂ，３００ｃも同様の構成である。
このような構成のシステムにより、複数のクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃのＷｅｂブラウザ３１０，３１０ａ，３１０ｂ，３１０ｃからのコンテンツ取得要求がスイッチングハブ２００経由でサーバコンピュータ１００に送られる。すると、サーバコンピュータ１００内のＷＷＷサーバ１１０により、要求されたコンテンツが配信される。
このとき、サーバコンピュータ１００とスイッチングハブ２００との間が複数のＬＡＮケーブルで接続されているため、１つの伝送路で接続した場合の４倍の帯域幅を得ることができる。たとえば、１つの伝送路が１００Ｍｂｐｓの帯域幅を有していれば、サーバコンピュータ１００とスイッチングハブ２００との間で４００Ｍｂｐｓの速度での通信が可能となる。これにより、複数のクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃからサーバコンピュータ１００への同時アクセスに伴う高負荷に耐えることができる。
しかも、サーバコンピュータ１００からクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃへ送信するデータは、トランキング機構部１２０により各ＮＩＣ１３１〜１３４にバランスよく振り分けられるため、１つの回線に通信量が偏ることがない。また、クライアントコンピュータ３００からサーバコンピュータ１００へ送信するデータの宛先は、トランキング機構部３２０によってＮＩＣ１３１〜１３４にバランスよく振り分けられるため、１つの回線に通信量が偏ることがない。
図４は、サーバコンピュータのハードウェア構成例を示す図である。サーバコンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および複数のＮＩＣ１３１〜１３４が接続されている。
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。ＮＩＣ１３１〜１３４は、それぞれスイッチングハブ２００に接続されている。
以上のようなハードウェア構成によって、第１の実施の形態の処理機能を実現することができる。なお、図４には、サーバコンピュータ１００のハードウェア構成を示したが、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃも同様のハードウェア構成で実現できる。ただし、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃには、ＮＩＣは１つあればよい。
次に、サーバコンピュータ１００とクライアントコンピュータ３００との間の通信を例により、データ通信を行うための処理について説明する。
図５は、データ通信処理手順を示すフローチャートである。図５には、左側にサーバコンピュータ１００の処理が示されており、右側にクライアントコンピュータ３００の処理が示されている。以下、図５に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］クライアントコンピュータ３００は、分散アルゴリズム通知パケット２０の受信を待つ。
［ステップＳ１２］サーバコンピュータ１００は、システムの起動時等に、分散アルゴリズム通知パケット２０を、ブロードキャストフレームで送信する。
［ステップＳ１３］サーバコンピュータ１００は、その後、クライアントコンピュータ３００からの応答を待つ。
［ステップＳ１４］クライアントコンピュータ３００は、分散アルゴリズム通知パケットを受信したか否かを判断する。分散アルゴリズム通知パケットを受信した場合、処理がステップＳ１５に進められる。分散アルゴリズム通知パケットを受信していない場合、処理がステップＳ１１に進められ、引き続き分散アルゴリズム通知パケット２０の受信を待つ。
［ステップＳ１５］クライアントコンピュータ３００は、サーバコンピュータ１００から送られた分散アルゴリズム通知パケット２０から分散アルゴリズムに関する情報を抽出し、分散アルゴリズムテーブル３２１に取り込む。
［ステップＳ１６］クライアントコンピュータ３００は、サーバコンピュータ１００に対して、分散アルゴリズム通知パケットに関する応答を送信する。
［ステップＳ１７］サーバコンピュータ１００は、一定時間内に応答を受信したか否かを判断する。一定時間内に応答を受信した場合、処理がステップＳ１８に進められる。一定時間内に応答を受信しなかった場合、処理がステップＳ１２に進められ、再度、分散アルゴリズム通知パケット２０が送信される。
［ステップＳ１８］サーバコンピュータ１００は、応答内容を確認し、通信相手のＭＡＣアドレスを含む情報を分散アルゴリズムテーブル１２１に追加する。
［ステップＳ１９］サーバコンピュータ１００は、クライアントコンピュータ３００との通信を開始する。
［ステップＳ２０］クライアントコンピュータ３００は、サーバコンピュータ１００との通信を開始する。
［ステップＳ２１］サーバコンピュータ１００は、分散アルゴリズムに従ってデータを送信する。
［ステップＳ２２］クライアントコンピュータ３００は、分散アルゴリズムに従ったデータを送信する。
このようにして、サーバコンピュータ１００からクライアントコンピュータ３００へ分散アルゴリズム通知パケットが送信され、分散アルゴリズムが通知される。その結果、クライアントコンピュータ３００側でもサーバコンピュータ１００のＮＩＣの構成を認識に、それらのＮＩＣに負荷分散させたデータ送信が可能となる。
図６は、分散アルゴリズム通知処理を示す概念図である。トランキング機構部１２０内の分散アルゴリズム通知部１２２は、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃとの通信に先立ち、分散アルゴリズム通知パケット２０を生成し、任意のＮＩＣを介してイーサネット（登録商標）のフレームに載せて、ブロードキャストで送信する。これにより、分散アルゴリズム通知パケット２０が各クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに渡される。例えば、ラウンドロビン方式による受信分散を行いたい場合、自分宛のデータはＮＩＣ１３１〜１３４を、ラウンドロビン方式を使って送信するように、分散アルゴリズム通知パケット２０を送信する。
また、分散アルゴリズム通知パケット２０を受け取ったクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃからは、応答パケットがサーバコンピュータ１００に送信される。
ここで、分散アルゴリズムの通知および応答等を行う際のフレーム構成について説明する。
図７は、分散アルゴリズム通知パケットのためのフレーム構成を示す図である。フレーム３０は、相手ＭＡＣアドレス３１、自ＭＡＣアドレス３２、プロトコル識別子３３、コマンド部３４、およびデータ部３５で構成される。
相手ＭＡＣアドレス３１は、フレームの送信先を示すＭＡＣアドレスの設定領域である。分散アルゴリズム通知パケット２０の場合、ブロードキャスト転送を示す値「ＦＦ−ＦＦ−ＦＦ−ＦＦ−ＦＦ−ＦＦ」が設定される。クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃのＮＩＣのＭＡＣアドレスが既知となった後に、分散アルゴリズムの追加等を行う場合、相手ＭＡＣアドレス３１には、送信相手のＮＩＣのＭＡＣアドレスが設定される。複数の分散アルゴリズム通知パケット２０を送信することもできる。
自ＭＡＣアドレス３２には、サーバコンピュータ１００自身のＮＩＣのＭＡＣアドレスが設定される。サーバコンピュータ１００は、任意のＮＩＣを選択して分散アルゴリズム通知パケット２０を送信するための、その選択されたＮＩＣのＭＡＣアドレスが、自ＭＡＣアドレス３２に設定される。
プロトコル識別子３３には、分散アルゴリズム通知パケットであることを表す識別子が設定される。クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃ側では、プロトコル識別子を確認することで、受信したパケットが分散アルゴリズム通知パケット２０であることを認識する。
コマンド部３４には、情報パケットの種別が設定される。種別には、広報、追加、削除、および応答がある。
パケット種別「広報」は、分散アルゴリズムデータの広報（ブロードキャスト）であることを示している。システム運用開始時は、コマンド部２４に「広報」を設定した分散アルゴリズム通知パケット２０が送信される。コマンド部３４に「広報」と設定されたフレームは、サーバコンピュータ１００からクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに送信される。
パケット種別「追加」は、分散アルゴリズムデータの追加指示であることを示している。コマンド部３４に「追加」と設定されたフレームは、サーバコンピュータ１００からクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに送信される。
パケット種別「削除」は、分散アルゴリズムデータの削除指示であることを示している。コマンド部３４に「削除」と設定されたフレームは、サーバコンピュータ１００からクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに送信される。
パケット種別「応答」は、広報、追加、削除指示に対する応答であることを示している。コマンド部３４に「応答」と設定されたフレームは、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃからサーバコンピュータ１００に送信される。
データ部３５には、分散アルゴリズムデータの内容が設定される。具体的には、サーバコンピュータ１００のノード名、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃのノード名、アプリケーション名、分散アルゴリズム、サーバコンピュータ１００のＮＩＣ１３１〜１３４のＭＡＣアドレス等の情報がデータ部３５に設定される。なお、サーバコンピュータ１００が複数のコンピュータで構成されるクラスタ構成の場合、ＮＩＣ１３１〜１３４のＭＡＣアドレスへの付帯情報として、そのＮＩＣが実装されているコンピュータのノード名が追加される。
なお、データ部３５の内容は、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃ毎のリスト構造になっており、各クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃは自分に対応する情報のみを抽出して、分散アルゴリズムテーブルに設定する。
イーサネット（登録商標）の場合、それぞれのＮＩＣ１３１〜１３４はＭＡＣアドレスと呼ばれる一意のネットワークアドレスを持っている。そのため、各クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃは、サーバコンピュータ１００から通知された４枚のＮＩＣ１３１〜１３４のＭＡＣアドレス宛にイーサネットフレームをラウンドロビン方式で送信することで、スイッチングハブ２００がトランキング機能を持っていなくても、スイッチングハブ２００によるトランキング機能と同等の分散処理が可能となる。
ここで、もしＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）等のインターネットプロトコルを使用してクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃへアドレス情報を通知した場合、通知できるＭＡＣアドレスは１つのみである。また、ＡＲＰでは、分散アルゴリズム情報は通知できない。そのため、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃそれぞれからサーバコンピュータ１００へ送信するデータにおいて使用可能なＮＩＣは１枚のみとなってしまう。例えば、１台のクライアントコンピュータ３００から大量のデータがサーバコンピュータ１００に送信される場合、受信データは４枚中、特定の１枚しか使用されずトランキングは実行されない。第１の実施の形態では、このような場合であっても、トランキングによる負荷分散が可能である。
図８は、分散アルゴリズム通知パケットのデータ部の内容例を示す図である。図８は、ｆｔｐ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）によるファイル転送を、ラウンドロビンによって負荷分散する場合のデータ部３５の例である。
データ部３５には、自ノード名、相手ノード名、アプリケーション名、使用アルゴリズムおよび使用ＮＩＣのＭＡＣアドレスが、相手ノード名毎に設定されている。自ノード名は「ｈｏｓｔＡ」である。相手ノード名は、「ｈｏｓｔＢ」、「ｈｏｓｔＣ」、「ｈｏｓｔＤ」、「ｈｏｓｔＥ」である。アプリケーション名は「ｆｔｐ」である。使用アルゴリズムは「ラウンドロビン」である。ＭＡＣアドレスの項目には、ＮＩＣ１３１〜１３４それぞれのＭＡＣアドレス「ａ」、「ｂ」、「ｃ」、「ｄ」が設定される。
このような分散アルゴリズム通知パケット２０等により分散アルゴリズムがクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに通知されると、通知された内容が分散アルゴリズムテーブルに追加される。その結果、サーバコンピュータ１００とクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃとの双方に分散アルゴリズムテーブルが構築され、分散アルゴリズムテーブルに従った負荷分散が行われる。
図９は、サーバコンピュータ側の分散アルゴリズムテーブルのデータ構造例を示す図である。分散アルゴリズムテーブル１２１には、自ノード名、相手ノード名、アプリケーション名、アルゴリズム、自ＮＩＣ、相手ＮＩＣ、およびフラグの欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられ、レコードを構成している。
自ノード名は、サーバコンピュータ１００のノード名（たとえばＩＰアドレス）である。
相手ノード名は、通信する相手のクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃのノード名（たとえば、ＩＰアドレス）である。
アプリケーション名は、分散対象となるアプリケーションの名称（ｔｅｌｎｅｔ，ｆｔｐ等である。
アルゴリズムは、アプリケーション名で指定したアプリケーションのデータ送受信を行う際に使用する分散アルゴリズム（たとえば、ラウンドロビン、固定ＮＩＣ、ＴＣＰコネクション数均等分散等）である。
自ＮＩＣは、サーバコンピュータ１００のＮＩＣ１３１〜１３４のＭＡＣアドレスである。自ＮＩＣが複数存在する場合は、カンマで区切って、リスト形式で表される。
相手ＮＩＣは、相手側であるクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃのＮＩＣのＭＡＣアドレス（複数ある場合はリスト形式で格納）である。
フラグは、レコードのテーブル情報の有効／無効を示している。フラグが有効の場合、分散アルゴリズムの交換が完了し、通信可状態であることを示す。フラグが無効の場合、分散アルゴリズムの交換が未完了であり、通信不可状態であることを示す。
このようなテーブル構造により、相手ノード毎の分散アルゴリズム、あるいは使用するＮＩＣの指定が可能となる。また、アプリケーション毎の分散アルゴリズム、あるいは使用するＮＩＣの指定が可能となる。
なお、図９には、サーバコンピュータ１００側の分散アルゴリズムテーブル１２１を示したが、クライアントコンピュータ３００側の分散アルゴリズムテーブル３２１も同様のデータ構造である。クライアントコンピュータ３００はＮＩＣ３３１が１つだけであるため、自ＮＩＣには１つのＭＡＣアドレスが設定され、相手ＮＩＣにはサーバコンピュータ１００内のＮＩＣ１３１〜１３４のＭＡＣアドレスが設定される。
図１０は、分散アルゴリズム通知パケットに応じた分散アルゴリズムテーブルの登録例を示す図である。図１０に示すように、まず、サーバコンピュータ１００からクライアントコンピュータ３００へ、広報の分散アルゴリズム通知パケット２０ａが送信される。図１０の例では、自ノード名「ｈｏｓｔＡ」、相手ノード名「ｈｏｓｔＢ」、アプリケーション名「ｆｔｐ」、アルゴリズム「ラウンドロビン」、自ＮＩＣ「ａ，ｂ，ｃ，ｄ」である。
この分散アルゴリズム通知パケット２０ａを受け取ったクライアントコンピュータ３００は、分散アルゴリズム通知パケット２０ａの自ノード名と相手ノード名を入れ替え、自ＮＩＣを相手ＮＩＣとして、分散アルゴリズムテーブル３２１に登録する。次に、クライアントコンピュータ３００は、登録したレコードの自ＮＩＣに自分のＮＩＣ３３１のＭＡＣアドレス「ｘ」を設定し、フラグを「有効」にする。そして、クライアントコンピュータ３００は、自分のＮＩＣ３３１のＭＡＣアドレス「ｘ」を含む応答の分散アルゴリズム通知パケット２０ｂをサーバコンピュータ１００に送信する。
サーバコンピュータ１００では、応答の分散アルゴリズム通知パケット２０ｂを受け取ると、分散アルゴリズム通知パケット２０ａの内容に、相手ＮＩＣ「ｘ」、フラグ「有効」を追加したレコードを分散アルゴリズムテーブル１２１に登録する。
このようにして構築された分散アルゴリズムテーブルに基づいて、サーバコンピュータ１００とクライアントコンピュータ３００との間で負荷を分散させたデータ通信が行われる。
図１１は、サーバコンピュータから送信するデータの負荷分散処理状況を示す図である。この例では、ラウンドロビンの分散アルゴリズムに従って負荷分散が行われている。ラウンドロビン方式の場合、複数のＮＩＣ１３１〜１３４に対して、所定の順番でデータが割り振られる。たとえば、ＮＩＣ１３１、ＮＩＣ１３２、ＮＩＣ１３３、ＮＩＣ１３４の順番である。ＮＩＣ１３４の次は、ＮＩＣ１３１にデータが割り振られる。
ＷＷＷサーバ１１０からクライアントコンピュータ３００宛の送信データ１１１がトランキング機構部１２０に渡される。ここで、送信データ１１１は、６つのデータに分割して送信されるものとする。ここで、分割されたデータを「Ｄ１」、「Ｄ２」、「Ｄ３」、「Ｄ４」、「Ｄ５」、「Ｄ６」とする。
送信データ１１１は、トランキング機構部１２０によって、ラウンドロビン方式で複数のＮＩＣ１３１〜１３４に振り分けられる。その結果、「Ｄ１」のデータは、ＮＩＣ１３１を介してクライアントコンピュータ３００に送信される。「Ｄ２」のデータは、ＮＩＣ１３２を介してクライアントコンピュータ３００に送信される。「Ｄ３」のデータは、ＮＩＣ１３３を介してクライアントコンピュータ３００に送信される。「Ｄ４」のデータは、ＮＩＣ１３４を介してクライアントコンピュータ３００に送信される。「Ｄ５」のデータは、ＮＩＣ１３１を介してクライアントコンピュータ３００に送信される。「Ｄ６」のデータは、ＮＩＣ１３６を介してクライアントコンピュータ３００に送信される。
このようにして、サーバコンピュータ１００からクライアントコンピュータ３００宛の送信データ１１１が伝送路の負荷を分散させてスイッチングハブ２００に渡され、その後、クライアントコンピュータ３００に渡される。
図１２は、クライアントコンピュータから送信するデータの負荷分散処理状況を示す図である。この例では、ラウンドロビンの分散アルゴリズムに従って負荷分散が行われている。
クライアントコンピュータ３００からＷＷＷサーバ１１０宛の送信データ３１１がトランキング機構部３２０に渡される。ここで、送信データ３１１は、４つのデータに分割して送信されるものとする。ここで、分割されたデータを「Ｄ１１」、「Ｄ１２」、「Ｄ１３」、「Ｄ１４」とする。
送信データ３１１は、トランキング機構部３２０によって、ラウンドロビン方式で複数のＮＩＣ１３１〜１３４に振り分けられる。振り分けられた各データは、そのデータを送信するフレームの宛先ＭＡＣアドレスに、振り分け対象のＮＩＣのＭＡＣアドレスが設定される。スイッチングハブ２００は、宛先ＭＡＣアドレスを参照して送出するＬＡＮポートを決定するため、各データは、振り分けられたＮＩＣに対して送信される。図１２の例では「Ｄ１１」のデータは、サーバコンピュータ１００のＮＩＣ１３１に送信される。「Ｄ１２」のデータは、サーバコンピュータ１００のＮＩＣ１３２に送信される。「Ｄ１３」のデータは、サーバコンピュータ１００のＮＩＣ１３３に送信される。「Ｄ１４」のデータは、サーバコンピュータ１００のＮＩＣ１３４に送信される。
このようにして、クライアントコンピュータ３００からサーバコンピュータ１００宛の送信データ３１１がスイッチングハブ２００を介し、複数の伝送路に負荷を分散させてサーバコンピュータ１００に渡される。
以上のようにして、スイッチングハブ２００がトランキング機構を有していなくても、サーバコンピュータ１００とスイッチングハブ２００との間の複数の伝送路に負荷を分散させたデータ通信が可能となる。そのため、トランキングによるシステムを構築する際、トランキングに対応していない任意のスイッチングハブを使用することができ、選択肢の幅が広がる。
また、それぞれのクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃが分散アルゴリズム情報を持つため、１対１の２台の装置間のみの通信であっても、トランキングによる送受信分散が実現でき、トランキング対応スイッチ使用時と全く同等の帯域向上を実現できる。
しかも、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃにおいて負荷分散を管理するため、アプリケーションに応じた分散アルゴリズムを指定できる。すなわち、従来のようにスイッチングハブ２００でトランキング処理を行わせた場合は、スイッチングハブがＯＳＩ階層モデルのデータリンク層で機能するためアプリケーションの判別はできず、アプリケーションに応じたトランキングができなかった。第１の実施の形態では、クライアントコンピュータ３００によりアプリケーションに応じた分散アルゴリズの指定が可能であるため、柔軟性の高いトランキング機構を提供することができる。
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。第２の実施の形態は、複数のサーバコンピュータが協働して動作することでクラスタを構成している場合に、そのシステムに本発明を適用した例である。
図１３は、第２の実施の形態のシステム構成例を示す図である。第２の実施の形態では、２台のサーバコンピュータ１００ａ，１００ｂがシステム間通信パス４０で相互に接続されている。システム間通信パス４０は、ＬＡＮに比べて高速の通信が可能な通信インタフェースである。なお、サーバコンピュータ１００ａ，１００ｂ以外の構成要素は、第１の実施の形態と同様であるため図２に示した第１の実施の形態と同じ符号を付し、説明を省略する。
サーバコンピュータ１００ａは、ＷＷＷサーバ１１０ａ、トランキング機構部１２０ａ、ＮＩＣ１３１ａ，１３２ａを有している。トランキング機構部１２０ａは、分散アルゴリズムテーブル１２１ａを有している。同様に、サーバコンピュータ１００ｂは、トランキング機構部１２０ｂ、ＮＩＣ１３１ｂ，１３２ｂを有している。トランキング機構部１２０ｂは、分散アルゴリズムテーブル１２１ｂを有している。
このように各サーバコンピュータ１００ａ，１００ｂは、それぞれ２枚のＮＩＣ１３１ａ，１３２ａ，１３１ｂ、１３２ｂを持っているが、ハードウェアの仕様制限により、それより多い枚数のＮＩＣは装着できないものとする。
サーバコンピュータ１００ａとサーバコンピュータ１００ｂとのトランキング機構部１２０ａ，１２０ｂは、システム間通信パス４０を通して、トランキングのための分散アルゴリズテーブル１２１ａ，１２１ｂに登録されている制御情報を共有している。
ここで、トランキング機構部１２０ａ，１２０ｂは、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに対して、それぞれＮＩＣ１３１ａ，１３２ａ，１３１ｂ，１３２ｂを使用してデータ送受信を行うようにトランキングの制御情報が登録された分散アルゴリズムテーブルを有している。
図１４は、第２の実施の形態に係る分散アルゴリズムテーブルのデータ構造例を示す図である。分散アルゴリズムテーブル１２１ａのデータ構造は、自ＮＩＣを除き、図９に示した第１の実施の形態の分散アルゴリズムテーブル１２１と同じである。
自ＮＩＣには、複数のサーバコンピュータ１００ａ，１００ｂ双方に実装されているＮＩＣ１３１ａ，１３２ａ，１３１ｂ，１３２ｂのうち、対応するアプリケーションのデータ転送に使用するＮＩＣのＭＡＣアドレスが設定されている。また、自ＮＩＣでは、かっこ内に実装計算機名が設定されている。実装計算機名は、各ＮＩＣを実装しているサーバコンピュータの名称（識別名）である。
このような環境で、ＷＷＷサーバ１１０ａが、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃの４台とラウンドロビン方式によるデータ送受信分散を行いたい場合、システム起動時にサーバコンピュータ１００ａ，１００ｂ間で以下の処理が行われる。
図１５は、第２の実施の形態におけるシステム起動時の処理手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ３１］サーバコンピュータ１００ａのトランキング機構部１２０ａは、第１の実施の形態と同様に分散アルゴリズムテーブル１２１ａを生成する。なお、分散アルゴリズムテーブル１２１ａ自には、トランキング機構部１２０ａは分散アルゴリズム通知パケット２０をブロードキャストで配信するが、このときの分散アルゴリズム通知パケット２０の自ＮＩＣには、サーバコンピュータ１００ａとサーバコンピュータ１００ｂとのＮＩＣ１３１ａ，１３２ａ，１３１ｂ，１３２ｂのＭＡＣアドレスが含まれる。さらに、そのＭＡＣアドレスには、ＮＩＣ１３１ａ，１３２ａ，１３１ｂ，１３２ｂが実装されているサーバコンピュータのノード名が付与される。
［ステップＳ３２］トランキング機構部１２０ａは、サーバコンピュータ１００ａが他のサーバコンピュータと協働してクラスタを構成しているか否かを判断する。複数台のサーバコンピュータで構成される場合、処理がステップＳ３３にすすめられる。１台のサーバコンピュータ１００ａで構成している場合、処理がステップＳ３６に進められる。
［ステップＳ３３］トランキング機構部１２０ａは、専用のシステム間通信パス４０を使用し、分散アルゴリズムテーブル１２１ａの内容をサーバコンピュータ１００ｂへ送信する。
［ステップＳ３４］サーバコンピュータ１００ｂのトランキング機構部１２０ｂは、サーバコンピュータ１００ａから受信した分散アルゴリズムテーブル１２１ａの内容に基づいて、自身の分散アルゴリズムテーブル１２１ｂを生成する。
［ステップＳ３５］トランキング機構部１２０ｂは、サーバコンピュータ１００ａに対して、応答を送信する。
［ステップＳ３６］サーバコンピュータ１００ａは、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃとの間の通信を開始する。
［ステップＳ３７］同様に、サーバコンピュータ１００ｂは、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃとの間の通信を開始する。
このように、システム起動時に分散アルゴリズムテーブルの共通化が行われることで、複数のサーバコンピュータ１００ａ，１００ｂを用いたクラスタシステムによるトランキングが可能となる。トランキングによる負荷分散により以下のようなデータ転送が行われる。
図１６は、複数のサーバコンピュータを用いたときのデータ送信手順を示す図である。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ４１］サーバコンピュータ１００ｂのトランキング機構部１２０ｂは、サーバコンピュータ１００ａからのイベント待ち状態を維持している。
［ステップＳ４２］サーバコンピュータ１００ａのトランキング機構部１２０ａは、ＷＷＷサーバ１１０ａからのイベント待ち状態を維持している。
［ステップＳ４３］何らかのイベントが発生すると、トランキング機構部１２０ａは、発生したイベントがＷＷＷサーバ１１０ａからのデータ送信依頼か否かを判断する。データ送信依頼であれば、処理がステップＳ４５に進められる。データ送信依頼以外のイベントであれば、処理がステップＳ４４に進められる。
［ステップＳ４４］トランキング機構部１２０ａは、発生したイベントに応じたデータ送信以外の処理を実行する。その後、処理がステップＳ４２に進められ再度イベント待ちとなる。
［ステップＳ４５］トランキング機構部１２０ａは、分散アルゴリズムテーブル１２１ａを検索し、送信に使用するＮＩＣを決定する。具体的には、トランキング機構部１２０ａは、分散アルゴリズムテーブル１２１ａを参照し、送信相手、アプリケーション名等から分散アルゴリズムを決定する。そして、決定された分散アルゴリズムに従って、送信に使用するＮＩＣを決定する。
［ステップＳ４６］トランキング機構部１２０ａは、分散アルゴリズムテーブル１２１ａから送信に使用するＮＩＣが実装されているサーバコンピュータの装置名を取り出す。
［ステップＳ４７］トランキング機構部１２０ａは、使用するＮＩＣが、サーバコンピュータ１００ａ自身に実装されたＮＩＣか否かを判断する。サーバコンピュータ１００ａに実装されたＮＩＣであれば、処理がステップＳ４９に進められる。他のサーバコンピュータに実装されたＮＩＣであれば、処理がステップＳ４８に進められる。
［ステップＳ４８］トランキング機構部１２０ａは、システム間通信パス４０を使用し、ＷＷＷサーバ１１０ａからのデータを他のサーバコンピュータ１００ｂへ転送する。その後、サーバコンピュータ１００ａ側の処理が終了し、サーバコンピュータ１００ｂ側のトランキング機構部１２０ｂのステップＳ５０に処理が移行する。
［ステップＳ４９］トランキング機構部１２０ａは、ステップＳ４５で決定されたＮＩＣを介して、データをクライアントコンピュータに送信する。
［ステップＳ５０］サーバコンピュータ１００ｂのトランキング機構部１２０ｂは、自身の分散アルゴリズムテーブル１２１ｂ内を検索し、送信に使用するＮＩＣを決定する。
［ステップＳ５１］トランキング機構部１２０ｂは、ステップＳ５０で決定したＮＩＣを介して、データをクライアントコンピュータへ送信する。
図１７は、複数のサーバコンピュータを用いた場合のデータ送信状況を示す図である。サーバコンピュータ１００ａのＷｅｂアプリケーション１１０ａが送信データ１１１ａをトランキング機構部１２０ａに渡すと、トランキング機構部１２０ａが送信データ１１１ａを複数のデータに分割し、複数のＮＩＣ１３１ａ，１３２ａ，１３１ｂ，１３２ｂに振り分ける。図１７の例では、送信データ１１１ａが４つのデータに分割されるものとし、それぞれのデータを「Ｄ２１」、「Ｄ２２」、「Ｄ２３」、「Ｄ２４」とする。
送信データ１１１は、トランキング機構部１２０によって、ラウンドロビン方式で複数のＮＩＣ１３１ａ，１３２ａ，１３１ｂ，１３２ｂに振り分けられる。その結果、「Ｄ１１」のデータは、ＮＩＣ１３１ａを介してクライアントコンピュータ３００に送信される。「Ｄ２２」のデータは、ＮＩＣ１３２ａを介してクライアントコンピュータ３００に送信される。「Ｄ２３」のデータは、システム間通信パス４０を介してサーバコンピュータ１００ｂのトランキング機構部１２０ｂに送られた後、トランキング機構部１２０ｂで振り分けられＮＩＣ１３１ｂを介してクライアントコンピュータ３００に送信される。「Ｄ２４」のデータは、システム間通信パス４０を介してサーバコンピュータ１００ｂのトランキング機構部１２０ｂに送られた後、トランキング機構部１２０ｂで振り分けられＮＩＣ１３２ｂを介してクライアントコンピュータ３００に送信される。
この後のデータ転送については、再びＮＩＣ１３１ａから順番に使用される。
このようにして、サーバコンピュータ１００ａ，１００ｂからクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃ宛の送信データ１１１ａが負荷分散をさせてスイッチングハブ２００に渡され、その後、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに渡される。
一方、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃからサーバコンピュータ１００ａへ送信するデータの分散処理を行う場合、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃは、通信に先立ってサーバコンピュータ１００ａから送信された分散アルゴリズム通知パケットに基づいて分散方式を判断する。これによりクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃからサーバコンピュータ１００ａに送られるデータが、各ＮＩＣ１３１ａ，１３２ａ，１３１ｂ，１３２ｂに分散して送信される。このときＮＩＣ１３１ｂ，１３２ｂに対して送信されたデータは、トランキング機構部１２０ｂによって、システム間通信パス４０を経由してＷＷＷサーバ１１０ａに渡される。
このように、分散アルゴリズムテーブルの内容を統一しておくことで、複数のサーバコンピュータを用いてトランキング処理を行うことができる。その結果、使用するサーバコンピュータ１００ａのハード仕様（ＮＩＣ実装の上限値）に依存せずに、使用ＮＩＣ枚数を増やしてトランキングを実現することができる。
［第３の実施の形態］
次に、第３の実施の形態について説明する。第３の実施の形態は、システムの運用を停止させずにＮＩＣの追加削除を可能にしたものである。
図１８は、ＮＩＣを１枚増設する場合の原理説明図である。サーバコンピュータ１００ｃは、ＷＷＷサーバ１１０ｃ、トランキング機構部１２０ｃ、ＮＩＣ１３１ｃ，１３２ｃ，１３３ｃ，１３４ｃ、１３５およびＮＩＣ追加／切り離し制御部１４０を有している。トランキング機構部２１０ｃは、分散アルゴリズムテーブル１２１ｃが設けられている。なお、ＮＩＣ１３５は、新たに追加実装されたものである。
サーバコンピュータ１００ｃの管理者は、装着された予備のＮＩＣ１３５を、ＬＡＮケーブルでスイッチングハブ２００に接続する。ここで、スイッチングハブ２００にはトランキングの設定はされていないため、スイッチングハブ２００をリセットすることなく、接続後は直ちに通信に使用することが可能である。言い換えると、トランキング対応のスイッチングハブが使用されていた場合には、設定変更のために、すでに接続されているＮＩＣの通信を一旦停止させる必要がある。
一方、サーバコンピュータ１００ｃは、新たに追加したＮＩＣ１３５をトランキング対象に追加する必要がある。ここで、サーバコンピュータ１００ｃのＮＩＣ追加／切り離し制御部１４０は、ＮＩＣ１３５の追加を自動認識し、ＮＩＣ１３５の追加に応じた情報を分散アルゴリズムテーブル１２１ｃに登録する。なお、ＮＩＣ１３５の追加の自動認識を待たずに、アプリケーションやオペレータからの指示に応じて、分散アルゴリズムテーブル１２１ｃを更新することもできる。
具体的には、ＮＩＣ追加／切り離し制御部１４０は、ＮＩＣ１３５を追加する場合、その内容をプログラム間通信を利用して、トランキング機構部１２０ｃへ通知する。通知を受けたトランキング機構部１２０ｃは、対象のＮＩＣを分散アルゴリズムテーブル１２１ｃ内の分散対象に加える。この際、トランキング機構部１２０ｃは、更新内容を分散アルゴリズム通知パケットによって、各クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃに通知する。以後、トランキング機構部１２０ｃは、データ送信時にＮＩＣ１３５を含めてデータ送信の負荷分散を行う。
また、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃには、分散アルゴリズム通知パケットによってＮＩＣ１３５の追加が通知され、通知内容に従ってクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃ内の分散アルゴリズムテーブルが更新される。したがって、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃからサーバコンピュータ１００ｃに送信するデータに関しても、更新された分散アルゴリズムテーブルに従って、ＮＩＣ１３５を含めてデータ送信の負荷分散が行われる。
以下に、サーバコンピュータ１００ｃとクライアントコンピュータ３００との間の処理を例に採り、ＮＩＣ追加時の分散アルゴリズムテーブル更新手順について説明する。
図１９は、ＮＩＣ追加時の分散アルゴリズムテーブル更新手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
［ステップＳ６１］クライアントコンピュータ３００のトランキング機構部３２０は、分散アルゴリズム通知パケットの受信を待つ。
［ステップＳ６２］サーバコンピュータ１００ｃのＮＩＣ追加／切り離し制御部１４０は、イベントの発生を待つ。
ここで、ＮＩＣ１３５が追加されると、Ｉ／Ｏ割り込みが発生する。
［ステップＳ６３］ＮＩＣ追加／切り離し制御部１４０は、Ｉ／Ｏ割り込みの内容を判断する。ＮＩＣ追加であれば処理がステップＳ６５に進められる。ＮＩＣ追加以外Ｉ／Ｏ割り込みであれば、処理がステップＳ６４に進められる。
［ステップＳ６４］ＮＩＣ追加／切り離し制御部１４０は、Ｉ／Ｏ割り込みに応じた処理を実行し、その後、処理を終了する。
［ステップＳ６５］ＮＩＣ追加／切り離し制御部１４０は、追加されたＮＩＣ１３５の情報をＩ／Ｏテーブルから取り出す。なお、Ｉ／Ｏテーブルは、ＯＳによって管理されているＩ／Ｏ割り込みに応じた情報が定義されたデータテーブルである。そして、ＮＩＣ追加／切り離し制御部１４０は、ＮＩＣの追加をトランキング機構部１２０ｃに指示する。
［ステップＳ６６］トランキング機構部１２０ｃは、パケットの種別を追加とした分散アルゴリズム通知パケットを生成し、クライアントコンピュータ３００に対して送信する。これにより、クライアントコンピュータ３００に対して、追加されたＮＩＣ１３５の情報が通知される。
［ステップＳ６７］トランキング機構部１２０ｃは、応答の受信待ち状態となる。
［ステップＳ６８］クライアントコンピュータ３００のトランキング機構部３２０は、分散アルゴリズム通知パケットの受信の有無を判断する。受信した場合、処理がステップＳ６９に進められる。受信していない場合、処理がステップＳ６１に進められ、引き続きパケットの受信を待つ。
［ステップＳ６９］トランキング機構部３２０は、分散アルゴリズム通知パケットが、新規に実装されたＮＩＣの追加指示か否かを判断する。これは、パケットの種別が「追加」か否かで判断できる。ＮＩＣの追加指示の場合、処理がステップＳ７１に進められる。ＮＩＣの追加指示以外の指示（たとえば、ＮＩＣの削除）の場合、処理がステップＳ７０に進められる。
［ステップＳ７０］トランキング機構部３２０は、分散アルゴリズム通知パケットで指示された処理（ＮＩＣ追加以外の処理）を実行する。その後、処理がステップＳ６１に進められる。
［ステップＳ７１］トランキング機構部３２０は、分散アルゴリズム通知パケットで指示された新規のＮＩＣを自身の分散アルゴリズムテーブル３２１に追加する。
［ステップＳ７２］トランキング機構部３２０は、サーバコンピュータ１００ｃに対して応答のパケットを送信する。
［ステップＳ７３］サーバコンピュータ１００ｃのトランキング機構部１２０ｃは、一定時間内に応答があったか否かを判断する。応答があった場合、処理がステップＳ７４に進められる。応答がない場合、処理がステップＳ６６に進められる。
［ステップＳ７４］トランキング機構部１２０ｃは、応答を確認後、分散アルゴリズムテーブル１２１ｃに、新規に追加されたＮＩＣの情報を追加する。
［ステップＳ７５］サーバコンピュータ１００ｃのトランキング機構部１２０ｃとクライアントコンピュータ３００のトランキング機構部３２０とは、新規に追加されたＮＩＣを通信経路に含めたデータ通信を開始する。
以上のようにして、新規のＮＩＣを追加することができる。この動作は、ＷＷＷサーバ１１０ｃ等のアプリケーションの通信とは独立して並列に実行されるため、それまでやりとりされている他のＮＩＣ１３１ｃ，１３２ｃ，１３３ｃ，１３４ｃ上の通信データには影響がない。しかも、スイッチングハブ側も一旦設定をリセットして再起動する必要もない。そのため、通信を継続させたままの状態で、データ転送帯域を動的に拡張することが可能となる。
ＮＩＣを追加する場合と同様に、運用中にＮＩＣを取り外すことも可能である。
図２０は、ＮＩＣを１枚削除する場合の原理説明図である。サーバコンピュータ１００ｃからＮＩＣ１３５を取り外すと、ＮＩＣ追加／切り離し制御部１４０に対して、Ｉ／Ｏ割り込みによりＮＩＣの切り離しが通知される。なお、サーバコンピュータ１００ｃ等のアプリケーションやオペレータからの操作入力により、ＮＩＣ切り離しの指示をＮＩＣ追加／切り離し制御部１４０に通知することもできる。
ＮＩＣ切り離しの通知を受け取ったＮＩＣ追加／切り離し制御部１４０は、内部のシステム構成情報を更新し、その内容をプログラム間通信を利用して、トランキング機構部１２０ｃへ通知する。通知を受けたトランキング機構部１２０ｃは、該当のＮＩＣ１３５の情報を分散アルゴリズムテーブル１２１ｃから削除することでトランキング対象から外す。その後、サーバコンピュータ１００ｃ側からはＮＩＣ１３５を使用しないで送信分散が行われる。
また、受信に関しては、トランキング機構部１２０ｃからクライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃへ、ＮＩＣ１３５を対象からはずすように更新した分散アルゴリズム通知パケット（パケットの種別が削除）を送信する。これにより、各クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃのトランキング機構部が、内部の分散アルゴリズムテーブルからＮＩＣ１３５の情報を削除する。以後、クライアントコンピュータ３００，３００ａ，３００ｂ，３００ｃからサーバコンピュータ１００ｃに送信されるデータは、ＮＩＣ１３５以外のＮＩＣ１３１ｃ，１３２ｃ，１３３ｃ，１３４ｃが使用される。
その後、スイッチングハブ２００の該当ＬＡＮポートから接続ケーブルを外して、ＮＩＣ１３５の削除が完了する。
この動作は、アプリケーションの通信とは独立して並列に実行されるため、それまでやりとりされている他のＮＩＣ上の通信データには影響がない。また、スイッチングハブ２００側も一旦設定をリセットして再起動する等の必要がないため、通信を継続させたままの状態で、データ転送帯域を動的に縮小することが可能である。
このように、サーバコンピュータ１００ｃの運用を停止させずにＮＩＣの追加実装や取り外しが可能となるため、サーバコンピュータ１００ｃとスイッチングハブ２００との間の帯域幅の調整が容易となる。すなわち、データ通信量が過大となり帯域幅が不足してきた場合、ＮＩＣを追加して、運用を継続したまま帯域幅の拡大が可能となる。
なお、上記の各実施の形態を実現するために、サーバコンピュータが有すべき機能の処理内容を記述したサーバプログラム、およびクライアントコンピュータが有すべき機能の処理内容を記述したクライアントプログラムが提供される。サーバプログラムをコンピュータで実行することにより、上記実施の形態に係るサーバコンピュータの処理機能が実現される。また、クライアントプログラムをコンピュータで実行することにより、上記実施の形態に係るクライアントコンピュータの処理機能が実現される。
処理内容を記述したサーバプログラムやクライアントプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）などがある。
サーバプログラムやクライアントプログラムを流通させる場合には、たとえば、各プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、クライアントプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにクライアントプログラムを転送することもできる。
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。
クライアントプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたクライアントプログラムもしくはサーバコンピュータから転送されたクライアントプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からクライアントプログラムを読み取り、クライアントプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接クライアントプログラムを読み取り、そのクライアントプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからクライアントプログラムが転送される毎に、逐次、受け取ったクライアントプログラムに従った処理を実行することもできる。
以上説明したように本発明では、分散アルゴリズム通知パケットにより複数の通信インタフェースの物理アドレスと分散アルゴリズムとを通信相手コンピュータに通知し、相手のコンピュータにおいて、分散アルゴリズムに従って決定された通信インタフェースの物理アドレス宛に送信データを送信するようにした。これにより、パケットを中継する装置にトランキング機能が無くても、複数の伝送路を用いたトランキングが可能となる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図１】
2004088931.tif 000003
【図２】
2004088931.tif 000004
【図３】
2004088931.tif 000005
【図４】
2004088931.tif 000006
【図５】
2004088931.tif 000007
【図６】
2004088931.tif 000008
【図７】
2004088931.tif 000009
【図８】
2004088931.tif 000010
【図９】
2004088931.tif 000011
【図１０】
2004088931.tif 000012
【図１１】
2004088931.tif 000013
【図１２】
2004088931.tif 000014
【図１３】
2004088931.tif 000015
【図１４】
2004088931.tif 000016
【図１５】
2004088931.tif 000017
【図１６】
2004088931.tif 000018
【図１７】
2004088931.tif 000019
【図１８】
2004088931.tif 000020
【図１９】
2004088931.tif 000021
【図２０】
2004088931.tif 000022
【図２１】
2004088931.tif 000023
【国際調査報告】
2004088931.tif 000024
2004088931.tif 000025