forged tsecr giving -ve numbers in rtt calculation causing retran

Richard Wendland richard at starburst.demon.co.uk
Mon Jan 19 16:26:13 PST 2004


> Hm, wasn't this accounted for in rev 1.174 / 1.107.2.31?  From Matt's
> commit log:

True.  My notes must have been from an older version.  Sorry.

> Of course, that doesn't account for other non-zero strange values.  I
> guess the timestamp code needs a lot of work. :(

This does suggest Ken is seeing TSecr messed up in some other way than
simple zeroing.

I'd expect this to be a pretty rare event, and perhaps my suggestion
that the 64 sec TCPTV_REXMTMAX limit be implemented correctly is a
good enough solution on its own for a rare event.  It should certainly
avoid the insane -450000000 tp->t_rxtcur Ken has seen.  It's simple to
implement, does what was probably originally intended, and also protects
from bizarre problems with non-timestamp option SRTT calculation.

Full validation of TSecr would be nice, but perhaps excessive for
something that should not happen.  A 64 second RTO may discourage such
strangeness :)

	Richard
-- 
Richard Wendland				richard at wendland.org.uk


More information about the freebsd-net mailing list