(57)【要約】【課題】モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのための方法、システム、およびコンピュータ・プログラムを提供すること。【解決手段】接続に関する要求が、ルーティング・スタックでクライアントから受信される。要求の受信に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、ルーティング・スタックからクライアントに送信される。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントがルーティング・スタックをバイパスしてターゲット・スタックと直接通信できるように、選択されたターゲット・スタックを識別する。【選択図】  図２
2008527815.tif 000002
【特許請求の範囲】
【請求項１】
接続に関する要求をクライアントからルーティング・スタックで受信するステップと、
前記要求の受信に応答して、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、前記ルーティング・スタックから前記クライアントに送信するステップであって、前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、前記ルーティング・スタックをバイパスして前記クライアントがターゲット・スタックと直接通信できるように、選択された前記ターゲット・スタックを識別する、送信するステップと、
を有する、負荷バランシングの方法。
【請求項２】
前記クライアントが、前記ルーティング・スタックに関連付けられたＩＰアドレスを前記ターゲット・スタックに関連付けられたＩＰアドレスにマッピングする、バインディング・キャッシュ・エントリを作成できるように、前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、前記ルーティング・スタックに関連付けられたインターネット・プロトコル・アドレスとして前記接続のホーム・アドレスを、および、前記ターゲット・スタックに関連付けられたＩＰアドレスとして前記接続の気付アドレスを有する、請求項１に記載の方法。
【請求項３】
前記送信ステップが、
前記接続に関する要求を、前記ルーティング・スタックから前記選択されたターゲット・スタックに送信するステップと、
前記接続要求が前記ターゲット・スタックによって受け入れられた旨の通知を、前記ルーティング・スタックで前記ターゲット・スタックから受信するステップと、
前記ルーティング・スタックでルーティング・テーブルを更新するステップと、
によって先行される、請求項１に記載の方法。
【請求項４】
前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するステップが、
Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを前記ルーティング・スタックから前記クライアントに送信するステップであって、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージが、Ｈｏｍｅ  Ｔｅｓｔメッセージを前記ルーティング・スタックに戻すようにとの前記クライアントへの要求を含む、送信するステップと、
前記Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージの送信に応答して、前記ルーティング・スタックで前記クライアントから前記Ｈｏｍｅ  Ｔｅｓｔメッセージを受信するステップと、
前記ルーティング・スタックまたは前記ターゲット・スタックから、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを、前記ターゲット・スタックに関する前記クライアントに送信するステップであって、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  ＩｎｉｔメッセージのソースＩＰアドレスが前記ターゲット・スタックの前記ＩＰアドレスに設定される、送信するステップと、
によって先行される、請求項２に記載の方法。
【請求項５】
前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージに応答して、前記ターゲット・スタックで、前記クライアントから前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信するステップであって、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージが、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーを前記ルーティング・スタックに転送するべきである旨を示すモビリティ・ヘッダを含む、受信するステップと、
前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーを、前記ターゲット・スタックから前記ルーティング・スタックに送信するステップと、
をさらに有する、請求項４に記載の方法。
【請求項６】
前記クライアントと前記ターゲット・スタックとの間での直接通信を可能にするために、前記クライアント側で、前記クライアント、前記ルーティング・スタック、および前記ターゲット・スタックの間に接続を確立するステップと、
接続が確立された旨のインジケーションを、前記クライアントから前記ルーティング・スタックに送信するステップと、
をさらに有する、請求項５に記載の方法。
【請求項７】
前記送信されたインジケーションを前記ルーティング・スタックで受信するステップと、
前記送信されたインジケーションを前記ターゲット・スタックに転送するステップであって、前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するステップが、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージおよび前記Ｈｏｍｅ  Ｔｅｓｔメッセージの両方が前記ルーティング・スタックで受信されると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを前記クライアントに送信するステップを有する、転送するステップと、
をさらに有する、請求項６に記載の方法。
【請求項８】
前記クライアントと前記ターゲット・スタックとの間での直接通信を可能にするために、前記ホーム・アドレスを前記気付アドレスにマッピングする前記バインディング・キャッシュ・エントリを前記クライアントに作成するステップと、
前記ルーティング・スタックをバイパスして、バインディング肯定応答を前記クライアントから前記ターゲット・スタックに直接送信するステップと、
をさらに有する、請求項２に記載の方法。
【請求項９】
前記ターゲット・スタックに関連付けられたルーティング・テーブルとほぼ同様の、前記ルーティング・スタックに関連付けられたルーティング・テーブルを、前記ルーティング・スタックが維持できるように、モバイルＩＰバージョン６メッセージを、前記ターゲット・スタックから前記ルーティング・スタックで受信するステップを、さらに有する、請求項１に記載の方法。
【請求項１０】
前記クライアントからの前記ターゲット・スタックでの新しい接続要求の通知を、前記ルーティング・スタックで受信するステップと、
前記ルーティング・スタックに関連付けられたルーティング・テーブルからの、前記接続に関連付けられたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を、前記ルーティング・スタックでコピーするステップと、
をさらに有する、請求項１に記載の方法。
【請求項１１】
前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有し、
前記ターゲット・スタックからの前記クライアントでの新しい接続要求の通知を、前記ルーティング・スタックで受信するステップと、
前記ルーティング・スタックで、ルーティング・テーブル内に前記新しい接続に関するエントリが存在するかどうかを判別するステップと、
前記エントリが存在すると判別された場合、前記既存の接続に関連付けられたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を、前記ルーティング・テーブルからコピーするステップと、
前記エントリが存在しないと判別された場合、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、前記ルーティング・スタックから前記クライアントに送信するステップであって、前記第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、前記クライアントが前記ルーティング・スタックをバイパスして前記第２の選択されたターゲット・スタックと直接通信できるように、前記新しい接続のための第２の選択されたターゲット・スタックを識別する、送信するステップと、
をさらに有する、請求項１に記載の方法。
【請求項１２】
前記クライアントから前記ターゲット・スタックへバインディング・リフレッシュ要求を送信するステップであって、前記バインディング・リフレッシュ要求が、前記ターゲット・スタックから他のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するための要求を含む、送信するステップをさらに有する、請求項１に記載の方法。
【請求項１３】
前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有し、
前記ターゲット・スタックに関する問題を、前記ルーティング・スタックで検出するステップと、
前記問題の検出に応答して、前記クライアントで前記バインディング・キャッシュ・エントリを削除するステップと、
第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、前記ルーティング・スタックから前記クライアントに送信するステップであって、前記第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、前記クライアントと前記ルーティング・スタックとの間の直接通信を可能にするために、前記気付アドレスおよび前記ホーム・アドレスの両方をＶＩＰＡに設定するべきである旨を示す、送信するステップと、
をさらに有する、請求項２に記載の方法。
【請求項１４】
前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有し、
前記クライアントで前記バインディング・キャッシュ・エントリを削除できるように、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、前記ルーティング・スタックから前記クライアントに送信するステップをさらに有する、請求項１に記載の方法。
【請求項１５】
接続に関する要求をクライアントから受信するように構成され、
前記要求の受信に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを前記クライアントに送信するように構成された、
ルーティング・スタックを備え、前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、前記ルーティング・スタックをバイパスして前記クライアントがターゲット・スタックと直接通信できるように、選択された前記ターゲット・スタックを識別する、
負荷バランシングのためのシステム。
【請求項１６】
前記クライアントが、前記ルーティング・スタックに関連付けられたＩＰアドレスを前記ターゲット・スタックに関連付けられたＩＰアドレスにマッピングする、バインディング・キャッシュ・エントリを作成できるように、前記Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、前記ルーティング・スタックに関連付けられたインターネット・プロトコル・アドレスとして前記接続のホーム・アドレスを、および、前記ターゲット・スタックに関連付けられたＩＰアドレスとして前記接続の気付アドレスを有する、
請求項１５に記載のシステム。
【請求項１７】
さらに前記ルーティング・スタックが、
Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを前記クライアントに送信するように構成され、前記Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、Ｈｏｍｅ  Ｔｅｓｔメッセージを前記ルーティング・スタックに戻すようにとの前記クライアントへの要求を含み、
さらに前記ルーティング・スタックが、前記Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージの送信に応答して、前記ルーティング・スタックで前記クライアントから前記Ｈｏｍｅ  Ｔｅｓｔメッセージを受信するように、および、
Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを前記ターゲット・スタックに関する前記クライアントに送信するように、構成され、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  ＩｎｉｔメッセージのソースＩＰアドレスが前記ターゲット・スタックの前記ＩＰアドレスに設定される、
請求項１５に記載のシステム。
【請求項１８】
さらに前記ターゲット・スタックが、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージに応答して、前記クライアントから前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信するように構成され、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージは、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーを前記ルーティング・スタックに転送するべきである旨を示すモビリティ・ヘッダを含み、さらに前記ターゲット・スタックが、前記Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーを前記ルーティング・スタックに送信するように構成された、請求項１７に記載のシステム。
【請求項１９】
さらに前記クライアントが、
前記クライアントと前記ターゲット・スタックとの間での直接通信を可能にするために、前記ホーム・アドレスを前記気付アドレスにマッピングする前記バインディング・キャッシュ・エントリを作成するように、および、
前記ルーティング・スタックをバイパスして、バインディング肯定応答を前記ターゲット・スタックに直接送信するように、
構成された、請求項１６に記載のシステム。
【請求項２０】
さらに前記ルーティング・スタックが、
前記ターゲット・スタックから前記バインディング肯定応答のコピーを受信するように、
前記ルーティング・スタックに関連付けられたルーティング・テーブルを状態情報を含むように更新するように、および、
前記ターゲット・スタックに関連付けられたルーティング・テーブルを前記ターゲット・スタックが更新できるように前記状態情報を含むバインディング情報要求を前記ターゲット・スタックに送信するように、
構成された、請求項１９に記載のシステム。
【請求項２１】
コンピュータ上で実行された場合、請求項１から１４に記載の本発明を実行するためのソフトウェア・コード部分を備える、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業負荷バランシングに関する方法、システム、およびコンピュータ・プログラム製品に関し、とりわけ、モバイル・インターネット・プロトコルを使用した作業負荷バランシングのための方法、システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
インターネット・プロトコル（「ＩＰ」）は、コネクションレス・プロトコルとして設計される。したがってＩＰ作業負荷バランシング・ソリューションは、他のすべてのこうしたＴＣＰ接続要求とは無関係として、特定の宛先ＩＰアドレスおよびポート番号の組み合わせによって識別される、特定アプリケーションへのあらゆる伝送制御プロトコル（「ＴＣＰ」）接続要求を処理することができる。こうしたＩＰ作業負荷バランシング・システムの例には、インターナショナル・ビジネス・マシンズ・コーポレーション（「ＩＢＭ」）のｚ／ＯＳおよびＯＳ／３９０  ＴＣＰ／ＩＰインプリメンテーションに含まれるＩＢＭからのＳｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒ、ならびにＣｉｓｃｏ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．からのＭｕｌｔｉ−Ｎｏｄｅ  Ｌｏａｄ  Ｂａｌａｎｃｅｒ（「ＭＮＬＢ」）が含まれる。したがって、Ｓｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒは、ｚ／ＯＳ用の戦略負荷バランシング・ソリューションである。言い換えれば、Ｓｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒは、単一のＩＰアドレスに送信された新しいクライアント接続要求を、異なるＴＣＰ／ＩＰスタック上の１つまたは複数の異なるアプリケーション・サーバに配布することができる。
【０００３】
Ｓｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒは、ルーティング・スタックおよび１つまたは複数のターゲット・スタックという、２つの機能からなる。ルーティング・スタックは、新しい要求を処理し、新しい要求を処理するためのターゲット・スタックを選択するように構成することができる。ルーティング・スタックは、通常、各接続要求に関して選択されたターゲット・スタックを追跡し、同じＴＣＰ接続に関する後続のパケットを同じターゲット・スタックにルーティングする。Ｓｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒは、アクティブ接続に関する接続ルーティング・テーブルも維持することができる。接続が確立された場合に接続エントリを作成すること、および接続が終了した場合に接続エントリを除去することができる。
【０００４】
ターゲット・スタック上のアプリケーション・サーバからクライアントに送られるトラフィックは、通常、使用可能な最も効率の良いルートを使用し、ルーティング・スタックを完全にバイパスすることができる。デフォルトでは、クライアントからアプリケーション・サーバに送られるトラフィックは、通常、ルーティング・スタックをトラバースしなければならない。次にルーティング・スタックは、内部カップリング機能（ＸＣＦ）リンクを介して適切なターゲット・スタックにデータを転送する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
Ｓｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒは、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔと連動して動作することもできる。このモードで使用される場合、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔは、新しい接続要求をインターセプトし、それらをルーティング・スタックに転送することができる。ルーティング・スタックは、新しい接続要求を処理するために最適なターゲット・スタックを選択し、ターゲット・スタックのＩＰアドレスをＣｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔに戻す。その後、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔは、通常はＧｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ（ＧＲＥ）トンネリングを使用して、この接続に関する接続要求および後続のパケットを選択されたターゲット・スタックに転送することができるが、ＭｕｌｔｉＰｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ（ＭＰＬＳ）を使用することもできる。Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  ＡｇｅｎｔおよびＸＣＦリンクの使用が望ましくない場合がある。たとえば、ＸＣＦリンクを介して接続要求およびデータ・パケットを送信すると、遅延が追加される場合がある。さらに、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔとルーティング・スタックとの間の通信も、遅延を追加し、システムのスケーラビリティを減少させる場合がある。したがって、改善された負荷バランシングの方法が望ましい。
【０００６】
本発明は、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのための方法、システム、およびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明のいくつかの実施形態は、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのための方法、システム、およびコンピュータ・プログラム製品を提供する。接続に関する要求が、ルーティング・スタックでクライアントから受信される。受信された要求に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、ルーティング・スタックからクライアントへ送信される。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、ルーティング・スタックをバイパスしてクライアントがターゲット・スタックと直接通信できるように、選択されたターゲット・スタックを識別する。
【０００８】
本発明の他の実施形態では、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、ルーティング・スタックに関連付けられたインターネット・プロトコル・アドレスとして接続のホーム・アドレスを、および、ターゲット・スタックに関連付けられたインターネット・プロトコル・アドレス（ＩＰ）アドレスとして接続の気付アドレス（care-of address）を、含むことができる。したがってクライアントは、ルーティング・スタックに関連付けられたＩＰアドレスを、ターゲット・スタックに関連付けられたＩＰアドレスにマッピングする、バインディング・キャッシュ・エントリを作成することができる。本発明のある実施形態では、ルーティング・スタックに関連付けられるＩＰアドレスは仮想ＩＰアドレス（ＶＩＰＡ）である。
【０００９】
本発明の他の実施形態では、選択されたターゲット・スタックへの接続に関する要求を、ルーティング・スタックからターゲット・スタックへと送信することができる。接続要求がターゲット・スタックによって受け入れられた旨のターゲット・スタックからの通知を、ルーティング・スタックで受信することができる。ルーティング・スタックのルーティング・テーブルは、更新することができる。本発明のある実施形態では、通知の受信に応答して、ターゲット・スタックが接続要求を受け入れたことを示すように、ルーティング・スタックを更新することができる。
【００１０】
本発明のいくつかの実施形態では、モバイルＩＰバージョン６のＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを、ルーティング・スタックからクライアントに送信することができる。Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、モバイルＩＰバージョン６のＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをルーティング・スタックに戻すようにというクライアントへの要求を含むことができる。Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージの送信に応答して、Ｈｏｍｅ  Ｔｅｓｔメッセージをクライアントからルーティング・スタックで受信することができる。モバイルＩＰバージョン６のＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、ルーティング・スタックまたはターゲット・スタックから、ターゲット・スタックのクライアントに送信することができる。Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  ＩｎｉｔメッセージのソースＩＰアドレスを、ターゲット・スタックのＩＰアドレスに設定することができる。
【００１１】
本発明の他の実施形態では、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージをクライアントからターゲット・スタックで受信することができる。Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーをルーティング・スタックに転送するべきである旨を示すモビリティ・ヘッダを含むことができる。Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーは、ターゲット・スタックからルーティング・スタックに送信することができる。クライアントとターゲット・スタックとの間の直接通信を可能にするために、クライアント側のクライアント、ルーティング・スタック、およびターゲット・スタックの間に、接続を確立することができる。接続が確立された旨のインジケーションを、クライアントからルーティング・スタックに送信することができる。
【００１２】
本発明の他の実施形態では、送信されたインジケーションをルーティング・スタックで受信し、ターゲット・スタックに転送することができる。Ｃａｒｅ−ｏｆ  ＴｅｓｔメッセージおよびＨｏｍｅ  Ｔｅｓｔメッセージの両方がルーティング・スタックで受信されると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信することができる。このＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージとすることが可能であり、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントでルーティング・スタックから受信することができる。この第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、確立された接続を終了すべきである旨を示すことができる。接続に関連付けられたバインディング・キャッシュ・エントリは、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージに応答して、クライアントで削除することができる。
【００１３】
本発明のいくつかの実施形態では、クライアントとターゲット・スタックとの間の直接通信を可能にするために、ホーム・アドレスを気付アドレスにマッピングするバインディング・キャッシュ・エントリを、クライアントに作成することができる。バインディング肯定応答は、ルーティング・スタックをバイパスして、クライアントからターゲット・スタックへ直接送信することができる。バインディング肯定応答のコピーは、ターゲット・スタックからルーティング・スタックで受信することができる。ルーティング・スタックに関連付けられたルーティング・テーブルは、状態情報を含むように更新することができる。ターゲット・スタックが、ターゲット・スタックに関連付けられたルーティング・テーブルを更新できるように、状態情報を含むバインディング情報要求を、ルーティング・スタックからターゲット・スタックへ送信することができる。
【００１４】
本発明の他の実施形態では、ターゲット・スタックに関連付けられたルーティング・テーブルとほぼ同様の、ルーティング・スタックに関連付けられたルーティング・テーブルを、ルーティング・スタックが維持できるように、モバイルＩＰバージョン６メッセージを、ターゲット・スタックからルーティング・スタックで受信することができる。本発明のある実施形態では、モバイルＩＰバージョン６は、ＶＩＰＡで最適化を実行することができる。本発明の諸実施形態に従った方法、システム、およびコンピュータ・プログラム製品は、ｚ／ＯＳバージョン１のリビジョン６を使用して実施することができる。
【００１５】
本発明のいくつかの実施形態では、クライアントからのターゲット・スタックでの新しい接続要求の通知を、ルーティング・スタックで受信することができる。ルーティング・スタックに関連付けられたルーティング・テーブルからの、接続に関連付けられたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を、ルーティング・スタックでコピーすることができる。
【００１６】
本発明の他の実施形態では、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージとすることができる。ターゲット・スタックからのクライアントでの新しい接続要求の通知を、ルーティング・スタックで受信することができる。ルーティング・スタックのルーティング・テーブル内に新しい接続に関するエントリが存在するかどうかを、判別することができる。エントリが存在すると判別された場合、既存の接続に関連付けられたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を、ルーティング・テーブルからコピーすることができる。エントリが存在しないと判別された場合、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ルーティング・スタックからクライアントに送信することができる。第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントがルーティング・スタックをバイパスして第２の選択されたターゲット・スタックと直接通信できるように、新しい接続のための第２の選択されたターゲット・スタックを識別することができる。
【００１７】
本発明の他の実施形態では、クライアントからターゲット・スタックへバインディング・リフレッシュ要求を送信することができる。バインディング・リフレッシュ要求は、ターゲット・スタックから他のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するための要求を含むことができる。
【００１８】
本発明のいくつかの実施形態では、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージとすることができる。ターゲット・スタックに関する問題を、ルーティング・スタックで検出することができる。問題の検出に応答して、クライアントでバインディング・キャッシュ・エントリを削除することができる。第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ルーティング・スタックからクライアントに送信することができる。第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントとルーティング・スタックとの間の直接通信を可能にするために、気付アドレスおよびホーム・アドレスの両方をＶＩＰＡに設定するべきである旨を示すことができる。
【００１９】
本発明の他の実施形態では、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを含むことができる。クライアントでバインディング・キャッシュ・エントリを削除できるように、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ルーティング・スタックからクライアント・スタックに送信することができる。
【００２０】
本発明の他の実施形態は、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのための方法、システム、およびコンピュータ・プログラム製品を提供する。モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、接続に関する要求に応答して、クライアントでルーティング・スタックから受信される。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントがルーティング・スタックをバイパスして選択されたターゲット・スタックと直接通信できるように、選択されたターゲット・スタックを識別する。
【００２１】
本発明のいくつかの実施形態は、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのための方法、システム、およびコンピュータ・プログラム製品を提供する。選択されたターゲット・スタックへの接続に関する要求が、ルーティング・スタックから、選択されたターゲット・スタックで受信される。クライアントがルーティング・スタックをバイパスして選択されたターゲット・スタックと直接通信できるように、接続要求がターゲット・スタックによって受け入れられた旨を示す通知が、選択されたターゲット・スタックから送信される。
【００２２】
第１の態様から見ると、本発明は、接続に関する要求をクライアントからルーティング・スタックで受信するステップと、要求の受信に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ルーティング・スタックからクライアントに送信するステップとを含み、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、ルーティング・スタックをバイパスしてクライアントがターゲット・スタックと直接通信できるように、選択されたターゲット・スタックを識別する、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングの方法を提供する。
【００２３】
好ましくは、本発明は、クライアントが、ルーティング・スタックに関連付けられたＩＰアドレスをターゲット・スタックに関連付けられたＩＰアドレスにマッピングする、バインディング・キャッシュ・エントリを作成できるように、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、ルーティング・スタックに関連付けられたインターネット・プロトコル・アドレスとして接続のホーム・アドレスを、および、ターゲット・スタックに関連付けられたＩＰアドレスとして接続の気付アドレスを有する、方法を提供する。
【００２４】
好ましくは、本発明は、ルーティング・スタックに関連付けられたＩＰアドレスが仮想ＩＰアドレス（ＶＩＰＡ）を有する、方法を提供する。
【００２５】
好ましくは、本発明は、送信ステップが、接続に関する要求をルーティング・スタックから選択されたターゲット・スタックに送信するステップと、接続要求がターゲット・スタックによって受け入れられた旨の通知をルーティング・スタックでターゲット・スタックから受信するステップと、ルーティング・スタックでルーティング・テーブルを更新するステップと、によって先行される、方法を提供する。
【００２６】
好ましくは、本発明は、更新ステップが、通知の受信に応答してターゲット・スタックが接続要求を受け入れた旨を示すように、ルーティング・スタックのルーティング・テーブルを更新するステップを有する、方法を提供する。
【００２７】
好ましくは、本発明は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するステップが、モバイルＩＰバージョン６のＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをルーティング・スタックからクライアントに送信するステップであって、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、モバイルＩＰバージョン６のＨｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに戻すようにとのクライアントへの要求を含む、送信するステップと、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージの送信に応答して、ルーティング・スタックでクライアントからＨｏｍｅ  Ｔｅｓｔメッセージを受信するステップと、ルーティング・スタックまたはターゲット・スタックから、モバイルＩＰバージョン６のＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージをターゲット・スタックに関するクライアントに送信するステップであって、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  ＩｎｉｔメッセージのソースＩＰアドレスがターゲット・スタックのＩＰアドレスに設定される、送信ステップと、によって先行される、方法を提供する。
【００２８】
好ましくは、本発明は、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージに応答して、ターゲット・スタックで、クライアントからＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信するステップであって、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーをルーティング・スタックに転送するべきである旨を示すモビリティ・ヘッダを含む、受信するステップと、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーを、ターゲット・スタックからルーティング・スタックに送信するステップと、をさらに有する方法を提供する。
【００２９】
好ましくは、本発明は、クライアントとターゲット・スタックとの間での直接通信を可能にするために、クライアント側のクライアント、ルーティング・スタック、およびターゲット・スタックの間に接続を確立するステップと、接続が確立された旨のインジケーションを、クライアントからルーティング・スタックに送信するステップと、をさらに有する方法を提供する。
【００３０】
好ましくは、本発明は、送信されたインジケーションをルーティング・スタックで受信するステップと、送信されたインジケーションをターゲット・スタックに転送するステップとをさらに有し、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するステップは、Ｃａｒｅ−ｏｆ  ＴｅｓｔメッセージおよびＨｏｍｅ  Ｔｅｓｔメッセージの両方がルーティング・スタックで受信されると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するステップを有する、方法を提供する。
【００３１】
好ましくは、本発明は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有する方法を提供し、この方法は、クライアントでルーティング・スタックから第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信するステップであって、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは確立された接続を終了すべきである旨を示す、受信するステップと、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージに応答して、クライアントの接続に関連付けられたバインディング・キャッシュ・エントリを削除するステップと、をさらに有する。
【００３２】
好ましくは、本発明は、クライアントとターゲット・スタックとの間での直接通信を可能にするために、ホーム・アドレスを気付アドレスにマッピングするバインディング・キャッシュ・エントリをクライアントに作成するステップと、ルーティング・スタックをバイパスして、バインディング肯定応答をクライアントからターゲット・スタックに直接送信するステップと、をさらに有する方法を提供する。
【００３３】
好ましくは、本発明は、ターゲット・スタックからのバインディング肯定応答のコピーをルーティング・スタックで受信するステップと、ルーティング・スタックに関連付けられたルーティング・テーブルを状態情報を含むように更新するステップと、ターゲット・スタックに関連付けられたルーティング・テーブルをターゲット・スタックが更新できるように、状態情報を含むバインディング情報要求をターゲット・スタックに送信するステップと、をさらに有する方法を提供する。
【００３４】
好ましくは、本発明は、ターゲット・スタックに関連付けられたルーティング・テーブルとほぼ同様の、ルーティング・スタックに関連付けられたルーティング・テーブルを、ルーティング・スタックが維持できるように、モバイルＩＰバージョン６メッセージを、ターゲット・スタックからルーティング・スタックで受信するステップを、さらに有する方法を提供する。
【００３５】
好ましくは、本発明は、送信ステップが、ＶＩＰＡでのモバイルＩＰバージョン６の最適化を実行可能にするステップによって先行される、方法を提供する。
【００３６】
好ましくは、本発明は、ｚ／ＯＳバージョン１のリビジョン６を使用して実施される、方法を提供する。
【００３７】
好ましくは、本発明は、クライアントからのターゲット・スタックでの新しい接続要求の通知を、ルーティング・スタックで受信するステップと、ルーティング・スタックに関連付けられたルーティング・テーブルからの、接続に関連付けられたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を、ルーティング・スタックでコピーするステップと、をさらに有する方法を提供する。
【００３８】
好ましくは、本発明は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有する方法を提供し、この方法は、ターゲット・スタックからのクライアントでの新しい接続要求の通知を、ルーティング・スタックで受信するステップと、ルーティング・スタックで、ルーティング・テーブル内に新しい接続に関するエントリが存在するかどうかを判別するステップと、エントリが存在すると判別された場合、既存の接続に関連付けられたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を、ルーティング・テーブルからコピーするステップと、エントリが存在しないと判別された場合、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ルーティング・スタックからクライアントに送信するステップと、をさらに有し、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントがルーティング・スタックをバイパスして第２の選択されたターゲット・スタックと直接通信できるように、新しい接続のための第２の選択されたターゲット・スタックを識別する。
【００３９】
好ましくは、本発明は、クライアントからターゲット・スタックへバインディング・リフレッシュ要求を送信するステップをさらに有する方法を提供し、バインディング・リフレッシュ要求は、ターゲット・スタックから他のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するための要求を含む。
【００４０】
好ましくは、本発明は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有する方法を提供し、この方法は、ターゲット・スタックに関する問題を、ルーティング・スタックで検出するステップと、問題の検出に応答して、クライアントでバインディング・キャッシュ・エントリを削除するステップと、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ルーティング・スタックからクライアントに送信するステップと、をさらに有し、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントとルーティング・スタックとの間の直接通信を可能にするために、気付アドレスおよびホーム・アドレスの両方をＶＩＰＡに設定するべきである旨を示す。
【００４１】
好ましくは、本発明は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有する方法を提供し、この方法は、クライアントでバインディング・キャッシュ・エントリを削除できるように、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ルーティング・スタックからクライアントに送信するステップをさらに有する。
【００４２】
第２の態様から見ると、本発明は、接続に関する要求に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、クライアントでルーティング・スタックから受信するステップを有する、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングの方法を提供し、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントがルーティング・スタックをバイパスして選択されたターゲット・スタックと直接通信できるように、選択されたターゲット・スタックを識別する。
【００４３】
好ましくは、本発明は、選択されたターゲット・スタックへの接続に関する要求を、ルーティング・スタックから、選択されたターゲット・スタックで受信するステップと、クライアントがルーティング・スタックをバイパスして選択されたターゲット・スタックと直接通信できるように、接続要求がターゲット・スタックによって受け入れられた旨を示す通知を、選択されたターゲット・スタックから送信するステップと、を有する、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングの方法を提供する。
【００４４】
第３の態様から見ると、本発明は、接続に関する要求をクライアントから受信するように、および、要求の受信に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するように構成された、ルーティング・スタックを備え、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、ルーティング・スタックをバイパスしてクライアントがターゲット・スタックと直接通信できるように、選択されたターゲット・スタックを識別する、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのためのシステムを備える。
【００４５】
好ましくは、本発明は、クライアントが、ルーティング・スタックに関連付けられたＩＰアドレスをターゲット・スタックに関連付けられたＩＰアドレスにマッピングする、バインディング・キャッシュ・エントリを作成できるように、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが、ルーティング・スタックに関連付けられたインターネット・プロトコル・アドレスとして接続のホーム・アドレスを、および、ターゲット・スタックに関連付けられたＩＰアドレスとして接続の気付アドレスを有する、システムを提供する。
【００４６】
好ましくは、本発明は、ルーティング・スタックに関連付けられたＩＰアドレスが仮想ＩＰアドレス（ＶＩＰＡ）を有する、システムを提供する。
【００４７】
好ましくは、本発明は、さらにルーティング・スタックが、モバイルＩＰバージョン６のＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントに送信するように構成され、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、モバイルＩＰバージョン６のＨｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに戻すようにとのクライアントへの要求を含み、さらにルーティング・スタックが、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージの送信に応答して、ルーティング・スタックでクライアントからＨｏｍｅ  Ｔｅｓｔメッセージを受信するように、および、モバイルＩＰバージョン６のＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージをターゲット・スタックに関するクライアントに送信するように、構成され、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  ＩｎｉｔメッセージのソースＩＰアドレスはターゲット・スタックのＩＰアドレスに設定される、システムを提供する。
【００４８】
好ましくは、本発明は、さらにターゲット・スタックが、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージに応答して、クライアントからＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信するように構成され、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーをルーティング・スタックに転送するべきである旨を示すモビリティ・ヘッダを含み、さらにターゲット・スタックが、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーをルーティング・スタックに送信するように構成された、システムを提供する。
【００４９】
好ましくは、本発明は、さらにクライアントが、クライアントとターゲット・スタックとの間での直接通信を可能にするために、クライアント、ルーティング・スタック、およびターゲット・スタックの間に接続を確立するように、ならびに、接続が確立された旨のインジケーションをルーティング・スタックに送信するように、構成されたシステムを提供する。
【００５０】
好ましくは、本発明は、さらにルーティング・スタックが、送信されたインジケーションをルーティング・スタックで受信するように、送信されたインジケーションをターゲット・スタックに転送するように、ならびに、Ｃａｒｅ−ｏｆ  ＴｅｓｔメッセージおよびＨｏｍｅ  Ｔｅｓｔメッセージの両方がルーティング・スタックで受信されると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するように、構成されたシステムを提供する。
【００５１】
好ましくは、本発明は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有するシステムを提供し、さらにクライアントが、ルーティング・スタックから第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信するように構成され、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは確立された接続を終了すべきである旨を示し、さらにクライアントが、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージに応答して、クライアントの接続に関連付けられたバインディング・キャッシュ・エントリを削除するように、構成される。
【００５２】
好ましくは、本発明は、さらにクライアントが、クライアントとターゲット・スタックとの間での直接通信を可能にするために、ホーム・アドレスを気付アドレスにマッピングするバインディング・キャッシュ・エントリを作成するように、および、ルーティング・スタックをバイパスして、バインディング肯定応答をターゲット・スタックに直接送信するように、構成されたシステムを提供する。
【００５３】
好ましくは、本発明は、さらにルーティング・スタックが、ターゲット・スタックからバインディング肯定応答のコピーを受信するように、ルーティング・スタックに関連付けられたルーティング・テーブルを状態情報を含むように更新するように、および、ターゲット・スタックに関連付けられたルーティング・テーブルをターゲット・スタックが更新できるように状態情報を含むバインディング情報要求をターゲット・スタックに送信するように、構成されたシステムを提供する。
【００５４】
第４の態様から見ると、本発明は、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラム製品であって、前述のように本発明を実施するために当該製品がコンピュータ上で実行された場合、実行するためのソフトウェア・コード部分を備える、コンピュータ・プログラム製品を提供する。
【００５５】
第５の態様から見ると、本発明は、さらにルーティング・スタックが、ターゲット・スタックに関連付けられたルーティング・テーブルとほぼ同様の、ルーティング・スタックに関連付けられたルーティング・テーブルを、ルーティング・スタックが維持できるように、モバイルＩＰバージョン６メッセージをターゲット・スタックから受信するように構成された、システムを提供する。
【００５６】
好ましくは、本発明は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが第１のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを有するシステムを提供し、さらにルーティング・スタックが、ターゲット・スタックに関する問題を検出するように、問題の検出に応答してクライアントでバインディング・キャッシュ・エントリを削除するように、および、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するように、構成され、第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントとルーティング・スタックとの間の直接通信を可能にするために、気付アドレスおよびホーム・アドレスの両方をＶＩＰＡに設定するべきである旨を示す。
【００５７】
好ましくは、本発明は、ルーティング・スタックでの接続に関する要求をクライアントから受信するための手段と、要求の受信に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをルーティング・スタックからクライアントに送信するための手段とを備え、クライアントがルーティング・スタックをバイパスしてターゲット・スタックと直接通信できるように、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージが選択されたターゲット・スタックを識別する、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのためのシステムを提供する。
【発明を実施するための最良の形態】
【００５８】
以下で、本発明の諸実施形態が示された添付の図面を参照しながら、本発明についてより詳細に説明する。しかしながら、この発明は、多くの代替形式で具体化することが可能であり、本明細書に示された諸実施形態に限定されるものと解釈すべきではない。
【００５９】
したがって、本発明は様々な修正および代替形態が可能であるが、図面には、例としてその特定の実施形態が示されており、本明細書で詳細に説明される。しかしながら、本発明を、開示された特定の形式に限定する意図はなく、むしろ本発明は、特許請求の範囲によって定義された本発明の趣旨および範囲内にある、すべての修正、等価、および代替の形態をカバーするものであることを理解されたい。図面の説明全体を通じて、同じ番号は同じ要素を表す。
【００６０】
本明細書で使用される用語は、単に特定の実施形態を説明するためのものであり、本発明を制限することを意図していない。本明細書で使用される場合、文脈が明確に示していない限り、単数形は複数形も同様に含む。「有する」あるいは「有し」またはその両方の用語は、本明細書で使用される場合、定められた選択的機能、整数、ステップ、演算、要素、あるいはコンポーネント、またはそれらすべての存在を指定するものであるが、１つまたは複数の他の選択的機能、整数、ステップ、演算、要素、コンポーネント、あるいはそれらのグループ、またはそれらすべての、存在または追加を除外するものではないことを、さらに理解されよう。「〜あるいは〜、またはその両方（それらすべて）」という用語は、本明細書で使用される場合、１つまたは複数の関連するリストされた項目のうちのいずれかおよびすべての組み合わせを含む。
【００６１】
特に定義されていない限り、本明細書で使用されるすべての用語（技術および科学用語を含む）は、本発明が属する分野の当業者によって一般的に理解される意味と同じ意味を有する。一般に使用される辞書に定義されたような用語は、関連分野との関連におけるそれらの意味と一致する意味を有するものと解釈すべきであり、本明細書で明示的に定義されていない限り、理想的または過度に形式的な意味で解釈されることのないことを、さらに理解されよう。
【００６２】
以下で、本発明の諸実施形態に従った方法、装置（システム）、あるいはコンピュータ・プログラム製品、またはそれらすべての、ブロック図あるいは流れ図またはその両方を参照しながら、本発明について説明する。ブロック図あるいは流れ図またはその両方のそれぞれのブロック、ならびに、ブロック図あるいは流れ図またはその両方のブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることを理解されよう。これらのコンピュータ・プログラム命令は、コンピュータあるいは他のプログラム可能データ処理装置またはその両方の、プロセッサを介して実行される命令が、ブロック図あるいは流れ図のブロックまたはその両方で指定された機能／活動を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、あるいはマシンを生成するための他のプログラム可能データ処理装置、またはそれらすべての、プロセッサに提供することができる。
【００６３】
これらのコンピュータ・プログラム命令は、コンピュータ読み取り可能メモリに格納することも可能であり、コンピュータ読み取り可能メモリに格納された命令が、ブロック図あるいは流れ図のブロックまたはその両方で指定された機能／活動を実施する命令を含む製品を製造するように、コンピュータまたは他のプログラム可能データ処理装置に特定の方法で機能するよう指示することが可能である。
【００６４】
コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能装置上で実行する命令が、ブロック図あるいは流れ図のブロックまたはその両方で指定された機能／活動を実施するためのステップを提供するように、コンピュータ実施プロセスを生成するための一連の動作ステップをコンピュータまたは他のプログラム可能装置上で実行させるために、コンピュータまたは他のプログラム可能データ処理装置にロードすることも可能である。
【００６５】
したがって本発明は、ハードウェアあるいはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード、その他）またはその両方で具体化することが可能である。さらに本発明は、命令実行システムによって、または命令実行システムに関連して使用するために、メディア内で具体化された、コンピュータ使用可能またはコンピュータ読み取り可能プログラム・コードを有する、コンピュータ使用可能またはコンピュータ読み取り可能ストレージ・メディア上のコンピュータ・プログラム製品の形を取ることもできる。本明細書との関連において、コンピュータ使用可能またはコンピュータ読み取り可能メディアは、命令実行システム、装置、またはデバイスによって、あるいはこれらに関連して、使用するためのプログラムを、包含、格納、通信、伝搬、または移送することができる、任意のメディアとすることができる。
【００６６】
コンピュータ使用可能またはコンピュータ読み取り可能メディアは、たとえば、電子、磁気、光、電磁、赤外線、または半導体の、システム、装置、デバイス、または伝搬メディアとすることができるが、これらに限定されるものではない。コンピュータ読み取り可能メディアのより具体的な例（非完全リスト）には、１本または複数の線を有する電気接続、ポータブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、およびポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）が含まれることになる。
たとえば用紙または他のメディアを光学スキャンし、その後、コンパイル、解釈、または必要であればそれ以外の好適な方法で処理し、さらにその後、コンピュータ・メモリに格納することによって、プログラムを電子的に取り込むことができるため、コンピュータ使用可能またはコンピュータ読み取り可能メディアは、プログラムが印刷された用紙、または他の好適なメディアとすることさえ可能であることに留意されたい。
【００６７】
いくつかの代替実施では、ブロック内に記された機能／活動が、フローチャートに記された順番以外で実行可能であることにも留意されたい。たとえば、連続して示された２つのブロックが、関与する機能／活動に応じて、実際にはほぼ同時に実行されるか、またはブロックが逆の順序で実行される場合がある。
【００６８】
ルーティング・スタックは、新しい接続要求を受信し、最適なターゲット・スタックを選択し、接続要求および後続のデータ・パケットを選択されたターゲット・スタックに送信することができる。モバイルＩＰバージョン４では、ルーティング・スタックは、ＸＣＦリンクを介して接続要求およびデータ・パケットを送信することができる。前述のように、ＸＣＦリンクおよびＣｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔを使用すると、システムに望ましくない遅延が追加される可能性がある。さらに、モバイルＩＰバージョン４とは異なり、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  ＡｇｅｎｔはモバイルＩＰバージョン６をサポートしない。モバイルＩＰバージョン６は、モバイルＩＰバージョン４よりも多くのアドレスを提供するので有利である。したがって、ルーティング・スタックは、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  ＡｇｅｎｔをモバイルＩＰバージョン６と組み合わせて使用することはできない。結果としてルーティング・スタックは、すべての接続要求およびデータ・パケットを処理し、ＸＣＦリンクを介してクライアント・トラフィックを適切なターゲット・スタックに転送しなければならない。
【００６９】
さらに、ｚ／ＯＳバージョン１のリビジョン６に追加されるＳｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒサポートには、２つの主要な問題がある。第１に、ルーティング・スタックは、（Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  ＡｇｅｎｔがモバイルＩＰバージョン６をサポートしないため）、クライアントからターゲット・スタックに送られたすべてのインバウンド・データ・パケットを処理および転送する。これによって、データ・パス内に余分なホップが追加され、ルーティング・スタックで追加の中央処理ユニット（ＣＰＵ）サイクルが消費される。第２に、クライアントからターゲット・スタックに送られるすべてのトラフィックは、ＸＣＦリンクをトラバースする。前述のように、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  ＡｇｅｎｔおよびＸＣＦリンクは、最適な性能を提供しない。
【００７０】
したがって、図１から１２に関して論じる本発明の諸実施形態は、モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用した負荷バランシングのための方法、システム、およびコンピュータ・プログラム製品を提供する。言い換えれば、本発明のいくつかの実施形態に従い、モバイルＩＰバージョン６の概念を使用して、クライアントが、ルーティング・スタックを完全にバイパスして、データ・パケットをターゲット・スタックに直接送信できるようにする。次に、モバイルＩＰバージョン６の簡単な概要について論じる。本明細書で提供される概要は、プロトコル機能の完全な概要ではないことを理解されよう。モバイルＩＰバージョン６プロトコルのより完全な説明は、Mobility Support in IP Version 6 (RFC 3775)に記載されている。
【００７１】
モバイル・ノードは、通常、現在そのホーム・リンクに接続されているか、またはホームから離れているかにかかわらず、そのホーム・アドレスにアドレス指定可能であると予測される。本明細書で使用される場合、「ホーム・アドレス」とは、そのホーム・リンク上のそのホーム・サブネット接頭部内のモバイル・ノードに割り当てられた、ＩＰアドレスのことである。モバイル・ノードがホームにある場合、そのホーム・アドレスにアドレス指定されたパケットは、当業者に知られた従来のインターネット・ルーティング・メカニズムを使用して、モバイル・ノードのホーム・リンクにルーティングされる。
【００７２】
他方で、モバイル・ノードがホームから離れた何らかの外部リンクに接続された場合、１つまたは複数の気付アドレスにもアドレス指定可能である。本明細書で使用される場合、「気付アドレス」とは、特定の外部リンクのサブネット接頭部を有するモバイル・ノードに関連付けられたＩＰアドレスのことである。モバイル・ノードは、ステートレスまたはステートフルの自動構成などの従来のＩＰバージョン６メカニズムを介して、その気付アドレスを獲得することができる。モバイル・ノードがこの場所にある限り、この気付アドレスにアドレス指定されたパケットは、モバイル・ノードにルーティングされることになる。モバイル・ノードは、移動中であるが依然として以前のリンクに到達可能である場合など、いくつかの気付アドレスからパケットを受け入れることもできる。
【００７３】
モバイル・ノードのホーム・アドレスと気付アドレスの間の関係は、モバイル・ノードの「バインディング」と呼ばれる。ホームから離れている間、モバイル・ノードはその１次気付アドレスをそのホーム・リンク上のルータに登録し、そのルータに、モバイル・ノードの「ホーム・エージェント」として機能するように要求する。モバイル・ノードは、「Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ」をホーム・エージェントに送信することによって、このバインディング登録を実行する。ホーム・エージェントは、「バインディング肯定応答」メッセージを戻すことによって、モバイル・ノードに応答する。
【００７４】
本明細書では、モバイル・ノードと通信中のいずれのノードも、モバイル・ノードの「コレスポンデント・ノード」と呼ばれ、それ自体を定常ノードまたはモバイル・ノードのいずれかとすることができる。モバイル・ノードは、それらの現在の場所に関する情報をコレスポンデント・ノードに提供することができる。たとえばモバイル・ノードは、それらの現在の場所に関する情報を、コレスポンデント登録を使用して提供することができる。バインディングの確立を許可するために、戻りルーティング可能性テストを実行することができる。
【００７５】
モバイル・ノードとコレスポンデント・ノードとの間の通信には、２つの可能なモードがある。第１のモードは双方向トンネリングであり、通常は、コレスポンデント・ノードからのモバイルＩＰバージョン６のサポートを必要とせず、たとえモバイル・ノードがその現在のバインディングをコレスポンデント・ノードに登録していない場合であっても使用可能である。コレスポンデント・ノードからのパケットはホーム・エージェントにルーティングされ、その後、モバイル・ノードにトンネリングされる。コレスポンデント・ノードへのパケットは、モバイル・ノードからホーム・エージェントにトンネリング（「逆トンネリング」）され、その後、通常はホーム・ネットワークからコレスポンデント・ノードへルーティングされる。このモードでは、ホーム・エージェントはプロキシＮｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙを使用して、ホーム・リンク上のモバイル・ノードのホーム・アドレス（単数または複数）にアドレス指定された任意のＩＰバージョン６パケットをインターセプトする。インターセプトされた各パケットは、モバイル・ノードの１次気付アドレスにトンネリングされる。このトンネリングは、ＩＰバージョン６のカプセル化を使用して実行される。
【００７６】
第２のモードは「ルート最適化」であり、通常、モバイル・ノードはコレスポンデント・ノードでその現在のバインディングを登録する必要がある。コレスポンデント・ノードからのパケットは、モバイル・ノードの気付アドレスに直接ルーティングすることができる。任意のＩＰバージョン６の宛先にパケットを送信する場合、コレスポンデント・ノードはパケットの宛先アドレスに対するエントリに関して、そのキャッシュ・バインディングをチェックする。この宛先アドレスに対するキャッシュ・バインディングが見つかった場合、ノードは新しいタイプ２のＩＰバージョン６ルーティング・ヘッダ（ソース・アドレスおよび宛先アドレス）を使用し、このバインディングに示された気付アドレスによってモバイル・ノードにパケットをルーティングする。
【００７７】
モバイル・ノードの気付アドレスにパケットを直接ルーティングすることによって、最短の通信パスを使用することができる。モバイル・ノードのホーム・エージェントおよびホーム・リンクでの輻輳も解消することができる。加えて、パス上のホーム・エージェントまたはネットワークとの間に発生する可能性のある障害による影響も軽減される。
【００７８】
パケットをモバイル・ノードに直接ルーティングする場合、コレスポンデント・ノードは、ＩＰバージョン６ヘッダの宛先アドレスをモバイル・ノードの気付アドレスに設定する。新しいタイプ２のＩＰバージョン６ルーティング・ヘッダも、所望のホーム・アドレスを搬送するためにパケットに追加される。同様に、モバイル・ノードは、パケットのＩＰバージョン６ヘッダのソース・アドレスをその現在の気付アドレスに設定する。モバイル・ノードは、そのホーム・アドレスを搬送するために、新しいＩＰバージョン６「ホーム・アドレス」宛先オプションを追加する。これらのパケットにホーム・アドレスを含めることによって、ネットワーク層の上の、たとえばトランスポート層での気付アドレスの使用をトランスペアレントにする。
【００７９】
さらにモバイルＩＰバージョン６は、複数のホーム・エージェントをサポートし、ホーム・ネットワークの再構成のサポートを制限する。これらのケースでは、モバイル・ノードは、それ自体のホーム・エージェントのＩＰアドレスを知らない場合があり、ホーム・サブネット接頭部でさえも、経時的に変化する場合がある。「動的ホーム・エージェント・アドレス発見」と呼ばれるメカニズムは、たとえばモバイル・ノードがホームから離れている場合であっても、モバイル・ノードが、そのホーム・リンク上のホーム・エージェントのＩＰアドレスを動的に発見できるようにする。モバイル・ノードは、「モバイル接頭部発見」メカニズムを介して、ホーム・サブネット接頭部に関する新しい情報も習得することができる。
【００８０】
モバイルＩＰバージョン６は、モバイル・ノードが実際に、その要求された気付アドレスならびにそのホーム・アドレスでアドレス指定可能であるという何らかの妥当な保証を、コレスポンデント・ノードが得られるようにするために、戻りルーティング可能性プロシージャを使用する。この保証を伴う場合のみ、コレスポンデント・ノードはモバイル・ノードからＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受け入れることが可能であり、次に、モバイル・ノードのデータ・トラフィックをその要求された気付アドレスに向けて送るようにコレスポンデント・ノードに命令することになる。
【００８１】
たとえば、２つの要求されたアドレスにアドレス指定されたパケットがモバイル・ノードにルーティングされたかどうかを判別するためのテストを実行することができる。モバイル・ノードは、通常、コレスポンデント・ノードがそれらのアドレスに伝送するある種のデータ（「ｋｅｙｇｅｎトークン」）を受信した旨の証明を与えられる場合に限って、このテストに合格することができる。このデータは、モバイル・ノードによって、Ｋｂｍと示されるバインディング管理キーに結合される。
【００８２】
Ｈｏｍｅ  Ｔｅｓｔ  ＩｎｉｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージが同時に送られる。このプロシージャは、コレスポンデント・ノードでの処理がほとんど必要なく、Ｈｏｍｅ  ＴｅｓｔおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを即時に、おそらくほぼ同時に戻すことができる。４つのメッセージは、戻りルーティング可能性プロシージャ、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージ、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージ、Ｈｏｍｅ  Ｔｅｓｔメッセージ、およびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを形成する。
【００８３】
最初にＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージに言及すると、モバイル・ノードは、ｈｏｍｅ  ｋｅｙｇｅｎトークンを獲得するために、（ホーム・エージェントを介して）コレスポンデント・ノードにＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを伝送する。メッセージのコンテンツは、ホーム・アドレスに等しいとすることができるソース・アドレス、コレスポンデントに等しいとすることができる宛先アドレス、パラメータ、およびｈｏｍｅ  ｉｎｉｔクッキーを含むことが可能である。Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、モバイル・ノードのホーム・アドレスをコレスポンデント・ノードに搬送する。モバイル・ノードは、コレスポンデント・ノードが後で戻すｈｏｍｅ  ｉｎｉｔクッキーに沿っても伝送する。Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、ホーム・エージェントを介して逆トンネリングされる。逆トンネリングに関するヘッダおよびアドレスは、前述のメッセージ・コンテンツから省略されていることを理解されよう。モバイル・ノードは、そのプロトコル・メッセージが所望のコレスポンデント・ノードによって処理される旨の何らかの保証を得るために、これらのクッキー値を記憶する。
【００８４】
次にＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージに言及すると、モバイル・ノードは、ｃａｒｅ  ｏｆ  ｋｅｙｇｅｎトークンを獲得するために、（ホーム・エージェントを介さずに、直接）コレスポンデント・ノードにＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを伝送する。このメッセージのコンテンツは、気付アドレスに等しいとすることができるソース・アドレス、コレスポンデントに等しいとすることができる宛先アドレス、パラメータ、およびｃａｒｅ  ｏｆ  ｉｎｉｔクッキーを含むことが可能である。Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、モバイル・ノードの気付アドレスをコレスポンデント・ノードに搬送する。モバイル・ノードは、コレスポンデント・ノードが後で戻すｃａｒｅ  ｏｆ  ｉｎｉｔクッキーに沿っても伝送する。Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージは、コレスポンデント・ノードに直接送信される。
【００８５】
次にＨｏｍｅ  Ｔｅｓｔメッセージに言及すると、Ｈｏｍｅ  ＴｅｓｔメッセージはＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージに応答して送信される。これは、ホーム・エージェントを介して送信される。メッセージのコンテンツは、コレスポンデントに等しいとすることができるソース・アドレス、ホーム・アドレスに等しいとすることができる宛先アドレス、パラメータ、ｈｏｍｅ  ｉｎｉｔクッキー、ｈｏｍｅ  ｋｅｙｇｅｎトークン、およびｈｏｍｅ  ｎｏｎｃｅインデックスを含むことが可能である。Ｈｏｍｅ  Ｔｅｓｔメッセージは、ホーム・ネットワークを介してモバイル・ノードに送信され、ホーム・エージェントがメッセージをモバイル・ノードにトンネリングすることになると想定される。これは、モバイル・ノードがすでにＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをホーム・エージェントに送信したことが必要であることを意味するため、ホーム・エージェントは、戻りルーティング可能性プロシージャの前に、モバイル・ノードに対する新しい気付アドレスを受信および許可していることになる。セキュリティを向上させるために、ホーム・エージェントとモバイル・ノードとの間で渡されるデータは、検査および受動的攻撃を免れる。こうした保護は、ホーム・エージェントからモバイル・ノードにトンネリングされる際にｈｏｍｅ  ｋｅｙｇｅｎトークンを暗号化することによって得ることができる。
【００８６】
ホーム・エージェントとコレスポンデント・ノードとの間のルート上にあるノードからメッセージが発せられることを保証するために、モバイル・ノードからのｈｏｍｅ  ｉｎｉｔクッキーがＨｏｍｅ  Ｔｅｓｔメッセージで戻される。コレスポンデント・ノードがｈｏｍｅ  ｋｅｙｇｅｎトークンを作成する際に使用したｎｏｎｃｅ値を後で効率的に見つけられるように、ｈｏｍｅ  ｎｏｎｃｅインデックスがモバイル・ノードに送達される。
【００８７】
次にＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージに言及すると、Ｃａｒｅ−ｏｆ  ＴｅｓｔメッセージはＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージに応答して送信される。このメッセージはホーム・エージェントを介して送信されず、モバイル・ノードに直接送信される。メッセージのコンテンツは、コレスポンデントに等しいとすることができるソース・アドレス、気付アドレスに等しいとすることができる宛先アドレス、パラメータ、ｃａｒｅ  ｏｆ  ｉｎｉｔクッキー、ｃａｒｅ  ｏｆ  ｋｅｙｇｅｎトークン、およびｃａｒｅ  ｏｆ  ｎｏｎｃｅインデックスを含むことが可能である。
【００８８】
モバイル・ノードがＨｏｍｅ  ＴｅｓｔおよびＣａｒｅ−ｏｆ  Ｔｅｓｔの両方のメッセージを受信した場合、戻りルーティング可能性プロシージャは完了する。このプロシージャの結果として、モバイル・ノードはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをコレスポンデント・ノードに送信する必要のあるデータを有する。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを使用して、以前に確立されたバインディングを削除することもできる。
【００８９】
したがって、図１から１２に関して以下で論じる本発明のいくつかの実施形態により、モバイルＩＰバージョン６の概念をＩＢＭのＳｙｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒにマッピングすることができる。たとえば、クライアントはコレスポンデント・ノードの役割を想定することが可能であり、ルーティング・スタックはホーム・エージェントの役割を想定することが可能であり、ターゲット・スタックはモバイル・ノードの役割を想定することが可能である。したがって、ローカル・エリア・ネットワーク（ＬＡＮ）間をローミングしているモバイル・クライアントの代わりに、以下でより詳細に論じるように、モバイルＩＰバージョン６は動的仮想インターネット・プロトコル・アドレス（ＤＶＩＰＡ）をルーティング・スタックからターゲット・スタックに移動させる。本明細書では、本発明の諸実施形態についてＤＶＩＰＡおよびＶＩＰＡに関して論じるが、本発明の諸実施形態がこの構成に限定されないことを理解されよう。本発明の教示を逸脱することなく、当業者に知られた任意のアドレッシング・スキームを使用することができる。たとえば、任意のＩＰアドレスを使用することができる。
【００９０】
次に本発明のいくつかの実施形態について、図１から１２に関して論じる。ここで図１を参照しながら、本発明のいくつかの実施形態に従って構成された、たとえばクライアント、ルーティング・スタック、ターゲット・スタックなどのコンピューティング・デバイス、すなわちデータ処理システム１３０の例示的実施形態について論じる。たとえばパーソナル・コンピュータ、ＰＤＡ、無線端末／電話などに組み込み可能な、データ処理システム１３０は、たとえば、キーボードまたはキーパッドなどの入力デバイス、ディスプレイ、スピーカ、あるいはマイクロフォン、またはそれらすべてを含む、ユーザ・インターフェース１４４と、プロセッサ１３８と通信するメモリ１３６とを含むことができる。データ処理システム１３０は、同様にプロセッサ１３８と通信するＩ／Ｏデータ・ポート１４６を、さらに含むことができる。Ｉ／Ｏデータ・ポート１４６を使用して、データ処理システム１３０と他のコンピュータ・システムまたはネットワークとの間で、たとえばインターネット・プロトコル（ＩＰ）接続を使用して情報を転送することができる。これらのコンポーネントは、本明細書に記載されたとおりに動作するように構成可能な、多くの従来のデータ処理システム内で使用されるような従来のコンポーネントとすることができる。
【００９１】
次に図２を参照しながら、本発明のいくつかの実施形態に従った、１つまたは複数のクライアント、ルーティング・スタック、あるいはターゲット・スタック、またはそれらすべてを含む、システムを示すブロック図について論じる。システム２００の各ブロックは、図１に関して前述した要素、たとえばＩ／Ｏデータ・ポート１４６、プロセッサ１３８、メモリ１３６、およびユーザ・インターフェース１４４のうちの、１つまたは複数を含むことができることを理解されよう。クライアント、ルーティング・スタック、ターゲット・スタックなどが当業者に良く知られていること、したがって、本明細書では本発明の諸実施形態に関連する細部のみについて詳細に論じることを、さらに理解されよう。
【００９２】
図２に示されるように、システム２００は、クライアント２０５、ルーティング・スタック２１０、ならびに、第１、第２、および第３のターゲット・スタック２２０、２３０、および２４０を含む。図２は単一のクライアント、単一のルーティング・スタック、および３つのターゲット・スタックのみを含むが、本発明の諸実施形態はこの構成に限定されないことを理解されよう。たとえば、本発明の範囲を逸脱することなく、複数のクライアント、複数のルーティング・スタック、および２つ未満または３つより多くのターゲット・スタックが提供可能である。本発明のいくつかの実施形態では、システム２００は、たとえばｚ／ＯＳバージョン１のリビジョン６とすることができる。
【００９３】
モバイル・インターネット・プロトコル（ＩＰ）バージョン６を使用して負荷バランシングを提供するために、接続Ａを介してクライアント２０５から接続要求を受信するように、ルーティング・スタック２１０を構成することができる。接続に関する要求の受信に応答して、前述のモバイルＩＰバージョン６の「Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ」をクライアント２０５に伝送することができる。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、本明細書で論じられる本発明のいくつかの実施形態に従って、クライアント２０５がルーティング・スタックをバイパスして直接通信可能な、選択されたターゲット・スタック（２２０、２３０、２４０）を識別することができる。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、接続の「ホーム・アドレス」を、たとえばルーティング・スタック２１０に関連付けられた仮想インターネット・プロトコル・アドレス（ＶＩＰＡ）として、および、接続の「気付アドレス」を、たとえばターゲット・スタック２４０に関連付けられたインターネット・プロトコル・アドレス（ＩＰ）として、識別することができる。本明細書では、例示のために、選択されたターゲット・スタックとして第３のターゲット・スタック２４０を使用する。クライアント２０５は、選択されたターゲット・スタック２４０の気付アドレスにＶＩＰＡのホーム・アドレスをマッピングする、バインディング・キャッシュ・エントリを作成する。したがってクライアント２０５は、パスＡを使用してルーティング・スタック２１０を介する代わりに、パスＢを介して、選択されたターゲット・スタック２４０と直接通信することができる。したがって、本発明のいくつかの実施形態により、Ｃｉｓｃｏ  Ｒｏｕｔｉｎｇ  ＡｇｅｎｔおよびＸＣＦによって発生する遅延を経験しないことができる。
【００９４】
図２に示されるように、クライアントは、ホーム・アドレスを気付アドレスに、すなわち、ルーティング・スタックに関連付けられた仮想インターネット・プロトコル・アドレス（ＶＩＰＡ）をターゲット・スタックに関連付けられたインターネット・プロトコル・（ＩＰ）アドレスに、マッピングする、バインディング・キャッシュ・エントリを格納することができる、キャッシュ・メモリ２５０を維持する。ルーティング・スタック２１０およびターゲット・スタック２２０、２３０、および２４０は、それぞれ内部に、ルーティング・テーブル２６０、２７０、および２７５を維持する。ターゲット・スタック２４０の障害の場合、ルーティング・スタック２１０および選択されたターゲット・スタック２４０のルーティング・テーブルが同じ可能性があり、ルーティング・スタック２１０は制御を再開することができる。
【００９５】
本発明のいくつかの実施形態によれば、ルーティング・スタック２１０はほぼすべての必要なモバイルＩＰバージョン６サポートを含む。たとえばルーティング・スタックは、Ｌｉｎｕｘ  ｏｎ  ｚＳｅｒｉｅｓで実行中のＩｎｔｅｒａｃｔｉｖｅ  Ｎｅｔｗｏｒｋ  Ｄｉｓｐａｔｃｈｅｒ（ＩＮＤ）とすることができる。Ｌｉｎｕｘ  ｏｎ  ｚＳｅｒｉｅｓはモバイルＩＰバージョン６サポートを含み、このサポートを追加するコスト全体を削減することができる。ルーティング・スタック２１０は、ターゲット・スタック２２０、２３０、および２４０によって転送される任意のモバイルＩＰバージョン６フローを、あたかもクライアントが送信したように処理する。言い換えれば、ルーティング・スタック２１０は、ターゲット・スタック２２０、２３０、および２４０の代わりにモバイルＩＰバージョン６フローを送信するように、さらに応答を処理するように、構成される。
【００９６】
ルーティング・スタック２１０は、ソースおよび宛先のＩＰアドレス・ペア（ポート番号も含む、４タプルではなく２タプル）を使用して、接続テーブル（ルーティング・テーブル２６０）を管理する。ルーティング・スタック２１０は、可能であれば必ず、特定のクライアントから特定のＤＶＩＰＡへのすべての接続について、同じターゲット・スタック２２０、２３０、および２４０を選択するように構成することができる。
【００９７】
ルーティング・スタック２１０は、単一のクライアント２０５が同じＤＶＩＰＡへの並列な接続を確立し、その接続が２つまたはそれ以上のターゲット・スタック２２０、２３０、および２４０にルーティングされた場合、そのケースを検出するように構成することができる。これが発生すると、ルーティング・スタックは、クライアント２０５のバインディング・キャッシュ・エントリ２５０を削除することができる。以下で、本発明の諸実施形態のこの態様について論じる。
【００９８】
接続が終了した場合、クライアント２０５上の接続に関連付けられたバインディング・キャッシュ・エントリをクライアントが削除することを要求するように、ルーティング・スタックを構成することができる。ルーティング・スタック２１０は、クライアント２０５とターゲット・スタック２２０、２３０、および２４０との間の時限アフィニティ（affinity）が満了するまで、要求の送信を遅延させるように構成することができる。
【００９９】
ターゲット・スタックに障害が発生した場合、ルーティング・スタック２１０は、選択されたターゲット・スタック２２０、２３０、および２４０に関連付けられた気付アドレスを有するクライアント上のすべてのバインディング・キャッシュ・エントリを削除することをクライアント２０５に要求するように、構成することができる。ルーティング・スタックがＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信した場合、ルーティング・スタック２１０は、最新の使用されたシーケンス番号を結合機構（ＸＣＦ）に格納するように構成することができる。バックアップ・ルーティング・スタックは、以下で詳細に説明する障害が１次ルーティング・スタック２１０で発生した場合に、そのシーケンス番号を使用することができる。
【０１００】
ターゲット・スタック２２０、２３０、および２４０は、ターゲット・スタック２２０、２３０、および２４０に障害が発生した場合、ルーティング・スタックがすべての必要な情報を維持できるように、モビリティ・ヘッダを含むパケットをルーティング・スタック２１０に転送するように構成することができる。モビリティ・ヘッダは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージのコピーをルーティング・スタック２１０に転送するべきである旨を示す。パケットが、モビリティ・ヘッダに加えてデータも含む場合、このデータも同様に処理するように、ターゲット・スタック２２０、２３０、および２４０を構成することができる。ターゲット・スタック２２０、２３０、および２４０は、既存の接続に対してタイプ２のルーティング・ヘッダ（ソース・アドレスおよび宛先アドレス）を含むパケットを処理するように、構成することができる。
【０１０１】
たとえば、ターゲット・スタック２２０、２３０、および２４０が、ＤＶＩＰＡに関する新しい接続要求をクライアント２０５から受信した場合、この接続要求はタイプ２のルーティング・ヘッダを含み、アプリケーションはターゲット・ポート上で聴取（listen）しておらず、ターゲット・スタック２２０、２３０、および２４０は、新しい接続要求を受け入れるように構成することができる。ターゲット・スタック２２０、２３０、および２４０は、ルーティング・スタックに新しい接続を通知するように構成することができる。
【０１０２】
最終的に、ターゲット・スタック２２０、２３０、および２４０が、タイプ２のルーティング・ヘッダを含む新しい接続要求以外のパケットを受信し、ターゲット・スタック２２０、２３０、および２４０が接続について認識していない場合、ターゲット・スタック２２０、２３０、および２４０は、ルーティング・スタック２１０にパケットを転送するように構成することができる。
【０１０３】
モバイルＩＰバージョン６のルート最適化がＤＶＩＰＡに対して実行可能であり、ターゲット・スタックがモバイルＩＰバージョン６のルート最適化をサポートする場合、本明細書で論じる本発明の諸実施形態が実施できることを理解されよう。ターゲット・スタックがモバイルＩＰｖ６のルート最適化をサポートしていない場合、またはモバイルＩＰバージョン６のルート最適化がＤＶＩＰＡに対して実行可能でない場合、ルーティング・スタックは、当業者に知られた従来の方法を使用して、新しい接続要求に対するターゲット・スタックの選択を続行することができる。
【０１０４】
次に、本発明のいつくかの実施形態に従ったオペレーションについて、図３の流れ図に関して論じる。図３に示されるように、オペレーションはブロック３００で、ルーティング・スタックでの接続に関する要求をクライアントから受信することによって開始される。要求の受信に応答して、モバイルＩＰバージョン６のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージがクライアントに送信される（ブロック３１０）。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、たとえば図２のパスＢによって示されるように、クライアントがルーティング・スタックをバイパスしてターゲット・スタックと直接通信できるように、選択されたターゲット・スタックを識別する。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、クライアントが、ホーム・アドレス（ＶＩＰＡ）を気付アドレス（ＩＰアドレス）にマッピングするバインディング・キャッシュ・エントリを作成できるように、接続のホーム・アドレスをルーティング・スタックに関連付けられた仮想インターネット・プロトコル・アドレス（ＶＩＰＡ）として、および、接続の気付アドレスをターゲット・スタックに関連付けられたインターネット・プロトコル・アドレス（ＩＰ）アドレスとして、識別することができる。
【０１０５】
次に、本発明のいくつかの実施形態に従ったより具体的なシナリオについて、図４から１２の流れ図に関して論じる。ここでは図４を参照しながら、本発明の諸実施形態に従って初期インバウンド接続を確立するプロセスについて論じる。ルーティング・スタックが、その接続テーブル（ルーティング・テーブル）にないクライアントから接続要求を受信した場合、ルーティング・スタックはターゲット・スタックを選択する。ルーティング・スタックがターゲット・スタックを選択する際のプロセスは当業者に知られているため、本明細書では詳細に説明しない。ルーティング・スタックは、クライアントＩＰアドレスおよびＤＶＩＰＡのペア（ソースおよび宛先アドレス）をターゲット・スタックのＩＰアドレスにマッピングするルーティング・テーブル・エントリを作成し、そのルーティング・テーブル・エントリを結合機構に格納する。その後、ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するように進行させる。クライアントがＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信および処理すると、クライアントは後続のＩＰパケットを、ルーティング・スタックをバイパスしてターゲット・スタックに直接送信する。
【０１０６】
本発明のいくつかの実施形態に従ったルーティング・スタックは、同じクライアントからの並列接続のために同じターゲット・スタックを選択するように構成することができる。ルーティング・スタックが、クライアントＩＰアドレスおよびＤＶＩＰＡに関するルーティング・テーブル内にエントリを有する場合、ルーティング・スタックは新しい接続要求に対して同じターゲット・スタックを選択することができる。しかしながら、クライアントは異なるソースＩＰアドレスを使用して同じＤＶＩＰＡに接続することが可能である。この場合、ルーティング・スタックは、これがクライアントから同じＤＶＩＰＡへの並列接続であることを認識していない可能性がある。このシナリオについては、図９の流れ図に関して以下で詳細に論じる。
【０１０７】
図４に示されるように、ルーティング・スタックが新しい接続要求を受信すると（フロー１）、ルーティング・スタックは、同じクライアントＩＰアドレスからの既存の接続があるかどうかを判別するために、その接続ルーティング・テーブルをチェックする。既存の接続がある場合、ルーティング・スタックは、既存の接続と同じターゲット・スタックに接続要求を送信する。図４に示されたフローの場合のように、ルーティング・テーブル内に既存のエントリがないと判別された場合、ルーティング・スタックは新しいターゲット・スタックを選択し、新しい接続のための新しいエントリをそのルーティング・テーブル内に作成し、選択されたターゲット・スタックに接続要求を転送する（フロー２）。
【０１０８】
ターゲット・スタックは接続要求を受信および処理し、肯定応答をクライアントに戻す（フロー３）。ターゲット・スタックは、新しい接続のためのルーティング・テーブルのコピー内にエントリを作成する。さらにターゲット・スタックは、接続要求を受信および受け入れたことをルーティング・スタックに通知する（フロー４）。たとえばＶＩＰＡＤＩＳＴ  ＮＥＷＣＯＮＮの通知を受信すると、ルーティング・スタックは、ターゲット・スタックが新しい接続を受け入れたことを示すように、そのルーティング・テーブルを更新する。
【０１０９】
この時点で、ルーティング・スタックは、クライアントから選択されたターゲット・スタックへデータをリダイレクトできるようにするために、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するように構成される。しかしながらルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信する前に、Ｈｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信しなければならない。したがってルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントに送信し（フロー５）、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信するように要求する。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをＤＶＩＰＡに設定する。
【０１１０】
さらにルーティング・スタックは、ターゲット・スタックの代わりに、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントに送信する（フロー６）。本発明のいくつかの実施形態では、本発明の範囲を逸脱することなく、ターゲット・スタックがＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを送信できることを理解されよう。ルーティング・スタックは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスを、ターゲット・スタックのＩＰアドレスに設定する。クライアントはＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｈｏｍｅ  Ｔｅｓｔメッセージで応答する（フロー７）。クライアントは、宛先ＩＰアドレスとしてＤＶＩＰＡを使用し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信する。
【０１１１】
クライアントは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージで応答する（フロー８）。クライアントは、ターゲット・スタックのＩＰアドレスを宛先ＩＰアドレスとして使用し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージをターゲット・スタックに送信する。ターゲット・スタックはＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信する。パケットがモビリティ・ヘッダを含むため、ターゲット・スタックはパケットを処理のためにルーティング・スタックに転送する（フロー９）。ＴＣＰヘッダも存在する場合、ターゲット・スタックはパケットで受信したデータも処理することになる。
【０１１２】
クライアントは３ウェイ・ハンドシェイクを完了し、ＴＣＰ接続を確立する。クライアントはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信していないため、肯定応答をルーティング・スタックに送信する（フロー１０）。ルーティング・スタックは、肯定応答をターゲット・スタックに転送する（フロー１０）。ルーティング・スタックは、Ｈｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信すると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信する（フロー１１）。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、ＤＶＩＰＡをホーム・アドレスとして指定し、ターゲット・スタックのＩＰアドレスを気付アドレスとして指定する。
【０１１３】
クライアントは、ＤＶＩＰＡに関するバインディング・キャッシュを作成または更新し、ＤＶＩＰＡをターゲット・スタックのＩＰアドレスにマッピングする。ルーティング・スタックは、バインディング肯定応答で応答するようにクライアントに要求し、クライアントは実行する（フロー１２）。クライアントは、バインディング・キャッシュ内の気付アドレス、この例ではターゲット・スタックのＩＰアドレスに、バインディング肯定応答を送信する（フロー１２）。ターゲット・スタックはバインディング肯定応答を受信し、ＩＰパケットがモビリティ・ヘッダを含むため、ターゲット・スタックはルーティング・スタックにコピーを転送する（フロー１３）。ＩＰパケットがＴＣＰヘッダを含む場合、ターゲット・スタックはＩＰパケット内のデータも処理する。
【０１１４】
ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送るために必要な状態情報を含むように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共に、ＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタックに送信する（フロー１４）。ターゲット・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。クライアントがＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを処理すると、クライアントは、ルーティング・スタックをバイパスしてデータをターゲット・スタックに直接送信できる（フロー１５）。本発明のいくつかの実施形態では、クライアントによって送信されるパケットは、最終宛先としてＤＶＩＰＡを含むタイプ２のルーティング・ヘッダを含むことができる。
【０１１５】
次に図５を参照しながら、本発明のいくつかの実施形態に従って後続のインバウンド接続を処理するためのオペレーションを示す流れ図について論じる。クライアントがＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信および処理すると、クライアントは、バインディング・キャッシュ・エントリが満了するか、またはルーティング・スタックがバインディング・キャッシュ・エントリを明示的に削除するまで、すべての後続パケットをターゲット・スタックに送信する。これには、既存の接続ならびに新しい接続要求に関するパケットが含まれる。
【０１１６】
ルーティング・スタックは新しい接続要求を受信しないため、ターゲット・スタックはルーティング・スタックに新しい接続要求を通知するように構成される。多くの場合、これは、ターゲット・スタックがルーティング・スタックに新しいアウトバウンド接続要求を通知する方法と同様である。
【０１１７】
クライアントが、ＤＶＩＰＡ上で聴取しているアプリケーションへの新しい接続の確立を望み、ターゲット・スタックに関する気付アドレスを有するＤＶＩＰＡに対するバインディング・キャッシュ・エントリを有する場合、クライアントは、新しい接続要求をターゲット・スタックに直接送信する（フロー１）。ターゲット・スタックは接続要求を受信する。これはタイプ２のルーティング・ヘッダを含む新しい接続要求であるため、ターゲット・スタックはこの接続要求を処理する。ターゲット・スタックは接続要求を受信および処理し、クライアントに肯定応答を戻す（フロー２）。
【０１１８】
ターゲット・スタックは、新しい接続に関してルーティング・テーブル内に新しいエントリを作成する。ターゲット・スタックが、同じクライアントＩＰアドレスに関してルーティング・テーブル内に既存のエントリを有する場合、ターゲットは既存のエントリから新しいエントリへ、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをコピーする。ターゲット・スタックは、既存のＶＩＰＡＤＩＳＴ  ＮＥＷＣＯＮＮメッセージを使用して、ルーティング・スタックに新しい接続を通知する（フロー３）。
【０１１９】
ルーティング・スタックはＶＩＰＡＤＩＳＴ  ＮＥＷＣＯＮＮを処理し、新しい接続に関してそのルーティング・テーブルに新しいエントリを追加する。ルーティング・スタックはすでに、ＤＶＩＰＡに関するＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信しているため、ルーティング・スタックは他のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信しない。その代わりに、ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を、クライアントのための既存のルーティング・テーブル・エントリから新しいエントリにコピーする。クライアントは、３ウェイ・ハンドシェイクを完了し、ＴＣＰ接続を確立する。クライアントはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを以前に受信しているため、クライアントは肯定応答をターゲット・スタックに直接送信する（フロー４）。肯定応答は、最終宛先としてＤＶＩＰＡを含むタイプ２のルーティング・ヘッダを含む。クライアントはターゲット・スタックにデータを直接送信する（フロー５）。クライアントによって送信されるパケットは、最終宛先としてＤＶＩＰＡを含むタイプ２のルーティング・ヘッダを含む。
【０１２０】
次に図６を参照しながら、本発明のいくつかの実施形態に従ったアウトバウンド接続のオペレーションを示す流れ図について論じる。ターゲット・スタックがクライアントへのアウトバウンド接続を開始し、パケットのソースＩＰアドレスがＤＶＩＰＡである場合、ターゲット・スタックはルーティング・スタックに新しい接続を通知する。ルーティング・スタックは新しい接続に関するルーティング・テーブル・エントリを作成し、これを結合機構に格納する。これが、クライアントのＩＰアドレスおよびＤＶＩＰＡペアにとって第１の接続エントリである場合、ルーティング・スタックはＤＶＩＰＡをホーム・アドレスとして、およびターゲット・スタックのＩＰアドレスを気付アドレスとして指定する、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、クライアントに送信する。
【０１２１】
図６に示されるように、ターゲット・スタックはクライアントへの新しい接続を確立する（フロー１）。この新しい接続に関するソースＩＰアドレスは、ＤＶＩＰＡである。ターゲット・スタックは、そのルーティング・テーブル内に新しいエントリを作成する。ターゲット・スタックがそのテーブル内に同じクライアントＩＰアドレスに関するエントリを有する場合、ターゲット・スタックはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を既存のエントリから新しいエントリにコピーする。ターゲット・スタックは、既存のＶＩＰＡＤＩＳＴ  ＮＥＷＣＯＮＮメッセージを使用して、ルーティング・スタックに新しい接続を通知する（フロー２）。ルーティング・スタックは、そのルーティング・テーブル内に新しいエントリを作成する。ルーティング・スタックがそのテーブル内に同じクライアントＩＰアドレスに関するエントリを有する場合、ルーティング・スタックはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を既存のエントリから新しいエントリにコピーする。
【０１２２】
クライアントは接続要求を受信する。クライアントがＤＶＩＰＡに関するバインディング・キャッシュ・エントリを有する場合、クライアントはターゲット・スタックに直接応答する。しかしながら、図６に示されたフローでは、クライアントはバインディング・キャッシュ・エントリを有さない。その結果、クライアントはＤＶＩＰＡに対する接続要求肯定応答を送信し、ルーティング・スタックは肯定応答をターゲット・スタックに転送する（フロー３）。ターゲット・スタックは３ウェイ・ハンドシェイクを完了し、ＴＣＰ接続を確立する（フロー４）。このフローでは、ルーティング・スタックはクライアントにＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信していない。したがってルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信し、クライアントを選択されたターゲット・スタックにリダイレクトするように構成される。前述のように、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信する前に、ルーティング・スタックはＨｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信しなければならない。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントに送信し（フロー５）、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信するようにクライアントに要求する。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをＤＶＩＰＡに設定する。
【０１２３】
さらにルーティング・スタックは、ターゲット・スタックに代わってＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントにも送信する（フロー６）。ルーティング・スタックは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをターゲット・スタックのＩＰアドレスに設定する。クライアントはＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｈｏｍｅ  Ｔｅｓｔメッセージで応答する（フロー７）。クライアントは、宛先ＩＰアドレスとしてＤＶＩＰＡを使用し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信する。クライアントはＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージで応答する（フロー８）。クライアントは、宛先ＩＰアドレスとしてターゲット・スタックのＩＰアドレスを使用し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージをターゲット・スタックに送信する。
【０１２４】
ターゲット・スタックは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信する。パケットがモビリティ・ヘッダを含むため、ターゲット・スタックはこのパケットを処理のためにルーティング・スタックに転送する（フロー９）。ＴＣＰヘッダも存在する場合、ターゲット・スタックはパケット内で受信したデータも処理することになる。ルーティング・スタックは、Ｈｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信すると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信する（フロー１０）。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージはホーム・アドレスとしてＤＶＩＰＡを、および気付アドレスとしてターゲット・スタックのＩＰアドレスを指定する。
【０１２５】
クライアントは、ＤＶＩＰＡに関するそのバインディング・キャッシュ・エントリを作成または更新し、ＤＶＩＰＡをターゲット・スタックのＩＰアドレスにマッピングする。ルーティング・スタックは、バインディング肯定応答で応答するようクライアントに要求し、クライアントは実行する（フロー１１）。クライアントは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをバインディング・キャッシュ内の気付アドレス、すなわちターゲット・スタックのＩＰアドレスに送信する（フロー１１）。ターゲット・スタックはバインディング肯定応答を受信する。ＩＰパケットがモビリティ・ヘッダを含むため、ターゲット・スタックはルーティング・スタックにコピーを転送する（フロー１２）。ＩＰパケットがＴＣＰヘッダを含む場合、ターゲット・スタックはＩＰパケット内のデータも処理する。
【０１２６】
ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するために必要な状態情報を含むように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共に、ＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタックに送信する（フロー１３）。ターゲット・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。クライアントがＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを処理すると、クライアントは、データをターゲット・スタックに直接送信する（フロー１４）。クライアントによって送信されるパケットは、最終宛先としてＤＶＩＰＡを含むタイプ２のルーティング・ヘッダを含む。
【０１２７】
次に図７を参照しながら、本発明のいくつかの実施形態に従ったバインディング・リフレッシュ要求を受信するためのオペレーションを示す流れ図について論じる。モバイルＩＰバージョン６では、コレスポンデント・ノードは、バインディング・リフレッシュ要求を送信することによって、いつでもモバイル・ノードにＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信するよう要求することができる。Ｓｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒにマッピングされた場合、クライアントは、いつでもターゲット・スタックにバインディング・リフレッシュ要求を送信することができる。ルーティング・スタックがＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信すると、ターゲット・スタックはバインディング・リフレッシュ要求を処理のためにルーティング・スタックに転送しなければならない。
【０１２８】
図７に示されるように、クライアントとＤＶＩＰＡ上で聴取しているアプリケーションとの間に、１つまたは複数の既存の接続が存在する可能性がある（フロー１）。クライアントは、ＤＶＩＰＡのホーム・アドレスおよびターゲット・スタックの気付アドレスを備えたバインディング・キャッシュ・エントリを有する。クライアントは、ターゲット・スタックの気付アドレスにバインディング・リフレッシュ要求を送信することによって、バインディング・キャッシュをリフレッシュするよう要求するように構成される（フロー２）。
【０１２９】
ターゲット・スタックはバインディング・リフレッシュ要求メッセージを受信する。パケットがモビリティ・ヘッダを含むため、ターゲット・スタックはこのパケットを処理のためにルーティング・スタックに転送する（フロー３）。ＴＣＰヘッダも存在する場合、ターゲット・スタックはパケット内で受信したデータも処理することになる。バインディング・リフレッシュ要求を受信した結果、ルーティング・スタックはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するよう準備する。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信する前に、ルーティング・スタックはＨｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信しなければならない。ルーティング・スタックはＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントに送信し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信するようクライアントに要求する（フロー４）。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをＤＶＩＰＡに設定する。
【０１３０】
さらにルーティング・スタックは、ターゲット・スタックに代わってＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントにも送信する（フロー５）。ルーティング・スタックは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをターゲット・スタックのＩＰアドレスに設定する。クライアントはＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｈｏｍｅ  Ｔｅｓｔメッセージで応答する（フロー６）。クライアントは、宛先ＩＰアドレスとしてＤＶＩＰＡを使用し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信する。クライアントはＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージで応答する（フロー７）。クライアントは、宛先ＩＰアドレスとしてターゲット・スタックのＩＰアドレスを使用し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージをターゲット・スタックに送信する。
【０１３１】
ターゲット・スタックは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信する。パケットがモビリティ・ヘッダを含むため、ターゲット・スタックはこのパケットを処理のためにルーティング・スタックに転送する（フロー８）。ＴＣＰヘッダも存在する場合、ターゲット・スタックはパケット内で受信したデータも処理することになる。ルーティング・スタックは、Ｈｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信すると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信する（フロー９）。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージはホーム・アドレスとしてＤＶＩＰＡを、および気付アドレスとしてターゲット・スタックのＩＰアドレスを指定する。
【０１３２】
クライアントは、ＤＶＩＰＡに関するそのバインディング・キャッシュ・エントリを作成または更新し、ＤＶＩＰＡをターゲット・スタックのＩＰアドレスにマッピングする。ルーティング・スタックは、バインディング肯定応答で応答するようクライアントに要求し、クライアントは実行する（フロー１０）。クライアントは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをバインディング・キャッシュ内の気付アドレスに送信する。ターゲット・スタックはバインディング肯定応答を受信する。ＩＰパケットがモビリティ・ヘッダを含むため、ターゲット・スタックはルーティング・スタックにコピーを転送する（フロー１１）。ＩＰパケットがＴＣＰヘッダを含む場合、ターゲット・スタックはＩＰパケット内のデータも処理する。ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するために必要な状態情報を含むように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共に、ＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタックに送信する（フロー１２）。ターゲット・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。
【０１３３】
次に図８を参照しながら、本発明のいくつかの実施形態に従ったターゲット・スタック障害に関するオペレーションを示す流れ図について論じる。クライアントとＤＶＩＰＡ上で聴取しているアプリケーションとの間に、１つまたは複数の既存の接続が存在する可能性がある（フロー１）。クライアントは、ＤＶＩＰＡのホーム・アドレスおよびターゲット・スタックの気付アドレスを備えたバインディング・キャッシュ・エントリを有する。
【０１３４】
図８に示されるように、ターゲット・スタックには障害が発生する可能性がある（フロー２）。ルーティング・スタックは、ターゲット・スタックがもはや動作不能であるかどうかを認識するように構成される。既存の論理に加えて、ルーティング・スタックは、気付アドレスとしてターゲット・スタックを有するクライアント側の各バインディング・キャッシュ・エントリを削除する。ルーティング・スタックがクライアント側に作成した各バインディング・キャッシュ・エントリについて、ルーティング・スタックは、ＤＶＩＰＡに設定されたホーム・アドレスおよび気付アドレスの両方と共に、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅを送信する（フロー３）。クライアントは、ＤＶＩＰＡをターゲット・スタックのＩＰアドレスにマッピングするバインディング・キャッシュ・エントリを削除する。ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージに肯定応答するようクライアントに要求する。クライアントは、ルーティング・スタックによって管理されたＤＶＩＰＡにバインディング肯定応答を直接送信する（フロー４）。
【０１３５】
次に図９を参照しながら、単一のクライアントが２つのターゲット・スタックにルーティングされた場合の、本発明のいくつかの実施形態に従ったシステムのオペレーションを示す流れ図について論じる。本発明の諸実施形態は、クライアントからＤＶＩＰＡへの並列接続を同じターゲット・スタックにルーティングするように試みる。しかしながら、クライアントは、クライアントがＤＶＩＰＡに関するＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信する前に、異なるソースＩＰアドレスを使用して並列接続を確立することができる。クライアントは、これらの接続要求を処理のためにルーティング・スタックに送信する。ソースＩＰアドレスおよびＤＶＩＰＡのペアが既存の接続テーブル・エントリと一致しないため、ルーティング・スタックは各接続要求について異なるターゲット・スタックを選択することができる。
【０１３６】
ルーティング・スタックは、固有のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを、ＤＶＩＰＡに関するバインディング・キャッシュ・エントリを作成する各固有のクライアントＩＰアドレスに送信することができる。各Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージは、バインディング・キャッシュ・エントリが最も新しく受信したＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージと一致するという結果によって、ＤＶＩＰＡに関するバインディング・キャッシュ・エントリを作成または更新する。結果としてクライアントは、たとえいくつかの接続が異なるターゲット・スタック上で終端している場合であっても、所与のＤＶＩＰＡに関するすべてのパケットを１つのターゲット・スタックに送信する。この可能性を補償するために、ルーティング・スタックは、ルーティング・スタックが問題を検出した場合、クライアント上のバインディング・キャッシュ・エントリを削除するように構成される。クライアントがバインディング・キャッシュ・エントリを削除すると、ルーティング・スタックは、クライアントから受信したパケットを処理し、適切なターゲット・スタックに転送する。
【０１３７】
図９に示されるように、ルーティング・スタックは新しい接続要求を受信し（フロー１）、ルーティング・スタックは、そのルーティング・テーブルをチェックして、そのルーティング・テーブル内に同じクライアントＩＰアドレスからの既存の接続があるかどうかを調べる。既存の接続があると判別された場合、ルーティング・スタックは、既存の接続と同じターゲット・スタックに接続要求を送信する。ルーティング・テーブル内に既存のエントリがないと判別された場合、ルーティング・スタックはこのフローのように、新しいターゲット・スタック、すなわち図９に示されたターゲット・スタック１を選択する。ルーティング・スタックは、ルーティング・テーブル内に新しい接続に関する新しいエントリを作成する。ルーティング・スタックは、ターゲット・スタック１に接続要求を転送する（フロー２）。
【０１３８】
ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信し、クライアントをターゲット・スタック１にリダイレクトするように構成される。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信する前に、ルーティング・スタックはＨｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信しなければならない。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントに送信し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信するようにクライアントに要求する（フロー３）。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをＤＶＩＰＡに設定する。さらにルーティング・スタックは、ターゲット・スタックに代わってＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントにも送信する（フロー４）。ルーティング・スタックは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをターゲット・スタック１のＩＰアドレスに設定する。
【０１３９】
その間に、ターゲット・スタック１が接続要求を受信および処理する。ターゲット・スタック１は、クライアントに肯定応答を返す（フロー６）。ターゲット・スタック１は、接続に関するエントリをルーティング・テーブルに追加する。ターゲット・スタック１は、新しい接続要求を処理および受け入れた旨を、ルーティング・スタックに通知する（フロー５）。ルーティング・スタックは、ルーティング・テーブル内のそのエントリを更新する。
【０１４０】
クライアントは、同じＤＶＩＰＡに関するが異なるソースＩＰアドレスを備えたルーティング・スタックに第２の接続要求を送信する（フロー７）。ルーティング・スタックは接続要求を受信すると、そのルーティング・テーブルをチェックして、そのルーティング・テーブル内に同じクライアントＩＰアドレスからの既存の接続があるかどうかを調べる。既存の接続があると判別された場合、ルーティング・スタックは、既存の接続と同じターゲット・スタックに接続要求を送信する。ルーティング・テーブル内に既存のエントリがないと判別された場合、ルーティング・スタックはこのフローのように、新しいターゲット・スタック、すなわちターゲット・スタック２を選択する。ルーティング・スタックは、ルーティング・テーブル内に新しい接続に関する新しいエントリを作成する。ルーティング・スタックは、ターゲット・スタック２に接続要求を転送する（フロー８）。
【０１４１】
ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信し、クライアントをターゲット・スタック２にリダイレクトするように構成される。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信する前に、ルーティング・スタックはＨｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔを受信しなければならない。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントに送信し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信するようにクライアントに要求する（フロー９）。ルーティング・スタックは、Ｈｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをＤＶＩＰＡに設定する。さらにルーティング・スタックは、ターゲット・スタックに代わってＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージをクライアントにも送信する（フロー１０）。ルーティング・スタックは、Ｃａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージ上のソースＩＰアドレスをターゲット・スタック２のＩＰアドレスに設定する。
【０１４２】
その間に、ターゲット・スタック２は接続要求を受信および処理し、クライアントに肯定応答を返す（フロー１２）。ターゲット・スタック２は、接続に関するエントリをルーティング・テーブルに追加する。ターゲット・スタック２は、新しい接続要求を処理および受け入れた旨を、ルーティング・スタックに通知する（フロー１１）。ルーティング・スタックは、ルーティング・テーブル内のそのエントリを更新する。
【０１４３】
クライアントは第１のＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｈｏｍｅ  Ｔｅｓｔメッセージで応答する（フロー１３）。クライアントは、宛先ＩＰアドレスとしてＤＶＩＰＡを使用し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信する。クライアントは第１のＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージで応答する（フロー１４）。クライアントは、宛先ＩＰアドレスとしてターゲット・スタック１のＩＰアドレスを使用し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージをターゲット・スタック１に送信する。
【０１４４】
ターゲット・スタック１は、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信する。パケットがモビリティ・ヘッダを含むため、ターゲット・スタックはこのパケットを処理のためにルーティング・スタックに転送する（フロー１５）。パケットがデータも含む場合、ターゲット・スタックはパケット内で受信したデータも処理することになる。ルーティング・スタックは、Ｈｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信すると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信する（フロー１６）。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージはホーム・アドレスとしてＤＶＩＰＡを、および気付アドレスとしてターゲット・スタック１のＩＰアドレスを指定する。
【０１４５】
クライアントは第２のＨｏｍｅ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｈｏｍｅ  Ｔｅｓｔメッセージで応答する（フロー１７）。クライアントは、宛先ＩＰアドレスとしてＤＶＩＰＡを使用し、Ｈｏｍｅ  Ｔｅｓｔメッセージをルーティング・スタックに送信する。クライアントは第２のＣａｒｅ−ｏｆ  Ｔｅｓｔ  Ｉｎｉｔメッセージを受信し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージで応答する（フロー１８）。クライアントは、宛先ＩＰアドレスとしてターゲット・スタック２のＩＰアドレスを使用し、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージをターゲット・スタック２に送信する。
【０１４６】
ターゲット・スタック２は、Ｃａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信する。パケットがモビリティ・ヘッダを含むため、ターゲット・スタックはこのパケットを処理のためにルーティング・スタックに転送する（フロー１９）。パケットがデータも含む場合、ターゲット・スタックはパケット内で受信したデータも処理することになる。ルーティング・スタックは、Ｈｏｍｅ  ＴｅｓｔメッセージおよびＣａｒｅ−ｏｆ  Ｔｅｓｔメッセージを受信すると、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信する（フロー２０）。Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージはホーム・アドレスとしてＤＶＩＰＡを、および気付アドレスとしてターゲット・スタック２のＩＰアドレスを指定する。クライアントは、第１の接続に関する３ウェイ・ハンドシェイクを完了し、ＴＣＰ接続を確立する。クライアントはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信していないため、クライアントは肯定応答をルーティング・スタックに送信する（フロー２１）。ルーティング・スタックは肯定応答をターゲット・スタックに転送する（フロー２１）。
【０１４７】
クライアントは、第２の接続に関する３ウェイ・ハンドシェイクを完了し、ＴＣＰ接続を確立する。クライアントはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信していないため、クライアントは肯定応答をルーティング・スタックに送信する（フロー２２）。ルーティング・スタックは肯定応答をターゲット・スタックに転送する（フロー２２）。クライアントは、ＤＶＩＰＡに関するそのバインディング・キャッシュ・エントリを作成または更新し、ＤＶＩＰＡをターゲット・スタック１のＩＰアドレスにマッピングする。ルーティング・スタックは、バインディング肯定応答で応答するようクライアントに要求し、クライアントは実行する（フロー２３）。クライアントは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをバインディング・キャッシュ内の気付アドレス、すなわちターゲット・スタック１のＩＰアドレスに送信する。ターゲット・スタック１はバインディング肯定応答を受信する。ＩＰパケットがモビリティ・ヘッダを含むため、ターゲット・スタックはルーティング・スタックにコピーを転送する（フロー２４）。ＩＰパケットがデータを含む場合、ターゲット・スタック１はＩＰパケット内のデータも処理する。
【０１４８】
ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するために必要な状態情報を含むように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共に、ＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタック１に送信する（フロー２５）。ターゲット・スタック１は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。
【０１４９】
クライアントはＤＶＩＰＡに関するそのバインディング・キャッシュ・エントリを更新し、ＤＶＩＰＡをターゲット・スタック２のＩＰアドレスにマッピングする。ルーティング・スタックは、バインディング肯定応答で応答するようクライアントに要求し、クライアントは実行する（フロー２６）。クライアントは、バインディング肯定応答をバインディング・キャッシュ内の気付アドレス、すなわちターゲット・スタック２のＩＰアドレスに送信する。ターゲット・スタック２はバインディング肯定応答を受信する。ＩＰパケットがモビリティ・ヘッダを含むため、ターゲット・スタックはルーティング・スタックにコピーを転送する（フロー２７）。ＩＰパケットがデータを含む場合、ターゲット・スタック２はＩＰパケット内のデータも処理する。ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信するために必要な状態情報を含むように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共に、ＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタック２に送信する（フロー２８）。ターゲット・スタック２は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。
【０１５０】
クライアントが第２のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを処理すると、クライアントは、ＤＶＩＰＡへの第１の接続に関するデータをターゲット・スタック２に直接送信する（フロー２９）。クライアントによって送信されるパケットは、最終宛先としてＤＶＩＰＡを含むタイプ２のルーティング・ヘッダを含む。ターゲット・スタック２は、クライアントからＤＶＩＰＡへのＴＣＰ接続を認識していない。タイプ２のルーティング・ヘッダが存在し、新しい接続に関する要求ではないため、ターゲット・スタック２はルーティング・スタックにパケットを転送する（フロー３０）。
【０１５１】
ルーティング・スタックは、クライアントが２つの異なるターゲット・スタックへの並列接続を確立したことを認識するように構成される。ルーティング・スタックは、ホーム・アドレスおよび気付アドレスの両方がＤＶＩＰＡに設定されたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信することによって（フロー３１）、ＤＶＩＰＡに関するバインディング・キャッシュ・エントリを削除するように、クライアントに要求する。
【０１５２】
クライアントはそのバインディング・キャッシュ・エントリを削除する。ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージに肯定応答するようクライアントに要求する。結果としてクライアントは、ルーティング・スタックにバインディング肯定応答を送信する（フロー３２）。ルーティング・スタックは、４タプル、すなわちソース・アドレス、宛先アドレス、およびポート番号を使用して、クライアントの第１のＩＰアドレスからのパケットをＤＶＩＰＡに転送するように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共にＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタック１に送信する（フロー３３）。ターゲット・スタック１は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。
【０１５３】
ルーティング・スタックは、４タプルを使用して、クライアントの第２のＩＰアドレスからのパケットをＤＶＩＰＡに転送するように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共にＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタック２に送信する（フロー３４）。ターゲット・スタック２は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。クライアントが後続のデータ・パケットをターゲット・スタック１に送信する場合、クライアントは宛先ＩＰアドレスをＤＶＩＰＡに設定する。ルーティング・スタックは、ルーティング・テーブル・エントリからの４タプル情報を使用して、パケットを受信し、それらをターゲット・スタック１に転送する（フロー３５）。同様に、クライアントが後続のデータ・パケットをターゲット・スタック２に送信する場合、クライアントは宛先ＩＰアドレスをＤＶＩＰＡに設定する。ルーティング・スタックは、ルーティング・テーブル・エントリからの４タプル情報を使用して、パケットを受信し、それらをターゲット・スタック２に転送する（フロー３６）。
【０１５４】
次に図１０を参照しながら、本発明のいくつかの実施形態に従った接続を終了するためのオペレーションを示す流れ図について論じる。クライアントからＤＶＩＰＡへの最新の接続が終了した場合、ルーティング・スタックは、クライアント側のバインディング・キャッシュ・エントリを削除するように構成することができる。バインディング・キャッシュ・エントリは、ホーム・アドレスおよび気付アドレスの両方がＤＶＩＰＡに設定された状態でＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信することによって、削除することができる。本発明のいくつかの実施形態では、ルーティング・スタックが、バインディング・キャッシュ・エントリを即時に削除するようクライアントに要求することが可能であるか、または、ルーティング・スタックが、クライアントとターゲット・スタックとの間の時限アフィニティが満了するまで要求を保留することが可能である。
【０１５５】
図１０に示されるように、ターゲット・スタックは既存の接続を終了し、接続終了要求をクライアントに送信するように構成することができる（フロー１）。クライアントは、接続終了要求に肯定応答する（フロー２）。クライアントがＤＶＩＰＡに関するバインディング・キャッシュ・エントリを有するため、クライアントはターゲット・スタックに肯定応答を送信する。要求は、ＤＶＩＰＡを含むタイプ２のルーティング・ヘッダを含む。ターゲット・スタックは、接続終了を完了する（フロー３）。接続が終了すると、ターゲット・スタックは、そのルーティング・テーブルからこの接続に関するエントリを除去する。ターゲット・スタックは、接続がもはや存在しないことをルーティング・スタックに通知する（フロー４）。ルーティング・スタックは、そのルーティング・テーブルから接続エントリを除去する。これが、クライアントおよびＤＶＩＰＡに関する最新のルーティング・テーブル・エントリである場合、ルーティング・スタックは、クライアント内のＤＶＩＰＡに関するバインディング・キャッシュ・エントリを削除することができる。ルーティング・スタックは、ホーム・アドレスおよび気付アドレスの両方がＤＶＩＰＡに設定された状態で、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信する（フロー５）。クライアントはそのバインディング・キャッシュ・エントリを削除する。ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージに肯定応答するよう、クライアントに要求する。結果として、クライアントはバインディング肯定応答をルーティング・スタックに送信する（フロー６）。
【０１５６】
次に図１１を参照しながら、本発明のいくつかの実施形態に従ったルーティング・スタック障害を示す流れ図について論じる。本発明のいくつかの実施形態では、１次ルーティング・スタックに障害が発生した場合、バックアップ・ルーティング・スタックがＤＶＩＰＡを活動化し、ルーティング・スタックの機能を引き継ぐことができる。ターゲット・スタックは、新しいルーティング・スタックがＤＶＩＰＡの所有権を引き受けたものと特定し、そのルーティング・テーブル内の各エントリに関するＶＩＰＡＤＩＳＴ  ＮＥＷＣＯＮＮメッセージを送信するように、構成することができる。ルーティング・スタックは、ルーティング・テーブルのそのコピーを再構築するように構成可能であるため、各ターゲット・スタックに関するすべてのエントリを含む。ターゲット・スタックは、ＶＩＰＡＤＩＳＴ  ＮＥＷＣＯＮＮ内のそのルーティング・テーブル・エントリからのＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を含む。この情報の存在により、ルーティング・スタックはそのテーブル内にこの情報を再作成することができる。
【０１５７】
図１１に示されるように、１次ルーティング・スタックに障害が発生する（フロー１）。本発明のいくつかの実施形態では、バックアップ・ルーティング・スタックは、１次ルーティング・スタックの障害に応答してＤＶＩＰＡを活動化することができる。ターゲット・スタックは、そのルーティング・テーブル内の各エントリに関してバックアップ・ルーティング・スタックに通知する。ターゲット・スタックは、バックアップ・ルーティング・スタックに送信されるＮＥＷＣＯＮＮメッセージ内に、エントリに関する任意のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を含める（フロー２）。ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ情報を含む、ターゲット・スタックによって報告されたすべての接続に関するエントリを含むように、ルーティング・テーブルのそのコピーを更新する。
【０１５８】
次に、図１２を参照しながら、本発明のいくつかの実施形態に従った、ターゲット・スタック上にアプリケーションのない新しい接続要求を確立するためのオペレーションを示す流れ図について論じる。クライアントはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信および処理すると、バインディング・キャッシュ・エントリが満了するか、またはルーティング・スタックがバインディング・キャッシュ・エントリを明示的に削除するまで、クライアントはすべての後続のパケットをターゲット・スタックに送信する。これには、既存の接続ならびに新しい接続要求に関するパケットが含まれる。
【０１５９】
通常、ルーティング・スタックには新しい接続要求がわからないため、ルーティング・スタックは、ターゲット・スタック上のアプリケーションが宛先ポートで聴取しているかどうかを確認することができない。アプリケーションが聴取していない場合、ターゲット・スタックは、処理のためにルーティング・スタックに接続要求を転送しなければならない。ルーティング・スタックは、ターゲット・アプリケーションが実行されている適切なターゲット・スタックを選択し、クライアント側のバインディング・キャッシュ・エントリを削除することができる。クライアントからＤＶＩＰＡで聴取しているアプリケーションに送信される後続のパケットは、転送のためにルーティング・スタックに送信されることになる。
【０１６０】
図１２に示されるように、クライアントとターゲット・スタック１との間にすでに接続が存在する。しかしながらクライアントは、ＤＶＩＰＡ上で聴取しているアプリケーションへの新しい接続を確立することを望む。クライアントはターゲット・スタック１に関する気付アドレスを有する、ＤＶＩＰＡに関するバインディング・キャッシュ・エントリを有する。したがってクライアントは、新しい接続要求をターゲット・スタック１に直接送信する（フロー２）。ターゲット・スタック１は、接続要求を受信する。この接続要求はタイプ２のルーティング・ヘッダを含むが、ターゲット・スタック１は宛先ポートで聴取しているアプリケーションを有さない。したがって、ターゲット・スタック１は、処理のために接続要求をルーティング・スタックに転送する（フロー３）。ルーティング・スタックは、ＤＶＩＰＡで聴取している宛先ポートに対するターゲット・スタック、この場合はターゲット・スタック２を選択する。ルーティング・スタックはそのルーティング・テーブル内に新しいエントリを作成し、ターゲット・スタック２に接続要求を転送する（フロー４）。
【０１６１】
ルーティング・スタックは、クライアントが２つの異なるターゲット・スタック、すなわちターゲット・スタック１および２への並列接続を確立したことを認識するように構成される。ルーティング・スタックは、ホーム・アドレスおよび気付アドレスの両方がＤＶＩＰＡに設定されたＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージをクライアントに送信することによって、ＤＶＩＰＡに関するバインディング・キャッシュ・エントリを削除するように、クライアントに要求する（フロー５）。
【０１６２】
その間に、ターゲット・スタック２が接続要求を受信および処理する。ターゲット・スタック２は、クライアントに肯定応答を送信する（フロー６）。ターゲット・スタック２は、接続に関するエントリをルーティング・テーブルに追加する。ターゲット・スタック２は、新しい接続要求を処理および受け入れた旨を、ルーティング・スタックに通知する（フロー７）。ルーティング・スタックは、ルーティング・テーブル内のそのエントリを更新する。
【０１６３】
クライアントはそのバインディング・キャッシュ・エントリを削除する。ルーティング・スタックは、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージに肯定応答するようクライアントに要求する。結果としてクライアントは、ルーティング・スタックにバインディング肯定応答を送信する（フロー８）。ルーティング・スタックは、４タプルを使用して、クライアントの第１のＩＰアドレスからのパケットをＤＶＩＰＡに転送するように、そのルーティング・テーブル・エントリを更新する。ルーティング・スタックは、この状態情報と共にＶＩＰＡＤＩＳＴ  Ｂｉｎｄｉｎｇ  Ｉｎｆｏ要求をターゲット・スタック１に送信する（フロー９）。ターゲット・スタック１は、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ状態情報を含むように、そのルーティング・テーブル・エントリを更新するため、結果としてルーティング・スタックに関連付けられたルーティング・テーブル内のエントリと一致する。
【０１６４】
クライアントは３ウェイ・ハンドシェイクを完了し、ＴＣＰ接続を確立する。クライアントはそのバインディング・キャッシュ・エントリを削除したため、肯定応答をルーティング・スタックに送信し（フロー１０）、ルーティング・スタックは肯定応答をターゲット・スタック２に転送する（フロー１０）。クライアントが後続のデータ・パケットをターゲット・スタック１に送信する場合、クライアントはＤＶＩＰＡに宛先ＩＰアドレスを設定する（フロー１１）。ルーティング・スタックはパケットを受信し、ルーティング・テーブル・エントリからの４タプル情報を使用して、それらをターゲット・スタック１に転送する（フロー１１）。クライアントが後続のデータ・パケットをターゲット・スタック２に送信する場合、クライアントはＤＶＩＰＡに宛先ＩＰアドレスを設定する（フロー１２）。ルーティング・スタックはパケットを受信し、ルーティング・テーブル・エントリからの４タプル情報を使用して、それらをターゲット・スタック２に転送する。
【０１６５】
図１から１２に関して上記で簡単に論じたように、本発明のいくつかの実施形態は、モバイルＩＰバージョン６の概念を使用した負荷バランシングのための方法、システム、およびコンピュータ・プログラム製品を提供する。具体的に言えば、ルーティング・スタックは新しいクライアントから接続要求を受信し、たとえば最高の性能を提供するターゲット・スタックなどの、適切なターゲット・スタックを選択する。新しい接続に関する要求、たとえばＳＹＮ要求を、ターゲット・スタックに転送した後、ルーティング・スタックは、ＤＶＩＰＡをホーム・アドレスとして、およびターゲット・スタックのＩＰアドレスを気付アドレスとして識別する、クライアントにＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを送信する。クライアントはＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージを受信すると、ＤＶＩＰＡ（ホーム・アドレス）をターゲット・スタックのＩＰアドレス（気付アドレス）に効果的にマッピングする、バインディング・キャッシュ・エントリを作成する。したがって、本発明のいくつかの実施形態によれば、クライアントはＤＶＩＰＡに対して宛先指定されたパケットを、ルーティング・スタックを完全にバイパスしてターゲット・スタックのＩＰアドレスに直接送信することができる。したがって、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  ＡｇｅｎｔおよびＸＣＦに関連付けられた遅延を、削減または解消することができる。
【０１６６】
本発明のいくつかの実施形態によれば、モバイルＩＰバージョン６処理の大部分が、ターゲット・スタック（モバイル・ノード）ではなくルーティング・スタック（ホーム・エージェント）で実行される。これは、ほとんどのモバイルＩＰバージョン６の処理がホーム・エージェントではなくモバイル・ノードで実行される、従来のモバイルＩＰバージョン６を使用した処理とは異なる。
【０１６７】
Ｓｙｓｐｌｅｘ  Ｄｉｓｔｒｉｂｕｔｏｒを最適化するためにモバイルＩＰバージョン６を使用することには、あるタイプのトラフィックには好適であり、他のタイプには好適でない、ある種の含意がある。結果として、モバイルＩＰバージョン６のルート最適化は、機能を実行可能化あるいは実行不能化、またはその両方にするためのスイッチを含むことができる。たとえば、モバイルＩＰバージョン６のルート最適化は、長期間接続を確立するアプリケーションには適している可能性がある。モバイルＩＰバージョン６は、クライアント側のバインディング・キャッシュを更新するためにいくつかのメッセージを必要とする場合がある。長期間アプリケーションの場合、処理パケットがクライアントからターゲット・スタックに送信されるのを避けることによるルーティング・スタック側での省力度（savings）の方が、通常、クライアント側でバインディング・キャッシュ・エントリを作成および維持するオーバヘッドを上回る。
【０１６８】
他方で、短期間接続の場合、データ・パスからルーティング・スタックを除去することの利点は、モバイルＩＰバージョン６フローの追加オーバヘッドよりも少ない場合がある。しかしながら、複数の短期間接続を同じクライアントから同じターゲット・スタックへリダイレクトするには、単一のＢｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージで十分である。ＨＴＴＰクライアントがウェブ・サーバに接続する場合に行うように、同じクライアントが、同じＤＶＩＰＡへの一連の短期間接続を確立する場合、その省力度はモバイルＩＰバージョン６フローの追加オーバヘッドを上回る可能性がある。
【０１６９】
前述のように、本発明の諸実施形態に従った接続は、ソース／宛先のアドレス・ペア（２タプル）に基づいて分配される。結果として、通常、同じターゲット・スタックが、クライアントと所与のＤＶＩＰＡとの間のすべての同時接続を処理する。これに対して、モバイルＩＰバージョン４における接続は、ソースおよび宛先のアドレス、ならびにポート番号の、４タプルに基づいて分配される。結果として、異なるターゲット・スタックが、クライアントと所与のＤＶＩＰＡとの間の個々の接続を処理することができる。さらに、モバイルＩＰバージョン４では、Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔが使用されない限り、ルーティング・スタックが各データ・パケットを処理しなければならない。Ｃｉｓｃｏ  Ｆｏｒｗａｒｄｉｎｇ  Ａｇｅｎｔを使用していないＣｉｓｃｏの顧客の場合、および、Ｃｉｓｃｏ以外の顧客の場合、通常、ルーティング・スタックがデータ・パケットを処理する。本明細書で論じた本発明のいくつかの実施形態は、中間ルータでのサポートを必要としないため、すべてのベンダによって供給されるルータと連携する。さらに、本発明の諸実施形態は、クライアントにおけるモバイルＩＰバージョン６のコレスポンデント・ノードのサポートを必要としない。
【図面の簡単な説明】
【０１７０】
【図１】本発明のいくつかの実施形態で使用するのに好適なデータ処理システムを示すブロック図である。
【図２】本発明のいくつかの実施形態に従ったシステムを示すブロック図である。
【図３】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図４】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図５】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図６】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図７】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図８】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図９】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図１０】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図１１】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図１２】本発明のいくつかの実施形態に従った動作を示す流れ図である。
【図１】
2008527815.tif 000003
【図２】
2008527815.tif 000004
【図３】
2008527815.tif 000005
【図４】
2008527815.tif 000006
【図５】
2008527815.tif 000007
【図６】
2008527815.tif 000008
【図７】
2008527815.tif 000009
【図８】
2008527815.tif 000010
【図９】
2008527815.tif 000011
【図１０】
2008527815.tif 000012
【図１１】
2008527815.tif 000013
【図１２】
2008527815.tif 000014
【国際調査報告】
2008527815.tif 000015
2008527815.tif 000016
2008527815.tif 000017