RFC 854: Telnet Protocol Specification
Purpose and Scope
RFC 854 defines the Telnet protocol as a simple, general-purpose method for bidirectional, interactive text communication between a terminal and a remote system across a network. It establishes a common baseline so diverse terminal devices and host systems can interoperate by agreeing on a small set of conventions for representing characters, control functions, and out-of-band commands. The specification focuses on the protocol mechanisms needed for basic remote terminal access rather than prescribing specific terminal behavior or higher-level application semantics.
Network Virtual Terminal (NVT)
Central to the specification is the concept of the Network Virtual Terminal, an abstract, canonical terminal representation through which two endpoints communicate. The NVT defines a basic character set and conventions for end-of-line handling, so implementations with different physical terminals can map their local input and output to and from the NVT. The NVT defaults to a 7-bit ASCII-oriented representation with a specific interpretation of carriage return and line feed sequences to accommodate systems with differing newline conventions.
Commands and Control Functions
Telnet embeds a small set of control functions that allow a user or application to manage the remote session. These include commands for signaling an interrupt or break, suspending or flushing output, requesting a status check, and indicating special editing actions like erase character or erase line. Control functions are indicated in-band using a distinct escape mechanism so that ordinary data and command sequences can coexist on the same connection without ambiguity. The protocol provides explicit commands such as "Are You There", "Interrupt Process", "Abort Output", "Erase Character", and "Erase Line" to support interactive use and session control.
Option Negotiation and Subnegotiation
Telnet includes a flexible option negotiation framework that lets peers enable or disable extensions and features dynamically. Negotiation uses simple one-byte verbs to propose or refuse options, typically expressed as "WILL", "WONT", "DO", and "DONT", enabling either side to assert willingness to perform or to request that the other side perform a capability. Options can cover a wide range of behaviors, including local versus remote echo, binary versus NVT data formats, and terminal type reporting. For options that require parameters, Telnet defines a subnegotiation mechanism bracketed by special delimiters, allowing rich, option-specific exchanges without conflating parameters with regular data.
Data Representation and Escaping
Because Telnet intermixes data and protocol commands on the same byte stream, a designated "Interpret As Command" (IAC) escape byte signals the start of a command sequence. When that byte needs to be transmitted as ordinary data, it is doubled so that receivers can distinguish literal data from commands. The specification also describes how to treat 8-bit data versus the canonical 7-bit NVT form, and how options such as binary mode change the interpretation of bytes so that full 8-bit transparency can be achieved when both sides agree.
Operational Considerations
RFC 854 emphasizes robustness and interoperability. Negotiation is asynchronous and must be handled carefully to avoid deadlock or oscillation; implementations are expected to follow simple, deterministic reply rules to reach a stable configuration. Timing and urgent data semantics are addressed so that urgent signals can be delivered without disturbing regular flow. The combination of NVT defaults and optional extensions makes Telnet suitable for a wide variety of terminal types and use cases while keeping the baseline simple enough for early and constrained systems to implement reliably.
RFC 854 defines the Telnet protocol as a simple, general-purpose method for bidirectional, interactive text communication between a terminal and a remote system across a network. It establishes a common baseline so diverse terminal devices and host systems can interoperate by agreeing on a small set of conventions for representing characters, control functions, and out-of-band commands. The specification focuses on the protocol mechanisms needed for basic remote terminal access rather than prescribing specific terminal behavior or higher-level application semantics.
Network Virtual Terminal (NVT)
Central to the specification is the concept of the Network Virtual Terminal, an abstract, canonical terminal representation through which two endpoints communicate. The NVT defines a basic character set and conventions for end-of-line handling, so implementations with different physical terminals can map their local input and output to and from the NVT. The NVT defaults to a 7-bit ASCII-oriented representation with a specific interpretation of carriage return and line feed sequences to accommodate systems with differing newline conventions.
Commands and Control Functions
Telnet embeds a small set of control functions that allow a user or application to manage the remote session. These include commands for signaling an interrupt or break, suspending or flushing output, requesting a status check, and indicating special editing actions like erase character or erase line. Control functions are indicated in-band using a distinct escape mechanism so that ordinary data and command sequences can coexist on the same connection without ambiguity. The protocol provides explicit commands such as "Are You There", "Interrupt Process", "Abort Output", "Erase Character", and "Erase Line" to support interactive use and session control.
Option Negotiation and Subnegotiation
Telnet includes a flexible option negotiation framework that lets peers enable or disable extensions and features dynamically. Negotiation uses simple one-byte verbs to propose or refuse options, typically expressed as "WILL", "WONT", "DO", and "DONT", enabling either side to assert willingness to perform or to request that the other side perform a capability. Options can cover a wide range of behaviors, including local versus remote echo, binary versus NVT data formats, and terminal type reporting. For options that require parameters, Telnet defines a subnegotiation mechanism bracketed by special delimiters, allowing rich, option-specific exchanges without conflating parameters with regular data.
Data Representation and Escaping
Because Telnet intermixes data and protocol commands on the same byte stream, a designated "Interpret As Command" (IAC) escape byte signals the start of a command sequence. When that byte needs to be transmitted as ordinary data, it is doubled so that receivers can distinguish literal data from commands. The specification also describes how to treat 8-bit data versus the canonical 7-bit NVT form, and how options such as binary mode change the interpretation of bytes so that full 8-bit transparency can be achieved when both sides agree.
Operational Considerations
RFC 854 emphasizes robustness and interoperability. Negotiation is asynchronous and must be handled carefully to avoid deadlock or oscillation; implementations are expected to follow simple, deterministic reply rules to reach a stable configuration. Timing and urgent data semantics are addressed so that urgent signals can be delivered without disturbing regular flow. The combination of NVT defaults and optional extensions makes Telnet suitable for a wide variety of terminal types and use cases while keeping the baseline simple enough for early and constrained systems to implement reliably.
RFC 854: Telnet Protocol Specification
This work outlines the Telnet protocol, a network protocol used on the Internet and other connected networks for bidirectional text communications via a terminal connection. It covers the commands, options, and negotiation mechanisms for this remote access protocol.
- Publication Year: 1983
- Type: Technical Specification
- Genre: Computer Science, Networking
- Language: English
- View all works by Jon Postel on Amazon
Author: Jon Postel
Jon Postel, a key figure in Internet history, known for his role in developing TCP/IP and managing DNS.
More about Jon Postel
- Occup.: Scientist
- From: USA
- Other works:
- RFC 760: DoD Standard Internet Protocol (1980 Technical Specification)
- RFC 768: User Datagram Protocol (1980 Technical Specification)
- RFC 793: Transmission Control Protocol (1981 Technical Specification)
- RFC 791: Internet Protocol (1981 Technical Specification)
- RFC 821: Simple Mail Transfer Protocol (1982 Technical Specification)