JP4398354B2 - 中継システム - Google Patents

中継システム Download PDF

Info

Publication number
JP4398354B2
JP4398354B2 JP2004367864A JP2004367864A JP4398354B2 JP 4398354 B2 JP4398354 B2 JP 4398354B2 JP 2004367864 A JP2004367864 A JP 2004367864A JP 2004367864 A JP2004367864 A JP 2004367864A JP 4398354 B2 JP4398354 B2 JP 4398354B2
Authority
JP
Japan
Prior art keywords
server
unit
frame
client
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004367864A
Other languages
English (en)
Other versions
JP2006174374A (ja
Inventor
一峰 的場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004367864A priority Critical patent/JP4398354B2/ja
Priority to US11/100,371 priority patent/US20060133371A1/en
Publication of JP2006174374A publication Critical patent/JP2006174374A/ja
Application granted granted Critical
Publication of JP4398354B2 publication Critical patent/JP4398354B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing

Description

本発明は、クライアント端末からサーバ装置へのアクセスを中継する中継システムに関する。
Webサーバに代表する各種アプリケーションを提供するサーバは、提供を求める複数のクライアントからのアクセスに対し、即座に応答することが求められる。しかし、サーバが同時に処理できるトランザクションには限界があり、それを超えたクライアントからのアクセスに対しては当然に応答が遅くなってしまう。そこで、現在、クライアントからサーバへのアクセスを中継する中継装置のうち、サーバへのトラヒック集中により重くなったサーバの負荷を軽減させるために、同一機能を持つサーバを複数台用意し、それらサーバへトラヒックを振り分ける負荷分散装置が用いられている(図22参照)。
負荷分散装置の重要な機能の一つとして、パーシステンス機能がある。クライアント・サーバ間の通信において、サーバが正常にクライアントのアクセスに対する処理を行うためには、同一のクライアントとのセッション内でやり取りされるデータを常に同一のサーバに処理させる必要がある。このために、負荷分散装置は、クライアント・サーバ間のアプリケーション層(以降、L7(Layer7)とする)でやりとりされるデータ中のセッションを示す識別子であるL7情報(例えばHTMLのクッキー(Cookie)やSSL−ID(Secure Socket Layer ― Identification)など)に基づいて、同一セッションのト
ラヒックを常に同一のサーバに振り分ける機能を持っている。これをパーシステンス機能と呼ぶ。以降の説明では、このパーシステンス機能による負荷分散をL7負荷分散と呼ぶ。また、上記のようなセッション情報を持たないトラヒックについては、パーシステンス機能は不要となる。この場合には、パーシステンス機能以外の負荷分散ルール、例えばサーバ負荷状況にもとづく負荷分散、ラウンドロビンによる振分などが行われる。
負荷分散装置がL7負荷分散を実現するためには、受信フレームからL7情報を取得する必要がある。しかし、クライアント・サーバ間でやりとりされるデータは、ネットワーク層における送信可能なサイズに分割され、複数のフレームとして送信されるため、L7情報は複数のフレームに跨っており、さらにフレーム上のどこにL7情報が設定されているかも特定できない。したがって、負荷分散装置は、1つのL7通信データの全フレームを検索しなければ、L7情報を取得することができない。そこで、L7負荷分散を実現するためには、上述した複数フレームに跨る全ペイロード検索機能がさらに必要になる。
さらに、クライアント・サーバ間における通信がTCP(Transmission Control Protocol)を用いて通信を行っている場合は、TCPコネクションの終端処理(コネクション
状態の管理)が必要となる。
このように、負荷分散装置はL7負荷分散を実現する上で、上記のような高負荷なパーシステンス機能を処理する必要がある。さらに、負荷分散装置は、そのよう高負荷な機能を複数のクライアントからの多くのトラヒックに対して行う必要がある。これにより、パーシステンス機能の高頻度な実行により、負荷分散装置のCPU(Central Processing Unit)処理負荷が高くなるという問題がある。この対策として、従来の負荷分散装置では
、クロック数向上、CPU並列化などCPU性能の向上が図られていた。しかし、CPU性能には限界があり(1Gigabit per second程度)、ネットワークの広帯域化(10 Gigabit
per secondが普及段階)により、負荷分散装置自身がエンドホスト間通信のボトルネッ
クとなる可能性がある。
なお、本願発明に係る先行技術文献としては、以下の文献に開示されたものがある。
特開2003−258856号公報 特開2004−158977号公報
本発明の目的は、クライアントからサーバへのアクセスに基づく単位時間当たりの通信データ量を増やすことができる中継システムを提供することである。
本発明は、上述した課題を解決するために以下の構成を採用する。即ち、本発明は、同一アプリケーションを有する1以上のサーバとクライアントから構成され、上記クライアントとサーバ間でやりとりされる通信データが1以上のフレームに分割され送受信されるネットワークにおいて、上記クライアントが上記サーバへアプリケーションの提供を求める際に上記クライアントから送信される通信データを上記サーバのうちの1つへ中継する中継システムであって、上記クライアントに接続される前段装置と上記1以上のサーバに接続される後段装置とを備え、上記前段装置は、上記クライアントより送信される上記フレームから上記通信データを取得する取得部と、上記取得した通信データから所定のデータを抽出する抽出部と、上記所定のデータに対応する所定のフィールドデータを決定する決定部と、上記フレームに上記所定のフィールドデータを設定し、送信する送信部とを備え、上記後段装置は、上記前段装置により送信された上記フレームを受信し、その受信フレームから上記所定のフィールドデータを抽出する後段抽出部と、上記後段装置に接続されるサーバの中から、上記抽出された所定のフィールドデータに対応する中継先サーバを決定する中継先決定部と、上記前段装置からの上記受信フレームの宛先を、上記決定されたサーバの宛先に変更し、送信する送信先変更部とを備える中継システムについてのものである。
本発明に係る中継システムでは、クライアントから1以上のフレームに分割され送出された通信データが、前段装置及び後段装置によって中継され、後段装置に接続される1以上のサーバのうち、これら前段装置及び後段装置によって中継先として決定されたサーバに送られる。
前段装置は、当該分割されたフレームから通信データを取得し、その通信データから所定のデータを抽出する。さらに、前段装置は、当該所定のデータに対応した所定のフィールドデータを決定する。続けて、前段装置は、当該通信データを送信するためのフレームであって、当該所定のフィールドデータを設定したフレームを送出する。
後段装置は、前段装置より送出された1以上のフレームを受信し、そのフレーム中の所定のフィールドデータを抽出する。そして、後段装置は、当該所定のフィールドデータに対応するサーバの宛先を決定する。後段装置は、受信フレームの宛先を当該宛先に変換し、送出する。
このように、本発明に係る中継システムでは、前段装置によって、通信データから所定のデータの抽出が行われ、その所定のデータに対応する所定のフィールドデータが当該フレームに設定され、後段装置に転送される。後段装置では、フレームの所定のフィールドデータを抽出することにより中継先サーバを決定する。
これにより、1以上のフレームを扱い、かつ、当該フレームから取得される通信データから所定のデータを抽出するという処理(前段装置)と、送信単位であるフレーム内にお
ける所定のフィールドデータを抽出することにより中継先サーバを決定するという処理(後段装置)とに、分割することができる。
従って、本発明によれば、当該前段装置と後段装置に分割し、処理負荷の高い前段機能を並列に設置可能とすることにより、中継システム全体として高速な中継処理を可能とする。
また、本発明は、上記中継システムにおいて、上記決定部は、上記取得した通信データから上記所定のデータを抽出できない場合に、所定の第2フィールドデータを決定し、上記中継先決定部は、上記抽出された所定のフィールドデータが上記所定の第2フィールドデータであることを判別した場合には、上記後段装置に接続されるサーバの中から、所定のルールにより中継先サーバを決定する。
本発明では、クライアントから送出された通信データ中に、所定のデータが存在しない場合においても、サーバへの中継を行うことができる。
また、本発明は、上記中継システムにおいて、上記後段装置は、上記受信フレームが上記前段装置により送信されたものでない場合に、上記前段装置に当該受信したフレームを転送する転送部を備える。
本発明では、前段装置を経由せず、後段装置が直接クライアントからの送信フレームを受信した場合でも、後段装置の転送部が当該フレームを前段装置に転送する。
これにより、本発明によれば、前段装置を通過しないクライアントからサーバへのアクセスに対しても、サーバへの中継を可能とする。
また、本発明は、上記中継システムで上記後段装置が複数存在する場合において、上記前段装置は、上記抽出部により抽出された上記所定のデータに基づき、上記複数の後段装置の中から、転送先となる後段装置を選択する後段選択部を備え、上記送信部は、上記フレームに上記所定のフィールドデータを設定すると共に、上記フレームの宛先を上記選択された後段装置の宛先に変更し、送信する。
本発明では、複数の後段装置を設置した場合においてもクライアントからのアクセスを適切に中継することができる。
また、本発明は、上記中継システムにおいて、上記前段装置は、上記所定のデータと上記所定のフィールドデータとの対応関係を示し、上記決定部により上記所定のフィールドデータを決定する際に参照される対応表を保持する対応表保持部と、上記対応表の内容を変更する対応表変更部とを備える。
本発明では、中継先サーバを決定するための所定のフィールドデータと所定のデータとの対応関係をフレキシブルに変更することができ、さまざまな形態のネットワークへの適用が可能となる。
なお、本発明は、以上の何れかの機能を実現させるプログラムであってもよい。また、本発明は、そのようなプログラムをコンピュータが読み取り可能な記憶媒体に記録してもよい。
本発明によれば、クライアントからサーバへのアクセスに基づく単位時間当たりの通信
データ量を増やすことができる中継システムを提供することができる。
以下、図面を参照して、本発明を実施するための最良の形態(以下、実施形態という)に係る負荷分散システムについて説明する。本実施形態は、本発明に係る中継システムのうち、クライアントからのアクセスによるサーバの負荷の増大を抑える負荷分散システムに関する例示である。また、実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
〔発明の実施形態の概要〕
本発明の実施形態を説明するにあたって、まず本発明の実施形態の概要について説明する。図1は、本発明の実施形態に係る負荷分散システムの概要説明図である。図1には、前段装置10と後段装置30とで構成される本発明の実施形態に係る負荷分散システム(以降、単に本負荷分散システムとする)が示されている。以下、本負荷分散システムの機能及びやりとりする通信データ等を説明する上で、OSI(Open Systems Interconnection)階層モデルに基づいて説明する。
本負荷分散システムでは、クライアント端末(以降、単にクライアントとする)50と前段装置10が接続され、サーバ装置(以降、単にサーバとする)60に後段装置30が接続されている。そして、この前段装置10と後段装置30とが接続され、本負荷分散システムを構成する。本負荷分散システムはアプリケーション層(以降、L7(Layer7)とする)における上記パーシステンス機能による負荷分散(以降、L7負荷分散と表記する)を実現する。なお、サーバ60はクライアント50に各種アプリケーションを提供しているものとする。
前段装置10は、クライアント50より送信される複数フレームから、所定のL7情報を抽出し、このL7情報に対応する識別情報を付加したフレームを後段装置30に転送する。後段装置30は、前段装置10より転送されるフレームの振り分け先、すなわち、負荷分散を行うサーバ60を識別情報に基づき決定する。このように、前段装置10及び後段装置30に分けることにより、本負荷分散システムは、L7情報抽出処理を行う前段装置10を複数用意することで、処理の重い前段装置10の1機能当たりの担当トラヒック量を削減し、多くのトラヒック量を処理する後段装置30では、負荷の軽い振り分け処理のみを行う。
ここで、前段装置10及び後段装置30の上記機能の概要を、図1の例を用いて説明する。図1は、クライアント50とサーバ60がクッキー(Cookie)を用いたHTTP(HyperText Transfer Protocol)による通信を行う場合の例を示している。ここで、Coo
kieとは、Webサーバとクライアントの間で暗黙的に情報交換するための仕組みであり、Webサーバの指示により、当該Webサーバにアクセスしたクライアントのコンピュータにデータを一時的に保存する仕組みである。ここでは、クライアント50にサーバ60を識別するための情報がCookieにより保存されている場合を例に挙げる。
クライアント50は、L7の送信データ1をHTTPによりサーバ60に送信する。ここで、送信データ1には、サーバ60を識別するためのCookie(Cookie=C1)が挿入されている。また、送信データ1は、ネットワーク層における送信可能なサイズに分割され、複数のフレーム(フレーム2及び3など)として送信される。
前段装置10は、当該フレーム2及び3などを受信すると、それらを合成し、L7の送信データ1を得る。前段装置10は、この送信データ1より、L7情報、例えば、Cookieの情報(C1)を取得する。そして、前段装置10は、このL7情報に対応する識別情報を、後段装置30に送信するフレームの特定フィールド(例えば、送信元ポート番
号フィールド)に設定する(図1に示すフレーム4及び5)。前段装置10は、予めL7情報と上記特定フィールドに設定すべき識別情報の対応ルールを決めている。
後段装置30は、前段装置10からの各受信フレーム(図1に示すフレーム4及び5)の上記特定フィールドの値のみを確認し、振り分けるべきサーバ60へ当該フレーム6及び7を転送する。すなわち、後段装置30は、複数のフレームから送信データ1を合成することなく、該当セッションに付与されているL7情報を識別することが可能となる。
上記のような構成により、本負荷分散システムは、前段装置10及び後段装置30を、さまざまなネットワーク形態に対応し、配置させることができる。図2は、前段装置をサーバネットワーク内に設置する構成例を示す図である。図2に示すネットワーク形態では、サーバ60−62が存在するネットワーク87上に前段装置10及び後段装置30が設置されている。3台の前段装置10は、バックボーンネットワーク80を介して、クライアントネットワークを構成する各クライアント50−52にそれぞれ接続されている。そして、各前段装置10はそれぞれ後段装置30に接続され、後段装置30はサーバ60−62に接続され、各サーバ60−62の負荷を分散させている。バックボーンネットワーク80とは、各拠点に構成されるネットワークを接続するための基幹ネットワークである。
また、図3は、前段装置をバックボーンネットワーク80内に配置する構成例を示す図である。図3では、3台の前段装置10がバックボーンネットワーク80内に配置され、各クライアント50−52とそれぞれ接続されている。そして、これら前段装置10は、それぞれサーバーネットワーク87に配置される後段装置30に接続される。
図4は、前段装置をクライアントネットワーク上に配置する構成例を示す図である。図4では、3台の前段装置10がそれぞれクライアントネットワーク81−83上に配置され、各クライアント50−52とそれぞれ接続されている。そして、これら前段装置10は、それぞれバックボーンネットワーク80を介して、サーバーネットワーク87上に配置される後段装置30に接続される。
〔第一実施形態〕
以下、図面を参照して、本発明の第一実施形態における負荷分散システムについて説明する。
〈システム構成〉
図5は、第一実施形態における負荷分散システムのネットワーク構成を示す図である。以下に、本実施形態のネットワーク構成について図5を用いて説明する。
図5に示すネットワーク構成では、クライアントネットワーク81−83とサーバネットワーク87とがバックボーンネットワーク80を介して接続され、全体でIP(Internet Protocol)ネットワークを構成している。各クライアントネットワーク81−83に
は、それぞれ各クライアント端末(以降、クライアントとする)50−52が含まれる。また、サーバネットワーク87には、各種アプリケーションを提供するサーバ端末(以降、サーバとする)60−62が含まれる。
第一実施形態における負荷分散システムは、クライアントネットワーク81−83のそれぞれに配置される前段装置11−13と、サーバネットワーク87に配置される後段装置30により構成される。第一実施形態における負荷分散システムは、先に説明した本発明の実施形態の概要による図2−4に示すネットワーク形態と同様に、前段装置3つと後段装置1つで構成される例である。各前段装置11−13は、それぞれ各クライアント50−52に接続され、後段装置30はサーバ60−62に接続されている。そして、本負荷分散システムは、前段装置11−13と後段装置30によって、サーバ60−62の負
荷分散を実現する。以降、前段装置11−13は全て同じものであるため、前段装置11を例に説明する。
なお、クライアント50は、IPアドレス(Internet Protocol Address)10.0.
0.1を持ち、サーバ60−62は、仮想IPアドレス50.0.0.1を持ち、サーバ60−62のMACアドレス(Media Access Control address)を、それぞれ「MS1」、「MS2」及び「MS3」とした場合について説明する。サーバ60−62が1つの仮想IPアドレスを持つのは、それらが負荷分散されているからであり、そのサーバ群にアクセスするクライアントにとっては、1つのサーバとして認識される。従って、各クライアント50−52は、サーバ60−62にアプリケーションの提供を求める場合には、1つの仮想IPアドレス50.0.0.1に対して要求することになる。
〈〈クライアント及びサーバ〉〉
サーバ60−62は、本発明に係る負荷分散システムにより、負荷分散されるサーバ群である。各サーバ60−62は、例示として、それぞれ同一のWebサーバであり、同一のHTMLコンテンツを提供するものとする。また、クライアント50−52は、アクセスすべきサーバ60−62が、本発明に係る負荷分散システムにより負荷分散されることにより、快適にサーバ群からHTMLコンテンツの提供を受ける端末である。
サーバ60−62とクライアント50−52とは、Cookieを用いたHTTPによる通信を行う。Cookieについては先に説明したとおりである。ここでは、サーバ60−62は、クライアント50−52からのアクセスに対して、サーバ60−62を示す「SV1」を設定したCookieを含めて、HTMLコンテンツを送信する。すなわち、サーバ60−62とクライアント50−52との間でやりとりされるL7データの中には、「SV1」の値を持つCookieが付与される。
〈〈前段装置11〉〉
前段装置11は、例えば、CPU(Central Processing Unit)、メモリ及び入出力イ
ンターフェースなどを備え、IP通信機能を持つ1つのブリッジ装置である。しかし、専用装置に限定されるものではなく、IP通信機能を持つ汎用的なコンピュータ上で動作する1つのアプリケーションであってもよい。第一実施形態における前段装置11は、IPアドレス20.0.0.1を持つブリッジ装置である。
前段装置11は、クライアント50がサーバ60−62にアクセスする際に送信されるデータを中継する機能である。そして、前段装置11は、概要にて説明したとおり、それぞれが接続されるクライアント端末より送信される複数フレームから、所定のL7情報を抽出し、このL7情報に対応する識別情報を送信元ポート番号フィールドに付加したフレームを後段装置30に転送する。第一実施形態における負荷分散システムにおいては、所定のL7情報として、Cookieの持つ「SV1」、「SV2」及び「SV3」が利用される。すなわち、前段装置11は、Cookieの持つサーバ60−62を示す値である「SV1」を、対応する識別情報に変換し、フレームに設定する。
また、前段装置11は、サーバ側(後段装置30)から受信するフレームについて、先に書き換えた送信元ポート番号を元の番号に戻して、クライアント50に送信する。このように、前段装置11は、複数のフレームを合成し、L7情報を抽出するという負荷の重い処理を担当する機能である。
〈〈後段装置30〉〉
後段装置30は、前段装置11と同様のH/W構成を持つ1つのブリッジ装置である。さらに後段装置30についても専用装置に限定されるものではなく、IP通信機能を持つ
汎用的なコンピュータ上で動作する1つのアプリケーションであってもよい。
後段装置30は、前段装置11より転送されるフレームの振り分け先、すなわち、負荷分散を行うサーバ60−62を、前段装置11が付加した識別情報に基づき決定する。後段装置30は、クライアント側(前段装置11)から受信したフレームの送信元ポート番号フィールドをチェックし、設定されている識別情報により、フレームの送信先MACアドレスを振り分け先サーバのアドレスに書き換えて送信する。また、後段装置30は、サーバ60−62から受信するフレームについては、通常のデータリンク層(以降、L2(Layer2)とする)における中継を行い、クライアント側に転送する。後段装置30は、前段装置11より転送されるフレームの所定の位置のデータをチェックすることにより、振り分け先サーバ60−62を決定するため、前段装置11と比べ、負荷の軽い処理を担当する機能である。
〈前段装置11の機能構成〉
次に、図5に示した前段装置11−13の機能構成について説明する。図6は、図5に示した第一実施形態における前段装置の機能ブロックを示す図である。図5に示す前段装置11−13は全て同一の機能構成を持つため、ここでは、そのうちの前段装置11を例に説明する。
前段装置11は、クライアントL7セッション終端部101(本発明の取得部に相当)、特定パターン抽出部102(本発明の抽出部に相当)、マッピングルール保持部103(本発明の対応表保持部に相当)、送信パラメータ決定部104(本発明の決定部に相当)、及びサーバL7セッション終端部105(本発明の送信部に相当)から構成される。以下、前段装置11の各構成要素について個別に説明する。
(クライアントL7セッション終端部101)
クライアントL7セッション終端部101は、クライアント50から送信される1以上のフレームを受信し、ひとかたまりのL7データを合成する。クライアント50のアプリケーション層の送信データ(L7データ)は、ネットワーク層における送信可能なサイズに分割され、複数のフレームとして送信されるため、クライアントL7セッション終端部101は、それらを合成する。そして、クライアントL7セッション終端部101は、合成されたL7データを特定パターン抽出部102及びサーバL7セッション終端部105に通知する。
(特定パターン抽出部102)
特定パターン抽出部102は、クライアントL7セッション終端部101により合成されたL7データを受け取り、特定のルールで照合を行い、マッチしたデータ(ビットパターン)を抽出する。ここでは、特定パターン抽出部102は、L7データのCookie中に、「Cookie:server=“serverID”」というビットパターンがあるか否かの判定を行い、当該ビットパターンがあった場合に、serverIDの部分に設定されているビットパターンを抽出する。そして、特定パターン抽出部102は、抽出したビットパターンを送信パラメータ決定部104に通知する。
なお、特定パターン抽出部102は、上記ビットパターンを抽出できない場合には、特定パターンがない旨の通知を送信パラメータ決定部104に通知する。この場合とは、クライアント50が当該特定パターンを付加しないで送信した場合であり、サーバ60−62がCookieをクライアント50に通知していない場合に相当する。すなわち、クライアント50が初めてサーバ60−62にアクセスした場合などがこの場合に相当する。
(マッピングルール保持部103)
マッピングルール保持部103は、特定パターン抽出部102が抽出したビットパターンと、それに対応する識別情報を保持する。マッピングルール保持部103は、図7に示すマッピングルールテーブルを持つ。すなわち、マッピングルール保持部103は、CookieのserverIDに設定されるビットパターン(例えば、図7に示すSV1)と、それに対応するポート番号の範囲データとの相対表を保持する。
(送信パラメータ決定部104)
送信パラメータ決定部104は、特定パターン抽出部102から渡されたビットパターンを元に、マッピングルール保持部103を検索し、後段装置30に送信するフレームに設定すべき、フィールド値を決定する。すなわち、送信パラメータ決定部104は、通知されたビットパターンに基づき、対応するポート番号を決定する。そして、送信パラメータ決定部104は、決定したフィールド値をサーバL7セッション終端部105に通知する。
送信パラメータ決定部104は、特定パターン抽出部102から特定パターンを抽出できなかった旨の通知を受けた場合には、特定パターンでない旨を示すフィールド値(ポート番号)を決定し、サーバL7セッション終端部105に通知する。
(サーバL7セッション終端部105)
サーバL7セッション終端部105は、送信パラメータ決定部104から通知されるフィールド値により、後段装置30に転送するフレームの送信元ポート番号フィールドの値を置き換え、当該フレームを後段装置30へ転送する。このとき、サーバL7セッション終端部105は、置き換える前の送信元ポート番号フィールドの値と、そのフレームの送信元であるクライアント50のIPアドレス、及び置き換え後のフィールド値を保持する。
そして、逆にサーバ60−62からクライアント50へ送信されるフレームを受信した場合には、サーバL7セッション終端部105は、保持している送信元のクライアント50のIPアドレスから、置き換える前のポート番号を取得し、この元のポート番号をフレームに設定し、クライアント50へ送信する。
〈後段装置30の機能構成〉
次に、図5に示した後段装置30における機能構成について説明する。図8は、図5に示した第一実施形態における後段装置の機能ブロックを示す図である。
後段装置30は、特定フィールド抽出部131(本発明の後段抽出部に相当)、L7振分ルール保持部132、L7振分先決定部133(本発明の中継先決定部に相当)、送信先変更部134(本発明の送信先変更部に相当)、振分ルール選択部135、及び振分先決定部136から構成される。以下、後段装置30の各構成要素について個別に説明する。
(特定フィールド抽出部131)
特定フィールド抽出部131は、前段装置11から転送されるフレームを受信し、前段装置11により付与された識別情報が設定されている箇所(特定フィールド)の値を取得する。ここでは、フレーム内の送信元ポート番号フィールドの値が取得される。特定フィールド抽出部131は、取得したフィールド値を振分ルール選択部135に通知する。また、特定フィールド抽出部131は、受信したフレームをそのまま送信先変更部134に転送する。
(振分ルール選択部135)
振分ルール選択部135は、特定フィールド抽出部131から通知される上記特定フィールドの値をもとに、L7負荷分散処理を行うか、それ以外のルールを用いるかを決定する。つまり、振分ルール選択部135は、上記特定フィールド値が特定パターンを抽出できなかったことを示すポート番号となっていた場合には、新たな負荷分散が要求されるため、L7負荷分散以外のルールを用いることを決定する。そして振分ルール選択部135は、上記決定に応じて、L7負荷分散処理であれば、L7振分先決定部133に特定フィールド値であるポート番号を通知し、L7負荷分散以外のルールを用いる必要がある場合であれば、振分先決定部136にその旨のポート番号を通知する。後段装置によるL7負荷分散処理とは、特定フィールドに設定されるポート番号を元に、ポート番号に対応するサーバに受信フレームを振り分ける処理をいう。一方、L7負荷分散以外のルールについては、振分先決定部136の機能として以下に説明する。
(L7振分ルール保持部132)
L7振分ルール保持部132は、特定フィールド抽出部131が抽出したポート番号と、それに対応する振分先サーバのアドレス情報を保持する。L7振分ルール保持部132は、図9に示す振分ルールテーブルを持つ。すなわち、L7振分ルール保持部132は、前段装置11により付加されるポート番号と、それに対応する振分先サーバのMACアドレスとの相対表を保持する。
(L7振分先決定部133)
L7振分先決定部133は、振分ルール選択部135より通知された特定フィールド値を元に、L7振分ルール保持部132を検索し、振分先サーバを決定する。すなわち、L7振分先決定部133は通知されたポート番号に基づき、対応する振分先サーバのMACアドレスを決定する。そして、L7振分先決定部133は、決定した振分先サーバのMACアドレスを送信先変更部134に通知する。
(振分先決定部136)
振分先決定部136は、振分ルール選択部135よりL7負荷分散以外のルールを用いる必要がある場合のポート番号を通知されると、所定のルールを元に振分先サーバを決定する。所定のルールとは、例えば、ラウンドロビンによる決定方法などがある。ここでは、振分先決定部136は、負荷分散すべき各サーバ60―62のCPU負荷を常時監視し、その決定時点で最も負荷の軽いサーバを振分先サーバとして決定し、そのサーバのMACアドレスを送信先変更部134に通知する。
(送信先変更部134)
送信先変更部134は、特定フィールド抽出部131より転送されるフレームの送信先MACアドレスを、L7振分先決定部133、または振分先決定部136より通知された振分先サーバのMACアドレスに書き換え、決定された振分サーバに送信する。
〈動作例〉
次に、第一実施形態における負荷分散システムの動作について説明する。
まず、図5に示すネットワーク構成において、クライアント50がサーバ群60−62にHTMLコンテンツの提供を要求する場合の上記各構成要素の動作について図10を用いて説明する。図10は、第一実施形態における通信シーケンスを示す図である。説明は、図10に示す第1の通信フェーズと第2の通信フェーズに分け行う。
まず、第1の通信フェーズは、クライアント50がCookieのないHTTPリクエストをサーバ群60−62に送信し、それに対して、サーバ群60−62がCookieを付与してHTTPリプライをクライアント50に返信するというフェーズである。これは、クライアント50が初めてサーバ群60−62にアクセスする場合に行われる手順で
ある。また、第1の通信フェーズは、サーバがCookieをサポートしない場合などにも実行される。
第2の通信フェーズは、第1の通信フェーズによりクライアント50内にCookieが記憶された後の通信フェーズである。つまり、第2の通信フェーズは、クライアント50が上記Cookieを付与してHTTPリクエストをサーバ群60−62に送信し、サーバがCookieを付与してHTTPリプライをクライアント50に返信するという手順である。なお、上記第1の通信フェーズと第2の通信フェーズは続けて行われることもあるが、この間一度TCPコネクションが切断されるものとする。
〈〈第1の通信フェーズ〉〉
クライアント50は、仮想IPアドレス「50.0.0.1」宛てに、送信元ポート番号を「4000」と設定したTCPのSYNパケットを送信する。SYNパケットは、一般にクライアントとサーバとの間のTCPコネクションを作成する上で使用されるパケットである。このようにTCPコネクションが作成される理由は、HTTPによるクライアント(Webブラウザ)とWebサーバとの間の通信がトランスポート層(L4)の提供する仮想的な通信回線(ポート)を利用して行われるためである。
前段装置11のクライアントL7セッション終端部101は、クライアント50より送信されるTCPのSYNパケットを受信すると、クライアント50との間でTCPコネクションの作成を行う。
次に、クライアント50は、作成されたTCPコネクションを使用して、Cookieを含まないHTTPのリクエストを仮想IPアドレス「50.0.0.1」宛てに送信する。
次に、前段装置11のクライアントL7セッション終端部101は、上記クライアント50が送信した全フレームを受信すると、HTTPリクエスト(L7データ)を抽出し、フレームのヘッダ情報と共にサーバL7セッション終端部105に渡す。また、上記HTTPリクエストを特定パターン抽出部102に渡す。
特定パターン抽出部102は、クライアントL7セッション終端部11より受け取ったHTTPリクエストをチェックし、特定のビットパターンの照合を行う。この場合、HTTPリクエスト内にCookieが存在しないため、特定パターン抽出部102は、ビットパターンを抽出できなかったことを送信パラメータ決定部104に通知する。
送信パラメータ決定部104は、特定パターンを抽出できない旨の通知がされると、ポート番号をこの場合「15001」と決定し、サーバL7セッション終端部105に渡す。このポート番号「15001」は、特定パターンの抽出ができなかったことを示す番号として予め決められた番号である。
サーバL7セッション終端部105は、送信パラメータ決定部104より通知されたポート番号「15001」を、TCPのSYNパケットの送信元ポート番号に設定し、仮想IPアドレス「50.0.0.1」宛てに送信する。このとき、サーバL7セッション終端部105は、当該TCPのSYNパケットに設定されている送信元のIPアドレス「10.0.0.1」と、当該パケットに設定されていた置き換えた後の送信元ポート番号「4000」と、置き換えたポート番号「15001」を保存する。
次に、前段装置によって送信元ポート番号が置き換えられたフレームは、後段装置30によって受信される。後段装置30の特定フィールド抽出部131は、受信したフレーム
の送信元ポート番号フィールドに設定されている値「15001」を抽出し、振分ルール選択部135に通知する。
振分ルール選択部135は、特定フィールド抽出部131より通知されたポート番号が特定パターンの抽出ができなかった旨を示す番号であることを確認すると、振分先決定部136に振分のリクエスト信号を送る。
振分先決定部136は、各サーバ60−62のCPU負荷状況をもとに振分先サーバをサーバ60に決定し、サーバ60のMACアドレス「MS1」を送信先変更部134に渡す。
送信先変更部134は、特定フィールド抽出部131から転送された受信フレームの送信先MACアドレスを、振分先決定部136から通知されたアドレス「MS1」に書き換えてサーバ側に転送する。
サーバ60は、後段装置30より送信されたTCPのSYNフレームを受信すると、その応答フレームとして、SYN+ACKフレームを返信する。後段装置30はサーバ60から上記フレームを受信すると、そのままクライアント側(前段装置11)に転送する。
そして、前段装置11のサーバL7セッション終端部105は上記SYN+ACKフレームを受信すると、ACKフレームをサーバ60に返信する。これにより、サーバ60と前段装置11との間にTCPコネクションが作成される。
前段装置11のサーバL7セッション終端部105は、サーバ60との間にTCPコネクションを確立すると、当該TCPコネクションを利用して、先にクライアント50から受信していたHTTPリクエストをサーバ60に転送する。以降、HTTPリクエストフレームを受信した後段装置30の処理は、上述したTCPコネクション作成時の処理と同様のため、説明を省略する。
次に、Cookieを付与しないクライアント50からのHTTPリクエストに対し、サーバ60がCookieをクライアント50へ保存させるためのHTTPリプライを送信する通信手順が始まる。
サーバ60は、「Cookie:server=SV1」というデータを持つCookieを付与したHTTPリプライを、送信先ポート番号「15001」として、前段装置11「20.0.0.1」宛てに送信する。
後段装置30は、サーバ60から上記HTTPリプライフレームを受信すると、そのままクライアント側(前段装置11)に転送する。
前段装置11のサーバL7セッション終端部105は、上記HTTPリプライフレームを受信すると、そのHTTPリプライフレームと先に保存した送信元ポート番号「4000」とをクライアントL7セッション終端部101に渡す。
クライアントL7セッション終端部101は、上記HTTPリプライフレームの送信先ポート番号を、元のポート番号「4000」に置き換え、クライアント50「10.0.0.1」宛てに送信する。
このHTTPリプライフレームを受信したクライアント50は、「Cookie:server=SV1」というCookieを自身のメモリに記録する。これにより、クライ
アント50は、以降のサーバ60との通信において、このCookieが暗黙的に付与されたL7データを送信することになる。
〈〈第2の通信フェーズ〉〉
第2の通信フェーズは、Cookieが記録された状態でクライアント50がサーバ60にHTMLコンテンツを要求するフェーズである。この場合も第1の通信フェーズと同様にまず、クライアント50は、仮想IPアドレス「50.0.0.1」宛てに、送信元ポート番号を「4001」と設定したTCPのSYNパケットを送信し、前段装置11のクライアントL7セッション終端部101との間に、TCPコネクションを作成する。
クライアント50は、上記TCPコネクションを利用して、「Cookie:server=SV1」というデータを持つCookieを含んだHTTPのリクエストを、仮想サーバ「50.0.0.1」宛てに送信する。
前段装置11のクライアントL7セッション終端部101は、上記HTTPリクエストの全フレームを受信すると、HTTPリクエストのデータをフレームから抽出し、フレームのヘッダ情報と共にサーバL7セッション終端部105に渡す。また、クライアントL7セッション終端部101は、上記HTTPリクエストを特定パターン抽出部102に渡す。
特定パターン抽出部102は、受け取ったHTTPリクエストからserverIDに係るビットパターン「SV1」を抽出し、抽出したビットパターン「SV1」を送信パラメータ決定部104に渡す。
送信パラメータ決定部104は、ビットパターン「SV1」に対応するポート番号をマッピングルール保持部103より検索する。この場合、図7に示すように、該当するポート番号は「10001―11000」であるため、その範囲内のポート番号を決定する。ここでは、送信パラメータ決定部104は、ポート番号を「10001」と決定し、サーバL7セッション終端部105に渡す。
サーバL7セッション終端部105は、TCPのSYNフレームを送信元ポート番号「10001」と設定し、仮想サーバ「50.0.0.1」宛てに送信する。
次に、前段装置11によって送信元ポート番号が置き換えられたTCPのSYNフレームは、後段装置30により受信される。後段装置30の特定フィールド抽出部131は、受信したフレームの送信元ポート番号フィールドに設定される値を抽出する。そして、特定フィールド抽出部131は、送信元ポート番号「10001」を振分ルール選択部135に渡す。
振分ルール選択部135は、特定フィールド抽出部131から通知されたポート番号を判別し、ポート番号「10001」がL7負荷分散を行うべき識別番号であると判別し、L7振分先決定部133に上記ポート番号「10001」を渡す。
L7振分先決定部133は、上記ポート番号に対応する振分先サーバをL7振分ルール保持部132から読み出す。ここでは、L7振分先決定部133は、図9に示すテーブルにより、「10001」のポート番号に対応する振分先サーバのアドレスとして「MS1」を取得する。そして、L7振分先決定部133は、取得した振分先サーバのアドレス「MS1」を送信先変更部134に渡す。
送信先変更部134は、特定フィールド抽出部131から転送される受信フレーム(T
CPのSYNフレーム)の送信先MACアドレスを、L7振分先決定部133により通知された上記アドレス「MS1」に書き換え、サーバ側に転送する。
サーバ60は、TCPのSYNフレームを受信すると、その応答フレームであるSYN+ACKフレームをクライアント側へ返信する。
後段装置30はサーバ60から上記フレームを受信すると、そのままクライアント側に転送する。前段装置11のサーバL7セッション終端部105は上記SYN+ACKフレームを受信すると、ACKフレームをサーバ60に返信する。つまり、前段装置11のサーバL7セッション終端部105は、サーバ60との間にTCPコネクションを作成する。そして、前段装置11のサーバL7セッション終端部105は、当該TCPコネクションを利用して、先にクライアント50より受信していたHTTPリクエストをサーバ60に転送する。
以降、HTTPリクエストフレームを受信した後段装置30の処理は、上述したTCPコネクション作成時の処理と同様のため、説明を省略する。
(動作フローの説明)
上記の説明では、通信シーケンスに従って他の装置の動作と関連させ、第一実施形態における負荷分散システムの各機能構成の動作を説明したが、ここでは、前段装置11及び後段装置30のそれぞれの動作について図11及び12を用いて説明する。
((前段装置11))
図11は、第一実施形態における前段装置11の動作を示すフローチャートである。
前段装置11のクライアントL7セッション終端部101は、クライアント50からSYNフレームを受信すると、クライアント50との間にTCPコネクションを作成する(S11)。次に、クライアントL7セッション終端部101は、当該TCPコネクションを使ってクライアント50から送信されるHTTPリクエストフレームを受信し(S12)、当該フレームからHTTPリクエストデータを取得する(S13)。
前段装置の特定パターン抽出部102は、当該HTTPリクエストデータを受けると、そのデータの中から特定のビットパターンの抽出を試みる(S14)。次に、特定のビットパターン(例えば「SV1」)が抽出されると(S14;YES)、前段装置の送信パラメータ決定部104が、そのビットパターンに対応するポート番号を決定する(S15)。一方、特定のビットパターンが抽出されなかった場合には(S14;NO)、前段装置の送信パラメータ決定部104は、抽出不可を示すポート番号を決定する(S17)。
そして、前段装置11のサーバL7セッション終端部105は、決定されたポート番号をSYNフレームの送信元ポート番号フィールドに設定し、後段装置30方向へ送信する。これにより、サーバ60と前段装置11のサーバL7セッション終端部105との間にTCPコネクションが作成される(S18)。このTCPコネクションを使って、前段装置11のサーバL7セッション終端部105は、先に受信したHTTPリクエストフレームであって、送信元ポート番号を先に決定したポート番号に変更したフレームを、後段装置30方向へ送信する(S19)。
((後段装置30))
図12は、第一実施形態における後段装置30の動作を示すフローチャートである。
後段装置30の特定フィールド抽出部131は、前段装置11が送信したフレームを受
信すると(S21)、当該フレームの送信元ポート番号フィールドの値を抽出する(S22)。後段装置30の振分ルール選択部135は、当該ポート番号がL7負荷分散を行うためのものか否かを判定する(S23)。これにより、当該ポート番号がL7負荷分散を行うための番号であれば(S23;YES)、L7振分先決定部133は、L7振分ルール保持部132のテーブルから当該ポート番号に対応する振分先サーバのアドレスを決定する(S24)。一方、当該ポート番号がL7負荷分散以外の番号であった場合(S23;NO)には、振分先決定部136は、その時に一番CPU負荷が軽いと判断したサーバを振分先サーバとして選択し、そのサーバのアドレスを取得する(S25)。そして、送信先変更部134が、決定された振分先サーバのアドレスにより送信すべきフレームのアドレスを書き換え、サーバ60−62方向へ送信する(S26)。
〈第一実施形態の作用効果〉
第一実施形態における負荷分散システムでは、クライアントから送出されたアプリケーション層(L7)のデータであって1以上のフレームに分割され送出された通信データが前段装置11−13及び後段装置30を中継し、これら前段装置及び後段装置によって振分先として決定されたサーバ60−62の1つに送られる。
このようなサーバ負荷分散を実現するために、前段装置11−13のクライアントL7セッション終端部101は、当該分割されたフレームを全て受信し、その中からL7データを取得する。前段装置11−13の特定パターン抽出部102は、当該L7データ中に埋め込まれる送信先を示す特定パターン(Cookie中のデータ)を抽出する。前段装置11−13の送信パラメータ決定部104は、当該特定パターンに対応したポート番号を決定する。前段装置11−13のサーバL7セッション終端部105は、当該L7データを送信するためのフレームであって、当該ポート番号を送信元ポート番号としたフレームを後段装置30方向へ送出する。
続いて、後段装置30の特定フィールド抽出部131は、前段装置11−13より送出された1以上のフレームを受信し、そのフレーム中の送信元ポート番号に設定されている値を抽出する。後段装置30のL7振分ルール決定部133は、当該送信元ポート番号の値に対応するサーバ60−62のアドレスを決定する。後段装置30の送信先変更部134は、特定フィールド抽出部131によって受信されたフレームの送信先アドレスを当該アドレスに変換し、サーバ60−62方向へ送出する。
このように、第一実施形態における負荷分散システムでは、複数の前段装置11−13によって、L7データからの送信先を示す特定パターンの抽出が行われ、その特定パターンに対応する識別番号(ポート番号)が当該フレームに設定され、後段装置30に転送される。後段装置30では、フレームの識別番号をチェックすることにより振分先サーバを決定する。
これにより、1以上のフレームを扱い、かつ、当該フレームにおいてデータ位置が不定である特定パターンをチェックするという負荷の重い処理を複数の前段装置11−13に分割することができ、後段装置30は、送信単位であるフレーム内における所定の箇所のデータをチェックすることにより振分先サーバを決定することができる。
すなわち、第一実施形態における負荷分散システムでは、高負荷な処理を前段装置に移し、ネットワーク上に複数設置可能とすることにより、高速な負荷分散処理を可能とする。さらに、広帯域のネットワークにおける負荷分散処理の高速化を図ることができる。
〔第二実施形態〕
以下、図面を参照して、本発明の第二実施形態における負荷分散システムについて説明
する。
〈システム構成〉
図13は、第二実施形態における負荷分散システムのネットワーク構成を示す図である。第一実施形態におけるネットワーク構成では、図5に示すように、各クライアント50−52がサーバ群60−62にアクセスする場合には、必ず、各前段装置11−13を中継し、後段装置30にフレームが送信されることで負荷分散が実現されていた。第二実施形態では、第一実施形態におけるネットワーク構成に換わり、クライアントネットワーク81内にあった前段装置11が、サーバネットワーク87内に配置される。すなわち、第二実施形態における負荷分散システムは、クライアント50からサーバ群60−62へのアクセスにおいて、直接、クライアント50から後段装置30にデータが送信された場合に対応し得る構成となる。
以下、各機能構成において第一実施形態と異なる構成についてのみ説明する。
〈後段装置30の機能構成〉
図13に示した後段装置30における機能構成について説明する。図14は、図13に示した第二実施形態における後段装置の機能ブロックを示す図である。
後段装置30は、第一実施形態における構成要素に加え、前段装置転送部137(本発明の転送部に相当)を含む。その他の各構成要素は、第一実施形態における構成要素と同様であるため、説明を省略する。以下、新たに追加された前段装置転送部137について説明する。
(前段装置転送部137)
前段装置転送部137は、受信フレームが特定の送信元アドレスから送信されたフレームではない場合、前段装置11に当該受信フレームを転送する。つまり、前段装置転送部137は、クライアント50から送信されるフレームを直接受信した場合に、前段装置11に転送する。
〈動作例〉
次に、第二実施形態における負荷分散システムの動作について説明する。
以下に、図13に示すネットワーク構成において、クライアント50がサーバ群60−62にHTMLコンテンツの提供を要求する場合の上記各構成要素の動作について説明する。通信シーケンスは、第一実施形態と同様であるので、第1の通信フェーズ及び第2の通信フェーズに分け、以下に説明する。
〈〈第1の通信フェーズ〉〉
クライアント50は、仮想サーバ「50.0.0.1」宛てに、送信元ポート番号を「4000」と設定したTCPのSYNフレームを送信する。
後段装置30の前段装置転送部137は、上記TCPのSYNフレームを受信すると、当該フレームの送信元IPアドレスをチェックする。この場合クライアント50から送信されたフレームを直接受信しているため、当該フレームの送信元IPアドレスはクライアント50のIPアドレス「10.0.0.1」となっている。前段装置転送部137は、送信元IPアドレスが前段装置のIPアドレス「20.0.0.1」でないと判断すると、当該フレームの送信先MACアドレスを前段装置11の「MP1」に書き換え、クライアント側に送信する。
そして、前段装置11のクライアントL7セッション終端部101が転送されたTCPのSYNフレームを受信すると、以降、第一実施形態の場合と同様の処理が行われる。
〈〈第2の通信フェーズ〉〉
第二実施形態における負荷分散システムは、第2の通信フェーズについても第1の通信フェーズの場合と同様に動作する。クライアント50が仮想サーバ「50.0.0.1」宛てのTCPのSYNパケットを送信すると、そのフレームを受信した後段装置30の前段装置転送部137は、それらを前段装置11に転送する。そして、前段装置11のクライアントL7セッション終端部101とクライアント50との間に、TCPコネクションを作成する。以降、クライアント50が送信するHTTPリクエストについても同様である。
(動作フローの説明)
上記説明では、他の装置の動作と関連させて説明したが、ここでは、第二実施形態における後段装置30の動作フローについて図15を用いて説明する。前段装置11については、第一実施形態と同様であるため説明を省略する。
((後段装置30))
図15は、第二実施形態における後段装置30の動作を示すフローチャートである。
後段装置30の前段装置転送部137は、フレームを受信すると(S31)、当該フレームの送信元が前段装置であるか否かを判別する(S32)。結果、送信元が前段装置であれば(S32;YES)、後の処理は第一実施形態と同様である(S22−26)。一方、送信元が前段装置でなかった場合には(S32;NO)、後段装置30の前段装置転送部137は前段装置に転送する(S33)。転送後は、前段装置11、後段装置30と転送され第一実施形態と同様に処理される。
〈第二実施形態の作用効果〉
第二実施形態における負荷分散システムでは、前段装置11を経由せず、後段装置30が直接クライアントからの送信フレームを受信した場合に、後段装置30の前段装置転送部137により前段装置11に転送される。
これにより、第二実施形態における負荷分散システムでは、前段装置を通過しないネットワークからのアクセスに対しても、L7負荷分散機能を実現することができる。
〔第三実施形態〕
以下、図面を参照して、本発明の第三実施形態における負荷分散システムについて説明する。
〈システム構成〉
図16は、第三実施形態における負荷分散システムのネットワーク構成を示す図である。第一実施形態におけるネットワーク構成では、図5に示すように、各クライアント50−52がアクセスするサーバ群60−62は、1つのサーバネットワーク87に配置されていた。第三実施形態では、第一実施形態におけるネットワーク構成に加えて、サーバネットワーク88がさらに接続され、そのネットワーク内にサーバ群63−65が配置される。
そして、第三実施形態における負荷分散システムは、第一実施形態における構成に加えて、新たなサーバ群63−65の負荷分散を行う後段装置31を含む。すなわち、第三実施形態における負荷分散システムは、負荷分散すべきサーバが複数のサーバネットワーク
に分かれているような場合に対応し得る構成となる。第三実施形態におけるネットワーク構成において、サーバ60−65の全サーバを示す仮想IPアドレスを50.0.0.1とし、後段装置30配下にあるサーバ60−62を示す仮想IPアドレスを60.0.0.1とし、後段装置31配下にあるサーバ63−65を示す仮想IPアドレスを70.0.0.1とする。
各機能構成において第一実施形態と異なる構成についてのみ、以下に説明する。
〈前段装置11の機能構成〉
図16に示した前段装置11における機能構成について説明する。図17は、図16に示した第三実施形態における負荷分散システムの前段装置における機能ブロックを示す図である。
前段装置11は、第一実施形態における構成要素に加え、後段装置振分部106(本発明の後段選択部に相当)を含む。その他の各構成要素は、第一実施形態における構成要素と同様であるため、説明を省略する。以下、第一実施形態とは異なる構成についてのみ、説明する。また、後段装置30及び31は同様のものであるため、以下の説明では、後段装置30について説明するものとする。
(特定パターン抽出部102)
特定パターン抽出部102は、抽出したビットパターンを送信パラメータ決定部104とともに後段装置振分部106に通知する。ビットパターンを抽出できない場合においても、特定パターン抽出部102は、特定パターンがない旨の通知を送信パラメータ決定部104とともに後段装置振分部106に通知する。
(後段装置振分部106)
後段装置振分部106は、特定パターン抽出部102から渡されたビットパターンを元に、転送先の後段装置を複数の後段装置の中から選択する。そして、後段装置振分部106は、選択した後段装置に該当する仮想IPアドレスをサーバL7セッション終端部105に渡す。ここでは、後段装置振分部106は、ビットパターンが「SV1」、「SV2」、「SV3」の場合は後段装置30の仮想IPアドレス「60.0.0.1」を決定し、ビットパターンが「SV4」、「SV5」、「SV6」の場合は後段装置31の仮想IPアドレス「70.0.0.1」を決定する。
また、特定パターン抽出部102から特定パターンがない旨の通知を受けた場合に、後段装置振分部106は、別のルール(例えばラウンドロビンなど)を利用して転送先の後段装置を選択し、選択した後段装置のアドレスをサーバL7セッション終端部105に渡す。
(サーバL7セッション終端部105)
サーバL7セッション終端部105は、送信パラメータ決定部104から通知されるフィールド値により、転送するフレームの送信元ポート番号フィールドの値を置き換える。さらに、サーバL7セッション終端部105は、後段装置振分部106から通知される転送先後段装置の仮想IPアドレスにより、転送するフレームの送信先アドレスを書き換え、当該フレームを後段装置へ転送する。
〈動作例〉
次に、第三実施形態における負荷分散システムの動作について説明する。
以下に、図16に示すネットワーク構成において、クライアント50がサーバ群60−
62にHTMLコンテンツの提供を要求する場合の上記各構成要素の動作について説明する。通信シーケンスは、第一実施形態と同様であるので、第1の通信フェーズ及び第2の通信フェーズに分け、以下に説明する。
〈〈第1の通信手順〉〉
前段装置11のクライアントL7セッション終端部101が、クライアント50の送信するHTTPリクエストを受信フレームから抽出し、そのHTTPリクエストを特定パターン抽出部102に渡すところまでは、第一実施例の場合の動作と同様である。
特定パターン抽出部102は、クライアントL7セッション終端部101より受け取ったHTTPリクエストをチェックし、この場合、Cookieが存在しないため、ビットパターンを抽出できなかったことを送信パラメータ決定部104及び後段装置振分部106に通知する。
後段装置振分部106は、特定パターンの抽出ができないことを通知されると、例えば、ラウンドロビンにより後段装置30か後段装置31かを決定する。後段装置振分部106は、決定した後段装置30の仮想IPアドレス「60.0.0.1」をサーバL7セッション終端部105に渡す。
送信パラメータ決定部104は、第一実施形態と同様に、ポート番号「15001」をサーバL7セッション終端部105に渡す。
サーバL7セッション終端部105は、送信パラメータ決定部104より通知されたポート番号「15001」をTCPのSYNパケットの送信元ポート番号に、後段装置振分部106より通知された仮想IPアドレス「60.0.0.1」を送信先IPアドレスに置き換え送信する。このとき、サーバL7セッション終端部105は、当該TCPのSYNパケットに設定されている送信元のIPアドレス「10.0.0.1」と、置き換える前に当該パケットに設定されている送信元ポート番号「4000」と、置き換えたポート番号「15001」を保存しておく。これにより、後段装置振分部106が決定した仮想IPアドレスを持つ後段装置30が当該フレームを受信する。以降の動作は、第一実施形態と同様である。
〈〈第2の通信手順〉〉
第2の通信手順は、Cookieが記録された状態でクライアント50がサーバ60にHTMLコンテンツを要求するフェーズである。この場合も、前段装置11のクライアントL7セッション終端部101が、クライアント50の送信するHTTPリクエストを受信フレームから抽出し、そのHTTPリクエストを特定パターン抽出部102に渡すところまでは、第一実施例の場合の動作と同様である。
特定パターン抽出部102は、受け取ったHTTPリクエストからserverIDに係るビットパターン「SV1」を抽出し、抽出したビットパターン「SV1」を送信パラメータ決定部104及び後段装置振分部106に渡す。
後段装置振分部106は、ビットパターン「SV1」を通知されると、ビットパターン「SV1」に対応する後段装置30の仮想IPアドレス「60.0.0.1」を決定する。後段装置振分部106は、決定した後段装置30の仮想IPアドレス「60.0.0.1」をサーバL7セッション終端部105に渡す。
送信パラメータ決定部104は、第一実施形態と同様に、ビットパターン「SV1」に対応するポート番号「10001」をサーバL7セッション終端部105に渡す。
サーバL7セッション終端部105は、TCPのSYNフレームの送信元ポート番号フィールドを送信パラメータ決定部104より通知された「10001」と設定する。さらに、サーバL7セッション終端部105は、TCPのSYNフレームの宛先IPアドレスを後段装置振分部106より通知された「60.0.0.1」に設定し、当該フレームを送信する。これにより、後段装置振分部106が決定した仮想IPアドレスを持つ後段装置30が当該フレームを受信する。以降の動作は、第一実施形態と同様である。
(動作フローの説明)
上記説明では、他の装置の動作と関連させて説明したが、ここでは、第三実施形態における前段装置11の動作フローについて図18を用いて説明する。後段装置30については、第一実施形態と同様であるため説明を省略する。
((前段装置11))
図18は、第三実施形態における前段装置11の動作を示すフローチャートである。
前段装置11がクライアント50からSYNフレームを受信してから、ポート番号を抽出するまでの動作フローは、第一実施形態と同様である(S11−S15及びS17)。ポート番号が抽出されると共に、後段装置振分部106は、特定パターン抽出部102より渡されたビットパターンに基づき、転送先の後段装置を決定し、その後段装置のアドレスを取得する(S41)。そして、サーバL7セッション終端部105は、決定されたポート番号を送信元ポート番号フィールドに設定したフレームを決定された後段装置に転送する(S16、S18及び19)。その後の動作フローは、第一実施形態と同様である。
〈第三実施形態の作用効果〉
第三実施形態における負荷分散システムでは、前段装置11−13の後段装置振分部106が特定パターン抽出部102により抽出されたパターンデータに基づき、転送すべき後段装置30−31を決定する。その後、前段装置11−13のサーバL7セッション終端部105により、送信元ポート番号が送信パラメータ決定部104によって決定されたポート番号に書き換えられ、当該決定された後段装置に送出される。
従って、負荷分散を行うべきサーバが異なるネットワーク上に存在するような場合に、複数のネットワーク上に設置した後段装置に対しての、クライアントからの分散処理が可能となる。
〔第一変形例〕
本発明の実施形態では、特定パターン抽出部102によって抽出されるビットパターン(例えば、「SV1」など)とフレームに付与する特定フィールド値(例えば、ポート番号)のマッピングルールが、あらかじめマッピングルール保持部103に記録されている(例えば、図7に示すマッピングルールテーブル)。
〈第一変形例における機能構成〉
そこで、第一変形例における負荷分散システムでは、上記マッピングルールを動的に変更し得る構成とする。第一変形例における負荷分散システムでは、前段装置にマッピングルール変更部107(本発明の対応表変更部に相当)が新たに含まれる。それ以外の構成は、全て上記実施形態と同様である。
図19は、第一変形例における前段装置の機能構成を示す図である。
マッピングルール変更部107は、他の端末もしくは後段装置から、ビットパターンと
特定フィールドの値の更新要求を受け付け、その受け付けた要求に基づきマッピングルール保持部103の内容を変更する。以降、送信パラメータ決定部104は、更新されたマッピングルール保持部103の情報を元に特定フィールド値(ポート番号)を決定する。
〈第一変形例における動作例〉
上記実施形態の図7に示すマッピングルールテーブルにおいて、「SV3」のポート番号の範囲を「20001〜30000」に変更する場合の第一変形例における負荷分散システムの動作について説明する。
システム外の端末が、新しいマッピングルール「ビットパターンが「SV3」の場合のポート番号が20001〜30000」という内容を示したデータを設定したフレームを、各前段装置11−13宛てにそれぞれ送信する。なお、システム外の端末ではなく、前段装置もしくは後段装置内部に上記機能を実装してもよい。
前段装置11−13のマッピングルール変更部107は、上記フレームを受信すると、マッピングルール保持部103のビットパターン「SV3」のエントリを検索する。その結果得られたポート番号「12001〜13000」のデータを「20001〜30000」に書き換える。
上記動作により、マッピングルール保持部103のデータが書き換えられたため、抽出したビットパターンが「SV3」のフレームに関して、送信パラメータ決定部104は20001〜30000の中から送信元ポート番号を選択することになる。
〈第一変形例の作用効果〉
第一変形例における負荷分散システムでは、前段装置11−13のマッピングルール変更部107により、送信パラメータ決定部104がポート番号を決定する上で参照するマッピングルール保持部103のマッピングルールが変更される。
これにより、振分先サーバを識別するための特定フィールド値(ポート番号)をフレキシブルに決定することができる。また、本負荷分散システムのさまざまな形態のネットワーク、例えば所定のポート番号を変更せざるを得ないようなネットワークへの適用が可能となる。
〔第二変形例〕
本発明の実施形態において、特定パターン抽出部102がビットパターンを抽出する上で利用するマッチングルールは予め用意されている。例えば、特定パターン抽出部102は、L7データについて「Cookie:server=“serverID”」というビットパターンと照合を行うことで、“serverID”部に設定されるビットパターンを抽出する。
〈第二変形例における機能構成〉
そこで、第二変形例における負荷分散システムでは、上記マッチングルールを動的に変更し得る構成とする。第二変形例における負荷分散システムでは、前段装置にマッチングルール変更部108及びマッチングルール保持部109が新たに追加される。それ以外の構成は、全て上記実施形態と同様である。
図20は、第二変形例における前段装置の機能構成を示す図である。
マッチングルール保持部109は、特定パターン抽出部102の照合におけるマッチングルールを保持する。つまり、特定パターン抽出部102は、このマッチングルール保持
部109の保持するマッチングルールを利用して、特定フィールド値を抽出する。
マッチングルール変更部108は、特定パターン抽出における照合に利用するルールの更新要求を受け付け、マッチングルール保持部109の内容を変更する。以降、特定パターン抽出部102は、更新されたマッチングルール保持部109の情報を元に特定フィールド値(ポート番号)を抽出する。
〈第二変形例における動作例〉
第二変形例では、マッチングルール保持部109にマッチングルールが設定されていない状態において、「Cookie:server=“serverID”」のルールをシステム外部の端末より追加する場合の第二変形例における負荷分散システムの動作について説明する。
システム外の端末が、新しいマッチングルール「Cookie:server=“serverID”」を示すデータを設定したフレームを、各前段装置11−13宛てにそれぞれ送信する。なお、システム外の端末ではなく、前段装置11−13もしくは後段装置30内部に上記機能を実装してもよい。
前段装置11−13のマッチングルール変更部108は、上記フレームを受信すると、マッチングルール保持部109に、「Cookie:server=“serverID”」のデータを追加する。
これにより、特定パターン抽出部102は上記マッチングルール「Cookie:server=“serverID”」を用いて、ビットパターンの抽出を行うことが可能となる。
〈第二変形例の作用効果〉
第二変形例における負荷分散システムでは、前段装置11−13のマッチングルール変更部108により、特定パターン抽出部102が特定のビットパターンを抽出する上で判定するルールが変更される。
これにより、L7データの抽出すべき特定パターンの変更が可能となり、さらには、複数の抽出ルールを作成し設定することが可能となる。よって、第二変形例における負荷分散システムは、フレキシブルな負荷分散ルールの適用を可能とし、高度な負荷分散を可能とする。
〔第三変形例〕
本発明の実施形態では、前段装置のサーバL7セッション終端部105で設定されるのは、1つのフィールド(例えば、送信元ポート番号)である。それにより、後段装置の特定フィールド抽出部131で抽出されるのも1つの特定フィールドであり、L7振分先決定部133における振分先決定も1つのフィールドによって決定される。
これについては、上記振分先を決定するための特定フィールドを複数用いるようにしてもよい。この場合、例えば、前段装置のサーバL7セッション終端部105で複数の特定フィールドに振分先決定要因となる情報を設定し、後段装置の特定フィールド抽出部131でそれら複数のフィールドに設定される情報を抽出し、L7振分先決定部133は、それら複数のフィールドに設置される情報を元に、振分先サーバを決定するようにする。
この場合におけるL7振分ルール保持部132の持つ振分ルールテーブルの変形例を図21に示す。図21に示す振分ルールテーブルの変形例では、送信元ポート番号(フィー
ルド種別:SrcPort)フィールドに「10001〜11000」が設定されており、または、送信元IPアドレス(フィールド種別:SrcIP)フィールドに「20.0.0.10」が設定されている場合に、振分先サーバとして「MS1」が選択されるという形で定義されている。つまり、振分先サーバを決定するのに、送信元ポート番号か送信元IPアドレスのどちらかが利用されるようになる。
〈第三変形例の作用効果〉
第三変形例における負荷分散システムでは、後段装置30が振分の判断に利用する特定フィールドを複数利用することが可能となる。これにより、第三変形例における負荷分散システムは、高度な負荷分散を可能とする。
[その他]
本実施形態は次の発明を開示する。各項に開示される発明は、必要に応じて可能な限り組み合わせることができる。
(付記1)
同一アプリケーションを有する1以上のサーバとクライアントから構成され、前記クライアントとサーバ間でやりとりされる通信データが1以上のフレームに分割され送受信されるネットワークにおいて、前記クライアントが前記サーバへアプリケーションの提供を求める際に前記クライアントから送信される通信データを前記サーバのうちの1つへ中継する中継システムであって、
前記クライアントに接続される前段装置と前記1以上のサーバに接続される後段装置とを備え、
前記前段装置は、
前記クライアントより送信される前記フレームから前記通信データを取得する取得部と、
前記取得した通信データから所定のデータを抽出する抽出部と、
前記所定のデータに対応する所定のフィールドデータを決定する決定部と、
前記フレームに前記所定のフィールドデータを設定し、送信する送信部とを備え、
前記後段装置は、
前記前段装置により送信された前記フレームを受信し、その受信フレームから前記所定のフィールドデータを抽出する後段抽出部と、
前記後段装置に接続されるサーバの中から、前記抽出された所定のフィールドデータに対応する中継先サーバを決定する中継先決定部と、
前記前段装置からの前記受信フレームの宛先を、前記決定されたサーバの宛先に変更し、送信する送信先変更部とを備える中継システム。(1)
(付記2)
前記決定部は、前記取得した通信データから前記所定のデータを抽出できない場合に、所定の第2フィールドデータを決定し、
前記中継先決定部は、前記抽出された所定のフィールドデータが前記所定の第2フィールドデータであることを判別した場合には、前記後段装置に接続されるサーバの中から、所定のルールにより中継先サーバを決定する付記1記載の中継システム。(2)
(付記3)
前記後段装置は、
前記受信フレームが前記前段装置により送信されたものでない場合に、前記前段装置に当該受信したフレームを転送する転送部を備える付記1記載の中継システム。(3)
(付記4)
前記後段装置が複数存在する場合において、
前記前段装置は、
前記抽出部により抽出された前記所定のデータに基づき、前記複数の後段装置の中か
ら、転送先となる後段装置を選択する後段選択部を備え、
前記送信部は、前記フレームに前記所定のフィールドデータを設定すると共に、前記フレームの宛先を前記選択された後段装置の宛先に変更し、送信する付記1記載の中継システム。(4)
(付記5)
前記前段装置は、
前記所定のデータと前記所定のフィールドデータとの対応関係を示し、前記決定部により前記所定のフィールドデータを決定する際に参照される対応表を保持する対応表保持部と、
前記対応表の内容を変更する対応表変更部とを備える付記1記載の中継システム。(5)
(付記6)
前記前段装置は、
前記通信データから前記所定のデータを抽出するための抽出ルールであって、前記抽出部により前記所定のデータを抽出する際に参照される抽出ルールを保持する抽出ルール保持部と、
前記抽出ルールの内容を変更するルール変更部とを備える付記1記載の中継システム。
(付記7)
前記決定部は、前記所定のデータに対応する複数の所定のフィールドデータを決定し、
前記送信部は、前記フレームに前記複数の所定のフィールドデータを設定、送信し、
前記後段抽出部は、前記受信フレームから前記複数の所定のフィールドデータを抽出し、
前記中継先決定部は、前記後段装置に接続されるサーバの中から、前記抽出された複数の所定のフィールドデータに対応する中継先サーバを決定する付記1記載の中継システム。
(付記8)
同一アプリケーションを有する1以上のサーバとクライアントから構成され、前記クライアントとサーバ間でやりとりされる通信データが1以上のフレームに分割され送受信されるネットワークにおいて、前記クライアントが前記サーバへアプリケーションの提供を求める際に前記クライアントから送信される通信データを前記サーバのうちの1つへ中継するデータ中継方法において、
前記クライアントに接続される前段装置が、
前記クライアントより送信される前記フレームから前記通信データを取得するステップと、
前記取得した通信データから所定のデータを抽出するステップと、
前記所定のデータに対応する所定のフィールドデータを決定するステップと、
前記フレームに前記所定のフィールドデータを設定、送信するステップと、
前記1以上のサーバに接続される前記後段装置が、
前記前段装置により送信された前記フレームを受信し、その受信フレームから前記所定のフィールドデータを抽出するステップと、
前記後段装置に接続されるサーバの中から、前記抽出された所定のフィールドデータに対応する中継先サーバを決定するステップと、
前記前段装置からの前記受信フレームの宛先を、前記決定されたサーバの宛先に変更、送信するステップとを備えるデータ中継方法。
実施形態における負荷分散システムの概要を示す図である。 前段装置をサーバネットワーク内に設置する場合の構成例を示す図である。 前段装置をバックボーンネットワーク内に設置する場合の構成例を示す図である。 前段装置をクライアントネットワーク内に設置する場合の構成例を示す図である。 第一実施形態におけるネットワーク構成を示す図である。 第一実施形態における前段装置の機能構成を示す図である。 マッピングルールテーブルを示す図である。 第一実施形態における後段装置の機能構成を示す図である。 振分ルールテーブルを示す図である。 通信シーケンスを示す図である。 第一実施形態における前段装置の動作フローを示す図である。 第一実施形態における後段装置の動作フローを示す図である。 第二実施形態におけるネットワーク構成を示す図である。 第二実施形態における後段装置の機能構成を示す図である。 第二実施形態における後段装置の動作フローを示す図である。 第三実施形態におけるネットワーク構成を示す図である。 第三実施形態における前段装置の機能構成を示す図である。 第三実施形態における前段装置の動作フローを示す図である。 第一変形例における前段装置の機能構成を示す図である。 第二変形例における前段装置の機能構成を示す図である。 L7振分ルールテーブルの変形例を示す図である。 従来の負荷分散装置を示す図である。
符号の説明
50、51、52…クライアント
60、61、62、63、64、65…サーバ
10、11、12、13…前段装置
30、31…後段装置
1…送信データ
2、3、4、5、6、7…フレーム
80…バックボーンネットワーク
87、88…サーバネットワーク
81、82、83…クライアントネットワーク
101…クライアントL7セッション終端部
102…特定パターン抽出部
103…マッピングルール保持部
104…送信パラメータ決定部
105…サーバL7セッション終端部
106…後段装置振分部
107…マッピングルール変更部
108…マッチングルール変更部
109…マッチングルール保持部
131…特定フィールド抽出部
132…L7振分ルール保持部
133…L7振分ルール決定部
134…送信先変更部
135…振分ルール選択部
136…振分先決定部
137…前段装置転送部

Claims (5)

  1. 同一アプリケーションを有する1以上のサーバとクライアントとから構成され、前記クライアントとサーバ間でやりとりされる通信データが1以上のフレームに分割され送受信されるネットワークにおいて、前記クライアントが前記サーバへアプリケーションの提供を求める際に前記クライアントから送信される通信データを前記サーバのうちの1つへ中継する中継システムであって、
    前記クライアントに接続される前段装置と前記1以上のサーバに接続される後段装置とを備え、
    前記前段装置は、
    前記クライアントより送信される前記フレームから前記通信データを取得する取得部と、
    前記取得した通信データから所定のデータを抽出する抽出部と、
    前記所定のデータに対応する所定のフィールドデータを決定する決定部と、
    前記フレームに前記所定のフィールドデータを設定し、送信する送信部とを備え、
    前記後段装置は、
    前記前段装置により送信された前記フレームを受信し、その受信フレームから前記所定のフィールドデータを抽出する後段抽出部と、
    前記後段装置に接続されるサーバの中から、前記抽出された所定のフィールドデータに対応する中継先サーバを決定する中継先決定部と、
    前記前段装置からの前記受信フレームの宛先を、前記決定されたサーバの宛先に変更し、送信する送信先変更部とを備える中継システム。
  2. 前記決定部は、前記取得した通信データから前記所定のデータを抽出できない場合に、所定の第2フィールドデータを決定し、
    前記中継先決定部は、前記抽出された所定のフィールドデータが前記所定の第2フィールドデータであることを判別した場合には、前記後段装置に接続されるサーバの中から、所定のルールにより中継先サーバを決定する請求項1記載の中継システム。
  3. 前記後段装置は、
    前記受信フレームが前記前段装置により送信されたものでない場合に、前記前段装置に当該受信したフレームを転送する転送部を備える請求項1記載の中継システム。
  4. 前記後段装置が複数存在する場合において、
    前記前段装置は、
    前記抽出部により抽出された前記所定のデータに基づき、前記複数の後段装置の中から、転送先となる後段装置を選択する後段選択部を備え、
    前記送信部は、前記フレームに前記所定のフィールドデータを設定すると共に、前記フレームの宛先を前記選択された後段装置の宛先に変更し、送信する請求項1記載の中継システム。
  5. 前記前段装置は、
    前記所定のデータと前記所定のフィールドデータとの対応関係を示し、前記決定部により前記所定のフィールドデータを決定する際に参照される対応表を保持する対応表保持部と、
    前記対応表の内容を変更する対応表変更部とを備える請求項1記載の中継システム。
JP2004367864A 2004-12-20 2004-12-20 中継システム Expired - Fee Related JP4398354B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004367864A JP4398354B2 (ja) 2004-12-20 2004-12-20 中継システム
US11/100,371 US20060133371A1 (en) 2004-12-20 2005-04-06 Communication data relay system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004367864A JP4398354B2 (ja) 2004-12-20 2004-12-20 中継システム

Publications (2)

Publication Number Publication Date
JP2006174374A JP2006174374A (ja) 2006-06-29
JP4398354B2 true JP4398354B2 (ja) 2010-01-13

Family

ID=36595645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004367864A Expired - Fee Related JP4398354B2 (ja) 2004-12-20 2004-12-20 中継システム

Country Status (2)

Country Link
US (1) US20060133371A1 (ja)
JP (1) JP4398354B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572759B2 (en) 2006-08-24 2013-10-29 Duaxes Corporation Communication management system and communication management method
WO2008023424A1 (fr) * 2006-08-24 2008-02-28 Duaxes Corporation Système de gestion de communication et procédé de gestion de communication associé
US8265003B2 (en) * 2006-09-15 2012-09-11 Nec Corporation Packet distribution system and packet distribution method
JP5332117B2 (ja) * 2007-03-06 2013-11-06 日本電気株式会社 Wwwコンテンツ取得システム及びwwwコンテンツ取得方法
US9203921B2 (en) * 2008-08-26 2015-12-01 British Telecommunications Public Limited Company Operation of a content distribution network
EP2159983A1 (en) * 2008-08-26 2010-03-03 BRITISH TELECOMMUNICATIONS public limited company Content distribution network
EP2159994A1 (en) * 2008-08-26 2010-03-03 BRITISH TELECOMMUNICATIONS public limited company Operation of a content distribution network
JP5482353B2 (ja) * 2009-07-06 2014-05-07 株式会社リコー 中継機器、中継方法およびプログラム
JP5338555B2 (ja) 2009-08-11 2013-11-13 富士通株式会社 負荷分散装置、負荷分散方法および負荷分散プログラム
JP5526015B2 (ja) * 2010-12-22 2014-06-18 株式会社日立製作所 ゲートウェイシステム、ゲートウェイ装置、負荷分散方法
WO2012105677A1 (ja) * 2011-02-04 2012-08-09 日本電気株式会社 パケット処理装置、パケット処理方法およびプログラム
JP5645269B2 (ja) * 2011-10-17 2014-12-24 株式会社日立製作所 ネットワークシステム
CN104205749B (zh) * 2012-03-28 2017-04-05 日本电气株式会社 一种通信系统、上层交换机、控制装置及交换机控制方法
US10091112B1 (en) * 2015-04-24 2018-10-02 Cisco Technology, Inc. Highly-scalable virtual IP addresses in a load balancing switch
US10848432B2 (en) 2016-12-18 2020-11-24 Cisco Technology, Inc. Switch fabric based load balancing
EP3404886A1 (en) * 2017-05-15 2018-11-21 IMEC vzw Network stack for a plurality of physical communication interfaces
US11082312B2 (en) 2017-10-04 2021-08-03 Cisco Technology, Inc. Service chaining segmentation analytics
US10965596B2 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Hybrid services insertion
US10965598B1 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Load balancing in a service chain
CN108111578B (zh) * 2017-11-28 2021-06-04 国电南瑞科技股份有限公司 基于nio的配电终端数据采集平台接入终端设备的方法
JP7347182B2 (ja) 2019-12-10 2023-09-20 株式会社デンソー 中継装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0589250B1 (de) * 1992-09-14 2003-01-02 Siemens Aktiengesellschaft Verfahren zum Rundsenden von Zellen in einem im Asynchron-Transfer-Modus wirkenden Kommunikationsnetz
US5526344A (en) * 1994-04-15 1996-06-11 Dsc Communications Corporation Multi-service switch for a telecommunications network
US6266335B1 (en) * 1997-12-19 2001-07-24 Cyberiq Systems Cross-platform server clustering using a network flow switch
WO2000072509A2 (en) * 1999-05-26 2000-11-30 Bigband Networks, Inc. Communication management system and method
JP3601393B2 (ja) * 2000-01-11 2004-12-15 日本電気株式会社 データグラム中継装置及びその方法
WO2002013479A2 (en) * 2000-08-04 2002-02-14 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
US20020188754A1 (en) * 2001-04-27 2002-12-12 Foster Michael S. Method and system for domain addressing in a communications network
US7209977B2 (en) * 2001-10-01 2007-04-24 International Business Machines Corporation Method and apparatus for content-aware web switching
CA2411806A1 (en) * 2001-11-16 2003-05-16 Telecommunications Research Laboratory Wide-area content-based routing architecture
US8135772B2 (en) * 2002-05-01 2012-03-13 Oracle International Corporation Single servlets for B2B message routing
JP4431315B2 (ja) * 2003-01-14 2010-03-10 株式会社日立製作所 パケット通信方法およびパケット通信装置
JP4052956B2 (ja) * 2003-02-07 2008-02-27 富士通株式会社 Rprネットワークシステム,ステーションノード,ブリッジノード及びrprカード

Also Published As

Publication number Publication date
JP2006174374A (ja) 2006-06-29
US20060133371A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
JP4398354B2 (ja) 中継システム
US9647954B2 (en) Method and system for optimizing a network by independently scaling control segments and data flow
US7697427B2 (en) Method and system for scaling network traffic managers
US8892768B2 (en) Load balancing apparatus and load balancing method
US8380854B2 (en) Simplified method for processing multiple connections from the same client
JP3399928B2 (ja) コンピュータシステムにおけるネットワークパケットの高速転送及びフィルタリング
US6370583B1 (en) Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image
US7079501B2 (en) Method and system for efficiently delivering content to multiple requesters
US20020152307A1 (en) Methods, systems and computer program products for distribution of requests based on application layer information
US20080002736A1 (en) Virtual network interface cards with VLAN functionality
EP2140351B1 (en) Method and apparatus for cluster data processing
JP2006031063A (ja) 優先制御装置
US20030229702A1 (en) Server network controller including packet forwarding and method therefor
US20040133631A1 (en) Communication system
US8854977B2 (en) Relay node
US20050169309A1 (en) System and method for vertical perimeter protection
US7564848B2 (en) Method for the establishing of connections in a communication system
US20070291782A1 (en) Acknowledgement filtering
US7783784B1 (en) Method and apparatus for adaptive selection of algorithms to load and spread traffic on an aggregation of network interface cards
US7672299B2 (en) Network interface card virtualization based on hardware resources and software rings
US11706290B2 (en) Direct server reply for infrastructure services
JP3655575B2 (ja) ゲートウェイ装置
US7228562B2 (en) Stream server apparatus, program, and NAS device
JP2008294983A (ja) 優先制御システム、優先設定制御システム、優先制御装置、及び優先制御方法
JP2001007862A (ja) 通信負荷分散方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091006

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091022

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees