If you’re seeing poor performance and/or random flakiness accessing a Samba server over PPTP, especially when transferring large amounts of data, you should seriously consider getting rid of PPTP altogether and trying something like OpenVPN if at all possible.
The TCP retransmission problems caused by stacking TCP have been known for years, but being the lazy person I am, and being quite satisfied with the convenience and ubiquity of PPTP aka “Windows VPN”, I never seriously looked into the kinds of problems it causes. I figured that the ease of use would be worth a 10% to 20% performance hit. And the random disconnects and long Windows Explorer freezes - well, that’s just Windows, isn’t it? It’s probably a bug in the Windows TCP stack… or an incompatibility in smbd… or an ARP issue…
But that’s not really what happens. What actually happens is an almost complete meltdown of the link. The TCP adaptive algorithms work against eachother in a kind of negative feedback loop and eventually the signal drowns in noise, reducing the effective capacity on 2 Mbit link to less than 100 Kbit with spectacularly bad latency. The latency causes massive packet queue buildup, causing timeouts and excessive delays which in turn trigger bugs and frozen applications.
Things continue to get worse until the TCP adaptive algorithms eventually run out of wriggle room and the system settles at a kind of dismal minimum. Looking at this stuff as it happens using Wireshark is like watching a cokehead trying to staunch a nosebleed by snorting more coke: funny then sad.
So forget about fiddling with mtu and proxyarp trying to improve Samba performance over PPTP. It’s the kind of game where even if you win, you lose.
