I have two Android smartphones that can provide their internet connection to a computer over USB via the RNDIS (Remote Network Device Interface Specification) protocol. I also have two computers dual-booting Windows 7 Ultimate and some flavor of Linux (one of them has Fedora 17, the other has Ubuntu 12.04).
When I connect either smartphone to either computer and the computer is running Windows, I have to wait about 90 seconds before I can use my internet connection after enabling tethering from the phone.
When I connect either smartphone to either computer and the computer is running Linux, I have to wait about 2.5 seconds before I can use my Internet connection.
My question is, why is there such a ridiculously long delay on Windows?
On Windows, it says "Identifying..." on the adapter for about 60 seconds, then says "Limited Or No Access", then if I keep refreshing my browser, EVENTUALLY it will let me browse. After that it's OK.
On Linux, it connects instantly, just like plugging in an ethernet cable. Boom, done.
I don't think it's hardware related because I have two phones from different manufacturers (Motorola and HTC) running two different versions of Android (2.3.6 and 4.0.4). On the computer side, I have a Lenovo ThinkPad T530 and a hand-made desktop. I've actually tried it on two separate hand-built desktops; one a Nehalem system and one Ivy Bridge. As far as I can tell, they have absolutely nothing to do with one another.
Things I've tried to improve the performance on Windows:
CLEAN install of Windows. Absolutely nothing except base drivers, SP1 and critical updates. No VPN software, no security software, no virtualization software, no custom netfilt drivers whatsoever except those drivers absolutely required to tether to the phone.
Unchecking all but TCP/IPv4 in the network connection properties (so unchecking QoS, Client for Microsoft Networks, Link-Layer Topology, etc.
Setting static IP and static DNS servers.
None of this helps at all. I simply cannot navigate anywhere on the computer until about 90 seconds after enabling tethering on the phone, and the problem ONLY occurs on Windows. On Linux it's fine.
Pretty stumped about this. For what it's worth my RNDIS driver is version 6.1.7600.16385 and the name is "Remote NDIS based Internet Sharing Device" followed usually by a number like #2, #9, etc. I'm using a genuine copy of Windows in all cases and I've tried both an OEM buildout of Windows from Lenovo (on the ThinkPad) as well as a clean Microsoft install from the retail CD on my desktops.