Transparent migration of TCP based connections within a network load balancing system
First Claim
1. A method for distributing connection information and data related to a client session within a load balancing system having a plurality of nodes, the distribution being made according to resource specific information contained within the initial data packets transmitted by the client, the method comprising:
- directly receiving a client connection request packet by any one and only one of the plurality of nodes in the system of load balanced nodes without a centralized load balancing node, each of nodes in the system having an interceptor and a load balancing service residing on each respective node, wherein subsequent client connection requests are received by respective ones and only ones of other nodes of the plurality of nodes;
intercepting the client connection request packet by an interceptor residing on a receiving node determined from amongst the plurality of nodes;
changing a destination port number specified in the intercepted client connection request packet to an assigned port number of a load balancing service residing on the receiving node;
redirecting the packet to the load balancing service on the receiving node using the assigned port number;
accepting the client connection request by the load balancing service residing on the receiving node;
determining a target node to which the connection information and data will be migrated to; and
migrating the connection information and data to the target node.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for enhancing a network load balancing system'"'"'s ability to distribute connection information and data amongst the plurality of nodes within the system is presented. A client connection request is redirected to a load balancing service residing on a receiving node by modifying the destination port information contained within the packet. The receiving node can be any node within the load balancing system, and is determined from amongst the plurality of nodes that comprise the system by a conventional means. A transparent connection is then established between the client and the load balancing service residing on the node by modifying subsequently transmitted connection setup packets sent by the receiving node and the client. A target node is determined according to resource specific information contained within initially received data packets from the client. The target node determined this way could be the local node or another node. If it is another node, the connection parameters and the data received over the connection are passed to a peer load balancing service residing on the target node. The target load balancing service then instructs TCP/IP to create a Transmission Control Block for the connection and TCP/IP indicates the connection to the appropriate client resource. The target load balancing service sends a “migration completed” message to the receiving node. Upon receiving this notification, the receiving load balancing service instructs a corresponding load balancing driver to stop handling subsequent packets received from that particular client, while the target node is enabled to accept the packets.
-
Citations
35 Claims
-
1. A method for distributing connection information and data related to a client session within a load balancing system having a plurality of nodes, the distribution being made according to resource specific information contained within the initial data packets transmitted by the client, the method comprising:
-
directly receiving a client connection request packet by any one and only one of the plurality of nodes in the system of load balanced nodes without a centralized load balancing node, each of nodes in the system having an interceptor and a load balancing service residing on each respective node, wherein subsequent client connection requests are received by respective ones and only ones of other nodes of the plurality of nodes; intercepting the client connection request packet by an interceptor residing on a receiving node determined from amongst the plurality of nodes; changing a destination port number specified in the intercepted client connection request packet to an assigned port number of a load balancing service residing on the receiving node; redirecting the packet to the load balancing service on the receiving node using the assigned port number; accepting the client connection request by the load balancing service residing on the receiving node; determining a target node to which the connection information and data will be migrated to; and migrating the connection information and data to the target node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A hardware computer readable storage medium having further computer executable instructions for performing the steps of:
-
receiving a client connection request packet by any one and only one of the plurality of nodes in a system of load balanced nodes without a centralized load balancing node, each of nodes in the system having an interceptor and a load balancing service residing on each respective node, wherein subsequent client connection requests are received by respective ones and only ones of other of the plurality of nodes; intercepting the client connection request packet by an interceptor residing on a receiving node determined from amongst the plurality of nodes; changing a destination port number specified in the intercepted client connection request packet to an assigned port number of a load balancing service residing on the receiving node; redirecting the packet to the load balancing service using the assigned port number; accepting the client connection request by the load balancing service residing on the receiving node; determining a target node to which the connection information and data will be migrated to; and migrating the connection information and data to the target node.
-
-
19. A method for migrating connection information and data related to a client session between nodes within a load balancing system having a plurality of nodes, the method comprising the steps of:
-
receiving a client connection request packet by any one and only one of the plurality of nodes in the system of load balanced nodes, each of nodes in the system having an interceptor and a load balancing service residing on each respective node, wherein subsequent client connection requests are received by respective ones of other of the plurality of nodes; intercepting the client connection request packet by an interceptor residing on a receiving node determined from amongst the plurality of nodes; changing a destination port number specified in the intercepted client connection request packet to an assigned port number of a load balancing service residing on the receiving node; redirecting the packet to the load balancing service; determining a target node that the connection information and data will be migrated to; migrating the connection information and data to another load balancing service residing on the target node; and establishing a connection between the client and the target node; wherein the step of determining includes hashing over resource specific information contained within the client connection request packet sent during the client session by only the receiving node. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
Specification