Internet-Draft                                        Alexander Bogdanov
draft-bogdanov-ehtp-00.txt                                     July 2002
Expires: January 2003


                     End-by-Hop Transmission Protocol

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026 [1].

   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

   End-by-Hop Transmission Protocol (EHTP) is the connection-oriented
   transport service for the reliable or unreliable delivery of data
   packets with possible violation of a sequence.  It has the own
   address space compatible with Unified Memory Space Protocol (UMSP,
   RFC3018 [5]).  EHTP includes the gateway protocol, which supports
   labels and dynamic resources deallocating.  Networks with non-
   overlapping or incompatible addresses space may be united at EHTP
   layer with end-to-end interaction and with preservation of a
   transparency.

Conventions used in this document

   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 [2].

   The options names and the headers fields identifiers written by the
   letters in upper case.  At that, the words in the options names are
   divided by a hyphen, and in the fields identifiers by the underlining
   symbol.

Bogdanov                  Expires: January 2003                 [Page 1]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



Table of contents

1 Introduction........................................................3
2 Terminology.........................................................4
3 Addressing..........................................................5
  3.1 Transport Addresses.............................................5
  3.2 Transport Address Formats.......................................6
   3.2.1 Immediate IP Addresses.......................................6
   3.2.2 Extended IPv4 addresses......................................7
   3.2.3 Telephone number.............................................8
   3.2.4 Additional Length Format.....................................8
     3.2.4.1 Character Address........................................9
  3.3 Character Presentation of the Transport Address.................9
4 Format of EHTP Packet..............................................10
  4.1 General Format of Packet.......................................10
  4.2 Basic Header...................................................11
  4.3 The Addresses Header...........................................13
  4.4 Options........................................................15
  4.5 Data...........................................................16
  4.6 Checksum.......................................................16
5 The Endpoints Protocol.............................................17
  5.1 Connections control............................................17
   5.1.1 Primary Connection Establishment............................17
     5.1.1.1 INIT, INIT-ACK..........................................19
     5.1.1.2 CONNECT, CONNECT-ACK....................................21
     5.1.1.3 Identifiers Exchanging Scheme...........................24
   5.1.2 Secondary Connection Establishment..........................25
   5.1.3 0 - connection..............................................27
   5.1.4 Receiving Window Restriction................................29
   5.1.5 Security Parameters Index Changing..........................30
   5.1.6 Connection Termination......................................31
   5.1.7 Termination Error Codes.....................................32
  5.2 User Data Transfer.............................................32
   5.2.1 The Packet of Cumulative Data Acknowledgement...............33
   5.2.2 CUM-ACK.....................................................34
   5.2.3 GAP-ACK.....................................................34
  5.3 Congestion Control.............................................35
6 The Gateway Protocol...............................................37
  6.1 Gateway Options................................................38
   6.1.1 GATEWAY-HEADER..............................................38
   6.1.2 LABEL-HEADER................................................40
   6.1.3 GENERAL-LABEL...............................................41
   6.1.4 LABEL-OPTION................................................41
   6.1.5 COOKIE-GATEWAY..............................................42
  6.2 Connections Control through Gateways...........................43
   6.2.1 Connection Establishment....................................43
   6.2.2 Data Transfer...............................................46
   6.2.3 Reconnection................................................47


Bogdanov                  Expires: January 2003                 [Page 2]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


     6.2.3.1 REINIT, REINIT-ACK......................................48
     6.2.3.2 RECONNECT, RECONNECT-ACK................................49
     6.2.3.3 2-way Handshake.........................................50
     6.2.3.4 4-way Handshake.........................................51
   6.2.4 Connections Termination through Gateway.....................52
  6.3 Use of symbolical addresses....................................53
  6.4 DISCARDED-PACKET...............................................53
  6.5 NEW-PMTU.......................................................55
  6.6 GATEWAY-ERROR..................................................56
  6.7 Gateway Error Codes............................................57
  6.8 Activity Control...............................................57
7 Security Consideration.............................................59
8 References.........................................................60
9 Author's Address...................................................61
10  Full Copyright Statement.........................................62

1  Introduction

   EHTP is the connections-oriented transport service for reliable or
   unreliable delivery of data packets with possible violation of a
   sequence.  It uses the service of unreliable datagram delivery at the
   lower layer.  EHTP is oriented for working with Unified Memory Space
   Protocol [5] at the upper layer.  Nevertheless, EHTP is the universal
   protocol, with a condition, that the upper layer provides
   packetization.

   EHTP has the own address space, defined over addresses space of the
   network layer.  It is stipulated the protocol of gateway.  The
   endpoint may be connected immediately to global IP network or to work
   through a gateway.  The protocol of EHTP gateway does not include the
   routing protocol.  It is supposed, that the basic work on routing is
   implemented at a network layer.  The definition of EHTP gateways
   addresses is beyond the scope of this document.  The protocol
   requires that the node have known at least the one gateway address.

   EHTP does not provide buffering the received data.  All received
   packets are sending to the upper layer at once.  Consequently, the
   protocol has no the fragmentation function and does not provide the
   ordered data flows.  This decision is based on the supposition, that
   the allocation of resources, except for minimally necessary for
   reliable data exchange, should make at application layer.  The
   functional purpose of transmitted data is known at this layer, and it
   is possible to denial of low-priority traffic service at overloading.

   The protocol defines a 4-way handshake establishment of primary
   connections.  All basic functions of connections control are carried
   out at primary connections layer.  Primary connections can be used
   for the accelerated establishment of 2-way handshaking secondary
   connection.  Primary connection with indefinite port number is


Bogdanov                  Expires: January 2003                 [Page 3]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   stipulated.  This connection can be used for sending a connectionless
   traffic (for the upper layer).  The upper layer traffic of any
   connection can request or not request delivery acknowledgement.

   The gateway protocol defines the mixed routing based on addresses and
   labels.  Labels are distributed at a primary connection
   establishment.  The possibility of a connection establishment through
   the explicit route is stipulated.  The protocol gives the mechanism
   of dynamic resources deallocating on gateways of the explicit route
   at absence of traffic during established time.  Dynamic resource
   redistribution is executed transparent for the upper layer.

   The UDP [3] using at lower layer is specified in this document for
   EHTP.  Allocated IANA port is 1295.  The logic, at which UDP is used
   only at a connection establishment and by sending the big packets,
   can be used.  After connection establishment on the fixed hops, the
   second layer protocol immediately can be used.  The small size of the
   service information (8 bytes for unreliable data delivery), allows
   immediately using lower layer service with the small packet size.
   This document defines UDP using and does not consider other
   protocols.  Nevertheless, any lower layer protocol if it allows
   identifying EHTP packets, can be used on the fixed hops.

   EHTP is the new protocol, and it requires to develop new application
   programs or to update existing for immediate use of its services.  At
   the same time, it is possible to develop intermediate sublevels above
   EHTP, which emulate the existing standard protocols services, for
   example TCP.

   Presence of the gateway with state protocol allows to create the
   multilevel protected systems and to use EHTP for sending the traffic
   with QoS.  Besides, the gateway protocol gives a possibility to unite
   the switching packets networks with switching channels networks in
   any combination.  This document contains the description of the base
   protocol and does not consider these questions.

2  Terminology

   Node - a device that implements EHTP.

   Gateway - an intermediate node that forwards EHTP packets.  The
             gateway always has its own EHTP address.

   MTU - maximum packet size in bytes, that can be conveyed between
         adjacent EHTP nodes without fragmentation on lower layer.

   PMTU - minimum MTU of all path hops between a sender node and a
          receiver node.



Bogdanov                  Expires: January 2003                 [Page 4]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   Command - an option formed by an endpoint in the EHTP packet, defines
             operations at EHTP layer.

   Network address - a node address on the network layer, for example
                     IPv4.

   Transport address - a node address at an EHTP layer.  The transport
             address includes the information about network type and
             node address in this network.  The transport address may be
             two-level and include the gateway address in a global
             network and the node address in a local address space of
             gateway.  The "transport address" term does not include a
             port.  In this document text, the term "address" (without
             type specification) means the transport address.

3  Addressing

3.1  Transport Addresses

   Transport addresses are defined over the network addresses.  The node
   transport address has the globally unique value.  It includes the
   information about a network in which the node is located, and the
   address in this network.  One endpoint MUST have only one transport
   address.  The address MUST NOT change, while it is even one open
   connection.

   EHTP packet contains the sender and the receiver transport addresses.
   Presence of transport addresses allows gateways to realize delivery
   of packets between different networks.

   The transport address includes three fields:

    Bits
     0    1    2    3    4    5    6
    +----+----+----+----+----+----+----------------//------------------+
    |    ADDR_LENGTH    |NET_TYPE |             NODE_ADDR              |
    +----+----+----+----+----+----+----------------//------------------+

      ADDR_LENGTH: 4 bits

          The address length.  This field contains the number of bytes
          in the NODE_ADDR field.  Two special values %b0000 and %b1111
          is defined.  Value %b0000 sets the additional length format
          for the addresses up to 255 bytes length (see section 3.2.4).
          Value %b1111 set the length of 16 bytes.

      NET_TYPE: 2 bits




Bogdanov                  Expires: January 2003                 [Page 5]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


          The network type.  This field in a combination with the
          ADDR_LENGTH field defines a global network, to which the
          address refers.

      NODE_ADDR: 1 - 255 bytes

         The node address in the network.  This field contains the node
         address.  This field format and a network in which the node is
         located, is defined by a combination of NET_TYPE and
         ADDR_LENGTH fields values.  There is no the general algorithm
         connecting these values with the field format of node address.
         For each combination of NET_TYPE and ADDR_LENGTH fields values
         the format is defined separately.

   Combination of ADDR_LENGTH = 0 and NET_TYPE = 0 values is reserved.

3.2  Transport Address Formats

3.2.1   Immediate IP Addresses

    (1) The following transport address fields values are defined for
        the node in IPv4 global network:

         ADDR_LENGTH = 4
         NET_TYPE = %b00,%b01

            %b00 - value is defined for the node having the interface
                   with IPv4 global network and not supporting EHTP.
                   Use of this address type is described in [5].
            %b01 - value is defined for the node having the interface
                   with IPv4 global network and supporting EHTP.

         NODE_ADDR - The field length is equal to 4 bytes.  The field
                     contains the global IPv4 address of the node.

    (2) The following fields values of transport address are defined for
        the node, which is taking place in IPv6 network:

         ADDR_LENGTH = 15. This is the special value of the address
                           length.  The actual field length of NODE_ADDR
                           is 16 bytes.

         NET_TYPE = 0
         NODE_ADDR - This field contains the full IPv6 address.


    (3) The following transport address fields value is defined for the
        node having an interfaces in IPv4 and IPv6 networks
        simultaneously through the compatible address:


Bogdanov                  Expires: January 2003                 [Page 6]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



         ADDR_LENGTH = 4
         NET_TYPE = %b10
         NODE_ADDR - This field length is equal to 4 bytes.  The field
                     contains the global IPv4 node address.

       The nodes of this type optionally represent the gateways.  The
       used network is fixed in first connection establishment command
       and may be changed only at reconnection.

3.2.2   Extended IPv4 addresses

   The global IPv4 network is considered in the extended addressing, as
   a network of peer-to-peer gateways.  Each gateway has the own local
   addresses space.  The endpoint transport address includes the gateway
   address in a global network and the local address.  The gateway is
   completely responsible for sending the traffic between nodes in a
   global network and nodes in a local address space.  The local address
   space is flat on the part of a global network.  The internal
   structure and the transport protocol inside a local zone may be
   anyone.  Compatibility with EHTP at a gateway level is required only.
   Nodes from a local zone may be located:

      o  in a local or virtual gateway network,
      o  in any addressed point of a global network,
      o  be connected to gateway by not network communications,
      o  be virtual devices or application programs of gateway.

   The local zone may have several peer gateways, which are named a
   gateways group.  Consecutive address numbers in global IPv4 network
   are reserved for one group of gateways.  The group may consist of
   four or sixteen gateways.  Lower bits of address must contain value
   %b00-11 for group of 4 gateways and %b0000-1111 for group of 16
   gateways.  The upper bits of address must have one value for one
   gateways group.  Not less than one gateway must work in-group.
   Unused addresses from a range must be reserved.  Gateways must
   coordinate the addressing policy inside a zone.  Any protocol may be
   used for this.  The zone must have only one group of gateways.  The
   node transport address in local zone does not depend on the gateway
   address, through which the packets exchange.

   The following transport address fields values are defined for
   extended IPv4 addresses:

      ADDR_LENGTH = 6, 8, 10, 12

      NET_TYPE = %b00,%b01,%b10




Bogdanov                  Expires: January 2003                 [Page 7]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         %b00 - for the local zone having one gateway for communication
                with a global network.
         %b01 - for the local zone having group of 4 gateways for
                communication with a global network.
         %b10 - for the local zone having group of 16 gateways for
                communication with a global network.

      NODE_ADDR - The length is equal to 6, 8, 10, 12 bytes.  General
                  NODE_ADDR format for the node from a local zone is the
                  following:

         Bytes
           0   1   2   3
         +---+---+---+---+--------//---------+
         |GATEWAY_ADDRESS|   LOCAL_ADDRESS   |
         +---+---+---+---+--------//---------+

         GATEWAY_ADDRESS: 4 bytes

            This field contains the global IPv4 gateway address.  If the
            zone has group of peer gateways, it is the address of the
            foreground gateway from group, which should be used for
            communication with this node.  If this gateway is
            inaccessible, the sender from a global network side must
            search gateways in increasing order numbers of address,
            since zero (with zero values of lower address bits).

         LOCAL_ADDRESS: 2, 4, 6, 8 bytes

            This field contains the node address inside a local zone.
            The protocol does not impose any restrictions on the format
            and value of this field.

3.2.3   Telephone number

   Value such as network NET_TYPE = %b11 is defined for telephone
   numbers.  ADDR_LENGTH address length value defines number length and
   may be anyone.  Full telephone number written in field NODE_ADDR in
   the packed decimal format (one decimal number in four bits).  If the
   number length is odd, the value %xF written in last four bits.

3.2.4   Additional Length Format

   The additional length format is set by special field of length value
   in transport address ADDR_LENGTH = %b0000.  It is intended for
   addresses, up to 255 bytes size.  The NET_TYPE field values don't
   influence a general format of transport address of this type.  The
   NODE_ADDR field has the following general format:



Bogdanov                  Expires: January 2003                 [Page 8]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


            Bytes
             0         1
            +--------+------------//--------------+
            | TR_LEN |          RA_ADDR           |
            +--------+------------//--------------+

            TR_LEN: 1 byte

               Indicates the length of the RA_ADDR in bytes.

            RA_ADDR: 1-255 byte

               The node address.

3.2.4.1 Character Address

   This document defines the transport address containing the node
   address as character ASCII string:

      ADDR_LENGTH = 0

      NET_TYPE = %b01

      NODE_ADDR :
         TR_LEN  - The address length
         RA_ADDR - Domain name or character representation of the
                   transport address or URL.

3.3  Character Presentation of the Transport Address

   The combination of ADDR_LENGTH and NET_TYPE values is named the
   global network number (or network number) and is represented together
   by decimal numbers.  Initial zero is omitted.  The final zero is
   omitted, if the penultimate number is more than 3, i. e. it may not
   be considered as a network type.  The global network address is
   written behind a network number through slash "/" by the rules of
   this network.  It may be the gateway address or the endpoint address.
   For a gateway the local zone node address is written through slash
   "/", by the rules of addresses writing for this zone.  Transport
   addresses in global IPv4 or IPv6 network may be written without
   number of a network.  For example:

      41/198.47.50.3 (or 198.47.50.3) - The endpoint in the IPv4 global
                                        network

      8/198.47.50.3/123.100.27.1 - Endpoint in the local IPv4 network,
                                   working through a single gateway of
                                   global IPv4 network.



Bogdanov                  Expires: January 2003                 [Page 9]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   This document defines only two rules of the addresses writing in a
   local zone.  It may be the local IPv4 address, or representation of
   any address as decimal number.

   The node address may be written down as the domain name or any URL.
   In that case, the global network number is not presented.  It is
   supposed, that this name has globally unique value.

   The number of global telephone network is presented in one value 3
   irrespective of length.  The network number may be absent, if the
   telephone number may not be defined as the network number.  For
   example, the number length exceeds three, or the last number is more
   than five, or the number value is more than 153.  Blanks and hyphen
   digits are ignored.  For example: 123 456-7890.  Prefixes of an
   output in a global telephone system are not included in number.  The
   telephone system subscriber address may be presented by alphanumeric
   line with slash "/" for separating hierarchical components.  For
   example: 3/Moscow/123-45-67.  The protocol of transformation of such
   addresses in a binary kind lies beyond the scope of this document.

   The transport address in character representation is entered in EHTP
   packet in a character address format (see section 3.2.4.1).  It is
   NOT RECOMMENDED to use the character address, if the node may
   transform it to a binary format.

4  Format of EHTP Packet

4.1  General Format of Packet

   Packet EHTP has the following structure:

   +--------+---------+-------+---------+-------------+-------+--------+
   |Gateways|Addresses| Basic |Endpoint |    DATA     |PADDING|CHECKSUM|
   |Options |Header   | Header|Options  |             |       |        |
   +--------+---------+-------+---------+-------------+-------+--------+

   Gateways Options

      The gateway options are optional headers with a variable length.
      Its may be formed by gateways or by an endpoint.  On a route of
      transmission, gateways options may be added, be deleted from a
      packet, or be modified.  In EHTP packet, gateways options MUST be
      located before the basic header and the addresses header.

   Addresses Header

      The addresses header is the optional header with variable length.
      It contains the transport addresses of the sender and of the
      receiver.  The addresses header is formed by the endpoint and it


Bogdanov                  Expires: January 2003                [Page 10]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      MUST be located in a packet directly before of the basic header.
      The addresses header should not be deleted from a packet on
      gateways and its fields values should not be changed.

   Basic Header

      The basic header is the obligatory header with the fixed length.
      It is formed by the endpoint and it contains information,
      minimally necessary for delivery and processing of packet by the
      receiver.  The fields values of the basic header should not be
      changed by gateways.

   Endpoint Options

      The endpoint options are optional headers with variable length.
      They are formed by an endpoint.  They MUST NOT be added, deleted
      from a packet, or modified on a route of sending.  The endpoint
      options MUST be located after the basic header in EHTP packet.

   DATA

      It is the optional field, containing the upper layer data.  The
      field length is 0-65535 bytes.

   PADDING

      These are bytes, which are padded in the end of data field (if
      necessary) to make a multiple of four bytes.  Values may be
      anyone.  At using of the checksum, it is recommended set to 0.

   CHECKSUM

      The checksum or the data authentication of packet.

   All packet headers MUST have a length, which is a multiple of 4
   bytes.

   One EHTP packet MUST be located in a separate packet of the lower
   layer.

   All headers and options are identified by the first 4 or 5 bits.  If
   the node does not know these bits definition, it MUST silently
   discard a packet.

4.2  Basic Header

   Three formats of base header of 12, 8 and 4 bytes length are defined.




Bogdanov                  Expires: January 2003                [Page 11]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   The basic header with a length of 12 bytes MUST be used in packets
   with commands of a connection establishment.  It has the following
   format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 0 1 0|E|P|R|                SEQUENCE_NUM                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           SERVICE_ID          |          DATA_LENGTH          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         CONNECTION_ID                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      E: 1 bit

         Flag of the following option.  If it is set, the endpoint
         option is located after the basic header.  If it is not set,
         the upper layer data are located behind the basic header.

      P: 1 bit

         Push flag.  If it is set, the packet must not be deferred in
         sending queues.  The return packet, containing response of this
         packet, also must have PSH=1.  Push flag does not change a
         sequence of sending packets, sent on separate connection.

      R: 1 bit

         Reserved.  This bit MUST be set to zero by sending.  If this
         bit is set to 1 on reception, the packet MUST be silently
         discard without no further action.  This bit MUST NOT is
         analyzed by gateways.

      SEQUENCE_NUMBER: 24 bits

         A packet sequence number.  Numbering is conducted for one
         connection.  It is necessary for calculations to use
         arithmetic, given in [11].  Value 0 is reserved and it must be
         excluded at consecutive numeration.

      SERVICE_ID: 16 bits

         The upper layer service identifier (destination port).  This
         document defines value 2110 for UMSP protocol [5].

      DATA_LENGTH: 16 bits




Bogdanov                  Expires: January 2003                [Page 12]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         Indicates the length of DATA field in bytes.  A range of
         allowable values is 0 - 65535.

      CONNECTION_ID: 32 bits

         The connection identifier, assigned by a receiver endpoint.

   Basic headers with smaller length have the same purpose of fields.

   Basic headers of 8 bytes length are using after a connection
   establishment, if the receiver endpoint can unequivocally identify
   connection by two lower bytes of CONNECTION_ID field.  The header has
   the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 0 1 1|E|P|R|                SEQUENCE_NUM                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          CONNECTION_ID        |          DATA_LENGTH          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Basic headers in length of 4 bytes are used after a connection
   establishment at an execution of all following conditions:

      o  The receiver endpoint can unequivocally identify connection by
         two lower bytes of CONNECTION_ID field.
      o  The data length does not exceed 255 bytes.
      o  Data of the upper layer does not require delivery
         acknowledgement.

   The header has the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 0|E|P|R|  DATA_LENGTH  |        CONNECTION_ID          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

4.3  The Addresses Header

   The addresses header contains transport addresses of the sender and
   the receiver.  Fields values of the transport address are given in
   section 3.  The addresses header has the following format:







Bogdanov                  Expires: January 2003                [Page 13]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



       0                   1
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 0 0|  SAL  |STP|  RAL  |RTP|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                               |
      ~          SND_NODE_ADDR        ~
      |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                               |
      ~          RCV_NODE_ADDR        ~
      |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                               |
      ~          ZERO_PADDING         ~
      |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      SAL: 4 bits

         The ADDR_LENGTH field of the sender transport address (see
         section 3.1).

      STP: 2 bits

         The NET_TYPE field of the sender transport address.

      RAL: 4 bits

         The ADDR_LENGTH field of the receiver transport address.

      RTP: 2 bits

         The NET_TYPE field of the receiver transport address.

      SND_NODE_ADDR: 1-256 bytes

         The NODE_ADDR field of the sender transport address.

      RCV_NODE_ADDR: 1-256 bytes

         The NODE_ADDR field of the receiver transport address.

      ZERO_PADDING: 0-3 bytes

         Zero addition bytes.  They are intended for alignment of the
         end of addresses header on four bytes border.



Bogdanov                  Expires: January 2003                [Page 14]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   If SAL = 0 and STP = 0, field SND_NODE_ADDR is absent.

4.4  Options

   Options of a gateway and of an endpoint have a equal format, and
   differ a position about basic header:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     | HEADER_DATA1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                          HEADER_DATA2                         ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      E: 1 bit

         The purpose of this bit differs for gateways options and the
         endpoint options:

            o  For the gateway option, it is the flag of preservation in
               a stack on the following route hop.  If it is not set,
               the option must be deleted from a packet after processing
               on the next gateway of explicit route.  If flag is set,
               the option must not be deleted from a packet on gateways.
            o  For the endpoint option, it is a flag of the following
               option.  If it is not set, the data are located after
               this option.  If the flag is set, the following endpoint
               option is located after this option.

      D: 1 bit

         A flag of obligatory processing in the endpoint.  It defines
         the order of an option processing, if the endpoint does not
         know purpose of this option or may not process it because of
         any reason.  If D = 1, the data transmitted in a packet should
         be ignored.  If D = 0, the packet is received irrespective of a
         possibility of this option processing.  The endpoint must
         analyze all options of a packet.

      G: 1 bit

         The flag of obligatory processing on gateways.  It defines the
         order of option processing, if a gateway does not know the
         purpose of this option or may not process it because of any
         reason.  If G flag is set, the packet must be silently
         discarded.  The gateway must process only its options.  The


Bogdanov                  Expires: January 2003                [Page 15]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         gateway must not analyze the options of other gateways.  If G
         flag is not set, the packet is forwarded on a route,
         irrespective of a possibility of this option processing.

      HEAD_LENGTH: 8 bits

         Indicates the number of 4-byte words in HEADER_DATA2 field
         (HEADER_DATA1 field always is present at header).

      OPCODE: 8 bits

         This field value defines operation, which is set by an option.

      HEADER_DATA1 + HEADER_DATA2: 1 - 1021 bytes

         The format of these fields is defined for each OPCODE value
         separately.

4.5  Data

   DATA field contains the upper layer data.  If DATA_LENGTH = 0, the
   DATA field is absent.

4.6  Checksum

   The packet contains the checksum of 4 bytes length by default.  This
   sum is calculated with using of CRC-32 algorithm.  Gateways options
   MUST NOT are included in calculation of the checksum.  All other
   headers, including addresses header, basic header and endpoint
   options MUST be included in calculation.  The upper layer data may be
   included in calculation not completely.  The quantity is defined at a
   connection establishment (see section 5.1.1.2).

   If the Security Parameters Index (SPI) value is defined at a
   connection establishment, the packet contains authentication data
   instead of the checksum.  The length of authentication data MUST NOT
   exceed 1024 bytes and MUST be multiple to 4 bytes.  This document
   does not impose any other restrictions on a format of authentication
   data.

   It is supposed, that integrity of data flow is one of the basic upper
   layer requirements.  It is impossible to create the steady
   distributed systems based on a network, which are not carrying out
   this requirement.  Therefore, the checksum must be used, only if it
   is impossible to agree on packets authentication parameters.

   Irrespective of SPI, gateway options MUST NOT be included in the
   checksum calculation or authentication data, as they may be modified,
   added and deleted from a packet on gateways.  Thereof, these options


Bogdanov                  Expires: January 2003                [Page 16]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   are not protected from distortion and fake.  It should be taken into
   account in the logic of packets processing.

   After a connection establishment under some conditions, the addresses
   header and full basic header may be absent in packets.  As the
   protocol does not guarantee correct packets routing, the full packet
   including addresses header and 12-byte basic header MUST be used for
   calculation of the checksum in endpoints.  The endpoint of the
   receiver MUST store these values in state variables.  For calculation
   of the authentication data, the addresses header MUST not be included
   in calculation, if it is not really sent in a network.  The 12-byte
   basic header MUST be included in calculation of authentication data,
   irrespective of the real format, transmitted through a network.

5  The Endpoints Protocol

5.1  Connections control

5.1.1      Primary Connection Establishment

   The purpose of primary connection establishment is:

      o  Transmission of the upper layer data
      o  Reservation of resource for the accelerated establishment of
         secondary connections,
      o  Fixing of a route through gateways (see section 6).
      o  The establishment of initial connection, if there are switching
         channels networks in a route.

   The endpoints execute during procedure of establishment:

      o  exchange of connection identifiers (each side appropriates its
         identifier to connection ),
      o  coordinate of initial sequence numbers,
      o  set a maximum quantity of secondary connections, which may be
         in this primary connection,
      o  coordinate PMTU.

   At the description of a connection establishment procedure in this
   document, the node that initiates connections is called "initiator".
   The node that answers a connection establishment is called
   "responder".

   The connection establishment consists of 4-way handshake:

       (1)  The initiator sends INIT command.
       (2)  The responder confirms the possibility of connection
            establishment by sending of INIT-ACK command.



Bogdanov                  Expires: January 2003                [Page 17]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


       (3)  The initiator sends the CONNECT command.  Data of the upper
            layer may be transmitted together with this command.
       (4)  Responder confirms a connection establishment by sending
            CONNECT-ACK command to initiator.  This command may be
            transmitted together with the upper layer data.

   All connections identifiers, assigned by the defined node, must have
   the unique values for this node at each moment of time.  Identifiers,
   assigned by different nodes, may coincide.  The combination of values
   <the connection identifier> + <the node transport address> + <time
   (implicit)> is the global unique key of the connection.  Under some
   conditions, the transport address and/or the full connection
   identifier can be absent in a packet.  For the control of wrong
   routing, the endpoints (the sender and the receiver) must include
   globally unique key in calculation of a packet checksum.

   Values of connections identifiers must be allocated in view of
   necessity to reject the packets, sent on already closed or emergency
   broken off connections.  Such packets may be in a network after
   closing connection for some time.  The identifier from the closed
   connection may be used repeatedly in the following cases:

      o  The time passed from the moment of closing connection,
         exceeding double maximal lifetime of packets in a network.
      o  The difference between SEQUENCE_NUMBER for the first sent
         packet in the new connection and the last value in the closed
         connection guarantees, that the consecutive increase of
         sequence numbers in new connection will not achieve the last
         value of the closed connection during double maximal lifetime
         of packets in a network.  The node does not choose initial
         sequence number; therefore, this condition may be not executed
         always.

   The connections identifiers, established right after the emergency
   reload of the node, also must take into account these restrictions.

   The node is completely responsible for allocated identifiers and may
   change or add the given rules.  For increase of security from
   attacks, it is recommended, that connections identifiers would have
   values, which are difficult for predicting.

   To use the short-cut format of base header, an endpoint must assigned
   connections identifiers with two lower bytes, unique for the node.
   In this case, at a connection establishment and at calculation of the
   checksum, full 32-bit identifier value is used.  Packets after a
   connection establishment can include only two low bytes of the
   identifier.  Right after connection closing, the value of low bytes
   can be used in new connection, if higher bytes have the other value.



Bogdanov                  Expires: January 2003                [Page 18]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


5.1.1.1 INIT, INIT-ACK

   INIT command is used on a first step of primary connection
   establishment.  INIT-ACK command is the positive response to INIT
   command.  These commands MUST be formed as a gateway options.  The
   packet containing these commands, MUST NOT includes the upper layer
   data.  Fields of base header must have the following values:

      SEQUENCE_NUM -  In INIT command, this field is set to zero on
                      transmit and ignored on receipt.  For INIT-ACK
                      command, the packet sender allocates this field
                      value.  It MUST be copied by the receiver in
                      SEQUENCE_NUM field of base header of a packet with
                      CONNECT command.  Values 0 and %xFFFFFF are
                      reserved.
      SERVICE_ID -    This field contains the service identifier of
                      established connection.
      DATA_LENGTH =   0
      CONNECTION_ID - Values 0 and %xFFFFFFFF are reserved.  In INIT
                      command, this field is not used by the protocol
                      and may contain any value.  In INIT-ACK command,
                      value of this field is copied from
                      TMP_CONNECTION_ID field of INIT command.

   The options of INIT and INIT-ACK commands have an identical format
   and differ only in OPCODE value:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |RES_VER_FLAGS|F|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |RSV|         MIN_HL_PMTU       |RSV|            PMTU           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       TMP_CONNECTION_ID                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                              SPI                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      The fields of general format have the following values:

         E = 1
         D = 1
         G = 1
         HEAD_LENGTH = 2/3 (depends on SPI presence)
         OPCODE =
                  1 for INIT
                  2 for INIT-ACK



Bogdanov                  Expires: January 2003                [Page 19]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      RES_VER_FLAGS: 7 bits

         The reserved versions flags.  Values of these bits are set to
         zero on transmit.  If even one of them is set to 1 at
         receiving, the packet must be silently rejected.  Each new
         version of the protocol will use one bit of this field.  The
         endpoint has a possibility to provide a few protocol versions.
         INIT command may contain a several not zero bits of the
         version.  INIT-ACK command MUST contain only one not zero bit
         of the version.

      F: 1 bit

         Flag of the protocol first version.  This bit MUST be set to 1.
         It sets the protocol version, which is defined in this
         document.


      RSV: 2 + 2 bits

         Reserved.  These fields should be set to zero on transmit and
         ignored on receipt.

      MIN_HL_PMTU: 14 bits

         Indicates the minimal size of upper layer PMTU in 32-bit words.
         This value sets the upper layer at request of connection
         establishment.  Connection PMTU MUST NOT be less than this
         value.  MIN_HL_PMTU field indicates the payload size.

      PMTU: 14 bits

         Indicates the real PMTU size in 32-bit words.  This value
         defines the full EHTP packet size, including all necessary
         headers and an authentication data.  PMTU value may be reduced
         by gateways up to size from MIN_HL_PMTU field in view of EHTP
         headers length.  If the gateway may not provide the minimally
         necessary value, the following variants are possible:

            o  MTU, which may be provided, is written in packet, and the
               packet is sent forward.  The INIT receiver forms INIT-ACK
               command with changed PMTU.  The initiator of connection
               establishment may silently discard INIT-ACK, if PMTU does
               not arrange it.
            o  Boundary nodes of a hop, which may not provide PMTU, fix
               themselves in connection route (see section 6).  All
               subsequent connection packets are fragmented and
               assembled on these boundary nodes by lower level



Bogdanov                  Expires: January 2003                [Page 20]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


               protocol.  A fragmentation MUST NOT is for end-to-end
               interactions at EHTP layer.

         PMTU connection MAY be less, than a size of packets with
         connection establishment commands (for example, if connection
         requires the small packets size for maintenance of desired
         QoS).

      TMP_CONNECTION_ID: 32 bits

         Indicates the temporary identifier, which assigned the sender
         of this packet.  It MUST be copied by the receiver in base
         header CONNECTION_ID field of a response command.

      SPI: 32 bits

         This field contains the security parameters index (SPI), which
         defines the authentication of this packet at EHTP layer.  The
         endpoints must agree upon this field values beforehand.  The
         protocol does not impose any restrictions on SPI values and
         does not give any rules of its using.  SPI field is present at
         an option, if HEAD_LENGTH = 3.  Otherwise, it is absent.  Value
         SPI from INIT and INIT-ACK commands is temporary and may be
         changed in the following packets of a connection establishment.

   The receiver of INIT command must not save a state of connection and
   allocate resources before correct CONNECT command receiving.

   The gateway, immediately connected with the endpoint of INIT
   receiver, may form INIT-ACK command.  For example, if the endpoint is
   connected on the switched channel.

5.1.1.2 CONNECT, CONNECT-ACK

   CONNECT command is sent by the initiator of connection establishment
   after INIT-ACK command reception.  CONNECT-ACK command is sent, as
   the positive response to CONNECT command on last step of connection
   establishment.  CONNECT and CONNECT-ACK commands MUST be formed as a
   gateway option.  The packet containing these commands MAY include the
   upper layer data relating to this connection.  CONNECT and CONNECT-
   ACK commands have an identical format and differ only by OPCODE
   value.  Fields of base header must have the following values:

      SEQUENCE_NUM -  For CONNECT command this field contains a sequence
                      number from SEQUENCE_NUM field of INIT-ACK
                      command.  For command CONNECT-ACK this field
                      contains a sequence number from FIRST_SEQUENCE_NUM
                      field of CONNECT command.



Bogdanov                  Expires: January 2003                [Page 21]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      SERVICE_ID -    This field contains the service identifier of
                      established connection.  It must coincide with
                      INIT-ACK command.
      DATA_LENGTH =   0-65535
      CONNECTION_ID - For CONNECT command, this field value is copied
                      from TMP_CONNECTION_ID field of INIT-ACK command.
                      For CONNECT-ACK command, value of this field is
                      copied from PERM_CONNECTION_ID field of CONNECT
                      command.

   The option of CONNECT and CONNECT-ACK commands has the following
   format:

      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |    SC_MAX     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |T|V|         MIN_HL_PMTU       |RSV|            PMTU           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | INACTION_TIME |              FIRST_SEQUENCE_NUM               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      PERM_CONNECTION_ID                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |RSV|  CHK_LEN  |                 RESERVED                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                              SPI                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      The fields of general format have the following values:

         E = 1
         D = 1
         G = 1
         HEAD_LENGTH = 4/5 (depends on SPI presence)
         OPCODE =
                  3 for CONNECT
                  4 for CONNECT-ACK

      SC_MAX: 8 bits

         Indicates the maximal number of secondary connections, which
         may be connected with this initial.  The zero value forbids
         establishing the secondary connections, connected with this
         primary connection.  Value 255 specifies that the maximum
         quantity of secondary connections is not fixed at connection
         establishment and may be anyone.  When the limit will be
         exhausted during work, S-DISCONNECT command with ERROR_CODE = 8



Bogdanov                  Expires: January 2003                [Page 22]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         must be used for the connections restriction.  Final value of
         SC_MAX field is defined in CONNECT-ACK command.

      T: 1 bit

         The short connection identifier flag.  If it is set, the packet
         sender can unequivocally identify connection on lowest two
         bytes of the PERM_CONNECTION_ID field.  After a connection
         establishment to address of this packet sender, the packets
         with short base header may be sent.

      V: 1 bit

         If this bit is set, secondary connections with other SERVICE_ID
         value may be connected with this primary connection.  If this
         bit is not set, secondary connections MUST be only with same
         SERVICE_ID value.  Final value of the V bit in connection is
         set in CONNECT-ACK command.

      RSV + RESERVED: 2 + 2 + 24 bits

         These fields should be set to zero on transmit and ignored on
         receipt.

      MIN_HL_PMTU: 14 bits

         Indicates the upper layer PMTU minimal size in 32-bit words
         (see above section).

      PMTU: 14 bits

         Indicates the realizable PMTU size in 32-bit words (see above
         section).

      INACTION_TIME: 8 bits

         The reserved inactive time.  This field contains time interval
         in seconds, at which expiration gateways will deallocate
         connection resources at traffic absence (see section 6.8).

      FIRST_SEQUENCE_NUM: 24 bits

         This field contains the initial sequence number of the
         receiver.  The consecutive numeration of connection packets,
         which will be sent by this command receiver, must be begun from
         this number.  It is RECOMMENDED, that this field value will be
         difficult for predicting.  For the receiver of CONNECT command,
         this number MUST be copied in a packet with CONNECT-ACK



Bogdanov                  Expires: January 2003                [Page 23]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         command.  For the receiver of CONNECT-ACK command, this number
         MUST be copied in the first connection data packet.

      PERM_CONNECTION_ID: 32 bits

         This field contains the permanent identifier, assigned to
         connection by this packet sender.

      CHK_LEN: 5 bits

         Specifies number of the first 4-byte words from DATA field,
         which will be included in calculation of the checksum or
         authentication data.  If this field is set to zero, DATA field
         MUST NOT be included in calculation.  If value is set to
         %b11111, calculation includes full DATA field.  Value CHK_LEN
         is applied to all packets of new connection, transmitted by the
         sender of this command. Headers EHTP are included in
         calculation of the checksum irrespective of this field value.
         If CHK_LEN value to not multiply required value, conditional
         zero addition is used at calculation of the checksum.

      SPI: 32 bits

         This field contains the security parameters index (SPI), which
         defines a packets authentication of this connection at EHTP
         layer downstream of this packet.  Not all subsequent packets of
         connection contain SPI field.  Therefore, this value must be
         stored, as a state variable of this connection by both
         endpoints.  SPI value from CONNECT-ACK and CONNECT commands may
         differ.  If HEAD_LENGTH = 4, SPI field is absent.

   V, SC_MAX and INACTION_TIME fields of the CONNECT command MAY be
   modified by the gateways fixed in a route.  The receiver of the
   CONNECT command MUST NOT increase these fields value.

   The connection establishment initiator MUST NOT sends data packets
   before reception of CONNECT-ACK command.  All data packets received
   on connection before reception of CONNECT-ACK command MUST be discard
   silently.  After reception of CONNECT-ACK command connection is
   considered established.

   After sending CONNECT-ACK command, the sender node considers
   connection established.  The first data packet received by CONNECT-
   ACK sender, MUST have initial sequence number (from
   FIRST_SEQUENCE_NUM field of option).  Before reception of this
   packet, all other packets of connection MUST be discard silently.

5.1.1.3 Identifiers Exchanging Scheme



Bogdanov                  Expires: January 2003                [Page 24]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   The scheme of identifiers exchange in procedure of primary connection
   establishment is represent in the following figure:

      Initiator                                       Responder
      ---------                                       ----------

   INIT [ SEQUENCE_NUM = 0,
          CONNECTION_ID = any value
          TEMP_CONNECTION_ID = TempID1 ] ---------->


                  <---------- INIT-ACK [ SEQUENCE_NUM = TempNum1,
                                         CONNECTION_ID = TempID1,
                                         TEMP_CONNECTION_ID = TempID2 ]

   CONNECT [ SEQUENCE_NUM = TempNum1,
             CONNECTION_ID = TempID2,
             FIRST_SEQUENCE_NUM = SeqNum1,
             PERM_CONNECTION_ID = PermConnID1 ] ---------->


           <----------  CONNECT-ACK [ SEQUENCE_NUM = SeqNum1,
                                      CONNECTION_ID = PermConnID1,
                                      FIRST_SEQUENCE_NUM = SeqNum2,
                                      PERM_CONNECTION_ID = PermConnID2 ]

   DATA [ SEQUENCE_NUM = SeqNum2,
          CONNECTION_ID = PermConnID2 ] ---------->

                  <----------  DATA [ SEQUENCE_NUM = SeqNum1 + 1,
                                      CONNECTION_ID = PermConnID1 ]

5.1.2   Secondary Connection Establishment

   The purpose of a secondary connection establishment is:

      o  An allocation of a separate data flow within the framework of
         the same service of the upper layer,
      o  The accelerated establishment of new connection with the same
         or new service of the upper layer.

   For the upper layer the service of primary and secondary connections
   not differ.

   All secondary connections have the following general procedures with
   primary connection:

      o  One sequence of sequence numbers in SEQUENCE_NUM field and
         general congestions control is conducted.


Bogdanov                  Expires: January 2003                [Page 25]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      o  Have general SPI and PMTU.
      o  Use one explicit route (see section 6).
      o  Closing of primary connection results in closing all secondary
         connections related to it.

   Procedure of a secondary connection establishment consists of two
   steps.  The initiator of secondary connection sends BIND command on
   primary connection.  In reply to it, BIND-ACK command is sent.  Both
   commands may contain a upper layer data of new connection.  The
   initiator of secondary connection may be the initiator or the
   responder of primary connection.

   The packet with BIND command MUST have the ordered sequence number.
   If the SEQUENCE_NUM value is not ordered, the packet with the command
   is silently discarded.

   Packets of secondary connection have the new CONNECTION_ID values and
   do not contain the information on primary connection.  This
   information should be saved in endpoints variable states.

   BIND and BIND-ACK commands have an identical format.  Difference is
   the OPCODE and CONNECTION_ID values of base header.  Fields of base
   header must have the following values:

      SEQUENCE_NUM  - The current sequence number of primary connection.
      SERVICE_ID    - This field contains the service identifier of
                      establishing secondary connection.
      DATA_LENGTH   = 0-65535
      CONNECTION_ID - For BIND command, it is the identifier of primary
                      connection assigned by the receiver of this
                      packet.  For BIND-ACK command, it is the
                      identifier from CONNECTION_ID field of packet with
                      BIND command.

   BIND and BIND-ACK are formed as endpoints options and have the
   following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|0|  HEAD_LENGTH  |    OPCODE     |T|RSV| CHK_LEN |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       SEC_CONNECTION_ID                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      The fields of general format have the following values:

         D = 1
         HEAD_LENGTH = 1


Bogdanov                  Expires: January 2003                [Page 26]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         OPCODE =
                  5 for BIND
                  6 for BIND-ACK

      T: 1 bit

         The short connection identifier flag.  If it is set, all
         packets of new connection, sent to address of sender of this
         command, must include the base header of 8 or 4 bytes length.
         If it is not set, the base header MUST have the length of 12
         bytes.

      RSV: 2 bits

         Reserved.  This bits should be set to 0 on transmit and ignored
         on receipt.

      CHK_LEN: 5 bits

         Specifies number of the first 4-byte words from DATA field,
         which will be included in calculation of the checksum or
         authentication data.  If this field is set to zero, DATA field
         MUST NOT be included in calculation.  If value is set to
         %b11111, calculation includes full DATA field.  Value CHK_LEN
         is applied to all packets of new connection, transmitted by the
         sender of this command.

      SEC_CONNECTION_ID: 32 bits

         This field contains the identifier of secondary connection,
         assigned by the sender of this packet.

   The initiator sends BIND command.  After that, it must wait for BIND-
   ACK command up to sending of the following data packet of the new
   connection.  The disordered data packets of new connection may be
   received before BIND-ACK reception.  Cumulative acknowledgement
   number does not confirm reception of BIND command.

   After sending of BIND-ACK positive response, the sender considers
   that connection is established.  The DISCARDED-PACKET option is sent
   as the negative acknowledgement to BIND (see section 6.4).

   Data packets of secondary connection have the CONNECTION_ID fields
   copied from the SEC_CONNECTION_ID field of the received command.
   BIND and BIND-ACK command does not stop data transmission on other
   connections.

5.1.3   0 - connection



Bogdanov                  Expires: January 2003                [Page 27]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   The primary connection with zero SERVICE_ID value (0-connection) may
   be established between two endpoints.  The purpose of 0-connection
   establishment may be:

      o  restriction quantity of connections, which may be
         simultaneously open between two nodes,
      o  grant of connectionless service for the upper layer.

   It MUST NOT be established more than one 0-connection, which is not
   using an authentication or having one value of an security parameter
   index SPI between two nodes.  Reservation parameters may be
   considered as the additional index, allowing to establish repeated 0-
   connections.

   0-connection may be established by the following fashions:

       (1)  The initiator of primary connection set the SERVICE_ID to
            zero in INIT command.  All other commands of the primary
            connection establishment MUST have zero value of this field.
       (2)  The responder of primary connection establishment makes a
            decision on 0-connection independently.  In this case it set
            SERVICE_ID = 0 in reciprocal INIT-ACK command.  The
            initiator MUST accept this value and copy it in CONNECT
            command.
       (3)  0-connection may request a gateway.  For this purpose it
            must set SERVICE_ID = 0 in INIT command.


   Secondary connections are used for upper layer service irrespective
   from the 0-connection establishment initiator.  BIND command may be
   attached to a packet containing CONNECT command of 0-connection.

   Receiving of the second request about an establishment 0 - connection
   may be examined as an emergency reload of the source node.  In this
   case, the INIT command receiver MUST execute the following:

       (1)  To send the INIT-ACK command not saving a state of new
            connection.
       (2)  The node must start activity check on existing connection
            after reception of reciprocal CONNECT command (see section
            6.8).  The CONNECT-ACK command must not be sent before end
            of checking.  If existing connection is active, the packet
            with CONNECT command MUST be silently discard.

   Receiving of incorrect INIT-ACK command, CONNECT or CONNECT-ACK with
   SERVICE_ID = 0 is examined as a error.  Such packet MUST be silently
   discarded.




Bogdanov                  Expires: January 2003                [Page 28]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   0-connection may be used for connectionless data transmission (for
   upper layer service).  For such packets the following conditions MUST
   be satisfied:

      o  CONNECTION_ID has the 0-connections value, assigned by the
         packet receiver.
      o  SERVICE_ID has nonzero value.
      o  The Packet contains an upper layer data.
      o  The Packet does not contain BIND command.

   All packets of 0-connection MUST contain the base header in length of
   12 bytes.

5.1.4   Receiving Window Restriction

   RCV-WINDOW option is used to inform an opposite endpoint in
   connection the maximal receiving window size for upper layer data.
   It is formed as an endpoint option and has the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|0|  HEAD_LENGTH  |    OPCODE     |  WINDOW_SIZE1 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          WINDOW_SIZE2                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   The fields of general format have the following values:

      D = 1
      HEAD_LENGTH = 0/1
      OPCODE = 7

      WINDOW_SIZE1: 1 byte

         If HEAD_LENGTH = 0, this field indicates the window size in 4-
         KByte blocks.  If HEAD_LENGTH = 1, this field is set to 0.


      WINDOW_SIZE2: 4 bytes

         If HEAD_LENGTH = 1, this field indicates the window size in
         bytes.  The value MUST be multiple to four.  If HEAD_LENGTH =
         0, this field is absent.

   The RCV-WINDOW option sets a maximum data quantity of the upper
   layer, which are sent and are not confirmed with cumulative



Bogdanov                  Expires: January 2003                [Page 29]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   acknowledgement.  The option may be transferred in any connection
   packet, starting with CONNECT or BIND command.

   The RCV-WINDOW option may be used for primary and secondary
   connections.  This option concerns only to connection on which it was
   transmitted.  The window restriction of primary connection does not
   influence on secondary connections.  The RCV-WINDOW option MUST NOT
   be used for 0-connection.

   At EHTP layer, the received data is sent to the upper layer without
   buffering.  Therefore, window restriction is service, which is given
   on demand of the upper layer.  Thus, RCV-WINDOW option limits a
   window at EHTP layer.  If the upper layer has its functions of a
   window restriction or the ordered data flows is not require to it,
   this option is not used.

5.1.5 Security Parameters Index Changing

   SPI must be changed, if the sequence numbers counter has passed a
   full cycle or if SPI lifetime has expired.  The CHG-SPI option is
   used for SPI change.  It has the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|0|  HEAD_LENGTH  |    OPCODE     |    RESERVED   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            NEW_SPI                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      The fields of general format have the following values:

         D = 1
         HEAD_LENGTH = 1
         OPCODE = 8

      RESERVED : 8 bits

         Reserved.  These bits should be set to 0 on transmit and
         ignored on receipt.

      NEW_SPI : 32 bits

         Indicates the new value of SPI connection that will be used by
         the sender of this packet.

   CHG-SPI option MUST be formed as an endpoint option.  It joins any
   packet of primary or secondary connection and changes SPI for primary
   connection and everything secondary connections connected to it.  The


Bogdanov                  Expires: January 2003                [Page 30]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   packet with CHG-SPI option uses old SPI.  All packets with following
   numbers MUST use new SPI.  The option changes SPI only in one
   direction.

5.1.6    Connection Termination

   All commands of connections termination: DISCONNECT, S-DISCONNECT,
   DISCONNECT-ACK and S-DISCONNECT-ACK are formed as an endpoints
   options, have an identical format and differ only in OPCODE value:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|0|  HEAD_LENGTH  |    OPCODE     |   ERROR_CODE  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      The fields of general format have the following values:

         D = 1
         HEAD_LENGTH = 0
         OPCODE =
                  9  for DISCONNECT
                  10 for S-DISCONNECT
                  11 for DISCONNECT-ACK
                  12 for S-DISCONNECT-ACK

      ERROR_CODE: 8 bits

         Termination error code.  Zero value defines normal end.
         Nonzero value defines abend.  Error codes are described in
         section 5.1.7.

   End of primary connection automatically finishes all secondary
   connections connected to it.  End of secondary connection does not
   influence on other connections.  For primary connection termination,
   DISCONNECT and DISCONNECT-ACK is used.  For secondary connection
   termination, S-DISCONNECT and S-DISCONNECT-ACK are used.  Packets
   with DISCONNECT-ACK and S-DISCONNECT-ACK commands MUST NOT include
   the payload.

   The initiator of primary connection termination sends DISCONNECT
   command.  After itÆs sending, the endpoint closes primary connection
   and all secondary connections connected to it.  Incoming packets must
   be silently discarded.  The addressee of the DISCONNECT command
   immediately sends DISCONNECT-ACK command and closes connection.

   The initiator of secondary connection termination sends S-DISCONNECT
   command.  After itÆs sending, the endpoint stops the outgoing traffic
   of secondary connection.  The DISCARDED-PACKET option is sent instead


Bogdanov                  Expires: January 2003                [Page 31]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   of the packets acknowledgment of this connection, in order not to
   stop cumulative sequence number counter.  The addressee of DISCONNECT
   command immediately sends DISCONNECT-ACK command and closes
   connection.

   Connection termination may be initiated, since the answer to CONNECT
   command.  Connection termination always MUST be from two steps.

   If the endpoint has received DISCONNECT-ACK and did not send
   DISCONNECT on this connection, it is recommended to start
   reconnection procedure (see section 6.2.3.3).  If the endpoint has
   received S-DISCONNECT-ACK and it did not send S-DISCONNECT on this
   secondary connection, it is recommended to send S-DISCONNECT-ACK
   command and to close connection.

5.1.7 Termination Error Codes

   The following error codes are defined for termination commands:

      1 - The connection establishment without payload is not supposed.
          The endpoint may demand to establish connection only if the
          upper level has data for transfer.  In this case, the data
          must be transferred on the third step of the connection
          establishment.
      2 - The connection establishment is impossible at the present time
          because of temporal network overload or the channel
          employment.  The repeated establishment MUST begin with INIT
          command.
      3 - Connection is impossible because of a network steady overload.
      4 - The endpoint is temporarily inaccessible.
      5 - The expectation time-out of the CONNECT-ACK command is
          exceeded.
      6 - Inadmissible value of reserved inactive time.
      7 - Connection through the not fixed route is not allowed.
      8 - the limit of secondary connections is exhausted.
      9 - Erroneous request on new 0-connection establishment.  Such
          connection is already established.
      10 - the unknown destination address.
      11 - Connection is completed under the initiative of the upper
           level.
      12 - Connection is completed because of endpoint inactivity.
      15 - The non-supported protocol version.
      16 - Inadmissible limit of secondary connections.
      255 - Unexpected error.

5.2  User Data Transfer

   The confirmed packet is identified on a combination of the
   CONNECTION_ID, SERVICE_ID and SEQUENCE_NUM fields values.  If the


Bogdanov                  Expires: January 2003                [Page 32]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   upper level demands delivery acknowledgement, SEQUENCE_NUM field MUST
   have nonzero value.  If delivery acknowledgement is not required,
   SEQUENCE_NUM field MUST be set to zero.

   The destination endpoint does not write received data packets in the
   buffer and transfers their to upper level at once.  The full size of
   a packet must not exceed PMTU connection.  The upper level must
   implement packing functions.  The upper level may set minimal PMTU,
   which is required for its work, at a connection establishment.

   The SEQUENCE_NUM field value in a combination with P flag of the
   basic header operates acknowledgement formation.  The following logic
   is defined:

      SEQUENCE_NUM = 0 & P = 0 - The acknowledgement MUST NOT be formed
                                 on this packet.

      SEQUENCE_NUM # 0 & P = 0 - Acknowledgement on this packet MUST be
                                 sent, probably, with a small delay for
                                 traffic optimization.

      P = 1 - Acknowledgement MUST be sent.  It is NOT RECOMMENDED to
              detain itÆs sending.  If SEQUENCE_NUM of the received
              packet is set to 0, acknowledgement MUST be sent on last
              ordered packet.  If the upper level data are acknowledged,
              the packet with acknowledgement must have P = 1.

   For time-outs and repeated transfers number calculation, it is
   possible to use the recommendations, given in [20].  If the upper
   level does not demand delivery acknowledgement (SEQUENCE_NUM = 0), it
   is not transferred repeatedly.

   If the received packet has incorrect CONNECTION_ID value, it MUST be
   silently discarded.  All disordered packets with displacement from
   the ordered number, exceeding 65535, MUST be silently discarded.

   It is supposed, that acknowledgement occupies essential traffic
   volume.  Therefore, the protocol defines three variants of
   acknowledgement for an opportunity of optimization.

5.2.1   The Packet of Cumulative Data Acknowledgement

   The sending of cumulative acknowledgement packet may be optimum if
   there is no the upper level data traffic in the necessary direction
   on connection.  It has the special format of base header:






Bogdanov                  Expires: January 2003                [Page 33]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 1 0|E|P|R|                SEQUENCE_NUM                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           SERVICE_ID          |          DATA_LENGTH          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         CONNECTION_ID                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


      E, P, R, DATA_LENGTH, SERVICE_ID, CONNECTION_ID

         Assignment of these fields is described in section 4.2.

      SEQUENCE_NUM: 24 bits

         Indicates the cumulative acknowledged sequence number.

   The packet of cumulative acknowledgement MUST NOT contains the upper
   level data (DATA_LENGTH = 0).

5.2.2   CUM-ACK

   CUM-ACK option is used for cumulative acknowledgement.  The packet
   including this option may contain the payload.  CUM-ACK is formed in
   a packet as an endpoint option and has the following format (differs
   from the general option format):

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 1 0 0 0|E|1|0|              CUM_SEQUENCE_NUM                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      E: 1 bit

         Flag of the following option (see section 4.4).

      CUM_SEQUENCE_NUM: 24 bits

         Indicates the cumulative acknowledged sequence number.

5.2.3   GAP-ACK

   GAP-ACK is an endpoint option.  It contains cumulative
   acknowledgement and selective acknowledgement blocks.  The packet



Bogdanov                  Expires: January 2003                [Page 34]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   including this option may contain the payload.  GAP-ACK option has
   the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|0|  HEAD_LENGTH  |    OPCODE     |  CUM_SEQ_NUM  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  CUM_SEQ_NUM (continuation)   |           GAP_PACKET          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       GAP_BLOCK_1_START       |         GAP_BLOCK_1_END       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                                                               ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       GAP_BLOCK_n_START       |         GAP_BLOCK_n_END       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      The fields of general format have the following values:

         D = 1
         HEAD_LENGTH = 1 - 255
         OPCODE = 13

      CUM_SEQ_NUM: 24 bits

         Indicates the cumulative acknowledged sequence number (all
         packets with this and smaller sequence numbers were received).

      GAP_PACKET: 16 bits

         The acknowledgement of one disordered packet.  Value is
         positive displacement from CUM_SEQ_NUM of this option.  Zero
         value means absence of single acknowledgement.

      GAP_BLOCK_n_START + GAP_BLOCK_n_END: 16 + 16 bits

         These fields contain the beginning and the end (inclusive) of
         the selective acknowledgement block.  These values are positive
         displacement from cumulative acknowledgement CUM_SEQ_NUM value
         of this option.  The option may contain several selective
         acknowledgement blocks.

 5.3  Congestion Control

   EHTP uses the congestion control determined for TCP [6,15] and SCTP
   [7] for endpoint with the one address.  EHTP primary connection and
   all secondary connections connected to it use common sequence


Bogdanov                  Expires: January 2003                [Page 35]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   numbering packets and the common congestion control.  In too time,
   EHTP allows establishing a rwnd receiving window separately for
   primary connection and for everyone secondary.  Besides, the
   receiving window can be not established.  In this case, it is
   considered infinite large.  Therefore there are following essential
   features:

      o  At operations with ssthresh and cwnd values, primary connection
         and everything connected to it secondary connections are
         considered as one stream.  Thus, cumulative acknowledgement
         value is taken into account only, and selective
         acknowledgements are ignored.
      o  Restriction rwnd is taken into account separately for primary
         connection for each secondary connection.

   If the data packet does not demand acknowledgement, it has a zero
   sequence number.  Besides, a cumulative acknowledgement packets (see
   section 5.2.1) which also have no the sequence number, may be
   transferred on connection.  Thus, there may be traffic in connection,
   which is taken into account by transfer and has no acknowledgement.
   The packet sender without acknowledgement conditionally counts
   sequence number of this packet on unit more, than last sent packet
   with acknowledgement.  The packet without acknowledgement request is
   considered delivered to the receiver (in functions of congestion
   control) in the following cases:

      o  If cumulative acknowledgement of the following packet (with
         number equal to conditional number of a packet without
         acknowledgement) is received.
      o  In case, if the traffic without request of acknowledgement is
         transferred only in connection, the data sender may take
         advantage of P pushing flag.  If P = 1, acknowledgement is sent
         irrespective of SEQUENCE_NUM value.  Packets without
         acknowledgement request must not be sent no more, than two per
         round trip time (RTT) if P flag is not used and there are no
         packets with acknowledgement request.  Use of P flag for
         implicit congestions control is not defined in this document
         and left for experiments.

   The algorithm of management of congestions is used by endpoints.  In
   too time gateway with state may supervise a transfer policy of
   separate nodes and lower a priority for the data, not sticking to
   rules.

   EHTP gives a sluice an optional means obviously to inform about the
   rejected packets (see section 6.4) except for implicit congestion
   control.




Bogdanov                  Expires: January 2003                [Page 36]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



6  The Gateway Protocol

   This document supposes that the quantity of global networks is
   limited at a network layer, and the typical endpoint has the global
   network address or it is connected with a global network through one
   EHTP gateway.  In such configuration, the basic work on routing
   packets is conducted at a network layer.  This document does not
   include the routing protocol.  It is supposed, that EHTP can work at
   static routing in such configuration.  Besides, the routing protocol
   is supposed, as a separate problem.

   The protocol includes three routing variants:

      (1)  Implicit routing based on transport addresses.
      (2)  The route is explicitly set by sequence of gateways transport
           addresses, which are included in a packet.
      (3)  Explicit routing based on labels [17,19].

   The explicit route of packets select at a primary connection
   establishment.  All three routing ways may be applied to one
   connection simultaneously.  The packet may contain a route as
   sequence of the following address objects:

      (1)  The gateway address without label.  This object contains only
           the gateway transport address.
      (2)  The gateway address with label.  In addition to the gateway
           transport address, this object includes the label allocated
           by this gateway.
      (3)  Label.

   Address objects are formed in gateways options before basic header.
   The sequence of address objects in a packet defines sequence in a
   route.  The first object defines the first hop.

   The protocol gives a possibility to deallocate resources of gateways
   dynamically at absence of the connection traffic.  Therefore, two
   labels types are defined:

      o  The stateless label.  This label does not control activity of
         connection.  It has unlimited or uncertain period of validity.
      o  The label with state.  This label deallocates resources of a
         gateway after expiration of the reserved inactive time (see
         section 6.8).

   In the text of this document, the "label" term means a label of any
   type.  The label may be allocated by the lower layer or EHTP layer.

   The protocol defines the following gateways types:


Bogdanov                  Expires: January 2003                [Page 37]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



       (1)  The obligatory gateway.  Connection MUST be established
            through this gateway.  If the sequence of obligatory
            gateways is defined, it MUST NOT be broken (without
            consideration gateways of other types).
       (2)  The fixed gateway.  Direct and return traffic of connection
            through such gateway MUST coincide.
       (3)  The explicit gateway.  The gateway is fixed in a route of
            connection, but direct and return traffic through these
            gateways may differ.
       (4)  The free gateway.  This gateway do not contain in an
            explicit route of connection.  The traffic through it may be
            anyone.

   Gateways of first three types contain in an explicit route of a
   packet.

   It may be any quantity of EHTP gateways in a route.  The route of
   connection may traverse several MPLS areas; areas with routing based
   on addresses and switched channels in any combination.

   EHTP does not require from gateways to store a connections state.
   Therefore, independent formation of packets is not defined by EHTP
   gateway.  The gateway may only attach options to endpoints packets or
   modify them. If it is necessary to transfer the error message for
   packet, the gateway must delete DATA field from this packet and set
   to 0 the checksum.

6.1  Gateway Options

6.1.1   GATEWAY-HEADER

   GATEWAY-HEADER indicates the gateway of packet explicit route.  It
   has the special format, which differs from the general option format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 1 1|E|D|G|RSV|  GL   |GTP|W|B|F|S|I|N|  RESV |  O_COUNT  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                         GTW_NODE_ADDR                         ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                         ZERO_PADDING                          ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Bogdanov                  Expires: January 2003                [Page 38]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      E, D, G

         These bits have assignment that is defined in section 4.4 for
         the general option format.

      RSV: 2 bits

         Reserved.  This bit must be set to zero by the sender.  If
         these bits are not set to 0 on receipt, the packet MUST be
         silently discard without no further action.

      GL: 4 bits

         The ADDR_LENGTH field of the gateway transport address (see
         section 3.1).

      GTP: 2 bits

         The NET_TYPE field of the gateway transport address.

      W: 1 bit

         The processing flag.  If it is not set, this header indicates
         not traversed gateway.  If it is set, the heading indicates on
         traversed gateway.  This flag is set by gateway at forwarding.

      B: 1 bit

         The flag of obligatory gateway.  If it is set, the connection
         MUST be established through this gateway.

      F: 1 bit

         The traffic fixing flag.  If it is set, all direct and return
         connection traffic MUST pass through this gateway.

      S: 1 bit

         The label with state flag.  If it is set, the gateway has
         allocated a label with state, which will be deallocated by
         gateway after the expiration of reserved inactive time (see
         section 6.8).  If it is not set, the gateway will not supervise
         connection activity.  The S flag is used at a connection
         establishment only.

      I: 1 bit

         The immediate hop flag.  It is used only at a connection
         establishment.  Value is set after processing header by the


Bogdanov                  Expires: January 2003                [Page 39]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         gateway.  If it is set, the label allocated by the gateway
         defines direct hop up to the previous gateway in explicit
         route.  If it is not set, it can be a free gateway between this
         gateway and previous.

      N: 1 bit

         Flag of preservation of the following label.  It is used at a
         connection establishment only.  Value is set after processing
         header by the gateway.  If it is set, the label allocated by a
         gateway saves the following address object of an explicit
         route.  If it is not set, the gateway does not save a following
         address object.

      RESV: 4 bits

         These bits should be set to zero on transmit and ignored on
         receipt.

      O_COUNT: 6 bits

         Indicates the options quantity, which concern to this header.
         The slave options must be located immediately behind gateway
         header in a packet.

      GTW_NODE_ADDR : 0-256 bytes

         The NODE_ADDR field of the gateway transport address.  If GL =
         0 and GTP = 0, this field is absent.  Zero GTW_NODE_ADDR value
         indicates any node of the set network.  After processing
         header, to zero GTW_NODE_ADDR field the real address must be
         assigned.

      ZERO_PADDING : 0-3 bytes

         Zero bytes for alignment of header end on border four bytes.

   Error messages, which are formed by gateways (DISCARDED-PACKET,
   GATEWAY-ERROR, NEW-PMTU options (see sections 6.4, 6.5, 6.6), do not
   contain the gateway address.  In order to inform about the gateway
   address, which has generated the option, option may be the
   subordinate to gateway header.  The gateway MUST set in header E and
   W flags at forwarding.

6.1.2   LABEL-HEADER

   LABEL-HEADER option contains a gateway label in length of 28 bits and
   has a special format which differs from general option format:



Bogdanov                  Expires: January 2003                [Page 40]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |0|0|0|0|                  LABEL_VALUE                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      LABEL_VALUE: 28 bits

         The protocol does not impose any restrictions on values of this
         field.  It is supposed, that the gateway which has allocated
         this label, can unequivocally identify its format.

6.1.3   GENERAL-LABEL

   The GENERAL-LABEL option is a label, which is defined in General
   Switch Management Protocol v3 [18].  This option has a special
   format, which differs from general option format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |0 1 0 0|       Label Type      |          Label Length         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                          Label Value                          ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Label Type

         A 12-bit field indicating the type of label.

      Label Length

         A 16-bit field indicating the length of the Label Value field
         in bytes.

      Label Value

         A variable length field that is an integer number of 32 bit
         words long.  The Label Value field is interpreted according to
         the Label Type as described in [18].

   Stacked Label Indicator is not used, as EHTP has other methods of
   calculation of a labels stack end.

6.1.4      LABEL-OPTION




Bogdanov                  Expires: January 2003                [Page 41]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   The LABEL-OPTION contains a label of any format in length up to 1020
   bytes.  The option has the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |    RESERVED   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                           LABEL_VALUE                         ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Fields of general format have the following values:

         E = 0
         D = 0
         G = 1
         HEAD_LENGTH = 1 - 255
         OPCODE = 14

      RESERVED: 8 bits

         This field should be set to zero on transmit and ignored on
         receipt.

      LABEL_VALUE: 4 - 1020 bytes

         The protocol does not impose any restrictions on this field
         values.  It is supposed, that the gateway which has allocated
         this value, can identify a format unequivocally.

6.1.5     COOKIE-GATEWAY

   The COOKIE-GATEWAY option is used at a connection establishment for
   checking of endpoints.  It has the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |  C_LIFE_TIME  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                          COOKIE_VALUE                         ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Fields of general format have the following values:



Bogdanov                  Expires: January 2003                [Page 42]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         E = 1
         D = 1
         G = 0
         HEAD_LENGTH = 1 - 255
         OPCODE = 15

      C_LIFE_TIME : 8 bits

         The lifetime of this COOKIE in minutes.  Value 0 indicates
         uncertain lifetime value.  Value 255 is reserved.

      COOKIE_VALUE : 4-1020 bytes

         The protocol does not impose any restrictions on a format and
         value of this field.  It can be hashing function of
         unchangeable parameters of primary connection, the endpoint and
         time.  It is recommended, that this value was difficult for
         predicting.

   COOKIE-GATEWAY is formed by a gateway as the subordinated option of
   gateway header and is sent to endpoints.  The endpoint must attach
   received GATEWAY-COOKIE to all packets of a connection establishment
   if the gateway contains in an explicit route.  GATEWAY-COOKIE
   formation is recommended.  The gateway makes a decision on sending
   GATEWAY-COOKIE independently.  At various times they can be sent in
   both connection sides, only aside the initiator or to not be sent.

   Endpoints must save COOKIE value for use in reconnection commands.
   New COOKIE-GATEWAY replaces an old.  COOKIE-GATEWAY option MUST be
   sent only in packets with commands of a connection establishment and
   reconnection.

6.2  Connections Control through Gateways

6.2.1   Connection Establishment

   Gateways participate only in a primary connections establishment.
   Secondary connections use a route and reservation of resources of the
   primary connection.  The gateways of explicit route participate in a
   connections establishment only.  If the gateway is free, it does not
   participate in a connections establishment.

   At a connection establishment the gateway MAY execute the following
   procedures:

      o  checking of COOKIE from the initiator and the responder,
      o  fixing of a connection route,
      o  labels assignment and distribution.



Bogdanov                  Expires: January 2003                [Page 43]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   The explicit route is set at a connection establishment and may be
   changed only at reconnection.  The gateways options defining a route,
   MUST follow connection establishment commands in a packet.  Gateways
   of all types may present at one connection simultaneously.  The
   gateway, which forms COOKIE in two sides, must be fixed in the direct
   and return traffic.

   Labels are distributed upstream.  Labels allocation for connection is
   executed on the third step (CONNECT command from initiator to
   responder) for the traffic from responder to initiator and on the
   fourth step (CONNECT-ACK command from responder to initiator) for the
   traffic from initiator to responder.  The label is allocated by a
   gateway after its COOKIE checking.  For acceleration of a connection
   establishment, the protocol allows to distribute initial labels on
   the first and second step of a connection establishment.

   At a stage of a connection establishment, the explicit route is set
   in a packet by sequence of GATEWAY-HEADER options.  After a
   connection establishment, it is possible to replace gateways headers
   with labels.  All packets with commands of a connection establishment
   must contain addresses header of endpoints and transport addresses of
   gateways in GATEWAY-HEADER.

   For a gateway, the following processing rules of the explicit routing
   information in packets with of a connection establishment commands
   (on steps) are defined:

   1 step - sending of INIT command from the initiator to the responder:

      o  If the gateway header does not contain in a packet, it may be
         inserted.
      o  The gateway may allocate a temporary stateless label for the
         second step of a connection establishment (from the responder
         to the initiator).  By forwarding, the gateway header must
         contain the transport address and the label.
      o  It is possible to add gateways in not traversed area of a
         route.
      o  It is possible to add gateways on the traversed area of a route
         directly ahead of this gateway, if it is known, that the added
         gateway must not send COOKIE aside the responder.
      o  The responder, at reception of INIT command, forms a return
         packet with another or with the same route, having changed the
         order of GATEWAY-HEADER options on back.

   2 step - sending of INIT-ACK command from the responder to the
            initiator:





Bogdanov                  Expires: January 2003                [Page 44]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      o  If the gateway header is not contained in a packet, it may be
         inserted.  In this case, the gateway cannot send COOKIE aside
         the responder.
      o  If the gateway header in the received packet contains a label,
         routing of this packet is carried out on this label.  By
         forwarding, the label must be deleted or replaced with other
         temporary label of this gateway allocated for the third step of
         a connection establishment (from the initiator to the
         responder).
      o  If there is no gateway label in the received packet, it may be
         allocated for the third step of a connection establishment.
      o  If the temporary label is allocated, the gateway header must
         contain the transport address and the label by forwarding.
      o  It is possible to add gateways on the not traversed area of a
         route directly ahead of this gateway, if it is known, that the
         added gateway must not send COOKIE aside the responder.
      o  It is possible to add gateways on the traversed area of a route
         directly ahead of this gateway, if it is known, that the added
         gateway must not send COOKIE in both sides of connection.
      o  The initiator may silently refuse a connection establishment,
         if it does not accept a route in the received packet with INIT-
         ACK command.

   3 step - sending of the CONNECT command from the initiator to the
            responder:

      o  If the gateway header does not contain in a packet, it may be
         inserted.  In this case, the gateway cannot send COOKIE in both
         sides of connection.
      o  If the gateway header in the received packet contains a label,
         routing of this packet is carried out on this label.
      o  On the third step, the gateway allocates a constant label,
         which will be used for the traffic of connection from the
         responder to the initiator.  If the gateway must be fixed in a
         connection route without distribution of a label, the packet
         must contain header of this gateway with the transport address.
      o  If the label allocated by this gateway defines direct hop up to
         the previous gateway from an explicit route, I flag must be
         set.
      o  If the label allocated by this gateway saves the previous
         gateway from a route of this packet, N flag must be set.
      o  It is possible to add gateways on the traversed area of a route
         directly ahead of this gateway if it is known, that the added
         gateway must not send COOKIE in both sides of connection and
         must not allocate a label.
      o  The gateway may generate or replace existing COOKIE option.
         Value of COOKIE field from this option will be used on the
         fourth step and in the following reconnection under the
         initiative of the responder (see section 6.2.3.4).


Bogdanov                  Expires: January 2003                [Page 45]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



   4 step - sending of CONNECT-ACK command from the responder to the
            initiator:

      o  The third step actions, but for the opposite traffic of
         connection are executed.  For sending packets, the labels
         distributed on the third step can be used.

   On any step of connection establishment, the gateway may delete from
   an explicit route the addresses of other gateways at observance of
   all following rules:

      o  The deleted gateway MUST NOT is obligatory (B = 0).
      o  It is possible to delete addresses of gateways on the traversed
         area of a route if they are located directly ahead of this
         gateway.  For example, it can be demanded at label allocation.
      o  It is possible to delete any gateway on the not traversed area
         of a route.
      o  The gateway may delete its header and send a packet forward.

   Temporary labels, which are distributed on the first and second step
   of a connection establishment, MUST be stateless labels.

   On the third and fourth step, the endpoints must save an explicit
   route of the received packets for use at reconnection and in sending
   the subsequent traffic of data.  The sequence from the received
   packet must be changed on back.

   One gateway in each direction may delete the transport address of the
   sender from addresses header.  For this purpose, the gateway must
   save in state variables the transport address or a route up to an
   endpoint and relate this information with the allocated label.  The
   endpoint must know about removal of the source address and compute
   the packet checksum without it.  The interaction question of endpoint
   and a gateway, which deletes the address of the sender, is beyond the
   scope of this document.  At removal of the address, it is necessary
   to take into account, that not all services of the upper layer
   provide an opaque addressing.

6.2.2      Data Transfer

   Packets contain the short-cut routing information after a connection
   establishment.  Address objects from packets with last connection
   establishment commands must be optimized by the following rules:

      o  The label without the gateway address MUST NOT follows the
         gateway address without label (the gateway without label can
         forward packets only on the basis of transport addresses)



Bogdanov                  Expires: January 2003                [Page 46]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      o  After a label with I = 0 (the label does not define direct hop
         up to the following gateway), the object with the transport
         address (gateway header or addresses header) must be located.
      o  If all route consists of labels with I = 1, the packet must not
         contain transport addresses of gateways and endpoints.
      o  If last gateway in a route has set I = 1 (i. e. the label
         allocated by it defines direct hop up to the endpoint), the
         packet must not contain addresses header.  The packet MUST
         contain addresses header in all other cases.  If the packet
         does not contain an explicit route, the sender endpoint is
         considered as last gateway of an explicit route.  If it sends a
         packet immediately to receiver endpoint, the packet MUST NOT
         contains addresses header.
      o  If at current label N = 1 (the gateway saves the following
         address object), the following address object deletes from a
         stack.

   At processing entering packets after a connection establishment, the
   gateway must execute the following logic:

      o  Gateways Options are looked through, since the first.
      o  If the label is the first unprocessed address object the packet
         is forwarded on value of this label.
      o  If the gateway header with label (without the transport address
         or with the address of this gateway) is the first address
         object, the label is processed also, as in the previous item.
         In addition, the header can contain the subordinated options,
         which must be processed.
      o  If the label has incorrect value or the first unprocessed
         object is the label and a gateway does not allocate labels, the
         packet is silently discarded.
      o  If the first unprocessed address object is the header of other
         gateway with the transport address (with or without label) or
         the address of the endpoint from addresses header, forwarding
         will be realized based on transport addresses.
      o  The processed address object in stack top deletes at
         forwarding.
      o  If the gateway saves address object of the following gateway,
         this object must be added in packet front.
      o  Gateways headers with W = 1 are not processed, if they concern
         to other gateway.

6.2.3   Reconnection

   The reconnection reason is:

      o  Route restoration after the long inactivity period of
         endpoints.



Bogdanov                  Expires: January 2003                [Page 47]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


      o  Necessity of change of a route through the gateways fixed in a
         route by breakdown one of them.
      o  Necessity of change of resources reservation parameters.
      o  Dynamic reduction of PMTU value.

   Reinstalled connection MUST have the same constant values of
   connection identifiers, as initial.  Primary connection is
   reinstalled only.  Secondary connections begin to use new labels
   and/or a route without sending special primitives.  Reconnection
   commands are formed as gateway options.  In a packet, they are
   located before options of an explicit route.  All packets contain
   next sequence number.  Reconnection does not change packets numbers
   sequence of connection.

   Everywhere in the text of this document, the reconnection commands
   are equivalent to connection establishment commands if other logic is
   not defined separately.

   Any endpoint of connection can be the reconnection initiator.  In
   case of counter reconnection, the initiator of the initial (first)
   connection has advantage.  Counter packets of reconnection from the
   responder are silently discarded.

6.2.3.1 REINIT, REINIT-ACK

   The REINIT and REINIT-ACK commands are used for reconnection and
   correspond to INIT and INIT-ACK commands of initial primary
   connection establishment.  They are formed as a gateway options, have
   an identical format and differ only in OPCODE value.  Packets with
   REINIT and REINIT-ACK commands must not include payload.  Fields of
   base header must have the following values:

      SEQUENCE_NUM -  Contains the current sequence number of
                      reinstalled connection.
      SERVICE_ID -    Contains the service identifier of the initial
                      primary connection.
      DATA_LENGTH =   0
      CONNECTION_ID - This field contains the identifier of initial
                      primary connection allocated by the packet
                      receiver.

   The option of REINIT and REINIT-ACK commands has the following
   format:








Bogdanov                  Expires: January 2003                [Page 48]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |RES_VER_FLAGS|F|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |RSV|         MIN_HL_PMTU       |RSV|            PMTU           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Fields of general format have the following values:

         E = 1
         D = 1
         G = 1
         HEAD_LENGTH = 1
         OPCODE =
                  16 for REINIT
                  17 for REINIT-ACK

      RES_VER_FLAGS: 7 bits

         The reserved versions flags.  Values of these bits are set to
         zero by sending.  If at receiving even one of them is set to 1,
         the packet must be silently rejected.

      F: 1 bit

         Flag of the protocol first version.  This bit MUST be set to 1.
         It sets the protocol version, which is defined in this
         document.


      RSV: 2 + 2 bits

         Reserved.  These fields should be set to zero on transmit and
         ignored on receipt.

      MIN_HL_PMTU: 14 bits

         Indicates the upper layer PMTU minimal size in 32-bit words
         (see section 5.1.1.1).

      PMTU: 14 bits

         Indicates PMTU size in 32-bit words (see section 5.1.1.1).

6.2.3.2 RECONNECT, RECONNECT-ACK




Bogdanov                  Expires: January 2003                [Page 49]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   RECONNECT and RECONNECT-ACK commands correspond to CONNECT and
   CONNECT-ACK commands of an initial connection establishment.  The
   packet containing these commands MAY contain an upper layer data.
   RECONNECT and RECONNECT-ACK are formed as gateways options, have an
   identical format and differ only in OPCODE value.  Fields of base
   header must have the following values:

      SEQUENCE_NUM -  Contains the current sequence number of
                      reinstalled connection.
      SERVICE_ID -    This field contains the service identifier of the
                      initial primary connection.
      DATA_LENGTH =   0 - 65535
      CONNECTION_ID - This field contains the identifier of initial
                      primary connection allocated by the packet
                      receiver.

   The option of RECONNECT and RECONNECT-ACK commands has the following
   format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     | INACTION_TIME |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Fields of general format have the following values:

         E = 1
         D = 1
         G = 1
         HEAD_LENGTH = 0
         OPCODE =
                  18 for RECONNECT
                  19 for RECONNECT-ACK

      INACTION_TIME: 8 bits.

         The reserved inactive time.  This field contains time interval
         in seconds at which expiration gateways will deallocate
         connection resources at absence of traffic (see section 6.8).

6.2.3.3 2-way Handshake

   2-way handshake reconnection is used, if it is necessary to renew
   data transmission after the expiration of reserved inactive time (see
   section 6.8) or if it is necessary to change reservation parameters.
   The primary goal is redistribution of labels with state.  2-way
   handshake reconnection repeats the third and fourth steps of a
   primary connection establishment.


Bogdanov                  Expires: January 2003                [Page 50]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



   The reconnection initiator sends RECONNECT command.  The packet with
   this command contains an initial route, which is formed in accordance
   with the following rule:

      o  For the initiator of initial connection, the explicit route
         from a packet with CONNECT-ACK command of initial connection
         (upside-down) takes.
      o  For the responder of initial connection, the explicit route
         from a packet with CONNECT command of initial connection takes.
      o  If reconnection is not the first, the explicit route from the
         previous accepted reconnection command takes.
      o  All labels with state delete from options of an explicit route.
      o  COOKIE-GATEWAY options and stateless labels are saved.

   All packets with reconnection commands must contain addresses header.
   The packet with RECONNECT command is processed on gateways the same
   as packet with CONNECT command.  Receiver of RECONNECT processes the
   received explicit route the same as a route from a packet with
   CONNECT command (see section 6.2.1).  For reconnection
   acknowledgement the packet with RECONNECT-ACK command is sent.  This
   command is processed by gateways as CONNECT-ACK command.

   The reconnection commands can contain payload.  The reconnection
   initiator can send the following packets with data before RECONNECT-
   ACK reception.  These packets must include an initial route and
   addresses header.  Required QoS cannot be guaranteed before
   RECONNECT-ACK reception.

   If lifetime even one gateway COOKIE from an explicit route of
   connection has expired, reconnection from two steps MUST NOT is used.
   In this case, reconnection from four steps is used.

6.2.3.4 4-way Handshake

   4-way handshake reconnection is used for a choice of a new connection
   explicit route through gateways for which the endpoint does not know
   current COOKIE values.  4-way handshake reconnection completely
   repeats algorithm of an establishment of starting primary connection.
   Commands correspondence are shown in the following table:











Bogdanov                  Expires: January 2003                [Page 51]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



   Primary       Corresponding
   Connection    Reconnection
   Command       Command
   ------------+-----------------
   INIT        | REINIT
   ------------+-----------------
   INIT-ACK    | REINIT-ACK
   ------------+-----------------
   CONNECT     | RECONNECT
   ------------+-----------------
   CONNECT-ACK | RECONNECT-ACK
   ------------+-----------------

   Reconnection packets use current sequence numbers of connection and
   current SPI.

6.2.4   Connections Termination through Gateway

   If the gateway has allocated to connection a stateless label, it must
   not supervise connection closing.  If a gateway has allocated a label
   with state, it may:

      (1)  Not trace connections closing and deallocate resources on the
           timer of reserved inactive time (see section 6.8).  As the
           gateway cannot check up the packet authentication data, it is
           RECOMMENDED to apply this way to the connections using an
           authentication.  It allows excluding a fake of connection
           closing commands.

      (2)  The gateway can trace connections termination.  Computing
           loading at a gateway grows in this case, as connections
           termination commands are formed as endpoint options and their
           analysis requires viewing of all packet headers.  Advantage
           is fast free of the resources.  If the gateway has allocated
           independent labels into everyone sides of connection, it
           deallocates resources immediately after reception any of
           DISCONNECT or DISCONNECT-ACK commands.  If the gateway has
           allocated one or the connected labels, resources are
           deallocated at reception of DISCONNECT-ACK command.

   If connection has ceased to use a gateway because of reconnection
   procedure, the gateway deallocates resources on the timer of reserved
   inactive time.

   At using of initial connection, reconnection is allowed.  Endpoints
   must not use simultaneously more than four explicit routes in one
   connection.



Bogdanov                  Expires: January 2003                [Page 52]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


6.3  Use of symbolical addresses

   The transport address in symbolical representation (see section 3.3)
   may be written down to destination address only in a packet with the
   INIT command (first command of a connection establishment).  All
   other packets of the connection MUST have the destination address in
   a binary format.  The source address always MUST be in a binary
   format.

   Protocols, which allow gateways to define binary addresses from
   symbolical representations, lay beyond the scope of this document.
   Gateways must not modify packet addresses header.  By transferring a
   packet with the receiver symbolical address, the following logic MAY
   be used:

      (1)  The packet is sent to address of the defined gateway.  It can
           be a default gateway or the special gateway responsible for
           routing of packets with symbolical addresses.
      (2)  If the gateway can calculate the address binary format of the
           endpoint, it forms a packet explicit route.  Last gateway
           header contains the endpoint transport address in binary
           format.
      (3)  If the gateway cannot calculate the endpoint address, it adds
           its header in a packet and set W flag.  Addition is necessary
           to exclude routing loops.  After that, the packet is sent the
           following gateway.  If the following gateway address is
           unknown, the packet is silently discarded.

   At processing entering packets with INIT command, the endpoint must
   take into account that its address can be in last gateway header of
   an explicit route if the receiver address in addresses header has
   symbolical representation.

   Use of symbolical addresses in gateways headers is left opened for
   discussion.

6.4  DISCARDED-PACKET

   There are several reasons on which a gateway or an endpoint may
   reject connection packets.  As the discarded packet stops advance of
   confirmed cumulative sequence number, DISCARDED-PACKET option must be
   sent instead of the discarded packet.  A gateway or an endpoint may
   send this option.  A gateway sends an option in the same streamline
   in which it was necessary to send the rejected packet.  The gateway
   forms DISCARDED-PACKET as gateway option.  The endpoint must form
   DISCARDED-PACKET as endpoint option.  The option has the following
   format:




Bogdanov                  Expires: January 2003                [Page 53]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |    ERRCODE    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     DISCARDED_BLOCK_1_START   |     DISCARDED_BLOCK_1_END     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                                                               ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     DISCARDED_BLOCK_n_START   |     DISCARDED_BLOCK_n_END     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


      Fields of general format have the following values:

         E = 1
         D = 1
         G = 0
         HEAD_LENGTH = 0 - 255
         OPCODE = 20

      ERRCODE: 8 bits

         Error code of the discarded packet.  This value concerns to all
         packets numbers of this option.  The following values are
         defined:

            17  - connection is closed.  This error is formed by
                  endpoint at closing secondary connections.  After S-
                  DISCONNECT sending, the endpoint does not receive
                  entering packets of secondary connection.  Instead of
                  acknowledgements, DISCARDED-PACKET option is sent.
            133 - Packet size exceeds MTU.
            134 - SERVICE_ID value is not connected with active service.
                  Such error may be generated for a packet with BIND
                  command or by sending through 0 - connection of the
                  connectionless data.  A gateway (firewall) or an
                  endpoint may form an option with this error.
            135 - The packet is deleted because of gateway congestion.
                  The option with this error code may not contain a
                  range of the discarded packets.  In this case, it is
                  the warning of a possible congestion or the rejected
                  packet has not required acknowledgement.  The sending
                  of DISCARDED-PACKET option with this error code is
                  OPTIONAL.  This option NOT RECOMMENDED to be sent more
                  often, than once during RTT.


Bogdanov                  Expires: January 2003                [Page 54]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



      DISCARDED_BLOCK_n_START + DISCARDED_BLOCK_n_END: 16 + 16 bits

         These fields contain the beginning and the end (inclusive) the
         block of the discarded packets.  Their value is negative
         displacement from sequence number of the packet to which this
         option is attached.  Zero value is allowable.  If the block
         contains number of one packet, both fields MUST have one value.

   The receiver endpoint of the discarded packet after reception of
   DISCARDED-PACKET option sends this option back to the sender of
   rejected packet.  Exception is inadmissible SERVICE_ID value in a
   packet with BIND command.  This command is confirmed by special
   packet.  Therefore the receiver of DISCARDED-PACKET with ERRCODE =
   134 only includes number of the discarded packet in cumulative
   acknowledgement number of the following packet.

   The sender of the discarded packet must send the same packet
   repeatedly after reception of DISCARDED-PACKET option.  If repeated
   sending is impossible, DISCARDED-PACKET option is ignored.  At
   reception DISCARDED-PACKET for packets of the closed connection
   (ERRCODE = 17), repeated sending is not carried out.

   If the message on congestion is received, it is necessary to execute
   procedures of congestions control (see section 5.3).

   If the data receiver before reception of DISCARDED-PACKET option has
   received even one correct packet from a range specified in the
   option, option is considered erroneous and is ignored.

6.5  NEW-PMTU

   NEW-PMTU option is used for measurement of current PMTU.  It is
   formed as gateway option and has the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |    RESERVED   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |RSV|         MIN_HL_PMTU       |RSV|            PMTU           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Fields of general format have the following values:

         E = 1
         D = 1
         G = 1
         HEAD_LENGTH = 1


Bogdanov                  Expires: January 2003                [Page 55]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


         OPCODE = 21

      RESERVED + RSV + RSV: 8 + 2 + 2 bits

         Set to zero on transmit and ignored on receipt

      MIN_HL_PMTU: 14 bits

         Indicates the upper layer PMTU minimal size in 32-bit words
         (see section 5.1.1.1).

      PMTU: 14 bits

         Indicates PMTU size in 32-bit words (see section 5.1.1.1).

   If the gateway cannot transfer on connection a packet because of
   dynamic reduction PMTU, it forms simultaneously two options: NEW-PMTU
   and DISCARDED-PACKET with ERRCODE = 133.  Then these options will be
   sent together as it is described in section 6.4.

6.6  GATEWAY-ERROR

   GATEWAY-ERROR option is used by gateways for sending the message on a
   critical error by sending of a connection packet.  GATEWAY-ERROR is
   formed as gateway option and has the following format:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 0 1 0 1|E|D|G|  HEAD_LENGTH  |    OPCODE     |    ERRCODE    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Fields of general format have the following values:

         E = 1
         D = 1
         G = 0
         HEAD_LENGTH = 0
         OPCODE = 22

      ERRCODE: 8 bits

         Contains an error code (see section 6.7).

   The gateway must send GATEWAY-ERROR in a direction of sending a
   packet, which has caused an error.  Back message error sending is not
   stipulated.  If the gateway cannot send a packet forward, it must
   discard it silently.



Bogdanov                  Expires: January 2003                [Page 56]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   GATEWAY-ERROR option concerns to primary connection and everything
   connected with it secondary connections.  It can be transmitted on
   any of these connections.

   The gateway at packet receiving with GATEWAY-ERROR option executes
   simple forwarding.  If the packet contains a connection establishment
   command, the gateway must not reserve resources for connection and
   allocate a label.

   The endpoint at receiving GATEWAY-ERROR option carries out the
   following actions:

      o  If the option is received in a packet with INIT command, the
         packet containing INIT-ACK and DISCONNECT commands is sent.
         The receiver of the packet with INIT-ACK + DISCONNECT considers
         connection not established.
      o  GATEWAY-ERROR option in a packet with INIT-ACK command does not
         finish connection immediately if it is expected, that the
         packet with INIT-ACK should contain an authentication data.  In
         this case, the same packet with INIT command is repeatedly sent
         and during the set timeout, INIT-ACK command is expected.  If
         correct INIT-ACK command is received, the packet with GATEWAY-
         ERROR is silently discarded.  If the authentication is not
         used, connection is closed immediately at reception of GATEWAY-
         ERROR option.
      o  GATEWAY-ERROR option received with any packet since the third
         step of connection establishment initiates connection
         termination (see section 5.1.6), or reconnection (see section
         6.2.3.4).
      o  If GATEWAY-ERROR is received in the packet duplicate, the
         option is not processed and a packet is silently discarded.

6.7  Gateway Error Codes

   The following errors codes, which can be contained in ERROR-CODE
   field of GATEWAY-ERROR option are defined:

      15 - Not supported protocol version.
      129 - A gateway label cannot be allocated.
      130 - The gateway cannot provide the requested QoS.
      131 - Erroneous gateway label.
      132 - Erroneous gateway COOKIE.

6.8  Activity Control

   Reserved inactive time (RIT) is used for dynamic deallocating of the
   network resources allocated for EHTP connections.  RIT value is set
   by the connection initiator in CONNECT command.  The responder can
   reduce this time in CONNECT-ACK command.  If changed RIT does not


Bogdanov                  Expires: January 2003                [Page 57]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   suit to the initiator, it must begin connection closing procedure
   with ERRCODE = 6.

   RIT is used only if there is even one gateway in the connection
   route, which has allocated a label to this connection and has set S
   flag.  As direct and back route can differ, endpoints must agree upon
   RIT value irrespective of gateways presence.  At the activity
   control, primary connections and everything connected with it
   secondary connections are considered as one connection.

   Gateway reset RIT timer at receipt of any connection packet from any
   direction.  Traffic in everyone side is traced separately, if the
   gateway has allocated independent labels in each side of connection.
   The endpoint uses the following logic:

      (1)  The value = RIT - 4 * max (RTT) is used.  This value must be           corrected at change RTT.
      (2)  Acknowledgements of packets are taken into account only.
      (3)  RIT timer is corrected for the time of sending last confirmed
           packet.

   If RIT timer has expired, the gateway must deallocate resources
   occupied with connection.  If the allocated label is used only for
   this connection, it must be deleted or marked unused.  The gateway
   can use this label for other connection or a route at once.  At
   deallocation connection resources, the gateway must not send network
   primitives.

   If the gateway has allocated a stateless label (S = 0), it MUST NOT
   supervise RIT.

   The endpoint at end of corrected RIT timer must note the connection
   route as closed.  At that connection is not terminated and network
   primitives are not sent.  If it is necessary to send data on
   connection in the subsequent, procedure of reconnection (see section
   6.2.3.3) should be executed.

   The procedures connected with the activity control, resources
   deallocating on gateways and reconnection are transparent for the
   upper layer and do not result in connections closing.

   The endpoint for maintenance of route activity at upper layer traffic
   absence sends a packet of cumulative acknowledgement (see section
   5.2.1) with the set P pushing flag.  The receiver of such packet must
   immediately send a cumulative acknowledgement packet with not set P
   flag.  The connection initiator must respond activity through an time
   interval = RIT - 8 * max(RTT), and the responder through an interval   = RIT - 6 * RTT.


Bogdanov                  Expires: January 2003                [Page 58]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   It is not recommended to set RIT less, than 16 * RTT.  For a global
   network, 6-second value is recommended.  For best-effort traffic, it
   is RECOMMENDED to set minimal RIT value and it is NOT RECOMMENDED to
   provide a route in an active state at absence of the upper layer
   traffic.

7  Security Consideration

   EHTP defines connection establishment with two parameters, which can
   have casual value: the connection identifier and the initial sequence
   number.  To participate in connection, the node should know both
   values allocated by other node.  It is recommended, that even initial
   sequence number have difficultly predicted value.

   For security increase from DoS attacks, EHTP does not provide data
   buffering at its layer.  The decision on denial of service is taken
   on the applications layer.  Thus, the endpoint can have the increased
   stability to refusals for priority-driven connections.  Refusal of
   buffering does not exclude attacks to gateways.  Nevertheless, the
   gateway can consider separate connections, as prioritized (for
   example, connections with authorization or with QoS).  Besides, the
   gateway with state can trace a policy of congestions control which
   endpoints adhere.

   COOKIE mechanism is used for protection an overload of a gateway with
   state.  If the attacking node can listen the traffic and form packets
   with the forged source address, this protection is inefficient.
   Presence of the protected channel between a gateway and an endpoint
   can be effective only.  If the gateway and endpoint have exchanged
   with SPI values, they can use it within the frameworks of EHTP
   protocol.  For this purpose, the protocol should be added with
   special gateway header or COOKIE option.  This question is not
   considered in the document and left opened for discussion.

   EHTP does not provide independent formation of packets by gateways.
   The gateway can only add unsigned options to the packets generated by
   endpoints, and to send these packets only forward.  It has the
   principle meaning for the connections using an authentication in
   networks, where the attacking node can form packets with the forged
   source address, but cannot modify packets.  It is supposed, that the
   correct packet will achieve the receiver earlier, than the forged
   duplicate and the duplicate will be rejected.  This document defines,
   that all duplicates and incorrect packets must be silently discarded
   without any further action.  Security from attacks is considered as
   priority-driven problem in comparison with algorithm optimality.

   Primary connection can be used as transit for the forged packets of
   secondary connections.  The authentication is the protection against
   this kind of attacks.  In any case, at using of the checksum instead


Bogdanov                  Expires: January 2003                [Page 59]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


   of authentication, the protocol has no effective protection against
   the attacking node, which is in CSMA network, through which packets
   of connection pass.

   For protection against "man-in-the-middle" attacks, the following
   variants are possible:

      o  Using authentication at EHTP layer.  At that, existing keys
         control protocols can be transferred on EHTP transport without
         changes.  It will give a possibility of end-to-end protection
         even if endpoints are located in the networks incompatible at a
         network layer.
      o  Protection at applications layer.
      o  Using IPsec, if endpoints are in IP network.  Application of
         EHTP gateway functions, which require modification a packet, is
         impossible in this case.
      o  EHTP can be added with end-to-end enciphering means with
         definition of a new format of basic header.

8  References


   [1]  Bradner, S., "The Internet Standards Process -- Revision 3", BCP
        9, RFC 2026, October 1996.

   [2]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", RFC 2119, March 1997.

   [3]  Postel, J., "User Datagram Protocol", STD 6, RFC 768, August
        1980.

   [4]  Postel, J., "Transmission Control Protocol - DARPA Internet
        Program Protocol Specification", STD 7, RFC 793, September 1981.

   [5]  Bogdanov, A., "Unified Memory Space Protocol Specification", RFC
        3018, December 2000.

   [6]  Allman, M., Paxson, V. and W. Stevens, "TCP Congestion Control",
        RFC 2581, April 1999.

   [7]  Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer,
        H., Taylor, T., Rytina, I., Kalla, M., Zhang, L. and V. Paxson,
        "Stream Control Transmission Protocol", RFC 2960, October 2000.

   [8]  Karn, P. and W. Simpson, "Photuris: Session-Key Management
        Protocol", RFC 2522, March 1999.

   [9]  Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191,
        November 1990.


Bogdanov                  Expires: January 2003                [Page 60]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002



   [10] McCann, J., Deering, S. and J. Mogul, "Path MTU Discovery for IP
        version 6", RFC 1981, August 1996.

   [11] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982,
        August 1996.

   [12] Kent, S. and R. Atkinson, "Security Architecture for the
        Internet Protocol", RFC 2401,  November 1998.

   [13] Kent, S. and R. Atkinson, "IP Authentication Header", RFC 2402,
        November 1998.

   [14] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6)
        Specification", RFC 2460, December 1998.

   [15] Dawkins, S., Montenegro, G., Kojo, M., Magret, V. and Vaidya,
        N., "End-to-end Performance Implications of Links with Errors",
        RFC 3155, August 2001.

   [16] ITU-T Recommendation V.42, "Error-correcting procedures for DCEs
        using asynchronous-to-synchronous conversion", October 1996.

   [17] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol Label
        Switching Architecture", RFC 3031, January 2001.

   [18] Doria, A., Sundell, K., Hellstrand, F. and T. Worster, "General
        Switch Management Protocol (GSMP) V3", RFC 3292, June 2002.

   [19] Awduche, et al, "RSVP-TE: Extensions to RSVP for LSP Tunnels",
        RFC 3209, December 2001.

   [20] Paxson, V. and M. Allman, "Computing TCP's Retransmission
        Timer", RFC 2988, November 2000.

   [21] Larzon, Lars-Ake, Degermark, Mikael and Pink, Stephen, "The UDP
        Lite Protocol", Work in Progress.

9  Author's Address

   Alexander Bogdanov

   23-126, Generala Kuznetsova St.
   Moscow, Russia 109153
   RU

   Phone: +7 095 706 1002
   Email: a_bogdanov@s-mail.com



Bogdanov                  Expires: January 2003                [Page 61]


Internet-Draft       End-by-Hop Transmission Protocol          July 2002


10 Full Copyright Statement

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS 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.
























Bogdanov                  Expires: January 2003                [Page 62]