Network Working Group B. Cosell
Request for Comment: 435 BBN-NET
NIC: 13675 D. Walden
Category: TELNET, Protocols, Echoing BBN-NET
References: 318, 357 5 January 1973
TELNET Issues
Cosell & Walden [Page 1]
RFC 435 TELNET Issues 5 January 1973
Our proposed specification would use the present ECHO and NO ECHO commands as follows: ECHO, when sent by the server to the user, would mean 'I'll echo to you' ECHO, when sent by the user to the server, would mean 'You echo to me'. NO ECHO, when sent by the server to the user, would mean 'I'll not echo to you'; NO ECHO, when sent by the user to the server, would mean 'Don't you echo to me'. These are, of course, nearly the same meanings that the commands currently have, although most current implementations seem to invert the server-to- user meanings.
Cosell & Walden [Page 2]
RFC 435 TELNET Issues 5 January 1973
4) A party only changes its echo mode when it receives an admissible request.
Cosell & Walden [Page 3]
RFC 435 TELNET Issues 5 January 1973
Synchronization
Cosell & Walden [Page 4]
RFC 435 TELNET Issues 5 January 1973
In mentionaing that the character set could be negotiated, it was implicit that 7-bit USASCII was the default. The possibility of having the default be straight binary suggests itself. If we augmented the protocol with a QUOTE character, the byte after which were to be always interpreted as data, then codes 128-255 could be retained as the 'TELNET command space' independently of the data mode in use by merely prefixing all data bytes in this region with a QUOTE. If BINARY were a permissible data mode, then it is easy to visualize many higher level protocols, e.g., perhaps, File Transfer and Graphics, being built on top of, and into, the TELNET protocol. What we would have accomplished is to promote TELNET from being a constrained, terminal-oriented protocol to its being a flexible, general protocol for any type of byte oriented communication. With such a backbone, many of the higher level protocols could be designed and implemented more quickly and less painfully -- conditions which would undoubtedly hasten their universal acceptance and availability [3].
Cosell & Walden [Page 5]
RFC 435 TELNET Issues 5 January 1973
<------------------<
A Process 1 Process 2
>------------------>
neither end echoes
<------------------<
B Process 1 <--+ Process 2
^
>--^--------------->
one end echoes for itself
<------------------<
C Process 1 <--------------+ Process 2
^
>--------------^--->
one end echoes for the other
<--------------V---<
D Process 1 <--+ V Process 2
^ +--->
>--^--------------->
both ends echo for themselves
<-----V------------<
E Process 1 <--+ V Process 2
^ +------------>
>--^--------------->
one end echoes for both ends
The TENEX group suggested to us that four commands are sufficient to deal with completely symmetric echoing. We have actually already mentioned the four commands -- the two possible meanings for each of ECHO and NO ECHO. Explicitly, the commands would be I'LL ECHO TO YOU, YOU ECHO TO ME, DON'T ECHO TO ME and I'LL NOT ECHO TO YOU. Echoing is now the negotiation of two options, and the initial, default modes are DON'T ECHO TO ME and I'LL NOT ECHO TO YOU.
Cosell & Walden [Page 6]
RFC 435 TELNET Issues 5 January 1973
Command Format
Cosell & Walden [Page 7]
RFC 435 TELNET Issues 5 January 1973
We hereby volunteer to rigorously specify a version of TELNET which embodies the principles we have described and to do so at any level of complexity deemed sufficient by the network community.
Cosell & Walden [Page 8]
RFC 435 TELNET Issues 5 January 1973
Appendix: A Sample Implementation
Cosell & Walden [Page 9]
RFC 435 TELNET Issues 5 January 1973
[2] Notice that a faulty implementation could achieve the effect of a loop by repeatedly sending a command which has previously been refused. We consider this a property of the implementation, not of the scheme in general, a command which has be rejected should not be repeated until something changes -- for instance, not until after a different program has been started up.