[ih] character-at-a-time vs line-at-a-time systems and Telnet

Adriana C. Arrington aca at cs.utexas.edu
Tue May 13 15:24:48 PDT 2003


I am continuing the research for the technical history of Telnet with
Chris Edmondson-Yurkanan for the THINK Protocols project.

RFC 97 states that one of the design problems initially for Telnet was
basically line-at-time systems should universally interface with
character-at-a-time systems and vice versa.  Obviously dealing with this
problem was essential in Telnet's design, and I want to ensure that I
fully understand the problem and its solutions.

The problem with interfacing these two kinds of systems (in Old Telnet)
was knowing which was the character-at-a-time system and which was the
line-at-a-time system with respect to the using and serving hosts.
Character-at-a-time systems processed one input character as it was
received; whereas, line-at-a-time systems worked on entire lines
terminated by a combination of carriage returns, line feeds or newlines.
So both sides of the connection had to know what kind of system was on the
other side in order to communicate with it correctly.  They had to
determine if it was necessary to queue up characters into a line or just
send single characters.

RFC 318 on page 5 gives two "USER TELNET SIGNALS": Transmit Now and
Suppress End-of-Line.  I am assuming that these were the mechanisms in Old
Telnet to allow the two kinds of systems to interface along with line mode
and character mode, as described on page 14.  From reading the RFCs, I do
not have a clear understanding of these signals' usage.  How did they
work? Was this solution in Old Telnet abandoned because of the asymmetry
problem that the protocol had?

For New Telnet, the Go Ahead command and the option Suppress Go Ahead were
the new mechanisms to make this interface work between the different kinds
of systems. This seemed to make sense because RFC 857 (page 3) and earlier
documents like NIC 15930 (August 1973, page 4) state:

   The echoing option alone will normally not be sufficient to effect
   what is commonly understood to be remote computer echoing of
   characters typed on a terminal keyboard--the SUPPRESS-GO AHEAD option
   will normally have to be invoked in conjunction with the ECHO option
   to effect character-at-a-time remote echoing.

This statement helped me to understand this better because in the
descriptions of GA use half-duplex and full-duplex terminals, which were
not used in Old Telnet. Do these kinds of terminals have anything to do
with character-at-a-time and line-at-a-time systems? What's the connection

As always, thanks for the continuing help with this research.

Adriana Arrington

mailto:aca at cs.utexas.edu

More information about the Internet-history mailing list