Patent ID: 7694009

Claim:
A method for balancing a workload for a plurality of processors in a multiple processor computer system designed for processing a plurality of packets from a plurality of connections, the method comprising: assigning a packet to a hash bucket determined by performing a predetermined hash function, wherein the packet is assigned to a hash bucket based on a combination of a source address, a source port, a destination address, and a destination port parameters from the header section of the packet to identify the hash bucket; and queuing the hash bucket to a processor so that the workloads of all the processors are balanced, wherein the queuing includes applying a queuing model to packets in the hash bucket to prevent packets from a particular connection from utilizing an excessive amount of the processor's time by distributing the hash buckets in proportion to an imbalance distribution index and in reverse proportion to a total imbalance index; wherein the hash function relates to a predetermined number of hash buckets, and wherein a plurality of packets from different connections can be assigned to the same hash bucket.