Load balancing
First Claim
Patent Images
1. A system for distributing a packet received over a network, the system comprising:
- (a) a plurality of servers connected to the network; and
(b) a load balancer, connected to the network, for selecting one of the plurality of servers according to a calculation, wherein said calculation is performed according to the formula;
((SRC_IP_ADDR+DEST_IP_ADDR+DEST_PORT) % N) wherein SRC_IP_ADDR is the source IP address of the packet;
DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the Port of the destination of the packet;
% is a modulo operation; and
N is the number of servers.
6 Assignments
0 Petitions
Accused Products
Abstract
A system, computer program product and method for distributing incoming packets among several servers or other network devices, such as routers or proxies. The distribution is based on calculations, which include data associated with each of the packets. The data is selected to be invariant from packet to packet within a session. The system and method preferably operate independently from the servers or other devices, and therefore do not require feedback from the servers, and do not require the maintenance of a session table.
148 Citations
42 Claims
-
1. A system for distributing a packet received over a network, the system comprising:
-
(a) a plurality of servers connected to the network; and
(b) a load balancer, connected to the network, for selecting one of the plurality of servers according to a calculation, wherein said calculation is performed according to the formula;
((SRC_IP_ADDR+DEST_IP_ADDR+DEST_PORT) % N)wherein SRC_IP_ADDR is the source IP address of the packet;
DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the Port of the destination of the packet;
% is a modulo operation; and
N is the number of servers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system for distributing a packet received over a network, the system comprising:
-
(a) a plurality of servers connected to the network; and
(b) a load balancer, connected to the network, for selecting one of the plurality of servers according to a calculation, wherein said calculation is performed according to the formula;
((SRC_IP_ADDR+SRC_PORT+DEST_IP_ADDR+DEST_PORT+PROTOCOL) % N)wherein SRC_IP_ADDR is the source IP address of the packet;
SRC PORT is the source port number of the packet, DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the port of the destination of the packet;
PROTOCOL is the protocol number of the packet, % is a modulo operation; and
N is the number of servers.
-
-
26. A method for load balancing a plurality of servers, comprising:
-
(a) receiving a packet;
(b) determining a source IP address of said packet, a destination IP address of said packet and a port of the destination of said packet;
(c) identifying one of the plurality of servers according to a calculation, wherein the calculation is performed according to the following formula;
((SRC_IP_ADDR+DES_IP_ADDR+DEST_PORT) % N)wherein SRC_IP_ADDR is the source IP address of the packet;
DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the port of the destination of the packet;
% is a modulo operator; and
N is the number of servers; and
further comprising;
(d) distributing said packet to the identified one of said plurality of servers.
-
-
27. A method for load balancing a plurality of servers, comprising:
-
(a) receiving a packet;
(b) determining a source IP address of said packet, a destination IP address of said packet and a port of the destination of said packet;
(c) identifying one of the plurality of servers according to a calculation, wherein the formula is calculated according to the formula
((SRC_IP_ADDR+SRC_PORT+DEST_IP_ADDR+DEST_PORT+PROTOCOL) % N)wherein SRC_IP_ADDR is the source IP address of the packet;
SRC_PORT is the source port number of the packet;
DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the port of the destination of the packet;
PROTOCOL is the protocol number;
% is a modulo operator; and
N is the umber of servers; and
further comprising;
(d) distributing said packet to the identified one of said plurality of servers.
-
-
28. A method for load balancing a plurality of servers, comprising:
-
(a) receiving a packet;
distributing the received packet to a particular one of the plurality of servers according to a calculation, wherein said calculation is based on data associated with the packet, and wherein each of said plurality of servers performs the calculation based on data associated with the packet, wherein the calculation is performed according to the formula;
((SRC_IP_ADDR+DES_IP_ADDR+DEST_PORT) % N)wherein SRC_IP_ADDR is the source IP address of the packet;
DEST_IP_ADDR is the destination IP address of the packet ;
DEST_PORT is the port of the destination of the packet;
% is a modulo operator; and
N is the umber of servers. - View Dependent Claims (29)
-
-
30. A computer program product for enabling a computer to load
balance a plurality of servers, the computer program comprising: - software instructions for enabling the computer to perform predetermined operations, and
a computer readable medium bearing the software instructions;
the predetermined operations including;
(a) receiving a packet;
(b) determining packet information including a source IP address of the packet, a destination IP address of the packet and a port of the destination of the packet; and
(c) selecting a particular server from the plurality of servers for receiving a particular packet according to a calculation based on the packet information, wherein the calculation is performed according to the formula;
((SRC_IP_ADDR+DEST_IP_ADDR+DEST_PORT) % N)wherein SRC_IP_ADDR is the source IP address of the packet;
DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the port of the destination of the packet;
% is a modulo operator; and
N is the number of servers. - View Dependent Claims (31)
- software instructions for enabling the computer to perform predetermined operations, and
-
32. A system of distributing a packet over a network, comprising:
-
a plurality of routers/proxie, each of said routers/proxies receiving the packet, and each of said router/proxies performing a calculation for selecting one of the routers/proxies for handling the packet, wherein the calculation is performed according to the following formula;
((SRC_IP_ADDR+DEST_IP_ADDR+DEST_PORT) % N)wherein SRC_IP_ADDR is he source IP address of the packet;
DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the port of the destination of the packet;
% is a modulo operator; and
N is the number of routers/proxies. - View Dependent Claims (33, 34, 35, 36, 37, 38)
-
-
39. A system of distributing a packet over a network, comprising:
-
a plurality of servers, each said servers receiving the packet, and each of said servers performing a calculation for selecting one of the routers/proxies for handling the packet, wherein the calculation is performed according to the following formula;
((SRC_IP_ADDR+DEST_IP_ADDR+DEST_PORT) % N)wherein SRC_IP_ADDR is he source IP address of the packet;
DEST_IP_ADDR is the destination IP address of the packet;
DEST_PORT is the port of the destination of the packet;
% is a modulo operator; and
N is the number of servers. - View Dependent Claims (40, 41, 42)
-
Specification