My file server is running Ubuntu 12.04 and I'm sharing files from it over samba. It is connected via gigabit ethernet. My desktop, running Windows 8.1, is also connected via gigabit ethernet. I can transfer files between the two and completely saturate that gigabit pipe.
However, I just got a Surface Pro 2, and I'm trying to stream HD movies from my server to the device over WiFi. For some reason, I can't break much past 1.5MB/s transferring files over the network. I've tried streaming through XBMC and a standard file copy; no difference.
To add the confusion, if I connect to my guest network and then use my VPN server (installed on the router) to access the file server, I get around 3.2MB/s.
I've been running diagnostics to determine the root and I think I've found it but I have no idea what is causing it or how to fix it.
Router: Asus RT-N66U
Surface Pro 2 Network Card: Marvell Avastar 350N (Driver 19/09/2013 v14.69.24044.150)
InSSIDer: Link Score: 100 Co-Channels: 0 Overlapping: 0 5GHz Network Channel: 48+44
iperf File Server as Server; Surface Pro 2 as Client - TCP
Performance: Acceptable
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.0.90 port 5001 connected with 192.168.0.56 port 57367
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 10.1 MBytes 84.7 Mbits/sec
[ 4] 1.0- 2.0 sec 10.4 MBytes 87.6 Mbits/sec
[ 4] 2.0- 3.0 sec 10.6 MBytes 88.8 Mbits/sec
[ 4] 3.0- 4.0 sec 10.7 MBytes 89.5 Mbits/sec
[ 4] 4.0- 5.0 sec 10.1 MBytes 84.4 Mbits/sec
[ 4] 5.0- 6.0 sec 10.2 MBytes 85.8 Mbits/sec
[ 4] 6.0- 7.0 sec 7.04 MBytes 59.1 Mbits/sec
[ 4] 7.0- 8.0 sec 10.8 MBytes 90.2 Mbits/sec
[ 4] 8.0- 9.0 sec 10.6 MBytes 89.1 Mbits/sec
[ 4] 9.0-10.0 sec 8.62 MBytes 72.3 Mbits/sec
[ 4] 0.0-10.0 sec 99.2 MBytes 83.1 Mbits/sec
iperf Surface Pro 2 as Server, File Server as Client
Performance: Poor
------------------------------------------------------------
Client connecting to 192.168.0.56, TCP port 5001
TCP window size: 22.9 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.90 port 40233 connected with 192.168.0.56 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 1.0- 2.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 2.0- 3.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 3.0- 4.0 sec 1.25 MBytes 10.5 Mbits/sec
[ 3] 4.0- 5.0 sec 1.62 MBytes 13.6 Mbits/sec
[ 3] 5.0- 6.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 6.0- 7.0 sec 1.38 MBytes 11.5 Mbits/sec
[ 3] 7.0- 8.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 8.0- 9.0 sec 1.50 MBytes 12.6 Mbits/sec
[ 3] 9.0-10.0 sec 1.62 MBytes 13.6 Mbits/sec
[ 3] 0.0-10.1 sec 15.0 MBytes 12.4 Mbits/sec
For some reason, it gets capped and I haven't got a clue why.
Any suggestions?
Edit: My link speed is reported as 270Mbps by Windows. I'm less than two metres from the router with a clear line of sight.
Edit 2: I've just swapped the Router with my old Virgin Media Superhub. iperf is reporting between 4-8MB/s each way, so the problem lies somewhere in the Asus RT-N66U.
Final Edit: The Answer
I figured it out through trial and error. The VPN server built into the router has an option called "Broadcast Support".
The Broadcast Support setting in 2-(3) allows broadcast packet transfers between VPN clients and local clients. For example, the PC needs to send the broadcast packets to all LAN PCs to know which PC enables the Network Place Service. The VPN client cannot send broadcast packets to the LAN while the Broadcast Support setting is disabled. When Broadcast Support is disabled, VPN clients cannot detect the PC running Windows Network Place and will not be able to locate other PCs in the network. To connect to PCs in the LAN, VPN clients will manually have to type the IP address to connect to a PC in the LAN. Source: http://support.asus.com/FAQ/Detail.aspx?SLanguage=en&no=39EB5311-E0CD-96D0-7B13-2C4F532929B4&m=RT-N66U%20(VER.B1)
Disabling broadcast support boosted my file transfer speed up to 14MB/s, which is more than enough for streaming video.