Stateless distributed load-balancing
Abstract
Aspects of the subject technology provide state-less load-balancing using sequence numbers to identify traffic flows. In some implementations, a process of the technology can include steps for receiving, by a load-balancer, a first packet from a source device including a request to access the service provided by a server coupled to the load-balancer, determining a load for each of the servers, wherein each server is associated with a unique set of sequence numbers, and forwarding the request to a target server selected based on its corresponding load, and wherein the request is configured to cause the target server to issue a reply to the source device. Systems and machine-readable media are also provided.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A computer-implemented method comprising:
receiving, by a load-balancer, a first packet from a source device, the first packet comprising a request to access a service provided by a server coupled to the load-balancer;
determining, by the load-balancer, a load for each of a plurality of servers, each of the plurality of servers is associated with a unique set of sequence numbers; and
forwarding the request to a target server selected from among the plurality of servers based on the load for each of the plurality of servers, the request configured to cause the target server to issue a reply to the source device, the reply comprising a sequence number selected from the unique set of sequence numbers corresponding with the target server,
wherein
the load-balancer includes a table associating each of the plurality of servers with its corresponding unique set of sequence numbers.
2. The computer-implemented method of claim 1 , further comprising:
receiving, by the load-balancer, a second packet from the source device, wherein a header of the second packet contains the sequence number; and
routing, by the load-balancer, the second packet to the target server based on the sequence number in the header.
3. The computer-implemented method of claim 2 , wherein routing the second packet to the target server includes:
identifying the target server as a destination for the second packet based on the sequence number; and
forwarding the second packet to the target server.
4. The computer-implemented method of claim 1 , wherein the unique set of sequence numbers corresponding with the target server are Transmission Control Protocol (TCP) sequence numbers.
5. The computer-implemented method of claim 1 , wherein the reply comprises at least one packet for which a packet header contains the sequence number.
6. The computer-implemented method of claim 1 , wherein the load-balancer is configured to disregard state information for servers associated with active traffic flows.
7. A system comprising:
one or more processors;
a network interface coupled to the one or more processors, the network interface configured to transact data with a computer network; and
a non-transitory computer-readable storage medium coupled to the one or more processors, the non-transitory computer-readable storage medium containing instructions which, when executed by the one or more processors, cause the system to:
receive, by a load-balancer, a first packet from a source device, the first packet comprising a request to access a service provided by a server coupled to the load-balancer;
determine, by the load-balancer, a load for each of a plurality of servers, each of the plurality of servers is associated with a unique set of sequence numbers; and
forward the request to a target server selected from among the plurality of servers based on the load for each of the plurality of servers, the request configured to cause the target server to issue a reply to the source device, the reply comprising a sequence number selected from the unique set of sequence numbers corresponding with the target server,
wherein
the load-balancer includes a table associating each of the plurality of servers with its corresponding unique set of sequence numbers.
8. The system of claim 7 , wherein the operations include:
receiving, by the load-balancer, a second packet from the source device, wherein a header of the second packet contains the sequence number; and
routing, by the load-balancer, the second packet to the target server based on the sequence number in the header of the second packet.
9. The system of claim 8 , wherein routing the second packet to the target server includes:
identifying the target server as a destination for the second packet based on the sequence number; and
forwarding the second packet to the target server.
10. The system of claim 7 , wherein the unique set of sequence numbers corresponding with the target server are Transmission Control Protocol (TCP) sequence numbers.
11. The system of claim 7 , wherein the reply comprises at least one packet for which a packet header contains the sequence number.
12. The system of claim 7 , wherein the load-balancer is configured to disregard state information for servers associated with active traffic flows.
13. A non-transitory computer-readable storage medium comprising instructions stored therein, which when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving, by a load-balancer, a first packet from a source device, the first packet comprising a request to access a service provided by a server coupled to the load-balancer;
determining, by the load-balancer, a load for each of a plurality of servers, each of the plurality of servers is associated with a unique set of sequence numbers; and
forwarding the request to a target server selected from among the plurality of servers based on the load for each of the plurality of servers, the request configured to cause the target server to issue a reply to the source device, the reply comprising a sequence number selected from the unique set of sequence numbers corresponding with the target server,
wherein
the load-balancer includes a table associating each of the plurality of servers with its corresponding unique set of sequence numbers.
14. The non-transitory computer-readable storage medium of claim 13 , wherein the operations include:
receiving, by the load-balancer, a second packet from the source device, wherein a header of the second packet contains the sequence number; and
routing, by the load-balancer, the second packet to the target server based on the sequence number in the header of the second packet.
15. The non-transitory computer-readable storage medium of claim 14 , wherein routing the second packet to the target server includes:
identifying the target server as a destination for the second packet based on the sequence number; and
forwarding the second packet to the target server.
16. The non-transitory computer-readable storage medium of claim 13 , wherein the unique set of sequence numbers corresponding with the target server are Transmission Control Protocol (TCP) sequence numbers.
17. The non-transitory computer-readable storage medium of claim 13 , wherein the reply comprises at least one packet for which a packet header contains the sequence number.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.