装Windows操作系统的服务器有多个网卡并连接不同的网段时,会有不同的默认网关,这时在某种应用下(如WEB服务器)多个默认网关会产生不稳定现象,造成对服务器的访问时快时慢或者不稳定的问题。
     
   那么,Windows操作系统是如何路由的呢?
      

我们在Windows操作系统下配置网卡的有关IP地址参数后再打开“高级”,在“IP设置”选项卡中的“默认网关”中会看到一个“跃点数”,一般都是设 置成“自动”。这个“跃点数”也就是路由的“跳数”,也就是指通过路由到达目的地址所进行的路由转发的次数;“跳数”越小的具有较小的路由开销,因此路由 优先级就高;当到达一条目的地址有多个相同的路由时,路由“跳数”较小的会对数据进行转发。
      
在Windows操作系统中,路由“跳数”是根据所连接网卡的速度来计算的。当网卡默认网关的“跃点数”设置为自动时,1000M网卡的“跳数”就是10,100M网卡的“跳数”就是20,10M网卡的“跳数”就是30。
       

当然,路由的规则很多,但容易出问题的路由是:当服务器具有相同“跃点数”或叫“跳数”的默认网关时,在向一个目的地址发送数据时,服务器是如何选择默认 网关的路由的?对这个问题,Windows是这样处理的:如果上一次访问网络是用的某一个默认网关,那么这个默认网关就具有较高的“绑定次序”,具有较高 “绑定次序”的网卡会成转发路由的数据。
       

那么如何来看当前是哪个网卡上配置的默认网关“绑定次序”相对较高呢?打开“资源管理器”-“控制面板”-“网络连接”,并打开“资源管理器”的“高级” 菜单,选择“高级设置”,这时会打开一个“高级设置”的窗口;在“适配器和绑定”选项卡中的“连接”选项中,会按照“绑定次序”显示出已经安装的网络连 接,上面的网络连接比下面的网络连接的“绑定次序”要高;也就是说,这时访问网络,如果需要路由,起作用的是排列在最上面的网络连接所配置的“默认网关” (前提是此连接有效,如无效则自动查找它下面的连接是否有效,依此类推);这个“绑定次序”可以手工进行调整。
       

那么Windows操作系统是如何检测网络连接是否有效呢?它是通过检测TCP流量连接来实现的。如果通过一个“默认网关”转发的TCP流量在传输了三次 后仍然无法连接,则判定此“默认网关”无效,系统自动选择下一个“默认网关”来进行检测,如有效则将此“默认网关”设为较高的“绑定次序”。当然,如果当 前具有“绑定次序”最高的“默认网关”即使正常,但三次TCP流量未正常连接,系统也会切换“默认网关”。如果没有TCP流量,而是其他类型的如UDP类 型的流量,Windows操作系统不会检测“默认网关”是否有效。