The telnet protocol defines a "Network Virtual
Terminal" (NVT) that provides a standard interface to
remote systems, regardless of their particular approach to terminal
login. A telnet implementation (client or server) maps the
semantics of local terminal operation to the NVT before sending
data over the connection. Some aspects of the NVT include:
The basic unit of transmission is the "line of text" -- ideal
for command-line interfaces.
An NVT text line contains only standard printable US-ASCII
characters, terminated by an NVT "newline" indicator.
The NVT "newline" or "line ending" indicator is the
two-character sequence: carriage return, decimal
13 followed by linefeed, decimal 10. Traditionally
this has been written as <CR><LF>[2]. A telnet implementation "maps" the
"enter" or "return" key to this sequence before sending the line of
text over the TCP connection.
The telnet NVT has a few other interesting characterictics: it
defines the meaning of a few other ASCII control codes, permits
certain "out of band" commands to be sent to the remote host, and
has faciliites for "Option Negotiation".
[2] The "angle
brackets" here (ie, < and >) were traditionally used to
indicate an ASCII control character. They are now so commonly used
in HTML markup (see later) that this older usage is
disappearing.