WINS用于解析NetBIOS名称,但是为了使名称解析生效,客户端必须可以动态添加、删除或更新WINS中的名称。对于WINS服务器而言,它主要功能有名称注册、名称刷新、名称注销和名称解析这四方面。如图2-5所示为WINS客户端与服务器通信的过程。

1.名称注册
当WINS客户端启动时,会在配置使用的WINS服务器中注册自己的NetBIOS名称和对应的IP地址、服务类型。
如果WINS服务器正常运行并且此NetBIOS名称没有被其他WINS客户端注册,则WINS服务器向WINS客户端计算机返回一个成功注册的消息,其中包括此名称注册的生存时间。
与IP地址一样,每个计算机都要求有的计算机名,否则无法通信。如果在WINS服务上此NetBIOS名称已被其他WINS客户端注册,则WINS服务器向注册此名称的现有WINS客户端按照500毫秒的时间发起三次名称解析请求,如果现有WINS客户端向WINS服务器成功进行回复,则WINS服务器向请求注册此名称的WINS客户端回复拒绝注册消息;如果现有WINS客户端向WINS服务器进行回复,则WINS服务器向请求注册此名称的WINS客户端回复成功注册消息。
如果WINS服务器不在线,则WINS客户端向配置的主WINS服务器和备份WINS服务器各发起三次名称注册请求,如果均为收到WINS服务器的回复,则WINS客户端发送本地广播来注册自己的NetBIOS名称。
2.名称刷新
当WINS酷虎段计算机次向WINS服务器注册时,WINS服务器将返回带有“生存时间”值的消息,该消息表明酷虎段注册何时到期或需要更新。如果到时还不更新。则名称注册将在WINS服务器上到期,最终系统会将该名称项从WINS数据库中删除。
当WINS客户端刷新它的名称时,执行以下步骤。
(1)当生存时间已经过了一半时,WINS客户端向自己的主WINS服务器发送名称刷新请求。
(2)如果主WINS服务器没有进行响应,则WINS客户端在1小时内每隔10分钟向主WINS服务器发送名称刷新请求;如果主WINS服务器仍然没有进行响应,则WINS客户端备份WINS服务器发起名称刷新请求;如果备份WINS服务器仍然没有进行响应,则WINS客户端又向WINS服务器发起名称刷新请求。WINS客户端重复这种行为直到生存时间结束。
(3)如果WINS客户端成功刷新它的名称,则复位WINS服务器上的更新间隔。
(4)如果WINS客户端不能再主WINS服务器或者备份WINS服务器上刷新名称,则名称被释放。
3.名称释放
如果WINS客户端正常关机,它将向WINS服务器发送一个释放的请求,以请求释放其映射在WINS服务器数据库中的IP地址和NetBIOS名称。当收到名称释放请求后,WINS服务器验证一个在它的数据库中是否有该IP地址和NetBIOS名称,如果有可以正常释放,并在数据库中将制定的NetBIOS名称标记为不活动的。如果WINS服务器越到数据库错误或者NetBIOS名称注册到不同的IP地址上,则向WINS客户端发出拒绝名称释放消息。
如果WINS客户端非正常关闭,则不会向WINS服务器发送名称释放请求。WINS服务器保留此名称直到名称注册的生存时间过期。
4.客户端在许多网络操作中都需要WINS服务器解析名称,例如当使用网络上其他计算机的共享文件时,为了得到共享文件,用户需要指定系统名和共享名,而系统名需要转换成IP地址。名称解析过程如下。
(1)当客户端计算机想要转换一个名称时,它首先检查本地NetBIOS名称缓冲器。
(2)如果名称不在本地NetBIOS名称缓冲器中,便发送一个名称查询到主要WINS服务器,如果请求失败,则向次要WINS服务器发送同样的请求。
(3)如果都失败了,那么名称解析可以通过其他途径转换(例如通过本地广播、Lmhosts文件和hosts文件或者DNS来进行名称解析。)