(57)【要約】  【課題】通信データを高速に中継することができる中継システムに関する。  【解決手段】中継システムは、同一アプリケーションを有する１以上のサーバとクライアントから構成され、上記クライアントから送信される通信データを上記サーバのうちの１つへ中継する中継システムであって、上記クライアントに接続される前段装置と上記１以上のサーバに接続される後段装置とを備え、上記前段装置が、取得した通信データから所定のデータを抽出し、上記所定のデータに対応する所定のフィールドデータを上記フレームに設定し、送信し、上記後段装置は、上記前段装置により送信されたフレームから所定のフィールドデータを抽出し、後段装置に接続されるサーバの中から、所定のフィールドデータに対応する中継先サーバを決定する。【選択図】  図１
2006174374.tif 000002
【特許請求の範囲】
【請求項１】
同一アプリケーションを有する１以上のサーバとクライアントとから構成され、前記クライアントとサーバ間でやりとりされる通信データが１以上のフレームに分割され送受信されるネットワークにおいて、前記クライアントが前記サーバへアプリケーションの提供を求める際に前記クライアントから送信される通信データを前記サーバのうちの１つへ中継する中継システムであって、
前記クライアントに接続される前段装置と前記１以上のサーバに接続される後段装置とを備え、
前記前段装置は、
前記クライアントより送信される前記フレームから前記通信データを取得する取得部と、
前記取得した通信データから所定のデータを抽出する抽出部と、
前記所定のデータに対応する所定のフィールドデータを決定する決定部と、
前記フレームに前記所定のフィールドデータを設定し、送信する送信部とを備え、
前記後段装置は、
前記前段装置により送信された前記フレームを受信し、その受信フレームから前記所定のフィールドデータを抽出する後段抽出部と、
前記後段装置に接続されるサーバの中から、前記抽出された所定のフィールドデータに対応する中継先サーバを決定する中継先決定部と、
前記前段装置からの前記受信フレームの宛先を、前記決定されたサーバの宛先に変更し、送信する送信先変更部とを備える中継システム。
【請求項２】
前記決定部は、前記取得した通信データから前記所定のデータを抽出できない場合に、所定の第２フィールドデータを決定し、
前記中継先決定部は、前記抽出された所定のフィールドデータが前記所定の第２フィールドデータであることを判別した場合には、前記後段装置に接続されるサーバの中から、所定のルールにより中継先サーバを決定する請求項１記載の中継システム。
【請求項３】
前記後段装置は、
前記受信フレームが前記前段装置により送信されたものでない場合に、前記前段装置に当該受信したフレームを転送する転送部を備える請求項１記載の中継システム。
【請求項４】
前記後段装置が複数存在する場合において、
前記前段装置は、
前記抽出部により抽出された前記所定のデータに基づき、前記複数の後段装置の中から、転送先となる後段装置を選択する後段選択部を備え、
前記送信部は、前記フレームに前記所定のフィールドデータを設定すると共に、前記フレームの宛先を前記選択された後段装置の宛先に変更し、送信する請求項１記載の中継システム。
【請求項５】
前記前段装置は、
前記所定のデータと前記所定のフィールドデータとの対応関係を示し、前記決定部により前記所定のフィールドデータを決定する際に参照される対応表を保持する対応表保持部と、
前記対応表の内容を変更する対応表変更部とを備える請求項１記載の中継システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント端末からサーバ装置へのアクセスを中継する中継システムに関する。
【背景技術】
【０００２】
Ｗｅｂサーバに代表する各種アプリケーションを提供するサーバは、提供を求める複数のクライアントからのアクセスに対し、即座に応答することが求められる。しかし、サーバが同時に処理できるトランザクションには限界があり、それを超えたクライアントからのアクセスに対しては当然に応答が遅くなってしまう。そこで、現在、クライアントからサーバへのアクセスを中継する中継装置のうち、サーバへのトラヒック集中により重くなったサーバの負荷を軽減させるために、同一機能を持つサーバを複数台用意し、それらサーバへトラヒックを振り分ける負荷分散装置が用いられている（図２２参照）。
【０００３】
負荷分散装置の重要な機能の一つとして、パーシステンス機能がある。クライアント・サーバ間の通信において、サーバが正常にクライアントのアクセスに対する処理を行うためには、同一のクライアントとのセッション内でやり取りされるデータを常に同一のサーバに処理させる必要がある。このために、負荷分散装置は、クライアント・サーバ間のアプリケーション層（以降、Ｌ７(Layer7)とする）でやりとりされるデータ中のセッションを示す識別子であるＬ７情報（例えばＨＴＭＬのクッキー（Ｃｏｏｋｉｅ）やＳＳＬ−ＩＤ（Secure Socket Layer ― Identification）など）に基づいて、同一セッションのト
ラヒックを常に同一のサーバに振り分ける機能を持っている。これをパーシステンス機能と呼ぶ。以降の説明では、このパーシステンス機能による負荷分散をＬ７負荷分散と呼ぶ。また、上記のようなセッション情報を持たないトラヒックについては、パーシステンス機能は不要となる。この場合には、パーシステンス機能以外の負荷分散ルール、例えばサーバ負荷状況にもとづく負荷分散、ラウンドロビンによる振分などが行われる。
【０００４】
負荷分散装置がＬ７負荷分散を実現するためには、受信フレームからＬ７情報を取得する必要がある。しかし、クライアント・サーバ間でやりとりされるデータは、ネットワーク層における送信可能なサイズに分割され、複数のフレームとして送信されるため、Ｌ７情報は複数のフレームに跨っており、さらにフレーム上のどこにＬ７情報が設定されているかも特定できない。したがって、負荷分散装置は、１つのＬ７通信データの全フレームを検索しなければ、Ｌ７情報を取得することができない。そこで、Ｌ７負荷分散を実現するためには、上述した複数フレームに跨る全ペイロード検索機能がさらに必要になる。
【０００５】
さらに、クライアント・サーバ間における通信がＴＣＰ（Transmission Control Protocol）を用いて通信を行っている場合は、ＴＣＰコネクションの終端処理（コネクション
状態の管理）が必要となる。
【０００６】
このように、負荷分散装置はＬ７負荷分散を実現する上で、上記のような高負荷なパーシステンス機能を処理する必要がある。さらに、負荷分散装置は、そのよう高負荷な機能を複数のクライアントからの多くのトラヒックに対して行う必要がある。これにより、パーシステンス機能の高頻度な実行により、負荷分散装置のＣＰＵ（Central Processing Unit）処理負荷が高くなるという問題がある。この対策として、従来の負荷分散装置では
、クロック数向上、ＣＰＵ並列化などＣＰＵ性能の向上が図られていた。しかし、ＣＰＵ性能には限界があり(１Gigabit per second程度)、ネットワークの広帯域化（10 Gigabit
per secondが普及段階）により、負荷分散装置自身がエンドホスト間通信のボトルネッ
クとなる可能性がある。
【０００７】
なお、本願発明に係る先行技術文献としては、以下の文献に開示されたものがある。
【特許文献１】特開２００３−２５８８５６号公報
【特許文献２】特開２００４−１５８９７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、クライアントからサーバへのアクセスに基づく単位時間当たりの通信データ量を増やすことができる中継システムを提供することである。
【課題を解決するための手段】
【０００９】
本発明は、上述した課題を解決するために以下の構成を採用する。即ち、本発明は、同一アプリケーションを有する１以上のサーバとクライアントから構成され、上記クライアントとサーバ間でやりとりされる通信データが１以上のフレームに分割され送受信されるネットワークにおいて、上記クライアントが上記サーバへアプリケーションの提供を求める際に上記クライアントから送信される通信データを上記サーバのうちの１つへ中継する中継システムであって、上記クライアントに接続される前段装置と上記１以上のサーバに接続される後段装置とを備え、上記前段装置は、上記クライアントより送信される上記フレームから上記通信データを取得する取得部と、上記取得した通信データから所定のデータを抽出する抽出部と、上記所定のデータに対応する所定のフィールドデータを決定する決定部と、上記フレームに上記所定のフィールドデータを設定し、送信する送信部とを備え、上記後段装置は、上記前段装置により送信された上記フレームを受信し、その受信フレームから上記所定のフィールドデータを抽出する後段抽出部と、上記後段装置に接続されるサーバの中から、上記抽出された所定のフィールドデータに対応する中継先サーバを決定する中継先決定部と、上記前段装置からの上記受信フレームの宛先を、上記決定されたサーバの宛先に変更し、送信する送信先変更部とを備える中継システムについてのものである。
【００１０】
本発明に係る中継システムでは、クライアントから１以上のフレームに分割され送出された通信データが、前段装置及び後段装置によって中継され、後段装置に接続される１以上のサーバのうち、これら前段装置及び後段装置によって中継先として決定されたサーバに送られる。
【００１１】
前段装置は、当該分割されたフレームから通信データを取得し、その通信データから所定のデータを抽出する。さらに、前段装置は、当該所定のデータに対応した所定のフィールドデータを決定する。続けて、前段装置は、当該通信データを送信するためのフレームであって、当該所定のフィールドデータを設定したフレームを送出する。
【００１２】
後段装置は、前段装置より送出された１以上のフレームを受信し、そのフレーム中の所定のフィールドデータを抽出する。そして、後段装置は、当該所定のフィールドデータに対応するサーバの宛先を決定する。後段装置は、受信フレームの宛先を当該宛先に変換し、送出する。
【００１３】
このように、本発明に係る中継システムでは、前段装置によって、通信データから所定のデータの抽出が行われ、その所定のデータに対応する所定のフィールドデータが当該フレームに設定され、後段装置に転送される。後段装置では、フレームの所定のフィールドデータを抽出することにより中継先サーバを決定する。
【００１４】
これにより、１以上のフレームを扱い、かつ、当該フレームから取得される通信データから所定のデータを抽出するという処理（前段装置）と、送信単位であるフレーム内にお
ける所定のフィールドデータを抽出することにより中継先サーバを決定するという処理（後段装置）とに、分割することができる。
【００１５】
従って、本発明によれば、当該前段装置と後段装置に分割し、処理負荷の高い前段機能を並列に設置可能とすることにより、中継システム全体として高速な中継処理を可能とする。
【００１６】
また、本発明は、上記中継システムにおいて、上記決定部は、上記取得した通信データから上記所定のデータを抽出できない場合に、所定の第２フィールドデータを決定し、上記中継先決定部は、上記抽出された所定のフィールドデータが上記所定の第２フィールドデータであることを判別した場合には、上記後段装置に接続されるサーバの中から、所定のルールにより中継先サーバを決定する。
【００１７】
本発明では、クライアントから送出された通信データ中に、所定のデータが存在しない場合においても、サーバへの中継を行うことができる。
【００１８】
また、本発明は、上記中継システムにおいて、上記後段装置は、上記受信フレームが上記前段装置により送信されたものでない場合に、上記前段装置に当該受信したフレームを転送する転送部を備える。
【００１９】
本発明では、前段装置を経由せず、後段装置が直接クライアントからの送信フレームを受信した場合でも、後段装置の転送部が当該フレームを前段装置に転送する。
【００２０】
これにより、本発明によれば、前段装置を通過しないクライアントからサーバへのアクセスに対しても、サーバへの中継を可能とする。
【００２１】
また、本発明は、上記中継システムで上記後段装置が複数存在する場合において、上記前段装置は、上記抽出部により抽出された上記所定のデータに基づき、上記複数の後段装置の中から、転送先となる後段装置を選択する後段選択部を備え、上記送信部は、上記フレームに上記所定のフィールドデータを設定すると共に、上記フレームの宛先を上記選択された後段装置の宛先に変更し、送信する。
【００２２】
本発明では、複数の後段装置を設置した場合においてもクライアントからのアクセスを適切に中継することができる。
【００２３】
また、本発明は、上記中継システムにおいて、上記前段装置は、上記所定のデータと上記所定のフィールドデータとの対応関係を示し、上記決定部により上記所定のフィールドデータを決定する際に参照される対応表を保持する対応表保持部と、上記対応表の内容を変更する対応表変更部とを備える。
【００２４】
本発明では、中継先サーバを決定するための所定のフィールドデータと所定のデータとの対応関係をフレキシブルに変更することができ、さまざまな形態のネットワークへの適用が可能となる。
【００２５】
なお、本発明は、以上の何れかの機能を実現させるプログラムであってもよい。また、本発明は、そのようなプログラムをコンピュータが読み取り可能な記憶媒体に記録してもよい。
【発明の効果】
【００２６】
本発明によれば、クライアントからサーバへのアクセスに基づく単位時間当たりの通信
データ量を増やすことができる中継システムを提供することができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して、本発明を実施するための最良の形態（以下、実施形態という）に係る負荷分散システムについて説明する。本実施形態は、本発明に係る中継システムのうち、クライアントからのアクセスによるサーバの負荷の増大を抑える負荷分散システムに関する例示である。また、実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
〔発明の実施形態の概要〕
本発明の実施形態を説明するにあたって、まず本発明の実施形態の概要について説明する。図１は、本発明の実施形態に係る負荷分散システムの概要説明図である。図１には、前段装置１０と後段装置３０とで構成される本発明の実施形態に係る負荷分散システム（以降、単に本負荷分散システムとする）が示されている。以下、本負荷分散システムの機能及びやりとりする通信データ等を説明する上で、ＯＳＩ（Open Systems Interconnection）階層モデルに基づいて説明する。
【００２８】
本負荷分散システムでは、クライアント端末（以降、単にクライアントとする）５０と前段装置１０が接続され、サーバ装置（以降、単にサーバとする）６０に後段装置３０が接続されている。そして、この前段装置１０と後段装置３０とが接続され、本負荷分散システムを構成する。本負荷分散システムはアプリケーション層（以降、Ｌ７（Layer7）とする）における上記パーシステンス機能による負荷分散（以降、Ｌ７負荷分散と表記する）を実現する。なお、サーバ６０はクライアント５０に各種アプリケーションを提供しているものとする。
【００２９】
前段装置１０は、クライアント５０より送信される複数フレームから、所定のＬ７情報を抽出し、このＬ７情報に対応する識別情報を付加したフレームを後段装置３０に転送する。後段装置３０は、前段装置１０より転送されるフレームの振り分け先、すなわち、負荷分散を行うサーバ６０を識別情報に基づき決定する。このように、前段装置１０及び後段装置３０に分けることにより、本負荷分散システムは、Ｌ７情報抽出処理を行う前段装置１０を複数用意することで、処理の重い前段装置１０の１機能当たりの担当トラヒック量を削減し、多くのトラヒック量を処理する後段装置３０では、負荷の軽い振り分け処理のみを行う。
【００３０】
ここで、前段装置１０及び後段装置３０の上記機能の概要を、図１の例を用いて説明する。図１は、クライアント５０とサーバ６０がクッキー（Cookie）を用いたＨＴＴＰ（HyperText Transfer Protocol）による通信を行う場合の例を示している。ここで、Ｃｏｏ
ｋｉｅとは、Ｗｅｂサーバとクライアントの間で暗黙的に情報交換するための仕組みであり、Ｗｅｂサーバの指示により、当該Ｗｅｂサーバにアクセスしたクライアントのコンピュータにデータを一時的に保存する仕組みである。ここでは、クライアント５０にサーバ６０を識別するための情報がＣｏｏｋｉｅにより保存されている場合を例に挙げる。
【００３１】
クライアント５０は、Ｌ７の送信データ１をＨＴＴＰによりサーバ６０に送信する。ここで、送信データ１には、サーバ６０を識別するためのＣｏｏｋｉｅ（Ｃｏｏｋｉｅ＝Ｃ１）が挿入されている。また、送信データ１は、ネットワーク層における送信可能なサイズに分割され、複数のフレーム（フレーム２及び３など）として送信される。
【００３２】
前段装置１０は、当該フレーム２及び３などを受信すると、それらを合成し、Ｌ７の送信データ１を得る。前段装置１０は、この送信データ１より、Ｌ７情報、例えば、Ｃｏｏｋｉｅの情報（Ｃ１）を取得する。そして、前段装置１０は、このＬ７情報に対応する識別情報を、後段装置３０に送信するフレームの特定フィールド（例えば、送信元ポート番
号フィールド）に設定する（図１に示すフレーム４及び５）。前段装置１０は、予めＬ７情報と上記特定フィールドに設定すべき識別情報の対応ルールを決めている。
【００３３】
後段装置３０は、前段装置１０からの各受信フレーム（図１に示すフレーム４及び５）の上記特定フィールドの値のみを確認し、振り分けるべきサーバ６０へ当該フレーム６及び７を転送する。すなわち、後段装置３０は、複数のフレームから送信データ１を合成することなく、該当セッションに付与されているＬ７情報を識別することが可能となる。
【００３４】
上記のような構成により、本負荷分散システムは、前段装置１０及び後段装置３０を、さまざまなネットワーク形態に対応し、配置させることができる。図２は、前段装置をサーバネットワーク内に設置する構成例を示す図である。図２に示すネットワーク形態では、サーバ６０−６２が存在するネットワーク８７上に前段装置１０及び後段装置３０が設置されている。３台の前段装置１０は、バックボーンネットワーク８０を介して、クライアントネットワークを構成する各クライアント５０−５２にそれぞれ接続されている。そして、各前段装置１０はそれぞれ後段装置３０に接続され、後段装置３０はサーバ６０−６２に接続され、各サーバ６０−６２の負荷を分散させている。バックボーンネットワーク８０とは、各拠点に構成されるネットワークを接続するための基幹ネットワークである。
【００３５】
また、図３は、前段装置をバックボーンネットワーク８０内に配置する構成例を示す図である。図３では、３台の前段装置１０がバックボーンネットワーク８０内に配置され、各クライアント５０−５２とそれぞれ接続されている。そして、これら前段装置１０は、それぞれサーバーネットワーク８７に配置される後段装置３０に接続される。
【００３６】
図４は、前段装置をクライアントネットワーク上に配置する構成例を示す図である。図４では、３台の前段装置１０がそれぞれクライアントネットワーク８１−８３上に配置され、各クライアント５０−５２とそれぞれ接続されている。そして、これら前段装置１０は、それぞれバックボーンネットワーク８０を介して、サーバーネットワーク８７上に配置される後段装置３０に接続される。
〔第一実施形態〕
以下、図面を参照して、本発明の第一実施形態における負荷分散システムについて説明する。
〈システム構成〉
図５は、第一実施形態における負荷分散システムのネットワーク構成を示す図である。以下に、本実施形態のネットワーク構成について図５を用いて説明する。
【００３７】
図５に示すネットワーク構成では、クライアントネットワーク８１−８３とサーバネットワーク８７とがバックボーンネットワーク８０を介して接続され、全体でＩＰ（Internet Protocol）ネットワークを構成している。各クライアントネットワーク８１−８３に
は、それぞれ各クライアント端末（以降、クライアントとする）５０−５２が含まれる。また、サーバネットワーク８７には、各種アプリケーションを提供するサーバ端末（以降、サーバとする）６０−６２が含まれる。
【００３８】
第一実施形態における負荷分散システムは、クライアントネットワーク８１−８３のそれぞれに配置される前段装置１１−１３と、サーバネットワーク８７に配置される後段装置３０により構成される。第一実施形態における負荷分散システムは、先に説明した本発明の実施形態の概要による図２−４に示すネットワーク形態と同様に、前段装置３つと後段装置１つで構成される例である。各前段装置１１−１３は、それぞれ各クライアント５０−５２に接続され、後段装置３０はサーバ６０−６２に接続されている。そして、本負荷分散システムは、前段装置１１−１３と後段装置３０によって、サーバ６０−６２の負
荷分散を実現する。以降、前段装置１１−１３は全て同じものであるため、前段装置１１を例に説明する。
【００３９】
なお、クライアント５０は、ＩＰアドレス（Internet Protocol Address）１０．０．
０．１を持ち、サーバ６０−６２は、仮想ＩＰアドレス５０．０．０．１を持ち、サーバ６０−６２のＭＡＣアドレス（Media Access Control address）を、それぞれ「ＭＳ１」、「ＭＳ２」及び「ＭＳ３」とした場合について説明する。サーバ６０−６２が１つの仮想ＩＰアドレスを持つのは、それらが負荷分散されているからであり、そのサーバ群にアクセスするクライアントにとっては、１つのサーバとして認識される。従って、各クライアント５０−５２は、サーバ６０−６２にアプリケーションの提供を求める場合には、１つの仮想ＩＰアドレス５０．０．０．１に対して要求することになる。
【００４０】
〈〈クライアント及びサーバ〉〉
サーバ６０−６２は、本発明に係る負荷分散システムにより、負荷分散されるサーバ群である。各サーバ６０−６２は、例示として、それぞれ同一のＷｅｂサーバであり、同一のＨＴＭＬコンテンツを提供するものとする。また、クライアント５０−５２は、アクセスすべきサーバ６０−６２が、本発明に係る負荷分散システムにより負荷分散されることにより、快適にサーバ群からＨＴＭＬコンテンツの提供を受ける端末である。
【００４１】
サーバ６０−６２とクライアント５０−５２とは、Ｃｏｏｋｉｅを用いたＨＴＴＰによる通信を行う。Ｃｏｏｋｉｅについては先に説明したとおりである。ここでは、サーバ６０−６２は、クライアント５０−５２からのアクセスに対して、サーバ６０−６２を示す「ＳＶ１」を設定したＣｏｏｋｉｅを含めて、ＨＴＭＬコンテンツを送信する。すなわち、サーバ６０−６２とクライアント５０−５２との間でやりとりされるＬ７データの中には、「ＳＶ１」の値を持つＣｏｏｋｉｅが付与される。
【００４２】
〈〈前段装置１１〉〉
前段装置１１は、例えば、ＣＰＵ（Central Processing Unit）、メモリ及び入出力イ
ンターフェースなどを備え、ＩＰ通信機能を持つ１つのブリッジ装置である。しかし、専用装置に限定されるものではなく、ＩＰ通信機能を持つ汎用的なコンピュータ上で動作する１つのアプリケーションであってもよい。第一実施形態における前段装置１１は、ＩＰアドレス２０．０．０．１を持つブリッジ装置である。
【００４３】
前段装置１１は、クライアント５０がサーバ６０−６２にアクセスする際に送信されるデータを中継する機能である。そして、前段装置１１は、概要にて説明したとおり、それぞれが接続されるクライアント端末より送信される複数フレームから、所定のＬ７情報を抽出し、このＬ７情報に対応する識別情報を送信元ポート番号フィールドに付加したフレームを後段装置３０に転送する。第一実施形態における負荷分散システムにおいては、所定のＬ７情報として、Ｃｏｏｋｉｅの持つ「ＳＶ１」、「ＳＶ２」及び「ＳＶ３」が利用される。すなわち、前段装置１１は、Ｃｏｏｋｉｅの持つサーバ６０−６２を示す値である「ＳＶ１」を、対応する識別情報に変換し、フレームに設定する。
【００４４】
また、前段装置１１は、サーバ側（後段装置３０）から受信するフレームについて、先に書き換えた送信元ポート番号を元の番号に戻して、クライアント５０に送信する。このように、前段装置１１は、複数のフレームを合成し、Ｌ７情報を抽出するという負荷の重い処理を担当する機能である。
【００４５】
〈〈後段装置３０〉〉
後段装置３０は、前段装置１１と同様のＨ／Ｗ構成を持つ１つのブリッジ装置である。さらに後段装置３０についても専用装置に限定されるものではなく、ＩＰ通信機能を持つ
汎用的なコンピュータ上で動作する１つのアプリケーションであってもよい。
【００４６】
後段装置３０は、前段装置１１より転送されるフレームの振り分け先、すなわち、負荷分散を行うサーバ６０−６２を、前段装置１１が付加した識別情報に基づき決定する。後段装置３０は、クライアント側（前段装置１１）から受信したフレームの送信元ポート番号フィールドをチェックし、設定されている識別情報により、フレームの送信先ＭＡＣアドレスを振り分け先サーバのアドレスに書き換えて送信する。また、後段装置３０は、サーバ６０−６２から受信するフレームについては、通常のデータリンク層（以降、Ｌ２（Layer2）とする）における中継を行い、クライアント側に転送する。後段装置３０は、前段装置１１より転送されるフレームの所定の位置のデータをチェックすることにより、振り分け先サーバ６０−６２を決定するため、前段装置１１と比べ、負荷の軽い処理を担当する機能である。
【００４７】
〈前段装置１１の機能構成〉
次に、図５に示した前段装置１１−１３の機能構成について説明する。図６は、図５に示した第一実施形態における前段装置の機能ブロックを示す図である。図５に示す前段装置１１−１３は全て同一の機能構成を持つため、ここでは、そのうちの前段装置１１を例に説明する。
【００４８】
前段装置１１は、クライアントＬ７セッション終端部１０１（本発明の取得部に相当）、特定パターン抽出部１０２（本発明の抽出部に相当）、マッピングルール保持部１０３（本発明の対応表保持部に相当）、送信パラメータ決定部１０４（本発明の決定部に相当）、及びサーバＬ７セッション終端部１０５（本発明の送信部に相当）から構成される。以下、前段装置１１の各構成要素について個別に説明する。
【００４９】
（クライアントＬ７セッション終端部１０１）
クライアントＬ７セッション終端部１０１は、クライアント５０から送信される１以上のフレームを受信し、ひとかたまりのＬ７データを合成する。クライアント５０のアプリケーション層の送信データ（Ｌ７データ）は、ネットワーク層における送信可能なサイズに分割され、複数のフレームとして送信されるため、クライアントＬ７セッション終端部１０１は、それらを合成する。そして、クライアントＬ７セッション終端部１０１は、合成されたＬ７データを特定パターン抽出部１０２及びサーバＬ７セッション終端部１０５に通知する。
【００５０】
（特定パターン抽出部１０２）
特定パターン抽出部１０２は、クライアントＬ７セッション終端部１０１により合成されたＬ７データを受け取り、特定のルールで照合を行い、マッチしたデータ（ビットパターン）を抽出する。ここでは、特定パターン抽出部１０２は、Ｌ７データのＣｏｏｋｉｅ中に、「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝“ｓｅｒｖｅｒＩＤ”」というビットパターンがあるか否かの判定を行い、当該ビットパターンがあった場合に、ｓｅｒｖｅｒＩＤの部分に設定されているビットパターンを抽出する。そして、特定パターン抽出部１０２は、抽出したビットパターンを送信パラメータ決定部１０４に通知する。
【００５１】
なお、特定パターン抽出部１０２は、上記ビットパターンを抽出できない場合には、特定パターンがない旨の通知を送信パラメータ決定部１０４に通知する。この場合とは、クライアント５０が当該特定パターンを付加しないで送信した場合であり、サーバ６０−６２がＣｏｏｋｉｅをクライアント５０に通知していない場合に相当する。すなわち、クライアント５０が初めてサーバ６０−６２にアクセスした場合などがこの場合に相当する。
【００５２】
（マッピングルール保持部１０３）
マッピングルール保持部１０３は、特定パターン抽出部１０２が抽出したビットパターンと、それに対応する識別情報を保持する。マッピングルール保持部１０３は、図７に示すマッピングルールテーブルを持つ。すなわち、マッピングルール保持部１０３は、ＣｏｏｋｉｅのｓｅｒｖｅｒＩＤに設定されるビットパターン（例えば、図７に示すＳＶ１）と、それに対応するポート番号の範囲データとの相対表を保持する。
【００５３】
（送信パラメータ決定部１０４）
送信パラメータ決定部１０４は、特定パターン抽出部１０２から渡されたビットパターンを元に、マッピングルール保持部１０３を検索し、後段装置３０に送信するフレームに設定すべき、フィールド値を決定する。すなわち、送信パラメータ決定部１０４は、通知されたビットパターンに基づき、対応するポート番号を決定する。そして、送信パラメータ決定部１０４は、決定したフィールド値をサーバＬ７セッション終端部１０５に通知する。
【００５４】
送信パラメータ決定部１０４は、特定パターン抽出部１０２から特定パターンを抽出できなかった旨の通知を受けた場合には、特定パターンでない旨を示すフィールド値（ポート番号）を決定し、サーバＬ７セッション終端部１０５に通知する。
【００５５】
（サーバＬ７セッション終端部１０５）
サーバＬ７セッション終端部１０５は、送信パラメータ決定部１０４から通知されるフィールド値により、後段装置３０に転送するフレームの送信元ポート番号フィールドの値を置き換え、当該フレームを後段装置３０へ転送する。このとき、サーバＬ７セッション終端部１０５は、置き換える前の送信元ポート番号フィールドの値と、そのフレームの送信元であるクライアント５０のＩＰアドレス、及び置き換え後のフィールド値を保持する。
【００５６】
そして、逆にサーバ６０−６２からクライアント５０へ送信されるフレームを受信した場合には、サーバＬ７セッション終端部１０５は、保持している送信元のクライアント５０のＩＰアドレスから、置き換える前のポート番号を取得し、この元のポート番号をフレームに設定し、クライアント５０へ送信する。
【００５７】
〈後段装置３０の機能構成〉
次に、図５に示した後段装置３０における機能構成について説明する。図８は、図５に示した第一実施形態における後段装置の機能ブロックを示す図である。
【００５８】
後段装置３０は、特定フィールド抽出部１３１（本発明の後段抽出部に相当）、Ｌ７振分ルール保持部１３２、Ｌ７振分先決定部１３３（本発明の中継先決定部に相当）、送信先変更部１３４（本発明の送信先変更部に相当）、振分ルール選択部１３５、及び振分先決定部１３６から構成される。以下、後段装置３０の各構成要素について個別に説明する。
【００５９】
（特定フィールド抽出部１３１）
特定フィールド抽出部１３１は、前段装置１１から転送されるフレームを受信し、前段装置１１により付与された識別情報が設定されている箇所（特定フィールド）の値を取得する。ここでは、フレーム内の送信元ポート番号フィールドの値が取得される。特定フィールド抽出部１３１は、取得したフィールド値を振分ルール選択部１３５に通知する。また、特定フィールド抽出部１３１は、受信したフレームをそのまま送信先変更部１３４に転送する。
【００６０】
（振分ルール選択部１３５）
振分ルール選択部１３５は、特定フィールド抽出部１３１から通知される上記特定フィールドの値をもとに、Ｌ７負荷分散処理を行うか、それ以外のルールを用いるかを決定する。つまり、振分ルール選択部１３５は、上記特定フィールド値が特定パターンを抽出できなかったことを示すポート番号となっていた場合には、新たな負荷分散が要求されるため、Ｌ７負荷分散以外のルールを用いることを決定する。そして振分ルール選択部１３５は、上記決定に応じて、Ｌ７負荷分散処理であれば、Ｌ７振分先決定部１３３に特定フィールド値であるポート番号を通知し、Ｌ７負荷分散以外のルールを用いる必要がある場合であれば、振分先決定部１３６にその旨のポート番号を通知する。後段装置によるＬ７負荷分散処理とは、特定フィールドに設定されるポート番号を元に、ポート番号に対応するサーバに受信フレームを振り分ける処理をいう。一方、Ｌ７負荷分散以外のルールについては、振分先決定部１３６の機能として以下に説明する。
【００６１】
（Ｌ７振分ルール保持部１３２）
Ｌ７振分ルール保持部１３２は、特定フィールド抽出部１３１が抽出したポート番号と、それに対応する振分先サーバのアドレス情報を保持する。Ｌ７振分ルール保持部１３２は、図９に示す振分ルールテーブルを持つ。すなわち、Ｌ７振分ルール保持部１３２は、前段装置１１により付加されるポート番号と、それに対応する振分先サーバのＭＡＣアドレスとの相対表を保持する。
【００６２】
（Ｌ７振分先決定部１３３）
Ｌ７振分先決定部１３３は、振分ルール選択部１３５より通知された特定フィールド値を元に、Ｌ７振分ルール保持部１３２を検索し、振分先サーバを決定する。すなわち、Ｌ７振分先決定部１３３は通知されたポート番号に基づき、対応する振分先サーバのＭＡＣアドレスを決定する。そして、Ｌ７振分先決定部１３３は、決定した振分先サーバのＭＡＣアドレスを送信先変更部１３４に通知する。
【００６３】
（振分先決定部１３６）
振分先決定部１３６は、振分ルール選択部１３５よりＬ７負荷分散以外のルールを用いる必要がある場合のポート番号を通知されると、所定のルールを元に振分先サーバを決定する。所定のルールとは、例えば、ラウンドロビンによる決定方法などがある。ここでは、振分先決定部１３６は、負荷分散すべき各サーバ６０―６２のＣＰＵ負荷を常時監視し、その決定時点で最も負荷の軽いサーバを振分先サーバとして決定し、そのサーバのＭＡＣアドレスを送信先変更部１３４に通知する。
【００６４】
（送信先変更部１３４）
送信先変更部１３４は、特定フィールド抽出部１３１より転送されるフレームの送信先ＭＡＣアドレスを、Ｌ７振分先決定部１３３、または振分先決定部１３６より通知された振分先サーバのＭＡＣアドレスに書き換え、決定された振分サーバに送信する。
〈動作例〉
次に、第一実施形態における負荷分散システムの動作について説明する。
【００６５】
まず、図５に示すネットワーク構成において、クライアント５０がサーバ群６０−６２にＨＴＭＬコンテンツの提供を要求する場合の上記各構成要素の動作について図１０を用いて説明する。図１０は、第一実施形態における通信シーケンスを示す図である。説明は、図１０に示す第１の通信フェーズと第２の通信フェーズに分け行う。
【００６６】
まず、第１の通信フェーズは、クライアント５０がＣｏｏｋｉｅのないＨＴＴＰリクエストをサーバ群６０−６２に送信し、それに対して、サーバ群６０−６２がＣｏｏｋｉｅを付与してＨＴＴＰリプライをクライアント５０に返信するというフェーズである。これは、クライアント５０が初めてサーバ群６０−６２にアクセスする場合に行われる手順で
ある。また、第１の通信フェーズは、サーバがＣｏｏｋｉｅをサポートしない場合などにも実行される。
【００６７】
第２の通信フェーズは、第１の通信フェーズによりクライアント５０内にＣｏｏｋｉｅが記憶された後の通信フェーズである。つまり、第２の通信フェーズは、クライアント５０が上記Ｃｏｏｋｉｅを付与してＨＴＴＰリクエストをサーバ群６０−６２に送信し、サーバがＣｏｏｋｉｅを付与してＨＴＴＰリプライをクライアント５０に返信するという手順である。なお、上記第１の通信フェーズと第２の通信フェーズは続けて行われることもあるが、この間一度ＴＣＰコネクションが切断されるものとする。
【００６８】
〈〈第１の通信フェーズ〉〉
クライアント５０は、仮想ＩＰアドレス「５０．０．０．１」宛てに、送信元ポート番号を「４０００」と設定したＴＣＰのＳＹＮパケットを送信する。ＳＹＮパケットは、一般にクライアントとサーバとの間のＴＣＰコネクションを作成する上で使用されるパケットである。このようにＴＣＰコネクションが作成される理由は、ＨＴＴＰによるクライアント（Ｗｅｂブラウザ）とＷｅｂサーバとの間の通信がトランスポート層（Ｌ４）の提供する仮想的な通信回線（ポート）を利用して行われるためである。
【００６９】
前段装置１１のクライアントＬ７セッション終端部１０１は、クライアント５０より送信されるＴＣＰのＳＹＮパケットを受信すると、クライアント５０との間でＴＣＰコネクションの作成を行う。
【００７０】
次に、クライアント５０は、作成されたＴＣＰコネクションを使用して、Ｃｏｏｋｉｅを含まないＨＴＴＰのリクエストを仮想ＩＰアドレス「５０．０．０．１」宛てに送信する。
【００７１】
次に、前段装置１１のクライアントＬ７セッション終端部１０１は、上記クライアント５０が送信した全フレームを受信すると、ＨＴＴＰリクエスト（Ｌ７データ）を抽出し、フレームのヘッダ情報と共にサーバＬ７セッション終端部１０５に渡す。また、上記ＨＴＴＰリクエストを特定パターン抽出部１０２に渡す。
【００７２】
特定パターン抽出部１０２は、クライアントＬ７セッション終端部１１より受け取ったＨＴＴＰリクエストをチェックし、特定のビットパターンの照合を行う。この場合、ＨＴＴＰリクエスト内にＣｏｏｋｉｅが存在しないため、特定パターン抽出部１０２は、ビットパターンを抽出できなかったことを送信パラメータ決定部１０４に通知する。
【００７３】
送信パラメータ決定部１０４は、特定パターンを抽出できない旨の通知がされると、ポート番号をこの場合「１５００１」と決定し、サーバＬ７セッション終端部１０５に渡す。このポート番号「１５００１」は、特定パターンの抽出ができなかったことを示す番号として予め決められた番号である。
【００７４】
サーバＬ７セッション終端部１０５は、送信パラメータ決定部１０４より通知されたポート番号「１５００１」を、ＴＣＰのＳＹＮパケットの送信元ポート番号に設定し、仮想ＩＰアドレス「５０．０．０．１」宛てに送信する。このとき、サーバＬ７セッション終端部１０５は、当該ＴＣＰのＳＹＮパケットに設定されている送信元のＩＰアドレス「１０．０．０．１」と、当該パケットに設定されていた置き換えた後の送信元ポート番号「４０００」と、置き換えたポート番号「１５００１」を保存する。
【００７５】
次に、前段装置によって送信元ポート番号が置き換えられたフレームは、後段装置３０によって受信される。後段装置３０の特定フィールド抽出部１３１は、受信したフレーム
の送信元ポート番号フィールドに設定されている値「１５００１」を抽出し、振分ルール選択部１３５に通知する。
【００７６】
振分ルール選択部１３５は、特定フィールド抽出部１３１より通知されたポート番号が特定パターンの抽出ができなかった旨を示す番号であることを確認すると、振分先決定部１３６に振分のリクエスト信号を送る。
【００７７】
振分先決定部１３６は、各サーバ６０−６２のＣＰＵ負荷状況をもとに振分先サーバをサーバ６０に決定し、サーバ６０のＭＡＣアドレス「ＭＳ１」を送信先変更部１３４に渡す。
【００７８】
送信先変更部１３４は、特定フィールド抽出部１３１から転送された受信フレームの送信先ＭＡＣアドレスを、振分先決定部１３６から通知されたアドレス「ＭＳ１」に書き換えてサーバ側に転送する。
【００７９】
サーバ６０は、後段装置３０より送信されたＴＣＰのＳＹＮフレームを受信すると、その応答フレームとして、ＳＹＮ＋ＡＣＫフレームを返信する。後段装置３０はサーバ６０から上記フレームを受信すると、そのままクライアント側（前段装置１１）に転送する。
【００８０】
そして、前段装置１１のサーバＬ７セッション終端部１０５は上記ＳＹＮ＋ＡＣＫフレームを受信すると、ＡＣＫフレームをサーバ６０に返信する。これにより、サーバ６０と前段装置１１との間にＴＣＰコネクションが作成される。
【００８１】
前段装置１１のサーバＬ７セッション終端部１０５は、サーバ６０との間にＴＣＰコネクションを確立すると、当該ＴＣＰコネクションを利用して、先にクライアント５０から受信していたＨＴＴＰリクエストをサーバ６０に転送する。以降、ＨＴＴＰリクエストフレームを受信した後段装置３０の処理は、上述したＴＣＰコネクション作成時の処理と同様のため、説明を省略する。
【００８２】
次に、Ｃｏｏｋｉｅを付与しないクライアント５０からのＨＴＴＰリクエストに対し、サーバ６０がＣｏｏｋｉｅをクライアント５０へ保存させるためのＨＴＴＰリプライを送信する通信手順が始まる。
【００８３】
サーバ６０は、「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝ＳＶ１」というデータを持つＣｏｏｋｉｅを付与したＨＴＴＰリプライを、送信先ポート番号「１５００１」として、前段装置１１「２０．０．０．１」宛てに送信する。
【００８４】
後段装置３０は、サーバ６０から上記ＨＴＴＰリプライフレームを受信すると、そのままクライアント側（前段装置１１）に転送する。
【００８５】
前段装置１１のサーバＬ７セッション終端部１０５は、上記ＨＴＴＰリプライフレームを受信すると、そのＨＴＴＰリプライフレームと先に保存した送信元ポート番号「４０００」とをクライアントＬ７セッション終端部１０１に渡す。
【００８６】
クライアントＬ７セッション終端部１０１は、上記ＨＴＴＰリプライフレームの送信先ポート番号を、元のポート番号「４０００」に置き換え、クライアント５０「１０．０．０．１」宛てに送信する。
【００８７】
このＨＴＴＰリプライフレームを受信したクライアント５０は、「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝ＳＶ１」というＣｏｏｋｉｅを自身のメモリに記録する。これにより、クライ
アント５０は、以降のサーバ６０との通信において、このＣｏｏｋｉｅが暗黙的に付与されたＬ７データを送信することになる。
【００８８】
〈〈第２の通信フェーズ〉〉
第２の通信フェーズは、Ｃｏｏｋｉｅが記録された状態でクライアント５０がサーバ６０にＨＴＭＬコンテンツを要求するフェーズである。この場合も第１の通信フェーズと同様にまず、クライアント５０は、仮想ＩＰアドレス「５０．０．０．１」宛てに、送信元ポート番号を「４００１」と設定したＴＣＰのＳＹＮパケットを送信し、前段装置１１のクライアントＬ７セッション終端部１０１との間に、ＴＣＰコネクションを作成する。
【００８９】
クライアント５０は、上記ＴＣＰコネクションを利用して、「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝ＳＶ１」というデータを持つＣｏｏｋｉｅを含んだＨＴＴＰのリクエストを、仮想サーバ「５０．０．０．１」宛てに送信する。
【００９０】
前段装置１１のクライアントＬ７セッション終端部１０１は、上記ＨＴＴＰリクエストの全フレームを受信すると、ＨＴＴＰリクエストのデータをフレームから抽出し、フレームのヘッダ情報と共にサーバＬ７セッション終端部１０５に渡す。また、クライアントＬ７セッション終端部１０１は、上記ＨＴＴＰリクエストを特定パターン抽出部１０２に渡す。
【００９１】
特定パターン抽出部１０２は、受け取ったＨＴＴＰリクエストからｓｅｒｖｅｒＩＤに係るビットパターン「ＳＶ１」を抽出し、抽出したビットパターン「ＳＶ１」を送信パラメータ決定部１０４に渡す。
【００９２】
送信パラメータ決定部１０４は、ビットパターン「ＳＶ１」に対応するポート番号をマッピングルール保持部１０３より検索する。この場合、図７に示すように、該当するポート番号は「１０００１―１１０００」であるため、その範囲内のポート番号を決定する。ここでは、送信パラメータ決定部１０４は、ポート番号を「１０００１」と決定し、サーバＬ７セッション終端部１０５に渡す。
【００９３】
サーバＬ７セッション終端部１０５は、ＴＣＰのＳＹＮフレームを送信元ポート番号「１０００１」と設定し、仮想サーバ「５０．０．０．１」宛てに送信する。
【００９４】
次に、前段装置１１によって送信元ポート番号が置き換えられたＴＣＰのＳＹＮフレームは、後段装置３０により受信される。後段装置３０の特定フィールド抽出部１３１は、受信したフレームの送信元ポート番号フィールドに設定される値を抽出する。そして、特定フィールド抽出部１３１は、送信元ポート番号「１０００１」を振分ルール選択部１３５に渡す。
【００９５】
振分ルール選択部１３５は、特定フィールド抽出部１３１から通知されたポート番号を判別し、ポート番号「１０００１」がＬ７負荷分散を行うべき識別番号であると判別し、Ｌ７振分先決定部１３３に上記ポート番号「１０００１」を渡す。
【００９６】
Ｌ７振分先決定部１３３は、上記ポート番号に対応する振分先サーバをＬ７振分ルール保持部１３２から読み出す。ここでは、Ｌ７振分先決定部１３３は、図９に示すテーブルにより、「１０００１」のポート番号に対応する振分先サーバのアドレスとして「ＭＳ１」を取得する。そして、Ｌ７振分先決定部１３３は、取得した振分先サーバのアドレス「ＭＳ１」を送信先変更部１３４に渡す。
【００９７】
送信先変更部１３４は、特定フィールド抽出部１３１から転送される受信フレーム（Ｔ
ＣＰのＳＹＮフレーム）の送信先ＭＡＣアドレスを、Ｌ７振分先決定部１３３により通知された上記アドレス「ＭＳ１」に書き換え、サーバ側に転送する。
【００９８】
サーバ６０は、ＴＣＰのＳＹＮフレームを受信すると、その応答フレームであるＳＹＮ＋ＡＣＫフレームをクライアント側へ返信する。
【００９９】
後段装置３０はサーバ６０から上記フレームを受信すると、そのままクライアント側に転送する。前段装置１１のサーバＬ７セッション終端部１０５は上記ＳＹＮ＋ＡＣＫフレームを受信すると、ＡＣＫフレームをサーバ６０に返信する。つまり、前段装置１１のサーバＬ７セッション終端部１０５は、サーバ６０との間にＴＣＰコネクションを作成する。そして、前段装置１１のサーバＬ７セッション終端部１０５は、当該ＴＣＰコネクションを利用して、先にクライアント５０より受信していたＨＴＴＰリクエストをサーバ６０に転送する。
【０１００】
以降、ＨＴＴＰリクエストフレームを受信した後段装置３０の処理は、上述したＴＣＰコネクション作成時の処理と同様のため、説明を省略する。
【０１０１】
（動作フローの説明）
上記の説明では、通信シーケンスに従って他の装置の動作と関連させ、第一実施形態における負荷分散システムの各機能構成の動作を説明したが、ここでは、前段装置１１及び後段装置３０のそれぞれの動作について図１１及び１２を用いて説明する。
【０１０２】
（（前段装置１１））
図１１は、第一実施形態における前段装置１１の動作を示すフローチャートである。
【０１０３】
前段装置１１のクライアントＬ７セッション終端部１０１は、クライアント５０からＳＹＮフレームを受信すると、クライアント５０との間にＴＣＰコネクションを作成する（Ｓ１１）。次に、クライアントＬ７セッション終端部１０１は、当該ＴＣＰコネクションを使ってクライアント５０から送信されるＨＴＴＰリクエストフレームを受信し（Ｓ１２）、当該フレームからＨＴＴＰリクエストデータを取得する（Ｓ１３）。
【０１０４】
前段装置の特定パターン抽出部１０２は、当該ＨＴＴＰリクエストデータを受けると、そのデータの中から特定のビットパターンの抽出を試みる（Ｓ１４）。次に、特定のビットパターン（例えば「ＳＶ１」）が抽出されると（Ｓ１４；ＹＥＳ）、前段装置の送信パラメータ決定部１０４が、そのビットパターンに対応するポート番号を決定する（Ｓ１５）。一方、特定のビットパターンが抽出されなかった場合には（Ｓ１４；ＮＯ）、前段装置の送信パラメータ決定部１０４は、抽出不可を示すポート番号を決定する（Ｓ１７）。
【０１０５】
そして、前段装置１１のサーバＬ７セッション終端部１０５は、決定されたポート番号をＳＹＮフレームの送信元ポート番号フィールドに設定し、後段装置３０方向へ送信する。これにより、サーバ６０と前段装置１１のサーバＬ７セッション終端部１０５との間にＴＣＰコネクションが作成される（Ｓ１８）。このＴＣＰコネクションを使って、前段装置１１のサーバＬ７セッション終端部１０５は、先に受信したＨＴＴＰリクエストフレームであって、送信元ポート番号を先に決定したポート番号に変更したフレームを、後段装置３０方向へ送信する（Ｓ１９）。
【０１０６】
（（後段装置３０））
図１２は、第一実施形態における後段装置３０の動作を示すフローチャートである。
【０１０７】
後段装置３０の特定フィールド抽出部１３１は、前段装置１１が送信したフレームを受
信すると（Ｓ２１）、当該フレームの送信元ポート番号フィールドの値を抽出する（Ｓ２２）。後段装置３０の振分ルール選択部１３５は、当該ポート番号がＬ７負荷分散を行うためのものか否かを判定する（Ｓ２３）。これにより、当該ポート番号がＬ７負荷分散を行うための番号であれば（Ｓ２３；ＹＥＳ）、Ｌ７振分先決定部１３３は、Ｌ７振分ルール保持部１３２のテーブルから当該ポート番号に対応する振分先サーバのアドレスを決定する（Ｓ２４）。一方、当該ポート番号がＬ７負荷分散以外の番号であった場合（Ｓ２３；ＮＯ）には、振分先決定部１３６は、その時に一番ＣＰＵ負荷が軽いと判断したサーバを振分先サーバとして選択し、そのサーバのアドレスを取得する（Ｓ２５）。そして、送信先変更部１３４が、決定された振分先サーバのアドレスにより送信すべきフレームのアドレスを書き換え、サーバ６０−６２方向へ送信する（Ｓ２６）。
【０１０８】
〈第一実施形態の作用効果〉
第一実施形態における負荷分散システムでは、クライアントから送出されたアプリケーション層（Ｌ７）のデータであって１以上のフレームに分割され送出された通信データが前段装置１１−１３及び後段装置３０を中継し、これら前段装置及び後段装置によって振分先として決定されたサーバ６０−６２の１つに送られる。
【０１０９】
このようなサーバ負荷分散を実現するために、前段装置１１−１３のクライアントＬ７セッション終端部１０１は、当該分割されたフレームを全て受信し、その中からＬ７データを取得する。前段装置１１−１３の特定パターン抽出部１０２は、当該Ｌ７データ中に埋め込まれる送信先を示す特定パターン（Ｃｏｏｋｉｅ中のデータ）を抽出する。前段装置１１−１３の送信パラメータ決定部１０４は、当該特定パターンに対応したポート番号を決定する。前段装置１１−１３のサーバＬ７セッション終端部１０５は、当該Ｌ７データを送信するためのフレームであって、当該ポート番号を送信元ポート番号としたフレームを後段装置３０方向へ送出する。
【０１１０】
続いて、後段装置３０の特定フィールド抽出部１３１は、前段装置１１−１３より送出された１以上のフレームを受信し、そのフレーム中の送信元ポート番号に設定されている値を抽出する。後段装置３０のＬ７振分ルール決定部１３３は、当該送信元ポート番号の値に対応するサーバ６０−６２のアドレスを決定する。後段装置３０の送信先変更部１３４は、特定フィールド抽出部１３１によって受信されたフレームの送信先アドレスを当該アドレスに変換し、サーバ６０−６２方向へ送出する。
【０１１１】
このように、第一実施形態における負荷分散システムでは、複数の前段装置１１−１３によって、Ｌ７データからの送信先を示す特定パターンの抽出が行われ、その特定パターンに対応する識別番号（ポート番号）が当該フレームに設定され、後段装置３０に転送される。後段装置３０では、フレームの識別番号をチェックすることにより振分先サーバを決定する。
【０１１２】
これにより、１以上のフレームを扱い、かつ、当該フレームにおいてデータ位置が不定である特定パターンをチェックするという負荷の重い処理を複数の前段装置１１−１３に分割することができ、後段装置３０は、送信単位であるフレーム内における所定の箇所のデータをチェックすることにより振分先サーバを決定することができる。
【０１１３】
すなわち、第一実施形態における負荷分散システムでは、高負荷な処理を前段装置に移し、ネットワーク上に複数設置可能とすることにより、高速な負荷分散処理を可能とする。さらに、広帯域のネットワークにおける負荷分散処理の高速化を図ることができる。
【０１１４】
〔第二実施形態〕
以下、図面を参照して、本発明の第二実施形態における負荷分散システムについて説明
する。
【０１１５】
〈システム構成〉
図１３は、第二実施形態における負荷分散システムのネットワーク構成を示す図である。第一実施形態におけるネットワーク構成では、図５に示すように、各クライアント５０−５２がサーバ群６０−６２にアクセスする場合には、必ず、各前段装置１１−１３を中継し、後段装置３０にフレームが送信されることで負荷分散が実現されていた。第二実施形態では、第一実施形態におけるネットワーク構成に換わり、クライアントネットワーク８１内にあった前段装置１１が、サーバネットワーク８７内に配置される。すなわち、第二実施形態における負荷分散システムは、クライアント５０からサーバ群６０−６２へのアクセスにおいて、直接、クライアント５０から後段装置３０にデータが送信された場合に対応し得る構成となる。
【０１１６】
以下、各機能構成において第一実施形態と異なる構成についてのみ説明する。
【０１１７】
〈後段装置３０の機能構成〉
図１３に示した後段装置３０における機能構成について説明する。図１４は、図１３に示した第二実施形態における後段装置の機能ブロックを示す図である。
【０１１８】
後段装置３０は、第一実施形態における構成要素に加え、前段装置転送部１３７（本発明の転送部に相当）を含む。その他の各構成要素は、第一実施形態における構成要素と同様であるため、説明を省略する。以下、新たに追加された前段装置転送部１３７について説明する。
【０１１９】
（前段装置転送部１３７）
前段装置転送部１３７は、受信フレームが特定の送信元アドレスから送信されたフレームではない場合、前段装置１１に当該受信フレームを転送する。つまり、前段装置転送部１３７は、クライアント５０から送信されるフレームを直接受信した場合に、前段装置１１に転送する。
【０１２０】
〈動作例〉
次に、第二実施形態における負荷分散システムの動作について説明する。
【０１２１】
以下に、図１３に示すネットワーク構成において、クライアント５０がサーバ群６０−６２にＨＴＭＬコンテンツの提供を要求する場合の上記各構成要素の動作について説明する。通信シーケンスは、第一実施形態と同様であるので、第１の通信フェーズ及び第２の通信フェーズに分け、以下に説明する。
【０１２２】
〈〈第１の通信フェーズ〉〉
クライアント５０は、仮想サーバ「５０．０．０．１」宛てに、送信元ポート番号を「４０００」と設定したＴＣＰのＳＹＮフレームを送信する。
【０１２３】
後段装置３０の前段装置転送部１３７は、上記ＴＣＰのＳＹＮフレームを受信すると、当該フレームの送信元ＩＰアドレスをチェックする。この場合クライアント５０から送信されたフレームを直接受信しているため、当該フレームの送信元ＩＰアドレスはクライアント５０のＩＰアドレス「１０．０．０．１」となっている。前段装置転送部１３７は、送信元ＩＰアドレスが前段装置のＩＰアドレス「２０．０．０．１」でないと判断すると、当該フレームの送信先ＭＡＣアドレスを前段装置１１の「ＭＰ１」に書き換え、クライアント側に送信する。
【０１２４】
そして、前段装置１１のクライアントＬ７セッション終端部１０１が転送されたＴＣＰのＳＹＮフレームを受信すると、以降、第一実施形態の場合と同様の処理が行われる。
【０１２５】
〈〈第２の通信フェーズ〉〉
第二実施形態における負荷分散システムは、第２の通信フェーズについても第１の通信フェーズの場合と同様に動作する。クライアント５０が仮想サーバ「５０．０．０．１」宛てのＴＣＰのＳＹＮパケットを送信すると、そのフレームを受信した後段装置３０の前段装置転送部１３７は、それらを前段装置１１に転送する。そして、前段装置１１のクライアントＬ７セッション終端部１０１とクライアント５０との間に、ＴＣＰコネクションを作成する。以降、クライアント５０が送信するＨＴＴＰリクエストについても同様である。
【０１２６】
（動作フローの説明）
上記説明では、他の装置の動作と関連させて説明したが、ここでは、第二実施形態における後段装置３０の動作フローについて図１５を用いて説明する。前段装置１１については、第一実施形態と同様であるため説明を省略する。
【０１２７】
（（後段装置３０））
図１５は、第二実施形態における後段装置３０の動作を示すフローチャートである。
【０１２８】
後段装置３０の前段装置転送部１３７は、フレームを受信すると（Ｓ３１）、当該フレームの送信元が前段装置であるか否かを判別する（Ｓ３２）。結果、送信元が前段装置であれば（Ｓ３２；ＹＥＳ）、後の処理は第一実施形態と同様である（Ｓ２２−２６）。一方、送信元が前段装置でなかった場合には（Ｓ３２；ＮＯ）、後段装置３０の前段装置転送部１３７は前段装置に転送する（Ｓ３３）。転送後は、前段装置１１、後段装置３０と転送され第一実施形態と同様に処理される。
【０１２９】
〈第二実施形態の作用効果〉
第二実施形態における負荷分散システムでは、前段装置１１を経由せず、後段装置３０が直接クライアントからの送信フレームを受信した場合に、後段装置３０の前段装置転送部１３７により前段装置１１に転送される。
【０１３０】
これにより、第二実施形態における負荷分散システムでは、前段装置を通過しないネットワークからのアクセスに対しても、Ｌ７負荷分散機能を実現することができる。
【０１３１】
〔第三実施形態〕
以下、図面を参照して、本発明の第三実施形態における負荷分散システムについて説明する。
【０１３２】
〈システム構成〉
図１６は、第三実施形態における負荷分散システムのネットワーク構成を示す図である。第一実施形態におけるネットワーク構成では、図５に示すように、各クライアント５０−５２がアクセスするサーバ群６０−６２は、１つのサーバネットワーク８７に配置されていた。第三実施形態では、第一実施形態におけるネットワーク構成に加えて、サーバネットワーク８８がさらに接続され、そのネットワーク内にサーバ群６３−６５が配置される。
【０１３３】
そして、第三実施形態における負荷分散システムは、第一実施形態における構成に加えて、新たなサーバ群６３−６５の負荷分散を行う後段装置３１を含む。すなわち、第三実施形態における負荷分散システムは、負荷分散すべきサーバが複数のサーバネットワーク
に分かれているような場合に対応し得る構成となる。第三実施形態におけるネットワーク構成において、サーバ６０−６５の全サーバを示す仮想ＩＰアドレスを５０．０．０．１とし、後段装置３０配下にあるサーバ６０−６２を示す仮想ＩＰアドレスを６０．０．０．１とし、後段装置３１配下にあるサーバ６３−６５を示す仮想ＩＰアドレスを７０．０．０．１とする。
【０１３４】
各機能構成において第一実施形態と異なる構成についてのみ、以下に説明する。
【０１３５】
〈前段装置１１の機能構成〉
図１６に示した前段装置１１における機能構成について説明する。図１７は、図１６に示した第三実施形態における負荷分散システムの前段装置における機能ブロックを示す図である。
【０１３６】
前段装置１１は、第一実施形態における構成要素に加え、後段装置振分部１０６（本発明の後段選択部に相当）を含む。その他の各構成要素は、第一実施形態における構成要素と同様であるため、説明を省略する。以下、第一実施形態とは異なる構成についてのみ、説明する。また、後段装置３０及び３１は同様のものであるため、以下の説明では、後段装置３０について説明するものとする。
【０１３７】
（特定パターン抽出部１０２）
特定パターン抽出部１０２は、抽出したビットパターンを送信パラメータ決定部１０４とともに後段装置振分部１０６に通知する。ビットパターンを抽出できない場合においても、特定パターン抽出部１０２は、特定パターンがない旨の通知を送信パラメータ決定部１０４とともに後段装置振分部１０６に通知する。
【０１３８】
（後段装置振分部１０６）
後段装置振分部１０６は、特定パターン抽出部１０２から渡されたビットパターンを元に、転送先の後段装置を複数の後段装置の中から選択する。そして、後段装置振分部１０６は、選択した後段装置に該当する仮想ＩＰアドレスをサーバＬ７セッション終端部１０５に渡す。ここでは、後段装置振分部１０６は、ビットパターンが「ＳＶ１」、「ＳＶ２」、「ＳＶ３」の場合は後段装置３０の仮想ＩＰアドレス「６０．０．０．１」を決定し、ビットパターンが「ＳＶ４」、「ＳＶ５」、「ＳＶ６」の場合は後段装置３１の仮想ＩＰアドレス「７０．０．０．１」を決定する。
【０１３９】
また、特定パターン抽出部１０２から特定パターンがない旨の通知を受けた場合に、後段装置振分部１０６は、別のルール（例えばラウンドロビンなど）を利用して転送先の後段装置を選択し、選択した後段装置のアドレスをサーバＬ７セッション終端部１０５に渡す。
【０１４０】
（サーバＬ７セッション終端部１０５）
サーバＬ７セッション終端部１０５は、送信パラメータ決定部１０４から通知されるフィールド値により、転送するフレームの送信元ポート番号フィールドの値を置き換える。さらに、サーバＬ７セッション終端部１０５は、後段装置振分部１０６から通知される転送先後段装置の仮想ＩＰアドレスにより、転送するフレームの送信先アドレスを書き換え、当該フレームを後段装置へ転送する。
【０１４１】
〈動作例〉
次に、第三実施形態における負荷分散システムの動作について説明する。
【０１４２】
以下に、図１６に示すネットワーク構成において、クライアント５０がサーバ群６０−
６２にＨＴＭＬコンテンツの提供を要求する場合の上記各構成要素の動作について説明する。通信シーケンスは、第一実施形態と同様であるので、第１の通信フェーズ及び第２の通信フェーズに分け、以下に説明する。
【０１４３】
〈〈第１の通信手順〉〉
前段装置１１のクライアントＬ７セッション終端部１０１が、クライアント５０の送信するＨＴＴＰリクエストを受信フレームから抽出し、そのＨＴＴＰリクエストを特定パターン抽出部１０２に渡すところまでは、第一実施例の場合の動作と同様である。
【０１４４】
特定パターン抽出部１０２は、クライアントＬ７セッション終端部１０１より受け取ったＨＴＴＰリクエストをチェックし、この場合、Ｃｏｏｋｉｅが存在しないため、ビットパターンを抽出できなかったことを送信パラメータ決定部１０４及び後段装置振分部１０６に通知する。
【０１４５】
後段装置振分部１０６は、特定パターンの抽出ができないことを通知されると、例えば、ラウンドロビンにより後段装置３０か後段装置３１かを決定する。後段装置振分部１０６は、決定した後段装置３０の仮想ＩＰアドレス「６０．０．０．１」をサーバＬ７セッション終端部１０５に渡す。
【０１４６】
送信パラメータ決定部１０４は、第一実施形態と同様に、ポート番号「１５００１」をサーバＬ７セッション終端部１０５に渡す。
【０１４７】
サーバＬ７セッション終端部１０５は、送信パラメータ決定部１０４より通知されたポート番号「１５００１」をＴＣＰのＳＹＮパケットの送信元ポート番号に、後段装置振分部１０６より通知された仮想ＩＰアドレス「６０．０．０．１」を送信先ＩＰアドレスに置き換え送信する。このとき、サーバＬ７セッション終端部１０５は、当該ＴＣＰのＳＹＮパケットに設定されている送信元のＩＰアドレス「１０．０．０．１」と、置き換える前に当該パケットに設定されている送信元ポート番号「４０００」と、置き換えたポート番号「１５００１」を保存しておく。これにより、後段装置振分部１０６が決定した仮想ＩＰアドレスを持つ後段装置３０が当該フレームを受信する。以降の動作は、第一実施形態と同様である。
【０１４８】
〈〈第２の通信手順〉〉
第２の通信手順は、Ｃｏｏｋｉｅが記録された状態でクライアント５０がサーバ６０にＨＴＭＬコンテンツを要求するフェーズである。この場合も、前段装置１１のクライアントＬ７セッション終端部１０１が、クライアント５０の送信するＨＴＴＰリクエストを受信フレームから抽出し、そのＨＴＴＰリクエストを特定パターン抽出部１０２に渡すところまでは、第一実施例の場合の動作と同様である。
【０１４９】
特定パターン抽出部１０２は、受け取ったＨＴＴＰリクエストからｓｅｒｖｅｒＩＤに係るビットパターン「ＳＶ１」を抽出し、抽出したビットパターン「ＳＶ１」を送信パラメータ決定部１０４及び後段装置振分部１０６に渡す。
【０１５０】
後段装置振分部１０６は、ビットパターン「ＳＶ１」を通知されると、ビットパターン「ＳＶ１」に対応する後段装置３０の仮想ＩＰアドレス「６０．０．０．１」を決定する。後段装置振分部１０６は、決定した後段装置３０の仮想ＩＰアドレス「６０．０．０．１」をサーバＬ７セッション終端部１０５に渡す。
【０１５１】
送信パラメータ決定部１０４は、第一実施形態と同様に、ビットパターン「ＳＶ１」に対応するポート番号「１０００１」をサーバＬ７セッション終端部１０５に渡す。
【０１５２】
サーバＬ７セッション終端部１０５は、ＴＣＰのＳＹＮフレームの送信元ポート番号フィールドを送信パラメータ決定部１０４より通知された「１０００１」と設定する。さらに、サーバＬ７セッション終端部１０５は、ＴＣＰのＳＹＮフレームの宛先ＩＰアドレスを後段装置振分部１０６より通知された「６０．０．０．１」に設定し、当該フレームを送信する。これにより、後段装置振分部１０６が決定した仮想ＩＰアドレスを持つ後段装置３０が当該フレームを受信する。以降の動作は、第一実施形態と同様である。
【０１５３】
（動作フローの説明）
上記説明では、他の装置の動作と関連させて説明したが、ここでは、第三実施形態における前段装置１１の動作フローについて図１８を用いて説明する。後段装置３０については、第一実施形態と同様であるため説明を省略する。
【０１５４】
（（前段装置１１））
図１８は、第三実施形態における前段装置１１の動作を示すフローチャートである。
【０１５５】
前段装置１１がクライアント５０からＳＹＮフレームを受信してから、ポート番号を抽出するまでの動作フローは、第一実施形態と同様である（Ｓ１１−Ｓ１５及びＳ１７）。ポート番号が抽出されると共に、後段装置振分部１０６は、特定パターン抽出部１０２より渡されたビットパターンに基づき、転送先の後段装置を決定し、その後段装置のアドレスを取得する（Ｓ４１）。そして、サーバＬ７セッション終端部１０５は、決定されたポート番号を送信元ポート番号フィールドに設定したフレームを決定された後段装置に転送する（Ｓ１６、Ｓ１８及び１９）。その後の動作フローは、第一実施形態と同様である。
【０１５６】
〈第三実施形態の作用効果〉
第三実施形態における負荷分散システムでは、前段装置１１−１３の後段装置振分部１０６が特定パターン抽出部１０２により抽出されたパターンデータに基づき、転送すべき後段装置３０−３１を決定する。その後、前段装置１１−１３のサーバＬ７セッション終端部１０５により、送信元ポート番号が送信パラメータ決定部１０４によって決定されたポート番号に書き換えられ、当該決定された後段装置に送出される。
【０１５７】
従って、負荷分散を行うべきサーバが異なるネットワーク上に存在するような場合に、複数のネットワーク上に設置した後段装置に対しての、クライアントからの分散処理が可能となる。
【０１５８】
〔第一変形例〕
本発明の実施形態では、特定パターン抽出部１０２によって抽出されるビットパターン（例えば、「ＳＶ１」など）とフレームに付与する特定フィールド値（例えば、ポート番号）のマッピングルールが、あらかじめマッピングルール保持部１０３に記録されている（例えば、図７に示すマッピングルールテーブル）。
【０１５９】
〈第一変形例における機能構成〉
そこで、第一変形例における負荷分散システムでは、上記マッピングルールを動的に変更し得る構成とする。第一変形例における負荷分散システムでは、前段装置にマッピングルール変更部１０７（本発明の対応表変更部に相当）が新たに含まれる。それ以外の構成は、全て上記実施形態と同様である。
【０１６０】
図１９は、第一変形例における前段装置の機能構成を示す図である。
【０１６１】
マッピングルール変更部１０７は、他の端末もしくは後段装置から、ビットパターンと
特定フィールドの値の更新要求を受け付け、その受け付けた要求に基づきマッピングルール保持部１０３の内容を変更する。以降、送信パラメータ決定部１０４は、更新されたマッピングルール保持部１０３の情報を元に特定フィールド値（ポート番号）を決定する。
【０１６２】
〈第一変形例における動作例〉
上記実施形態の図７に示すマッピングルールテーブルにおいて、「ＳＶ３」のポート番号の範囲を「２０００１〜３００００」に変更する場合の第一変形例における負荷分散システムの動作について説明する。
【０１６３】
システム外の端末が、新しいマッピングルール「ビットパターンが「ＳＶ３」の場合のポート番号が２０００１〜３００００」という内容を示したデータを設定したフレームを、各前段装置１１−１３宛てにそれぞれ送信する。なお、システム外の端末ではなく、前段装置もしくは後段装置内部に上記機能を実装してもよい。
【０１６４】
前段装置１１−１３のマッピングルール変更部１０７は、上記フレームを受信すると、マッピングルール保持部１０３のビットパターン「ＳＶ３」のエントリを検索する。その結果得られたポート番号「１２００１〜１３０００」のデータを「２０００１〜３００００」に書き換える。
【０１６５】
上記動作により、マッピングルール保持部１０３のデータが書き換えられたため、抽出したビットパターンが「ＳＶ３」のフレームに関して、送信パラメータ決定部１０４は２０００１〜３００００の中から送信元ポート番号を選択することになる。
【０１６６】
〈第一変形例の作用効果〉
第一変形例における負荷分散システムでは、前段装置１１−１３のマッピングルール変更部１０７により、送信パラメータ決定部１０４がポート番号を決定する上で参照するマッピングルール保持部１０３のマッピングルールが変更される。
【０１６７】
これにより、振分先サーバを識別するための特定フィールド値（ポート番号）をフレキシブルに決定することができる。また、本負荷分散システムのさまざまな形態のネットワーク、例えば所定のポート番号を変更せざるを得ないようなネットワークへの適用が可能となる。
【０１６８】
〔第二変形例〕
本発明の実施形態において、特定パターン抽出部１０２がビットパターンを抽出する上で利用するマッチングルールは予め用意されている。例えば、特定パターン抽出部１０２は、Ｌ７データについて「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝“ｓｅｒｖｅｒＩＤ”」というビットパターンと照合を行うことで、“ｓｅｒｖｅｒＩＤ”部に設定されるビットパターンを抽出する。
【０１６９】
〈第二変形例における機能構成〉
そこで、第二変形例における負荷分散システムでは、上記マッチングルールを動的に変更し得る構成とする。第二変形例における負荷分散システムでは、前段装置にマッチングルール変更部１０８及びマッチングルール保持部１０９が新たに追加される。それ以外の構成は、全て上記実施形態と同様である。
【０１７０】
図２０は、第二変形例における前段装置の機能構成を示す図である。
【０１７１】
マッチングルール保持部１０９は、特定パターン抽出部１０２の照合におけるマッチングルールを保持する。つまり、特定パターン抽出部１０２は、このマッチングルール保持
部１０９の保持するマッチングルールを利用して、特定フィールド値を抽出する。
【０１７２】
マッチングルール変更部１０８は、特定パターン抽出における照合に利用するルールの更新要求を受け付け、マッチングルール保持部１０９の内容を変更する。以降、特定パターン抽出部１０２は、更新されたマッチングルール保持部１０９の情報を元に特定フィールド値（ポート番号）を抽出する。
【０１７３】
〈第二変形例における動作例〉
第二変形例では、マッチングルール保持部１０９にマッチングルールが設定されていない状態において、「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝“ｓｅｒｖｅｒＩＤ”」のルールをシステム外部の端末より追加する場合の第二変形例における負荷分散システムの動作について説明する。
【０１７４】
システム外の端末が、新しいマッチングルール「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝“ｓｅｒｖｅｒＩＤ”」を示すデータを設定したフレームを、各前段装置１１−１３宛てにそれぞれ送信する。なお、システム外の端末ではなく、前段装置１１−１３もしくは後段装置３０内部に上記機能を実装してもよい。
【０１７５】
前段装置１１−１３のマッチングルール変更部１０８は、上記フレームを受信すると、マッチングルール保持部１０９に、「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝“ｓｅｒｖｅｒＩＤ”」のデータを追加する。
【０１７６】
これにより、特定パターン抽出部１０２は上記マッチングルール「Ｃｏｏｋｉｅ：ｓｅｒｖｅｒ＝“ｓｅｒｖｅｒＩＤ”」を用いて、ビットパターンの抽出を行うことが可能となる。
【０１７７】
〈第二変形例の作用効果〉
第二変形例における負荷分散システムでは、前段装置１１−１３のマッチングルール変更部１０８により、特定パターン抽出部１０２が特定のビットパターンを抽出する上で判定するルールが変更される。
【０１７８】
これにより、Ｌ７データの抽出すべき特定パターンの変更が可能となり、さらには、複数の抽出ルールを作成し設定することが可能となる。よって、第二変形例における負荷分散システムは、フレキシブルな負荷分散ルールの適用を可能とし、高度な負荷分散を可能とする。
【０１７９】
〔第三変形例〕
本発明の実施形態では、前段装置のサーバＬ７セッション終端部１０５で設定されるのは、１つのフィールド（例えば、送信元ポート番号）である。それにより、後段装置の特定フィールド抽出部１３１で抽出されるのも１つの特定フィールドであり、Ｌ７振分先決定部１３３における振分先決定も１つのフィールドによって決定される。
【０１８０】
これについては、上記振分先を決定するための特定フィールドを複数用いるようにしてもよい。この場合、例えば、前段装置のサーバＬ７セッション終端部１０５で複数の特定フィールドに振分先決定要因となる情報を設定し、後段装置の特定フィールド抽出部１３１でそれら複数のフィールドに設定される情報を抽出し、Ｌ７振分先決定部１３３は、それら複数のフィールドに設置される情報を元に、振分先サーバを決定するようにする。
【０１８１】
この場合におけるＬ７振分ルール保持部１３２の持つ振分ルールテーブルの変形例を図２１に示す。図２１に示す振分ルールテーブルの変形例では、送信元ポート番号（フィー
ルド種別：ＳｒｃＰｏｒｔ）フィールドに「１０００１〜１１０００」が設定されており、または、送信元ＩＰアドレス（フィールド種別：ＳｒｃＩＰ）フィールドに「２０．０．０．１０」が設定されている場合に、振分先サーバとして「ＭＳ１」が選択されるという形で定義されている。つまり、振分先サーバを決定するのに、送信元ポート番号か送信元ＩＰアドレスのどちらかが利用されるようになる。
【０１８２】
〈第三変形例の作用効果〉
第三変形例における負荷分散システムでは、後段装置３０が振分の判断に利用する特定フィールドを複数利用することが可能となる。これにより、第三変形例における負荷分散システムは、高度な負荷分散を可能とする。
【０１８３】
[その他]
本実施形態は次の発明を開示する。各項に開示される発明は、必要に応じて可能な限り組み合わせることができる。
【０１８４】
（付記１）
同一アプリケーションを有する１以上のサーバとクライアントから構成され、前記クライアントとサーバ間でやりとりされる通信データが１以上のフレームに分割され送受信されるネットワークにおいて、前記クライアントが前記サーバへアプリケーションの提供を求める際に前記クライアントから送信される通信データを前記サーバのうちの１つへ中継する中継システムであって、
前記クライアントに接続される前段装置と前記１以上のサーバに接続される後段装置とを備え、
前記前段装置は、
前記クライアントより送信される前記フレームから前記通信データを取得する取得部と、
前記取得した通信データから所定のデータを抽出する抽出部と、
前記所定のデータに対応する所定のフィールドデータを決定する決定部と、
前記フレームに前記所定のフィールドデータを設定し、送信する送信部とを備え、
前記後段装置は、
前記前段装置により送信された前記フレームを受信し、その受信フレームから前記所定のフィールドデータを抽出する後段抽出部と、
前記後段装置に接続されるサーバの中から、前記抽出された所定のフィールドデータに対応する中継先サーバを決定する中継先決定部と、
前記前段装置からの前記受信フレームの宛先を、前記決定されたサーバの宛先に変更し、送信する送信先変更部とを備える中継システム。（１）
（付記２）
前記決定部は、前記取得した通信データから前記所定のデータを抽出できない場合に、所定の第２フィールドデータを決定し、
前記中継先決定部は、前記抽出された所定のフィールドデータが前記所定の第２フィールドデータであることを判別した場合には、前記後段装置に接続されるサーバの中から、所定のルールにより中継先サーバを決定する付記１記載の中継システム。（２）
（付記３）
前記後段装置は、
前記受信フレームが前記前段装置により送信されたものでない場合に、前記前段装置に当該受信したフレームを転送する転送部を備える付記１記載の中継システム。（３）
（付記４）
前記後段装置が複数存在する場合において、
前記前段装置は、
前記抽出部により抽出された前記所定のデータに基づき、前記複数の後段装置の中か
ら、転送先となる後段装置を選択する後段選択部を備え、
前記送信部は、前記フレームに前記所定のフィールドデータを設定すると共に、前記フレームの宛先を前記選択された後段装置の宛先に変更し、送信する付記１記載の中継システム。（４）
（付記５）
前記前段装置は、
前記所定のデータと前記所定のフィールドデータとの対応関係を示し、前記決定部により前記所定のフィールドデータを決定する際に参照される対応表を保持する対応表保持部と、
前記対応表の内容を変更する対応表変更部とを備える付記１記載の中継システム。（５）
（付記６）
前記前段装置は、
前記通信データから前記所定のデータを抽出するための抽出ルールであって、前記抽出部により前記所定のデータを抽出する際に参照される抽出ルールを保持する抽出ルール保持部と、
前記抽出ルールの内容を変更するルール変更部とを備える付記１記載の中継システム。
【０１８５】
（付記７）
前記決定部は、前記所定のデータに対応する複数の所定のフィールドデータを決定し、
前記送信部は、前記フレームに前記複数の所定のフィールドデータを設定、送信し、
前記後段抽出部は、前記受信フレームから前記複数の所定のフィールドデータを抽出し、
前記中継先決定部は、前記後段装置に接続されるサーバの中から、前記抽出された複数の所定のフィールドデータに対応する中継先サーバを決定する付記１記載の中継システム。
【０１８６】
（付記８）
同一アプリケーションを有する１以上のサーバとクライアントから構成され、前記クライアントとサーバ間でやりとりされる通信データが１以上のフレームに分割され送受信されるネットワークにおいて、前記クライアントが前記サーバへアプリケーションの提供を求める際に前記クライアントから送信される通信データを前記サーバのうちの１つへ中継するデータ中継方法において、
前記クライアントに接続される前段装置が、
前記クライアントより送信される前記フレームから前記通信データを取得するステップと、
前記取得した通信データから所定のデータを抽出するステップと、
前記所定のデータに対応する所定のフィールドデータを決定するステップと、
前記フレームに前記所定のフィールドデータを設定、送信するステップと、
前記１以上のサーバに接続される前記後段装置が、
前記前段装置により送信された前記フレームを受信し、その受信フレームから前記所定のフィールドデータを抽出するステップと、
前記後段装置に接続されるサーバの中から、前記抽出された所定のフィールドデータに対応する中継先サーバを決定するステップと、
前記前段装置からの前記受信フレームの宛先を、前記決定されたサーバの宛先に変更、送信するステップとを備えるデータ中継方法。
【図面の簡単な説明】
【０１８７】
【図１】実施形態における負荷分散システムの概要を示す図である。
【図２】前段装置をサーバネットワーク内に設置する場合の構成例を示す図である。
【図３】前段装置をバックボーンネットワーク内に設置する場合の構成例を示す図である。
【図４】前段装置をクライアントネットワーク内に設置する場合の構成例を示す図である。
【図５】第一実施形態におけるネットワーク構成を示す図である。
【図６】第一実施形態における前段装置の機能構成を示す図である。
【図７】マッピングルールテーブルを示す図である。
【図８】第一実施形態における後段装置の機能構成を示す図である。
【図９】振分ルールテーブルを示す図である。
【図１０】通信シーケンスを示す図である。
【図１１】第一実施形態における前段装置の動作フローを示す図である。
【図１２】第一実施形態における後段装置の動作フローを示す図である。
【図１３】第二実施形態におけるネットワーク構成を示す図である。
【図１４】第二実施形態における後段装置の機能構成を示す図である。
【図１５】第二実施形態における後段装置の動作フローを示す図である。
【図１６】第三実施形態におけるネットワーク構成を示す図である。
【図１７】第三実施形態における前段装置の機能構成を示す図である。
【図１８】第三実施形態における前段装置の動作フローを示す図である。
【図１９】第一変形例における前段装置の機能構成を示す図である。
【図２０】第二変形例における前段装置の機能構成を示す図である。
【図２１】Ｌ７振分ルールテーブルの変形例を示す図である。
【図２２】従来の負荷分散装置を示す図である。
【符号の説明】
【０１８８】
５０、５１、５２…クライアント
６０、６１、６２、６３、６４、６５…サーバ
１０、１１、１２、１３…前段装置
３０、３１…後段装置
１…送信データ
２、３、４、５、６、７…フレーム
８０…バックボーンネットワーク
８７、８８…サーバネットワーク
８１、８２、８３…クライアントネットワーク
１０１…クライアントＬ７セッション終端部
１０２…特定パターン抽出部
１０３…マッピングルール保持部
１０４…送信パラメータ決定部
１０５…サーバＬ７セッション終端部
１０６…後段装置振分部
１０７…マッピングルール変更部
１０８…マッチングルール変更部
１０９…マッチングルール保持部
１３１…特定フィールド抽出部
１３２…Ｌ７振分ルール保持部
１３３…Ｌ７振分ルール決定部
１３４…送信先変更部
１３５…振分ルール選択部
１３６…振分先決定部
１３７…前段装置転送部
【図１】
2006174374.tif 000003
【図２】
2006174374.tif 000004
【図３】
2006174374.tif 000005
【図４】
2006174374.tif 000006
【図５】
2006174374.tif 000007
【図６】
2006174374.tif 000008
【図７】
2006174374.tif 000009
【図８】
2006174374.tif 000010
【図９】
2006174374.tif 000011
【図１０】
2006174374.tif 000012
【図１１】
2006174374.tif 000013
【図１２】
2006174374.tif 000014
【図１３】
2006174374.tif 000015
【図１４】
2006174374.tif 000016
【図１５】
2006174374.tif 000017
【図１６】
2006174374.tif 000018
【図１７】
2006174374.tif 000019
【図１８】
2006174374.tif 000020
【図１９】
2006174374.tif 000021
【図２０】
2006174374.tif 000022
【図２１】
2006174374.tif 000023
【図２２】
2006174374.tif 000024