RFC 1859
ISO Transport Class 2 Non-use of Explicit Flow Control over TCP RFC1006 extension
RFC 1859 π
Title: ISO Transport Class 2 Non-use of Explicit Flow Control over TCP, RFC1006 extension β¨
Author: Y. Pouffary, Digital Equipment Corporation π
Category: Informational π
Date: October 1995 π
Obsoletes / Updates: this header doesn't list anything it obsoletes or updates π
Network Working Group π§
Status of this Memo πΈ
Okay so this memo is just here to inform the Internet community π . It doesn't specify an Internet standard of any kind. Distribution is unlimited, so share it with whoever π«Ά
Table of Contents π
1. Introduction - General recommendations.......................2
2. The protocol.................................................3
2.1 TCP service as a Network Service - The Primitives...........3
2.2 Connection Establishment....................................4
2.3 Data Transfer...............................................5
2.4 Connection Release..........................................6
3. Packet Format................................................6
4. DIGITAL DECnet over TCP/IP...................................8
Acknowledgements................................................9
References......................................................9
Author's Address................................................9
1. Introduction - General recommendations β¨
So this doc is an extension to STD35, RFC1006, which is already a standard for the Internet community π«Ά. It doesn't repeat the protocol definitions from RFC1006 or from International Standard ISO 8073, because those already exist. Instead, it explains how to run ISO Transport Class 2 Non-use of Explicit Flow Control on top of TCP π¦.
This document SHOULD be used alongside RFC1006 and ISO 8073, periodt π .
RFC1006 is the one that shows how to run ISO 8073 Transport Class 0 on top of TCP. This memo is the Class 2 version, which means ISO 8073 Transport Class 2 Non-use of Explicit Flow Control on top of TCP πΈ. Class 2 has the same vibe as Class 0, honestly: a basic connection with minimal overhead β¨.
A transport class gets picked for each transport connection based on the characteristics of the lower layers and what the upper layer needs π§ . Class 2 Non-use of Explicit Flow Control is the move when you want separate virtual data channels for Normal and Expedited Data, or when you want an explicit disconnection of the Transport connection π.
Hosts that choose to implement this extension are expected to listen on the well-known TCP port number 399 π.
It is RECOMMENDED that the well-known RFC1006 TCP port 102 not be used π. The reason is to minimise impact on an existing RFC1006 implementation π«Ά.
The memo also covers how this extension is used within the DIGITAL Network Architecture (DNA) π.
2. The protocol π
The protocol in this memo is basically ISO 8073 Transport Class 2 Non-use of Explicit Flow Control, with a few extras π:
- Expedited Data service is supported. β¨
- Splitting and Recombining MAY be used for Expedited Data transmission. π§©
- The Network Service used is provided by TCP. π
Class 2 allows Multiplexing, but it is RECOMMENDED that this capability not be used, for performance reasons ποΈ.
ISO 8073 peers swap information in discrete units called transport protocol data units (TPDUs) π¦. This protocol wraps those TPDUs up in discrete units called TPKTs π. The structure of TPKTs and how they relate to TPDUs are covered in the next sections π.
2.1 TCP service as a Network Service - The Primitives π¦
Mapping the TCP service primitives to the service primitives ISO 8073 Transport expects is pretty straightforward when you're running over a connection-oriented network service π .
Heads up: the mapping below is a repeat from the RFC1006 standard, so nothing new here π.
network service TCP
--------------- ---
CONNECTION ESTABLISHMENT
N-CONNECT.REQUEST open completes
N-CONNECT.INDICATION listen (PASSIVE open) finishes
N-CONNECT.RESPONSE listen completes
N-CONNECT.CONFIRMATION open (ACTIVE open) finishes
DATA TRANSFER
N-DATA.REQUEST send data
N-DATA.INDICATION data ready followed by read data
CONNECTION RELEASE
N-DISCONNECT.REQUEST close
N-DISCONNECT.INDICATION connection closes or errors
Mapping the parameters between the TCP service and the network service is also straightforward β¨:
network service TCP
--------------- ---
CONNECTION ESTABLISHMENT
Called address server's IP address (4 octets)
Calling address client's IP address (4 octets)
all others ignored
DATA TRANSFER
NS-user data (NSDU) data
CONNECTION RELEASE
all parameters ignored
2.2 Connection Establishment π€
Connection establishment follows the principles of ISO 8073, with these extras π«:
- Connection Request and Connection Confirmation TPDUs MAY negotiate the use of Expedited Data transfer, using the negotiation mechanism specified in ISO 8073.
- Connection Request and Connection Confirmation TPDUs MUST NOT negotiate the Use of Explicit Flow Control.
To do an N-CONNECT.REQUEST, the TS-peer does an active open to the desired IP address on the well-known TCP port 399 π. When TCP signals success or failure, that triggers an N-CONNECT.INDICATION π.
To wait for an N-CONNECT.INDICATION, a server listens on the well-known TCP port 399 π. When a client successfully connects to that port, the event fires and an implicit N-CONNECT.RESPONSE action happens too π.
2.3 Data Transfer π¦
The transfer procedures are based on the ones in ISO 8073, with two extras π§©:
- Expedited Data MAY be supported (if negotiated during connection establishment).
In Non-Use of Explicit Flow Control, Expedited Data needs no Expedited Data Acknowledgement π.
- Splitting and Recombining MAY be used for Expedited Data transmission.
Splitting and Recombining lets one transport connection use multiple TCP connections π§΅. TCP connections created for Splitting SHOULD also use the primitives described in 2.1 π.
It is RECOMMENDED to only create a second TCP connection for Expedited Data when transmission of Expedited Data is requested β³.
Expedited Data MUST only be sent over an outgoing TCP connection π€. This second TCP connection MUST NOT be shared among transport connections, and it MUST remain established until the transport connection is terminated, at which time it MUST be closed π.
Implementors note: The procedure of Splitting and Recombining for Expedited Data transmission guaranties that a congested Normal Data TCP connection cannot block an Expedited Data TCP connection. It also ensures independence of the Normal Data TCP connection from the Expedited Data TCP connection. π
To perform an N-DATA.REQUEST action, the TS-peer builds the desired TPKT and uses the TCP send data primitive π¨.
To trigger an N-DATA.INDICATION action, TCP indicates that data is ready, and a TPKT is read using the TCP read data primitive π.
2.4 Connection Release π
The procedures for connection release are identical to the ones in ISO 8073 π―. A user can terminate a connection in one of two ways πͺ:
- Abort Disconnect specifies that all messages at the source are not required to be sent to the destination before the connection is disconnected. π¨
- Synchronous Disconnect specifies that all messages at the source MUST be sent to the destination, and that all messages at the destination MUST be delivered, before the connection is disconnected. π€
Disconnect Request and Disconnect Confirmation TPDUs are exchanged in both cases π¬. The Disconnect Request TPDU carries a code indicating the reason for the disconnection π·οΈ.
For a Synchronous Disconnect, the Disconnect Request reason code is normal (80 hex). For an Abort Disconnect, the Disconnect Request reason code is normal with the additional information parameter value set to c0 hex π’.
When a Disconnect Confirmation TPDU is received, a N-DISCONNECT.REQUEST action is performed to close the TCP connection π.
If the TCP connection fails for some other reason, that generates an N-DISCONNECT.INDICATION event π₯.
References
Okay bestie, here's the whole bibliography, every single source, no cap ππ«Ά
[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."[ISO8327]ISO. "International Standard 8327. Information Processing Systems -- Open Systems Interconnection: Session Protocol Specification."[RFC791]Postel, J., "Internet Protocol - DARPA Internet Program Protocol Specification", STD 5, RFC 791, USC/Information Sciences Institute, September 1981.[RFC793]Postel, J., "Transmission Control Protocol - DARPA Internet Program Protocol Specification", STD 7, RFC 793, USC/Information Sciences Institute, September 1981.[RFC1006]Rose, M., and D. Cass, "ISO Transport Services on Top of the TCP - Version: 3", STD 35, RFC 1006, Northrop Research and Technology Center, May 1987.
Security Considerations
Okay so this section is giving very short energy π but it's still super important, so listen up: Security issues are not discussed in this memo. π
Author's Address
Meet the author, Yanick Pouffary, who worked at Digital Equipment Corporation's End Systems Networking group πβ¨ Here's where to find her, verbatim:
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-32
EMail: pouffary@taec.enet.dec.com
That's the whole RFC, bestie! ππ Literally iconic. π
π¦ where this page comes from
- ietf: rfc1859 1995-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms