Methods of load balancing using primary and stand-by addresses and related load balancers and servers
First Claim
1. A method of forwarding data packets from a load balancer to a plurality of servers, the method comprising:
- receiving a first data packet of a data flow wherein the first data packet is addressed to a primary address for the load balancer and wherein the first data packet includes information for the data flow;
computing a bucket ID for the first data packet as a function of the information for the data flow;
responsive to the bucket ID for the first data packet mapping to first and second servers of the plurality of servers and responsive to the first data packet being addressed to the primary address for the load balancer, transmitting the first data packet to the first server;
receiving a second data packet of the data flow wherein the second data packet is addressed to a stand-by address for the load balancer and wherein the second data packet includes the information for the data flow;
computing a bucket ID for the second data packet as a function of the information for the data flow wherein the bucket IDs for the first and second packets are the same bucket ID;
responsive to the bucket ID for the second data packet mapping to first and second servers of the plurality of servers and responsive to the second data packet being addressed to the stand-by address for the load balancer, transmitting the second data packet to the second server.
1 Assignment
0 Petitions
Accused Products
Abstract
A first data packet of a data flow may be addressed to a primary address and include information for the data flow and a bucket ID may be computed based on the information. Responsive to the bucket ID mapping to first and second servers and the first data packet being addressed to the primary address, the first data packet may be transmitted to the first server. A second data packet may be received addressed to a stand-by address and including the information for the data flow, and a bucket ID may be computed based on the information with the bucket IDs for the first and second packets being the same. Responsive to the bucket ID for the second data packet mapping to first and second servers and the second data packet being addressed to the stand-by address, the second data packet may be transmitted to the second server.
-
Citations
21 Claims
-
1. A method of forwarding data packets from a load balancer to a plurality of servers, the method comprising:
-
receiving a first data packet of a data flow wherein the first data packet is addressed to a primary address for the load balancer and wherein the first data packet includes information for the data flow; computing a bucket ID for the first data packet as a function of the information for the data flow; responsive to the bucket ID for the first data packet mapping to first and second servers of the plurality of servers and responsive to the first data packet being addressed to the primary address for the load balancer, transmitting the first data packet to the first server; receiving a second data packet of the data flow wherein the second data packet is addressed to a stand-by address for the load balancer and wherein the second data packet includes the information for the data flow; computing a bucket ID for the second data packet as a function of the information for the data flow wherein the bucket IDs for the first and second packets are the same bucket ID; responsive to the bucket ID for the second data packet mapping to first and second servers of the plurality of servers and responsive to the second data packet being addressed to the stand-by address for the load balancer, transmitting the second data packet to the second server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A load balancer configured to forward data packets to a plurality of servers, the load balancer comprising:
-
a network interface configured to receive data packets from an outside network; a server interface configured to forward data packets to the servers; a processor coupled to the network interface and the server interface, the processor being configured to, receive a first data packet of a data flow through the network interface wherein the first data packet is addressed to a primary address for the load balancer and wherein the first data packet includes information for the data flow, compute a bucket ID for the first data packet as a function of the information for the data flow, transmitting the first data packet through the server interface to the first server responsive to the bucket ID for the first data packet mapping to first and second servers of the plurality of servers and responsive to the first data packet being addressed to the primary address for the load balancer, receive a second data packet of the data flow through the network interface wherein the second data packet is addressed to a stand-by address for the load balancer and wherein the second data packet includes the information for the data flow, compute a bucket ID for the second data packet as a function of the information for the data flow wherein the bucket IDs for the first and second packets are the same bucket ID, and transmit the second data packet through the server interface to the second server responsive to the bucket ID for the second data packet mapping to first and second servers of the plurality of servers and responsive to the second data packet being addressed to the stand-by address for the load balancer. - View Dependent Claims (10, 11)
-
-
12. A method of receiving data from a load balancer at a server, the method comprising:
-
defining a server flow table for the server, the server flow table including data flow identifications for data flows being processed by the server; receiving a data packet of a data flow at the server from the load balancer wherein the data packet includes information for the data flow; responsive to a data flow identification of the data flow being omitted from server flow table, computing a bucket identification (ID) for the data packet as a function of the information for the data flow; responsive to the bucket ID for the data packet mapping to only the first server, adding a data flow identification for the data flow to the server flow table; and responsive to the bucket ID for the data packet mapping to only the first server, processing the data packet. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A server configured to process data packets, the server comprising:
-
a load balancer interface configured to received data packets from a load balancer; a memory configured to store a server flow table for the server, the server flow table including data flow identifications for data flows being processed by the server; and a processor coupled to the load balancer interface and to the memory, wherein the processor is configured to, receive a data packet of a data flow through the load balancer interface from the load balancer wherein the data packet includes information for the data flow, compute a bucket identification (ID) for the data packet as a function of the information for the data flow, responsive to a data flow identification of the data flow being omitted from server flow table, add a data flow identification for the data flow to the server flow table responsive to the bucket ID for the data packet mapping to only the first server, and process the data packet responsive to the bucket ID for the data packet mapping to only the first server. - View Dependent Claims (21)
-
Specification