Patent ID: 8825867

Claim:
A method, which is performed in one or more network elements that are in communication between clients that transmit packets and servers, of distributing the packets among the servers which are to process the packets, while providing stickiness of flows of the packets to servers assigned to process the packets of the flows, the method comprising the steps of: receiving a first packet of an existing flow for which at least a second packet has already been received, at a static first level packet distribution module; statically selecting a group of servers, from among a plurality of groups of the servers, for the first packet of the flow with the static first level packet distribution module, wherein statically selecting the group of servers does not involve using state that assigns the first packet of the flow to the selected group of servers; distributing the first packet of the flow to a distributed stateful second level packet distribution system, wherein the distributed stateful second level packet distribution system is implemented on hardware that is distinct from hardware used to implement the static first level packet distribution module; statefully selecting a server of the selected group of servers that is to process the first packet of the flow with the distributed stateful second level packet distribution system by accessing state that assigns processing of packets of the flow to the selected server; and distributing the first packet of the flow to the selected server.