Apple Filing Protocol
# Apple Filing Protocol

Das Apple Filing Protocol (AFP; deutsch etwa Apple Ablageprotokoll) ist ein Netzwerkprotokoll von Apple, das Rechnern mit den Betriebssystemen Mac OS oder macOS den Dateizugriff über ein Netzwerk ermöglicht.

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 (dem Standard-Dateisystem von Mac OS) 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 Mavericks (10.9, 2012) 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 vielen standardmäßig unterstützten Netzprotokollen für das Einbinden entfernter Dateisysteme (neben SMB/CIFS oder NFS).

Der AFP-Client auf 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 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 Version 7.0 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.

## 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 and 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). |
