RTT's revisited

Craig Partridge (craig@loki.bbn.com)
Sat, 08 Nov 86 20:46:12 -0500

As the guy whose message started this debate, I thought it might be
worthwhile to describe the mechanism I chose to try.

Basically I'm using a solution suggested by Lixia Zhang, with some tweaking.
Lixia suggested that the best estimate of the round-trip time was the
time it takes the first packet to make the loop (in RDP's case, the
time between the opening SYN and its ACK).

The idea sounded good so I put it in and promptly hit a small problem.
My simple minded implementation tended to pick timeouts
that were either too long or too short. The problem was one of defining
where to measure the round trip from. If you measure from the first
time you send a SYN, you tend to get a timeout estimate that is too
high (if you had to resend the SYN several times, the likelihood that
the ACK you finally get is for the first one is rather small). If
you measure from the time you send the most recent SYN, the estimate
is too low (again, it is unlikely that having sent several packets, the
ACK is for the most recent one).

So I tweaked the implementation. First off, SYNs are retransmitted using
a roughly exponential backoff for the timeouts. Then when
the ACK comes back, the estimated round-trip time is set to the timeout
currently in use. Now this is still probably too short (if packets were
sent out at time 0, 1, 2, 4, and 8, and the ACK comes back at time
14, the estimated RTT is only 8 and if the ACK was for the second packet
the RTT should be 12), so I feed the estimated RTT for each packet
sent into the roundtrip computation. (E.g. I set the estimated
RTT to 8, but then adjust the estimate by feeding in RTTs of 12, 16,
17, and 18).

A little testing today suggests that this makes the RTT slightly high
but close to right (and mail on the list has made it clear that if you
are going to be wrong, you'd like to be wrong on the high side).
Connecting via Goonhilly ECHO a dozen or so times always worked,
gave reasonable throughput and didn't appear to suffer excessive
retransmissions. Of course a dozen tests really isn't enough so
I'm still fiddling, and (at the risk of increasing the mail
traffic still further) am still interested in further suggestions.


This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:36:59 GMT