Windows系统自从vista之后,windows 7、 windows 2008,及windows 2008 R2都有了一个新的功能,就是能够智能的判断网络是否连通,也就是说是否能够访问网站,如下图:

网络连通:

网络不通:

    做这个实验时,我只对网络的DNS做了更改,一个正确指向DNS服务器,一个随便设置了一个,其它网络配置没有做一点更改。这就说明,windows是通过DNS来判断网络的连通性。

    为了证明这一点,我用扑包工具做了进一步验证,如下图:

 

   对以上图说明:

   1、当我把DNS地址设为1.1.1.1(我的网络里没有这个DNS服务器),这时候网络不通,那么,主机每过一段时间,都会向UDP为53的端口发送一个长度为85的数据包,我们知道,UDP 53为DNS的端口,这说明,当网络不通时,主机一直在查找它网卡上设定的DNS服务器。

  2、当我改变DNS地址为10.111.1.1(我的网络里有这个DNS服务器)。

  3、4、于是就发送一组组播地地址找到网关

  5、通过网络广播计算机名称

  6、连接到一个IP=207.46.61.90,端口为80的服务器,验证DNS可用,网络连通。

    207.46.61.90:80——美国 华盛顿州雷德蒙德市Microsoft公司

      还有一个问题,就是这个DNS是不是一定要指向连通internet的DNS服务器呢?指向内部的不和Internet相通的DNS服务器行不行?我做了以下实验,我把本机做为DNS服务器,把它网卡上的DNS指向自己,并把这台主机和Internet断开。

扑包结果:

可以看到,它是通过根提示寻找DNS是否可用。

当我在本地DNS转发器配置正确的DNS后:

 

扑包结果:

还是连接到一个IP=207.46.61.90,端口为80的服务器,验证DNS可用,网络连通。

    207.46.61.90:80——美国 华盛顿州雷德蒙德市Microsoft公司

 

 

结论:windows 7 是通过连接Microsoft公司的207.46.61.90:80服务器,来智能验证网络的连通性的。