home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc1859 < prev    next >
Text File  |  1995-10-20  |  15KB  |  452 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        Y. Pouffary
  8. Request For Comments: 1859                                   Intel Corp.
  9. Category: Informational                                     October 1995
  10.  
  11.  
  12.     ISO Transport Class 2 Non-use of Explicit Flow Control over TCP
  13.                            RFC1006 extension
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  This memo
  18.    does not specify an Internet standard of any kind.  Distribution of
  19.    this memo is unlimited.
  20.  
  21. Table of Contents
  22.  
  23.    1. Introduction - General recommendations.......................2
  24.    2. The protocol.................................................3
  25.    2.1 TCP service as a Network Service - The Primitives...........3
  26.    2.2 Connection Establishment....................................4
  27.    2.3 Data Transfer...............................................5
  28.    2.4 Connection Release..........................................6
  29.    3. Packet Format................................................6
  30.    4. DIGITAL DECnet over TCP/IP...................................8
  31.    Acknowledgements................................................9
  32.    References......................................................9
  33.    Author's Address................................................9
  34.  
  35. 1. Introduction - General recommendations
  36.  
  37.    This document is an extension to STD35, RFC1006, a standard for the
  38.    Internet community. The document does not duplicate the protocol
  39.    definitions contained in RFC1006 and in International Standard ISO
  40.    8073.  It supplements that information with the description of how to
  41.    implement ISO Transport Class 2 Non-use of Explicit Flow Control on
  42.    top of TCP.
  43.  
  44.    The document should be used in conjunction with the RFC1006 and ISO
  45.    8073.
  46.  
  47.    The RFC1006 standard defines how to implement ISO 8073 Transport
  48.    Class 0 on top of TCP. This memo defines how to implement ISO 8073
  49.    Transport Class 2 Non-use of Explicit Flow Control on top of TCP.
  50.    Like ISO Transport Class 0, Class 2 Non-use of Explicit Flow Control
  51.    provides basic connection with minimal overhead.
  52.  
  53.    A Transport protocol class is selected for a particular Transport
  54.    connection based upon the characteristics of the lower layers and the
  55.  
  56.  
  57.  
  58. Pouffary                     Informational                      [Page 1]
  59.  
  60. RFC 1859            ISO Transport and Flow Control          October 1995
  61.  
  62.  
  63.    requirements of the upper layer. Use of class 2 Non-use of Explicit
  64.    Flow Control is suitable when the use of separate virtual data
  65.    channels for normal and expedited Data are desirable or when an
  66.    explicit disconnection of the Transport connection is desirable.
  67.  
  68.    Hosts which choose to implement this extension are expected to listen
  69.    on the well-known TCP port number 399.
  70.  
  71.    It is recommended that the well-known RFC1006 TCP port 102 not be
  72.    used. This recommendation is done to minimise impact to an existing
  73.    RFC1006 implementation.
  74.  
  75.    The memo also describes the use of this extension within the DIGITAL
  76.    Network Architecture (DNA).
  77.  
  78. 2. The protocol
  79.  
  80.    The protocol specified by this memo is fundamentally equivalent to
  81.    the protocol ISO 8073 Transport Class 2 Non-use of Explicit Flow
  82.    Control, with the following extensions:
  83.  
  84.    - Expedited Data service is supported.
  85.  
  86.    - Splitting and Recombining may be used for Expedited Data
  87.      transmission.
  88.  
  89.    - The Network Service used is provided by TCP.
  90.  
  91.    The ISO 8073 Transport protocol Class 2 allows Multiplexing. It is
  92.    recommended that this capability not be use for performance reasons.
  93.  
  94.    The ISO 8073 Transport protocol exchanges information between peers
  95.    in discrete units of information called transport protocol data units
  96.    (TPDUs).  The protocol defined in this memo encapsulates these TPDUs
  97.    in discrete units called TPKTs.  The structure of these TPKTs and
  98.    their relationship to TPDUs are discussed in the next sections.
  99.  
  100. 2.1 TCP service as a Network Service - The Primitives
  101.  
  102.    The mapping between the TCP service primitives and the service
  103.    primitives expected by ISO 8073 Transport when operation over
  104.    Connection-oriented network service is straightforward.
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Pouffary                     Informational                      [Page 2]
  115.  
  116. RFC 1859            ISO Transport and Flow Control          October 1995
  117.  
  118.  
  119.    Note: The following description of the mapping is a repeat from the
  120.    RFC1006 standard.
  121.  
  122.    network service                 TCP
  123.    ---------------                 ---
  124.    CONNECTION ESTABLISHMENT
  125.  
  126.            N-CONNECT.REQUEST       open completes
  127.  
  128.            N-CONNECT.INDICATION    listen (PASSIVE open) finishes
  129.  
  130.            N-CONNECT.RESPONSE      listen completes
  131.  
  132.            N-CONNECT.CONFIRMATION  open (ACTIVE open) finishes
  133.  
  134.    DATA TRANSFER
  135.  
  136.            N-DATA.REQUEST          send data
  137.  
  138.            N-DATA.INDICATION       data ready followed by read data
  139.  
  140.    CONNECTION RELEASE
  141.  
  142.            N-DISCONNECT.REQUEST    close
  143.  
  144.            N-DISCONNECT.INDICATION connection closes or errors
  145.  
  146.    Mapping parameters between the TCP service and the network service is
  147.    also straightforward:
  148.  
  149.    network service                 TCP
  150.    ---------------                 ---
  151.    CONNECTION ESTABLISHMENT
  152.  
  153.            Called address          server's IP address (4 octets)
  154.  
  155.            Calling address         client's IP address (4 octets)
  156.  
  157.            all others              ignored
  158.  
  159.    DATA TRANSFER
  160.  
  161.            NS-user data (NSDU)     data
  162.  
  163.    CONNECTION RELEASE
  164.  
  165.            all parameters          ignored
  166.  
  167.  
  168.  
  169.  
  170. Pouffary                     Informational                      [Page 3]
  171.  
  172. RFC 1859            ISO Transport and Flow Control          October 1995
  173.  
  174.  
  175. 2.2 Connection Establishment
  176.  
  177.    The principles used in connection establishment are based upon those
  178.    described in ISO 8073, with the following extensions.
  179.  
  180.    - Connection Request and Connection Confirmation TPDUs may negotiate
  181.      the use of Expedited Data transfer using the negotiation mechanism
  182.      specified in ISO 8073.
  183.  
  184.    - Connection Request and Connection Confirmation TPDUs must not
  185.      negotiate the Use of Explicit Flow Control.
  186.  
  187.    To perform an N-CONNECT.REQUEST action, the TS-peer performs an
  188.    active open to the desired IP address using the well know TCP port
  189.    399.  When the TCP signals either success or failure, this results in
  190.    an N-CONNECT.INDICATION action.
  191.  
  192.    To await an N-CONNECT.INDICATION event, a server listens on the well
  193.    know TCP port 399.  When a client successfully connects to this port,
  194.    the event occurs and an implicit N-CONNECT.RESPONSE action is
  195.    performed.
  196.  
  197. 2.3 Data Transfer
  198.  
  199.    The elements of procedure used during transfer are based upon those
  200.    presented in ISO 8073, with the two following extensions.
  201.  
  202.    - Expedited Data may be supported (if negotiated during connection
  203.      establishment).
  204.  
  205.      In Non-Use of Explicit Flow Control Expedited Data requires no
  206.      Expedited Data Acknowledgement.
  207.  
  208.    - Splitting and Recombining may be used for Expedited Data
  209.      transmission.
  210.  
  211.      The procedure of Splitting and Recombining allows a transport
  212.      connection to make use of multiple TCP connections.
  213.      TCP connections created for Splitting purposes should also use
  214.      the primitives described in 2.1.
  215.  
  216.      It is recommended to only create a second TCP connection for
  217.      Expedited Data when transmission of Expedited Data is requested.
  218.  
  219.      Expedited Data must only be sent over an outgoing TCP connection.
  220.      This second TCP connection must not be shared among transport
  221.      connections and must remain established until the transport
  222.      connection is terminated, at which time it must be closed.
  223.  
  224.  
  225.  
  226. Pouffary                     Informational                      [Page 4]
  227.  
  228. RFC 1859            ISO Transport and Flow Control          October 1995
  229.  
  230.  
  231.    Implementors note: The procedure of Splitting and Recombining for
  232.    Expedited Data transmission guaranties that a congested Normal Data
  233.    TCP connection cannot block an Expedited Data TCP connection. It also
  234.    ensures independence of the Normal Data TCP connection from the
  235.    Expedited Data TCP connection.
  236.  
  237.    To perform an N-DATA.REQUEST action, the TS-peer constructs the
  238.    desired TPKT and uses the TCP send data primitive.
  239.  
  240.    To trigger an N-DATA.INDICATION action, the TCP indicates that data
  241.    is ready and a TPKT is read using the TCP read data primitive.
  242.  
  243. 2.4 Connection Release
  244.  
  245.    The elements of procedure used during a connection release are
  246.    identical to those presented in ISO 8073.
  247.  
  248.    A connection can be terminated by the user in one of two ways:
  249.  
  250.    - Abort Disconnect specifies that all messages at the source are not
  251.      required to be sent to the destination before the connection is
  252.      disconnected.
  253.  
  254.    - Synchronous Disconnect specifies that all messages at the source
  255.      must be sent to the destination, and that all messages at the
  256.      destination must be delivered, before the connection is
  257.      disconnected.
  258.  
  259.    Disconnect Request and Disconnect Confirmation TPDUs are exchanged in
  260.    both cases. The Disconnect Request TPDU carries a code indicating the
  261.    reason for the disconnection.
  262.  
  263.    In the case of a Synchronous Disconnect the Disconnect Request reason
  264.    code is normal (80 hex). For an Abort Disconnect the Disconnect
  265.    Request reason code is normal with additional information parameter
  266.    value set to (c0 hex).
  267.  
  268.    Upon receipt of a Disconnect Confirmation TPDU a N-DISCONNECT.REQUEST
  269.    action is performed to close the TCP connection.
  270.  
  271.    If the TCP connection fails for some other reason, this generates an
  272.    N-DISCONNECT.INDICATION event.
  273.  
  274. 3. Packet Format
  275.  
  276.    A fundamental difference between TCP and the network service expected
  277.    by ISO transport is that TCP manages a continuous stream of octets,
  278.    with no explicit boundaries.
  279.  
  280.  
  281.  
  282. Pouffary                     Informational                      [Page 5]
  283.  
  284. RFC 1859            ISO Transport and Flow Control          October 1995
  285.  
  286.  
  287.    The protocol described in RFC1006 uses a simple packetization scheme
  288.    in order to delimit TPDUs. Each packet, termed a TPKT, consists of
  289.    two parts: a packet-header and a TPDU.
  290.  
  291.    We use the same scheme described in RFC1006 for this extension.
  292.    There is no need to change the version number. The ISO transport TPDU
  293.    sufficiently describes the transport protocol class being used.
  294.  
  295.    The format of the packet-header described below is a repeat from
  296.    RFC1006.
  297.  
  298.        0                   1                   2                   3
  299.        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  300.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  301.       |      vrsn     |    reserved   |          packet length        |
  302.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  303.  
  304.          where:
  305.  
  306.          vrsn                         8 bits
  307.  
  308.          This field is always 3 for the version of the protocol
  309.          described in this memo.
  310.  
  311.          packet length                16 bits (min=7, max=65535)
  312.  
  313.          The packet length is the length of the entire packet in
  314.          octets, including packet-header.
  315.  
  316.    The format of the ISO transport TPDU is defined in ISO 8073.
  317.  
  318. 4. DIGITAL DECnet over TCP/IP
  319.  
  320.    DECnet over TCP/IP is implemented using the DECnet Session Control
  321.    layer over this RFC1006 extension protocol.
  322.  
  323.    The informational RFC defined in this document provides the Transport
  324.    Service functionality required by DECnet Applications while operating
  325.    over TCP/IP.
  326.  
  327.    The next paragraph is a brief summary of the role of the DECnet
  328.    Session Control Layer. For further details, refer to the DIGITAL DNA
  329.    Session Control Layer Specification.
  330.  
  331.    The DECnet Session Control Layer makes a Transport Service available
  332.    to End Users of a network. This layer is concerned with system-
  333.    dependent functions related to creating, maintaining, and destroying
  334.    Transport Connections.  Separate virtual data channels, known  as
  335.  
  336.  
  337.  
  338. Pouffary                     Informational                      [Page 6]
  339.  
  340. RFC 1859            ISO Transport and Flow Control          October 1995
  341.  
  342.  
  343.    "Normal"  and  "Expedited",  are provided to End Users. DECnet
  344.    Session Control must be guaranteed independence of these channels by
  345.    the Transport Layer. Expedited Data transmission cannot be blocked by
  346.    a congested normal data channel. DECnet Session Control requires that
  347.    all data in transit be delivered before initiating the release of the
  348.    Transport Connection.
  349.  
  350.    DECnet, DNA, and the DIGITAL logo are trademarks of Digital Equipment
  351.    Corporation.
  352.  
  353. Acknowledgements
  354.  
  355.    Bill Duane, Jim Bound, David Sullivan, Mike Dyer, Matt Thomas, Dan
  356.    Harrington and many other members of the DECnet engineering team.
  357.  
  358. References
  359.  
  360.    [ISO8072]  ISO. "International Standard 8072.  Information
  361.               Processing Systems -- Open Systems Interconnection:
  362.               Transport Service Definition."
  363.  
  364.    [ISO8073]  ISO. "International Standard 8073.  Information
  365.               Processing Systems -- Open Systems Interconnection:
  366.               Transport Protocol Specification."
  367.  
  368.    [ISO8327]  ISO. "International Standard 8327.  Information
  369.               Processing Systems -- Open Systems Interconnection:
  370.               Session Protocol Specification."
  371.  
  372.    [RFC791]   Postel, J., "Internet Protocol - DARPA Internet Program
  373.               Protocol Specification", STD 5, RFC 791,
  374.               USC/Information Sciences Institute, September 1981.
  375.  
  376.    [RFC793]   Postel, J., "Transmission Control Protocol - DARPA
  377.               Internet Program Protocol Specification", STD 7, RFC
  378.               793, USC/Information Sciences Institute, September 1981.
  379.  
  380.    [RFC1006]  Rose, M., and D. Cass, "ISO Transport Services on Top of
  381.               the TCP - Version: 3", STD 35, RFC 1006, Northrop
  382.               Research and Technology Center, May 1987.
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Pouffary                     Informational                      [Page 7]
  395.  
  396. RFC 1859            ISO Transport and Flow Control          October 1995
  397.  
  398.  
  399. Security Considerations
  400.  
  401.    Security issues are not discussed in this memo.
  402.  
  403. Author's Address
  404.  
  405.    Yanick Pouffary
  406.    End Systems Networking
  407.    Digital Equipment Corporation
  408.    Centre Technique (Europe)
  409.    B.P. 027
  410.    950 Routes des colles
  411.    06901 Sophia antipolis, France
  412.  
  413.    Phone: +33 92-95-62-85
  414.    Fax:   +33 92-95-62-32
  415.    EMail: pouffary@taec.enet.dec.com
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Pouffary                     Informational                      [Page 8]
  451.  
  452.