GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:rfc905
   Network Working Group                                         ISO
   Request for Comments:  905                             April 1984
                 ISO Transport Protocol Specification
                              ISO DP 8073
 Status of this Memo:       
   This document is distributed as an RFC for information only.   It
   does not specify a standard for the ARPA-Internet.
 Notes:
   1)  RFC 892 is an older version of  the  ISO  Transport  Protocol
       Specification.   Therefore  this  RFC  should  be  assumed to
       supercede RFC 892.
   2)  This document has been  prepared  by  retyping  the  text  of
       ISO/TC97/SC16/N1576  and  then  applying  proposed  editorial
       corrections  contained  in  ISO/TC97/SC16/N1695.   These  two
       documents,  taken  together, are undergoing voting within ISO
       as a Draft International Standard (DIS).
   3)  Although this RFC has been  reviewed  after  typing,  and  is
       believed  to  be  substantially  correct, it is possible that
       typographic errors not present in the ISO documents have been
       overlooked.
       Alex McKenzie
       BBN
                           Table of Contents
   1   SCOPE AND FIELD OF APPLICATION........................ 3
   1.1   This International Standard specifies:.............. 3
   1.2   The procedures are defined in terms of:............. 4
   1.3   .................................................... 4
   1.4   .................................................... 5
   2   REFERENCES............................................ 5
   3   DEFINITIONS........................................... 6
   3.1   .................................................... 6
   3.2   .................................................... 6
   3.2.1   equipment:........................................ 7
   3.2.2   transport service user:........................... 7
   3.2.3   network service provider:......................... 7
   3.2.4   local matter:..................................... 7
   3.2.5   initiator:........................................ 7
   3.2.6   responder:........................................ 8
   3.2.7   sending transport entity:......................... 8
   3.2.8   receiving transport entity:....................... 8
   3.2.9   preferred class:.................................. 8
   3.2.10   alternative class:............................... 8
   3.2.11   proposed class:.................................. 9
   3.2.12   selected class:.................................. 9
   3.2.13   proposed parameter:.............................. 9
   3.2.14   selected parameter:.............................. 9
   3.2.15   error indication:................................ 9
   3.2.16   invalid TPDU:................................... 10
   3.2.17   protocol error:................................. 10
   3.2.18   sequence number:................................ 10
   3.2.19   transmit window:................................ 10
   3.2.20   lower window edge:.............................. 11
   3.2.21   upper window edge:.............................. 11
   3.2.22   upper window edge allocated to  the  peer
     entity:
        .................................................... 11
   3.2.23   closed window:.................................. 11
   3.2.24   window information:............................. 11
   3.2.25   frozen reference:............................... 12
   3.2.26   unassigned reference:........................... 12
   3.2.27   transparent (data):............................. 12
                                   i
   3.2.28   owner (of a network connection):................ 12
   3.2.29   retained TPDU:.................................. 12
   4   SYMBOLS AND ABBREVIATIONS............................ 13
   4.1   Data units......................................... 13
   4.2   Types of transport protocol data units............. 13
   4.3   TPDU fields........................................ 13
   4.4   Times and associated variables..................... 14
   4.5   Miscellaneous...................................... 14
   5   OVERVIEW OF THE TRANSPORT PROTOCOL................... 15
   5.1   Service provided by the transport layer............ 15
   5.2   Service assumed from the network layer............. 16
   5.3   Functions of the Transport Layer................... 18
   5.3.1   Overview of functions............................ 18
   5.3.1.1   Functions used at all times.................... 19
   5.3.1.2   Connection Establishment....................... 19
   5.3.1.3   Data Transfer.................................. 20
   5.3.1.4   Release........................................ 21
   5.4   Classes and options................................ 21
   5.4.1   General.......................................... 21
   5.4.2   Negotiation...................................... 22
   5.4.3   Choice of network connection..................... 22
   5.4.4   Characteristics of Class 0....................... 23
   5.4.5   Characteristics of Class 1....................... 23
   5.4.6   Characteristics of Class 2....................... 24
   5.4.6.1   General........................................ 24
   5.4.6.2   Use of explicit flow control................... 24
   5.4.6.3   Non-use of explicit flow control............... 24
   5.4.7   Characteristics of Class 3....................... 24
   5.4.8   Characteristics of Class 4....................... 25
   5.5   Model of the transport layer....................... 25
   6   ELEMENTS OF PROCEDURE................................ 27
   6.1   Assignment to network connection................... 27
   6.1.1   Purpose.......................................... 27
   6.1.2   Network service primitives....................... 27
   6.1.3   Procedure........................................ 28
   6.2   Transport protocol data unit (TPDU) transfer....... 29
   6.2.1   Purpose.......................................... 29
   6.2.2   Network Service Primitives....................... 30
   6.2.3   Procedure........................................ 30
   6.3   Segmenting and reassembling........................ 30
   6.3.1   Purpose.......................................... 30
   6.3.2   TPDUs and parameter used......................... 31
   6.3.3   Procedure........................................ 31
                                  ii
   6.4   Concatenation and separation....................... 31
   6.4.1   Purpose.......................................... 31
   6.4.2   Procedure........................................ 32
   6.5   Connection establishment........................... 32
   6.5.1   Purpose.......................................... 32
   6.5.2   Network service primitives....................... 33
   6.5.3   TPDUs and parameters used........................ 33
   6.5.4   Procedure........................................ 34
   6.6   Connection refusal................................. 40
   6.6.1   Purpose.......................................... 40
   6.6.2   TPDUs and parameters used........................ 40
   6.6.3   Procedure........................................ 41
   6.7   Normal release..................................... 41
   6.7.1   Purpose.......................................... 41
   6.7.2   Network service primitives....................... 42
   6.7.3   TPDUs and parameters used........................ 42
   6.7.4   Procedure for implicit variant................... 43
   6.7.5   Procedure for explicit variant................... 43
   6.8   Error Release...................................... 44
   6.8.1   Purpose.......................................... 45
   6.8.2   Network service primitives....................... 45
   6.8.3   Procedure........................................ 45
   6.9    Association   of   TPDUs   with   transport
     connections
        .................................................... 45
   6.9.1   Purpose.......................................... 45
   6.9.2   Network service primitives....................... 46
   6.9.3   TPDUs and parameters uses........................ 46
   6.9.4   Procedures....................................... 46
   6.9.4.1   Identification of TPDUs........................ 46
   6.9.4.2   Association of individual TPDUs................ 47
   6.10   Data TPDU numbering............................... 49
   6.10.1   Purpose......................................... 49
   6.10.2   TPDUs and parameters used....................... 49
   6.10.3   Procedure....................................... 50
   6.11   Expedited data transfer........................... 50
   6.11.1   Purpose......................................... 50
   6.11.2   Network service primitives...................... 50
   6.11.3   TPDUs and parameter used........................ 51
   6.11.4   Procedures...................................... 51
   6.12   Reassignment after failure........................ 52
   6.12.1   Purpose......................................... 52
   6.12.2   Network service primitives...................... 52
                                  iii
   6.12.3   Procedure....................................... 52
   6.12.4   Timers.......................................... 54
   6.13   Retention until acknowledgement of TPDUs.......... 56
   6.13.1   Purpose......................................... 56
   6.13.2   Network service primitives...................... 56
   6.13.3   TPDUs and parameters used....................... 56
   6.13.4   Procedures...................................... 57
   6.14   Resynchronization................................. 60
   6.14.1   Purpose......................................... 60
   6.14.2   Network service primitives...................... 60
   6.14.3   TPDUs and parameters used....................... 60
   6.14.4   Procedure....................................... 61
   6.14.4.1   Active resynchronization procedures........... 61
   6.14.4.2   Passive resynchronization procedures.......... 62
   6.14.4.3   Data Resynchronization Procedures............. 63
   6.15   Multiplexing and demultiplexing................... 64
   6.15.1   Purpose......................................... 64
   6.15.2   TPDUs and parameters used....................... 64
   6.15.3   Procedure....................................... 65
   6.16   Explicit Flow Control............................. 65
   6.16.1   Purpose......................................... 65
   6.16.2   TPDUs and parameters used....................... 65
   6.16.3   Procedure....................................... 66
   6.17   Checksum.......................................... 66
   6.17.1   Purpose......................................... 66
   6.17.2   TPDUs and parameters used....................... 66
   6.17.3   Procedure....................................... 67
   6.18   Frozen references................................. 68
   6.18.1   Purpose......................................... 68
   6.18.2   Procedure....................................... 68
   6.18.2.1   Procedure for classes 0 and 2................. 68
   6.18.2.2   Procedure for classes 1 and 3................. 69
   6.18.2.3   Procedure for classes 4....................... 70
   6.19   Retransmission on time-out........................ 70
   6.19.1   Purpose......................................... 70
   6.19.2   TPDUs used...................................... 70
   6.19.3   Procedure....................................... 70
   6.20   Resequencing...................................... 70
   6.20.1   Purpose......................................... 71
   6.20.2   TPDUs and parameters used....................... 71
   6.20.3   Procedure....................................... 71
   6.21   Inactivity control................................ 71
   6.21.1   Purpose......................................... 71
                                  iv
   6.21.2   Procedure....................................... 72
   6.22   Treatment of protocol errors...................... 72
   6.22.1   Purpose......................................... 72
   6.22.2   TPDUs and parameters used....................... 72
   6.22.3   Procedure....................................... 72
   6.23   Splitting and recombining......................... 74
   6.23.1   Purpose......................................... 74
   6.23.2   Procedure....................................... 74
   7   Protocol Classes..................................... 76
   8   SPECIFICATION FOR CLASS 0. SIMPLE CLASS.............. 79
   8.1   Functions of class 0............................... 79
   8.2   Procedures for class 0............................. 79
   8.2.1   Procedures applicable at all times............... 79
   8.2.2   Connection establishment......................... 79
   8.2.3   Data transfer.................................... 80
   8.2.4   Release.......................................... 80
   9    SPECIFICATION  FOR  CLASS  1:   BASIC   ERROR
     RECOVERY CLASS
        .................................................... 81
   9.1   Functions of Class 1............................... 81
   9.2   Procedures for Class 1............................. 81
   9.2.1   Procedures applicable at all times............... 81
   9.2.2   Connection establishment......................... 82
   9.2.3   Data Transfer.................................... 82
   9.2.3.1   General........................................ 82
   9.2.3.2   Expedited Data................................. 83
   9.2.4   Release.......................................... 84
   10   SPECIFICATION  FOR  CLASS  2  -  MULTIPLEXING
     CLASS
        .................................................... 85
   10.1   Functions of class 2.............................. 85
   10.2   Procedures for class 2............................ 85
   10.2.1   Procedures applicable at all times.............. 85
   10.2.2   Connection establishment........................ 86
   10.2.3   Data transfer when non  use  of  explicit
     flow control
        .................................................... 86
   10.2.4   Data transfer when use of  explicit  flow
     control
        .................................................... 86
   10.2.4.1   General....................................... 86
   10.2.4.2   Flow control.................................. 87
   10.2.4.3   Expedited data................................ 88
                                   v
   10.2.5   Release......................................... 89
   11   SPECIFICATION FOR CLASS 3: ERROR RECOVERY AND
     MULTIPLEXING CLASS
        .................................................... 90
   11.1   Functions of Class 3.............................. 90
   11.2   Procedures for Class 3............................ 90
   11.2.1   Procedures applicable at all times.............. 90
   11.2.2   Connection Establishment........................ 91
   11.2.3   Data Transfer................................... 91
   11.2.3.1   General....................................... 91
   11.2.3.2   Use of RJ TPDU................................ 92
   11.2.3.3   Flow Control.................................. 93
   11.2.3.4   Expedited data................................ 93
   11.2.4   Release......................................... 94
   12   SPECIFICATION FOR CLASS  4:  ERROR  DETECTION
     AND RECOVERY CLASS
        .................................................... 95
   12.1   Functions of Class 4.............................. 95
   12.2   Procedures for Class 4............................ 95
   12.2.1   Procedures available at all times............... 95
   12.2.1.1   Timers used at all times...................... 95
   12.2.1.1.1   NSDU lifetime (MLR, MRL).................... 98
   12.2.1.1.2   Expected maximum transit delay  (ELR,
     ERL)
        .................................................... 98
   12.2.1.1.3   Acknowledge Time (AR, AL)................... 99
   12.2.1.1.4   Local retransmission time (T1).............. 99
   12.2.1.1.5   Persistence Time (R)........................ 99
   12.2.1.1.6    Bound  on  References  and  Sequence
     Numbers (L)
        ................................................... 100
   12.2.1.2   General Procedures........................... 100
   12.2.2   Procedures for Connection Establishment........ 102
   12.2.2.1   Timers used in Connection Establishment...... 102
   12.2.2.2   General Procedures........................... 103
   12.2.3   Procedures for Data Transfer................... 104
   12.2.3.1   Timers used in Data Transfer................. 104
   12.2.3.2   General Procedures for data transfer......... 104
   12.2.3.3   Inactivity Control........................... 105
   12.2.3.4   Expedited Data............................... 105
   12.2.3.5   Resequencing................................. 106
   12.2.3.6   Explicit Flow Control........................ 107
   12.2.3.7   Sequencing of received AK TPDUs.............. 108
                                  vi
   12.2.3.8   Procedure for transmission of AK TPDUs....... 109
   12.2.3.8.1   Retransmission of AK TPDUs for window
     synchronization
        ................................................... 109
   12.2.3.8.2   Sequence control for transmission  of
     AK TPDUs
        ................................................... 109
   12.2.3.8.3   Retransmission of AK TPDUs after  CDT
     set to zero
        ................................................... 110
   12.2.3.8.4   Retransmission  procedures  following
     reduction of the
        ................................................... 111
   12.2.3.9    Use  of  Flow   Control   Confirmation
     parameter
        ................................................... 112
   12.2.4   Procedures for Release......................... 113
   12.2.4.1   Timers used for Release...................... 113
   12.2.4.2   General Procedures for Release............... 113
   13   STRUCTURE AND ENCODING OF TPDUs.................... 114
   13.1   Validity......................................... 114
   13.2   Structure........................................ 116
   13.2.1   Length indicator field......................... 117
   13.2.2   Fixed part..................................... 117
   13.2.2.1   General...................................... 117
   13.2.2.2   TPDU code.................................... 117
   13.2.3   Variable part.................................. 118
   13.2.3.1   Checksum Parameter (Class 4 only)............ 120
   13.2.4   Data Field..................................... 120
   13.3   Connection Request (CR) TPDU..................... 120
   13.3.1   Structure...................................... 120
   13.3.2   LI............................................. 121
   13.3.3   Fixed Part (Octets 2 to 7)..................... 121
   13.3.4   Variable Part (Octets 8 to p).................. 122
   13.3.5   User Data (Octets p+1 to the end).............. 127
   13.4   Connection Confirm (CC) TPDU..................... 128
   13.4.1   Structure...................................... 128
   13.4.2   LI............................................. 128
   13.4.3   Fixed Part (Octets 2 to 7)..................... 128
   13.4.4   Variable Part (Octet 8 to p)................... 129
   13.4.5   User Data (Octets p+1 to the end).............. 129
   13.5   Disonnect Request (DR) TPDU...................... 129
   13.5.1   Structure...................................... 129
                                  vii
   13.5.2   LI............................................. 129
   13.5.3   Fixed Part (Octets 2 to 7...................... 130
   13.5.4   Variable Part (Octets 8 to p).................. 131
   13.5.5   User Data (Octets p+1 to the end).............. 131
   13.6   Disconnect Confirm (DC) TPDU..................... 132
   13.6.1   Structure...................................... 132
   13.6.2   LI............................................. 132
   13.6.3   Fixed Part (Octets 2 to 6)..................... 132
   13.6.4   Variable Part.................................. 133
   13.7   Data (DT) TPDU................................... 133
   13.7.1   Structure...................................... 133
   13.7.2   LI............................................. 134
   13.7.3   Fixed Part..................................... 134
   13.7.4   Variable Part.................................. 135
   13.7.5   User Data Field................................ 135
   13.8   Expedited Data (ED) TPDU......................... 135
   13.8.1   Structure...................................... 135
   13.8.2   LI............................................. 136
   13.8.3   Fixed Part..................................... 136
   13.8.4   Variable Part.................................. 137
   13.8.5   User Data Field................................ 137
   13.9   Data Acknowledgement (AK) TPDU................... 137
   13.9.1   Structure...................................... 137
   13.9.2   LI............................................. 138
   13.9.3   Fixed Part..................................... 138
   13.9.4   Variable Part.................................. 139
   13.10   Expedited Data Acknowledgement (EA) TPDU........ 140
   13.10.1   Structure..................................... 140
   13.10.2   LI............................................ 141
   13.10.3   Fixed Part.................................... 141
   13.10.4   Variable Part................................. 141
   13.11   Reject (RJ) TPDU................................ 141
   13.11.1   Structure..................................... 142
   13.11.2   LI............................................ 142
   13.11.3   Fixed Part.................................... 142
   13.11.4   Variable Part................................. 143
   13.12   TPDU Error (ER) TPDU............................ 143
   13.12.1   Structure..................................... 143
   13.12.2   LI............................................ 143
   13.12.3   Fixed Part.................................... 144
   13.12.4   Variable Part................................. 144
   14   CONFORMANCE........................................ 145
   14.1   ................................................. 145
                                 viii
   14.2   ................................................. 145
   14.3   ................................................. 145
   14.4   ................................................. 145
   14.5   ................................................. 146
   14.6   Claims of Conformance Shall State................ 146
                                  ix
   INTRODUCTION
   The Transport Protocol Standard is one of a set of  International
   Standards  produced to facilitate the interconnection of computer
   systems.  The set of standards covers the services and  protocols
   required to achieve such interconnection.
   The Transport Protocol Standard is  positioned  with  respect  to
   other  related  standards  by the layers defined in the Reference
   Model for Open Systems Interconnection (ISO 7498).   It  is  most
   closely  related  to, and lies within the field of application of
   the Transport Service Standard (DP 8072).  It also uses and makes
   reference  to  the  Network  Service  Standard  (DP  8348), whose
   provisions it  assumes  in  order  to  accomplish  the  transport
   protocol's  aims.   The  interelationship  of  these standards is
   depicted in figure 1.
  1. ————————TRANSPORT SERVICE DEFINITION————

Transport | — Reference to aims ————–

   Protocol      |
   Specification | --- Reference to assumptions -------
   -------------------------NETWORK SERVICE DEFINITION--------------
    Relationaship between Transport Protocol and adjacent services
                              Figure 1 .
   The International Standard specifies  a  common  encoding  and  a
   number  of  classes  of  transport protocol procedures to be used
   with different network qualities of service.
   It is intended that the Transport Protocol should be  simple  but
   general  enough  to  cater for the total range of Network Service
   qualities possible, without restricting future extensions.
   The protocol is structured to give rise to  classes  of  protocol
   which  are  designed  to  minimize possible incompatibilities and
   implementation costs.
                                   1
   The classes are selectable with  respect  to  the  Transport  and
   Network Services in providing the required quality of service for
   the interconnection of two session entities (note that each class
   provides  a different set of functions for enhancement of service
   qualities).
   This protocol standard defines mechanisms that  can  be  used  to
   optimize  network  tariffs and enhance the following qualities of
   service:
      a)  different throughput rates;
      b)  different error rates;
      c)  integrity of data requirements;
      d)  reliability requirements.
   It does not  require  an  implementation  to  use  all  of  these
   mechanisms,  nor  does  it  define methods for measuring achieved
   quality of service or  criteria  for  deciding  when  to  release
   transport connections following quality of service degradation.
   The primary aim of this International Standard is  to  provide  a
   set  of  rules  for  communication  expressed  in  terms  of  the
   procedures to be carried out by peer  entities  at  the  time  of
   communication.   These  rules  for  communication are intended to
   provide a sound basis for development in order to serve a variety
   of purposes:
      a)  as a guide for implementors and designers;
      b)  for use in the testing and procurement of equipment;
      c)  as part of an agreement for the admittance of systems into
          the open systems environment;
      d)  as a refinement of the understanding of OSI.
   It is expected  that  the  initial  users  of  the  International
   Standard  will be designers and implementors of equipment and the
   International Standard contains, in notes or in annexes, guidance
   on the implementation of the procedures defined in the standard.
                                   2
   It should  be  noted  that,  as  the  number  of  valid  protocol
   sequences  is  very  large,  it  is  not  possible  with  current
   technology to verify that  an  implementation  will  operate  the
   protocol  defined  in this International Standard correctly under
   all circumstances.   It  is  possible  by  means  of  testing  to
   establish  confidence  that  an implementation correctly operates
   the protocol in a representative sample of circumstances.  It is,
   however, intended that this International Standard can be used in
   circumstances where two implementations fail  to  communicate  in
   order to determine whether one or both have failed to operate the
   protocol correctly.
   This International Standard contains a section on conformance  of
   equipment   claiming   to   implement   the  procedures  in  this
   International Standard.  Attention is drawn to the fact that  the
   standard   does   not  contain  any  tests  to  demonstrate  this
   conformance.
   The variations and options available  within  this  International
   Standard  are  essential  to  enable  a  Transport  Service to be
   provided for a wide variety of applications  over  a  variety  of
   network  qualities.   Thus, a minimally conforming implementation
   will not be suitable for use in all possible  circumstances.   It
   is  important,  therefore,  to  qualify  all  references  to this
   International Standard with statements of the options provided or
   required  or with statements of the intended purpose of provision
   or use.
   1  SCOPE AND FIELD OF APPLICATION
   1.1  This International Standard specifies:
      a)  five classes of procedures:
          1) Class 0.  Simple class;
          2) Class 1.  Basic error recovery class;
          3) Class 2.  Multiplexing class;
          4) Class 3.  Error recovery and multiplexing class;
          5) Class 4.  Error detection and recovery class,
                                   3
          for the connection oriented transfer of data  and  control
          information  from one transport entity to a peer transport
          entity;
      b)  the means of negotiating the class  of  procedures  to  be
          used by the transport entities;
      c)  the structure and encoding of the transport protocol  data
          units   used   for   the  transfer  of  data  and  control
          information;
   1.2  The procedures are defined in terms of:
      a)  the interactions between peer transport  entities  through
          the exchange of transport protocol data units;
      b)  the  interactions  between  a  transport  entity  and  the
          transport  service  user  in  the  same system through the
          exchange of transport service primitives;
      c)  the  interactions  between  a  transport  entity  and  the
          network  service  provider through the exchange of network
          service primitives.
   These procedures are defined in the main  text  of  the  standard
   supplemented by state tables in annex A.
   1.3
   These procedures are applicable  to  instances  of  communication
   between  systems  which  support  the  Transport Layer of the OSI
   Reference Model and which wish to interconnect in an open systems
   environment.
                                   4
   1.4
   This   International   Standard   also   specifies    conformance
   requirements  for systems implementing these procedures.  It does
   not  contain  tests  which  can  be  used  to  demonstrate   this
   conformance.
   2  REFERENCES
   ISO 7498  Information   processing   systems   -   Open   systems
             interconnection - Basic Reference Model
   DP 8072   Information   processing   systems   -   Open   systems
             interconnection - Transport service definition
   DP 8348   Information   processing   systems   -   Open   systems
             interconnection  -  Connection-oriented network service
             definition.
                                   5
   SECTION ONE.  GENERAL
   3  DEFINITIONS
   NOTE - The definitions contained  in  this  clause  make  use  of
   abbreviations defined in clause 4.
   3.1
   This International Standard is based on the concepts developed in
   the  Reference  Model for Open Systems Interconnection (DIS 7498)
   and makes use of the following terms defined in that standard:
      a)  concatenation and separation;
      b)  segmenting and reassembling;
      c)  multiplexing and demultiplexing;
      d)  splitting and recombining;
      e)  flow control.
   3.2
   For the purpose of this  International  Standard,  the  following
   definitions apply:
                                   6
   3.2.1  equipment:
   Hardware or software or a combination of both;  it  need  not  be
   physically distinct within a computer system.
   3.2.2  transport service user:
   An abstract representation of  the  totality  of  those  entities
   within a single system that make use of the transport service.
   3.2.3  network service provider:
   An abstract machine that models  the  totality  of  the  entities
   providing the network service, as viewed by a transport entity.
   3.2.4  local matter:
   A decision made by  a  system  concerning  its  behavior  in  the
   Transport  Layer  that is not subject to the requirements of this
   protocol.
   3.2.5  initiator:
   A transport entity that initiates a CR TPDU.
                                   7
   3.2.6  responder:
   A transport entity with whom an initiator wishes to  establish  a
   transport connection.
   NOTE - Initiator and responder are  defined  with  respect  to  a
   single  transport  connection.  A transport entity can be both an
   initiator and responder simultaneously.
   3.2.7  sending transport entity:
   A transport entity that sends a given TPDU.
   3.2.8  receiving transport entity:
   A transport entity that receives a given TPDU.
   3.2.9  preferred class:
   The protocol class that the initiator indicates in a CR  TPDU  as
   its first choice for use over the transport connection.
   3.2.10  alternative class:
   A protocol class that the initiator indicates in a CR TPDU as  an
   alternative choice for use over the transport connection.
                                   8
   3.2.11  proposed class:
   A preferred class or an alternative class.
   3.2.12  selected class:
   The protocol class that the responder indicates in a CC TPDU that
   it has chosen for use over the transport connection.
   3.2.13  proposed parameter:
   The value for a parameter that the initiator indicates  in  a  CR
   TPDU that it wishes to use over the transport connection.
   3.2.14  selected parameter:
   The value for a parameter that the responder indicates  in  a  CC
   TPDU that it has chosen for use over the transport connection.
   3.2.15  error indication:
   An N-RESET indication,  or  an  N-DISCONNECT  indication  with  a
   reason code indicating an error, that a transport entity receives
   from the NS-provider.
                                   9
   3.2.16  invalid TPDU:
   A TPDU that  does  not  comply  with  the  requirements  of  this
   International Standard for structure and encoding.
   3.2.17  protocol error:
   A TPDU whose use does not comply  with  the  procedures  for  the
   class.
   3.2.18  sequence number:
      a)  The number  in  the  TPDU-NR  field  of  a  DT  TPDU  that
          indicates  the  order in which the DT TPDU was transmitted
          by a transport entity.
      b)  The number in the YR-TU-NR field of an AK or RJ TPDU  that
          indicates the sequence number of the next DT TPDU expected
          to be received by a transport entity.
   3.2.19  transmit window:
   The set of consecutive sequence numbers which a transport  entity
   has been authorized by its peer entity to send at a given time on
   a given transport connection.
                                  10
   3.2.20  lower window edge:
   The lowest sequence number in a transmit window.
   3.2.21  upper window edge:
   The sequence  number  which  is  one  greater  than  the  highest
   sequence number in the transmit window.
   3.2.22  upper window edge allocated to the peer entity:
   The value that a transport entity communicates to its peer entity
   to be interpreted as its new upper window edge.
   3.2.23  closed window:
   A transmit window that contains no sequence number.
   3.2.24  window information:
   Information contained in a TPDU relating to  the  upper  and  the
   lower window edges.
                                  11
   3.2.25  frozen reference:
   A reference that is not available for assignment to a  connection
   because of the requirements of 6.18.
   3.2.26  unassigned reference:
   A reference that is neither currently in use  for  identifying  a
   transport connection or which is in a frozen state.
   3.2.27  transparent (data):
   TS-user  data  that  is  transferred  intact  between   transport
   entities  and  which  is  unavailable  for  use  by the transport
   entities.
   3.2.28  owner (of a network connection):
   The transport entity that issued the N-CONNECT request leading to
   the creation of that network connection.
   3.2.29  retained TPDU:
   A TPDU  that  is  subject  to  the  retransmission  procedure  or
   retention  until  acknowledgement  procedure and is available for
   possible retransmission.
                                  12
   4  SYMBOLS AND ABBREVIATIONS
   4.1  Data units
      TPDU          Transport protocol data unit
      TSDU          Transport service data unit
      NSDU          Network service data unit
   4.2  Types of transport protocol data units
      CR TPDU          Connection request TPDU
      CC TPDU          Connection confirm TPDU
      DR TPDU          Disconnect request TPDU
      DC TPDU          Disconnect confirm TPDU
      DT TPDU          Data TPDU
      ED TPDU          Expedited data TPDU
      AK TPDU          Data acknowledge TPDU
      EA TPDU          Expedited acknowledge TPDU
      RJ TPDU          Reject TPDU
      ER TPDU          Error TPDU
   4.3  TPDU fields
      LI               Length indicator (field)
      CDT              Credit (field)
      TSAP-ID          Transport service access point
                       identifier (field)
      DST-REF          Destination reference (field)
      SRC-REF          Source reference (field)
      EOT              End of TSDU mark
      TPDU-NR          DT TPDU number (field)
      ED-TPDU-NR       ED TPDU number (field)
      YR-TU-NR         Sequence number response (field)
      YR-EDTU-NR       ED TPDU number response (field)
                                  13
   4.4  Times and associated variables
      T1               Elapsed time between retransmissions
      N                The maximum number of transmissions
      L                Bound on reference
      I                Inactivity time
      W                Window time
      TTR              Time to try reassignment/resynchronization
      TWR              Time to wait for
                          reassignment/resynchronization
      TS1              Supervisory timer 1
      TS2              Supervisory time 2
      MLR              NSDU lifetime  local-to-remote
      MRL              NSDU lifetime  remote-to-local
      ELR              Expected maximum transit delay
                          local-to-remote
      ERL              Expected maximum transit delay
                          remote-to-local
      R                Persistence time
      AL               Local acknowledgement time
      AR               Remote acknowledgement time
   4.5  Miscellaneous
      TS-user          Transport service user
      TSAP             Transport service access point
      NS-provider      Network service provider
      NSAP             Network service access point
      QOS              Quality of service
                                  14
   5  OVERVIEW OF THE TRANSPORT PROTOCOL
   NOTE - This overview is not exhaustive and has been provided  for
   guidance to the reader of this International Standard.
   5.1  Service provided by the transport layer
   The protocol specified in this  International  Standard  supports
   the transport service defined in DP 8072.
   Information is  transferred  to  and  from  the  TS-user  in  the
   transport service primitives listed in table 1.
                                  15
   +-------------------------------------------------------------+
   |           Primitive            |        Parameter           |
   |--------------------------------|----------------------------|
   |T-CONNECT         request       |   Called Address,          |
   |                  indication    |   Calling Address,         |
   |                                |   Expedited Data option,   |
   |                                |   Quality of Service,      |
   |                                |   TS User-Data.            |
   |--------------------------------|----------------------------|
   |T-CONNECT         response      |   Responding Address,      |
   |                  confirm       |   Quality of Service,      |
   |                                |   Expedited Data option,   |
   |                                |   TS User-Data.            |
   |--------------------------------|----------------------------|
   |T-DATA            request       |   TS User-Data.            |
   |                  indication    |                            |
   |--------------------------------|----------------------------|
   |T-EXPEDITED DATA  request       |   TS User-Data.            |
   |                  indication    |                            |
   |--------------------------------|----------------------------|
   |T-DISCONNECT      request       |   TS User-Data.            |
   |--------------------------------|----------------------------|
   |T-DISCONNECT      indication    |   Disconnect reason,       |
   |                                |   TS User-Data.            |
   +--------------------------------|----------------------------+
                 Table 1. Transport service primitives
   5.2  Service assumed from the network layer
   The protocol specified in this International Standard assumes the
   use of the network service defined in DP 8348.
   Information is transferred to and from  the  NS-provider  in  the
   network service primitives listed in table 2.
                                  16
   +---------------------------------------------------------------+
   |        Primitives          |X/Y|       Parameters       |X/Y/Z|
   |----------------------------|---|------------------------|-----|
   |N-CONNECT       request     | X | Called Address,        |  X  |
   |                indication  | X | Calling Address,       |  X  |
   |                response    | X | NS User-Data,          |  Z  |
   |                confirm     | X | QOS parameter set,     |  X  |
   |                            |   | Responding address,    |  Z  |
   |                            |   | Receipt confirmation   |  Y  |
   |                            |   | selection.             |     |
   |----------------------------|---|------------------------|-----|
   |N-DATA          request     | X | NS User-Data,          |  X  |
   |                indication  | X | Confirmation request   |  Y  |
   |----------------------------|---|------------------------|-----|
   |N-DATA ACKNOWLEDGE          |   |                        |     |
   |                request     | Y |                        |     |
   |                indication  | Y |                        |     |
   |----------------------------|---|------------------------|-----|
   |N-EXPEDITED DATA            |   |                        |     |
   |                request     | Y | NS User-Data.          |  Y  |
   |                indication  | Y |                        |     |
   |----------------------------|---|------------------------|-----|
   |N-RESET         request     | X | Originator,            |  Z  |
   |                indication  | X | Reason.                |  Z  |
   |                response    | X |                        |     |
   |                confirm     | X |                        |     |
   |----------------------------|---|------------------------|-----|
   |N-DISCONNECT    request     | X | NS User-Data.          |  Z  |
   |                indication  | X | Originator,            |  Z  |
   |                            |   | Reason.                |  Z  |
   +---------------------------------------------------------------+
                  Table 2. Network service primitives
                                  17
   Key:
      X - The Transport  Protocol  assumes  that  this  facility  is
          provided in all networks.
      Y - The Transport  Protocol  assumes  that  this  facility  is
          provided  in  some networks and a mechanism is provided to
          optionally use the facility.
      Z - The Transport Protocol does not use this parameter.
   NOTES:
      1 - The parameters listed in  this  table  are  those  in  the
          current network service (first DP 8348).
      2 - The way the parameters are exchanged between the transport
          entity and the NS-provider is a local matter.
   5.3  Functions of the Transport Layer
   5.3.1  Overview of functions
   The functions in the  Transport  Layer  are  those  necessary  to
   bridge  the  gap  between the services available from the Network
   Layer and those to be offered to the TS-users.
   The functions in the  Transport  Layer  are  concerned  with  the
   enhancement  of  quality  of  service,  including aspects of cost
   optimization.
   These functions are grouped below into those used  at  all  times
   during a transport connection and those concerned with connection
   establishment, data transfer and release.
   NOTE - This International Standard does not include the following
   functions  which  are under consideration for inclusion in future
   editions of this standard:
      a)  encryption;
                                  18
      b)  accounting mechanisms;
      c)  status exchanges and monitoring of QOS;
      d)  blocking;
      e)  temporary release of network connections;
      f)  alternative checksum algorithm.
   5.3.1.1  Functions used at all times
   The following functions, depending upon the  selected  class  and
   options, are used at all times during a transport connection:
      a)  transmission of TPDUs (see 6.2 and 6.9);
      b)  multiplexing and demultiplexing  (see  6.15),  a  function
          used  to  share a single network connection between two or
          more transport connections;
      c)  error detection (see 6.10, 6.13 and 6.17), a function used
          to  detect  the loss, corruption, duplication, misordering
          or misdelivery of TPDUs;
      d)  error recovery (see 6.12, 6.14, 6.18, 6.19, 6.20, 6.21 and
          6.22),  a  function  used  to  recover  from  detected and
          signalled errors.
   5.3.1.2  Connection Establishment
   The  purpose  of  connection  establishment  is  to  establish  a
   transport   connection   between  two  TS-users.   The  following
   functions of the transport layer during this phase must match the
   TS-users'  requested quality of service with the services offered
   by the network layer:
                                  19
      a)  select network service which best matches the  requirement
          of  the  TS-user  taking  into account charges for various
          services (see 6.5);
      b)  decide whether to multiplex multiple transport connections
          onto a single network connection (see 6.5);
      c)  establish the optimum TPDU size (see 6.5);
      d)  select  the  functions  that  will  be  operational   upon
          entering the data transfer phase (see 6.5);
      e)  map transport addresses onto network addresses;
      f)  provide a  means  to  distinguish  between  two  different
          transport connections (see 6.5);
      g)  transport of TS-user data (see 6.5).
   5.3.1.3  Data Transfer
   The purpose of data transfer is to permit duplex transmission  of
   TSDUs  between  the  two  TS-users  connected  by  the  transport
   connection.   This  purpose  is  achieved  by  means  of  two-way
   simultaneous  communication  and by the following functions, some
   of which are used or not used in accordance with  the  result  of
   the selection performed in connection establishment:
      a)  concatenation and separation (see 6.4), a function used to
          collect  several  TPDUs  into a single NSDU at the sending
          transport  entity  and  to  separate  the  TPDUs  at   the
          receiving transport entity;
      b)  segmenting and reassembling (see 6.3), a function used  to
          segment  a  single  data  TSDU  into multiple TPDUs at the
          sending transport entity and to reassemble them into their
          original format at the receiving transport entity;
                                  20
      c)  splitting and recombining (see 6.23), a function  allowing
          the simultaneous use of two or more network connections to
          support the same transport connection;
      d)  flow control (see 6.16), a function used to  regulate  the
          flow  of  TPDUs  between  two  transport  entities  on one
          transport connection;
      e)  transport connection identification, a means  to  uniquely
          identify  a  transport  connection  between  the  pair  of
          transport entities supporting the  connection  during  the
          lifetime of the transport connection;
      f)  expedited data (see 6.11), a function used to  bypass  the
          flow  control  of  normal  data TPDU.  Expedited data TPDU
          flow is controlled by separate flow control;
      g)  TSDU delimiting (see 6.3), a function  used  to  determine
          the beginning and ending of a TSDU.
   5.3.1.4  Release
   The  purpose  of  release  (see  6.7  and  6.8)  is  to   provide
   disconnection  of  the  transport  connection,  regardless of the
   current activity.
   5.4  Classes and options
   5.4.1  General
   The functions of the Transport Layer  have  been  organized  into
   classes and options.
   A class  defines  a  set  of  functions.   Options  define  those
   functions within a class which may or may not be used.
   This International Standard defines five classes of protocol:
                                  21
      a)  Class 0:  Simple Class;
      b)  Class 1:  Basic Error recovery Class;
      c)  Class 2:  Multiplexing Class;
      d)  Class 3:  Error Recovery and Multiplexing Class;
      e)  Class 4:  Error Detection and Recovery Class.
   NOTE - Transport connections  of  classes  2,  3  and  4  may  be
   multiplexed together onto the same network connection.
   5.4.2  Negotiation
   The use of classes and options is  negotiated  during  connection
   establishment.   The  choice  made by the transport entities will
   depend upon:
      a)  the TS-users' requirements expressed via T-CONNECT service
          primitives;
      b)  the quality of the available network services;
      c)  the user required service versus cost ratio acceptable  to
          the TS-user.
   5.4.3  Choice of network connection
   The following  list  classifies  network  services  in  terms  of
   quality  with  respect  to  error  behavior  in  relation to user
   requirements; its main purpose is to  provide  a  basis  for  the
   decision  regarding  which  class of transport protocol should be
   used in conjunction with given network connection:
                                  22
      a)  Type A.  Network connection with acceptable residual error
          rate  (for  example  not signalled by disconnect or reset)
          and acceptable rate of signalled errors.
      b)  Type B.   Network  connections  with  acceptable  residual
          error  rate  (for  example  not signalled by disconnect or
          reset) but unacceptable rate of signalled errors.
      c)  Type C.  Network connections  with  unacceptable  residual
          error rate.
   It is assumed that each transport entity is aware of the  quality
   of service provided by particular network connections.
   5.4.4  Characteristics of Class 0
   Class 0 provides the simplest type of transport connection and is
   fully  compatible  with the CCITT recommendation S.70 for teletex
   terminals.
   Class 0 has  been  designed  to  be  used  with  type  A  network
   connections.
   5.4.5  Characteristics of Class 1
   Class 1  provides  a  basic  transport  connection  with  minimal
   overheads.
   The main  purpose  of  the  class  is  to  recover  from  network
   disconnect or reset.
   Selection of this class is usually based on reliability criteria.
   Class  1  has  been  designed  to  be  used  with  type B network
   connections.
                                  23
   5.4.6  Characteristics of Class 2
   5.4.6.1  General
   Class 2 provides a way to multiplex several transport connections
   onto  a  single network connection.  This class has been designed
   to be used with type A network connections.
   5.4.6.2  Use of explicit flow control
   The objective is to provide flow control to help avoid congestion
   at transport-connection-end-points and on the network connection.
   Typical use is when traffic is  heavy  and  continuous,  or  when
   there  is  intensive  multiplexing.   Use  of  flow  control  can
   optimize response times and resource utilization.
   5.4.6.3  Non-use of explicit flow control
   The objective is to provide a  basic  transport  connection  with
   minimal  overheads  suitable  when  explicit disconnection of the
   transport connection is desirable.  The option would typically be
   used for unsophisticated terminals, and when no multiplexing onto
   network  connections  is  required.   Expedited  data  is   never
   available.
   5.4.7  Characteristics of Class 3
   Class 3 provides the characteristics of Class 2 plus the  ability
   to  recover  from network disconnect or reset.  Selection of this
   class is usually based upon reliability criteria.   Class  3  has
   been designed to be used with type B network connections.
                                  24
   5.4.8  Characteristics of Class 4
   Class 4  provides  the  characteristics  of  Class  3,  plus  the
   capability  to  detect  and  recover from errors which occur as a
   result of the  low  grade  of  service  available  from  the  NS-
   provider.   The  kinds  of  errors  to be detected include:  TPDU
   loss, TPDU delivery out of sequence, TPDU  duplication  and  TPDU
   corruption.   These  errors  may  affect control TPDUs as well as
   data TPDUs.
   This class also provides for increased throughput capability  and
   additional  resilience  against network failure. Class 4 has been
   designed to be used with type C network connections.
   5.5  Model of the transport layer
   A transport entity communicates with its TS-users through one  or
   more  TSAPs  by means of the service primitives as defined by the
   transport service definition DP 8072.   Service  primitives  will
   cause  or be the result of transport protocol data unit exchanges
   between  the  peer  transport  entities  supporting  a  transport
   connection.   These  protocol  exchanges  are  effected using the
   services of the Network Layer as defined by the  Network  Service
   Definition DP 8348 through one or more NSAPs.
   Transport connection endpoints are identified in end  systems  by
   an  internal, implementation dependent, mechanism so that the TS-
   user and  the  transport  entity  can  refer  to  each  transport
   connection.
                                  25
             +------+                        +------+
   ----------| TSAP |------------------------| TSAP |----------
             +------+                        +------+
                 |                               |
          +---------------+               +---------------+
          | Transport     |               | Transport     |
          |       entity  |               |       entity  |
          +---------------+               +---------------+
                 |                               |
                 |                               |
             +------+                        +------+
   ----------| NSAP |------------------------| NSAP |----------
             +------+                        +------+
                 |                               |
                 +-------------------------------+
                Figure 2 . Model of the transport layer
   NOTE - For purpose of illustration, this figure  shows  only  one
   TSAP  and  one  NSAP  for  each  transport  entity.   In  certain
   instances, more than one TSAP and/or more than one  NSAP  may  be
   associated with a particular transport entity.
                                  26
   SECTION TWO.  TRANSPORT PROTOCOL SPECIFICATION
   6  ELEMENTS OF PROCEDURE
   This clause contains elements of procedure which are used in  the
   specification  of  protocol  classes  in  clauses 7 to 12.  These
   elements are not meaningful on their own.
   The procedures define the transfer of TPDUs whose  structure  and
   coding  is  specified  in  clause  13.   Transport entities shall
   accept and respond to any TPDU received in a valid NSDU  and  may
   issue  TPDUs  initiating specific elements of procedure specified
   in this clause.
   NOTE - Where network service primitives and TPDUs and  parameters
   used  are  not significant for a particular element of procedure,
   they have not been included in the specification.
   6.1  Assignment to network connection
   6.1.1  Purpose
   The  procedure  is  used  in  all  classes  to  assign  transport
   connections to network connections.
   6.1.2  Network service primitives
   The  procedure  makes  use  of  the  following  network   service
   primitives:
      a)  N-CONNECT;
      b)  N-DISCONNECT.
                                  27
   6.1.3  Procedure
   Each  transport  connection  shall  be  assigned  to  a   network
   connection.  The initiator may assign the transport connection to
   an existing network connection of which it is the owner or  to  a
   new  network  connection  (see  Note 1) which it creates for this
   purpose.
   The  initiator  shall  not  assign  or  reassign  the   transport
   connection  to  an  existing  network  connection if the protocol
   class(es)  proposed  or  the  class  in  use  for  the  transport
   connection are incompatible with the current usage of the network
   connection with respect to multiplexing (see Note 2).
   During the resynchronization (see 6.14)  and  reassignment  after
   failure  (see 6.12) procedures, a transport entity may reassign a
   transport connection to another network  connection  joining  the
   same  NSAPs,  provided  that  it  is  the  owner  of  the network
   connection and that the transport connection is assigned to  only
   one network connection at any given time.
   During the splitting procedure (see 6.23), a transport entity may
   assign   a   transport   connection  to  any  additional  network
   connection joining the same NSAPs, provided that it is the  owner
   of  the  network  connection and that multiplexing is possible on
   the network connection.
   The responder becomes aware of the assignment when it receives
      a)  a CR TPDU during the  connection  establishment  procedure
          (see 6.5); or
      b)  an RJ TPDU or a retransmitted CR or  DR  TPDU  during  the
          resynchronization   (see   6.14)  and  reassignment  after
          failure (see 6.12) procedures; or
      c)  any TPDU when splitting (see 6.23) is used.
                                  28
   NOTES
      1.  When a new network connection is created, the  quality  of
          service  requested  is  a  local  matter, although it will
          normally be  related  to  the  requirements  of  transport
          connection(s) expected to be assigned to it.
      2.  An existing network connection may also  not  be  suitable
          if,  for example, the quality of service requested for the
          transport  connection  cannot  be  attained  by  using  or
          enhancing the network connection.
      3.  A  network  connection  with  no  transport  connection(s)
          assigned   to   it,   may   be   available  after  initial
          establishment, or because all of the transport connections
          previously  assigned  to  it  have  been  released.  It is
          recommended  that  only  the  owner  of  such  a   network
          connection   should   release   it.   Furthermore,  it  is
          recommended that it not be released immediately after  the
          transmission of the final TPDU of a transport connection -
          either a DR TPDU in response to CR TPDU or a  DC  TPDU  in
          response  to DR TPDU.  An appropriate delay will allow the
          TPDU  concerned  to  reach  the  other  transport   entity
          allowing  the freeing of any resources associated with the
          transport connection concerned.
      4.  After the  failure  of  a  network  connection,  transport
          connections which were previously multiplexed together may
          be assigned to different  network  connections,  and  vice
          versa.
   6.2  Transport protocol data unit (TPDU) transfer
   6.2.1  Purpose
   The TPDU transfer procedure is used  in  all  classes  to  convey
   transport  protocol  data  units  in  user data fields of network
   service primitives.
                                  29
   6.2.2  Network Service Primitives
   The procedure uses the following network service primitives:
      a)  N-DATA;
      b)  N-EXPEDITED DATA
   6.2.3  Procedure
   The  transport  protocol  data  units  (TPDUs)  defined  for  the
   protocol are listed in 4.2.
   When the network expedited variant has been selected for class 1,
   the transport entities shall transmit and receive ED and EA TPDUs
   as NS-user data parameters of N-EXPEDITED DATA primitives.
   In all other cases, transport entities shall transmit and receive
   TPDUs as NS-user data parameters of N-DATA primitives.
   When  a  TPDU  is  put  into  an  NS-user  data  parameter,   the
   significance  of the bits within an octet and the order of octets
   within a TPDU shall be as defined in 13.2.
   NOTE - TPDUs may be concatenated (see 6.4).
   6.3  Segmenting and reassembling
   6.3.1  Purpose
   The segmenting and reassembling procedure is used in all  classes
   to map TSDUs onto TPDUs.
                                  30
   6.3.2  TPDUs and parameter used
   The procedure makes use of the following TPDU and parameter:
      DT TPDUs;
  1. End of TSDU.
   6.3.3  Procedure
   A transport entity shall map a TSDU on to an ordered sequence  of
   one  or more DT TPDUs.  This sequence shall not be interrupted by
   other DT TPDUs on the same transport connection.
   All DT TPDUs except the last DT TPDU in a sequence  greater  than
   one shall have a length of data greater than zero.
   NOTES
      1.  The EOT parameter of a DT TPDU indicates  whether  or  not
          there are subsequent DT TPDUs in the sequence.
      2.  There is no requirement that the DT TPDUs shall be of  the
          maximum length selected during connection establishment.
   6.4  Concatenation and separation
   6.4.1  Purpose
   The procedure for concatenation and separation is used in classes
   1, 2, 3 and 4 to convey multiple TPDUs in one NSDU.
                                  31
   6.4.2  Procedure
   A transport  entity  may  concatenate  TPDUs  from  the  same  or
   different transport connections.
   The set of concatenated TPDUs may contain:
      a)  any number of TPDUs from the following list:  AK, EA,  RJ,
          ER,   DC  TPDUs,  provided  that  these  TPDUs  come  from
          different transport connections;
      b)  no more than one TPDU from the following  list:   CR,  DR,
          CC,  DT,  ED  TPDUs;  if this TPDU is present, it shall be
          placed last in the set of concatenated TPDUs.
   NOTES
      1.  The TPDUs within a concatenated set may  be  distinguished
          by means of the length indicator parameter.
      2.  The end of a TPDU containing  data  is  indicated  by  the
          termination of the NSDU.
      3.  The number of concatenated TPDUs referred to in 6.4.2.a is
          bounded  by  the  maximum  number of transport connections
          which are multiplexed together except during assignment or
          reassignment.
   6.5  Connection establishment
   6.5.1  Purpose
   The procedure for connection establishment is used in all classes
   to create a new transport connection.
                                  32
   6.5.2  Network service primitives
   The procedure uses the following network service primitive:
   N-DATA
   6.5.3  TPDUs and parameters used
   The procedure uses the following TPDUs and parameters:
      a)  CR TPDU;
  1. CDT;
  2. DST-REF (set to zero);
  3. SRC-REF
  4. CLASS and OPTIONS (i.e. preferred class, use of extended

format, non-use of explicit flow control in class 2);

  1. calling TSAP-ID;
  2. called TSAP-ID;
  3. TPDU size (proposed);
  4. version number;
  5. security parameter;
  6. checksum;
  7. additional option selection (i.e. use of network

expedited in class 1, use of receipt confirmation in

            class  1,  non-use  of  checksum  in  class  4,  use  of
            transport expedited data transfer service);
          - alternative protocol class(es);
          - acknowledge time;
          - throughput (proposed);
          - residual error rate (proposed);
          - priority (proposed);
          - transit delay (proposed);
          - reassignment time;
          - user data.
      b)  CC TPDU;
  1. CDT;
  2. DST-REF;
                                  33
  1. SRC-REF;
  2. CLASS and OPTIONS (selected);
  3. calling TSAP-ID;
  4. called TSAP-ID;
  5. TPDU size (selected);
  6. security parameter;
  7. checksum;
  8. additional option selection (selected);
  9. acknowledge time;
  10. throughput (selected);
  11. residual error rate (selected);
  12. priority (selected);
  13. transit delay (selected);
  14. user data.
        NOTE - The  transport  service  defines  transit  delay   as
        requiring  a  previously stated average TSDU size as a basis
        for any  specification.   This  protocol,  as  specified  in
        13.3.4(n),  uses  a  value of 128 octets.  Conversion to and
        from specifications based upon some other value is  a  local
        matter.
   6.5.4  Procedure
   A transport connection is established by means of  one  transport
   entity  (the  initiator)  transmitting  a  CR  TPDU  to the other
   transport entity (the responder), which replies with a CC TPDU.
   Before sending the CR TPDU, the initiator assigns  the  transport
   connection  being  created  to  one  (or  more  if  the splitting
   procedure is being use) network connection(s).  It is this set of
   network  connections  over which the TPDUs are sent.  During this
   exchange, all information and parameters needed for the transport
   entities to operate shall be exchanged or negotiated.
        NOTE - Except  in  class  4,  it  is  recommended  that  the
        initiator  starts  an  optional timer TS1 at the time the CR
        TPDU is  sent.   This  timer  should  be  stopped  when  the
        connection   is   considered   as  accepted  or  refused  or
        unsuccessful.  If the timer expires,  the  initiator  should
                                  34
        reset or disconnect the network connection and, in classes 1
        and 3 freeze  the  reference  (see  6.18).   For  all  other
        transport  connection(s)  multiplexed  on  the  same network
        connection  the  procedures  for  reset  or  disconnect   as
        appropriate should be followed.
   After receiving the CC  TPDU  for  a  class  which  includes  the
   procedure  for  retention  until  acknowledgement  of  TPDUs  the
   initiator shall acknowledge the CC TPDU as  defined  in  table  5
   (see 6.13).
   When the network expedited variant of the expedited data transfer
   (see  6.11)  has  been  agreed  (possible  in  class 1 only), the
   responder shall not send  an  ED  TPDU  before  the  CC  TPDU  is
   acknowledged.
   The following information is exchanged:
      a)  references.  Each transport  entity  chooses  a  reference
          which is to be used by the peer entity is 16 bits long and
          which is arbitrary except for the following restrictions:
          1)  it shall not already be in use or frozen (see 6.18),
          2)  it shall not be zero.
          This mechanism is symmetrical and provides  identification
          of  the  transport  connection  independent of the network
          connection.  The range of references  used  for  transport
          connections,  in  a  given  transport  entity,  is a local
          matter.
      b)  addresses (optional).  Indicate  the  calling  and  called
          transport  service  access  points.   When  either network
          address unambiguously defines the transport  address  this
          information may be omitted.
      c)  initial credit.  Only relevant for classes  which  include
          the explicit flow control function.
      d)  user data.  Not available if  Class  0  is  the  preferred
          class (see note).  Up to 32 octets in other classes.
                                  35
          NOTE - If class 0 is a valid response according  to  table
          3,  inclusion  of  user  data in the CR TPDU may cause the
          responding entity to refuse the  connection  (e.g.  if  it
          only supports class 0).
      e)  acknowledgement time.  Only in class 4.
      f)  checksum parameter.  Only in class 4.
      g)  security parameter.  This parameter and its semantics  are
          user defined.
   The following negotiations take place:
      h)  protocol class.  The initiator shall propose  a  preferred
          class  and  may  propose  any  number of alternative class
          which permit a valid response as defined in table 3.   The
          initiator should assume when it sends the CR TPDU that its
          preferred class  will  be  agreed  to,  and  commence  the
          procedures  associated  with  that  class,  except that if
          class 0 or class 1 is an alternative  class,  multiplexing
          shall  not  commence  until a CC TPDU selecting the use of
          classes 2, 3 or 4 has been received.
          NOTE - This means, for example, that  when  the  preferred
          class    includes   resynchronization   (see   6.14)   the
          resynchronization will  occur  if  a  reset  is  signalled
          during connection establishment.
   The responder shall select one class defined  in  table  3  as  a
   valid  response  corresponding  to the preferred class and to the
   class(es), if any, contained in the alternative  class  parameter
   of  the  CR TPDU.  It shall indicate the selected class in the CC
   TPDU and shall follow the procedures for the selected class.
   If the preferred class is not selected, then on receipt of the CC
   TPDU  the  initiator  shall  adjust  its  operation according the
   procedures of the selected class.
                                  36
   +------------------------------------------------------------+
   | Pre-  |                Alternative class                   |
   |ferred |----------------------------------------------------|
   |class  |   0    |   1    |   2    |   3    |   4    | none  |
   |-------|--------|--------|--------|--------|--------|-------|
   |   0   |not     |not     |not     |not     |not     |class  |
   |       |valid   |valid   |valid   |valid   |valid   |  0    |
   |-------|--------|--------|--------|--------|--------|-------|
   |   1   |class   |class   |not     |not     |not     |class  |
   |       |1 or 0  |1 or 0  |valid   |valid   |valid   |1 or 0 |
   |-------|--------|--------|--------|--------|--------|-------|
   |   2   |class   |not     |class   |not     |not     |class  |
   |       |2 or 0  |valid   |2       |valid   |valid   |  2    |
   |-------|--------|--------|--------|--------|--------|-------|
   |   3   |class   |class 3,|class   |class   |not     |class  |
   |       |3,2 or 0|2,1 or 0|3 or 2  |3 or 2  |valid   |3 or 2 |
   |-------|--------|--------|--------|--------|--------|-------|
   |   4   |class   |class 4,|class   |class   |class   |class  |
   |       |4,2 or 0|2,1 or 0|4 or 2  |4,3 or 2|4 or 2  |4 or 2 |
   +------------------------------------------------------------+
                               Table 3.
   Valid responses corresponding to  the  preferred  class  and  any
   alternative class proposed in the CR TPDU
   NOTES:
      1.  The valid responses indicated in table 3 result from  both
          explicit negotiation, whereby each of the classes proposed
          is a valid response, and implicit negotiation whereby:
          a)  if class 3 or 4 is proposed then class 2  is  a  valid
              response;
          b)  if class 1  is  proposed  then  class  0  is  a  valid
              response.
                                  37
      2.  Negotiation from class 2 to class 1 and from any class  to
          an higher-numbered class is not valid.
      3.  Redundant combinations are not a protocol error.
      j)  TPDU size.  The initiator may propose a maximum  size  for
          TPDUs,  and the responder may accept this value or respond
          with any value between 128 and the proposed value  in  the
          set of values available (see 13.3.4.b).
          NOTE - The length of the  CR  TPDU  does  not  exceed  128
          octets (see 13.3).
      k)  normal or extended format.  Either normal or  extended  is
          available.   When  extended  is  used this applies to CDT,
          TPDU-NR, ED-TPDU-NR, YR-TU-NR and YR-EDTU-NR parameters.
      m)  checksum selection.  This defines whether or not TPDUs  of
          the connection are to include a checksum.
      n)  quality  of  service   parameters.    This   defines   the
          throughput,  transit  delay,  priority  and residual error
          rate.
      p)  the non-use of explicit flow control in class 2.
      q)  the  use  of  network  receipt  confirmation  and  network
          expedited when class 1 is to be used.
      r)  use of expedited data transfer service.  This allows  both
          TS-users  to negotiate the use or non-use of the expedited
          data transport service as defined in the transport service
          (ISO 8072).
   The following information is sent only in the CR TPDU:
      s)  version number.  This defines the version of the transport
          protocol standard used for this connection.
      t)  reassignment time parameter.  This indicates the time  for
          which   the   initiator  will  persist  in  following  the
          reassignment after failure procedure.
                                  38
   The negotiation rules for the options are such that the initiator
   may  propose  either  to  use  or  not  to  use  the option.  The
   responder may either accept the  proposed  choice  or  select  an
   alternative choice as defined in table 4.
   In class 2, whenever a transport entity requests or agrees to the
   transport  expedited  data  transfer  service  or  to  the use of
   extended formats, it shall also request or  agree  (respectively)
   to the use of explicit flow control.
   +-------------------------------------------------------------+
   |        Option         |  Proposal Made   | Valid Selection  |
   |                       | by the Initiator | by the Responder |
   |-----------------------|------------------|------------------|
   |Transport expedited    |       Yes        |    Yes or No     |
   |data transfer service  |       No         |        No        |
   |(Classes 1,2,3,4 only) |                  |                  |
   |-----------------------|------------------|------------------|
   |Use of receipt confir- |       Yes        |    Yes or No     |
   |mation (Class 1 only)  |       No         |        No        |
   |-----------------------|------------------|------------------|
   |Use of the network     |       Yes        |    Yes or No     |
   |expedited variant      |       No         |        No        |
   |(Class 1 only)         |                  |                  |
   |-----------------------|------------------|------------------|
   |Non-use of checksum    |       Yes        |    Yes or No     |
   |(Class 4 only)         |       No         |        No        |
   |-----------------------|------------------|------------------|
   |Non-use of explicit    |       Yes        |    Yes or No     |
   |flow control           |       No         |        No        |
   |(Class 2 only)         |                  |                  |
   |-----------------------|------------------|------------------|
   |Use of extended format |       Yes        |    Yes or No     |
   |(Classes 2,3,4 only)   |       No         |        No        |
   +-------------------------------------------------------------+
    Table 4. Negotiation of options during connection establishment
                                  39
   NOTE - Table 4 defines the procedures for negotiation of options.
   This  negotiation  has  been  designed such that if the initiator
   proposes the mandatory implementation option specified in  clause
   14,  the  responder  has  to  accept  use of this option over the
   transport  connection  except  for  the  use  of  the   transport
   expedited  data transfer service which may be rejected by the TS-
   user.  If the initiator proposes a  non-mandatory  implementation
   option,  the responder is entitled to select use of the mandatory
   implementation option for use over the transport connection.
   6.6  Connection refusal
   6.6.1  Purpose
   The connection refusal procedure is used in all  classes  when  a
   transport  entity refuses a transport connection in response to a
   CR TPDU.
   6.6.2  TPDUs and parameters used
   The procedure makes use of the following TPDUs and parameters:
      a)  DR TPDU;
  1. SRC-REF;
  2. reason;
  3. user data.
      b)  ER TPDU;
  1. reject code;
  2. rejected TPDU parameter.
                                  40
   6.6.3  Procedure
   If a transport connection cannot be accepted, the responder shall
   respond to the CR TPDU with a DR TPDU.  The reason shall indicate
   why the connection was not accepted.  The source reference  field
   in  the  DR  TPDU  shall be set to zero to indicate an unassigned
   reference.
   If  a  DR  TPDU  is  received  the  initiator  shall  regard  the
   connection as released.
   The responder shall respond to an invalid CR TPDU by  sending  an
   ER  or  DR  TPDU.   If an ER TPDU is received in response to a CR
   TPDU, the initiator shall regard the connection as released.
   NOTES
   1.  When the invalid CR TPDU can be identified as having class  0
       as  the preferred class, it is recommended to respond with an
       ER TPDU.  For all other invalid CR TPDUs either an ER TPDU or
       DR TPDU may be sent.
   2.  If the optimal supervisory timer TS1 has been  set  for  this
       connection  then  the entity should stop the timer on receipt
       of the DR or ER TPDU.
   6.7  Normal release
   6.7.1  Purpose
   The release procedure is used by a transport entity in  order  to
   terminate  a  transport connection.  The implicit variant is used
   only in class 0.  The explicit variant is used in  classes  1,2,3
   and 4.
                                  41
   NOTES
   1.  When the implicit variant is used  (i.e.  in  class  0),  the
       lifetime  of  the transport connection is directly correlated
       with the lifetime of the network connection.
   2.  The use of the explicit  variant  of  the  release  procedure
       enables the transport connection to be released independently
       of the underlying network connection.
   6.7.2  Network service primitives
   The  procedure  makes  use  of  the  following  network   service
   primitives:
      a)  N-DISCONNECT (implicit variant only),
      b)  N-DATA
   6.7.3  TPDUs and parameters used
   The procedure makes use of the following TPDUs and parameters:
      a)  DR TPDU;
  1. clearing reason;
  2. user data;
  3. SRC-REF;
  4. DST-REF.
      b)  DC TPDU.
                                  42
   6.7.4  Procedure for implicit variant
   In the implicit variant either  transport  entity  disconnects  a
   transport  connection  by disconnecting the network connection to
   which it is assigned.  When a transport  entity  receives  an  N-
   DISCONNECT  this  should  be  considered  as  the  release of the
   transport connection.
   6.7.5  Procedure for explicit variant
   When the release of a transport connection is to be  initiated  a
   transport entity
      a)  if it has previously sent or received a CC TPDU (see  note
          1),   shall   send   a  DR  TPDU.   It  shall  ignore  all
          subsequently received TPDUs other than a DR  or  DC  TPDU.
          On  receipt  of  a  DR  or  DC  TPDU it shall consider the
          transport connection released;
      b)  in other cases it shall:
          1)  For  classes  other  than  class  4   wait   for   the
              acknowledgement  of  the  outstanding  CR  TPDU; if it
              receives a CC TPDU, it shall follow the procedures  in
              6.7.5.a.
          2)  For class 4 either send a DR TPDU with a zero value in
              the   DST-REF   field   or  follow  the  procedure  in
              6.7.5.b.1.
      A transport entity that receives a DR TPDU shall
      c)  if it has previously sent a DR TPDU for the same transport
          connection, consider the transport connection released;
      d)  if it has previously sent a CR  TPDU  that  has  not  been
          acknowledged by a CC TPDU, consider the connection refused
          (see 6.6).
                                  43
      e)  in other cases, send a DC TPDU and consider the  transport
          connection released.
      NOTES
      1)  This requirement ensures  that  the  transport  entity  is
          aware   of   the   remote   reference  for  the  transport
          connection.
      2)  When the transport connection is  considered  as  released
          the  local  reference is either available for re-use or is
          frozen (see 6.18).
      3)  After the release of a transport  connection  the  network
          connection  can  be released or retained to enable its re-
          use for the assignment of other transport connections (see
          6.1.).
      4)  Except in class 4, it is recommended that, if a  transport
          entity  does  not  receive  acknowledgement  of  a DR TPDU
          within time TS2, it should either reset or disconnect  the
          network   connection,   and   freeze  the  reference  when
          appropriate  (see  6.18).    For   all   other   transport
          connection(s)  multiplexed  on this network connection the
          procedures for reset or disconnect as  appropriate  should
          be followed.
      5)  When a transport entity is waiting for a  CC  TPDU  before
          sending  a  DR TPDU and the network connection is reset or
          released, it  should  consider  the  transport  connection
          released  and,  in  classes  other  than  classes 0 and 2,
          freeze the reference (see 6.18).
   6.8  Error Release
                                  44
   6.8.1  Purpose
   This procedure is used only in classes  0  and  2  to  release  a
   transport connection on the receipt of an N-DISCONNECT or N-RESET
   indication.
   6.8.2  Network service primitives
   The procedure makes use of the following service primitives:
      a)  N-DISCONNECT indication;
      b)  N-RESET indication.
   6.8.3  Procedure
   When, on the network connection to which a  transport  connection
   is  assigned,  an N-DISCONNECT or N-RESET indication is received,
   both  transport  entities  shall  consider  that  the   transport
   connection is released and so inform the TS-users.
   NOTE - In other  classes,  since  error  recovery  is  used,  the
   receipt  of an N-RESET indication or N-DISCONNECT indication will
   result in the invocation of the error recovery procedure.
   6.9  Association of TPDUs with transport connections
   6.9.1  Purpose
   This procedure is used in all classes  to  interpret  a  received
   NSDU  as  TPDU(s)  and,  if possible, to associate each such TPDU
   with a transport connection.
                                  45
   6.9.2  Network service primitives
   This  procedure  makes  use  of  the  following  network  service
   primitives:
      a)  N-DATA indication;
      b)  N-EXPEDITED DATA indication.
   6.9.3  TPDUs and parameters uses
   This procedure makes use of the following TPDUs and parameters:
      a)  any TPDU except CR TPDU, DT TPDU in classes 0 or 1 and  AK
          TPDU in class 1;
  1. DST-REF
      b)  CR, CC, DR and DC TPDUs;
  1. SCR-REF.
      c)  DT TPDU in classes 0 or 1 and AK TPDU in class 1.
   6.9.4  Procedures
   6.9.4.1  Identification of TPDUs
   If the received NSDU or Expedited NSDU cannot  be  decoded  (i.e.
   does not contain one or more correct TPDUs) or is corrupted (i.e.
   contains a TPDU with a wrong checksum) then the transport  entity
   shall:
                                  46
      a)  if the network connection on which the error  is  detected
          has  a class 0 or class 1 transport connection assigned to
          it, then treat as a protocol error  (see  6.22)  for  that
          transport connection;
      b)  otherwise
          1)  if the NSDU can  be  decoded  but  contains  corrupted
              TPDUs,  ignore the TPDUs (class 4 only) and optionally
              apply 6.9.4.b.2.
          2)  if the NSDU cannot be decoded issue an N-RESET  or  N-
              DISCONNECT  request for the network connection and for
              all the transport connections assigned to this network
              connection  (if any), apply the procedures defined for
              handling of network signalled reset or disconnect.
          If the NSDU can be  decoded  and  is  not  corrupted,  the
          transport entity shall:
      c)  if the network connection on which the NSDU  was  received
          has  a  class  0 transport connection assigned to it, then
          consider the NSDU as forming TPDU and associate  the  TPDU
          with the transport connection (see 6.9.4.2).
      d)  otherwise, invoke the separation procedures and  for  each
          of  the individual TPDUs in the order in which they appear
          in the NSDU apply the procedure defined in 6.9.4.2.
   6.9.4.2  Association of individual TPDUs
   If the received TPDU is a CR TPDU then, if it is a duplicate,  as
   recognized  by using the NSAPs of the network connection, and the
   SRC-REF parameter, then  it  is  associated  with  the  transport
   connection  created  by  the  original  value  of  the  CR  TPDU;
   otherwise it is processed as requesting the  creation  of  a  new
   transport connection.
   If the received TPDU is a DT TPDU and the network connection  has
   a class 0 or 1 transport connection assigned to it, or an AK TPDU
                                  47
   where a class 1 transport connection is assigned, then  the  TPDU
   is associated with the transport connection.
   Otherwise, the DST-REF parameter of the TPDU is used to  identify
   the transport connection.  The following cases are distinguished:
      a)  if the DST-REF is not allocated to a transport connection,
          the  transport  entity  shall  respond on the same network
          connection with a DR TPDU if the TPDU is a CC TPDU, with a
          DC TPDU if the TPDU is a DR TPDU and shall ignore the TPDU
          if neither a DR TPDU nor CC TPDU.  No association  with  a
          transport connection is made.
      b)  if the DST-REF is allocated to a connection, but the  TPDU
          is   received   on  a  network  connection  to  which  the
          connection has not been  assigned  then  there  are  three
          cases:
          1)  if the transport connection is of class 4 and  if  the
              TPDU is received on a network connection with the same
              pair of NSAPs as that of the CR TPDU then the TPDU  is
              considered as performing assignment,
          2)  if the transport connection is  not  assigned  to  any
              network  connection  (waiting  for  reassignment after
              failure) and if the TPDU  is  received  on  a  network
              connection  with the same pair of NSAPs as that of the
              CR TPDU  then  the  association  with  that  transport
              connection is made.
          3)  Otherwise, the TPDU is considered as having a  DST-REF
              not allocated to a transport connection (case a).
      c)  If the TPDU is a DC TPDU then it is  associated  with  the
          transport  connection  to  which the DST-REF is allocated,
          unless the SRC-REF is not the expected one, in which  case
          the DC TPDU is ignored.
      d)  If the TPDU is a DR TPDU then there are three cases:
          1)  if the SRC-REF is not as expected then a DC TPDU  with
              DST-REF  equal  to the SRC-REF of the received DR TPDU
              is sent back and no association is made;
                                  48
          2)  if a CR TPDU is unacknowledged then  the  DR  TPDU  is
              associated  with  the transport connection, regardless
              of the value of its SRC-REF parameter;
          3)  otherwise,  the  DR  TPDU  is  associated   with   the
              transport   connection   identified   by  the  DST-REF
              parameter.
      e)  if  the  TPDU  is  a  CC  TPDU  whose  DST-REF   parameter
          identifies an open connection (one for which a CC TPDU has
          been previously received), and the SRC-REF in the CC  TPDU
          does  not  match  the  remote reference, then a DR TPDU is
          sent back  with  DST-REF  equal  to  the  SRC-REF  of  the
          received CC TPDU and no association is made.
      f)  if none  of  the  above  cases  apply  then  the  TPDU  is
          associated with the transport connection identified by the
          DST-REF parameter.
   6.10  Data TPDU numbering
   6.10.1  Purpose
   Data TPDU numbering is used in classes  1,  2  (except  when  the
   non-use  of  explicit  flow control option is selected), 3 and 4.
   Its purpose is to enable the use of recovery,  flow  control  and
   re-sequencing functions.
   6.10.2  TPDUs and parameters used
   The procedure makes use of the following TPDU and parameter:
      DT TPDU;
  1. TPDU-NR.
                                  49
   6.10.3  Procedure
   A Transport entity shall allocate the sequence number zero to the
   TPDU-NR  of  the first DT TPDU which it transmits for a transport
   connection.  For subsequent DT TPDUs sent on the  same  transport
   connection, the transport entity shall allocate a sequence number
   one greater than the previous one.
   When a DT TPDU is retransmitted, the TPDU-NR parameter shall have
   the same value as in the first transmission of that DT TPDU.
   Modulo 2**7 arithmetic shall be used  when  normal  formats  have
   been  selected  and  modulo  2**31  arithmetic shall be used when
   extended formats  have  been  selected.   In  this  International
   Standard  the  relationships 'greater than' and 'less than' apply
   to a set of contiguous TPDU numbers whose range is less than  the
   modulus  and whose starting and finishing numbers are known.  The
   term 'less than' means 'occurring sooner in the window  sequence'
   and  the term 'greater than' means 'occurring later in the window
   sequence'.
   6.11  Expedited data transfer
   6.11.1  Purpose
   Expedited data transfer procedures are selected during connection
   establishment.   The  network  normal data variant may be used in
   classes 1, 2, 3 and 4.  The network  expedited  variant  is  only
   used in class 1.
   6.11.2  Network service primitives
   The  procedure  makes  use  of  the  following  network   service
   primitives:
      a)  N-DATA;
                                  50
      b)  N-EXPEDITED DATA.
   6.11.3  TPDUs and parameter used
   The procedure makes use of the following TPDUs and parameters:
      a)  ED TPDU;
  1. ED TPDU-NR.
      b)  EA TPDU;
  1. YR-EDTU-NR.
   6.11.4  Procedures
   The TS-user data parameter of each T-EXPEDITED DATA request shall
   be conveyed as the data field of an Expedited Data (ED) TPDU.
   Each ED TPDU received  shall  be  acknowledged  by  an  Expedited
   Acknowledge (EA) TPDU.
   No more than one ED TPDU shall remain unacknowledged at any  time
   for each direction of a transport connection.
   An ED TPDU with a zero length data field is a protocol error.
                                  51
   NOTES
      1.  The network normal data variant is used, except  when  the
          network expedited variant (available in Class 1 only), has
          been agreed, in which case ED and EA TPDUs are conveyed in
          the  data  fields  of  N-EXPEDITED  DATA  primitives  (see
          6.2.3).
      2.  No TPDUs can be transmitted using network expedited  until
          the  CC  TPDU becomes acknowledged, to prevent the network
          expedited from overtaking the CC TPDU.
   6.12  Reassignment after failure
   6.12.1  Purpose
   The reassignment after failure procedure is used in Classes 1 and
   3 to commence recovery from an NS-provider signalled disconnect.
   6.12.2  Network service primitives
   The procedure uses the following network service primitive:
        N-DISCONNECT indication
   6.12.3  Procedure
   When an N-DISCONNECT indication  is  received  from  the  network
   connection  to  which  a  transport  connection  is assigned, the
   initiator shall apply one of the following alternatives:
      a)  if the TTR timer has not already run out and no DR TPDU is
          retained then:
                                  52
          1)  assign the transport connection to a different network
              connection  (see  6.1)  and start its TTR timer if not
              already started.
          2)  while waiting for the completion of assignment if:
  1. an N-DISCONNECT indication is received, repeat the

procedure from 6.12.3.a,

  1. the TTR timer expires, begin procedure 6.12.3.b.
          3)  when     reassignment     is     completed,      begin
              resynchronization (see 6.14) and:
  1. if a valid TPDU is received as the result of the

resynchronization, stop the TTR timer, or

  1. if TTR runs out, wait for the next event, or
  1. if an N-DISCONNECT indication is received, then

begin either procedure 6.12.3.a or 6.12.3.b

                depending on the TTR timer.
          NOTE - After the TTR timer expires and while  waiting  for
          the  next  event,  it  is  recommended  that the initiator
          starts the TWR timer.  If the TWR timer expires before the
          next  event  the  initiator  should begin the procedure in
          6.12.3.b.
      b)  if the TTR timer  has  run  out,  consider  the  transport
          connection  as  released  and  freeze  the  reference (see
          6.18).
      c)   if a DR TPDU is retained and the TTR timer  has  not  run
          out,  then  follow  the  actions  in  either  6.12.3.a  or
          6.12.3.b.
   The responder shall start its TWR timer if not  already  started.
   The arrival of the first TPDU related to the transport connection
   (because of resynchronization by  the  initiator)  completes  the
   reassignment  after  failure procedure.  The TWR timer is stopped
   and the responder  shall  continue  with  resynchronization  (see
   6.14).  If reassignment does not take place within this time, the
                                  53
   transport connection is considered released and the reference  is
   frozen (see 6.18).
   6.12.4  Timers
   The reassignment after failure procedure uses two timers:
      a)  TTR, the time to try reassignment/resynchronization timer;
      b)  TWR, the time to wait  for  reassignment/resynchronization
          timer.
   The TTR timer is used by the  initiator.   Its  value  shall  not
   exceed  two  minutes  minus  the  sum  of  the maximum disconnect
   propagation  delay  and  the  transit  delay   of   the   network
   connections  (see  note  1).   The value for the TTR timer may be
   indicated in the CR TPDU.
   The TWR timer is used by the responder.  If the reassignment time
   parameter is present in the CR TPDU, the TWR timer value shall be
   greater than the sum of the TTR timer plus the maximum disconnect
   propagation   delay   plus  the  transit  delay  of  the  network
   connections.
   If the reassignment time parameter is not present in the CR TPDU,
   a default value of 2 minutes shall be used for the TWR timer.
   NOTES
   1.  Provided that the required quality of service is met, TTR may
       be  set  to zero (i.e. no assignment).  This may be done, for
       example, if the rate of NS-provider generated disconnects  is
       very low.
   2.  Inclusion of the reassignment time parameter in the  CR  TPDU
       allows  the  responder  to  use  a  TWR  value of less than 2
       minutes.
   3.  If  the  optional  TS1  and  TS2  timers  are  used,  it   is
       recommended:
                                  54
          a)  to stop TS1 or TS2 if  running  when  TTR  or  TWR  is
              started;
          b)  to  restart  TS1  or  TS2  if   necessary   when   the
              corresponding TPDU (CR TPDU or DR TPDU respectively is
              repeated);
          c)  to select for TS1 and TS2 values greater than TTR.
                                  55
   6.13  Retention until acknowledgement of TPDUs
   6.13.1  Purpose
   The retention until acknowledgement of TPDUs procedure is used in
   classes  1,  3  and 4 to enable and minimize retransmission after
   possible loss of TPDUs.
   The confirmation of receipt variant is used only in Class 1  when
   it has been agreed during connection establishment (see note).
   The AK variant is used in classes 3 and 4 and  also  in  Class  1
   when  the  confirmation  of  receipt  variant has not been agreed
   during connection establishment.
   NOTE - Use of confirmation of  receipt  variant  depends  on  the
   availability  of  the  network layer receipt confirmation service
   and the expected cost reduction.
   6.13.2  Network service primitives
   The procedure uses the following network service primitives:
      a)  N-DATA;
      b)  N-DATA ACKNOWLEDGE.
   6.13.3  TPDUs and parameters used
   The procedure uses the following TPDUs and parameters:
      a)  CR, CC, DR and DC TPDUs;
      b)  RJ and AK TPDUs;
  1. YR-TU-NR.
                                  56
      c)  DT TPDU;
  1. TPDU-NR.
      d)  ED TPDU;
  1. ED-TPDU-NR.
      e)  EA TPDU;
  1. YR-EDTU-NR.
   6.13.4  Procedures
   Copies of the following TPDUs shall be retained upon transmission
   to permit their later retransmission:
      CR, CC, DR, DT and ED TPDUs
   except that if a DR is sent in response to a CR TPDU there is  no
   need to retain a copy of the DR TPDU.
   In the confirmation of receipt variant, applicable only in  Class
   1,  transport  entities receiving N-DATA indications which convey
   DT TPDUs and have the confirmation request field set shall  issue
   an N-DATA ACKNOWLEDGE request (see notes 1 and 2).
   After each TPDU is acknowledged, as shown in table  5,  the  copy
   need  not  be  retained.   Copies  may also be discarded when the
   transport connection is released.
                                  57
   NOTES
      1.  It is a local matter for each transport entity  to  decide
          which N-DATA requests should have the confirmation request
          parameter set.  This decision will normally be related  to
          the amount of storage available for retained copies of the
          DT TPDUs.
      2.  Use of the confirmation request parameter may  affect  the
          quality of network service.
                                  58
   +-------------------------------------------------------------+
   |RETAINED|              |                                     |
   |  TPDU  |   VARIANT    |    RETAINED UNTIL ACKNOWLEDGED BY   |
   |--------|--------------|-------------------------------------|
   |   CR   | both         |CC, DR or ER TPDU.                   |
   |        |              |                                     |
   |   DR   | both         |DC or DR (in case of collision) TPDU.|
   |        |              |                                     |
   |   CC   | confirmation |N-DATA Acknowledge indication, RJ,   |
   |        | of receipt   |DT, EA or ED TPDU.                   |
   |        | variant      |                                     |
   |        |              |                                     |
   |   CC   | AK variant   |RJ, DT, AK, ED or EA TPDU.           |
   |        |              |                                     |
   |   DT   | confirmation |N-DATA ACKNOWLEDGE indication cor-   |
   |        | of receipt   |responding to an N-DATA request which|
   |        | variant      |conveyed, or came after, the DT TPDU.|
   |        |              |                                     |
   |   DT   | AK variant   |AK or RJ TPDU for which the YR-TU-NR |
   |        |              |is greater than TPDU-NR in the DT    |
   |        |              |TPDU.                                |
   |        |              |                                     |
   |   ED   | both         |EA TPDU for which the YR-EDTU-NR is  |
   |        |              |equal to the ED-TPDU-NR in the       |
   |        |              |ED TPDU.                             |
   +-------------------------------------------------------------+
                   Table 5. Acknowledgement of TPDUs
                                  59
   6.14  Resynchronization
   6.14.1  Purpose
   The resynchronization procedures are used in Classes 1 and  3  to
   restore  the  transport  connection  to  normal  after a reset or
   during reassignment after failure according to 6.12.
   6.14.2  Network service primitives
   The  procedure  makes  use  of  the  following  network   service
   primitive:
        N-RESET indication.
   6.14.3  TPDUs and parameters used
   The procedure uses the following TPDUs and parameters:
      a)  CR, DR, CC and DC TPDUs
      b)  RJ TPDUs;
  1. YR-TU-NR.
      c)  DT TPDU;
  1. TPDU-NR
      d)  ED TPDU;
  1. ED TPDU-NR.
      e)  EA TPDU;
  1. YR-EDTU-NR.
                                  60
   6.14.4  Procedure
   A transport entity which is notified of the occurence  of  an  N-
   RESET   or  which  is  performing  'reassignment  after  failure'
   according to 6.12 shall carry out  the  active  resynchronization
   procedure (see 6.14.4.1) unless any of the following hold:
      a)  the transport entity is the responder (see note).  In this
          case  the  passive  resynchronization procedure is carried
          out (see 6.14.4.2).
      b)  the transport entity has  elected  not  to  reassign  (see
          6.12.3.c).  In this case no resynchronization takes place.
   6.14.4.1  Active resynchronization procedures
   The Transport  entity  shall  carry  out  one  of  the  following
   actions:
      a)  if the TTR timer has been previously started and  has  run
          out  (i.e. no valid TPDU has been received), the transport
          connection is considered as released and the reference  is
          frozen (see 6.18).
      b)  otherwise, the TTR timer shall be started  (unless  it  is
          already running) and the first applicable of the following
          actions shall be taken:
          1)  if a CR TPDU is  unacknowledged,  then  the  transport
              entity shall retransmit it;
          2)  if a DR TPDU is  unacknowledged,  then  the  transport
              entity shall retransmit it;
          3)  otherwise, the transport entity shall  carry  out  the
              data resynchronization procedures (6.14.4.3).
          The TTR timer is stopped when a valid TPDU is received.
                                  61
   6.14.4.2  Passive resynchronization procedures
   The transport entity shall not send any TPDUs until  a  TPDU  has
   been received.  The transport entity shall start its TWR timer if
   it was not already started (due to a previous N-DISCONNECT or  N-
   RESET indication).  If the timer runs out prior to the receipt of
   a valid TPDU which commence resynchronization (i.e. CR or  DR  or
   RJ  TPDU)  the transport connection is considered as released and
   the reference is released (see 6.18).
   When a valid TPDU is received the transport entity shall stop its
   TWR  timer  and  carry  out  the appropriate one of the following
   actions, depending on the TPDU:
      a)  if it is a DR TPDU, then the transport entity shall send a
          DC TPDU;
      b)  if it is  a  repeated  CR  TPDU  (see  note  1)  then  the
          transport  entity  shall  carry out the appropriate action
          from the following:
          1)  if a CC TPDU has already been sent, and  acknowledged:
              treat as a protocol error;
          2)  if a DR TPDU is unacknowledged (whether or  not  a  CC
              TPDU  is  unacknowledged): retransmit the DR TPDU, but
              setting the source reference to zero;
          3)  if the T-CONNECT response has not  yet  been  received
              from the user:  take no action;
          4)  otherwise; retransmit  the  CC  TPDU  followed  by  an
              unacknowledged ED TPDU (see note 2) and any DT TPDU;
       NOTES
          1.  A repeated CR TPDU can be identified  by  being  on  a
              network   connection   with  the  appropriate  network
              addresses and having a correct source reference.
                                  62
          2.  The transport entity should not use network  expedited
              until  the  CC  TPDU  is acknowledged (see 6.5).  This
              rule prevents the network  expedited  from  overtaking
              the CC TPDU.
      c)  if it is an RJ or  ED  TPDU  then  one  of  the  following
          actions shall be taken:
          1)  if a DR TPDU is  unacknowledged,  then  the  transport
              entity shall retransmit it;
          2)  otherwise, the transport entity shall  carry  out  the
              data resynchronization procedures (6.14.4.3).
          3)  If a CC TPDU was unacknowledge,  the  RJ  or  ED  TPDU
              should  then  be  considered  as  acknowledging the CC
              TPDU.  If a CC TPDU was never sent, the RJ TPDU should
              then be considered as a protocol error.
   6.14.4.3  Data Resynchronization Procedures
   The transport entity shall carry out the following actions in the
   following order:
      a)  (re)transmit any ED TPDU which is unacknowledged,
      b)  transmit an RJ TPDU with YR-TU-NR field set to the TPDU-NR
          of the next expected DT TPDU;
                                  63
      c)  wait for the next TPDU from the  other  transport  entity,
          unless an RJ or DR TPDU has already been received; if a DR
          TPDU is received the transport entity  shall  send  a  DC,
          freeze   the   reference,   inform   the  TS-user  of  the
          disconnection and take no further action  (i.e.  it  shall
          not  follow  the procedures in 6.14.4.3.d).  If an RJ TPDU
          is  received,  the  procedure  of  6.14.4.3.d   shall   be
          followed.   If  an  ED  TPDU is received the procedures as
          described  in  6.11  shall  be  followed.   If  it  is   a
          duplicated  ED-TPDU the transport entity shall acknowledge
          it, with an EA TPDU, discard the duplicated  ED  TPDU  and
          wait again for the next TPDU.
      d)  (re)transmit  any  DT  TPDUs  which  are   unacknowledged,
          subject  to  any  applicable  flow control procedures (see
          note);
          NOTE - The RJ TPDU may have reduced the credit.
   6.15  Multiplexing and demultiplexing
   6.15.1  Purpose
   The  multiplexing  and  demultiplexing  procedures  are  used  in
   Classes  2,  3  and  4  to allow several transport connections to
   share a network connection at the same time.
   6.15.2  TPDUs and parameters used
   The procedure makes use of the following TPDUs and parameters:
      CC, DR, DC, DT, AK, ED, EA, RJ and ER TPDUs
  1. DST-REF
                                  64
   6.15.3  Procedure
   The transport entities shall be able to send and receive  on  the
   same  network  connection  TPDUs belonging to different transport
   connections.
   NOTES
      1.  When performing demultiplexing the transport connection to
          which  the  TPDUs  apply  is  determined by the procedures
          defined in 6.9.
      2.  Multiplexing allows the concatenation of  TPDUs  belonging
          to  different  transport  connections to be transferred in
          the same N-DATA primitive (see 6.4).
   6.16  Explicit Flow Control
   6.16.1  Purpose
   The explicit flow control procedure is used in Classes 2, 3 and 4
   to  regulate  the  flow  of  DT  TPDUs  independently of the flow
   control in the other layers.
   6.16.2  TPDUs and parameters used
   The procedure makes use of the following TPDUs and parameters:
      a)  CR, CC, AK and RJ TPDUs
  1. CDT.
      b)  DT TPDU
  1. TPDU-NR.
                                  65
      c)  AK TPDU
  1. YR-TU-NR;
  2. subsequence number;
  3. flow control confirmation.
      d)  RJ TPDU
  1. YR-TU-NR.
   6.16.3  Procedure
   The procedures differ in different classes.  They are defined  in
   the clauses specifying the separate classes.
   6.17  Checksum
   6.17.1  Purpose
   The checksum procedure is used to detect corruption of  TPDUs  by
   the NS-provider.
   NOTE - Although a checksum algorithm has to  be  adapted  to  the
   type  of  errors  expected  on the network connection, at present
   only one algorithm is defined.
   6.17.2  TPDUs and parameters used
   The procedure uses the following TPDUs and parameters:
      All TPDUs
       - checksum
                                  66
   6.17.3  Procedure
   The checksum is used only in Class 4.  It is always used for  the
   CR TPDU, and is used for all other TPDUs except if the non-use of
   the procedure was agreed during connection establishment.
   The sending  transport  entity  shall  transmit  TPDUs  with  the
   checksum  parameter  set  such  that  the  following formulas are
   satisfied:
      SUM(from i=1 to i=L) OF a[i] EQUALS <zero> (module 255)
      SUM(from i=1 to i=L) OF i*a[i] EQUALS <zero> (module 255)
   where
      i    = number (i.e. position) of an octet within the TPDU
             (see 13.2);
      a[i] = value of octet in position 1;
      L    = length of TPDU in octets.
   A  transport  entity  which  receives  a  TPDU  for  a  transport
   connection  for  which  the  use  of checksum has been agreed and
   which does not satisfy the above formulas shall discard the  TPDU
   (see also note 2).
   NOTES
      1.  An  efficient  algorithm  for  determining  the   checksum
          parameters is given in annex B.
      2.  If the checksum is incorrect, it is not possible  to  know
          with  certainty  to which transport connection the TPDU is
          related; further action may be taken for all the transport
          connections assigned to the network connection (see 6.9).
      3.  The checksum proposed is easy to calculate and so will not
          impose  a  heavy  burden  on implementations.  However, it
          will not detect insertion or loss of leading  or  trailing
          zeros and will not detect some octets misordering.
                                  67
   6.18  Frozen references
   6.18.1  Purpose
   This procedure is used in order to prevent re-use of a  reference
   while  TPDUs  associated  with  the  old use of the reference may
   still exist.
   6.18.2  Procedure
   When a transport entity determines that a  particular  connection
   is  released  it shall place the reference which it has allocated
   to the connection in a frozen state according to  the  procedures
   of the class.  While frozen, the reference shall not be re-used.
   NOTE - The  frozen  reference  procedure  is  necessary   because
   retransmission or misordering can cause TPDUs bearing a reference
   to arrive at an entity after it has released the  connection  for
   which  it  allocated the reference.  Retransmission, for example,
   can arise when the class includes either  resynchronization  (see
   6.14) or retransmission on time out (see 6.19).
   6.18.2.1  Procedure for classes 0 and 2
   The frozen reference procedure is never used for these classes.
   NOTE - However for consistency with the  other  classes  freezing
   the references may be done as a local decision.
                                  68
   6.18.2.2  Procedure for classes 1 and 3
   The frozen reference procedure is used except  in  the  following
   cases (see note 1):
      a)  when the transport entity receives a DC TPDU  in  response
          to a DR TPDU which it has sent (see note 2);
      b)  when the transport  entity  sends  a  DR  or  ER  TPDU  in
          response to a CR TPDU which it has received (see note 3);
      c)  when the transport entity has considered the connection to
          be  released  after  the  expiration of the TWR timer (see
          note 4);
      d)  when the transport entity receives a  DR  or  ER  TPDU  in
          response to a CR TPDU which it has sent.
   The period of time for which the reference remains  frozen  shall
   be greater than the TWR time.
   NOTES
      1.  However, even in these cases, for consistency freezing the
          reference may be done as a local decision.
      2.  When the DC TPDU is received it is certain that the  other
          transport entity considers the connection released.
      3.  When the DR or ER TPDU is sent the peer  transport  entity
          has not been informed of any reference assignment and thus
          cannot possibly make use of a reference (this includes the
          case where a CC TPDU was sent, but was lost).
      4.  In 6.18.2.c the transport entity has  already  effectively
          frozen the reference for an adequate period.
                                  69
   6.18.2.3  Procedure for classes 4
   The frozen reference procedure is always used in  class  4.   The
   period  for  which the reference remains frozen should be greater
   than L (see 12.2.1.1.6).
   6.19  Retransmission on time-out
   6.19.1  Purpose
   The procedure is used in Class 4 to cope with unsignalled loss of
   TPDUs by the NS-provider.
   6.19.2  TPDUs used
   The procedure makes use of the following TPDUs:
      CR, CC, DR, DT, ED, AK TPDUs.
   6.19.3  Procedure
   The procedure is specified in the procedures  for  Class  4  (see
   12.2.1.2.j).
   6.20  Resequencing
                                  70
   6.20.1  Purpose
   The resequencing procedure is  used  in  Class  4  to  cope  with
   misordering of TPDUs by the network service provider.
   6.20.2  TPDUs and parameters used
   The procedure uses the following TPDUs and parameters:
      a)  DT TPDU;
          - TPDU-NR.
      b)  ED TPDU
          - ED TPDU-NR
   6.20.3  Procedure
   The procedure is specified in the procedures  for  Class  4  (see
   12.2.3.5).
   6.21  Inactivity control
   6.21.1  Purpose
   The inactivity control procedure is used in Class 4 to cope  with
   unsignalled termination of a network connection.
                                  71
   6.21.2  Procedure
   The procedure is specified in the procedures  for  Class  4  (see
   12.2.3.3).
   6.22  Treatment of protocol errors
   6.22.1  Purpose
   The procedure for treatment of protocol errors  is  used  in  all
   classes to deal with invalid TPDUs.
   6.22.2  TPDUs and parameters used
   The procedure uses the following TPDUs and parameters:
      a)  ER TPDU;
          - reject cause;
          - TPDU in error.
      b)  DR TPDU;
          - reason code.
   6.22.3  Procedure
   A transport entity that receives a TPDU that can be associated to
   a  transport  connection and is invalid or constitutes a protocol
   error (see 3.2.16 and 3.2.17) shall take  one  of  the  following
   actions  so  as not to jeopardize any other transport connections
   not assigned to that network connection:
      a)  ignoring the TPDU;
      b)  transmitting an ER TPDU;
                                  72
      c)  resetting or closing the network connection; or
      d)  invoking the release procedures appropriate to the class.
   If an ER TPDU is sent in Class 0 it shall contain the  octets  of
   the  invalid  TPDU  up to and including the octet where the error
   was detected (see notes 3, 4 and 5).
   If the TPDU  cannot  be  associated  to  a  particular  transport
   connection then see 6.9.
   NOTES
      1.  In  general,  no  further  action  is  specified  for  the
          receiver  of  the  ER  TPDU  but it is recommended that it
          initiates the release procedure appropriate to the  class.
          If the ER TPDU has been received as an answer to a CR TPDU
          then the connection is regarded as released (see 6.6).
      2.  Care should be  taken  by  a  transport  entity  receiving
          several  invalid TPDUs or ER TPDUs to avoid looping if the
          error is generated repeatedly.
      3.  If the invalid received TPDU is greater than the  selected
          maximum  TPDU  size  it  is  possible  that  it  cannot be
          included in the invalid TPDU parameter of the ER TPDU.
      4.  It is recommended that the sender of the ER TPDU starts an
          optional   timer   TS2   to  ensure  the  release  of  the
          connection.  If the timer expires,  the  transport  entity
          shall  initiate  the release procedures appropriate to the
          class.  The timer should be stopped when a DR TPDU  or  an
          N-DISCONNECT indication is received.
      5.  In classes other  than  0,  it  is  recommended  that  the
          invalid TPDU be also included in the ER TPDU.
                                  73
   6.23  Splitting and recombining
   6.23.1  Purpose
   This procedure is used only in  class  4  to  allow  a  transport
   connection to make use of multiple network connections to provide
   additional  resilience  against  network  failure,  to   increase
   throughput, or for other reasons.
   6.23.2  Procedure
   When this procedure is being used, a transport connection may  be
   assigned  (see 6.1) to multiple network connections (see note 1).
   TPDUs for the connection  may  be  sent  over  any  such  network
   connection.
   If the use of Class 4 is not accepted  by  the  remote  transport
   entity   following   the   negotiation  rules,  then  no  network
   connection except that over which the CR TPDU was sent  may  have
   this transport connection assigned to it.
   NOTES
      1.  The resequencing function of Class 4 (see 6.20) is used to
          ensure that TPDUs are processed in the correct sequence.
      2.  Either transport  entity  may  assign  the  connection  to
          further  network  connections  of which it is the owner at
          any time during the life of the transport connection.
                                  74
      3.  In order to enable the detection  of  unsignalled  network
          connection   failures,   a   transport  entity  performing
          splitting should ensure that TPDUs are sent  at  intervals
          on  each  supporting  network  connection, for example, by
          sending   successive   TPDUs   on    successive    network
          connections,  where the set of network connections is used
          cyclically.  By  monitoring  each  network  connection,  a
          transport entity may detect unsignalled network connection
          failures, following the inactivity procedures  defined  in
          12.2.3.3.   Thus,  for each network connection no period I
          (see 12.2.3.1) may elapse without the receipt of some TPDU
          for some transport connection.
                                  75
   7  Protocol Classes
   Table 6 gives an overview of  which  elements  of  procedure  are
   included  in  each  class.   In  certain  cases  the  elements of
   procedure within different classes are  not  identical  and,  for
   this  reason,  table  6  cannot  be  considered  as  part  of the
   definitive specification of the protocol.
   KEY TO TABLE 6
   +---|---------------------------------------------------------+
   | * |Procedure always included in class                       |
   |---|---------------------------------------------------------|
   |   |Not applicable                                           |
   |---|---------------------------------------------------------|
   | m |Negotiable procedure whose implementation in equipment is|
   |   |mandatory                                                |
   |---|---------------------------------------------------------|
   | o |Negotiable procedure whose implementation in equipment is|
   |   |optional                                                 |
   |---|---------------------------------------------------------|
   | ao|Negotiable procedure whose implementation in equipment is|
   |   |optional and where use depends on availability within the|
   |   |network service                                          |
   |---|---------------------------------------------------------|
   |(1)|Not applicable in class 2 when non-use of explicit flow  |
   |   |control is selected                                      |
   |---|---------------------------------------------------------|
   |(2)|When non use of explicit flow control has been selected, |
   |   |multiplexing may lead to degradation of quality of       |
   |   |service                                                  |
   |---|---------------------------------------------------------|
   |(3)|This function is provided in class 4 using procedures    |
   |   |other than those in the cross reference.                 |
   +-------------------------------------------------------------+
                                  76
   +----------------------------------------------------------------+
   |                             |Cross |            |  |  |  |  |  |
   |     Protocol Mechanism      |refe- |   Variant  | 0| 1| 2| 3| 4|
   |                             |rence |            |  |  |  |  |  |
   |-----------------------------|------|------------|--|--|--|--|--|
   | Assignment to network Conn. | 6.1  |            | *| *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | TPDU Transfer               | 6.2  |            | *| *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Segmenting and Reassembling | 6.3  |            | *| *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Concatenation and Separation| 6.4  |            |  | *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Connection Establishment    | 6.5  |            | *| *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Connection Refusal          | 6.6  |            | *| *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Normal Release              | 6.7  | implicit   | *|  |  |  |  |
   |                             |      | explicit   |  | *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Error Release               | 6.8  |            | *|  | *|  |  |
   |-----------------------------|------|------------|--|--|--|--|--|
   | Association of TPDUs with   |      |            |  |  |  |  |  |
   | Transport Connection        | 6.9  |            | *| *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | DT TPDU Numbering           | 6.10 | normal     |  | *|m(1)m| m|
   |                             |      | extended   |  |  |o(1)o| o|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Expedited Data Transfer     | 6.11 | network    |  |  | *|  |  |
   |                             |      | normal     |  | m|(1) *| *|
   |                             |      | network    |  |  |  |  |  |
   |                             |      | expedited  |  |ao|  |  |  |
   |-----------------------------|------|------------|--|--|--|--|--|
   | Reassignment after failure  | 6.12 |            |  | *|  | *|(3)
   +----------------------------------------------------------------+
  Table 6. (First of 2 pages) Allocation of procedures within classes
                                  77
   +----------------------------------------------------------------+
   | Retention until Acknowledge-|      |Conf.Receipt|  |ao|  |  |  |
   | ment of TPDUs               | 6.13 |AK          |  | m|  |  | *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Resynchronisation           | 6.14 |            |  | *|  | *|(3)
   |-----------------------------|------|------------|--|--|--|--|--|
   | Multiplexing and            |      |            |  |  |(2)  |  |
   | Demultiplexing              | 6.15 |            |  |  | *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Explicit Flow Control With  | 6.16 |            |  |  | m| *| *|
   |                    Without  |      |            | *| *| o|  |  |
   |-----------------------------|------|------------|--|--|--|--|--|
   | Checksum (use of)           | 6.17 |            |  |  |  |  | m|
   |          (non-use of)       |      |            | *| *| *| *| o|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Frozen References           | 6.18 |            |  | *|  | *| *|
   |------------------------------------|------------|--|--|--|--|--|
   | Retransmission on Timeout   | 6.19 |            |  |  |  |  | *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Resequencing                | 6.20 |            |  |  |  |  | *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Inactivity Control          | 6.21 |            |  |  |  |  | *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Treatment of Protocol Errors| 6.22 |            | *| *| *| *| *|
   |-----------------------------|------|------------|--|--|--|--|--|
   | Splitting and Recombining   | 6.23 |            |  |  |  |  | *|
   +----------------------------------------------------------------+
   Table 6. (2nd of 2 pages) Allocation of procedures within classes
                                  78
   8  SPECIFICATION FOR CLASS 0. SIMPLE CLASS
   8.1  Functions of class 0
   Class 0 is designed to have minimum functionality.   It  provides
   only  the  functions  needed  for  connection establishment  with
   negotiation, data transfer with  segmenting  and  protocol  error
   reporting.
   Class 0 provides transport connections with flow control based on
   the  network  service  provided  flow  control, and disconnection
   based on the network service disconnection.
   8.2  Procedures for class 0
   8.2.1  Procedures applicable at all times
   The transport entities shall use the following procedures:
      a)  TPDU transfer (see 6.2);
      b)  association of TPDUs with transport connections (see 6.9);
      c)  treatment of protocol errors (see 6.22);
      d)  error release (see 6.8).
   8.2.2  Connection establishment
   The transport entities shall use the following procedures:
      a)  assignment to network connection (see 6.1); then
      b)  connection establishment (see 6.5)  and,  if  appropriate,
          connection refusal (see 6.6);
      subject to the following constraints:
                                  79
      c)  the CR and CC TPDUs shall contain no parameter field other
          than those for TSAP-ID and maximum TPDU size;
      d)  the CR and CC TPDUs shall not contain a data field.
   8.2.3  Data transfer
   The transport entities shall use the segmenting and  reassembling
   procedure (see 6.3).
   8.2.4  Release
   The transport entities shall use  the  implicit  variant  of  the
   normal release procedure (see 6.7).
   NOTE - the lifetime  of  the  transport  connection  is  directly
   correlated with the lifetime of the network connection.
                                  80
   9  SPECIFICATION FOR CLASS 1: BASIC ERROR RECOVERY CLASS
   9.1  Functions of Class 1
   Class 1 provides transport connections with flow control based on
   the  network  service  provided  flow  control,  error  recovery,
   expedited data transfer, disconnection, and also the  ability  to
   support   consecutive   transport   connections   on   a  network
   connection.
   This class provides the functionality of Class 0 plus the ability
   to  recover  after  a  failure  signalled by the Network Service,
   without involving the TS-user.
   9.2  Procedures for Class 1
   9.2.1  Procedures applicable at all times
   The transport entities shall use the following procedures:
      a)  TPDU transfer (see 6.2);
      b)  association of TPDU with transport connections (see 6.9);
      c)  treatment of protocol errors (see 6.22);
      d)  reassignment after failure (see 6.12);
      e)  resynchronization  (see  6.14),  or   reassignment   after
          failure  (see  6.12)  together with resynchronization (see
          6.14);
      f)  concatenation and separation (see 6.4);
      g)  retention until acknowledgement of TPDU  (see  6.13);  the
          variant  used,  AK or confirmation of receipt, shall be as
          selected during connection establishment (see notes);
      h)  frozen references (see 6.18).
                                  81
   NOTES
      1.  The  negotiation  of  the  variant  of   retention   until
          acknowledgement  of  TPDUs  procedure  to be used over the
          transport connection has been designed such  that  if  the
          initiator  proposes  the  use  of the AK variant (i.e. the
          mandatory implementation option),  the  responder  has  to
          accept  use  of  this option and if the initiator proposes
          use of the confirmation of receipt variant  the  responder
          is entitled to select use of the AK variant.
      2.  The AK variant makes use of AK TPDUs to release copies  of
          retained DT TPDUs.  The CDT parameter of AK TPDUs in class
          1 is not significant, and is set to 1111.
      3.  The confirmation of receipt variant is restricted to  this
          class  and  its  use  depends  on  the availability of the
          network  layer  receipt  confirmation  service,  and   the
          expected cost reduction.
   9.2.2  Connection establishment
   The transport entities shall use the following procedures:
      a)  assignment to network connection (see 6.1); then
      b)  connection establishment (see 6.5)  and,  if  appropriate,
          connection refusal (see 6.6).
   9.2.3  Data Transfer
   9.2.3.1  General
   The sending transport entity shall use the following procedures;
      a)  segmenting (see 6.3); then
                                  82
      b)  the normal format variant of DT TPDU numbering (see 6.10).
      The  receiving  transport  entity  shall  use  the   following
      procedures;
      c)  the normal variant of DT TPDU numbering (see 6.10,; then
      d)  reassembling (see 6.3).
   NOTES
      1.  The use of RJ TPDU during resynchronization (see 6.14) can
          lead  to  retransmission.  Thus the receipt of a duplicate
          DT TPDU is possible; such a DT TPDU is discarded.
      2.  It is possible to decide on a local basis to issue  an  N-
          RESET request in order to force the remote entity to carry
          out the resynchronization (see 6.14).
   9.2.3.2  Expedited Data
   The transport entities shall use either the network  normal  data
   or  the network expedited variants of the expedited data transfer
   procedure (see 6.11)  if  their  use  has  been  selected  during
   connection establishment (see note 1).
   The sending transport entity shall  not  allocate  the  same  ED-
   TPDU-NR to successive ED TPDUs (see notes 2 and 3).
   When acknowledging  an  ED  TPDU  by  sending  and  EA  TPDU  the
   transport  entity  shall put into the YR-EDTU-NR parameter of the
   EA TPDU the value received in the ED-TPDU-NR parameter of the  ED
   TPDU.
   NOTES
      1.  The negotiation of the variant of expedited data  transfer
          procedure  to  be  used  over the transport connection has
          been designed such that if the initiator proposes the  use
          of  the  network  normal  data variant (i.e. the mandatory
                                  83
          implementation option), the responder has to accept use of
          this  option  and  if  the  initiator  proposes use of the
          network expedited variant, the responder  is  entitled  to
          select use of the network normal data variant.
      2.  This numbering enables the receiving transport  entity  to
          discard  repeated  ED  TPDUs  when  resynchronization (see
          6.14) has taken place.
      3.  No other  significance  is  attached  to  the  ED  TPDU-NR
          parameter.  It is recommended, but not essential, that the
          values used be consecutive modulo 128.
   9.2.4  Release
   The transport entities shall use  the  explicit  variant  of  the
   release procedure (see 6.7).
                                  84
   10  SPECIFICATION FOR CLASS 2 - MULTIPLEXING CLASS
   10.1  Functions of class 2
   Class 2 provides transport connections with or without individual
   flow control; no error detection or error recovery is provided.
   If the network connection resets or  disconnects,  the  transport
   connection  is terminated without the transport release procedure
   and the TS-user is informed.
   When explicit flow control is used, a credit mechanism is defined
   allowing the receiver to inform the sender of the exact amount of
   data he is willing to receive  and  expedited  data  transfer  is
   available.
   10.2  Procedures for class 2
   10.2.1  Procedures applicable at all times
   The transport entities shall use the following procedures
      a)  association of TPDUs with transport connection (see 6.9);
      b)  TPDU transfer (see 6.2);
      c)  treatment of protocol errors (see 6.22);
      d)  concatenation and separation (see 6.4);
      e)  error release (see 6.8).
      Additionally the transport  entities  may  use  the  following
      procedure:
      f)  multiplexing and demultiplexing (see 6.15).
                                  85
   10.2.2  Connection establishment
   The transport entities shall use the following procedures:
      a)  assignment to network connection (see 6.1); then
      b)  connection establishment  (see  6.5)  and,  if  applicable
          connection refusal (see 6.6).
   10.2.3  Data transfer when non use of explicit flow control
           has been selected
   If this option has been selected as a result  of  the  connection
   establishment,  the  transport  entities shall use the segmenting
   procedure (see 6.3).
   The TPDU-NR field of DT TPDUs is not significant and may take any
   value.
   NOTE- -Expedited data transfer is not applicable (see 6.5).
   10.2.4  Data transfer when use of explicit flow control
           has been selected
   10.2.4.1  General
   The sending transport entity shall use the following procedures:
      a)  segmenting (see 6.3); then
      b)  DT TPDU numbering (see 6.10);
                                  86
      The  receiving  transport  entity  shall  use  the   following
      procedures:
      c)  DT TPDU numbering (see 6.10); if a  DT  TPDU  is  received
          which is out of sequence it shall be treated as a protocol
          error; then
      d)  reassembling (see 6.3).
      The variant of the DT TPDU numbering which  is  used  by  both
      transport   entities   shall  be  that  which  was  agreed  at
      connection establishment.
   10.2.4.2  Flow control
   The transport entities shall send an initial credit (which may be
   zero)  in  the  CDT  field  of  the  CR  or CC TPDU.  This credit
   represents the initial value of the upper window  edge  allocated
   to the peer entity.
   The transport entity that receives the CR or the  CC  TPDU  shall
   consider its lower window edge as zero, and its upper window edge
   as the value of the CDT field in the received TPDU.
   In order to authorize the transmission of DT TPDUs, by its  peer,
   a  transport  entity may transmit an AK TPDU at any time, subject
   to the following constraints:
      a)  the YR-TU-NR parameter shall be at most one  greater  than
          the TPDU-NR field of the last received DT TPDU or shall be
          zero if no DT TPDU has been received;
      b)  if an AK TPDU has previously been sent the  value  of  the
          YR-TU-NR  parameter  shall  not  be lower than that in the
          previously sent AK TPDU.
      c)  the sum of the YR-TU-NR and CDT fields shall not  be  less
          than  the upper window edge allocated to the remote entity
          (see note 1).
                                  87
   A transport entity which receives an AK TPDU shall  consider  the
   YR-TU-NR  field  as its new lower window edge, and the sum of YR-
   TU-NR and CDT as its new upper window edge.  If either  of  these
   have  been  reduced  or  if the lower window edge has become more
   than one greater than the TPDU-NR  of  the  last  transmitted  DT
   TPDU, this shall be treated as a protocol error (see 6.22).
   A transport entity shall not  send  a  DT  TPDU  with  a  TPDU-NR
   outside of the transmit window (see notes 2 and 3).
   NOTES
      1.  This means that credit reduction is not applicable.
      2.  This means that a transport entity  is  required  to  stop
          sending  if  the  TPDU-NR  field of the next DT TPDU which
          would be sent would be the upper window edge.  Sending  of
          DT  TPDU  may  be  resumed if an AK TPDU is received which
          increases the upper window edge.
      3.  The rate at which a transport entity progresses the  upper
          window  edge  allocated  to its peer entity constrains the
          throughput attainable on the transport connection.
   10.2.4.3  Expedited data
   The transport entities shall follow the network normal variant of
   the expedited data transfer procedure in 6.11 if its use has been
   agreed  during  connection  establishment.   ED  and   EA   TPDUs
   respectively  are  not  subject to the flow control procedures in
   10.2.4.2.  The ED-TPDU-NR and YR-ETDU-NR  fields  of  ED  and  EA
   TPDUs respectively are not significant and may take any value.
                                  88
   10.2.5  Release
   The transport entities shall use  the  explicit  variant  of  the
   release procedure in 6.7.
                                  89
   11  SPECIFICATION FOR CLASS 3: ERROR  RECOVERY  AND  MULTIPLEXING
   CLASS
   11.1  Functions of Class 3
   Class 3 provides the  functionality  of  Class  2  (with  use  of
   explicit  flow  control)  plus  the  ability  to  recover after a
   failure signalled by the Network Layer without involving the user
   of the transport service.
   The mechanisms used to achieve this functionality also allow  the
   implementation of more flexible flow control.
   11.2  Procedures for Class 3
   11.2.1  Procedures applicable at all times
   The transport entities shall use the following procedures:
      a)  association of TPDUs with transport connections (see 6.9);
      b)  TPDU   transfer   (see   6.2)    and    retention    until
          acknowledgement of TPDUs (AK variant only) (see 6.13);
      c)  treatment of protocol errors (see 6.22);
      d)  concatenation and separation (see 6.4);
      e)  reassignment  after  failure  (see  6.12),  together  with
          resynchronization (see 6.14);
      f)  frozen references (see 6.18).
   Additionally,  the  transport  entities  may  use  the  following
   procedure:
      g)  multiplexing and demultiplexing (see 6.15);
                                  90
   11.2.2  Connection Establishment
   The transport entities shall use the following procedures;
      a)  assignment to network connections (see 6.1); then
      b)  connection establishment (see 6.5)  and,  if  appropriate,
          together with connection refusal (see 6.6).
   11.2.3  Data Transfer
   11.2.3.1  General
   The sending transport entity shall use the following procedures:
      a)  segmenting (see 6.3), then
      b)  DT TPDU numbering (see 6.10); after receipt of an RJ  TPDU
          (see  11.2.3.2)  the  next  DT  TPDU to be sent may have a
          value which is not the previous value of TPDU-NR plus one.
   The  receiving  transport  entity   shall   use   the   following
   procedures:
      c)  DT TPDU numbering (see 6.10); the TPDU-NR  field  of  each
          received  DT  TPDU shall be treated as a protocol error if
          it exceeds the greatest such value received in a  previous
          DT TPDU by more than one (see note); then
      d)  reassembling  (see  6.3);  duplicated   TPDUs   shall   be
          eliminated before reassembling is performed.
   NOTE - The  use  of  RJ  TPDUs  (see  11.2.3.2)   can   lead   to
   retransmission and reduction of credit.  Thus the receipt of a DT
   TPDU which is a duplicate, or which is greater than or  equal  to
   the  upper  window edge allocated to the peer entity, is possible
   and is therefore not treated as a protocol error.
                                  91
   11.2.3.2  Use of RJ TPDU
   A transport entity may send an RJ TPDU at any time  in  order  to
   invite   retransmission  or  to  reduce  the  upper  window  edge
   allocated to the peer entity (see note 1).
   When an RJ TPDU is  sent,  the  following  constraints  shall  be
   respected:
      a)  the YR-TU-NR parameter shall be at most one  greater  than
          the greatest such value received in a previous DT TPDU, or
          shall be zero if no DT TPDU has  yet  been  received  (see
          note 2);
      b)  if an AK or RJ TPDU has previously been sent the  YR-TU-NR
          parameter  shall  not be lower than that in the previously
          sent AK or RJ TPDU or lower than zero if no AK or RJ TPDU.
   When a transport entity receives an RJ TPDU (see note 3):
      c)  the next DT TPDU  to  be  transmitted,  or  retransmitted,
          shall be that for which the value of the TPDU-NR parameter
          is equal to the value of the YR-TU-NR parameter of the  RJ
          TPDU;
      d)   the sum of the values of the YR-TU-NR and CDT  parameters
          of the RJ TPDU becomes the new upper window edge (see note
          4).
   NOTES
      1.  An  RJ  TPDU  can  also   be   sent   as   part   of   the
          resynchronization   (see   6.14)  and  reassignment  after
          failure (see 6.12) procedures.
      2.  It is recommended that the YR-TU-NR parameter be equal  to
          the TPDU-NR parameter of the next expected DT TPDU.
      3.  These rules are a subset of those specified for when an RJ
          TPDU  is  received during resynchronization (see 6.14) and
          reassignment after failure (see 6.12).
                                  92
      4.  This means that RJ TPDU can be used to  reduce  the  upper
          window   edge   allocated   to  the  peer  entity  (credit
          reduction).
   11.2.3.3  Flow Control
   The procedures shall be as defined in 10.2.4.2, except that:
      a)  a credit reduction may lead to the reception of a DT  TPDU
          with  a  TPDU-NR  parameter  whose value is not, but would
          have been less than the upper window edge allocated to the
          remote  entity  prior to the credit reduction.  This shall
          not be treated as a protocol error;
      b)  receipt of an AK TPDU which sets  the  lower  window  edge
          more  than  one  greater  than  the  TPDU-NR  of  the last
          transmitted DT TPDU shall not be  treated  as  a  protocol
          error,  provided  that all acknowledged DT TPDUs have been
          previously transmitted (see notes 1 and 2).
   NOTES
      1.  This  can  only  occur  during  retransmission   following
          receipt of an RJ TPDU.
      2.  The transport entity may either continue retransmission as
          before or retransmit only those DT TPDUs, not acknowledged
          by  the  AK  TPDU.   In  either  case,   copies   of   the
          acknowledged DT TPDUs, need not be retained further.
   11.2.3.4  Expedited data
   The transport entities  shall  follow  the  network  normal  data
   variant  of  expedited data transfer procedure in 6.11 if its use
   has been agreed during connection establishment.
   The sending transport entity shall  not  allocate  the  same  ED-
   TPDU-NR to successive ED TPDUs.
                                  93
   The receiving transport entity shall transmit an EA TPDU with the
   same  value  in  its YR-EDTU-NR parameter.  If, and only if, this
   number is different from that of the previously received ED  TPDU
   shall  it  generate  a  T-EXPEDITED DATA indication to convey the
   data to the TS-user (see note 2).
   NOTES
      1.  No  other  significance  is  attached  to  the  ED-TPDU-NR
          parameter.  It is recommended, but not essential, that the
          values be consecutive modulo 2**n, where n is  the  number
          of bits of the parameter.
      2.  This procedure ensures that the TS-user does  not  receive
          data corresponding to the same ED TPDU more than once.
   11.2.4  Release
   The transport entities shall use  the  explicit  variant  of  the
   release procedure in 6.7.
                                  94
   12  SPECIFICATION FOR CLASS 4: ERROR DETECTION AND RECOVERY CLASS
   12.1  Functions of Class 4
   Class 4 provides the functionality of Class 3, plus  the  ability
   to  detect  and recover from lost, duplicated, or out of sequence
   TPDUs without involving the TS-user.
   This detection of errors is made by extended use of the  DT  TPDU
   numbering  of Class 2 and Class 3, by time-out mechanisms, and by
   additional procedures.
   This class additionally detects and recovers from  damaged  TPDUs
   by using a checksum mechanism.  The use of the checksum mechanism
   must be available but its  use  or  its  non-use  is  subject  to
   negotiation.
   Further on this  class  provides  additional  resilience  against
   network failure and increased throughput capability by allowing a
   transport connection to make use of multiple network connections.
   12.2  Procedures for Class 4
   12.2.1  Procedures available at all times
   12.2.1.1  Timers used at all times
   This subclause defines timers that apply at all times in class 4.
   These timers are listed in table 7.
   This International Standard does not define specific  values  for
   the  timers,  and the derivations described in this subclause are
   not mandatory.  The values should be chosen so that the  required
   quality   of   service   can   be   provided,   given  the  known
   characteristics of the network.
   Timers that apply only to specific procedures are  defined  under
   the appropriate procedure.
                                  95
   +---------------------------|------------------------------------+
   |Symbol|        Name        |            Definition              |
   |------|--------------------|------------------------------------|
   | MLR  |NSDU lifetime       | A bound for the maximum time which |
   |      |local-to-remote     | may elapse between the transmis-   |
   |      |                    | sion of an NSDU by a local trans-  |
   |      |                    | port entity and the receipt of any |
   |      |                    | copy of it by a remote peer entity.|
   |      |                    |                                    |
   | MRL  |NSDU lifetime       | A bound for the maximum time which |
   |      |remote-to-local     | may elapse between the transmission|
   |      |                    | of an SNDU from a remote transport |
   |      |                    | entity to a remote peer entity.    |
   |      |                    |                                    |
   | ELR  |Expected maximum    | A bound for the maximum delay suf- |
   |      |transit delay       | fered by all but a small proportion|
   |      |local-to-remote     | of NSDUs transferred from the local|
   |      |                    | transport entity to a remote peer  |
   |      |                    | entity.                            |
   |      |                    |                                    |
   | ERL  |Expected maximum    | A bound for the maximum delay suf- |
   |      |transit delay       | fered by all but a small proportion|
   |      |remote-to-local     | of NSDUs transferred from a remote |
   |      |                    | transport entity to the local peer |
   |      |                    | entity.                            |
   |      |                    |                                    |
   |  AL  |Local acknowledge   | A bound for the maximum time which |
   |      |time                | can elapse between the receipt of  |
   |      |                    | a TPDU by the local transport en-  |
   |      |                    | tity from the network layer and    |
   |      |                    | the transmission of the corres-    |
   |      |                    | ponding acknowledgement.           |
   |      |                    |                                    |
   |  AR  |Remote acknow-      | As AL, but for the remote entity.  |
   |      |ledgement time      |                                    |
   +----------------------------------------------------------------+
    Table 7. (First of 2 pages) Time Parameters related to class 4
                                  96
   +----------------------------------------------------------------+
   |  T1  |Local retrans-      | A bound for the maximum time that  |
   |      |mission time        | the local transport entity will    |
   |      |                    | wait for acknowledgement before re-|
   |      |                    | transmitting a TPDU.               |
   |      |                    |                                    |
   |  R   |Persistence time    | A bound for the maximum time the   |
   |      |                    | the local transport entity will    |
   |      |                    | continue to transmit a TPDU that   |
   |      |                    | requires acknowledgement.          |
   |      |                    |                                    |
   |  N   |Maximum number of   | A bound for the maximum number of  |
   |      |transmissions       | times which the local transport    |
   |      |                    | entity will continue to transmit a |
   |      |                    | TPDU that requires acknowledgement.|
   |      |                    |                                    |
   |  L   |Bound on references | A bound for the maximum time       |
   |      |and sequence        | between the transmission of a TPDU |
   |      |numbers             | and the receipt of any acknow-     |
   |      |                    | ledgement relating to it.          |
   |      |                    |                                    |
   |  I   |Inactivity time     | A bound for the time after which   |
   |      |                    | a transport entity will, if it     |
   |      |                    | does not receive a TPDU, initiate  |
   |      |                    | the release procedure to terminate |
   |      |                    | the transport connection.          |
   |      |                    |                                    |
   |      |                    | NOTE - This parameter is required  |
   |      |                    | for protection against unsignalled |
   |      |                    | breaks in the network connection.  |
   |      |                    |                                    |
   |  W   |Window time         | A bound for the maximum time a     |
   |      |                    | transport entity will wait before  |
   |      |                    | retransmitting up to date window   |
   |      |                    | information.                       |
   +----------------------------------------------------------------+
    Table 7. (Second of 2 pages) Time Parameters related to class 4
                                  97
   12.2.1.1.1  NSDU lifetime (MLR, MRL)
   The network layer is assumed to provide,  as  an  aspect  of  its
   grade of service, for a bound on the maximum lifetime of NSDUs in
   the network.  This value may be different in  each  direction  of
   transfer  through  a network between two transport entities.  The
   values, for both directions of transfer, are assumed to be  Known
   by  the  transport entities.  The maximum NSDU lifetime local-to-
   remote (MLR) is the maximum time which  may  elapse  between  the
   transmission  of  an  NSDU from the local transport entity to the
   network and receipt of any copy of the NSDU from the  network  at
   the  remote  transport entity.  The maximum NSDU lifetime remote-
   to-local (MRL) is the maximum time which may elapse  between  the
   transmission  of  an NSDU from the remote transport entity to the
   network and receipt of any copy of the NSDU from the  network  at
   the local transport entity.
   12.2.1.1.2  Expected maximum transit delay (ELR, ERL)
   The network layer is assumed to provide,  as  an  aspect  of  its
   grade  of service, an expected maximum transit delay for NSDUs in
   the network.  This value may be different in  each  direction  of
   transfer  through  a network between two transport entities.  The
   values, for both directions of transfer, are assumed to be  Known
   by  the  transport  entities.  The expected maximum transit delay
   local-to-remote (ELR) is the maximum delay suffered by all but  a
   small  proportion  of  NSDUs transferred through the network from
   the local transport entity to the remote transport  entity.   The
   expected  maximum  transit  delay  remote-to-local  (ERL)  is the
   maximum delay suffered by all but a  small  proportion  of  NSDUs
   transfer  through the network from the remove transport entity to
   the local transport entity.
                                  98
   12.2.1.1.3  Acknowledge Time (AR, AL)
   Any transport entity is  assumed  to  provide  a  bound  for  the
   maximum  time which can elapse between its receipt of a TPDU from
   the Network Layer  and  its  transmission  of  the  corresponding
   response.   This  value  is referred to as AL.  The corresponding
   time given by the remote transport entity is referred to as AR.
   12.2.1.1.4  Local retransmission time (T1)
   The local transport entity is assumed to maintain a bound on  the
   time  it  will  wait for an acknowledgement before retransmitting
   the TPDU.  Its value is given by:
      T1 = ELR + ERL + AR + X
   where:
      ELR = Expected maximum transit delay local-to-remote,
      ERL = Expected maximum transit delay remote-to-local,
      AR  = Remote acknowledge time, and
      X   = local processing time for a TPDU.
   12.2.1.1.5  Persistence Time (R)
   The local transport entity is assumed to provide a bound for  the
   maximum  time  for  which  it  may  continue to retransmit a TPDU
   requiring positive acknowledgement.  This value is referred to as
   R.
   The  value  is  clearly  related  to  the  time  elapsed  between
   retransmission,  T1,  and the maximum number of transmissions, N.
   It is not less than T1 * N + X, where X is a  small  quantity  to
   allow  for  additional  internal  delays,  the granularity of the
   mechanism used to implement T1 and so on.  Because R is a  bound,
   the  exact value of X is unimportant as long as it is bounded and
   the value of a bound is known.
                                  99
   12.2.1.1.6  Bound on References and Sequence Numbers (L)
   A bound for the maximum time between the decision to  transmit  a
   TPDU  and the receipt of any response relating to it (L) is given
   by:
      L = MLR + MRL + R + AR
   where:
      MLR = NSDU lifetime local-to-remote,
      MRL = NSDU lifetime remote-to-local,
      R   = Persistence time, and
      AR  = Remote acknowledgement time.
   It is necessary to  wait  for  a  period  L  before  reusing  any
   reference  of  sequence number, to avoid confusion in case a TPDU
   referring to it may be duplicated or delayed.
   NOTES
      1.  In practice, the value of L may be unacceptably large.  It
          may  also  be  only  a  statistical  figure  at  a certain
          confidence level.  A smaller value may therefore  be  used
          where this still allows the required quality of service to
          be provided.
      2.  The  relationships  between  times  discussed  above   are
          illustrated in figures 3 and 4.
          [Figures 3 and 4 are omitted from this copy.]
   12.2.1.2  General Procedures
   The transport entity shall use the following procedures:
      a)  TPDU transfer (see 6.2);
      b)  association of TPDUs with transport connections (see 6.9);
                                  100
      c)  treatment of protocol errors (see 6.22);
      d)  checksum (see 6.17);
      e)  splitting and recombining (see 6.23);
      f)  multiplexing and demultiplexing (see 6.15);
      g)  retention until acknowledgement of TPDUs (see 6.13);
      h)  frozen references (see 6.18).
      j)  retransmission procedures; when  a  transport  entity  has
          some  outstanding  TPDUs  that require acknowledgement, it
          will check that no T1 interval elapses without the arrival
          of   a   TPDU  that  acknowledges  at  least  one  of  the
          outstanding TPDUs.
          If  the  timer  expires,  except  if  the   TPDU   to   be
          retransmitted  is a DT TPDU and it is outside the transmit
          window  due  credit   reduction,   the   first   TPDU   is
          retransmitted   and  the  timer  is  restarted.   After  N
          transmissions (i.e. N-1  retransmissions)  it  is  assumed
          that  useful  two-way  communication is no longer possible
          and the release procedure is  used,  and  the  TS-user  is
          informed.
      NOTES
      1)  This procedure may be implemented by different means.  For
          example:
          a)  one interval is associated with  each  TPDU.   If  the
              timer  expires the associated TPDU will be transmitted
              and the timer T1 will be restarted for all  subsequent
              TPDUs; or
          b)  one  interval  is  associated  with   each   transport
              connection:
              1)  if the transport entity transmits a TPDU requiring
                  acknowledgement, it starts timer T1;
                                  101
              2)  if the  transport  entity  receives  a  TPDU  that
                  acknowledges  one of the TPDUs to be acknowledged,
                  it restarts timer T1 unless the received  TPDU  is
                  an AK which explicitly closes the transmit window.
              3)  if the  transport  entity  receives  a  TPDU  that
                  acknowledges  the last TPDU to be acknowledged, it
                  stops timer T1.
          For a decision whether  the  retransmission  timer  T1  is
          maintained  on a per TPDU or on a per transport connection
          basis, throughput considerations have  to  be  taken  into
          account.
      2.  For DT TPDUs it is a local  choice  to  retransmit  either
          only  the  first  DT  TPDU  or  all  TPDUs  waiting for an
          acknowledgement up to the upper window edge.
      3.  It is recommended that after N transmissions of a DT TPDU,
          the  transport  entity  waits  T1 + W + MRL  to  provide a
          higher possibility of receiving an acknowledgement  before
          entering  the  release  phase.  For other TPDU types which
          may be retransmitted,  it  is  recommended  that  after  N
          transmissions  the  transport  entity  waits  T1 + MRL  to
          provide a higher possibility  of  receiving  the  expected
          reply.
   12.2.2  Procedures for Connection Establishment
   12.2.2.1  Timers used in Connection Establishment
   There are no timers specific to connection establishment.
                                  102
   12.2.2.2  General Procedures
   The transport entities shall use the following procedures:
      a)  assignment to network connection (see 6.1);
      b)  connection establishment  (see  6.5)  and  if  appropriate
          connection  refusal (see 6.6) together with the additional
          procedures:
          1)  a connection is not considered established  until  the
              successful  completion  of a 3-way TPDU exchange.  The
              sender of a CR TPDU shall respond to the corresponding
              CC  TPDU  by  immediately  sending  a DT, ED, DR or AK
              TPDU;
          2)  as a result of duplication  or  retransmission,  a  CR
              TPDU  may  be  received  specifying a source reference
              which is already in use  with  the  sending  transport
              entity.   If  the receiving transport entity is in the
              data transfer phase, having completed the  3-way  TPDU
              exchange  procedure,  or  is waiting for the T-CONNECT
              response from the  TS-user,  the  receiving  transport
              entity  shall ignore such a TPDU.  Otherwise a CC TPDU
              shall be transmitted;
          3)  as a result of duplication  or  retransmission,  a  CC
              TPDU  may  be  received  specifying a paired reference
              which is already  in  use.   The  receiving  transport
              entity  shall  only  acknowledge the duplicate CC TPDU
              according to the procedure in 12.2.2.2.b.1.
          4)  a CC TPDU may be received specifying a reference which
              is  in  the frozen state.  The response to such a TPDU
              shall be a DR TPDU;
          5)  the retransmission procedures (see 12.2.1.2) are  used
              for both the CR TPDU and CC TPDU.
                                  103
   12.2.3  Procedures for Data Transfer
   12.2.3.1  Timers used in Data Transfer
   The data transfer procedures use two additional timers:
      a)  Inactivity Time (I)
      To  protect  against  unsignalled  breaks   in   the   network
      connection  or failure of the peer transport entity (half-open
      connections), each transport entity  maintains  an  inactivity
      interval.  The interval must be greater than E.
      NOTE - A suitable value for I is given by
      2 * (N * maximum of (T1, W))
      unless local needs indicate another more appropriate value.
      b)  Window Time (W)
      A transport entity maintains a timer interval to  ensure  that
      there  is  a  bound  on  the  maximum  interval between window
      updates.
   12.2.3.2  General Procedures for data transfer
   The transport entities shall use the following procedures:
      a)  inactivity control    (see 6.21);
      b)  expedited data        (see 6.11);
      c)  explicit flow control (see 6.16).
   The sending transport entity shall use the  following  procedures
   in the following order:
      d)  segmenting            (see 6.3);
      e)  DT TPDU numbering     (see 6.10).
                                  104
   The receiving transport entity shall use the following procedures
   in the following order:
      f)  DT TPDU numbering     (see 6.10);
      g)  resequencing          (see 6.20);
      h)  reassembling          (see 6.3).
   12.2.3.3  Inactivity Control
   If the interval of the inactivity timer I expires without receipt
   of  some  TPDU,  the  transport entity shall initiate the release
   procedures.   To  prevent  expiration  of  the  remote  transport
   entity's  inactivity  timer when no data is being sent, the local
   transport entity must send AK TPDUs at suitable intervals in  the
   absence  of  data, having regard to the probability of TPDU loss.
   The window synchronization procedures (see 12.2.3.8) ensure  that
   this requirement is met.
   NOTE - It is likely that the release procedure initiated  due  to
   the  expiration  of  the  inactivity  timer  will  fail,  as such
   expiration indicates probable failure of the  supporting  network
   connection or of the remote transport entity.
   12.2.3.4  Expedited Data
   The transport entities  shall  follow  the  network  normal  data
   variant  of the expedited data transfer procedures (see 6.11), if
   the use of transport expedited service  option  has  been  agreed
   during connection establishment.
   The ED TPDU shall have  a  TPDU-NR  which  is  allocated  from  a
   separate sequence space from that of the DT TPDUs.
   A transport entity shall allocate the sequence number zero to the
   ED  TPDU-NR  of  the  first  ED  TPDU  which  it  transmits for a
                                  105
   transport connection.  For subsequent ED TPDU sent  on  the  same
   transport  connection,  the  transport  entity  shall  allocate a
   sequence number one greater than the previous one.
   Modulo 2**7 arithmetic shall be used  when  normal  formats  have
   been  selected  and  modulo  2**31  arithmetic shall be used when
   extended formats have been selected.
   The receiving transport entity shall transmit an EA TPDU with the
   same  sequence number in its YR-ETDU-NR field.  If this number is
   one greater than in the previously in sequence received ED  TPDU,
   the  receiving transport entity shall transfer the data in the ED
   TPDU to the TS-user.
   If  a  transport  entity  does  not  receive  an   EA   TPDU   in
   acknowledgement  to an ED TPDU it shall follow the retransmission
   procedures (see note and 12.2.1.2).
   The sender of an ED TPDU shall not send  any  new  DT  TPDU  with
   higher TPDU-NR until it receives the EA TPDU.
   NOTE - This procedure ensures that ED TPDUs are delivered to  the
   TS-user  in  sequence  and that the TS-user does not receive data
   corresponding to the same  ED  TPDU  more  than  once.   Also  it
   guarantees  the  arrival  of  the ED TPDU before any subsequently
   sent DT TPDU.
   12.2.3.5  Resequencing
   The receiving transport entity shall deliver all DT TPDUs to  the
   TS-user in the order specified by the sequence number field.
   DT TPDUs received out-of-sequence but within the transmit  window
   shall not be delivered to the TS-user until all in-sequence TPDUs
   have been received.  DT TPDU received out-of-sequence and outside
   the transmit window shall be discarded.
   Duplicate TPDUs can  be  detected  because  the  sequence  number
   matches  that  of  preciously  received  TPDUs.  Sequence numbers
   shall not be reused for the period L after  their  previous  use.
                                  106
   Otherwise,  a new, valid TPDU could be confused with a duplicated
   TPDU which had previously been received and acknowledged.
   Duplicated DT TPDUs shall be acknowledged, since  the  duplicated
   TPDU  may  be  the  result of a retransmission resulting from the
   loss of an AK TPDU.
   The data contained in a duplicated DT TPDU shall be ignored.
   12.2.3.6  Explicit Flow Control
   The transport entities shall send an initial  credit  (which  may
   take  the  value  0)  in the CDT field of the CR TPDU or CC TPDU.
   This credit represents the initial value of the upper window edge
   of the peer entity.
   The transport entity which receives the CR TPDU or CC TPDU  shall
   consider  its lower window edge as zero and its upper window edge
   as the value in the CDT field in the received TPDU.
   In order to authorize the transmission of DT TPDUs by its peer, a
   transport entity may transmit an AK TPDU at any time.
   The sequence number of an AK TPDU shall not exceed  the  sequence
   number of the next expected DT TPDU, i.e. it shall not be greater
   than the highest sequence number of a received DT TPDU, plus one.
   A transport entity may send a duplicate AK  TPDU  containing  the
   same  sequence  number,  CDT, and subsequence number field at any
   time.
   A transport entity which receives an AK TPDU shall  consider  the
   value of the YR-TU-NR field as its new lower window edge if it is
   greater than any previously received in a YR-TU-NR field, and the
   sum  of  YR-TU-NR and CDT as its new upper window edge subject to
   the  procedures  for  sequencing  AK  TPDUs  (see  12.2.3.8).   A
   transport  entity shall not transmit or retransmit a DT TPDU with
   a sequence number outside the transmit window.
                                  107
   12.2.3.7  Sequencing of received AK TPDUs
   To allow a receiving transport  entity  to  properly  sequence  a
   series  of AK TPDUs that all contain the same sequence number and
   thereby use the  correct  CDT  value,  AK  TPDUs  may  contain  a
   subsequence  parameter.   For  the  purpose  of  determining  the
   correct sequence of AK TPDUs,  the  absence  of  the  subsequence
   parameter  shall  be equivalent to the value of the parameter set
   to zero.
   An AK TPDU is defined to be in sequence if:
      a)  the sequence number is  greater  than  in  any  previously
          received AK TPDU, or
      b)  the sequence  number  is  equal  to  the  highest  in  any
          previously received AK TPDU, and the subsequence parameter
          is greater than in any previously received AK TPDU  having
          the same value for YR-TU-NR field, or
      c)  the sequence number and  subsequence  parameter  are  both
          equal  to  the  highest in any previously received AK TPDU
          and the credit field is greater than or equal to  that  in
          any  previously  received AK TPDU having the same YR-TU-NR
          field.
   A transport entity is not required  to  include  the  subsequence
   number  in  its  AK  TPDUs.   It  may  also choose not to use the
   subsequence parameter in sequencing  received  AK  TPDUs.   If  a
   transport   entity  chooses  not  to  recognize  the  subsequence
   parameter it shall still sequence received AK TPDUs according  to
   12.2.3.7.a.
   When the receiving transport entity recognizes an out of sequence
   AK TPDU it shall ignore it.
                                  108
   12.2.3.8  Procedure for transmission of AK TPDUs
   12.2.3.8.1  Retransmission of AK TPDUs for window synchronization
   A transport entity shall not allow an interval W to pass  without
   the  transmission  of an AK TPDU.  if the transport entity is not
   using  the  procedure  following  setting  CDT   to   zero   (see
   12.2.3.8.3)   or   reduction   of  the  upper  window  edge  (see
   12.2.3.8.4), and does not have to acknowledge receipt of  any  DT
   TPDU,  then  it  shall achieve this by retransmission of the most
   recent AK TPDU, with up-to-date window information.
   NOTE - The use  of  the  procedures  defined  in  12.2.3.8.3  and
   12.2.3.8.4  are  optional for any transport entity.  The protocol
   operates correctly either with or without these procedures  which
   are defined to enhance the efficiency of its operation.  However,
   if these procedures are not used then W must  be  set  to  ensure
   enough  retransmissions  of  the AK TPDU so that release of TC is
   avoided.    The   value   of   W    should    be    approximately
   W = (T1 * N)/(N-1) when the procedures are not used.
   12.2.3.8.2  Sequence control for transmission of AK TPDUs
   To allow the receiving transport entity to process  AK  TPDUs  in
   the  correct  sequence, as described in 12.2.3.7, the subsequence
   parameter may be included following reduction  of  CDT.   If  the
   value  of  the subsequence number to be transmitted is zero, then
   the parameter should be omitted.
   The value of the subsequence parameter, if used,  shall  be  zero
   (either  explicitly  or  by  absence  of  the  parameter)  if the
   sequence number is greater than the field in previous  AK  TPDUs,
   sent by the transport entity.
   If the sequence number is the same as the previous AK  TPDU  sent
   and  the  CDT  field is equal to or greater than the CDT field in
   the previous AK TPDU sent  then  the  subsequence  parameter,  if
   used, shall be equal to that in the previously sent AK TPDU.
   If the sequence number is the same as the previous AK  TPDU  sent
                                  109
   and  the CDT field is less than the value of the CDT field in the
   previous AK TPDU sent than the subsequence  parameter,  if  used,
   shall be one greater than the value in the previous AK TPDU..
   12.2.3.8.3  Retransmission of AK TPDUs after CDT set to zero
   Due to the possibility of loss of AK TPDUs, the upper window edge
   as  perceived by the transport entity transmitting an AK TPDU may
   differ from that perceived by the intended recipient.   To  avoid
   the possibility of extra delay, the retransmission procedure (see
   12.2.1.2) should be followed for an AK  TPDU,  if  it  opens  the
   transmit window which has previously been closed by sending an AK
   TPDU with CDT field set to zero.
   The  retransmission  procedure,  if  used,  terminates  and   the
   procedure in 12.2.3.8.1 is used when:
      a)  an  AK  TPDU  is  received  containing  the  flow  control
          confirmation  parameter,  whose lower window edge and your
          subsequence fields are equal to the  sequence  number  and
          subsequence  number  in  the  retained  AK  TPDU and whose
          credit field is not zero.
      b)  an AK TPDU is transmitted with a  sequence  number  higher
          than  that  in the retained AK TPDU, due to reception of a
          DT TPDU whose sequence number is equal to the lower window
          edge;
      c)  N transmissions of the retained AK TPDU have taken  place.
          In  this  case  the  transport  entity  shall  continue to
          transmit the AK TPDU at an interval of W.
   An AK TPDU which is subject to the retransmission procedure shall
   not  contain  the  flow control confirmation parameter.  If it is
   required to transmit this parameter concurrently,  an  additional
   AK  TPDU  shall  be  transmitted  having  the  same values in the
   sequence, subsequence (if applicable) and credit fields.
                                  110
   12.2.3.8.4  Retransmission procedures following reduction of the
               upper window edge
   This subclause specifies the procedure for retransmission  of  AK
   TPDUs  after a transport entity has reduced the upper window edge
   (see 12.2.3.6) or for an AK TPDU with the  credit  field  set  to
   zero.  This procedure is used until the lower window edge exceeds
   the highest value of the upper window edge ever transmitted (i.e.
   the  value  existing  at  the  time of credit reduction, unless a
   higher value is retained from a previous credit reduction).
   This retransmission procedure should be followed for any AK  TPDU
   which increases the upper window edge, unless an AK TPDU has been
   received containing a flow control confirmation parameter,  which
   corresponds to an AK TPDU transmitted following credit reduction,
   for which the sum of the credit  and  lower  window  edge  fields
   (i.e.  the  upper  window  edge  value) is greater than the lower
   window edge (YR-TU-NR field) of the transmitted AK TPDU.
   This retransmission procedure for any particular  AK  TPDU  shall
   terminate when:
      a)  an  AK  TPDU  is  received  containing  the  flow  control
          confirmation  parameter,  whose lower window edge and your
          subsequence fields are equal to the lower window edge  and
          subsequence number in the retained AK TPDU; or
      b)  N transmissions of the retained AK TPDU have taken  place.
          In  this  case  the  transport  entity  shall  continue to
          transmit the AK TPDU at an interval of W.
   An AK TPDU which is subject to the retransmission procedure shall
   not  contain  the  flow control confirmation parameter.  If it is
   required to transmit this parameter concurrently,  an  additional
   AK  TPDU  shall  be  transmitted  having  the  same values in the
   sequence, subsequence (if applicable) and credit fields.
      NOTE - Retransmission of AK TPDUs is normally  not  necessary,
      except   following   explicit  closing  of  the  window  (i.e.
      transmission of an AK TPDU with CDT field set  to  zero).   If
      data  is  available  to  be  transmitted,  the  retransmission
      procedure for DT TPDUs will ensure that an AK TPDU is received
                                  111
      granting  further  credit  where this is available.  Following
      credit  reduction,  this  may  no  longer   be   so,   because
      retransmission  may be inhibited by the credit reduction.  The
      rules described in this clause avoid extra delay.
   The rules for determining whether  to  apply  the  retransmission
   procedure  to  an  AK  TPDU  may  be  expressed  alternatively as
   follows.  Let:
        LWE  = lower window edge
        UWE  = upper window edge
        KUWE = lower bound on upper window edge
               held by remote transport entity
   The retransmission procedure is to be used whenever:
        (UWE>LWE) and (KUWE = LWE)
   i.e. when the window is opened and it  is  not  known  definitely
   that the remote transport entity is aware of this.
   KUWE is maintained as follows.  When credit is reduced,  KUWE  is
   set to LWE.  Subsequently, it is increased only upon receipt of a
   valid flow control  confirmation  (i.e.  one  which  matches  the
   retained  lower  window edge and subsequence).  In this case KUWE
   is set to the implied upper  window  edge  of  the  flow  control
   confirmation,  i.e.  the  sum  of  its lower window edge and your
   credit fields.  By this means, it can be  ensured  that  KUWE  is
   always  less than or equal to the actual upper window edge in use
   by the transmitter of DT TPDUs.
   12.2.3.9  Use of Flow Control Confirmation parameter
   At any time, an AK TPDU may  be  transmitted  containing  a  flow
   control  confirmation  parameter.   The  lower  window edge, your
   subsequence and your credit fields  shall  be  set  to  the  same
   values  as the corresponding fields in the most recently received
   in sequence AK TPDU.
                                  112
   An AK TPDU  containing  a  flow  control  confirmation  parameter
   should be transmitted whenever:
      a)  a duplicate AK TPDU is received, with the value of  YR-TU-
          NR, CDT, and subsequence fields equal to the most recently
          received AK TPDU,  but  not  itself  containing  the  flow
          control confirmation parameter;
      b)  an AK TPDU is received which increases  the  upper  window
          edge  but  not the lower window edge, and the upper window
          edge was formerly equal to the lower window edge; or
      c)  an AK TPDU is received which increases  the  upper  window
          edge  but  not the lower window edge, and the lower window
          edge is lower than the highest value of the  upper  window
          edge  received  and  subsequently  reduced (i.e. following
          credit reduction).
   12.2.4  Procedures for Release
   12.2.4.1  Timers used for Release
   There are no timers used only for release.
   12.2.4.2  General Procedures for Release
   The transport entity shall use the  explicit  variant  of  normal
   release (see 6.7).
                                  113
   13  STRUCTURE AND ENCODING OF TPDUs
   13.1  Validity
   Table 8 specifies those TPDUs which are valid for each class  and
   the code for each TPDU.
      KEY:  xxxx (bits 4-1):  used to signal the CDT (set to 0000
                              in classes 0 and 1)
            zzzz (bits 4-1):  used to signal CDT in classes 2, 3,
                              4 set to 1111 in class 1
            NF:               Not available when the non explicit
                              flow control option is selected.
            NRC:              Not available when the receipt
                              confirmation option is selected.
   NOTE  - These codes are  already  in  use  in  related  protocols
   defined by standards oganizations other than CCITT/ISO.
                                  114
   +-------------------------------------------------------------+
   |                       | Validity within   |       |         |
   |                       |     classes       |  see  |  Code   |
   |                       |-------------------| Clause|         |
   |                       | 0 | 1 | 2 | 3 | 4 |       |         |
   |-----------------------|-------------------|-------|---------|
   |CR Connection Request  | x | x | x | x | x | 13.3  |1110 xxxx|
   |-----------------------|---|---|---|---|---|-------|---------|
   |CC Connection Confirm  | x | x | x | x | x | 13.4  |1101 xxxx|
   |-----------------------|---|---|---|---|---|-------|---------|
   |DR Disconnect Request  | x | x | x | x | x | 13.5  |1000 0000|
   |-----------------------|---|---|---|---|---|-------|---------|
   |DC Disconnect Confirm  |   | x | x | x | x | 13.6  |1100 0000|
   |-----------------------|---|---|---|---|---|-------|---------|
   |DT Data                | x | x | x | x | x | 13.7  |1111 0000|
   |-----------------------|---|---|---|---|---|-------|---------|
   |ED Expedited Data      |   | x | NF| x | x | 13.8  |0001 0000|
   |-----------------------|---|---|---|---|---|-------|---------|
   |AK Data Acknowledgement|   |NRC| NF| x | x | 13.9  |0110 zzzz|
   |-----------------------|---|---|---|---|---|-------|---------|
   |EA Expedited Data      |   | x | NF| x | x | 13.10 |0010 0000|
   |Acknowledgement        |   |   |   |   |   |       |         |
   |-----------------------|---|---|---|---|---|-------|---------|
   |RJ Reject              |   | x |   | x |   | 13.11 |0101 zzzz|
   |-----------------------|---|---|---|---|---|-------|---------|
   |ER TPDU Error          | x | x | x | x | x | 13.12 |0111 0000|
   |-----------------------|---|---|---|---|---|-------|---------|
   |                       |   |   |   |   |   |   -   |0000 0000|
   |                       |---|---|---|---|---|-------|---------|
   |not available          |   |   |   |   |   |   -   |0011 0000|
   | (see note)            |---|---|---|---|---|-------|---------|
   |                       |   |   |   |   |   |   -   |1001 xxxx|
   |                       |---|---|---|---|---|-------|---------|
   |                       |   |   |   |   |   |   -   |1010 xxxx|
   +-------------------------------------------------------------+
                          Table 8. TPDU code
                                  115
   13.2  Structure
   All the transport protocol data units (TPDUs)  shall  contain  an
   integral  number  of  octets.   The octets in a TPDU are numbered
   starting from 1 and increasing in the order they are put into  an
   NSDU.  The bits in an octet are numbered from 1 to 8, where bit 1
   is the low-ordered bit.
   When consecutive octets are used to represent  a  binary  number,
   the lower octet number has the least significant value.
   NOTE -  When the encoding  of  a  TPDU  is  represented  using  a
   diagram in this clause, the following representation is used:
      a)  octets are shown with the lowest  numbered  octet  to  the
          left, higher numbered octets being further to the right;
      b)  within an octet, bits are shown with bit 8 to the left and
          bit 1 to the right.
   TPDUs shall contain, in the following order:
      a)  the header, comprising:
          1)  the length indicator (LI) field;
          2)  the fixed part;
          3)  the variable part, if present;
      b)  the data field, if present.
   This structure is illustrated below:
        octet    1   2 3 4 ... n   n+1  ...    p  p+1 ...end
               +---+-------------+--------------+-----------+
               | LI| fixed part  | variable part| data field|
               +---+-------------+--------------+-----------+
               <---------------   header ------>
                                  116
   13.2.1  Length indicator field
   This field is contained in the first octet  of  the  TPDUs.   The
   length  is  indicated by a binary number, with a maximum value of
   254 (1111 1110).  The length indicated shall be the header length
   in   octets   including  parameters,  but  excluding  the  length
   indicator field and user data, if any.  The value 255 (1111 1111)
   is  reserved  for  possible  extensions.  If the length indicated
   exceeds the size of the NS-user data which is present, this is  a
   protocol error.
   13.2.2  Fixed part
   13.2.2.1  General
   The fixed part contains frequently occurring parameters including
   the  code of the TPDU.  The length and the structure of the fixed
   part are defined by the TPDU code and in  certain  cases  by  the
   protocol  class  and the formats in use (normal or extended).  If
   any of the parameters of the fixed part have an invalid value, or
   if the fixed part cannot be contained with the header (as defined
   by LI) this is a protocol error.
   NOTE - In  general,  the  TPDU  code  defines  the   fixed   part
   unambiguously.   However,  different  variants  may exist for the
   same TPDU code (see normal and extended formats).
   13.2.2.2  TPDU code
   This field contains the TPDU code and is contained in octet 2  of
   the  header.  It is used to define the structure of the remaining
   header.  This field is a  full  octet  except  in  the  following
   cases:
                                  117
         1110 xxxx     Connection Request
         1101 xxxx     Connection Confirm
         0101 xxxx     Reject
         0110 xxxx     Data Acknowledgement
   where xxxx (bits 4-1) is used to signal the CDT.
   Only those codes defined in 13.1 are valid.
   13.2.3  Variable part
   The  variable  part  is  used  to  define  less  frequently  used
   parameters.   If  the  variable part is present, it shall contain
   one or more parameters.
   NOTE - The number of parameters that  may  be  contained  in  the
   variable  part  is  indicated  by the length of the variable part
   which is LI minus the length of the fixed part.
   Each parameter contained within the variable part  is  structured
   as follows:
                  Bits   8    7    6    5    4    3    2    1
        Octets          +------------------------------------+
         n+1            |          Parameter Code            |
                        |------------------------------------|
         n+2            |          Parameter Length          |
                        |          Indication (e.g. m)       |
                        |------------------------------------|
         n+3            |                                    |
                        |          Parameter Value           |
         n+2+m          |                                    |
                        +------------------------------------|
                                  118
  1. The parameter code field is coded in binary;
     NOTE - Without extensions, it provides a maximum number of  255
     different  parameters.   However,  as noted below, bits 8 and 7
     cannot take every possible  value,  so  the  practical  maximum
     number  of  different  parameters is less.  Parameter code 1111
     1111 is reserved for possible extensions of the parameter code.
  1. The parameter length indication indicates the length, in

octets, of the parameter value field.

     NOTE - The length is indicated by a binary number,  m,  with  a
     theoretical  maximum value of 255.  The practical maximum value
     of m is lower.  For example, in the case of a single  parameter
     contained within the variable part, two octets are required for
     the parameter code and the parameter length indication  itself.
     Thus, the value of m is limited to 248.  For larger fixed parts
     of the header and for each succeeding  parameter,  the  maximum
     value of m decreases.
  1. The parameter value field contains the value of the parameter

identified in the parameter code field.

  1. No parameter codes use bits 8 and 7 with the value 00.
  1. The parameters defined in the variable part may be in any

order. If any parameter is duplicated then the later value

     shall be used.  A parameter not defined in  this  International
     Standard  shall  be treated as a protocol error in any received
     TPDU except a CR TPDU; in a CR TPDU it shall  be  ignored.   If
     the  responding  transport  entity  selects a class for which a
     parameter of the CR TPDU is not defined,  it  may  ignore  this
     parameter,   except  the  class  and  option,  and  alternative
     protocol class parameters which shall always be interpreted.  A
     parameter  defined in this International Standard but having an
     invalid value shall be treated  as  a  protocol  error  in  any
     received  TPDU  except  a  CR  TPDU.   In a CR TPDU it shall be
     treated as a protocol error if  it  is  either  the  class  and
     option  parameter  or  the  alternative  class parameter or the
     additional option  parameter;  otherwise  it  shall  be  either
     ignored or treated as a protocol error.
                                  119
   13.2.3.1  Checksum Parameter (Class 4 only)
   All TPDU types may contain a 16-bit checksum parameter  in  their
   variable  part.  This parameter shall be present in a CR TPDU and
   shall be present in all other TPDUs except when the  non  use  of
   checksum option is selected.
   Parameter Code:    1100 0011
   Parameter Length:  2
   Parameter Value:   Result of checksum algorithm.  This algorithm
                      is specified in 6.17.
   13.2.4  Data Field
   This field contains transparent user data.  Restrictions  on  its
   size are noted for each TPDU.
   13.3  Connection Request (CR) TPDU
   The length of the CR TPDU shall not exceed 128 octets.
   13.3.1  Structure
   The structure of the CR TPDU shall be as follows:
    1    2        3        4       5   6    7    8    p  p+1...end
   +--+------+---------+---------+---+---+------+-------+---------+
   |LI|CR CDT|     DST - REF     |SRC-REF|CLASS |VARIAB.|USER     |
   |  |1110  |0000 0000|0000 0000|   |   |OPTION|PART   |DATA     |
   +--+------+---------+---------+---+---+------+-------+---------+
                                  120
   13.3.2  LI
   See 13.2.1
   13.3.3  Fixed Part (Octets 2 to 7)
   The structure of this part shall contain:
      a)  CR       :  Connection Request Code:  1110.  Bits  8-5  of
                      octet 2;
      b)  CDT      :  Initial Credit  Allocation  (set  to  0000  in
                      Classes  0  and  1 when specified as preferred
                      class).  Bits 4-1 of octet 2;
      c)  DST-REF  :  Set to zero;
      d)  SRC-REF  :  Reference selected  by  the  transport  entity
                      initiating   the   CR  TPDU  to  identify  the
                      requested transport connection;
      e)  CLASS and   Bits 8-5 of octet 7 defines the preferred
          OPTION:     transport protocol class to be  operated  over
                      the   requested  transport  connection.   This
                      field shall take one of the following values:
                      0000  Class 0
                      0001  Class 1
                      0010  Class 2
                      0011  Class 3
                      0100  Class 4
   The CR TPDU contains the first choice of class in the fixed part.
   Second  and subsequent choices are listed in the variable part if
   required.
   Bits 4-1 of octet 7 define options to be used  on  the  requested
   transport connection as follows:
                                  121
   +-----|-----------------------------------------------+
   | BIT |                  OPTION                       |
   |-----|-----------------------------------------------|
   |  4  |  0   always                                   |
   |     |                                               |
   |  3  |  0   always                                   |
   |     |                                               |
   |  2  | =0   use of normal formats in all classes     |
   |     | =1   use of extended formats in Classes 2,3,4 |
   |     |                                               |
   |  1  | =0   use of explicit flow control in Class 2  |
   |     | =1   no use of explicit flow control in       |
   |     |      Class 2                                  |
   +-----------------------------------------------------+
   NOTES
   1.  The connection establishment procedure  (see  6.5)  does  not
       permit  a given CR TPDU to request use of transport expedited
       data transfer service (additional option  parameter)  and  no
       use of explicit flow control in Class 2 (bit 1 = 1).
   2.  Bits 4 to 1 are always zero in Class 0 and have no meaning.
   13.3.4  Variable Part (Octets 8 to p)
   The following parameters are permitted in the variable part:
      a)  Transport Service Access Point Identifier (TSAP-ID)
          Parameter code:    1100 0001 for  the  identifier  of  the
                             Calling TSAP.
                             1100 0010 for  the  identifier  of  the
                             Called TSAP
          Parameter length:  not defined in this standard
          Parameter value:   identifier of  the  calling  or  called
                             TSAP respectively.
                                  122
          If a TSAP-ID is given in the request it may be returned in
          the confirmation.
      b)  TPDU size
          This parameter defines the proposed maximum TPDU size  (in
          octets including the header) to be used over the requested
          transport connection.  The coding of this parameter is:
          Parameter code:    1100 0000
          Parameter Length:  1 octet
          Parameter value:
          0000 1101  8192 octets (not allowed in Class 0)
          0000 1100  4096 octets (not allowed in Class 0)
          0000 1011  2048 octets
          0000 1010  1024 octets
          0000 1001   512 octets
          0000 1000   256 octets
          0000 0111   128 octets
          Default value is 0000 0111 (128 octets)
      c)  Version Number (not used  if  Class  0  is  the  preferred
          class)
          Parameter code:         1100 0100
          Parameter length:       1 octet
          Parameter value field:  0000 0001
          Default value is 0000 0001 (not used in Class 0)
      d)  Security Parameters (not used if Class 0 is the  preferred
          class)
          This parameter is user defined.
          Parameter code:    1100 0101
          Parameter length:  user defined
          Parameter value:   user defined
      e)  Checksum (used only if class 4  is  the  preferred  class)
          (see 13.2.3.1)
                                  123
          This parameter shall  always  be  present  in  a  CR  TPDU
          requesting   Class  4,  even  if  the  checksum  selection
          parameter is used  to  request  non-use  of  the  checksum
          facility.
      f)  Additional Option Selection (not used if Class  0  is  the
          preferred class)
          This parameter defines the selection  to  be  made  as  to
          whether or not additional options are to be used.
          Parameter code:    1100 0110
          Parameter length:  1
          Parameter value:
          +------------------------------------------------------+
          |BIT|                   OPTION                         |
          |---|--------------------------------------------------|
          | 4 | 1=  Use of network expedited in Class 1          |
          |   | 0=  Non use of network expedited in Class 1      |
          |   |                                                  |
          | 3 | 1=  Use of receipt confirmation in Class 1       |
          |   | 0=  Use of explicit AK variant in Class 1        |
          |   |                                                  |
          | 2 | 0=  16-bit checksum defined in 6.17 is to be used|
          |   |     in Class 4                                   |
          |   | 1=  16-bit checksum defined in 6.17 is not to be |
          |   |     used on Class 4                              |
          |   |                                                  |
          | 1 | 1=  Use of transport expedited data transfer     |
          |   |     service                                      |
          |   | 0=  No use of transport expedited data transfer  |
          |   |     service                                      |
          +------------------------------------------------------+
          Default value is 000 0001
          Bits related to options particular  to  a  class  are  not
          meaningful  if that class is not proposed and may take any
          value.
                                  124
      g)  Alternative protocol class(es) (not used if Class 0 is the
          preferred class)
          Parameter code:    1100 0111
          Parameter length:  n
          Parameter value encoded as a sequence  of  single  octets.
          Each octet is encoded as for octet 7 but with bits 4-1 set
          to zero (i.e. no alternative option selections permitted).
      h)  Acknowledge Time (used only if class 4  is  the  preferred
          class)
          This parameter conveys the maximum acknowledge time AL  to
          the  remote  transport  entity.  It is an indication only,
          and is not subject to negotiation (see 12.2.1.1.3)
          Parameter code:    1000 0101
          Parameter length:  2
          Parameter value:   n, a binary number where n is the
                             maximum acknowledge time, expressed
                             in milliseconds.
      j)  Throughput (not used if class 0 is the preferred class)
          Parameter code:    1000 1001
          Parameter length:  12 or 24
          Parameter value:
          1st 12 Octets:     maximum throughput, as follows:
          1st 3 octets:      Target   value,   calling-called   user
                             direction
          2nd 3 octets:      Min.  acceptable,  calling-called  user
                             direction
          3rd 3 octets:      Target   value,   called-calling   user
                             direction
          4th 3 octets:      Min.  acceptable,  called-calling  user
                             direction
          2nd 12 octets (optional):  average throughput, as follows:
          5th 3 octets:      Target   value,   calling-called   user
                             direction
                                  125
          6th 3 octets:      Min.  acceptable,  calling-called  user
                             direction
          7th 3 octets:      Target   value,   called-calling   user
                             direction
          8th 3 octets:      Min.  acceptable,  called-calling  user
                             direction
          Where the average throughput is omitted, it is  considered
          to have the same value as the maximum throughput.
          Values are expressed in octets per second.
      k)  Residual error rate (not used if class 0 is the  preferred
          class)
          Parameter code:    1000 1001
          Parameter length:  12
          1st 3 octets:      Target   value,   calling-called   user
                             direction
          2nd 3 octets:      Min.  acceptable,  calling-called  user
                             direction
          3rd 3 octets:      Target   value,   called-calling   user
                             direction
          4th 3 octets:      Min.  acceptable,  called-calling  user
                             direction
      l)  Residual error rate (not used if class 0 is the  preferred
          class)
          Parameter code:    1000 0110
          Parameter length:  3
          Parameter value:
          1st octet:         Target value, power of 10
          2nd octet:         Min. acceptable, power of 10
          3rd octet:         TSDU size of interest, expressed  as  a
                             power of 2
      m)  Priority (not used if class 0 is the preferred class)
          Parameter code:    1000 0111
          Parameter length:  2
          Parameter value:   Integer (0 is the highest priority)
                                  126
      n)  Transit delay (not used if class 0 is the preferred class)
          Parameter code:    1000 1000
          Parameter length:  8
          Parameter value:
          1st 2 octets:      Target   value,   calling-called   user
                             direction
          2nd 2 octets:      Max.  acceptable,  calling-called  user
                             direction
          3rd 2 octets:      Target   value,   called-calling   user
                             direction
          4th 2 octets:      Max.  acceptable,  called-calling  user
                             direction
          Values are expressed in milliseconds, and are based upon a
          TSDU size of 128 octets.
      p)  assignment time (not used if class 0, 2 or class 4 is  the
          preferred class)
          This parameter conveys the Time to Try Reassignment  (TTR)
          which  will  be  used  when  following  the  procedure for
          Reassignment after Failure (see 6.12).
          Parameter code:    1000 1011
          Parameter length:  2
          Parameter value:   n, a binary number where n is  the  TTR
                             value expressed in seconds.
   13.3.5  User Data (Octets p+1 to the end)
   No user data are permitted in Class 0, and are  optional  in  the
   other classes.  Where permitted, it may not exceed 32 octets.
                                  127
   13.4  Connection Confirm (CC) TPDU
   13.4.1  Structure
   The structure of the CC TPDU shall be as follows:
     1      2     3   4   5   6     7     8     p   p+1 ...end
   +---+----+---+---+---+---+---+-------+--------+-------------+
   |LI | CC  CDT|DST-REF|SRC-REF| CLASS |VARIABLE| USER        |
   |   |1101|   |   |   |   |   | OPTION|  PART  | DATA        |
   +---+----+---+---+---+---+---+-------+--------+-------------+
   13.4.2  LI
   See 13.2.1
   13.4.3  Fixed Part (Octets 2 to 7)
   The fixed part shall contain:
      a)  CC:  Connection Confirm Code:  1101.  Bits 8-5 of octet 2;
      b)  CDT:  Initial Credit Allocation (set to 0000 in Classes  0
          and 1).  Bits 4-1 of octet 2;
      c)  DST-REF:  Reference identifying  the  requested  transport
          connection at the remote transport entity;
      d)  SRC-REF:  Reference identifying  the  requested  transport
          connection at the remote transport entity.
      e)  Class and Option:  Defines the selected transport protocol
          class   and  option  to  be  operated  over  the  accepted
          transport connection according to  the  negotiation  rules
          specified in 6.5;
                                  128
   13.4.4  Variable Part (Octet 8 to p)
   The parameters are defined in  13.3.4  and  are  subject  to  the
   constraints states in 6.5 (connection establishment).  Parameters
   ruled out by selection of an alternative class and  option  shall
   not be present.
   13.4.5  User Data (Octets p+1 to the end)
   No user data are permitted in class 0, and are  optional  in  the
   other  classes.   Where  permitted,  it may not exceed 32 octets.
   The user data are subject to the constraints of  the  negotiation
   rules (see 6.5).
   13.5  Disonnect Request (DR) TPDU
   13.5.1  Structure
   The structure of the DR TPDU shall be as follows:
     1     2      3     4    5     6     7    8     p   p+1 ...end
   +--+---------+----+-----+----+-----+------+--------+----------+
   |LI|    DR   | DST-REF. | SRC-REF. |REASON|VARIABLE| USER     |
   |  |1000 0001|    |     |    |     |      |  PART  | DATA     |
   +--+---------+----+-----+----+-----+------+--------+----------+
   13.5.2  LI
   See Section 13.2.1
                                  129
   13.5.3  Fixed Part (Octets 2 to 7
   The fixed part shall contain:
      a)  DR:  Disconnect Request Code:  1000 0000;
      b)  DST-REF:  Reference identifying the  transport  connection
          at the remote transport entity;
      c)  SRC-REF:  Reference identifying the  transport  connection
          at  the  transport entity initiating the TPDU.  Value zero
          when reference is unassigned;
      d)  REASON:   Defines  the  reason   for   disconnecting   the
          transport  connection.   This  field shall take one of the
          following values:
          The following values may be used for Classes 1 to 4:
          1)  128 + 0 - Normal  disconnect  initiated   by   session
                 entity
          2)  128 + 1 - Remote  transport   entity   congestion   at
                 connect request time
          3) *128 + 2 - Connection negotiation failed (i.e. proposed
                 class(es) not supported)
          4)  128 + 3 - Duplicate source reference detected for  the
                 same pair of NSAPS.
          5)  128 + 4 - Mismatched references
          6)  128 + 5 - Protocol error
          7)  128 + 6 - Not used
          8)  128 + 7 - Reference overflow
          9)  128 + 8 - Connection request refused on  this  network
                 connection
          10) 128 + 9 - Not used
          11) 128 + 10- Header or parameter length invalid
                                  130
      The following values can be used for all classes:
          12)       0 - Reason not specified
          13)       1 - Congestion at TSAP
          14)      *2 - Session entity not attached to TSAP
          15)      *3 - Address unknown
      NOTE - Reasons marked with an asterisk (*) may be reported  to
      the TS-user as persistent, other reasons as transient.
   13.5.4  Variable Part (Octets 8 to p)
   The variable part may contain
      a)  A parameter allowing additional information related to the
          clearing of the connection.
          Parameter code:    1110 0000
          Parameter length:  Any value provided that the  length  of
                             the DR TPDU does not exceed the maximum
                             agreed TPDU size or  128  when  the  DR
                             TPDU  is  used  during  the  connection
                             refusal procedure
          Parameter value:   Additional information.  The content of
                             this field is user defined.
      b)  Checksum (see 13.2.3.1)
   13.5.5  User Data (Octets p+1 to the end)
   This field shall not exceed 64 octets and is used  to  carry  TS-
   user   data.   The  successful  transfer  of  this  data  is  not
   guaranteed by the transport protocol.  When a DR TPDU is used  in
   Class 0 it shall not contain this field.
                                  131
   13.6  Disconnect Confirm (DC) TPDU
   This TPDU shall not be used in Class 0.
   13.6.1  Structure
   The structure of DC TPDU shall be as follows:
     1       2         3     4     5     6    7        p
   +----+-----------+-----+-----+-----+-----+-------+--------+
   | LI |    DC     |  DST REF  |  SRC REF  | Variable Part  |
   |    | 1100 0000 |     |     |     |     |       |        |
   +----+-----------+-----+-----+-----+-----+-------+--------+
   13.6.2  LI
   See 13.2.1
   13.6.3  Fixed Part (Octets 2 to 6)
   The fixed part shall contain:
      a)  DC:  Disconnect Confirm Code:  1100 0000;
      b)  DST-REF:  See 13.4.3;
      c)  SRC-REF:  See 13.4.3.
                                  132
   13.6.4  Variable Part
   The variable part shall contain the  checksum  parameter  if  the
   condition in (see 13.2.3.1) applies.
   13.7  Data (DT) TPDU
   13.7.1  Structure
   Depending on the class and the option the DT TPDU shall have  one
   of the following structures.
      a)  Normal format for Classes 0 and 1
     1       2         3          4       5             ... end
   +----+-----------+-----------+------------ - - - - - -------+
   | LI |    DT     |  TPDU-NR  | User Data                    |
   |    | 1111 0000 |  and EOT  |                              |
   +----+-----------+-----------+------------ - - - - - -------+
      b)  Normal format for Classes 2, 3 and 4
     1      2       3   4     5     6       p    p+1       ... end
   +----+---------+---+---+-------+-----+-------+----------- - - -+
   | LI |   DT    |DST-REF|TPDU-NR|Variable Part|User Data        |
   |    |1111 0000|   |   |and EOT|     |       |                 |
   +----+---------+---+---+-------+-----+-------+----------- - - -+
      c)  Extended Format for  use  in  Classes  2,  3  and  4  when
          selected during connection establishment.
     1      2       3   4   5,6 7,8  9     p  p+1      ... end
   +----+---------+---+---+---------+--------+---------- - - -+
   | LI |   DT    |DST-REF| TPDU-NR |Variable|User Data       |
   |    |1111 0000|   |   | and EOT |  Part  |                |
   +----+---------+---+---+---------+--------+---------- - - -+
                                  133
   13.7.2  LI
   See 13.2.1
   13.7.3  Fixed Part
   The fixed part shall contain:
      a)  DT:       Data Transfer Code:  1111 0000;
      b)  DST-REF:  See 13.4.3;
      c)  EOT:      When set to ONE, indicates that the  current  DT
                    TPDU is the last data unit of a complete DT TPDU
                    sequence (End of TSDU).  EOT is bit 8 of octet 3
                    in  class  0  and 1, bit 8 of octet 5 for normal
                    formats for classes 2, 3 and  4  and  bit  8  of
                    octet 8 for extended formats;
      d)  TPDU-NR:  TPDU send Sequence Number  (zero  in  Class  0).
                    May  take  any value in Class 2 without explicit
                    flow control.  TPDU-NR is bits 7-1  of  octet  3
                    for  classes  0  and  1, bits 7-1 of octet 5 for
                    normal formats in classes 2, 3 and 4, octets  5,
                    6  and  7  together with bits 7-1 of octet 8 for
                    extended formats.
      NOTE - Depending on the class, the fixed part of the  DT  TPDU
      uses the following octets:
           Classes 0 and 1:                Octets 2 to 3;
           Classes 2,3,4 normal format:    Octets 2 to 5;
           Classes 2,3,4 extended format:  Octets 2 to 8.
                                  134
   13.7.4  Variable Part
   The variable part shall contain the  checksum  parameter  if  the
   condition in see 13.2.3.1 applies.
   13.7.5  User Data Field
   This field contains data of the TSDU being transmitted.
   NOTE - The length of this field is limited to the negotiated TPDU
   size  for  this  transport connection minus 3 octets in Classes 0
   and 1, and minus 5 octets (normal  header  format)  or  8  octets
   (extended  header  format)  in  the  other classes.  The variable
   part, if present, may further reduce the size of  the  user  data
   field.
   13.8  Expedited Data (ED) TPDU
   The ED TPDU shall not be used in Class 0 or in Class 2  when  the
   no explicit flow control option is selected or when the expedited
   data transfer service has not been selected for the connection.
   13.8.1  Structure
   Depending on the format negotiated  at  connection  establishment
   the ED TPDU shall have one of the following structures:
                                  135
      a)  Normal Format (classes 1, 2, 3, 4)
    1     2       3   4      5     6        p    p+1     ... end
   +--+---------+---+---+---------+-----+-------+---------------+
   |LI|   ED    |DST-REF|EDTPDU-NR|Variable Part|User Data      |
   |  |0001 0000|   |   |and EOT  |     |       |               |
   +--+---------+---+---+---------+-----+-------+---------------+
      b)  Extended Format (for use in classes 2, 3, 4 when  selected
          during connection establishment).
    1     2       3   4   5,6,7,8  9        p    p+1     ... end
   +--+---------+---+---+---------+-----+-------+---------------+
   |LI|   ED    |DST-REF|EDTPDU-NR|Variable Part|User Data      |
   |  |0001 0000|   |   |and EOT  |     |       |               |
   +--+---------+---+---+---------+-----+-------+---------------+
   13.8.2  LI
   See 13.2.1
   13.8.3  Fixed Part
   The fixed part shall contain:
      a)  ED:          Expedited Data code:  0001 0000;
      b)  DST-REF:     see 13.4.3;
      c)  ED-TPDU-NR:  Expedited TPDU  identification  number.   ED-
                       TPDU-NR is used in classes 1, 3 and 4 and may
                       take any value in Class 2.  Bits 7-1 of octet
                       5  for  normal  formats and octets 5, 6 and 7
                       together  with  bits  7-1  of  octet  8   for
                       extended formats;
                                  136
      d)  EOT:         end of TSDU always set to 1 (bit 8 of octet 5
                       for  normal  formats and bit 8 of octet 8 for
                       extended formats).
      NOTE - Depending on the format the fixed part shall be  either
      octets 2 to 5 or 2 to 8.
   13.8.4  Variable Part
   The variable part shall contain the  checksum  parameter  if  the
   condition defined in 13.2.3.1 applies.
   13.8.5  User Data Field
   This field contains an expedited TSDU (1 to 16 octets).
   13.9  Data Acknowledgement (AK) TPDU
   This TPDU shall not be used for Class 0 and Class 2 when the  "no
   explicit  flow  control" option is selected, and for Class 1 when
   the network receipt confirmation option is selected.
   13.9.1  Structure
   Depending on the class and option agreed the AK TPDU  shall  have
   one of the following structures:
                                  137
      a)  Normal Format (classes 1, 2, 3, 4)
    1     2      3     4        5        6        p
   +--+--------+----------+------------+---------------+
   |LI| AK CDT | DST-REF  |  YR-TU-NR  | Variable Part |
   |  | 0110   |          |            |               |
   +--+--------+----------+------------+---------------+
      b)  Extended Format (for use in classes 2, 3, 4 when  selected
          during connection establishment).
    1      2      3     4    5,6,7,8   9,10 11    p
   +--+---------+---------+----------+-----+--------+
   |LI|    AK   | DST-REF | YR-TU-NR | CDT |Variable|
   |  |0110 0000|         |          |     |  Part  |
   +--+---------+---------+----------+-----+--------+
   13.9.2  LI
   See 13.2.1
   13.9.3  Fixed Part
   The fixed part shall contain (in octet 2 to 5 when normal  format
   is used, 2 to 10 otherwise) the following parameters:
      a)  AK:        Acknowledgement code:  0110;
      b)  CDT:       Credit Value (set to 1111 in  class  1).   Bits
                     4-1  of octet 2 for normal formats and octets 9
                     and 10 for extended formats;
      c)  DST-REF:   See 13.4.3;
      d)  YR-TU-NR:  Sequence number indicating the next expected DT
                     TPDU  number.   For normal formats, bits 7-1 of
                     octet 5; bit 8 of octet 5  is  not  significant
                                  138
                     and  shall  take  the  value  0.   For extended
                     formats, octets 5, 6 and 7 together  with  bits
                     7-1  of  octet  8;  bit  8  of  octet  8 is not
                     significant and shall take the value 0.
   13.9.4  Variable Part
   The variable part contains the following parameters:
      a)  Checksum  See  13.2.3.1  if  the  condition  in   13.2.3.1
          applies;
      b)  Subsequence  number  when  optionally   used   under   the
          conditions  defined in class 4.  This parameter is used to
          ensure  that  AK  TPDUs  are  processed  in  the   correct
          sequence.    If  it  is  absent,  this  is  equivalent  to
          transmitting the parameter with a value of zero.
          Parameter code:    1000 1010
          Parameter length:  2
          Parameter value:   16-bit sub-sequence number;
      c)  Flow Control Confirmation Class  4  when  optionally  used
          under  the  conditions defined in class 4.  This parameter
          contains a copy of the information received in an AK TPDU,
          to  allow  the transmitter of the AK TPDU to be certain of
          the  state  of  the  receiving   transport   entity   (see
          12.2.3.10).
          Parameter code:    1000 1011
          Parameter length:  8
          Parameter value:   defined as follows
          1.  Lower Window Edge (32 bits)
              Bit 8 of  octet  4  is  set  to  zero,  the  remainder
              contains  the  YR-TU-NR value of the received AK TPDU.
              When normal format has been selected, only  the  least
              significant  seven  bits  (bits  1 to 7 of octet 1) of
              this field are significant.
          2.  Your Sub-Sequence (16 bits)
              Contains the value of the  sub-sequence  parameter  of
                                  139
              the  received  AK  TPDU, or zero if this parameter was
              not present.
          3.  Your Credit (16 bits)
              Contains the value of the CDT field of the received AK
              TPDU.   When normal format has been selected, only the
              least significant four bits (bits 1 to 4 of  octet  1)
              of this field are significant.
   13.10  Expedited Data Acknowledgement (EA) TPDU
   This TPDU shall not be used for Class 0 and Class 2 when  the  no
   explicit flow control option is selected.
   13.10.1  Structure
   Depending on the option (normal  or  extended  format)  the  TPDU
   structure shall be:
      a)  Normal Format (classes 1,2,3,4)
           1      2      3     4      5      6        p
          +--+---------+---------+----------+------+------+
          |LI|   EA    | DST-REF | YR-TU-NR |Variable Part|
          |  |0010 0000|         |          |      |      |
          +--+---------+---------+----------+------+------+
      b)  Extended Format (for use in classes 2, 3,  4  if  selected
          during connection establishment)
           1      2      3     4    5,6,7,8  9        p
          +--+---------+---------+----------+------+------+
          |LI|   EA    | DST-REF | YR-TU-NR |Variable Part|
          |  |0010 0000|         |          |      |      |
          +--+---------+---------+----------+------+------+
                                  140
   13.10.2  LI
   See 13.2.1
   13.10.3  Fixed Part
   The fixed part shall contain (in octets 2 to 5 when normal format
   is used, in octets 2 to 8 otherwise):
      a)  EA:          Expedited Acknowledgement code:  0010 0000;
      b)  DST-REF:     See 13.4.3;
      c)  YR-EDTU-NR:  Identification   of   the   ED   TPDU   being
                       acknowledged.  May take any value in Class 2;
                       For normal formats bits 7-1 of octet 5; bit 8
                       of  octet 5 is not significant and shall take
                       the value 0.  For  extended  formats,  octets
                       5,6  and 7 together with bits 7-1 of octet 8;
                       bit 8 of octet 8 is not significant and shall
                       take the value 0.
   13.10.4  Variable Part
   The  variable  part  may  contain  the  checksum  parameter  (see
   13.2.3.1).
   13.11  Reject (RJ) TPDU
   The RJ TPDU shall not be used in Classes 0, 2 and 4.
                                  141
   13.11.1  Structure
   The RJ TPDU shall have one of the following formats:
      a)  Normal Format (classes 1 and 3)
            1      2        3     4       5
          +----+----------+----+----+------------+
          | LI |  RJ CDT  | DST-REF |  YR-TU-NR  |
          |    | 0101     |    |    |            |
          +----+----------+----+----+------------+
      b)  Extended Format (for use in classes 3 if  selected  during
          connection establishment).
           1       2       3     4   5,6,7,8   9,10
          +--+-----------+----+----+----------+-----+
          |LI|     RJ    | DST-REF | YR-TU-NR | CDT |
          |  | 0101 0000 |    |    |          |     |
          +--+-----------+----+----+----------+-----+
   13.11.2  LI
   See 13.2.1.
   13.11.3  Fixed Part
   The fixed part shall contain (in octets 2 to 5 when normal format
   is used, in octets 2 to 10 otherwise):
      a)  RJ:        Reject Code:  0101.  Bits 8-5 of octet 2;
      b)  CDT:       Credit Value (set to 1111 in  class  1).   Bits
                     4-1  of octet 2 for normal formats and octets 9
                     and 10 for extended formats;
      c)  DST-REF:   See 13.4.3;
                                  142
      d)  YR-TU-NR:  Sequence number indicating  the  next  expected
                     TPDU from which retransmission should occur.
                     For normal formats, bits 7-1 of octet 5; bit  8
                     of  octet  5  is not significant and shall take
                     the value 0.  For extended formats, octets  5,6
                     and  7 together with bits 7-1 of octet 8; bit 8
                     of octet 8 is not significant  and  shall  take
                     the value 0.
   13.11.4  Variable Part
   There is no variable part for this TPDU type.
   13.12  TPDU Error (ER) TPDU
   13.12.1  Structure
     1        2       3     4     5         6   P
   +----+-----------+----+----+--------+----------+
   | LI |    ER     | DST-REF | Reject | Variable |
   |    | 0111 0000 |    |    | Cause  |   Part   |
   +----+-----------+----+----+--------+----------+
   13.12.2  LI
   See 13.2.1
                                  143
   13.12.3  Fixed Part
   The fixed part shall contain:
      a)  ER:            TPDU Error Code:  0111 0000;
      b)  DST-REF:       See 13.4.3;
      c)  REJECT CAUSE:  0000 0000  Reason not specified
                         0000 0001  Invalid parameter code
                         0000 0010  Invalid TPDU type
                         0000 0011  Invalid parameter value.
   13.12.4  Variable Part
   The variable part may contain the following parameters:
      a)  Invalid TPDU
          Parameter code:    1100 0001
          Parameter length:  number of octets of the value field
          Parameter Value:  Contains the bit pattern of the rejected
                             TPDU  up  to  and  including  the octet
                             which  caused  the   rejection.    This
                             parameter is mandatory in Class 0.
      b)  Checksum
          This parameter  shall  be  present  if  the  condition  in
          13.2.3.1 applies.
                                  144
   SECTION THREE.  CONFORMANCE
   14  CONFORMANCE
   14.1
   A system claiming to implement the procedures specified  in  this
   standard shall comply with the requirements in 14.2 - 14.5.
   14.2
   The system shall implement Class 0 or Class 2 or both.
   14.3
   If the system implements Class  3  or  Class  4,  it  shall  also
   implement Class 2.
   14.4
   If the system implements Class 1, it shall also  implement  Class
   0.
                                  145
   14.5
   For each class which the system claims to implement,  the  system
   shall be capable of:
      a)  initiating CR TPDUs or responding  to  CR  TPDUs  with  CC
          TPDUs or both;
      b)  responding to any other TPDU and operating network service
          in accordance with the procedures for the class;
      c)  operating all the  procedures  for  the  class  listed  as
          mandatory in table 9;
      d)  operating  those  procedures  for  the  class  listed   as
          optional in table 9 for which conformance is claimed;
      e)  handling all TPDUs of lengths up to the lesser value of:
          1)  the maximum length for the class;
          2)  the maximum for which conformance is claimed.
          NOTE - This requirement indicates that TPDU sizes  of  128
          octets are always implemented.
   14.6  Claims of Conformance Shall State
      a)  which class or classes of protocol are implemented;
      b)  whether the system is capable of initiating or  responding
          to CR TPDUs or both;
      c)  which of the procedures listed as optional in table 9  are
          implemented;
                                  146
      d)  the maximum size of TPDU implemented; the value  shall  be
          chosen  from the following list and all values in the list
          which are less than this maximum shall be implemented:
          128, 256, 512, 1024, 2048, 4096 or 8192 octets.
                                  147
   +------------------------------------------------------------+
   |       PROCEDURE          |    CLASS 0     |    CLASS 1     |
   |--------------------------|----------------|----------------|
   |                          |                |                |
   |TPDU with checksum        | NA             | NA             |
   |TPDU wihout checksum      | mandatory      | mandatory      |
   |                          |                |                |
   |--------------------------|----------------|----------------|
   |Expedited data transfer   | NA             | mandatory      |
   |No expedited data transfer| mandatory      | mandatory      |
   |                          |                |                |
   |--------------------------|----------------|----------------|
   |Flow control in Class 2   | NA             | NA             |
   |No flow control in Class 2| NA             | NA             |
   |                          |                |                |
   |--------------------------|----------------|----------------|
   |Normal formats            | mandatory      | mandatory      |
   |Extended formats          | NA             | NA             |
   |                          |                |                |
   |--------------------------|----------------|----------------|
   |Use of receipt confirma-  |                |                |
   |tion in Class 1           | NA             | optional       |
   |No use of receipt con-    |                |                |
   |firmation in Class 1      | NA             | mandatory      |
   |                          |                |                |
   |--------------------------|----------------|----------------|
   |Use of network expedited  |                |                |
   |in Class 1                | NA             | optional       |
   |No use of network expedi- |                |                |
   |ted in Class 1            | NA             | mandatory      |
   |                          |                |                |
   +------------------------------------------------------------+
   NA indicates the procedure is not applicable.
           Table 9. (First of 2 pages) Provision of options
                                  148
   +------------------------------------------------------------+
   |       PROCEDURE          | CLASS 2  | CLASS 3  |  CLASS 4  |
   |--------------------------|----------|----------|-----------|
   |                          |          |          |           |
   |TPDU with checksum        |NA        |NA        |mandatory  |
   |TPDU wihout checksum      |mandatory |mandatory |optional   |
   |                          |          |          |           |
   |--------------------------|----------|----------|-----------|
   |Expedited data transfer   |mandatory |mandatory |mandatory  |
   |No expedited data transfer|mandatory |mandatory |mandatory  |
   |                          |          |          |           |
   |--------------------------|----------|----------|-----------|
   |Flow control in Class 2   |mandatory |NA        |NA         |
   |No flow control in Class 2|optional  |NA        |NA         |
   |                          |          |          |           |
   |--------------------------|----------|----------|-----------|
   |Normal formats            |mandatory |mandatory |mandatory  |
   |Extended formats          |optional  |optional  |optional   |
   |                          |          |          |           |
   |--------------------------|----------|----------|-----------|
   |Use of receipt confirma-  |          |          |           |
   |tion in Class 1           |NA        |NA        |NA         |
   |No use of receipt con-    |          |          |           |
   |firmation in Class 1      |NA        |NA        |NA         |
   |                          |          |          |           |
   |--------------------------|----------|----------|-----------|
   |Use of network expedited  |          |          |           |
   |in Class 1                |NA        |NA        |NA         |
   |No use of network expedi- |          |          |           |
   |ted in Class 1            |NA        |NA        |NA         |
   |                          |          |          |           |
   +------------------------------------------------------------+
   NA indicates the procedure is not applicable
          Table 9. (Second of 2 pages) Provision of options
                                  149
   ANNEX A - STATE TABLES
   This annex is an integral part of the body of this  International
   Standard.
   This Annex provides a more precise description of  the  protocol.
   In  the  event  of a discrepancy between the description in these
   tables and that contained in the text, the text takes precedence.
   The state table also  define  the  mapping  between  service  and
   protocol events that TS-users can expect.
   This annex describes the transport protocol  in  terms  of  state
   tables.    The  state  tables  show  the  state  of  a  transport
   connection, the events that occur in the  protocol,  the  actions
   taken and the resultant state.
   [The state tables have been omitted from this copy.]
                                  150
   ANNEX B - CHECKSUM ALGORITHMS
   (This annex is provided for information for implementors  and  is
   not an integral part of the body of the standard.)
   B.1  SYMBOLS
   The following symbols are used:
      C0  variables used in the algorithms
      C1
      i   number (i.e. position) of an octet within  the  TPDU  (see
          12.1)
      n   number (i.e. position) of the first octet of the  checksum
          parameter
      L   length of the complete TPDU
      X   value of the first octet of the checksum parameter
      Y   value of the second octet of the checksum parameter.
   B.2  ARITHMETIC CONVENTIONS
   Addition is performed in one of the two following modes:
      a)  modulo 255 arithmetic;
      b)  one's  complement  arithmetic  in  which  if  any  of  the
          variables  has the value minus zero (i.e. 255) it shall be
          regarded as though it was plus zero (i.e. 0).
   B.3  ALGORITHM FOR GENERATING CHECKSUM PARAMETERS
                                  151
   B.3.1  Set up the complete TPDU with the value  of  the  checksum
   parameter field set to zero.
   B.3.2  Initialize C0 and C1 to zero.
   B.3.3  Process each octet sequentially from i = 1 to L by:
      a)  adding the value of the octet to C0; then
      b)  adding the value of C0 to C1.
   B.3.4  Calculate X and Y such that
      X = -C1 + (L-n).CO
      Y =  C1 - (L-n+1).C0
   B.3.5  Place the values  X  and  Y  in  octets  n  and  (n  +  1)
   respectively.
   [A Note describing the above algorithm in  mathematical  notation
   has been omitted from this copy.]
   B.4  ALGORITHM FOR CHECKING CHECKSUM PARAMETERS
   B.4.1  Initialize C0 and C1 to zero.
   B.4.2  Process each octet of the TPDU sequentially from i = 1  to
   L by:
      a)  adding the value of the octet to C0; then
      b)  adding the value of C0 to C1.
                                  152
   B.4.3  If, when all the octets have  been  processed,  either  or
   both  of  C0  and  C1  does not have the value zero, the checksum
   formulas in 6.17 have not been satisfied.
   NOTE - The nature of  the  algorithm  is  such  that  it  is  not
   necessary to compare explicitly the stored checksum bytes.
                                  153
   Explanatory Report
   The Transport Layer Services and Protocols have been under  study
   within  TC97/SC16  since  1979.   It  was  agreed  by SC16 at its
   meeting in Berlin, November 1980, that the Service  and  Protocol
   documents would be progressed concurrently.
   At the SC16 meeting in Tokyo, June 1982, authorization was  given
   (Resolutions  10  and  11,  SC16  N  1233)  to  register both the
   Transport  Service  Definition   and   the   Transport   Protocol
   Specification  as Draft Proposals and to circulate them for a 90-
   day ballot.
   Following the close of the letter ballot  an  Editing  Group  was
   convened to integrate editorial comments and make recommendations
   regarding proposed technical  changes.   The  revised  texts  and
   proposed recommendations were reviewed by SC16/WG6 at its meeting
   in Vienna, March 1983.  The revised text of the Transport Service
   Definition  (SC16  N  1435) was accepted as presented whereas the
   revised  text  of  the  Transport  Protocol  (SC16  N  1433)  was
   subjected  to  an  additional 60-day ballot.  Consistent with the
   SC16 decision regarding the parallel progression of both DPs, the
   Transport   Service  Definition  was  held  in  abeyance  pending
   acceptance by SC16 of the revised Transport Protocol  (Second  DP
   8073).
   A second Editing Group was  convened  in  Paris,  July  1983,  to
   review  comments  submitted  on  Second DP 8073.  The Minutes and
   Report of this meeting are documented in SC16 N1575  and  N  1574
   respectively.   The  two  negative votes (DIN and NNI) were given
   full consideration.  The NNI concerns have been fully covered  in
   the revised text prepared by the Editing Group.  The DIN concerns
   have been taken into account  and  incorporated  in  their  large
   majority.
   Upon the recommendation of the Editing Group, DP 8072 and DP 8073
   are  forwarded  for registration as Draft International Standards
   and letter ballot of ISO Member Bodies.
                                  154
/data/webs/external/dokuwiki/data/pages/rfc/rfc905.txt · Last modified: 1992/09/23 19:36 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki