[pptp-server] PPTP performance again: malfunction singled out

Gianluca Insolvibile g.insolvibile at cpr.it
Mon Dec 17 05:44:40 CST 2001


Hi,

to whom it may concern: I finally located the problem with the sloppy
performance I am experiencing. Unfortunately, this does not mean that I
succeeded in fixing it.

The facts:
 - any Windows 98/98SE client connects to pptpd but has very low performance
(exactly 1.5 Mbps server->client, exactly 0.75 Mbps client->server);
 - the same 98/98SE client performs reasonably when using the LAN (Ethernet)
connection;
 - any Windows 2000 client connects to pptpd and has a throughput around 25-30
Mbps.

This leads me to the unimaginable ;-) conclusion that 98/98SE PPTP support is
severely bugged (I already tried all the patches available from micro$oft, of
course). Further investigation on tcpdump traces revealed that ACKs sent by the
98 client are being sent with a 10 msec granularity (that is, no more than 1 ACK
is sent in 10 msec, and ACKs are evenly spaced by 10 msec); furthermore, each
TCP segment is ACKed with a 40 msec delay. This behaviour fools the TCP
congestion algorithm on the server and causes the drop in throughput (1500 bytes
per packets at 100 packets per second roughly gives 1.2 Mbps, which is near the
value I measured).

Lacking source code for the client side ;-), I tried to set up some
countermeasures on the server: I modified the Linux kernel to expose via
/proc/sys/net/ipv4 the most sensible parameters of TCP congestion control (i.e.
min and max retransmit timeouts, min and max delayed ACKs, and so on) and tried
to tweak them, with no result. I tried to have a look at the pptpd source code,
and it seems to me that it implements no window flow control at all; anyway, I
can't imagine why this could be the cause of client side malfunction.

I just wonder how does a Windows 98 client perform with a Windows PPTP server,
in order to assess whether the real cause is something in pptpd or the braindead
implementation in Windows. I have strong suspects on the latter, anyway...

In conclusion, I'm really stuck now. Any ideas, hints or comments will be
appreciated. In any case, I hope my experience will be of help if somebody ever
falls into this problem again.


Best regards,
	Gianluca



More information about the pptp-server mailing list