Network Working Group ISO Request for Comments: 892 December 1983 ISO Transport Protocol Specification This document is distributed as an RFC for information only. It does not specify a standard for the ARPA Internet. Note: This document appeared in: ISO/TC97/SC16/WG6. Information Processing Systems - Open Systems Interconnection - Transport Protocol Specification. Computer Communication Review 12, 3-4 (July/October 1982), pp. 24-67. and differs from it only in format. Table of Contents 0. Introduction 1. Scope and Field of Application 2. References Section One - General 3. Definitions 4. Symbols and Abbreviations 5. Overview 5.1 Service provided by the transport layer 5.2 Service assumed from the network layer 5.3 Functions of the transport layer 5.4 Model of the transport layer Section Two - Transport Protocol Specification 6. Protocol Mechanisms 6.1 Assignment to network connection 6.2 Transport protocol data unit (TPDU) transfer 6.3 Data TPDU length and segmenting 6.4 Concatenation and separation 6.5 Connection establishment 6.6 Connection refusal 6.7 Release 6.8 Implicit termination 6.9 Spurious disconnect 6.10 Data TPDU numbering 6.11 Expedited data transfer 6.12 Reassignment 6.13 Reassignment after failure ISO Transport Protocol Specification Page 2 International Standards Organization 6.14 Retention until acknowledgement of TPDUs 6.15 Resynchronization 6.16 Multiplexing and demultiplexing 6.17 Explicit flow control 6.18 Checksum 6.19 Frozen references 6.20 Retransmission on timeout 6.21 Resequencing 6.22 Inactivity control 6.23 Treatment of protocol errors 6.24 Splitting and recombining 7. Protocol Classes 7.0 Protocol description of class 0: simple class 7.1 Protocol description of class 1: basic error recovery class 7.2 Protocol description of class 2: multiplexing class 7.3 Protocol description of class 3: error recovery and multiplexing class 7.4 Protocol description of class 4: error detection and recovery class 8. Encoding 8.1 Summary 8.2 Structure 8.3 Connection Request (CR) 8.4 Connection Confirm (CC) 8.5 Disconnect Request (DR) 8.6 Disconnect Confirm (DC) 8.7 Data (DT 8.8 Expedited Data (ED) 8.9 Data Acknowledgement (AK) 8.10 Expedited Data Acknowledgement (EA) 8.11 Reject (RJ) 8.12 TPDU Error (ERR) Section Three - Conformance 9. Conformance 0. Introduction The Transport Protocol Standard is one of a set of International Standards produced to facilitate the interconection of computer systems. The set of standards covers the services and protocols required to achieve such interconnection. The Transport Protocol Standard is positioned with respect to other related standards by the layers defined in the Reference Model for Open Systems Interconnection (ISO 7498). It is most closely related to, and lies within the field of application of the Transport ISO Transport Protocol Specification Page 3 International Standards Organization Service Standard (DP aaaa). It also uses and makes reference to the Network Service Standard (DP bbbb), whose provisions it assumes in order to accomplish the transport protocol's aims. The interrelationship of these standards is depicted in Figure 1. -----------------------------------TRANSPORT SERVICE DEFINITION----- Transport --Reference to aims--------------- Protocol Specification --Reference to assumptions-------- ------------------------------------NETWORK SERVICE DEFINITION------ Figure 1 - Relationship between the transport protocol and adjacent services The standard specifies a common encoding and a number of classes of transport protocol procedures to be used with different network qualities of service. It is intended that the Transport Protocol should be simple but general enough to cater for the total range of Network Service qualities possible, without restricting future extensions. The protocol is structured to give rise to classes of protocol which are designed to minimize possible incompatibilities and implementation costs. The classes are selectable with respect to the Transport and Network Services in providing the required quality of service for the interconnection of two session entities (note that each class provides a different set of functions for enhancement of service qualities). This protocol standard is concerned with optimisation of network tariffs and the following qualities of service: a) different throughput rates; b) different error rates; c) integrity of data requirements; d) reliability requirements. The aim of this standard is primarily to provide a definition for implementors. Since the protocol is complex, the document contains much material which is advisory or descriptive, but mandatory requirements on implementations are clearly identified. It should be noted that, as the number of valid protocol sequences is very large, it is not possible with current technology to verify that an implementation will operate the protocol defined in this document correctly under all circumstances. It is possible by means of testing ISO Transport Protocol Specification Page 4 International Standards Organization to establish confidence that an implementation correctly operates the protocol in a representative sample of circumstances. It is, however, intended that this standard can be used in circumstances where two implementations fail to communicate in order to determine whether one or both have failed to operate the protocol correctly. The variations and options available within this standard are essential to enable a Transport Service to be provided for a wide variety of applications over a variety of network qualities. Thus, a minimally conforming implementation will not be suitable for use in all possible circumstances. It is important therefore to qualify all references to this standard with statements of the options provided or required or with statements of the intended purpose of provision or use. 1. Scope and Field of Application 1.1 This International Standard Specifies: a) five classes of procedures 1) Class 0. Simple class; 2) Class 1. Basic error recovery class; 3) Class 2. Multiplexing class; 4) Class 3. Error recovery class; 5) Class 4. Error detection and recovery class, for the transfer of data and control information from one transport entity to a peer transport entity; b) the means of negotiating the class of procedures to be used by the transport entities; c) the encoding of the transport protocol data units used for the transfer of data and control information; d) the functional requirements of equipment within a computer system claiming to implement these procedures. 1.2 The procedures are defined in terms of: a) the interactions between peer transport entities through the exchange of transport protocol data units; b) the interactions between a transport entity and the transport service user in the same system through the exchange of transport service primitives; c) the interactions between a transport entity and the network service provider through the exchange of network ISO Transport Protocol Specification Page 5 International Standards Organization service primitives. 1.3 This International Standard is applicable to equipment which supports the Transport Layer of the OSI Reference Model and which wishes to interconnect in an open systems environment. 2. References ISO 7498 Information processing systems - Open systems inter- connection - Basic Reference Model DP aaaa Information processing systems - Open systems inter- connection - Transport service definition (N1169). DP bbbb Information processing systems - Open systems inter- connection - Connection-oriented network service definition (N729) Section One - General 3. Definitions 3.1 Equipment: Hardware or software or a combination of both; it need not be physically distinct within a computer system. 3.2 Transport service user: An abstract representation of the totality of those entities within a single system that make use of the transport service. 3.3 Network service provider: An abstract machine which models the totality of the entities providing the network service, as viewed by a transport entity. Explanatory Notes 1. Definitions 3.1 to 3.3 relate to terms used in clause 1. 2. This standard makes use of the terms, concepts, and definition defined in ISO 7498. 4. Symbols and Abbreviations 4.1 Data Units TPDU Transport protocol data unit TSDU Transport service data unit NSDU Network service data unit 4.2 Types of transport protocol data units ISO Transport Protocol Specification Page 6 International Standards Organization CR TPDU Connection request TPDU CC TPDU Connection confirm TPDU DR TPDU Disconnect request TPDU DC TPDU Disconnect confirm TPDU DT TPDU Data TPDU ED TPDU Expedited data TPDU AK TPDU Data acknowledge TPDU EA TPDU Expedited acknowledge TPDU RJ TPDU Rejected TPDU ERR TPDU Error TPDU 4.3 TPDU fields LI Length indicator (field) CDT Credit (field) TSAP-ID Transport service access point identifier (field) DST-REF Destination reference (field) SCE-REF Source reference (field) EOT End of TSDU mark TPDU-NR DT TPDU number (field) ED-TPDU-NR ED TPDU number (field) YR-TU-NR Sequence number response (field) 4.4 Parameters T (R) Receive sequence number T (S) Send sequence number 4.5 Timer variables T1 Elapse time between retransmissions N The maximum number of retransmissions L Bound for the maximum time between the decision to transmit a TPDU and the receipt of any response relating to it T-WAIT Maximum time for a reassignment to take place before TC failure is assumed I Inactivity timer - Maximum time allowed to elapse between receipt of TPDUs before TC failure is assumed W Window timer - Maximum interval between trans- mission of up to date window information 4.6 Other variables n The number of bits in the sequence number field p The number of bits in the credit field of a CR, CC or AK TPDU ISO Transport Protocol Specification Page 7 International Standards Organization 4.7 Miscellaneous TS-user Transport service user TSAP Transport service access point NSAP Network service access point TC Transport connection NC Network Connection 5. Overview of the Transport Protocol 5.1 Service Provided by the Transport Layer The services provided by the protocol described in this document are connection-oriented services. They are defined in document DP aaaa. The Transport Service primitives provided are summarized in Figure 1. ISO Transport Protocol Specification Page 8 International Standards Organization Primitive Parameters ------------------------------------------------------------------------ T-CONNECT Request To Transport Address, From Indication Transport Address, Expedited Data Option, Quality of Service, TS-User data. ------------------------------------------------------------------------ T-CONNECT Response Responding Address, Quality Confirmation of Service, Expedited Data Option, TS-User data. ------------------------------------------------------------------------ T-DATA Request TS-User data. Indication ------------------------------------------------------------------------ T-EXPEDITED Request TS-User data. DATA Indication ------------------------------------------------------------------------ T-DISCONNECT Request TS-User data. ------------------------------------------------------------------------ T-DISCONNECT Indication Disconnect reason, TS-User data. ------------------------------------------------------------------------ Figure 1. Transport Service Primitives 5.2 Service Assumed from the Network Layer The transport protocol described in this document assumes of the Network Services described in DP bbbb. The Network Service primitives used are summarized in Figure 2. ISO Transport Protocol Specification Page 9 International Standards Organization Primitive X/Y Parameters X/Y/Z ------------------------------------------------------------------------ N-CONNECT Request X Called Address, X Indication X Calling Address, X Response X NS-User data, Z Confirmation X QOS. X ------------------------------------------------------------------------ N-DATA Request X NS-User data, X Indication X Conf. Request Y ------------------------------------------------------------------------ N-DATA Request Y ACKNOWLEDGE Indication ------------------------------------------------------------------------ N-EXPEDITED Request Y DATA Indication NS-User data Y ------------------------------------------------------------------------ N-RESET Request X Indication X Response X Confirmation X ------------------------------------------------------------------------ N-DISCONNECT Request X NS-User data Z Indication X ------------------------------------------------------------------------ X - The Transport Protocol assumes that this facility is provided in all networks. Y - The Transport Protocol assumes that this facility is provided in some networks and a mechanism is provided to optionally use the facility. Z - The Transport Protocol does not use this parameter. Figure 2.