AppleTalk


AppleTalk is a proprietary suite of protocols developed by Apple Inc for networking computers. It was included in the original Macintosh (1984) and is now deprecated by Apple in favor of TCP/IP networking. Implementing file transfer, printer sharing, and mail service among Apple systems using the Local Talk interface built into Apple hardware, these were the main tasks of AppleTalk developed by Apple Computer. AppleTalk ports to other network media such as Ethernet with the aod of LocalTalk to Ethernet bridges or by Ethernet add-in boards for Apple machines. In addition to many third-party applications, internetwork routing, transaction and data stream service, naming service, and comprehensive file and print sharing are some of the provisions of this multi-layered protocol. With the introduction of AppleTalk Phase 2 in 1989, the addressing capability of AppleTalk networks were extended and thereby provided compliance with the IEEE 802 standard. Some other additions present in AppleTalk Phase 2 were the range of available network layer addresses and the use of the IEEE 802.2 Logical Link Control (LLC) protocol at the Data Link Layer.

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 three 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 ProtocolNBP) was a dynamic Domain Name System (DNS) system, mapping network addresses to user-readable names. Although systems similar to AARP existed in other systems, Banyan VINES ( for instance, nothing like NBP has existed until recently.

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 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.

One problem for AppleTalk is it was intended to be part of a project known as Macintosh Office,1986. Despite this, the LaserWriter included built-in AppleTalk. Apple released a file and print server known as the AppleShare File and Print Servers. which would consist of a host machine providing routing, printer sharing and file sharing. However this project was canceled in

Today AppleTalk support is provided for backward compatibility in many products, but the default networking on the Mac is TCP/IP. Starting with Mac OS X v10.2, Bonjour (originally named Rendezvous) provides similar discovery and configuration services for TCP/IP-based networks. Bonjour is Apple's implementation of ZeroConf, which was written specifically to bring NBP's ease-of-use to the TCP/IP world.

An AppleTalk address was a 4-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 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 enough to minimize the chance of conflicts.

Note that, because a name 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 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, where a name translates only to a machine 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.)

AppleTalk, as specified by Apple, is wired using relatively inexpensive shielded, twisted-pair cable and Apple's connection boxes. One box is required per device; in the case of the Mac, the box plugs into the serial printer port in the back of the Mac using an attached drop cable. A trunk cable segment from one node on the network plugs into one port on the connection box, and another cable segment leading to the next node in the network plugs into the other port on the box.

One of the advantages of AppleTalk relates to the design of these connection boxes. The boxes are designed so that the continuity of the trunk cable and the network is maintained even if a device is disconnected from the network by unplugging it from the connection box. (Unplugging the trunk from the connection box does disrupt the integrity of the network, however.) The physical layout of an AppleTalk network can therefore be designed by locating the connection boxes where desired without worrying if a device will be initially connected to each one of the boxes. Additional devices can be added to the network at any time simply by plugging them into the boxes.

There are alternatives to using Apple's connection boxes. Farallon Computing markets their PhoneNET system, which fully supports the AppleTalk protocols. In the case of PhoneNET, the physical transmission medium is ordinary telephone wire, allowing the user to use the in-house telephone wiring for his network. PhoneNET uses the two of the unused wires found in a normal telephone installation, supporting both a telephone and a Mac connected to the same telephone wall box. In addition, PhoneNET links are capable of supporting 3000-foot distances between nodes. Farallon has a series of devices (repeaters, Star Controller) for extending the network.

With the recent announcement of DuPont's system for AppleTalk, users can also use fiber optic connections for an AppleTalk network. A concentrator is also available for constructing star networks. Two advantages of the fiber optics system are its immunity to EMI-RFI interference and improved data security; nodes may be a maximum of 4900 feet apart.

AppleTalk Protocols and the OSI Model

The Physical Layer has the responsibility of bit encoding/decoding, synchronization, signal transmission/ reception and carrier sensing. As mentioned previously, the Serial Communications Control chip in the Mac takes care of the AppleTalk port, which happens to be the printer port on current Macs. As long as connection modules conform to the signal descriptions of the Physical Layer, any transmission medium can be used for the actual network.

The AppleTalk Link Access Protocol (ALAP) must be common to all systems on the network bus and handles the node-to-node delivery of data between devices connected to a single AppleTalk network. ALAP determines when the bus is free, encapsulates the data in frames, sends its data, and recognizes when data should be received. ALAP is also responsible for assigning node numbers to each station on a network. The ALAP software assigns a random node number when the Mac is booted and keeps that number as long as it does not conflict with a previously assigned node number (if it does conflict, ALAP tries again).

The Link Access Protocol uses a method called CSMA/CA, or carrier-sense multiple access with collision avoidance, for access control. Carrier sense means that a sending node first listens to the network to hear if any other node is using the bus and defers to the ongoing transmission. Collision avoidance means that the protocol attempts to minimize collisions between transmitted data packets. In AppleTalk CSMA/CA, all transmitters wait until the bus is idle for a minimum time plus a random amount of added time before transmitting (or retransmitting after a collision).

While the ALAP protocol provides delivery of data over a single AppleTalk network, the Datagram Delivery Protocol (DDP) extends this mechanism to include a group of interconnected AppleTalk networks, known as an internet. An internet can be formed, for example, by using a bridge between two, or more, AppleTalk networks.

AppleTalk's address header (a part of each data packet) is used for identification of a process on the network and consists of a socket number, node number, and network number. A socket is a communication endpoint within a node on the network. Sockets belong to processes or functions that are implemented within software in the node. One Mac may have several AppleTalk connections open at one time, so the node number is not enough to identify a network address. In addition, node numbers are unique only within a single physical network, so DDP requires that each network be assigned a network number. The Datagram Delivery Protocol takes care of assigning socket numbers, as well as node numbers and network numbers, to provide a unique identification for every process occurring on the AppleTalk network.

As we move on to the Transport Layer, several protocols exist to add different types of functionality to the underlying services. The Routing Table Maintenance Protocol (RTMP) allows bridges and internet routers to dynamically discover routes to the different AppleTalk networks in an internet. The routing tables pair network numbers with the local node number of the bridge through which the shortest path to that net exists.

The AppleTalk Transaction Protocol, or ATP, is part of the Transport Layer and is responsible for controlling the transactions (flow of data) between requestor and responder sockets. This transaction-oriented protocol can be contrasted to other types of transport layers which support a two-way link between clients that can act as though they had an error-free hardwired link between them.

The basic function of the Name Binding Protocol (NBP) is the translation of a character string name into the internet address of the corresponding client. A key feature of the network is that most objects are accessible by name rather than by address (better for the user). NBP also introduces the concept of a zone, which is an arbitrary subset of networks in an internet where each network is in one and only one zone. The concept of zones is provided to assist the establishment of departmental or other user-understandable grouping of the entities of the internet. AppleTalk names consist of three fields: the object name (e.g., Dave), the type name (e.g., printer), and the zone name (e.g., Bldg. 1).

The Echo Protocol (EP) is a simple protocol that allows any node to send data to any other node on an AppleTalk internet and receive an echoed copy of that data in return. The Echo Protocol is mainly meant for network maintenance functions.

The specifications for the AppleTalk Data Stream Protocol (ADSP) have not yet been published (Inside AppleTalk, current version dated July 14, 1986). ADSP is designed to provide byte-stream data transmission in a full duplex mode between any two sockets on an AppleTalk internet. The Zone Information Protocol (ZIP) is used to maintain an internet-wide mapping of networks to zone names. Most of ZIP's services are transparent to the normal (non-bridge) node; the majority of ZIP is implemented in the bridges of an internet. ZIP is used by the Name Binding Protocol to determine which networks belong to a given zone.

In the Session Layer, the AppleTalk Session Protocol (ASP) is a general protocol designed to interact with ATP to provide for establishing, maintaining and closing sessions. Central to ASP is the concept of a session; two network entities, one in a workstations and the other in a server, can set up an ASP session between themselves (identified by a unique sessions identifier). ASP is an asymetric protocol in that the workstation initiates the session connection and issues sequences of commands, to which the server responds; the server may not send commands to the workstation.

The specifications for the AppleTalk Filing Protocol (AFP) have not been generally publicized. However, AFP has been finalized with the introduction of the AppleShare file server software from Apple, which uses AFP. AFP is a presentation layer protocol designed to control access to remote file systems.

At this time, third-party products are available for connecting Macintoshes and IBM PCs to AppleTalk, as well as using gateways for access to EtherNet as a backbone network to larger computers. Future articles in Connections will deal with these products and the diversity of products (file servers, spoolers, etc.) that can take advantage of such connections. For additional information, see MacTutor, Vol. 1, Numbers 10 and 11 for articles by Bob Denny & Alan Wootton.