(57)【特許請求の範囲】
【請求項１】
アレイにおいてデータパケットの負荷分散を行う方法であって、
前記アレイの入力端子が、第１のフォーマットに変換されたデータパケットを受信するステップであって、前記アレイは複数の要素を含む、ステップと、
該受信したデータパケットを前記アレイの第１の要素に割り当てるステップであって、前記第１の要素は、前記アレイの前記複数の要素のうちの１つである、ステップと、
前記データパケットを、前記アレイの前記第１の要素を介して、デバイスに転送するステップと、
前記アレイで、前記デバイスからの第２のフォーマットに変換されたメッセージを受信するステップと、
前記メッセージのペイロード部分から情報を抽出するステップと、
前記メッセージの前記ペイロード部分から抽出された前記情報に基づいて、前記メッセージを前記アレイの第２の要素に割り当てるステップであって、前記第２の要素は、前記アレイの前記第１の要素と同じ要素である、ステップと
を含むことを特徴とする方法。
【請求項２】
前記メッセージは、ＩＰｖ６（インターネットプロトコルバージョン６）移行技術フォーマットに変換され、前記メッセージは、ＩＰｖ４（インターネットプロトコルバージョン４）情報を含み、前記ＩＰｖ４情報は、前記メッセージの前記ペイロード部分から抽出されることを特徴とする請求項１に記載の方法。
【請求項３】
前記メッセージは、ネイティブＩＰｖ６（インターネットプロトコルバージョン６）フォーマットに変換され、前記メッセージは、ＩＰｖ４（インターネットプロトコルバージョン４）情報を含み、前記ＩＰｖ４情報は、前記メッセージの前記ペイロード部分から抽出されることを特徴とする請求項１に記載の方法。
【請求項４】
前記データパケットは、第１のハッシュ関数演算に基づいて、前記アレイの前記第１の要素に割り当てられ、前記メッセージは、第２のハッシュ関数演算に基づいて、前記アレイの前記第１の要素に割り当てられることを特徴とする請求項１に記載の方法。
【請求項５】
前記デバイスは、宛先アドレスを有するサーバを含み、前記サーバの前記宛先アドレスは、ＩＰｖ６（インターネットプロトコルバージョン６）アドレスを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記データパケットは、前記デバイスの宛先アドレスに転送され、前記デバイスの前記宛先アドレスは、ＩＰｖ４（インターネットプロトコルバージョン４）アドレスタイプ以外のアドレスタイプを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記メッセージは、テレード移行技術フォーマットに変換され、前記メッセージは、クライアントデバイスに割り当てられたＩＰｖ６（インターネットプロトコルバージョン６）アドレスを含み、前記ＩＰｖ６アドレスは、テレードサーバのＩＰｖ４（インターネットプロトコルバージョン４）アドレス、前記クライアントデバイスに関連付けられたＩＰｖ４アドレス、及び前記クライアントデバイスに関連付けられたポートを含み、前記クライアントデバイスに関連付けられた前記ＩＰｖ４アドレス及び前記ポートは、前記第２のハッシュ関数演算に適用されることを特徴とする請求項４に記載の方法。
【請求項８】
前記クライアントデバイスに関連付けられた前記ＩＰｖ４アドレスは、クライアントアドレス及びＮＡＴ（ネットワークアドレス変換）デバイスのアドレスの一方を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記メッセージは、６ｔｏ４移行技術フォーマットに変換され、前記メッセージは、クライアントデバイスに割り当てられた６ｔｏ４アドレスを含み、前記６ｔｏ４アドレスは、ホストデバイスに割り当てられたＩＰｖ６（インターネットプロトコルバージョン６）アドレスを表す部分を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記メッセージは、ＩＳＡＴＡＰ移行技術フォーマットに変換され、前記メッセージは、クライアントデバイスに割り当てられたＩＳＡＴＡＰアドレスを含み、前記ＩＳＡＴＡＰアドレスは、ユニキャストＩＰｖ４（インターネットプロトコルバージョン４）アドレスを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記メッセージは、ハッシュ関数に基づいて、前記アレイの前記第２の要素に割り当てられ、ＩＰｖ４（インターネットプロトコルバージョン４）アドレスとポート番号の組み合わせが、前記ハッシュ関数への入力として使用されることを特徴とする請求項１に記載の方法。
【請求項１２】
前記データパケットは、ＩＰｖ４（インターネットプロトコルバージョン４）パケットを含み、前記方法は、ＩＰｖ４パケット内に埋め込まれたＩＰｖ６（インターネットプロトコルバージョン６）アドレスを抽出するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
アレイであって、
データパケットを受信するための第１のネットワークコンポーネントと、
当該受信したデータパケットを前記アレイの第１の要素に転送するための転送コンポーネントと、
デバイスから移行技術フォーマットに変換されたメッセージを受信するための第２のネットワークコンポーネントと、
前記メッセージから情報を抽出するための抽出コンポーネントと、
前記メッセージから抽出された前記情報に基づいて、前記メッセージを前記アレイの第２の要素に割り当てるための割り当てコンポーネントであって、前記アレイは、複数の要素を含み、前記第２の要素は前記アレイの前記第１の要素と同じ要素である、割り当てコンポーネントと
を備えることを特徴とするアレイ。
【請求項１４】
前記アレイの前記同じ要素への前記データパケット及び前記メッセージの転送は、前記アレイにおいて双方向アフィニティをもたらすことを特徴とする請求項１３に記載のアレイ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散に関する。
【背景技術】
【０００２】
負荷分散（ｌｏａｄ  ｂａｌａｎｃｉｎｇ）は一般に、受信した各データパケットの送信元ＩＰ（インターネットプロトコル）アドレスまたは宛先ＩＰアドレスに基づいて実行される。ＩＰバージョン６（ＩＰｖ６）移行技術（ｔｒａｎｓｉｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ）を使用する場合、送信元ＩＰアドレス及び宛先ＩＰアドレスが、ロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）から直接には見えないことがある。例えば、テレード（Ｔｅｒｅｄｏ）、６ｔｏ４、及びＩＳＡＴＡＰ（イントラサイト自動トンネルアドレッシングプロトコル（Ｉｎｔｒａ−Ｓｉｔｅ  Ａｕｔｏｍａｔｉｃ  Ｔｕｎｎｅｌ  Ａｄｄｒｅｓｓｉｎｇ  Ｐｒｏｔｏｃｏｌ））などのＩＰｖ６移行技術は、ＩＰｖ４（インターネットプロトコルバージョン４）送信元アドレス情報をデータパケット内に埋め込む。したがって、ロードバランサは、ＩＰｖ６移行技術フォーマットで符号化されたデータパケットを処理する際に、困難に直面することがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、アレイにおけるデータパケットの負荷分散について説明する。第１のフォーマットで符号化されたデータパケットが、アレイの要素に割り当てられ、デバイス（例えばサーバ）に転送される。第２のフォーマットで符号化されたデバイスからのメッセージ（例えば応答）が、アレイにおいて受信される。メッセージのペイロード部分から抽出された情報に基づいて、メッセージは、アレイの同じ要素（例えば割り当てられた要素）に割り当てられる。
【０００４】
例えば、企業ネットワークのＩＰｖ６サーバを宛先とする、ＩＰｖ４フォーマット内にカプセル化されたデータパケットが、アレイに到着することがある。インターネット側からのデータパケットは、第１のハッシュ関数演算に基づいて、アレイの要素に転送される。ＩＰｖ６サーバからの応答メッセージは、ネイティブＩＰａｖ６として、またはＩＰｖ４内に埋め込まれたＩＰｖ６として、アレイの企業側に到着する。応答メッセージ内に埋め込まれた情報は、メッセージのペイロード部分から抽出され、第２のハッシュ関数演算が、メッセージのペイロード部分から抽出された情報に対して実行される。応答メッセージは、データパケットと同じアレイの要素に割り当てられ、アレイにおいて双方向アフィニティ（ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ  ａｆｆｉｎｉｔｙ）をもたらす。
【０００５】
この「課題を解決するための手段」は、以下の「発明を実施するための形態」でさらに説明される概念からの抜粋を簡略化された形で導入するために提供される。この「課題を解決するための手段」は、特許請求される主題の主要な特徴または必須の特徴を識別することは意図しておらず、特許請求される主題の範囲を限定するために使用することも意図していない。
【図面の簡単な説明】
【０００６】
【図１】負荷分散システムの第１の特定の実施形態を示すブロック図である。
【図２】負荷分散システムの第２の特定の実施形態を示すブロック図である。
【図３】いくつかのＩＰｖ６移行技術フォーマットを示すブロック図である。
【図４】負荷分散システムの第３の特定の実施形態を示すブロック図である。
【図５】負荷分散システムの第４の特定の実施形態を示すブロック図である。
【図６】負荷分散システムの第５の特定の実施形態を示すブロック図である。
【図７】負荷分散方法の特定の実施形態を示すフロー図である。
【図８】汎用コンピュータシステムの例示的な実施形態のブロック図である。
【発明を実施するための形態】
【０００７】
特定の実施形態では、アレイにおいてデータパケットの負荷分散を行う方法が開示される。方法は、アレイの入力端子が、第１のフォーマットで符号化されたデータパケットを受信するステップを含む。受信したデータパケットは、アレイの割り当てられた要素に割り当てられ、データパケットは、デバイスに転送される。第２のフォーマットで符号化されたメッセージが、デバイスから受信される。メッセージのペイロード部分から情報が抽出され、メッセージのペイロード部分から抽出された情報に基づいて、メッセージは、アレイの割り当てられた要素に割り当てられる。第１のフォーマットの例は、ＩＰｖ４（インターネットプロトコルバージョン４）フォーマットであり、第２のフォーマットの例は、ＩＰｖ６（インターネットプロトコルバージョン６）フォーマットである。
【０００８】
別の特定の実施形態では、ネットワークコンポーネント、抽出コンポーネント、及び割り当てコンポーネントを含むアレイが開示される。アレイは、複数の要素を含む。ネットワークコンポーネントは、移行技術フォーマットで符号化されたメッセージをデバイスから受信する。抽出コンポーネントは、メッセージから情報を抽出する。割り当てコンポーネントは、メッセージから抽出された情報に基づいて、メッセージをアレイの第１の要素に割り当てる。
【０００９】
別の特定の実施形態では、コンピュータによって実行可能な命令を含むコンピュータ可読媒体が開示される。命令は、コンピュータによって実行された場合、コンピュータに、アレイにおいて受信したデータパケットをアレイの割り当てられた要素に割り当てさせる。データパケットは、第１のフォーマットで符号化される。命令は、コンピュータによって実行された場合、コンピュータに、データパケットをデバイスに転送させ、またデバイスから受信したメッセージのペイロード部分から情報を抽出させる。メッセージは、第２のフォーマットで符号化される。命令は、コンピュータによって実行された場合、コンピュータに、メッセージのペイロード部分から抽出された情報に基づいて、メッセージをアレイの割り当てられた要素に割り当てさせる。第１のフォーマット及び第２のフォーマットの少なくとも一方は、移行技術フォーマットを含む。
【００１０】
図１を参照すると、負荷分散システムのブロック図が示されており、全体として１００で示されている。システム１００は、アレイ１０２と、クライアント１１０と、第１のサーバ１１２と、第２のサーバ１１４とを含む。アレイ１０２は、複数のアレイ要素を含む。例えば、図１に示される実施形態では、アレイ１０２は、第１のアレイ要素１０４と、第２のアレイ要素１０６と、第３のアレイ要素１０８とを含む。
【００１１】
クライアント１１０からのトラフィックが、ネットワーク（例えばインターネット）を介して到着し、ＩＰｖ４（インターネットプロトコルバージョン４）フォーマット内にカプセル化されたＩＰｖ６（インターネットプロトコルバージョン６）トラフィックとして、アレイ１０２において受信される。第１のハッシュ関数演算１１６が、クライアント１１０からのトラフィックに対して実行される。第１のハッシュ関数演算１１６の結果に基づいて、クライアント１１０からのトラフィックは、アレイ１０２の要素の１つに転送される。説明の目的で、クライアント１１０からのトラフィックは、第１のハッシュ関数演算１１６の結果に基づいて、第１のアレイ要素１０４に転送されるとする。
【００１２】
サーバ側からのトラフィックは、サーバのＩＰｖ６アドレスによって識別される送信元及びクライアント１１０のＩＰｖ６アドレスとして識別される宛先を有するネイティブＩＰｖ６トラフィックとして、第２のネットワーク（例えば企業ネットワーク）を介して到着することができる。例えば、第２のサーバ１１４からのトラフィックは、ネイティブＩＰｖ６トラフィックとしてアレイ１０２に到着する。代替として、サーバ側からのトラフィックは、送信元をサーバのＩＰｖ４アドレスとし、宛先をアレイ１０２のＩＰｖ４アドレスとする、ＩＰｖ６情報をカプセル化したＩＰｖ４トラフィックとして到着することもできる。例えば、サーバ側からのトラフィックは、移行技術フォーマットで到着することができる。移行技術フォーマットの例は、テレード移行技術フォーマット、６ｔｏ４移行技術フォーマット、及びＩＳＡＴＡＰ（イントラサイト自動トンネルアドレッシングプロトコル）移行技術フォーマットを含む。図１に示される実施形態では、第１のサーバからのトラフィック１１２は、ＩＰｖ６情報をカプセル化したＩＳＡＴＡＰ  ＩＰｖ４トラフィックとして、アレイ１０２に到着する。
【００１３】
サーバ側トラフィックからＩＰｖ４情報を抽出することによって、サーバ側トラフィックを、クライアント側からのトラフィックと同じアレイ要素に割り当てることができ、アレイ１０２における双方向アフィニティを可能にする。特定の実施形態では、ＩＰｖ４情報は、フック関数（ｈｏｏｋ  ｆｕｎｃｔｉｏｎ）１２０を使用して、抽出されたＩＰｖ４情報１２２として抽出される。例えば、ＩＰｖ４情報は、第１のサーバ１１２からのトラフィックから（例えばデータパケットのペイロード部分から）抽出することができる。抽出されたＩＰｖ４情報１２２に基づいて、第１のサーバ１１２からのトラフィックを、クライアント１１０からのトラフィックと同じアレイ要素に割り当てることができる。上で説明された例では、クライアント１１０からのトラフィックは、第１のハッシュ関数演算１１６に基づいて、第１のアレイ要素１０４に転送される。抽出されたＩＰｖ４情報１２２は、クライアント１１０を宛先とする第１のサーバ１１２からのトラフィックを第１のアレイ要素１０４に割り当てるために、第２のハッシュ関数演算１１８において使用することができ、アレイ１０２における双方向アフィニティをもたらす。
【００１４】
同様に、ＩＰｖ４情報は、第２のサーバ１１４からのトラフィックから抽出することができる。特定の実施形態では、抽出されたＩＰｖ４情報１２２は、フック関数１２０を使用して抽出される。抽出されたＩＰｖ４情報１２２に基づいて、第２のサーバ１１４からのトラフィックを、クライアント１１０からのトラフィックと同じアレイ要素に割り当てることができる。上で説明された例では、クライアント１１０からのトラフィックは、第１のハッシュ関数演算１１６に基づいて、第１のアレイ要素１０４に転送される。抽出されたＩＰｖ４情報１２２は、クライアント１１０を宛先とする第２のサーバ１１４からのトラフィックを第１のアレイ要素１０４に割り当てるために、第２のハッシュ関数演算１１８によって使用することができ、アレイ１０２における双方向アフィニティをもたらす。
【００１５】
したがって、どちらの場合（例えば、第２のサーバ１１４からのネイティブＩＰｖ６トラフィック、または第１のサーバ１１２からのＩＰｖ４内にカプセル化されたＩＰｖ６トラフィック）であっても、第２のハッシュ関数演算１１８は、移行技術トラフィックまたはネイティブＩＰｖ６トラフィックに対して実行されない。代わりに、値（例えばＩＰｖ４情報）が、メッセージのペイロード部分から抽出される。抽出された値は、第１のハッシュ関数演算１１６によって使用された値と同じである。そのため、サーバ側における第２のハッシュ関数演算１１８の結果は、クライアント側における第１のハッシュ関数演算１１６の結果と同じである。
【００１６】
図２を参照すると、負荷分散システムの第２の特定の実施形態のブロック図が、２００で示されている。システム２００は、アレイ２０２と、クライアント２０４と、デバイス２０６（例えばサーバ）とを含む。クライアント２０４は、ＩＰｖ４（インターネットプロトコルバージョン４）ネットワーク２０８を介してアレイ２０２と通信する。デバイス２０６は、ＩＰｖ６（インターネットプロトコルバージョン６）またはＩＳＡＴＡＰ（ＩＰｖ４）ネットワーク２１０を介してアレイ２０２と通信する。アレイ２０２は、第１のネットワークコンポーネント２１２と、抽出コンポーネント２１４と、割り当てコンポーネント２１６と、複数のアレイ要素２１８とを含む。例えば、図２に示される実施形態では、アレイ２０２は、第１のアレイ要素２２０と、第２のアレイ要素２２２と、第３のアレイ要素２２４とを含む。示された実施形態では、アレイ２０２は、第２のネットワークコンポーネント２２６と、転送コンポーネント２２８とを含む。
【００１７】
動作中、クライアント２０４は、ＩＰｖ４ネットワーク２０８を介して、データパケット２３０をアレイ２０２に送信する。図２に示された実施形態では、データパケット２３０は、第１のフォーマットで符号化される。例えば、第１のフォーマットは、テレード移行技術フォーマット、６ｔｏ４移行技術フォーマット、またはＩＳＡＴＡＰ移行技術フォーマットを含む、移行技術フォーマットを含むことができる。データパケット２３０は、アレイ２０２の第２のネットワークコンポーネント２２６において受信される。特定の実施形態では、データパケット２３０は、ＩＰｖ４パケットを含み、ＩＰｖ４パケット内に埋め込まれたＩＰｖ６アドレスが、抽出され得る。
【００１８】
転送コンポーネント２２８は、受信したデータパケット２３０を、複数のアレイ要素２１８の１つ（例えば割り当てられた要素）を介して、デバイス（例えばデバイス２０６）に転送する（すなわち割り当てる）。例えば、示された実施形態では、データパケット２３０は、第２のアレイ要素２２２に転送される（すなわち割り当てられる）。したがって、この場合、第２のアレイ要素２２２が、割り当てられた要素である。データパケット２３０は、第１のハッシュ関数演算に基づいて、割り当てられた要素（例えば第２のアレイ要素２２２）に割り当てられる。その後、データパケット２３０は、デバイス２０６などの宛先デバイスに転送される。
【００１９】
デバイス２０６は、クライアント２０４からのデータパケット２３０に応答して、メッセージ２３２を送信する。図２に示された実施形態では、メッセージ２３２は、第２のフォーマットで符号化される。例えば、第２のフォーマットは、ネイティブＩＰｖ６フォーマットまたは移行技術フォーマットを含むことができる。例えば、メッセージ２３２は、テレード移行技術フォーマット、６ｔｏ４移行技術フォーマット、またはＩＳＡＴＡＰ移行技術フォーマットで符号化することができる。
【００２０】
（以下で図３に関連して説明されるような）テレード移行技術フォーマットでは、メッセージ２３２は、クライアントデバイス（例えばクライアント２０４）に割り当てられたＩＰｖ６アドレスを含み、ＩＰｖ６アドレスは、テレードサーバのＩＰｖ４アドレスと、クライアント２０４に関連付けられたＩＰｖ４アドレスと、クライアント２０４に関連付けられたポートとを含む。例えば、クライアント２０４に関連付けられたＩＰｖ４アドレスは、クライアント２０４に割り当てることができる。代替として、クライアント２０４に関連付けられたＩＰｖ４アドレスは、（以下で図６に関連して説明されるように）ＮＡＴ（ネットワークアドレス変換）デバイスに割り当てることできる。
【００２１】
別の例として、メッセージ２３２は、（図３に関連して説明されるような）６ｔｏ４移行技術フォーマットで符号化することができる。６ｔｏ４移行技術フォーマットでは、メッセージ２３２は、クライアントデバイス（例えばクライアント２０４）に割り当てられた６ｔｏ４アドレスを含む。６ｔｏ４アドレスは、ホストデバイスに割り当てられたＩＰｖ６アドレスを表す部分も含む。
【００２２】
さらなる例として、メッセージ２３２は、（図３に関連して説明されるような）ＩＳＡＴＡＰ移行技術フォーマットで符号化することができる。ＩＳＡＴＡＰ移行技術フォーマットでは、メッセージ２３２は、クライアントデバイス（例えばクライアント２０４）に割り当てられたＩＳＡＴＡＰアドレスを含む。ＩＳＡＴＡＰアドレスは、ユニキャストＩＰｖ４アドレス（例えばパブリックまたはプライベートアドレス）も含む。
【００２３】
アレイ２０２の第１のネットワークコンポーネント２１２は、デバイス２０６から送信されたメッセージ２３２を、ＩＰｖ６またはＩＳＡＴＡＰ（ＩＰｖ４）ネットワーク２１０を介して受信する。抽出コンポーネント２１４は、メッセージ２３２からＩＰアドレスを抽出する。抽出されたＩＰアドレスは、第２のハッシュ関数演算に基づいて、メッセージ２３２を複数のアレイ要素２１８の１つに割り当てるために、割り当てコンポーネント２１６によって使用することができる。示された実施形態では、割り当てコンポーネント２１６は、第２のハッシュ関数演算に基づいて、メッセージ２３２を複数のアレイ要素２１８のうちの第２のアレイ要素２２２に割り当てる。特定の実施形態では、ＩＰｖ４アドレスとポート番号の組み合わせが、第２のハッシュ関数演算への入力として使用される。したがって、メッセージ２３２は、クライアント２０４から受信したデータパケット２３０と同じアレイ要素に割り当てられ、アレイ２０２における双方向アフィニティをもたらす。
【００２４】
図３を参照すると、いくつかのＩＰｖ６移行技術フォーマットのブロック図が、３００で示されている。テレード移行技術フォーマットにおけるＩＰｖ６アドレスは、テレードプレフィックス３０２と、テレードサーバＩＰｖ４アドレス３０４と、１つまたは複数のフラグ３０６と、隠蔽された（ｏｂｓｃｕｒｅｄ）外部ポート３０８と、隠蔽された外部アドレス３１０とを含む。示されるように、テレードプレフィックス３０２は、３２ビットで表され、テレードサーバＩＰｖ４アドレスは、３２ビットで表され、フラグ３０６は、１６ビットで表され、隠蔽された外部ポートは、１６ビットで表され、隠蔽された外部アドレス３１０は、３２ビットで表される。
【００２５】
テレードＩＰｖ６移行技術フォーマットを使用する場合、クライアントには、テレードサーバＩＰｖ４アドレス３０４を含むＩＰｖ６アドレスに加えて、クライアントのＩＰｖ４アドレス（及びポート）（例えば隠蔽された外部アドレス３１０及び隠蔽された外部ポート３０８）も割り当てられる。クライアントのＩＰｖ４アドレス（例えば隠蔽された外部アドレス３１０）は、クライアントのＩＰｖ４アドレスとすることができ、または（図６を参照して説明されるように）クライアントがその背後に存在するＮＡＴ（ネットワークアドレス変換）デバイスのＩＰｖ４アドレスとすることができる。
【００２６】
６ｔｏ４移行技術フォーマットのＩＰｖ６アドレスは、プレフィックス３１２（例えば２００２）と、サイトまたはホストに割り当てられたＩＰｖ６アドレス（例えば、Ｗ．Ｘ．Ｙ．Ｚ）を表す部分３１４（例えば、ＷＷＸＸ：ＹＹＺＺ）と、サブネットＩＤ  ３１６と、インタフェースＩＤ  ３１８とを含む。示されるように、６ｔｏ４プレフィックス３１２は、１６ビットで表され、部分３１４は、３２ビットで表され、サブネットＩＤ  ３１６は、１６ビットで表され、インタフェースＩＤ  ３１８は、６４ビットで表される。
【００２７】
ＩＳＡＴＡＰ移行技術フォーマットにおけるＩＰｖ６アドレスは、「：：０：５ＥＦＥ：ｗ．ｘ．ｙ．ｚ」という形式を取り、「ｗ．ｘ．ｙ．ｚ」３２０は、任意のユニキャストＩＰｖ４アドレス（パブリックまたはプライベート）である。
【００２８】
図４を参照すると、負荷分散システムの第３の特定の実施形態のブロック図が、４００で示されている。６ｔｏ４移行技術フォーマットでは、６ｔｏ４ルータによって、クライアントＩＰｖ６アドレスが割り当てられないことがある。図４に示されるように、クライアント４０２は、ネイティブＩＰｖ６ネットワーク４０４上に存在することが（そしてネイティブＩＰｖ６アドレスを割り当てられることが）ある。例えば、ネイティブＩＰｖ６ネットワーク４０４は、第１の企業（例えば企業Ｂ）のＩＰｖ６ネットワークとすることができる。ネイティブＩＰｖ６ネットワーク４０４は、６ｔｏ４ルータ４０６を介してインターネットに接続される。示されるように、６ｔｏ４トラフィック４０８は、別のネットワーク４１２（例えばネイティブＩＰｖ６ネットワークまたはＩＳＡＴＡＰネットワーク）に接続されたＬＢ（負荷分散）アレイ４１０に、インターネットを介して伝えられる。例えば、他のネットワーク４１２は、第２の企業（例えば企業Ａ）のネットワークとすることができる。
【００２９】
特定の実施形態では、第１の企業ネットワーク４０４（例えば企業ＢのネイティブＩＰｖ６ネットワーク）は、固定されたＩＰｖ６プレフィックスを有する。フック関数は、企業Ｂのネットワークの固定されたＩＰｖ６プレフィックスを決定するために、クライアント４０２から来るトラフィックを監視することできる。フック関数は、６ｔｏ４  ＩＰｖ４パケット内に埋め込まれたクライアント４０２のＩＰｖ６アドレスを抽出することができる。アレイ４１０の第２の企業ネットワーク側（例えば企業Ａのネットワーク４１２）では、フック関数は、コールされると、ネイティブＩＰｖ６アドレスが宛先アドレスであるかどうかを決定する。宛先アドレスがネイティブＩＰｖ６アドレスである場合、フック関数は、６ｔｏ４  ＩＰｖ４パケットから抽出されたクライアント４０２のＩＰｖ６アドレスを返す。
【００３０】
図５を参照すると、負荷分散システムの第４の特定の実施形態のブロック図が、５００で示されている。６ｔｏ４移行技術フォーマットでは、クライアントには、データパケットをアレイに配送する６ｔｏ４ルータとは異なる６ｔｏ４ルータによって、ＩＰｖ６アドレスを割り当てることができる。例えば、図５に示された実施形態では、クライアント５０２は、第１のセグメント５０４（例えば企業Ｂのネットワーク上のセグメント１）上の６ｔｏ４ルータ５０６から、６ｔｏ４  ＩＰｖ６アドレスを受け取る。第１のセグメント５０４上の６ｔｏ４ルータ５０６は、６ｔｏ４トラフィックを、５０８で示されるようなインターネットを介して、６ｔｏ４リレー５１０に伝える。６ｔｏ４リレー５１０は、別の６ｔｏ４リレー５１４に結合された第２のセグメント５１２（例えば企業Ｂネットワークのセグメント２）に結合される。他の６ｔｏ４リレー５１４は、６ｔｏ４トラフィックを、５１６に示されるようなインターネットを介して、別のネットワーク５２０（例えばネイティブＩＰｖ６ネットワークまたはＩＳＡＴＡＰネットワーク）上のアレイ５１８に伝える。例えば、他のネットワーク５２０は、企業（例えば企業Ａ）のネットワークとすることができる。したがって、クライアント５０２には、データパケットをアレイ５１８に配送した６ｔｏ４ルータ（例えば６ｔｏ４リレー５１４）とは異なる６ｔｏ４ルータ（例えば６ｔｏ４ルータ５０６）に属する６ｔｏ４  ＩＰｖ６アドレスが割り当てられる。
【００３１】
企業ネットワーク側（例えば企業Ａのネットワーク５２０）では、フック関数は、６ｔｏ４アドレスをクライアント５０２の宛先ＩＰｖ６アドレスとして認める。特定の実施形態では、セグメンテーションは、受信したデータパケット毎に、アレイ５１８において決定することができる。別の特定の実施形態では、アレイ５１８は、特定の６ｔｏ４  ＩＰｖ６アドレスに対して、セグメンテーションがすでに決定されているかどうかを決定することができる。
【００３２】
図６を参照すると、負荷分散システムの第５の特定の実施形態のブロック図が、６００で示されている。システム６００は、共通のＮＡＴ（ネットワークアドレス変換）デバイス６０８の背後に複数のクライアントを含む。例えば、図６に示される実施形態では、第１のクライアント６０２、第２のクライアント６０４、及び第３のクライアント６０６は、インターネット６１０に接続された共通のＮＡＴデバイス６０８の背後に存在する。共通のＮＡＴデバイス６０８の背後のクライアント６０２〜６０６の各々は、アレイ６２４のインターネット側では、同じ送信元ＩＰアドレス（例えば、共通のＮＡＴデバイス６０８のＩＰｖ４アドレス）を有するように見える。さらに、クライアント６０２〜６０６の各々は、同じ隠蔽された外部アドレス（例えば、共通のＮＡＴデバイス６０８のＩＰｖ４アドレス）を有する。したがって、第１のクライアントデバイス６０２、第２のクライアントデバイス６０４、及び第３のクライアントデバイス６０６は、アレイ６２４のインターネット側では、共通のＮＡＴデバイス６０８のＩＰｖ４アドレスを有するように見える。例えば、（例えば、第１のＩＰアドレス及び第１のポート情報を有する）第１のクライアント６０２からの第１のクライアント側データパケット６１２は、アレイ６２４のインターネット側では、共通のＮＡＴデバイス６０８と同じＩＰアドレス（例えば第４のＩＰアドレス）を有する第１のインターネット側データパケット６１８として見える。同様に、（例えば、第２のＩＰアドレス及び第２のポート情報を有する）第２のクライアント６０４からの第２のクライアント側データパケット６１４、ならびに（例えば、第３のＩＰアドレス及び第３のポート情報を有する）第３のクライアント６０６からの第３のクライアント側データパケット６１６は、アレイ６２４のインターネット側では、共通のＮＡＴデバイス６０８と同じＩＰアドレス（例えば第４のＩＰアドレス）を有する第２のインターネット側データパケット６２０、及び第３のインターネット側データパケット６２２として見える。
【００３３】
クライアントは異なるＮＡＴデバイスの背後に分散される可能性が統計的には高いので、一般に、これは、アレイ要素上での負荷分散にはあまり大きな影響を与えない。しかし、場合によっては、ＩＰｖ４アドレス（例えば、共通のＮＡＴデバイス６０８のＩＰｖ４アドレス）のみの使用は、アレイ（例えばアレイ６２４）の１つの要素の過負荷を引き起こすことがある。そのような過負荷のケースは、多くのリモートユーザがすべて共通のＮＡＴデバイスの背後に現れる場合に発生することがある。例えば、会議では、多くのユーザが、共通のＮＡＴデバイスの背後から同じ企業ネットワークにリモート接続することがある。
【００３４】
この潜在的な問題を克服するため、ＩＰｖ４アドレスをポート番号（例えば、図３で説明されたような隠蔽された外部ポート３０８）と組み合わせて、ハッシュ演算が実行される新しい値を作成することができる。このハッシュ演算は、アレイのインターネット側及び企業ネットワーク側の両方で実行することができる。特定の実施形態では、ハッシュ演算は、テレードアドレスに対してのみ実行される。例えば、第１のクライアント６０２に対応する第１のポートを、共通のＮＡＴデバイス６０８からの第１のインターネット側データパケット６１８内に埋め込むことができる。第１のインターネット側データパケット６１８から第１のポートを抽出して、ハッシュ演算を実行することができる。別の例として、第２のクライアント６０４に対応する第２のポートを、第２のインターネット側データパケット６２０内に埋め込むことができる。第２のインターネット側データパケット６２０から第２のポートを抽出して、ハッシュ演算を実行することができる。さらなる例として、第３のクライアント６０６に対応する第３のポートを、第３のインターネット側データパケット６２２内に埋め込むことができる。第３のインターネット側データパケット６２２から第３のポートを抽出して、ハッシュ演算を実行することができる。特定の実施形態では、ハッシュ演算は、アレイ６２４の要素にパケットを割り当てるために使用することができる。
【００３５】
図７を参照すると、負荷分散方法の特定の実施形態のフロー図が示されている。方法は、７０２において、アレイの入力端子が、第１のフォーマットで符号化されたデータパケット７０４を受信するステップを含む。特定の実施形態では、データパケット７０４は、ＩＰｖ４パケットであり、ＩＰｖ４パケット内に埋め込まれたＩＰｖ６アドレスが、データパケット７０４から抽出される。データパケット７０４は、移行技術フォーマットで符号化することができ、ＩＰｖ４コンテンツを含むことができる。例えば、移行技術フォーマットは、テレードＩＰｖ６移行技術フォーマット、６ｔｏ４  ＩＰｖ６移行技術フォーマット、またはＩＳＡＴＡＰ  ＩＰｖ６移行技術フォーマットを含むことができる。
【００３６】
テレードＩＰｖ６移行技術フォーマットの場合、データパケット７０４は、クライアントデバイスに割り当てられたＩＰｖ６アドレスを含み、ＩＰｖ６アドレスは、テレードサーバのＩＰｖ４アドレスと、クライアントデバイスに関連付けられたＩＰｖ４アドレスと、クライアントデバイスに関連付けられたポートとを含む。特定の実施形態では、クライアントデバイス（例えば図２のクライアント２０４）に関連付けられたＩＰｖ４アドレスは、クライアントアドレスを含む。別の特定の実施形態では、クライアントデバイスに関連付けられたＩＰｖ４アドレスは、ＮＡＴ（ネットワークアドレス変換）デバイス（例えば図６のＮＡＴデバイス６０８）のアドレスを含む。６ｔｏ４移行技術フォーマットの場合、データパケット７０４は、クライアントデバイスに割り当てられた６ｔｏ４アドレスを含み、６ｔｏ４アドレスは、ホストデバイスに割り当てられたＩＰｖ６アドレスを表す部分を含む。ＩＳＡＴＡＰ移行技術フォーマットの場合、データパケット７０４は、クライアントデバイスに割り当てられたＩＳＡＴＡＰアドレスを含み、ＩＳＡＴＡＰアドレスは、ユニキャストＩＰｖ４アドレス（例えばパブリックまたはプライベートユニキャストアドレス）を含む。
【００３７】
７０６において、受信したデータパケット７０４が、アレイの割り当てられた要素に割り当てられる。特定の実施形態では、データパケット７０４は、第１のハッシュ関数演算に基づいて、アレイの割り当てられた要素に割り当てられる。例示的な実施形態では、（例えば、図６に示されるように、単一のＮＡＴデバイスの背後に複数のクライアントデバイスが存在する場合）ＩＰｖ４アドレスとポート番号の組み合わせが、第１のハッシュ関数への入力として使用される。
【００３８】
方法は、７０８において、データパケット７０４を、アレイの割り当てられた要素を介して、デバイスに転送するステップを含む。例えば、デバイスは、サーバを含むことができ、サーバの宛先アドレスは、ＩＰｖ６アドレスを含むことができる。別の例として、デバイス（例えばサーバ）の宛先アドレスは、ＩＰｖ４アドレスタイプ以外のアドレスタイプを含むことができる。例えば、アドレスタイプは、インターネット移行技術アドレスタイプを含むことができる。
【００３９】
７１０において、デバイスからのメッセージ７１２が、アレイにおいて受信される。メッセージ７１２は、第２のフォーマットで符号化することができる。第２のフォーマットは、ネイティブＩＰｖ６フォーマットまたはＩＳＡＴＡＰフォーマットを含むことができる。７１４において、メッセージのペイロード部分から情報が抽出される。７１６において、メッセージ７１２は、メッセージのペイロード部分から抽出された情報に基づいて、アレイの割り当てられた要素に割り当てられる。特定の実施形態では、メッセージ７１２は、第２のハッシュ関数演算に基づいて、アレイの割り当てられた要素に割り当てられる。アレイにおいて双方向アフィニティを維持するために、データパケット７０４とメッセージ７１２がアレイの同じ要素に割り当てられるように、メッセージ７１２を割り当てることができる。７１８において、方法は終了する。
【００４０】
図８は、本開示によるコンピュータ実施方法及びコンピュータプログラム製品の実施形態をサポートするように動作可能な汎用コンピュータデバイス８１０を含む、コンピューティング環境８００のブロック図を示している。基本構成では、コンピューティングデバイス８１０は、図１〜図２及び図４〜図６を参照して説明されたようなアレイを含む。
【００４１】
コンピューティングデバイス８１０は一般に、少なくとも１つの処理ユニット８２０及びシステムメモリ８３０を含む。コンピューティングデバイスの正確な構成及びタイプに応じて、システムメモリ８３０は、（ランダムアクセスメモリすなわち「ＲＡＭ」などの）揮発性、（リードオンリメモリすなわち「ＲＯＭ」、フラッシュメモリ、及び保存するデータを給電がなされないときも維持する類似のメモリデバイスなどの）不揮発性、または上記の２つの何らかの組み合わせとすることができる。システムメモリ８３０は一般に、オペレーティングシステム８３２、１つまたは複数のアプリケーションプラットフォーム８３４、１つまたは複数のアプリケーション８３６を含み、プログラムデータ８３８を含むことができる。
【００４２】
コンピューティングデバイス８１０は、追加の特徴または機能も有することができる。例えば、コンピューティングデバイス８１０は、磁気ディスク、光ディスク、テープ、及び標準サイズまたは小型のフラッシュメモリカードなど、着脱可能及び／または着脱不能な追加のデータ記憶デバイスも含むことができる。図８では、そのような追加のストレージは、着脱可能ストレージ８４０及び着脱不能ストレージ８５０によって示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムコンポーネント、または他のデータなどの情報を記憶するための任意の方法または技術で実施される、揮発性及び／または不揮発性ストレージならびに着脱可能及び／または着脱不能媒体を含むことができる。システムメモリ８３０、着脱可能ストレージ８４０、及び着脱不能ストレージ８５０はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、限定することなく、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）、もしくは他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用でき、コンピューティングデバイス８１０によってアクセスできる他の任意の媒体を含む。そのようなコンピュータ記憶媒体はどれも、デバイス８１０の一部とすることができる。
【００４３】
コンピューティングデバイス８１０は、ネットワーク８１２を介してデータ８１４（例えば、図１における、クライアント１１０からのパケット、サーバ１１２、１１４からのメッセージ）を送信及び受信するための少なくとも１つのネットワークインタフェース８１６を含む。コンピューティングデバイス８１０は、コンピューティングデバイス８１０が、有線または無線ネットワークを介して、（図１のサーバ１１２、１１４などの）他のコンピューティングデバイス８９０と通信することを可能にする、１つまたは複数の通信接続８８０も含む。１つまたは複数の通信接続８８０は、通信媒体の一例である。限定することなく例を挙げると、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、及び他の無線媒体などの無線媒体を含むことができる。しかし、本明細書で説明された実施形態をサポートするために、図８に示されたまたはそれとは別に先行する段落で説明されたコンポーネントまたはデバイスのすべてが必ずしも必要なわけではないことが理解されよう。
【００４４】
本明細書で開示された実施形態に関連して説明された方法またはアルゴリズムのステップは、ハードウェアで直接に、プロセッサによって実行されるソフトウェアコンポーネントで、または２つの組み合わせで具現することができる。ソフトウェアコンポーネントは、ＲＡＭ（ランダムアクセスメモリ）、フラッシュメモリ、ＲＯＭ（リードオンリメモリ）、ＰＲＯＭ（プログラム可能リードオンリメモリ）、ＥＰＲＯＭ（消去可能なプログラム可能リードオンリメモリ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラム可能リードオンリメモリ）、レジスタ、ハードディスク、着脱可能ディスク、ＣＤ−ＲＯＭ（コンパクトディスクリードオンリメモリ）、または当技術分野で知られている他の任意の形態の記憶媒体内に存在することができる。例示的な記憶媒体は、プロセッサが情報を記憶媒体から読み取り、情報を記憶媒体に書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサに統合することもできる。プロセッサ及び記憶媒体は、コンピューティングデバイスの統合されたコンポーネント内に存在することができる。代替として、プロセッサ及び記憶媒体は、コンピューティングデバイス内の別個のコンポーネントとして存在することもできる。
【００４５】
本明細書で開示された実施形態に関連して説明された様々な例示的な論理ブロック、構成、モジュール、及びアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実施できることが当業者にはさらに理解できよう。ハードウェアとソフトウェアのこの交換可能性を明瞭に示すため、様々な例示的なコンポーネント、ブロック、構成、モジュール、またはステップは、一般にそれらの機能によって説明された。そのような機能がハードウェアとして実施されるか、それともソフトウェアとして実施されるかは、特定のアプリケーション、及びシステム全体に課される設計制約に依存する。当業者は、説明された機能を特定のアプリケーション毎に様々な方法で実施することができるが、そのような実施の決定が、本開示の範囲からの逸脱を引き起こすと解釈すべきではない。
【００４６】
ソフトウェアモジュールは、ＲＡＭ（ランダムアクセスメモリ）、フラッシュメモリ、ＲＯＭ（リードオンリメモリ）、レジスタ、ハードディスク、着脱可能ディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている他の任意の形態の記憶媒体などのコンピュータ可読媒体内に存在することができる。例示的な記憶媒体は、プロセッサが情報を記憶媒体から読み取り、情報を記憶媒体に書き込むことができるように、プロセッサに結合される。
【００４７】
本明細書では特定の実施形態が例示及び説明されたが、同じまたは類似の目的を達成するために設計される任意の今後の構成で、示された特定の実施形態を置き換えることができることを理解されたい。本開示は、様々な実施形態のあらゆる今後の適合または変形を包含することが意図されている。
【００４８】
本開示の要約は、請求項の範囲または意味を解釈または限定するためにそれが使用されないという理解の下で提示されている。加えて、上述の「発明を実施するための形態」において、開示を簡素化する目的で、様々な特徴を一まとめにすること、または単一の実施形態において説明することができる。本開示は、特許請求される実施形態が、各請求項において明示的に列挙されるよりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。むしろ、以下の特許請求の範囲が反映しているように、本発明の主題は、開示されたいずれかの実施形態の特徴のすべてよりも少ない特徴に関わることができる。
【００４９】
開示された実施形態の先の説明は、当業者が開示された実施形態を作成または使用できるように提供される。当業者には、これらの実施形態に対する様々な変更が容易に明らかとなり、本明細書で定義された一般的な原理は、開示の範囲から逸脱することなく、他の実施形態に適用することができる。したがって、本開示は、本明細書で示された実施形態に限定されることを意図しておらず、以下の特許請求の範囲によって確定される原理及び新規な特徴に矛盾しない、可能な限りで最も広い範囲を許容するべきである。
【図１】
0005542153.tif 000002
【図２】
0005542153.tif 000003
【図３】
0005542153.tif 000004
【図４】
0005542153.tif 000005
【図５】
0005542153.tif 000006
【図６】
0005542153.tif 000007
【図７】
0005542153.tif 000008
【図８】
0005542153.tif 000009