蘋果歸檔協議

蘋果歸檔協議(英語:Apple Filing Protocol,縮寫AFP)也稱Apple文件協議Apple歸檔協議,以前稱為AppleTalk Filing Protocol,它是一個專有英語Proprietary protocol網絡協議,並且是Apple File Service(蘋果文件服務,縮寫AFS)的一部分,為macOS經典Mac OS提供文件服務。在macOS中,AFP是受支持的數種文件服務之一,其他包括伺服器訊息區塊(SMB)、網絡文件系統(NFS)、文件傳輸協議(FTP)和WebDAV。AFP目前支持Unicode文件名、POSIX存取控制串列權限、資源分支英語Resource fork、擴展屬性名稱、高級文件鎖定。在Mac OS 9及更早版本中,AFP是文件服務的主要協議。

兼容性

AFP 3.0及更高版本完全依賴TCP/IP(端口548或427)來建立通信,僅支持AppleTalk作為一項服務發現協議。AFP 2.x家族支持TCP/IP(使用數據流接口英語Data Stream Interface)和AppleTalk用於通信和服務發現。許多第三方AFP實現使用AFP 2.x,因此支持AppleTalk作為一種連接方法。早期版本完全依賴於AppleTalk。因此,一些舊版文獻將AFP稱為「AppleTalk Filing Protocol」。其他文獻可能將AFP稱為「AppleShare」,這是Mac OS 9(及更早版本)中AFP客戶端的名稱。

當前的兼容性主要為:

  1. Mac OS X v10.4及之後版本取消了依賴AppleTalk進行通信的AFP服務。
  2. 使用經典Mac OS的計算機可以連接到AFP 3.x服務,但有一些限制,例如:Mac OS 8中的最大文件大小為2吉位元組。通常來說,Mac OS 9.1或更高版本建議連接到AFP 3.x服務;對9.1版之前的原始Mac OS版本,需要安裝AppleShare英語AppleShare客戶端3.8.8版。
  3. 網絡主目錄需要AFP 3.0及更高版本,從Mac OS X需要用戶主目錄上的POSIX權限開始。使用Kerberos的單點登錄需要AFP 3.1。
  4. APFS:AFP目前在蘋果文件系統(APFS)中已棄用。

歷史

AFP服務器軟件的早期實現在Mac OS中自System 6起在AppleShare和AppleShare IP以及Mac OS X Server的早期「1.x」版本中可用。在客戶操作系統中,AFP被稱為「個人文件共享」,並支持最多十個並發連接。[1]這些AFP實現依賴於該協議的1.x或2.x版本。AppleShare IP 5.x、6.x以及Mac OS X Server中的「1.x」版本引入了AFP 2.2版本。這是第一個使用TCP/IP以及AppleTalk提供傳輸連接的版本。它還將最大共享點大小從4GB提升至2TB,儘管可以存儲的最大文件大小仍受到原Mac OS中2吉比特的限制。[2]

從3.0版開始的AFP變更主要是協議方面的重大改進,包括專為Mac OS X客戶端設計的功能。

但是,猶如原Mac OS中的AppleShare,Mac OS X中的AFP客戶端繼續支持類型英語Type code創建者代碼英語Creator code以及文件擴展名

AFP 3.0在Mac OS X Server的10.0.3版中引入,並在Mac OS X Server 10.1.5中使用。它是首個使用UNIX風格POSIX權限模型和Unicode UTF-8文件名編碼的版本。3.0版本支持最大2千兆字節的共享點和文件大小,該最大文件大小和卷大小對Mac OS X截至10.2版本。[3](注意,最大文件大小自2.2版更改,見上文所述。)在AFP 3.0以前,通過AFP發送的文件名最大長度為31字節。

AFP 3.1在Mac OS X Server的10.2版中引入。值得注意的更改包括支持Kerberos身份驗證、自動客戶端重新連接、NFS重新共享,以及通過Secure Shell(SSH)安全的AFP連接。最大共享點和文件大小隨Mac OS X Server 10.2增加到8TB[4]並隨着Mac OS X Server 10.3增加到16千兆字節。[5]

AFP 3.2添加Mac OS X Server 10.4中的訪問控制列表和擴展文件屬性支持。最大共享點大小為至少16TB,儘管蘋果公司沒有對Mac OS X Server 10.4的限制發布文檔。

AFP 3.2+在Mac OS X Leopard中引入,並添加大小寫敏感支持和改善對Time Machine的支持(同步、被盜鎖定,以及睡眠通知)。

AFP 3.3強制支持重放緩存(Replay Cache)功能(需要Time Machine)。

AFP 3.4在OS X Mountain Lion中引入,包含將POSIX錯誤映射到AFP錯誤的一個小更改。

參閱蘋果公司的開發文檔了解AFP的版本差異。[6]

Mac OS X 客戶端

在Mac OS X Tiger中,用戶可以在網絡界面瀏覽或者輸入一個AFP的統一資源定位符(URL)到「連接到服務器」對話框來連接到AFP服務器。在OS X Leopard中,AFP共享顯示在Finder側欄中。AFP URL格式為:afp://<服務器>/<共享>,其中<服務器>是服務器的IP地址域名系統(DNS)名稱或Bonjour名稱,<共享>是共享點的名稱。在Snow Leopard中,URL形式afp://<服務器>/<共享>/<路徑>可用於在一個共享點下掛載一個子目錄。

Mac OS X也提供個人文件共享,AFP當前版本的一個輕量級實現。在Mac OS X 10.4客戶端中,用戶可以點擊系統偏好設置 - 共享中的「個人文件共享」共享他的「公共」文件夾的內容。

用於AppleTalk服務器的AFP URL格式為:afp://at/ (頁面存檔備份,存於網際網路檔案館)<AppleTalk名稱>:<AppleTalk區域>。對於無AppleTalk區域的網絡,一個星號(*)將代替區域名稱。

AFP 的安全性

Apple Filing Protocol 並非為在互聯網公開提供文件共享服務而設計,該協議目前默認採用 DHX2 加密算法進行用戶鑑定[7],但傳輸時並未進行加密,使得該協議不適合直接接入互聯網提供服務。為了更安全的進行文件傳輸,當必須在互聯網提供服務或需要更高安全性時,建議採用 AFP through SSH 的方式進行部署,藉由 SSH 通道加密以提升安全性。[8]

第三方實現

許多公司有AFP的第三方服務器實現:

參見

參考資料

  1. ^ AppleShare & AppleShare IP File Sharing: Chart of All Limitations. [2012-06-10]. (原始內容存檔於2014-02-27). 
  2. ^ Mac OS 8, 9: Mac OS Extended Format - Volume and File Limits. [2012-06-10]. (原始內容存檔於2014-10-31). 
  3. ^ Mac OS X: Mac OS Extended Format - Volume and File Limits. [2012-06-10]. (原始內容存檔於2010-07-30). 
  4. ^ Mac OS X Server 10.2: Tested and theoretical maximums (limits). [2012-06-10]. (原始內容存檔於2010-08-26). 
  5. ^ Mac OS X Server 10.3: Tested and theoretical maximums (limits). [2012-06-10]. (原始內容存檔於2009-06-15). 
  6. ^ Apple's Developer documentation on AFP Version Differences. [2011-09-15]. (原始內容存檔於2013-05-04). 
  7. ^ Diffie-Hellman Key Exchange 2. [2018-04-13]. (原始內容存檔於2018-04-13). 
  8. ^ Tunneling afp over ssh. [2018-04-13]. (原始內容存檔於2021-04-20). 
  9. ^ Netatalk Release Notes. [2014-01-02]. (原始內容存檔於2019-01-21). 
  10. ^ Back-ends for GVfs. [2017-03-16]. (原始內容存檔於2020-11-11). 

外部連結