Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 May 2004 13:37:26 -0400 (EDT)
From:      Garrett Wollman <wollman@khavrinen.lcs.mit.edu>
To:        kwl02r <kwl02r@ecs.soton.ac.uk>
Cc:        freebsd-net@FreeBSD.ORG
Subject:   About tcp_fastimo() and tcp_slowtimo()
Message-ID:  <200405191737.i4JHbQvm000174@khavrinen.lcs.mit.edu>
In-Reply-To: <40AB2209.6060108@ecs.soton.ac.uk>
References:  <40AB2209.6060108@ecs.soton.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
<<On Wed, 19 May 2004 09:59:53 +0100, kwl02r <kwl02r@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200405191737.i4JHbQvm000174>