Overview of TCP Timers

[The TCP chimney offload feature is deprecated and should not be used.]

An offload target must maintain the following set of timers for each offloaded TCP connection:

  • Delayed Acknowledgement Timer (RFC 1122)

  • FIN_WAIT_2 Timer

  • Keep-alive Timer (RFC 1122)

  • Persist Timer

  • Push Timer

  • Retransmit Timer (RFC 2581)

An offload target can optionally maintain a Silly Window Syndrome (SWS) prevention timer (RFC 813) for each offloaded TCP connection.

The timer granularity of the offload target must be the granularity that is specified by the host stack in the TicksPerSecond member of the NDIS_TASK_TCP_CONNECTION_OFFLOAD structure. The host stack supplies this structure when setting the OID_TCP_TASK_OFFLOAD OID. The host stack can specify a timer granularity of 10, 100, or 1000 ticks per second.

Each TCP timer must be large enough so that it takes at least several weeks of running time for the timer to wrap to zero.

If an offloaded connection enters the TIME_WAIT state, the offload target should initiate termination of the offload of that connection (upload).