蘋果歸檔協議

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

## 兼容性

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

當前的兼容性主要為：

- Mac OS X v10.4及之後版本取消了依賴AppleTalk進行通信的AFP服務。
- 使用經典Mac OS的電腦可以連接到AFP 3.x服務，但有一些限制，例如：Mac OS 8中的最大文件大小為2吉字節。通常來說，Mac OS 9.1或更高版本建議連接到AFP 3.x服務；對9.1版之前的原始Mac OS版本，需要安裝AppleShare客戶端3.8.8版。
- 網路主目錄需要AFP 3.0及更高版本，從Mac OS X需要使用者主目錄上的POSIX權限開始。使用Kerberos的單點登錄需要AFP 3.1。
- APFS：AFP目前在蘋果文件系統（APFS）中已棄用。

## 歷史

AFP伺服器軟體的早期實現在Mac OS中自System 6起在AppleShare和AppleShare IP以及Mac OS X Server的早期「1.x」版本中可用。在客戶作業系統中，AFP被稱為「個人文件共享」，並支持最多十個並發連接。這些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吉比特的限制。

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

但是，猶如原Mac OS中的AppleShare，Mac OS X中的AFP客戶端繼續支持和創建者代碼以及文件擴展名。

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版本。（注意，最大文件大小自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，並隨著Mac OS X Server 10.3增加到16千兆字節。

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的版本差異。

## 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 的安全性

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

## 第三方實現

許多公司有AFP的第三方伺服器實現：

- 一個開放原始碼的AFP伺服器名為Netatalk（AFP 3.3），可以在類Unix系統作業系統中使用。Netatalk v3.1發布於2013-10-28，增添了Spotlight支持。
- Novell Open Enterprise Server支持AFP。
- 微軟在部分Windows （NT、2000和2003）版本中以一個選項包含AFP 2.2伺服器支持。Windows NT Server（3和4）只支持AppleTalk，2000添加了基於IP的AppleShare；適用於Macintosh（SFM）的服務自Windows Server 2008已移除。
- Novell的NetWare支持AFP。
- HELIOS UB+ 在不同的基於Unix的平台的整個陣列上支持AFP。
- 開放原始碼的FUSE（FUSE）及命令行客戶端 實現了 afpfs-ng 面向Linux和Unix-like作業系統
- GroupLogic ExtremeZ-IP（AFP 3.3）和 MacServerIP 面向Windows提供AFP 3.x支持 - 現為Acronis Access Connect .
- 多種NAS解決方案支持AFP，大多數是通過Netatalk： LaCie EtherNet Disk & 12big (AFP 3.3)、 NETGEAR's ReadyNAS （AFP 3.2）、 QNAP（AFP 3.x）、Synology's Disk Stations（AFP 3.1）、 Thecus （AFP 3.x）、 Adaptec's Snap Server （AFP 3.1）、Exanet的ExaStore（AFP 3.1）、Iomega的 Home Media Network Hard Drive和 蘋果公司的Time Capsule（AFP 3.2）是商業軟體的例子，FreeNAS和 napp-it （其使用Netatalk）是自由軟體的例子。
- Jaffer 是Appletalk文件協議v3.1的一個Java實現。
- Xinet 出自North Plains Systems，它提供了一個可以運行在大多數*nix主機上的AFP平台。他們的產品之一ka-share在過去十年裡一直是Solaris（僅限Sparc）和Irix平台的主要產品。
- Columbia AppleTalk Protocol（哥倫比亞AppleTalk協議，縮寫CAP）是一個來自哥倫比亞大學的AFP和AppleTalk的開源實現，現已停止使用。
- GVfs通過gfvs-afp-volume-monitor支持

## 外部連結

- File Services Manual for Mac OS X Server 10.4
- Apple Filing Protocol Programming Guide
- Apple Filing Protocol Reference
- Mac OS X: Some Mac OS X Applications and Services Require AFP 3.0 or Later
- Inside AppleTalk - original specification for the AppleTalk protocol stack including AFP
- Glossary of Networking Terms
- NewsFactor Network article, A
- Macintosh: File System Specifications and Terms
- Apple Technical Note TN1150 on the HFS Plus Volume Format
- Apple shifts from AFP to SMB2