File: rfc726.txt

package info (click to toggle)
doc-rfc 1999.08-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 68,428 kB
  • ctags: 6
  • sloc: sh: 2,491; perl: 390; makefile: 44
file content (943 lines) | stat: -rw-r--r-- 38,651 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



     Network Working Group             Jon Postel & Dave Crocker
     Request for Comments: 726            SRI-ARC      UC Irvine
     NIC: 39237                                     8 March 1977

     
     
       Remote Controlled Transmssion and Echoing Telnet Option


                                                                       1

     1.  Command name and code:                                        2

       RCTE 7                                                         2a

     2.  Command meanings:                                             3

       IAC WILL RCTE                                                  3a

         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

       IAC WON'T RCTE                                                 3b

         The sender of this option REFUSES to send instructions
         for controlling the other side's terminal printer.          3b1

       IAC DO RCTE                                                    3c

         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

       IAC DON'T RCTE                                                 3d

         The sender of this command REFUSES to allow the other
         side to control his (sender of DON'T) terminal printer.     3d1

       IAC SB RCTE <cmd> [BC1 BC2] [TC1 TC2] IAC SE                   3e

         where:                                                      3e1

           <cmd> is one 8-bit byte having the following flags
           (bits are counted from the right):                       3e1a







                                                                [page 1]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



           Bit  Meaning                                             3e1b

            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

            1   0 = Print (echo) break character
                1 = Skip (don't echo) break character               3e1d

            2   0 = Print (echo) text up to break character
                1 = Skip (don't echo) text up to break character    3e1e

            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

            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

           Value (decimal) of the <cmd> byte and its meaning:       3e1h

           0 = Continue what you have been doing                    3e1i

           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

           1 = Print (echo) up to AND INCLUDING break character     3e1k

           3 = Print up to break character and SKIP (don't echo)
               break character                                      3e1l

           5 = Skip text (don't echo) up to break character, but
               PRINT break character                                3e1m

           7 = Skip up to and including break character             3e1n

           Add one of the previous non-zero values to one of the
           following values, to get the total decimal value for



                                                                [page 2]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



           the byte (Note that classes may not be reset without
           also resetting the printing action; so an odd number
           is guaranteed):                                          3e1o

           8 = Set break classes (using the next two bytes [BC1
               BC2])                                                3e1p

           16 = Set transmission classes (using the next two
               bytes [TC1 TC2])                                     3e1q

           24 = Set break classes (using the next two bytes [BC1
               BC2]) and the transmission classes (using the two
               bytes after that [TC1 TC2]).                         3e1r

         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

         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

           1: Upper-Case Letter (A-Z)                               3e3a

           2: Lower-case Letters (a-z)                              3e3b

           3: Numbers (0-9)                                         3e3c

           4: Format Effectors (<BS> <CR> <LF> <FF> <HT> <VT>)      3e3d

             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).

           5: Non-format Effector Control Characters including
              <DEL> and <ESC>                                       3e3e

           6: . , ; : ? !                                           3e3f




                                                                [page 3]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



           7: { [ ( < > ) ] }                                       3e3g

           8: ' "  / \ % @ $ & # + - * = ^ _ | ~                    3e3h

           9: <Space>                                               3e3i

           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

         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

         Initially no break classes or transmission classes are
         in effect.                                                  3e5

         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

         Sub-commands (IAC SB RCTE...) are refered to as "break
         reset commands".                                            3e7

     3.  Default:                                                      4

       WON'T RCTE -- DON'T RCTE                                       4a

         Neither host asserts special control over the other
         host's terminal printer.                                    4a1

     4.  Motivation for the option:                                    5

       RFC's 1, 5 and 51 discuss Network and process efficiency
       and smoothness.                                                5a

       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



                                                                [page 4]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



       similar to that used by some time-sharing systems is
       suggested for the entire Network.                              5b

         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

       An important additional issue is efficient Network
       transmission. Implementation of the Davidson Echoing
       Scheme will eliminate almost all server-to-user echoing.       5c

         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

       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


























                                                                [page 5]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



     5.  Explicit description of control mechanism:                    6

       User Terminal Printing Action & Control Procedure              6a

         Negotiate the use of the RCTE option. Once the option
         is in force the user Telnet follows the following
         procedure.                                                  6a1

         1) Read an item from the network.                           6a2

           If the item is data, then print it and go to 1.          6a2a

           If the item is a command, then set the classes and go
           to 2.                                                    6a2b

         2) If the terminal input buffer is empty, then go to 3,
         else go to 4.                                               6a3

         3) Wait for an item to appear either from the terminal
         or from the network.                                        6a4

           If an item appears from the terminal, then go to 4.      6a4a

           If a data item appears from the network, then print
           it and go to 3.                                          6a4b

           If a command appears from the network, then an error
           has occured.                                             6a4c

         4) Read an item from the terminal input buffer.             6a5

           If the item is not a break, then print/skip it and go
           to 2.                                                    6a5a

           If the item is a break, then print/skip it and go to
           1.                                                       6a5b

         Note:  Output from the server host may occur at any
         time, such "spontaneous output" is printed in step 3.       6a6













                                                                [page 6]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



       Explanation:                                                   6b

         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

         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

         The server may send either output to the terminal
         printer or a command, and usually sends a both.             6b3

         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

         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

           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

             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.

             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



                                                                [page 7]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



           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

             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.

             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.

           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

           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

             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.

             If bit 1 is ON the break character is NOT to be
             printed.

           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

           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



                                                                [page 8]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



         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

         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

         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

         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

         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

       Synchronization and Resynchronization:                         6c

         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



                                                                [page 9]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



         a break classes reset to the same class(es) as before.)
         The break reset command may be preceded by terminal
         output.                                                     6c1

         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

         Suppose the server wants to resynchronize the break
         characters and the break reset commands.                    6c3

           a.  The server should be sure all output to the
           terminal has been printed by using, for example, the
           Timing Mark Option.                                      6c3a

           b.  The server sends the AO signal.                      6c3b

           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

           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

         Suppose the user wants to resynchronize the break
         characters and the break reset commands.                    6c4

           a.  The user should discard all user to server data
           wheather it has been echoed or not.                      6c4a

           b.  The user sends the AO signal. The user now enters
           the algorithm at step 1.                                 6c4b

           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







                                                               [page 10]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



       Notes and Comments:                                            6d

         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

         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

           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

         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

         Buffering Problems and Transmission vs. Printing
         Constraints:                                                6d4

           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

           Additionally, the using host may send a break class
           character, without knowing that it is one (as with
           type-ahead).                                             6d4b

             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.




                                                               [page 11]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



             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.

             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>".

           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

           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

           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

         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

         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

         It is not immediately clear what the using host should



                                                               [page 12]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



         do with currently buffered text, when a transmission
         classes reset command is received. The buffering is
        B         C     Total

       nsmission classes scheme.      6d7

           The using host clearly should not simply wait until a
           transmission character (according to the new scheme)
           is typed.                                                6d7a

           Either the buffered text should be rescanned, under
           the new scheme;                                          6d7b

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

         It is possible to define NO BREAK CHARACTERS except
         Telnet commands (IAC ...). This seems undesirable and
         should not be done.                                         6d8

           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 c     24      3072    458752    4     6.  Sample Interaction:                                           7

       "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

       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

         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  ST       ST Datagram Mode     vents will depend upon network and
         hosts' load and the user's typing speed.                    7b1

       We assume that the user's Telnet is also in an "insert
       linefeed" mode. That is, whenever the user types carriage



                                                               [page 13]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



       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

       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

         S: <IAC><WILL><RCTE>                                        7d1

         U: <IAC><DO><RCTE>                                          7d2

         S: TENEX 1.31.18, TENEX EXEC 1.50.2<cr><lf>@
            <IAC><SB><RCTE><11><1><24><IAC><SE>                      7d3

           [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

         P: TENEX 1.31.18, TENEX EXEC 1.50.2<cr><lf>@                7d4

         T: LOGIN ARPA<cr>                                           7d5

         P: LOGIN                                                    7d6

         U: LOGIN<sp>                                                7d7

         U: ARPA<cr><lf>                                             7d8

         S: <sp><IAC><SB><RCTE><0><IAC>SE>                           7d9

         P: <sp>ARPA                                                7d10

         S: <cr><lf>(PASSWORD): <IAC><SB><RCTE><7><IAC><SE>         7d11

         P: <cr><lf>(PASSWORD):<sp>                                 7d12

         T: WASHINGTON 1000<cr>                                     7d13

           [The password "WASHINGTON" is not echoed. Printing of
           "1000<cr>" is withheld]                                 7d13a

         U: WASHINGTON<sp>                                          7d14



                                                               [page 14]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



         U: 1000<cr><lf>                                            7d15

         S: <sp><IAC><SB><RCTE><3><IAC><SE>                         7d16

         S: <cr><lf>JOB 17 ON TTY41 7-JUN-73 14:13<cr><lf>@
            <IAC><SB><RCTE><0><IAC><SE>                             7d17

         P: <sp>1000                                                7d18

           [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

         P: <cr><lf>JOB 17 ON TTY41 7-JUN-73 14:13<cr><lf>@         7d19

         T: DED<esc><cr>                                            7d20

         P: DED                                                     7d21

         U: DED<esc>                                                7d22

         S: .SAV;1<IAC><SB><RCTE><0><IAC><SE>                       7d23

         P: .SAV;1                                                  7d24

         U: <cr><lf>                                                7d25

         S: <cr><lf><lf>DED    3/14/73 DRO,KRK<cr><lf>:
            <IAC><SB><RCTE><15><1><IAC><255><IAC><SE>               7d26

           [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

         P: <cr><lf><lf>DED    3/14/73 DRO,KRK<cr><lf>:             7d27

         T: IThis is a test line.<cr>This is another test
            line.<^Z>Q                                              7d28

           ["I" means Insert Text. The text follows, terminated
           by a Control-Z. The "Q" instructs DED to Quit.]         7d28a

         U: I                                                       7d29

         U: This is a test line.<cr><lf>                            7d30

         S: I<cr><lf>*<IAC><SB><RCTE><11><0><24><IAC><SE>           7d31




                                                               [page 15]

     NWG/RFC# 726                          JBP DHC 8-MAR-77 08:29  39237
     Remote Controlled Transmission & Echoing Telnet Option



           [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

         P: I<cr><lf>*This is a test line.                          7d32

         S: <cr><lf>*<IAC><SB><RCTE><0><IAC><SE>                    7d33

         P: <cr><lf>*This is another test line.                     7d34

         U: This is another test line.<^Z>                          7d35

         U: Q                                                       7d36

           [Note that the "Q" will not immediately be printed on
           the terminal, since it must wait for authorization.]    7d36a

         S: ^Z<cr><lf>:<IAC><SB><RCTE><15><1><IAC><255><IAC><SE>    7d37

           [The returned "^Z" is two characters, not the ASCII
           Control-Z or <sub>.]                                    7d37a

         S: Q<cr><lf>@<IAC><SB><RCTE><11><1><24><IAC><SE>           7d38

         P: Q<cr><lf>@                                              7d39

         And the user is returned to the Exec level.                7d40
























                                                               [page 16]