[2941] in linux-net channel archive
More TCP speed fixes
daemon@ATHENA.MIT.EDU (Pedro Roque Marques)
Sat May 18 02:09:48 1996
Date: Sat, 18 May 1996 01:18:07 +0100
From: Pedro Roque Marques <roque@di.fc.ul.pt>
To: Eric Schenk <schenk@rnode84.cs.toronto.edu>
Cc: linux-net@vger.rutgers.edu, Alan Cox <alan@cymru.net>,
Linus Torvalds <Linus.Torvalds@cs.helsinki.fi>, roque@di.fc.ul.pt
In-Reply-To: <199605170625.CAA00785@rnode84.cs.toronto.edu>
Eric,
on tcp_input patch you have:
- if (m > (sk->rtt >> 3))
+ /* Yikes. This used to test if m was larger than rtt/8.
+ * Maybe on a long delay high speed link this would be
+ * good initial guess, but over a slow link where the
+ * delay is dominated by transmission time this will
+ * be very bad, since ato will almost always be something
+ * more like rtt/2. Better to discard data points that
+ * are larger than the rtt estimate.
+ */
+ if (m > sk->rtt)
and then:
/*
* Now update timeout. Note that this removes any backoff.
*/
- sk->rto = ((sk->rtt >> 2) + sk->mdev) >> 1;
+ sk->rto = (sk->rtt >> 3) + sk->mdev;
and as you say:
(2) Jacobson's revised SIGCOMM'88 paper states that changing the RTO
calculation from
RTO = R + 2V
to
RTO = R + 4V
by your text is clear that
(sk->rtt >> 3) is the smothed round trip time.
we should revert to the Yikes-less version.
regards,
Pedro.