AppleTalk Transaction Protocol(ATP)

 

What is ATP (AppleTalk Transaction Protocol)?

ATP stands for AppleTalk Transaction Protocol. It is a part of a series of networking protocols called the ‘AppleTalk’ developed by Apple Inc. It is a transport layer protocol that lets you transfer small amounts of data across a network. It provides an error-free and reliable means of communication in a client-server setup. It performs most of the transport layer functions like segmentation, packet sequencing, etc.

ATP works on top of an architecture that is similar to a client-server architecture. There is a requester that makes a request to another endpoint which is called a responder. The responder performs the needful and reverts back with a response.





Transaction ID:

The transaction ID is used to associate each request with its corresponding response. It is 16 bits in size. The requester can make multiple requests at any given time. Transaction ID helps ATP to keep track of all the requests made and to ensure that the response delivered for every request is correct. It is carried by the 3rd and the 4th byte of the ATP header.

User Data:

The last 4 bytes of the ATP header are not used by ATP. They are reserved for use by the requester and responder applications. The ATP driver supports pre-defined functions that let you set the values of these headers to what you want.

Types of ATP Transactions:

There are two types of ATP transactions:

  1. At-Least-Once Transactions: In an ALO transaction, it is guaranteed that the responder will receive all the requests sent to it at least once. It offers no guarantee that the same request won’t be sent again to the responder.
  2. eXactly-Once Transactions: In an XO transaction, it is guaranteed that the responder will receive all the requests sent to it exactly once. It guarantees that a request that has been received once by the responder won’t be sent again.

The nature of the transaction to be used is determined by the kind of processing required by the request. If multiple executions of the same request are likely to cause some kind of inconsistency in the results obtained, then XO transactions are used. If multiple executions of the request are not likely to cause problems then ALO transactions are used.

Comments

Popular Posts