Re: NAGLE commented

Olaf Titz (olaf@bigred.inka.de)
Sat, 28 Jun 1997 10:16:03 +0200


> Well the reason I wanted to disable it, is that I'm suffering a
> performance problem running ppp via a binary telnet. The performance

There is a problem with this setup if the network loses packets: due
to resends, the send queue builds up faster than the underlying TCP
can retransmit. The connection will stall and break eventually.
(This is a different issue from yours, but just be warned that it can
happen.)

> What I did now is change telnetd to call (void) setsockopt(0, SOL_TCP,
> TCP_NODELAY, NULL, (int)NULL);

Wrong:
int i=1; setsockopt(0, SOL_TCP, TCP_NODELAY, &i, sizeof(i));
The integer parameter is not a dummy, but an on/off flag and the weird
parameter passing is for compatibility between setsockopt() and
getsockopt().

Do this at both ends (telnetd and telnet or whatever the client is).
Better change the client to something that sends only complete PPP
frames, that should escape the tinygram restriction anyway.

olaf