Windows – Packet loss on native Windows 7, but not on Mac, Linux, WinXP or VM’d Win7. What

driverspacket-losswindows 7

I am managing a small handful of newish Dell laptops and desktops that use similar ethernet hardware — Intel I217-LM for the desktops and Intel I218-LM for the laptops. These all are running the same Intel driver in Windows 7, currently "Intel(R) PROSet Version: 18.1.59.00", or driver version "12.11.77.0, 2/11/2014" (not sure what the two versions are for, but whatever).

These machines are having problems dropping packets to a server a few hops away on our local campus network. My diagnostic tool for these issues has been running a simple ping -t -l 3500 targetserver01 for a few hours at a time, and comparing the number of dropped packets with a control.

What I find is that these new machines are dropping dozens of packets per hour, while an ancient desktop next door drops almost none. The last trial I ran had this old desktop drop 14 packets over 2.5 hours, while all of the newer machines dropped between 110 and 130 over the same period of time. Even running the same laptops on wifi has them drop fewer packets than when they are using ethernet. I've also controlled for network infrastructure — I am 100% sure (+/- 10%) at this point that the variable coincident with this issue is the Intel ethernet driver on Windows, and this is proved by booting one of the laptops into Ubuntu on a USB stick. When running the default Ubuntu driver on the same exact Intel chipset, the issue disappears and packet loss rates are back in line with the "old desktop" control.

I've tried playing with all the settings I can get my hands on in the driver settings in Device Manager, but to no avail. These machines are required to run Windows software, so I can't just install Linux on all of them. The best workaround I have at this point is to buy USB-Ethernet adapters for all of these machines to use instead of the built-in interfaces, but I figure there's got to be a better way since the issue is with the driver software, not the interface itself.

I found this question, which seems to indicate I'm not going to find "generic" drivers for this Intel chipset:

Generic Ethernet drivers for WINDOWS

So, what are my options? Does this warrant further research, perhaps by running WireShark on the affected machines? Does Intel take user feedback?

EDIT:

The new drivers haven't made any difference. All of the Windows 7 machines I have access to at the moment are the affected, with the exception of a virtual machine running on an iMac. The virtual machine does NOT experience the ~1% packet loss issue.

Next steps are to simultaneously test ping every router between this office and the server (there are only 2), read up on how to use NTttcp, and find another native Windows 7 machine that uses a different chipset. I'll report back.

Oh, also I did a trial with a USB-Ethernet dongle and got the same approximate 1% packet loss. So now I'm just weirded out.

New question: How can I keep myself from slowly descending into madness?


2nd Edit:

This is finally starting to look like a network issue after all. Still haven't had the chance to explore some of the suggested analysis tools (but thank you for that), but performance on previously unaffected machines has started to degrade over the past 24 hours — and now my testing has narrowed this down to anything past the first switch in the route — pings to a machine on the same switch and in the same office succeed with 0% packet loss.

Best Answer

  • If the network guys do not see any errors on their switch, you might want to look at network errors on your own port... Unfortunately, in a race to have everything "User Friendly" Microsoft has buried that info so deeply that you need to use Regedit to see something.

    Here's what I've found to enable Ethernet error reporting in windows 7:

    Show errors in addition to the amount of sent/recieved packets.
    
    As you probably know, the Network Connection Status window shows the number of packets received and sent via the adapter. However, you can perform a registry hack to show the amount of errors as well, which can help alert you of network problems. To do this, add the following key and value:
    
    Hive: HKEY_LOCAL_MACHINE
    
    Key: SYSTEM\CurrentControlSet\Control\Network\Connections\StatMon
    
    Value Name: ShowLanErrors
    
    DWORD Value: 0 = default, 1 = enable error count
    
  • Related Question