JP6131710B2 - COMMUNICATION SYSTEM, LOAD DISTRIBUTION DEVICE, AND LOAD DISTRIBUTION PROGRAM - Google Patents
COMMUNICATION SYSTEM, LOAD DISTRIBUTION DEVICE, AND LOAD DISTRIBUTION PROGRAM Download PDFInfo
- Publication number
- JP6131710B2 JP6131710B2 JP2013104511A JP2013104511A JP6131710B2 JP 6131710 B2 JP6131710 B2 JP 6131710B2 JP 2013104511 A JP2013104511 A JP 2013104511A JP 2013104511 A JP2013104511 A JP 2013104511A JP 6131710 B2 JP6131710 B2 JP 6131710B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- information
- server
- unit
- header
- 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
Links
Images
Description
本発明は、ネットワークで行われる負荷分散に関する。 The present invention relates to load balancing performed in a network.
クライアントサーバシステムでは、クライアントとなっている端末がサーバにリクエストを送信し、サーバは、リクエストに応じた処理結果を端末に送信する。端末の数が多くなると、サーバへの負荷が大きくなる。このため、ネットワーク中に、複数のサーバと負荷分散装置が設置されることがある。複数のサーバと負荷分散装置を備えるネットワークにおいて、負荷分散装置は、システムを効率的に運用するために、端末からのリクエストを、そのリクエストの処理に適したサーバに振り分ける。 In the client server system, a terminal serving as a client transmits a request to the server, and the server transmits a processing result corresponding to the request to the terminal. As the number of terminals increases, the load on the server increases. For this reason, a plurality of servers and a load balancer may be installed in the network. In a network including a plurality of servers and a load distribution device, the load distribution device distributes requests from terminals to servers suitable for processing the requests in order to operate the system efficiently.
負荷分散技術に関連する技術として、一意性保障技術がある。一意性保障技術は、同一の端末から送信されてくるリクエストの中で関連のあるリクエストを同じサーバに振り分けることにより、1つのセッションを維持するための技術である。図1は、一意性を保障できる負荷分散システムで行われる処理の例を示す図である。 There is a uniqueness guarantee technology as a technology related to the load balancing technology. The uniqueness assurance technique is a technique for maintaining one session by distributing related requests among the requests transmitted from the same terminal to the same server. FIG. 1 is a diagram illustrating an example of processing performed in a load distribution system that can ensure uniqueness.
(A)端末が初めてサーバにアクセスするときに、負荷分散装置は、予め設定されている分散方式に基づいて、リクエストを振り分けるサーバを決定する。 (A) When a terminal accesses a server for the first time, the load balancer determines a server that distributes requests based on a preset distribution method.
(B)リクエストが振り分けられたサーバは、付加情報を生成し、端末への応答データに挿入する。ここで、付加情報は、例えば、cookie情報など、リクエストが振り分けられたサーバを一意に識別できる情報である。サーバからの応答データを含むパケットは、負荷分散装置に送信される。負荷分散装置は、パケットから付加情報を取得し、付加情報に対応付けて、負荷分散装置に付加情報を含むパケットを送信してきた装置を識別する情報を記憶する。図1の場合、負荷分散装置は応答データを作成したサーバから、直接、付加情報を含むパケットを受信しているので、リクエストが振り分けられたサーバの識別情報が、付加情報と対応付けて記憶される。負荷分散装置は、応答データを含むパケットを、端末に送信する。 (B) The server to which the request is distributed generates additional information and inserts it into response data to the terminal. Here, the additional information is information that can uniquely identify the server to which the request is distributed, such as cookie information. A packet including response data from the server is transmitted to the load balancer. The load distribution apparatus acquires additional information from the packet, and stores information identifying the apparatus that has transmitted the packet including the additional information to the load distribution apparatus in association with the additional information. In the case of FIG. 1, since the load distribution apparatus receives a packet including additional information directly from the server that created the response data, the identification information of the server to which the request is distributed is stored in association with the additional information. The The load balancer transmits a packet including response data to the terminal.
(C)端末は、サーバから付加された付加情報を記憶し、次にサーバにアクセスするときのリクエストに、付加情報を含める。 (C) The terminal stores additional information added from the server, and includes the additional information in a request for accessing the server next time.
(D)端末からリクエストパケットを受信した負荷分散装置は、リクエストパケットから付加情報を取得する。負荷分散装置は、付加情報に対応付けられたサーバを、リクエストパケットの送信先とする。 (D) The load distribution apparatus that has received the request packet from the terminal acquires additional information from the request packet. The load distribution apparatus uses a server associated with the additional information as a transmission destination of the request packet.
近年、システムの規模やサーバ規模の拡大に伴って、複数の負荷分散装置を備えるネットワークも使用されている。この場合、複数の負荷分散装置が、多段階に配置される。 In recent years, a network including a plurality of load distribution apparatuses is also used with the expansion of the system scale and the server scale. In this case, a plurality of load distribution devices are arranged in multiple stages.
関連する技術として、ネットワークに接続された前段負荷分散装置と、前段負荷分散装置に接続された複数の後段負荷分散装置を備える多段負荷分散装置が考案されている。多段負荷分散装置では、後段負荷分散装置ごとに、1つ以上のサーバが接続されている(例えば、特許文献1)。 As a related technique, a multi-stage load distribution apparatus has been devised that includes a pre-stage load distribution apparatus connected to a network and a plurality of post-stage load distribution apparatuses connected to the pre-stage load distribution apparatus. In the multistage load distribution apparatus, one or more servers are connected to each subsequent stage load distribution apparatus (for example, Patent Document 1).
また、移動端末が接続されるネットワークで負荷分散を行うシステムも提案されている。負荷分散装置は、一連の通信内のパケットを、サービス提供サーバとの間に設置されている複数のゲートウェイのうちの同じゲートウェイに振り分ける。パケットが振り分けられたゲートウェイは、一連の通信内のパケットを、同一のサービスを実行可能なサービス提供サーバのいずれかに振り分ける(例えば、特許文献2)。 There has also been proposed a system that performs load distribution in a network to which mobile terminals are connected. The load distribution apparatus distributes packets in a series of communications to the same gateway among a plurality of gateways installed between the service providing servers. The gateway to which the packets are distributed distributes the packets in a series of communications to one of service providing servers that can execute the same service (for example, Patent Document 2).
負荷分散装置が多段階に設置される場合、アプリケーションレベルでの一意性を保障するために、前段の負荷分散装置と後段の負荷分散装置の両方で、パケットの解析が行われる。このため、各負荷分散装置において、パケットのバッファリング、パケットの解析、サーバの振り分けの判別の処理が行われることになる。このため、ネットワーク中の負荷分散装置の台数に比例して、システム全体での負荷分散のための処理負荷が高くなるという問題がある。 When the load balancer is installed in multiple stages, in order to ensure uniqueness at the application level, packets are analyzed in both the upstream load balancer and the subsequent load balancer. For this reason, packet buffering, packet analysis, and server distribution determination processing are performed in each load distribution apparatus. For this reason, there is a problem that the processing load for load distribution in the entire system increases in proportion to the number of load distribution apparatuses in the network.
1つの側面では、本発明は、負荷分散のための処理負荷を軽減することを目的とする。 In one aspect, the present invention aims to reduce the processing load for load distribution.
実施形態に係る通信システムは、通信装置、複数のサーバ、複数の負荷分散装置を備える。通信装置は、サービスを要求する。複数のサーバは、前記サービスの提供に使用される。複数の負荷分散装置は、前記サービスの要求による負荷を前記複数のサーバに分散させる。ここで、受信装置は、前記複数の負荷分散装置のうち、通信装置から要求パケットを受信する負荷分散装置である。受信装置は、前記要求パケット中のデータから、前記複数のサーバのうちで前記要求パケットを処理するサーバである処理サーバから付加された情報である付加情報を抽出する。受信装置は、前記付加情報に対応付けられたサーバを特定する情報である特定情報を、前記要求パケットのヘッダ中に付加することにより、前記要求パケットを転送パケットに変換する。受信装置は、前記受信装置から前記処理サーバまでに至る経路に含まれている負荷分散装置に、前記転送パケットを転送する。 The communication system according to the embodiment includes a communication device, a plurality of servers, and a plurality of load distribution devices. The communication device requests a service. A plurality of servers are used to provide the service. The plurality of load distribution apparatuses distribute the load due to the service request to the plurality of servers. Here, the receiving device is a load balancing device that receives a request packet from a communication device among the plurality of load balancing devices. The receiving device extracts, from the data in the request packet, additional information that is information added from a processing server that is a server that processes the request packet among the plurality of servers. The reception device converts the request packet into a transfer packet by adding identification information, which is information for identifying a server associated with the additional information, into a header of the request packet. The receiving device transfers the transfer packet to a load distribution device included in a path from the receiving device to the processing server.
負荷分散のための処理負荷が軽減される。 The processing load for load distribution is reduced.
図2は、一意性を保障できる負荷分散システムで行われる処理の例を示す図である。図2の例では、端末2とサーバ5(5a〜5f)の間に、2段階の負荷分散装置が含まれているものとする。以下、複数の負荷分散装置を区別し易くするため、端末と通信する負荷分散装置10aを前段の負荷分散装置、サーバと通信する負荷分散装置(10b、10c)を後段の負荷分散装置と記載する。負荷分散装置10bはサーバ5a〜5cに接続され、負荷分散装置10cはサーバ5d〜5fに接続されているものとする。なお、以下の説明では、パケットの「ヘッダ」は、ネットワーク層やトランスポート層での処理で使用されるヘッダを指すものとする。従って、負荷分散装置10は、例えば、Internet Protocol(IP)ヘッダやTransmission Control Protocol(TCP)ヘッダを参照して処理を行うことができる。
FIG. 2 is a diagram illustrating an example of processing performed in a load distribution system that can ensure uniqueness. In the example of FIG. 2, it is assumed that a two-stage load balancer is included between the terminal 2 and the server 5 (5a to 5f). Hereinafter, in order to make it easy to distinguish between a plurality of load balancers, the
(1)端末2は、初めてサーバにアクセスする場合、アクセス可能なサーバ5a〜5fのグループに対応付けられた仮想IPアドレス宛に、サービスのリクエストに使用されるパケット(要求パケット)を送信する。仮想IPアドレスは、負荷分散装置10aに設定されているため、負荷分散装置10aが要求パケットを受信する。負荷分散装置10aは、要求パケットを受信すると、予め設定されている分散方式に基づいて、後段の負荷分散装置(10b、10c)の中から、要求パケットを振り分ける負荷分散装置を決定する。ここでは、負荷分散装置10bに要求パケットが振り分けられたものとする。
(1) When the
(2)負荷分散装置10bは、要求パケットをサーバ5a〜5cのいずれかに割り振ることができる。そこで、予め設定されている分散方式に基づいて、受信した要求パケットを振り分けるサーバを決定する。ここでは、サーバ5bに要求パケットが振り分けられたものとする。
(2) The
(3)サーバ5bは、要求パケットを処理し、要求パケットに応答するデータを含む応答パケットを生成する。このとき、サーバ5bは、付加情報を生成し、応答パケット中の応答データに挿入する。付加情報は、端末2からの次の要求パケットを処理するサーバ5を特定するときに使用される。サーバ5bは、端末宛のパケットとして、応答パケットを負荷分散装置10bに送信する。
(3) The
(4)負荷分散装置10bは、サーバ5bから応答パケットを受信すると、サーバ5bから端末に宛てて送信されたパケット中の応答データから、付加情報を取得する。負荷分散装置10bは、付加情報と、応答データを生成したサーバ5bを識別する情報を対応付けて記憶する。さらに、負荷分散装置10bは、応答パケットのヘッダ中に、応答パケットを生成したサーバ5bを識別する情報と、付加情報を含める。以下、応答データを生成したサーバ5を識別する情報をヘッダに含むパケットのことを「通知パケット」と記載することがある。負荷分散装置10bは、通知パケットを前段の負荷分散装置10aに送信する。
(4) When receiving the response packet from the
(5)通知パケットを受信した負荷分散装置10は、通知パケットから、付加情報と応答パケットを生成したサーバ5の情報を取得して記憶する。例えば、負荷分散装置10aは、負荷分散装置10bから通知パケットを受信すると、ヘッダから、応答パケットがサーバ5bで生成されたことと、サーバ5bで生成された付加情報を特定する。負荷分散装置10aは、付加情報に対応付けて、サーバ5bを識別する情報と、通知パケットを転送してきた負荷分散装置10bを識別する情報を記憶する。さらに、負荷分散装置10aは、通知パケットから、付加情報とサーバ5bを識別する情報を削除することにより、通知パケットを応答パケットに変換する。負荷分散装置10aは、応答パケットを端末に送信する。
(5) The
(6)端末は、応答パケットを処理することにより、応答データと付加情報を取得する。端末は、サーバ5bから付加された付加情報を記憶する。
(6) The terminal acquires response data and additional information by processing the response packet. The terminal stores additional information added from the
(7)次に、端末は、再度サーバにアクセスするために、第2の要求パケットを生成したとする。端末は第2の要求パケットに付加情報を含める。 (7) Next, it is assumed that the terminal generates a second request packet in order to access the server again. The terminal includes additional information in the second request packet.
(8)端末から第2の要求パケットを受信すると、負荷分散装置10aは、第2の要求パケットに含まれているデータから付加情報を取得する。負荷分散装置10aは、付加情報に対応付けられたサーバを検索する。ここでは、手順(4)により、付加情報にサーバ5bと負荷分散装置10bが対応付けられている。そこで、負荷分散装置10aは、第2の要求パケットのヘッダに、サーバ5bの識別情報を書き込む。以下、要求パケットのヘッダ中に要求パケットの処理を行うサーバの情報が含まれているパケットを「転送パケット」と記載する。負荷分散装置10aは、転送パケットを負荷分散装置10bに転送する。
(8) When receiving the second request packet from the terminal, the
(9)転送パケットを受信した負荷分散装置10は、転送パケットのヘッダから転送先のサーバ5を特定する。例えば、負荷分散装置10bは、負荷分散装置10aから転送パケットを受信すると、転送パケットのヘッダを参照することにより、転送パケットに含まれているデータがサーバ5bで処理されることを特定する。負荷分散装置10bは、転送パケットのヘッダからサーバ5bの識別情報を消去することにより、転送パケットを第2の要求パケットに変換する。さらに、負荷分散装置10bは、第2の要求パケットをサーバ5bに転送する。サーバ5bは、受信したパケットを処理する。
(9) The
このように、実施形態にかかる方法では、端末から要求パケットを受信した負荷分散装置が、要求パケットを処理するサーバの情報をヘッダに記録することにより、要求パケットを転送パケットに変換する。このため、後段の負荷分散装置は、転送パケットのヘッダを参照することにより、転送パケットの転送先のサーバに転送することができるので、後段の負荷分散装置での処理負担が軽減される。 As described above, in the method according to the embodiment, the load distribution apparatus that has received the request packet from the terminal records the information of the server that processes the request packet in the header, thereby converting the request packet into a transfer packet. For this reason, the subsequent load distribution apparatus can transfer the transfer packet to the transfer destination server by referring to the header of the transfer packet, thereby reducing the processing load on the subsequent load distribution apparatus.
<装置構成>
図3は、負荷分散装置10の構成の例を示す。負荷分散装置10は、故障監視部11、パケット処理部20、解析部30、付加情報処理部40、記憶部50を備える。パケット処理部20は、受信部21、パケットバッファ22、選択部23、書き換え部24、送信部25を有する。解析部30は、取得部31と抽出部32を有する。付加情報処理部40は、検索部41、振り分けリスト管理部42、情報付加部43、変換部44を有する。記憶部50は、振り分けリスト51と接続テーブル52を保持し、さらに、負荷分散装置10での処理に使用されるデータなどを記憶する。
<Device configuration>
FIG. 3 shows an example of the configuration of the
受信部21は、端末、他の負荷分散装置10、またはサーバ5から送信されたパケットを受信する。受信部21は、受信したパケットを、パケットバッファ22と取得部31に出力する。パケットバッファ22は、取得部31からの要求に応じて、受信されたパケットを格納する。ここで、取得部31は、抽出部32がパケット中のデータを解析する場合に、パケットバッファ22に受信パケットの格納を要求する。例えば、抽出部32がHTTPメッセージを解析する場合、パケットバッファ22は、取得部31からの要求に応じて、パケットをバッファリングする。パケットバッファ22は、バッファリングしたデータを抽出部32に出力する。
The receiving
受信したパケットがサーバ5宛ての要求パケットであって、かつ、受信パケットを処理するサーバ5で生成された付加情報を含まない場合、選択部23は、予め、記憶している振分けアルゴリズムに応じて、パケットの振分け先を選択する。前段の負荷分散装置10に含まれている選択部23は、受信パケットを転送する後段の負荷分散装置10を選択する。一方、後段の負荷分散装置10に含まれている選択部23は、受信パケットを処理するサーバ5を選択する。ここで、振り分けアルゴリズムは、ラウンドロビン、重み付けラウンドロビンなどを含む任意のアルゴリズムを使用できる。
When the received packet is a request packet addressed to the
書き換え部24は、パケットの転送を行うために、適宜、アドレス情報を書き換える。書き換え部24は、アドレス情報を設定したパケットを、送信部25に出力する。送信部25は、入力されたパケットを、宛先に向けて送信する。
The rewriting
取得部31は、入力されたパケットのヘッダに付加情報やサーバの識別情報が含まれているかを判定する。入力されたパケットが転送パケットである場合、取得部31は、転送パケットのヘッダから、転送パケットに含まれているデータを処理するサーバ5の識別情報を取得する。また、入力されたパケットが通知パケットである場合、取得部31は、付加情報とサーバの識別情報の両方を、通知パケットから取得する。取得部31は、通知パケットから取得した付加情報とサーバの識別情報の両方を、振り分けリスト管理部42に出力する。一方、取得部31は、転送パケットから取得した識別情報を、書き換え部24に出力する。
The
一方、入力されたパケットが受信パケットか応答パケットである場合は、パケットのヘッダに付加情報とサーバの識別情報のいずれも含まれていないので、取得部31は、パケットが抽出部32によって処理されると判定する。そこで、取得部31は、パケットバッファ22に、パケットの格納を要求するとともに、抽出部32にパケットの処理を要求する。
On the other hand, if the input packet is a received packet or a response packet, neither the additional information nor the server identification information is included in the packet header, so that the
抽出部32は、取得部31からの要求に応じて、パケットバッファ22に格納されたパケットのデータを解析する。例えば、抽出部32は、データ中のHypertext Transfer Protocol(HTTP)ヘッダを解析し、付加情報の有無を判定する。さらに、抽出部32は、処理対象のパケットが端末2からサーバ5に送信されたパケットと、サーバ5から端末2に送信されたパケットのいずれであるかも判定する。このとき、抽出部32は、適宜、接続テーブル52を参照することができる。また、抽出部32は、処理対象のパケットがHTTPリクエストとHTTPレスポンスのいずれであるかによって、処理対象のパケットがサーバ5から端末2に送信されたパケットであるかを判定しても良い。HTTPリクエストなど、端末2からサーバ5に向けて送信されたパケットのデータ中に付加情報が含まれている場合、抽出部32は、付加情報を検索部41に出力する。一方、HTTPレスポンスなど、サーバ5から端末2に向けて送信されたパケットに付加情報が含まれている場合、抽出部32は、抽出した付加情報を、送信元の識別情報とともに、振り分けリスト管理部42と情報付加部43に出力する。送信元の識別情報は、例えば、送信元IPアドレスと送信元ポート番号の組合せとすることができる。
In response to a request from the
振り分けリスト管理部42は、抽出部32から通知された付加情報を、付加情報に対応する後段の負荷分散装置10の識別子や、付加情報を生成したサーバ5の識別情報に対応付けて、振り分けリスト51に記憶する。振り分けリスト51の例については後述する。
The distribution
検索部41は、抽出部32から入力された付加情報を用いて、付加情報に対応付けられている負荷分散装置10やサーバ5の情報を、振り分けリスト51から取得する。検索部41に付加情報が入力される場合、入力されたパケットは、端末2から受信した要求パケットである。このため、検索部41は、振り分けリスト51から得られた情報を変換部44に出力する。
The
変換部44は、検索部41から入力された付加情報を、要求パケットのヘッダに格納することにより、要求パケットを転送パケットに変換する。変換部44は、生成した転送パケットを、書き換え部24に出力する。
The
情報付加部43に付加情報とサーバ5の識別情報が抽出部32から入力される場合は、負荷分散装置10が応答パケットを受信している。このため、情報付加部43は、抽出部32から付加情報が入力されると、応答パケットのヘッダに付加情報と識別情報を加えることにより、応答パケットを通知パケットに変換する。情報付加部43は、通知パケットを書き換え部24に出力する。
When the additional information and the identification information of the
故障監視部11は、サーバ5または負荷分散装置10が正常に動作しているかを判定するための故障監視パケットを生成し、送信部25に出力する。前段の負荷分散装置10に含まれている故障監視部11は、後段の負荷分散装置10のそれぞれに、故障監視パケットを送信する。サーバ5に接続されている負荷分散装置10は、サーバ5に故障監視パケットを送信する。このため、故障監視部11は、故障監視パケットの送受信を用いて、他の負荷分散装置10に対して前段と後段のいずれであるかを特定する。例えば、負荷分散装置10bが負荷分散装置10aからの故障監視パケットを受信すると、負荷分散装置10bの故障監視部11は、負荷分散装置10bが負荷分散装置10aの後段に位置していると判定する。故障監視部11は、負荷分散装置10が正常に動作している場合、受信した故障監視パケットに対して、確認応答を返信する。故障監視部11は、得られた接続情報を接続テーブル52に記録する。故障監視部11の動作と故障監視パケット、接続テーブル52の例については後述する。
The
図4は、負荷分散装置10のハードウェア構成の例を示す。負荷分散装置10は、プロセッサ61、メモリ62、バス65、外部記憶装置66、ネットワーク接続装置69を備える。さらにオプションとして、負荷分散装置10は、入力装置63、出力装置64、媒体駆動装置67を備えても良い。負荷分散装置10は、例えば、コンピュータなどで実現されることがある。
FIG. 4 shows an example of the hardware configuration of the
プロセッサ61は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。プロセッサ61は、故障監視部11、選択部23、書き換え部24、解析部30、付加情報処理部40として動作する。なお、プロセッサ61は、例えば、外部記憶装置66に記憶されたプログラムを実行することができる。メモリ62は、プロセッサ61の動作により得られたデータや、プロセッサ61の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置69は、他の装置との通信に使用され、受信部21、送信部25として動作する。
The
入力装置63は、例えば、ボタン、キーボードやマウスとして実現され、出力装置64は、ディスプレイなどとして実現される。バス65は、プロセッサ61、メモリ62、入力装置63、出力装置64、外部記憶装置66、媒体駆動装置67、ネットワーク接続装置69の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置66は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ61などに提供する。媒体駆動装置67は、メモリ62や外部記憶装置66のデータを可搬記憶媒体68に出力することができ、また、可搬記憶媒体68からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体68は、フロッピイディスク、Magneto-Optical(MO)ディスク、Compact Disc Recordable(CD−R)やDigital Versatile Disk Recordable(DVD−R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。
The
<第1の実施形態>
以下、第1の実施形態を、故障監視パケットを用いた接続関係の特定と、負荷分散装置10によって行われる転送処理に分けて説明する。以下の説明では、図2を用いて説明したネットワークを例として用いる。すなわち、端末2と負荷分散装置10aが接続され、負荷分散装置10aには、負荷分散装置10bと負荷分散装置10cが接続されている。さらに、負荷分散装置10bはサーバ5a〜5cに接続され、負荷分散装置10cはサーバ5d〜5fに接続されている。なお、第1の実施形態では、負荷分散装置10同士での情報の交換にIPヘッダが用いられる場合を例とする。負荷分散装置10同士での通信に用いられるTCPヘッダは、規定に沿ったフォーマットであって、コネクションの制御のために、SYN、ACK、FINなどの制御ビットを含むものとする。
<First Embodiment>
Hereinafter, the first embodiment will be described by dividing the connection relationship specification using the failure monitoring packet and the transfer processing performed by the
さらに、以下の説明では、負荷分散装置10aと負荷分散装置10bのいずれの動作であるかを分り易くするために、負荷分散装置10中の部分の番号の後ろに、その処理を行っている負荷分散装置10の番号に含まれているアルファベットを記載するものとする。例えば、故障監視部11aは負荷分散装置10aに含まれている故障監視部11である。
Furthermore, in the following description, in order to make it easy to understand which operation is performed by the
〔接続関係の特定〕
図5は、IPヘッダのフォーマットの例を示す図である。図5は、故障監視パケットと、確認応答に使用されるIPヘッダの例を示す。IPヘッダのオプション部以外には、バージョン、ヘッダ長、サービスタイプ、データグラム長、ID、フラグ、フラグメントオフセット、TTL(Time to live)、プロトコル番号、ヘッダチェックサム、送信元IPアドレス、宛先IPアドレスが含まれる。IPヘッダのオプション部以外に含まれている情報要素は、プロトコルの規定に沿って設定される。オプション部には、オプションタイプ、オプション長、送信元IPアドレス、パディングが含まれる。オプションタイプには、パケットの種類を特定するための情報が記録される。例えば、故障監視パケットに含まれているオプションタイプフィールドには、故障監視パケットであることを表す値が設定される。オプション長は、オプション部に含まれている情報要素の長さを指定する。故障監視パケットのオプション部の送信元IPアドレスフィールドには、故障監視パケットの送信元の負荷分散装置10に割り当てられているIPアドレスが記録される。一方、確認応答のオプション部の送信元IPアドレスフィールドには、確認応答の送信元のIPアドレスが記録される。オプション長は予め決められた値に設定される。
[Identification of connection]
FIG. 5 is a diagram illustrating an example of the format of the IP header. FIG. 5 shows an example of a failure monitoring packet and an IP header used for an acknowledgment. Other than the optional part of the IP header, version, header length, service type, datagram length, ID, flag, fragment offset, TTL (Time to live), protocol number, header checksum, source IP address, destination IP address Is included. Information elements included other than the optional part of the IP header are set in accordance with the protocol specifications. The option part includes an option type, an option length, a source IP address, and padding. In the option type, information for specifying the type of packet is recorded. For example, a value indicating that the packet is a failure monitoring packet is set in the option type field included in the failure monitoring packet. The option length specifies the length of the information element included in the option part. In the transmission source IP address field of the option part of the failure monitoring packet, the IP address assigned to the
図6は、故障監視パケットの送受信の例を示すシーケンス図である。以下、図6を参照しながら、ポートチェックによる故障監視が行われる場合を説明する。図6は、見やすくするために、負荷分散装置10aと負荷分散装置10bの間での故障監視パケットを用いた通信と、負荷分散装置10bとサーバ5bの間での通信を例として示している。
FIG. 6 is a sequence diagram illustrating an example of transmission / reception of a failure monitoring packet. Hereinafter, a case where failure monitoring by port check is performed will be described with reference to FIG. FIG. 6 shows communication using the failure monitoring packet between the
(a1)負荷分散装置10aの故障監視部11aは、負荷分散装置10bに対して故障監視パケットを送信する。このとき、故障監視部11aは、故障監視パケットとして、IPヘッダ中のアドレス等を以下のように設定し、さらに、TCPヘッダ中のSYNビット=1に設定したパケットを生成する。
送信元IPアドレス:負荷分散装置10aのIPアドレス
宛先IPアドレス :負荷分散装置10bのIPアドレス
オプションタイプ :故障監視パケット
オプション部中の送信元IPアドレス:負荷分散装置10aのIPアドレス
なお、宛先IPアドレスとして設定される仮想IPアドレスは、サーバ5a〜5cへのパケットの振り分けに使用されるアドレスである。故障監視部11aは、生成した故障監視パケットを、送信部25aを介して、負荷分散装置10bに送信する。
(A1) The failure monitoring unit 11a of the
Source IP address: IP address of
(a2)負荷分散装置10bの受信部21bは、故障監視パケットを取得部31bに出力する。取得部31bは、受信したパケットのオプションタイプの値が故障監視パケットを示す値になっていることから、故障監視パケットが入力されたと判定し、入力されたパケットを、故障監視部11bに出力する。このとき、故障監視部11bは、故障監視パケットの送信元を示す情報要素に記録されている送信元IPアドレスの値が、オプション部に含まれている送信元IPアドレスの値と一致するかを判定する。両者が一致すると、故障監視部11bは、前段の負荷分散装置10から故障監視パケットを受信したと判定する。また、オプション部に送信元IPアドレスが含まれていることから、故障監視パケットの送信元の負荷分散装置10aが、IPヘッダのオプション部の情報を処理できると判定する。そこで、故障監視部11bは、図7(a)のNo.1に示すように、負荷分散装置10aが負荷分散装置10bの前段にあることと、負荷分散装置10aがオプション部の処理を行うことを、接続テーブル52bに記録する。
(A2) The reception unit 21b of the
(b1)負荷分散装置10bは、負荷分散装置10bに接続されているサーバ5のいずれか1つ以上が正常に動作している場合、負荷分散装置10aからのパケットをサーバ5に転送できるので、正常に動作している旨の確認応答を返送できる。そこで、負荷分散装置10bが負荷分散装置10aから故障監視パケットを受信すると、故障監視部11bは、負荷分散装置10bに接続されているサーバ5a〜5cに故障監視パケットを送信する。サーバ5bに送信される故障監視パケットでは、IPヘッダ中のアドレス等の情報は以下のように設定され、TCPヘッダ中のSYNビット=1に設定されている。
送信元IPアドレス:負荷分散装置10bのIPアドレス
宛先IPアドレス :サーバ5bのIPアドレス
オプションタイプ :故障監視パケット
オプション部中の送信元IPアドレス:負荷分散装置10bのIPアドレス
故障監視部11bは、生成した故障監視パケットを、送信部25bを介して、サーバ5bに送信する。
(B1) When any one or more of the
Source IP address: IP address of the
(b2)サーバ5bは、負荷分散装置10bから故障監視パケットを受信する。サーバ5bは、IPヘッダのオプション部についての処理を行わない。このため、サーバ5bは、単に負荷分散装置10bから接続を要求するために、SYNビット=1のパケットが送信されてきたと解釈する。サーバ5bは、負荷分散装置10bとの間で新たな通信を開始できる場合、TCPヘッダ中のSYNビットとACKビットの両方を1に設定した確認応答を、負荷分散装置10bに返送する。なお、サーバ5bは、IPヘッダのオプション部の処理を行わないため、サーバ5bが負荷分散装置10bに送信する確認応答では、IPヘッダには送信元IPアドレスが格納されていない。
(B2) The
(b3)負荷分散装置10bがサーバ5bからの確認応答を受信したとする。負荷分散装置10bの故障監視部11bは、取得部31bと受信部21bを介して、確認応答を取得する。故障監視部11bは、確認応答の送信元を示す情報要素に記録されている送信元IPアドレスの値が、オプション部に含まれている送信元IPアドレスの値と一致するかを判定する。サーバ5bから受信した確認応答のIPヘッダには、オプション部に送信元アドレスが格納されていない。このため、故障監視部11bは、サーバ5bではIPヘッダ内のオプション部の処理が行われていないと判定する。さらに、故障監視部11bは、判定結果を、接続関係とともに接続テーブル52bに記録する。故障監視部11bは、確認応答の送信元であるサーバ5bを接続先ノードとする。このとき、故障監視部11bは、サーバ5bが負荷分散装置10bの後段に位置することも合わせて記憶する。このため、そこで、故障監視部11bは、図7(a)のNo.2に示す情報を記憶する。
(B3) It is assumed that the
(a3)負荷分散装置10bは、手順(b3)でACK=1、SYN=1となっている確認応答を受信したので少なくとも、サーバ5bには、データを転送できると判定する。そこで、手順(a2)で受信した故障監視パケットに対する確認応答を、負荷分散装置10aに送信する。このとき、故障監視部11bは、確認応答に含まれているTCPヘッダのSYNビットとACKビットの両方を1に設定した上で、確認応答のIPヘッダ中のアドレスの情報を以下のように設定する。
送信元IPアドレス:負荷分散装置10bのIPアドレス
宛先IPアドレス :負荷分散装置10aのIPアドレス
オプション部中の送信元IPアドレス:負荷分散装置10bのIPアドレス
故障監視部11bは、生成した確認応答を、送信部25bを介して、負荷分散装置10aに送信する。
(A3) Since the
Source IP address: IP address of the
(a4)負荷分散装置10aの故障監視部11aは、負荷分散装置10bで生成された確認応答を、受信部21aや取得部31aを介して受信する。故障監視部11aは、確認応答の送信元を示す情報要素に記録されている送信元IPアドレスの値が、オプション部に含まれている送信元IPアドレスの値と一致するかを判定する。両者が一致すると、故障監視部11aは、確認応答を生成した後段の負荷分散装置10は、IPヘッダ中のオプション部を処理できると判定する。そこで、故障監視部11aは、手順(b3)での故障監視部11bと同様の処理により、図7(b)のNo.1に示す情報を記憶する。さらに、故障監視部11aは、負荷分散装置10bから負荷分散装置10aに向かう通信路を確保するために、ACKビット=1に設定した確認応答を負荷分散装置10bに送信する。
(A4) The failure monitoring unit 11a of the
(a5)故障監視部11aは、負荷分散装置10bとの間の接続関係を取得し、負荷分散装置10bが正常に動作していると判定すると、負荷分散装置10bとの間の通信を終了する。このため、故障監視部11aは、TCPヘッダ中のFINビット=1、ACKビット=1に指定したパケットを生成し、送信部25aを介して負荷分散装置10bに送信する。このとき、IPヘッダの設定は、手順(a1)と同様に行われる。
(A5) The failure monitoring unit 11a acquires a connection relationship with the
(b5)負荷分散装置10bの故障監視部11bは、負荷分散装置10aから通信の終了が要求された場合、負荷分散装置10bに接続されているサーバ5のうちで、負荷分散装置10aとの通信路を確立しているサーバ5bに、通信の終了を通知する。このとき、負荷分散装置10bも手順(a5)での故障監視部11aと同様に、FINビット=1、ACKビット=1に指定したパケットを、サーバ5bに送信する。
(B5) The failure monitoring unit 11b of the
(b6)サーバ5bは、故障監視のための通信の切断が要求されると、負荷分散装置10bとの間の通信を終了するために、FINビット=1、ACKビット=1に指定したパケットを、負荷分散装置10bに送信する。
(B6) When the
(a6)負荷分散装置10bがサーバ5bから通信の切断のためのパケットを受信すると、故障監視部11bは、負荷分散装置10aあてに、通信の切断を要求するためのパケットを生成する。このときに生成されるパケットは、FINビット=1、ACKビット=1であり、手順(a3)で生成されたパケットと同様のIPヘッダを含む。負荷分散装置10aが負荷分散装置10bからのパケットを受信することにより、負荷分散装置10aと負荷分散装置10bの間のコネクションが終了される。
(A6) When the
図6を参照しながら説明した処理と同様の処理が、負荷分散装置10aと負荷分散装置10cの間でも行われるため、接続テーブル52aは、図7(b)に示すようになる。また、負荷分散装置10bとサーバ5a、5cの間でも同様の処理が行われるので、故障監視部11bは、図7(c)に示す接続テーブル52bを生成する。さらに、負荷分散装置10cとサーバ5d〜5fの間でも同様の処理が行われる。
Since processing similar to that described with reference to FIG. 6 is also performed between the
〔転送処理の例〕
図8(a)と図8(b)は、IPヘッダのフォーマットの例を示す。図8(a)に示すIPヘッダは、通知パケットで使用される。図8(a)に示すIPヘッダの情報要素のうち、IPヘッダのオプション部以外は、図5を参照しながら説明したIPヘッダの情報要素と同様である。オプション部は、オプションタイプ、オプション長、処理サーバポート番号、処理サーバIPアドレス、付加情報を含む。オプションタイプは、パケットが通知パケットであることを示す値が設定される。通知パケットは、サーバ5で生成された応答パケットを受信した負荷分散装置10が、その負荷分散装置10よりも前段に位置している他の負荷分散装置10に、付加情報と、付加情報を生成したサーバ5の情報を通知するために用いられる。このため、処理サーバIPアドレスフィールドには、応答パケットを生成したサーバ5のIPアドレスが格納される。また、処理サーバポート番号フィールドには、応答パケットを生成したアプリケーションにアクセスするときに使用されるポート番号が格納される。付加情報フィールドには、応答パケットのデータに含まれている付加情報が格納される。
[Example of transfer processing]
FIG. 8A and FIG. 8B show examples of the IP header format. The IP header shown in FIG. 8A is used in the notification packet. Of the information elements of the IP header shown in FIG. 8A, except for the optional part of the IP header, it is the same as the information element of the IP header described with reference to FIG. The option part includes an option type, an option length, a processing server port number, a processing server IP address, and additional information. In the option type, a value indicating that the packet is a notification packet is set. As for the notification packet, the
従って、応答パケットを受信した負荷分散装置10bは、応答パケットのIPヘッダを、図8(a)に示すフォーマットに変換することにより、応答パケットを通知パケットに変換する。以下の説明で、応答パケットを通知パケットに変換する負荷分散装置10のことを「通知装置」と呼ぶことがある。通知装置は、サーバ5と直接パケットを送受信する負荷分散装置10である。
Accordingly, the
図8(b)に示すIPヘッダは、転送パケットで使用される。図8(b)に示すIPヘッダでも、IPヘッダのオプション部以外の情報要素は、図5を参照しながら説明したIPヘッダと同様である。オプション部は、オプションタイプ、オプション長、処理サーバポート番号、処理サーバIPアドレス、パディングを含む。オプションタイプフィールドには、パケットが転送パケットであることを示す値が設定される。転送パケットは、端末2から要求パケットを受信した負荷分散装置10が、その負荷分散装置10よりも後段に位置する負荷分散装置10に、要求パケット中のデータを処理するサーバ5の情報を通知するために使用される。このため、処理サーバIPアドレスは、要求パケットのデータ中の付加情報を生成したサーバ5のIPアドレスとなる。また、処理サーバポート番号は、処理サーバにおいて、付加情報を含む応答パケット中のデータを生成したアプリケーションにアクセスするためのポート番号である。
The IP header shown in FIG. 8B is used in the transfer packet. Also in the IP header shown in FIG. 8B, the information elements other than the option part of the IP header are the same as those in the IP header described with reference to FIG. The option part includes an option type, an option length, a processing server port number, a processing server IP address, and padding. A value indicating that the packet is a transfer packet is set in the option type field. As for the transfer packet, the
以下、負荷分散装置10a、10b、および、サーバ5a〜5fの間で接続関係の特定が終わった後に、端末2がサーバ5にサービスを要求した場合について説明する。端末2が新規にサーバ5との通信を開始する場合、端末2からの要求パケットは、サーバ5a〜5fのいずれによって処理されても良い。以下の説明では、負荷分散装置10aは、端末2からの要求パケットを負荷分散装置10bに振り分け、負荷分散装置10bは、端末2からの要求をサーバ5bに振り分けたとする。
Hereinafter, a case where the terminal 2 requests a service from the
図9は、サーバ5bから端末2あての応答パケットの転送処理の例を示す。なお、以下の手順の番号は、図9中の番号と同じである。なお、以下の説明では、応答パケットを生成したサーバ5のことを「処理サーバ」と記載することがある。図9では、サーバ5bが処理サーバとして動作する。さらに、図面を見やすくするために、負荷分散装置10bがサーバ5a〜5cへの振り分けに使用しているIPアドレスとポートをあわせた情報を、図9では「SLB#B」と記載する。同様に、負荷分散装置10cがサーバ5d〜5fへの振り分けに使用しているIPアドレスとポートをあわせた情報を「SLB#C」と表す。
FIG. 9 shows an example of transfer processing of a response packet addressed to the terminal 2 from the
(11)サーバ5bは、端末2で生成された要求パケットを処理し、端末2に送信する応答データを生成する。さらに、サーバ5bは、今回の要求パケットに関連する以後のサービスを要求する要求パケットを、サーバ5bが処理することができるようにするため、付加情報を生成する。付加情報は、例えば、Cookie情報、セッションIDなどとすることができ、ネットワークに含まれているサーバ群から、要求パケットを処理するサーバを一意に決定するために使用可能な任意の情報である。サーバ5bは、応答データと付加情報をデータ中に含む応答パケット81a〜81cを生成する。このとき、サーバ5bは、応答パケット81a〜81cのIPヘッダのオプション部には、情報を格納しない。サーバ5bは、応答パケット81a〜81cを、端末2に向けて送信する。
(11) The
(12)負荷分散装置10bの受信部21bは、サーバ5bから応答パケット81aを受信する。受信部21bは、応答パケット81aを取得部31bに出力する。取得部31bは、応答パケット81aのIPヘッダのオプション部を参照する。応答パケット81aのIPヘッダのオプション部には、付加情報や処理サーバの識別情報などが含まれていないので、取得部31bはパケットバッファ22bに応答パケット81aの格納を要求する。さらに、取得部31bは、送信元IPアドレスをキーとして接続テーブル52bを参照することにより、送信元が負荷分散装置10bの前段と後段のいずれに位置しているかを判定する。応答パケット81aの送信元はサーバ5bであり、サーバ5bは負荷分散装置10の後段に位置している。そこで、取得部31bは、抽出部32bに、応答パケット81aのデータの解析を要求するとともに、応答パケット81を負荷分散装置10bの後段に位置する装置から受信したことを通知する。
(12) The receiving unit 21b of the
取得部31bは、応答パケット81aを生成したサーバ5bの識別情報として、IPヘッダから送信元IPアドレス、TCPヘッダから送信元ポート番号を取得する。さらに、取得部31bは、IPヘッダから取得した送信元IPアドレスと、TCPヘッダから取得した送信元ポート番号を、サービスを要求するためのパケットの転送先として特定する。従って、取得部31bは、以下の情報を取得する。
処理サーバの識別情報:サーバ5bに割り当てられたIPアドレスとポート番号
転送先 :サーバ5bに割り当てられたIPアドレスとポート番号
取得部31bは、取得した識別情報と転送先の情報を抽出部32bに出力する。応答パケット81b、81cも、同様の処理により、パケットバッファ22bに格納される。
The acquisition unit 31b acquires the transmission source IP address from the IP header and the transmission source port number from the TCP header as identification information of the
Processing server identification information: IP address and port number assigned to the
(13)抽出部32bは、応答パケット81aのデータを解析することにより、応答パケット81aに含まれている付加情報を抽出する。図9の例では、応答パケット81a中の付加情報は、「クライアントA」という情報である。抽出部32bは、応答パケット81aの送信元が負荷分散装置10bよりも後段の装置であるため、付加情報を、処理サーバの識別情報、および、転送先の情報とともに、振り分けリスト管理部42bに出力する。さらに、抽出部32bは、サーバの識別情報とともに、抽出した付加情報を、情報付加部43bに出力する。
(13) The extraction unit 32b extracts additional information included in the
(14)振り分けリスト管理部42bは、抽出部32bから入力された情報を振り分けリスト51bに記録する。このため、振り分けリスト51bには以下の情報が記録される。
付加情報:クライアントA
処理サーバの識別情報:サーバ5bに割り当てられたIPアドレスとポート番号
転送先 :サーバ5bに割り当てられたIPアドレスとポート番号
(14) The distribution list management unit 42b records the information input from the extraction unit 32b in the
Additional information: Client A
Processing server identification information: IP address and port number assigned to
(15)情報付加部43bは、抽出部32bから入力された付加情報と識別情報を応答パケット81aのIPヘッダのオプション部に加える。すなわち、情報付加部43bは、図8(a)に示すIPヘッダのオプション部内の送信元IPアドレスフィールドに、サーバ5bに割り当てられたIPアドレスを格納する。さらに、情報付加部43bは、IPヘッダのオプション部内の送信元ポート番号フィールドに、サーバ5bが応答パケット81aを生成するために使用したアプリケーションに対応するポート番号を記録する。このとき、情報付加部43bは、IPヘッダのオプション部内の送信元ポート番号フィールドに、応答パケット81aのTCPヘッダ中の送信元ポート番号と同じ値を記録するものとする。これらの処理により、情報付加部43bは、応答パケット81aを通知パケット82aに変換する。情報付加部43bは、得られた通知パケット82aを書き換え部24bに出力する。
(15) The information addition unit 43b adds the additional information and the identification information input from the extraction unit 32b to the option part of the IP header of the
(16)書き換え部24は、通知パケット82aの宛先IPアドレスをキーとして接続テーブル52を検索する。接続テーブル52に該当するエントリがない場合、書き換え部24bは、前段の負荷分散装置10aに転送するパケットであると判定し、送信元IPアドレスを負荷分散装置10bに割り当てられた仮想IPアドレスに書き換える。書き換え部24bでの処理が終わると、通知パケット82aは、送信部25bを介して負荷分散装置10aに送信される。
(16) The
(17)負荷分散装置10aの受信部21aは、負荷分散装置10bから通知パケット82aを受信する。受信部21aは、通知パケット82aを取得部31aに出力する。取得部31aは、通知パケット82aのIPヘッダのオプション部から、付加情報と、処理サーバの識別情報、送信元IPアドレスを取得する。取得部31aは、取得した情報を振り分けリスト管理部42aに出力する。図9の例では、抽出部32aは、通知パケット82aから以下の情報を取得して、振り分けリスト管理部42aに出力する。
付加情報:クライアントA
処理サーバの識別情報:サーバ5bに割り当てられたIPアドレスとポート番号
送信元 :負荷分散装置10bに割り当てられたIPアドレスとポート番号
振り分けリスト管理部42aは、取得部31aから入力された情報を振り分けリスト51aに記録する。
(17) The receiving unit 21a of the
Additional information: Client A
Identification information of the processing server: IP address and port number assigned to the
(18)取得部31aは、振り分けリスト管理部42aに出力する情報を取得すると、通知パケット82aを書き換え部24aに出力する。書き換え部24aは、通知パケット82aの宛先IPアドレスをキーとして接続テーブル52を検索する。負荷分散装置10aの接続テーブル52a(図7(b))には、負荷分散装置10aよりも前段に位置する負荷分散装置10が記録されていない。書き換え部24aは、接続テーブル52aに該当するエントリがない場合、端末2に転送するパケットであると判定し、送信元IPアドレスを負荷分散装置10aに割り当てられた仮想IPアドレスに書き換える。さらに、書き換え部24aは、IPヘッダのオプション部に含まれている情報を削除する。従って、書き換え部24aは、通知パケット82aを応答パケット81dに変換している。応答パケット81dのデータは、応答パケット81aのデータと同じである。しかし、応答パケット81dでは、送信元IPアドレスと送信元ポート番号は負荷分散装置10aがサーバ5a〜5fへの負荷分散を行うために使用するアドレスとポート番号となっている。書き換え部24aは、応答パケット81dを送信部25aに出力する。送信部25aは、応答パケット81dを端末2に送信する。
(18) Upon acquiring information to be output to the distribution list management unit 42a, the acquisition unit 31a outputs a
(19)端末2は、応答パケット81dを受信する。端末2は、応答パケット81dの送信元IPアドレスと送信元ポート番号に対応付けて、付加情報を保存する。応答パケット81dでは、送信元IPアドレスと送信元ポート番号は、負荷分散装置10aがサーバ5a〜5fへの負荷分散を行うために使用するアドレスとポート番号である。なお、端末2は、適宜、応答パケット81dの送信元アドレスとポート番号から特定できるアプリケーションに対応付けて、付加情報を記憶しても良い。
(19) The
応答パケット81b、81cについても、同様に処理が行われる。このため、応答パケット81a〜81cがサーバ5bから端末2に送信される間に、各パケットについて1回ずつ、パケット中のデータの解析が行われるだけですむ。換言すると、サーバ5から応答パケットを受信している負荷分散装置10b以外は、パケット中のデータを処理しない。このため、ネットワークの処理負荷が小さくなる。
The same processing is performed for the
図10は、端末2から付加情報を含むパケットが送信されたときの処理の例を示す。
(21)次に、端末2が、応答パケット81dの宛先ポート番号で特定されるアプリケーションから、サーバ5に再度、サービスを要求したとする。端末2は、サービスを要求するために、要求パケット83aを生成する。要求パケット83aのデータ中には、「クライアントA」という付加情報が含まれている。また、要求パケット83aの送信先IPアドレスと送信先ポート番号は、負荷分散装置10aがサーバ5a〜5fへの振り分けに使用する値に設定される。端末2は、負荷分散装置10aに要求パケット83aを送信する。なお、端末2はIPヘッダのオプション部を処理しないので、要求パケット83aのIPヘッダのオプション部には、情報が格納されていない。
FIG. 10 shows an example of processing when a packet including additional information is transmitted from the
(21) Next, it is assumed that the terminal 2 requests the service from the
(22)負荷分散装置10aの受信部21aは、端末2から要求パケット83aを受信すると、要求パケット83aを取得部31aに出力する。取得部31aは、要求パケット83aのIPヘッダのオプション部に情報に転送先のサーバ5を識別するためのIPアドレスとポート番号が含まれていないので、パケットバッファ22aに要求パケット83aの格納を要求する。取得部31aは、抽出部32aに、要求パケット83aのデータの解析を要求する。なお、要求パケット83aの処理中にさらに負荷分散装置10aがさらに要求パケット83b、83cを受信した場合、要求パケット83b、83cは、適宜、パケットバッファ22aに格納される。
(22) When receiving the
(23)抽出部32aは、要求パケット83aのデータを解析することにより、要求パケット83aに含まれている付加情報を抽出する。図10の例では、要求パケット83a中の付加情報は、「クライアントA」という情報である。抽出部32aは、得られた付加情報を検索部41aに出力する。
(23) The extraction unit 32a extracts the additional information included in the
(24)検索部41aは、抽出部32aから入力された付加情報に対応付けられているエントリを、振り分けリスト51a中で検索することにより、転送先の負荷分散装置10と処理サーバの情報を取得する。図10の例では、「クライアントA」という付加情報に対して以下の情報が対応付けられている。
付加情報:クライアントA
処理サーバの識別情報:サーバ5bに割り当てられたIPアドレスとポート番号
送信元 :負荷分散装置10bに割り当てられたIPアドレスとポート番号
そこで、検索部41aは、処理サーバの識別情報を変換部44aに出力し、送信先の情報を書き換え部24aに出力する。
(24) The search unit 41a acquires information on the
Additional information: Client A
Processing server identification information: IP address and port number assigned to the
(25)変換部44aは、処理サーバの識別情報を抽出部32aから取得すると、取得した情報を要求パケット83aのIPヘッダのオプション部に加える。すなわち、変換部44aは、図8(b)に示すIPヘッダのオプション部内の処理サーバIPアドレスフィールドに、サーバ5bに割り当てられたIPアドレスを格納する。さらに、変換部44aは、抽出部32aから通知されたポート番号を、IPヘッダのオプション部内の処理サーバポート番号フィールドに記録する。これらの処理により、変換部44aは、要求パケット83aを転送パケット84aに変換する。変換部44aは、送信先のアドレスを設定するために、得られた転送パケット84を書き換え部24bに出力する。
(25) When acquiring the processing server identification information from the extraction unit 32a, the conversion unit 44a adds the acquired information to the option part of the IP header of the
(26)書き換え部24aは、変換部44aから入力された転送パケット84aの宛先IPアドレスと宛先ポート番号を、検索部41aから通知された値に変更する。このため、転送パケット84aには、以下の情報が設定される。
送信元 :端末2
宛先IPアドレス:負荷分散装置10bに設定されたIPアドレス
宛先ポート番号 :サーバ5a〜5cへの負荷分散用のポート番号
オプション部の処理サーバIPアドレス:サーバ5bに設定されたIPアドレス
オプション部の処理サーバポート番号:サーバ5bのアプリケーションのポート番号
書き換え部24aは、宛先の情報の設定が終わると、転送パケット84aを送信部25aに出力する。
(26) The rewrite unit 24a changes the destination IP address and destination port number of the
Source:
Destination IP address: IP address set in the
(27)負荷分散装置10bの受信部21bは、転送パケット84aを受信する。受信部21bは、転送パケット84aを取得部31bに出力する。取得部31bは、IPヘッダのオプション部に処理サーバIPアドレスと処理サーバポート番号が含まれているかを判定する。取得部31bは、転送パケット84aのIPヘッダのオプション部から、処理サーバIPアドレスと処理サーバポート番号を取得する。
(27) The receiving unit 21b of the
さらに、取得部31bは、転送パケット84aの送信元IPアドレスをキーとして、接続テーブル52b(図7(c))を検索することにより、前段側と後段側のいずれの装置からパケットを受信したかを判定する。取得部31bは、転送パケット84bの送信元は負荷分散装置10aであり、負荷分散装置10aは負荷分散装置10bの前段側に位置すると判定する。そこで、取得部31bは、転送パケット84aから取得した処理サーバIPアドレスおよび処理サーバポート番号を検索部41bに出力する。ここでは、取得部31bは、処理サーバの識別情報として、サーバ5bのIPアドレスとポート番号を検索部41bに通知する。
Further, the acquisition unit 31b searches the connection table 52b (FIG. 7 (c)) using the transmission source IP address of the
(28)検索部41bは、転送パケット84aから取得した処理サーバIPアドレスおよび処理サーバポート番号をキーとして、振り分けリスト51bを検索することにより、転送先のIPアドレスとポート番号を特定する。図10に示すように、振り分けリスト51bでは、処理サーバがサーバ5bである場合の転送先は、サーバ5bとなっている。このため、検索部41bは、負荷分散装置10bが処理サーバに直接パケットを送信できると判定する。さらに、検索部41bは、転送先となるサーバ5bでは、IPヘッダのオプション部の処理ができるかを、接続テーブル52bを用いて判定する。ここでは、検索部41bは、転送先のノードでは、IPヘッダのオプション部を処理できないと判定する。検索部41bは、転送先であるサーバ5bのIPアドレスおよびポート番号、および、転送先ではIPヘッダのオプション部を処理できないことを、書き換え部24bに通知する。
(28) The search unit 41b specifies the transfer destination IP address and port number by searching the
(29)書き換え部24bは、検索部41bから通知された転送先の情報に従い、サーバ5bの情報を、IPヘッダ中の宛先IPアドレスと、宛先ポート番号に設定する。さらに、書き換え部24bは、サーバ5bがIPヘッダのオプション部の処理を行わないため、IPヘッダのオプション部の情報を削除する。従って、書き換え部24bは、転送パケット84aを要求パケット83dに変換しているといえる。要求パケット83dのデータは、要求パケット83aのデータと同じである。書き換え部24bは、要求パケット83dを送信部25bに出力する。送信部25bは、要求パケット83dをサーバ5bに送信する。
(29) The rewriting unit 24b sets the information of the
(30)サーバ5bは、要求パケット83dを受信する。サーバ5bは、要求パケット83dのデータを処理する。
(30) The
要求パケット83b、83cについても、同様に処理が行われる。このため、要求パケット83a〜83cが端末2からサーバ5bに送信される間に、各パケットについて1回ずつ、パケット中のデータの解析が行われるだけですむ。換言すると、端末2から要求パケット83a〜83cを受信している負荷分散装置10a以外は、パケット中のデータを処理しない。このため、ネットワークの処理負荷が小さくなる。
The
図11は、負荷分散装置10の処理の例を説明するフローチャートである。図11は、前段の負荷分散装置10が要求パケット83を受信したときに行う処理の例を示している。図11は、要求パケット83がHTTPリクエストを含むパケットである場合を例としているが、端末2側からサーバ5に送信される他の要求パケット83についても、同様に処理が行われる。
FIG. 11 is a flowchart for explaining an example of processing of the
受信部21は、要求パケット83を受信する(ステップS1)。前段の負荷分散装置10が受信する要求パケット83には、IPヘッダのオプション部にサーバの識別情報が含まれていない。そこで、取得部31からの要求に応じて、パケットバッファ22は、要求パケット83をバッファリングする(ステップS2)。抽出部32は、パケットバッファ22にバッファリングされている要求パケット83のデータからHTTPヘッダを特定し、HTTPヘッダを解析する(ステップS3)。抽出部32は、解析の結果、HTTPヘッダ中に付加情報が含まれているかを判定する(ステップS4)。付加情報がHTTPヘッダ中に含まれていない場合、選択部23は、要求パケット83の振り分け先を決定する(ステップS4でNo、ステップS7)。書き換え部24は、選択部23で決定された転送先に応じて、要求パケット83のIPヘッダ中の宛先IPアドレスと宛先ポート番号を変更する(ステップS8)。送信部25は、書き換え部24での処理後の要求パケット83を転送先に送信する(ステップS12)。
The receiving
一方、付加情報が含まれている場合、抽出部32は、付加情報を検索部41に出力し、検索部41は、振り分けリスト51中から付加情報に対応付けられたエントリを検索する(ステップS4でYes、ステップS5)。付加情報に対応付けられたエントリが振り分けリスト51にない場合、ステップS7以降の処理が行われる(ステップS6でNo)。振り分けリスト51から、付加情報を含むエントリを取得できた場合、検索部41は、付加情報に対応付けられている転送先と、処理サーバの識別情報を取得する(ステップS6でYes、ステップS9)。なお、処理サーバの識別情報は、処理サーバに割り当てられたIPアドレスと、要求パケット83に含まれているデータを処理するアプリケーションを指定するポート番号である。検索部41は、処理サーバの識別情報を変換部44、転送先の情報を書き換え部24に出力する。変換部44は、処理サーバについての識別情報をIPヘッダのオプション部に格納することにより、要求パケット83を転送パケット84に変換する(ステップS10)。送信部25は、書き換え部24での処理後の要求パケット83を転送先に送信する(ステップS12)。
On the other hand, if additional information is included, the
図12は、負荷分散装置10の処理の例を説明するフローチャートである。図12は、後段の負荷分散装置10が、前段の負荷分散装置10からパケットを受信したときに行う処理の例を示している。
FIG. 12 is a flowchart for explaining an example of processing of the
受信部21は、パケットを受信する(ステップS21)。後段の負荷分散装置10が受信するパケットには、ヘッダのオプション部にサーバの識別情報が含まれている可能性がある。そこで、取得部31は、受信したパケットのヘッダに処理サーバを特定する情報が含まれているかを判定する(ステップS22)。処理サーバの情報がヘッダに含まれていない場合、パケットバッファ22は、取得部31からの要求に応じて、パケットをバッファリングする(ステップS23)。その後、図11を参照しながら説明したステップS7、S8、S12と同様の処理によって、パケットの転送が行われる(ステップS26、S27、S31)。
The receiving
一方、後段の負荷分散装置10が転送パケット84を受信した場合、受信したヘッダのオプション部には処理サーバの識別情報が含まれている。ヘッダのオプション部にサーバの識別情報が含まれている場合、取得部31は、パケットのヘッダから処理サーバの情報を取得する(ステップS24)。取得部31は、処理サーバの情報を検索部41に出力する。検索部41は、取得部31から通知された処理サーバの情報を含むエントリを、振り分けリスト51から検索する(ステップS25)。処理サーバの情報を含むエントリがある場合、そのエントリに含まれている転送先のIPアドレスとポート番号を取得し、書き換え部24に出力する(ステップS25でYes、ステップS28)。書き換え部24は、パケットのヘッダに含まれている処理サーバの情報を削除することにより、転送パケット84を要求パケット83に変換する(ステップS29)。さらに、書き換え部24は、要求パケット83の送信先を、検索部41から通知された転送先の装置のIPアドレスとポート番号に変更し、送信部25を介して要求パケット83を転送する(ステップS30、S31)。一方、処理サーバの情報を含むエントリが無い場合、ステップS26以降の処理が行われる(ステップS25でNo)。
On the other hand, when the subsequent
図13は、負荷分散装置10の処理の例を説明するフローチャートである。図13は、後段の負荷分散装置10がサーバ5からパケットを受信したときに行う処理の例を示している。ステップS41、S42は、図11を参照しながら説明したステップS1、2と同様である。抽出部32は、パケットバッファ22にバッファリングされている応答パケット81のデータに付加情報が含まれているかを判定する(ステップS43)。付加情報がデータに含まれている場合、抽出部32は、付加情報を振り分けリスト管理部42と情報付加部43に出力する(ステップS43でYes)。振り分けリスト管理部42は、送信元のサーバ5の識別情報と付加情報を対応付けて、振り分けリスト51に記録する(ステップS44)。情報付加部43は、応答パケット81のヘッダに、処理サーバの情報と付加情報を含めることにより、応答パケット81を通知パケット82に変換する(ステップS45)。書き換え部24は、通知パケット82の転送を行うことができるように、IPヘッダ中のIPアドレスとポート番号の情報を設定する(ステップS46)。送信部25は、書き換え部24での処理後の通知パケット82を、前段の負荷分散装置10に送信する(ステップS48)。
FIG. 13 is a flowchart for explaining an example of processing of the
一方、付加情報がデータに含まれていない場合、パケットは書き換え部24に出力される(ステップS43でNo)。書き換え部24は、受信したパケットを前段の負荷分散装置10に送信できるように、IPヘッダ中のIPアドレスとポート番号を設定する(ステップS47)。送信部25は、書き換え部24での処理後の通知パケット82を、前段の負荷分散装置10に送信する(ステップS48)。
On the other hand, if the additional information is not included in the data, the packet is output to the rewriting unit 24 (No in step S43). The rewriting
図14は、負荷分散装置10の処理の例を説明するフローチャートである。図14は、前段の負荷分散装置10が後段の負荷分散装置10からパケットを受信したときに行う処理の例を示している。ステップS51は、図11を参照しながら説明したステップS1と同様である。取得部31は、パケットバッファ22にバッファリングされているパケットのヘッダに処理サーバの情報と付加情報が含まれているかを判定する(ステップS52)。パケットのヘッダに処理サーバの情報と付加情報が含まれている場合、前段の負荷分散装置10は、通知パケット82を受信している(ステップS52でYes)。そこで、パケットのヘッダに処理サーバの情報と付加情報が含まれている場合、取得部31は,ヘッダからそれらの情報を取得する(ステップS53)。振り分けリスト管理部42は、振り分けリスト51に、処理サーバの識別情報、送信元の装置の情報、付加情報を対応付けて記録する(ステップS54)。書き換え部24は、接続テーブル52を用いて、通知パケット82に含まれている情報の宛先が端末2であることを特定すると、通知パケット82を応答パケット81に変換する(ステップS55)。このとき、書き換え部24は、ヘッダ部から付加情報と処理サーバの情報を削除する。さらに、書き換え部24は、得られた応答パケット81の送信元IPアドレスと送信元ポート番号を、サーバ5への振り分けに使用しているIPアドレスとポート番号に書き換える(ステップS56)。書き換え部24での処理が終わると、送信部25は、応答パケット81を端末2に転送する(ステップS58)。一方、パケットのヘッダに処理サーバの情報と付加情報が含まれていない場合、前段の負荷分散装置10は、付加情報を含むパケットを受信していないと判定する(ステップS52でNo)。そこで、書き換え部24は、受信したパケットの送信元IPアドレスと送信元ポート番号を、サーバ5への振り分けに使用しているIPアドレスとポート番号に書き換え、送信部25を介して、端末2に転送する(ステップS57、S58)。
FIG. 14 is a flowchart for explaining an example of processing of the
このように、第1の実施形態にかかる方法によると、応答パケット81は、サーバ5から応答パケット81を受信した後段の負荷分散装置10(通知装置)において、通知パケット82に変換される。このため、通知装置以外の負荷分散装置10は、通知パケット82のヘッダを解析することによって、付加情報、処理サーバ、次に要求パケット83を転送する場合の転送先の組合せを取得できる。従って、通知装置以外の負荷分散装置10は、データの解析やデータの解析に伴うパケットのバッファリングを行わないため、効率的にパケットが処理できる。さらに、要求パケット83は、端末2から要求パケット83を受信した前段の負荷分散装置10(受信装置)において、転送パケット84に変換される。このため、受信装置以外の負荷分散装置10は、転送パケット84のヘッダを解析することにより、転送先の装置を特定することができる。従って、受信装置以外の負荷分散装置10は、データの解析やデータの解析に伴うパケットのバッファリングを行わないため、効率的にパケットが処理できる。
Thus, according to the method according to the first embodiment, the
<第2の実施形態>
第1の実施形態では、負荷分散装置10が2段階に接続されている場合を例として説明したが、3以上の負荷分散装置10を経由してパケットがサーバ5に転送される場合でも、パケットの処理を効率化することができる。
<Second Embodiment>
In the first embodiment, the case where the
図15は、第2の実施形態での故障監視パケットの送受信の例を示すシーケンス図である。図15は、負荷分散装置10が3段階に接続されている場合を例として示す。負荷分散装置10aは端末2と通信する負荷分散装置10であるとする。負荷分散装置10bと負荷分散装置10cは、負荷分散装置10aに接続されており、負荷分散装置10dと負荷分散装置10e(図示せず)が負荷分散装置10bに接続されているものとする。負荷分散装置10dには、サーバ5gを含む複数のサーバ5が接続されているものとする。故障監視パケットの送受信に際して、負荷分散装置10aと負荷分散装置10bの間の通信について行われる処理は、第1の実施形態において図6を参照しながら説明した手順(a1)〜(a6)と同様である。
FIG. 15 is a sequence diagram illustrating an example of transmission / reception of a failure monitoring packet according to the second embodiment. FIG. 15 shows an example in which the
故障監視パケットを負荷分散装置10aから受信した負荷分散装置10bは、負荷分散装置10dを宛先として、故障監視パケットを送信する(c1)。負荷分散装置10dは、負荷分散装置10bから故障監視パケットを受信すると、負荷分散装置10bが負荷分散装置10dの前段であることを接続テーブル52dに記録する(c2)。ここで、負荷分散装置10dに接続されているサーバ5のうちのいずれか1つ以上が正常に動作していれば、負荷分散装置10bからのパケットをサーバ5に転送できる。このため、負荷分散装置10dは、サーバ5gに故障監視パケットを送信する(d1)。
The
サーバ5gからの負荷分散装置10dに故障監視パケットに対する確認応答により、負荷分散装置10dは、サーバ5gが正常に動作していると判定したとする。すると、負荷分散装置10dは、サーバ5gが負荷分散装置10dの後段であることを接続テーブル52dに記録する(d2)。さらに、負荷分散装置10dは、負荷分散装置10dが正常に動作しているという旨の確認応答を負荷分散装置10bに返信する(d3)。負荷分散装置10bは、負荷分散装置10dからの確認応答を受信すると、負荷分散装置10aに、負荷分散装置10bが正常に動作している旨の確認応答を返信する(c3)。その後、適宜、故障監視パケットを用いて確立されたコネクションが切断される。
It is assumed that the
図16は、第2の実施形態でのパケットの送受信の例を示すシーケンス図である。
(41)これまでサーバ5へアクセスしていない端末2が、サーバ5にアクセスするために、パケットを送信したとする。このとき、パケットには付加情報が含まれていないので、パケットを受信した負荷分散装置10は、予め決められた方法に基づいて、パケットを転送する。ここでは、パケットは、負荷分散装置10a、10b、10dを経て、サーバ5gに転送されたとする。
FIG. 16 is a sequence diagram illustrating an example of packet transmission / reception in the second embodiment.
(41) It is assumed that the
(42)サーバ5gは、端末2宛ての応答データと付加情報を含む応答パケット81eを生成し、負荷分散装置10dに送信する。
(42) The
(43)負荷分散装置10dは、応答パケット81eをサーバ5gから受信しているので、応答パケット81eの処理においては、通知装置として動作する。そこで、負荷分散装置10dは、応答パケット81eを通知パケット82eに変換し、負荷分散装置10bに転送する。このときの負荷分散装置10dで行われる処理は、図9を参照しながら説明した手順(12)〜(16)と同様である。
(43) Since the
(44)負荷分散装置10bは、通知パケット82eのヘッダから付加情報、処理サーバがサーバ5gであること、通知パケット82eの送信元が負荷分散装置10dであることを特定し、振り分けリスト51bに記録する。このとき行われる処理は、図9を参照しながら説明した手順(17)と同様である。負荷分散装置10bの書き換え部24bは、接続テーブル52bを参照することにより、負荷分散装置10aが負荷分散装置10bの前段に位置していることを特定する。そこで、書き換え部24bは、通知パケット82eの送信元の情報を負荷分散装置10bがサーバ5への振り分けに使用するIPアドレスとポート番号に変換した上で、負荷分散装置10aに転送する。
(44) The
(45)負荷分散装置10aは、負荷分散装置10bから通知パケット82eを受信する。負荷分散装置10aは、通知パケット82eのヘッダを用いて、付加情報、処理サーバがサーバ5gであること、通知パケット82eの送信元が負荷分散装置10bであることを特定し、振り分けリスト51aに記録する。さらに、負荷分散装置10aは、通知パケット82eを応答パケット81fに変換する。このとき行われる処理は、図9を参照しながら説明した手順(18)と同様である。
(45) The
(46)端末2は、応答パケット81fを受信すると、図9の手順(19)と同様に、付加情報を保存する。
(46) Upon receipt of the
(47)次に、端末2が、付加情報を含めた要求パケット83fを生成したとする。要求パケット83fは、負荷分散装置10aに送信される。
(47) Next, it is assumed that the
(48)負荷分散装置10aは、要求パケット83fを端末2から受信しているので、要求パケット83fの処理においては、受信装置として動作する。そこで、負荷分散装置10aは、要求パケット83fを転送パケット84fに変換し、負荷分散装置10bに転送する。このときの負荷分散装置10aで行われる処理は、図10を参照しながら説明した手順(22)〜(26)と同様である。
(48) Since the
(49)負荷分散装置10bは、転送パケット84fのヘッダから処理サーバがサーバ5gであることを特定する。このとき行われる処理は、図10を参照しながら説明した手順(27)と同様である。さらに、負荷分散装置10bは、振り分けリスト51bから、サーバ5gに転送パケット84fを転送するための転送先を特定する。さらに、接続テーブル52を参照することにより、負荷分散装置10bは、転送先の負荷分散装置10dがIPヘッダのオプション部分を処理できることを特定する。そこで、負荷分散装置10bは、転送パケット84fを負荷分散装置10dに転送する。
(49) The
(50)負荷分散装置10dは、負荷分散装置10bから転送パケット84fを受信する。負荷分散装置10dは、転送パケット84fのヘッダを用いて、処理サーバがサーバ5gであることを特定する。さらに、振り分けリスト51dと接続テーブル52dを用いて、転送パケット84fの転送先がサーバ5gであることと、サーバ5gがIPヘッダのオプション部の処理を行わないことを特定する。そこで、負荷分散装置10dは、転送パケット84fを要求パケット83gに変換して、サーバ5gに転送する。このとき行われる処理は、図10を参照しながら説明した手順(27)〜(29)と同様である。
(50) The
なお、図16では、負荷分散装置10が3段階に設置されている場合を例として説明したが、負荷分散装置10が設定される段数は、3以上の任意の数である。負荷分散装置10が4段以上接続されている場合、端末2と直接通信を行う負荷分散装置10は、負荷分散装置10aと同様の処理を行う。また、サーバ5と直接通信を行う負荷分散装置10は、図16を用いて説明した負荷分散装置10dと同様の処理を行う。端末2とサーバ5のいずれとも直接通信を行わない負荷分散装置10の処理は、図16を用いて説明した負荷分散装置10bの処理と同様である。
In addition, although FIG. 16 demonstrated as an example the case where the
図17は、負荷分散装置10の処理の例を説明するフローチャートである。図17は、通知装置と受信装置のいずれとしても動作しない負荷分散装置10が、受信装置から転送パケット84を受信したときに行う処理の例を示している。なお、通知装置と受信装置のいずれとしても動作しない負荷分散装置10は、ネットワーク中で、最も前段の負荷分散装置10ではなく、さらに、最も後段の負荷分散装置10でもない負荷分散装置10である。このような負荷分散装置10を、中段の負荷分散装置10と記載することもある。図17のステップS61〜S68は、図12を参照しながら説明したステップS21〜S28と同様である。しかし、中段の負荷分散装置10装置は、転送パケット84を要求パケット83に変換しないで、転送先に転送する(ステップS69、S70)。また、ステップS67の処理が終わったパケットも、転送先に転送される(ステップS70)。
FIG. 17 is a flowchart for explaining an example of processing of the
図18は、負荷分散装置10の処理の例を説明するフローチャートである。図18は、通知装置と受信装置のいずれとしても動作しない負荷分散装置10が、通知装置から通知パケット82を受信したときに行う処理の例を示している。図18のステップS81〜SS84、S86、S87は、図14を参照しながら説明したステップS51〜S54、S57、S58と同様である。ステップS84の処理の後、中段の負荷分散装置10は、通知パケット82を応答パケット81に変換しないで、転送先に転送する(ステップS85、S87)。
FIG. 18 is a flowchart for explaining an example of processing of the
なお、サーバ5と直接通信を行う負荷分散装置10の処理と、端末2と直接通信を行う負荷分散装置10の処理を表すフローチャートは、第1の実施形態と同様に表せる。
Note that the flowchart representing the processing of the
このように、付加情報を含む応答パケット81は、応答パケット81を受信した負荷分散装置10である通知装置により、通知パケット82に変換される。このため、通知装置よりも前段側の負荷分散装置10は、通知パケット82のヘッダを用いて付加情報、処理サーバ、次に送信される要求パケット83の転送先の組合せを取得する。さらに、付加情報を含む要求パケット83は、要求パケット83を受信した負荷分散装置10である受信装置によって、転送パケット84に変換される。このため、受信装置よりも後段に設置されている負荷分散装置10は、転送パケット84のヘッダから、処理サーバを特定し、転送先を決定できる。このため、応答パケット81や要求パケット83のデータの解析が行われる回数は、全ての負荷分散装置10がデータの処理を行う場合の回数を負荷分散装置10の段数の数で割った回数となる。例えば、図16の例では、応答パケット81や要求パケット83のデータの解析が行われる回数は、全ての負荷分散装置10がデータの処理を行う場合の3分の1である。
As described above, the
<第3の実施形態>
図19は、アプリケーションレベルの故障監視を行う場合のパケットの送受信の例を示すシーケンス図である。第3の実施形態では、アプリケーションレベルの故障監視を行うことにより、接続テーブル52が生成される場合の例を説明する。なお、図19は、図6と比較しやすくするために、負荷分散装置10aと負荷分散装置10bの間での故障監視パケットを用いた通信と、負荷分散装置10bとサーバ5bの間での通信を例として示している。
<Third Embodiment>
FIG. 19 is a sequence diagram illustrating an example of packet transmission / reception when application level failure monitoring is performed. In the third embodiment, an example in which the connection table 52 is generated by performing failure monitoring at the application level will be described. In FIG. 19, for easy comparison with FIG. 6, communication using the failure monitoring packet between the
(f1)負荷分散装置10aは、通信を開始するための制御パケットを負荷分散装置10bとの間で送受信する。このときに生成される制御パケットのIPヘッダ内のオプション部には、情報は記録されていないものとする。負荷分散装置10aと負荷分散装置10bは、TCPのプロトコルに基づいて、コネクションを確立する。
(F1) The
(f2)故障監視部11aは、負荷分散装置10bと負荷分散装置10aの間のコネクションが確立すると、HTTPリクエストを、故障監視パケットとして、負荷分散装置10bに送信する。なお、図19の例では、HTTPリクエストのメソッドとしてHEADが使用されている。故障監視部11aは、負荷分散装置10aがIPヘッダのオプション部を処理できることを通知するために、故障監視パケットとして送信するHTTPリクエスト中のメッセージヘッダに、送信元のIPアドレスを通知するための情報を含める。送信元のIPアドレスを通知するための情報は、IPアドレスを通知するために使用するヘッダ名と、送信元のIPアドレスが対になっているものとする。例えば、負荷分散装置10aのIPアドレスがXXX.XXX.XXX.XXXである場合、負荷分散装置10aから負荷分散装置10bに送信されるHTTPリクエストでは「送信元IPアドレス通知:XXX.XXX.XXX.XXX」のように表記できる。
(F2) When the connection between the
(f3)負荷分散装置10bは、負荷分散装置10aから、故障監視パケットを受信する。故障監視部11bは、故障監視パケットに送信元のIPアドレスを通知するための情報が含まれているかを判定する。故障監視パケットの送信元のIPアドレスが故障監視パケットのメッセージヘッダを用いて通知されている場合、故障監視部11bは、故障監視パケットで通知されたIPアドレスが割り当てられた負荷分散装置10の後段に位置すると判定する。図19の例では、故障監視部11bは、負荷分散装置10aが負荷分散装置10bの前段にあることを、接続テーブル52bに記録する。
(F3) The
(g1)負荷分散装置10bは、負荷分散装置10aに応答する内容を決定するために、データの転送先となるサーバ5bとの間の故障監視を行う。故障監視部11bは、サーバ5bとの間でTCPプロトコルを用いてコネクションを確立する。
(G1) The
(g2)故障監視部11bは、サーバ5bとの間にコネクションを確立すると、手順(f2)の故障監視部11aと同様の手順で生成した故障監視パケットとなるHTTPリクエストをサーバ5bに送信する。このとき、故障監視部11bは、負荷分散装置10bがIPヘッダ中のオプション部を処理できることを通知するために、送信元アドレスを通知するヘッダを、HTTPリクエストに含めておく。
(G2) When the failure monitoring unit 11b establishes a connection with the
(g3)サーバ5bは、正常に動作している場合、負荷分散装置10bから受信した故障監視パケットに対して確認応答を送信する。図19の例では、確認応答は、サーバ5bが負荷分散装置10bに「200 OK」を通知するためのHTTPレスポンスである。ここで、サーバ5bは、IPヘッダ中のオプション部を処理しないので、送信元アドレスを通知する情報はHTTPレスポンスに含まれていない。
(G3) When the
(g4)負荷分散装置10bは、サーバ5bからHTTPレスポンスを受信する。すると、故障監視部11bは、サーバ5bを、負荷分散装置10bの後段の装置として接続テーブル52bに記録する。このとき、サーバ5bから送信されてきたHTTPレスポンス中に、送信元のIPアドレスを通知する情報が含まれていないので、故障監視部11bは、サーバ5bをIPヘッダのオプション部を処理しない装置として記録する。
(G4) The
(f4)故障監視部11bは、サーバ5bが正常に動作していると判定すると、負荷分散装置10aに対して、負荷分散装置10bが正常に動作していることを通知するための確認応答を送信する。このとき、故障監視部11bは、負荷分散装置10bがIPヘッダのオプション部を処理できることを負荷分散装置10aに通知するために、負荷分散装置10bに割り当てられたIPアドレスを、HTTPレスポンスのメッセージヘッダに含める。
(F4) When the failure monitoring unit 11b determines that the
(f5)負荷分散装置10aは、負荷分散装置10bからHTTPレスポンスを受信する。すると、故障監視部11aは、負荷分散装置10bの情報を、負荷分散装置10aの後段の装置として接続テーブル52aに記録する。なお、故障監視部11aは、メッセージヘッダ中に負荷分散装置10bのIPアドレスが含まれていることから、負荷分散装置10bをIPヘッダのオプション部を処理する装置として記録する。
(F5) The
(f6)故障監視を行うための通信が終了すると、負荷分散装置10aと10bの間のコネクションと、負荷分散装置10bとサーバ5bの間のコネクションが終了される。
(F6) When the communication for performing failure monitoring is completed, the connection between the
第3の実施形態では、故障監視部11を用いて行われる故障監視を、アプリケーションレベルの故障監視とすることができるので、コネクションが正常に確立できてもアプリケーションが正常に応答しない場合も検出できる。端末2とサーバ5の間での通信に際しては、応答パケットや要求パケットは、第3の実施形態においても第1の実施形態と同様に扱われる。このため、第3の実施形態でも、端末2とサーバ5の間の通信が効率的に行われる。
In the third embodiment, the failure monitoring performed using the
<第4の実施形態>
第4の実施形態では、付加情報が長いため、ヘッダのオプション部に入りきらない場合に、付加情報を受信した通知装置と受信装置が、付加情報に対応する情報(索引値)を、他の負荷分散装置10に通知する場合について説明する。
<Fourth Embodiment>
In the fourth embodiment, since the additional information is long, the notification device and the receiving device that have received the additional information can receive the information (index value) corresponding to the additional information, when the additional information cannot be included in the header. A case of notifying the
図20は、第4の実施形態で使用されるパケットに含まれるIPヘッダのフォーマットの例である。図20に示すIPヘッダは、通知パケット82、および、転送パケット84で使用される。図20に示すIPヘッダのオプション部には、付加情報の代わりに、索引値が含まれている。通知パケット82中のIPヘッダのオプション部には、通知パケット82の転送元の負荷分散装置10で生成された索引値が含まれている。一方、転送パケット84では、転送パケット84の転送処理を行う負荷分散装置10が、転送先の負荷分散装置10から通知された索引値が含まれている。図20に示すIPヘッダ中の索引値以外の情報要素は、図8(a)、図8(b)を参照しながら説明した情報要素と同様である。
FIG. 20 is an example of the format of the IP header included in the packet used in the fourth embodiment. The IP header shown in FIG. 20 is used in the
図21は、索引値を用いたときの通知パケット82の転送処理の例を示す。手順(41)と(42)は、図16を参照しながら説明した処理と同様である。
FIG. 21 shows an example of the transfer process of the
(61)負荷分散装置10dは、応答パケット81hをサーバ5gから受信しているので、応答パケット81hの処理においては、通知装置として動作する。そこで、負荷分散装置10dは、応答パケット81hのデータから付加情報を取得し、付加情報に対応する索引値Aを生成する。索引値の生成方法は、付加情報を一意に特定できる任意の方法である。以下、索引値は、負荷分散装置10d中の記憶部50dの中で、付加情報か通知された索引値の書き込みに使用したアドレスの値である場合を例として説明する。この場合、振り分けリスト管理部42dが振り分けリスト51dを生成するときに、索引値を求め、情報付加部43dに出力する。振り分けリスト管理部42dは、付加情報と処理サーバがサーバ5gであることを、索引値Aに対応付けて、振り分けリスト51dに記録する。この例では、索引値Aは、負荷分散装置10dに備えられたメモリ中で、振り分けリスト管理部42dが処理サーバ5gの識別情報の書き込みに使用したアドレスであるものとする。
(61) Since the
(62)情報付加部43dは、索引値Aと処理サーバ5gの識別情報をヘッダに含めることにより、応答パケット81hを通知パケット82hに変換する。さらに、書き換え部24dは、送信元の情報を負荷分散装置10dの情報に変更する。書き換え部24dでの処理が終わると、送信部25dは、通知パケット82hを前段の負荷分散装置10bに転送する。
(62) The information adding unit 43d converts the
(63)負荷分散装置10bの取得部31bは、通知パケット82hのヘッダから、索引値Aと処理サーバ5gの識別情報を取得する。振り分けリスト管理部42bは、索引値Bを生成し、索引値Aと処理サーバ5gの識別情報を、索引値Bに対応付けて振り分けリスト51bに記憶する。ここで、索引値Bは、索引値Aの書き込みに使用したアドレスの値であるものとする。振り分けリスト管理部42bは、索引値Bを情報付加部43bに出力する。
(63) The acquisition unit 31b of the
(64)情報付加部43bは、通知パケット82hに含まれている索引値Aを、負荷分散装置10bで生成された索引値(索引値B)に変更する。さらに、書き換え部24bは、通知パケット82hの送信元を負荷分散装置10bでの振り分けに使用している情報に変更する。書き換え部24bでの処理により得られた通知パケット82jは、送信部25bにより、負荷分散装置10aに転送される。
(64) The information adding unit 43b changes the index value A included in the
(65)負荷分散装置10aは、負荷分散装置10aよりも前段の負荷分散装置10が設置されていないことを認識している。このため、後段側の負荷分散装置10bから通知パケット82jを受信すると、パケットバッファ22aは、通知パケット82jのバッファリングを行う。並行して、取得部31aは、通知パケット82jのヘッダから、索引値Bと識別情報を取得する。抽出部32aは、通知パケット82j中のデータから、付加情報を取得する。
(65) The
(66)振り分けリスト管理部42aは、付加情報に対応付けて、索引値B、索引値Bを通知してきたノードが負荷分散装置10bであること、および、処理サーバがサーバ5gであることを、振り分けリスト51aに記録する。
(66) The distribution list management unit 42a associates the additional information with the index value B, the node that has notified the index value B is the
(67)書き換え部24aは、ヘッダから索引値B、サーバ5gの識別情報などを削除し、通知パケット82jを応答パケット81jに変換する。このとき、応答パケット81jの送信元は、負荷分散装置10aが、パケットの振り分けに使用するIPアドレスとポート番号に設定されているものとする。端末2は、応答パケット81jを受信すると、負荷分散装置10aが、パケットの振り分けに使用するIPアドレスとポート番号に対応付けて、付加情報を記憶する。
(67) The rewriting unit 24a deletes the index value B, the identification information of the
図22は、転送パケット84について行われる転送処理の例を示す。端末2から要求パケット83jが送信されるときの処理は、図16を参照しながら説明した手順(47)と同様である。
FIG. 22 shows an example of transfer processing performed on the
(71)負荷分散装置10aは、要求パケット83jを端末2から受信しているので、要求パケット83jの処理においては、受信装置として動作する。そこで、抽出部32aは、要求パケット83j中のデータを解析して、付加情報を取得する。
(71) Since the
(72)検索部41aは、抽出部32aから通知された付加情報に対応付けられた識別情報を、振り分けリスト51aから特定する。検索部41aは、得られた識別情報を変換部44aに出力する。
(72) The search unit 41a identifies identification information associated with the additional information notified from the extraction unit 32a from the
(73)変換部44aは、入力された識別情報を用いて、要求パケット83jを転送パケット84jに変換し、負荷分散装置10bに転送する。
(73) The conversion unit 44a converts the
(74)負荷分散装置10bの取得部31bは、転送パケット84jのヘッダから、識別情報を取得し、検索部41bに出力する。検索部41bは、識別情報に含まれているIPヘッダとポート番号の組み合わせに対応付けられた負荷分散装置10を、振り分けリスト51bを用いて検索する。ここでは、手順(63)によりサーバ5gの識別情報と負荷分散装置10dの情報が対応付けられている。そこで、書き換え部24bは、検索部41bからの要求に応じて、転送パケット84jの宛先を負荷分散装置10dに変更し、送信部25bを介して送信する。
(74) The acquisition unit 31b of the
(75)負荷分散装置10dの取得部31dは、転送パケット84jに含まれている識別情報を用いて、転送パケット84jに含まれているデータがサーバ5gで処理されることを特定する。そこで、書き換え部24dは、転送パケット84jのヘッダから識別情報などを削除することにより、転送パケット84jを要求パケット83kに変換する。書き換え部24dは、要求パケット83kを、送信部25dを介してサーバ5gに送信する。
(75) The acquisition unit 31d of the
図23は、負荷分散装置10の処理の例を説明するフローチャートである。図23は、通知装置として動作する負荷分散装置10がサーバ5から応答パケット81を受信したときの処理の例を示す。ステップS91〜S94は、図13を参照しながら説明したステップS41〜S44と同様である。その後、振り分けリスト管理部42は、付加情報に対応する索引値を生成し、付加情報に対応付けて振り分けリスト51に記憶する(ステップS95)。情報付加部43は、応答パケット81のヘッダに、処理サーバの情報と索引値を含めることにより、応答パケット81を通知パケット82に変換する(ステップS96)。ステップS97〜S99の処理は、図13を参照しながら説明したステップS46〜S48と同様である。
FIG. 23 is a flowchart for explaining an example of processing of the
図24は、負荷分散装置10の処理の例を説明するフローチャートである。図24は、受信装置として動作する負荷分散装置10以外の負荷分散装置10が、通知パケット82を受信した負荷分散装置10の処理の例を示す。ステップS101、S102は、図18を参照しながら説明したステップS81、S82と同様である。取得部31はヘッダから処理サーバの識別情報と索引値を取得する(ステップS103)。振り分けリスト管理部42は、取得部31が取得した索引値を記録するアドレスの値を取得し、得られた値を通知用の索引値とする(ステップS104)。振り分けリスト管理部42は、通知用の索引値に対応付けて、処理サーバの識別情報、通知パケット82の転送元、通知パケット82の転送元から通知された索引値を、振り分けリスト51に記憶する(ステップS105)。書き換え部24は、通知パケット82中の索引値を、自ノードが通知用に生成した索引値に変更する(ステップS106)。ステップS107〜S109は、図18のステップS85〜S87と同様である。
FIG. 24 is a flowchart for explaining an example of processing of the
図25は、負荷分散装置10の処理の例を説明するフローチャートである。図25は、受信装置として動作する負荷分散装置10が、通知パケット82を受信した場合の処理の例を示す。ステップS111〜S113は、図24のステップS101〜S103と同様である。書き換え部24は、ヘッダから識別情報などを除去することにより、通知パケット82を応答パケット81に変換する(ステップS114)。さらに、パケットバッファ22で変換後の応答パケット81をバッファリングし、抽出部32がデータから付加情報を取得する(ステップS115、S116)。振り分けリスト管理部42は、付加情報に対応付けて、ステップS113で取得した索引値、通知パケット82を転送してきた負荷分散装置10の情報、および、処理サーバの識別情報を、振り分けリスト51に記録する(ステップS117)。ステップS118〜S120は、図24のステップS107〜S109と同様である。
FIG. 25 is a flowchart for explaining an example of processing of the
なお、要求パケットが端末2からサーバ5に送信されるときの処理は、図11、図12、図17と同様である。
The processing when the request packet is transmitted from the
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
<Others>
The embodiment is not limited to the above, and can be variously modified. Some examples are described below.
例えば、第4の実施形態において、送受信される転送パケット84のヘッダに付加情報と索引値が含まれていてもよい。図26は、索引値を用いたときの転送パケット84の転送処理の例を示す。図26中の手順(47)と手順(71)は、図22と同様である。手順(81)において、検索部41aは、抽出部32aから通知された付加情報に対応付けられた識別情報と索引値Bを、振り分けリスト51aから特定する。検索部41aは、得られた識別情報を変換部44aに出力する。手順(82)では、変換部44aは、識別情報と索引値を要求パケット83のヘッダに含めることにより、要求パケット83jを転送パケット84mに変換し、負荷分散装置10bに転送する。手順(83)で負荷分散装置10bの取得部31bは、転送パケット84mのヘッダから索引値Bを取得し、検索部41bに出力する。検索部41bは、検索値Bに対応付けられている識別情報、検索値A、転送先の情報を検索する。ここで、検索値Bは、メモリ中で、検索値Aの書き込みに使用したアドレスを表す値である。このため、検索部41bは、容易に、検索値Aと識別情報を特定することができる。手順(84)において、変換部44bは、転送パケット84mのアドレス中の索引値Bを、索引値Aに変更することにより、転送パケット84nを生成し、負荷分散装置10dに送信する。手順(85)では、負荷分散装置10dの取得部31dは、索引値Aを転送パケット84nのヘッダから取得し、検索部41dに通知する。検索値Aは、負荷分散装置10dに備えられたメモリ中で、処理サーバ5gの識別情報の書き込みに使用したアドレスを表す値である。このため、検索部41dは、検索値Aの値のアドレスにアクセスすることにより識別情報を特定できる。手順(86)において、書き換え部24dは、転送パケット84nを要求パケット83nに変換した後で、要求パケット83nをサーバ5gに転送する。
For example, in the fourth embodiment, additional information and an index value may be included in the header of the
図26に示す方法で転送パケット84を転送すると、図22に示す方法に比べて、各負荷分散装置10での処理負荷は重くなる。しかし、各負荷分散装置10において、記憶している識別子を転送パケット84か要求パケット83に含めるので、通知パケット82の転送の際に通知パケット82のヘッダ中の識別情報が改変されたとしても、処理サーバを正しく特定できる可能性がある。
When the
上記の説明で記載したテーブルやパケットのフォーマットは一例であり、実装に応じて変形されうる。例えば、転送パケット84のIPヘッダにも、通知パケット82と同様に、付加情報が含まれていても良い。転送パケット84に付加情報が含められる場合、図8(b)のパディングの代わりに付加情報がIPヘッダのオプション部に記録される。
The table and packet formats described in the above description are examples, and can be modified according to the implementation. For example, similar to the
上記の説明では、IPヘッダのオプション部に付加情報等が記録される場合を例として説明したが、付加情報や識別情報の通知にTCPヘッダのオプション部が使用されても良い。この場合、IPヘッダは規定どおりに使用される。取得部31は、TCPヘッダをから情報を取得し、TCPヘッダから情報が取得できない場合、パケットバッファ22と抽出部32に処理を要求する。図27は、TCPヘッダの例を示す。TCPヘッダは、送信元ポート番号、宛先ポート番号、シーケンス番号、ACK番号、データオフセット、リザーブ領域、制御ビット、ウィンドウサイズ、チェックサム、緊急ポインタ、オプション部を含む。オプション部以外の領域はTCPの規定に沿って使用される。
In the above description, the case where additional information or the like is recorded in the option part of the IP header has been described as an example. However, the option part of the TCP header may be used for notification of additional information or identification information. In this case, the IP header is used as specified. The
図27(a)は、障害監視パケットに含まれるTCPヘッダの例を示す。障害監視パケットのTCPヘッダのオプション部は、オプションタイプ、オプション長、送信元IPアドレス、パディングを保持する。図27(b)は、第1〜第3の実施形態で通知パケット82や転送パケット84のTCPヘッダのフォーマットの例を示す。オプション部に含まれる情報は、図8を参照しながら説明したIPヘッダのオプション部と同様である。図27(c)は、第4の実施形態で通知パケット82や転送パケット84のTCPヘッダのフォーマットの例を示す。オプション部に含まれる情報は、図20を参照しながら説明したIPヘッダのオプション部と同様である。
FIG. 27A shows an example of the TCP header included in the failure monitoring packet. The option part of the TCP header of the failure monitoring packet holds the option type, option length, source IP address, and padding. FIG. 27B shows an example of the format of the TCP header of the
10 負荷分散装置
11 故障監視部
20 パケット処理部
21 受信部
22 パケットバッファ
23 選択部
24 書き換え部
25 送信部
30 解析部
31 取得部
32 抽出部
40 付加情報処理部
41 検索部
42 振り分けリスト管理部
43 情報付加部
44 変換部
50 記憶部
51 振り分けリスト
52 接続テーブル
61 プロセッサ
62 メモリ
63 入力装置
64 出力装置
65 バス
66 外部記憶装置
67 媒体駆動装置
68 可搬記憶媒体
69 ネットワーク接続装置
70 ネットワーク
DESCRIPTION OF
Claims (10)
前記サービスの提供に使用される複数のサーバと、
前記サービスの要求による負荷を前記複数のサーバに分散させる複数の負荷分散装置
を備え、
前記複数の負荷分散装置のうち、前記通信装置から要求パケットを受信する負荷分散装置である受信装置は、
前記要求パケット中のデータから、前記複数のサーバのうちで前記要求パケットを処理するサーバである処理サーバから付加された情報である付加情報を抽出し、
前記付加情報に対応付けられたサーバを特定する情報である特定情報を、前記要求パケットのヘッダ中に付加することにより、前記要求パケットを転送パケットに変換し、
前記受信装置から前記処理サーバまでに至る経路に含まれている負荷分散装置に、前記転送パケットを転送する
ことを特徴とする通信システム。 A communication device requesting service;
A plurality of servers used to provide the service;
A plurality of load distribution devices for distributing the load due to the service request to the plurality of servers;
Among the plurality of load distribution devices, a reception device that is a load distribution device that receives a request packet from the communication device,
From the data in the request packet, extract additional information that is information added from a processing server that is a server that processes the request packet among the plurality of servers,
By adding specific information, which is information for specifying a server associated with the additional information, in the header of the request packet, the request packet is converted into a transfer packet,
A communication system, wherein the transfer packet is transferred to a load balancer included in a path from the receiving device to the processing server.
前記特定情報で特定されるサーバに向けて、前記転送パケットを転送する
ことを特徴とする請求項1に記載の通信システム。 The load distribution apparatus that has received the transfer packet obtains the specific information by analyzing a header of the transfer packet,
The communication system according to claim 1, wherein the transfer packet is transferred toward a server specified by the specification information.
前記応答パケット中のデータから前記付加情報を抽出し、
前記付加情報と前記処理サーバを識別する識別情報を、前記応答パケットのヘッダ中に含めることにより、前記応答パケットを、前記処理サーバの情報を通知する通知パケットに変換し、
前記通知装置から前記通信装置に至る経路に含まれている負荷分散装置に、前記通知パケットを転送する
ことを特徴とする請求項1または2に記載の通信システム。 A notification device that is a load distribution device that has received a response packet that is a packet including the additional information addressed to the communication device from the processing server,
Extracting the additional information from the data in the response packet;
By including identification information for identifying the additional information and the processing server in a header of the response packet, the response packet is converted into a notification packet for notifying information on the processing server,
The communication system according to claim 1 or 2, wherein the notification packet is transferred to a load balancer included in a path from the notification device to the communication device .
前記通知パケットのヘッダを解析することにより、前記付加情報と前記識別情報の組み合わせを取得し、
前記識別情報を、前記付加情報を生成した処理サーバを特定する特定情報として、前記付加情報に対応付けて記憶し、
前記通知パケットを前記通信装置に向けて転送する
ことを特徴とする請求項3に記載の通信システム。 The load balancer that has received the notification packet,
By analyzing the header of the notification packet, to obtain a combination of the additional information and the identification information,
The identification information is stored in association with the additional information as specific information for specifying the processing server that generated the additional information,
The communication packet according to claim 3, wherein the notification packet is forwarded to the communication device .
前記通知パケットのヘッダを解析することにより、前記付加情報と前記識別情報の組み合わせを取得し、
前記識別情報を、前記付加情報を生成した処理サーバを特定する特定情報として、前記付加情報に対応付けて記憶し、
前記通知パケットのヘッダから、前記付加情報と前記識別情報を削除することにより、前記通知パケットを前記応答パケットに変換し、
前記応答パケットを、前記通信装置に送信する
ことを特徴とする請求項3に記載の通信システム。 When the receiving device receives the notification packet,
By analyzing the header of the notification packet, to obtain a combination of the additional information and the identification information,
The identification information is stored in association with the additional information as specific information for specifying the processing server that generated the additional information,
By deleting the additional information and the identification information from the header of the notification packet, the notification packet is converted into the response packet,
The communication system according to claim 3, wherein the response packet is transmitted to the communication device .
前記転送パケットのヘッダから、前記特定情報を削除することにより、前記転送パケットを前記要求パケットに変換し、
前記要求パケットを、前記処理サーバに送信する
ことを特徴とする請求項3〜5のいずれか1項に記載の通信システム。 When the notification device receives the transfer packet,
By converting the transfer packet into the request packet by deleting the specific information from the header of the transfer packet,
The communication system according to any one of claims 3 to 5, wherein the request packet is transmitted to the processing server.
サービスを要求する通信装置から要求パケットを受信する受信部と、
前記要求パケット中のデータから、前記複数のサーバのうちで前記要求パケットを処理するサーバである処理サーバから付加された情報である付加情報を抽出する抽出部と、
前記付加情報に対応付けられたサーバを特定する情報である特定情報を検索する検索部と、
前記要求パケットのヘッダ中に前記特定情報を付加することにより、前記要求パケットを、前記特定情報を含むパケットである転送パケットに変換する変換部と、
前記第1の負荷分散装置から前記処理サーバまでに至る経路に含まれている第2の負荷分散装置に、前記転送パケットを転送する送信部
を備えることを特徴とする負荷分散装置。 A first load balancer that operates in a network including a plurality of servers and a plurality of load balancers,
A receiving unit that receives a request packet from a communication device that requests a service;
An extraction unit that extracts additional information, which is information added from a processing server that is a server that processes the request packet among the plurality of servers, from data in the request packet;
A search unit for searching for specific information that is information for specifying a server associated with the additional information;
A conversion unit that converts the request packet into a transfer packet that is a packet including the specific information by adding the specific information in a header of the request packet;
A load distribution apparatus comprising: a transmission unit configured to transfer the transfer packet to a second load distribution apparatus included in a path from the first load distribution apparatus to the processing server.
前記取得部は、前記特定情報が含まれていないパケットを、前記抽出部の処理対象として前記抽出部に通知し、
前記送信部は、前記取得部が前記特定情報を抽出できたパケットを、前記特定情報で特定されるサーバに向けて転送する
ことを特徴とする請求項7に記載の負荷分散装置。 While determining whether the specific information is included in the header of the packet received by the receiving unit, further comprising an acquisition unit for acquiring the specific information,
The acquisition unit notifies the extraction unit of a packet that does not include the specific information as a processing target of the extraction unit,
The load distribution apparatus according to claim 7, wherein the transmission unit transfers a packet from which the acquisition unit has extracted the specific information toward a server specified by the specific information.
前記複数のサーバに含まれる処理サーバから、前記処理サーバへサービスを要求した端末に対する応答データと、前記処理サーバの識別に用いるために前記処理サーバが前記応答データに付加する情報である付加情報を含む応答パケットを受信する受信部と、
前記応答パケット中のデータから、前記付加情報を抽出する抽出部と、
前記付加情報と前記処理サーバを識別する識別情報を、前記応答パケットのヘッダ中に付加することにより、前記応答パケットを、前記処理サーバの情報を通知する通知パケットにする情報付加部と、
前記通知パケットを、前記端末に至る経路に含まれる第2の負荷分散装置に送信する送信部
を備えることを特徴とする負荷分散装置。 A first load balancer that operates in a network including a plurality of servers and a plurality of load balancers,
Response data from a processing server included in the plurality of servers to the terminal that requested the service to the processing server, and additional information that is information added to the response data by the processing server for use in identifying the processing server A receiving unit for receiving a response packet including:
An extraction unit for extracting the additional information from the data in the response packet;
An information adding unit that makes the response packet a notification packet for notifying information of the processing server by adding identification information for identifying the additional information and the processing server in a header of the response packet;
A load distribution apparatus comprising: a transmission unit configured to transmit the notification packet to a second load distribution apparatus included in a route to the terminal.
サービスを要求する通信装置からパケットを受信し、
前記パケット中のデータから、前記複数のサーバのうちで前記パケットを処理するサーバである処理サーバから付加された情報である付加情報を抽出し、
前記付加情報に対応付けられたサーバを特定する情報である特定情報を検索し、
前記パケットのヘッダ中に前記特定情報を付加することにより、前記パケットを、前記特定情報を含むパケットである転送パケットに変換し、
前記第1の負荷分散装置から前記処理サーバまでに至る経路に含まれている第2の負荷分散装置に、前記転送パケットを転送する
処理を行わせることを特徴とする負荷分散プログラム。 A first load balancer operating in a network including a plurality of servers and a plurality of load balancers;
Receiving a packet from the communication device requesting the service,
From the data in the packet, extract additional information that is information added from a processing server that is a server that processes the packet among the plurality of servers,
Search for specific information that is information for specifying a server associated with the additional information,
By adding the specific information in the header of the packet, the packet is converted into a transfer packet that is a packet including the specific information,
A load distribution program for causing a second load distribution device included in a path from the first load distribution device to the processing server to perform a process of transferring the transfer packet.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013104511A JP6131710B2 (en) | 2013-05-16 | 2013-05-16 | COMMUNICATION SYSTEM, LOAD DISTRIBUTION DEVICE, AND LOAD DISTRIBUTION PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013104511A JP6131710B2 (en) | 2013-05-16 | 2013-05-16 | COMMUNICATION SYSTEM, LOAD DISTRIBUTION DEVICE, AND LOAD DISTRIBUTION PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014225157A JP2014225157A (en) | 2014-12-04 |
JP6131710B2 true JP6131710B2 (en) | 2017-05-24 |
Family
ID=52123788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013104511A Expired - Fee Related JP6131710B2 (en) | 2013-05-16 | 2013-05-16 | COMMUNICATION SYSTEM, LOAD DISTRIBUTION DEVICE, AND LOAD DISTRIBUTION PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6131710B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3148125A1 (en) | 2015-09-25 | 2017-03-29 | Fujitsu Limited | Setting method, server device and service chain system |
JP2022127333A (en) | 2021-02-19 | 2022-08-31 | 株式会社リコー | Load distribution system, load distribution method, and program |
CN113806069B (en) * | 2021-08-05 | 2024-04-05 | 广东核电合营有限公司 | Nuclear power station system interaction method and device, peripheral system and storage medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4208556B2 (en) * | 2002-11-27 | 2009-01-14 | 富士通株式会社 | Relay device |
JP2007219608A (en) * | 2006-02-14 | 2007-08-30 | Fujitsu Ltd | Load balancing processing program and load balancing device |
US8416692B2 (en) * | 2009-05-28 | 2013-04-09 | Microsoft Corporation | Load balancing across layer-2 domains |
-
2013
- 2013-05-16 JP JP2013104511A patent/JP6131710B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014225157A (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9705799B2 (en) | Server-side load balancing using parent-child link aggregation groups | |
US8892768B2 (en) | Load balancing apparatus and load balancing method | |
US9413652B2 (en) | Systems and methods for path maximum transmission unit discovery | |
EP2978174B1 (en) | Interest return control message | |
US9185033B2 (en) | Communication path selection | |
CN107438012B (en) | Load balancing service forwarding method, system, balancing device and host machine | |
US8949952B2 (en) | Multi-stack subscriber sign on | |
KR20140009931A (en) | Communication method of contents requester and contents provider for providing contents and real-time streaming contents in a contents centric network based on contents name | |
US20050165885A1 (en) | Method and apparatus for forwarding data packets addressed to a cluster servers | |
US8619631B2 (en) | Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program | |
WO2020119328A1 (en) | Data transmission method, apparatus and device, and storage medium | |
JP6131710B2 (en) | COMMUNICATION SYSTEM, LOAD DISTRIBUTION DEVICE, AND LOAD DISTRIBUTION PROGRAM | |
US8650313B2 (en) | Endpoint discriminator in network transport protocol startup packets | |
US7991008B2 (en) | Method for identifying the transmission control protocol stack of a connection | |
CN111614726B (en) | Data forwarding method, cluster system and storage medium | |
WO2007119422A1 (en) | Information communication system, information communication method, node device contained in information communication system, and recording medium containing information processing program | |
CN106856456A (en) | The processing method and system of cache cluster service | |
JP2007265356A (en) | Interconnection method and device using communication protocol | |
JP7000808B2 (en) | Information processing equipment, information processing methods and programs | |
CN115514799A (en) | TCP connection method, system, network device and storage medium | |
JP6347177B2 (en) | Transfer device, control device, and communication method | |
JP4275029B2 (en) | Context-based network system and its construction method, program, and recording medium | |
JP6682459B2 (en) | Message transfer and aggregation device, and message transfer and aggregation method | |
JP2016208162A (en) | Determination method and information processing device | |
JP2007086894A (en) | Data relay method and data relay system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170207 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170307 |
|
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: 20170321 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170403 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6131710 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |