Apple Filing Protocol
The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is a proprietary network protocol, and part of the Apple File Service (AFS), that offers file services for macOS and the classic Mac OS. In macOS, AFP is one of several file services supported, with others including Server Message Block (SMB), Network File System (NFS), File Transfer Protocol (FTP), and WebDAV. AFP currently supports Unicode file names, POSIX and access control list permissions, resource forks, named extended attributes, and advanced file locking. In Mac OS 9 and earlier, AFP was the primary protocol for file services.
AFP versions 3.0 and greater rely exclusively on TCP/IP (port 548) for establishing communication, supporting AppleTalk only as a service discovery protocol. The AFP 2.x family supports both TCP/IP (using Data Stream Interface) and AppleTalk for communication and service discovery. Many third-party AFP implementations use AFP 2.x, thereby supporting AppleTalk as a connection method. Still earlier versions rely exclusively on AppleTalk. For this reason, some older literature refers to AFP as "AppleTalk Filing Protocol". Other literature may refer to AFP as "AppleShare", the name of the Mac OS 9 (and earlier) AFP client.
Notable current compatibility topics are:
- Mac OS X v10.4 and later eliminates support for AFP servers that rely solely on AppleTalk for communication.
- Computers using classic Mac OS can connect to AFP 3.x servers, with some limitations. For example, the maximum file size in Mac OS 8 is 2 gigabytes. Typically, Mac OS 9.1 or later is recommended for connecting to AFP 3.x servers; for versions of original Mac OS prior to 9.1, installation of the AppleShare client 3.8.8 is required.
- AFP 3.0 and later is required for network home directories, since Mac OS X requires POSIX permissions on user home directories. Single sign-on using Kerberos requires AFP 3.1.
- APFS: AFP is incompatible with sharing of APFS volumes but is still usable as a Time Machine destination in High Sierra.
Early implementations of AFP server software were available in Mac OS starting with System 6, in AppleShare and AppleShare IP, and in early "1.x" releases of Mac OS X Server. In client operating systems, AFP was called "Personal File Sharing", and supported up to ten simultaneous connections. These AFP implementations relied on version 1.x or 2.x of the protocol. AppleShare IP 5.x, 6.x, and the "1.x" releases of Mac OS X Server introduced AFP version 2.2. This was the first version to offer transport connections using TCP/IP as well as AppleTalk. It also increased the maximum share point size from four gibibytes to two tebibytes, although the maximum file size that could be stored remained at two gibibytes due to limitations in the original Mac OS.
Changes made in AFP since version 3.0 represent major advances in the protocol, introducing features designed specifically for Mac OS X clients.
AFP 3.0 was introduced in Mac OS X Server 10.0.3, and was used through Mac OS X Server 10.1.5. It was the first version to use the UNIX-style POSIX permissions model and Unicode UTF-8 file name encodings. Version 3.0 supported a maximum share point and file size of two tebibytes, the maximum file size and volume size for Mac OS X until version 10.2. (Note that the maximum file size changed from version 2.2, described above.) Before AFP 3.0, 31 bytes was the maximum length of a filename sent over AFP.
AFP 3.1 was introduced in Mac OS X Server version 10.2. Notable changes included support for Kerberos authentication, automatic client reconnect, NFS resharing, and secure AFP connections via Secure Shell (SSH). The maximum share point and file size increased to 8 tebibytes with Mac OS X Server 10.2, and then to 16 tebibytes with Mac OS X Server 10.3.
AFP 3.2 adds support for Access Control Lists and extended attributes in Mac OS X Server 10.4. Maximum share point size is at least 16 tebibytes, although Apple has not published a limits document for Mac OS X Server 10.4.
AFP 3.3 mandates support for Replay Cache functionality (required for Time Machine).
AFP 3.4, introduced in OS X Mountain Lion, includes a minor change in the mapping of POSIX errors to AFP errors.
The macOS client
In Mac OS X Tiger, users can connect to AFP servers by browsing for them in the Network globe or entering an AFP Uniform Resource Locator (URL) into the Connect to Server dialog. In Mac OS X Leopard and later releases, AFP shares are displayed in the Finder side-bar. AFP URLs take the form: afp://<server>/<share>, where <server> is the server's IP address, Domain Name System (DNS) name, or Bonjour name, and <share> is the name of the share point. In Snow Leopard and later, a URL of the form afp://<server>/<share>/<path> can be used to mount a subdirectory underneath a share point.
macOS also offers Personal File Sharing, a "light" implementation of the current version of AFP. In Mac OS X 10.4, users can share the contents of their Public folders by checking Personal File Sharing in the Sharing section of System Preferences.
AFP URLs for AppleTalk servers took the form: afp://at/<AppleTalk name>:<AppleTalk zone>. For networks without AppleTalk zones, an asterisk (*) would be substituted for the zone name.
Third party server implementations of AFP are available from a number of companies.
- An open source AFP server called Netatalk (AFP 3.4) is available for Unix-like operating systems and integrated into NAS solutions including Buffalo NAS systems, Exanet ExaStore, Iomega's Home Media Network Hard Drive, IXsystems FreeNAS, LaCie NAS OS, Lime Technology unRAID, Napp-it , Netgear ReadyNAS, QNAP NAS, Synology DiskStation, Thecus NAS, and more.. Netatalk v3.1, released 2013-10-28, adds Spotlight support..
- Novell Open Enterprise Server supports AFP.
- Microsoft includes AFP 2.2 server support as an option in some versions of Windows (NT, 2000 & 2003). Windows NT Server (3 and 4) only supported AppleTalk, 2000 added AppleShare over IP; Services for Macintosh (SFM), was removed from Windows Server 2008 onwards.
- Novell's NetWare supports AFP.
- HELIOS UB+ supports AFP on a whole array of different Unix based platforms.
- The open source Filesystem in Userspace (FUSE) and command-line client implementation afpfs-ng for Linux and Unix-like operating systems
- GroupLogic ExtremeZ-IP (AFP 3.3) and MacServerIP for Windows offer AFP 3.x support - now Acronis Access Connect.
- A few NAS solutions support AFP independently implemented (see also Netatalk solutions above): Adaptec's Snap Server (AFP 3.1), and Apple's Time Capsule (AFP 3.2).
- Jaffer is a Java implementation of Appletalk File Protocol v3.1.
- Xinet from North Plains Systems offers an AFP platform that can run on most *nix hosts. One of their products, ka-share, has been a main stay on Solaris (on Sparc only) and Irix platforms for the last decade.
- Columbia AppleTalk Protocol (CAP) was an open source implementation of AFP and AppleTalk from Columbia University that has been discontinued and has fallen out of use.
- supported by GVfs through gfvs-afp-volume-monitor
- "AppleShare & AppleShare IP File Sharing: Chart of All Limitations". Retrieved 2012-06-10.
- "Mac OS 8, 9: Mac OS Extended Format - Volume and File Limits". Retrieved 2012-06-10.
- "Mac OS X: Mac OS Extended Format - Volume and File Limits". Retrieved 2012-06-10.
- "Mac OS X Server 10.2: Tested and theoretical maximums (limits)". Retrieved 2012-06-10.
- "Mac OS X Server 10.3: Tested and theoretical maximums (limits)". Retrieved 2012-06-10.
- "Apple's Developer documentation on AFP Version Differences". Retrieved 2011-09-15.
- P. V. Anthony (2005-09-19). "Netatalk / Re: [Netatalk-admins] Video Editing". netatalk-admins (Mailing list). Retrieved 2019-02-17.
- "Serial port (Home Media)". NAS-Central Iomega Wiki. Archived from the original on 2018-08-17. Retrieved 2019-02-17.
- "Release Notes". unRAID Wiki. Retrieved 2019-02-17.
- "napp-it // webbed ZFS NAS/SAN appliance for OmniOS, OpenIndiana and Solaris : Extensions". Retrieved 2019-02-17.
- "N0204 beta firmware V3.00.10.1". Thecus. Retrieved 2019-02-17.
- Ralph Böhme (September 22, 2011). "Status of Netatalk and AFP support by NAS vendor, update". Retrieved 2019-02-17.
- Ralph Böhme (January 18, 2011). "Status of Netatalk and AFP support by NAS vendor". Retrieved 2019-02-17.
- "Netatalk Release Notes". Retrieved 2014-01-02.
- "11. Sharing". FreeNAS® 11.2-U3 User Guide. 11.1. Apple (AFP) Shares. Retrieved 2014-01-02.
- "Back-ends for GVfs".
- 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