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 客户端
参考资料
- Well-Know Port: