RFC581

From RFC-Wiki




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





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



     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





        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




      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