摘 要: 在網絡技術中,Windows操作系統NT內核為網絡資源訪問提供Wins組件服務,本文從Wins服務原理角度分析兩種名稱方式被解析為IP的重要手段;DNS與Wins服務的相關性在信息訪問處理方面起到關鍵性作用;在可行操作方面,通過Wins解析步驟直接提供實踐方法;Wins是一個NT內核嵌入式C/S應用組件,為其它網絡通迅提供基本的原語操作,根本性地說明網絡IP解析工作機制。
關鍵詞: NT內核 Wins服務 IP解析工作機制
1.引言
在計算機網絡技術中,正常運行Wins服務是很重要的,可以這樣說:“NT域中不使用NetBIOS,只使用DNS服務。”在Windows Server 2000活動目錄域中,我們可以降低對Wins服務的依賴性,甚至可取消這種服務。但是,在局域網中如果沒有DNS服務,那只能通過解析NetBIOS名來廣播,對局域網的性能肯定是比較慢的,如果用Wins服務來解析NetBIOS名,效果將完全不一樣。
2.Wins與DNS服務
Wins服務與DNS服務有一定相關性,我們可從基于Wins的配置和相關原理角度進行理解。在Windows NT中,名字不僅僅是主機名,當然還有NetBIOS名。Windows使用兩大類名字,如果按名字的類型去劃分的話,有這樣的兩類:一個是主機名,一個是NetBIOS名。由于DNS服務可以對主機進行解析,把主機名解析為IP,反之可把IP解析為主機名。
2.1Wins服務
Wins服務由NT內核為其提供基本原語操作,使之為網絡服務提供系統資源;Wins服務原理如圖1所示。
從圖1看出,Wins在對客戶進行解析工作時,就是一個工作流程。一個客戶端想對computer44客戶端進行訪問,如資源共享;若用UNC路徑訪問,則可通過IP地址,也能通過計算機名來訪問,如“\\192.168.1.200”是這個客戶端的IP,若網絡終端很多,并讓其它的客戶去記住其客戶端的IP,這樣會給用戶帶來不便,當用“\\機器名”,就是一個名字來表示它們的IP,那么就像使用DNS一樣,可用“\\computer44”來訪問,即用計算機名字來訪問,這樣就可對名字進行解析,那么整個流程就是一個解析的過程。基于計算機終端而言,我們可將機器名字分為兩類,一種是主機名,另一種是NetBIOS名。
2.2主機名
FQDN是完全合格域名,即全域名。當客戶輸入“www.sohu.com”訪問某個服務器時,客戶立即可得到Web服務器名。由于DNS把Web Server解析為相應的IP,且解析的是主機名。DNS名字有它的主機命名空間,從上往下有一個樹形結構,名字越往上,所對應層次就越高。如“serer1.nwtraders.msft”是完整的FQDN名,它由兩部分組成,一個是主機名,一個是DNS后綴,名字越往右,則說明名字的級別就越高,msft則為頂級域。在域模式下,解析工作跟DNS服務是分不開的,肯定要用域模型來作解析。
2.3NetBIOS名
當點擊網上鄰居,客戶看到的是NetBIOS名,而不是計算機名。在工作組模型中,沒有DNS服務,NetBIOS名能顯示出來。在網上鄰居里面,若無域和DNS服務,在網上鄰居中能看到客戶端和服務器信息,這個名字是NetBIOS名。
用戶要通過網絡名字訪問資源需要有一個服務器作相應的解析,把這個名字解析為IP,這個名字就是NetBIOS名,因為網絡系統中沒有DNS服務組件,也就是不能解析主機名。這個名字被解析成功,那只能是NetBIOS名,由于NetBIOS名是不需要服務來解析的,毫無疑問Wins的作用就是解析NetBIOS名。反過來,沒有Wins服務,也可以實現。在網上鄰居中,我們看到的終端名字及其相關信息是通過基于廣播的方式解析到,這些名字就是NetBIOS名。廣播解析NetBIOS名方式之一是基于廣播來解析。
2.4主機名與NetBIOS名的區別
用戶右擊“我的電腦”?邛“屬性”?邛“其它”,則可得到NETBIOS名。主機名與NetBIOS名有時相同,有時不同,而且主機名小于等于15位則相同,主機名大于15位則不同。NetBIOS名最長16位,但第16位不能被用。起名時只能用前15位,第16位作為服務標志位,第16位不能被定義和編輯,但主機名比這個要多得多。用戶在CMD提示符窗口輸入“hostname”,可以查看主機名,輸入“nbtstat-n”可查看NetBIOS名。很明顯,這里用兩個十六進制數來表示與之對應的服務。在Windows NT操作系統中主機只有一個,而NetBIOS名有多個,相應的服務需要注冊,即有幾個NetBIOS名需要注冊,就會有幾個NetBIOS名。
3.Wins服務原理
Wins服務原理如圖2所示,客戶可看到由subnet1和subnet2的網絡,它們在邏輯上是網絡ID,即兩個網段。在局域里,當subnet1中的某臺機器要訪問subnet2中的資源,若沒有配置Wins服務,這種訪問將很難進行。而這種訪問機制是基于廣播來解析NetBIOS名的,由于廣播又不能跨路由,所以客戶不能直接了解subnet2機器的名字等信息。由于通過路由進行通迅,路由器本身還不能過廣播包。若要實現這種通迅,利用Wins服務是可行的。當在subnet2網絡中有一個Wins服務器,Wins服務提供為名解析的工作,在subnet2網絡中的客戶端,也可配置成Wins服務的客戶端。此時Wins服務可對NetBIOS名字進行解析;在subnet1網絡中可能有些客戶端,想看到所有客戶端的名字,就需要在任何一臺機器系統中配置Wins proxy,實質就是代理Wins服務,可通過proxyWins來配置和實現,修改注冊表的鍵值,即將Enableproxy值改為1。
3.1Wins結點類型
根據圖2,可說明Wins結點類型有四種:
(1)B-節點—這個節點稱為廣播節點。如果計算機配置成一個B-節點,那么當它進行NetBIOS名字解析時,只在網段上廣播。實際上,微軟使用加強的B節點,意思是說當名字在局部網段上找不到時要檢查LMGOSTS文件表項。
(2)P-節點—系統配置成點到點的方式。名字解析時會請求Wins服務器,但不在局部網段上廣播。
(3)M-節點—混合型系統首先在局部網段上廣播請求,然后再和Wins服務器連接進行名字解析。
(4)H-節點—雜節點系統首先和Wins服務器連接進行名字解析,如果沒得到應答,H節點會在局部網絡上廣播。
所有的微軟客戶端首先檢查名字緩存進行解析,之后才進行其他方式的NetBIOS名字解析。微軟操作系統缺省的節點類型是B-節點或H-節點。當任一系統沒有配置Wins服務器地址時,加強的B-節點是缺省類型。對所有的系統而言,當配置了Wins服務器地址時,H-節點是缺省類型。
3.2Wins客戶端解析名稱步驟
Wins客戶端解析名稱的步驟有以下六步。
(1)客戶端檢查查詢的名稱是否是它所擁有的本地NetBIOS計算機名稱。
(2)客戶端檢查遠程名稱的本地NetBIOS名稱緩存。
(3)客戶將NetBIOS查詢轉發到已配置的主Wins服務器中。如果主Wins服務器應答查詢失敗(因為該主Wins服務器不可用,或因為它沒有名稱項),則客戶將按照列出和配置使用的順序嘗試與其他已配置的Wins服務器聯系。
(4)客戶端將NetBIOS查詢廣播到本地子網。
(5)如果配置客戶端已使用Lmhosts文件,那么客戶端將檢查與查詢匹配的Lmhosts文件。
(6)如果將其配置成單個客戶端,那么客戶端會嘗試Hosts文件然后嘗試DNS服務器。
4.小結
Wins是一個內嵌在微軟操作系統中的客戶機/服務器應用服務。Wins客戶機啟動時會向Wins服務器注冊其NetBIOS名字。當Wins客戶機關閉時,要向Wins服務器釋放這個名字。這樣允許Wins服務器能維護當前網絡上正在使用的Wins客戶機名字的數據庫。Wins客戶想與網絡上的其它計算機連接時,就會給Wins服務器發出NetBIOS名字解析請求。
為了讓一個客戶系統成為Wins客戶機,至少要為客戶機輸入一個Wins服務器地址,在TCP/IP的Wins客戶機配置對話框中加入此項服務即可。在Wins客戶機上可以配置多個Wins服務器IP地址,達到一定的容錯目的。當主控Wins服務器不可用時,Wins客戶機可以和輔助Wins服務器連接。
Wins代理能幫助非Wins客戶機利用Wins服務:Wins代理接收局部子網名解析廣播并把它轉發給Wins服務器,Wins代理為非Wins客戶機返回Wins服務器的應答,使非Wins客戶機通過Wins代理享受Wins服務。
參考文獻:
[1]吳獻文.局域網組建與維護案例教程.高等教育出版社,2008.7.
[2]陳光.網絡操作系統——windows server 2003.高等教育出版社,2007.6.