Telnet terminal speed option
How Telnet hosts exchange the bit rate of the terminal on the other end.
Hedrick, C.L., "Telnet terminal speed option", RFC 1079, DOI 10.17487/RFC1079, December 1988, <https://www.rfc-editor.org/info/rfc1079>.
@misc{rfc1079,
series = {Request for Comments},
number = 1079,
howpublished = {RFC 1079},
publisher = {RFC Editor},
doi = {10.17487/RFC1079},
url = {https://www.rfc-editor.org/info/rfc1079},
author = {C.L. Hedrick},
title = {{Telnet terminal speed option}},
pagetotal = 3,
year = 1988,
month = dec,
} RFC text
Contents
Network Working Group C. Hedrick
Request for Comments: 1079 Rutgers University
December 1988
Telnet Terminal Speed Option
Status of This Memo
This RFC specifies a standard for the Internet community. Hosts on
the Internet that exchange terminal speed information within the
Telnet protocol are expected to adopt and implement this standard.
Distribution of this memo is unlimited.
This standard is modelled on RFC 930 [1], the telnet terminal type
option. Much of the text of this document is copied from that RFC.
Motivation
Most operating systems have provisions to keep track of the speed
(bit rate) of directly attached terminals and modems. This
information is used to control various timing-dependent display
processes, e.g., the number of padding characters used for delay.
Some software also has user interfaces that are tuned differently for
fast and slow terminals. The purpose of this option is to provide
similar information for telnet connections.
1. Command Name and Code
TERMINAL-SPEED
Code = 32
2. Command Meanings
IAC WILL TERMINAL-SPEED
Sender is willing to send terminal speed information in a
subsequent sub-negotiation.
IAC WON'T TERMINAL-SPEED
Sender refuses to send terminal speed information.
IAC DO TERMINAL-SPEED
Sender is willing to receive terminal speed information in a
subsequent sub-negotiation.
IAC DON'T TERMINAL-SPEED
Sender refuses to accept terminal speed information.
IAC SB TERMINAL-SPEED SEND IAC SE
Sender requests receiver to transmit his (the receiver's)
terminal speed. The code for SEND is 1. (See below.)
IAC SB TERMINAL-SPEED IS ... IAC SE
Sender is stating his terminal speed. The code for IS is 0.
(See below.)
3. Default
WON'T TERMINAL-SPEED
Terminal speed information will not be exchanged.
DON'T TERMINAL-SPEED
Terminal speed information will not be exchanged.
4. Description of the Option
WILL and DO are used only to obtain and grant permission for future
discussion. The actual exchange of status information occurs within
option subcommands (IAC SB TERMINAL-SPEED...).
Once the two hosts have exchanged a WILL and a DO, the sender of the
DO TERMINAL-SPEED is free to request speed information. Only the
sender of the DO may send requests (IAC SB TERMINAL-SPEED SEND IAC
SE) and only the sender of the WILL may transmit actual speed
information (within an IAC SB TERMINAL-SPEED IS ... IAC SE command).
Terminal speed information may not be sent spontaneously, but only in
response to a request.
The terminal speed information is an NVT ASCII string. This string
contains the decimal representation of the transmit and receive
speeds of the terminal, separated by a comma, e.g.,
9600,100
No leading zeros may be included. No extraneous characters such as
spaces may be included.
The following is an example of use of the option:
Host1: IAC DO TERMINAL-SPEED
Host2: IAC WILL TERMINAL-SPEED
(Host1 is now free to request status information at any time.)
Host1: IAC SB TERMINAL-SPEED SEND IAC SE
Host2: IAC SB TERMINAL-SPEED IS "1200,1200" IAC SE
(This command is 15 octets.)
5. Implementation Suggestions
Many systems allow only certain discrete terminal speeds. In such
cases it is possible that a speed may be received that does not match
one of the allowed values. We suggest that you pick the nearest
speed that is allowed, rounding in a "safe" direction. Safety will
depend upon the use of the speed information. If it is being used
for padding, it is best to round up, since too much padding is better
than too little.
Reference
[1] Solomon, M., and Wimmers, E., "Telnet Terminal Type Option",
RFC 930, January, 1985
[AAuthor's Address:
Charles Hedrick
Rutgers University
Center for Computer and Information Services
Hill Center, Busch Campus
P.O. Box 879
Piscataway, NJ 08855-0879
Phone: (201) 932-3088
Email: HEDRICK@ARAMIS.RUTGERS.EDU
AI ELI5
On this page
§1Why Terminal Speed Matters
Most operating systems keep track of the speed (bit rate) of directly attached terminals and modems. The information controls timing-dependent display processes, such as the number of padding characters used for delay, and some software tunes its interface for fast or slow terminals. This option provides the same information for Telnet connections.
The RFC is modelled on RFC 930, the Telnet terminal type option, and much of its text is copied from that RFC.
A slow screen needs pauses between letters. To add the right pauses, the computer must know the speed.
§2Commands and Negotiation
The option is named TERMINAL-SPEED with code 32. WILL means the sender is willing to send speed information, and DO means it is willing to receive it. The defaults are WON'T and DON'T, so no speed information is exchanged unless negotiated.
WILL and DO only grant permission for later discussion. The real exchange happens in subnegotiation. Only the sender of the DO may send requests, and only the sender of the WILL may transmit speed information. Speed may not be sent spontaneously, only in response to a request.
First they agree to talk about speed. Then one asks, and only the other one answers. Nobody blurts out the speed unasked.
§3The SEND and IS Subcommands
A request is IAC SB TERMINAL-SPEED SEND IAC SE, where SEND has the code 1. The answer is IAC SB TERMINAL-SPEED IS ... IAC SE, where IS has the code 0.
The speed is an NVT ASCII string holding the decimal transmit and receive speeds separated by a comma, for example 9600,100. No leading zeros or extra characters such as spaces may be included. In the RFC's example, Host1 sends DO, Host2 answers WILL, Host1 sends SEND, and Host2 replies IS "1200,1200".
The answer is written as two numbers with a comma between them, like 1200,1200: how fast it sends and how fast it receives.
- IAC DO TERMINAL-SPEED
- IAC WILL TERMINAL-SPEED
- IAC SB TERMINAL-SPEED SEND IAC SEHost1 may request at any time.
- IAC SB TERMINAL-SPEED IS "1200,1200" IAC SE
§4Implementation Suggestions
Many systems allow only certain discrete terminal speeds, so a received speed may not match any allowed value. The RFC suggests picking the nearest allowed speed, rounding in a safe direction. If the speed is used for padding, it is best to round up, since too much padding is better than too little.
If the exact speed is not on your list, pick a nearby one, and choose the slower side so the screen has enough time.