Telnet Option Specifications
also
- std-8
Extracted elements (15)
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.
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.
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.
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.
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.
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.
Documentation is generally required prior to option code assignment. Options are to be publicized by publishing their documentation as RFCs.
Either party may refuse to pursue further subnegotiation at any time by sending WON'T or DON'T to the other party.
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.
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.
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.
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.
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.
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.
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.