Re: TCP Stalls.

Gregory P. Smith (greg@nas.nasa.gov)
Tue, 01 Sep 1998 19:11:36 -0700


> On Wed, 2 Sep 1998, Alan Cox wrote:
>
> > > If I corrupt loopback so it fails to transmit a few packets, I can
> > > emulate the same kind of TCP stalls that have frequented the kernel.
> >
> > I'd expect exactly what you describe. TCP cannot cope with loss above
> > 1 frame per pipe length without seriois performance loss. Typically thats
> > 5-10% loss. Above that it will back off a lot.
> >
> > Your model is then flawed because the back off doesnt induce lower error
> > rates through reduced congestion. You model a continuous 25% loss link
> > layer - and that is something that unaided is beyond the capabilities
> > of an IP network.
>
> Okay. That's good. This might point to a serious problem with the PPP
> link (losing lots of packets), because that's where the bad stalls occur.
>
> I can run serial I/O to serial I/O (regular 'C' programs in Linux) between
> two computers with two modems _and_ the phone line with only an occasional
> lost character (actually a group of 6), far less than 1/2 percent. Maybe
> flow-control isn't working in PPP??

The problem with TCP over PPP links where you have noise and occasional
-non traffic load related- loss is that TCP isn't designed to cope with
that. It was designed for networks where packets get lost due to
collisions under high load or where heavily loaded routers drop packets
that they don't have time to process. Unfortunately when you lose a
packet in TCP the fundamental model is that "oh, the link must be
congested, I'll slow down to help it out." Time consuming modem
renegotiations on semi-good phone lines don't help this problem any..

Design a protocol that can deal with both load related packet loss and
point-to-point line quality related packet loss over a single link and
the world will love you forever.

Greg

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html