概述
什么是 CIFS?
公共互聯網文件系統 (Common Internet File Systems) 是一個遠程文件訪問協議,構成了 Windows 文件共享的基礎。它是一項行業標準,與所有基于微軟的客戶端(如 XP)與服務器(如 Server 2003)平臺預先捆綁上市。各種 CIFS 實施(如 Samba)也可用于其它操作系統,比如 Linux。
CIFS 定義了客戶端和服務器:CIFS 客戶端用來訪問 CIFS 服務器上的文件。例如,每次您使用 Windows Explorer 瀏覽或訪問 Windows 服務器上的文件時,CIFS 協議則用以在您的電腦和您訪問的服務器之間來回傳送信息(文件或目錄信息)。
只要是從映射的驅動器上復制文件并見到過圖 1 所示的對話框,便已使用了 CIFS 協議,只是用戶可能并不知道。
圖 1:Windows 文件共享(CIFS 傳送)
除用于文件共享以外,CIFS 還用作各種更高級別的微軟通信協議以及網絡打印、資源定位服務、遠程管理/監管、網絡認證(安全確立服務)和 RPC(遠程程序調用)的傳輸協議。
挑戰
CIFS 存在什么問題?
CIFS 設計于網絡模式與現在截然不同的 20 世紀 80 年代*。那時,對 CIFS 如何在高延遲 WAN 鏈路上運行未做任何考慮。許多網絡管理員發現,CIFS 在高延遲廣域網鏈路上運行效果很差。其根本原因是,CIFS 是一個設計地非常煩瑣的協議,這意味著完成一個請求就需要大量的來回交易。例如,在客戶端和服務器之間的一個往返中,CIFS 可以傳輸的最大的數據塊為 61,440 字節 (61KB)。如圖 2 所示,每個 CIFS 請求都要求在下一個請求之前把響應發送到 CIFS 服務器。因此,CIFS 是延遲限制協議,隨著延遲的增加,CIFS 的性能就會降低。
具體地說,要傳輸 30MB 的文件,CIFS 協議將必須在客戶端和服務器之間往返數百次。在一般的局域網上,這只需要花費幾秒鐘,但是在帶 300 毫秒延遲的 2 Mbps 廣域網鏈路上,則需要花費約 7.5 分鐘!顯而易見,這種性能降級會嚴重影響工作效率。借助 F5 的 WANJet 產品,同樣的交易可在 2.5 分鐘內完成,速度可提升三倍以上。隨著 CIFS 加速,以及與 WANJet 透明數據壓縮功能 (TDR) 的結合,以后同樣的 30MB 文件的傳輸時間可降低至 30 秒以內。而隨著廣域網鏈路帶寬和延遲的增加,WANJet CIFS 加速的優勢也會增加。
解決方案
WANJet 是如何改進 CIFS 性能的?
每個 WANJet 設備都深入理解 CIFS 協議,因此可代表 CIFS 客戶端(如 Microsoft XP 電腦)和服務器(如 Server 2003 電腦)進行操作,使兩者之間的交互更高效,從而使兩個主要的 CIFS 相關交互顯著提升:
☆ 文件訪問——文件下載(讀取)、上傳(寫入)以及遠程訪問(如在遠程 CIFS 共享上打開 Powerpoint 文件)
☆ 目錄瀏覽——在遠程服務器上瀏覽(點擊文件夾及其子文件夾)目錄(使用 Windows Explorer)
WANJet 可維護一個狀態機與 CIFS 行為數據庫(依此來可靠地預測未來 CIFS 相關交易)。當 WANJet 測定某個 CIFS 交易要發生時,它會預取數據(如文件)并將其臨時存儲于遠程(客戶端)WANJet 系統的內存中,以備未來參考。一旦預取數據被引用(成功預計交易),它便會被從內存中刪除。其中不執行任何高速緩存,為加快 CIFS 響應時間,僅執行了臨時存儲。
圖 3:CIFS 文件下載(讀取)示例
圖 3 表明了 WANJet CIFS 加速的主要目的:降低 CIFS 客戶端(如 Microsoft XP 電腦)所體驗的延遲,包括廣域網延遲(即高延遲)與局域網延遲(即低延遲)。
WANJet 加速 CIFS 文件下載(讀取)請求時,事件發生順序如下:
☆ CIFS 客戶端打開待讀取文件
☆ CIFS 服務器以文件 ID 響應
☆ CIFS 客戶端發出首個讀取請求,CIFS 服務器以數據響應。第一個交易所花費的時間相對較長,因為讀取請求和響應受廣域網延遲(如 300 毫秒)限制。
☆ 一旦 WANJet 系統發現初次交易,它們便可確定 CIFS 用戶正試圖下載文件。此時,服務器端 WANJet 以保持廣域網鏈路完整的速率在本地向服務器生成讀取請求,并開始預取數據。若交易重復或文件包含重復的數據,則服務器端 WANJet 將得出透明壓縮數據 (TDR) 命中數,因而僅在廣域網鏈路上傳輸一小部分數據。這就進一步加速了 CIFS 傳輸的速度。
☆ 預取的數據被送往客戶端 WANJet 并臨時儲存,以待 CIFS 客戶端發出請求。當 CIFS 客戶端請求文件數據時,即可自客戶端 WANJet 以局域網 (LAN) 速度(如 1 毫秒或更快)從本地獲得回應,無需每 61 k 字節都經由高度延遲的廣域網來獲權。這反過來也大大提高了 CIFS 的下載性能。
CIFS 加速與透明數據壓縮 (TDR) 無縫合作,且結合 TDR 的能力即可減少穿過廣域網的數據,這和其它應用(如 FTP, HTTP 或電子郵件)一樣。
其它通用 CIFS 使用案例
一份文件下載用以展示 WANJet 如何執行 CIFS 加速。然而,CIFS 加速使用類似的機制在其它情境下也大大提高了性能。以下是幾個例子:
文件上傳(寫入)
這個概念跟文件下載十分類似,所不同的是,CIFS 客戶端向 CIFS 服務器寫入文件而不是從它那里讀取文件。此時,客戶端 WANJet 在本地對 CIFS 客戶端的寫入請求作出反應,并以廣域網鏈路速度將數據傳輸到服務器端 WANJet,完成寫入操作。
目錄瀏覽
由于 CIFS 存在低效缺陷,刷新高度延遲的鏈路上的遠程目錄列表耗時極久,使用戶只能茫然地盯著“沙漏”,長時間無法操作。結合使用目錄預取和高速緩存,WANJet 可大幅改善目錄瀏覽的響應時間。現在,無需等待數十秒,目錄表幾乎可以實時出現。
遠程訪問 Microsoft Office 文件
位于遠程 CIFS 服務器上的 Microsoft office 文件(如:MS Word、Powerpoint、Excel 等)通常從 CIFS 客戶端(雙擊)訪問。由于文件數據被連續檢索,每次 61k 字節,這種訪問將造成本文中提到的所有與 CIFS 相關的問題。使得在打開文件、瀏覽、或執行任何操作(如保存)時需要漫長的等待。WANJet CIFS 加速可預取文件數據并將其植入客戶端 WANJet,從而將這些問題一舉攻破。最后所有針對文件數據的 CIFS 客戶端請求都以局域網速度在客戶端 WANJet 上執行。
結論
公共互聯網文件系統 (Common Internet File Systems) 是一個遠程文件訪問協議,構成了 Windows 文件共享的基礎。由于每款 F5 WANJet 設備都深入了解 CIFS 協議,因此它可代表 CIFS 客戶端(如 Microsoft XP 電腦)和服務器(如 Server 2003 電腦)進行操作,使兩者之間的交互更高效。這不但帶來了文件訪問和目錄瀏覽功能的大大提高,還加速了到 MS Office 文件的遠程訪問(以局域網速度)。WANJet CIFS 加速與透明數據壓縮 (TDR) 無縫協作,且結合 TDR 的能力即可減少穿過廣域網的數據,這和其它應用(如 FTP、HTTP 或電子郵件)一樣。所有這些最終成就了廣域網上類似局域網應用性能的解決方案,加速了文件傳輸、電子郵件、客戶端服務器應用、數據復制等操作,同時為所有廣域網用戶提供了可預測的快速性能。