玩转“网上邻居”之WINS解析(二)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:
 
WINS名称解析
上面介绍了名称注册的方法,那么所注册的名称如何与对应的IP地址对应呢?这就是名称解析的任务了。
名称解析是为用户提供易于记忆的服务器名称的过程,这样用户就无需记忆那些在 TCP/IP 网络上用于标识服务器的数字IP地址了。WINSDNS服务出现以前,NetBIOS名称的解析是通过广播或者静态的LMHOST文件的方式实现的。Lmhosts文件位于各个计算机本地,对于Windows 95/98计算机,它位于\windows目录中,对于Windows NT 4.0系统的计算机,它位于\winnt\system32\drivers\etc目录中。Lmhosts是一个静态的纯文本文件,其中存放NetBIOS计算机名与相应IP地址的映射行,用于解析远程计算机名与相应IP地址的对应问题,由于是静态文件,其中的数据须要手工输入,一旦新增加或改变了网络上的计算机名与其IP地址,Lmhosts文件无法像WINS服务器那样动态自动地更新数据,只能手工更新,维护工作量较大。
广播的缺点是增加了网络的负荷,此外广播一般不能通过路由器;LMHOST文件的缺点是需要手工维护,并且当用户计算机的IP地址经常变化时(如DHCP客户),它不能有效地解决名称解析的问题。但自WINSDNS服务出现后,NETBIOS名称解析的任务就交给它们了。
1域名系统(DNS)
DNS是一个用于在Internet和专用TCP/IP网络上定位计算机的分层命名系统。通常需要安装一个或多个DNS服务器。Internet电子邮件、Web浏览和Active Directory都需要DNS。某些带有运行Windows 2000客户端的域也需要DNS。当创建域控制器(或将某个服务器提升为域控制器)时,会自动安装DNS,但当Windows 2000软件检测到域内已有DNS服务器时例外(或者,也可以明确地将DNS作为安装过程中或安装之后要安装的组件。)。
如果在服务器上安装DNS,将需要为该服务器指定一个静态IP地址。此外,还需要配置DNS客户端,以便它们能够识别这个IP地址。
这种名称解析方法通常应用于InternetWindows 2000域中。
2WindowsInternet名称服务(WINS)
对于像Windows 95/98NT/Me这样的早期系统,则通常不是采用DNS进行名称解析,而是通过另一种服务进行的,那就是WINS服务。WINS是一个可选的软件组件,出现在组件列表的网络服务下面。如果在服务器上安装WINS,则需要为该服务器指定一个静态IP地址。此外还需要配置WINS客户端,以便使它们识别这个IP地址。
本节要介绍的就是这种微软早期系统版本所采用的WINS服务名称解析原理。
1.WINS定义
Windows Internet命名服务(WINS)为注册和查询网络上计算机和用户组NetBIOS名称的动态映射提供分布式数据库。WINSNetBIOS名称映射为IP地址,并设计以解决路由环境的NetBIOS名称解析中所出现的问题。WINS对于使用TCP/IP上的NetBIOS路由网络中的NetBIOS名称解析是最佳选择。
早期版本的Windows操作系统使用NetBIOS名称以标识和定位计算机以及其他共享或群集资源,要在网络上使用这些资源需要注册或名称解析。在早期版本的Windows操作系统中(Windows 2000以前的系统)NetBIOS名称对于创建网络服务是必需的。尽管可以对非TCP/IP的网络协议使用NetBIOS命名协议(例如NetBEUIIPX/SPX),但是仍然专门设计了WINS以支持TCP/IP上的NetBIOS(NetBT)
WINS在基于TCP/IP网络中简化管理NetBIOS名称空间。图3显示了包含WINS客户端和服务器的一组典型的事件。
 
3
在该示例中,将发生以下事件:
·WINS客户HOST-A使用WINS-A和已配置的WINS服务器注册任何本地NetBIOS名称。
·另一个WINS客户HOST-B查询WINS-A以定位网络上HOST-AIP地址。
·WINS-A使用IP地址192.168.1.20应答HOST-A
WINS减少使用NetBIOS名称解析的本地IP广播,并允许用户很容易地定位远程网络上的系统。因为WINS注册在每次客户启动并加入网络时自动执行,所以WINS数据库在进行更改动态地址配置时会自动更新。例如,当DHCP服务器将新的或已更改的IP地址发布到启用WINS的客户计算机时,将更新客户的WINS信息。这不需要用户或网络管理员进行手动更改。
2.WINS解析概述
WINS用于解析NetBIOS名称,但是为了使名称解析生效,客户必须可以动态添加、删除或更新WINS中的名称。下面是这些过程的功能性描述,特别是在基于WINS网络上,客户如何注册、更新、释放和解析名称。WINS客户/服务器通讯的过程如图4所示:
 
4
WINS服务系统中,所有的名称都通过WINS服务器注册。名称存储在WINS服务器上的数据库中,WINS服务器响应基于该数据库项的名称—IP地址解析请求。通过在网络中使用多个WINS服务器来维护冗余和负载平衡。为了维护NetBIOS名称空间的一致性,服务器周期性地相互复制数据库项。
每个名称在数据库中都有一项。该数据库归用来注册的WINS服务器所有,并且是所有其他WINS服务器上的复制。每个项都有一个与之相关的状态,此状态可以是活动、释放或消亡(也称为逻辑删除)状态。系统还为这些项指派了版本IDWINS也允许静态名称注册。这允许管理员为那些运行无法进行动态名称注册的操作系统的服务器注册名称。WINS区分动态和静态项。对静态名称的处理与动态名称不同。
3WINS名称解析工作原理
默认情况下,当用WINS服务器地址配置运行Windows 2000计算机(手动或通过DHCP)的名称解析时,除非配置了其他NetBIOS节点类型,否则计算机将支持使用混合节点作为NetBIOS名称注册的节点类型。对于NetBIOS名称查询和解析,它也支持混合节点的操作,但有少许差异。对于NetBIOS名称解析,WINS客户通常执行以下一系列步骤来解析名称:
·客户检查查询的名称是否是它所拥有的本地NetBIOS计算机名称。
·客户检查远程名称的本地NetBIOS名称缓存。远程客户的解析名称放置在该缓存中,并将保留10分钟。
·客户将NetBIOS查询转发到已配置的主WINS服务器中。如果主WINS服务器应答查询失败(因为该主WINS服务器不可用,或因为它没有名称项)则客户将按照列出和配置使用的顺序尝试与其他已配置的WINS服务器联系。
·客户将NetBIOS查询广播到本地子网。
·如果配置客户端以使用Lmhosts文件,则客户将检查与查询匹配的Lmhosts文件。
·如果将其配置成单个客户,则客户会尝试Hosts文件然后尝试DNS服务器。
4解析名称
WINS客户的名称解析是网络上TCP/IP(NetBT)客户上所NetBIOS的相同名称解析的扩展,它解析网络上的NetBIOS名称查询。实际的名称解析方法对用户是透明的。
对于Windows 2000,一旦使用netuse或类似的基于NetBIOS的应用程序进行查询,WINS客户将使用下列一系列选项解析名称。
·确定名称是否多于15个字符,或是否包含小数点(.)。如果是这样,则向DNS查询名称。
·确定名称是否存储在客户的远程名称缓存中。
·联系并尝试配置了WINS的服务器,使用WINS解析名称。
·对子网使用本地IP广播。
·如果在连接的“Internet协议(TCP/IP)”属性中启用了启用LMHOSTS搜索,则检查Lmhosts文件。
·检查Hosts文件。
·查询DNS服务器。
5何时使用 WINS
对于由运行Windows 2000 Server的服务器和运行Windows 2000 Professional的所有其他计算机组成的网络,NetBIOS对基于TCP/IP的网络已不再需要。当决定是否需要使用WINS时,应首先考虑以下问题:
1在需要使用NetBIOS名称的网络上是否有旧式计算机
运行在以前版本的Microsoft操作系统下的所有网络计算机,例如MS-DOS的各种版本、Windows 95/98Windows NT,都需要NetBIOS名称支持。Windows 2000是第一个不再需要NetBIOS命名支持的操作系统,但在网络上仍然可以需要NetBIOS名称以对使用的许多旧式应用程序提供基本文件和打印服务以及支持。
2是否配置网络上的所有计算机以支持使用其他类型网络命名,例如DNS
网络命名仍然是在整个网络中定位计算机和资源的重要服务,甚至当不需要NetBIOS时也是如此。在决定消除WINSNetBIOS名称支持之前,请确定网络上的所有计算机和程序可以使用其他命名服务正常工作,例如DNS
通常,Windows操作系统支持两种主要的网络名称解析方法。它们是:
·主机名称解析。这是Windows基于套接字的名称解析方式,它执行了gethostbyname()API函数以搜索主机IP地址,该地址是建立在已查询的主机名称基础上的。该方法依赖于Hosts文件或查询DNS以执行名称解析功能。
·NetBIOS名称解析。该名称解析使用NetBIOS重定向器来搜索基于查询的NetBIOS名称的地址。该方法依赖于Lmhosts文件或查询WINS执行名称解析。
在默认情况下,运行Windows 2000WINS客户被配置为先使用DNS解析长度超过15个字符或包含小数点(.)的名称。对于少于15个字符并且不包含小数点的名称,如果将客户配置为使用DNS服务器,则也可以在WINS查询失败之后再次将DNS用作最终选项。
如果运行的是纯Windows 2000环境,请检查当前配置了DNS并可以由网络上的所有客户计算机用来解析名称。如果运行计算机的混合环境,即计算机正在Windows 2000和其他操作系统平台下(如UNIX)运行,请确认其他主机只使用DNS解析主机名称。
3网络是单个子网还是有多个子网路由的网络
如果整个网络由单个小型局域网(LAN)组成,该局域网占据物理网段并有少于50个客户,那么可以不使用WINS服务器。将在Windows 2000系统下运行的所有计算机和早期基于MicrosoftWINS客户都配置为混合式节点类型客户,并使用以下方法之一处理NetBIOS请求以解析或注册名称:
·如果配置了WINS服务器,请与之直接(点对点)联系。
·请求到本地子网的NetBIOS广播。
对于小型网络,后面的选项通常是将NetBIOS名称服务提供到少数基于LAN客户的有效而简单的解决方案。
注意:要提供对DNS查询的充分使用,可像这部分所描述的和Windows 2000NetBIOS名称解析过程中使用的那样,对早期Windows客户,例如Windows 95Windows NT 4.0客户(该客户支持该选项作为可配置的TCP/IP属性设置),选择启用DNS进行WINS解析
最后要向大家介绍的是与NETBIOS名称注册、WINS名称解析关系密切的一个协议,那就是——NETBEUINetBEUI协议是NetBIOS的增强用户接口协议,它是不可路由的网络传输,所以它只适用于由少于50台计算机的单个网络段构成的小型网络。NetBEUI是支持网络基本输入/输出系统 (NetBIOS) 用法的两个网络解决方案之一(另一个就是TCP/IP上的NetBT(NBT)),该方案被早期的 Windows 版本用于网络名称解析。其他用于较大或路由网络的、基于 NetBIOS的解决方案是 TCP/IP 上的 NetBIOS (NetBT)正因如此,在由Windows 95/98/NT 4.0等早期系统组成的许多小型对等网中,也可以通过NETBEUI协议实现网络的连接,甚至可以不用TCP/IP协议。
本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/11235如需转载请自行联系原作者

茶乡浪子
相关文章
|
网络协议 Windows 网络安全
|
29天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
64 0
|
29天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
51 0
|
29天前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
58 0
|
29天前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
74 0
|
9天前
|
消息中间件 缓存 安全
Future与FutureTask源码解析,接口阻塞问题及解决方案
【11月更文挑战第5天】在Java开发中,多线程编程是提高系统并发性能和资源利用率的重要手段。然而,多线程编程也带来了诸如线程安全、死锁、接口阻塞等一系列复杂问题。本文将深度剖析多线程优化技巧、Future与FutureTask的源码、接口阻塞问题及解决方案,并通过具体业务场景和Java代码示例进行实战演示。
28 3

推荐镜像

更多
下一篇
无影云桌面