Internet DRAFT - draft-cornish-qtp

draft-cornish-qtp








          INTERNET DRAFT                           A. Cornish, INETCO Systems Ltd.
          Category: Informational              M. Cox, Alcatel Australia Pty. Ltd.
          Title: draft-cornish-qtp-05.txt            R. Neill, INETCO Systems Ltd.
                                                    I. Palmer, Lucent Technologies
                                                    A. Telfer, INETCO Systems Ltd.
                                                 C. Wignell, CoSine Communications
                                                                          C. Young
                                                                      October 2002


                              Quick Transaction Protocol - QTP

          Status of this Memo

             By submitting this Internet-Draft, I certify that any applicable
             patent or other IPR claims of which I am aware have been disclosed,
             or will be disclosed, and any of which I become aware will be
             disclosed, in accordance with RFC 3668.

             Internet-Drafts are working documents of the Internet Engineering
             Task Force (IETF), its areas, and its working groups.  Note that
             other groups may also distribute working documents as Internet-
             Drafts.

             Internet-Drafts are draft documents valid for a maximum of six months
             and may be updated, replaced, or obsoleted by other documents at any
             time.  It is inappropriate to use Internet-Drafts as reference
             material or to cite them other than as "work in progress."

             The list of current Internet-Drafts can be accessed at
             http://www.ietf.org/ietf/1id-abstracts.txt

             The list of Internet-Draft Shadow Directories can be accessed at
             http://www.ietf.org/shadow.html.

          Abstract

             QTP is a simple protocol for multiplexing short-duration connections
             over an arbitrary transport service such as UDP.  QTP is an open
             standard to allow dial-up Credit Authorization Terminals (CAT) or
             Point-Of-Sale (POS) terminals to connect into IP hosts.

             These transactions require fast connection times, efficient
             concentration of many sessions, fault tolerant operation, and the
             ability to transfer access network addressing (called and calling
             numbers) along with transaction data.

          Table of Contents



          Cornish et. al.             expires May 2005                   [Page 1]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          1. INTRODUCTION                                                        3
             1.1 Typical Application                                             3
             1.2 Protocol Requirements                                           4
             1.3 Other Approaches                                                4
             1.4 QTP Attributes                                                  5
             1.5 Specification of Requirements                                   6
             1.6 Terminology                                                     6
          2. QTP FRAMEWORK                                                       7
          3. QTP MESSAGE FORMAT                                                  9
             3.1 Message Header                                                  9
             3.2 Message Types                                                  11
          4. DETAILED MESSAGE TYPES                                             12
             4.1 Call Request                                                   12
             4.2 Call Acknowledgement                                           14
             4.3 Call Reject                                                    16
             4.4 Clear Request                                                  17
             4.5 Clear Acknowledgement                                          19
             4.6 Status Request                                                 20
             4.7 Status Report                                                  22
             4.8 Data                                                           24
          5. ATTRIBUTES                                                         25
             5.1 Attribute Header                                               25
             5.2 Attribute Classes                                              26
             5.3 Attribute List                                                 27
             5.4 Message Type / Attribute Matrix                                28
             5.5 Attribute Definitions                                          30
          6. PROTOCOL OPERATION                                                 41
             6.1 Protocol Startup                                               41
             6.2 Call Request (incoming)                                        43
             6.3 Call Request (outgoing)                                        43
             6.4 Call Clearing (incoming)                                       44
             6.5 Call Clearing (outgoing)                                       44
             6.6 Status Request                                                 44
             6.7 Status Reporting                                               45
             6.8 Data Transfer                                                  45
             6.9 Exception Handling                                             47
          7. TRANSPORT                                                          48
             7.1 QTP over UDP                                                   48
             7.2 QTP over TCP                                                   49
          8. SECURITY CONSIDERATIONS                                            49
          9. REFERENCES                                                         50
          10. AUTHORS' ADDRESSES                                                51
          11. FULL COPYRIGHT STATEMENT                                          52
          12. INTELLECTUAL PROPERTY                                             52







          Cornish et. al.             expires May 2005                   [Page 2]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          1.  INTRODUCTION

             This document describes the QTP interface that can be used to carry
             short duration transactions.

             QTP was created to address the specific need for a multi-session
             protocol to connect dial-up transaction terminal sessions to an IP
             host.


          1.1.  Typical Application

             At the time of creation of this protocol, most existing Point-Of-Sale
             (POS) and Credit Authorization Terminal (CAT) devices connect to
             telephone or X.25 access networks.  In many cases, these transactions
             are routed to an IP-based Transaction Processor (TP).

             A simplified POS system includes:

                                  +-<NAS>-+      +-<TP>
             <Terminal>--<Access>-|       |-<IP>-|
                                  +-<NAS>-+      +-<TP>

             where:

             Terminal  is the CAT or POS terminal device
             Access    is an Access Network such as telephone or X.25
             NAS       is a Network Access Server
             IP        is an IP network (usually private and secured)
             TP        is an authorizing Transaction Processing host

             When a transaction occurs, a telephone or X.25 connection is
             initiated by a Terminal to a NAS.  The NAS answers the call and
             establishes a data connection.

             Once connected, the terminal sends the transaction request, and waits
             for a transaction response.  When received, the terminal may
             disconnect immediately, or send an acknowledgement prior to
             disconnecting.  Request and response messages rarely exceed 200
             octets.  The entire sequence takes only a few seconds.

             The NAS acts as an IP network gateway, and routes the transaction
             request through to a TP.  It also ensures the transaction response is
             returned to the appropriate terminal.

             The application logic in both the NAS and TP may use access network
             addressing (called and calling numbers) and the contents of the
             transaction message to route and process the transaction.



          Cornish et. al.             expires May 2005                   [Page 3]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             While most calls are initiated by terminals in response to customer
             transactions, there are some cases where the TP initiates connections
             to terminals.  This mode is usually associated with the TP soliciting
             audit information from the terminals or downloading "hot card" lists
             to terminals.

             Due to the high availability requirements of production transaction
             systems, live NAS and TP hosts are essential.


          1.2.  Protocol Requirements

             A protocol suitable for this application must address the following
             requirements.

             *  The number of terminals concentrated into a single host may be in
                the tens of thousands.

             *  Each transaction, including connection, data transfer and
                disconnection occurs in a few seconds.  The protocol must be
                efficient and low-latency.

             *  Data transfer must support asynchronous message transfer.  Either
                the terminal or TP may initiate data exchanges.

             *  Application-layer logic includes aggressive measures for error
                recovery if data is lost or corrupted.  It is undesireable for
                lower-level transport services to provide recovery mechanisms
                operating on longer timeouts.

             *  An outage during a peak retail time is intolerable.  The overall
                system must include provisions for fault tolerance.

             *  The access network source and destination addresses are correlated
                with the transaction data.  The protocol must transfer called and
                calling number along with transaction data.

             *  The application logic invokes specific error recovery mechanisms
                if the access network connection terminates.  The protocol must
                provide connection information.


          1.3.  Other Approaches

             Alternate were considered prior to undertaking the creation of a new
             protocol.

             These were ruled out on the basis that they did not suitably address



          Cornish et. al.             expires May 2005                   [Page 4]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             the problem space defined by this application.


          1.3.1.  Mapping to TCP Connections

             It is possible to map access network connections to corresponding TCP
             connections.  Access network addressing may be carried in a header,
             or mapped to specific TCP ports.  If the access network connection is
             broken, the corresponding TCP connection is disconnected.

             This approach is common in small-scale transaction processing
             systems, but experience indicates it is not scalable to large
             applications.

             *  At peak connection arrival rates, the overhead associated with
                setting up TCP sessions becomes prohibitive.

             *  During peak usage, the TCP port number resource within a TP
                becomes exhausted.

             *  In the event of dropped or corrupted IP datagrams, TCP will
                undertake retransmission, potentially delivering a message well
                after the application logic has undertaken recovery.

             *  It is prohibitively expensive to secure each transient TCP
                connection using methods such as SSL or TLS.


          1.3.2.  Vendor Protocols

             Several vendor protocols are widely used for these types of
             applications.  In particular, Hypercom and Visa each have proprietary
             protocols for which they have assigned TCP and UDP port numbers [2].

             QTP was created to provide a public and non-restrictive alternative
             to these approaches.


          1.4.  QTP Attributes

             Key features of QTP are:

             *  Efficient connection setup;

             *  Transfers access network call information, including
                calling/called numbers and modem speed;

             *  Independent of access network type (telephone, ISDN, X.25,...);



          Cornish et. al.             expires May 2005                   [Page 5]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             *  Operation over connectionless or connection-oriented transports;

             *  Efficient concentration of connections at very high call rates;

             *  Support for outgoing and incoming transaction initiation;

             *  Dynamic adjustment to congestion or server failures;


          1.5.  Specification of Requirements

             The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
             "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
             document are to be interpreted as described in RFC 2119 [3].

          1.6.  Terminology

             This document uses the following terms:

             CAT          Credit Authorization Terminal.

             FI           Financial Institution.

             IP           Internet Protocol.

             ISDN         Integrated Services Digital Network

             LCN          Logical Channel Number

             Message      A single complete QTP unit, including message header and
                          attributes.

             POS          Point-Of-Sale.

             PSTN         Public Switched Telephone Network

             QTP Entity   The QTP software element on a QTP host.  A QTP Entity is
                          responsible for all the QTP sessions between it and
                          other QTP entities.

             QTP Host     The computing environment in which one or more QTP
                          entities resides.

             QTP Session  One logical connection provided by QTP Entities between
                          a single application endpoint on one host and single
                          application endpoint on a remote QTP entity.

             QTP          Quick Transaction Protocol. The protocol as described in



          Cornish et. al.             expires May 2005                   [Page 6]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


                          this document.

             TCP          Transport Control Protocol

             UDP          User Datagram Protocol.


          2.  QTP FRAMEWORK

             In this document, the following framework is used to describe the
             operation of QTP.  This framework is not intended to imply a design
             or implementation architecture.


                  [Transaction Terminals]
                        | | |     |
                     +--------------+
                     (    Access    )
                     (   Networks   )
                     +--------------+
                        | | |     |
                 +-----------------------+            +-----------------------+
                 |  +----------------+   |            |  +-----------------+  |
                 |  | Network Access |   |            |  |  Transaction    |  |
                 |  | Application(s) |   |            |  |  Processing     |  |
                 |  | Supporting     |   |            |  |  Application(s) |  |
                 |  | Multiple       |   |            |  |  Serving many   |  |
                 |  | Transaction    |   |            |  |  Transaction    |  |
                 |  | Connections    |   |            |  |  Connections    |  |
                 |  +----------------+   |            |  +-----------------+  |
                 |      | | |     |      |            |      | | |     |      |
                 |    Logical Channels   |            |    Logical Channels   |
                 |      1 2 3     n      |            |      1 2 3     n      |
                 |      | | |     |      |            |      | | |     |      |
                 |    +-------------+    |            |    +-------------+    |
                 |    |             |<-------------------->|             |    |
                 |    | QTP Entity  |<--------QTP--------->| QTP Entity  |    |
                 |    |             |<------Sessions------>|             |    |
                 |    |  [Control]  |<-------------------->|  [Control]  |    |
                 |  +---------------+-+  |            |  +---------------+-+  |
                 |  |Transport Service|==|============|==|Transport Service|  |
                 |  +-----------------+  |  Network   |  +-----------------+  |
                 |     QTP Host A        |            |     QTP Host B        |
                 |(Network Access Server)|            |(Transaction Processor)|
                 +-----------------------+            +-----------------------+

             In this framework, QTP Host A and QTP Host B exist in a network.




          Cornish et. al.             expires May 2005                   [Page 7]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             QTP Host A acts as a Network Access Server, concentrating connections
             from multiple Transaction Terminals arriving from one or more Access
             Networks.  QTP Host B acts as a Transaction Processor, responding to
             transaction messages from terminals.

             Each Host supplies a Transport Service for a QTP Entity, which
             permits QTP messages to be exchanged between hosts.

             Each QTP Entity contains a Control point responsible for call control
             and management functions for the QTP Entity.

             Higher level applications establish or accept QTP Sessions with
             remote applications.

             Each QTP Session is an independent logical connection between one
             specific channel on one QTP Entity and a specific channel on another
             QTP Entity.  Higher level applications access individual QTP Sessions
             using a Logical Channel Number on the local QTP Entity.  QTP Sessions
             are defined by the Logical Channel Numbers on both QTP Entities
             involved in the connection.

             QTP is independent of the underlying Transport Service.  The
             Transport Service may be connectionless or connection-oriented, and
             provide reliable or unreliable message delivery.



























          Cornish et. al.             expires May 2005                   [Page 8]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          3.  QTP MESSAGE FORMAT

          3.1.  Message Header

             Each QTP message includes a message header as described below.

             All numbers are unsigned and are in network byte order (i.e. big
             endian).

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |M|A|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Message Identifier (opt)    |  Message Identifier Ack (opt) |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Data/Control Attributes ...
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


             Version (bits 0 through 3)

                  Protocol Version. Set to 0x1.

             Rsvd (bits 4 through 7)

                  Reserved for future use. Must be zero.

             Message Identifier Flag (bit 8)

                  Indicates that the Message Identifier field exists.

             Message Identifier Ack Flag (bit 9)

                  Indicates that the Message Identifier Ack field exists.

             Message Priority Flag (bit 10)

                  If zero (0), indicates the QTP message is of normal priority.
                  If set to one (1), the QTP message is of high priority.

             Type (bits 12 through 15)

                  The type of QTP message as in Section 3.2 of this document.





          Cornish et. al.             expires May 2005                   [Page 9]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Message Length (two octets)

                  The length in bytes of the entire QTP message including header.

             Source LCN (two octets)

                  A Logical Channel Number used to identify the specific QTP
                  Session originating a QTP message.

                  QTP Messages returned by the receiving QTP Entity to this LCN
                  will be associated with the same higher-layer application
                  endpoint.  This number need not have any direct relationship
                  with respect to physical ports.

                  Both the Source LCN and Destination LCN are required in a QTP
                  Message to uniquely identify a specific QTP Session.

                  When a QTP Session is disconnected, the LCN becomes invalid
                  until a new QTP Session is established which involves that LCN.

                  An LCN value of zero (0) MUST NOT be used as a transaction
                  source, but MAY be interpreted as the Control point within the
                  QTP Entity.

             Destination LCN (two octets)

                  A Logical Channel Number used to identify the specific QTP
                  Session on the destination QTP Entity.  This number need not
                  have any direct relationship with respect to physical ports.

                  Both the Source LCN and Destination LCN are required in a QTP
                  Message to uniquely identify a specific QTP Session.

                  When a QTP Session is disconnected, the LCN becomes invalid
                  until a new QTP Session is established which involves that LCN.

                  Except where otherwise noted in this document, an LCN value of
                  zero (0) MUST NOT be used as a transaction destination, but MAY
                  be interpreted as the Control point on the destination QTP
                  Entity.

             Message Identifier (two octets)

                  Present if the "Message Identifier Flag" is set in the QTP
                  header.  This is a number which uniquely identifies the QTP
                  message for the indicated QTP Session.

                  If this is present, a message on the same QTP Session MUST be



          Cornish et. al.             expires May 2005                  [Page 10]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


                  returned which includes this value in the "Message Identifier
                  Ack" field.

                  Use of a Message Identifier in any message is optional.

                  If two messages are received on the same QTP Session with the
                  same Message Identifier value, then the second message MUST be
                  discarded, and a Message Identifier Ack MUST be returned.

             Message Identifier Ack (two octets)

                  Present if the "Message Identifier Ack Flag" is set in the QTP
                  header.

                  This field explicitly acknowledges reception of a QTP Message to
                  the remote end of the QTP Session.

                  The Message Identifier Ack field contains the same value as the
                  Message Identifier field in the message being acknowledged.

             Data/Control

                  The remainder of the QTP Message contains data and/or control
                  information formatted as Attributes, as described in this
                  document.

          3.2.  Message Types

             The following QTP message types have been defined.

                  Message Type             Type Code
                  ------------             ---------
                  Call Request                0x1
                  Call Ack                    0x2
                  Call Reject                 0x3
                  Clear Request               0x5
                  Clear Ack                   0x6
                  Status Request              0x9
                  Status Report               0xA
                  Data                        0xD











          Cornish et. al.             expires May 2005                  [Page 11]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          4.  DETAILED MESSAGE TYPES

          4.1.  Call Request

             The QTP header for a Call Request message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |M|0|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN (0)     |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Message Identifier (opt)    |       Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

             Version
                 0x1

             Message Identifier Flag
                 Indicates whether the Message Identifier field exists.

             Message Identifier Ack Flag
                 0

             Priority
                 The message priority, normally zero (0).

             Type
                 0x1 for Call Request

             Message Length
                 The length in bytes of the entire QTP message including header.

             Source LCN
                 A non-zero unique number identifying the logical connection
                 associated with the QTP Session on the host initiating the Call
                 Request message.

             Destination LCN
                 Call Request messages MUST include a destination LCN value of
                 zero (0).  This directs the Call Request message to the Control
                 point on the destination QTP Entity.

                 The Control point in the destination QTP Entity is responsible
                 for assigning an LCN at the destination if and only if the Call
                 Request is accepted and a Call Acknowledgement is returned.




          Cornish et. al.             expires May 2005                  [Page 12]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Message Identifier
                 Use of a Message Identifier is OPTIONAL.  If a Message Identifier
                 is included, the corresponding Call Acknowledgement or Call
                 Reject message returned by the destination QTP Entity MUST
                 include a matching Message Identifier Ack value.

                 If a Message Identifier is not included, the corresponding Call
                 Acknowledgement or Call Reject message MUST NOT include a Message
                 Identifier Ack field.

             Attributes
                 Multiple attributes are REQUIRED within a Call Request message,
                 including sufficient information for transaction connection
                 establishment.

                 Valid Call Request attribute(s) are as described elsewhere in
                 this document.


































          Cornish et. al.             expires May 2005                  [Page 13]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          4.2.  Call Acknowledgment

             The QTP header for a Call Acknowledgment message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |M|A|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Message Identifier (opt)    |  Message Identifier Ack (opt) |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |         Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-

             Version
                 0x1

             Message Identifier Flag
                 Indicates whether the Message Identifier field exists.

             Message Identifier Ack Flag
                 Indicates whether the Message Identifier Ack field exists.

             Priority
                 The message priority, normally zero (0).

             Type
                 0x2 for Call Ack.

             Message Length
                 The length in bytes of the entire QTP message including header.

             Source LCN
                 A returned Call Ack message MUST include a non-zero Source LCN
                 value, which is to be used to identify the QTP Session for the
                 remainder of the life of the QTP Session.

                 This value is assigned upon acceptance of the QTP Session.

             Destination LCN
                 Set to the Source LCN supplied in the originating Call Request
                 message.

             Message Identifier
                 Use of a Message Identifier is OPTIONAL.  If a Message Identifier
                 is included, the receiving QTP Entity MUST respond with a



          Cornish et. al.             expires May 2005                  [Page 14]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


                 matching Message Identifier Ack field in a returned QTP message
                 within the same QTP Session.

             Message Identifier Ack
                 A Message Identifier Ack field MUST be present if the originating
                 Call Request message included a Message Identifier field.

             Attributes
                 Valid Call Ack attribute(s) are as described elsewhere in this
                 document.









































          Cornish et. al.             expires May 2005                  [Page 15]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          4.3.  Call Reject

             The QTP header for a Call Reject message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |0|A|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN  (0)      |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |  Message Identifier Ack (opt) |        Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

             Version
                 0x1

             Message Identifier Flag
                 0.  The Call Reject message MUST NOT contain a Message
                 Identifier, as the QTP Session becomes invalid after the Call
                 Reject is issued.

             Message Identifier Ack Flag
                 Indicates whether the Message Identifier Ack field exists.

             Priority
                 The message priority, normally zero (0).

             Type
                 0x3 for Call Reject

             Message Length
                 The length in bytes of the entire QTP message including header.

             Source LCN
                 A returned Call Reject MUST include a zero (0) Source LCN value.

             Destination LCN
                 Set to the Source LCN supplied in the originating Call Request
                 message.

             Message Identifier Ack
                 A Message Identifier Ack field MUST be included if the
                 corresponding Call Request message included a Message Identifier
                 field.






          Cornish et. al.             expires May 2005                  [Page 16]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Attribute(s)
                 Valid Call Reject attribute(s) are as described elsewhere in this
                 document.

          4.4.  Clear Request

             The QTP header for a Clear Request message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |M|A|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Message Identifier (opt)    |  Message Identifier Ack (opt) |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |         Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-

             Version
                 0x1

             Message Identifier Flag
                 Indicates whether the Message Identifier field exists.

             Message Identifier Ack Flag
                 Indicates whether the Message Identifier Ack field exists.

             Priority
                 The message priority, normally zero (0).

             Type
                 0x5 for Clear Request

             Message Length
                 The length in bytes of the entire QTP message including header.

             Source LCN
                 The number indicating the QTP Session on the QTP Entity
                 originating the Clear Request message.

             Destination LCN
                 The number indicating the LCN on the remote QTP Entity, supplied
                 by the remote QTP Entity as the Source LCN in either the Call
                 Request or Call Acknowledge message.





          Cornish et. al.             expires May 2005                  [Page 17]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Message Identifier
                 Use of a Message Identifier is OPTIONAL.  If a Message Identifier
                 is included, the corresponding Clear Ack message MUST include a
                 matching Message Identifier Ack value.  If a Message Identifier
                 is not included, the corresponding Clear Ack message MUST NOT
                 include a Message Identifier Ack field.

             Message Identifier Ack
                 A Message Identifier Ack field MUST be included if the preceding
                 message received from the remote QTP Entity involving the same
                 QTP Session included a Message Identifier field.

             Attribute(s)
                 Valid Call Reject attribute(s) are as described elsewhere in this
                 document.




































          Cornish et. al.             expires May 2005                  [Page 18]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          4.5.  Clear Acknowledgement

             The QTP header for a Clear Acknowledgement message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |0|A|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |  Message Identifier Ack (opt) |        Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

             Version
                 0x1

             Message Identifier Flag
                 0.  The Clear Ack message MUST NOT contain a Message Identifier,
                 as the QTP Session becomes invalid after the Clear Ack is issued.

             Message Identifier Ack Flag
                 Indicates whether the Message Identifier Ack field exists.

             Priority
                 The message priority, normally zero (0).

             Type
                 0x6 for Clear Ack

             Message Length
                 The length in bytes of the entire QTP message including header.

             Source LCN
                 The number indicating the QTP Session on the QTP Entity
                 originating the Clear Ack message.

             Destination LCN
                 The number indicating the LCN on the remote QTP Entity, supplied
                 by the remote QTP Entity as the Source LCN in either the Call
                 Request or Call Acknowledge message.

             Message Identifier Ack
                 A Message Identifier Ack field MUST be included if the
                 corresponding Clear Request message included a Message Identifier
                 field.





          Cornish et. al.             expires May 2005                  [Page 19]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Attribute(s)
                 Valid Clear Ack attribute(s) are as described elsewhere in this
                 document.


          4.6.  Status Request

             Status Request messages are used to solicit Status Reports, as well
             as to deliver Status and Statistics attributes.  The QTP header for a
             Status Request message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |M|0|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Message Identifier (opt)    |        Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

             Version
                 0x1

             Message Identifier Flag
                 Indicates whether the Message Identifier field exists.

             Message Identifier Ack Flag
                 0

             Priority
                 The message priority, normally zero (0).

             Type
                 0x9 for Status Request.

             Message Length
                 The length in bytes of the entire QTP message including header.

             Source LCN
                 A non-zero number indicating the QTP Session number or zero (0)
                 for the Control point on the originating QTP Entity.

                 A source LCN value of zero (0) indicates that status is being
                 requested by the Control point in the QTP Entity.  A non-zero
                 source LCN value indicates that status is being requested by a
                 specific QTP Session.




          Cornish et. al.             expires May 2005                  [Page 20]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Destination LCN
                 Either zero (0) for the Control point on the destination QTP
                 Entity, or a non-zero number indicating the LCN for an individual
                 QTP Session on the remote QTP Entity.

                 A destination LCN value of zero (0) indicates that global status
                 is being requested from the Control point on the destination QTP
                 Entity.  A destination LCN value which is non-zero indicates that
                 status is being requested for a specific QTP Session.

             Message Identifier
                 Use of a Message Identifier field is OPTIONAL.  If a Message
                 Identifier is included, the corresponding Status Report message
                 MUST include a matching Message Identifier Ack value.  If a
                 Message Identifier is not included, a corresponding Status Report
                 message MUST be returned, but MUST NOT include a Message
                 Identifier Ack field.

             Attribute n
                 Except as specified elsewhere in this document, Status and
                 Statistics attributes delivered in a Status Request have the same
                 meaning as if delivered in a Status Report.

                 Valid Status Request attribute(s) are as described elsewhere in
                 this document.


























          Cornish et. al.             expires May 2005                  [Page 21]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          4.7.  Status Report

             Status Reports MAY be solicited via a Status Request, or MAY be
             unsolicited.  A Status Report MAY be used by a QTP Entity to
             advertise its level of availability.

             The QTP header for a Status Report message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |0|A|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |  Message Identifier Ack (opt) |       Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Version
                 0x1

             Message Identifier Flag
                 0.  The Status Report message MUST NOT contain a Message
                 Identifier.

             Message Identifier Ack Flag
                 Indicates whether the Message Identifier Ack field exists.

             Priority
                 The message priority, normally zero (0).

             Type
                 0xA for Status Report.

             Message Length
                 The length in bytes of the entire QTP message including header.

             Source LCN
                 A non-zero number indicating the QTP Session number or zero (0)
                 for the Control point on the originating QTP Entity.

                 A source LCN value of zero (0) indicates that status is being
                 supplied by the Control point in the QTP Entity which supplies
                 status for the entire QTP Entity.  A non-zero source LCN value
                 indicates that status is being supplied for a specific QTP
                 Session.





          Cornish et. al.             expires May 2005                  [Page 22]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Destination LCN
                 A non-zero number indicating the QTP Session number or zero (0)
                 for the Control point on the destination QTP Entity.

                 A destination LCN value of zero (0) indicates that status is
                 being supplied to the Control point on the destination QTP
                 Entity.  A destination LCN value which is non-zero indicates that
                 status is being supplied to a specific QTP Session.

             Message Identifier Ack
                 A Message Identifier Ack field MUST be included if the
                 corresponding Status Request message included a Message
                 Identifier field.

             Attribute(s)
                 Valid Status Report attribute(s) are as described elsewhere in
                 this document.


































          Cornish et. al.             expires May 2005                  [Page 23]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          4.8.  Data

             The QTP header for a Data message is as follows.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |Version| Rsvd  |M|A|P|0| Type  |        Message Length         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |          Source LCN           |       Destination LCN         |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Message Identifier (opt)    |  Message Identifier Ack (opt) |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |         Attribute(s)...
                +-+-+-+-+-+-+-+-+-+-+-+-+-

             Version
                 0x1

             Message Identifier
                 Use of a Message Identifier field is OPTIONAL.  If a Message
                 Identifier is included, a corresponding Data or Clear Request
                 message MUST include a matching Message Identifier Ack value.

             Message Identifier Ack
                 This is only included if a preceding Call Ack or Data message
                 involving the same QTP Session was received which included a
                 Message Identifier.

             Priority
                 The message priority, normally zero (0).

             Type
                 0xD for Data.

             Source LCN
                 The number indicating the QTP Session on the QTP Entity
                 originating the Data message.

             Destination LCN
                 The number indicating the QTP Session on the QTP Entity to which
                 the Data message is being sent.

             Attribute(s)
                 Valid Data attribute(s) are as described elsewhere in this
                 document.





          Cornish et. al.             expires May 2005                  [Page 24]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.  ATTRIBUTES

             Attributes are used within QTP to pass additional information not
             contained in the QTP message header.

             Attributes MUST NOT be nested.  That is, attributes MUST NOT be put
             within attributes.

             Attributes are divided into two categories.  "Core Attributes"
             perform session establishment and clearing, data transfer, and status
             reporting operations.  Core Attributes are sufficient for transaction
             communication.  Within the set of Core Attributes, some are classed
             as REQUIRED and some classed as OPTIONAL.

             "Vendor Attributes" are provided as a means to extend QTP to address
             implementation specific capabilities included in commercial products.
             Support for Vendor Attributes is OPTIONAL.

          5.1.  Attribute Header

          5.1.1.  Core Attributes

             Each Core Attribute consists of a 16 bit attribute number in the
             range 0x0000 to 0x9FFF, a 16 bit length field (that includes the
             attribute number and length fields), and the attribute value as shown
             below.

             Numeric attribute values are in network byte order.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Core Attribute n            |      Attribute n Length       |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |   Attribute n Value . . . . .
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          5.1.2.  Vendor Attributes

             Each Vendor Attribute consists of a 16 bit attribute number in the
             range 0xA000 to EFFF, a 16 bit length field (including the entire
             attribute header), a 16 bit Vendor Identifier field, and the
             attribute value(s) as specified by the vendor.

             The Vendor Identifier value is assigned and managed by IANA as the
             "SMI Network Management Private Enterprise Codes" available from the
             IANA Protocol Numbers list [4].




          Cornish et. al.             expires May 2005                  [Page 25]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Numeric attribute values are in network byte order.

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |           Attribute n         |      Attribute n Length       |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |            Vendor ID          |  Attribute n Value . . . . .
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


          5.2.  Attribute Classes

             Core Attribute values have been grouped into five (5) classes related
             to the phase of the transaction and other "out-of-band" control
             activities.

             A range of attribute values are available for vendor specific
             extensions.

             The classes include:

             *  Reserved                   (class 0x00)

             *  Session Establishment      (class 0x01)

             *  Data Transfer              (class 0x02)

             *  Session Management         (class 0x03)

             *  Element Status             (class 0x04)

             *  Statistical Information    (class 0x05)

             *  Unassigned                 (class 0x06-0x9F)

             *  Vendor Specific            (class 0xA0-0xEF)

             *  Reserved                   (class 0xF0-0xFF)












          Cornish et. al.             expires May 2005                  [Page 26]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.3.  Attribute List

             For each attribute value, the first 8 bits indicate the Attribute
             Class, and the remaining 8 bits indicate the member of the class.

                 Attribute Name                 Attribute  Class   Member
                                                  Value
                 ------------------------------  -------  -------  -------
                 *Session Establishment
                 Called Party Address            0x0100    0x01     0x00
                 Calling Party Address           0x0101    0x01     0x01
                 Profile                         0x0102    0x01     0x02
                 Speed                           0x0103    0x01     0x03
                 Idle Time-out                   0x0104    0x01     0x04
                 Max Message                     0x0106    0x01     0x06
                 Called Party Subaddr            0x0108    0x01     0x08
                 Calling Party Subaddr           0x0109    0x01     0x09
                 Protocol Identifier             0x010B    0x01     0x0B
                 Cust Group Identifier           0x010C    0x01     0x0C

                 *Data Transfer
                 Data                            0x0200    0x02     0x00
                 Management Info                 0x0201    0x02     0x01
                 Qualified Data                  0x0202    0x02     0x02
                 Data Block                      0x0203    0x02     0x03
                 Call Data                       0x0204    0x02     0x04

                 *Session Management
                 Cause                           0x0300    0x03     0x00
                 Remote Cause                    0x0301    0x03     0x01

                 *Element Status
                 Flow Control                    0x0400    0x04     0x00
                 Station Status                  0x0401    0x04     0x01
                 Ping                            0x0402    0x04     0x02
                 Call State                      0x0403    0x04     0x03

                 *Statistical Information
                 Num Messages Received           0x0500    0x05     0x00
                 Num Messages Transmitted        0x0501    0x05     0x01
                 Num Unacked Messages            0x0502    0x05     0x02
                 Time Since Last Restart         0x0503    0x05     0x03









          Cornish et. al.             expires May 2005                  [Page 27]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.4.  Message Type / Attribute Matrix

             The following matrix indicates the valid attributes which must be,
             may be, or must not be, used and the number of occurrences of each
             attribute permitted for each message type.

             -     Indicates Attribute MUST NOT be used in the corresponding
                   Message Type.

             *     Indicates exactly zero (0) or one (1) instance of this
                   Attribute MAY be used in the corresponding Message Type.

             1     Indicates exactly one (1) instance of this Attribute MUST be
                   used in the corresponding Message Type.

             0+    Indicates zero (0) or more instances of this Attribute MAY be
                   used in the corresponding Message Type.


































          Cornish et. al.             expires May 2005                  [Page 28]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Message Type     Call  Call  Call  Clear Clear Status Status  Data
                               Req   Ack Reject  Req   Ack    Req  Report
             ------------     ----  ----  ----  ----  ----   ----   ----   ----
                              0x01  0x02  0x03  0x05  0x06   0x09   0x0a   0x0D
             ------------     ----  ----  ----  ----  ----   ----   ----   ----
             Attributes:

             0x0100 CalledAddr  *     -     -     -     -      -      -      -
             0x0101 CallingAddr *     -     -     -     -      -      -      -
             0x0102 Profile     *     *     -     -     -      -      -      -
             0x0103 Speed       *     *     -     -     -      -      -      -
             0x0104 IdleTimeout *     *     -     -     -      -      -      -
             0x0106 MaxMsg      *     *     -     -     -      -      -      -
             0x0108 CalledSub   *     -     -     -     -      -      -      -
             0x0109 CallingSub  *     -     -     -     -      -      -      -
             0x010B Protocol ID *     *     -     -     -      -      -      -
             0x010C Cust GID    *     *     -     -     -      -      -      -

             0x0200 Data        *     *     -     *     -      -      -      *
             0x0201 Mgmt Info   *     *     -     *     -      -      -      *
             0x0202 Q Data      *     *     -     *     -      -      -      *
             0x0203 Data Block  -     -     -     -     -      -      -      *
             0x0204 Call Data   *     *     -     *     -      -      -      -

             0x0300 Cause       -     -     1     1     *      -      -      -
             0x0301 Rem Cause   -     -     *     *     *      -      -      -

             0x0400 Flow Cntrl  -     -     -     -     -      *      *      -
             0x0401 Stn Status  -     -     -     -     -      *      *      -
             0x0402 Ping        -     -     -     -     -      *      *      -
             0x0403 Call State  -     -     -     -     -      *      *      -

             0x0500 #MsgRxIF    -     -     -     -     -      *      *      -
             0x0501 #MsgTxIF    -     -     -     -     -      *      *      -
             0x0502 #Unack      -     -     -     -     -      *      *      -
             0x0503 Time        -     -     -     -     -      *      *      -















          Cornish et. al.             expires May 2005                  [Page 29]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.5.  Attribute Definitions

             This section defines the format of each attributes.  The hexadecimal
             value of each attribute is shown in brackets after the attribute
             name.

          5.5.1.  Called Party Address  (0x0100)

             This attribute specifies the access network address (i.e. telephone
             number) supplied by the call originator.

             For transaction terminal initiated calls, this is the number dialed
             to connect to the transaction processing host.

             For calls originated by the transaction processor, this is the number
             dialed to reach a specific transaction terminal.

             The attribute value is an ASCII string of up to 40 characters.  The
             default address family is E.164 [5].

             Support for this attribute is REQUIRED.

             The field may be used for other address families (such as X.25 or
             Frame Relay network addressing) with pre-arrangement by sender and
             receiver.  Per-call configuration of the address family is for
             further study.


          5.5.2.  Calling Party Address  (0x0101)

             This attribute specifies the Calling Line Identity, indicating the
             access network address of the call originator.

             For transaction terminal initiated calls, this is the telephone
             number associated with the terminal.

             For calls originated by the transaction processor, this is the
             telephone number associated with the service under the control of the
             transaction processor.

             The attribute value is an ASCII string of up to 40 characters.  The
             default address family is E.164.

             Support for this attribute is REQUIRED.

             The field may be used for other address families (such as X.25 or
             Frame Relay network addressing) with pre-arrangement by sender and
             receiver.  Per-call configuration of the address family is for



          Cornish et. al.             expires May 2005                  [Page 30]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             further study.


          5.5.3.  Profile (0x0102)

             This attribute enables access providers to classify user connections,
             such as indicating the local modem configuration profile to be used
             in the connection.  Its value is an ASCII string of up to 40
             characters.

             Support for this attribute is OPTIONAL.

             The definition of standard strings associated with common device
             profiles is for further study.

          5.5.4.  Speed (0x0103)

             This attribute specifies the speed of the connection at the access
             point.  This value may be used by transaction processing systems to
             adjust timeouts or pace data messages.

             Its value is a ASCII string of up to 10 characters indicating the
             speed in bits per second.

             The default value for this attribute is "2400".

             Support for this attribute is OPTIONAL.

          5.5.5.  Idle Time-out Delay (0x0104)

             This attribute specifies the time for which the QTP Session will be
             maintained in the absence of any data traffic.  If it is exceeded,
             the connection MAY be cleared by either end of the QTP Session.

             The value is a 16 bit number indicating the idle timer delay in
             seconds.  A zero value disables the timer.

             If not specified, idle QTP Sessions MAY be disconnected by either end
             of a QTP Session according to local policies.

             Support for this attribute is OPTIONAL.

          5.5.6.  Maximum Message Size (0x0106)

             This attribute specifies the maximum QTP message size supported by
             the sender of the attribute.

             The value is a 16 bit number indicating the message size in octets.



          Cornish et. al.             expires May 2005                  [Page 31]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             The message size includes the QTP message header size and the sum of
             the sizes of all the message attributes.

             Support for this attribute is OPTIONAL.

          5.5.7.  Called Party Subaddress (0x0108)

             This attribute specifies the access network subaddress for the
             destination of a connection.  For the default address family the
             attribute specifies an ISDN subaddress.  Use of other address
             families is for further study.

             The attribute value is an ASCII string of up to 20 characters.

             Support for this attribute is OPTIONAL.

          5.5.8.  Calling Party Subaddress (0x0109)

             This attribute specifies the access network subaddress for the
             initiator of a connection.  For the default address family the
             attribute specifies an ISDN subaddress.

             The attribute value is an ASCII string up to 20 characters.

             Support for this attribute is OPTIONAL.

          5.5.9.  Protocol Identifier (0x010B)

             This attribute identifies the protocol of the higher-level
             application data supplied by the sender.

             The value is an 8 bit number and is obtained from the IANA
             administered Protocol Number list [4].

             If not specified, the contents of the Data Attributes are unknown to
             the QTP Entity, and data transparency MUST be maintained.

             Support for this attribute is OPTIONAL.













          Cornish et. al.             expires May 2005                  [Page 32]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.5.10.  Customer Group Identifier (0x010C)

             This attribute specifies a Customer Group with which a QTP Session is
             to be associated.  Selection and assignment of Customer Groups are
             the responsibility of higher-level management applications.

             The attribute value is an ASCII string of up to 20 characters.

             If not specified, a QTP Session is not associated with a Customer
             Group.

             Support for this attribute is OPTIONAL.

          5.5.11.  Data (0x0200)

             This attribute identifies transaction data.

             The attribute value consists of a string of octets of arbitrary
             length.

             Support for this attribute is REQUIRED.

          5.5.12.  Management Information  (0x0201)

             This attribute provides the ability to transfer unformatted control
             and response data between QTP Entities out-of-band from the
             transaction data.

             The attribute value is a string of octets of arbitrary length.

             Support for this attribute is OPTIONAL.

          5.5.13.  Qualified Data (0x0202)

             This attribute identifies that the data is to be used for session
             management (e.g. X.29 control messages, QLLC XID's, etc.).

             The attribute value is a string of octets of arbitrary length.

             Support for this attribute is OPTIONAL.











          Cornish et. al.             expires May 2005                  [Page 33]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.5.14.  Data Block (0x0203)

             This attribute identifies a beginning, intermediate or final data
             block for segmented data transfers where the data object exceeds the
             maximum size of a single Data Attribute.

             The attribute value consists of a block header followed by segmented
             data.  The contents of the data block header are as follows:

                 0                   1                   2                   3
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |S|F|          Reserved         |        Sequence Number        |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |  Block Data ...
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


             Start Data Block Flag (bit 0)

                  Set to 1 only on the first data message in a block.

             Final Data Block Flag (bit 1)

                  Set to 1 only on the final data message in block.

             Reserved (bits 2 to 15)

                  Set to 0.

             Sequence Number (bits 16 to 31)

                  A sequence number for each data block.  The starting block in
                  the sequence MUST have a sequence number of zero (0), and
                  increment by one (1) for each subsequent Data Block Attribute
                  until the final Data Block is sent.  The sequence number is
                  included to enable the receiver to re-assemble the original data
                  in the correct order.

             Block Data (bits 32 ...)

                  The segmented data message, consisting of a string of octets of
                  arbitrary length.

                  Support for this attribute is OPTIONAL.






          Cornish et. al.             expires May 2005                  [Page 34]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.5.15.  Call Data (0x0204)

             This attribute contains unformatted Call Data that is supplied by a
             calling or called entity during session establishment.

             The attribute value is a string of octets of arbitrary length.

             Support for this attribute is OPTIONAL.

          5.5.16.  Cause  (0x0300)

             This attribute specifies a QTP Session release cause.

             The format of the Cause Attribute Value field is as follows:

             Cause Value    8 bits

                Broken down into Class and Member subfields as follows
                3 Bits (0-2) : Class
                5 Bits (3-7) : Member

             Diagnostic     8 bits

                This is an optional supplemental field that may be supplied.  The
                Diagnostic field MUST be present when an Information field is
                supplied.

                Use of this field is for further study.

             Information    An ASCII string of up to 40 characters.

                This optional field permits additional information to be supplied
                regarding the cause of a call clear or call reject.

          5.5.16.1.  Cause Classes

             The following cause classes are used to separate causes.

             Protocol Error (%000)
                The cause class "Protocol Error" is used for situations where a
                message format is invalid, a message field is invalid, or an
                attribute is invalid.

             Procedure Error (%001)
                The cause class "Procedure Error" is used in situations in which
                there is an inconsistency between messages, or between fields
                within a message.




          Cornish et. al.             expires May 2005                  [Page 35]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Invalid Message (%010)
                The cause class "Invalid Message" is used when there are syntax
                errors within individual attributes, or when a required attribute
                is missing.

             Network (%011)
                The cause class "Network" is used if a network destination is not
                reachable.

             Resource (%100)
                The cause class "Resource" is used when a required communications
                system resource is not available.

             User (%101)
                The cause class "User" is used in situations where the higher-
                layer application disconnects or refuses to accept an incoming
                connection, or a management entity is disabling call completion.

             Reserved (%110 and %111)

          5.5.16.2.  Cause Values

             The following table contains the list of valid Cause Values per
             Class.



























          Cornish et. al.             expires May 2005                  [Page 36]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


                 Class   Member                                Value
                 -----   ------------------------------        -----
                 %000 Protocol Error
                         %00001  Unsupported Version           0x01
                         %00010  Invalid Use Of Flag           0x02
                         %00011  Invalid Message Type          0x03
                         %00100  Invalid Message Length        0x04
                         %00101  Invalid Source LCN            0x05
                         %00110  Invalid Dest LCN              0x06
                         %00111  Invalid Attribute             0x07
                         %01000  Invalid Attribute Length      0x08

                 %001 Procedure Error
                         %00001  Invalid LCN Pair              0x21
                         %00010  Invalid Attribute Usage       0x22
                         %00011  Time-out                      0x23
                         %00100  Unsupported Attribute         0x24

                 %010 Invalid Message
                         %00001  Bad Calling Party Number      0x41
                         %00010  Bad Called Party Number       0x42
                         %00011  Bad Profile                   0x43
                         %00100  Bad Speed                     0x44
                         %00101  Missing Attribute             0x45

                 %011 Network
                         %00001  Number Busy                   0x61
                         %00010  No Network User Responding    0x62
                         %00011  Destination Unreachable       0x63
                         %00100  Synchronization Error         0x64
                         %00101  Network Congestion            0x65

                 %100 Resource
                         %00001  No Channel Available          0x81
                         %00010  SW Resources Unavailable      0x82
                         %00011  Network Resource Unavailable  0x83

                 %101 User
                         %00001  Normal Clearing               0xA1
                         %00010  Maximum Packet Size Exceeded  0xA2
                         %00011  Flooding                      0xA3
                         %00100  Out Of Order                  0xA4
                         %00101  Invalid Response              0xA5
                         %00110  User Not Responding           0xA6

                 Support for the Cause attribute is REQUIRED.





          Cornish et. al.             expires May 2005                  [Page 37]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.5.17.  Remote Cause  (0x0301)

             This attribute contains a release cause supplied by the remote device
             or network.  The Remote Cause Attribute is independent of the Cause
             Attribute generated by the QTP Entity.

             This attribute would be used to supply the Q.931 release cause
             supplied by an ISDN access network.

             The value is a string of octets of arbitrary length.

             Support for this attribute is OPTIONAL.

          5.5.18.  Flow Control (0x0400)

             This attribute is a global state value which indicates the ability of
             a QTP Entity to service further transactions with a remote QTP
             Entity.

             The attribute value is an 8 bit number indicating:

                 Value   Transaction Call State
                 -----   ----------------------
                 0x01    Available(REQUIRED)
                 0x02    Partially Congested(OPTIONAL)
                 0x03    Congested(OPTIONAL)
                 0x04    Shutdown(REQUIRED)

             A Flow Control state of "Available" indicates a QTP Entity is
             operational, and able to accept new QTP Sessions.

             A Flow Control state of "Partially Congested" indicates a QTP Entity
             is nearing capacity, but remains able to accept new QTP Sessions.

             A Flow Control state of "Congested" indicates a QTP Entity is at
             capacity, and is unable to create new QTP Sessions.  QTP messages
             associated with already-connected QTP sessions will continue without
             interruption.

             A Flow Control state of "Shutdown" indicates a QTP Entity has
             restarted or shutdown.  In this state, a QTP Entity MUST NOT accept
             new QTP Sessions, and QTP Sessions in progress prior to entering
             "Shutdown" state must be immediately terminated.

             Support for the attribute and "Available" and "Shutdown" states is
             REQUIRED.  Support for the "Partially Congested" and "Congested"
             states is OPTIONAL.




          Cornish et. al.             expires May 2005                  [Page 38]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          5.5.19.  Station Status (0x0401)

             This attribute indicates the Primary or Secondary role of the sending
             QTP Entity with respect to the receiving QTP Entity.  A QTP Entity
             can advertise itself to another QTP Entity as either a primary route
             choice, or a secondary ("hot standby") alternative.  In this way,
             standby hosts are available to process transactions during situations
             of overload or host failures.

             When there are multiple QTP Entities with which QTP Sessions may be
             connected, where one or more QTP Entities are Primary and one or more
             QTP Entities are Secondary, the Primary QTP Entities SHOULD be used
             as the first choice in route selection.

             If all Primary QTP Entities become unavailable, the Secondary QTP
             Entities MAY be used.

             The attribute value is an 8 bit number with one (1) indicating
             Primary and two (2) indicating Secondary.

             Support for the Station Status Attribute and Primary value is
             REQUIRED.  Support for the Secondary value is OPTIONAL.

          5.5.20.  Ping (0x0402)

             This attribute is used to identify if a remote QTP Entity exists and
             to determine network timing.

             When present in a Status Request message, it represents an echo
             request.  It MUST be responded to in a QTP Status Report regardless
             of the ability of the receiving QTP Entity to accept QTP Sessions.

             When present in a Status Report message, it represents an echo
             response.  It MUST contain the value supplied in the preceding Status
             Request.

             This attribute MUST NOT be contained in an unsolicited Status Report.

             The attribute value is a string of octets of arbitrary length.

             Support for this attribute is OPTIONAL.

          5.5.21.  Call State  (0x0403)

             This attribute is used to identify the local state of a QTP Session.






          Cornish et. al.             expires May 2005                  [Page 39]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             The attribute value is an 8 bit number indicating:

                 Value   Transaction Call State
                 -----   ----------------------
                 0x00    Disconnected
                 0x01    QTP Call received
                 0x02    QTP Call sent
                 0x03    QTP Clear received
                 0x04    QTP Clear sent
                 0x05    QTP Connected

             Support for this attribute is OPTIONAL.

          5.5.22.  Number Of Messages Received on an Interface  (0x0500)

             This attribute is used to indicate the number of QTP messages the QTP
             Entity has received.  The value of this attribute is a 32 bit number.

             Support for this attribute is OPTIONAL.

          5.5.23.  Number Of Messages Transmitted on an Interface  (0x0501)

             This attribute is used to indicate the number of QTP messages the QTP
             Entity has sent.  The value of this attribute is a 32 bit number.

             Support for this attribute is OPTIONAL.

          5.5.24.  Number Of Unacknowledged Messages (on the system)  (0x0502)

             This attribute is a global counter on a QTP Entity used to indicate
             the number of unacknowledged QTP messages identified by the system.
             The value of this attribute is a 32 bit number.

             Support for this attribute is OPTIONAL.

          5.5.25.  Time Since Last Restart  (0x0503)

             This attribute specifies the period of time over which the statistics
             have been collected.  The value of the attribute is a 32 bit number
             indicating the time since last restart in seconds.

             Support for this attribute is OPTIONAL.









          Cornish et. al.             expires May 2005                  [Page 40]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          6.  PROTOCOL OPERATION

             QTP is a symmetrical protocol.  QTP Sessions may be initiated by
             either QTP Entity, hence transaction connections can be originated by
             either transaction terminals or transaction processing applications.

             QTP may be used over either unreliable transports or over reliable
             transports.

             Unreliable transports may be acceptable for transaction data, but are
             not sufficient for passing call establishment and other control
             information.  For this reason, session establishment and status
             messages are defined in command / response pairs.

             The following sequences show protocol operation in some of the more
             common environments.  This does not preclude the use of the protocol
             in other environments.

          6.1.  Protocol Startup

             There are two basic startup methods a QTP Entity can employ.  The
             selection will depend primarily on the nature of the underlying
             transport service.

          6.1.1.  Quick Startup

             In Quick Startup mode, a QTP Entity starts in the "Available" Flow
             Control state.

             As soon as a transport layer is available, a QTP Entity may initiate
             or accept QTP Sessions.

             In some cases it may be advisable to solicit the status of the remote
             QTP Entity prior to initiating QTP Sessions, however it is not a
             requirement for startup.

             Quick Startup Scenario

                [QTP Entity A]                [QTP Entity B]

                <QTP Entity Startup>          <QTP Entity Startup>
                <or Transport layer>          <or Transport layer>
                <connection rcvd   >          <connection rcvd   >

                <Ready for   >                <Ready for   >
                <QTP Sessions>                <QTP Sessions>

             This method of startup is acceptable when the transport service



          Cornish et. al.             expires May 2005                  [Page 41]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             provides reliable message delivery.

          6.1.2.  Safe Startup

             In Safe Startup mode, a QTP Entity starts in a "Shutdown" Flow
             Control state.

             As soon as a transport layer is available, it periodically issues
             Status Requests with a Message Identifier, and containing the Flow
             Control Attribute with a value of "Shutdown".

             Upon receipt of the acknowledging Status Report, it periodically
             issues Status Requests with a Message Identifier, and containing the
             Flow Control Attribute with a value of "Available".

             Upon receipt of the acknowledging Status Report, it is completed
             startup and may proceed to establish or accept QTP Sessions.

             Safe Startup using Status Reports

                [QTP Entity A]                [QTP Entity B]

                <QTP Entity Startup>
                <or Transport layer>
                <failure detected  >

                              Status Request
                              M=1, MI=x
                              FlowCtrl=Shutdown
                              ---------------->
                                              <If already running   >
                                              <QTP Entity restarts  >
                                              <clearing QTP Sessions>

                              Status Report
                              A=1, MIA=x
                              <----------------

                              Status Request
                              M=1, MI=y
                              FlowCtrl=Available
                              ---------------->

                              Status Report
                              A=1, MIA=y
                              <----------------
                <Ready for   >
                <QTP Sessions>



          Cornish et. al.             expires May 2005                  [Page 42]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             This method of startup is recommended when the transport service
             provides unreliable message delivery.

          6.2.  Call Request (incoming)

             On receiving an incoming CALL SETUP from a dial-up line or other
             access network, the QTP Entity on the Network Access Server host
             initiates a QTP Call Request to the QTP Entity on the appropriate
             Server.

             The QTP Entity on the Server has the option of accepting the call
             with a Call Ack or rejecting it with a Call Reject.

             Call Acceptance

                [Terminal]        [Access Device]        [Server]

                CALL SETUP                      Call Request
                ------------------>             ---------------->
                                                Call Ack
                                                <----------------

             Call Rejection

                [Terminal]        [Access Device]        [Server]

                CALL SETUP                      Call Request
                ------------------>             ---------------->
                                                Call Reject
                                                <----------------

          6.3.  Call Request (outgoing)

             QTP is a bi-directional protocol.  As such, the Transaction
             Processing host may also set up an outgoing call to a terminal
             through a dial-up line or other access network.  As in the incoming
             case, this Call Request may be accepted or rejected.  The Call
             Rejection will contain the reason why the call was not accepted.

             Call Acceptance

                [Terminal]        [Access Device]        [Server]

                CALL SETUP                      Call Request
                <------------------             <----------------
                                                Call Ack
                                                ---------------->




          Cornish et. al.             expires May 2005                  [Page 43]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Call Rejection

                [Terminal]        [Access Device]        [Server]

                CALL SETUP                      Call Request
                <------------------             <----------------
                 (busy, reorder,                Call Reject
                  no answer ...)                ---------------->


          6.4.  Call Clearing (incoming)

             When the access network connection with the terminal is disconnected,
             or if the Network Access Server chooses to terminate the connection,
             a Clear Request will be generated from the Access Device indicating
             the call is cleared and the reason for the clear.  The Clear Request
             message may contain transaction data.

                [Terminal]        [Access Device]        [Server]

                                                Clear Request
                CALL CLEAR                      Cause=Normal Clr
                ------------------>             ---------------->
                                                Clear Ack
                                                <----------------

          6.5.  Call Clearing (outgoing)

             A connection can be cleared at any time although normally this is
             only done if a transaction is complete.  In the case of a Server
             clearing the call the reason for clearing the call will be contained
             in the Clear Request message.  The Clear Request message may contain
             transaction data.

                [Terminal]        [Access Device]        [Server]

                                                Clear Request
                CALL CLEAR                      Cause=Normal Clr
                <--------------------           <----------------
                                                Clear Ack
                                                ---------------->

          6.6.  Status Request

             Status messages may be requested by either QTP Entity involved in a
             QTP connection.





          Cornish et. al.             expires May 2005                  [Page 44]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


                [Terminal]        [Access Device]        [Server]

                                                Status Request
                                                <----------------
                                                Status Report
                                                ---------------->

          6.7.  Status Reporting

             Status Reports may be initiated by either QTP Entity in response to
             Status Requests, or without being solicited by a Status Request.
             These may be used as a "keep-alive" indication.

                [Terminal]        [Access Device]        [Server]

                                                Status Report
                                                <----------------

          6.7.1.  Status Reporting on Flow Control State Change

             When the Flow Control state changes in a QTP Entity, is SHOULD
             immediately notify the remote QTP Entity via a Status Report
             including the Flow Control Attribute.

             Alternatively, it MAY send a Status Request which includes a Message
             Identifier and the Flow Control attribute.  This approach is
             recommended when the transport layer does not provide reliable
             message delivery.

          6.8.  Data Transfer

             Data messages may be issued with or without a Message Identifier.  If
             absent, data messages are not acknowledged in any way.

             If present, the receiver is required to respond with an
             acknowledgement in the form of a Message Identifier Ack.

             The acknowledgements may be used for two purposes.  When the
             underlying transport service is not reliable, it provides feedback to
             the sender that a data message was successfully delivered.  Secondly,
             the receiver can withhold acknowledgements for the purpose of
             throttling a sender.

             Using data message acknowledgements is useful if the data ingress
             rate can exceed the egress rate at the data receiver, and the sender
             has the ability to source throttle the data originator.

             The following sequence indicates the operation of data messages which



          Cornish et. al.             expires May 2005                  [Page 45]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             do not require acknowledgement.

             Incoming Data

                [Terminal]        [Access Device]        [Server]

                DATA                            Data (M=0)
                ------------------>             ---------------->

             Outgoing Data

                [Terminal]        [Access Device]        [Server]

                DATA                            Data (M=0)
                <--------------------           <----------------

             The following sequences indicates the operation of data messages
             which include the Message Identifier, and therefore require
             acknowledgement.

             For the Incoming Data example, Data messages from the QTP Entity on
             the Access Device includes the Message Identifier, and the Server
             responds with Message Identifier Acknowledgements.

             In the Outgoing Data example, Data messages from the QTP Entity in
             the Server requests acknowledgements, and the Access Device responds
             with Message Identifier Acknowledgements.

             Incoming Data

                [Terminal]        [Access Device]        [Server]

                DATA A, DATA B                  Data A (M=1,MI=w)
                ------------------>             ---------------->
                DATA a                          Data a (A=1,MIA=w)
                <------------------             <----------------
                                                Data B (M=1,MI=x)
                                                ---------------->
                DATA b                          Data b (A=1,MIA=x)
                <------------------             <----------------











          Cornish et. al.             expires May 2005                  [Page 46]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             Outgoing Data

                [Terminal]        [Access Device]        [Server]

                DATA A                          Data A (M=1, MI=y)
                <--------------------           <----------------
                DATA a                          Data a (A=1,MIA=y)
                -------------------->           ---------------->
                DATA B                          Data B (M=1, MI=z)
                <--------------------           <----------------
                DATA b                          Data b (A=1,MIA=z)
                -------------------->           ---------------->

          6.9.  Exception Handling

          6.9.1.  No Response to Call Request

             If an initiator does not receive a response to a Call Request message
             within a timeout period, it MUST re-send the Call Request.  The
             recommended value for the timeout is two (2) seconds.  If the second
             attempt is unsuccessful, the higher-layer application should be
             notified of a connection request failure.

          6.9.2.  No Response to Clear Request

             The originator of a Clear Request Message MAY enter a "Clear Ack
             Pending" state awaiting a Clear Ack message.

             In the event that the Clear or Clear Ack is lost, the QTP Entity
             originating the Clear Request message MUST resend the Clear Request
             message and release all transaction resources associated with that
             QTP Session.

          6.9.3.  No Response to Data Message requiring Acknowledgement

             If an initiator does not receive an acknowledgement to a Data message
             requiring acknowledgement within a timeout period, the initiator MUST
             resend the original message.

             If the second message is also not acknowledged, the sender must clear
             the call and release all QTP Session resources.

          6.9.4.  No Response to Status Request

             If an initiator does not receive a response to a Status Request
             message within a timeout period, it MAY re-send the Status Request.
             This may be repeated indefinitely.




          Cornish et. al.             expires May 2005                  [Page 47]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             If a QTP Entity fails to receive one or more Status Reports in
             response to a Status Requests, it MAY declare the transport
             connection to be inoperative.

             In this event, a QTP Entity MUST terminate all QTP Sessions and
             attempt to restart.

          6.9.5.  Remote QTP Entity Shutdown or Restart

             If a QTP Entity receives a QTP Status Report in which the Flow
             Control Attribute is "Shutdown" all QTP Sessions involving the
             Shutdown QTP Entity MUST be terminated.

          7.  TRANSPORT

             QTP may operate over a connectionless or connection-oriented
             transport layer.

          7.1.  QTP over UDP

             The following section addresses the operation of QTP over UDP [6]
             transport.

             UDP is preferable to TCP for short duration transactions as it does
             not include provisions for reliable message delivery.  This is well
             explained in Section 2.3 the RADIUS specification [7]


          7.1.1.  Initialization

             Since UDP is connectionless and unreliable, the Safe Startup mode
             MUST be used.


          7.1.2.  QTP Message Transfer and Message Size Restriction

             One or more QTP messages MAY be encapsulated into a single UDP
             datagram.  However, a QTP message MUST NOT be split over a UDP
             datagram boundary.

             The upper size limit of a QTP message carried over UDP is therefore
             restricted by the maximum UDP message size.

             Since this limit varies in different UDP drivers, implementions
             SHOULD allow the upper size limit to be restricted as a configuration
             option.

             A conservative value for the maximum QTP message size which should be



          Cornish et. al.             expires May 2005                  [Page 48]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             supported by any driver and network is 512 bytes.

             If the end-to-end transaction application layer deals with unreliable
             message delivery, data messages MAY be sent without requiring QTP
             acknowledgements.

             If the application layer expects reliable message delivery, the QTP
             Message Identifier flag MUST be set for all Data messages, which
             requires a corresponding Message Identifier Acknowledgement for each
             Data message.

          7.1.3.  Well Known UDP Port Number for QTP

             Source Port  2935 [2]
                          Or other port number selected by the sender.

             Destination Port
                          2935 [2]
                          Or other UDP port number pre-configured and agreed upon
                          between the sender and receiver.

          7.2.  QTP over TCP

             The use of QTP over TCP [8] transport is for further study.


          8.  SECURITY CONSIDERATIONS

             The QTP protocol is intended to connect transaction processing
             systems supplied by different vendors through an open interface.  In
             many cases, at least one of the QTP Entities will be a transaction
             processing host, which requires physical and logical isolation from
             untrusted network entities.  The QTP protocol is intended for use in
             the associated secured financial transaction networks.

             Use of QTP in public or unsecured network environments without
             careful security precautions is not recommended or expected due to
             the following risks:

             *  Inbound communication requests are serviced without authenticating
                the message source.  This potentially permits any device with
                network access to emulate a transaction network access server or a
                transaction processing host.

             *  Potentially sensitive transaction call information is sent in
                clear text which could be easily monitored and recorded.  This
                would include telephone numbers for transaction terminals and
                transaction processing hosts.



          Cornish et. al.             expires May 2005                  [Page 49]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             *  Transaction messages are sent in the form supplied by terminals,
                which are not always in encrypted form.  This may expose user's
                credit card numbers, bank account numbers and other sensitive
                financial information;

             Use of QTP is not precluded from use in other applications which may
             require transport through public or other untrusted networks.

             Securing QTP requires that the underlying transport make available
             encryption, integrity and authentication services for all QTP
             traffic.  This secure transport operates on the entire QTP packet and
             is functionally independent of QTP and the transaction data being
             carried by QTP.  Protecting the QTP packet stream via a secure
             transport does, in turn, also protect the transaction data within the
             QTP packets.

             The selection of a secure transport service is for further study.


          9.  REFERENCES

               [1]  Bradner, S., "The Internet Standards Process -- Revision 3",
                    BCP 9, RFC 2026, Harvard University, October 1996.
               [2]  IANA, "Port Numbers", http://www.iana.org/numbers.html
               [3]  Bradner, S., "Key words for use in RFCs to Indicate
                    Requirement Levels", BCP 14, RFC 2119, Harvard University,
                    March 1997.
               [4]  IANA, "Protocol Numbers", http://www.iana.org/numbers.html
               [5]  ITU-T, E.164, "The International Public Telecommunication
                    Numbering Plan", May 1997.
               [6]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,
                    USC/Information Sciences Institute, August 1980.
               [7]  Rigney, et. al., "Remote Authentication Dial In User
                    Service (RADIUS)", RFC 2138, Livingston, April 1997.
               [8]  Postel, J., "Transmission Control Protocol", STD 7, RFC 793
















          Cornish et. al.             expires May 2005                  [Page 50]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


          10.  AUTHOR'S ADDRESSES

                Allan Cornish
                INETCO Systems Limited
                201-3773 Still Creek Ave.
                Burnaby, B.C., V5C 4E2
                Canada
                Phone:    +1 604-451-1567
                Fax:      +1 604-451-1565
                Email:    allan_cornish@inetco.com

                Michael Cox
                Alcatel Australia Pty. Ltd.
                280 Botany Rd.
                Alexandria, NSW, 2015
                Australia
                Phone:    +61 2-9699-0044
                Fax:      +61 2-9690-5247
                Email:    Michael.Cox@alcatel.com.au

                Robert Neill
                INETCO Systems Limited
                201-3773 Still Creek Ave.
                Burnaby, B.C., V5C 4E2
                Canada
                Phone:    +1 604-451-1567
                Fax:      +1 604-451-1565
                Email:    robert_neill@inetco.com

                Ian Palmer
                Lucent Technologies
                79 Victoria Parade,
                Collingwood, Victoria
                Australia. 3066.
                Phone:    +61 3 8413 9022
                Fax:      +61 3 8413 9000
                Email:    ipalmer@lucent.com

                Angus Telfer
                INETCO Systems Limited
                201-3773 Still Creek Ave.
                Burnaby, B.C., V5C 4E2
                Canada
                Phone:    +1 604-451-1567
                Fax:      +1 604-451-1565
                Email:    angus_telfer@inetco.com





          Cornish et. al.             expires May 2005                  [Page 51]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


                Cliff Wignell
                CoSine Communications
                Level 50, 120 Collins Street,
                Melbourne, Victoria
                Australia, 3000.
                Phone:    +61 3 9225 5288
                Fax:      +61 3 9225 5172
                Email:    cwignell@cosinecom.com

                Cameron Young
                19111 - 117A Ave.
                Pitt Meadows, B.C. V3Y 2R3
                Canada
                Phone:    +1 604-465-9100
                Fax:      +1 604-465-9149
                Email:    cn_young@attcanada.ca


          11.  FULL COPYRIGHT STATEMENT

             Copyright (C) The Internet Society 2004. This document is subject to
             the rights, licenses and restrictions contained in BCP 78, and except
             as set forth therein, the authors retain all their rights.

             This document and the information contained herein are provided on an
             "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
             OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
             ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
             INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
             INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
             WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


          12.  INTELLECTUAL PROPERTY

             The IETF takes no position regarding the validity or scope of any
             Intellectual Property Rights or other rights that might be claimed t
             pertain to the implementation or use of the technology described i
             this document or the extent to which any license under such right
             might or might not be available; nor does it represent that it ha
             made any independent effort to identify any such rights Information
             on the procedures with respect to rights in RFC document can be found
             in BCP 78 and BCP 79.

             Copies of IPR disclosures made to the IETF Secretariat and an
             assurances of licenses to be made available or the result of an
             attempt made to obtain a general licens or permission for the use of
             such proprietary rights by implementer or users of this specification



          Cornish et. al.             expires May 2005                  [Page 52]

          INTERNET DRAFT      Quick Transaction Protocol (QTP)        October 2002


             can be obtained from the IETF on-lin IPR repository at
             http://www.ietf.org/ipr.

             The IETF invites any interested party to bring to its attention an
             copyrights, patents or patent applications, or other proprietar
             rights that may cover technology that may be required to implemen
             this standard.  Please address the information to the IETF a ietf-
             ipr@ietf.org











































          Cornish et. al.             expires May 2005                  [Page 53]