rfc-855

Telnet Option Specifications

J. Postel, J.K. Reynolds
date1983-05 streamLegacy statusINTERNET STANDARD pages3 canonicalhttps://www.rfc-editor.org/rfc/rfc855 doi10.17487/RFC0855
This memo specifies the general form for Telnet options and the directions for their specification. This RFC specifies a standard for the ARPA Internet community. Hosts on the ARPA Internet are expected to adopt and implement this standard. Obsoletes RFC 651, NIC 18640.

also

Extracted elements (15)

design-rationale §Documentation Requirements

A 'Default Specification' section is required to describe behavior of hosts that do not implement or use the option, ensuring interoperability with non-implementing peers without explicit negotiation.

design-rationale §Documentation Requirements

A 'Motivation' section is required because merely defining command meanings is insufficient; explaining why an option was invented helps implementers who may not recognize the problem the option solves.

design-rationale §A Note on Subnegotiation

Designers of options requiring subnegotiation must take great care to avoid infinite loops; if both parties can accept any parameter value and each suggests a different value, infinite oscillation of 'acknowledgments' can result where each receiver believes it is merely acknowledging new proposals.

design-rationale §Introduction

Telnet options exist to permit hosts to obtain more elegant solutions to communication problems between dissimilar devices than is possible within the NVT framework. Hosts should be free to invent, test, or discard options at will, while broadly useful options are documented and publicized via RFCs.

interoperability-note §A Note on Subnegotiation

A receiver that cannot parse subnegotiation parameters may still locate the end of the parameter string by scanning for the IAC SE byte sequence, allowing graceful handling without full option comprehension.

normative-requirement §Introduction MUST NOT

A single option code MUST NOT be used for several different options. Option codes are assigned by a designated authority (Postel at USC-ISI) to prevent collisions.

registry

normative-requirement §Introduction REQUIRED

Documentation is generally required prior to option code assignment. Options are to be publicized by publishing their documentation as RFCs.

process

normative-requirement §A Note on Subnegotiation MAY

Either party may refuse to pursue further subnegotiation at any time by sending WON'T or DON'T to the other party.

normative-requirement §A Note on Subnegotiation REQUIRED

If any parameter byte in a subnegotiation has value 255 (0xFF), it must be doubled in accordance with general TELNET rules, since 255 is the IAC escape code.

protocol-element §Documentation Requirements

Option documentation must contain at minimum five sections: (1) Command Name and Option Code, (2) Command Meanings, (3) Default Specification, (4) Motivation, and (5) Description or Implementation Rules.

protocol-element §A Note on Subnegotiation

Subnegotiation is a two-step process for options requiring additional parameters: first, both parties agree to use the option via normal DO/WILL exchange; then parameter exchange occurs using SB ... SE.

registry §Introduction

Telnet option codes are assigned by a central authority (originally Postel at USC-ISI). A single registry is implied to ensure no option code is reused across different options.

registry

wire-format §A Note on Subnegotiation

IAC DO ABC — sent to request that the other party use option ABC, or to give favorable acknowledgment of the other party's WILL offer. Single-byte option code follows the DO command.

wire-format §A Note on Subnegotiation

IAC SB ABC <parameters> IAC SE — the subnegotiation command sequence used by either party after option agreement; carries option-specific parameters between SB and the terminating IAC SE.

wire-format §A Note on Subnegotiation

IAC WILL ABC — sent by a party to offer use of option ABC, or to give favorable acknowledgment of the other party's DO request. Single-byte option code follows the WILL command.