Difference between revisions of "AppleTalk"

 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
AppleTalk is a suite of network protocols introduced by [[Apple Computer]] in 1985.
 
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.
 +
 +
The AppleTalk networking system includes a number of protocols arranged in layers, which are collectively referred to as the AppleTalk protocol stack. Each of these protocols provides a set of functions and services that a protocol above it can use and build upon. A higher-level protocol is considered a client of the protocol that is below it in the AppleTalk protocol stack.
 +
 +
=Basic Concepts=
 +
A networking system, such as AppleTalk, consists of hardware and software. Hardware on an AppleTalk network includes physical devices such as Macintosh personal computer workstations, printers, and Macintosh computers acting as file servers, print servers, and routers; these devices are all referred to as nodes on the network.
 +
 +
AppleTalk interconnects these nodes through transmission paths that include both software and hardware components. The software that governs the transfer of data across a computer network is commonly designed using a layered architecture or model.
 +
 +
For each layer of a model, protocols exist that specify how the networking software
 +
is to implement the functions which that layer provides and interact with the layer above and below it. A protocol is a formalized set of procedural rules for the exchange of information and the interactions between the network’s interconnected nodes. A network software developer implements these rules in programs that carry out the functions specified by the protocol. AppleTalk consists of a number of protocols, many of which are implemented in software programs called drivers.
 +
 +
There are many ways to characterize networks. One characteristic of a network is whether it is connection-oriented or connectionless. (A protocol can also be considered connectionless or connection-oriented.) A connection-oriented network is one in which two nodes on the network, such as computers, that want to communicate must go through a connection-establishment process, which is called a handshake. This involves the exchange of predetermined signals between the nodes in which each end identifies itself to the other. Once a connection is established, the communicating applications or processes on the nodes at either end can send and receive streams of data.
 +
 +
A connectionless network is one in which two nodes that want to communicate do so by going directly into a data-transfer state without first setting up a connection. A connectionless network is also called a datagram or packet-oriented network because data is sent as discrete packets; a packet is a small unit of data that is sent across a network. This means that each packet must carry the full addressing information required to deliver the data from its source node to its destination node. A packet includes a header portion that holds the addressing information along with some other information, such as a checksum value that can be used to verify the integrity of the data delivered, and a data portion that holds the message text. The terms packet and datagram are synonymous.
 +
 +
A connection-oriented network is analogous to a telephone system. The party who initiates the call knows whether or not the connection is made because someone at the other end of the line either answers or not. A connectionless network is analogous to electronic mail. A person sends a mail message expecting it will be delivered to its destination. Although the mail usually arrives safely, the sender doesn’t know this unless the recipient initiates a response affirming it.
 +
 +
There are trade-offs between the two types of networks: a connection-oriented network provides more function, but at a cost. A connectionless network is less costly in terms of overhead, but it offers limited support.
 +
 +
A connection-oriented network ensures reliable delivery of data, which includes error checking and recovery from error or packet loss. Connection-oriented networks provide support for sessions. In AppleTalk networking, a session is a logical (as opposed to physical) connection between two entities on an internet. The two communicating parties can send streams of data across a session, rather than being limited to sending the data as individual packets. When data is sent as a stream, the networking system provides flow control to manage the data that makes up the stream. A session must be set up at the beginning and broken down at the end. All of these services entail overhead.
 +
 +
There is no connection setup or breakdown required for a connectionless network, and no session is established. A connectionless network offers best-effort delivery only. Best-effort delivery means that the network attempts to deliver any packets that meet certain requirements, such as containing a valid destination address, but the network does not inform the sender when it is unable to deliver the packet, nor does it attempt to recover from error conditions and packet loss. A connectionless network involves less overhead because it does not provide network-wide acknowledgments, flow control, or error recovery.
 +
 +
The terms connectionless and connection-oriented can also be applied to individual protocols that make up the networking software, as well as to the entire network system itself. AppleTalk includes protocols that provide connection-oriented services, although, as a whole, AppleTalk is considered a connectionless network because data is delivered across an AppleTalk network or internet as discrete packets. One of the AppleTalk protocols, the Datagram Delivery Protocol (DDP), implements packet delivery. However, the AppleTalk Data Stream Protocol (ADSP) and the AppleTalk Transaction Protocol (ATP) provide connection-oriented services, such as session establishment and reliable delivery of data. The AppleTalk protocols that provide connection-oriented services are built on top of the datagram services that DDP provides.
 +
 +
The connection-oriented AppleTalk protocols support the following two kinds of sessions:
 +
* symmetrical. This session is also referred to as a peer-to-peer session. It is one in which both ends have equal control over the communication. Both ends can send and receive data at the same time and initiate or terminate the session. This type of session offers more capability and is more commonly used than an asymmetrical session.
 +
* asymmetrical. In this type of session, only one end of the connection can control the communication. One end of the connection makes a request to which the other end can only respond. This type of session is best suited to a transaction in which a small amount of data is transferred from one side to the other.
 +
 +
When both ends can send and receive data, the process is called a full-duplex dialog. When both sides must alternate between sending and receiving data, the process is called a half-duplex dialog.
 +
 +
=AppleTalk Layers=
 +
[[File:Appletalk-diagram.png]]
 +
 +
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.
 +
 +
===Application Layer===
 +
The highest layer of the OSI model is the application layer. This layer allows for the development of application software. Software written at this layer benefits from the services of all the underlying layers. There is no AppleTalk protocol that maps directly to this layer, although some of the functions of the AppleTalk Filing Protocol (AFP) fulfill this layer.
 +
 +
===Presentation Layer===
 +
The presentation layer assumes that an end-to-end path or connection already exists across the network between the two communicating parties, and it is concerned with
 +
the representation of data values for transfer, or the transfer syntax. In the OSI model, the AppleTalk Filing Protocol (AFP) spans the presentation and application layers. AFP provides an interface between an application and a file server. It uses the services of ASP, which, in turn, is a client of ATP.
 +
 +
AFP allows a workstation on an AppleTalk network to access files on an AFP file server, such as an AppleShare file server. When the user opens a session with an AppleShare file server over an internet, it appears to any application running on the workstation that uses File Manager routines as if the files on the file server were located on a disk drive connected to the workstation.
 +
 +
===Session Layer===
 +
The session layer serves as an interface into the transport layer, which is below it. The session layer allows for session establishment, which is the process of setting up a connection over which a dialog between two applications or processes can occur. Some of the functions that the session layer provides for are flow control, establishment of synchronization points for checks and recovery for file transfer, full-duplex and half-duplex dialogs between processes, and aborts and restarts.
 +
 +
The AppleTalk protocols implemented at the session layer are
 +
* the AppleTalk Data Stream Protocol (ADSP), which provides its own stream-based transport layer services that allow for full-duplex dialogs
 +
* the AppleTalk Session Protocol (ASP), which uses the transaction-based services of ATP to transport workstation commands to servers
 +
* the Zone Information Protocol (ZIP), which provides applications and processes with access to zone names. Each node on a network belongs to a zone.
 +
 +
===Transport Layer===
 +
The transport layer isolates some of the physical and functional aspects of a packet network from the upper three layers. It provides for end-to-end accountability, ensuring that all packets of data sent across the network are received and in the correct order. This is the process that is referred to as reliable delivery of data, and it involves providing
 +
a means of identifying packet loss and supplying a retransmission mechanism. The transport layer also provides connection and session management services.
 +
 +
The following AppleTalk protocols are implemented at the transport layer:
 +
* Name-Binding Protocol (NBP)
 +
* AppleTalk Transaction Protocol (ATP)
 +
* AppleTalk Echo Protocol (AEP)
 +
* Routing Table Maintenance Protocol (RTMP)
 +
 +
In addition to these transport layer protocols, the AppleTalk Data Stream Protocol (ADSP) includes functions that span both the transport and the session layers. ADSP provides for reliable delivery of data, and in that capacity it covers the transport layer requirements.
 +
 +
===Network Layer===
 +
The network layer specifies the network routing of data packets between nodes and the communications between networks, which is referred to as internetworking. The Datagram Delivery Protocol (DDP) is the AppleTalk protocol implemented at the network layer. DDP is a connectionless datagram protocol providing best-effort delivery. This means that DDP transfers data as discrete packets and that DDP does not include support to ensure that all packets sent 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 this kind of reliability.
 +
 +
===Data-Link and Physical Layers===
 +
The data-link layer and the physical layer provide for connectivity. The communication between networked systems can be via a physical cable made of wire or fiber optic, or it can be via infrared or microwave transmission. In addition to these, the hardware can include a network interface controller (NIC), if one is used. The hardware or transport media and the device drivers for the hardware comprise the physical layer. LocalTalk, token ring, Ethernet, and Fiber Distributed Data Interface (FDDI) are examples of types of networking hardware that AppleTalk supports.
 +
 +
The physical hardware provides nodes on a network with a shared data transmission medium called a link. The data-link layer includes a protocol that specifies the physical aspects of the data link and the link-access protocol, which handles the logistics of sending the data packet over the transport medium. AppleTalk is designed to be data-link independent, allowing for the use of various types of hardware and their link-access protocols.
 +
 +
=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.
 +
 +
The AppleTalk Echo Protocol (AEP) exists on every node as a DDP client process called the AEP Echoer. The AEP Echoer uses a special socket to listen for packets sent to it from socket clients on other nodes. When it receives such a packet, the AEP Echoer returns it directly to the sender. A socket client can send a packet to the AEP Echoer on another node to determine if that node can be accessed over the internet and to determine how long it takes a packet to reach that node. There is no application programming interface to AEP. A socket client can send packets to an AEP Echoer socket on another node from a DDP socket, but it cannot access the AEP implementation directly.
 +
 +
===AFP (AppleTalk Filing Protocol)===
 +
A presentation/application-layer protocol used by applications to communicate with the network.
 +
 +
AFP is a remote filing system protocol that provides a workstation on an AppleTalk network with access to a server that is implemented according to the AFP file system structure. AFP also includes user authentication support and an access control mechanism that supports volume-level and folder-level access rights. AppleShare is the AFP file server that is implemented on Macintosh computers.
 +
 +
Through the native file system and AFP, your application running on one node can manipulate files on another node using the same file system commands on the remote node that it uses to manipulate files on its own node. You can use AFP commands to
 +
 +
* obtain and modify information about the file server and other parts of the file
 +
* system structure
 +
* create and delete files and directories
 +
* read files or write to them
 +
* retrieve and store information within individual files
 +
 +
AFP is implemented by the .XPP driver. The .XPP driver maps an AFP function call from the client workstation into one or more ASP function calls.
 +
 +
===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.
 +
 +
The AppleTalk Session Protocol (ASP) allows one or more ASP workstation applications or processes to establish a session with the same server at the same time. To track communication from various sessions, ASP assigns a unique session identifier that is referred to as a session reference number to each session. ASP is an asymmetrical protocol that provides one set of services to the workstation and a different set of services to the server. The ASP workstation application always initiates the process of setting up a session and the communication across a session, and the ASP server replies to commands that it receives. (ASP is built on top of ATP, and it follows the transaction model of ATP while adding session-connection services.) The only case in which an ASP server can initiate communication is through the ASP attention mechanism.
 +
 +
===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.
 +
 +
The Routing Table Maintenance Protocol (RTMP) provides AppleTalk internet routers with a means of managing routing tables used to determine how to forward a datagram from one socket to another across an internet based on the datagram's destination network number. The RTMP implementation on a router maintains a table called a routing table that specifies the shortest path to each possible destination network number. The AppleTalk protocol software in a workstation (that is, a node other than a router) contains only a small part of RTMP, called the RTMP stub, that DDP uses to determine the network number (or range of network numbers) of the network cable to which the node is connected and to determine the network number and node ID of one router on that network cable.
 +
 +
===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
 +
 +
The Phase 2 versions of the AppleTalk drivers are included as part of system software version 7.0 and later. They can be installed on any Macintosh computer other than the Macintosh 128K, Macintosh 512K, Macintosh 512K enhanced, and Macintosh XL computers.
 +
 +
=Documentation=
 +
* [[AppleTalk Update-Based Routing Protocol: Enhanced AppleTalk Routing]]
 +
* [[AURP Management Information Base]]
 +
* [[AppleTalk Wide Area Developer's Toolkit]]
 +
* [[AppleTalk Filing Protocol]]
 +
* [[AppleTalk Filing Protocol Version 2.1 and 2.2]]
 +
* [[AppleShare 3.0 Developer's Kit: AppleTalk Filing Protocol Version 2.1]]
 +
* [[Inside AppleTalk]]
 +
* [[Introduction to AppleTalk]]
 +
* [[AppleTalk Utilities]]
  
 
=Related Articles=
 
=Related Articles=
Line 7: Line 209:
 
* [[Farallon PhoneNET]]
 
* [[Farallon PhoneNET]]
 
* [[AppleShare]]
 
* [[AppleShare]]
 +
 +
=See Also=
 +
* [[Apple Computer]]
  
 
[[Category:Apple]][[Category:Networking]]
 
[[Category:Apple]][[Category:Networking]]
 +
[[Category:1985]]

Latest revision as of 15:46, 8 November 2022

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.

The AppleTalk networking system includes a number of protocols arranged in layers, which are collectively referred to as the AppleTalk protocol stack. Each of these protocols provides a set of functions and services that a protocol above it can use and build upon. A higher-level protocol is considered a client of the protocol that is below it in the AppleTalk protocol stack.

Basic Concepts

A networking system, such as AppleTalk, consists of hardware and software. Hardware on an AppleTalk network includes physical devices such as Macintosh personal computer workstations, printers, and Macintosh computers acting as file servers, print servers, and routers; these devices are all referred to as nodes on the network.

AppleTalk interconnects these nodes through transmission paths that include both software and hardware components. The software that governs the transfer of data across a computer network is commonly designed using a layered architecture or model.

For each layer of a model, protocols exist that specify how the networking software is to implement the functions which that layer provides and interact with the layer above and below it. A protocol is a formalized set of procedural rules for the exchange of information and the interactions between the network’s interconnected nodes. A network software developer implements these rules in programs that carry out the functions specified by the protocol. AppleTalk consists of a number of protocols, many of which are implemented in software programs called drivers.

There are many ways to characterize networks. One characteristic of a network is whether it is connection-oriented or connectionless. (A protocol can also be considered connectionless or connection-oriented.) A connection-oriented network is one in which two nodes on the network, such as computers, that want to communicate must go through a connection-establishment process, which is called a handshake. This involves the exchange of predetermined signals between the nodes in which each end identifies itself to the other. Once a connection is established, the communicating applications or processes on the nodes at either end can send and receive streams of data.

A connectionless network is one in which two nodes that want to communicate do so by going directly into a data-transfer state without first setting up a connection. A connectionless network is also called a datagram or packet-oriented network because data is sent as discrete packets; a packet is a small unit of data that is sent across a network. This means that each packet must carry the full addressing information required to deliver the data from its source node to its destination node. A packet includes a header portion that holds the addressing information along with some other information, such as a checksum value that can be used to verify the integrity of the data delivered, and a data portion that holds the message text. The terms packet and datagram are synonymous.

A connection-oriented network is analogous to a telephone system. The party who initiates the call knows whether or not the connection is made because someone at the other end of the line either answers or not. A connectionless network is analogous to electronic mail. A person sends a mail message expecting it will be delivered to its destination. Although the mail usually arrives safely, the sender doesn’t know this unless the recipient initiates a response affirming it.

There are trade-offs between the two types of networks: a connection-oriented network provides more function, but at a cost. A connectionless network is less costly in terms of overhead, but it offers limited support.

A connection-oriented network ensures reliable delivery of data, which includes error checking and recovery from error or packet loss. Connection-oriented networks provide support for sessions. In AppleTalk networking, a session is a logical (as opposed to physical) connection between two entities on an internet. The two communicating parties can send streams of data across a session, rather than being limited to sending the data as individual packets. When data is sent as a stream, the networking system provides flow control to manage the data that makes up the stream. A session must be set up at the beginning and broken down at the end. All of these services entail overhead.

There is no connection setup or breakdown required for a connectionless network, and no session is established. A connectionless network offers best-effort delivery only. Best-effort delivery means that the network attempts to deliver any packets that meet certain requirements, such as containing a valid destination address, but the network does not inform the sender when it is unable to deliver the packet, nor does it attempt to recover from error conditions and packet loss. A connectionless network involves less overhead because it does not provide network-wide acknowledgments, flow control, or error recovery.

The terms connectionless and connection-oriented can also be applied to individual protocols that make up the networking software, as well as to the entire network system itself. AppleTalk includes protocols that provide connection-oriented services, although, as a whole, AppleTalk is considered a connectionless network because data is delivered across an AppleTalk network or internet as discrete packets. One of the AppleTalk protocols, the Datagram Delivery Protocol (DDP), implements packet delivery. However, the AppleTalk Data Stream Protocol (ADSP) and the AppleTalk Transaction Protocol (ATP) provide connection-oriented services, such as session establishment and reliable delivery of data. The AppleTalk protocols that provide connection-oriented services are built on top of the datagram services that DDP provides.

The connection-oriented AppleTalk protocols support the following two kinds of sessions:

  • symmetrical. This session is also referred to as a peer-to-peer session. It is one in which both ends have equal control over the communication. Both ends can send and receive data at the same time and initiate or terminate the session. This type of session offers more capability and is more commonly used than an asymmetrical session.
  • asymmetrical. In this type of session, only one end of the connection can control the communication. One end of the connection makes a request to which the other end can only respond. This type of session is best suited to a transaction in which a small amount of data is transferred from one side to the other.

When both ends can send and receive data, the process is called a full-duplex dialog. When both sides must alternate between sending and receiving data, the process is called a half-duplex dialog.

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.

Application Layer

The highest layer of the OSI model is the application layer. This layer allows for the development of application software. Software written at this layer benefits from the services of all the underlying layers. There is no AppleTalk protocol that maps directly to this layer, although some of the functions of the AppleTalk Filing Protocol (AFP) fulfill this layer.

Presentation Layer

The presentation layer assumes that an end-to-end path or connection already exists across the network between the two communicating parties, and it is concerned with the representation of data values for transfer, or the transfer syntax. In the OSI model, the AppleTalk Filing Protocol (AFP) spans the presentation and application layers. AFP provides an interface between an application and a file server. It uses the services of ASP, which, in turn, is a client of ATP.

AFP allows a workstation on an AppleTalk network to access files on an AFP file server, such as an AppleShare file server. When the user opens a session with an AppleShare file server over an internet, it appears to any application running on the workstation that uses File Manager routines as if the files on the file server were located on a disk drive connected to the workstation.

Session Layer

The session layer serves as an interface into the transport layer, which is below it. The session layer allows for session establishment, which is the process of setting up a connection over which a dialog between two applications or processes can occur. Some of the functions that the session layer provides for are flow control, establishment of synchronization points for checks and recovery for file transfer, full-duplex and half-duplex dialogs between processes, and aborts and restarts.

The AppleTalk protocols implemented at the session layer are

  • the AppleTalk Data Stream Protocol (ADSP), which provides its own stream-based transport layer services that allow for full-duplex dialogs
  • the AppleTalk Session Protocol (ASP), which uses the transaction-based services of ATP to transport workstation commands to servers
  • the Zone Information Protocol (ZIP), which provides applications and processes with access to zone names. Each node on a network belongs to a zone.

Transport Layer

The transport layer isolates some of the physical and functional aspects of a packet network from the upper three layers. It provides for end-to-end accountability, ensuring that all packets of data sent across the network are received and in the correct order. This is the process that is referred to as reliable delivery of data, and it involves providing a means of identifying packet loss and supplying a retransmission mechanism. The transport layer also provides connection and session management services.

The following AppleTalk protocols are implemented at the transport layer:

  • Name-Binding Protocol (NBP)
  • AppleTalk Transaction Protocol (ATP)
  • AppleTalk Echo Protocol (AEP)
  • Routing Table Maintenance Protocol (RTMP)

In addition to these transport layer protocols, the AppleTalk Data Stream Protocol (ADSP) includes functions that span both the transport and the session layers. ADSP provides for reliable delivery of data, and in that capacity it covers the transport layer requirements.

Network Layer

The network layer specifies the network routing of data packets between nodes and the communications between networks, which is referred to as internetworking. The Datagram Delivery Protocol (DDP) is the AppleTalk protocol implemented at the network layer. DDP is a connectionless datagram protocol providing best-effort delivery. This means that DDP transfers data as discrete packets and that DDP does not include support to ensure that all packets sent 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 this kind of reliability.

Data-Link and Physical Layers

The data-link layer and the physical layer provide for connectivity. The communication between networked systems can be via a physical cable made of wire or fiber optic, or it can be via infrared or microwave transmission. In addition to these, the hardware can include a network interface controller (NIC), if one is used. The hardware or transport media and the device drivers for the hardware comprise the physical layer. LocalTalk, token ring, Ethernet, and Fiber Distributed Data Interface (FDDI) are examples of types of networking hardware that AppleTalk supports.

The physical hardware provides nodes on a network with a shared data transmission medium called a link. The data-link layer includes a protocol that specifies the physical aspects of the data link and the link-access protocol, which handles the logistics of sending the data packet over the transport medium. AppleTalk is designed to be data-link independent, allowing for the use of various types of hardware and their link-access protocols.

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.

The AppleTalk Echo Protocol (AEP) exists on every node as a DDP client process called the AEP Echoer. The AEP Echoer uses a special socket to listen for packets sent to it from socket clients on other nodes. When it receives such a packet, the AEP Echoer returns it directly to the sender. A socket client can send a packet to the AEP Echoer on another node to determine if that node can be accessed over the internet and to determine how long it takes a packet to reach that node. There is no application programming interface to AEP. A socket client can send packets to an AEP Echoer socket on another node from a DDP socket, but it cannot access the AEP implementation directly.

AFP (AppleTalk Filing Protocol)

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

AFP is a remote filing system protocol that provides a workstation on an AppleTalk network with access to a server that is implemented according to the AFP file system structure. AFP also includes user authentication support and an access control mechanism that supports volume-level and folder-level access rights. AppleShare is the AFP file server that is implemented on Macintosh computers.

Through the native file system and AFP, your application running on one node can manipulate files on another node using the same file system commands on the remote node that it uses to manipulate files on its own node. You can use AFP commands to

  • obtain and modify information about the file server and other parts of the file
  • system structure
  • create and delete files and directories
  • read files or write to them
  • retrieve and store information within individual files

AFP is implemented by the .XPP driver. The .XPP driver maps an AFP function call from the client workstation into one or more ASP function calls.

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.

The AppleTalk Session Protocol (ASP) allows one or more ASP workstation applications or processes to establish a session with the same server at the same time. To track communication from various sessions, ASP assigns a unique session identifier that is referred to as a session reference number to each session. ASP is an asymmetrical protocol that provides one set of services to the workstation and a different set of services to the server. The ASP workstation application always initiates the process of setting up a session and the communication across a session, and the ASP server replies to commands that it receives. (ASP is built on top of ATP, and it follows the transaction model of ATP while adding session-connection services.) The only case in which an ASP server can initiate communication is through the ASP attention mechanism.

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.

The Routing Table Maintenance Protocol (RTMP) provides AppleTalk internet routers with a means of managing routing tables used to determine how to forward a datagram from one socket to another across an internet based on the datagram's destination network number. The RTMP implementation on a router maintains a table called a routing table that specifies the shortest path to each possible destination network number. The AppleTalk protocol software in a workstation (that is, a node other than a router) contains only a small part of RTMP, called the RTMP stub, that DDP uses to determine the network number (or range of network numbers) of the network cable to which the node is connected and to determine the network number and node ID of one router on that network cable.

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

The Phase 2 versions of the AppleTalk drivers are included as part of system software version 7.0 and later. They can be installed on any Macintosh computer other than the Macintosh 128K, Macintosh 512K, Macintosh 512K enhanced, and Macintosh XL computers.

Documentation

Related Articles

See Also