I connect to my gigabit LAN with my RTL8111C-based NIC. It's on a Gigabyte GA-P43-DS3. In the last 3 weeks I noticed that my transfer rate dropped from the usual 40-60 MB/s (using a NAS over SMB) to about 2-10 MB/s. I thought maybe the server did some bandwidth limiting, but from any other PC transfer rates were OK.
I changed the cable of the PC and tried different ports of the switch. When I checked the traffic with Wireshark, I noticed that there were TCP errors, like duplicate ACKs. Later, I checked the transfer rate with iperf and it was just as low as when I copied files over SMB, so the problem must be with the network.
When I did a test over UDP it showed that about 10-20% of the packages were dropped. The funny thing is, that if I use a lower numbered port on my switch, the error rate is much higher. (E.g. port#1: 21% vs. port#8: 11%)
I think the transfer rate dropped because packets were lost during the transfer, so TCP slowed down the process. I also noticed that these error rates only apply to receiving packets. The computer can send packets with nearly 0% losses.
I checked the network with different cables and computers and every combination was working OK. The drop rate was about 1 vs. 460,000 packets (nearly 0%).
Is it common to NICs stop receiving packets? Why does it matter which port I use on my switch?
Update: I use a Linksys SD2008 switch. I tried all of its ports with known-good PC and cables. No matter what combination I used, there was no problem, just with the affected PC. I'm pretty sure that its NIC is failing. I just wonder why does it matter which port I use. The difference between the ports can be measured, but only with the affected PC.
Update 2: I use Windows 7 x64, but I checked with Linux (Fedora 12 x64) and got similar results, so it's unlikely that's a driver issue. The SD2008 ports are divided to 2 4-port groups. The issue is present no matter which group I use. However, I still doesn't understand how is it possible that lower numbered ports have higher error rate...