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