------------------------------------------------------------ LASTport Handbook Order Number: EK-LADLA-AS-001 October 1991 This handbook introduces LASTport and LASTport/Disk architecture concepts. The LASTport architecture is a networking transport layer model designed for local area network applications that use request-response semantics. By limiting the services that the transport layer offers to the session layer, a LASTport implementation can enhance a system application's performance and reduce its resource consumption. The LASTport/Disk architecture is a system application model for a virtual disk service. Revision/Update Information: This is a new document. Software Version: LASTport Version 3.1 LASTport/Disk Version 3.1 Digital Equipment Corporation Maynard, Massachussets ------------------------------------------------------------ October 1991 The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by Digital Equipment Corporation or its affiliated companies. © Digital Equipment Corporation 1991. All Rights Reserved. The postpaid Reader 's Comments forms at the end of this document request your critical evaluation to assist in preparing future documentation. The following are trademarks of Digital Equipment Corporation: DEC, DECnet, DIGITAL, LAT, MSCP, RSX, ULTRIX, VAX, VMS, and the DIGITAL logo. Apple and Macintosh are registered trademarks of Apple Computer, Inc. MS-DOS is a registered trademark of Microsoft Corporation. OSF/1 is a registered trademark of Open Software Foundation, Inc. UNIX is a registered trademark of UNIX System Laboratories, Inc. ZK5765 This document was prepared using VAX DOCUMENT, Version 2.0. ------------------------------------------------------------ Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v 1 LASTport Concepts 1.1 LASTport and Other Transport Protocols . . . . . . . . . . . . . . . . . . . 1-2 1.1.1 Traditional Peer-to-Peer Transport Protocol . . . . . . . . . . . . . . 1-3 1.1.2 LAT Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 1.1.3 LASTport Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 1.2 LASTport Operating Environment . . . . . . . . . . . . . . . . . . . . . . . . 1-7 1.2.1 Protocol Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 1.2.2 Protocol Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 1.3 Functional Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 1.3.1 Solicitation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 1.3.2 Circuit Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15 1.3.3 Association Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15 1.4 Transaction Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16 1.4.1 Transaction Guarantees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16 1.4.2 Idempotent Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17 1.4.3 Commutative Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 1.4.4 Transaction Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 1.5 Concurrent Transactions and Transaction Identifiers . . . . . . . . . 1-19 1.5.1 Transaction Slots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20 1.5.2 Guarantees for Concurrent Transactions . . . . . . . . . . . . . . . . 1-21 2 LASTport/Disk Concepts 2.1 Disk Service Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 2.2 Protocol Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 2.3 Message Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 2.3.1 Name Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 2.3.2 Service Names and Service Instances . . . . . . . . . . . . . . . . . . 2-6 2.3.3 Parameter Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 2.3.4 Name Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 iii 2.3.5 Server Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 2.4 Message Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 2.4.1 Access Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 2.4.2 Service Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 2.4.3 Solicit Response Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 Glossary Index Figures 1-1 Traditional Transport with Three Circuits . . . . . . . . . . . . . . . 1-4 1-2 LAT Packet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 1-3 Multiple Processes Using One LAT Circuit . . . . . . . . . . . . . . 1-6 1-4 LASTport Packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 1-5 Multiple Processes Using a Single Path . . . . . . . . . . . . . . . . 1-10 1-6 Multiple Processes Using Two Paths . . . . . . . . . . . . . . . . . . . 1-11 1-7 Comparison of OSI Network Model and LASTport Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 1-8 Resync Response Message Notifies Client of Processing Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19 1-9 Two Transactions Using Two Slots Concurrently . . . . . . . . . . 1-21 Tables 2-1 Global Name Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 2-2 Name String Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 2-3 Response Policies for Solicit Request Messages . . . . . . . . . . . 2-10 2-4 Examples of Solicit Requests and Client-Supplied Values . . . 2-11 iv ------------------------------------------------------------ Preface Intended Audience This document addresses persons seeking general information about the LASTport transport architecture and the LASTport/Disk system application architecture. Readers are expected to be familiar with local area network (LAN) concepts. Document Structure This document contains two chapters and a glossary: · Chapter 1 introduces the LASTport architecture and provides an overview of LASTport transaction management. · Chapter 2 introduces the LASTport/Disk architecture. · The Glossary defines key terms. Related Documents Complete LASTport and LASTport/Disk architecture specification documents are available through a licensing program. For information, please contact your Digital sales representative. Conventions The following conventions are used in this handbook: Initial Capitalization Names of messages, such as Solicit Request, names of layers, such as Circuit layer, or names of architecturally controlled variables, such as Service Name boldface New terms or terms defined in the Glossary MixedCase Names of timers, such as AsnTransactionResponseTimer v 1 ------------------------------------------------------------ LASTport Concepts On paper, transport protocols look much alike. In practice, however, a specialized protocol can enhance the efficiency of system applications by taking advantage of their message flow characteristics. The LASTport protocol is designed specifically to support applications that use request-response semantics. Rather than attempting to achieve acceptable performance for all possible transactions, the LASTport protocol is designed to optimize transaction processing in one particular environment: a local area network (LAN) that includes many clients and only a few servers. Furthermore, only naturally idempotent procedures, such as disk reads, access to read-only data in general, and name translation, can use the protocol directly. The LASTport protocol is not intended to replace a traditional transport model like DECnet Network Services Protocol (NSP) or Open Systems Interconnect (OSI) TP4. Instead, the LASTport protocol is designed to move block data between memories. For example, it operates as an efficient transport for a virtual disk service. In the LAN environment for which it is designed, the LASTport protocol offers the following features: · Specialized request-response semantics with minimal latency · Reduced message flow over the interconnect · Efficient encoding of messages · Reduced memory consumption at the server system · Support for large numbers of concurrent transactions · High availability with redundant paths · Effective error recovery 1-1 LASTport Concepts This chapter introduces the LASTport protocol and architecture and provides an overview of LASTport transaction management. Topics include · LASTport and other transport protocols · LASTport operating environment · Functional layers · Transaction management · Concurrent transactions and transaction identifiers 1.1 LASTport and Other Transport Protocols Transport protocols normally perform the following tasks: · Create a channel that can detect and correct data loss and duplication · Deliver data in order of transmission · Govern the rate of data flow across a circuit and operate multiple circuits independently These tasks must be performed efficiently and in a way that isolates the Session layer from changes in the hardware technology. A LAN transport protocol must manage all types of data transfer that are possible in the environment. Typically, the Transport layer accepts data from the Session layer and then does the following: 1 Divides the data into smaller units, if necessary 2 Passes these units to the Network layer 3 Ensures that the units arrive correctly at the destination The methods that the transport uses to ensure that the units arrive correctly are called end-to-end guarantees, and such guarantees are often made at the cost of performance. Transport performance is usually measured by the following criteria: · Response time per end-to-end communication · Number of network messages required per transaction · Throughput in bits per second · Use of system compute power and memory · Efficiency of encoding user data 1-2 LASTport Concepts 1.1 LASTport and Other Transport Protocols The LASTport protocol differs significantly from other transport protocols in several ways. To clarify these differences, Sections 1.1.1 through 1.1.3 compare a traditional peer-to-peer transport protocol with the local area transport (LAT) protocol and the LASTport protocol in the following areas: · The relationship of one node to another, such as peer to peer or client to server · The number of transactions that can be conducted simultaneously on a single connection · The order in which transactions complete To facilitate comparison, all three transport systems are discussed in general terms. Actual implementations might not match the models described. 1.1.1 Traditional Peer-to-Peer Transport Protocol In a traditional peer-to-peer transport protocol such as DECnet NSP, data exchanges between nodes operate symmetrically. Usually, only one transaction can be conducted at a time, and one transaction must complete before another can start. The protocol used at both nodes is identical. By contrast, in a client-server protocol, one node has priority over the other, and this difference is reflected in the way messages are processed. In traditional transports, each request for service on the network requires that a circuit be established between nodes. One circuit is dedicated to one pair of communicating processes; multiple connections require multiple circuits. Each data exchange between the processes requires overhead processing to handle loss detection and error control. The transport orders messages before they are delivered to the application. In these transports, a typical data exchange includes the following operations: 1 Node 1 sends a data request message to node 2. 2 Node 2 receives the data request and sends an acknowledgment message to node 1 indicating that node 2 received the request message. 3 Node 2's application processes the data from node 1 and transmits a response message to node 1. 4 Node 1 receives the response message and must send an acknowledgment message to node 2 indicating that the response message has been received. 1-3 LASTport Concepts 1.1 LASTport and Other Transport Protocols Half the messages in the data exchange are acknowledgments that do not carry transaction data; the acknowledgment messages are required for error recovery. While they can often be piggybacked on normal data messages, acknowledgment messages are always required to complete a transaction. ------------------------------------------------------------ Note ------------------------------------------------------------ In traditional peer-to-peer transports, receipt of an acknowledgment message in response to a request does not guarantee that data has been processed -- only that the remote node received a request message. To ensure that the remote node processed the data, an additional protocol layer must usually be added for each application. ------------------------------------------------------------ Figure 1-1 illustrates a traditional peer-to-peer transport with three separate circuits. Figure 1-1 Traditional Transport with Three Circuits ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ NODE 1 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ NODE 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ LJG­0001­LP ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process A ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process D ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Req ------------------------------------------------------------ Ack ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Req ------------------------------------------------------------ Ack ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process C ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process F ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Req ------------------------------------------------------------ Ack ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Req ------------------------------------------------------------ Ack ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process B ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process E ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Req ------------------------------------------------------------ Ack ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Req ------------------------------------------------------------ Ack ------------------------------------------------------------ LASTport Concepts 1.1 LASTport and Other Transport Protocols Two other major differences between the LAT protocol and traditional transports are in the number of circuits created and the kind of packets sent. In the LAT protocol, data transmission is based on timers. The first request for service on the network creates a new circuit between node 1 and node 2. If there are multiple requests for connections (sessions) between the same nodes, the LAT protocol combines messages from more than one session into single packets and sends them along a single node-to-node circuit. Using the timers, the LAT protocol delays transmitting data from individual sessions to accumulate the data into a single packet. As shown in Figure 1-2, a LAT packet is divided into data slots, which contain the data from each session. Figure 1-2 LAT Packet ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ LAT HDRCount = 3 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Slot ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Slot ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Slot ------------------------------------------------------------ ------------------------------------------------------------ LJG­0002­LP ------------------------------------------------------------ LASTport Concepts 1.1 LASTport and Other Transport Protocols Figure 1-3 shows multiple processes using one LAT circuit. Figure 1-3 Multiple Processes Using One LAT Circuit ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ CLIENT ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ SERVER ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process A ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process B ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process D ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process E ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process F ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process C ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Packet 2 ------------------------------------------------------------ Packet 1 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ LJG­0003­LP ------------------------------------------------------------ LASTport Concepts 1.1 LASTport and Other Transport Protocols · The LASTport protocol can concurrently use multiple paths to the destination node. These differences result from certain assumptions, discussed in Section 1.2, about the LAN operating environment in which the LASTport protocol is used. 1.2 LASTport Operating Environment The LASTport protocol is designed with the assumption that the underlying network (shared interconnect) is reliable. Transport performance depends on low-probability events (fewer than one in one thousand) occurring infrequently and very-low-probability events (fewer than one in one trillion) not occurring at all. This kind of reliability is available in a LAN environment with the following characteristics: · Data Link capacity of more than 10,000 messages per second. · Low probability of datagram loss or duplication. (The LASTport protocol includes a checksum feature.) · Low probability of delays of more than 50 milliseconds between source and destination ports. · Very low probability of of datagram corruption or of datagrams being delivered to the wrong destination address. The LASTport protocol makes the following additional assumptions: · The environment includes many clients and a small number of servers. Therefore, the LASTport protocol attempts to conserve server resources wherever possible. · The clients and servers are system applications, not user-written applications. This approach is especially effective in an environment where clients access servers that are distributed on the network, because network-based servers can be implemented as ``black box'' systems without the typical overhead associated with crossing the user-system protection boundary. · All transactions issued by the client are in the form of idempotent requests and are commutative relative to each other. · The network is capable of handling multicast messages. If these conditions exist in the environment, the LASTport protocol can enhance performance for certain types of applications, such as virtual disk services. 1-7 LASTport Concepts 1.2 LASTport Operating Environment 1.2.1 Protocol Advantages In a LAN environment with the characteristics listed in Section 1.2, the LASTport protocol provides the following advantages: · Reduced message flow over the interconnect · Efficient encoding of messages · Reduced memory consumption at the server system · Support for large numbers of concurrent transactions · High availability with redundant paths · Effective error recovery The following sections describe these advantages. Reduced Message Flow over the Interconnect Because the LASTport protocol is based on a client-server relationship, client and server operate using different protocols. Only the client can initiate a request, and the server must respond. In contrast, traditional transports do not require a server to respond to a request. One service call issues requests, and a separate service receives a response. Therefore, the relationship between nodes must be maintained by using acknowledgment messages. Some transports might use four messages to complete an exchange of data, as described in Section 1.1.1. The LASTport protocol pairs data exchanges into transactions, sets of two messages resulting in a round-trip exchange of data. Because a message from a LASTport client requires a response, all messages occur in pairs. The first element is the client's request, and the second is the server 's response to the request. The transport matches the request with the response as follows: 1 The client sends a data request. 2 The server sends a response. Because the LASTport protocol requires that servers respond to client requests, no acknowledgment messages are necessary: the number of messages exchanged over the LAN interconnect can be reduced by 30 to 50 percent. 1-8 LASTport Concepts 1.2 LASTport Operating Environment Efficient Encoding of Messages The LASTport protocol handles requests and responses atomically. Client and server semantics allow for atomic processing of messages, because the beginning and end of requests and responses are made visible. The system application is not bound to fixed-size data messages; it can send messages of almost any size. If required, the LASTport protocol segments the data into packets of the size that the Data Link layer supports. However, messages cannot be arbitrarily large. For instance, Ethernet LAN messages should not be larger than approximately 50 KB, because protocol efficiency would decrease dramatically. In general, messages should not be so large that a one-way burst could cause one or more packets to be lost. Reduced Memory Consumption at the Server System Transactions are assembled by the application, not by the transport. If necessary, the LASTport protocol divides transaction requests into segments, each of which as a segment number, before transmitting them on the circuit. In this respect, the protocol is similar to other transport protocols. However, segmentation is controlled by the system application, which assigns each message segment a unique identifier. Because each segment is uniquely identified, packets can be delivered in non- sequential order and reassembled at the destination. Figure 1-4 shows how the LASTport protocol identifies message segments. Figure 1-4 LASTport Packets ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Data ------------------------------------------------------------ ------------------------------------------------------------ LASTport HDRSeg 2 of 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Data ------------------------------------------------------------ ------------------------------------------------------------ LASTport HDRSeg 1 of 2 ------------------------------------------------------------ ------------------------------------------------------------ LJG­0004­LP ------------------------------------------------------------ LASTport Concepts 1.2 LASTport Operating Environment Support for Large Numbers of Concurrent Transactions The LASTport protocol can conduct up to 255 processes concurrently on a single circuit path and can support up to 65,536 paths concurrently. Figure 1-5 shows multiple processes using a single LASTport circuit path. Figure 1-5 Multiple Processes Using a Single Path ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ CLIENT ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ SERVER ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process A ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process B ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process D ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process E ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process F ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process C ------------------------------------------------------------ ------------------------------------------------------------ LJG­0005­LP ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ A to D2 of 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ A to D1 of 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ C to F1 of 1 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ B to E1 of 1 ------------------------------------------------------------ ------------------------------------------------------------ LASTport Concepts 1.2 LASTport Operating Environment Figure 1-6 shows multiple processes using two circuit paths. Figure 1-6 Multiple Processes Using Two Paths ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ CLIENT ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ SERVER ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process A ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process B ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process D ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process E ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process F ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Process C ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ B to ESlot 12 of 2 ------------------------------------------------------------ ------------------------------------------------------------ LJG­0006­LP ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ B to ESlot 11 of 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ A to DSlot 12 of 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ A to DSlot 11 of 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ C to FSlot 31 of 1 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ A to DSlot 21 of 1 ------------------------------------------------------------ ------------------------------------------------------------ LASTport Concepts 1.2 LASTport Operating Environment If a higher level of error detection and correction is needed, the system application can so specify. Note that security issues are outside the scope of the LASTport architecture. 1.2.2 Protocol Constraints As compared with traditional transport protocols, the LASTport protocol offers a reduced set of service guarantees to clients. Constraints and rationales are as follows: · CONSTRAINT: The client can initiate requests; the server cannot. This constraint simplifies connection management, buffer management, and flow control. Application relationships are client to server, not peer to peer. RATIONALE: To create a transaction that operates as peer to peer, two independent associations must be established. Asymmetry simplifies protocol design, specifically, error recovery. · CONSTRAINT: The LASTport protocol performs error correction by retransmitting the entire request, which must be idempotent. RATIONALE: The environment assumes a low rate of errors. Because failure is rare, retransmission is assumed to be infrequent and therefore to consume comparatively few resources. · CONSTRAINT: The client must describe the entire operation at the time the request is made to the transport. At the time of the request, the system application must define the address and size of both the request buffer and the response buffer. RATIONALE: This mechanism allows messages to be processed in arbitrary order and avoids unnecessary copying of data. · CONSTRAINT: The system application request size is bounded by the error rate from all LAN sources: very large requests might never complete. RATIONALE: Although individual segments can be recovered, such recovery would complicate the protocol and consume additional CPU and memory resources. · CONSTRAINT: The system application must implement transactions that are both idempotent and commutative, and it is responsible for transaction request, execution, and response sequencing. RATIONALE: The LASTport protocol identifies transactions and provides transaction concurrence: transactions complete across the session interface in the order that responses arrive. No circuit state need be maintained to preserve relative transaction ordering. 1-12 LASTport Concepts 1.3 Functional Layers 1.3 Functional Layers The LASTport architecture comprises three functional layers: 1 The Solicitation layer, which is a network naming service 2 The Circuit layer, which performs some functions of an OSI Network layer 3 The Association layer, which performs some functions of an OSI Transport layer Sections 1.3.1 through 1.3.3 briefly describe these layers. Figure 1-7 shows LASTport functional layers in the context of a computer system and indicates how the layers correspond to the seven-layer OSI network model. Note that the figure illustrates only formal correspondences, not the relative number of functions performed or lines of code executed in each layer. 1-13 LASTport Concepts 1.3 Functional Layers Figure 1-7 Comparison of OSI Network Model and LASTport Architecture ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Application ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Network ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Data Link ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Physical Link ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Presentation ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Session ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Transport ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ LASTport ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ System Application ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Solicitation ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Association ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Circuit ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Data Link ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Physical Link ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ $copy ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ System (Kernel) Layer ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ User Process Layer ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ OSI MODEL ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ System Service Interface ------------------------------------------------------------ ------------------------------------------------------------ LJG­0007­LP ------------------------------------------------------------ LASTport Concepts 1.3 Functional Layers 1.3.2 Circuit Layer The Circuit layer isolates the Association layer from failures in the network topology by detecting node failures and reporting them to the Association layer. Because Association layer functions are separated from Circuit layer functions, the Association layer continues to perform its tasks even when changes occur in path availability. If one path fails, the Circuit layer maintains any other available paths. The Circuit layer can detect when a failed path becomes available again. 1.3.3 Association Layer The Association layer, which manages connections between a client and a server, performs the following functions: · Executes transactions · Monitors transactions · Segments and reassembles transaction data · Assigns unique transaction identifiers to each transaction · Handles errors The Association layer presents four services to the system application: 1 Registration services. Registration services enable the system application to interact with the LASTport protocol. These services make the Directory, Association, and Data Transfer services available to the system application. Registration services are not described in the LASTport architecture, because they are implemented differently for each system. 2 Directory services. Directory services, which are implemented in the Solicitation layer, locate a server for the system application. 3 Association services. Association services enable a client to connect to and disconnect from a server. 4 Data transfer services. Data transfer services enable clients to send requests to servers and enable servers to respond. 1-15 LASTport Concepts 1.4 Transaction Management 1.4 Transaction Management A LASTport transaction consists of a request and a response, either of which can include multiple messages. In this request-response model, the client initiates all requests, which can be for connections, data processing, or disconnections; the server must respond to client requests. The client is responsible for detecting errors and for retransmitting the request if necessary. Using timers, system applications control the interval and retry limits for each request and response (see Section 1.4.4). The LASTport protocol guarantees that the server performs a transaction at least once and does not retry the transaction once it completes successfully at the client session interface. To qualify for LASTport guarantees, transactions initiated by system applications must be both idempotent and commutative. Section 1.4.1 discusses transaction guarantees; Sections 1.4.2 and 1.4.3 describe requirements for LASTport transactions. The LASTport protocol also identifies valid transactions, as discussed in Section 1.5. 1.4.1 Transaction Guarantees In peer-to-peer transport protocols, each message is an independent event, and a message to a peer node elicits an acknowledgment. However, the acknowledgment guarantees only that the message has been delivered, not that the data has been processed. In contrast, the LASTport protocol pairs the request with the response. A LASTport transaction is circular, consisting of the client message to the server and the server response. The client considers the entire transaction active until the client receives either a response or a notification that the transaction has aborted. The response guarantees that the server both received the transaction request and processed the transaction, and that all retry activity at the server has completed. If the client does not receive a response or a message to resynchronize or abort the transaction within an established time, the client recovers by retransmitting the entire transaction. However, this behavior can cause the server to receive more than one transaction request. To support the guarantee that a transaction is completed once and only once, and that retransmitting a transaction request does not endanger data integrity, the LASTport protocol requires that transactions be both idempotent and commutative. Sections 1.4.2 and 1.4.3 discuss these characteristics. 1-16 LASTport Concepts 1.4 Transaction Management 1.4.2 Idempotent Transactions Implementers of system applications must ensure that all transactions issued by the client are idempotent. An idempotent transaction can be repeated without changing the system state. The repeated transaction request has the ``same strength'' as the original request, assuming that the request is repeated in isolation from other requests. For example, the operation a <- a + 1 (set the value of the variable a to a + 1) is not idempotent. If the initial value of a is zero, then the first time the operation is performed, the value of a is 1, and the second time the value of a is 2. Repeating the message changes the state of variable a. In contrast, the operation a <- 1 (set the value of the variable a to 1) is idempotent, because repeating the operation always sets the value of the variable a to 1. The LASTport protocol is designed so that if a transaction is repeated in an attempt to receive an acknowledgment, the state of the application data remains consistent. The result is the same as if the transaction were completed only once, even if the server executes the transaction more than once. This feature greatly simplifies error handling. The state of the server is consistent even if the operation is performed multiple times. Thus, the server state partially supports the guarantee that transactions complete only once: at the server, processing the transaction more than once is equivalent to processing it only once. To ensure idempotency at the client, the LASTport protocol need only guarantee that the client receive the response from the server and can pair it with the correct iteration of the transaction, declaring all other transmissions of the transaction request obsolete. The LASTport protocol guarantees that, when the transaction completes at the client, all processing has completed at the server, and that multiple attempts to complete the same transaction do not endanger data integrity at the server. Naturally idempotent procedures, such as access to read-only data, naming services, and time services, can use the LASTport protocol directly. However, any service can be structured to be idempotent. For example, end-to-end checks in the System Application layer can transform nonidempotent operations into idempotent operations. Some distributed operations that are not idempotent can be made so by inserting a layer between the procedure and the communication interface. 1-17 LASTport Concepts 1.4 Transaction Management 1.4.3 Commutative Transactions Commutative transactions can be completed in any order without introducing errors in the result. The LASTport protocol requires that all concurrently executing transactions be commutative. This requirement enables the LASTport protocol to process multiple transactions concurrently, because transactions can complete across the session interface in the order that requests and responses arrive. No state need be maintained to preserve the order of transactions. The system application must implement transaction request sequencing, transaction execution sequencing, and transaction response sequencing. If an application's transactions are commutative, the LASTport protocol supports the application. 1.4.4 Transaction Timing The LASTport protocol uses the variable AsnTransactionResponseTimer to perform error control during the execution of a transaction. When initiating a transaction, the client system application sets two values for the AsnTransactionResponseTimer: 1 The AsnTransactionResponseShortTimer value, which is an initial time limit for receipt of a Resync Response message or Transaction Response message. This value is required to determine whether the request message is lost. 2 The AsnTransactionResponseLongTimer value, which is subsequently used as a time limit for completion of the transaction and can be reset by the server using Resync Response messages. This value is required because actual application processing delay can never be known in advance. In Figure 1-8, the server resets the AsnTransactionResponseTimer to the value of AsnTransactionResponseLongTimer to indicate a delay in processing Transaction A and notifies the client with a Resync Response message. The client delays retransmitting the transaction request. 1-18 LASTport Concepts 1.4 Transaction Management Figure 1-8 Resync Response Message Notifies Client of Processing Delay ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ CLIENT ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ SERVER ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans A ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans A ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans A ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Request Stream ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Resync Response ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Response Stream ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Delaysretransmission ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Resets timer ------------------------------------------------------------ ------------------------------------------------------------ LJG­0008­LP ------------------------------------------------------------ LASTport Concepts 1.5 Concurrent Transactions and Transaction Identifiers The transaction identifier supports the following semantics: · Client request semantics. Perform the server procedure at least once or cause the association to fail. The client specifies the retry interval and the retry count. · Client response semantics. Perform the procedure at least once. No execution at the server occurs after the response is delivered successfully. · Server request semantics. Perform the procedure exactly once. · Server response semantics. Return the result of the executing procedure exactly once. 1.5.1 Transaction Slots An important component of the LASTport transaction identifier is the transaction slot. Transaction slots can be thought of as teller windows at a bank. Customers who want to make bank transactions wait in a queue until a teller is available. The number of tellers defines the number of transactions that can be performed concurrently. Whenever a teller becomes available, the teller can serve the next customer in the queue, even if other customers have not finished performing their transactions with other tellers. In the same way, the total number of slots available determines the number of LASTport transactions that can be performed concurrently over a single association. Whenever a slot becomes available, the LASTport protocol performs the next transaction in the queue, even if earlier transactions have not completed. The client Association layer assigns a transaction slot number in the transaction request, and the server responds using the same slot number. Each transaction is assigned to one slot. If transactions must be retried, they are always retried on the same slot. In other words, if more than one transaction is being processed, the transactions and their retries are differentiated by slot number. To continue the bank analogy, each customer in a bank requests a single teller and receives responses only from that teller. The maximum number of slots at a given time in the system is negotiated between the client and the server. At the time of solicitation, the server can request that a smaller number of slots be used for the association. The client Association layer uses all available slots to perform transactions. If all slots are full, the Association layer queues the transactions until a slot becomes available. 1-20 LASTport Concepts 1.5 Concurrent Transactions and Transaction Identifiers Figure 1-9 illustrates two transactions, A and B, that use Slots 1 and 2 concurrently. Note that B completes before A, though B was queued after A. Figure 1-9 Two Transactions Using Two Slots Concurrently ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ CLIENT ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ SERVER ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans BSlot 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans ASlot 1 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans BSlot 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ LJG­0009­LP ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans ASlot 1 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans BSlot 2 ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ Trans ASlot 1 ------------------------------------------------------------ ------------------------------------------------------------ LASTport Concepts 1.5 Concurrent Transactions and Transaction Identifiers Guarantee: The client guarantees that once a transaction completes at the presentation interface, activity associated with the transaction request at the server, including retries, is complete. At the server: · The server knows which transactions have valid transaction identifiers, thereby minimizing the number of times it attempts to process expired transactions. · Because the server cannot determine whether a particular transaction is a retransmission of a previous transaction, the server treats each transaction with a valid identifier as a new transaction. Guarantee: The server guarantees that it executes a transaction request only once and only if the transaction has a valid identifier. The server 's response to the client guarantees that the transaction has been processed exactly once. 1-22 2 ------------------------------------------------------------ LASTport/Disk Concepts The LASTport/Disk architecture is media independent. It specifies a simple, efficient method of accessing named collections of logical blocks, called virtual disks, in a heterogeneous system environment. Client systems see the virtual disks as though they are locally attached devices. The LASTport/Disk server supports a directory service of locally resident virtual disks that enables client systems to find and access these disks. Device control mechanisms facilitate allocation of drives and their storage devices. The architecture provides structures to accomplish the following kinds of tasks: · Let a user of one of the major operating system platforms allocate a publicly accessible drive (by a coffee stand, for instance), load the media of choice, and access the media from that platform (such as a VMS system or an MS-DOS system) · Let a facility manager offer to all users publicly accessible media that users can access and share from heterogeneous system platforms · Specify system-independent and system-dependent naming conventions concurrently for both media and disk drives · Create named virtual disks (on read-write media) ``on demand'' for use by heterogeneous client systems This chapter introduces the LASTport/Disk architecture. Topics include · Disk service management · Protocol messages · Message formats · Message processing 2-1 LASTport/Disk Concepts 2.1 Disk Service Management 2.1 Disk Service Management The LASTport/Disk architecture defines a set of typed Name Spaces that contain Service Names. Users access media by specifying these Service Names, which are the names of virtual disks. Multiple virtual disks or a single disk can be mapped to a single physical medium. Conversely, a single virtual disk can span multiple physical media. Each Name Space has potentially unique capabilities that are implemented by Name Space Handlers. For instance, one handler might define a Name Space for the International Standards Organization (ISO) 9660 media format, and a different handler might define a Name Space for ``scratch'' (page file) storage applications. The service and message definitions available to Name Space Handlers enable each handler to offer the following facilities independently: · Solicitation services to determine the physical location of virtual disks and drives · Directory services appropriate to the Name Space · Device-handling services · Storage allocation policies The architecture requires implementations to provide local services to manage the following: · Allocation and deallocation of drives · Allocation and deallocation of available storage · The database of named servers, drives, and media The architecture also requires each server implementation to provide nonvolatile storage. This storage is used to save the states of the server and the local media on the server, so that these states can be restored consistently after server failures. Each Name Space Handler independently uses these common services to implement its own policies. Thus, a free drive could be allocated for ISO 9660 use or for use as a page file (but not for both concurrently). If the drive is allocated by a client but never accessed, the server implementation is expected to detect and respond appropriately to this condition -- that is, to make the drive available again. Similarly, the server implementation is expected to handle cases in which page file storage is allocated but never used. 2-2 LASTport/Disk Concepts 2.1 Disk Service Management The LASTport/Disk architecture allows multiple types of operating-system- specific media to be present concurrently in a network and on a server. The architecture also provides each client system with a view of the media subset that is of interest to that client system. Because the architecture provides a default view that is normal for a particular operating system (for instance, the VMS operating system), VMS clients can, by default, access On-Disk Structure Level 2 (ODS-2) media without preventing VMS users from accessing ``foreign'' media. When multiple identical read-only media are available concurrently on different physical drives and different physical servers, the architecture provides a mechanism to balance the load across these drives and servers when connections are made and to balance requests at run time. Thus, when publicly served media are offered on a server that fails or becomes so overloaded with requests that it becomes unusable, the architecture provides mechanisms to prevent these failures from affecting users -- as long as identical media are still available to client systems. 2.2 Protocol Messages The LASTport/Disk message protocol consists of a wire protocol and specific rules governing the transmission and reception of wire protocol messages. The protocol syntax is extensible; specifically, it allows for future implementation of security policies. LASTport/Disk protocol messages are structured as request messages and their corresponding response messages. A client system sends a request message to a server, which executes a transaction one or more times and then sends an appropriate response message to the client. The server never generates unsolicited messages. The LASTport/Disk protocol requires that each server transaction be idempotent relative to itself and commutative relative to other concurrently executing transactions. This requirement ensures that transactions can be executed multiple times while the server maintains a consistent global view of the data. Servers therefore utilize minimal memory for network buffering. The system application protocol can be implemented in a small number of messages when errors do not occur, and it can perform efficient error recovery, often providing improved availability. 2-3 LASTport/Disk Concepts 2.2 Protocol Messages The LASTport/Disk protocol defines the following messages: · Resource management messages Solicit Request (message format) Solicit Response (message format) Solicit Summary Request (message format) Solicit Summary Response (message format) · Connection management messages Connect Request (message format) Connect Response (message format) Disconnect Request (reason, reason descriptor) Disconnect Response (reason, reason descriptor) · Data exchange and control messages Data Request (data) Data Response (data) Parameter Request (message format) Parameter Response (message format) Solicit messages locate services to which connections are established using the Connect messages. Data can be sent until either the user or the system sends a Disconnect Request message. 2.3 Message Formats Message formats are specific to each message type. They encapsulate infor- mation about Name Spaces, Service Names, device types, access modes, and other information required to find disks on the network and connect to them. The LASTport/Disk message protocol specifies the contents of each message format so that the necessary receive-processing information (such as version control, Name Spaces, and so forth) is present. The message formats can be extended for specific Name Space processing using Parameter Codes. The message formats are both flexible and extensible. Features like the following make them useful across multiple system platforms: · Name Spaces · Service Names and Service Instances · Parameter Lists · Name Strings · Server Names 2-4 LASTport/Disk Concepts 2.3 Message Formats 2.3.1 Name Spaces The LASTport/Disk client is responsible for interpreting the on-disk structure of a virtual disk. If a client connects to a virtual disk with a foreign on-disk structure, unpredictable results might occur. The LASTport/Disk protocol uses Name Spaces to partition services offered to its clients. For example, MS-DOS virtual disk services (named collections of logical blocks) exist in a well-defined Name Space, visible only to MS-DOS clients. Thus, Name Spaces are aligned with operating system on-disk structures but are not architecturally limited to this use. Clients can bind to virtual disks in multiple Name Spaces; for example, a VMS client could connect to a virtual disk in the ODS-2 Name Space and to a virtual disk in the ISO 9660 Name Space. The LASTport/Disk protocol provides the global Name Spaces defined in Table 2-1. Table 2-1 Global Name Spaces ------------------------------------------------------------ Value Description ------------------------------------------------------------ 0 or 1 Reserved for use by Digital Equipment Corporation. 2 MS_DOS. The on-disk structure used by the MS-DOS operating system. 3 ODS_2. The on-disk structure used by the VMS and RSX operating systems. 4 ISO_9660. The CDROM on-disk structure used by the International Standards Organization. 5 ULTRIX. The on-disk structure used by the ULTRIX operating system, which is identical to that used by Berkeley UNIX Version 4.2. 6 HIGH_SIERRA. The on-disk structure used by personal computers. 7 through 10 VXT. The on-disk structure used by windowing terminals for dynamic page files and configuration files. 11 HFS. The on-disk structure used by Apple Computer, Inc. for Macintosh II computers. 12 through 65,534 Reserved for use by Digital and by Digital's licensees, as assigned by Digital Equipment Corporation. 65,535 Wildcard Name Space flag. ------------------------------------------------------------ 2-5 LASTport/Disk Concepts 2.3 Message Formats 2.3.2 Service Names and Service Instances An architecture model for heterogeneous systems must accommodate the needs of both platform-specific and platform-independent naming. The LASTport/Disk protocol does this by specifying a Service Name. This Service Name can be defined independently by each Name Space. LASTport/Disk Service Names typically contain names of media or of physical drives. The Service Names are system independent. When a user requests a service, the Service Name is conveyed in the Solicit Request message. (Some Solicit Request messages specify a null Service Name, such as when the user specifies a device instead of a service.) Servers translate the requested Service Name and return a Service Instance in the Solicit Response message. For example, a client might solicit with the service name CD_DOC, and the server could return CD_DOC_V2 as the Service Instance. Thus, clients connect to a Service Instance and not to a Service Name. A Connect Response message might also contain a Service Instance that can be used in subsequent Solicit Request messages. 2.3.3 Parameter Lists For extensibility purposes, the LASTport/Disk architecture defines Parameter Lists, which are designed to allow ECO extensions to the message formats or Name Space-specific extensions. Each service message provides for the inclusion of Parameter Lists. Parameter Lists are formed from Parameter Code, Parameter Length, and Parameter Data fields. Parameter Codes are of two types: global and user (Name Space). Both global and user Parameter Code assignments are allocated in the range of 1 through 255. The protocol definition contains the global Parameter Codes and their interpretation, as well as the assignment of the user Parameter Codes. Each Name Space independently defines how user Parameter Codes are to be interpreted. 2.3.4 Name Strings Solicit Request messages and some Parameter Codes convey architecturally specified names called Name Strings. Name Strings are limited to the characters listed in Table 2-2. 2-6 LASTport/Disk Concepts 2.3 Message Formats Table 2-2 Name String Characters ------------------------------------------------------------ Character Codes (decimal) Meaning ------------------------------------------------------------ 32-127 All printable C0 characters (SP through DEL). 160-255 All printable C1 characters. 1 Wildcard character. Matches any number of any characters in the current character position. 2 Wildcard character. Matches exactly one character in the current character position. ------------------------------------------------------------ Only those terminals that support the international character set can specify Name Strings using that character set. The LASTport/Disk protocol permits wildcard operations for services offered on an extended local area network (LAN). If a command includes a wildcard string, all objects matching the wildcard string are used in the specified operation. For example, a value of 1 or 2 in a Service Name indicates that the string can match multiple Service Names at the server. 2.3.5 Server Names Servers are required to initialize and use a unique Server Name within the network in which the server offers service. Because the physical address of each network data link port is guaranteed to be unique, that address can be used reliably to form a unique server name. The recommended procedure is to compose the name from the network address derived from the algorithm described in the Ethernet specification document. The node name can be formed by combining the facility code and the Ethernet address with the hyphens removed. When servers are not directly attached to an Ethernet, a similar algorithm should be used to construct a unique Server Name. For example, each InfoServer system is assigned a name (Name String) that uniquely identifies the unit on an extended LAN. This name is also used as a LAT management service that is advertised to the LAN network. Using the Name String characters defined in Table 2-2, implementers can create a Server Name that is meaningful in a particular environment. 2-7 LASTport/Disk Concepts 2.4 Message Processing 2.4 Message Processing LASTport/Disk message processing facilities include the following: · Access modes · Service passwords · Solicit Response policies Sections 2.4.1 through 2.4.3 describe these facilities. Table 2-3 summarizes response policies for Solicit Request messages. Table 2-4 provides examples of Solicit Request messages and client-supplied values. 2.4.1 Access Modes A local manager at the server sets access mode policies for objects such as devices and virtual disks. The server uses a field in the Connect Response message to indicate which access modes are granted, either for a specific access request by a client, or for a default access mode when the client has not specified one. When a device or storage medium is being allocated to a specific client as the result of a successful solicitation process, the client can specify ``allow read-write'' access. In this case, the server applies the requested access to the allocated resource. Additionally, the client can specify the maximum number of readers and writers for the allocated resource. If server policy does not allow the specified mode, the server returns an appropriate error in the Connect Response message. To indicate that a successful connection has been established to an object, the server returns relevant session and device information in the Connect Response message. 2.4.2 Service Passwords Service passwords are set using a local management interface or by LASTport/Disk messages. If a service (for instance, a virtual disk) is protected with a password, the client must specify the correct password in Connect Request and Parameter Request messages to receive a response. If the password is invalid, or if a message does not specify a password when one is required, the server takes no action requested in the message and responds that access has been denied. The protocol supports password protection for virtual disk services. Several modes of protection are available. The protocol defines a bitmask that instructs the server to check the password for read, write, or read-write connections. The Connect Request and Connect Response messages define the access modes. A single access mode can be password protected, while another mode has free access. For example, a network manager could allow any user to connect to 2-8 LASTport/Disk Concepts 2.4 Message Processing a particular service with read-only access and require a password for write access to the same service. This mechanism controls the ability to update the data without hindering read access. The LASTport/Disk protocol has two password parameters: · The service password parameter, which is used to protect an individual service. If this parameter is null, the service is not protected, and no password is needed to access it. When a new, protected service is created, the password for the service is found in the service password parameter. A client connecting to the service must specify this password. Similarly, when modifying an existing service that is password protected, the client must specify the password for that service. (During a password-protected session, a valid password must be present.) This password can control read, write, or read-write access. · The new service password parameter, which is used to change the service password. The password can be changed only if the current password is valid. The service password cannot be changed when connecting to an existing password-protected service. A password-encoding parameter specifies how a service password is encoded in LASTport/Disk messages. Digital plans to allow encoding of distributed authentication and authorization policies in these messages using new Parameter Codes. While the LASTport/Disk architecture does not specify password and data encryption, the architecture can accommodate these functions. 2.4.3 Solicit Response Policies A client can construct Solicit Request messages in a variety of combinations to meet the needs of a user request. The LASTport/Disk architecture defines the policies that servers implement when they respond to these requests. Solicit Request messages can be directed to a single node using a physical address or to all nodes using a multicast address. The Solicit Request message can include a Server Name and a Service Name. The message can also contain other information, such as device name or device type, that further qualifies the responses that servers provide. When servers respond to a Solicit Request message, they always provide information about a single Service Instance in the Solicit Response message. If the server needs to return information for more than one service, it does so by sending multiple responses. Each response contains information about a single Service Instance. 2-9 LASTport/Disk Concepts 2.4 Message Processing Servers can dally responses to Solicit Request messages. When client systems construct Solicit Request messages, the format of the request can cause many or all servers on the extended LAN to respond with information. If all servers responded without delay, the client network adapter could be flooded with these responses, and some information could be lost. To prevent such adapter flooding, the client specifies a timer value in the Solicit Request message that it constructs. Servers must dally responses by waiting a random amount of time, from 0 seconds up to the client's timer value, before transmitting the Solicit Response message. If the client specifies a timer value of 0, no dally is required, and servers respond to the Solicit Request message immediately. Table 2-3 defines the policies that servers can implement in responding to Solicit Request messages. A null name means that no name is provided in the Solicit Request message. Table 2-3 Response Policies for Solicit Request Messages ------------------------------------------------------------ Destination Service Name Destination Node Name Solicit Request Message Multicasted Solicit Request Message Physically Addressed ------------------------------------------------------------ Null Null Any node can respond with node information and information for all services in requested Name Space. Addressed node may respond with node information and information for all services in requested Name Space. Null Not null Named node must respond with node information and information for all services in requested Name Space. If node name is correct, node must respond with node information and information for all services in requested Name Space. Not null Null If node offers service, it must respond with node information and service information; otherwise, no response is sent. If node offers service, it must respond with node information and service information; otherwise, return error message ``node does not offer service.'' Not null Not null If node offers service and node name is correct, node must respond with node and service information; otherwise, return error message ``node does not offer service.'' If node offers service and node name is correct, node must respond with node and service information; otherwise, return error message ``node does not offer service.'' ------------------------------------------------------------ 2-10 LASTport/Disk Concepts 2.4 Message Processing The LASTport/Disk architecture defines a flexible set of solicitation message formats that meet a variety of possible user requests. Specific service, node, or device information can be directed to a single server. Table 2-4 lists examples of possible user requests and shows how a client would format a Solicit Request message to meet those requests. Table 2-4 Examples of Solicit Requests and Client-Supplied Values ------------------------------------------------------------ User Request Client-Supplied Values ------------------------------------------------------------ Show service CONDIST Service-name = CONDIST Node-name = Null Device-name = Null Device-type = Null Address = Multicast Show all services offered by server FRED Service-name = Null Node-name = FRED Device-name = Null Device-type = Null Address = Physical or multicast Show service ONLINE_DOC only on RRD42 compact disc drives Service-name = ONLINE_DOC Node-name = Null Device-name = Null Device-type = RRD42 Address = Multicast Show all RRD40 compact disc drives on the network Service-name = Null Node-name = Null Device-name = Null Device-type = RRD40 Address = Multicast Show all services offered by node FRED on device PORT_1 Service-name = Null Node-name = FRED Device-name = PORT_1 Device-type = Null Address = Physical or multicast Show whether node FRED offers service CONDIST on device PORT_1 Service-name = CONDIST Node-name = FRED Device-name = PORT_1 Device-type = Null Address = Physical or multicast ------------------------------------------------------------ 2-11 ------------------------------------------------------------ Glossary application See system application. association The active relationship between a client instance and a server instance for a particular service provided by a server instance. An association is required to perform transactions between a client and a server. Association layer A component of the LASTport protocol than manages connections and transactions between a client and a server. checksum A sum of digits or bits used to verify whether a number or an operation is valid. circuit The relationship between two nodes. Only a single circuit exists between any two nodes, regardless of the number of associations. Circuit layer A component of the LASTport protocol that defines and maintains the circuit topology and distributes messages between source and destination nodes. circuit topology The set of paths (logical links) that connect client and server nodes in a local area network. The circuit topology is mapped during the solicitation process. The topology can change depending on which paths and network adapters are available. Glossary-1 client The software requesting a service of a server. client request semantics A set of rules that ensures execution of a transaction by a server at least once or causes an association to fail. The client specifies the retry interval and the retry count for the transaction. client response semantics A set of rules that ensures execution of a transaction by a client at least once. No execution at the server occurs after the response is delivered successfully. client-server protocol A protocol in which one node has priority over the other. For example, in the LASTport protocol, the client has priority over the server. The client initiates all requests for a service, and the server must respond to the client's request. communication interface A mechanism by which system components located on the various nodes in a network can interact through the exchange of messages conveying data and control information. Communication interfaces are usually implemented using communication protocols. commutative transaction A transaction that can be completed in any order without introducing errors in the result. The LASTport protocol requires that all concurrently executing transactions be commutative. This requirement allows the protocol to process multiple transactions concurrently, because transactions can complete across the session interface in the order in which responses arrive. No state need be maintained to preserve the order of transactions. component A constituent element of a system. congestion control The mechanisms that prevent catastrophic collapse of the distributed system (also known as ``livelock'') when instantaneous demand for service exceeds the available network capacity. Glossary-2 connection The function that creates a new, agent-specific association between a client and a server. A connection is initiated by a client. dally A system application mechanism used to prevent flooding of the client's network adapter when multiple servers respond to a Solicit Request message. datagram A packet assembled into a network frame for transmission to remote nodes. data link An extended local area network (LAN) segment. Data Link layer A network protocol component that transmits datagrams between a client and a server. The Data Link layer assembles packets into network frames for transmission to remote nodes as datagrams. data link port The device that connects a node to a data link, also called an adapter. A data link port is associated with a single node. A node can have multiple data link ports. data slot A division of a LAT packet that contains the data from a LAT session. data transfer service A service that enables a client to send requests to a server and that enables servers to respond. directory service A service that locates a server for the system application. Directory services occur in the LASTport Solicitation layer. disconnection The act of terminating an association. Glossary-3 end-to-end guarantee A guarantee ensuring that all transaction segments transmitted by a client arrive at a server, that the complete transaction is processed by the server, and that the results are returned to the client. frame The primitive unit of data transfer between nodes on the local area network. header The control information prefixed in a message text, such as source or destination code or message type. idempotent transaction A transaction that can be repeated without changing the system state. The repeated transaction request has the ``same strength'' as the original request, assuming that the request is repeated in isolation from other requests. idempotent procedure A procedure that can use the LASTport protocol directly, such as Digital Equipment Corporation's Mass Storage Control Protocol (MSCP), access to read-only data in general, and name translation. interface A point of interaction between two components or between a system and its environment. The LASTport protocol contains interfaces of the following types: · User interfaces · Communications interfaces · Programming interfaces · Data interfaces · System interfaces LAN See local area network. LAT protocol A communications protocol used in a local area network. LAT is Digital's local area transport product. Glossary-4 layer A set of software that is ordered partially with respect to dependency; that is higher layers can depend on lower layers, but lower layers cannot depend on higher layers. The LASTport protocol includes three functional layers: the Circuit, Association, and Solicitation layers. local area network (LAN) Loosely, the set of nodes capable of communicating with any other node in the set across some data link segment. All nodes in the LAN must have at least one data link segment in common. message A datagram that is formatted with one of the architecturally defined LASTport protocol headers and identified in the local area network header as a LASTport protocol packet. multicast The ability to ``address'' a single message for receipt by any data link port that enables the multicast address. This capability supports the LASTport advertisement and solicit primitives. Name Space A collection of logically related names, such as LASTport/Disk Service Names, that identify objects accessible on a network. Name Space Handler A system application data structure that identifies a Name Space. Network layer A layer that provides user control of and access to operational parameters and counters in lower layers. network topology The physical arrangement and relationship of interconnected nodes in the network. Name String An architecturally specified name conveyed in a Parameter Code. Glossary-5 node A computer system on the local area network. The LASTport protocol requires only that a node be able to identify itself uniquely in space and time. A 48-bit identifier, such as the hardware address of a particular local area network controller, identifies the node in space, and a 16-bit value identifies a specific instance of the operating system. packet The unit of data created by the LASTport Circuit layer and transmitted to the Data Link layer. A packet is inherently unreliable; that is, the local area network can neither guarantee reliable delivery of packets nor indicate delivery of any given packet. performance A measurement of the resources required to perform an operation. The most common measurement is the elapsed time needed to perform an operation. The elapsed time from the end of user input until output data is displayed is called response time. Consumption of other resources such as processor, communication, I/O, and memory resources might also be measured as part of performance. Parameter Code A system application code that conveys architecturally specified names called Name Strings. Parameter List A LASTport/Disk mechanism that allows extensions to message formats and Name Spaces. path maintenance The process of determining which paths remain viable between a client and a server after the solicitation process. A circuit is maintained as long as messages arrive on a path during a timed interval. The client and server follow the same protocol for maintaining the network topology. Glossary-6 peer-to-peer transport protocol A transport protocol such as DECnet NSP, in which data exchanges between nodes operate symmetrically. Usually, only one transaction can be conducted at a time, and one transaction must complete before another can start. The protocol used at both nodes is identical. By contrast, in a client-server protocol, one node has priority over the other. platform A combination of computer hardware and software that provides an environment for higher-level software. protocol A complete specification of a sequence of operations and messages needed to accomplish some specified processing or information exchange. Examples: DECnet NSP protocol, LASTport protocol, LAT protocol, OSI stack, TCP/IP stack, X.400 protocol. registration service A service that allows the system application to interact with the LASTport protocol. Registration services make the Directory, Association, and Data Transfer services available to the system application. Registration services are not described in the LASTport architecture because they are implemented differently for each system. reliability The extent to which a system or part of a system yields the expected results on repeated trials. ``Expected results'' means correct output, without unintended side effects, meeting the performance specification. Reliability is measured by mean time between failures (MTBF). request The data that a client sends to a server. request-response semantics A set of rules that defines the relationship between a client and a server. The client sends a request to the server, and the server sends a response to the client. response The data returned by a server reacting to the request data supplied by a client. Glossary-7 segment The unit of communication created by the LASTport Association layer and passed to the Circuit layer for transmission. Each segment has a transaction identifier. segment number A number that identifies the position of a segment in a transaction. The segment number is used to reassemble a transaction once the transaction packets reach the destination node. server Software that provides a service to a client. server name A Name String that uniquely identifies a server on the local area network. server request semantics A set of rules that ensures execution of a transaction by a server exactly once. server response semantics A set of rules that requires a server to return the results of a transaction to a client exactly once. service A set of invocable routines that provides a complete, well-defined function. A service comprises a number of operations and can also maintain state. The software that uses a service is called a client; the software providing a service is called a server. A given piece of software can be both a client and a server (for different services) at the same time. In a distributed system, client and server may be on different nodes of a network. Examples: file services, naming services, virtual disk services. Service Instance A description of an instance of the requested Service Name. Service Name The name of a system application virtual disk. Multiple virtual disks or a single disk can be mapped to a single physical medium. Conversely, a single virtual disk can span multiple physical media. Glossary-8 Session layer A layer that defines the system-dependent aspect of logical link communication. A logical link is a circuit on which information flows in two directions. Session control functions include name-to-address translation, process addressing, and, in some systems, process activation and access control. slot See transaction slot. slot number See transaction slot number. solicitation A function that allows a client to transmit data to all servers and receive response data from specific servers. A client builds a dynamic service binding capability, in which the decision to connect to a particular server can be deferred until a specific service is needed. Solicitation layer A component of the LASTport protocol that provides a combined service for directory operations, association management, and task naming. subsystem See system. system A set of components organized in a particular fashion and working together to achieve a certain outcome or objective. A system exists within an environment and interacts with objects in that environment. Systems themselves can be composed to form even larger systems, sometimes referred to as macrosystems; the constituent systems are then known as subsystems. system application An application program that facilitates the development, management, or use of an information system. Examples: language compilers, data structure viewers, backup and restore tools, file editors, system builders, command language interpreters, compound document editors, mail viewers. Glossary-9 transaction The fundamental client-server communication paradigm supported by the LASTport protocol. A transaction comprises a two-step sequence that takes place within the context of a preexisting association. First, the client establishes the association and supplies request data to the server. The server then returns response data to the client in the context of the transaction that supplied the request data. transaction identifier An identifier that includes a transaction slot number and that is found in the header of every segment passed from the Association layer to the Circuit layer. transaction slot An active exchange in the context of its association. The number of slots supported by an association defines how many exchanges within that association can be active concurrently. transaction slot number A one-byte number that identifies a slot. The slot number identifies a segment as belonging to a particular transaction. All segments for one transaction carry the same slot number for both the request and the response. Transport layer A layer used to route a datagram to its destination. A Transport layer also provides congestion control and packet lifetime control. Glossary-10 ------------------------------------------------------------ Index A ------------------------------------------------------------ Access mode system application, 2-8 validation, 2-8 Acknowledgment message, 1-3, 1-5, 1-8 number, 1-6 Association layer, 1-13, 1-15 Association service, 1-15 B ------------------------------------------------------------ Bandwidth, 1-7 Bound object system application, 2-8 Buffer request and response, 1-12 C ------------------------------------------------------------ Circuit LAT and traditional, compared, 1-5 Circuit layer, 1-13, 1-15 Client-server protocol, 1-3, 1-4, 1-6 Commutative transaction, 1-12, 1-18 Concurrent transaction guarantees, 1-21 Congestion control, 1-10 D ------------------------------------------------------------ Data transfer service, 1-15 Directory service, 1-15 E ------------------------------------------------------------ End-to-end guarantee, 1-2 and acknowledgment message, 1-6 Environment LAN, 1-10 LASTport, 1-7 Error control, 1-8 Error correction, 1-12, 1-17 Error detection, 1-12 F ------------------------------------------------------------ Failure path, 1-11 G ------------------------------------------------------------ Guarantee end-to-end, 1-2 service, 1-12 transaction, 1-16 I ------------------------------------------------------------ Idempotency, 1-7, 1-17 Idempotent procedure, 1-17 Idempotent service, 1-17 Idempotent transaction, 1-12, 1-17 Index-1 InfoServer system assigning Name String, 2-7 L ------------------------------------------------------------ LAN high availability, 1-10 multiple-path, 1-10 LASTport architecture compared to OSI model, 1-13 functional layers, 1-13 systems model, 1-13 LASTport protocol, 1-4, 1-6, 1-8 compared to LAT and traditional transport protocols, 1-2 compared to LAT protocol, 1-6 features, 1-8 operating environment, 1-7 summary of features, 1-1 LASTport/Disk architecture, 2-1 LAT protocol, 1-4, 1-6 Layer Association, 1-15 Circuit, 1-15 Solicitation, 1-14 Load balancing, 1-10 Local area transport (LAT), 1-4, 1-6 Lost transaction, 1-11 M ------------------------------------------------------------ Message acknowledgment, 1-3 commutative, 1-11 idempotent, 1-11 LASTport/Disk, 2-3 multicast, 1-7 Message format system application, 2-4 Message processing system application, 2-8 Multicast capability requirement, 1-7 N ------------------------------------------------------------ Name Space, 2-2, 2-5 Name Space Handler, 2-2 Name String characters, 2-6 constraints, 2-6 specification, 2-6 Network reliability requirement, 1-7 Network model layered, 1-13 OSI, 1-13 Network Services Protocol (NSP), 1-1 O ------------------------------------------------------------ Open Systems Interconnect (OSI), 1-1 OSI protocol, 1-1 Overview of LASTport architecture, 1-1 of LASTport/Disk architecture, 2-1 P ------------------------------------------------------------ Packet LASTport, 1-9 LAT, 1-5 LAT and traditional transport, 1-5 Parameter Code, 2-6 Parameter List, 2-6 Password See Service password Path availability, 1-10 multiple, 1-10 Peer-to-peer transport, 1-3 Process maximum concurrent, 1-10, 1-11 Protection boundary, 1-7 Protocol LASTport, 1-6, 1-8 LAT, 1-4 traditional, 1-3 Index-2 R ------------------------------------------------------------ Registration service, 1-15 Request buffer, 1-12 Response buffer, 1-12 S ------------------------------------------------------------ Server Name specification, 2-7 Service association, 1-15 data transfer, 1-15 directory, 1-15 idempotent, 1-17 registration, 1-15 Service Descriptor, 2-6 Service Instance, 2-6 Service Name, 2-2, 2-6 Service password system application, 2-8 Session system application, 2-8 Solicit response policy system application, 2-9 Solicitation layer, 1-13, 1-14 System application access mode, 2-8 bound object, 2-8 message format, 2-4 message processing, 2-8 service password, 2-8 session, 2-8 solicit response policy, 2-9 Systems model LASTport architecture, 1-13 T ------------------------------------------------------------ Timer system application, 1-8 transaction, 1-18 Transaction, 1-8, 1-16 circular, 1-16 commutative, 1-12, 1-18 concurrent, 1-11, 1-18 Transaction (cont'd) idempotent, 1-12, 1-17 lost, 1-11 pairing of, 1-8 retransmitting, 1-16 Transaction guarantee, 1-16, 1-21 Transaction identifier, 1-19 example, 1-9 semantics, 1-19 slot number, 1-20 Transaction requirements, 1-16 Transaction slot, 1-20 Transaction slot number, 1-20 Transaction timing, 1-18 Transport layer, 1-2 performance, 1-2 Transport protocol, 1-2 LASTport, 1-6 LAT, 1-4 peer-to-peer, 1-3 traditional, 1-3 Index-3