Update
Ok, I've tried the answers below and nothing has changed. I've identified the chipset in the laptop as the NVIDIA nForce 520. I downloaded the latest Vista x64 drivers for the nForce 520 (NVIDIA doesn't have any drivers for that chipset for Win 7 yet). I've tried installing the included firewall software (thinking maybe it is interfering - it's not). I've completely uninstalled my anti virus software (I am using Avast!) thinking its network filter driver may be causing a problem, that hasn't helped either.
I took my laptop over to my brothers house and was able to copy files at 10 - 12 MB/s over his 100Mbit network so I don't think it's the hardware.
I have run iperf with some surprising results:
iperf from the laptop sending to the server (upload)
> iperf -c naru
------------------------------------------------------------
Client connecting to naru, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[328] local 192.168.7.100 port 8549 connected with 192.168.7.6 port 5001
[ ID] Interval Transfer Bandwidth
[328] 0.0-10.0 sec 162 MBytes 136 Mbits/sec
> iperf -c naru -w 64k
------------------------------------------------------------
Client connecting to naru, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[328] local 192.168.7.100 port 8550 connected with 192.168.7.6 port 5001
[ ID] Interval Transfer Bandwidth
[328] 0.0-10.0 sec 1.06 GBytes 909 Mbits/sec
iperf from the server sending to the laptop (download)
> iperf -c miyuki
------------------------------------------------------------
Client connecting to miyuki, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[256] local 192.168.7.6 port 51871 connected with 192.168.7.100 port 5001
[ ID] Interval Transfer Bandwidth
[256] 0.0-10.1 sec 25.2 MBytes 20.8 Mbits/sec
> iperf -c miyuki -w 64k
------------------------------------------------------------
Client connecting to miyuki, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[256] local 192.168.7.6 port 51872 connected with 192.168.7.100 port 5001
[ ID] Interval Transfer Bandwidth
[256] 0.0-10.0 sec 21.1 MBytes 17.6 Mbits/sec
For comparison here are the iperf numbers between the HTPC and the server
Server: Naru, Host: CC (CC sends to Naru)
iperf -c naru: 0.0-10.0 sec 363 MBytes 305 Mbits/sec
iperf -c naru -w 64k: 0.0-10.0 sec 1.06 GBytes 912 Mbits/sec
Server: CC, Host: Naru (Naru sends to CC)
iperf -c cc: 0.0-10.0 sec 322 MBytes 270 Mbits/sec
iperf -c cc -w 64k: 0.0-10.0 sec 1020 MBytes 855 Mbits/sec
Using wireshark to watch a transfer from the server to the laptop nets a lot of the following entries:
(:51aa is the server, :37a1 is the laptop)
No. Time Source Destination Proto Info
37785 27.286240 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#13] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40517974
37786 27.286258 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#14] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40519414
37787 27.286277 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#15] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40520854
37788 27.286295 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#16] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40522294
37789 27.286313 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#17] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40523734
37790 27.286332 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#18] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40525174
37791 27.286351 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#19] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40526614
37792 27.286370 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Previous segment lost] [TCP segment of a reassembled PDU]
37793 27.286372 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP segment of a reassembled PDU]
37794 27.286375 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Fast Retransmission] [TCP segment of a reassembled PDU]
37795 27.286377 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37796 27.286379 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37797 27.286382 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37798 27.286413 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#20] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40528054 SRE=40529494 SLE=40499254 SRE=40526614
37799 27.286432 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#21] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40528054 SRE=40530934 SLE=40499254 SRE=40526614
At this point I am at a complete and utter loss as to what to try next.
Original Question
Background
I am currently experiencing an issue on my freshly installed Windows 7 laptop. The issue originally occurred after I had installed the Windows 7 RC. When Windows Vista and the Windows 7 Beta 1 were installed on this laptop I was able to transfer at gigabit speeds with Jumbo frames turned on to the 9KB/9014 range. The two switches between the laptop support Jumbo frames as well.
When copying files from my server to my laptop, they run at a snails pace (usually less than 1 MB/sec) while other devices going through the same switches can transfer at higher speeds (45 - 55 MB/sec). It seems copying from the laptop to the server nets a faster speed but nothing like it should be.
Machines involved
- Miyuki: Laptop with the issue. Windows 7 x64 RTM. HP Pavilion dv9700 CTO. Uses a NVIDIA nForce 10/100/1000 Mbps Ethernet adapter. (Video is GeForce 8400M GS)
- Naru: Server with files. Custom Windows Server 2008 R2 x64 SP2. Uses a D-Link DGE-560T PCI Express Gigabit adapter.
- CC: HTPC on same switch without issue. Windows Vista x86 SP2. Uses an on-board Realtek RTL8168B/8111B PCI-E GBE adapter.
When these images were taken jumbo frames have all been turned off.
The images
Copying initiated from the laptop
Server -> Laptop
(source: gibixonline.com)
Laptop -> Server
Copying initiated from the server
Server -> Laptop
(source: gibixonline.com)
Unexpectedly having the server copy a file from the laptop to itself results in speeds I would expect. (Laptop -> Server)
(source: gibixonline.com)
I stated earlier that the other machine on the same switch doesn't have this issue. High DPI is turned on since this is displayed on a HDTV.
Server -> HTPC
(source: gibixonline.com)
Naturally as a test I decided to see what the speeds were between my laptop and the HTPC. Unfortunately they were exactly what I expected.
HTPC -> Laptop
(source: gibixonline.com)
Final notes
I have tried everything I can think of. Even jumbo frames are turned off at this point and nothing seems to affect it. I've tried turning my Anti-Virus protection off to changing the cables that I use. Currently all cables in use are CAT-5e that I have built. I tried taking the cable from the HTPC and plugged it into my laptop to see if cabling was an issue. The two switches in question are a D-Link DGS-1216T and a "dumb" switch that supports jumbo frames, the D-Link DGS-2208.
Try disabling Window's auto-tuning feature.
In a CMD window:
Re-run your test, and see if you notice a performance improvement. I've had to do this on a couple of laptops running Windows 7 in my house, and it's helped.
If things get worse, or you don't notice any improvement, you can re-enable autotuning by:
This seems to be a big issue with Windows 7. Several gamers have complained about this issue.
This decreased my ping in most games from 200-300ms to 50-60ms, which matches the latency I would see via a tracert to the game’s server.
Taken from reduce game network latency in windows 7 or vista
To verify whether the laptop is not at fault, run up an ubuntu live cd, install iperf onto the ramdisk and run a test.
This should at least test the network side of it.
Check for dropped packets. Not sure how to do this in windows, but if you have a linux machine you can check there.
I had a similar experience with a gigabit switch where the gigabit mode was broken and dropping packets. I only saw trouble when I had 2 machines connected in this mode. In 100K mode, everything was fine. It was a nasty problem which took me a few days to find out. I might have been a D-Link. Do some googling about your model of switch. I did and found others had the same problem as me.
I've come across this before with other AV products. My issue was with SMB and the AV product interfered even when "disabled". It showed similar results in wireshark that you have. Here is one of the many sites I checked to arrive at the root cause: Symantec SMB issue and another: SMB2 fail with NTP
Additionally, you might try disabling/changing all or some of the settings within SMB. I would even consider disabling v2 on the OS. Check this article that describes an SMB issue within Win Vista and this link to Microsoft outlines some tech data about SMB reg settings.
I know you mentioned Avast, but it's fairly coincidental that I saw similar wireshark results. Note that everything but file transfer seemed to work fine in my case.
I've had problems with clients communicating with Windows Servers when using Packet Signing. I didn't experience slowness, but rather very common connection drop-outs.
Read here for the solution that fixed my problem.
Also I don't see any suggestions here for turning off TCP Chimney functions one by one to see if one of them has gone awry.
It seems like the o.s. is checking the packets before writing to disk. I observed all the slow transfers are the ones which try to write to laptop... I suggest
Others are suggested and didnt seem to be helping:
One last suggestion is, Can you check battery mode link detection on advanced properties of nic? It's a laptop and there could be some issues with power saving properties... Try "No Energy Saving" on battery mode link detection, and "Full" on battery speed settings.
I am using win7 on a desktop pc and those options are not included in my nic's advanced properties. As long as I had never gone through with this issue you can check the values of "Flow Control" to "TX and RX Enabled" as my nic's options, too. Jumbo is disabled, Speed and Duplex is also auto on my config...
I can't think of any other solution... Hope this helps...
Previously I chase my tail with exactly the same problem for a while! Slow transfer speeds in one direction, in my case outbound (uplink).
Windows 7 Pro, Celeron J1800 with Realtek Gigabit 8111C builtin lan card. QNAP 453a and MacBook Pro on the other end.
When measured via Iperf3 I was getting 112 mbps with the my Windows 7 set as a client (CPU usage at 25-30%). And only 39-41 Mbps when set as a server, with heavy CPU usage between 50-100%. So bad that the PC would freeze at times of bandwidth testing.
Regular file transfer capped at 45mbps max no matter if I was uploading or downloading files to my NAS or my MAC.
I was getting nothing more than 35-45 megabytes per second. Pretty frustrating!
Ended up being a bad lan card driver. I was obsessed with updating drivers and always updated my drivers when new one become available. Guess what, after several updates my lan card slowed down.
Some of you might say, just delete the old driver and install the new one. Simple, ah? I tried and tried, It did not work for me.
Here is my solution:
Installed windows from scratch with OEM drivers from the manufacturer's website. As well I did the following:
Under Device Manager / Lan card / Advanced settings / Disable everything except FLOW CONTROL.
Under Windows Features, Disable Remote Differential Compression.
Now average speed is between 80-100 Mbps.
By everything, I assume you've set the network cards to full-duplex, 100MBit, and not auto?
You will probably hate this answer, but I have to say it!
Have you tried updating the drivers?
I get a similar problem on my laptop (Realtek based NIC), it transfers at around 3MB/s but then the moment I upgrade the drivers to the latest ones from their site it goes up to around 40-50MB/s
Just because the drivers with Windows work, it doesn't mean they are best.