Patent Number: 6,338,078

Title: System and method for sequencing packets for multiprocessor parallelization in a computer network system

Abstract: Network input processing is distributed to multiple CPUs on multiprocessor systems to improve network throughput and take advantage of MP scalability. Packets received on the network are distributed to N high priority threads, wherein N is the number of CPUs on the system. N queues are provided to which the incoming packets are distributed. When one of the queues is started, one of the threads is scheduled to process packets on this queue at any one of the CPUs that is availableat the time. When all of the packets on the queue are processed, the thread becomes dormant. Packets are distributed to one of the N queues by using a hashing function based on the source MAC address, source IP address, or the packet's source and destination TCP port number, or all or a combination of the foregoing. The hashing mechanism ensures that the sequence of packets within a given communication session will be preserved. Distribution is effected by the device drivers of the system. Parallelism is thereby increased on network I/O processing, eliminating CPU bottleneck for high speed network I/Os, thereby improving network performance

Inventors: Chang; Tai-chien Daisy (Austin, TX), Dierks, Jr.; Herman Dietrich (Round Rock, TX), Sharma; Satya Prakesh (Round Rock, TX), Cossmann; Helmut (Heidelberg, DE), Hymas; William James (Heidelberg, DE)

Assignee: International Business Machines Corporation

International Classification: H04L 29/06 (20060101); H04L 12/56 (20060101); G06F 013/00 ()

Expiration Date: 01/08/2019