Subject: Re: Is anyone seeing lots of TCP checksum errors?
To: John F. Woods <email@example.com>
From: Jason Thorpe <firstname.lastname@example.org>
Date: 11/07/1997 17:38:25
On Fri, 07 Nov 1997 20:26:53 -0500
"John F. Woods" <email@example.com> wrote:
> The interesting thing is that while this stopped the behavior of transfers
> from my ISP's ftp server pausing regularly (killing throughput), it turned
> into a problem of the transfers pausing IRregularly (killing throughput).
> I now wonder if the round-trip time calculation is going afoul on their
> FTP server (I think there's an ethernet, a T3, and my PPP line between
> me and their FTP server)...
Actually, there is a slight problem with TCP at the moment. When I
fixed some MSS-related problems, I brain-o'd a few places where it is
used to compute the slow start threshold and congestion window. I
saw them, and even had sanity checking, but it just didn't occur to me
at the time. The symptom of the problem is basically what you describe
(go, stall, go, stall, etc., particularly on slower links).
After discussing this problem with Kevin Lahey, we decided that the
intended semantics were to not use what the peer said its MSS was (because
that could be some large number, up to 64k), but rather to use the expected
maximum outgoing segment size for this connection, which needs to account
for the path MTU (or the interface MTU plus whatever adjustments are made
for non-local addresses, in the event PMTU discovery is disabled). The
reason this worked in the old code is because the peer's advertised MSS
value was artificially lowered for non-local peers.
Kevin has made the necessary changes to TCP to fix this problem, and will
be committing them tonight (at least, that's what he said when he came by
my office earlier :-), at which time I will pull them into the release
Jason R. Thorpe firstname.lastname@example.org
NASA Ames Research Center Home: +1 408 866 1912
NAS: M/S 258-6 Work: +1 650 604 0935
Moffett Field, CA 94035 Pager: +1 415 428 6939