One of the things I’ve been curious about for a while, but didn’t spend much time investigating was how Windows 8 and 8.1 could detect that you were connected to a network with an associated cost – usually the case with 3G and 4G networks. Was there a secret database of all the telcos access points? Was it based on the MAC address of the Wi-Fi chip in mobile phones and mobile hotspots? No, it is something much simpler – the access points report this information to Windows.
The easiest way to get access to this information is via netsh, if you run “netsh wlan show all” you end up with a pretty rich view of the wireless networks you have connected to, but more importantly you can see the relevant information under Cost settings. I’ve got two example screenshots here – the first you will see is coming from my mobile phone when Internet Sharing is enabled, and you will see that the cost is Fixed.
The second screenshot shows the Cost setting on this network is Unrestricted, and which means it won’t trigger some of the same behaviours as the example above would.
So what does Windows do with these settings? Windows features such as SkyDrive synchronization, Windows Updates and other potentially traffic intensive activities can be restricted while on a metered connection, but applications can also call Windows APIs to get this information as well. The best example I’ve seen of this is Outlook 2013 which lets you know you are connected over a metered connection, and stops synchronizing until you give approval.
Here are a few details on some of the settings.
First of all, with Cost, we have the following options.
Unknown | Cost information is not available
Unrestricted | The connection is unlimited and has unrestricted usage charges and capacity constraints.
Fixed | The use of this connection is unrestricted up to a specific limit.
Variable | The connection is costed on a per-byte basis.
For some of the the settings, we have the following options
ApproachingDataLimit | Gets a value that indicates if a connection is approaching the data usage allowance specified by the data plan, which is defined by the carrier. This limitation is most commonly referred to as a data cap.
OverDataLimit | Gets a value that indicates if the connection has exceeded the data usage allowance specified by the data plan, which is defined by the carrier.
Roaming – Gets a value that indicates whether the connection is to a network outside of the home provider.