Windows互联网名称服务(英语:Windows Internet Name Service,缩写WINS),是由微软公司所发展出来的一种网络名称转换服务,与DNS类似,WINS可以将NetBIOS电脑名称转换为对应的IP地址

概述

WINS的主要功能如下:

  • 可让伺服器电脑变成 NetBIOS 的名称伺服器,并且在网络上登录并解析 WINS 的客户端电脑名称,则在TCP/IP上的 NetBIOS 标准协议中加以帮助。
  • WINS 主要是一种动态的复写数据库服务,在主机上所使用的 NetBIOS 名称并解析成网络上使用的 IP 地址
  • 其目的用来解决在路由环境中解析 NetBIOS 名称的问题,WINS 是 NetBIOS 名称解析最好的解决方式。
  • WINS 在 Microsoft Windows Server 系列中提供这项组件服务的安装来实行。
  • DNS服务执行的功能类似,不过DNS是将全称域名(FQDN)(例如 www.abc.com)转换为IP地址 。

解析过程

虽然 WINS 的作用是解析 NetBIOS 名称,但为了有效地解析名称,客户端需能够动态地新增、移除或更新它们在 WINS 中的名称。特别是 WINS 网络上的客户端名称要如何登录、更新、释放及解析。

较旧版的 Microsoft Windows 操作系统,会使用 NetBIOS 名称来识别及查找网络上登录或解析名称时,所需要的电脑及其他共享或分组的资源。在 Microsoft 操作系统的旧版中创建网络服务,NetBIOS 名称是必要需求。虽然 NetBIOS 命名通讯协议可与 TCP/IP 之外的网络通讯协议搭配使用,但 WINS 是专为支持“经由 TCP/IP 的 NetBIOS”(NetBT) 而设计的。

WINS 简化了 TCP/IP 型网络中的 NetBIOS 命名空间的管理。

下列帮助 WINS 客户端及伺服器相关的一系列典型事件。

WINS 的示例:

  1. WINS 客户端(主机 A)=> 在WINS 登记 自己的主机名称及IP
  2. WINS 客户端(主机 B)=> 去寻问 A 主机所在地址(IP)
  3. WINS-伺服器回应给(B主机)A 的 IP 地址 (192.168.100.20) 回复。

此示例中,会发生下列情况:

  • 一般情况下在本地若找不到所对应的NetBIOS名称与IP地址时,会发布广播数据包来通知邻近的主机,并且回报该寻问的IP。这个动作如果太过频繁,会造成内部网之间数据包的碰撞,因此使用WINS 即可减少这类的问题。每次客户端启动并加入网络时,都会自动进行 WINS 登录,所以动态地址设置变更时,WINS 数据库会自动更新。例如,DHCP 伺服器将一个新增或变更的IP 地址发布到拥有 WINS 功能的客户端电脑上时,此客户端的 WINS 资讯就会更新。
  • 这不需要用户或网络系统管理员手动进行变更,让用户可以直接利用电脑名称来存取网络资源,而不用记忆IP 地址。一般用在Windows的网络环境内使用,并可也减少DNS的负担。WINS SERVER 并不会做广播,而是WINS Client向WINS SERVER注册而WINS SERVER记录下来这段动作为 WINS CLIENT 用广播方式找WINS SERVER来注册,WINS SERVER接受注册之后,再把自己的位置IP传给CLIENT端。

WINS 通讯协议根据为 RFC 1001 及 1002 中指定的 NetBIOS 名称服务所定义的通讯协议,并与其兼容,所以它可以与这些 RFC 的其他执行方式一起使用。在 WINS 中复写 NetBIOS 名称资料是 Microsoft 私有技术,并且不能与其他 NetBIOS 名称伺服器一起使用。如Samba Server。

WINS 的运作方式

当执行 Microsoft 操作系统的电脑已设置 WINS 伺服器地址(手动或透过 DHCP)来进行其名称解析时,则默认会使用交互式节点(h-node)作为 NetBIOS 名称登录的节点类型,除非已设置另一种 NetBIOS 节点类型。若是 NetBIOS 名称查询及解析,它也会使用 h-node 操作,但会稍有不同。

若是 NetBIOS 名称解析,WINS 客户端通常会执行下列一般操作步骤来解析名称:

  1. 客户端会检查受查询的名称是否是它所拥有的本地 NetBIOS 电脑名称,若查询远程名称的在本地 NetBIOS名称缓存。远程客户端的任何已解析的名称都放置在此缓存中,并在其中保留 10 分钟。
  2. 客户端将 NetBIOS 查询转寄到其已设置的主要 WINS 伺服器中。如果主要 WINS 伺服器无法使用或是没有名称的资料项目而无法回答此查询,客户端就会依照所列出及设置的顺序尝试连络其他已设置的 WINS 伺服器。
  3. 客户端将 NetBIOS 查询广播到本地子网中。
  4. 如果设置使用 Lmhost 文件,客户端就会检查该 Lmhost 文件以对应此查询。
  5. 客户端会尝试到本地的 Hosts 文件查找
  6. 接着到DNS的Cache中的查询
  7. 最后再到 DNS 伺服器

如果欲解析的电脑名称字符数超过15个字符,或是电脑名称之中有句点存在,则会自动改用DNS主机名称解析方法。步骤2和3动作决定,使用何种 Node Type。

DNS 与 WINS 的集成

DNS的Clinet向DNS查询时,DNS找不到相关的资料就去问WINS,让Client端以为DNS知道该名称的地址。

另外有可能遇到Client的电脑不会去DNS注册资料,则有两种情况需要做集成:

  1. 旧版Windows(95、98)是不会跑去DNS登记的,也不能支持DNS的动态更新
  2. Stand Alone的电脑无法向DNS注册,原因是DNS可能有设置安全性验证,只能接受加入网域的电脑

因此WINS需要帮忙回答这些Client端的电脑所在的地址。

WINS 与DNS的差异

WINS的作用跟DNS的作用有相似的地方,都在做名称解析,但也有不同之处:

特性/服务 WINS DNS
使用的网络协议 NETBIOS、TCP/IP TCP/IP
常见的网络环境 较常适用于LAN 较常跨WAN
解析名称类型 解NetBIOS名称(网芳名称转换IP) 解FQDN名称(域名转换IP)
Windows系统路径指定方式 UNC路径 \\Server1 FQDN路径Server1.domain.com
与同类型伺服之间的关系 无层次结构式 层次结构式导向
Client端关机前动作 将名称释放(Release) 不会释放

事实上Windows NT系统上既有的WINS就是设计用来支持DHCP的运作的,且已成为Microsoft 企业网络整体架构中的一个重要的部分。WINS的作用与DNS类似,都是用来提供多种管理名称的系统服务,例如:将名称转换成IP地址,但是WINS只负责管理NetBIOS所使用的命名空间,而此命名空间与一般DNS所管理的层次结构式领域名称并不相同。

此外WINS还能够与DHCP配合在一起使用,也就是说可以先用DHCP指定系统所需要的IP地址,然后再自动地在WINS伺服中注册一个机动的NetBIOS名称。由于WINS的架构并非层次结构式的,因此若某一个NetBIOS名称未在WINS伺服中注册,就可以将之视为在网络上根本不存在。由此可知:在所有采用NetBIOS over TCP的网络上WINS可以算是一项必备的工具,其详细的规格请参阅RFC 1001与RFC 1002。

尖峰处理方式

WINS 伺服器立即可以处理大量的(发送)伺服器负载。在同时使用大量的 WINS 客户端并尝试在 WINS 中登录其本端名称时(如电源中断),会发生发送处理。当电源供应稍后恢复时,许多用户启动及同时在网络上登录名称,此时产生了高度的 WINS 流量。具有发送模式支持,WINS 伺服器可以在处理及实际输入更新到 WINS 伺服器数据库之前,先回应这些客户端要求。

在发送处理中,其他客户端的要求是 WINS 伺服器立即回答回应。回应也包含到客户端的各种存留时间(TTL),这可帮助调节客户端登录负载及分配超时要求的处理。这会减慢新的 WINS 客户端刷新及重试率且调节发送的 WINS 客户端流量。

使用 WINS 的好处

为管理 TCP/IP 型网络,WINS 提供了下列好处:

  1. 支持电脑名称登录及解析的动态名称至IP地址的数据库,进而有效降低NETBIOS的广播风暴。
  2. 名称及IP地址的资料集中管理减轻对管理 Lmhost 文件的需求。
  3. 借由许可客户端查询 WINS 伺服器以直接查找远程系统,可以降低子网上的 NetBIOS 造成的广播流量。
  4. 支持网络上早期的 Microsoft Windows 及 NetBIOS 客户端,即使到今天,只要网络上还有旧版本的 Windows 或使用 NetBIOS 的应用程式在,WINS 就有存在的必要允许此类型客户端在每个子网上,不需本地网域控制站的存在即可浏览远程 Windows 网域的菜单。
  5. 当执行 WINS 对应集成时,可借由激活 DNS 客户端查找 NetBIOS 资源,以支持 DNS 客户端

参考资料

  • Well-Know Port:
137/tcp Netbios-ns NETBIOS Name Service
138/tcp Netbios-dgm NETBIOS Datagram Service
139/tcp Netbios-ssn NETBIOS Session Service
1512/tcp (WINS) Microsoft's Windows Internet Name Service
1512/udp(WINS) Microsoft's Windows Internet Name Service
RFC1001页面存档备份,存于互联网档案馆)、 RFC1002页面存档备份,存于互联网档案馆