About tcp_fastimo() and tcp_slowtimo()

Garrett Wollman wollman at khavrinen.lcs.mit.edu
Wed May 19 10:37:31 PDT 2004


<<On Wed, 19 May 2004 09:59:53 +0100, kwl02r <kwl02r at ecs.soton.ac.uk> said:

> 1. Did delay ack time still be detected each 200ms? Which function do 
> this job? If not, can anybody help to describe some detail things about
> delay ack time at freebsd source code.

The TCP timer code has been completely rewritten.  You can see how it
works now by grepping for `callout' in netinet/tcp*.[ch].

This change was necessary in order to scale TCP to large numbers of
active connections.  Otherwise, a variant of the ``thundering herd''
problem arises, when the old timers must iterate over thousands of
TCBs and do essentially the same thing to each one.  This way breaks
up the synchronization by scheduling timeouts with finer granularity.
It also improves TCP performance on fast, congested networks by allowing
more granular (and hopefully more accurate) retransmit timeouts.

-GAWollman



More information about the freebsd-net mailing list