RFC 1143 (rfc1143) - Page 1 of 10
The Q Method of Implementing TELNET Option Negotiation
Alternative Format: Original Text Document
Network Working Group D. Bernstein
Request for Comments: 1143 NYU
February 1990
The Q Method of Implementing TELNET Option Negotiation
Status of This Memo
This is RFC discusses an implementation approach to option
negotiation in the Telnet protocol (RFC 854). It does not propose
any changes to the TELNET protocol. Rather, it discusses the
implementation of the protocol of one feature, only. This is not a
protocol specification. This is an experimental method of
implementing a protocol. This memo is not a recommendation of the
Telnet Working Group of the Internet Engineering Task Force (IETF).
This RFC is Copyright 1990, Daniel J. Bernstein. However,
distribution of this memo in original form is unlimited.
1. Introduction
This RFC amplifies, supplements, and extends the RFC 854 [7] option
negotiation rules and guidelines, which are insufficient to prevent
all option negotiation loops. This RFC also presents an example of
correct implementation.
DISCUSSION:
The two items in this RFC of the most interest to implementors are
1. the examples of option negotiation loops given below; and 2. the
example of a TELNET state machine preventing loops.
1. Implementors of TELNET should read the examples of option
negotiation loops and beware that preventing such loops is a
nontrivial task.
2. Section 7 of this RFC shows by example a working method
of avoiding loops. It prescribes the state information that
you must keep about each side of each option; it shows what
to do in each state when you receive WILL/WONT/DO/DONT from
the network, and when the user or process requests that an
option be enabled or disabled. An implementor who uses the
procedures given in that example need not worry about
compliance with this RFC or with a large chunk of RFC 854.
In short, all implementors should be familiar with TELNET loops, and
some implementors may wish to use the pre-written example here in
Bernstein