[mod.protocols.tcp-ip] RTT's revisited

craig@LOKI.BBN.COM (Craig Partridge) (11/12/86)

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.

Craig

MILLS@A.ISI.EDU (11/12/86)

In response to the message sent  Sat, 08 Nov 86 20:46:12 -0500 from craig@loki.bbn.com

Craig,

Experiments I did several years ago (some results are in RFC-889) suggest
RTT estimators be based on the interval between the first transmission and
the first reply. Arguments supporting this have been made by RSRE and UCL
as long ago as 1979. A backoff has proved a very good idea and, so far as I
know, has been implemented in every TCP in common use. As you point out, it
is much better to err on the high side than the low, especially  especially with SYN/ACK
exchanges, since data packets tend to be fatter (longer delay) than
SYN/ACK packets. Other suggestions for tweaking the estimator are in
RFC-889.

It has been my experience that the performance of the estimator can be much
improved by increasong the rate of sample collection. This can be done by
keeping a stack of recently sent timestamps and associated sequence numbers,
then checking each off as ACKs are received. Depending on the allowable
number of outstanding packets, this can increase the rate several times.

I blow hot and cold on the usefulness of statistics based on these
data, especially when high variances are involved, as seems to be the case
now with ARPAnet navigation.

Dave
-------

SITT@GUNTER-ADAM.ARPA (11/13/86)

In response to the message sent  12 Nov 1986 15:47:32 EST from MILLS@A.ISI.EDU

As far as I know there has been no prohibition against joint installation
by GAO or Congress.  The current EID policy was supported in an 
ALMAJCOM letter by AF/SCT on 22 Apr 86.  Additionally, the current draft 
of the Local Information Transfer Architecture incorporates the  fiber 
optic policy in Annex E.  The policy for installation in the LITA 
basically says that fiber should not be installed jointly with coax for 
broadband LANs or twisted pair unless the route will overlay 
the eventual fiber optic backbone network.  It recommends use of fiber or joint
installation for Catagory A and Catogory B systems (e.g., T-carrier, 
ESS trunk circuits, broadband closed circuit TV, remote display circuits 
for radar, high-speed point-to-point links, high-density links, line-of-sight 
systems, ...).  I will send you a copy of the letter and the LITA (draft).

Hope life's not too tough in the Pacific.  Keep in touch.
I should be flying that way regularly starting in June 87.
-------

SITT@GUNTER-ADAM.ARPA (11/13/86)

In response to the message sent  13 Nov 1986 07:37:29 CST from SITT@GUNTER-ADAM.ARPA

Please disregard previous message.  It was transmitted in error.
-------