There are several ways, one of them is pinging an address every few minutes to insure the network is still up.
You can also use GetIsNetworkAvailable method in System.Net.NetworkInformation.NetworkInterface.
Even a better solution which you can use if the NetworkChange class and its 2 events:
NetworkAvailabilityChanged
NetworkAddressChanged
More info fro MSDN
here[
^]