苹果归档协议

苹果归档协议(英语: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). 

外部链接