百科解釋
目錄·歷史·實(shí)施·其它實(shí)施和版本 SMB(Server Message Block,又稱Common Internet File System(CIFS))是由微軟開發(fā)的一種軟件程序級(jí)的網(wǎng)絡(luò)傳輸協(xié)議,主要用來使得一個(gè)網(wǎng)絡(luò)上的機(jī)器共享計(jì)算機(jī)文件、打印機(jī)、串行端口和通訊等資源。它也提供認(rèn)證的行程間通訊機(jī)能。它主要用在裝有Microsoft Windows的機(jī)器上,在這樣的機(jī)器上被稱為Microsoft Windows Network。 經(jīng)過Unix服務(wù)器廠商重新開發(fā)后,它可以用于連接Unix服務(wù)器和Windows客戶機(jī),執(zhí)行打印和文件共享等任務(wù)。 CIFS 的消息格式不同與NFS的固定長(zhǎng)度格式, 大多數(shù)消息體都包含可變長(zhǎng)的數(shù)據(jù),這帶來一定的協(xié)議復(fù)雜性。CIFS 消息一般在netbios或Tcp協(xié)議層上,分別使用不同的端口 139 或445, 目前傾向于使用445端口。CIFS的消息包括一個(gè)消息頭(32字節(jié))和消息體(1個(gè)或多個(gè),可變長(zhǎng))。 歷史 SMB最初是IBM的貝瑞·費(fèi)根鮑姆(Barry Feigenbaum)研制的,其目的是將DOS操作系統(tǒng)中的當(dāng)?shù)匚募佑|接口“中斷13”改造為網(wǎng)絡(luò)文件系統(tǒng)。后來微軟對(duì)這個(gè)發(fā)展進(jìn)行了重大更改,這個(gè)更改后的版本也是最常見的版本。微軟將SMB協(xié)議與它和3Com一起發(fā)展的網(wǎng)絡(luò)管理程序結(jié)合在一起,并在Windows for Workgroups和后來的Windows版本中不斷加入新的功能。 SMB一開始的設(shè)計(jì)是在NetBIOS協(xié)議上運(yùn)行的(而NetBIOS本身則運(yùn)行在NetBEUI、IPX/SPX或{{lang|en|TCP/IP協(xié)議上),Windows 2000引入了SMB直接在TCP/IP上運(yùn)行的功能。在這里我們必須區(qū)分SMB協(xié)議和運(yùn)行在這個(gè)協(xié)議上的SMB業(yè)務(wù),以及NetBIOS和使用SMB作為認(rèn)證隧道的DCE/RPC業(yè)務(wù)。此外我們還要區(qū)分主要(但不僅僅)直接使用NetBIOS數(shù)據(jù)報(bào)的“網(wǎng)絡(luò)鄰居”協(xié)議。 1996年,約于升陽推出WebNFS的同時(shí),微軟提出將SMB改稱為Common Internet File System[2]。此外微軟還加入了許多新的功能,比如符號(hào)鏈接、硬鏈接、提高文件的大小。微軟還試圖支持直接聯(lián)系,不依靠NetBIOS,不過這個(gè)試圖依然處于嘗試階段,并需要繼續(xù)完善。微軟向互聯(lián)網(wǎng)工程工作小組提出了部分定義作為互聯(lián)網(wǎng)草案[3]。不過這些提案現(xiàn)在均已過期。 由于SMB協(xié)議對(duì)于與占主要地位的Microsoft Windows平臺(tái)通訊時(shí)的重要性,而目前該平臺(tái)使用的Template:SMB協(xié)議與初始的版本相比有巨大的改變,因此Samba項(xiàng)目就是被創(chuàng)立來逆向工程來提供一個(gè)與SMB軟件兼容的自由軟件,使得非微軟操作系統(tǒng)也能夠使用它。 在Windows Vista中微軟又推出了Server Message Block 2.0。 實(shí)施 客戶端-服務(wù)器端結(jié)構(gòu) SMB使用點(diǎn)對(duì)點(diǎn)的通訊方式,一個(gè)客戶端向一個(gè)服務(wù)器提出質(zhì)詢,服務(wù)器相應(yīng)地回答。SMB協(xié)議中的一部分專門用來接觸文件,使得客戶端可以接觸一個(gè)文件服務(wù)器。SMB也有行程間通訊的部分。SMB協(xié)議尤其適用于局部子網(wǎng),但是也可以被用來通過萬維網(wǎng)來鏈接不同的子網(wǎng)。Microsoft Windows的文件和打印機(jī)分享主要使用這個(gè)功能。 SMB服務(wù)器向網(wǎng)絡(luò)上的客戶端提供文件系統(tǒng)和其它資源?蛻舳穗娔X也可能有其自己的、不共享的硬盤,但是可能也想使用服務(wù)器上分享的文件系統(tǒng)和打印機(jī)。這是SMB為什么這么出名和廣泛地被使用的原因。SMB普及的另一個(gè)原因是它使用適合NT網(wǎng)域的協(xié)議,至少提供基于NT網(wǎng)域式的認(rèn)證。NT網(wǎng)域協(xié)議是一個(gè)微軟遠(yuǎn)程過程調(diào)用服務(wù),幾乎只能被SMB行程間通訊有名管道使用。幾乎所有SMB服務(wù)器的實(shí)施使用NT網(wǎng)域來認(rèn)證用戶是否可以解除一個(gè)資源。 速度問題 一般認(rèn)為SMB協(xié)議使用很多網(wǎng)絡(luò)帶寬,因?yàn)槊總(gè)客戶端均在整個(gè)子網(wǎng)內(nèi)廣播其存在。但是SMB本身并不使用廣播。SMB造成的廣播問題實(shí)際上是NetBIOS服務(wù)中的定位協(xié)議造成的。一般來說Microsoft Windows服務(wù)器使用NetBIOS來協(xié)議和定位服務(wù)。而NetBIOS則定時(shí)向一個(gè)特定的服務(wù)器廣播一個(gè)服務(wù)的存在。對(duì)于一個(gè)少于20個(gè)服務(wù)器的網(wǎng)絡(luò)來說這個(gè)方式是可行的。但是隨服務(wù)器數(shù)目的增加廣播造成的交通會(huì)導(dǎo)致問題。通過適當(dāng)?shù)貙?shí)施Windows Internet名字服務(wù)(WINS)定位協(xié)議這個(gè)問題可以被緩和。WINS使用更高級(jí)的系統(tǒng)來確定和中央化服務(wù)需求,但是造成自己的設(shè)計(jì)和保管網(wǎng)絡(luò)的問題。動(dòng)態(tài)DNS是另一個(gè)解決方法。微軟本身推薦在微軟的活動(dòng)目錄環(huán)境下使用動(dòng)態(tài)DNS。網(wǎng)絡(luò)延遲對(duì)SMB協(xié)議的速度有非常大的沖擊。在服務(wù)器之間網(wǎng)絡(luò)延遲大的情況下通過SMB來更換檔案夾非常明顯地反映了這個(gè)問題。比如在通過萬維網(wǎng)使用虛擬私人網(wǎng)絡(luò)時(shí)網(wǎng)絡(luò)延遲就會(huì)比較大,這時(shí)使用SMB就很惱人。 微軟的更改 微軟在實(shí)施其SMB時(shí)添加許多功能,比如微軟引入了NTLM版本2,因?yàn)樵瓉淼陌姹?使用的DES有錯(cuò)。此外NT 4.0在美國(guó)以外使用40位加密,對(duì)于今天的標(biāo)準(zhǔn)來說不可靠。 特點(diǎn) SMB的行程間通訊機(jī)構(gòu)值得一提。通過這個(gè)系統(tǒng)它提供有名管道。這個(gè)機(jī)構(gòu)是最早的、程序員可以使用的少數(shù)行程間通訊之一,它繼承客戶端聯(lián)系SMB服務(wù)器時(shí)的認(rèn)證來提供服務(wù)。有名管道繼承認(rèn)證是一個(gè)獨(dú)特和透明的機(jī)構(gòu),因此使用Windows API的程序員和Windows的用戶均將它看作是自然的。 奇怪的是有些服務(wù)使用有名管道,比如使用通過SMB的微軟遠(yuǎn)程過程調(diào)用的程序,也允許微軟遠(yuǎn)程過程調(diào)用客戶端程序進(jìn)行自己的認(rèn)證,并且由此掩蓋SMB服務(wù)器的認(rèn)證。但是這個(gè)掩蓋只在客戶端程序的認(rèn)證成功的情況下才生效。 另一個(gè)特點(diǎn)是SMB對(duì)文件使用一種特殊的、被稱為伺機(jī)鎖定的鎖定機(jī)構(gòu)來提高速度。 微軟的分布式文件系統(tǒng)實(shí)施是基于SMB上的。 其它實(shí)施和版本 以下列出的包括SMB客戶端、服務(wù)器以及不同的擴(kuò)展SMB的協(xié)議。 Samba是對(duì)SMB和微軟的擴(kuò)展的重新實(shí)施,它是自由軟件,包括服務(wù)器和命令行客戶端。 Samba-TNG是一款Samba的衍生版本。 Linux內(nèi)核包括兩個(gè)SMB客戶端實(shí)施,它們使用虛擬文件系統(tǒng)通過標(biāo)準(zhǔn)文件系統(tǒng)應(yīng)用程序接口提供接觸SMB服務(wù)器上的文件。 ONStor公司實(shí)施了其自己的SMB,這個(gè)實(shí)施也支持NFS協(xié)議。 Novell NetWare版本6以上提供CIFS服務(wù)器實(shí)施,使得Microsoft Network客戶端可以解除NetWare的文件。 FreeBSD、NetBSD和Mac OS X均包含使用它們自己的虛擬文件系統(tǒng)的SMB客戶端。 FreeNAS是一個(gè)小型的網(wǎng)絡(luò)儲(chǔ)存設(shè)備服務(wù),其目的在于使得用戶可以重新使用老電腦作為文件服務(wù)器。它支持CIFS/Samba協(xié)議。 維爾軟件公司實(shí)施過一個(gè)SMB。 Network Appliance有一個(gè)SMB服務(wù)器的實(shí)施。
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助