AppleTalk, Apple Filing Protocol, LocalTalk

Der Macintosh beherrscht ab Werk erstmal »nur« AppleTalk - aus anderen Rechnerwelten bekannte Protokolle wie TCP/IP, DECNet oder IPX/SPX (oder SMB auf höheren Schichten) müssen dem Mac erst mittels Zusatzsoftware beigebracht werden. Bis System 7.5.1 konnte man auf Wunsch MacTCP (ab System 4) oder OpenTransport (ab System 7) installieren, ab System 7.5.3 ist OpenTransport integriert. Beide ermöglichen die TCP/IP-Nutzung, auf beiden aufbauend kann man PPP nutzen.

AppleTalk wird heute von vielen belächelt, es ist als langsam verschrien. Auf heutiger Netzwerkhardware (schnelle Netze wie Fast- oder Gigabit-Ethernet) ist es das auch, warum sehen wir später. Andere häufig gehörte Vorurteile wie »AppleTalk belastet das Netz mit Grundrauschen« oder »AppleTalk taugt nur für kleine Netze« stimmen so nicht.

Dabei bietet AppleTalk seit spätestens 1989 ein großartiges Bündel von Techniken, das erst heute und ganz langsam auch in der TCP/IP-Welt Einzug findet - dort heißen die Techniken dann bspw. APIPA (automatische Adreßvergabe ohne zentralen Server) und Rendezvous/Bonjour (Service Propagation).

Als Apple Techniken wie automatische Adreßvergabe, Namensauflösung und Server- und Druckerdienstpropagation einführte, konnte man endlich ein kleines bis mittleres Netzwerk aufbauen, ohne sich um eigentlich unnötigen Kleinkram kümmern zu müssen.

Eine Crux beim Verständnis von AppleTalk ist, dass die Begrifflichkeiten oft falsch oder ungenau gebraucht werden. Daher erstmal ein paar Begriffsklärungen.

AppleTalk- und AFP-Begrifflichkeiten

AppleTalk
... ist der moderne Name für den Protokollstack. Früher wurden diese kleinen Netzwerkkästchen, die man am Druckerport einsteckt als AppleTalk bezeichnet - seit spätestens 1989 heißt diese Hardware aber LocalTalk und das Protokoll AppleTalk.

AppleTalk war anfangs nur über LocalTalk spezifiziert, daher die Zusammenlegung der Begriffe. Als dann auch Ethernet und Token Ring verfügbar wurde, trennte man den Soft- (AppleTalk) und Hardwareteil (LocalTalk, EtherTalk, TokenTalk) begrifflich auf.

LocalTalk
... ist eine 230 kBit/s schnelle Netzwerk-Busstruktur, die am Druckerport des Macs angeschlossen wird und ab dem Mac 512k nutzbar ist. Auf der selben Ebene wie EtherTalk und TokenTalk angesiedelt. Ab dem Mac 512k nutzbar, sinnvoll ab dem Mac Plus.
EtherTalk
... ist ein Ethernet-Anschluss (10 MBit/s, mit 10Base2 (»BNC«, »Coax«), 10BaseT (RJ45, »Westernstecker«), AUI (15pin SubD zweireihig)), über den AppleTalk gefahren wird. In der Praxis ab dem Mac Plus nutzbar.
TokenTalk
... ist ein Token-Ring-Anschluss, über den AppleTalk gefahren wird. Ab dem Mac SE (4 MBit/s) oder SE/30 (16 MBit/s) nutzbar.
Apple Filing Protocol (AFP)
... ist ein Dateiserverdienst, der als »Personal File Sharing« weit bekannt ist und als solcher ab System 7 (1991) jedem Mac für Peer-to-Peer-Vernetzung beiliegt. Seit 1987 gibt es AFP-Server, von Apple selbst als »AppleShare File Server« mit Benutzer-, Gruppen- und Rechteverwaltung, aber auch von Drittherstellern. Eine Übersicht gibt es nebenan in tabellarischer Form. AFP baut auf AppleTalk auf, siehe OSI-Diagramm. AFP ist das, was SMB für die Windows-Welt oder NFS für Unix ist. Gegenüber SMB ist es jedoch deutlich intelligenter und heute auch deutlich schneller.
Personal File Sharing

Das ab System 7 jedem Client-Betriebssystem beiliegende Personal File Sharing ist eine Schmalspur-Version des Serverdienstes, jedoch ohne auch wendiger zu sein. Personal File Sharing ist auf maximal 10 gleichzeitige Verbindungen begrenzt, läuft nur mit DDP als Transportschicht und ist mit vielen Dateien nicht gerade fix. Die Begrenzung auf DDP bedingt auch eine schlechte Ausnutzung von schnelleren Transportnetzen wie FastEthernet. Ab Mac OS 9 kann man zwar Personal File Sharing auch über TCP/IP transportieren lassen, schneller wird es dadurch jedoch nicht. Apple kaufte für diese zusätzliche Funktionalität ShareWay IP ein.

AppleShare File Server, AFP-Server

Die von der Client-Version (s.o.) bekannten Beschränkung auf 10 Clients existiert in den AFP-Servern in dieser Form nicht. Der AppleShare File Server der ersten Versionen war nur für wenige dutzend Clients ausgelegt, ab Version 5 kam man in den niedrigen dreistelligen Bereich. Ab dieser Version kann AFP statt über DDP auch über TCP/IP transportiert werden - durch die größeren Pakete ist dies bei schnelleren Transportnetzen deutlich fixer.

Ab Version 4 wurden die vorher getrennt erhältlichen, aber gemeinsam betreibbaren Produkte AppleShare File Server und AppleShare Print Server zusammen ausgeliefert. Version 4.02 läuft auch erstmals beschleunigt für PowerPC-CPUs. Auch wenn nach Version 2.0 der Server nicht mehr dediziert laufen muss, so ist dies doch sehr zu empfehlen.

AppleTalk-Protokoll-Übersicht

kleine Schautafel | große Schautafel

  ISO-OSI-Layer
                  |                           +------------------+  +------------------+
                  |                           |                  |  |                  |
                  |                           |                  |  |    Postscript    |
 7. Application   |                           |    AppleTalk     |  |                  |
                  |                           |      Filing      |  +-------+ +--------+
                  |                           |     Protocol     |          | |
 6. Presentation  |                           |      (AFP)       |          | |
                  |                           |                  |          | |
                  |                           |                  |          | |
                  |                           +-------+ +--------+          | |
                  |                                   | |                   | |
                  |                                   | |                   | |
                  |                                   | |                   | |
                  |     +------------------+  +-------+ +--------+  +-------+ +--------+                        +------------------+
                  |     | Zone Information |  | AppleTalk Session|  |  Printer Access  |                        | AppleTalk  Data  |
 5. Session       |     |     Protocol     |  |     Protocol     |  |     Protocol     |                        | Stream Protocol  |
                  |     |      (ZIP)       |  |      (ASP)       |  |      (PAP)       |                        |      (ADSP)      |
                  |     +--+ +------+ +----+  +-------+ +--------+  +-+ +--------------+                        +--------+ +-------+
                  |        | |      | |               | |             | |                                                | |
                  |        | |      | |               | |             | |                                                | |
                  |        | |      | |               | |             | |                                                | |
                  |        | |    +-+ +---------------+ +-------------+ +-+  +------------------+  +------------------+  | |  +------------------+
                  |        | |    |          AppleTalk Transaction        |  |   Name Binding   |  |  AppleTalk Echo  |  | |  |  Routing  Table  |
 4. Transport     |        | |    |                Protocol               |  |     Protocol     |  |     Protocol     |  | |  |   Maintencance   |
                  |        | |    |                  (ATP)                |  |      (NBP)       |  |      (AEP)       |  | |  |  Protocol (RTMP) |
                  |        | |    +-------------------+ +-----------------+  +-------+ +--------+  +-------+ +--------+  | |  +------+ +---------+
                  |        | |                        | |                            | |                   | |           | |         | |
                  |        | |                        | |                            | |                   | |           | |         | |
                  |        | |                        | |                            | |                   | |           | |         | |
                  |     +--+ +------------------------+ +----------------------------+ +-------------------+ +-----------+ +---------+ +-----------+
                  |     |                                                                                                                          |
                  |     |                                                                                                                          |
 3. Network       |     |                                            Datagram Delivery Protocol (DDP)                                              |
                  |     |                                                                                                                          |
                  |     |                                                                                                                          |
                  |     +-----------------+ +-------------------------+ +--------------------------+ +---------------------------+ +---------------+
                  |                       | |                         | |                          | |                           | |
                  |                       | |                         | |                          | |                           | |
                  |                       | |                         | |                          | |                           | |
                  |              +--------+ +-------+        +--------+ +-------+         +--------+ +-------+          +--------+ +-------+
                  |              |  LocalTalk Link  |        |  EtherTalk Link  |         |  TokenTalk Link  |          |     FDDI Link    |
 2. Data link     |              | Access Protocol  |        | Access Protocol  |         |  Access Protocol |          |  Access Protocol |
                  |              |      (LLAP)      |        |      (ELAP)      |         |      (TLAP)      |          |      (FLAP?)     |
                  |              +--------+ +-------+        +--------+ +-------+         +--------+ +-------+          +--------+ +-------+
                  |                       | |                         | |                          | |                           | |
                  |                       | |                         | |                          | |                           | |
                  |              +--------+ +-------+        +--------+ +-------+         +--------+ +-------+          +--------+ +-------+
 1. Physical      |              |     LocalTalk    |        |     Ethernet     |         |     TokenRing    |          |       FDDI       |
                  |              |     Hardware     |        |     Hardware     |         |     Hardware     |          |     Hardware     |
                  |              +------------------+        +------------------+         +------------------+          +------------------+

LocalTalk-Verkabelungsbeispiel

LocalTalk-Verkabelungsdiagramm

LocalTalk ermöglicht die simple und kostengünstige Vernetzung von bis zu 32 Knoten und maximal 300m Länge in einem Bussystem. An jeden Knoten kommt eine LocalTalk-Box, die je zwei Mini-DIN3-Anschlüsse besitzt. An diese kommen die 3-adrigen Twisted-Pair-Kabel mit Mini-DIN3-Steckern.

Alternativ existiert auch PhoneNet von Farallon, das statt der Mini-DIN3-Anschlüsse die von der Telefontechnik bekannten RJ11-Westernbuchsen verwendet. Dadurch kann man Telefonkabel zwischen den PhoneNet-Boxen verwenden, was günstiger ist. Allerdings brauchen viele PhoneNet-Boxen an der letzten Box einen Abschlusswiderstand in der freien Buchse. Die Übertragungsgeschwindigkeit ist die selbe wie bei LocalTalk.

Warum AppleTalk als Protokoll? Konnte Apple nicht Standards benutzen?

Als Apple AppleTalk und AFP plante, da gab es nicht viele taugliche Alternativen in dieser Computer-Größenklasse. SMB gab es 1985 noch nicht in verwendbarer Form, NFS und Netware waren grade frisch herausgekommen. AFP bot ab dem ersten Tag schon längere Dateinamen (31 Bytes) als die in der DOS-Welt bis 1995 üblichen 8+3 Bytes.

Nebenbei waren viele dieser Fremd-Protokolle schwierig zu konfigurieren. Bei AppleTalk und AFP muss man dagegen in einem kleinen Netz überhaupt nichts konfigurieren: es sind keine Interrupts zu belegen, keine Jumper zu setzen, keine Treiber zu laden, keine Adressen zu konfigurieren und keine Server zu konfigurieren.

AppleTalk vergibt seit den Anfangstagen Adressen untereinander automatisch. In der TCP/IP-Welt gab es zwar schon länger für diese Zwecke BOOTP (BOOTP-RFC, 1985), aber das erst mit DHCP (DHCP-RFC, 1993) wurde es im Heimbereich auch langsam eingesetzt - viele Jahre nach AppleTalk. Und ganz ohne Serverdienst gibt es das mit APIPA/IPv4-Link-Local (IPv4-Link-Local-RFC) erst seit Windows 98 und Mac OS 8.5. In der Praxis heißt das, dass man Macs zum Zwecke des Datenaustauschs einfach per Netzwerk verbindet, sie »sehen« sich dann.

Auch der nächste typische Schritt ist in der AppleTalk-Welt viel einfacher gehalten als bei TCP/IP: Die Diensteerkennung. Macs erkennen seit Anfang an via AppleTalk automatisch, welche Dienste (bspw. Dateiserver, Drucker) im Netzwerk vorhanden sind und zeigen sie in der »Auswahl«, einem Programm, das über das Apple-Menü leicht erreichbar ist, an:

Auswahl-DA von System 6.07

Bei TCP/IP musste man für ähnliche Fähigkeiten lange warten, bis mit Zeroconf (RFC 2608 (SLP) und RFC 3224) etwas vergleichbares geschaffen wurde.

AFP-Komfortfunktionen

Apple war seinerzeit vorausschauend und hat einige Funktionen vom Client in den Server verlagert - wenn man mit einem guten AFP-Server verbunden ist und z.B. nach Dateien eines bestimmten Namens suchen lässt, dann sucht der AFP-Server selbst und übermittelt das Ergebnis, anstatt dem Client den halben Festplatteninhalt zuzusenden, auf dass der darin selbst suchen muss. Intern wird das mit FPCatSearch bezeichnet.

Auch das Kopieren von Dateien kann so erfolgen: der Client schickt dem Server eine Aufforderung, Datei A nach B zu kopieren. Anstatt (wie sonst oft üblich) die Datei zum Client zu schicken, damit der sie wieder an einen anderen Ort auf den Server hochschiebt, kopiert der Server die Datei selbst um.

Die Datei-Referenzierung erfolgt via eindeutiger Nummern (IDs) statt Namen, so dass eine Datei auch nach einer Umbenennung noch gefunden wird. Man kann sie sogar in andere Verzeichnisse schieben: Programme, die darauf zugreifen wollen, müssen den Pfad nicht kennen.

Diese und andere Annehmlichkeiten machen AFP zum Hausprotokoll für Macs. Verschiedene Hersteller bieten oder boten AFP-Server an, doch nicht jeder erfüllt alle Qualitätskriterien: manche können die speziellen AFP-Serverfunktionen nicht, andere haben Fehler, wieder andere sind langsam. Und viele können die neuesten Funktionen nicht, die Apple seit Mac OS X ergänzt hat, etwa lange Dateinamen über 31 Bytes.

Schnell und stabil, wenn auch feature-arm, ist Novell Netware 3.12 mit Mac-Disk; AppleShare 4 läuft auch gut. Für Würfelmacs dürfte der AFP-Server von Mac OS X 10.2.8 der beste sein.
s.a. AFP-Server-Übersicht

Auch fremde Plattformen wie DOS-PCs mit AppleShare-Software, Windows-Rechner mit Software wie PCMacLAN oder Unix/Linux-Rechner mit Netatalk können AFP-Server-Dienste nutzen.

Weiterführende Verweise

Verfolgen, was es Neues gibt!

Letzte Änderung: 2010-10-21, 21:55:52 (CEST)
Knubbelmac.de | Mail an den Webmaster Götz Hoffart | Über diese Seite | Neueste Tweets
Änderungen und Irrtümer vorbehalten. Bitte lesen Sie das Impressum.