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