# Apple Filing Protocol

Das Apple Filing Protocol (AFP; deutsch etwa Apple Ablageprotokoll) ist ein Netzwerkprotokoll von Apple, das es Computern mit klassischem Mac OS und dem gegenwärtigen macOS ermöglicht, über ein Netzwerk auf Dateien zuzugreifen.
AFP spezifiziert unterschiedliche AFP-Versionen, Server und Client einigen sich während des Verbindens auf die für beide Seiten maximal mögliche Version.
Ältere Versionen von AFP können nur über Apples proprietären AppleTalk Protocol Stack mit DDP als Übertragungsprotokoll betrieben werden, jedoch läuft AFP ab Version 2.2 auch über reine TCP/IP-Netzwerke auf Port 548. Neuere Versionen des Protokolls unterstützen zusätzlich Dateigrößen über 2 GB, lange Dateinamen (über 31 Bytes) und UTF-8-Zeichen in Dateinamen.
AFP ist ein Netzwerkprotokoll, das die Eigenschaften von HFS Plus (Standard-Dateisystem zwischen Mac OS 8.1 und macOS 10.12 Sierra) wie z. B. Resource Forks, Type- und Creator Codes und die Desktop Database unterstützt. Dies waren notwendige Eigenschaften unter dem klassischen Mac OS, allerdings sind sie nicht mehr Voraussetzung für den Betrieb von Mac OS X.
Mit OS X 10.9 Mavericks hat Apple AFP durch SMB2 (Samba) ersetzt, weshalb AFP auch nicht mehr weiterentwickelt wird.

## Client

Unter Mac OS bis einschließlich Version 9.2.2 ist AFP das einzige standardmäßig unterstützte Netzprotokoll für den Dateizugriff auf andere Rechner. Unter Mac OS X ist AFP eines von mehreren standardmäßig unterstützten Netzprotokollen für das Einbinden entfernter Dateisysteme (neben SMB/CIFS oder NFS). Bis OS X 10.8 Mountain Lion war AFP der Standard, mit 10.9 Mavericks wurde SMB zum Standard. Der AFP-Client ist in macOS 15 Sequoia nach wie vor enthalten, während die Serverfunktion mit macOS 11 Big Sur entfernt wurde.
Der AFP-Client auf dem klassischen Mac OS (bis einschließlich 9) zeigt in der linken oberen Bildschirmecke ein Symbol aus zwei gegenläufigen Pfeilen, das bei Aktivität auf verbundenen Volumes blinkt. So ist der Anwender über mögliche Wartezeiten informiert.
Farallon hat in den frühen 1990er Jahren eine Lösung vertrieben, die aus einer ISA-Bus-Karte zum Anschluss an ein LocalTalk-Netzwerk und entsprechender Software für PC-kompatibles DOS und Windows 3.1 besteht. Mit deren Hilfe konnte man auf AFP-Server zugreifen.

## Server

Als dedizierte Server können folgende Serverlösungen von Apple eingesetzt werden:

### AppleShare Server

    lauffähig auf Mac OS bis Version 8.1,
    nur DDP-Unterstützung für Transport.

### AppleShare IP Server

    lauffähig auf Mac OS bis Version 9.2.2,
    DDP- oder TCP/IP-Unterstützung für Transport.

### AppleShare Pro

    lauffähig auf A/UX,
    nur DDP-Unterstützung für Transport.

### AFP-Fileserver von Mac OS X Server

    DDP-Unterstützung für Transport bis Version 10.3 Panther vorhanden, danach nur noch IP.
AFP-Server-Implementierungen gibt es auch von anderen Herstellern. Beispielsweise bietet Microsoft für die Windows-Serverfamilie die Services for Macintosh als optionalen Dienst an, der jedoch seit Jahren nicht mehr aktiv gepflegt wird: Selbst Windows 2003 spricht nur den veralteten AFP-Level 2.2. Fremdhersteller wie Acronis/Grouplogic mit ExtremeZ-IP oder Cyan Soft mit MacServerIP, bieten jedoch auch für Windows-Systeme moderne AFP-Server an. Novell NetWare liefert einen AFP-3-Server.
Mit Netatalk und CAP existieren auch Open-Source-AFP-Server für Unix-artige Betriebssysteme.
Alle Mac-OS-Versionen ab System 7 können als AFP-Server fungieren, wenngleich diese von Apple als „Personal File Sharing“ bezeichnete Funktionalität maximal zehn Verbindungen für die Nutzung als Peer-to-Peer-Lösung unterstützt. Ein weiterer Nachteil ist die geringe Geschwindigkeit der Übertragungen und dass der Server-Rechner je nach Aktivität sehr stark belastet wird, was die Arbeit dort verlangsamt.
Mit macOS 11 Big Sur wurde der AFP-Server entfernt.

## Der AppleTalk-Protokollstapel

Die AppleTalk-Protokolle lassen sich in mehrere Schichten einteilen, die einen Protokollstapel (protocol stack) bilden. Die Protokolle lassen sich wie folgt in das ISO-OSI-Referenzmodell einordnen:
| OSI-Schicht | AppleTalk Protokollstapel | AppleTalk Protokollstapel | AppleTalk Protokollstapel | AppleTalk Protokollstapel | AppleTalk Protokollstapel | AppleTalk Protokollstapel | AppleTalk Protokollstapel |
| 7 | | | AFP | PAP | | |
| 6 | | | AFP | PAP | | | |
| 5 | ZIP | ZIP | ASP | | | ADSP | |
| 4 | | ATP | ATP | AEP | NBP | | RTMP |
| 3 | DDP | DDP | DDP | DDP | DDP | DDP | DDP |
| 2 | | LLAP | ELAP | TLAP | FDDI | ←AARP | |
| 1 | | LocalTalk | Ethernet- Treiber | Token-Ring- Treiber | FDDI- Treiber | |

## Versionsgeschichte

| Version | Erscheinungsdatum | Protokolle | Ergänzende Informationen |
| 2.0 | | DDP | |
| 2.1 | Juni 1991 | DDP | Anpassung an System 7. |
| 2.2 | | DDP, TCP | |
| 3.0 | 24. März 2001 | DDP, TCP | Eingeführt mit Mac OS X 10.0 (Cheetah). Unterstützung von UTF-8, Unix-Dateirechte und für Dateien größer als 2 GB. |
| 3.1 | 23. August 2002 | DDP, TCP | Bugfix-Release gemeinsam mit Mac OS X 10.2 (Jaguar); Implementierung von Kerberos Version 2 (Kerberos V). |
| 3.1+ | 24. Oktober 2003 | DDP, TCP | Eingeführt mit Mac OS X Panther (10.3), mit verbesserter Kerberos-Unterstützung. Letzte Version, die das Datagram Delivery Protocol (DDP) von AppleTalk verwenden kann und somit auch mit sehr alten Versionen von klassischem Mac OS („Macintosh System Software“ vor System 7.5) kompatibel ist. |
| 3.2 | 29. April 2005 | TCP | Mit Mac OS X Tiger (10.4) eingeführt und mit Unterstützung für ACLs und Extended Attributes. |
| 3.2+ | 26. Oktober 2007 | TCP | Version von Mac OS X Leopard (10.5). Ergänzt um Funktionen für Time Machine. |
| 3.3 | 28. August 2009 | TCP | Mit Mac OS X Snow Leopard (10.6) eingeführt. |
| 3.4 | 25. Juli 2012 | TCP | Keine neuen Funktionen, stattdessen Anpassung der AFP-Fehlercodes an POSIX. Eingeführt mit OS X Mountain Lion (10.8). |