天天看點

SMB/CIFS--NetBOIS/Browser/NBNS 協定

在NetBIOS出現之後,Microsoft就使用NetBIOS實作了 一個網絡檔案/列印服務系統,這個系統基于NetBIOS設定了一套檔案共享協定,Microsoft稱之為SMB(Server Message Block)協定。這個協定被Microsoft用于它們Lan Manager和Windows NT伺服器系統中,而Windows系統均包括這個協定的客戶軟體,因而這個協定在區域網路系統中影響很大。 

  

  随着 Internet的流行,Microsoft希望将這個協定擴充到Internet上去,成為Internet上計算機之間互相共享資料的一種标準。是以 它将原有的幾乎沒有多少技術文檔的SMB協定進行整理,重新命名為CIFS(Common Internet File System),并打算将它與NetBIOS相脫離,試圖使它成為Internet上的一個标準協定。  

  

  是以,為了讓Windows和Unix計算機相內建,最好的辦法即是在Unix中安裝支援SMB/CIFS協定的軟體,這樣Windows客戶就不需要更改設定,就能如同使用Windows NT伺服器一樣,使用Unix計算機上的資源了。  

  

   與其他标準的TCP/IP協定不同,SMB協定是一種複雜的協定,因為随着Windows計算機的開發,越來越多的功能被加入到協定中去了,很難區分哪 些概念和功能應該屬于Windows作業系統本身,哪些概念應該屬于SMB協定。其他網絡協定由于是先有協定,實作相關的軟體,是以結構上就清晰簡潔一 些,而SMB協定一直是與Microsoft的作業系統混在一起進行開發的,是以協定中就包含了大量的Windows系統中的概念。

  

   浏覽在SMB協定中,計算機為了通路網絡資源,就需要了解網絡上存在的資源清單(例如在Windows下使用網絡鄰居檢視可以通路的計算機),這個機制 就被稱為浏覽(Browsing)。雖然SMB協定中經常使用廣播的方式,但如果每次都使用廣播的方式了解目前的網絡資源(包括提供服務的計算機和各個計 算機上的服務資源),就需要消耗大量的網絡資源和浪費較長的查找時間,是以最好在網絡中維護一個網絡資源的清單,以友善查找網絡資源。隻有必要的時候,才 重新查找資源,例如使用Windows下的查找計算機功能。  

  

  但沒有必要每個計算機都維護整個資源清單,維護網絡中目前資源清單的任務由網絡上的幾個特殊計算機完成的,這些計算機被稱為Browser,這些Browser通過記錄廣播資料或查詢名字伺服器來記錄網絡上的各種資源。  

  

   Browser并不是事先指定的計算機,而是在普通計算機之間通過自動進行的推舉産生的。不同的計算機可以按照其提供服務的能力,設定在推舉時具備的不 同權重。為了保證一個Browser停機時網絡浏覽仍然正常,網絡中常常存在多個Browser,一個為主Browser(Master Browser),其他的為備份Browser。

  

  工作組和域這兩個概念在進行浏覽時具備同樣的用處,都是用于區分并維護同一組浏 覽資料的多個計算機。事實上他們的不同在于認證方式上,工作組中每台計算機都基本上是獨立的,獨立對客戶通路進行認證,而域中将存在一個(或幾個)域控制 器,儲存對整個域中都有效的認證資訊,包括使用者的認證資訊以及域内成員計算機的認證資訊。浏覽資料的時候,并不需要認證資訊,Microsoft将工作組 擴充為域,隻是為了形成一種分級的目錄結構,将原有的浏覽和目錄服務相結合,以擴大Mircrosoft網絡服務範圍的一種政策。  

  

   工作組和域都可以跨越多個子網,是以網絡中就存在兩種Browser,一種為Domain Master Browser,用于維護整個工作組或域内的浏覽資料,另一種為Local Master Browser,用于維護本子網内的浏覽資料,它和Domain Master Browser通信以獲得所有的可浏覽資料。劃分這兩種Browser主要是由于浏覽資料依賴于本地網廣播來獲得資源清單,不同子網之間隻能通過浏覽器之 間的交流能力,才能互相交換資源清單。  

  

  但是,為了浏覽多個子網的資源,必須使用NBNS名字伺服器的解析方式,沒有NBNS 的幫助,計算機将不能獲得子網外計算機的NetBIOS名字。Local Master Browser也需要查詢NetBIOS名字伺服器以獲得Domain Master Browser的名字,以互相交換網絡資源資訊。  

  

   由于域控制器在域内的特殊性,是以域控制器傾向于被用做Browser,主域控制器應該被用作Domain Master Browser,他們在推舉時設定的權重較大。認證方式  在Windows 9x系統中,習慣上使用共享級認證的方式互相共享資源,主要原因是在這些Windows系統上不能提供真正的多使用者能力。一個共享級認證的資源隻有一個口 令與其相聯系,而沒有使用者資料。這個想法是适合于一小組人員互相共享很少的檔案資源的情況下,一旦需要共享的資源變多,需要進行的限制複雜化,那麼針對每 個共享資源都設定一個密碼的做法就不再合适了。  

  

  是以對于大型網絡來講,更适合的方式是使用者級的認證方式,區分并認證每個通路 的使用者,并通過對不同使用者配置設定權限的方式共享資源。對于工作組方式的計算機,認證使用者是通過本機完成的,而域中的計算機能通過域控制器進行認證。當 Windows計算機通過域控制器的認證時,它可以根據設定執行域控制器上的相應使用者的登入腳本并桌面環境描述檔案。

  

  共享資源, 每個SMB伺服器能對外提供檔案或列印服務,每個共享資源需要被給予一個共享名,這個名字将顯示在這個伺服器的資源清單中。然而,如果一個資源的名字的最 後一個字母為$,則這個名字就為隐藏名字,不能直接表現在浏覽清單中,而隻能通過直接通路這個名字來進行通路。  

  

  在SMB協定中,為了獲得伺服器提供的資源清單,必須使用一個隐藏的資源名字IPC$來通路伺服器,否則客戶無法獲得系統資源的清單。

繼續閱讀