WINS

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 的范例：

- WINS 用户端（主机 A）=> 在WINS 登记 自己的主机名称及IP
- WINS 用户端（主机 B）=> 去寻问 A 主机所在位址（IP）
- 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 用户端通常会执行下列一般操作步骤来解析名称：

- 用户端会检查受查询的名称是否是它所拥有的本机 NetBIOS 电脑名称，若查询远端名称的在本机 NetBIOS名称快取。远端用户端的任何已解析的名称都放置在此快取中，并在其中保留 10 分钟。
- 用户端将 NetBIOS 查询转寄到其已设定的主要 WINS 服务器中。如果主要 WINS 服务器无法使用或是没有名称的资料项目而无法回答此查询，用户端就会依照所列出及设定的顺序尝试连络其他已设定的 WINS 服务器。
- 用户端将 NetBIOS 查询广播到本机子网络中。
- 如果设定使用 Lmhost 档案，用户端就会检查该 Lmhost 档案以对应此查询。
- 用户端会尝试到本机的 Hosts 档案寻找
- 接着到DNS的Cache中的查询
- 最后再到 DNS 服务器

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

## DNS 与 WINS 的整合

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

另外有可能遇到Client的电脑不会去DNS注册资料，则有两种情况需要做整合：

- 旧版Windows（95、98）是不会跑去DNS登记的，也不能支援DNS的动态更新
- 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 提供了下列好处：

- 支援电脑名称登录及解析的动态名称至IP地址的数据库，进而有效降低NETBIOS的广播风暴。
- 名称及IP地址的资料集中管理减轻对管理 Lmhost 档案的需求。
- 借由许可用户端查询 WINS 服务器以直接寻找远端系统，可以降低子网络上的 NetBIOS 造成的广播流量。
- 支援网络上早期的 Microsoft Windows 及 NetBIOS 用户端，即使到今天，只要网络上还有旧版本的 Windows 或使用 NetBIOS 的应用程序在，WINS 就有存在的必要允许此类型用户端在每个子网络上，不需本机网域控制站的存在即可浏览远端 Windows 网域的清单。
- 当执行 WINS 对应整合时，可借由启用 DNS 用户端寻找 NetBIOS 资源，以支援 DNS 用户端

## 参考资料

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

- NetBIOS over TCP/IP
- Port Assignments for Commonly-Used Services
- Windows Server 2003 Windows Internet Name Service (WINS)
- WINS defined