ルーターおよびロードバランシングシステムを含むコンピューターシステムにおいて、ロードバランサー間で状態を共有する方法であって、前記ロードバランシングシステムは、ロードバランサー、1つまたは複数の他のロードバランサー、および複数の宛先ホストを含み、前記ルーターは、ネットワークに接続され、および前記ロードバランシングシステムへの進入のポイントであり、前記ネットワーク上のコンポーネントは、仮想電子アドレスを使用して前記ロードバランシングシステムと通信し、前記方法は、前記ルーターからパケットを受信する、前記ロードバランサーの動作であって、前記パケットは、ワイドエリアネットワーク上のソースを特定するソース電子アドレス情報と、前記仮想電子アドレスを含む宛先電子アドレス情報とを含む、動作と、前記パケットが既存のデータフローに対するものであると判定する、前記ロードバランサーの動作と、パケットヘッダーを含む、前記パケットのコンテンツから前記既存のデータフローに対するデータフロー識別子を生成するアルゴリズムを使用する、前記ロードバランサーの動作と、前記ロードバランサーが、前記複数の宛先ホストの中から前記既存のデータフローに対応する宛先ホストを特定するのに十分な情報が不足していると判定する、前記ロードバランサーの動作であって、前記ロードバランサーが、前記既存のデータフローを前記複数の宛先ホストのうちの1つの宛先ホストにマッピングする、キャッシュした状態を有さないと判定する、前記ロードバランサーの動作を含む、動作と、前記ロードバランサーが、前記既存のデータフローに対応する前記宛先ホストを特定するのに十分な情報が不足していると判定したことに応答して、前記既存のデータフローのオーナーとして指定されたオーナーロードバランサーを特定する、前記ロードバランサーの動作であって、前記オーナーロードバランサーは、前記1つまたは複数の他のロードバランサーの中から選択される、動作と、データフローの状態情報に関するリクエストを前記オーナーロードバランサーに送信する、前記ロードバランサーの動作と、を含む動作と、前記オーナーロードバランサーから状態情報を受信する、前記ロードバランサーの動作であって、前記状態情報は、前記既存のデータフローに対応する前記宛先ホストを特定する、動作と、前記受信した状態情報をキャッシュする、前記ロードバランサーの動作とを備えることを特徴とする方法。前記複数の宛先ホストの配置が遷移中であると判定したことに応答して、1つまたは複数の他の既存のデータフローに対するキャッシュした状態を特定する、前記ロードバランサーの動作であって、前記キャッシュした状態は、前記1つまたは複数の他の既存のデータフローを、前記複数の宛先ホストのうちの対応する宛先ホストにマッピングする、動作と、現在の宛先ホスト配列を使用して、前記宛先ホストが現在のマッピングとは異なるデータフローを特定する、前記ロードバランサーの動作と、これらの1つまたは複数の既存のデータフローのそれぞれに対し、前記1つまたは複数の他のロードバランサーの中から選択される、前記既存のデータフローのオーナーとして指定されたオーナーロードバランサーを特定する、前記ロードバランサーの動作と、前記既存のデータフローに対するキャッシュした状態を、前記既存のデータフローに対する前記オーナーロードバランサーに送信する、前記ロードバランサーの動作とをさらに備えることを特徴とする請求項1に記載の方法。前記ルーターからパケットを受信する、前記ロードバランサーの動作は、等価コストマルチパスECMPアルゴリズムまたはドメインネームシステムDNSのラウンドロビンアルゴリズムのうちの1つに従って、パケットを受信する、前記ロードバランサーの動作を含むことを特徴とする請求項1に記載の方法。前記既存のデータフローに対する第2のパケットを受信する、前記ロードバランサーの動作と、キャッシュした状態情報を参照して、前記宛先ホストを前記既存のデータフローに対応するものとして特定する、前記ロードバランサーの動作と、前記第2のパケットを前記宛先ホストに送信する、前記ロードバランサーの動作とをさらに備えることを特徴とする請求項1に記載の方法。前記既存のデータフローに対するデータフロー識別子を生成するアルゴリズムを使用する、前記ロードバランサーの動作は、前記ソースに対するソースインターネットプロトコルアドレスおよび前記ロードバランシングシステムに対する仮想インターネットプロトコルアドレスを、データフロー識別子にハッシュするハッシュアルゴリズムを使用する、動作を含み、前記データフロー識別子は、データフローを対応する宛先ホストにマッピングする現在のマッピング配列へのインデックスを表すことを特徴とする請求項1に記載の方法。前記既存のデータフローのオーナーとして指定されたオーナーロードバランサーを特定する、前記ロードバランサーの動作は、前記ソースインターネットプロトコルアドレスおよび前記仮想インターネットプロトコルアドレスを第2のハッシュ値にハッシュする第2のハッシュアルゴリズムを使用する動作であって、前記第2のハッシュ値は、プライマリーオーナーパーティション配列における位置を表し、前記プライマリーオーナーパーティション配列は、データフローを、前記データフローに対するキャッシュした状態を維持する、対応するロードバランサーにマッピングする、動作と、前記プライマリーオーナーパーティション配列における前記位置を参照して、前記既存のデータフローの前記オーナーとしてマッピングされた前記ロードバランサーを特定する、動作とを含むことを特徴とする請求項5に記載の方法。ルーターおよびロードバランシングシステムを含むコンピューターシステムにおいて、ロードバランサー間で状態を共有する方法であって、前記バランシングシステムは、ロードバランサー、1つまたは複数の他のロードバランサー、および複数の宛先ホストを含み、前記ルーターは、ネットワークに接続され、およびワイドエリアネットワークから前記ロードバランシングシステムへの進入のポイントであり、前記ネットワーク上のコンポーネントは、仮想電子アドレスを使用して前記ロードバランシングシステムと通信し、前記方法は、別のロードバランサーからカプセル化されたパケットを受信する、前記ロードバランサーの動作であって、前記パケットは、前記ネットワーク上のソースを特定するソース電子アドレス情報と、前記仮想電子アドレスを含む宛先電子アドレス情報とを含む、動作と、前記受信したパケットが既存のデータフローに対するものであると判定する、前記ロードバランサーの動作と、前記ロードバランサーが前記既存のデータのオーナーであると判定する、前記ロードバランサーの動作と、前記ロードバランサーが、前記既存のデータフローに対するキャッシュした状態を有すると判定する、前記ロードバランサーの動作であって、前記キャッシュした状態は、前記既存のデータフローを、前記複数の宛先ホストのうちの1つの宛先ホストにマッピングする、動作と、前記受信したパケットを、前記既存のデータフローにマッピングした前記宛先ホストに送信する、前記ロードバランサーの動作と、前記既存のデータフローにおける後続のパケットを、前記1つの宛先ホストに適切に転送するのに使用するために、前記キャッシュした状態を前記他のロードバランサーに送信する、前記ロードバランサーの動作と、を備えることを特徴とする方法。1つまたは複数の他の既存のデータフローに対するキャッシュした状態を、前記1つまたは複数の他のロードバランサーから受信する、前記ロードバランサーの動作をさらに備え、前記1つまたは複数の他のロードバランサーは、前記ロードバランサーが前記1つまたは複数の他の既存のデータフローに対するプライマリーオーナーロードバランサーであると判定していたことを特徴とする請求項7に記載の方法。別の既存のデータフローに対する状態を別のロードバランサーに送信する、前記ロードバランサーの動作であって、前記ロードバランサーは、前記別の既存のデータフローに対する状態が、現在の宛先配列において異なると判定していた、動作と、前記他のロードバランサーが前記他の既存のデータフローのプライマリーオーナーであると判定する、前記ロードバランサーの動作とをさらに備えることを特徴とする請求項7に記載の方法。1つまたは複数のプロセッサーと、システムメモリーと、ルーターと、ロードバランシングマネージャー、複数のマルチプレクサー、および複数の宛先ホストを表すコンピューター実行可能命令を格納している1つまたは複数のコンピューター記憶デバイスとを備え、前記ロードバランシングマネージャーは、前記複数の宛先ホストの配置において、前記複数の宛先ホストの変更をモニタリングするように構成され、フローIDを宛先ホストにマッピングする宛先ホスト配列を維持するように構成され、定期間隔で前記宛先ホスト配列を更新するように構成され、各配列を更新する前に、前記宛先ホスト配列を前記宛先ホスト配列の旧バージョンに複製するように構成され、前記宛先ホスト配列および前記宛先ホスト配列の前記旧バージョンを、前記複数のマルチプレクサーに提供するように構成され、前記複数のマルチプレクサーの変更をモニタリングするように構成され、フローIDをプライマリーオーナーマルチプレクサーにマッピングする、プライマリーオーナーシップ配列を維持するように構成され、フローIDをバックアップオーナーマルチプレクサーにマッピングする、バックアップオーナーシップ配列を維持するように構成され、および前記プライマリーオーナーシップ配列および前記バックアップオーナーシップ配列を、前記複数のマルチプレクサーに提供するように構成され、前記複数のマルチプレクサーのそれぞれは、前記ルーターからパケットを受信するように構成され、前記パケットに含まれる情報に基づいて、各受信したパケットに対するフローIDを形成するように構成され、前記複数の宛先ホストの中から前記パケットに対する適切な宛先ホストを特定することであって、データフローが新たなデータフローであるかどうかを判定することと、前記データフローが既存のデータフローであると判定されたときに、前記データフローIDを前記宛先ホスト配列へのインデックスとして使用して、前記パケットに対する適切な宛先ホストを特定することと、前記宛先ホスト配列のコンテンツと前記宛先ホストの前記旧バージョンのコンテンツとが一致しないとき、キャッシュした状態を参照して、前記パケットに対する前記適切な宛先ホストを特定することであって、前記マルチプレクサーにおけるキャッシュした状態を参照して、前記マルチプレクサーがフローIDに対する前記適切な宛先ホストのインジケーションを前もってキャッシュしたかどうかを判定することを含む、こととを含むように構成され、前記インジケーションを前もってキャッシュしたかどうかを判定することは、前記マルチプレクサーにおける前記キャッシュした状態が、フローIDに対する前記適切な宛先ホストのインジケーションを含むときに、前記マルチプレクサーにおいて前記キャッシュした状態にアクセスすることと、前記マルチプレクサーにおける前記キャッシュした状態が、フローIDに対する前記適切な宛先ホストを含まないときに、オーナー配列を参照して、前記フローIDに対するオーナーマルチプレクサーを特定し、キャッシュした状態に対する前記特定したオーナーマルチプレクサーに問い合わせ、および前記フローIDに対する前記適切な宛先ホストを示す、キャッシュした状態を、前記特定したオーナーマルチプレクサーから受信する、こととを含み、および前記パケットを、特定した適切な宛先ホストに送信するように構成されていることを特徴とするロードバランシングシステム。本発明は、ロードバランサーコンポーネント間で状態を同期する方法、システム、およびコンピュータープログラム製品に及ぶ。いくつかの実施形態において、ロードバランサーは、ルーターからパケットを受信する。パケットは、ワイドエリアネットワーク上のソースを特定するソース電子アドレス情報と、仮想電子アドレスを含む宛先電子アドレス情報とを含む。ロードバランサーは、ソース電子アドレス情報および宛先電子アドレス情報からの既存のデータフローに対するデータフロー識別子を生成するアルゴリズムを使用する。ロードバランサーは、パケットが既存のデータフローに対するものであると判定する。ロードバランサーは、そのロードバランサーが、複数の宛先ホストの中から既存のデータフローに対応する宛先ホストを特定するのに十分な情報が不足していると判定する。このことは、ロードバランサーが、既存のデータフローを複数の宛先ホストのうちの1つの宛先ホストにマッピングする、キャッシュした状態を有さないことを含む。その判定に応答して、ロードバランサーは、既存のデータフローのオーナーとして指定されたオーナーロードバランサーを特定する。また、その判定に応答して、ロードバランサーは、データフローの状態情報に対するリクエストを、オーナーロードバランサーに送信する。ロードバランサーは、オーナーロードバランサーから状態情報を受信する。状態情報は、既存のデータフローに対応する宛先ホストを特定する。ロードバランサーは、受信した状態情報をキャッシュする。このデータフローにおける後続パケット上で、ロードバランサーは、データフローの継続を示すメッセージを、オーナーロードバランサーに返信する。この継続メッセージを、アイドル状態のタイムアウト間隔毎に一回のみ送信する必要がある。アイドル状態のタイムアウト間隔は、データフローが、いかなるパケットがなくとも、どのくらいの時間同一の宛先ホストへのマッピングを保持するかを判定する。ロードバランサーは、受信したパケットが既存のデータフローに対するものであると判定する。ロードバランサーは、そのロードバランサーが既存のデータフローのオーナーではないと判定する。ロードバランサーは、そのロードバランサーが既存のデータフローに対するキャッシュした状態を有すると判定する。キャッシュした状態は、既存のデータフローを、複数の宛先ホストのうちの1つの宛先ホストにマッピングする。ロードバランサーは、既存のデータフローにマッピングされた宛先ホストに、受信したパケットを送信する。ロードバランサーは、データフロー継続メッセージをオーナーロードバランサーに送信する必要があるかどうかを判定する。ロードバランサーは、キャッシュした状態をオーナーロードバランサーに送信する。本発明の実施形態は、以下でより詳細に説明するように、例えば、1つまたは複数のプロセッサーおよびシステムメモリーなどの、コンピューターハードウェアを含む専用コンピューターまたは汎用コンピューターを備えてもよく、または利用してもよい。本発明の範囲内の実施形態は、コンピューター実行可能命令および/もしくはデータ構造を伝送し、または記憶するための物理的および他のコンピューター可読媒体も含む。このようなコンピューター可読媒体は、汎用コンピューターシステムまたは専用コンピューターシステムによってアクセスすることができる、任意の利用可能な媒体とすることができる。コンピューター実行可能命令を記憶するコンピューター可読媒体は、物理的記憶媒体である。コンピューター実行可能命令を伝送するコンピューター可読媒体は、伝送媒体である。したがって、例として、本発明の実施形態は、少なくとも2つの明確に異なる種類のコンピューター可読媒体である、コンピューター記憶媒体デバイスと伝送媒体とを備えるが、これらに限定されない。コンピューター記憶媒体デバイスは、RAM、ROM、EEPROM、CD-ROM、DVD、もしくは他の光学ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望のプログラムコード手段をコンピューター実行可能命令またはデータ構造の形式で記憶するのに使用することができ、および汎用コンピューターもしくは専用コンピューターによってアクセスすることができるその他の媒体を含む。ネットワークを、電子データをコンピューターシステム、モジュールおよび/または他の電子デバイスの間で運搬することを可能にする、1つまたは複数のデータリンクとして定義する。情報がネットワークまたは別の通信接続有線、無線、または有線もしくは無線の組み合わせのいずれか上でコンピューターに転送または提供されるときに、コンピューターは適切に、その接続を伝送媒体と見なす。伝送媒体は、所望のプログラムコード手段を、コンピューター実行可能命令もしくはデータ構造の形式で伝送するのに使用することができ、および汎用コンピューターもしくは専用コンピューターによってアクセスすることができるネットワークおよび/またはデータリンクを含むことができる。上記の組み合わせもコンピューター可読媒体の範囲内に含まれる。さらに、さまざまなコンピューターシステムコンポーネントに到達すると、コンピューター実行可能命令またはデータ構造の形式におけるプログラムコード手段を、伝送媒体からコンピューター記憶媒体デバイスにまたはその逆自動的に転送することができる。例えば、ネットワークまたはデータリンク上で受信されるコンピューター実行可能命令またはデータ構造を、ネットワークインタフェースモジュール例えば、NIC内のRAMにバッファリングし、およびそれから最終的に、コンピューターシステムRAMおよび/またはコンピューターシステムにおける不揮発性コンピューター記憶媒体デバイスに転送することができる。したがって、コンピューター記憶媒体デバイスをコンピューターシステムコンポーネントに含めることができ、その記憶媒体も伝送媒体を利用するあるいは主として利用することさえできることができることを理解されたい。コンピューター実行可能命令は、例えば、プロセッサーで実行されるときに、汎用コンピューター、専用コンピューター、または専用処理デバイスに、ある機能もしくは機能グループを実行させる命令およびデータを備える。コンピューター実行可能命令は、バイナリー命令であってもよく、アセンブリ言語などの中間フォーマット命令であってもよく、あるいはソースコードであってもよい。発明の主題を、構造的特徴および/または方法論的動作に特有の言語で説明しているが、添付の特許請求の範囲で定義された発明の主題は、必ずしも上記説明した特徴または動作に限定されないことを理解されたい。むしろ、説明する特徴および動作を、特許請求の範囲を実装する例示的な形式として開示する。本発明を、パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサー、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースまたはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピューター、メインフレームコンピューター、モバイル電話、PDA、ページャー、ルーター、およびスイッチなどを含む、多くの種類のコンピューターシステム構成を有するネットワークコンピューティング環境において実施してもよいことが、当業者には認識されよう。本発明を、分散システム環境において実施してもよく、当該分散システム環境では、ローカルコンピューターシステムおよびリモートコンピューターシステムを、ネットワークを通じてリンクし有線データリンク、無線データリンクによって、または有線データリンクと無線データリンクとの組み合わせのいずれかによってリンクする、双方がタスクを実行する。分散システム環境において、プログラムモジュールをローカルメモリー記憶デバイスとリモートメモリー記憶デバイスとの双方に配置してもよい。図1は、ロードバランサーコンポーネント間で状態を同期することを容易にする例示的なコンピューターアーキテクチャー100を示す。図1を参照すると、コンピューターアーキテクチャー100は、ルーター102、ロードバランシングマネージャー103、マルチプレクサー106、および宛先ホスト107を含む。記述したコンピューターシステムの各々を、例えば、ローカルエリアネットワークLANおよび/またはワイドエリアネットワークWANなどの、ネットワーク上またはその一部で互いに接続する。ルーター102をさらに、ネットワーク101に接続する。ネットワーク101はさらに、例えば、インターネットなどのWANとすることができる。したがって、記述したコンポーネントの各々、ならびに任意の他の接続したコンピューターシステムおよびそのコンポーネントは、上述したネットワーク上で、メッセージ関連データを生成し、およびメッセージ関連データを交換することができる例えば、インターネットプロトコルIP、および伝送制御プロトコルTCP、ハイパーテキスト転送プロトコルHTTP、シンプルメール転送プロトコルSMTPなどの、インターネットプロトコルIPデータグラムを利用する他の上位レイヤープロトコル。一般に、ルーター102は、ネットワーク101とコンピューターアーキテクチャー100の他のコンポーネントとの間でインタフェース接続して、ネットワーク101とコンピューターアーキテクチャー100の他のコンポーネントとの間でパケットを適切にルーティングする。ルーター102を、ネットワーク101からメッセージを受信し、およびそのメッセージをコンピューターアーキテクチャー100の適切なコンポーネントに転送するように構成することができる。例えば、ルーター102を、仮想インターネットプロトコルアドレスVIPに対するIPトラフィックを、マルチプレクサー106における物理的インタフェースに転送するように構成することができる。ルーター102は、仮想的に任意の数例えば、4、8、16などのIPアドレスへの等価コストマルチパスECMPルーティングをサポートすることができる。したがって、複数のマルチプレクサー106を、アクティブなマルチプレクサーとして構成することができる。他の実施形態例えば、ECPMがサポートされないときにおいて、1つのマルチプレクサーを、アクティブなマルチプレクサーとして構成し、および0またはそれ以上の他のマルチプレクサーを、待機マルチプレクサーとして構成することができる。さらなる実施形態において、ドメインネームサービスDNSのラウンドロビン方式を使用する。1つまたは複数のVIPを割り当て、および複数のマルチプレクサー106間で共有する。ドメインネームサービスDNSの名前を登録して、1つまたは複数のVIPを解決する。マルチプレクサー106が故障した場合、そのマルチプレクサーが所有するVIPは、他のマルチプレクサー106にフェールオーバーされる。追加的な実施形態において、VIPを、各マルチプレクサーに対するネットワークインタフェースカード上で構成する。マルチプレクサーのうちの1つ例えば、マスターノードを、VIPに対するアドレス解決プロトコルARPリクエストに応答するように設定する。したがって、ルーター102は、VIPに対する任意のパケットを、マスターノードに送信することができる。マスターノードはそれから、現在の状態および/またはロードバランサールールに基づいて、レイヤー2転送を実行することができる。マスターノードの使用は、フラッディングfloodingを軽減することができ、およびレイヤー3転送よりもずっと安価である。記述したように、マルチプレクサー106は、マルチプレクサー106A、106B、および106Cを含む、複数のマルチプレクサーを含む。宛先ホスト107は、宛先ホスト107A、107B、および107Dを含む、複数の宛先ホストを含む。一般に、各マルチプレクサー106を、パケットを受信し、当該パケットに対する適切な宛先ホストを特定し、および当該パケットを適切な宛先ホストに転送するように構成する。いくつかの実施形態において、パケットに対する適切な宛先ホスト107を、パケットのコンテンツ、受信するマルチプレクサーにおけるキャッシュした状態、他のマルチプレクサーにおけるキャッシュした状態、パケットが既存のデータフローに対するものであるかまたは新たなデータフローに対するものであるか、および宛先ホスト107の構成のうちの1つまたは複数から特定する。各マルチプレクサーは、IDジェネレーター、オーナーディテクター、および状態マネージャーを含む。例えば、マルチプレクサー106A、106Bおよび106Cはそれぞれ、IDジェネレーター141A、141Bおよび141C、オーナーディテクター142A、142Bおよび142C、ならびに状態マネージャー143A、143Bおよび143Cを含む。各IDジェネレーターを、パケットのコンテンツに基づいて、パケットに対するデータフローIDを生成するように構成する。いくつかの実施形態において、5組のソースIP:ポート、VIP:ポート、IPプロトコルを使用して、データフローIDを表し、および/または生成する。他の実施形態において、この5組のサブセットを使用してもよい。新たなデータフローIDを、例えば、宛先ホストIP:ポートによって特定される宛先ホスト107にマッピングすることができる。対応する状態マネージャーは、データフローIDおよび宛先ホストIP:ポートをマッピングする状態をキャッシュすることができる。したがって、同一のデータフローIDを有する追加的なパケットを受信するときに、マルチプレクサーは、キャッシュした状態を参照して、追加のパケットのそれぞれに対する適切な宛先ホスト107を特定することができる。いくつかの実施形態において、データフローIDスペースの異なる部分は、異なるマルチプレクサーによって所有される。各マルチプレクサーにおけるオーナーディテクターを、データフローIDに関するオーナーマルチプレクサーを判定するように構成する。そして、オーナーディテクターは、データフローIDを入力として受信し、およびオーナーマルチプレクサーに対するIPアドレスを出力として返すことができる。したがって、各マルチプレクサーは、各データフローIDに対するオーナーマルチプレクサーに状態を送信し、および/またはオーナーマルチプレクサーからの状態を要求することができる。例えば、マルチプレクサーがデータフローIDに対する適切な宛先ホストを特定するときに、マルチプレクサーは、キャッシュに加えて適切な宛先ホストを、データフローIDに対するオーナーマルチプレクサーに転送することができる。一方、マルチプレクサーがデータフローIDに対する適切な宛先ホストを特定するのに十分な情報が不足しているときに、マルチプレクサーは、オーナーマルチプレクサーに問い合わせて、適切な宛先ホストを取得することができる。いくつかの実施形態において、マルチプレクサーがデータフローIDに対応するパケットに対する適切な宛先ホストを特定するのに十分な情報が不足しているときに、マルチプレクサーは、パケットをデータフローIDに対するオーナーマルチプレクサーに送信する。パケットを受信したことに応答して、オーナーマルチプレクサーは、データフローIDに対する適切な宛先ホストを判定する。また、オーナーマルチプレクサーは、データフローIDを適切な宛先ホストにマッピングする、キャッシュした状態オーナーマルチプレクサーにおいて生成し、または他の追加のマルチプレクサーから受信したかのいずれかの状態をマルチプレクサーに送信する。他の実施形態において、マルチプレクサーがデータフローIDに対する適切な宛先ホストを特定するのに十分な情報が不足しているとき、マルチプレクサーは、キャッシュした状態に対する即時リクエストを、データフローIDに対するオーナーマルチプレクサーに送信する。即時リクエストを受信したことに応答して、オーナーマルチプレクサーは、データフローIDを適切な宛先ホストにマッピングする、キャッシュした状態オーナーマルチプレクサーにおいて生成し、または他の追加のマルチプレクサーから受信したかのいずれかの状態を、マルチプレクサーに送信する。マルチプレクサーはそして、パケットを適切な宛先ホストに送信する。一般に、ロードバランシングマネージャー103を、遷移のために宛先ホスト107の配置をモニタリングするように構成する例えば、新たな宛先ホストを追加するときに。宛先配列ジェネレーター104は適宜、データフローIDを宛先ホストにマッピングする配列例えば、ハッシュ関数を使用してを形成する。ロードバランシングマネージャー103は、配列の現在のバージョン例えば、新配列109と配列のすぐ前のバージョン例えば、旧配列108の、配列の2つのバージョンを維持することができる。配列内の位置は、データフローIDに対応することができる。例えば、配列位置1は、データフローID1などに対応することができる。したがって、配列108および109に示すように、宛先ホスト107Bは、データフローID1に対する適切な宛先ホストである。ロードバランシングマネージャー103は、配列の2つのバージョンをマルチプレクサー106に通信することができる。宛先ホスト107の配置が定常状態であるときは、配列の現在のバージョンおよびすぐ前のバージョンは一致する。そのため、定常状態では、マルチプレクサー106は、マッピングを参照して、指定されたデータフローIDに対するパケットをどこに送信するかを判定することができるマルチプレクサーがキャッシュした状態を有さないときでさえ。一方、宛先ホスト107の配置が遷移中であるとき例えば、新たな宛先ホスト107を追加しているときに、配列の現在のバージョンおよびすぐ前のバージョンにおけるマッピングは異なる。例えば、新たな宛先ホスト107を追加するときに、データフローIDスペースをよりおおくの宛先ホスト107まで拡張して、個々の宛先ホスト107の負荷を減少させることができる。例えば、相違111は、データフローIDスペースの一部が、以前は宛先ホスト107D例えば、データフローID3に対応していたが、今は、宛先ホスト107Cに対応していることを示す。既存のデータフローに対するパケットが同一の宛先ホストに継続する確率を上げるために、マルチプレクサー106は、宛先ホスト107の配置が遷移中であるときに、キャッシュした状態を参照することができるローカルに、またはオーナーマルチプレクサーから問い合わされるかのいずれか。図2は、ロードバランサー間で状態を共有する例示的な方法200のフローチャートを示す。方法200を、コンピューターアーキテクチャー100のコンポーネントおよびデータについて説明する。方法200は、ルーターからパケットを受信するロードバランサーの動作を含み、当該パケットは、ワイドエリアネットワーク上のソースを特定するソース電子アドレス情報と、仮想電子アドレスを含む宛先電子アドレス情報とを含む動作201。例えば、マルチプレクサー106Aは、ルーター102からパケット121を受信することができる。パケット121は、ネットワーク101上のソースを特定するソース例えば、IPアドレス122を含む。パケット121はまた、宛先アドレス123を含む。宛先アドレス123を、宛先ホスト107とコンタクトするのに使用される仮想IPアドレスにすることができる。方法200は、パケットが既存のデータフローに対するものであると判定するロードバランサーの動作を含む動作202。例えば、マルチプレクサー106は、パケット121が既存のデータフローに対するものであると判定することができる。データフローにおける第1のパケット例えば、伝送制御プロトコル、TCPパケットに関するSYNパケットは、第1のパケットインジケーターを含むことができる。データフローにおける他のパケット例えば、TCPに対する非SYNパケットは、第1のパケットインジケーターを含まない。したがって、パケットが第1のパケットインジケーターを含まないとき、マルチプレクサーは、そのパケットが既存のデータフローに対するものであると推測することができる。マルチプレクサー106Aは、パケット121が第1のパケットインジケーターを含まないと判定することができる。そのため、マルチプレクサー106Aは、パケット121が既存のデータフローに対するものであると推測する。方法200は、ソース電子アドレス情報および宛先電子アドレス情報から既存のデータフローに対するデータフローインジケーターを生成するアルゴリズムを使用する、ロードバランサーの動作を含む動作203。例えば、IDジェネレーターは、ソースアドレス122および宛先アドレス123を、フローID144にハッシュするハッシュ関数を使用することができる。フローID144は、例えば、新配列109のインデックス位置を表すことができる。例えば、フローID144は、新配列109における第4の位置を表すことができる。いくつかの実施形態において、ハッシュアルゴリズムを使用してソースIPアドレスおよびVIPをデータフロー識別子にハッシュする。方法200は、ロードバランサーが、複数の宛先ホストの中から既存のデータフローに対応する宛先ホストを特定するのに十分な情報が不足していると判定するロードバランサーの動作を含む動作204。例えば、マルチプレクサー106Aは、マルチプレクサー106Aが宛先ホスト107の中からデータフロー144に対応する適切な宛先ホストを特定するのに十分な情報が不足していると判定することができる。動作204は、ロードバランサーが既存のデータフローを複数の宛先ホストにおける1つの宛先ホストにマッピングする、いかなるキャッシュした状態を有していないと判定する、ロードバランサーの動作を含むことができる動作205。例えば、状態マネージャー143Aは、マルチプレクサー106Aが、フローID144を宛先ホスト107のうちの1つにマッピングした、キャッシュした状態を有していないと判定することができる。状態マネージャー143Aは、状態146Aキャッシュした状態を参照して、フローID144に対する宛先ホストのマッピングを検査することができる。動作204は、複数の宛先ホストの配置が遷移中であることを検出するロードバランサーの動作を含むことができる。例えば、マルチプレクサー106Aは、宛先ホスト107の配置の遷移を検出することができる。1つまたは複数の既存のデータフロー例えば、フローID144の存続期間lifetime中に、宛先ホスト107Cを宛先ホスト107に追加することができる。宛先配列ジェネレーター104は、変更を検出することができる。それに応じて、宛先配列ジェネレーター104は、新配列109を生成することができる。マルチプレクサー106Aは、旧配列108および新配列109を参照することができる。少なくとも相違111により記述したように、マルチプレクサー106Aは、遷移を検出する。つまり、現在、データフローIDスペースの一部を、宛先ホスト107Cに割り振っている。方法200は、ロードバランサーが、既存のデータフローに対応する宛先ホストを特定するのに十分な情報が不足していると判定したことに応答して、既存のデータフローのオーナーとして指定されたオーナーロードバランサーを特定するロードバランサーの動作を含み、当該オーナーロードバランサーを、1つまたは複数の他のロードバランサーの中から選択する動作206。例えば、マルチプレクサー106Aは、マルチプレクサー106BをフローID144のオーナーとして特定することができる。オーナーディテクター142Aは、フローID144を入力として受信し、およびマルチプレクサー106Bに対するIPアドレスを、フローID144のオーナーとして出力することができる。いくつかの実施形態において、マルチプレクサー106Aは、ソースアドレス122および宛先アドレス123を第2のハッシュ値にハッシュする第2のハッシュアルゴリズムを使用する。第2のハッシュ値は、オーナー配列におけるインデックス位置を表す例えば、図7Aおよび7Bにおいて記述した。オーナー配列は、データフローを対応するオーナーマルチプレクサーにマッピングし、そのマルチプレクサーは、遷移が検出されたときに、マッピングしたデータフローに対する状態を維持する。したがって、マルチプレクサー106Aは、オーナー配列におけるフローID144に対するインデックス位置を参照して、マルチプレクサー106BをフローID144のオーナーとして特定することができる。ロードバランシングマネージャー103は、マルチプレクサー106をモニタリングし、およびマルチプレクサーが追加され、および/またはマルチプレクサー106から除去されるときに、データフローに対するプライマリーオーナーの配列およびバックアップオーナーの配列を調整することができる。ロードバランシングマネージャー103は、データフローに対するオーナーシップを分散して、プライマリーおよびバックアップオーナーシップをマルチプレクサー106にわたってある程度均等化することができる。方法200はまた、既存のデータフローに対応する宛先ホストを特定するのに十分な情報が不足していると判定したことに応答して、データフロー状態情報に関するリクエストを、オーナーロードバランサーに送信するロードバランサーの動作を含む動作207。例えば、マルチプレクサー106Aは、パケット121をマルチプレクサー106Bに送信することができる。代わりに、マルチプレクサー106Aは、パケット121を保持し、およびフローID144に対するデータフロー状態情報に関する即時リクエストをマルチプレクサー106Bに送信することができる。マルチプレクサー106Bは、マルチプレクサー106Aからパケット121を受信することができる。一旦、パケット121を受信すると、IDジェネレーター141Bは、ソースアドレス122および宛先アドレス123からフローID144を生成することができる。オーナーディテクター142Bはそして、マルチプレクサー106BがフローID144に対するオーナーであると判定することができる。状態マネージャー143Bは、状態146Bを参照して、状態126にアクセスすることができる。状態126は、フローID144を宛先ホスト107Bにマッピングすることができる。状態が見つからない場合、マルチプレクサー106Bは、現在の宛先配列を使用して、新たな状態126を生成することができる。マルチプレクサー106Bは、パケット121を宛先ホスト107Bに送信することができる。マルチプレクサー106Bまたは、状態126をマルチプレクサー106Aに返すことができる。マルチプレクサー106Bはまた、このフローに対応するバックアップオーナーに状態126を送信することができる。代わりに、マルチプレクサー106Bは、マルチプレクサー106Aから、フローID144についてのデータフロー状態情報に対する即時リクエストを受信することができる。オーナーディテクター142Bは、マルチプレクサー106BがフローID144に関するオーナーであると判定することができる。状態マネージャー143Bは、状態146Bを参照して、状態126にアクセスすることができる。マルチプレクサー106Bは、状態126をマルチプレクサー106Aに返すことができる。方法200は、オーナーロードバランサーから状態情報を受信するロードバランサーの動作を含み、その状態情報は、既存のデータフローに対応する宛先ホストを特定する動作208。例えば、マルチプレクサー106Aは、マルチプレクサー106Bから状態126を受信することができる。方法200は、受信した状態情報をキャッシュするロードバランサーの動作を含む動作209。例えば、マルチプレクサー106Aは、状態126を状態146Aにキャッシュすることができる。即時リクエストに応答してマルチプレクサー106Aが状態126を受信するときに、マルチプレクサー106Aはそれから、パケット121を宛先ホスト107Bに送信することができる。さらに、フローID144に対する後続パケットを受信するときにマルチプレクサー106Bがパケット121を宛先ホスト107Bに送信する場合でさえ、マルチプレクサー106Aは、宛先ホスト107Bを、その後続パケットに対する適切な宛先ホストとして特定することができる。例えば、マルチプレクサー106Aは、パケット132を受信することができる。パケット132は、ソースアドレス122および宛先アドレス123を含む。IDジェネレーター141Bは、パケット132がフローID144に対応すると判定することができる。状態マネージャー143Bは、状態146Aを参照して、宛先ホスト107BがフローID144に対する適切な宛先ホストであると特定することができる。マルチプレクサー106Aはそれから、パケット132を宛先ホスト107Bに送信することができる。他のマルチプレクサーはまた、フローID144に対するパケットを受信することができる。これらの他のマルチプレクサーがフローID144に対するキャッシュした状態を有している場合自己生成したか、別のマルチプレクサーから問い合わされたかのいずれか、それらのマルチプレクサーは、パケットを宛先ホスト107Bに送信することができる。例えば、マルチプレクサー106Cは、パケット131を受信することができる。パケット131は、ソースアドレス122および宛先アドレス123を含む。IDジェネレーター141Cは、パケット132がフローID144に対応すると判定することができる。状態マネージャー143Cは、状態146Cを参照して、宛先ホスト107BがフローID144に対する適切な宛先ホストであると特定することができる。マルチプレクサー106Cはそれから、パケット131を宛先ホスト107Bに送信することができる。さらに、宛先ホストの配置が遷移中であるとき、旧宛先配列および新宛先配列において異なる宛先ホストを有する、既存のデータフローに対する状態を備えるマルチプレクサーは、その状態をデータフローに対するオーナーマルチプレクサーに送信することができる。例えば、それは、宛先ホスト107Cの追加によって宛先ホスト107を遷移させることであってもよい。一旦、遷移を検出すると、マルチプレクサー106Cは、例えば、マルチプレクサー106Aおよび/またはマルチプレクサー106Bなどの、他のマルチプレクサーがオーナーである、1つまたは複数の既存のデータフローに対する状態を有することができる。遷移を検出したことに応答して、マルチプレクサー106は、旧宛先配列および新宛先配列において異なる宛先ホストを有する既存のデータフローに対する状態を、適切なオーナーマルチプレクサーに送信することができる。例えば、マルチプレクサー106Cは、フローID144に対する状態をマルチプレクサー106C図示せずに送信することができる。遷移中、適切なオーナーマルチプレクサーは、他のマルチプレクサーから状態を受信することができる。例えば、マルチプレクサー106Aは、マルチプレクサー106C図示せずからフローID144に対する状態を受信することができる。図3は、ロードバランサー間で状態を共有する例示的な方法300のフローチャートを示す。方法300を、コンピューターアーキテクチャー100のコンポーネントおよびデータについて説明する。方法300は、1つまたは複数の他のロードバランサーに含まれる別のロードバランサーからパケットを受信するロードバランサーの動作を含み、当該パケットは、ワイドエリアネットワーク上のソースを特定するソース電子アドレス情報と、仮想電子アドレスを含む宛先電子アドレス情報とを含む動作301。例えば、マルチプレクサー106Bは、マルチプレクサー106Aからパケット121を受信することができる。方法300は、受信したパケットが既存のデータフローに対するものであると判定するロードバランサーの動作を含む動作302。例えば、IDジェネレーター141は、パケット121がフローID144に対応すると判定することができる。方法300は、ロードバランサーが既存のデータフローのオーナーであると判定する、ロードバランサーの動作を含む動作303。例えば、オーナーディテクター142Bは、マルチプレクサー106BがフローID144のオーナーであると判定することができる。方法300は、ロードバランサーが既存のデータフローに対するキャッシュした状態を有すると判定するロードバランサーの動作を含み、キャッシュした状態は、既存のデータフローを複数の宛先ホストのうちの1つの宛先ホストにマッピングする動作304。例えば、状態マネージャー143Bは、状態146Bを参照して、状態126にアクセスすることができる。状態126は、フローID144が宛先ホスト107Bに対応すると示すことができる。代わりに、状態マネージャー143Bは、状態126を生成することができる。方法300は、受信したパケットを、既存のデータフローがマッピングされる宛先ホストに送信するロードバランサーの動作を含む動作305。例えば、マルチプレクサー106Bは、パケット121を宛先ホスト107Bに送信することができる。方法300は、キャッシュした状態を他のロードバランサーに送信する、ロードバランサーの動作を含む動作306。例えば、マルチプレクサー106Bは、状態126をマルチプレクサー106Aに返すことができる。代わりに、マルチプレクサー106Bは、フローID144を適切な宛先ホスト107にマッピングする状態に関する即時リクエストを、マルチプレクサー106Aから受信することができる。それに応じて、状態マネージャー143Bは、状態146Bを参照して、状態126にアクセスすることができる。状態126は、フローID144が宛先ホスト107Bに対応すると示すことができる。マルチプレクサー106Bは、状態126をマルチプレクサー106Aに返すことができる。マルチプレクサー106Aはそれから、状態126におけるマッピングに基づいて、パケット121を宛先ホスト107Bに送信することができる。図4Aおよび図4Bは、マルチプレクサー間で状態を共有する例示的なコンピューターアーキテクチャー400を示す。記述したように、コンピューターアーキテクチャー400は、マルチプレクサー401Aおよび401B、ならびに宛先ホスト402A、402Bおよび402Cを含む。図4Aにおいて、マルチプレクサー401Bは、パケット421を受信する。マルチプレクサー401Bは、適切な宛先ホストを特定するのに十分な情報が不足していると判定する。それに応じて、マルチプレクサー401Bは、パケット421をマルチプレクサー401Aオーナーマルチプレクサーに送信する。マルチプレクサー401Aは、マルチプレクサー401Bからパケット421を受信する。マルチプレクサー401Aは、状態426を特定し、および状態426をマルチプレクサー401Bに返す。状態426は、パケット421に対するデータフローを宛先ホスト402Bにマッピングする。マルチプレクサー401Aはまた、パケット421を宛先ホスト402Bに転送する。その次に、マルチプレクサー401Bは、パケット421と同一のデータフローに対するパケット422およびパケット423を受信する。状態426に基づいて、マルチプレクサー401Bは、パケット422およびパケット423を宛先ホスト402Bに送信する。図4Bにおいて、マルチプレクサー401Aは、パケット431を受信する。マルチプレクサー401Bは、適切な宛先ホストを特定するのに十分な情報が不足していると判定する。それに応じて、マルチプレクサー401Bは、パケット431をマルチプレクサー401Aオーナーマルチプレクサーに送信する。マルチプレクサー401Aは、マルチプレクサー401Bからパケット431を受信する。マルチプレクサー401Aは、状態436を特定し、および状態436をマルチプレクサー401Bに返す。状態436は、パケット431に対するデータフローを宛先ホスト402Bにマッピングする。マルチプレクサー401Aは、パケット431を宛先ホスト402Bに送信する。しかしながら、状態436を受信する前に、マルチプレクサー401Bは、パケット431と同一のデータフローに対するパケット432を受信する。マルチプレクサー401Bがまだ状態436を受信していないので、マルチプレクサー401Bは、適切な宛先ホストを特定するのに十分な情報が不足していると判定する。それに応じて、マルチプレクサー401Bはまた、パケット432をマルチプレクサー401Aに送信する。マルチプレクサー401Aは、マルチプレクサー401Bからパケット432を受信する。マルチプレクサー401Aは、状態436をマルチプレクサー401Bに送信したと判定する。マルチプレクサー401Aは、パケット432を宛先ホスト402Bに送信する。続いて、マルチプレクサー401Bは、パケット431と同一のデータフローに対するパケット433を受信する。状態436に基づいて、マルチプレクサー401Bは、パケット433を宛先ホスト402Bに送信する。したがって、本発明の実施形態は、マルチプレクサー間で状態を交換する際の遅延を補償することができる。図5Aおよび図5Bは、マルチプレクサー間で状態を共有する例示的なコンピューターアーキテクチャー500を示す。記述したように、コンピューターアーキテクチャー500は、マルチプレクサー501A、501Bおよび501C、ならびに宛先ホスト502A、502Bおよび502Cを含む。図5Aにおいて、マルチプレクサー501Aは、パケット521およびパケット522パケット521およびパケット522は、SYNパケットではないを含む既存のデータフローに対するプライマリーオーナーである。マルチプレクサー501Cは、パケット521およびパケット522を含むデータフローに対するバックアップオーナーである。マルチプレクサー501Aは、パケット521を受信する。マルチプレクサー501Aは、マルチプレクサー501Aが既存のデータフローのオーナーであり、および適切な宛先ホストを特定するのに十分な情報が不足している即ち、マルチプレクサー501Aは、既存のデータフローに対するキャッシュした状態を欠いていると判定する。それに応じて、マルチプレクサー501Aは、現在の宛先配列例えば、新配列109を参照して、宛先ホスト502Aを適切な宛先ホストと特定する。マルチプレクサー501Aはまた、既存のデータフローに対する状態526をトラッキングすることを開始する。後続の遷移後、および状態526が新配列とは異なると判定した後、マルチプレクサー501Aは、状態526をマルチプレクサー501Cに送信する。マルチプレクサー501Cは、マルチプレクサー501Aから状態526を受信し、および状態526をキャッシュする。状態526は、既存のデータフローを宛先ホスト502Aにマッピングする。したがって、マルチプレクサー501Aに障害が発生すると、マルチプレクサー501Cは、状態526を提供することにおいて、他のマルチプレクサーに引き継ぐことができる。図5Bにおいて、マルチプレクサー501Aは、パケット531およびパケット532パケット531およびパケット532は、SYNパケットではないを含む既存のデータフローに対するプライマリーオーナーである。マルチプレクサー501Cは、パケット531およびパケット532を含むデータフローに対するバックアップオーナーである。マルチプレクサー501Bは、パケット531およびパケット532を受信する。マルチプレクサー501Bは、宛先ホスト502Aが既存のデータフローに対する適切な宛先ホストであると判定するのに十分な情報を有する即ち、新たなフローまたはマルチプレクサーのいずれかがフローに関するキャッシュした情報を有する。マルチプレクサー501Bはまた、マルチプレクサー501Aが既存のデータフローのプライマリーオーナーであると判定する。宛先配列において変更があると、マルチプレクサー501Bは、遷移を検出し、および状態536をマルチプレクサー501Aに送信する。マルチプレクサー501Aは、マルチプレクサー501Bから状態536を受信する。状態536は、既存のデータフローを宛先ホスト502Aにマッピングする。同一のフローに属するさらなるパケットが、マルチプレクサー501Bに到達し続ける場合、マルチプレクサー501Bは、バッチ更新538マルチプレクサー501Aがオーナーである状態536および他の状態を含むをオーナーマルチプレクサー501Aに随時送信し続けて、オーナーマルチプレクサーが、それがオーナーであるすべてのフローに関する現在の状態を常に有するようにする。随時、マルチプレクサー501Aは、バッチ状態の更新を他のバックアップオーナーに送信することができる。例えば、マルチプレクサー501Aは、状態537をマルチプレクサー501Cに送信することができる。マルチプレクサー501Cは、マルチプレクサー501Aから状態537を受信することができる。状態537は、マルチプレクサー501Aによってトラッキングされるアクティブなフローに対する状態更新状態536を含むのバッチとすることができる。図6A、図6B、図6Cおよび図6Dは、データフローの宛先ホストへのマッピングを維持する例示的なコンピューターアーキテクチャー600を示す。図6Aは、宛先ホストA601、宛先ホストB602、および宛先ホストC603の配置を定常状態で記述する。したがって、旧配列608および新配列609は、互いに一致する。定常状態では、マルチプレクサーは、配列を参照して、データフローに対する適切な宛先ホストを判定することができる。図6Bは、宛先ホストA601、宛先ホストB602、および宛先ホストC603の配置を記述し、そこでは宛先ホストC603が除去される。宛先ホストの除去を、基本的に瞬時に行うことができる。そのため、宛先ホストの除去は、必ずしも宛先ホストの配置における遷移を示す必要はない。したがって、宛先ホストが除去されると、マルチプレクサーは、引き続き配列を参照して、データフローに対する適切な宛先ホストを判定することができる。図6Cは、宛先ホストA601、宛先ホストB602、宛先ホストC603および宛先ホスト604Dの配置を記述し、そこでは宛先ホストC603が宛先ホスト604Dに置き換えられる。宛先ホストの置換もまた、基本的に瞬時に行うことができる。そのため、宛先ホストの置換は、必ずしも宛先ホストの配置における遷移を示す必要はない。したがって、宛先ホストが置換されると、マルチプレクサーは、引き続き配列を参照して、データフローに対する適切な宛先ホストを判定することができる。図6Dは、宛先ホストA601、宛先ホストB602、宛先ホストC603および宛先ホスト604Dの配置を記述し、そこでは宛先ホストC603を追加する。宛先ホストの追加は、遷移期間を含むことができ、したがって、宛先ホストの配置における遷移を含むことができる。遷移期間中、旧配列608および新配列609におけるマッピングは異なることができる一部のデータフローが宛先ホストDに再度割り振られて、作業負荷が均等されるため。異なるマッピングを検出した場合、マルチプレクサーは、データフロー状態をトラッキングし、および交換することができる。すべてのオーナーマルチプレクサーが、それらが所有するフローに関する決定を行うのに十分な情報を有するときに、宛先ホストの配置は、定常状態に戻り、および旧配列608および新配列609が再度一致する。図7Aおよび図7Bは、データフローのオーナーマルチプレクサーへのマッピングを維持する例示的なコンピューターアーキテクチャー700を示す。図7Aは、マルチプレクサーA701、マルチプレクサーB702、マルチプレクサーC703およびマルチプレクサーD704を記述する。プライマリーオーナー配列708は、データフローをプライマリーオーナーマルチプレクサーにマッピングする。バックアップオーナー配列709は、データフローをバックアップオーナーマルチプレクサーにマッピングする。配列におけるインデックス位置は、データフローIDに対応することができる。例えば、データフローID6に対するプライマリーオーナーは、マルチプレクサーB702である。同様に、データフローID6に対するバックアップオーナーは、マルチプレクサーC703である。いくつかの実施形態において、オーナーディテクター例えば、142A、142B、142Cなどは、データフローIDを配列へのインデックス位置として使用し、およびインデックス位置において特定されたマルチプレクサーに状態の更新を送信する。マルチプレクサーに障害が発生するときに、そのマルチプレクサーに対するプライマリーオーナーシップおよびバックアップオーナーシップのレスポンシビリティresponsibilityを再度割り振る。図7Bは、マルチプレクサーC703の障害を記述する。障害に応答して、インデックス位置データフローID9-12に対するプライマリーオーナーシップおよびインデックス位置データフローID5-8に対するバックアップオーナーシップを、残りのマルチプレクサーに再度割り振る。したがって、本発明の実施形態は、新たな接続をどのように負荷分散するべきかを決定する一貫性のあるハッシュアルゴリズムを使用するロードバランサーを含む。一貫性のあるハッシュアルゴリズムの使用により、ロードバランサーが、交換する必要がある状態の量を最小限にすることが可能になる。特に、ハッシュおよび宛先配列を使用して判定することができないフロー状態のみを同期すればよい。ロードバランサーは、着信パケットに対するフロー状態の情報所与のフローに対する宛先アドレスを保持する。それが必要な場合、即ち、例えば、宛先ホスト構成における変更を検出するときに、選択した状態情報をロードバランサー間で決定論的に共有し、それによって、権限のあるロードバランサー例えば、オーナーロードバランサーが所与のフローに対する正確な宛先ホストを選択することが可能になる。各ロードバランサーは、権限のあるロードバランサーに到達して、ローカルに判定することができないフローについて理解することができる。本発明を、本発明の精神または本質的な特徴から逸脱することなく他の特定の形式で具体化してもよい。説明した実施形態は、すべての点において単に例示的であり、および制限されるものではないと見なされる。したがって、本発明の範囲を、上記の説明によってではなく、添付の特許請求の範囲によって示す。特許請求の範囲と等価の意味および範囲に入るすべての変更は、それらの範囲内に含まれるものとする。