Hubbry Logo
AppleTalkAppleTalkMain
Open search
AppleTalk
Community hub
AppleTalk
logo
7 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Contribute something
AppleTalk
AppleTalk
from Wikipedia

AppleTalk
Protocol stack
Developer(s)Apple Computer
Introduction1985; 40 years ago (1985)
HardwareLocalTalk, others

AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Computer for their Macintosh computers. AppleTalk includes a number of features that allow local area networks to be connected with no prior setup or the need for a centralized router or server of any sort. Connected AppleTalk-equipped systems automatically assign addresses, update the distributed namespace, and configure any required inter-networking routing.

AppleTalk was released in 1985 and was the primary protocol used by Apple devices through the 1980s and 1990s. Versions were also released for the IBM PC and compatibles and the Apple IIGS. AppleTalk support was also available in most networked printers (especially laser printers), some file servers, and a number of routers.

The rise of TCP/IP during the 1990s led to a reimplementation of most of these types of support on that protocol, and AppleTalk became unsupported as of the release of Mac OS X v10.6 in 2009. Many of AppleTalk's more advanced autoconfiguration features have since been introduced in Bonjour, while Universal Plug and Play serves similar needs.

History

[edit]

AppleNet

[edit]

After the release of the Apple Lisa computer in January 1983, Apple invested considerable effort in the development of a local area networking (LAN) system for the machines. Known as AppleNet, it was based on the seminal Xerox XNS protocol stack[1] but running on a custom 1 Mbit/s coaxial cable system rather than Xerox's 2.94 Mbit/s Ethernet. AppleNet was announced early in 1983 with a full introduction at the target price of $500 for plug-in AppleNet cards for the Lisa and the Apple II.[2]

At that time, early LAN systems were just coming to market, including Ethernet, Token Ring, Econet, and ARCNET. This was a topic of major commercial effort at the time, dominating shows like the National Computer Conference (NCC) in Anaheim in May 1983. All of the systems were jockeying for position in the market, but even at this time, Ethernet's widespread acceptance suggested it was to become a de facto standard.[3] It was at this show that Steve Jobs asked Gursharan Sidhu a seemingly innocuous question: "Why has networking not caught on?"[4]

Four months later, in October, AppleNet was cancelled. At the time, they announced that "Apple realized that it's not in the business to create a networking system. We built and used AppleNet in-house, but we realized that if we had shipped it, we would have seen new standards coming up."[5] In January, Jobs announced that they would instead be supporting IBM's Token Ring, which he expected to come out in a "few months".[5]

AppleBus

[edit]

Through this period, Apple was deep in development of the Macintosh computer. During development, engineers had made the decision to use the Zilog 8530 serial controller chip (SCC) instead of the lower-cost and more common UART to provide serial port connections.[6] The SCC cost about $5 more than a UART, but offered much higher speeds of up to 250 kilobits per second (or higher with additional hardware) and internally supported a number of basic networking-like protocols like IBM's Bisync.[7]

The SCC was chosen because it would allow multiple devices to be attached to the port. Peripherals equipped with similar SCCs could communicate using the built-in protocols, interleaving their data with other peripherals on the same bus. This would eliminate the need for more ports on the back of the machine, and allowed for the elimination of expansion slots for supporting more complex devices. The initial concept was known as AppleBus, envisioning a system controlled by the host Macintosh polling "dumb" devices in a fashion similar to the modern Universal Serial Bus.[8]

AppleBus networking

[edit]

The Macintosh team had already begun work on what would become the LaserWriter and had considered a number of other options to answer the question of how to share these expensive machines and other resources. A series of memos from Bob Belleville clarified these concepts, outlining the Mac, LaserWriter, and a file server system which would become the Macintosh Office.[4] By late 1983 it was clear that IBM's Token Ring would not be ready in time for the launch of the Mac, and might miss the launch of these other products as well. In the end, Token Ring would not ship until October 1985.[9]

Jobs' earlier question to Sidhu had already sparked a number of ideas. When AppleNet was cancelled in October, Sidhu led an effort to develop a new networking system based on the AppleBus hardware. This new system would not have to conform to any existing preconceptions, and was designed to be worthy of the Mac – a system that was user-installable and required no configuration or fixed network addresses – in short, a true plug-and-play network.[10][independent source needed] Considerable effort was needed, but by the time the Mac was released, the basic concepts had been outlined, and some of the low-level protocols were on their way to completion. Sidhu mentioned the work to Belleville only two hours after the Mac was announced.[4]

The "new" AppleBus was announced in early 1984,[N 1] allowing direct connection from the Mac or Lisa through a small box that is plugged into the serial port and connected via cables to the next computer upstream and downstream. Adaptors for Apple II and Apple III were also announced.[11] Apple also announced that an AppleBus network could be attached to, and would appear to be a single node within, a Token Ring system.[5] Details of how this would work were sketchy.[5]

AppleTalk Personal Network

[edit]

Just prior to its release in early 1985, AppleBus was renamed AppleTalk. Initially marketed as AppleTalk Personal Network, it comprised a family of network protocols and a physical layer.

The physical layer had a number of limitations, including a speed of only 230.4 kbit/s, a maximum distance of 1,000 feet (300 m) from end to end, and only 32 nodes per LAN.[12] But as the basic hardware was built into the Mac, adding nodes only cost about $50 for the adaptor box. In comparison, Ethernet or Token Ring cards cost hundreds or thousands of dollars. Additionally, the entire networking stack required only about 6 kB of RAM, allowing it to run on any Mac.[13]

The relatively slow speed of AppleTalk allowed further reductions in cost. Instead of using RS-422's balanced transmit and receive circuits, the AppleTalk cabling used a single common electrical ground, which limited speeds to about 500 kbit/s, but allowed one conductor to be removed. This meant that common three-conductor cables could be used for wiring. Additionally, the adaptors were designed to be "self-terminating", meaning that nodes at the end of the network could simply leave their last connector unconnected. There was no need for the wires to be connected back together into a loop, nor the need for hubs or other devices.

The system was designed for future expansion; the addressing system allowed for expansion to 255 nodes in a LAN (although only 32 could be used at that time), and by using "bridges" (which came to be known as "routers", although technically not the same) one could interconnect LANs into larger collections. "Zones" allowed devices to be addressed within a bridge-connected internet. Additionally, AppleTalk was designed from the start to allow use with any potential underlying physical link,[14] and within a few years, the physical layer would be renamed LocalTalk, so as to differentiate it from the AppleTalk protocols.

The main advantage of AppleTalk was that it was completely maintenance-free. To join a device to a network, a user simply plugged the adaptor into the machine, then connected a cable from it to any free port on any other adaptor. The AppleTalk network stack negotiated a network address, assigned the computer a human-readable name, and compiled a list of the names and types of other machines on the network so the user could browse the devices through the Chooser. AppleTalk was so easy to use that ad hoc networks tended to appear whenever multiple Macs were in the same room.[15] Apple would later use this in an advertisement showing a network being created between two seats in an airplane.[16] A disadvantage of AppleTalk Personal Network is that cable connectors easily separate, causing network failures.[17]

PhoneNet and other adaptors

[edit]

Slow but inexpensive, AppleTalk became widely popular.[18] A thriving third-party market for AppleTalk devices developed over the next few years. One particularly notable example was an alternate adaptor designed by BMUG and commercialised by Farallon as PhoneNET in 1987.[19] This was essentially a replacement for Apple's connector using conventional phone jacks instead of Apple's round connectors. PhoneNet allows AppleTalk networks to be connected together using normal telephone wires, and with very little extra work, can run analog phones and AppleTalk on a single four-conductor phone cable.[17]

Other companies took advantage of the SCC's ability to read external clocks in order to support higher transmission speeds, up to 1 Mbit/s. In these systems, the external adaptor also included its own clock, and used that to signal the SCC's clock input pins. The best-known such system was Centram's FlashTalk, which ran at 768 kbit/s, and was intended to be used with their TOPS networking system.[20] A similar solution was the 850 kbit/s DaynaTalk, which used a separate box that plugged in between the computer and a normal LocalTalk/PhoneNet box. Dayna also offered a PC expansion card that ran up to 1.7 Mbit/s when talking to other Dayna PC cards.[21][22] Several other systems also existed with even higher performance, but these often required special cabling that was incompatible with LocalTalk/PhoneNet, and also required patches to the networking stack that often caused problems.

AppleTalk over Ethernet

[edit]

As Apple expanded into more commercial and education markets, they needed to integrate AppleTalk into existing network installations. Many of these organisations had already invested in a very expensive Ethernet infrastructure and there was no direct way to connect a Macintosh to Ethernet. AppleTalk included a protocol structure for interconnecting AppleTalk subnets and so as a solution, EtherTalk was initially created to use the Ethernet as a backbone between LocalTalk subnets. To accomplish this, organizations would need to purchase a LocalTalk-to-Ethernet bridge and Apple left it to third parties to produce these products.[23] A number of companies responded, including Hayes and a few newly formed companies like Kinetics.

LocalTalk, EtherTalk, TokenTalk, and AppleShare

[edit]

By 1987, Ethernet was clearly winning the standards battle over Token Ring, and in the middle of that year, Apple introduced EtherTalk 1.0, an implementation of the AppleTalk protocol over the Ethernet physical layer. Introduced for the newly released Macintosh II computer, one of Apple's first two Macintoshes with expansion slots (the Macintosh SE had one slot of a different type), the operating system included a new Network control panel that allowed the user to select which physical connection to use for networking (from "Built-in" or "EtherTalk"). At introduction, Ethernet interface cards were available from 3Com and Kinetics that plugged into a NuBus slot in the machine. The new networking stack also expanded the system to allow a full 255 nodes per LAN. With EtherTalk's release, AppleTalk Personal Network was renamed LocalTalk,[24] the name it would be known under for the bulk of its life. Token Ring would later be supported with a similar TokenTalk product, which used the same Network control panel and underlying software. Over time, many third-party companies would introduce compatible Ethernet and Token Ring cards that used these same drivers.

The appearance of a Macintosh with a direct Ethernet connection also magnified the Ethernet and LocalTalk compatibility problem: Networks with new and old Macs needed some way to communicate with each other. This could be as simple as a network of Ethernet Mac II's trying to talk to a LaserWriter that only connected to LocalTalk. Apple initially relied on the aforementioned LocalTalk-to-Ethernet bridge products, but contrary to Apple's belief that these would be low-volume products, by the end of 1987, 130,000 such networks were in use. AppleTalk was at that time the most used networking system in the world, with over three times the installations of any other vendor.[25][independent source needed]

1987 also marked the introduction of the AppleShare product, a dedicated file server that ran on any Mac with 512 kB of RAM or more. A common AppleShare machine was the Mac Plus with an external SCSI hard drive. AppleShare was the #3 network operating system (NOS) in the late 1980s, behind Novell NetWare and Microsoft's MS-Net. While NetWare had more than 50% of the NOS market, AppleTalk users were the happiest.[26] AppleShare was effectively the replacement for the failed Macintosh Office efforts, which had been based on a dedicated file server device.

AppleTalk Phase II and other developments

[edit]

A significant re-design was released in 1989 as AppleTalk Phase II. In many ways, Phase II can be considered an effort to make the earlier version (never called Phase I) more generic. LANs could now support more than 255 nodes, and zones were no longer associated with physical networks but were entirely virtual constructs used simply to organize nodes. For instance, one could now make a "Printers" zone that would list all the printers in an organization, or one might want to place that same device in the "2nd Floor" zone to indicate its physical location. Phase II also included changes to the underlying inter-networking protocols to make them less "chatty", which had previously been a serious problem on networks that bridged over wide-area networks.[27]

By this point, Apple had a wide variety of communications products under development, and many of these were announced along with AppleTalk Phase II. These included updates to EtherTalk and TokenTalk, AppleTalk software and LocalTalk hardware for the IBM PC, EtherTalk for Apple's A/UX operating system allowing it to use LaserWriters and other network resources, and the Mac X.25 and MacX products.

Ethernet had become almost universal by 1990, and it was time to build Ethernet into Macs direct from the factory. However, the physical wiring used by these networks was not yet completely standardized. Apple solved this problem using a single port on the back of the computer into which the user could plug an adaptor for any given cabling system. This FriendlyNet system was based on the industry-standard Attachment Unit Interface or AUI, but deliberately chose a non-standard connector that was smaller and easier to use, which they called "Apple AUI", or AAUI. FriendlyNet was first introduced on the Quadra 700 and Quadra 900 computers, and used across much of the Mac line for some time.[28] As with LocalTalk, a number of third-party FriendlyNet adaptors quickly appeared.

As 10BASE-T became the de facto cabling system for Ethernet, second-generation Power Macintosh machines added a 10BASE-T port in addition to AAUI. The PowerBook 3400c and lower-end Power Macs also added 10BASE-T. The Power Macintosh 7300/8600/9600 were the final Macs to include AAUI, and 10BASE-T became universal starting with the Power Macintosh G3 and PowerBook G3.

The capital-I Internet

[edit]

From the beginning of AppleTalk, users wanted to connect the Macintosh to TCP/IP network environments. In 1984, Bill Croft at Stanford University pioneered the development of IP packets encapsulated in DDP as part of the SEAGATE (Stanford Ethernet–AppleTalk Gateway) project. SEAGATE was commercialized by Kinetics in their LocalTalk-to-Ethernet bridge as an additional routing option. A few years later, MacIP was separated from the SEAGATE code and became the de facto method for IP packets to be routed over LocalTalk networks. By 1986, Columbia University released the first version of the Columbia AppleTalk Package (CAP) that allowed higher integration of Unix, TCP/IP, and AppleTalk environments. In 1988, Apple released MacTCP, a system that allowed the Mac to support TCP/IP on machines with suitable Ethernet hardware. However, this left many universities with the problem of supporting IP on their many LocalTalk-equipped Macs. It was soon common to include MacIP support in LocalTalk-to-Ethernet bridges.[28] MacTCP would not become a standard part of the Classic Mac OS until 1994,[29] by which time it also supported SNMP and PPP.

For some time in the early 1990s, the Mac was a primary client on the rapidly expanding Internet.[30]Among the better-known programs in wide use were Fetch, Eudora, eXodus, NewsWatcher, and the NCSA packages, especially NCSA Mosaic[31] and its offspring, Netscape Navigator.[32] Additionally, a number of server products appeared that allowed the Mac to host Internet content. Through this period, Macs had about 2 to 3 times as many clients connected to the Internet as any other platform,[33][independent source needed] despite the relatively small overall microcomputer market share.

As the world quickly moved to IP for both LAN and WAN uses, Apple was faced with maintaining two increasingly outdated code bases on an ever-wider group of machines as well as the introduction of the PowerPC-based machines. This led to the Open Transport efforts, which re-implemented both MacTCP and AppleTalk on an entirely new code base adapted from the Unix standard STREAMS. Early versions had problems and did not become stable for some time.[34] By that point, Apple was deep in their ultimately doomed Copland efforts.

Legacy and abandonment

[edit]

With the purchase of NeXT and subsequent development of Mac OS X, AppleTalk was strictly a legacy system. Support was added to Mac OS X in order to provide support for a large number of existing AppleTalk devices, notably laser printers and file shares, but alternate connection solutions common in this era, notably USB for printers, limited their demand. As Apple abandoned many of these product categories, and all new systems were based on IP, AppleTalk became less and less common. AppleTalk support was finally removed from the macOS line in Mac OS X v10.6 in 2009.[35]

However, the loss of AppleTalk did not reduce the desire for networking solutions that combined its ease of use with IP routing. Apple has led the development of many such efforts, from the introduction of the AirPort router to the development of the zero-configuration networking system and their implementation of it, Rendezvous, later renamed Bonjour.

As of 2020, AppleTalk support has been completely removed from legacy support with macOS 11 Big Sur.

Design

[edit]

The AppleTalk design rigorously followed the OSI model of protocol layering. Unlike most of the early LAN systems, AppleTalk was not built using the archetypal Xerox XNS system. The intended target was not Ethernet, and it did not have 48-bit addresses to route. Nevertheless, many portions of the AppleTalk system have direct analogs in XNS.

One key differentiation for AppleTalk was it contained two protocols aimed at making the system completely self-configuring. The AppleTalk address resolution protocol (AARP) allowed AppleTalk hosts to automatically generate their own network addresses, and the Name Binding Protocol (NBP) was a dynamic system for mapping network addresses to user-readable names. Although systems similar to AARP existed in other systems, Banyan VINES for instance. Beginning about 2002 Rendezvous (the combination of DNS-based service discovery, Multicast DNS, and link-local addressing) provided capabilities and usability using IP that were similar to those of AppleTalk.[36][37]

Both AARP and NBP had defined ways to allow "controller" devices to override the default mechanisms. The concept was to allow routers to provide the information or "hardwire" the system to known addresses and names. On larger networks where AARP could cause problems as new nodes searched for free addresses, the addition of a router could reduce "chattiness." Together AARP and NBP made AppleTalk an easy-to-use networking system. New machines were added to the network by plugging them in and optionally giving them a name. The NBP lists were examined and displayed by a program known as the Chooser which would display a list of machines on the local network, divided into classes such as file-servers and printers.

Addressing

[edit]

An AppleTalk address was a four-byte quantity. This consisted of a two-byte network number, a one-byte node number, and a one-byte socket number. Of these, only the network number required any configuration, being obtained from a router. Each node dynamically chose its own node number, according to a protocol (originally the LocalTalk Link Access Protocol LLAP and later, for Ethernet/EtherTalk, the AppleTalk Address Resolution Protocol, AARP)[38] which handled contention between different nodes accidentally choosing the same number. For socket numbers, a few well-known numbers were reserved for special purposes specific to the AppleTalk protocol itself. Apart from these, all application-level protocols were expected to use dynamically assigned socket numbers at both the client and server end.

Because of this dynamism, users could not be expected to access services by specifying their address. Instead, all services had names which, being chosen by humans, could be expected to be meaningful to users, and also could be sufficiently long to minimize the chance of conflicts.

As NBP names translated to an address, which included a socket number as well as a node number, a name in AppleTalk mapped directly to a service being provided by a machine, which was entirely separate from the name of the machine itself. Thus, services could be moved to a different machine and, so long as they kept the same service name, there was no need for users to do anything different in order to continue accessing the service. And the same machine could host any number of instances of services of the same type, without any network connection conflicts.

Contrast this with A records in the DNS, in which a name translates to a machine's address, not including the port number that might be providing a service. Thus, if people are accustomed to using a particular machine name to access a particular service, their access will break when the service is moved to a different machine. This can be mitigated somewhat by insistence on using CNAME records indicating service rather than actual machine names to refer to the service, but there is no way of guaranteeing that users will follow such a convention. Some newer protocols, such as Kerberos and Active Directory use DNS SRV records to identify services by name, which is much closer to the AppleTalk model.[original research?]

Protocols

[edit]

AppleTalk Address Resolution Protocol

[edit]

The AppleTalk Address Resolution Protocol (AARP) resolves AppleTalk addresses to link layer addresses.[39] It is functionally equivalent to ARP and obtains address resolution by a method very similar to ARP.[40]

AARP is a fairly simple system. When powered on, an AppleTalk machine broadcasts an AARP probe packet asking for a network address, intending to hear back from controllers such as routers. If no address is provided, 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, the newly connecting machine will pick another address, and keep trying until it finds a free one.[30] 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 recorded 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 becomes constant.

AppleTalk Data Stream Protocol

[edit]

The AppleTalk Data Stream Protocol (ADSP) was a comparatively late addition to the AppleTalk protocol suite, done when it became clear that a TCP-style reliable connection-oriented transport was needed. Significant differences from TCP were that:

  • A connection attempt could be rejected.
  • There were no "half-open" connections; once one end initiated a tear-down of the connection, the whole connection would be closed (i.e., ADSP is full-duplex, not dual simplex).
  • AppleTalk had an included attention message system which allowed short messages to be sent which would bypass the normal stream data flow. These were delivered reliably but out of order with respect to the stream. Any attention message would be delivered as soon as possible instead of waiting for the current stream byte sequence point to become current.[41]

Apple Filing Protocol

[edit]

The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is the protocol for communicating with AppleShare file servers. Built on top of AppleTalk Session Protocol (for legacy AFP over DDP) or the Data Stream Interface (for AFP over TCP), it provides services for authenticating users (extensible to different authentication methods including two-way random-number exchange) and for performing operations specific to the Macintosh HFS filesystem. AFP is still in use in macOS, even though most other AppleTalk protocols have been deprecated.

AppleTalk Session Protocol

[edit]

The AppleTalk Session Protocol (ASP) was an intermediate protocol, built on top of AppleTalk Transaction Protocol (ATP), which in turn was the foundation of AFP. It provided basic services for requesting responses to arbitrary commands and performing out-of-band status queries. It also allowed the server to send asynchronous attention messages to the client.

AppleTalk Transaction Protocol

[edit]

The AppleTalk Transaction Protocol (ATP) was the original reliable transport-level protocol for AppleTalk, built on top of DDP. At the time it was being developed, a full, reliable connection-oriented protocol like TCP was considered to be too expensive to implement for most of the intended uses of AppleTalk. Thus, ATP was a simple request/response exchange, with no need to set up or tear down connections.

An ATP request packet could be answered by up to eight response packets. The requestor then sent an acknowledgement packet containing a bit mask indicating which of the response packets it received, so the responder could retransmit the remainder.

ATP could operate in either "at-least-once" mode or "exactly-once" mode. Exactly-once mode was essential for operations which were not idempotent; in this mode, the responder kept a copy of the response buffers in memory until successful receipt of a release packet from the requestor, or until a timeout elapsed. This way, it could respond to duplicate requests with the same transaction ID by resending the same response data, without performing the actual operation again.[42]

Datagram Delivery Protocol

[edit]

The Datagram Delivery Protocol (DDP) was the lowest-level data-link-independent transport protocol. It provided a datagram service with no guarantees of delivery. All application-level protocols, including the infrastructure protocols NBP, RTMP and ZIP, were built on top of DDP. AppleTalk's DDP corresponds closely to the Network layer of the Open Systems Interconnection (OSI) communication model.

Name Binding Protocol

[edit]

The Name Binding Protocol (NBP) was a dynamic, distributed system for managing AppleTalk names. When a service started up on a machine, it registered a name for itself as chosen by a human administrator. At this point, NBP provided a system for checking that no other machine had already registered the same name. Later, when a client wanted to access that service, it used NBP to query machines to find that service. NBP provided browsability ("what are the names of all the services available?") as well as the ability to find a service with a particular name.[39] Names were human-readable, containing spaces and upper- and lower-case letters, and including support for searching.

AppleTalk Echo Protocol

[edit]

The AppleTalk Echo Protocol (AEP) was a transport layer protocol designed to test the reachability of network nodes.[39] AEP generates packets to be sent to the network node and is identified in the Type field of a packet as an AEP packet. The packet is first passed to the source DDP. After it is identified as an AEP packet, it is forwarded to the node where the packet is examined by the DDP at the destination. After the packet is identified as an AEP packet, the packet is then copied and a field in the packet is altered to create an AEP reply packet, and is then returned to the source node.

Printer Access Protocol

[edit]

The Printer Access Protocol (PAP) was the standard way of communicating with PostScript printers. It was built on top of ATP.[39] When a PAP connection was opened, each end sent the other an ATP request which basically meant "send me more data". The client's response to the server was to send a block of PostScript code, while the server could respond with any diagnostic messages that might be generated as a result, after which another "send-more-data" request was sent. This use of ATP provided automatic flow control; each end could only send data to the other end if there was an outstanding ATP request to respond to.

PAP also provided for out-of-band status queries, handled by separate ATP transactions. Even while it was busy servicing a print job from one client, a PAP server could continue to respond to status requests from any number of other clients. This allowed other Macintoshes on the LAN that were waiting to print to display status messages indicating that the printer was busy, and what the job was that it was busy with.

Routing Table Maintenance Protocol

[edit]

The Routing Table Maintenance Protocol (RTMP) was the protocol by which routers kept each other informed about the topology of the network.[39] This was the only part of AppleTalk that required periodic unsolicited broadcasts: every 10 seconds, each router had to send out a list of all the network numbers it knew about and how far away it thought they were.

Zone Information Protocol

[edit]

The Zone Information Protocol (ZIP) was the protocol by which AppleTalk network numbers were associated with zone names.[39] A zone was a subdivision of the network that made sense to humans (for example, "Accounting Department"); but while a network number had to be assigned to a topologically contiguous section of the network, a zone could include several different discontiguous portions of the network.

Physical implementation

[edit]
Local cable and interior circuit board, port-side view
Rear view of auto-termination switch with dust cover removed
Interior of Apple LocalTalk interface box. In 1989, these boxes typically cost US$90 each. The connectors feature automatic electrical termination of the LocalTalk signal bus; insertion of a LocalTalk bus cable depresses a normally closed switch behind the connector, disabling termination for that connector.
Farallon PhoneNET adapter

The initial 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 230.4 kbit/s. LocalTalk used a splitter box in the RS-422 port to provide an upstream and downstream cable from a single port. The topology was a bus: cables were daisy-chained from each connected machine to the next, up to the maximum of 32 permitted on any LocalTalk segment. 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 personal computers in an office. Other larger computers, such as UNIX or VAX workstations, would commonly be networked via Ethernet.

Other physical implementations were also available. A very popular replacement for LocalTalk was PhoneNET, a third-party solution from Farallon Computing, Inc. (renamed Netopia, acquired by Motorola in 2007) that also used the RS-422 port and was indistinguishable from LocalTalk as far as Apple's LocalTalk port drivers were concerned, but ran over very inexpensive standard phone cabling with four-wire, six-position modular connectors, the same cables used to connect landline telephones. Since it used the second pair of wires, network devices could even be connected through existing telephone jacks if a second line was not present. Foreshadowing today's network hubs and switches, Farallon provided solutions for PhoneNet to be used in star as well as bus configurations, with both passive star connections (with the phone wires simply bridged to each other at a central point), and active star with "PhoneNet Star Controller" hub hardware. In a star configuration, any wiring issue only affected one device, and problems were easy to pinpoint. PhoneNet's low cost, flexibility, and easy troubleshooting resulted in it being the dominant choice for Mac networks into the early 1990s.

AppleTalk protocols also came to run over Ethernet (first coaxial and then twisted pair) and Token Ring physical layers, labeled by Apple as EtherTalk and TokenTalk, respectively. EtherTalk gradually became the dominant implementation method for AppleTalk as Ethernet became generally popular in the PC industry throughout the 1990s. Besides AppleTalk and TCP/IP, any Ethernet network could also simultaneously carry other protocols such as DECnet and IPX.

Networking model

[edit]
OSI Model Corresponding AppleTalk layers
Application Apple Filing Protocol (AFP)
Presentation Apple Filing Protocol (AFP)
Session Zone Information Protocol (ZIP)
AppleTalk Session Protocol (ASP)
AppleTalk Data Stream Protocol (ADSP)
Transport AppleTalk Transaction Protocol (ATP)
AppleTalk Echo Protocol (AEP)
Name Binding Protocol (NBP)
Routing Table Maintenance Protocol (RTMP)
Network Datagram Delivery Protocol (DDP)
Data link EtherTalk Link Access Protocol (ELAP)
LocalTalk Link Access Protocol (LLAP)
TokenTalk Link Access Protocol (TLAP)
Fiber Distributed Data Interface (FDDI)
Physical LocalTalk driver
Ethernet driver
Token Ring driver
FDDI driver

Versions

[edit]
AppleTalk version Apple Filing Protocol Corresponds to Notes
56 System 7.0
57.0.4 System 7.12
58.1.1 System 7.1.2
58.1.3 System 7.5
60.3 Mac OS 7.6.1 Open Transport 1.3
60.0a6 Mac OS 8.6 Open Transport 2.0.3
3.0 Mac OS X 10.0.3
2.1, 2.0 and even 1.1 Mac OS X v10.2
2.2, 3.0 and 3.1 Mac OS X v10.3
3.2 Mac OS X v10.4

Cross-platform solutions

[edit]

By contrast to Macs, in the late 1980s no dominant LAN hardware standard existed[18][26] for the most popular office computing platform, the PC compatible running MS-DOS. Apple introduced the AppleTalk PC Card in early 1987, allowing PCs to join AppleTalk networks and print to LaserWriter printers.[43] A year later AppleShare PC was released, allowing PCs to access AppleShare file servers.[44]

The "TOPS Teleconnector"[45] MS-DOS networking system over AppleTalk system enabled MS-DOS PCs to communicate over AppleTalk network hardware; it comprised an AppleTalk interface card for the PC and a suite of networking software allowing such functions as file, drive and printer sharing. As well as allowing the construction of a PC-only AppleTalk network, it allowed communication between PCs and Macs with TOPS software installed. (Macs without TOPS installed could use the same network but only to communicate with other Apple machines.) The Mac TOPS software did not match the quality of Apple's own either in ease of use or in robustness and freedom from crashes, but the DOS software was relatively simple to use in DOS terms, and was robust.

The BSD and Linux operating systems support AppleTalk through an open source project called Netatalk, which implements the complete protocol suite and allows them to both act as native file or print servers for Macintosh computers, and print to LocalTalk printers over the network.

The Windows Server operating systems supported AppleTalk starting with Windows NT and ending after Windows Server 2003. Miramar included AppleTalk in its PC MacLAN product which was discontinued by CA in 2007. GroupLogic continues to bundle its AppleTalk protocol with its ExtremeZ-IP server software for Macintosh-Windows integration which supports Windows Server 2008 and Windows Vista as well prior versions. HELIOS Software GmbH offers a proprietary implementation of the AppleTalk protocol stack, as part of their HELIOS UB2 server. This is essentially a File and Print Server suite that runs on a whole range of different platforms.

In addition, Columbia University released the Columbia AppleTalk Package (CAP) which implemented the protocol suite for various Unix flavours including Ultrix, SunOS, BSD and IRIX. This package is no longer actively maintained.

See also

[edit]

Notes

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Inc. for interconnecting Macintosh computers, peripherals, and other devices in local area networks. Introduced in 1985, it was designed as a low-cost, easy-to-use system that required no complex setup, centralized routers, or dedicated servers, allowing users to share files, printers, and resources seamlessly across small workgroups. The protocol suite evolved from Phase 1, which supported basic nonextended networks limited to 254 nodes, to Phase 2 in 1989, which introduced extended addressing for up to 16 million nodes, improved routing via protocols like the Routing Table Maintenance Protocol (RTMP), and support for multiple zones to organize large-scale networks. At its core, AppleTalk operates as a layered aligned with the , providing both connectionless and connection-oriented services for data exchange. The network layer relies on the Datagram Delivery Protocol (DDP) for best-effort packet delivery using a 16-bit network number, 8-bit node ID, and 8-bit socket number for addressing. Transport-layer protocols include the AppleTalk Transaction Protocol (ATP) for reliable, lightweight transactions and the AppleTalk Data Stream Protocol (ADSP) for full-duplex, connection-oriented streams, while session management is handled by the AppleTalk Session Protocol (ASP). Name resolution and zone management are facilitated by the Name-Binding Protocol (NBP) and Zone Information Protocol (ZIP), enabling devices to advertise and discover services using human-readable names. AppleTalk's link-access protocols made it adaptable to diverse hardware, including (using serial connections at 230.4 kbps), EtherTalk (over Ethernet), TokenTalk (over ), and FDDITalk (over FDDI). Application-level protocols such as the AppleTalk Filing Protocol (AFP) allowed access to shared file servers, while the Printer Access Protocol (PAP) supported networked printing. This flexibility contributed to its widespread adoption in the 1980s and 1990s as Apple's primary networking solution, integrated directly into Macintosh hardware and software. Support for AppleTalk was phased out with the release of Mac OS X 10.6 Snow Leopard in 2009, as Apple shifted to TCP/IP-based standards like Bonjour for modern interoperability. Despite its obsolescence, AppleTalk's design influenced early personal computing networking by prioritizing simplicity and multivendor compatibility, paving the way for more advanced distributed systems.

History

Early Development

Following the success of the in 1977, which established Apple Computer as a leader in personal computing, the company began exploring networked environments to enhance resource sharing among standalone systems. This shift was driven by the recognition that personal computers could benefit from interconnected setups in small offices and educational settings, allowing users to share files and peripherals without the complexity of mainframe-based networks. By the late , Apple initiated internal efforts to develop affordable networking solutions, motivated by the high costs and installation challenges of existing technologies, which often exceeded $1,000 per computer and required specialized expertise. AppleNet emerged as an early prototype in this period, conceptualized in the late 1970s as a system to connect Apple devices including the , , and later Lisa computers, enabling peer-to-peer communication. This internal project focused on simple and printer access among Lisa systems, addressing the limitations of isolated business-oriented machines released in 1980. Although announced publicly in early 1983 with a target price of $500 for plug-in cards, AppleNet was cancelled in October 1983 after consuming significant resources, with its development roots traced back to prototypes tested on Apple hardware, laying groundwork for broader networking ambitions. The project was influenced by Xerox's XNS stack but adapted for Apple's emphasis on low-overhead, user-friendly implementation. By 1981, these ideas evolved toward serial bus concepts for peripherals, influencing the networking architecture that would become AppleBus—the initial name for what developed into AppleTalk's . AppleBus prototypes emphasized a serial interface for easy daisy-chaining of devices, building on the need for seamless integration in personal systems. played a pivotal role in accelerating this work, famously questioning at the 1983 National Computer Conference why networking had not yet become mainstream for personal computers, thereby refocusing efforts on user-friendly solutions timed for the Macintosh launch in 1984. Key contributors included lead designer Gursharan S. Sidhu, who shaped the , and engineers like and Ron Hochsprung, who handled hardware and testing. The core goals of these early developments centered on creating a low-cost, easy-to-install that operated without dedicated servers, promoting plug-and-play connectivity over twisted-pair wiring at speeds around 230 Kbits/s. This approach prioritized affordability and simplicity for non-expert users, contrasting with enterprise-grade systems, and set the stage for AppleTalk's formal introduction as a suite enabling interpersonal in workgroups.

Phase I Introduction

AppleTalk Phase I was officially released in 1984 alongside Macintosh 1.0, marking the debut of Apple's networking suite designed for seamless connectivity among Macintosh computers. This initial implementation emphasized simplicity and ease of use, allowing users to connect multiple devices without complex configuration, and it was integrated directly into the Macintosh hardware and software ecosystem. Development of AppleTalk had begun in late , with the protocol finalized to support small-scale local area networks (LANs) tailored to the emerging personal computing environment. At its core, Phase I introduced dynamic addressing, where each device automatically selected a unique 8-bit node ID upon joining the network, enabling up to 32 devices on a single network segment without manual intervention. The protocol operated on non-routable flat networks, meaning all connected devices shared a single logical segment without support for internetworking across multiple physical networks, which kept the design straightforward for local workgroups. Peer-to-peer communication was a foundational concept, allowing any Macintosh to directly interact with others for tasks like data exchange, fostering a collaborative environment without dedicated servers in many cases. The initial hardware support came via , a low-speed serial protocol using the built-in in the Macintosh's printer port (a mini-DIN 8 connector), which transmitted data at 230.4 kbps over twisted-pair or cabling up to 300 meters. This plug-and-play approach eliminated the need for additional adapters on early models like the Macintosh 128K, making networking accessible to non-technical users. Early adoption of AppleTalk Phase I was particularly strong in educational institutions and small office settings, where it facilitated printer sharing and basic among Macintosh workstations, printers, and early file servers, thereby enhancing in resource-constrained environments. By providing a cost-effective alternative to more complex networking solutions of the era, it quickly became a staple for Macintosh users seeking simple resource sharing.

Phase II Enhancements

AppleTalk Phase II, introduced in 1989, enhanced the original AppleTalk suite to accommodate larger-scale deployments beyond small workgroups, emphasizing scalability and capabilities. This built upon the foundational Phase I protocols while introducing mechanisms for extended networks, allowing Macintosh systems running compatible software to participate in more expansive configurations. A key innovation was extended addressing, which assigned 16-bit network numbers ranging from 1 to 65,535 and 8-bit node addresses from 1 to 254 per network segment, theoretically supporting up to approximately 16 million nodes across a single extended physical network like Ethernet or Token Ring. This addressed the limitations of Phase I's single-network assumption, enabling cable ranges (e.g., networks 100–110) to logically subdivide a physical cable into multiple virtual networks for better organization and collision avoidance. Routers played a central role in internetworking, facilitating communication between these extended networks and supporting multi-zone configurations where up to 255 distinct zones could be defined per network, allowing administrators to group devices logically (e.g., by department) while maintaining a unified addressing space. To ensure backward compatibility, Phase II incorporated a compatibility mode for Phase I devices, primarily through software utilities that translated packets between the two phases on shared cables, though all routers required upgrading to Phase II to avoid disruptions across the internet. Phase I nodes could operate in nonextended mode on the same physical network, but full Phase II features like zones were unavailable to them without updates. This transitional approach allowed gradual migration in mixed environments. Performance enhancements focused on efficient packet handling, including the use of addressing in place of broadcasts to reduce unnecessary traffic and the split-horizon technique in updates to prevent redundant information loops. These changes minimized in larger topologies, with improved router selection algorithms favoring optimal paths for better overall throughput and reliability, though specific error correction mechanisms remained consistent with Phase I's datagram delivery model.

Network Adaptations

One of the earliest significant adaptations for AppleTalk was PhoneNet, introduced in 1985 by Farallon Computing as an alternative to Apple's proprietary hardware. PhoneNet implemented the AppleTalk using the Macintosh's serial ports (printer port) and twisted-pair telephone wiring, typically four-conductor phone lines, which allowed for a or bus without the need for Apple's more expensive shielded twisted-pair cabling. This adaptation maintained compatibility with the LocalTalk Link Access Protocol (LLAP) while supporting distances up to 2,000 feet, making it a cost-effective solution for small networks. In 1986, Apple released EtherTalk, enabling AppleTalk to operate over Ethernet networks by encapsulating AppleTalk packets within Ethernet frames via the EtherTalk Link Access Protocol (ELAP). EtherTalk utilized the to map between 48-bit Ethernet MAC addresses and AppleTalk's 16-bit network and 8-bit node addresses, facilitating seamless integration without altering the core AppleTalk protocols. This adaptation supported both 10BASE-T and coaxial Ethernet, allowing Macintosh systems to connect to broader Ethernet infrastructures commonly used in enterprise environments. Apple extended AppleTalk support to Token Ring networks with TokenTalk in 1989, as part of the Phase II enhancements, using the TokenTalk Link Access Protocol (TLAP) to handle the IEEE 802.5 physical layer. TokenTalk adapted AppleTalk's delivery to Token Ring's token-passing mechanism, supporting speeds of 4 or 16 Mbps and enabling connectivity in IBM-dominated Token Ring environments prevalent in corporate settings during the late 1980s. Farallon also developed the PhoneNET PC adapter in the late 1980s, which provided PC compatibility by allowing systems to join AppleTalk networks via a card or interface, bridging Macintosh and PC environments through PhoneNET's twisted-pair wiring. These adaptations collectively offered substantial advantages, including significant cost savings—PhoneNet connectors cost around $49 each compared to Apple's higher-priced options—and easier integration with existing office infrastructure like phone lines and Ethernet cabling, thereby extending AppleTalk's reach beyond native Macintosh setups.

Decline and Discontinuation

The rise of TCP/IP as the dominant networking protocol in the late 1990s and early 2000s significantly contributed to AppleTalk's decline, particularly with the introduction of Mac OS X in 2001, which was built on a Unix foundation emphasizing standards and native TCP/IP support over proprietary protocols like AppleTalk. AppleTalk's deprecation was gradual, remaining available in Mac OS X versions up to 10.5 but fully removed in Mac OS X 10.6 , released on August 28, 2009, marking the official end of native support. Hardware support lingered longest for Apple laser printers from the 1990s, such as the series, which relied on AppleTalk (often via EtherTalk over Ethernet) for connectivity; these could still function with compatible systems until the 2009 protocol removal necessitated workarounds like print servers. Apple shifted focus to wireless and standards-based local networking, introducing Wi-Fi hardware in 1999 and Bonjour (formerly Rendezvous) in 2002 for zero-configuration over TCP/IP, effectively supplanting AppleTalk's plug-and-play features without the need for proprietary infrastructure. AppleTalk peaked in usage during the , particularly in the sector where Apple held a 37 percent of computers in the 1999-2000 , enabling widespread local networks in classrooms and labs; by 2001-02, this had declined to 26 percent amid broader industry shifts to TCP/IP and Windows dominance.

Design and Architecture

Networking Model

AppleTalk employs a hybrid networking model that combines and client-server paradigms, enabling flexible resource sharing among devices without requiring dedicated hardware for either role. In its foundation, any connected device can function as both a client and a server, allowing direct communication between equals using protocols like the AppleTalk Data Stream Protocol (ADSP), which supports symmetrical, full-duplex sessions where both endpoints exert equal control over data exchange. This design promotes efficiency and user autonomy in small-scale environments, as workstations and servers coexist on the same node without centralized oversight. Complementing this, client-server elements provide structured services through software like AppleShare, which centralizes file and printer access via the AppleTalk Filing Protocol (AFP) and AppleTalk Session Protocol (ASP). AppleShare enables workstations to initiate asymmetrical sessions with dedicated servers for authentication, access control, and resource management, such as remote file sharing and print spooling, integrating seamlessly with the Macintosh environment. This hybrid approach allows seamless transitions between ad-hoc peer interactions and managed server-based operations. The logical topology of AppleTalk is bus-based, utilizing Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) for media access control, where devices listen for a clear channel before transmitting and employ mechanisms like Request-to-Send/Clear-to-Send (RTS/CTS) handshakes to avoid collisions on shared cabling such as LocalTalk. This topology supports scalability from small personal networks, accommodating 2 to 32 nodes over distances up to 300 meters, to larger extended networks handling thousands of nodes—or up to approximately 16 million in Phase 2 configurations—through internetworking via routers that segment traffic and manage hops limited to 15. AppleTalk approximates the OSI reference model with a five-layer : physical and (e.g., Link Access Protocol for bus access), network (Datagram Delivery Protocol for routing), transport (AppleTalk Transaction Protocol for reliable delivery), and a combined session/ (handling services like and filing). This structure condenses OSI's seven layers into five functional ones, prioritizing simplicity for local area networking while supporting end-to-end connectivity across internets.

Layered Protocol Stack

AppleTalk employs a layered that aligns closely with the OSI , facilitating modular design and across diverse network media. The stack consists of physical, , network, , and upper-layer (session and application) components, enabling end-to-end communication in a environment. This structure supports plug-and-play connectivity by emphasizing stateless operation and dynamic configuration, where devices automatically acquire addresses and resources without manual intervention. At the physical layer, AppleTalk handles the transmission of raw bits over various media, such as twisted-pair wiring using signaling for , which operates at 230.4 Kbps over distances up to 300 meters supporting up to 32 nodes. This layer manages signal encoding, carrier sensing, and basic hardware connectivity, adapting to interfaces like for Ethernet or . The data link layer provides frame formatting, node-to-node delivery, and error detection within a single physical network segment. For instance, the LocalTalk Link Access Protocol (LLAP) employs with collision avoidance (CSMA/CA), dynamic node ID assignment from 1 to 254, and (CRC) for integrity, accommodating packets up to 600 bytes. Similar protocols like ELAP for Ethernet and TLAP for map AppleTalk addresses to hardware addresses via the AppleTalk Address Resolution Protocol (), ensuring reliable local communication. In AppleTalk Phase I, this layer operates on nonextended networks limited to one logical network per cable, whereas Phase II extends support for multiple logical networks per physical segment. The network layer manages and across multiple segments, using the Datagram Delivery Protocol (DDP) for connectionless, best-effort delivery to sockets via 32-bit addressing (16-bit network number, 8-bit node ID, and 8-bit socket number). Phase I uses non-extended networks, each limited to a single flat logical network of up to 254 nodes, but supports between such networks via the Routing Table Maintenance Protocol (RTMP); Phase II introduces routable extended networks with 16-bit network numbers (allowing up to 65,535 networks) and protocols like RTMP for dynamic table updates and hop-by-hop forwarding, limited to 15 hops. This enables scalable topologies without centralized configuration. The offers end-to-end reliability options atop the unreliable , with protocols providing transaction-oriented delivery for request-response interactions. It supports mechanisms like transaction identifiers for matching responses and modes for at-least-once or exactly-once semantics, ensuring over potentially lossy paths without maintaining persistent connections, aligning with the stack's stateless ethos. Upper layers encompass session and application functions for service discovery, session management, and data exchange. The session layer handles connection-oriented interactions, such as sequenced commands and printer access, while the application layer supports file sharing and zone-based organization through dynamic name binding and resource enumeration. Name resolution occurs via distributed lookups on specific sockets, promoting service discovery without dedicated servers, and all layers leverage dynamic socket allocation for flexibility in plug-and-play scenarios.

Addressing System

AppleTalk employs a hierarchical addressing that operates at three levels: network, node, and socket. This structure enables dynamic configuration and supports both small local networks and larger internetworks. In Phase I, addressing was limited to nonextended networks without explicit network numbers, but Phase II introduced a more scalable 16-bit network number field, allowing for extended networks with ranges up to 65,535. The node address, an 8-bit field ranging from 1 to 254, identifies individual devices on a . Nodes dynamically assign their own addresses upon joining the network by selecting a provisional node ID and using AppleTalk Address Resolution Protocol (AARP) probe packets to detect conflicts; if a duplicate is found, the node retries with a different ID until a unique one is secured. This process ensures uniqueness without manual configuration, supporting up to 254 nodes per nonextended network. Network numbers in Phase II are 16-bit values (0 to 65,535), with 0 typically indicating a nonextended network. Routers assign and advertise these numbers to nodes, enabling the formation of extended networks defined by a range of consecutive numbers for larger topologies. For nonextended setups, the network number is implicitly 0, simplifying local configurations. Socket numbers serve as 8-bit ports (0 to 255) to distinguish services or processes on a given node, with well-known sockets reserved for standard protocols—such as socket 4 for (AFP). The full AppleTalk address combines the network number, node ID, and socket number into a 32-bit internet socket address, facilitating end-to-end communication. AARP resolves AppleTalk network addresses to underlying addresses, such as Ethernet MAC addresses, by broadcasting probe, request, and response packets. When a node needs to communicate, it sends an AARP request to discover the target node's hardware address; responses populate a local cache for subsequent transmissions, ensuring efficient mapping across different media types. This protocol operates at the and includes mechanisms for duplicate address detection during node initialization. ZIP manages logical groupings of networks and nodes into zones, which are named collections (up to 255 per extended network) used for organizing devices across multi-network environments. Routers maintain a zone information table mapping network numbers (or ranges) to zone names, dynamically updating it via ZIP packets in response to topology changes. Non-router nodes query routers using ZIP commands like GetMyZone or GetZoneList to retrieve zone assignments, enabling applications to operate within specific logical boundaries. Name Binding Protocol (NBP) uses ZIP-derived zone information for resolving names to addresses.

Protocols

Datagram and Transport Protocols

The Datagram Delivery Protocol (DDP) serves as the core protocol in AppleTalk, providing connectionless, socket-to-socket delivery of datagrams similar to UDP in the TCP/IP suite. It operates without establishing sessions, enabling efficient transmission for applications that can tolerate potential , such as diagnostics or streams. DDP supports both short and long header formats, with the long header including fields for source and destination node addresses, network numbers, and a hop count to prevent indefinite routing loops. The protocol includes an optional in long headers to verify , computed over the entire excluding the checksum field itself. DDP datagrams carry 1 to 586 bytes of user data, with the total packet length limited to 599 octets including the header. The packet format begins with a 1-byte length field indicating the total size, followed by a 1-byte type field specifying the higher-layer protocol (e.g., 2 for ATP), and in long headers, a 1-byte hop count initialized to 0 by the sender and incremented by each router. If the hop count reaches 15, the datagram is discarded to avoid loops in routed networks. failures result in immediate packet discard without retransmission, as DDP offers and relies on upper-layer protocols for reliability. Built atop DDP, the AppleTalk Transaction Protocol (ATP) provides a reliable mechanism for request-response transactions, ensuring delivery through acknowledgments and retransmissions. ATP uses 16-bit transaction IDs generated by the requester to match requests (TReq) with responses (TResp), supporting up to eight sequenced datagrams per transaction via sequence numbers 0-7. An 8-bit in the TReq header indicates which response datagrams are expected, and the responder echoes a modified in TResp to acknowledge receipt; incomplete bitmaps trigger requester retransmissions after a timeout. ATP operates in two modes: At-Least-Once (ALO) for simple retries and Exactly-Once (XO) for idempotent operations using a transaction list to suppress duplicates. This design supports short, atomic exchanges, such as those used in higher protocols like the AppleTalk Session Protocol (ASP). The AppleTalk Echo Protocol (AEP) functions as a basic diagnostic tool, akin to ICMP echo in IP networks, for testing node and measuring round-trip latency. Implemented as a DDP client on every AppleTalk node via the AEP Echoer process, it listens on socket 68 and reflects any received —up to 585 bytes—back to the sender unchanged. No dedicated exists for AEP; applications invoke it indirectly through DDP writes to the echo socket, making it a lightweight utility for network troubleshooting without additional reliability features.

Session and Transaction Protocols

The AppleTalk Session and Transaction Protocols operate at the of the AppleTalk , providing mechanisms for establishing, maintaining, and terminating connections between network processes while ensuring reliable and ordered data exchange. These protocols build upon the lower-layer Datagram Delivery Protocol (DDP) and AppleTalk Transaction Protocol (ATP), enabling applications to conduct structured interactions such as client-server dialogues. ASP and ADSP represent the primary protocols in this category, with ASP focusing on asymmetrical session management for transaction-oriented services and ADSP offering symmetrical full-duplex streams. The AppleTalk Session Protocol (ASP) is an asymmetrical protocol designed to manage sessions between a workstation client and a server , where the client initiates and controls the connection while the server responds passively. It supports multiple concurrent sessions from the same workstation to a single server, each identified by a unique 16-bit session reference number assigned during connection establishment. Key commands include ASPOpenSess to initiate a session via ATP transactions, ASPCloseSess to terminate a specific session, and ASPCloseAll to end all active sessions with the server. Additional commands such as ASPUserCmd enable the client to send application-specific commands (up to a maximum size determined by ASPGetParms, typically 572 bytes), while ASPUserWrite handles data transfers and ASPAttn allows the server to send asynchronous attention messages, such as notifications for session interruptions. ASP relies on ATP to ensure that commands are delivered reliably and without duplicates, making it suitable for state-dependent applications like file serving under the AppleTalk Filing Protocol (AFP). In contrast, the AppleTalk Data Stream Protocol (ADSP) provides a symmetrical, connection-oriented service for full-duplex byte-stream communication between two peer processes over DDP, analogous to TCP in its reliability features. Sessions are established using socket-based endpoints initialized with dspInit, followed by dspOpen in modes such as ocRequest for active connection attempts or ocPassive for ; successful connections assign a 16-bit connection ID (CID) for packet identification. Reliability is achieved through 32-bit sequence numbers (sendSeq and recvSeq) that track ordering and detect losses or duplicates, with optional 16-bit checksums for verification. Flow control prevents receiver overload by monitoring available buffer space via the sendWindow parameter (defaulting to 600 bytes) and blocking sends when queues exceed limits, ensuring efficient flow in both directions. ADSP also supports attention messages (up to 570 bytes) for urgent signaling and can be extended with the AppleTalk Secure Data Stream Protocol (ASDSP) for and using mechanisms like session keys. ASP's transaction flow leverages ATP to sequence and coordinate multiple transactions into an ordered session dialogue, ensuring that commands and responses arrive in the correct sequence despite potential network disruptions. Each ASP command or reply packet encapsulates an ATP transaction request or response, utilizing ATP's 8-bit sequence numbers to confirm delivery of up to eight response packets per request and handle retransmissions if acknowledgments are missing. This sequencing maintains session state integrity, with the client tracking outstanding transactions and the server processing them in order, thereby providing a reliable foundation for higher-level protocols without requiring end-to-end acknowledgments at the .

Filing and Printing Protocols

The filing and printing protocols in AppleTalk formed the for resource sharing, enabling Macintosh users to access remote files and printers over local networks. These protocols relied on the underlying session and transport layers for reliable delivery, focusing on user-centric operations like file manipulation and print job management. The (AFP) served as the primary mechanism for in AppleTalk networks, allowing workstations to connect to remote file servers for reading, writing, and managing files and directories. Introduced in 1985, AFP provided basic remote filing capabilities through commands for opening sessions, enumerating volumes, and performing file operations. Subsequent versions enhanced functionality: AFP 2.0, documented in the late 1980s, introduced improved volume mounting and error handling; AFP 2.1 and 2.2 added support for extended methods like cleartext and random number exchange. AFP supported key features including directory browsing via the afpEnumerate command (code 9), which listed folder contents with options for and filtering; file locking through byte-range mechanisms like afpByteRangeLock (code 1) to prevent concurrent access conflicts; and using afpLogin (code 18) for user validation at the volume or folder level, enforcing access controls. Operating over the AppleTalk Session Protocol (ASP) atop the AppleTalk Transaction Protocol (ATP) and Datagram Delivery Protocol (DDP), AFP sessions were established on DDP socket 5. AppleShare represented Apple's official software implementation of an AFP server, enabling standard Macintosh computers to function as dedicated file servers in AppleTalk environments. Integrated into Mac OS starting with and refined in later versions like AppleShare IP, it leveraged the host's native (such as HFS) for most operations, translating AFP commands into local file I/O while handling session management and multi-user access. This allowed seamless sharing of volumes across without requiring specialized hardware. The Printer Access Protocol (PAP) managed printing services in AppleTalk, providing a connection-oriented, transactionless interface for submitting jobs to remote printers and querying their status. Built directly on ATP for reliable, sequenced delivery without acknowledgments at the application level, PAP used DDP and supported both client-initiated connections to printer servers and server-side listening for incoming requests. Key capabilities included job queuing, where clients divided print into logical units sent via OTSnd functions and marked with end-of-message flags; status reporting through dedicated SendStatus requests, allowing clients to retrieve printer availability, error conditions, or queue depth; and connection lifecycle management with open, data transfer, and close phases to ensure orderly job processing. Primarily designed for printers, PAP's simplicity made it the standard for AppleTalk printing until the protocol's decline.

Name Resolution and Routing Protocols

AppleTalk's name resolution and routing protocols enable dynamic , address mapping, and efficient forwarding across internetworked nodes. These protocols operate at the network layer, building on the addressing system to support logical segmentation and path determination without requiring manual configuration. The Name Binding Protocol (NBP) handles name-to-address resolution, while the Routing Table Maintenance Protocol (RTMP) and Zone Information Protocol (ZIP) manage routing and zone mappings, respectively, facilitating scalable network operations in both Phase I and Phase II environments. The Name Binding Protocol (NBP) provides a distributed mechanism for mapping human-readable names to AppleTalk socket addresses, allowing applications and processes—referred to as entities—to register and locate services dynamically across the network. Each entity name consists of three fields: an object (e.g., a device or user name like ""), a type (e.g., a service category like "Printer"), and a zone (e.g., a logical group like "* " for the local zone), with each field limited to 32 characters including a null terminator and supporting alphanumeric, case-insensitive entries. NBP operates over the Datagram Delivery Protocol (DDP), maintaining a local names table on each node that collectively forms a network-wide directory; entities register names via the Register command, which verifies uniqueness through broadcasts and unicasts, preventing duplicates. For discovery, NBP supports Lookup and Enumerate commands, where applications send requests with wildcards—such as "=" for exact match, "≈" for partial match, or "*" for any—to query for matching entities, receiving replies with corresponding socket addresses (network number, node ID, and socket number). This enables service , such as listing all printers in a zone, with up to 100 concurrent requests handled per node depending on implementation. NBP's design ensures reliability through retries and supports multiple names per socket, integrating seamlessly with dynamic node addressing for plug-and-play connectivity. The Routing Table Maintenance Protocol (RTMP) implements distance-vector to maintain path information between AppleTalk networks, enabling routers to forward datagrams optimally across the . As a router-to-router protocol, RTMP uses periodic broadcasts—every 10 seconds—over DDP to exchange complete routing tables with neighboring devices, including network numbers, hop counts (up to 15 maximum), and next-hop router details. Routers update their tables based on the lowest hop count received, aging out inactive routes after approximately 20 seconds of inactivity to adapt to topology changes. In AppleTalk Phase II, RTMP supports extended 16-bit network numbers (up to ), allowing larger internetworks compared to Phase I's 8-bit limit, and includes request packets for on-demand updates from non-responding routers. Non-router nodes implement a lightweight RTMP stub to learn local network details and identify attached routers, ensuring end-to-end connectivity without full logic. This broadcast-based approach, while simple, scales to hundreds of networks but can generate significant traffic in large topologies. The Zone Information Protocol (ZIP) manages the association of zone names with network numbers, providing logical segmentation for service discovery and enabling NBP lookups within specific zones. Implemented primarily on routers, ZIP maintains a zone information table mapping each network range to one or more zones (up to 255 per extended network), with non-extended networks limited to a single zone; end nodes query routers using the AppleTalk Transaction Protocol (ATP) over DDP socket 6 for zone data. Routers propagate zone lists via periodic advertisements and respond to queries, resolving conflicts if duplicate zone names appear on the same network. Key ZIP operations include GetMyZone for retrieving a node's assigned zone, GetLocalZones for listing zones on the local network, and GetZoneList for enumerating all zones, with results returned in buffers supporting up to 16 zones per reply and continuation flags for larger lists. Configuration occurs during network startup, where the first router on a cable seeds the default zone, and subsequent routers join or create zones as needed. This protocol enhances usability by abstracting physical , allowing administrators to group nodes logically for targeted service access.

Implementations

Physical Layer Options

AppleTalk's physical layer primarily utilized as its foundational implementation, providing a low-cost networking option for early Macintosh systems. employed differential signaling, a balanced electrical interface that ensured reliable data transmission over relatively long distances while minimizing noise interference. This standard, also known as EIA/TIA-422, supported baseband signaling at a fixed data rate of 230.4 kbps, enabling basic and printing among connected devices. The medium for LocalTalk transmission consisted of shielded twisted-pair cabling, typically using 22- or 24-gauge wire to form a daisy-chain topology that connected up to 32 devices per segment. Connections were made via mini-DIN 8-pin connectors, which plugged directly into the Macintosh printer port, allowing for straightforward integration without additional hardware in most cases. Cable segments could extend up to 300 meters in length, but required 120-ohm terminators at both ends of the chain to prevent signal reflections and maintain network integrity. Power for LocalTalk transceivers was drawn directly from the host devices at 5 volts, eliminating the need for external power supplies and simplifying deployment in office environments. This self-powered design relied on the Macintosh's serial port capabilities, with no additional infrastructure required for basic operation. However, the system operated in half-duplex mode, meaning data could flow in only one direction at a time across the shared medium. To manage access and avoid collisions, LocalTalk implemented Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA), where devices listened before transmitting and used randomized backoff delays if the channel was busy. While focused on twisted-pair wiring, adaptations like PhoneNet extended compatibility to existing telephone cabling using RJ-11 connectors, though these were covered in details. The half-duplex nature and CSMA/CA mechanism limited throughput to practical levels for the era, typically under 100 kbps effective, but provided a robust entry point for AppleTalk networking. AppleTalk also supported other physical layers for higher-speed networks. EtherTalk used standard Ethernet physical media, such as coaxial cabling (up to 500 meters at 10 Mbps) or 10BASE-T twisted-pair (up to 100 meters per segment at 10 Mbps), leveraging CSMA/CD for medium access. TokenTalk operated over physical layers, typically shielded twisted-pair (STP) or unshielded twisted-pair (UTP) cabling at 4 Mbps or 16 Mbps speeds, with token-passing for deterministic access. FDDITalk adapted AppleTalk to (FDDI), employing multimode fiber optic cabling in a dual counter-rotating ring at 100 Mbps, providing high-bandwidth connectivity for large networks. These physical options allowed AppleTalk to scale across diverse hardware environments. AppleTalk's link layer adaptations provide the datalink protocols necessary to interface the higher-layer protocols with various , ensuring reliable frame transmission and reception. These adaptations include the LocalTalk Link Access Protocol (LLAP) for twisted-pair networks, the EtherTalk Link Access Protocol (ELAP) for Ethernet, and the TokenTalk Link Access Protocol (TLAP) for . Each protocol defines specific frame formats to encapsulate AppleTalk's Datagram Delivery Protocol (DDP) packets, incorporating addressing and control information while adhering to the underlying medium's constraints. These protocols integrate with the AppleTalk (AARP) for mapping network addresses to physical addresses, as described in the Addressing System section. The LocalTalk Link Access Protocol (LLAP) operates over the physical layer, using a CSMA/CA access method on twisted-pair cabling. An LLAP frame begins with a preamble of flag bytes for , followed by a 1-byte destination node (1-254, 255 for broadcast), 1-byte source node , and 1-byte protocol type field distinguishing packets (values 1–127) from control packets (128–255, such as $81 for ENQ). The frame includes variable-length (0-600 bytes), a 16-bit (FCS) using CRC-CCITT for error detection, and a trailing . LLAP supports through broadcast frames addressed to node ID 255, allowing efficient delivery to all nodes on the local network. Frame sizes for LocalTalk range from 64 to 600 bytes, accommodating the protocol's maximum data payload while minimizing collisions on low-speed links. The EtherTalk Link Access Protocol (ELAP) adapts AppleTalk for IEEE 802.3 Ethernet networks by encapsulating DDP packets within standard Ethernet II frames augmented with IEEE 802.2 Logical Link Control (LLC) and Subnetwork Access Protocol (SNAP) headers. The Ethernet frame's destination and source fields carry 48-bit MAC addresses resolved via AARP, while the LLC header (DSAP/SSAP AA/AA, control 03) is followed by SNAP header with OUI 00-00-00 and protocol identifier 80-9B to denote AppleTalk DDP. This encapsulation ensures compatibility with Ethernet's 1500-byte MTU, with AppleTalk payloads padded or segmented as needed to align with the frame size limits. ELAP frames maintain the same multicast capabilities as LLAP, using Ethernet's multicast MAC addresses mapped through AARP for group communications. The TokenTalk Link Access Protocol (TLAP) extends AppleTalk to IEEE 802.5 networks, employing a similar LLC/SNAP encapsulation as ELAP but tailored to Token Ring's token-passing mechanism and 48-bit addressing. TLAP frames include support for , with route information fields (2 to 18 bytes) to navigate ring bridges, inserted after the source address in the frame header. The SNAP header uses OUI 00-00-00 followed by protocol identifier 80-9B for AppleTalk DDP identification, and broadcast addressing employs the Token Ring C0-00-F8-00-00-00. Like other adaptations, TLAP aligns payloads to the medium's MTU (typically 1792 or 4464 bytes for Token Ring), preserving AppleTalk's 600-byte maximum size through segmentation if required. This design enables seamless integration of Token Ring into extended AppleTalk internetworks while handling the medium's unique framing and priority features.

Cross-Platform Compatibility

Apple's efforts to extend AppleTalk compatibility to non-Macintosh systems began with the introduction of the in 1987, an ISA expansion card designed for IBM PC compatibles running . This hardware solution allowed PCs to connect directly to LocalTalk-based AppleTalk networks using twisted-pair cabling, enabling and access to shared printers like the . The accompanying software provided drivers for integrating applications into the AppleTalk ecosystem, facilitating basic interoperability in mixed environments without requiring additional gateways. Novell further advanced cross-platform support through for Macintosh, a suite of value-added processes (VAPs) released starting in the late 1980s, which integrated AppleTalk protocols into NetWare servers. This allowed NetWare file and print servers to serve Macintosh clients via the (AFP) over AppleTalk, while simultaneously supporting DOS and clients through protocol translation between AFP and NetWare Core Protocol (NCP). In mixed-network setups, Macintosh users could log in via the AppleShare interface in the Chooser, access shared volumes, and route print jobs to emulated Apple queues, promoting resource sharing across heterogeneous environments. Open-source initiatives like Netatalk, first developed at the and publicly released in 1990, provided a software-based implementation of AppleTalk for systems, including and BSD variants. Netatalk emulates AFP servers over both AppleTalk and TCP/IP, allowing Unix hosts to act as file and print servers for Macintosh clients without proprietary hardware. This enabled cost-effective integration of non-Apple systems into AppleTalk networks, with ongoing development supporting legacy protocols alongside modern extensions like extended attributes for resource forks. Despite these advancements, cross-platform AppleTalk implementations faced challenges due to architectural differences, particularly byte-order conventions. AppleTalk protocols, including Datagram Delivery Protocol (DDP), specify network byte order (big-endian) for fields like addresses, which required byte-swapping in little-endian environments such as x86-based PCs and many Unix systems to ensure correct packet interpretation. Additionally, authentication mismatches arose from variations in User Authentication Module (UAM) support; for instance, non-Apple servers might not fully replicate Macintosh-specific mechanisms like guest access or password hashing, leading to failures or gaps in mixed setups.

Legacy

End of Native Support

Apple discontinued native support for AppleTalk starting after Mac OS X 10.5 Leopard in 2007, with full removal occurring in Mac OS X 10.6 Snow Leopard released in 2009. This excision eliminated the protocol's integration into the operating system's networking stack, rendering it inaccessible without third-party interventions that were no longer viable in subsequent versions. The shift marked the end of AppleTalk's role in core macOS functionality, as the company prioritized TCP/IP-based alternatives to align with broader standards. The discontinuation had significant ecosystem impacts, particularly on hardware. Legacy AppleTalk-compatible printers, such as models, and routers designed for AppleTalk became increasingly obsolete following the end of software support, with many users reporting compatibility issues by the early . These devices, once central to Macintosh workgroups, could no longer integrate with modern networks, forcing organizations to replace them with IP-enabled alternatives to maintain functionality. Security concerns further underscored the protocol's obsolescence. AppleTalk inherently lacked built-in , exposing data transmissions to and on shared networks. Additionally, its design vulnerabilities allowed for spoofing attacks, where attackers could forge packets, such as ZIP replies, to manipulate name resolution tables and disrupt or hijack communications. To address these challenges, users and administrators pursued migration paths to more secure, IP-based protocols. Apple recommended transitioning to SMB (Server Message Block) and AFP (Apple Filing Protocol) over TCP/IP, which provided compatible and printing without AppleTalk's dependencies. Open-source implementations like enabled seamless cross-platform interoperability, allowing systems and Windows environments to emulate AFP and SMB services during the shift.

Modern Emulations and Uses

Netatalk remains a key open-source implementation for emulating AppleTalk-compatible in modern environments. As of September 2025, Netatalk version 4.3.2 provides an AFP fileserver that supports (AFP) up to version 3.4 over TCP/IP, enabling compatibility with legacy Macintosh systems on operating systems such as , BSD, and macOS. This allows users to serve files and printers to and older clients without native AppleTalk hardware, bridging the gap for data migration and remote access in heterogeneous networks. Vintage computing enthusiasts in Macintosh restoration communities increasingly rely on hardware adapters like the TashTalk USB-to-LocalTalk interface to revive AppleTalk networks. The TashTalk, a single-chip solution using a Microchip PIC12F1840 , connects legacy ports via USB serial to contemporary systems, enabling file and printer sharing over emulated AppleTalk stacks such as multitalk. These adapters, often paired with open-source drivers like tashtalkd, allow restoration projects to transfer data from 1980s-era Macs without invasive modifications, preserving original hardware integrity. AppleTalk finds niche applications in museums and retro gaming networks, where it powers multiplayer experiences on original hardware. For instance, the RetroWeb Vintage Computer Museum demonstrates LocalTalk-based like Bolo and Spectre, connecting multiple Macintosh systems for real-time play that highlights the protocol's low-latency design. In these settings, emulated networks simulate office environments, educating visitors on early personal computing . With no official support from Apple—particularly after the deprecation of AFP client support in macOS 15.5, with removal planned for a future version as of November 2025—community efforts provide patches for tools like Netatalk, addressing vulnerabilities in older protocol implementations to maintain safe operation in isolated retro setups.

References

Add your contribution
Related Hubs
Contribute something
User Avatar
No comments yet.