(57)【特許請求の範囲】
【請求項１】
複数の制御要素を備えるモビリティ・ホーム・エージェントで受信される制御トラフィックにロード・バランシングを提供する方法であって、
該モビリティ・ホーム・エージェント向けの制御メッセージを受信するステップと、
該制御メッセージに関する第１のロード・バランシング操作を実施するステップとを含み、該第１のロード・バランシング操作が、第１のロード・バランサ・モジュールを使用して実施され、該第１のロード・バランシング操作が、第１のロード・バランシング・メトリックに基づいて実施されると共に、該複数の制御要素の１つのサブセットを選択するように適合され、さらに、
第２のロード・バランサ・モジュールに向けて該第１のロード・バランシング操作の結果を示す情報と該制御メッセージとを伝播するステップとを含み、該第２のロード・バランサ・モジュールが、該第１のロード・バランサ・モジュールを使用して選択された該複数の制御要素の該１つのサブセットから該複数の制御要素のうちの１つを選択するための第２のロード・バランシング・メトリックに基づいて、該制御メッセージに関する第２のロード・バランシング操作を実施するように適合され、該第２のロード・バランサ・モジュールが、該複数の制御要素のうちの選択した１つに向けて該制御メッセージを伝播するように構成されている方法。
【請求項２】
請求項１に記載の方法において、
該制御メッセージがノードと関連付けられ、該制御メッセージに関するロード・バランシングが、該ノードと、該複数の制御要素のうちの選択した１つとの間のコンテキストを維持するような方式で実施され、それによって、該ノードから受信される後続の制御メッセージが、該複数の制御要素のうちの選択した１つに伝播される方法。
【請求項３】
請求項１に記載の方法において、
該第１のロード・バランサ・モジュールが、ハードウェア・ベースのロード・バランサ・モジュールであり、該第２のロード・バランサ・モジュールが、ソフトウェア・ベースのロード・バランサ・モジュールである方法。
【請求項４】
請求項１に記載の方法において、
該制御メッセージが、該制御要素に関連する転送要素から、該第１のロード・バランサ・モジュールで受信される方法。
【請求項５】
請求項１に記載の方法において、
該第１のロード・バランシング操作及び該第２のロード・バランシング操作のうちの少なくとも一方が、ハッシュ操作、テーブル・ルックアップ操作、負荷ベースの操作、及びランダム選択操作のうちの少なくとも１つを使用して実施される方法。
【請求項６】
請求項１に記載の方法において、
該第１のロード・バランシング・メトリックが、ドメイン名、ホームＩＰアドレス、ソース・アドレス、負荷ベースのメトリック、及びランダム割当てメトリックのうちの少なくとも１つを含む方法。
【請求項７】
請求項１に記載の方法において、
該第２のロード・バランシング・メトリックは、ドメイン名、ホームＩＰアドレス、ソース・アドレス、負荷ベースのメトリック、及びランダム割当てメトリックのうちの少なくとも１つを含む方法。
【請求項８】
複数の制御要素を備えるモビリティ・ホーム・エージェントで受信される制御トラフィックにロード・バランシングを提供する方法であって、
該モビリティ・ホーム・エージェント向けの制御メッセージを受信するステップと、
該制御メッセージに関する第１のロード・バランシング操作を実施するステップとを含み、該第１のロード・バランシング操作が、第１のロード・バランサ・モジュールを使用して実施され、該第１のロード・バランシング操作が、第１のロード・バランシング・メトリックに基づいて実施されると共に、該複数の制御要素の１つのサブセットを選択するように適合され、さらに、
第２のロード・バランサ・モジュールに向けて該制御メッセージと該第１のロード・バランシング操作の結果を示す情報とを伝播するステップと、
該制御メッセージに関する第２のロード・バランシング操作を実施するステップを含み、該第２のロード・バランシング操作が、該第２のロード・バランサ・モジュールを使用して実施され、該第２のロード・バランシング操作が、該第１のロード・バランサ・モジュールを使用して選択された該複数の制御要素の該サブセットから該複数の制御要素のうちに１つを選択するための第２のロード・バランシング・メトリックに基づいて実施され、そして、
該複数の制御要素のうちの該選択された１つに向けて該制御メッセージを伝播するステップを含む方法。
【請求項９】
複数の制御要素を備えるモビリティ・ホーム・エージェントで受信される制御トラフィックにロード・バランシングを提供する装置であって、
該モビリティ・ホーム・エージェント向けの受信した制御メッセージについてロード・バランシングを実行するように構成された第１のロード・バランサ・モジュールを含み、ロード・バランシングを実行するために、該第１のロード・バランシング・モジュールが、
該複数の制御要素の１つのサブセットを選択するための第１のロード・バランシング・メトリックに基づいて、該制御メッセージに関する第１のロード・バランシング操作を実施し、
第２のロード・バランサ・モジュールに向けて該第１のロード・バランシング操作の結果を示す情報及び該制御メッセージを伝播するように構成され、該第２のロード・バランサ・モジュールが、該第１のロード・バランサ・モジュールを使用して選択された該複数の制御要素の該サブセットから該複数の制御要素のうちの１つを選択するための第２のロード・バランシング・メトリックに基づいて、該制御メッセージに関する第２のロード・バランシング操作を実施するように構成され、該第２のロード・バランサ・モジュールが、該複数の制御要素のうちの選択した該１つに向けて該制御メッセージを伝播するように構成される装置。
【請求項１０】
ソフトウェア・プログラムを格納するコンピュータ可読媒体であって、該ソフトウェア・プログラムが、コンピュータで実行されたとき、複数の制御要素を備えるモビリティ・ホーム・エージェントで受信される制御トラフィックにロード・バランシングを提供する方法を該コンピュータに実施させ、
該モビリティ・ホーム・エージェント向けの制御メッセージを受信するステップと、
該制御メッセージに関する第１のロード・バランシング操作を実施するステップとを含み、該第１のロード・バランシング操作が、第１のロード・バランサ・モジュールを使用して実施され、該第１のロード・バランシング操作が、第１のロード・バランシング・メトリックに基づいて実施されると共に、該複数の制御要素の１つのサブセットを選択するように適合され、さらに、
第２のロード・バランサ・モジュールに向けて該第１のロード・バランシング操作の結果を示す情報及び該制御メッセージを伝播するステップと、
該制御メッセージに関する第２のロード・バランシング操作を実施するステップとを含み、該第２のロード・バランシング操作は、該第２のロード・バランシング・モジュールを使用して実施され、該第２のロード・バランシング操作は、該第１のロード・バランサ・モジュールを使用して選択された該複数の制御要素の該サブセットから該複数の制御要素のうちの１つを選択するための第２のロード・バランシング・メトリックに基づいて実施され、
該複数の制御要素のうちの該選択した１つに向けて該制御メッセージを伝播するステップとを含む方法を該コンピュータに実施させるソフトウェア・プログラムを格納するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークの分野に関し、より詳細には、モバイル・ネットワーク内のパケット・ルーティングに関する。
【背景技術】
【０００２】
モビリティ管理プロトコル、例えばＭｏｂｉｌｅ  ＩＰを利用するパケット・ベースのネットワークは、モバイル・ノード・ユーザが永続的ＩＰアドレスを維持しながらネットワーク間を移動することを可能にし、それによって、モバイル・ノード・ユーザがモバイル・ノード・ユーザの接続地点をパケット・ベースのネットワークに変更するときであっても、モバイル・ノード・ユーザがトランスポート層接続、および上位層接続を維持することを可能にする。したがって、Ｍｏｂｉｌｅ  ＩＰなどのモビリティ管理プロトコルを利用するモバイル・ネットワークは、ＭＮが、モバイル・ネットワーク上で利用可能な１つまたは複数のホスト装置とのトランスポート層接続および上位層接続を維持することを可能にする。Ｍｏｂｉｌｅ  ＩＰを利用するパケット・ベースのネットワークでは、モバイル・ノード・ユーザについてのモビリティ管理が、ホーム・エージェント（ＨＡ）、フォーリン・エージェント（ＦＡ）、および他のモビリティ管理機能を使用して実現される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
Ｍｏｂｉｌｅ  ＩＰネットワークでは、ＨＡは、ＭＮにモビリティ・サービスを提供する任を担う主要な実体である。Ｍｏｂｉｌｅ  ＩＰネットワークに一般にアクセスする多数のＭＮ（例えば、数百万のＭＮ、または場合によってはさらに多数）をサポートするために、ＨＡとして動作する単一サーバは不十分である可能性が高く、それによって、ＭＮにモビリティ・サービスを提供するために、ＨＡとして動作する複数のサーバの必要が示唆される。ＨＡとして動作する複数のサーバを使用するＭｏｂｉｌｅ  ＩＰネットワークでは、サーバのいずれかが過負荷となり、故障する（それによって潜在的に混乱が引き起こされる可能性があり、ＭＮへのサービスに影響が及ぶ）可能性を低減するために、少なくともある程度まで、複数のサーバのそれぞれに対する負荷の平衡を取ることが重要である。しかし、不利なことに、既存のロード・バランシング機構により得られるロード・バランシングは適切ではない。
【課題を解決するための手段】
【０００４】
従来技術での様々な不備が、複数の制御要素を使用して実装されるモビリティ・ホーム・エージェントで受信される制御トラフィックに関するロード・バランシング（ｌｏａｄ  ｂａｌａｎｃｉｎｇ：負荷平衡、負荷分散）を提供する本発明の方法および装置によって対処される。この方法は、モビリティ・ホーム・エージェント向けの制御メッセージをノードから受信すること、ロード・バランシング操作を実施して、制御要素のうちの１つを選択し、制御メッセージを処理すること、および制御要素のうちの選択した１つに向けて制御メッセージを伝播することを含む。ロード・バランシング操作は、第１メトリックおよび第２メトリックを含む少なくとも２つのロード・バランシング・メトリックを使用して実施される。ロード・バランシング操作は、制御メッセージがそこから受信されるノードと、制御要素のうちの選択した１つとの間のコンテキストを維持するような方式で実施され、それによって、ノードから受信される後続の制御メッセージが、制御要素のうちの選択した１つに伝播される。
【０００５】
添付の図面と共に以下の詳細な説明を考慮することによって本発明の教示を容易に理解することができる。
【図面の簡単な説明】
【０００６】
【図１】通信ネットワークの高レベルブロック図を示す図である。
【図２】図１の通信ネットワークの高レベル・ブロック図を示す図である。
【図３】本発明の一実施形態による方法を示す図である。
【図４】本明細書に記載の機能を実施する際に使用するのに適した汎用コンピュータの高レベル・ブロック図を示す図である。
【発明を実施するための形態】
【０００７】
理解を促進するために、可能な場合には、各図に共通の同一の要素を示すのに、同一の参照番号を使用した。
【０００８】
本発明は、複数の制御要素を使用して実装されるモビリティ・ホーム・エージェント（ＨＡ）で受信される制御トラフィックに関するロード・バランシングを提供する。本発明は、複数の制御要素にわたって、受信される制御メッセージの平衡を取るために、ロード・バランシング・メトリックの組合せを使用する。本発明のロード・バランシング機能は、制御メッセージがそこから受信されるノードと、ノードから制御メッセージを受信するように当初選択された制御要素との間でコンテキストを維持するような方式で実施される。ロード・バランシング・メトリックは、ハッシュ・ベースのメトリック、テーブル・ベースのメトリック、負荷ベースのメトリック、およびランダム・メトリックなど、ならびにそれらの様々な組合せを含むことができる。
【０００９】
図１は、モバイル・ネットワークの高レベルブロック図を示す。具体的には、モバイル・ネットワーク１００が、転送プレーン１０１が制御プレーン１０２から分離されるネットワーク・アーキテクチャを使用して実装される。転送プレーン１０１が、モバイル・ネットワークのパケット転送機能を実施するように適合される。制御プレーン１０２は、モバイル・ネットワークの制御機能（例えば、制御メッセージングの処理、および転送プレーン１０１のルーティング／転送挙動の修正など、ならびにそれらの様々な組合せ）を実施するように適合される。転送プレーン１０１と制御プレーン１０２は、論理的かつ／または物理的に分離することができる。
【００１０】
例えば、複数の転送要素および複数の制御要素を使用して、モバイル・ネットワーク１００を実装することができる。転送要素は、パケットをルーティング／転送する際に使用するように適合されたルーティング／転送テーブルをそれぞれ含む。制御要素は、転送要素のルーティング／転送テーブルを更新し、モバイル・ネットワーク１００で必要となる可能性のある任意の他の制御機能を実施する（例えば、制御トラフィックを処理する、他の関連制御機能を実施するなど）ように適合される。転送要素と制御要素は、論理的かつ／または物理的に分離することができる。
【００１１】
図２は、モバイル・ネットワークの制御プレーンに関するロード・バランシング・アーキテクチャの高レベル・ブロック図を示す。具体的には、ロード・バランシング・アーキテクチャは、複数の制御要素（ＣＥ）２０２１〜２０２Ｎ（ＣＥ２０２と総称する）に対するロード・バランシング機能を実施するハードウェア・ベースのロード・バランサ・モジュール２１０Ｈおよびソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓ（ロード・バランサ・モジュール２１０と総称する）を含む。図２に示されるように、ロード・バランシング・アーキテクチャは、ネットワーク２０１の他のネットワーク要素（例えば、モバイル・ノード、フォーリン・エージェントなど）から制御メッセージを受信する。ロード・バランサ・アーキテクチャは、ＣＥ２０２にわたって制御メッセージの負荷の平衡を取るように、ネットワーク２０１から受信した制御メッセージをＣＥ２０２に配布するように機能する。
【００１２】
ロード・バランサ・モジュール２１０は、ネットワーク２０１から受信した制御メッセージをＣＥ２０２に配布するように機能する。ロード・バランサ・モジュール２１０は、ＣＥ２０２にわたって、受信した制御メッセージの負荷の平衡を取るように（すなわち、どのＣＥ２０２も、他のＣＥ２０２と比較して制御メッセージが過負荷とならないように）、受信した制御メッセージを配布する。ＣＥ２０２は、別々のサーバおよび／または１つまたは複数のサーバの別々のサーバ・ブレードでよい。一実施形態では、各ＣＥ２０２は、Ｍｏｂｉｌｅ  ＩＰホーム・エージェント（ＨＡ）のインスタンスを含み、それによってＣＥ２０２は、それと一緒に１つのＭｏｂｉｌｅ  ＩＰ  ＨＡとして動作する。
【００１３】
ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、ネットワーク２０１から制御メッセージを受信するネットワーク２０１とインターフェースする。ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、ネットワーク２０１から受信した制御メッセージをＣＥ２０２に配布するために、それぞれの接続２１１Ｈ１〜２１１ＨＮ（接続２１１Ｈと総称する）を介して各ＣＥ２０２とインターフェースする。ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈはまた、ネットワーク２０１から受信した制御メッセージをソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに配布するために（すなわち、ＣＥ２０２に直接配布されない制御メッセージについて）、接続２１２を介してソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓともインターフェースする。
【００１４】
ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈを制御プレーンおよび／または転送プレーン内で実装することができる。一実施形態では、例えば、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈを制御プレーン内の一体型モジュールとして実装することができ、制御サーバ上の別々のサーバ・ブレードなどとして実装することができ、それらの様々な組合せとして実装することができる。一実施形態では、例えば、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈを転送プレーン内の一体型モジュールとして実装することができる。
【００１５】
ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓは、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈから制御メッセージを受信するために（すなわち、ハードウェア・ベースのロード・バランサ・モジュール２１０ＨからＣＥ２０２に直接的に配布されない制御メッセージを受信するために）、接続２１２を介してハードウェア・ベースのロード・バランサ・モジュール２１０Ｈとインターフェースする。ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓは、ネットワーク２０１から受信した制御メッセージをハードウェア・ベースの負荷バランサ・モジュール２１０Ｈを介してＣＥ２０２に配布するために、それぞれ２１１Ｓ１〜２１１ＳＮを介して各ＣＥ２０２とインターフェースする。
【００１６】
ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓを制御プレーンおよび／または転送プレーン内で実装することができる。一実施形態では、例えば、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓを制御プレーン内の一体型モジュールとして実装することができ、制御サーバ上の別々のサーバ・ブレードなどとして実装することができ、それらの様々な組合せとして実装することができる。一実施形態では、例えば、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓを転送プレーン内の一体型モジュールとして実装することができる。
【００１７】
図２に示されるように、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、転送プレーンから（例示的には、ネットワーク２０１から）制御メッセージを受信する。ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、単独で、またはソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓと組み合わせて、複数のロード・バランシング・メトリックを使用して、受信した制御メッセージに関するロード・バランシング操作を実施する。ロード・バランシング操作により、ＣＥ２０２のうちの１つが、受信した制御メッセージを処理するように選択される。受信した制御メッセージが、（ハードウェア・ベースの負荷バランサ・モジュール２１０Ｈまたはソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓから）ＣＥ２０２のうちの選択した１つに伝播され、ＣＥ２０２のうちの選択した１つは、制御メッセージを処理する。
【００１８】
一実施形態では、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈが、制御メッセージを供給すべきＣＥ２０２のうちの１つを選択することができないとき、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、受信した制御メッセージをソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに供給するだけである。この実施形態では、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈが、受信した制御メッセージをそれに対して供給すべき１つのＣＥ２０２を識別した場合、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、受信した制御メッセージをそのＣＥ２０２に供給する。しかし、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈが、受信した制御メッセージをそれに対して供給すべきＣＥ２０２を識別しなかった場合、または受信した制御メッセージをそれに対して供給すべき複数のＣＥ２０２を識別した場合、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、制御メッセージをそれに対して供給すべきＣＥ２０２のうちの１つを選択するために、受信した制御メッセージをソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに供給して、追加のロード・バランシング操作を実施する。
【００１９】
一実施形態では、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは常に、受信した制御メッセージをソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに供給する。そのような一実施形態では、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、ＣＥ２０２のうちの利用可能なもののサブセットを選択するように適合されるロード・バランシング操作の第１部分を実施することができ、次いで、受信した制御メッセージ、ならびにロード・バランシング操作の第１部分の結果を、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに供給する。この実施形態では、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓが、受信した制御メッセージをそれに対して供給すべきＣＥ２０２のうちの１つ（すなわち、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈによって決定された利用可能なＣＥ２０２のサブセットから選択された１つ）を選択するために、受信した制御メッセージに関するロード・バランシング操作の第２部分を実施する。
【００２０】
ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈ（任意選択で、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓ）によって実施されるロード・バランシング操作は、複数のロード・バランシング・メトリックを使用して実施される。例えば、モビリティ・ホーム・エージェントでは、ドメイン名メトリック、ホームＩＰアドレス・メトリック、ソース・アドレス・メトリック、負荷ベースのメトリック、およびランダム割当てメトリックなど、ならびにそれらの様々な組合せのうちの少なくとも２つを使用して、ロード・バランシング操作を実施することができる。名前／アドレス・ベースのメトリックを多くの方式で（例えば、１つまたは複数のハッシュ関数を使用して、テーブル・ルックアップなどを使用して、それらの様々な組合せを使用して）適用することができる。負荷統計を使用して負荷ベースのメトリックを適用することができる。複数のロード・バランシング・メトリックを個々に（すなわち逐次）適用することができ、または組み合わせて適用することができる。
【００２１】
ロード・バランシング・メトリックの説明が理解しやすいように、ロード・バランシング・メトリックを個々に説明する。適用することのできる様々なロード・バランシング・メトリックの説明が理解しやすいように、本明細書では、ロード・バランシング・メトリックを主にＭｏｂｉｌｅ  ＩＰシグナリング・メッセージに関して説明する。しかし、本発明のロード・バランシング機能を様々な他のタイプの制御メッセージに適用することができるので、受信された制御メッセージに関するロード・バランシングを実施する際に使用するのに、より少数または多数の（かつ様々な）ロード・バランシング・メトリックを利用可能にすることができる。いくつかの可能なロード・バランシング・メトリックの説明が続く。
【００２２】
一実施形態では、ドメイン名メトリックを使用して（すなわち、受信された制御メッセージ内に含まれるドメイン名を使用して）ロード・バランシングを実施することができる。ドメイン名メトリックを多くの方式で（例えば、１つまたは複数のハッシュ関数を使用して、テーブル・ルックアップなどを使用して、それらの様々な組合せを使用して）適用することができる。一実施形態では、受信された制御メッセージ内に含まれるドメイン名にハッシュ関数を適用することができる。ハッシュ関数をドメイン名だけに適用することができ、またはドメイン名と、受信された制御メッセージ内に含まれる１つまたは複数の他のパラメータとの組合せに適用することができる。一実施形態では、受信された制御メッセージ内に含まれるドメイン名を使用してテーブル・ルックアップを実施することができる。
【００２３】
一実施形態では、ホームＩＰアドレス・メトリックを使用して（すなわち、受信された制御メッセージ内に含まれるホームＩＰアドレスを使用して）ロード・バランシングを実施することができる。ホームＩＰアドレス・メトリックを多くの方式で（例えば、１つまたは複数のハッシュ関数を使用して、テーブル・ルックアップなどを使用して、それらの様々な組合せを使用して）適用することができる。一実施形態では、ホームＩＰアドレス、またはホームＩＰアドレスの一部にハッシュ関数を適用することができる。ハッシュ関数をホームＩＰアドレスだけに適用することができ、またはホームＩＰアドレスと、受信された制御メッセージ内に含まれる１つまたは複数の他のパラメータとの組合せに適用することができる。一実施形態では、受信された制御メッセージ内に含まれるホームＩＰアドレスを使用してテーブル・ルックアップ（例えば、プレフィックス・ベースのルックアップ、範囲ベースのルックアップなど、ならびにそれらの様々な組合せ）を実施することができる。
【００２４】
一実施形態では、ソース・アドレス・メトリックを使用して（すなわち、受信された制御メッセージ内に含まれるソース・アドレスを使用して）ロード・バランシングを実施することができる。ソース・アドレスは、Ｃａｒｅ−Ｏｆ（ＣＯ）アドレス、フォーリン・エージェント（ＦＡ）アドレス、または任意の他の同様のアドレスを含むことができる。ソース・アドレス・メトリックを多くの方式で（例えば、１つまたは複数のハッシュ関数を使用して、テーブル・ルックアップなどを使用して、それらの様々な組合せを使用して）適用することができる。一実施形態では、ソース・アドレスにハッシュ関数を適用することができる。ハッシュ関数をソース・アドレスだけに適用することができ、またはソース・アドレスと、受信された制御メッセージ内に含まれる１つまたは複数の他のパラメータとの組合せに適用することができる。一実施形態では、受信された制御メッセージ内に含まれるソース・アドレスを使用してテーブル・ルックアップを実施することができる。
【００２５】
一実施形態では、各ＣＥ２０２に関連する負荷を示すソース・アドレス・メトリックを使用してロード・バランシングを実施することができる。一実施形態では、ＣＥ２０２に関する負荷情報をＣＥ２０２からロード・バランサ・モジュール２１０の一方または両方に供給することができる。この実施形態では、任意の頻度で（例えばマイクロ秒ごとに１度、１秒ごとに１度など）ＣＥ２０２に関する負荷情報をロード・バランサ・モジュール（複数可）２１０に供給することができる。別の実施形態では、（例えば、ロード・バランサ・モジュール２１０間の制御情報の何らかの交換を使用して）ＣＥ２０２に関する負荷情報をロード・バランサ・モジュール２１０で追跡することができる。
【００２６】
一実施形態では、ロード・バランシングが、各ＣＥ２０２に関連する負荷を示す負荷ベースのメトリックに基づいて実施され、負荷ベースのメトリックをいくつかの異なる方式で適用することができる。一実施形態では、例えば、受信された制御メッセージを、負荷が最小であるＣＥ２０２に向けて送ることができる。別の実施形態では、例えば、受信された制御メッセージを、２番目に負荷が最小であるＣＥ２０２に向けて送ることができる。負荷ベースのメトリックを様々な他の方式で適用することができる。一実施形態では、ロード・バランシングが負荷ベースのメトリックに基づいて実施され、他の利用可能なメトリックが適用された後でのみ、負荷ベースのメトリックを適用することができる。
【００２７】
一実施形態では、ランダム割当てメトリックを使用してロード・バランシングを実施することができる。そのような一実施形態では、ランダム割当てメトリックは、ドメイン名、ホームＩＰアドレス、およびソース・アドレス（例えば、ＦＡアドレスおよび／またはＣＯアドレス）のうちの少なくとも２つの組合せを使用することができる。ランダム割当てメトリックを多くの方式で（例えば、１つまたは複数のハッシュ関数、１つまたは複数のテーブル・ルックアップ、および／または１つまたは複数の規則など、ならびにそれらの様々な組合せを使用して）適用することができる。ランダム割当てメトリックを個々に適用することができ、または受信された制御メッセージをＣＥ２０２のうちの１つに向けて送るための１つまたは複数の他のロード・バランシング・メトリックと組み合わせて適用することができる。
【００２８】
本明細書に記載のように、特定のロード・バランシング・メトリックを個々に説明するが、本発明によるロード・バランシング操作は、受信された制御メッセージがそれに対して転送される制御要素を選択するために、そのような複数のロード・バランシング・メトリックを利用する。本明細書に記載のように、複数のロード・バランシング・メトリックを個々に（すなわち逐次）適用することができ、かつ／または組み合わせて適用することができる。言い換えれば、個々のかつ／または複数のメトリックの逐次適用、ならびに／あるいは個々のかつ／または複数のメトリックの組合せ適用の任意の組合せで複数のロード・バランシング・メトリックを適用することができる。
【００２９】
一実施形態では、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈで複数のロード・バランシング・メトリックを逐次適用することができる。一実施形態では、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓで複数のロード・バランシング・メトリックを逐次実施することができる。一実施形態では、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈとソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓの両方で複数のロード・バランシング・メトリックを実施することができる（例えば、１つまたは複数をハードウェア・ベースのロード・バランサ・モジュール２１０Ｈで、１つまたは複数をソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓで）。一実施形態では、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈで複数のロード・バランシング・メトリックを組み合わせて適用することができる。一実施形態では、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓで複数のロード・バランシング・メトリックを組み合わせて適用することができる。
【００３０】
一実施形態では、そのような操作の組合せを実施することができる。一実施形態では、例えば、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈで１つまたは複数のロード・バランシング・メトリックを逐次適用することができ、次いでソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓで複数のロード・バランシング・メトリックを組み合わせて適用することができる。一実施形態では、例えば、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈで複数のロード・バランシング・メトリックを組み合わせて適用することができ、次いでソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓで複数のロード・バランシング・メトリックを逐次適用することができる。一実施形態では、例えば、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈで複数のロード・バランシング・メトリックを組み合わせて適用することができ、次いでソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓで複数のロード・バランシング・メトリックを組み合わせて適用することができる（すなわち、異なる組合せのメトリックの逐次適用）。
【００３１】
本明細書に記載のように、各ロード・バランシング・メトリックを多くの方式（これは、適用中のロード・バランシング・メトリックのタイプに依存することがある）で適用（すなわち、受信された制御メッセージに関するロード・バランシング操作を実施する際に使用）することができる。例えば、ハッシュ関数、テーブル・ルックアップ、メトリック特有の操作など、ならびにそれらの様々な組合せを使用して、様々なロード・バランシング・メトリックを適用することができる。一実施形態では、ハッシュ関数がハードウェア・ベースのロード・バランサ・モジュール２１０Ｈで実施され、テーブル・ベースのルックアップおよび他のメトリック・ベースの操作が、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓで実施される。
【００３２】
ロード・バランシング操作を実施する際に複数のロード・バランシング・メトリックを（例えば、逐次、かつ／または組み合わせて）使用することは、以下の例に関してより良く理解することができる。
【００３３】
一例として、制御メッセージの受信時に、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、制御メッセージ内に含まれるドメイン名、ＣＯアドレス、およびホームＩＰアドレスの組合せを使用してハッシュ関数を適用することができる。この例では、ハッシュ関数の結果、Ｎ個の利用可能なＣＥ２０２のうちの１つ（例えばＣＥ２０２２）を選択することができる。この例では、次いでハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、選択されたＣＥ２０２２に制御メッセージを直接転送する（すなわち、この例では、制御メッセージがソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに転送されず、制御メッセージが、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈから、選択されたＣＥ２０２２に直接配布される）。
【００３４】
別の例として、制御メッセージの受信時に、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、制御メッセージ内に含まれるドメイン名を使用してハッシュ関数を適用することができる。この例では、ハッシュ関数の結果、Ｎ個の利用可能なＣＥ２０２のうちの３つ（例えば、ＣＥ２０２１、ＣＥ２０２２、およびＣＥ２０２３）を選択することができる。次いで、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに制御メッセージを転送することができる。この例では、次いで、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｈは、１つまたは複数の追加のロード・バランシング・メトリックを使用して（例えば、ＦＡアドレスに基づくテーブル・ルックアップを実施して、負荷ベースのメトリックを使用して、ランダム割当てメトリックなどを使用して、それらの様々な組合せを使用して）、受信された制御メッセージに関してＣＥ２０２１、ＣＥ２０２２、またはＣＥ２０２３を選択することができる。次いで、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｈは、ＣＥ２０２１、２０２２、２０２３のうちの選択した１つに、受信された制御メッセージを伝播する。
【００３５】
別の例として、制御メッセージの受信時に、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈが、制御メッセージ内に含まれるドメイン名とホームＩＰアドレスの組合せを使用して、ハッシュ関数を適用することができる。この例では、ハッシュ関数の結果、Ｎ個の利用可能なＣＥ２０２のうちの２つ（例えば、ＣＥ２０２２およびＣＥ２０２３）を選択することができる。次いで、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈは、ソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓに制御メッセージを転送することができる。この例では、次いでソフトウェア・ベースのロード・バランサ・モジュール２１０Ｈは、負荷ベースのメトリックを使用して、受信された制御メッセージに関してＣＥ２０２２とＣＥ２０２３のどちらかを選択することができる（例えば、ＣＥ２０２２とＣＥ２０２３のどちらでも、現メッセージ負荷がより低い方に制御メッセージを供給する）。
【００３６】
別の例として、制御メッセージの受信時に、ハードウェア・ベースのロード・バランサ・モジュール２１０Ｈが、制御メッセージ内に含まれるドメイン名を使用して、ハッシュ関数を適用することができる。この例では、特定のドメイン名（例えば「ａｌｃａｔｅｌ−ｌｕｃｅｎｔ．ｃｏｍ」）からのすべての制御メッセージが２つの可能なＣＥ（例えばＣＥ２０２２およびＣＥ２０２３）のうちの一方に向けて送られるように、ドメイン名に対するハッシュ関数を適用することができる。この例では、次いでハードウェア・ベースのロード・バランサ・モジュール２１０Ｈまたはソフトウェア・ベースのロード・バランサ・モジュール２１０Ｓは、受信された制御メッセージが配布される２つのＣＥ２０２のうちの一方を選択するために、１つまたは複数の追加のロード・バランシング・メトリック（例えば、負荷ベースのメトリック、ランダム割当てメトリックなど）を適用することができる。
【００３７】
上述の例は例示のためのものに過ぎず、したがって本発明はそのような例に限定されない。本明細書に記載のロード・バランシング・メトリックを様々な他の方式で使用することができる。本明細書に記載のロード・バランシング・メトリックを様々な他の組合せで使用することができる。さらに、制御要素のいずれかが過負荷となるのを防止するような方式で複数の制御要素にわたって制御メッセージを配布するのに、様々な他の類似のロード・バランシング・メトリックを使用することができる。図３に関して本発明のロード・バランシング機能をより良く理解することができる。
【００３８】
図３は、本発明の一実施形態による方法を示す。具体的には、図３の方法３００は、ネットワーク要素の制御要素にわたって制御メッセージのロード・バランシングを実施する方法を含む。図３の方法３００のステップが逐次実施されるものとして図示し、説明するが、図３の方法３００のステップの少なくとも一部を同時に実施することができ、または図３に関して図示し、説明するのとは異なる順序で実施することができる。方法３００はステップ３０２で始まり、ステップ３０４に進む。
【００３９】
ステップ３０４で、制御メッセージを受信する。ステップ３０６で、ロード・バランシング操作を実施して、制御要素のうちの１つを選択し、受信した制御メッセージを処理する。少なくとも２つのロード・バランシング・メトリックを使用してロード・バランシング操作を実施する。ハードウェア・モジュール、さらには任意選択でソフトウェア・モジュールで、ロード・バランシング・メトリックを逐次、かつ／または組み合わせて適用することができる。ステップ３０８で、選択した制御要素に向けて制御メッセージが伝播し、選択した制御要素は、受信した制御要素を処理する。ステップ３１０で、方法３００は終了する。
【００４０】
本明細書では、主にＭｏｂｉｌｅ  ＩＰをモビリティ管理プロトコルとして使用することに関して図示し、説明したが、他のモビリティ管理プロトコルと共に本発明を使用することもできる。例えば、ＨＭＩＰｖ６（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｍｏｂｉｌｅ  ＩＰｖ６）、ＩＰＭＮ（Ｉｎｔｅｒａｃｔｉｖｅ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｎｅｔｗｏｒｋｉｎｇ）などのモビリティ管理プロトコル、ならびにそれらの様々な組合せと共に本発明を使用することができる。本明細書では、主にホーム・アドレスがネットワーク層アドレス（例えばＩＰアドレス）である実施形態に関して図示し、説明したが、他の実施形態では、モバイル・ノードに割り当てられるアドレスを通信階層の様々な層に割り当てることができる。
【００４１】
制御メッセージは、モバイル・ネットワーク内で伝播させることのできる任意の制御メッセージを含むことができる。例えば、制御メッセージは、（１）Ｍｏｂｉｌｅ  ＩＰシグナリング・メッセージ、（２）ＡＡＡ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ，  Ａｕｔｈｏｒｉｚａｔｉｏｎ，  ａｎｄ  Ａｃｃｏｕｎｔｉｎｇ）サービス・メッセージ（例えば、ＲＡＤＩＵＳシグナリング・メッセージ、ＤＩＡＭＥＴＥＲシグナリング・メッセージなど）、（３）アドレス割当てメッセージ（例えば、ＤＨＣＰシグナリング・メッセージ）など、ならびにそれらの様々な組合せを含むことができる。したがって、主にＭｏｂｉｌｅ  ＩＰシグナリング・メッセージに関してロード・バランシング・メトリックを説明したが、本発明は、Ｍｏｂｉｌｅ  ＩＰシグナリング・メッセージに関するロード・バランシング機能を提供することに限定されない。
【００４２】
本明細書で図示し、説明したロード・バランシング機能に加えて、ロード・バランサ・モジュール２１０は、単独で、または組み合わせて、他の機能を実施することもできる。
【００４３】
一実施形態では、ロード・バランサ・モジュール２１０は、パケット・ペイロード処理を実施することができる。そのような一実施形態では、例えば、ロード・バランサ・モジュール２１０は、パケット・ペイロード内の特定の値を探索すること、パケット・ペイロード内で識別される情報に従ってパケットを処理することなど、ならびにそれらの様々な組合せなどのパケット・ペイロード検査を（例えば、ネットワークおよびトランスポート・プロトコル・ヘッダを越えて）を実施することができる。
【００４４】
一実施形態では、ロード・バランサ・モジュール２１０は、ネットワーク・アドレス変換（ＮＡＴ）機能を実施することができる。一実施形態では、例えば、ロード・バランサ・モジュール２１０を使用して、ＤＨＣＰクライアントとＤＨＣＰサーバとの間で交換されるメッセージをサポートすることができる。そのような一実施形態では、ＤＨＣＰクライアントは、制御要素の一部でよく、または制御要素内に共に配置される別々の実体でよい。この実施形態では、各制御要素（クライアント）は、制御要素のＭｏｂｉｌｅ  ＩＰ  ＨＡに対して割り当てられるＩＰアドレスとは異なる内部ＩＰアドレスを有することができる。しかし、こうした内部ＩＰアドレスは、外部ＤＨＣＰサーバにとって不可視でなければならない（すなわち、Ｍｏｂｉｌｅ  ＩＰ  ＨＡのＩＰアドレスのみがＤＨＣＰサーバにとって可視となる）。ロード・バランサ・モジュール２１０のＮＡＴ機能（すなわち、アドレス／ポート変換）は、発信ＤＨＣＰクライアント・パケットを処理し、着信ＤＨＣＰサーバ・パケットを正しい制御要素（ＤＨＣＰクライアント）にリダイレクトする。
【００４５】
図４は、本明細書に記載の機能を実施する際に使用するのに適した汎用コンピュータの高レベル・ブロック図を示す。図４に示すように、システム４００は、プロセッサ要素４０２（例えばＣＰＵ）、メモリ４０４、例えばランダム・アクセス・メモリ（ＲＡＭ）および／または読取り専用メモリ（ＲＯＭ）、ロード・バランシング・モジュール４０５、ならびに様々な入力出力装置４０６（例えば、限定はしないがテープ・ドライブ、フロッピィ・ドライブ、ハード・ディスク・ドライブ、またはコンパクト・ディスク・ドライブを含む記憶装置、受信機、送信機、スピーカ、ディスプレイ、出力ポート、ならびにユーザ入力装置（キーボード、キーパッド、マウスなど））を備える。
【００４６】
例えば特定用途向け集積回路（ＡＳＩＣ）、汎用コンピュータ、または任意の他のハードウェア均等物を使用して、本発明をソフトウェアならびに／あるいはソフトウェアとハードウェアの組合せとして実装できることに留意されたい。一実施形態では、このロード・バランシング・プロセス４０５をメモリ４０４にロードして、プロセッサ４０２で実行し、上記で論じた機能を実装することができる。したがって、本発明のロード・バランシング・プロセス４０５（関連するデータ構造を含む）をコンピュータ可読媒体またはキャリア、例えばＲＡＭメモリ、磁気式または光学式のドライブまたはディスケットなどの上に格納することができる。
【００４７】
本明細書でソフトウェア方法として論じたステップの一部をハードウェア内で実装することができ、例えばプロセッサと協働して様々な方法ステップを実施する回路として実装することができる。本発明の各部分をコンピュータ・プログラム製品として実装することができ、コンピュータ命令が、コンピュータで処理されるとき、本発明の方法および／または技法が起動され、あるいは提供されるようにコンピュータの動作を適合させる。本発明の方法を起動する命令は、固定媒体または取外し可能媒体内に格納することができ、放送媒体または他の信号運搬媒体内のデータ・ストリームを介して伝送することができ、かつ／または命令に従って動作するコンピューティング装置内の作業メモリ内に格納することができる。
【００４８】
本発明の教示を組み込む様々な実施形態を本明細書で詳細に図示し、説明したが、こうした教示をやはり組み込む多数の他の変形形態を当業者は容易に考案することができる。
【図１】
0005444227.tif 000002
【図２】
0005444227.tif 000003
【図３】
0005444227.tif 000004
【図４】
0005444227.tif 000005