Network Working Group                                         D. Crocker
Request for Comments: 581                                       UCLE-NMC
NIC: 19860                                                     J. Postel
References: RFC 560, RFC 563                                   MITRE-TIP
Categories: Protocols, TELNET, RCTE                        November 1973



                          Corrections to RFC 560
          Remote Controlled Transmission & Echoing TELNET Option

                                                                   1a

   [This RFC contains corrections to RFC 560 (NIC -- 18492,) which
   described the Remote Controlled Transmission and Echoing TELNET
   Option.  A completely updated version of 18492 has been journalized
   and will be included in the Protocols Notebook.  These new
   specifications for RCTE are in NIC document (19859,).]          2

   Section 1 of the RCTE Option specification (18492,2a:gy) was supposed
   to include the name and code for the option.  The code was
   accidentally left out.  That statement should read:
                                                                   3

      RCTE  7                                                      3a

   Section 2 should include the End of Subnegotiation Parameter, at the
   end of the subnegotiation parameter specification (18492,2b5:gy).
   All examples in the option specifications, showing RCTE SB commands,
   should also show the IAC SE parameter. (The revised RCTE
   specifications have been so changed.) Section 2 should be changed so
   that it reads:                                                  4

      IAC SB RCTE <cmd> [BC1 BC2] [TC1 TC2] IAC SE                 4a

   The sample scenario, in Section 5.D (18492,2e4:gy), should be
   modified to reflect the kind of asynchrony of events that can occur
   with the RCTE protocol.  The updated RCTE specifications (in --
   19859,1e4:gy) now reflects this.                                5

   In RFC 563 (18755,) John Davidson criticizes RCTE's apparent failure
   to allow Net I/O and server computation to overlap.             6

   I agree with John's criticisms and feel that the following should fix
   the problem:                                                    7






Crocker & Postel                                                [Page 1]


RFC 581         Remote Controlled Transmission & Echoing   November 1973


   1. Change 5.A (18492,2e1)                                       7a

      from:                                                        7a1

         Overview of Interaction                                   7a1a

      to:                                                          7a2

         Overview of User Terminal Printing Action & Control       7a2a

   2. Change 5.B.5.a (18492,2e2e1)                                 7b

      from:                                                        7b1

         A Transmission character is one which REQUIRES the User Host to
         transmit all text accumulated up to and including its
         occurrence. (For Net efficiency, User hosts are DISCOURAGED
         from sending before the occurrence of a Transmission
         character).                                               7b1a

      to:                                                          7b2

         A Transmission character is one which RECOMMENDS that the Using
         Host transmit all text accumulated up to and including its
         occurrence. (For Net efficiency, Using hosts are DISCOURAGED
         from sending before the occurrence of a Transmission character,
         as defined at the moment the character is typed).
         7b2a

   3. Change 5.B.5.b (18492,2e2e2)                                 7c

      from:                                                        7c1

         A Break character has the effect of a Transmission character,
         but also causes the Using host to stop its print/discard action
         upon the User's input text, until directed to do otherwise by
         another IAC SB RCTE <cmd> IAC SE command from the Serving host.
         Break characters therefore define printing units.  "Break
         character" as used in this document does NOT mean Telnet Break
         character.            7c1a

      to:                                                          7c2

         A Break character REQUIRES that the Using host transmit all
         text accumulated up to and including its occurrence and also
         causes the Using host to stop its print/discard action upon the
         User's input text, until directed to do otherwise by another
         IAC SB RCTE <cmd> IAC SE command from the Serving host.  Break



Crocker & Postel                                                [Page 2]


RFC 581         Remote Controlled Transmission & Echoing   November 1973


         characters therefore define printing units.  "Break character"
         as used in this document does NOT mean Telnet Break character.
         7c2a

   4. Change 5.B.6 (18492,2e2f)                                    7d

      from:                                                        7d1

         Input from the terminal is (hopefully) buffered up to the
         occurrence of a Transmission or Break character; and the input
         text is echoed or not echoed, up to the occurrence of a Break
         Character.  The most recent RCTE command determines the echo,
         Transmission and Break actions.                 7d1a

      to:                                                          7d2

         Input from the terminal is (hopefully) buffered into units
         ending with a Transmission or Break character; and echoing of
         input text is suspended after the occurrence of a Break
         Character and until receipt of a Break Reset command from the
         Serving host.  The most recent RCTE Break reset command
         determines the Break actions.                             7d2a

   5. Change 5.C.4 (18492,2e3d)                                    7e

      FROM:                                                        7e1

         A severe (User) site-dependent problem will be buffering type-
         ahead input from the terminal.  It is possible, especially in
         the case of TIPS, that the input buffer will overflow often.
         If the receiving (serving) host will permit, the accumulated
         text should be transmitted at this point.  If the text cannot
         be transmitted and further typing by the user will result in
         lost text, the user should be notified.    7e1a

      to:                                                          7e2

         Buffering Problems and Transmission vs. Printing Constraints:
         7e2a

            There are NO mandatory transmission constraints.  The Using
            host is allowed to send a character a time, though this
            would be a waste of RCTE.  The Transmission Classes commands
            are GUIDELINES, so deviating from them, as when the User's
            buffer gets full, is allowed.               7e2a1






Crocker & Postel                                                [Page 3]


RFC 581         Remote Controlled Transmission & Echoing   November 1973


            Additionally, the Using host may send a Break Class
            character, without knowing that it is one (as with type-
            ahead).                                           7e2a2

            The problem with buffering occurs when printing on the
            user's terminal must be suspended, after the user has typed
            a currently valid Break Character and until a Break Reset
            command is received from the serving host.  During this
            time, the user may be typing merrily along.  The text being
            typed may be SENT, but may not yet be PRINTED.   7e2a3

            The more standard problem of filling the transmission
            buffer, while awaiting an ALLOC from the Serving host, may
            also occur, but this problem is well known to implementors
            and in no way special to RCTE.            7e2a4

            In any case, when the buffer does fill and further text
            typed by the user will be lost, the user should be notified.
            7e2a5

   6. And add 5.C.5, 5.C.6, 5.C.7, 5.C.8, and 5.C.9 as follows:    7f

      (5) The Serving and Using hosts must carefully synchronize Break
          Class Reset commands with the transmission of Break
          characters.  Except at the beginning of an interaction, the
          Serving host MAY ONLY send a Break Reset command in response
          to the User host's having sent a Break character as defined at
          that time.  This should establish a one-to-one correspondence
          between them.  (A <cmd> value of zero, in this context, is
          interpreted as a Break Classes reset to the same class(es) as
          before.) The Reset command may be preceded by terminal output.
          7f1

      (6) Text should be buffered by the User host until the user types
          a character which belongs to the transmission class in force
          at THE MOMENT THE CHARACTER IS TYPED.            7f2

      (7) Transmission Class Reset commands may be sent by the Serving
          host at ANY TIME.  If they are frequently sent separate from
          Break Class Reset commands, it will probably be better to exit
          from RCTE and enter regular character at a time transmission.
          7f3

      8) It is not immediately clear what the Using host should do with
          currently buffered text, when a Transmission Classes Reset
          command is received.  The buffering is according to the
          previous Transmission Classes scheme.                 7f4




Crocker & Postel                                                [Page 4]


RFC 581         Remote Controlled Transmission & Echoing   November 1973


          The Using host clearly should NOT simply wait until a
          Transmission character (according to the new scheme) is typed.
          7f4a

          Either the buffered text should be rescanned, under the new
          scheme;                                                   7f4b

          Or the buffered text should simply be sent as a group.  This
          is the simpler approach, and probably quite adequate.     7f4c

      9) It is possible to define NO BREAK CHARACTERS except TELNET
          commands (IAC ...).  This might actually be useful, as in the
          case of transmitting on carriage-return, with the Using host
          echoing (a controlled half-duplex).                  7f5

          Having the using host send a Telnet Command will allow the
          serving host to know when he may reset the Break classes, but
          the mechanism is awkward and probably should be avoided.
          b 7e2
































Crocker & Postel                                                [Page 5]