TCP RTO calculation

Soo-Hyun Choi shchoi at gmail.com
Wed Sep 8 07:14:51 PDT 2004


Hi,

I'm not sure if this list is appropriate to ask the FreeBSD kernel
source or not. If not, could somebody direct me in an appropriate
list?

My curiosity is if we see the tcp.cc code inside, there are two
different version of srtt (smoothed rtt) and rttvar (smoothed mean
deviation estimator). The one is simply 'srtt' and 'rttvar' and the
other is 't_srtt' and 't_rttvar'. The unit of t_srtt is 'ticks * 8'
and the unit of t_rttvar is 'ticks * 4'.

These variables are used to calculate the TCP RTO. But why do they
have the two different version of variables? The interesting thing is
the 't_' variables are a fixed-point integer, and the original
variables are just floating-point values. I assume the reason why they
have is to avoid the floating-point arithmetic in the kernel. Is this
really only reason for being two different version of those?

Cheers,
Soo-Hyun


More information about the freebsd-questions mailing list