Telnet and the Network Virtual Terminal

Telnet is the protocol that lets a person sit at a terminal on one computer and operate a different, distant computer as if their keyboard and screen were directly attached to it. The idea is one of the oldest on the network. RFC 15, “Network Subsystem for Time Sharing Hosts,” written by C. S. Carr and dated September 25, 1969, already described a “Telnet” subsystem that would let a user connect from a local machine to a remote host and interact with it as a regular terminal user; Carr called it a “level 0 network program,” basic enough to implement quickly but enough to make the newborn ARPANET immediately useful for remote work.

The protocol matured over the following years and was given its enduring definition in RFC 854, “Telnet Protocol Specification,” published by Jon Postel and Joyce Reynolds in May 1983. The central abstraction in that document is the Network Virtual Terminal, or NVT. Rather than forcing every host to understand the quirks of every other host’s terminals, Telnet defines an imaginary, standardized terminal that both ends agree to speak to. Each system maps its own local conventions onto this common intermediate form, so the two hosts never need to store information about each other’s specific terminal hardware.

RFC 854 describes the NVT as “a bi-directional character device” with a printer that consumes incoming data and a keyboard that produces outgoing data, using seven-bit USASCII carried in an eight-bit field. By default it operates in a half-duplex, line-buffered mode. This neutral middle ground is what makes the protocol interoperable across the wildly different machines of the early internet: each side only has to translate between its local terminal and the shared NVT, not between itself and every possible peer.

A second important idea in Telnet is symmetric option negotiation. The two ends can negotiate enhancements to the basic NVT, such as echoing behavior, character-at-a-time versus line-at-a-time transmission, or binary transmission, using a small set of commands (WILL, WONT, DO, DONT) embedded in the data stream. The design principle, sometimes summarized as a commitment to a minimal common base that either party may extend by agreement, kept the protocol simple while allowing it to grow.

Telnet’s influence ran well beyond remote login. Its NVT command structure and ASCII control dialogue were reused as the control channel for other protocols, most visibly FTP, whose command connection borrows Telnet conventions. Telnet’s own use for interactive login eventually faded because it transmits everything, including passwords, in clear text; the encrypted SSH protocol replaced it for that purpose. But the Network Virtual Terminal remains a clean early example of solving interoperability by defining a shared abstraction rather than enumerating every special case.