Main Page | See live article | Alphabetical index


AppleTalk is a suite of protocols developed by Apple Computer for computer networking. The implementation fairly rigorously followed the OSI model of protcol layering. Unlike most other early LAN systems, AppleTalk was not built on the architypical Xerox XNS system, as the intended target was not Ethernet and did not have 48-bit addresses to route. Nevertheless many portions of the AppleTalk system have direct analogs in XNS.

One key differentiator for AppleTalk was that the system contained two protocols aimed at making the system completely self-configuring. The address resolution protocol (ARP) allowed AppleTalk hosts to automatically generate their own network addresses, and the name binding protocol (NBP) was essentially a dynamic DNS system which mapped network addresses to user-readable names. Although systems similar to ARP existed in other systems, Banyan VINES for instance, nothing like NBP has existed until recently.

ARP is a fairly simple system. When powered on, an AppleTalk machine broadcasts a packet asking for a network address, intending to hear back from controllers such as routers. If no address is provide, one is picked at random from the "base subnet", 0. It then broadcasts another packet saying "I am selecting this address", and then waits to see if anyone else on the network complains. If another machine has that address, it will pick another address, and keep trying until it finds a free one. On a network with many machines it may take several tries before a free address is found, so for performance purposes the successful address is "written down" in NVRAM and used as the default address in the future. This means that in most real-world setups where machines are added a few at a time, only one or two tries are needed before the address effectively become constant.

NBP is a dynamic system. It periodically broadcasts small packets with device information in it, including the name and device type. Each client on the network caches this information, along with the network address from which it was received. As would be expected from Apple, names were truly human readable, containing spaces, upper and lower case letters, and including support for searching.

Both ARP and NBP had defined ways to allow "controller" devices overrde the default mechanisms. The concept here was to allow routers to provide all of this information, or additionlly "hardwire" the system to known addresses and names. On larger networks where ARP could cause problems as new nodes searched for free addresses, the addition of a router could dramatically reduce "chattyness".

Together ARP and NBP made AppleTalk perhaps the easiest to use networking system yet developed. New machines were added to the network simply by plugging them in, and optionally giving them a name. The NBP lists were examined and displayed by a program known as the Chooser (originally because it allowed you to choose your default printer) which would display a list of machines on the local network, divided into classes such as fileservers and printers. All of this was completely automated.

The default hardware implementation for AppleTalk was a high-speed serial protocol known as LocalTalk that used the Macintosh's built-in RS-422 ports at 232kbps. LocalTalk used a splitter box in the RS-422 port to provide an upstream and downstream cable from a single port. The system was slow by today's standards, but at the time the additional cost and complexity of networking on PC machines was such that it was common that Macs were the only networked machines in the office.

Other physical implementations were also available. One common replacement for LocalTalk was PhoneTalk, a 3rd party solution that also used the RS-422 port, but ran over two unused wires in existing phone cabling. PhoneTalk was considerably less expensive to install and maintain, and it is perhaps surprising that Apple did not move to this solution as well. Ethernet and TokenRing was also supported, known as EtherTalk and TokenTalk respectively.

One problem for AppleTalk was that it was originally intended to be part of a project known as Macintosh Office, which would consist a host machine providing routing, printer sharing and file sharing. However this project was cancelled in 1986, and while the LaserWriter included AppleTalk built-in and could be easily dropped on a network, file sharing and routing was left to third parties. Support for a long time was spotty at best, and did not arrive in convincing form until the early 1990s when much of the market was writing off Apple as dead.

AppleTalk is now considered clunky and often called 'verbose', notably on larger networks and WANs where the naming services generated considerable unwanted traffic.

Today AppleTalk support is provided for backward compatibility in many products, but the default networking on the Mac is TCP/IP. Under Mac OS X versions after v10.2, Rendezvous provides discovery and naming services similar to NBP, while standard DHCP provides setup similar to ARP. After 20 years the TCP/IP world has now reached the ease of use of AppleTalk, albiet only on the Mac (currently).

OSI Model Corresponding AppleTalk layers
Application AppleTalk filtering protocol
Presentation ---
Session Zone information protocol
Printer access protocol
Transport Routing table maintenance protocol
Name binding protocol
Network Datagram delivery protocol
AppleTalk resolution protocol
AppleTalk upgrade routing protocol
Data link EtherTalk
Physical IEEE 802.3
IEEE 802.5