Method and apparatus for load balancing internet traffic
First Claim
Patent Images
1. A load balancer, comprising:
- (a) a burst distributor,(b) a hash splitter;
(c) a selector,(d) a plurality of forwarding engines;
wherein said burst distributor receives a packet and selects one of said plurality of forwarding engines to transmit said packet, or selects an invalid forwarding engine to transmit said packet;
wherein said hash splitter also receives said packet;
said hash splitter selects one of said plurality of forwarding engines to transmit said packet; and
wherein said selector receives said packet from said burst distributor and said hash splitter, and sends said packet to said forwarding engine selected by said burst distributor if said forwarding engine selected by said burst distributor is valid; and
if said forwarding engine selected by said burst distributor is invalid, sending said packet to said forwarding engine selected by said hash splitter.
1 Assignment
0 Petitions
Accused Products
Abstract
A load balancer is provided wherein packets are transmitted to a burst distributor and a hash splitter. The burst distributor consults a flow table to make a determination as to which forwarding engine will receive the packet, and if the flow table is full, returns an invalid forwarding engine. A selector sends the packet to the forwarding engine returned by the burst distributor, unless the burst distributor returns an invalid forwarding engine, in which case the selector sends the packet to the forwarding engine selected by the hash splitter. The system is scalable by adding additional burst distributors and using a hash splitter to determine which burst distributor receives a packet.
34 Citations
16 Claims
-
1. A load balancer, comprising:
-
(a) a burst distributor, (b) a hash splitter; (c) a selector, (d) a plurality of forwarding engines; wherein said burst distributor receives a packet and selects one of said plurality of forwarding engines to transmit said packet, or selects an invalid forwarding engine to transmit said packet; wherein said hash splitter also receives said packet;
said hash splitter selects one of said plurality of forwarding engines to transmit said packet; andwherein said selector receives said packet from said burst distributor and said hash splitter, and sends said packet to said forwarding engine selected by said burst distributor if said forwarding engine selected by said burst distributor is valid; and
if said forwarding engine selected by said burst distributor is invalid, sending said packet to said forwarding engine selected by said hash splitter. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of balancing a flow of packets, comprising:
-
(a) a burst distributor and a hash splitter receiving a packet; (b) said burst distributor selecting one of a plurality of forwarding engines to receive said packet, or selecting an invalid forwarding engine to receive said packet; (c) said hash splitter selecting one of a plurality of forwarding engines to receive said packet; (d) if said burst distributor selected one of said plurality of forwarding engines, sending said packet to said forwarding engines selected by said burst distributor; and (e) if said burst distributor selected an invalid forwarding engine, sending said packet to said forwarding engine selected by said hash splitter. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method of selecting a forwarding engine from a plurality of forwarding engines, comprising:
-
(a) providing a burst distributor having a flow table, said flow table having a plurality of records of packets, each of said packets associated with a flow, each of said flows associated with a forwarding engine; (b) said burst distributor receiving a first packet, said first packet associated with a flow; (c) searching said flow table for a second packet associated with said flow; (d) if a second packet is located in said table, returning said forwarding engine associated with said flow that is associated with said second packet, to a selector; (e) if said second packet is not located, determining if said flow table is full; (f) if said flow table is not full, determining a forwarding engine within said plurality of forwarding engines having a minimum number of packets; and
returning said forwarding engine having a minimum number of packets to said selector; and(g) if said flow table is full, returning an invalid forwarding engine to said selector.
-
Specification