home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc0726.txt < prev    next >
Text File  |  1996-05-07  |  40KB  |  586 lines

  1.       NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  2.  
  3.  
  4.  
  5.      Network Working Group             Jon Postel & Dave Crocker      Request for Comments: 726            SRI-ARC      UC Irvine      NIC: 39237                                     8 March 1977 
  6.  
  7.                    Remote Controlled Transmssion and Echoing Telnet Option 
  8.  
  9.                                                                         1 
  10.  
  11.      1.  Command name and code:                                        2 
  12.  
  13.        RCTE 7                                                         2a 
  14.  
  15.      2.  Command meanings:                                             3 
  16.  
  17.        IAC WILL RCTE                                                  3a 
  18.  
  19.          The sender of this command REQUESTS or AGREES to use          the RCTE option, and will send instructions for          controlling the other side's terminal printer.              3a1 
  20.  
  21.        IAC WON'T RCTE                                                 3b 
  22.  
  23.          The sender of this option REFUSES to send instructions          for controlling the other side's terminal printer.          3b1 
  24.  
  25.        IAC DO RCTE                                                    3c 
  26.  
  27.          The sender REQUEST or AGREES to have the other side          (sender of WILL RCTE) issue commands which will control          his (sender of the DO) output to the terminal printer.      3c1 
  28.  
  29.        IAC DON'T RCTE                                                 3d 
  30.  
  31.          The sender of this command REFUSES to allow the other          side to control his (sender of DON'T) terminal printer.     3d1 
  32.  
  33.        IAC SB RCTE <cmd> [BC1 BC2] [TC1 TC2] IAC SE                   3e 
  34.  
  35.          where:                                                      3e1 
  36.  
  37.            <cmd> is one 8-bit byte having the following flags            (bits are counted from the right):                       3e1a 
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.                                                                 [page 1]
  46.  
  47.  
  48.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  49.  
  50.  
  51.  
  52.            Bit  Meaning                                             3e1b 
  53.  
  54.             0   0 = Ignore all other bits in this byte and                     repeat the last <cmd> that was sent. Equals                     a 'continue what you have been doing'.                 1 = Perform actions as indicated by other bits                     in this byte.                                   3e1c 
  55.  
  56.             1   0 = Print (echo) break character                 1 = Skip (don't echo) break character               3e1d 
  57.  
  58.             2   0 = Print (echo) text up to break character                 1 = Skip (don't echo) text up to break character    3e1e 
  59.  
  60.             3   0 = Continue using same classes of break                     characters.                 1 = The two 8-bit bytes following this byte                     contain flags for the new break classes.        3e1f 
  61.  
  62.             4   0 = Continue using same classes of transmit                     characters.                 1 = Reset transmit classes according to the two                     bytes following 1) the break classes bytes,                     if the break classes are also being reset,                     or 2) this byte, if the break classes are                     NOT also being reset.                           3e1g 
  63.  
  64.            Value (decimal) of the <cmd> byte and its meaning:       3e1h 
  65.  
  66.            0 = Continue what you have been doing                    3e1i 
  67.  
  68.            Even numbers greater than zero (i.e. numbers with the            right most bit off) are in error and should be            interpreted as equal to zero. When the <cmd> is an            even number greater than zero, classes bytes TC1 &            TC2 and/or BC1 & BC2 must not be sent.                   3e1j 
  69.  
  70.            1 = Print (echo) up to AND INCLUDING break character     3e1k 
  71.  
  72.            3 = Print up to break character and SKIP (don't echo)                break character                                      3e1l 
  73.  
  74.            5 = Skip text (don't echo) up to break character, but                PRINT break character                                3e1m 
  75.  
  76.            7 = Skip up to and including break character             3e1n 
  77.  
  78.            Add one of the previous non-zero values to one of the            following values, to get the total decimal value for 
  79.  
  80.  
  81.  
  82.                                                                 [page 2]
  83.  
  84.  
  85.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  86.  
  87.  
  88.  
  89.            the byte (Note that classes may not be reset without            also resetting the printing action; so an odd number            is guaranteed):                                          3e1o 
  90.  
  91.            8 = Set break classes (using the next two bytes [BC1                BC2])                                                3e1p 
  92.  
  93.            16 = Set transmission classes (using the next two                bytes [TC1 TC2])                                     3e1q 
  94.  
  95.            24 = Set break classes (using the next two bytes [BC1                BC2]) and the transmission classes (using the two                bytes after that [TC1 TC2]).                         3e1r 
  96.  
  97.          Sub-commands (IAC SB RCTE...) are only sent by the          controlling host and, in addition to other functions,          functionally replace the Go-Ahead (IAC GA) Telnet          feature. RCTE also functionally replaces the Echo (IAC          ECHO) Telnet option. That is the Suppress Go-Ahead          option should be in force and the Echo option should          not be in force while the RCTE option is in use. The          echo mode on terminating use of the RCTE option should          be the default state, that is DON'T ECHO, WON'T ECHO.       3e2 
  98.  
  99.          Classes for break and transmission (the right-most bit          of the second byte (TC2 or BC2) represents class 1; the          left-most bit of the first byte (TC1 or BC1) represents          the currently undefined class 16:                           3e3 
  100.  
  101.            1: Upper-Case Letter (A-Z)                               3e3a 
  102.  
  103.            2: Lower-case Letters (a-z)                              3e3b 
  104.  
  105.            3: Numbers (0-9)                                         3e3c 
  106.  
  107.            4: Format Effectors (<BS> <CR> <LF> <FF> <HT> <VT>)      3e3d 
  108.  
  109.              The sequence <cr><lf> counts as one character when                 processed as the Telnet end of line, and is a                 single break character when class 4 is set. The                 sequence <cr><nul> counts as one character and                 is a break character if and only if <cr> is a                 break character (i.e. class 4 is set). 
  110.  
  111.            5: Non-format Effector Control Characters including               <DEL> and <ESC>                                       3e3e 
  112.  
  113.            6: . , ; : ? !                                           3e3f 
  114.  
  115.  
  116.  
  117.                                                                  [page 3]
  118.  
  119.  
  120.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  121.  
  122.  
  123.  
  124.            7: { [ ( < > ) ] }                                       3e3g 
  125.  
  126.            8: ' "  / \ % @ $ & # + - * = ^ _ | ~                    3e3h 
  127.  
  128.            9: <Space>                                               3e3i 
  129.  
  130.            And Telnet commands (IAC . . .) sent by the user are            always to have the effect of a break character. That            is, every instance of an IAC is to be treated as a            break character, except the sequence IAC IAC.            3e3j 
  131.  
  132.          The representation to be displayed when printing is          called for is the obvious one for the visible          characters (classes 1, 2, 3, 6, 7, and 8). Space (class          9) is represented by a blank space. The format          effectors (class 4) by their format effect. The          non-format effector controls (class 5) print nothing          (no space).                                                 3e4 
  133.  
  134.          Initially no break classes or transmission classes are          in effect.                                                  3e5 
  135.  
  136.          Please note that if all the bits are set in a Telnet          subcommand argument byte such as TC2 or BC2 then that          byte must be preceeded by an <IAC> flag byte. This is          the common convention of doubling the escape character          to use its value as data.                                   3e6 
  137.  
  138.          Sub-commands (IAC SB RCTE...) are refered to as "break          reset commands".                                            3e7 
  139.  
  140.      3.  Default:                                                      4 
  141.  
  142.        WON'T RCTE -- DON'T RCTE                                       4a 
  143.  
  144.          Neither host asserts special control over the other          host's terminal printer.                                    4a1 
  145.  
  146.      4.  Motivation for the option:                                    5 
  147.  
  148.        RFC's 1, 5 and 51 discuss Network and process efficiency        and smoothness.                                                5a 
  149.  
  150.        RFC 357, by John Davidson, introduces the problem of        echoing delay that occurs when a remote user accesses a        full-duplex host, thru a satellite link. In order to save        the many thousands of miles of transit time for each        echoed character, while still permitting full server        responsiveness and clean terminal output, an echo control 
  151.  
  152.  
  153.  
  154.                                                                 [page 4]
  155.  
  156.  
  157.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  158.  
  159.  
  160.  
  161.        similar to that used by some time-sharing systems is        suggested for the entire Network.                              5b 
  162.  
  163.          In effect, the option described in this document          involves making a using host carefully regulate the          local terminal printer according to explicit          instructions from the remote (serving) host.                5b1 
  164.  
  165.        An important additional issue is efficient Network        transmission. Implementation of the Davidson Echoing        Scheme will eliminate almost all server-to-user echoing.       5c 
  166.  
  167.          The option described in this document also requests          using hosts to buffer a terminal's input to the serving          host until it forms a useful unit (with "useful unit"          delimited by break or transmission characters as          described below). Therefore, fewer messages are sent on          the user-to-server path.                                    5c1 
  168.  
  169.        N.B.:  This option is only intended for use with        full-duplex hosts. The Go-Ahead Telnet feature is        completely adequate for half-duplex server hosts. Also,        RCTE should be used in place of the ECHO Telnet option.        That is the Suppress Go-Ahead option should be in force        and the Echo option should not be in force while the RCTE        option is in use.                                              5d 
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                  [page 5]
  196.  
  197.  
  198.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  199.  
  200.  
  201.  
  202.      5.  Explicit description of control mechanism:                    6 
  203.  
  204.        User Terminal Printing Action & Control Procedure              6a 
  205.  
  206.          Negotiate the use of the RCTE option. Once the option          is in force the user Telnet follows the following          procedure.                                                  6a1 
  207.  
  208.          1) Read an item from the network.                           6a2 
  209.  
  210.            If the item is data, then print it and go to 1.          6a2a 
  211.  
  212.            If the item is a command, then set the classes and go            to 2.                                                    6a2b 
  213.  
  214.          2) If the terminal input buffer is empty, then go to 3,          else go to 4.                                               6a3 
  215.  
  216.          3) Wait for an item to appear either from the terminal          or from the network.                                        6a4 
  217.  
  218.            If an item appears from the terminal, then go to 4.      6a4a 
  219.  
  220.            If a data item appears from the network, then print            it and go to 3.                                          6a4b 
  221.  
  222.            If a command appears from the network, then an error            has occured.                                             6a4c 
  223.  
  224.          4) Read an item from the terminal input buffer.             6a5 
  225.  
  226.            If the item is not a break, then print/skip it and go            to 2.                                                    6a5a 
  227.  
  228.            If the item is a break, then print/skip it and go to            1.                                                       6a5b 
  229.  
  230.          Note:  Output from the server host may occur at any          time, such "spontaneous output" is printed in step 3.       6a6 
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.                                                                 [page 6]
  245.  
  246.  
  247.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  248.  
  249.  
  250.  
  251.        Explanation:                                                   6b 
  252.  
  253.          Both Hosts agree to use the RCTE option. After that,          the using host (IAC DO RCTE) merely acts upon the          controlling (serving) host's commands and does not          issue any RCTE commands unless and until it (using          host) decides to stop allowing use of the option (by          sending IAC DON'T RCTE).                                    6b1 
  254.  
  255.          1)  The using host is synchronized with the server by          initially and when ever it returns to step 1 suspending          terminal echo printing until it receives a command from          the server.                                                 6b2 
  256.  
  257.          The server may send either output to the terminal          printer or a command, and usually sends a both.             6b3 
  258.  
  259.          The server may send output to the terminal printer          either in response to user input or spontaneously. In          the former case, the output is processed in step 1. In          the latter case, the output is processed in step 3.         6b4 
  260.  
  261.          Server sends an RCTE command. The command may redefine          break and transmission classes, action to be performed          on break characters, and action to be performed on          text. Each of these independent functions is controlled          by separate bits in the <cmd> byte.                         6b5 
  262.  
  263.            A transmission character is one which RECOMMENDS that            the using host transmit all text accumulated up to            and including its occurrence. (For network            efficiency, using hosts are DISCOURAGED (but not            prohibited) from sending before the occurrence of a            transmission character, as defined at the moment the            character is typed).                                     6b5a 
  264.  
  265.              If the transmission classes bit (bit 4) is on, the              two bytes following the two break classes bytes (or              immediately following the <cmd> byte, if the break              classes bit is not on) will indicate what classes              are to be enabled. 
  266.  
  267.              If the bit is OFF, the transmission classes remain              unchanged. When the RCTE option is first initiated,              NO CLASSES are in effect. That is, no character              will be considered a transmission character. (As if              both TC1 and TC2 are zero.)             A break character REQUIRES that the using host 
  268.  
  269.  
  270.  
  271.                                                                 [page 7]
  272.  
  273.  
  274.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  275.  
  276.  
  277.  
  278.            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.                                  6b5b 
  279.  
  280.              If the break classes bit (bit 3) is on, the two              bytes following <cmd> will indicate what classes              are to be enabled. There are currently nine (9)              classes defined, with room for expansion. 
  281.  
  282.              If the bit is OFF, the break classes remain              unchanged. When the RCTE option is initiated, NO              CLASSES are to be in effect. That is, no              transmission will take place in the user to server              direction until the first break reset command is              received by the user from the server. 
  283.  
  284.            The list of character classes, used to define break            and transmission classes are listed at the end of            this document, in the Tables Section.                    6b5c 
  285.  
  286.            Because break characters are special, the            print/discard action that should be performed upon            them is not always the same as should be performed            upon the rest of the input text.                         6b5d 
  287.  
  288.              For example, while typing a filename to TENEX, I              want the text of the filename to be printed              (echoed); but I do not want the <escape> (if I use              the name completion feature) to be printed. 
  289.  
  290.              If bit 1 is ON the break character is NOT to be              printed. 
  291.  
  292.            A separate bit (bit 2) signals whether or not the            text itself should be printed (echoed) to the            terminal. If bit 2 = 0, then the text IS to be            printed.                                                 6b5e 
  293.  
  294.            Yet another bit (bit 0 - right-most bit) signals            whether or not any of the other bits of the command            should be checked. If this bit is OFF, then the            command should be interpreted to mean "continue            whatever echoing strategy you have been following,            using the same break and transmission classes."          6b5f 
  295.  
  296.  
  297.  
  298.                                                                 [page 8]
  299.  
  300.  
  301.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  302.  
  303.  
  304.  
  305.          2)  The user Telnet now checks the terminal input          buffer, if it contains data it is processed in step 4,          otherwise the user Telnet waits in step 3 for further          developments.                                               6b6 
  306.  
  307.          3)  The user Telnet waits until either the human user          enters some data in which case Telnet proceeeds to step          4, or an item is received from the network. If the item          from the network is data it is spontaneous output and          is printed, Telnet then continues to wait. If the item          from the network is a command then an error has          occured. In this case the user Telnet may attempt to          resynchronize the use of RCTE as indicated below.           6b7 
  308.  
  309.          4)  Items from the terminal are processed with printing          controlled by the settings of the latest break reset          command. When a break character is processed, the cycle          of control is complete and action re-commences at step          1.                                                          6b8 
  310.  
  311.          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 break reset command determines the break          actions.                                                    6b9 
  312.  
  313.          In summary, what is required is that for every break          character sent in the user to server direction there be          a break reset command sent in the server to user          direction. The user host initially has no knowledge of          which characters are break characters and so starts in          a state that assumes that there are no break characters          and also that no echoing is to be provided. The server          host is expected to send a break reset command to          establish the break classes and the echoing mode before          it receives any data from the user.                        6b10 
  314.  
  315.        Synchronization and Resynchronization:                         6c 
  316.  
  317.          The serving and using hosts must carefully synchronize          break 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 Using 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 
  318.  
  319.  
  320.  
  321.                                                                 [page 9]
  322.  
  323.  
  324.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  325.  
  326.  
  327.  
  328.          a break classes reset to the same class(es) as before.)          The break reset command may be preceded by terminal          output.                                                     6c1 
  329.  
  330.          The re-synchronization of the break characters and the          break reset commands is done via the exchange of the          Telnet signal Abort Output (AO) in the server to user          direction and the SYNCH in the user to server          direction.                                                  6c2 
  331.  
  332.          Suppose the server wants to resynchronize the break          characters and the break reset commands.                    6c3 
  333.  
  334.            a.  The server should be sure all output to the            terminal has been printed by using, for example, the            Timing Mark Option.                                      6c3a 
  335.  
  336.            b.  The server sends the AO signal.                      6c3b 
  337.  
  338.            c.  The user receives the AO signal. The user flushes            all user to server data wheather it has been echoed            or not. The user sends a SYNCH to the server. [The            SYNCH consists of the Telnet Data Mark (DM) and the            host-to-host interrupt (INS).] The user now enters            the initial state at step 1.                             6c3c 
  339.  
  340.            d.  The server receives the SYNCH and flushes any            data preceeding the DM (as always). The server now            sends a break reset command. (Actually the break            reset command could be sent at any time following the            AO.)                                                     6c3d 
  341.  
  342.          Suppose the user wants to resynchronize the break          characters and the break reset commands.                    6c4 
  343.  
  344.            a.  The user should discard all user to server data            wheather it has been echoed or not.                      6c4a 
  345.  
  346.            b.  The user sends the AO signal. The user now enters            the algorithm at step 1.                                 6c4b 
  347.  
  348.            c.  The server receives the AO signal. The server            discards all data buffered but not yet sent to the            user. The server sends a SYNCH to the user. The            server sends a break reset command to the user.          6c4c 
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.                                                                [page 10]
  357.  
  358.  
  359.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  360.  
  361.  
  362.  
  363.        Notes and Comments:                                            6d 
  364.  
  365.          Even-numbered commands, greater than zero, are in          error, since they will have the low-order bit off. The          command should be interpreted as equal to zero, which          means that any classes reset bytes ([TC1 TC2] [BC1          BC2]) will be in error. (The IAC SE, at the end of the          command, eliminates any parsing problems due to this          error.)                                                     6d1 
  366.  
  367.          Serving hosts will generally instruct using hosts not          to echo break characters, even though it might be          alright to echo most break characters. For example,          <cr> is usually a safe character to echo but <esc> is          not. TENEX Exec is willing to accept either, during          filename specification. Therefore, the using host must          be instructed not to echo any break characters.             6d2 
  368.  
  369.            This is generally a tolerable problem, since the            serving host has to send an RCTE command at this            point, anyhow. Adding an echo for the break character            to the message will not cause any extra network            traffic.                                                 6d2a 
  370.  
  371.          The RCTE Option entails a rather large overhead. In a          true character-at-a-time situation, this overhead is          not justified. But on the average, it should result in          significant savings, both in network traffic and host          wake-ups.                                                   6d3 
  372.  
  373.          Buffering Problems and Transmission vs. Printing          Constraints:                                                6d4 
  374.  
  375.            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.                                        6d4a 
  376.  
  377.            Additionally, the using host may send a break class            character, without knowing that it is one (as with            type-ahead).                                             6d4b 
  378.  
  379.              If the user implementation is clever it may send              the user entered data to the server before it is              actually needed. This type ahead data may contain              break characters. 
  380.  
  381.  
  382.  
  383.                                                                 [page 11]
  384.  
  385.  
  386.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  387.  
  388.  
  389.  
  390.              Assume that only space is a break character (that              is the last break reset command specified print up              to and including the break characters and set the              break classes to class 9). Suppose the user had              typed "abc<space>def<esc>ghi<cr>". The user side              RCTE could send it all to the server, but it could              print only "abc<space>", and would have to buffer              "def<esc>ghi<cr>" at least until a break reset              command was received from the server. That break              reset command could change the break ckasses              requiring rescanning the buffered string. 
  391.  
  392.              For example suppose the break reset command set the              break characters to class 5 and the action to print              up to but not including the break character. The              user RCTE could then print "def" and discard the              <esc>, but whould have to continue to buffer the              "ghi<cr>". 
  393.  
  394.            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.                                  6d4c 
  395.  
  396.            The more common problem of filling the transmission            buffer, while awaiting a host to host allocate from            the serving host, may also occur, but this problem is            well known to implementors and in no way special to            RCTE.                                                    6d4d 
  397.  
  398.            In any case, when the buffer does fill and further            text typed by the user will be lost, the user should            be notified (perhaps by ringing the terminal bell).      6d4e 
  399.  
  400.          Text should be buffered by the using host until the          user types a character which belongs to the          transmission class in force at the moment the character          is typed.                                                   6d5 
  401.  
  402.          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.                           6d6 
  403.  
  404.          It is not immediately clear what the using host should 
  405.  
  406.  
  407.  
  408.                                                                [page 12]
  409.  
  410.  
  411.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  412.  
  413.  
  414.  
  415.          do with currently buffered text, when a transmission          classes reset command is received. The buffering is          according to the previous transmission classes scheme.      6d7 
  416.  
  417.            The using host clearly should not simply wait until a            transmission character (according to the new scheme)            is typed.                                                6d7a 
  418.  
  419.            Either the buffered text should be rescanned, under            the new scheme;                                          6d7b 
  420.  
  421.            Or the buffered text should simply be sent as a            group. This is the simpler approach, and probably            quite adequate.                                          6d7c 
  422.  
  423.          It is possible to define NO BREAK CHARACTERS except          Telnet commands (IAC ...). This seems undesirable and          should not be done.                                         6d8 
  424.  
  425.            If this situation were to occur the using host should            send a Telnet command to allow the server to know            when he may reset the break classes, but the            mechanism is awkward and this case should be avoided.    6d8a 
  426.  
  427.      6.  Sample Interaction:                                           7 
  428.  
  429.        "S:" is sent from serving (WILL RCTE) host to using host.        "U:" is sent from using (DO RCTE) host to serving host.        "T:" is entered by the terminal user.        "P:" is printed on the terminal.                Text surrounded by square brackets ([]) is commentary.        Text surrounded by angle brackets (<>) is to be taken as        a single unit. E.g., carriage return is <cr>, and the        decimal value 27 is represented <27>.                          7a 
  430.  
  431.        The following interaction shows a logon to a Tenex,        initiation of the DED editor, insertion of some text and        the return to the Exec level.                                  7b 
  432.  
  433.          An attempt has been made to give some flavor of the          asynchrony of network I/O and the user's terminal          input. Many other possible combinations, using the same          set of actions listed below, could be devised. The          actual order of events will depend upon network and          hosts' load and the user's typing speed.                    7b1 
  434.  
  435.        We assume that the user's Telnet is also in an "insert        linefeed" mode. That is, whenever the user types carriage 
  436.  
  437.  
  438.  
  439.                                                                [page 13]
  440.  
  441.  
  442.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  443.  
  444.  
  445.  
  446.        return <cr> the user Telnet sends both carriage return        and linefeed <cr><lf> (the Telnet end of line signal).        When space character occurs at the end of a line in the        example description it is shown explicitly by <sp> to        avoid confusion. Other uses of the space character are        not so marked to avoid destroying the readability of the        example.                                                       7c 
  447.  
  448.        A Telnet connection has already been opened, but the        TENEX prompt has not yet been issued. The hosts first        discuss using the RCTE option:                                 7d 
  449.  
  450.          S: <IAC><WILL><RCTE>                                        7d1 
  451.  
  452.          U: <IAC><DO><RCTE>                                          7d2 
  453.  
  454.          S: TENEX 1.31.18, TENEX EXEC 1.50.2<cr><lf>@             <IAC><SB><RCTE><11><1><24><IAC><SE>                      7d3 
  455.  
  456.            [Print the herald and echo input text up to a break            character, but do not echo the break character.            Classes 4 (Format Effectors), 5 (Non-format Effector            Controls and <DEL>), and 9 (<sp>) act as break            characters.]                                             7d3a 
  457.  
  458.          P: TENEX 1.31.18, TENEX EXEC 1.50.2<cr><lf>@                7d4           T: LOGIN ARPA<cr>                                           7d5 
  459.  
  460.          P: LOGIN                                                    7d6 
  461.  
  462.          U: LOGIN<sp>                                                7d7 
  463.  
  464.          U: ARPA<cr><lf>                                             7d8 
  465.  
  466.          S: <sp><IAC><SB><RCTE><0><IAC>SE>                           7d9 
  467.  
  468.          P: <sp>ARPA                                                7d10 
  469.  
  470.          S: <cr><lf>(PASSWORD): <IAC><SB><RCTE><7><IAC><SE>         7d11 
  471.  
  472.          P: <cr><lf>(PASSWORD):<sp>                                 7d12 
  473.  
  474.          T: WASHINGTON 1000<cr>                                     7d13 
  475.  
  476.            [The password "WASHINGTON" is not echoed. Printing of            "1000<cr>" is withheld]                                 7d13a 
  477.  
  478.          U: WASHINGTON<sp>                                          7d14 
  479.  
  480.  
  481.  
  482.                                                                [page 14]
  483.  
  484.  
  485.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  486.  
  487.  
  488.  
  489.          U: 1000<cr><lf>                                            7d15 
  490.  
  491.          S: <sp><IAC><SB><RCTE><3><IAC><SE>                         7d16 
  492.  
  493.          S: <cr><lf>JOB 17 ON TTY41 7-JUN-73 14:13<cr><lf>@             <IAC><SB><RCTE><0><IAC><SE>                             7d17 
  494.  
  495.          P: <sp>1000                                                7d18 
  496.  
  497.            [Printing is slow at this point; so the account            number is not printed as soon as the server's command            for it is received.]                                    7d18a 
  498.  
  499.          P: <cr><lf>JOB 17 ON TTY41 7-JUN-73 14:13<cr><lf>@         7d19 
  500.  
  501.          T: DED<esc><cr>                                            7d20 
  502.  
  503.          P: DED                                                     7d21 
  504.  
  505.          U: DED<esc>                                                7d22 
  506.  
  507.          S: .SAV;1<IAC><SB><RCTE><0><IAC><SE>                       7d23 
  508.  
  509.          P: .SAV;1                                                  7d24 
  510.  
  511.          U: <cr><lf>                                                7d25 
  512.  
  513.          S: <cr><lf><lf>DED    3/14/73 DRO,KRK<cr><lf>:             <IAC><SB><RCTE><15><1><IAC><255><IAC><SE>               7d26 
  514.  
  515.            [The program is started and the DED prompt ":" is            sent. At the command level, DED responds to every            character. The server sets the break classes to all            classes.]                                               7d26a 
  516.  
  517.          P: <cr><lf><lf>DED    3/14/73 DRO,KRK<cr><lf>:             7d27 
  518.  
  519.          T: IThis is a test line.<cr>This is another test             line.<^Z>Q                                              7d28 
  520.  
  521.            ["I" means Insert Text. The text follows, terminated            by a Control-Z. The "Q" instructs DED to Quit.]         7d28a 
  522.  
  523.          U: I                                                       7d29 
  524.  
  525.          U: This is a test line.<cr><lf>                            7d30 
  526.  
  527.          S: I<cr><lf>*<IAC><SB><RCTE><11><0><24><IAC><SE>           7d31 
  528.  
  529.  
  530.  
  531.                                                                 [page 15]
  532.  
  533.  
  534.      NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237      Remote Controlled Transmission & Echoing Telnet Option 
  535.  
  536.  
  537.  
  538.            [DED prompts the user, during text input, with an            asterisk at the beginning of every line. The server            sets the break classes to classes 4 and 5, the format            effectors and the non-format effector controls.]        7d31a 
  539.  
  540.          P: I<cr><lf>*This is a test line.                          7d32 
  541.  
  542.          S: <cr><lf>*<IAC><SB><RCTE><0><IAC><SE>                    7d33 
  543.  
  544.          P: <cr><lf>*This is another test line.                     7d34 
  545.  
  546.          U: This is another test line.<^Z>                          7d35 
  547.  
  548.          U: Q                                                       7d36 
  549.  
  550.            [Note that the "Q" will not immediately be printed on            the terminal, since it must wait for authorization.]    7d36a 
  551.  
  552.          S: ^Z<cr><lf>:<IAC><SB><RCTE><15><1><IAC><255><IAC><SE>    7d37 
  553.  
  554.            [The returned "^Z" is two characters, not the ASCII            Control-Z or <sub>.]                                    7d37a 
  555.  
  556.          S: Q<cr><lf>@<IAC><SB><RCTE><11><1><24><IAC><SE>           7d38 
  557.  
  558.          P: Q<cr><lf>@                                              7d39 
  559.  
  560.          And the user is returned to the Exec level.                7d40 
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.                                                                 [page 16]
  585.  
  586.