WINS服务的作用及工作原理
- 格式:doc
- 大小:29.00 KB
- 文档页数:8
WINS服务的作用及工作原理我们在理解Windows网络中的名字解析一文中已经介绍过了,在Windows系统中具有Netbios和DNS这两种名字解析方式。
在那篇文章中,我们提到Netbios 协议是基于本地局域网的UDP广播,具有速度快、无需额外配置的好处,而带来的缺点就是广播不能跨越网段和增加了网络流量,因此微软推出了WINS (Windows Internet Name Service)服务器。
当客户计算机配置为使用WINS 服务器时,它直接和WINS服务器进行单播通讯,这样可以避开NetBIOS协议使用广播时的这两大缺陷。
可能大家觉得,既然是已经被淘汰的技术了,为什么还需要讲解呢?Netbios名字解析方式虽然已经不在作为主要的名字解析方式了,但是在非活动目录环境中,仍然在广泛的使用。
Netbios名字解析所带来的广播网络流量是非常大的,而WINS服务器最大的作用就是可以消除Netbios名字解析方式所带来的大量广播流量,并且它部署简单方便,是我最喜欢的服务器之一。
WINS服务器工作方式WINS协议采用UDP/TCP 42端口进行通讯:WINS服务器侦听UDP/TCP 42端口,客户端计算机连接WINS服务器的这两个端口进行名字服务通讯。
其中UDP 42端口用于答复客户端计算机的名字解析请求,而TCP 42端口用于WINS 数据库复制。
对于WINS服务器而言,它的主要功能有名字注册、名字刷新、名字注销和名字解析这四方面,它们的工作方式分别为:名字注册和DNS服务器一样,你需要配置客户端计算机使用此WINS服务器(你同样需要配置WINS服务器使用自己的WINS服务)。
当WINS客户端计算机启动时,会在配置使用的WINS服务器中注册自己的Netbios名字和对应的IP地址、服务类型。
如果WINS服务器正常运行并且此Netbios名字没有被其他WINS客户端注册,则WINS服务器向WINS客户端计算机返回一个成功注册的消息,其中包括此名字注册的生存时间(TTL)。
如果在WINS服务器上此Netbios名字已被其他WINS客户端注册,则WINS 服务器向注册此名字的现有WINS客户端按照500毫秒的间隔发起三次名字解析请求,如果现有WINS客户端向WINS服务器成功进行回复,则WINS服务器向请求注册此名字的WINS客户端回复拒绝注册消息;如果现有WINS客户端没有向WINS服务器进行回复,则WINS服务器向请求注册此名字的WINS 客户端回复成功注册消息。
如果WINS服务器不在线,则WINS客户端向配置的主WINS服务器和备份WINS服务器各发起三次名字注册请求,如果均未收到WINS服务器的回复,则WINS客户端发送本地广播来注册自己的Netbios名字。
名字刷新WINS客户端必须在WINS服务器定义的生存时间前对自己的名字进行刷新,生存时间定义了WINS服务器将此Netbios名字作为活动记录存储在WINS数据库中的时间。
名字刷新消息中包含了客户端请求进行刷新的IP地址和Netbios 名字,WINS服务器以包含新生存时间的名字刷新响应消息进行回复。
当WINS 客户端刷新它的名字时,执行以下步骤:1、当生存时间已经过了一半时,WINS客户端向自己的主WINS服务器发送名字刷新请求;2、如果主WINS服务器没有进行响应,则WINS客户端将在1小时内每隔10分钟向主WINS服务器发送名字刷新请求;如果主WINS服务器仍然没有进行响应,则WINS客户端向备份WINS服务器发起名字刷新请求;3、如果备份WINS服务器没有进行响应,则WINS客户端将在1小时内每隔10分钟向备份WINS服务器发送名字刷新请求;如果备份WINS服务器仍然没有进行响应,则WINS客户端向又向主WINS服务器发起名字刷新请求。
WINS 客户端重复这种行为直到生存时间结束;4、如果WINS客户端成功刷新它的名字,则复位WINS服务器上的更新间隔;5、如果WINS客户端不能在主WINS服务器或者备份WINS服务器上刷新名字,则名字被释放。
名字释放如果WINS客户端正常关机,它将向WINS服务器对自己注册的每个Netbios 名字发送名字释放请求,其中包含自己的IP地址和需要释放的Netbios名字。
当收到名字释放请求后,WINS服务器检查自己的数据库是否具有匹配的名字注册,如果WINS服务器遇到数据库错误或者此Netbios名字注册到不同的IP地址上,则向WINS客户端发起拒绝名字释放消息,否则向WINS客户端发起接受名字释放消息,在数据库中将指定的Netbios名字标记为不活动的。
如果WINS客户端非正常关闭,则不会向WINS服务器发送名字释放请求,WINS 服务器会保留此名字直到名字注册的生存时间过期。
名字解析对于NetBIOS名字的解析,默认过程如下:检查本地的NetBIOS名字缓存;(由节点类型决定)查询WINS服务器;如果主WINS服务器不可用,则WINS 客户端在向主WINS服务器发送三次解析请求后,切换到备份WINS服务器;(由节点类型决定)NetBIOS广播查询本地网络;查询Lmhosts文件,如果配置为这样做,此文件位于%systemroot%System32DriversEtc目录下。
是否查询WINS服务器和执行Netbios广播查询以及它们之间的优先级,会根据Windows网络客户的节点类型的不同而不同。
对于每个Windows网络客户,它的节点类型决定了它处理Netbios名字解析时的方式,你可以运行ipconfig/all来观看自己的节点类型,如下图所示中的Node Type:节点类型具有以下四种:0x1 Broadcast(B节点):只使用NetBIOS广播查询本地网络,不查询WINS 服务器;0x2 Peer-Peer (P节点):只向WINS服务器发起查询请求,不使用Netbios 广播;0x4 Mixed (M节点):先使用Netbios广播,解析失败后再向WINS服务器发起查询;0x8 Hybird (H节点):先向WINS服务器发起查询,解析失败后再发起Netbios 广播解析;默认情况下客户端计算机配置为B节点,在配置WINS服务器后,会将节点类型修改为H节点。
你可以手动修改节点类型:对于自动获取IP地址的客户端计算机,你可以通过修改DHCP服务器中的046项WINS/NBT节点类型来进行修改;而对于具有静态IP地址的客户端计算机,你可以通过在注册表中修改HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParametersDhcpNodeTypeDWORD键值的值来进行。
数据库复制单个WINS服务器可以为10000个客户端计算机提供Netbios名字服务,不过从负载均衡和容错的角度,微软建议你将WINS服务器成对使用。
此时,你需要配置WINS服务器之间的复制。
WINS服务器具有两种复制伙伴模式:推和拉。
当WINS服务器配置为推模式时,当WINS数据库产生更新时,会通知自己的配置为拉伙伴模式的WINS服务器;而当WINS服务器配置为拉模式时,会定期联系配置为推伙伴模式的WINS服务器,比较WINS数据库版本号从而决定是否需要进行复制。
推模式和拉模式的区别在于:推伙伴模式下的WINS服务器会在数据库修改时通知自己的复制伙伴,而拉伙伴模式下的WINS服务器会在计划的时间周期联系自己的复制伙伴。
所以,当两台WINS服务器之间具有较为快速的链路连接时,应使用推模式;反之则使用拉模式。
在TCP/I P网络中,为解决计算机名称于IP地址的对应问题,用户可以利用HOST 文件、DNS 等方式,但使用这些方法都存在着一个最大的问题,就是网络管理员需要以手工方式将计算机名称(NetBIOS名) 及其IP 地址一一输入到计算机中,一旦某台计算机的名称或IP 地址发生变化,管理员又需要修改相应的设置。
这对于管理员来说是一项繁重的工作。
而微软提供的网际名称服务WINS 解决了这个问题。
利用它可以让客户机在启动时主动的将它的计算机名称(NetBIOS名) 及IP地址注册到WINS 服务器的数据库中,在WINS 客户机之间通信的时候它们可以通过WINS 服务器的解析功能获得对方的IP 地址。
由于以上工作全部由WINS 客户机与服务器自动完成的所以大大降低了管理员的工作负荷,同时也减少了网络中的广播。
NetBIOS 是80 年代末为了利用IBM Pc 构建局域网而出现的一种MS-DOS 程序的高级语言接口。
为了利用网络硬件和软件将这些计算机连接在一起组成局域网,微软和其它供应商利用NetBIOS 接口来设计它们的网络组件和程序。
NetBIOS 接口利用最多为16 个字符的名称来标识每一个网络资源。
在一个网络中NetBIOS 名是唯一的。
在计算机启动、服务被激活、用户登录到网络时,NetBIOS 名将被动态的注册到数据库中。
NetBIOS 可以以独立名称的形式注册,也可以以组名称的形式注册。
以单机名注册时要有一个IP 地址与其相对应,如以组名称注册时会有多个IP 地址与其对应。
在Windows 2000 发布前的所有基于MS-DOS 和Windows 的*作系统都需要使用NetBIOS 名称接口以便网络可以正常工作。
伴随着Windows 2000 的发布,网络中的计算机不再需要NetBIOS 名称接口的支持。
如在Windows 2000 和一些UNIX 版本的网络中它们只要求客户机支持DNS 使用就可以了,不再需要NetBIOS 名。
但为了与以前版本的网络*作系统结合使用,微软在Windows 2000 中仍然支持NetBIOS 名,以便与以前版本的*作系统协同使用,微软通过两方面实现对NetBIOS 名的支持:§ 所有使用Windows 2000 的客户机在默认情况下都支持利用客户端的WINS 服务注册和解析NetBIOS 名。
§ Windows 2000 服务器继续提供一个高效的WINS服务器,用它来管理网络中的NetBIOS 名。