by Darius Kazemi, December 23 2019
Remote controlled echoing
RFC-357 is titled “An Echoing Strategy for Satellite Links”. It's authored by John Davidson of University of Hawaii, Will Crowther of BBN, John McConnell of ILLIAC, and Jon Postel of UCLA. It's dated June 26,1972.
The technical content
Recap: remote echoing is when you type something, and it goes to the remote server, and then it comes back to you and what you typed is printed on the screen. Generally speaking, we like echoing because it confirms that the thing we typed is in fact the thing that the remote server thinks we typed! Modern ssh clients do full echoing, where you type a letter, and if there is a delay in the system your letter doesn't appear on the screen until you hear back from the remote host that it did register your keystroke. This can be annoying when your connection is bad, but generally connections in 2019 are far more reliable than connections in 1972 so it's not a huge deal. (There is also local echoing, where you type something on your local computer and it prints what you just typed: aka, how normal typing works!)
They recommend a fairly byzantine-seeming scheme for a Telnet client to specify its “wakeup character”, aka the character that indicates to Telnet to stop merely echoing locally and to send the entirety of the current character buffer. They call this scheme “remote controlled echoing”. The most clever thing about their design is that they essentially take the Terminal Handler, which handles local echoing, and generalize it into a remote system!
This RFC also says that there will be more discussion published in RFC-358... but 358 was never published!
Remote controlled echoing eventually will morph into the Remote Controlled Transmission and Echoing (RCTE) standard. This will be an optional standard that no Telnet system is strictly required to put into place: RFC-854, widely considered the first “stable” Telnet specification, mentions that “
although options exist to enable a "remote" echoing mode of operation, no host is required to implement this option”.
I went looking and did find a reference to RCTE in the bowels of the PuTTY source code.
How to follow this blog
I'm Darius Kazemi. I'm an independent technologist and artist. I do a lot of work on the decentralized web with ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.