Telnet Options

The telnet protocol and its basic NVT (Network Virtual Terminal) specification were designed to enable communication between a wide variety of different terminals and computers. They were designed in a way that aimed to solve compatibility issues by introducing a set of common basic commands and data types that will be shared by all telnet clients and servers.

However, resorting to the lowest common denominator meant that all special, advanced capabilities of either the server or the terminal were not used. Thus the common protocol is very basic.

To improve this situation, the creators of telnet added a set of various "telnet options" that the telnet host and the telnet client can negotiate. This flexible mechanism still maintains the basic protocl, but enables more advanced, sophisticated communication between devices that can support it.

Most Telnet options are used for the purpose of improving the efficiency of how data is transferred between devices. For example, by default the NVT assumes half-duplex operation, which means that each device needs to use the "Go Ahead" command after each transmission. However, virtually all hardware devices now support full-duplex communication, so devices will usually agree to use the "Suppress Go Ahead" option to eliminate the need to send this character and thus improve communication rate.

The specification of the telnet options and the way to use them are described in RFC's 854 and 855. The options themselves are described and maintained in IANA documents, like all other TCP/IP parameters. They can be found here.

This is the list of options:

CodeHEX codeOption
00TRANSMIT-BINARY, Binary Transmission.
11ECHO, Echo.
22Reconnection.
33SUPPRESS-GO-AHEAD, Suppress Go Ahead.
44 Approx Message Size Negotiation.
55 STATUS.
66 TIMING-MARK, Timing Mark
77RCTE, Remote Controlled Trans and Echo.
88 Output Line Width.
99 Output Page Size.
10A NAOCRD, Negotiate About Output Carriage-Return Disposition.
11B NAOHTS, Negotiate About Output Horizontal Tabstops.
12C NAOHTD, Negotiate About Output Horizontal Tab Disposition.
13D NAOFFD, Negotiate About Output Formfeed Disposition.
14E NAOVTS, Negotiate About Vertical Tabstops.
15F NAOVTD, Negotiate About Output Vertcial Tab Disposition.
1610 NAOLFD, Negotiate About Output Linefeed Disposition.
1711 Extended ASCII.
1812 LOGOUT, Logout.
1913 BM, Byte Macro.
2014 Data Entry Terminal.
2115 SUPDUP.
2216 SUPDUP-OUTPUT, SUPDUP Output.
2317 SEND-LOCATION, Send Location.
2418 TERMINAL-TYPE, Terminal Type.
2519 END-OF-RECORD, End of Record.
261A TUID, TACACS User Identification.
271B OUTMRK, Output Marking.
281C TTYLOC, Terminal Location Number.
291D Telnet 3270 Regime.
30 X.3 PAD.1E
311F NAWS, Negotiate About Window Size.
3220 Terminal Speed.
3321 Remote Flow Control.
3422 Linemode.
3523 X Display Location.
3624 Environment Option.
3725AUTHENTICATION, Authentication Option.
3826 Encryption Option.
3927 New Environment Option.
4028 TN3270E.
4129 XAUTH.
422A CHARSET.
432B RSP, Telnet Remote Serial Port.
442C Com Port Control Option
452D Telnet Suppress Local Echo
462E Telnet Start TLS
472F KERMIT
4830 SEND-URL
4931 FORWARD_X
50
-
137
32-89  
1388A TELOPT PRAGMA LOGON
1398B TELOPT SSPI LOGON
1408C TELOPT PRAGMA HEARTBEAT
141
-
254
8D-FE 
255FFEXOPL, Extended-Options-List.