home *** CD-ROM | disk | FTP | other *** search
Text File | 2003-06-11 | 49.8 KB | 1,404 lines |
-
-
-
-
-
-
- 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]
-
-