Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
First Claim
1. A method for enabling sessions established between a client and a server to be uniquely defined to enhance the performance of a load balancing system, the method comprising the steps ofinvoking a client-side TCP process,identifying an available session identifier for uniquely identifying the sessions between the client and the server,forming a packet to be transmitted over a network to a destination IP address, the packet containing information that includes at least the sender session identifier,transmitting the packet to the destination IP address, andwherein the step of invoking a client-side TCP process includes generating a FAILURE response, if the client-side TCP process is not enabled to identify and assign the same session identifier to related connections.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for enhancing a load balancing network'"'"'s ability to load balance sessions is presented. A session identifier is placed within the TCP packet to enable a new mechanism of load distribution and connection grouping within a load balancing system. Specifically, TCP is invoked by a user application to obtain a unique session identifier value. On receiving such a packet, the destination load balancing system hashes over at least the session identifier value, and the node corresponding to the results of the hash algorithm acquires the packet. This method of hashing ensures that the same node acquires all subsequently received TCP packets possessing the same session identifier regardless of the source IP address or source port information. The node then places an identical session identifier value in the form of a response session identifier in its TCP response packet. When the TCP packet with response session identifier is received at a load balancing system, the node whose session identifier matches the response session identifier acquires it.
209 Citations
5 Claims
-
1. A method for enabling sessions established between a client and a server to be uniquely defined to enhance the performance of a load balancing system, the method comprising the steps of
invoking a client-side TCP process, identifying an available session identifier for uniquely identifying the sessions between the client and the server, forming a packet to be transmitted over a network to a destination IP address, the packet containing information that includes at least the sender session identifier, transmitting the packet to the destination IP address, and wherein the step of invoking a client-side TCP process includes generating a FAILURE response, if the client-side TCP process is not enabled to identify and assign the same session identifier to related connections.
-
2. A method for enhancing the performance of a load balancing system, the method comprising the steps of
receiving a packet from a source IP address, the packet including at least a session identifier, parsing the received packet to identify at least the session identifier, hashing over at least the session identifier to determine which node within the load balancing system will acquire the received packet, acquiring the packet by a single node based on the results of the hashing step wherein all subsequently received packets containing the same session identifier are acquired by the same node, and establishing a connection between the source IP address and the destination IP address by allocating a TCP control block for the connection, and wherein the steps of acquiring comprises verifying the session identifier as one of a sender session identifier and a response session identifier, and if said session identifier is a response session identifier, checking to see if the session identifier corresponds to that obtained from a pool of available session identifiers, wherein the packet is passed up the TCP/IP stack of a node if the session identifier corresponds to its pool, and dropped by a node if the session identifier does not correspond to its pool.
-
3. A method for enhancing the performance of a load balancing system, the method comprising the steps of
receiving a packet from a source IP address, the packet including at least a session identifier, parsing the received packet to identify at least the session identifier, hashing over at least the session identifier to determine which node within the load balancing system will acquire the received packet, acquiring the packet by a single node based on the results of the hashing step, wherein all subsequently received packets containing the same session identifier are acquired by the same node, and establishing a connection between the source IP address and the destination IP address by allocating a TCP control block for the connection, and wherein the steps of acquiring comprises verifying the session identifier as one of a sender session identifier and a response session identifier as defined in the Session Mode of operation, and if said session identifier is a response session identifier, checking to see if the session identifier corresponds to that automatically assigned by a client/server application residing on a particular node, wherein the packet is passed up the TCP/IP stack of a node if the session identifier was assigned by a resident client/server application, and dropped by a node if the session identifier was not assigned by a resident client/server application.
-
4. A method for enabling sessions established between a client and a server to be uniquely defined, the method comprising the steps of
invoking a client-side TCP process, obtaining a unique session identifier for identifying the sessions between the client and the server, forming a packet containing data that includes at least the session identifier, wherein the same session identifier is stored within subsequent packets formed during an established session, transmitting the packet from the source IP address to the destination IP address in order to establish a connection, repeating the steps of invoking, obtaining, forming, and transmitting for the duration of the session, and wherein the step of invoking a client-side TCP process includes generating a FAILURE response, if the client-side TCP process is not enabled to identify and assign the same session identifier to related connections.
-
5. A method for enabling sessions established between a client and a server to be uniquely defined, the method comprising the steps of
invoking a client-side TCP process, obtaining a unique session identifier for identifying the sessions between the client and the server, forming a packet containing data that includes at least a session identifier, wherein the same session identifier is stored within subsequent packets formed during an established session, transmitting the packet from the source IP address to the destination IP address in order to establish a connection, repeating the steps of invoking, obtaining, forming, and transmitting for the duration of the session, and wherein the step of transmitting includes initiating a connection through a three-way hand-shake in which the retrieval of a TCP reset control bit (“ - RST”
) packet indicates a destination system that is incapable of processing packets having an affixed header.
- RST”
Specification