SMB/CIFS協議
在NetBIOS出現之後,Microsoft就使用NetBIOS實現了一個網路檔案/列印服務系統,這個系統基於NetBIOS設定了一套檔案分享權限設定協議,Microsoft稱之為SMB(Server Message Block)協議。這個協議被Microsoft用於它們Lan Manager和Windows NT伺服器系統中,而Windows系統均包括這個協議的客戶軟體,因而這個協議在區域網路系統中影響很大。
隨著Internet的流行,Microsoft希望將這個協議擴充到Internet上去,成為Inter net上電腦之間相互共用資料的一種標準。因此它將原有的幾乎沒有多少技術文檔的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$來訪問伺服器,否則客戶無法獲得系統資源的列表。