Timestamp option and srtt

kapil jain kapiltj at yahoo.com
Tue Jun 19 19:15:28 UTC 2007

  I have a question about the RTT/srtt calculation in presence of the 
timestamp option. 
If timestamp is nor present, RTT is not calculated for retransmits due 
to karn's algorithm. However with timestamps even retransmits factor 
into the RTT calculation. I understand that this is useful in general.
Now consider a scenario where some intermediate link/router goes down 
for 30 secs, then the packet would be retransmitted lets say 
+1,+2,+4,+8,+16 seconds. Now lets say the 4th transmissions comes back 
before the timeout expires but it takes it 10 secs (due to the timing 
of the intermediate coming up). In this case we would end up with a 
huge srtt value giving the next timeout to be ~30 secs. This will 
then decrease very slowly with valid acks coming in. This failure was 
one -time but it still affects throughput quite a bit. 
Now if this link/router keeps going down for 20-30 secs, every few 
minutes then the srtt will never really go to normal values, though 
during the  duration that the router is up the rtt is very small. 
Is this the expected behaviour ? This could cause problems with protocols such as BGP which have a hold-timer and will then reset the connection even for one Keep-alive loss.
  Could we have an option to turnoff RTT updates for retransmissions even when TS option is turned on?
  Or have a way to reset the timeout back to initial value
  instead of it starting from a huge value after  a link failure? 

More information about the freebsd-net mailing list