×

Distributing timers across processors

  • US 7,461,173 B2
  • Filed: 06/30/2004
  • Issued: 12/02/2008
  • Est. Priority Date: 06/30/2004
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method, comprising:

  • storing Transmission Control Protocol (TCP) timer entries for multiple TCP connections into multiple timer data structures, each of the timer data structures associated with a single different one of multiple processors processing TCP segments for the multiple TCP connections, each processor handling a different set of TCP connections, the TCP connections being mapped to the processors by a common network interface controller servicing each of the different processors, wherein each timer entry comprises an identification of a type of timer and identification of a TCP connection, wherein the types of timers include TCP retransmit and TCP keep alive timers, wherein each timer data structure is organized in buckets that list multiple timers expiring at a same time, wherein each bucket corresponds to a different point in time;

    accessing a bucket of a one of the multiple timer data structures to determine timers expiring for TCP connections handled by the one of the different processors, the bucket accessed by the single one of the multiple processors associated with the one of the multiple timer data structures;

    updating Transmission Control Blocks (TCBs) for TCP connections based on the expiring timers;

    wherein the network interface controller determines a one of the multiple processors to handle a TCP segment of a TCP connection based on a hash of header data included the TCP segment and in an Internet Protocol datagram encapsulating the TCP segment, the header data comprising an Internet Protocol source address, an Internet Protocol destination address, a TCP source port, and a TCP destination port and wherein the timer entries for a TCP connection is stored in a one of the multiple respective timer data structures corresponding to the processor determined by the network interface controller for the TCP connection; and

    enqueuing an entry by a first one of the multiple processors for a second one of the multiple processors to identify to the second one of the multiple processors a timer associated with a TCP connection mapped to the second one of the multiple processors and not the first one of the multiple processors.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×