Network performance issues on windows 7

Solution 1:

Before you say "network" let's understand what LAYER you're talking about here.

If it's truly a "networking" problem its going to be layer 3 and below.

So... check the following:

Layer 1: Frayed or kinked cable? If you have a managed switch can you see any physical errors on the port utilized by the client? Is the NIC linking at half or full duplex, 10 or 100 or 1000?

Layer 2: Thrown on Wireshark and lookout for any duplicate MAC addresses jibber jabbering back and forth.

Layer 3: Is it receiving a valid address not shared by any other peer on the network?

As for the OS itself... check the usual culprits:

  1. 3rd party and OS firewalls fighting each other.
  2. Protocols you're not using yet, like IPv6, uncheck it.
  3. bad DNS configuration
  4. Did you set the connected "network" as Work/Home or Public?

Troubleshoot some more.

Solution 2:

Using IPv6? Many of the problems I have seen with Win7 networking revolve arround IPv6 and the hosts file.

But rather than guessing, I would collect data first. Start with the System event log. Research any warnings and errors in the relevant time frame.

Next try something like:

netstat -noab >%userprofile%\Desktop\out.txt

Use the output to audit connections on a given machine. Pay close attention to records with a state other than Listening or Established. If you find something odd, try to isolate it and take a closer look.

Another thing is to verify the ping response. Try pinging both the IP Address and the Machine name. Make sure that the response is from the host you expect it to be from.

Is Network Discovery enabled?

http://windows.microsoft.com/en-US/windows7/Enable-or-disable-network-discovery

Solution 3:

What is your ethernet adapter's chipset? I have seen this with particularily horrible ethernet chipsets that do crappy TCP Offloading and fail miserably at it.

Solution in my case was to disable TCP Offloading in the driver options pane, and bumping MTU back to 1500.

This could be a multitude of things, but in this particular case, that was my issue, and it took forever to figure out, so i thought I would mention it.

Solution 4:

You may want to try this as a test:

netsh interface tcp set global autotuninglevel=disabled  

or

netsh interface tcp set global autotuninglevel=highlyrestricted