summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2126.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2126.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2126.txt')
-rw-r--r--doc/rfc/rfc2126.txt1403
1 files changed, 1403 insertions, 0 deletions
diff --git a/doc/rfc/rfc2126.txt b/doc/rfc/rfc2126.txt
new file mode 100644
index 0000000..28fef84
--- /dev/null
+++ b/doc/rfc/rfc2126.txt
@@ -0,0 +1,1403 @@
+
+
+
+
+
+
+Network Working Group Y. Pouffary
+Request for Comments: 2126 Digital Equipment Corporation
+Category: Standards Track A. Young
+ ISODE Consortium
+ March 1997
+
+
+ ISO Transport Service on top of TCP (ITOT)
+
+Status of the Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Abstract
+
+ This document is a revision to STD35, RFC1006 written by Marshall T.
+ Rose and Dwight E. Cass. Since the release of RFC1006 in May 1987,
+ much experience has been gained in using ISO transport services on
+ top of TCP. This document refines the protocol and will eventually
+ supersede RFC1006.
+
+ This document describes the mechanism to allow ISO Transport Services
+ to run over TCP over IPv4 or IPv6. It also defines a number of new
+ features, which are not provided in RFC1006.
+
+ The goal of this version is to minimise the number of changes to
+ RFC1006 and ISO 8073 transport protocol definitions, while maximising
+ performance, extending its applicability and protecting the installed
+ base of RFC1006 users.
+
+Table of Contents
+
+ 1. Introduction, Motivation.....................................2
+ 2. The Model....................................................3
+ 2.1 ISO Transport Model.........................................3
+ 2.2 ISO Transport over TCP (ITOT) Model.........................4
+ 2.3 Overview of Protocol and Service............................5
+ 3 Service Definition............................................5
+ 3.1 Transport Service Definition................................5
+ 3.1.1 Transport Service Definition Primitives...................6
+ 3.2 Network Service Definition..................................7
+ 3.2.1 ISO 8348 CONS primitives..................................7
+ 3.2.2 TCP Service primitives....................................8
+ 3.2.3 Mapping TCP as a Network Service Provider.................8
+
+
+
+Pouffary & Young Standards Track [Page 1]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ 3.2.3.1 Network Connection Establishment........................8
+ 3.2.3.2 Network Data Transfer...................................9
+ 3.2.3.3 Network Connection Release.............................10
+ 4. Transport Protocol Specification............................10
+ 4.1 Class 0 over TCP...........................................10
+ 4.1.1 Connection Establishment.................................11
+ 4.1.2 Data Transfer............................................11
+ 4.1.3 Connection Release.......................................11
+ 4.2 Class 2 over TCP...........................................12
+ 4.2.1 Connection Establishment.................................12
+ 4.2.2 Data Transfer............................................13
+ 4.2.3 Connection Release.......................................15
+ 4.3 TPKT Packet Format.........................................15
+ 5. Address representations.....................................16
+ 5.1 String representation of ITOT access point addresses.......17
+ 5.2 OSI Network Address encoding...............................17
+ 6. Notes to Implementors.......................................17
+ 6.1 TCP Connection Establishment...............................17
+ 6.2 TCP Data transfer..........................................17
+ 6.3 Class negotiation..........................................18
+ 6.4 Default maximum TPDU size..................................18
+ 6.5 Class 0 TPDU bit encoding..................................18
+ 6.6 Class 2 Options............................................19
+ 6.7 Class 2 Expedited Data Acknowledgement.....................21
+ 6.8 Class 2 Normal Data and Expedited Data handling............21
+ 6.9 Class 2 Forward Connection procedure.......................22
+ 6.10 TPKT......................................................22
+ 7. Rationale - Interoperability with RFC1006...................22
+ 8. Security Considerations.....................................23
+ Acknowledgements...............................................23
+ References.....................................................23
+ Authors' Addresses.............................................25
+
+1. Introduction, Motivation
+
+ There are two basic approaches which can be taken when "porting" ISO
+ applications to TCP/IP ([RFC793],[RFC791]) and IPv6 [IPV6]
+ environments. One approach is to port each individual application
+ separately, developing local protocols on top of TCP. A second
+ approach is based on the notion of layering the ISO Transport Service
+ over TCP/IP. This approach solves the problem for all applications
+ which use the ISO Transport Service. This document describes the
+ second approach.
+
+ The protocol described in this memo is based on the observation that
+ both the Internet Protocol Suite and the ISO Protocol Suite are
+ layered systems. A key aspect of the layering principle is that of
+ layer-independence. The concept of layer-independence means that if
+
+
+
+Pouffary & Young Standards Track [Page 2]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ one preserves the services offered by a particular layer (the
+ Service-Provider) then the Service-User at that layer is completely
+ unaffected by changes in the underlying layers or by the protocol
+ used within the layer.
+
+ This document defines a Transport Service which appears to be
+ identical to the Services and Interfaces offered by the ISO Transport
+ Service Definition [ISO8072], but which will in fact implement the
+ ISO Transport Protocol [ISO8073] on top of TCP/IP (IPv4 or IPv6),
+ rather than the ISO Network Service [ISO8348].
+
+ The basis of this document is STD35, RFC1006 [RFC1006] written by
+ Marshall T. Rose and Dwight E. Cass and it defines two transport
+ classes of service. Transport Class 0 refines and supersedes the
+ RFC1006 protocol and is aimed at preserving the RFC1006 installed
+ base. Transport Class 2 defines a number of new features which are
+ not provided in RFC1006, such as independence of Normal and Expedited
+ Data channels and Explicit Transport Disconnection. These new
+ features are largely based on RFC1859 [RFC1859] and extend the
+ applicability of RFC1006 to new groups of applications.
+
+ This document specifies changes to the standards mentioned above and
+ must be read in the context of the above mentioned standards. It will
+ not be meaningful on its own.
+
+ The 'well known' TCP port 102 is reserved for hosts which implement
+ the Protocol described in this document. Note that the Protocol does
+ not mandate the use of TCP port 102 for all connections.
+
+2. The Model
+
+ This section describes the differences between the model used by the
+ ISO Transport and that described in this document.
+
+2.1 ISO Transport Model
+
+ The ISO 8072 standard describes the ISO Transport Service Definition
+ (TS). The ISO Transport Service Definition describes the services
+ offered by the Transport Service Provider and the interfaces used to
+ access these services.
+
+ The ISO 8073 standard describes the ISO Transport Protocol
+ Specification (TP). The ISO Transport Protocol specifies common
+ encoding rules and a number of classes of transport protocol
+ procedure which can be used with different network Quality of
+ Service.
+
+
+
+
+
+Pouffary & Young Standards Track [Page 3]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ The ISO 8348 standard describes the ISO Network Service Definition
+ (NS). The ISO Network Service Definition describes the services
+ offered by the network service Provider and the interfaces used to
+ access these services.
+
+ The ISO Network Service specifies two type of service:
+
+ - Connection Oriented Network Service (CONS)
+
+ - ConnectionLess Network Service (CLNS)
+
+ The ISO Transport Protocol specifies five classes of procedures when
+ operating over CONS and one class of procedure when operating over
+ CLNS.
+
+ The relationship of these ISO standards is illustrated below:
+
+ Transport Service User
+ |
+ |-ISO Transport Service Definition [ISO8072]
+ |
+ +--------------------------------------------------+
+ | Transport Service Provider |
+ | ISO Transport Protocol Specification [ISO8073] |
+ +--------------------------------------------------+
+ |
+ |-ISO Network Service Definition [ISO8348]
+ |
+
+2.2 ISO Transport over TCP (ITOT) Model
+
+ This document defines a model which provides ISO Transport Service,
+ with minor extensions, running over TCP.
+
+ The ISO 8072 Transport Service is supported with minor modifications.
+ See section 3.1.
+
+ The ISO 8073 Transport Protocol with some modifications is used to
+ provide the modified Transport Service.
+
+ The Transmission Control Protocol is used in place of the ISO 8348 to
+ provide a CONS like service. See section 4.
+
+ This document specifies a simple encapsulation mechanism between the
+ modified ISO 8073 Transport Protocol and the TCP.
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 4]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ ISO 8073 Transport Protocol specifies five classes when operating
+ over ISO 8348 CONS. This document specifies how to operate class 0
+ and 2 over TCP. This document does not prevent use of other classes
+ from operating over TCP, but their specification is beyond the scope
+ of this document.
+
+ The relationship of these standards is illustrated below:
+
+ Transport Service User
+ |
+ |-ISO Transport Service (modified)
+ |
+ +--------------------------------------------------+
+ | Transport Service Provider |
+ | ISO Transport Protocol (modified) Specification |
+ +--------------------------------------------------+
+ |
+ |-TCP as a Connection Oriented Network Service
+ |
+
+2.3 Overview of Protocol and Service
+
+ This document defines use of the ISO Transport Protocol (with some
+ extensions) running over TCP. Two variants of the protocol are
+ defined, "Class 0 over TCP" and "Class 2 over TCP", which are based
+ closely on the ISO Transport Class 0 and 2 Protocol.
+
+ Section 3 defines the Service offered to the Transport User by this
+ protocol, and shows the differences from the ISO Transport Service.
+ The mapping between the Service primitives in the ISO Network Service
+ and TCP are defined. Section 4 defines the Transport Protocol.
+
+3 Service Definition
+
+ This section describes the Transport Service offered to the Transport
+ User. It also defines the mapping between the Network Service
+ Definition and the TCP Service Definition.
+
+3.1 Transport Service Definition
+
+ ISO 8072 Transport Service is supported with the following
+ extensions:
+
+ - Use of Quality of Service parameter is not defined
+
+ - Access to Non-disruptive Transport Disconnection
+
+
+
+
+
+Pouffary & Young Standards Track [Page 5]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+3.1.1 Transport Service Definition Primitives
+
+ Information is transferred to and from the TS-User in the Transport
+ Service primitives listed below:
+
+ Actions
+
+ T-CONNECT.REQUEST
+ - a TS-User indicates that it wants to establish transport
+ connection
+
+ T-CONNECT.RESPONSE
+ - a TS-User indicates that it will honour the request
+
+ T-DISCONNECT.REQUEST
+ - a TS-User indicates that the transport connection is to
+ be closed
+
+ T-DATA.REQUEST
+ - a TS-User sends data
+
+ T-EXPEDITED DATA.REQUEST
+ - a TS-User sends "expedited" data
+
+ Events
+
+ T-CONNECT.INDICATION
+ - a TS-User is notified that a transport connection
+ establishment is in progress
+
+ T-CONNECT.CONFIRMATION
+ - a TS-User is notified that the transport connection has been
+ established
+
+ T-DISCONNECT.INDICATION
+ - a TS-User is notified that the transport connection is closed
+
+ T-DATA.INDICATION
+ - a TS-User is notified that data can be read from the transport
+ connection
+
+ T-EXPEDITED_DATA.INDICATION
+ - a TS-User is notified that expedited data can be read from
+ the transport connection
+
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 6]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+3.2 Network Service Definition
+
+ This section describes how TCP is used to provide ISO 8348 CONS.
+
+3.2.1 ISO 8348 CONS primitives
+
+ Information is transferred to and from the NS-provider in the Network
+ Service Primitives listed below:
+
+ Actions
+
+ N-CONNECT.REQUEST
+ - a NS-user indicates that it wants to establish a network
+ connection
+
+ N-CONNECT.RESPONSE
+ - a NS-user indicates that it will honour the request
+
+ N-DISCONNECT.REQUEST
+ - a NS-user indicates that the network connection is to be
+ closed
+
+ N-DATA.REQUEST
+ - a NS-user sends data
+
+ N-EXPEDITED_DATA.REQUEST
+ - a NS-user sends "expedited" data
+
+ Events
+
+ N-CONNECT.INDICATION
+ - a NS-user is notified that a network connection establishment
+ is in progress
+
+ N-CONNECT.CONFIRMATION
+ - a NS-user is notified that the network connection has been
+ established
+
+ N-DISCONNECT.INDICATION
+ - a NS-user is notified that the network connection is closed
+
+ N-DATA.INDICATION
+ - a NS-user is notified that data can be read from the network
+ connection
+
+ N-EXPEDITED_DATA.INDICATION
+ - a NS-user is notified that expedited data can be read from
+ the connection
+
+
+
+Pouffary & Young Standards Track [Page 7]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+3.2.2 TCP Service primitives
+
+ The mapping between, ISO 8348 CONS primitives and TCP Service
+ primitives, defined in this document assumes that the TCP offers the
+ following service primitives:
+
+ Actions
+
+ TCP-LISTEN_PORT
+ - PASSIVE open on given port
+
+ TCP-OPEN_PORT
+ - ACTIVE open to the given port
+
+ TCP-READ_DATA
+ - data is read from the connection
+
+ TCP-SEND_DATA
+ - data is sent on the connection
+
+ TCP-CLOSE
+ - the connection is closed (pending data is sent)
+
+ Events
+
+ TCP-CONNECTED
+ - open succeeded (either ACTIVE or PASSIVE)
+
+ TCP-CONNECT_FAIL
+ - ACTIVE open failed
+
+ TCP-DATA_READY
+ - Data can be read from the connection
+
+ TCP-ERRORED
+ - the connection has errored and is now closed
+
+ TCP-CLOSED
+ - an orderly disconnection has started
+
+3.2.3 Mapping TCP as a Network Service Provider
+
+3.2.3.1 Network Connection Establishment
+
+ In order to perform a N-CONNECT.REQUEST action, the TS-Provider
+ performs a TCP-OPEN_PORT to the desired IPv4 or IPv6 address using
+ the selected TCP port. When the TCP signals either success or
+ failure, this results in an N-CONNECT.INDICATION action.
+
+
+
+Pouffary & Young Standards Track [Page 8]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ In order to await a N-CONNECT.INDICATION event, a server performs a
+ TCP-LISTEN_PORT to the selected TCP port. When a client successfully
+ connects to this port, the TCP-CONNECTED event occurs and an implicit
+ N-CONNECT.RESPONSE action is performed.
+
+ Mapping parameters between the TCP service and the ISO 8348 CONS
+ service is done as follow:
+
+ Network Service TCP
+ --------------- ---
+ CONNECTION ESTABLISHMENT
+
+ Called address server's IPv4 or IPv6 address
+ and TCP port number.
+
+ Calling address client's IPv4 or IPv6 address
+
+ all others parameters ignored
+
+ Please also refer to 'Notes to Implementors' section 6.1.
+
+ TCP port 102 is reserved for implementations conforming to this
+ specification. Use of any TCP port is conformant to this
+ specification.
+
+3.2.3.2 Network Data Transfer
+
+ In order perform a N-DATA.REQUEST action, the TS-provider constructs
+ the desired transport protocol data unit (TPDU), encapsulates the
+ TPDU in a discrete unit called TPKT and uses the TCP-SEND_DATA
+ primitive. Please also refer to 'Notes to Implementors' section 6.2.
+
+ In order to trigger a N-DATA.INDICATION action, the TCP indicates
+ that data is ready through TCP-DATA_READY event and a TPKT is read
+ using the TCP-READ_DATA primitive.
+
+ Mapping parameters between the TCP service and the ISO 8348 CONS
+ service is done as follow:
+
+ Network Service TCP
+ --------------- ---
+ DATA TRANSFER
+
+ NS User Data (NSDU) DATA
+
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 9]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+3.2.3.3 Network Connection Release
+
+ In order to perform an N-DISCONNECT.REQUEST action, the TS-provider
+ simply closes the TCP connection through TCP-CLOSE primitive.
+
+ In order to trigger a N-DISCONNECT.INDICATION, the TCP indicates that
+ the connection has been closed through TCP-CLOSE event. If the TCP
+ connection has failed the TCP indicates that the connection has been
+ closed through TCP-ERRORED event, this trigger a N-
+ DISCONNECT.INDICATION.
+
+ Mapping parameters between the TCP service and the ISO 8348 CONS
+ service is done as follow:
+
+ Network Service TCP
+ --------------- ---
+ CONNECTION RELEASE
+
+ all parameters ignored
+
+4. Transport Protocol Specification
+
+ ISO 8073 Transport Protocol Classes 0 and 2 are supported with
+ extensions as defined in each subsections below.
+
+ A Transport Protocol class is selected for a particular transport
+ connection based on the requirements of the TS-User.
+
+ ISO 8073 Transport Protocol exchanges information between peers in
+ discrete units of information called transport protocol data units
+ (TPDU). The protocol defined in this document encapsulates these
+ TPDUs in discrete units termed Packets (TPKT).
+
+ This document mandates the implementation of ISO 8073 Transport
+ Protocol options negotiation (which includes class negotiation).
+
+ Please refer to 'Notes to Implementors' section 6.3 with respect to
+ Class negotiation and to the 'Rationale' section 7. with respect to
+ Interoperability with RFC1006.
+
+4.1 Class 0 over TCP
+
+ Class 0 provides the functions needed for connection establishment
+ with negotiation, data transfer with segmentation, and protocol error
+ reporting. It provides Transport Connection with flow control based
+ on that of the NS-provider (TCP). It provides Transport
+ Disconnection based on the NS-provider Disconnection.
+
+
+
+
+Pouffary & Young Standards Track [Page 10]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ Class 0 is suitable for data transfer with no Explicit Transport
+ Disconnection.
+
+4.1.1 Connection Establishment
+
+ The principles used in connection establishment are based upon those
+ described in ISO 8073, with the following extensions:
+
+ - Connect Data may be exchanged using the user data fields
+ of Connect Request (CR) and Connect Confirm (CC) TPDUs
+
+ - Use of "Expedited Data Transfer Service" may be negotiated
+ using the negotiation mechanism specified in ISO 8073. The
+ default is to not use "Expedited Data Transfer Service".
+
+ - Non-standard TPDU size may be negotiated using the negotiation
+ mechanism specified in ISO 8073. The maximum TPDU size is 65531
+ octets. The Default maximum TPDU size is 65531 octets.
+ Please refer to 'Notes to Implementors' section 6.4.
+
+4.1.2 Data Transfer
+
+ The elements of procedure used during transfer are based upon those
+ presented in ISO 8073, with the following extension:
+
+ - Expedited Data may be supported (if negotiated during connection
+ establishment) by sending the defined Expedited Data (ED) TPDU.
+
+ The ED TPDU is sent inband on the same TCP connection as all of the
+ other TPDUs.
+
+ To support Expedited Data a non-standard TPDU is defined. The format
+ used for the ED TPDU is nearly identical to the format for the Normal
+ Data (DT) TPDU. The only difference between ED TPDU and DT TPDU is
+ that the value used for the TPDU code is ED and not DT. The size of a
+ Expedited Data user data field is 1 to 16 octets.
+
+ For TPDU bit encoding please refer to 'Notes to Implementors' section
+ 6.5.
+
+4.1.3 Connection Release
+
+ The elements of procedure used during a connection release are
+ identical to those presented in ISO 8073.
+
+ Transport Disconnection is based on the NS-provider (TCP)
+ Disconnection and is therefore disruptive.
+
+
+
+
+Pouffary & Young Standards Track [Page 11]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+4.2 Class 2 over TCP
+
+ Class 2 provides the functions needed for connection establishment
+ with negotiation, data transfer with segmentation, and protocol error
+ reporting. It provides Transport Connection with flow control based
+ on that of the NS-provider (TCP). It provides Explicit Transport
+ Disconnection.
+
+ Class 2 is suitable when independence of Normal and Expedited Data
+ channels are required or when Explicit Transport Disconnection is
+ needed.
+
+4.2.1 Connection Establishment
+
+ The principles used in connection establishment are based upon those
+ described in ISO 8073, with the following extensions:
+
+ - Connection Request and Connection Confirmation TPDUs may
+ negotiate use of "Transport Expedited Data Transfer" service.
+ "Transport Expedited Data Transfer" service is selected
+ by setting bit 1 of the "Additional Option" parameter,
+ and is negotiated using the mechanism specified in ISO 8073.
+
+ The default is to not use "Transport Expedited Data Transfer
+ Service".
+
+ - Connection Request and Connection Confirmation TPDUs may
+ negotiate use of "Expedited Data Acknowledgement".
+ "Expedited Data Acknowledgement" is selected by setting
+ bit 6 of the "Additional Option" parameter, and is
+ negotiated using the mechanism specified in ISO 8073.
+
+ The default is to not use "Expedited Data Acknowledgement"
+ for Expedited Data transfer.
+
+ - Connection Request and Connection Confirmation TPDUs may
+ negotiate use of the "Non-blocking Expedited Data" service.
+ "Non-blocking Expedited Data" is selected by setting
+ bit 7 of the "Additional Option" parameter, and is
+ negotiated using the mechanism specified in ISO 8073.
+
+ The default is to not use the "Non-blocking Expedited
+ Data" service.
+
+ - Connection Request and Connection Confirmation TPDUs may
+ negotiate use of either "Forward Connection (Splitting
+ and Recombining)" or "Reverse Connection" procedure for
+ Expedited Data transfer.
+
+
+
+Pouffary & Young Standards Track [Page 12]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ Use of "Forward Connection" or use of "Reverse Connection"
+ procedure is selected by setting bit 4 of the "Additional
+ Option" parameter, and is negotiated using the mechanism
+ specified in ISO 8073.
+
+ The default is to use "Forward Connection" procedure for
+ Expedited Data transfer.
+
+ - Connection Request and Connection Confirmation TPDUs must not
+ negotiate the use of "Explicit Flow Control".
+
+ - Non-standard TPDU size may be negotiated using the negotiation
+ mechanism specified in ISO 8073. The maximum TPDU size is 65531
+ octets. The default maximum TPDU size is 65531 octets.
+ Please refer to 'Notes to Implementors' section 6.4.
+
+ In the absence of a Flow Control policy, the use of ISO 8073
+ Multiplexing procedure lead to degradation of the quality of service.
+ The Protocol defined in this document does not supported
+ Multiplexing.
+
+ For the values of the "Additional Option" parameter please refer to
+ 'Notes to Implementors' section 6.6.
+
+ For Class 2 options Profile please also refer to 'Notes to
+ Implementors' section 6.6.
+
+4.2.2 Data Transfer
+
+ The elements of procedure used during transfer are based upon those
+ presented in ISO 8073, with the following extensions:
+
+ - Expedited Data may be supported (if negotiated during connection
+ establishment) by sending Expedited Data (ED) TPDU.
+
+ - "Expedited Data Acknowledgement" may be supported (if negotiated
+ during connection establishment) by sending Expedited Data
+ Acknowledgement (EA) TPDU.
+
+ When using "Expedited Data Acknowledgement", ED TPDUs require
+ acknowledgement, and once an ED TPDU is transmitted no further
+ DT/ED TPDUs may be sent until the outstanding ED TPDU has been
+ acknowledged.
+
+ When non-use of "Expedited Data Acknowledgement" has been
+ negotiated, ED TPDUs require no acknowledgement, and further DT/ED
+ TPDUs may be sent immediatly.
+
+
+
+
+Pouffary & Young Standards Track [Page 13]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ Please refer to 'Notes to Implementors' section 6.7 and section
+ 6.8.
+
+ - "Non-blocking Expedited Data" service may be supported (if
+ negotiated during connection establishment).
+
+ When using "Non-blocking Expedited Data" service, the sender of an
+ ED TPDU shall send the ED TPDU on both the Normal Data and
+ Expedited Data TCP connections. Transmission of subsequent DT TPDU
+ will not be interrupted. The receiver of ED TPDU counts how many
+ ED TPDU it has seen on each TCP connection, and will only deliver
+ to the TS-User the ED TPDU from the TCP connection with the higher
+ count.
+
+ When non-use of "Non-blocking Expedited Data" has been negotiated,
+ ED TPDUs will not be duplicated.
+
+ Please refer to 'Notes to Implementors' section 6.7 and section
+ 6.8.
+
+ - For Expedited Data transfer, there are two possible
+ procedures for the establishment and assignment of the Expedited
+ Data TCP connection. Which one is used is negotiated during
+ connection establishment.
+
+ Both the "Forward Connection" procedure and "Reverse Connection"
+ procedure guarantee independence of the Normal Data TCP connection
+ from the Expedited Data TCP connection. They also ensure that a
+ busy Normal Data TCP connection cannot block an Expedited Data TCP
+ connection.
+
+ The Expedited Data TCP connection created by either procedure must
+ be between the same pair of hosts as the Normal Data TCP
+ connection, must not be shared among Transport Connections, and
+ must remain established until the Transport Connection is
+ terminated, at which time it must be closed.
+
+ TCP connections created for Expedited Data transfer should also use
+ the TCP primitives defined in this document.
+
+ The Forward Connection (Splitting and Recombining) procedure is
+ defined in ISO 8073. This procedure allows a transport connection
+ to make use of multiple TCP connections. Please refer to 'Notes to
+ Implementors' section 6.9.
+
+ The Reverse Connection procedure is not defined in ISO 8073. When
+ using the Reverse Connection procedure the initiator of a Transport
+ Connection creates a Normal Data TCP connection using an
+
+
+
+Pouffary & Young Standards Track [Page 14]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ arbitrarily-chosen local TCP port 'x' and a known remote TCP port
+ (either the ITOT well-known port, or some other). The initiator
+ listens for an incoming TCP connection on the TCP port 'x'. The
+ responder of the Transport Connection must create a second TCP
+ connection (to be used for Expedited Data) using an arbitrarily-
+ chosen local TCP port 'y' and the remote TCP port 'x' , before it
+ can issue a CC TPDU on the Normal Data TCP connection. The
+ initiator need not listen for further TCP connections on port 'x'
+ after the Expedited Data TCP connection is established.
+
+4.2.3 Connection Release
+
+ The elements of procedure used during a connection release are based
+ upon those described in ISO 8073. A connection can be terminated by
+ the TS-user in one of two ways:
+
+ - Disruptive Disconnect
+
+ - Non-Disruptive Disconnect
+
+ Disconnect Request (DR) and Disconnect Confirm (DC) TPDUs are
+ exchanged in both cases. The DR TPDU carries a Reason code indicating
+ the reason for the Disconnection.
+
+ Disruptive Disconnect specifies that all TPDUs still at the source
+ are not required to be sent to the destination before the connection
+ is disconnected. The DR Reason code is normal (80 hex).
+
+ Non-Disruptive Disconnect specifies that all TPDUs already given to
+ the local TS-provider must be delivered to the remote TS-user, before
+ the connection is disconnected. The DR Reason code is normal (80 hex)
+ with Additional Information parameter value set to 80 hex.
+
+4.3 TPKT Packet Format
+
+ A fundamental difference between the TCP and the ISO Network Service
+ expected by ISO Transport is that the TCP manages a continuous stream
+ of octets, with no explicit boundaries.
+
+ ISO Transport expects information to be sent and delivered in
+ discrete objects termed Network Service Data Units (NSDU). Although
+ ISO Transport allows combination of more than one TPDU inside a
+ single NSDU for the purposes of discussion an NSDU is identical to a
+ TPDU. Please refer to ISO 8073 for the valid set of concatenated
+ TPDUs.
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 15]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ The protocol described by this memo uses a simple packetization
+ scheme in order to delimit TPDU. Each packet (TPKT), is viewed as an
+ object of variable length composed of an integral number of octets.
+
+ A TPKT consists of two part:
+
+ - a Packet Header
+
+ - a TPDU.
+
+ The format of the Packet Header is constant regardless of the type of
+ TPDU. The format of the Packet Header is as follows:
+
+ +--------+--------+----------------+-----------....---------------+
+ |version |reserved| packet length | TPDU |
+ +----------------------------------------------....---------------+
+ <8 bits> <8 bits> < 16 bits > < variable length >
+
+ where:
+
+ - Protocol Version Number
+ length: 8 bits
+ Value: 3
+
+ - Reserved
+ length: 8 bits
+ Value: 0 - (See 'Notes to Implementors' section 6.10)
+
+ - Packet Length
+ length: 16 bits
+ Value: Length of the entire TPKT in octets, including Packet
+ Header
+
+ - TPDU
+ ISO Transport TPDU as defined in ISO 8073 and as defined in this
+ document.
+
+5. Address representations
+
+ It is desirable to be able to represent ITOT access point addresses
+ as:
+
+ - Printable strings
+
+ - OSI Network Addresses (often known as NSAP addresses
+ or simply NSAPAs)
+
+ This section defines the formats which MUST be used in each case.
+
+
+
+Pouffary & Young Standards Track [Page 16]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+5.1 String representation of ITOT access point addresses
+
+ RFC1278 [RFC1278] defines a general string representation for OSI
+ Presentation Addresses, including specific reference to RFC1006
+ addresses which encapsulate IPv4 addresses. RFC1278 is also
+ applicable to ITOT addresses which encapsulate IPv4 addresses.
+
+ This RFC is currently being updated to define a string representation
+ for ITOT addresses which encapsulate IPv6 addresses.
+
+ ITOT access point address string representation specify an IP address
+ (IPv4 or IPv6) and an optional TCP port number.
+
+5.2 OSI Network Address encoding
+
+ RFC1277 [RFC1277] defines a general mechanism to encode addressing
+ information within OSI Network Addresses (NSAPA), including specific
+ reference to RFC1006 using IPv4. RFC1277 is also applicable to ITOT
+ addresses using IPv4.
+
+ The RFC "IPv6 addresses inside an NSAPA" [IPv6] defines general
+ mechanisms for the support of NSAP addressing in an IPv6 network. It
+ also defines how to embed an IPv6 address inside a OSI NSAP address.
+
+ This RFC is applicable to ITOT addresses using IPv6. For ITOT
+ addresses, the default selector of the NSAPA is defined to have the
+ value '10000000'B.
+
+ It should be noted that given that an IPv6 addresses can encode IPv4
+ addresses, this format can also encode ITOT addresses using IPv4.
+
+6. Notes to Implementors
+
+6.1 TCP Connection Establishment
+
+ Implementors should be aware that ISO transport protocols assume that
+ they will be told by the network service provider (in this case
+ TCP/IP) when the network connection being used to transmit their
+ TPDUs is unexpectedly terminated. It is therefore strongly suggested
+ that the TCP keep alive mechanism be selected, as this ensures
+ reporting of network connection loss.
+
+6.2 TCP Data transfer
+
+ For performance reason it is suggested that the Nagle algorithm [RFC
+ 896] be disabled (using the TCP_NODELAY socket option). This feature
+ allows TPKT data to be sent without delay.
+
+
+
+
+Pouffary & Young Standards Track [Page 17]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+6.3 Class negotiation
+
+ The principle used in Class negotiation is identical to those
+ described in ISO 8073. Class and options are negotiated during
+ Connection establishment. The choice made by the Transport will
+ depend upon the TS-User requirements as expressed via T-CONNECT
+ service primitives.
+
+ The initiator of the Transport Connection proposes a preferred class
+ and may propose an alternative class.
+
+ The responder selects one class defined in the table below.
+
+ If the preferred class is not selected then on receipt of the connect
+ confirm TPDU the initiator adjusts its operation according to the
+ class selected.
+
+ +---------------------------------------------+----------------------+
+ | Proposed in CR TPDU | CC TPDU |
+ | | |
+ |Preferred class | Alternative class | Response |
+ +--------------------+------------------------+----------------------+
+ | | | |
+ |class 0 | none | class 0 |
+ | | | |
+ |class 2 | class 0 | class 2 or 0 |
+ | | | |
+ |class 2 | none | class 2 |
+ | | | |
+ +---------------------------------------------+----------------------+
+
+6.4 Default maximum TPDU size
+
+ The default maximum TPDU size value specified in this document breaks
+ ISO Transport negotiation rule which states that the maximum TPDU
+ size specified or defaulted by the CC TPDU cannot be greater than the
+ maximum TPDU size proposed by the CR TPDU.
+
+ To avoid the consequences of this, it is strongly recommended that
+ the CC TPDU always specifies the maximum TPDU size value.
+
+6.5 Class 0 TPDU bit encoding
+
+ This protocol no longer allows credit and TPDU-NR (bits 0 to 6)
+ fields to be ignored on input, which is in line with ISO 8073
+ encoding rules. RFC1006 TPDU encoding defined inconsistent encoding
+ rules.
+
+
+
+
+Pouffary & Young Standards Track [Page 18]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+6.6 Class 2 Options
+
+ Class 2 Additional Option parameter value
+
+ +--------------------------------------------------------------------+
+ | BIT | OPTION |
+ +--------------------------------------------------------------------+
+ | | |
+ | 8 | Not applicable |
+ | | |
+ | 7 | = 1 Use of Non-blocking Expedited Data |
+ | | = 0 Non-use of Non-blocking Expedited Data (default) |
+ | | |
+ |(*) 6 | = 1 Use of Expedited Data Acknowledgement |
+ | | = 0 non-use of Expedited Data Acknowledgement (default) |
+ | | |
+ | 5 | Not applicable |
+ | | |
+ |(*) 4 | = 1 Use of Reverse Connection procedure |
+ | | = 0 Use of Forward Connection procedure (default) |
+ | | |
+ | 3 | Not applicable |
+ | | |
+ | 2 | Not applicable |
+ | | |
+ | 1 | = 1 Use of Transport Expedited Data Service |
+ | | = 0 Non-use of Transport Expedited Data Service (default) |
+ | | |
+ +--------------------------------------------------------------------+
+
+ (*) In ISO 8073, bit 4 is defined as use of "Network Expedited" and
+ bit 6 is defined as "Request Acknowledgement".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 19]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ Class 2 Options Profile
+
+ +--------------------------------------------------------------------+
+ | Bits Service selected |
+ | 1 4 6 7 |
+ +--------------------------------------------------------------------+
+ | 0 x x x Non-use of Transport Expedited Data Service |
+ | ---------------------------------------------------------|
+ | Bits 4 6 7 are not applicable (*) |
+ +--------------------------------------------------------------------+
+ | 1 x x x Use of Transport Expedited Data Service |
+ | ---------------------------------------------------------|
+ | 1 0 x x Use of Expedited Data Service with Forward Connection|
+ | -----------------------------------------------------|
+ | 1 0 1 0 Forward Connection with Expedited Data |
+ | Acknowledgement |
+ | 1 0 1 1 Forward Connection with Expedited Data |
+ | Acknowledgement and use of Non-blocking |
+ | Expedited Data (**) |
+ | --------------------------------------------|
+ | 1 0 0 0 Forward Connection with non-use of Expedited|
+ | Data Acknowledgement (***) |
+ | 1 0 0 1 Forward Connection with non-use of Expedited|
+ | Data Acknowledgement and use of Non-blocking|
+ | Expedited Data |
+ | -----------------------------------------------------|
+ | 1 1 x x Use of Expedited Data Service with Reverse Connection|
+ | -----------------------------------------------------|
+ | 1 1 1 0 Reverse Connection with Expedited Data |
+ | Acknowledgement |
+ | 1 1 1 1 Reverse Connection with Expedited Data |
+ | Acknowledgement and use of Non-blocking |
+ | Expedited Data (**) |
+ | --------------------------------------------|
+ | 1 1 0 0 Reverse Connection with non-use of Expedited|
+ | Data Acknowledgement (***) |
+ | 1 1 0 1 Reverse Connection with non-use of Expedited|
+ | Data Acknowledgement and use of Non-blocking|
+ | Expedited Data |
+ +--------------------------------------------------------------------+
+
+ (*) Note the default (0000) provides an RFC1006-like service with
+ Explicit Transport Disconnection.
+
+ (**) Note in this case use of Expedited Data Acknowledgement with use
+ of Non-blocking Expedited Data is a wasted effort (See section 6.5)
+
+
+
+
+
+Pouffary & Young Standards Track [Page 20]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ (***) Note in this case Normal and Expedited Data TPDU are not
+ synchronised. (See section 6.6)
+
+6.7 Class 2 Expedited Data Acknowledgement
+
+ The Protocol specified in this document does not define any
+ relationship between use of "Expedited Data Acknowledgement" option
+ and use of "Non-blocking Expedited Data" service.
+
+ However please note that when using "Non-blocking Expedited Data"
+ service it is a wasted effort to use "Expedited Data
+ Acknowledgement", since ED TPDUs are duplicated and sent on both the
+ Normal Data and Expedited Data TCP connections.
+
+6.8 Class 2 Normal Data and Expedited Data handling
+
+ There exist two separate application requirements for using Expedited
+ Data:
+
+ 1- Synchronisation of the order of delivery between Normal
+ and Expedited Data TPDU.
+
+ 2- Independence of Normal and Expedited data channels. A busy
+ Normal Data channel should not block an Expedited Data channel.
+
+ The protocol described in this document can accommodate both
+ requirements, separately or in combination.
+
+ Synchronisation:
+ If synchronised order of delivery between Normal and Expedited
+ Data TPDU is required then use of either "Expedited Data
+ Acknowledgement" TPDU or use of the "Non-blocking Expedited Data"
+ service must be negotiated during connection establishment.
+
+ If synchronised order of delivery between Normal and Expedited
+ Data TPDU is not required then non-use of "Expedited Data
+ Acknowledgement" need not be negotiated during connection
+ establishment.
+
+ Independence:
+ If Independence of Normal and Expedited data channels is required
+ then Forward or Reverse connection must be negotiated during
+ connection establishment. Expedited data TPDU must be sent on the
+ Expedited data channel.
+
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 21]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ If Independence of Normal and Expedited data channels is not
+ required then Forward connection should be negotiated during
+ connection establishment and the Expedited data channels should
+ never be established. Expedited data TPDU is then sent inband on
+ the Normal data channel.
+
+ Finally please note that independence of Normal and Expedited data
+ channels without synchronisation relaxes the Transport Service
+ definition of Expedited data and is not consistent with ISO 8072.
+
+6.9 Class 2 Forward Connection procedure
+
+ As defined in ISO 8073, when "Forward Connection" (Splitting and
+ Recombining) procedure is used for Expedited Data transmission, ED
+ TPDU must only be sent over an outgoing NS-provider TCP connection.
+
+ As defined in ISO 8073, this document does not mandates use of the
+ Splitting procedure for Expedited Data transmission. The
+ Recombination procedure, which associates Data (normal and expedited)
+ TPDUs arriving for a transport connection over two TCP connections
+ must be handled.
+
+ It is legal to send Expedited Data TPDU inband on the Normal Data TCP
+ connection.
+
+ Please note that the protocol specified in this document does not
+ define when an Expedited Data TCP connection should be established.
+ This is an implementation choice.
+
+ When using "Non-blocking Expedited Data" service it is recommended to
+ not delay establishing Expedited Data TCP connection.
+
+6.10 TPKT
+
+ This document specifies the value of the TPKT reserved field.
+
+ Implementation should not interpret and act upon any value in a
+ reserved field. To avoid Interoperability issues with RFC1006, this
+ field should be ignored on input.
+
+7. Rationale - Interoperability with RFC1006
+
+ We have chosen to maintain the same TPKT protocol version in ITOT as
+ in RFC1006 (version 3). The reason for this decision is that the
+ changes in this document do not conflict with RFC1006. If we were to
+ change the protocol version we would prevent existing RFC1006
+ implementations which mandate version 3 from interoperating with the
+ protocol defined in this document.
+
+
+
+Pouffary & Young Standards Track [Page 22]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ One consequence of this decision relates to class negotiation. The
+ protocol described in this document introduces Class 2 over TCP, and
+ it therefore introduces the need to be able to perform class
+ negotiation between Class 2 and Class 0. While all Transport
+ implementations should be able to handle Class negotiation, we
+ recognise that some RFC1006 implementations cannot. Therefore
+ Implementors should be aware that Class 2 Connect Request (with no
+ Alternative class) could be accepted with a Class 0 Connect Confirm,
+ at which point the Connect Confirm should be rejected as specified in
+ ISO 8073.
+
+8. Security Considerations
+
+ Security issues are not specifically addressed in this document.
+ Operation of this protocol is no more and no less secure than
+ operation of TCP and ISO 8073 protocols. The reader is directed there
+ for further reading.
+
+Acknowledgements
+
+ The authors are pleased to acknowledge the suggestions and comments
+ of Harald T. Alvestrand, Jim Bound, John Day, Mike Dyer, Peter
+ Furniss, Dan Harrington, Steve Kille, Keith G. Knightson, Keith
+ Sklower, Matt Thomas, Robert Watson and many other members of the
+ IETF TOSI mailing list. The support of Allison Mankin of the IESG was
+ essential.
+
+References
+
+ [ISO8072] ISO. "International Standard 8072. Information Processing
+ Systems - Open Systems Interconnection: Transport Service
+ Definition."
+
+ [ISO8073] ISO. "International Standard 8073. Information Processing
+ Systems - Open Systems Interconnection: Transport Protocol
+ Specification." ISO 8073:1992 and 8073:1992/Amd.5:1995.
+
+ [ISO8348] ISO. "International Standard 8348. Information Processing
+ Systems - Open Systems Interconnection: Network Service
+ Definition."
+
+ [RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791,
+ September 1981.
+
+ [RFC793] Postel, J., "Transmission Control Protocol", STD 7,
+ RFC 793, September 1981.
+
+
+
+
+
+Pouffary & Young Standards Track [Page 23]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+ [RFC896] Nagle, J., "Congestion Control in IP/TCP Inertnetworks",
+ RFC 896, January 1984.
+
+ [RFC1006] Rose, M., and D. Cass, "ISO Transport Services on Top of
+ the TCP Version 3", STD 35, RFC 1006, May 1987.
+
+ [RFC1277] Hardcastle-Kille, S., "Encoding Network Addresses to
+ support operation over non-OSI lower layers", RFC 1277,
+ November 1991.
+
+ [RFC1278] Hardcastle-Kille, S., "String encoding of Presentation
+ Address", RFC 1278, November 1991.
+
+ A string encoding of Presentation Address
+ update to RFC1278, Work in Progress.
+
+ [RFC1859] Pouffary, Y., "ISO Transport Class 2 Non-use of Explicit
+ Flow Control over TCP - RFC1006 extension", RFC 1859,
+ October 1995.
+
+ [IPV6] Deering, S., and R. Hinden, "Internet Protocol, Version 6
+ (IPv6) Specification", RFC 1883, December 1995.
+
+ Hinden,, R., and S. Deeing, "IP Version 6 Addressing
+ Architecture", RFC 1884, December 1995.
+
+ Bound, J., Carpenter, B., Harrington, D., Houldsworth, J.,
+ and A. Lloyd, "OSI NSAPs and IPv6", RFC 1888, August 1996.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 24]
+
+RFC 2126 ISO Transport on top of TCP March 1997
+
+
+Authors' Addresses
+
+ Yanick Pouffary
+ End Systems Networking
+ Digital Equipment Corporation
+ Centre Technique (Europe)
+ B.P. 027
+ 950 Routes des colles
+ 06901 Sophia antipolis, France
+
+ Phone: +33 92-95-62-85
+ Fax: +33 92-95-62-35
+ EMail: pouffary@taec.enet.dec.com
+
+
+ Alan Young
+ ISODE Consortium
+ The Dome
+ The Square
+ Richmond, UK
+
+ Phone: +44 181 332 9091
+ Fax: +44 181 332 9019
+ EMail: A.Young@isode.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Pouffary & Young Standards Track [Page 25]
+