Windows_Internet_Name_Service

**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 的作用有相似的地方，都在做名稱解析，但也有不同之處：

事實上 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 （頁面存檔備份，存於網際網路檔案館）

* NetBIOS over TCP/IP
* Port Assignments for Commonly-Used Services
* Windows Server 2003 Windows Internet Name Service (WINS)
* WINS defined （頁面存檔備份，存於網際網路檔案館）