[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about tcpTick_



Amr -

>I have a question regarding the tcpTick_ parameter which sets the timer
>granuality of a tcp tick in seconds. I was looking at tcp.h and it states
>that for BSD the value should be 0.3, but should not it be 0.5. Isn't
>the rtt tick in BSD equal to 500ms ?

Yes, BSD TCP generally has the tcp tick set to 500ms.  When I put that
comment in, I was using machines that allowed users to set tcp tick
values of 100ms and 300ms, so 100ms and 300ms struck me as 
sufficiently-realistic values.

>Also does this granuality only control the estimates (rtt, srtt (with 3
>bits on right), and rttvar(with two bits on right) ), or does it also
>control the granuality of the timeout value (rto) ?

It controls both.  The test suite that tests both tcpTick_ and
retransmit timers is run by "./test-all-tcp" in tcl/test,
and is described in tcl/test/test-suite-tcp.txt.  The current
retransmit timeout value, before any retransmit timer backoffs are
added in, is as follows in the code:

        //
        // Current retransmit value is
        //    (unscaled) smoothed round trip estimate
        //    plus 4 times (unscaled) rttvar.
        //
        t_rtxcur_ = (((t_rttvar_ << (2 + (T_SRTT_BITS - T_RTTVAR_BITS))) + 
                       t_srtt_)  >> T_SRTT_BITS ) * tcp_tick_;

- Sally