according to the rfc 2988 section 2, the tcp's retransmition timer must
be calculated as follows:
====================================================================================
RTTVAR <- (1 - beta) * RTTVAR + beta * |SRTT - R'| (1)
SRTT <- (1 - alpha) * SRTT + alpha * R' (2)
RTO <- SRTT + max (G, K*RTTVAR) (3)
The above SHOULD be computed using alpha=1/8 and beta=1/4
=======================================================================================
I checked the implementation of this in ns-2.27 in tcp.cc, it seem to me
that in the implemnenation that
there is no multiplaction of parameter alpha by R' eq. (2) (the actual
rtt sample). See the function rtt_update().
==============================================================================================
if (t_srtt_ != 0) {
register short delta;
----->>>>>>> delta = t_rtt_ - (t_srtt_ >> T_SRTT_BITS); // d = (m -
a0)
if ((t_srtt_ += delta) <= 0) // a1 = 7/8 a0 + 1/8 m
t_srtt_ = 1;
if (delta < 0)
delta = -delta;
delta -= (t_rttvar_ >> T_RTTVAR_BITS);
if ((t_rttvar_ += delta) <= 0) // var1 = 3/4 var0 + 1/4 |d|
t_rttvar_ = 1;
}
================================================================================================
in the implemetation T_SRTT_BITS=3, t_rtt_ is the actual sample of rtt,
so delta = t_rtt_ - (t_srtt_ / 8).
and t_srtt_ become after t_srtt_ += delta , t_srtt_ = (7/8)t_srtt_ -
t_rtt_
^
|
here it should be
1/8
And also in the computing of the RTTVAR there is no multiplication by
parameter (1-beta)=3/4 before RTTVAR eq.(1).
I'm not sure, if what i'm saying is true !
Can anyone who has experience in the tcp implementation in ns, give me
comments.
Thanks a lot
__________________________________________________
Do You Yahoo!?
En finir avec le spam? Yahoo! Mail vous offre la meilleure protection possible
contre les messages non sollicités
http://mail.yahoo.fr Yahoo! Mail