剖析NETBIOS的具體工作機理
2020-10-27 20:40:53
供稿:網友
有關網上鄰居的問題,問的人一直比較多,在理解上存在的誤區也普遍較為嚴重。鑒于Microsoft的NETBIOS文檔不是很細致,我四處收集了一些相關資料加上自己的實踐經驗寫了這個系列,希望能對大家有所幫助.
本來想為了增加可讀性,把這個系列寫成問答的形式,不過一時之間腦袋里也編不出這么多的問題,還是按部就班先感性的對微軟的瀏覽服務作一大致介紹,然后再深入剖析NETBIOS的具體工作機理,大家要是有什么問題,可以提出來我們一起討論.
在“Windows NT系統管理技術內幕”一書中,講到了一個非常具有代表性的問題,我把它摘抄了下來:
問:什么情況下會導致在網絡鄰居中計算機能看見卻無法訪問或可以訪問卻看不見?
請選擇最佳答案:
A.你的網絡存在物理問題,比如網線
B.作為域主瀏覽器的Windows NTserver的瀏覽服務壞了
C.Windows NTserver網卡有問題
D.你的網絡沒有問題,用戶描述的是正常的微軟瀏覽現象
正確答案:D
書上的解釋:微軟的網絡瀏覽可能在使用中出現"中斷",而實際上它們并沒有中斷, 這種誤解是由于用戶對微軟網絡瀏覽的處理過程不熟悉造成的。
就象有人經常在抱怨的“為什么別人的網上鄰居可用,我的卻不行?”“為什么有時候可以瀏覽,有時候卻無法瀏覽網絡?”解鈴還須系鈴人,讓我們一起去看看微軟的網絡瀏覽到底是如何實現的。鑒于大家可能對NT的“域”概念還不甚了解,出現瀏覽故障的也多為98的機子,我將以98的“工作組模式”為大家講解。
1.什么是瀏覽列表(Browsing List)
在微軟網絡中,用戶可以在瀏覽列表里看到整個網絡(何指?子網還是廣播域?大家可以考慮考慮)上所有的計算機。當你通過網上鄰居窗口打開整個網絡時,你將看到一個工作組列表,再打開某個工作組,你將看到里面的計算機列表(也可在 DOS方式下用net view /domain:workgroupname命令得到),這就是我們所說的 Browsing List。工作組從本質上說就是共享一個瀏覽列表的一組計算機,所有的工作組之間都是對等的,沒有規定不可以讓所有的計算機同處于一個工作組中。
2.瀏覽列表在哪里
曾在木棉上看到過一場爭論,有人說:網上鄰居里的計算機列表是廣播查詢得來的??捎腥伺e反例說:我的同學都關機了,可我還是能在網上鄰居里看到它,應該是從HUB或交換機之類較為固定的設備的緩存中取得的。 其實他們都只說對了一個方面,把他們二人的說法結合起來就是正確答案了--- 瀏覽列表是通過廣播查詢瀏覽主控服務器,由瀏覽主控服務器提供的。
3.瀏覽主控服務器又是什么
瀏覽主控服務器是工作組中的一臺最為重要的計算機,它負責維護本工作組中的瀏覽列表及指定其他工作組的主控服務器列表,為本工作組的其他計算機和其他來訪本工作組的計算機提供瀏覽服務,每個工作組都為會每個傳輸協議選擇一個瀏覽主控服務器,而我們經常遇到的無法瀏覽網絡的錯誤大多是因為你所處的工作組沒有瀏覽主控服務器而造成的。你可以在一個工作組中用NBTSTAT -a computername 命令找出使用NBT協議的瀏覽主控服務器,它的標識是含有//_MSBROWSE_名字段。
4.瀏覽主控服務器是如何指定的
缺省情況下,win98工作組中的瀏覽主控服務器是該工作組中第一臺啟用文件及打印機共享功能的計算機,也允許手工將一臺win計算機配置為瀏覽主控服務器(方法會在后面講述網絡配置時具體介紹,但由于瀏覽主控服務器需要維護動態瀏覽列表,性能會受影響),如果一個工作組中有多臺計算機配置了這個選項,或是當前的瀏覽主控服務器關閉了系統,又沒有其他計算機啟用主控設置時,就要進行主控瀏覽器的選舉。
5.如何通過瀏覽器選舉產生瀏覽主控服務器
關于瀏覽器的選舉報文,不太好抓包,我就只好按書上的東西來講述了.其實過程很簡單,首先由一臺計算機發送一個選舉臨界報文,該報文包含了來自發送計算機的信息(操作系統,版本及NET名等),選舉報文向網絡中廣播,工作組中的每一臺計算機都會用自身信息與選舉報文進行優先級比較,主要是操作系統起主要作用,記得好像是NT Server>NT Workstation>Win98>WFWG,反正到最后是那個自身條件最好的成為新的瀏覽主控服務器.
6.整個網絡瀏覽的過程是怎樣的
當一臺win98進入網絡時,如果它帶有服務器服務(啟用了文件及打印機共享)會向網絡廣播宣告自己的存在,而瀏覽主控服務器會取得這個宣告并將它放入自己維護的瀏覽列表中;而沒有在相應協議上綁定文件及打印機共享的計算機則不會宣告,因而也就不會出現在網絡鄰居里了。