I'm experiencing slow transfter speeds when a Windows machine (7 and 10 tested) is involved.
The setup:
Code: Select all
PC1@LAN1 --- CCR1036 ---(pppoe)---ISP--- (pppoe)---CCR1036 --- PC2@LAN2
| ------------- l2tp/ipsec -------------- |
Both routers are on the same sw level 6.35.4.
L2TP tunnel MTU is at 1450.
IPSec is sha1/aes256cbc in ph2.
Case1
PC1 and PC2 are physical linux machines.
iperf (tcp) and scp transfers in any direction almost max out at 100Mbps (w/ overhead, actual throughput on the tunnel is around 80-90Mbps)
Case2
PC1 is a windows machine, PC2 is linux
tcp transfers from PC2->PC1 give a similarly good performance, throughtrput around 80-90Mbps
tcp transfers from PC1->PC2 give barely 10-11Mbps of throughtput.
I've tested different windows machines, different protocols SMB, FTP and iperf.
I've also played with TCP adaptive windowing on the windows machine as well as TCP Offloading to no avail....
Case3
PC1 and PC2 are windows machines.
Throughput is around 10Mbps in both directions with same tests.
Case4
PC1 and PC2 are windows machines
ipsec is disabled so there's only l2tp tunnel between
Throughput in both directions is again cca 80-90Mbps.
I've compared packets in wireshark in situations when the throughput is good and bad and i coulnd't identify anything different.
Packets are same size, i couldn't identify MTU problems.
There's a dynamic mangle rule (from pppoe profile) for TCP syn packets to keep MSS below 1410.
I've also played with GRE/ipsec tunnels and GRE MTU of 1400, DF disabled and TCP MSS clamp enable - no change in behavior.
Any suggestion welcome!