天天看点

WINS基本工作原理

通常,Windows操作系统支持以下两种主要的网络名称解析方法。

l           主机名称解析:这是Windows基于套接字的名称解析方式,它执行gethostbyname()API函数以搜索主机IP地址,该地址是建立在已查询的主机名称基础上的。该方法依赖于Hosts文件或查询DNS以执行名称解析功能。

l           NetBIOS名称解析:该名称解析使用NetBIOS重定向程序来搜索基于查询的NetBIOS名称的地址。该方法依赖于Lmhosts文件,或查询WINS执行名称解析。

   在默认情况下,运行Windows 2000/XP/Server 2003操作系统的WINS客户端被配置为先使用DNS解析长度超过15个字符或包含句点(.)的名称。对于少于15个字符,并且不包含句点的名称,如果将客户端配置为使用DNS服务器,则也可以在WINS查询失败之后再次将DNS用做最终选项。默认情况下,当用WINS服务器地址配置(手动或通过DHCP)运行Windows 2000/XP/Server 2003操作系统的计算机的名称解析时,除非配置了其他NetBIOS节点类型,否则计算机将使用混合节点(h-节点)作为NetBIOS名称注册的节点类型。对于NetBIOS名称查询和解析,也使用h-节点行为,但有少许差异。

说明

NetBIOS节点类型有4种:b-节点(广播)、p-节点(端对端)、m-节点(混合)和h-节点(混合)。b-节点使用广播NetBIOS名称来注册和解析名称。b-节点有两个主要问题:(1)广播将干扰网络上的每个节点;(2)路由器通常不转发广播,所以只能解析本地网络上的NetBIOS名称。p-节点使用NetBIOS名称服务器(NBNS),如WINS服务器来解析NetBIOS名称。p-节点不使用广播,而是直接查询名称服务器。m-节点是b-节点和p-节点的组合。

在默认情况下,m-节点作为b-节点使用。如果m-节点无法通过广播解析名称,则使用p-节点查询NBNS服务器。h-节点是p-节点和b-节点的组合。在默认情况下,h-节点作为p-节点使用。如果h-节点无法通过NBNS解析名称,则使用广播解析名称。

    对于NetBIOS名称解析,WINS客户端通常采用以下步骤进行解析名称。

(1)客户端检查查询的名称是否是它所拥有的本地NetBIOS计算机名称。

    (2)客户端检查远程名称的本地NetBIOS名称缓存(远程客户端的解析名称放置在该缓存中,并将保留10分钟)。

    (3)客户将NetBIOS查询转发到已配置的主WINS服务器中。如果主WINS服务器应答查询失败(因为该主WINS服务器不可用,或因为它没有名称项),则客户将按照列出和配置使用的顺序尝试与其他已配置的WINS服务器联系。

(4)客户端将NetBIOS查询广播到本地子网。

(5)如果配置客户端已使用Lmhosts文件,则客户将检查与查询匹配的Lmhosts文件。

(6)如果将其配置成单个客户端,则客户会尝试Hosts文件然后尝试DNS服务器。

       WINS客户的名称解析是所有Microsoft TCP/IP上的NetBIOS(NetBT)客户端用来解析网络上的NetBIOS名称查询的相同名称解析过程扩展。实际的名称解析方法对用户是透明的。对于Windows 2000/XP/Server 2003系统,一旦使用net use命令或类似的基于NetBIOS的应用程序进行查询,WINS客户将使用以下流程解析名称。

    (1)确定名称是否多于15个字符,或是否包含句点(.)。如果是这样,则向DNS查询名称。

    (2)确定名称是否存储在客户端的远程名称缓存中。

    (3)联系并尝试已配置的WINS服务器,使用WINS解析名称。

 (4)对子网使用本地IP广播。

    (5)如果在连接的“Internet协议(TCP/IP)”属性中启用了“启用LMHOSTS搜索”,则检查Lmhosts文件。

 (6)检查Hosts文件。

 (7)查询DNS服务器。

本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/32583如需转载请自行联系原作者

茶乡浪子

继续阅读