網(wǎng)上鄰居的機制雖然簡單,但是3言2語說的清清楚楚也不是很容易的事情. 為什么明明有的機子已經(jīng)關(guān)機,卻還停留在“網(wǎng)上鄰居”里?它什么時候能消失?為什么有的計算機名更改了,但舊名字還留在網(wǎng)上? 要解答這些問題,就得先從微軟的瀏覽服務(wù)思想說起。在NT域環(huán)境下或工作組環(huán)境下,瀏覽服務(wù)維護著一個瀏覽列表,它包含所有可使用的域、工作組和計算機名等,是共享資源的目錄。當(dāng)我們使用“網(wǎng)上鄰居”時,就在使用這個瀏覽服務(wù)。 瀏覽服務(wù)系統(tǒng)包含了主瀏覽器、備份瀏覽器和瀏覽器客戶等角色。作為主瀏覽器的計算機起到了維護瀏覽列表的作用并且周期性地把拷貝發(fā)送到作為備份瀏覽器的計算機上。當(dāng)瀏覽器客戶需要知道網(wǎng)上有哪些可利用的資源時,向作為備份瀏覽器的計算機發(fā)出API呼叫以得到當(dāng)前的列表。 主域控制器(PDC)有主瀏覽器的優(yōu)先權(quán),這樣它就承擔(dān)了維護它所在的這個工作組的瀏覽列表的工作。但是它也有關(guān)機或重啟的時候,這時便產(chǎn)生了主瀏覽器的競選過程。也就是說,競選發(fā)生在當(dāng)一個計算機不能定位主瀏覽器時,或具備更優(yōu)先條件的計算機上線時,或NT主域控制器啟動時。按照各自的選舉條件,當(dāng)作為主瀏覽器的計算機推舉出來后,網(wǎng)絡(luò)瀏覽才能正常。競選是通過發(fā)廣播來實現(xiàn)的,如果哪個計算機的競選條件比它收到的報文要好,則它將廣播自己的競選條件,收到別人的競選條件后每個計算機根據(jù)自己在域中的角色延遲不等的時間后再做反應(yīng),這樣能減少競選條件較差的計算機發(fā)送選舉報文。當(dāng)一個計算機選舉成為主瀏覽器并且它的瀏覽列表是空時,它將廣播一個請求通知的報文,強迫所有的計算機必須在30秒內(nèi)給予答復(fù),這個30秒的時間是為了防止服務(wù)器過載或報文丟失。 除了承擔(dān)主瀏覽器和備份瀏覽器任務(wù)的計算機外,其他機子將向主瀏覽器周期性地發(fā)布通知,告知自己是可利用的資源。這個時間開始是1分鐘、2分鐘、4分鐘、8分鐘,以后就是每12分鐘一次了。如果這個機子關(guān)機了,主瀏覽器連續(xù)3個周期也就是36分鐘沒有收到它的消息,將認(rèn)定它不可用,并從瀏覽列表中刪掉它。但是它還留在備份瀏覽器的機子里,備份瀏覽器每隔15分鐘呼叫主瀏覽器一次以獲得更新的網(wǎng)絡(luò)資源列表,也就是說不可用的資源最多要等到36+15=51分鐘后才會從網(wǎng)上徹底消失。這就是為什么有的計算機改了名,但舊名字依舊留在網(wǎng)上一段時間的原因。 在一個工作組里有一個主瀏覽器,那么在多個工作組、多個域甚至多個子網(wǎng)里昵?這就需要一個域主瀏覽器,每個工作組或域的主瀏覽器要周期性地向這個域主瀏覽器發(fā)送自已所管轄的列表,這個周期開始是1分鐘,5次后是15分鐘。如果3個周期內(nèi)沒有收到這個報文,域主瀏覽器也將它從自己的列表中去除。也就是說,當(dāng)一個工作組失效后,它還將在主列表中保留45分鐘。域主瀏覽器默認(rèn)為主域控制器,Windows XP Professional版本的計算機不能擔(dān)此重任。 當(dāng)收到瀏覽列表后,計算機必須能解析里面的NetBIOS名,這就要求網(wǎng)絡(luò)的WINS服務(wù)或DNS服務(wù)必須正常,瀏覽才能正常,因為瀏覽的競選過程是通過UDP廣播實現(xiàn)的。 作為網(wǎng)絡(luò)管理員,當(dāng)網(wǎng)上鄰居出現(xiàn)問題時,要一步步分析,看是暫時的還是競選過程出了問題。目前沒有辦法證明瀏覽列表是否完整,但有辦法發(fā)現(xiàn)某可用資源是否在列表里,甚至可以強迫開始一次競選。一般是沿著通信鏈的路徑從第一個應(yīng)該具有該資源的主瀏覽器查起,看它是否收到某計算機的通知報文。 瀏覽服務(wù)使用的是CIFS/E(Common Internet File System)協(xié)議組里的計算機瀏覽協(xié)議,在Windows 2000的計算機環(huán)境里使用活動目錄來代替它,但為了向下兼容,Windows 2000也支持這個瀏覽服務(wù)。 |