The Telnet
Protocol Telnet
Negotiable OptionsMany of those
listed are self-evident, but some
call for more comments.
- Suppress Go Ahead
The original telnet implementation
defaulted to "half duplex"
operation. This means that
data traffic could only go
in one direction at a time
and specific action is required
to indicate the end of traffic
in one direction and that
traffic may now start in the
other direction. [This similar
to the use of "roger"
and "over" by amateur
and CB radio operators.] The
specific action is the inclusion
of a GA character in the data
stream.Modern links normally
allow bi-directional operation
and the "suppress go
ahead" option is enabled.
- echo
The echo option is enabled,
usually by the server, to
indicate that the server will
echo every character it receives.
A combination of "suppress
go ahead" and "echo"
is called character at a time
mode meaning that each character
is separately transmitted
and echoed.There is an understanding
known as kludge line mode
which means that if either
"suppress go ahead"
or "echo" is enabled
but not both then telnet operates
in line at a time mode meaning
that complete lines are assembled
at each end and transmitted
in one "go".
- linemode
This option replaces and
supersedes the line mode kludge.
- remote flow control
This option controls where
the special flow control effects
of Ctrl-S/Ctrl-Q are implemented.Telnet
control functionsThe telnet
protocol includes a number
of control functions. These
are initiated in response
to conditions detected by
the client (usually certain
special keys or key combinations)
or server. The detected condition
causes a special character
to be incorporated in the
data stream.
- Interrupt Process
This is used by the client
to cause the suspension or
termination of the server
process. Typically the user
types Ctrl-C on the keyboard.
An IP (244) character is included
in the data stream.
- Abort Output
This is used to suppress
the transmission of remote
process output. An AO (238)
character is included in the
data stream.
- Are You There
This is used to trigger
a visible response from the
other end to confirm the operation
of the link and the remote
process. An AYT (246) character
is incorporated in the data
stream.
- Erase character
Sent to the display to
tell it to delete the immediately
preceding character from the
display. An EC (247) character
is incorporated in the data
stream.
- Erase line
Causes the deletion of
the current line of input.
An EL (248) character is incorporated
in the data stream.
- Data Mark
Some control functions
such as AO and IP require
immediate action and this
may cause difficulties if
data is held in buffers awaiting
input requests from a (possibly
misbehaving) remote process.
To overcome this problem a
DM (242) character is sent
in a TCP Urgent segment, this
tells the receiver to examine
the data stream for "interesting"
characters such as IP, AO
and AYT. This is known as
the telnet synch mechanism.A
DM not in a TCP Urgent segment
has no effect.
The telnet command
On most Unix systems a telnet
session can be initiated using
the telnet
command.
telnet <remote host>
but if the user just types telnet
then various options and subcommands
are available which can be used
to study the behaviour of the
session.
Here's an exmaple of a telnet
session from scitsc to ccub
bash$ telnet
telnet> toggle options
Will show option processing.
telnet> open ccub
Trying 63.14.239.165 ...
Connected to laynetworks.com.
Escape character is '^]'.
SENT do SUPPRESS GO AHEAD
SENT will TERMINAL TYPE (reply)
RCVD do TERMINAL TYPE (don't
reply)
RCVD will SUPPRESS GO AHEAD
(don't reply)
RCVD will ECHO (reply)
SENT do ECHO (reply)
RCVD do ECHO (reply)
SENT wont ECHO (reply)
UNIX(r) System V Release 4.0
(ccub)
RCVD dont ECHO (don't reply)
login: Login timed out after
60 seconds
Connection closed by foreign
host.
|
 |
|
|
|