RFC 884
Telnet terminal type option
RFC 884: TELNET TERMINAL TYPE OPTION π
okay bestie, this is RFC 884 π, the TELNET Terminal Type Option, written by Marvin Solomon and Edward Wimmers at the University of Wisconsin - Madison in December 1983 β¨. It's a standard for the ARPA Internet community π, so hosts that trade terminal type info inside Telnet are expected to adopt and implement it π«Ά. The header doesn't list anything it obsoletes or updates, so it's standing on its own π¦.
1. Command Name and Code β¨
The option is called TERMINAL-TYPE, and its code is 24 π₯.
2. Command Meanings π
Here's what each command means. Read these slowly, they're the whole vibe πΈ.
2.1. Willing and Permission Commands π¦
IAC WILL TERMINAL-TYPE
The sender is willing to send terminal type information in a subsequent sub-negotiation π.
IAC DO TERMINAL-TYPE
The sender is willing to receive terminal type information in a subsequent sub-negotiation π.
IAC DON'T TERMINAL-TYPE
The sender refuses to accept terminal type information π.
IAC WON'T TERMINAL-TYPE
The sender refuses to send terminal type information π.
2.2. Sub-negotiation Commands π§
IAC SB TERMINAL-TYPE SEND IAC SE
The sender asks the receiver to send over its own terminal type. The code for SEND is 1, see below π.
IAC SB TERMINAL-TYPE IS ... IAC SE
The sender states the name of its terminal type. The code for IS is 0, see below β.
3. Default πΈ
By default, both sides are on DON'T TERMINAL-TYPE and WON'T TERMINAL-TYPE, so terminal type information will not be exchanged π
ββοΈ.
4. Motivation for the Option π
This option lets a telnet server figure out what kind of terminal is hooked up to a user's telnet program π. Just knowing the type doesn't change anything right away π« . But the info can be handed to a process, and that process can change the data it sends to match the terminal. For example, some operating systems have a terminal driver that takes a code for the terminal type π₯οΈ. Using the TERMINAL TYPE and BINARY options together, a telnet server on a system like that can make terminals behave as if they were directly connected π€©. That includes things like cursor addressing and multiple colors, which the Network Virtual Terminal spec doesn't cover π. The option also fits the usual TELNET option structure by saving the actual status transfer for the SB command π.
5. Description of the Option π¦
WILL and DO are only for getting and granting permission to talk about things later π¬. The real exchange of status info happens inside option subcommands, the IAC SB TERMINAL-TYPE... stuff β¨.
Once two hosts have swapped a WILL and a DO, the sender of the WILL TERMINAL-TYPE is free to send type info. It can do that on its own, or because the DO sender asked π. The worst case is that the info gets sent twice π. Only the DO sender can send requests (IAC SB TERMINAL-TYPE SEND IAC SE), and only the WILL sender can send actual type info (inside an IAC SB TERMINAL-TYPE IS ... IAC SE command) π
.
The terminal type info is an NVT ASCII string π§Ύ. Upper and lower case count as the same thing inside it π€. A few terminal type names that are useful on IBM systems are listed below. More names are expected to show up later, and the full list of valid terminal types lives in the latest "Assigned Numbers" RFC π.
Here's an example of the option in action π―ββοΈ:
Host1: IAC DO TERMINAL-TYPE
Host2: IAC WILL TERMINAL-TYPE
(Host2 is now free to send status information at any time.
Solicitations from Host1 are NOT necessary. This should not
produce any dangerous race conditions. At worst, two IS's will
be sent.)
Host1 (perhaps): IAC SB TERMINAL-TYPE SEND IAC SE
Host2:
IAC SB TERMINAL-TYPE IS IBM-3278-2 IAC SE
6. Implementation Suggestions π«Ά
The "terminal type" can be any NVT ASCII string that makes sense to both ends of the negotiation π. The tips below are there to stop people from getting confused by different spellings of the same type π΅βπ«. For example, it's a mess if one side calls a terminal IBM3278-2 and the other calls it IBM-3278/2 π.
There's no negative acknowledgement for a terminal type nobody understands π¬. Some other options, like switching to BINARY mode, can still get refused if no valid terminal type name has been given π«. Sometimes one terminal goes by more than one name, like a specific type and a more generic one π. In that case, the sender of the TERMINAL-TYPE IS command should answer each successive TERMINAL-TYPE SEND with a different name, going from most to least specific πͺ. That way, a telnet server that doesn't recognize the first answer can ask for an alternative πββοΈ. But it should stop sending TERMINAL-TYPE SEND commands after getting the same response two times in a row π. Likewise, a sender can show it has sent every name it has by repeating the last one it sent π.
Here are a few terminal types that are useful in the IBM environment π»:
IBM-3275-2
IBM-3276-2
IBM-3276-3
IBM-3276-4
IBM-3277-2
IBM-3278-2
IBM-3278-3
IBM-3278-4
IBM-3278-5
IBM-3279-2
IBM-3279-3
Here are a few terminal types that are useful in the TOPS20 environment π:
ANN-ARBOR-AMBASSADOR
CONCEPT-100
DATAMEDIA-2500
DEC-LA30
DEC-VT100
DEC-VT52
EXECUPORT-4000
HAZELTINE-1500
HP-2621
HP-2640
HP-2645A
HP-2649
NETWORK-VIRTUAL-TERMINAL
TEKTRONIX-4025
TELERAY-1061
TELETYPE-33
TELETYPE-37
TELEVIDEO-950
TERMINET-300
TI-700
ZENITH-H19
Here are a few terminal types used in the Unix environment π§:
ADDS-CONSUL-980
ADDS-REGENT-200
ANDERSON-JACOBSON-832
ANN-ARBOR-AMBASSADOR
BITGRAPH
CDI-1203
COMPUCOLOR-II
CONCEPT-100
DATA-GENERAL-6053
DATAGRAPHIX-132A
DATAMEDIA-3045A
DATAPOINT-3360
DEC-DECWRITER-II
DEC-GT40
DEC-VT52
DELTA-DATA-5000
DIABLO-1620
EXECUPORT-4000
GENERAL-TERMINAL-100A
HAZELTINE-1500
HAZELTINE-2000
HP-2621
HP-2640A
HP-2645
HP-2649A
IBM-3101
INFOTON-100
LSI-ADM-3
MICROTERM-ACT-V
MICROTERM-MIME-2
NETWORK-VIRTUAL-TERMINAL
PERKIN-ELMER-1100
PLASMA-PANEL
SUPERBEE-III-M
TEKTRONIX-4014
TELERAY-3700
TELETYPE-33
TELETYPE-37
TELEVIDEO-912
TERMINET-300
TI-700
TI-733
TI-745
VISUAL-200
XEROX-1720
ZENITH-H19
ZENTEC-30
If the terminal's type is unknown, or the other party is unlikely to recognize it, use the type UNKNOWN π€·ββοΈ.
The complete and up-to-date list gets maintained in "Assigned Numbers" π, so check there for the latest names π.
π¦ where this page comes from
- ietf: rfc884 1983-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms