Please consider a donation to the Higher Intellect project. See or the Donate to Higher Intellect page for more info.


From Higher Intellect Vintage Wiki
Jump to navigation Jump to search

AppleTalk is a suite of network protocols introduced by Apple Computer in 1985.

AppleTalk is Apple’s proprietary protocol suite for Macintosh network communications. It provides a multilayer, peer-to-peer architecture that uses services built into the operating system. This gives every Macintosh networking capabilities. AppleTalk can run under any of several network operating systems, including Apple’s AppleShare, Novell’s NetWare for Macintosh, and Sun Microsystems’ TOPS. AppleTalk was developed in the mid-1980s with the goal of providing a simple, portable, easy-to-use, and open networking environment. To access such a network, a user just needs to “plug in, log in, and join in.” A newer version, Phase 2, was released in 1989. This version provided some new capabilities and extended others.

AppleTalk Layers


All AppleTalk networks use the DDP (Datagram Delivery Protocol) at the network layer, regardless of the architecture operating at the data-link layer. This protocol makes a best effort at packet delivery, but delivery is not guaranteed. Note also the AARP (AppleTalk Address Resolution Protocol) at this layer. The AARP maps AppleTalk (network) addresses to Ethernet or Token Ring (physical) addresses.

For reliable packet delivery, the ADSP (AppleTalk Data Stream Protocol) and ATP (AppleTalk Transaction Protocol) are available. Each of these protocols is appropriate under different conditions. The NBP (Name Binding Protocol) and ZIP (Zone Information Protocol) help make addressing easier. NBP associates easy-to-remember names (used by users) with the appropriate address. ZIP is used mainly on larger networks or internetworks, which are more likely to be divided into zones. A zone is a logical grouping of nodes that together make up a subnetwork. The concept of a zone was introduced to allow for larger networks with more than 255 nodes, and also to make addressing and routing tasks easier. Applications access an AppleTalk network through the AFP (AppleTalk Filing Protocol); they access printer services by shipping PostScript files through the PAP (Printer Access Protocol). A few protocols make use of services from more than one lower-level protocol. For example, ZIP relies on ATP and DDP services.

AppleTalk Protocol Suite

AARP (AppleTalk Address Resolution Protocol)

A network-layer protocol that maps AppleTalk (network) addresses to physical addresses.

ADSP (AppleTalk Data Stream Protocol)

A session-layer protocol that allows two nodes to establish a reliable connection through which data can be transmitted.

The AppleTalk Data Stream Protocol (ADSP) is a connection-oriented transactionless protocol that supports sessions over which applications can exchange full-duplex streams of data. In addition to ensuring reliable delivery of data, ADSP provides a peer-to-peer connection; that is, both ends of the connection can exert equal control over the exchange of data. ADSP also provides an application with a means of sending expedited attention messages to pass control information between the two communicating applications without disrupting the main flow of data.

ADSP appears to its clients to maintain an open pipeline between the two entities at either end. Either entity can write a stream of bytes to the pipeline or read data bytes from the pipeline. However, because ADSP, like all other higher-level AppleTalk protocols, is a client of DDP, the data is actually sent as packets. This allows ADSP to correct transmission errors in a way that would not be possible for a true data stream connection. Thus, ADSP retains many of the advantages of a transaction-based protocol while providing to its clients a connection-oriented full-duplex data stream.

ADSP also includes features that let you authenticate the identity of the party at the other end of the connection and send encrypted data, which is then decrypted at the other end.

AEP (AppleTalk Echo Protocol)

A transport-layer protocol used to determine whether two nodes are connected and both available.

AFP (AppleTalk Filing Protocol)

A presentation/application-layer protocol used by applications to communicate with the network.

ASDSP (AppleTalk Safe Data Stream Protocol)

A session-layer protocol that is similar to ADSP but that provides additional security against unauthorized use.

ASP (AppleTalk Session Protocol)

A session-layer protocol used to begin and end sessions, send commands from client to server, and send replies from server to client.

ATP (AppleTalk Transaction Protocol)

A transport-layer protocol that can provide reliable packet transport. Packets are transported within the framework of a transaction (an interaction between a requesting and a responding entity program or node).

The AppleTalk Transaction Protocol (ATP) is a connectionless transaction-based protocol that allows two endpoints to execute request-and-response transactions. Either ATP endpoint can request another ATP endpoint to perform an action; the other ATP endpoint then carries out the action and transmits a response reporting the outcome. ATP provides reliable delivery of data by ensuring that data packets are delivered in the correct sequence and by retransmitting any packets that are lost.

ATP is useful if your application sends small amounts of data and can tolerate a minor degree of performance degradation. Games that are based on request-and-response dialogs can make efficient use of ATP.

AURP (AppleTalk Update Routing Protocol)

A transport-layer routing protocol that is similar to RTMP (Routing Table Maintenance Protocol) but that updates the routing table only when a change has been made to the network.

DDP (Datagram Delivery Protocol)

A network-layer protocol that prepares and routes packets for transmission on the network.

The Datagram Delivery Protocol (DDP) is a connectionless transactionless protocol that transfers data between sockets as discrete packets, or datagrams, with each packet carrying its destination socket address. DDP attempts to deliver any packet with a valid address but does not inform the sender when it cannot deliver a packet, and it cannot request the sender to retransmit lost or damaged packets. This level of service is referred to as best-effort delivery. DDP does not include support to ensure that all sent packets are received at the destination or that those packets that are received are in the correct order. Higher-level protocols that use the services of DDP provide for reliable delivery of data. DDP uses whichever link-access protocol the user selects; that is, DDP can send its datagrams through any type of data link and transport media, provided the network hardware is compatible with Open Transport.

For applications such as games that do not require reliable delivery of data or diagnostic tools that retransmit at regular intervals to estimate averages, DDP suffices. DDP involves less overhead and provides faster performance than higher-level protocols.

LAP (Link Access Protocol)

Works at the data-link layer, converting packets from higher layers into the appropriate form for the physical transmission. Each network architecture needs its own LAP.

ELAP (EtherTalk Link Access Protocol)

The link-access protocol used for Ethernet networks.

FLAP (FDDITalk Link Access Protocol)

The link-access protocol used for FDDI networks. LLAP (LocalTalk Link Access Protocol)=== The link-access protocol used for LocalTalk networks.

TLAP (TokenTalk Link Access Protocol)

The link-access protocol used for Token Ring networks.

ARAP (AppleTalk Remote Access Protocol)

A link-access protocol for accessing the network from a remote location over a serial line.

NBP (Name Binding Protocol)

A transport-layer protocol that associates device names with network addresses. If the NBP is successful, this binding process will be completely transparent to the user.

Because AppleTalk assigns node IDs dynamically whenever a node joins the network or is rebooted, a node's address on an AppleTalk network can change from time to time. Applications cannot assume that the physical address of an AppleTalk endpoint is stable, and therefore a reliable mapping of user names to physical addresses is very important for AppleTalk.

The Name-Binding Protocol (NBP) is an AppleTalk protocol that maintains this mapping, and you can access this information through a mapper provider configured for NBP. Because AppleTalk supports dynamic name registration, NBP mapper providers can use the Open Transport name registration and deletion functions as well as the other mapper functions.

In order for you to make the name of your AppleTalk endpoint visible to other applications on a network, you must register its name. There are two ways of doing this, but in either case, Open Transport uses NBP to associate the endpoint's name with its physical address. Once your application is registered, it is a network-visible entity that other applications can locate.

PAP (Printer Access Protocol)

A session-layer protocol for creating a path from the user or application to a printer.

The Printer Access Protocol (PAP) is an asymmetrical connection-oriented transactionless protocol that enables communication between client and server endpoints, allowing multiple connections at both ends. PAP uses ATP packets to transport the data once a connection is open to the server.

PAP is the protocol that ImageWriter and LaserWriter printers in the AppleTalk environment use for direct printing--that is, when a workstation sends a print job directly to a printer connected to the network instead of using a print spooler. Open Transport PAP provides a single protocol implementation for all AppleTalk printers that is integrated into the AppleTalk protocol stack.

RTMP (Routing Table Maintenance Protocol)

A transport-layer routing protocol for moving packets between networks.

ZIP (Zone Information Protocol)

A session-layer protocol used to help find a node; for example, in a large internetwork.

The Zone Information Protocol (ZIP) provides applications and processes with access to zone names. A zone is a logical grouping of nodes in an AppleTalk internet, and each zone is identified by a name. A zone name is typically used to identify an affiliation between a group of nodes, such as a group of nodes belonging to a particular department within an organization.

ZIP maintains the mapping of networks and the zones they include for all networks belonging to an AppleTalk internet:

  • Every node on a network belongs to a zone; a node can belong to only one zone at a time.
  • A nonextended network contains only one zone, and all nodes in that network belong to the same zone.
  • A single extended network can contain nodes that belong to up to 255 different zones. A single zone can include nodes that belong to different extended networks. Each AppleTalk extended network has associated with it a list of the zones to which its nodes can belong. A node joining the network can select its zone from this list.

On each router node in the internet, ZIP builds a zone information table that includes each network's number (extended networks have network number ranges) in association with the network's list of zones. Nodes that are not routers, such as end-user systems, do not contain a zone information table. However, a portion of ZIP is implemented on each nonrouter node so that applications and processes can gain access to their own node's zone name, names of all the zones on their local network, or names of all the zones throughout the internet. The .XPP driver implements the part of ZIP that is on nonrouter nodes, and it provides an interface that allows an application or process to request zone name information in a transaction-based dialog. ZIP uses the transaction-based services of ATP to transport requests from workstation nodes to router nodes.

Networks, Nodes, Zones

In AppleTalk networks, every node has an official numerical address. In addition, a node may be part of a named group of nodes, which somehow belong together.

Each AppleTalk network is assigned a unique network number, and each node in that network is assigned this number. Packets addressed to a node on the network must include the network number. In addition to a network number, each node has a node number that is unique within that network. This is an 8-bit number and can be any value between 1 and 254, inclusive (0 and 255 are reserved as node numbers). However, servers must have node numbers within the range of 128 to 254, and workstations must have numbers in the 1 to 127 range.

A zone is a logical grouping of nodes. By restricting routing or searches to machines in a particular zone, network traffic and work can be reduced considerably. Accessing resources by zones also makes it easier to determine what is available for specific needs. A node may belong to more than one zone at the same time, or not be part of any zone. A zone can cross network boundaries; that is, a zone can consist of parts of two or more different networks or include multiple networks.

Phase 2

Phase 2, an updated version of AppleTalk, was released in 1989. This version provides several improvements over Phase 1, including the following:

  • Allows more than 254 nodes per network
  • Allows a network to be assigned more than one network number
  • Introduced the AppleTalk Internet Router, which allows up to eight AppleTalk networks to be connected

Related Articles