一、SMB概述
SMB(ServerMessage Block)通訊協議是微軟(Microsoft)和英特爾(Intel)在1987年制定的協議,主要是作為Microsoft網路的通訊協議。SMB 是在會話層(session layer)和表示層(presentation layer)以及小部分應用層(application layer)的協議。SMB使用了NetBIOS的應用程式介面 (ApplicationProgram Interface,簡稱API),一般埠使用為139,445。另外,它是一個開放性的協議,允許了協議擴充套件——使得它變得更大而且複雜;大約有65個最上層的作業,而每個作業都超過120個函式,甚至Windows NT也沒有全部支援到,最近微軟又把 SMB 改名為 CIFS(CommonInternet File System),並且加入了許多新的特色。
SMB協議是一個很重要的協議,目前絕大多數的PC上都在執行這一協議,windows系統都充當著SMB協議的客戶端和伺服器,所以SMB是一個遵循客戶機伺服器模式的協議。SMB伺服器負責透過網路提供可用的共享資源給SMB客戶機,伺服器和客戶機之間透過TCP/IP協議、或者IPX協議、或者是NetBEUI進行連線。
SMB是應用層(和表示層)協議,使用C/S架構,其工作的埠與其使用的協議有關。
當遠端連線計算機訪問共享資源時有兩種方式:
其中,使用計算機名訪問時,SMB服務工作在NetBIOS協議之上,用的是TCP的139埠;使用IP地址訪問時,用的是TCP的445埠。
二、SMB工作原理
首先客戶端傳送一個SMB negprot請求資料報,並列出它所支援的所有SMB協議版本。伺服器收到請求資訊後響應請求,並列出希望使用的協議版本。如果沒有可使用的協議版本則返回0XFFFFH,結束通訊。
協議確定後,客戶端程序向伺服器發起一個使用者或共享的認證,這個過程是透過傳送SesssetupX請求資料報實現的。客戶端傳送一對使用者名稱和密碼或一個簡單密碼到伺服器,然後伺服器透過傳送一個SesssetupX應答資料報來允許或拒絕本次連線。
當客戶端和伺服器完成了磋商和認證之後,它會發送一個Tcon或TconX SMB資料報並列出它想訪問網路資源的名稱,之後伺服器會發送一個TconX應答資料報以表示此次連線是否被接受或拒絕。
連線到相應資源後,SMB客戶端就能夠透過open SMB開啟一個檔案,透過read SMB讀取檔案,透過write SMB寫入檔案,透過close SMB關閉檔案。
一、SMB概述
SMB(ServerMessage Block)通訊協議是微軟(Microsoft)和英特爾(Intel)在1987年制定的協議,主要是作為Microsoft網路的通訊協議。SMB 是在會話層(session layer)和表示層(presentation layer)以及小部分應用層(application layer)的協議。SMB使用了NetBIOS的應用程式介面 (ApplicationProgram Interface,簡稱API),一般埠使用為139,445。另外,它是一個開放性的協議,允許了協議擴充套件——使得它變得更大而且複雜;大約有65個最上層的作業,而每個作業都超過120個函式,甚至Windows NT也沒有全部支援到,最近微軟又把 SMB 改名為 CIFS(CommonInternet File System),並且加入了許多新的特色。
SMB協議是一個很重要的協議,目前絕大多數的PC上都在執行這一協議,windows系統都充當著SMB協議的客戶端和伺服器,所以SMB是一個遵循客戶機伺服器模式的協議。SMB伺服器負責透過網路提供可用的共享資源給SMB客戶機,伺服器和客戶機之間透過TCP/IP協議、或者IPX協議、或者是NetBEUI進行連線。
SMB是應用層(和表示層)協議,使用C/S架構,其工作的埠與其使用的協議有關。
當遠端連線計算機訪問共享資源時有兩種方式:
其中,使用計算機名訪問時,SMB服務工作在NetBIOS協議之上,用的是TCP的139埠;使用IP地址訪問時,用的是TCP的445埠。
二、SMB工作原理
首先客戶端傳送一個SMB negprot請求資料報,並列出它所支援的所有SMB協議版本。伺服器收到請求資訊後響應請求,並列出希望使用的協議版本。如果沒有可使用的協議版本則返回0XFFFFH,結束通訊。
協議確定後,客戶端程序向伺服器發起一個使用者或共享的認證,這個過程是透過傳送SesssetupX請求資料報實現的。客戶端傳送一對使用者名稱和密碼或一個簡單密碼到伺服器,然後伺服器透過傳送一個SesssetupX應答資料報來允許或拒絕本次連線。
當客戶端和伺服器完成了磋商和認證之後,它會發送一個Tcon或TconX SMB資料報並列出它想訪問網路資源的名稱,之後伺服器會發送一個TconX應答資料報以表示此次連線是否被接受或拒絕。
連線到相應資源後,SMB客戶端就能夠透過open SMB開啟一個檔案,透過read SMB讀取檔案,透過write SMB寫入檔案,透過close SMB關閉檔案。