TCP RTO calculation

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


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

My curiosity is if we see the 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?


More information about the freebsd-questions mailing list