Network Working Group Abhay K. Bushan
Request For Comments #559 MIT Project MAC
NIC # 18482 August 15, 1973
Comments on the new TELNET Protocol and its Implementation
I. OUR TELNET SERVER IMPLEMENTATION
Our new server TELNET accepts both the "old" and the "new" TELNET
Bushan [Page 1]
RFC 559 Comments on TELNET August 1973
A quick investigation revealed that the above problem (of sending
2.5 seconds after sending output to see if there is more output to be
sent. If the server has been "idle" for more than 2.5 seconds in the "output-sent" state it sends a GA and goes in an I/O wait state (looking for input or output). This scheme works most (but not guaranteed all) of the time and doesn't cause any noticeable delay. It is possible for the server to send an extra GA. Our experimentation revealed that 1-5 seconds was a good range for this "idling time constant".
1. Interrupt Process (IP) - The server substitutes the system wide
interrupt character <control-Z> (ACII SUB) which immediately interrupts the process, moving control to the immediately superior process. If the user is several levels down his process tree he may have to send several IP's to reach top level. It should be noted that the IP does not interrupt the running process in the sense a <control-G> interrupts muddle but only passes control to the superior.
2. Erase Character (EC) - The server substitutes the system wide
standard erase character <rubout> (ACII DEL). The deletion however is done not by the server but by the receiving process. It is conceivable that some process (such as a user TELNET) take no action on receiving EC. Most processes will echo the deleted character(s). Several EC's will delete the several previous characters. (If the console is declared to be an IMLAC, the deleted character is removed from the screen).
3. Abort Output (AO) - The server substitutes the character <control-S>
(ACII DC3). The control-S convention is followed by many but not all of our programs. The action taken on receiving AO varies with the program. A normal occurrence is that output and the current command are aborted (without necessarily going to completion). In many programs there is no way to stop output except by sending an IP and "killing" the inferior process.
Bushan [Page 2]
RFC 559 Comments on TELNET August 1973 4. Are You There (AYT) - The server will print the message"****connections still open*****" preceded and followed by CRLF's upon receiving an AYT. At some later time we may report on the state of the user's job as well.
5. Erase Line (EL) - since we are a character-at-a-time system, the EL
has little meaning on our system and we throw it (and the preceding IAC) away.
6. Break (BRK) - We substitute three NUL's upon receiving BRK. This
convention is consistent with what happens when the "Break" key is hit on local teletypes. The programs generally do nothing useful when break is received (except echo "|@|@|@") but sending BRK may cause strange program reactions, so beware.
7. Synch - Whenever the server receives the synch INS, it flushes all
except the interesting (control sequences) characters till the receipt of a DM. We also cause an implicit IP on receipt of SYNCH.
8. We follow the CRLF and CRNUL convention for transmitting EOL and CR
respectively.
Bushan [Page 3]
RFC 559 Comments on TELNET August 1973
The user can change his echo mode by escaping to NETWRK command level and using the commands "echo.local" or "echo.remote". Note that the modes are changed only when the negotiation for mode change is successful. In either event the user is notified of the results of the negotiation.
Bushan [Page 4]
RFC 559 Comments on TELNET August 1973
[ This RFC was put into machine readable form for entry ]