ISO Transport Service on top of the TCP Version: 3
obsoletes
- rfc-983 — ISO transport arrives on top of the TCP
updated by
- rfc-2126 — ISO Transport Service on top of TCP (ITOT)
also
- std-35
Extracted elements (25)
Expedited data is sent on the same TCP connection as normal data, rather than a separate connection. The authors acknowledge this is not fully faithful to the spirit of ISO 8072 but is compliant with the letter of the specification.
Gatewaying between TCP/IP and ISO protocol suites is performed exactly at the transport service access point (TSAP) rather than at lower layers, to maximize the number of ISO layers that can be developed and exercised on a mature TCP/IP infrastructure.
ISO transport class 0 (TP0) is used rather than TP4 because TP0 is designed for reliable network services (e.g., X.25), and TCP provides an equivalent reliable service. Running TP0 over TCP achieves identical functionality to TP4, so ISO upper layers (session, presentation, application) operate without modification.
The default TPDU size was increased from ISO's 128 octets to 65531 octets for performance reasons, exploiting TCP's reliable byte-stream to allow much larger transfer units. The negotiation mechanism from ISO 8073 is retained for downsizing.
Only TPDUs formatted for transport class 0 are exchanged over a TPKT connection. Different ISO transport classes may use slightly different TPDU formats and must not be mixed on a RFC 1006 connection.
Quality of Service (QoS) parameters defined in ISO 8072 are not supported in this version and are left for further study. A future version may map QoS parameters onto corresponding TCP parameters.
Version 3 of the protocol (this memo) supersedes RFC 983 (version 1) and an intervening version 2. Changes between versions are described as minor but unfortunately incompatible, so implementations of different versions cannot interoperate.
Connection release (N-DISCONNECT.REQUEST) is performed by closing the TCP connection. If TCP reports the connection has closed or errored, this constitutes an N-DISCONNECT.INDICATION event.
Expedited data transfer is supported only if negotiated during connection establishment using the ISO 8073 mechanism (setting the 'use of transport expedited data transfer service' bit in Additional Option Selection). The default is not to use this service.
TCP port 102 is reserved for hosts that implement ISO transport services on top of TCP as specified in this memo. All conforming implementations must use this port.
The default TPDU size is 65531 octets instead of the ISO standard default of 128 octets. A smaller size may be negotiated via the ISO 8073 TPDU Size variable-part negotiation mechanism.
The TP specification limits the size of an expedited transport service data unit (XSDU) to 16 octets.
The TSAP ID field (session port) must be interpreted using the GOSIP specification [GOSIP86] for UPPER LAYERS ADDRESSING. No other format is mandated by this memo.
The vrsn field in every TPKT header is always 3 for the version of the protocol described in this memo.
To await an N-CONNECT.INDICATION, a server passively listens on TCP port 102. Upon successful client connection, an implicit N-CONNECT.RESPONSE is performed. Implementations typically have a single server perpetually listening and handing off connections.
To perform an N-CONNECT.REQUEST, the TS-peer performs an active TCP open to the desired IP address on port 102. Success or failure of the TCP open maps directly to N-CONNECT.INDICATION.
A TPKT is the packetization unit used to delimit TPDUs over TCP's byte stream. Each TPKT contains a fixed 4-octet header followed by one TPDU; TPKT length is variable. Transport class 0 does not multiplex multiple TPDUs per NSDU, so one TPKT carries exactly one TPDU.
The mapping from ISO network service primitives to TCP: N-CONNECT maps to TCP active/passive open; N-DATA.REQUEST/INDICATION maps to TCP send/receive; N-DISCONNECT maps to TCP close or error. Address parameters map to IP addresses; all other connection parameters are ignored.
The TS-provider exposes the full ISO 8072 transport service interface to TS-users: T-CONNECT, T-DATA, T-EXPEDITED DATA, and T-DISCONNECT events and actions, providing identical TSAP semantics as native ISO transport.
TCP port 102 is reserved by this memo for hosts implementing ISO transport services on top of TCP.
RFC 1006 contains no security considerations section, reflecting its 1987 vintage. The protocol provides no authentication, integrity protection, or confidentiality for the ISO transport service tunneled over TCP; security must be provided by other means at adjacent layers if required.
The ISO TSAP model is symmetric: all TS-users begin in the IDLE state and transition on either a T-CONNECT.REQUEST (initiator) or a T-CONNECT.INDICATION (responder). There is no inherent client/server distinction at the transport service layer.
The ED TPDU (expedited data) format mirrors the DT TPDU but uses the ED opcode. It contains: header length (8 bits), code|credit, TPDU-NR and EOT (8 bits), and user data. The credit field is always zero on output and ignored on input.
The EOT (end-of-TSDU) indicator in the TPDU-NR field of the ED TPDU is bit 7 (mask 0x80). All other bits of this field must be zero on output and are ignored on input.
The TPKT packet header consists of three fields: vrsn (8 bits), reserved (8 bits), and packet length (16 bits, min=7, max=65535). The packet length encodes the total byte count of the entire TPKT including the header, permitting a maximum TPDU size of 65531 octets.