Specifications ============== RFCs Implemented ---------------- * :rfc:`727`, "Telnet Logout Option," Apr 1977. * :rfc:`779`, "Telnet Send-Location Option", Apr 1981. * :rfc:`854`, "Telnet Protocol Specification", May 1983. * :rfc:`855`, "Telnet Option Specifications", May 1983. * :rfc:`856`, "Telnet Binary Transmission", May 1983. * :rfc:`857`, "Telnet Echo Option", May 1983. * :rfc:`858`, "Telnet Suppress Go Ahead Option", May 1983. * :rfc:`859`, "Telnet Status Option", May 1983. * :rfc:`860`, "Telnet Timing mark Option", May 1983. * :rfc:`885`, "Telnet End of Record Option", Dec 1983. * :rfc:`930`, "Telnet Terminal Type Option", Jan 1984. * :rfc:`1073`, "Telnet Window Size Option", Oct 1988. * :rfc:`1079`, "Telnet Terminal Speed Option", Dec 1988. * :rfc:`1091`, "Telnet Terminal-Type Option", Feb 1989. * :rfc:`1096`, "Telnet X Display Location Option", Mar 1989. * :rfc:`1123`, "Requirements for Internet Hosts", Oct 1989. * :rfc:`1184`, "Telnet Linemode Option (extended options)", Oct 1990. * :rfc:`1372`, "Telnet Remote Flow Control Option", Oct 1992. * :rfc:`1408`, "Telnet Environment Option", Jan 1993. * :rfc:`1571`, "Telnet Environment Option Interoperability Issues", Jan 1994. * :rfc:`1572`, "Telnet Environment Option", Jan 1994. * :rfc:`2066`, "Telnet Charset Option", Jan 1997. RFCs Not Implemented -------------------- * :rfc:`861`, "Telnet Extended Options List", May 1983. describes a method of negotiating options after all possible 255 option bytes are exhausted by future implementations. This never happened (about 100 remain), it was perhaps, ambitious in thinking more protocols would incorporate Telnet (such as FTP did). * :rfc:`927`, "TACACS_ User Identification Telnet Option", describes a method of identifying terminal clients by a 32-bit UUID, providing a form of 'rlogin'. This system, published in 1984, was designed for MILNET_ by BBN_, and the actual TACACS_ implementation is undocumented, though partially re-imagined by Cisco in :rfc:`1492`. Essentially, the user's credentials are forwarded to a TACACS_ daemon to verify that the client does in fact have access. The UUID is a form of an early Kerberos_ token. * :rfc:`933`, "Output Marking Telnet Option", describes a method of sending banners, such as displayed on login, with an associated ID to be stored by the client. The server may then indicate at which time during the session the banner is relevant. This was implemented by Mitre_ for DOD installations that might, for example, display various levels of "TOP SECRET" messages each time a record is opened -- preferably on the top, bottom, left or right of the screen. * :rfc:`946`, "Telnet Terminal Location Number Option", only known to be implemented at Carnegie Mellon University in the mid-1980's, this was a mechanism to identify a Terminal by ID, which would then be read and forwarded by gatewaying hosts. So that user traveling from host A -> B -> C appears as though his "from" address is host A in the system "who" and "finger" services. There exists more appropriate solutions, such as the "Report Terminal ID" sequences ``CSI + c`` and ``CSI + 0c`` for vt102, and ``ESC + z`` (vt52), which sends a terminal ID in-band as ASCII. * :rfc:`1041`, "Telnet 3270 Regime Option", Jan 1988 * :rfc:`1043`, "Telnet Data Entry Terminal Option", Feb 1988 * :rfc:`1097`, "Telnet Subliminal-Message Option", Apr 1989 * :rfc:`1143`, "The Q Method of Implementing .. Option Negotiation", Feb 1990, Approximately only Rules 1, 2, and 3 are implemented, but not 4, 5, and 6. * :rfc:`1205`, "5250 Telnet Interface", Feb 1991 * :rfc:`1411`, "Telnet Authentication: Kerberos_ Version 4", Jan 1993 * :rfc:`1412`, "Telnet Authentication: SPX" * :rfc:`1416`, "Telnet Authentication Option" * :rfc:`2217`, "Telnet Com Port Control Option", Oct 1997 MUDs Implemented ---------------- These are community-standard telnet extensions widely used by MUD (Multi-User Dungeon) servers and clients. * `GMCP`_ (Generic MUD Communication Protocol, option 201). JSON-based bidirectional messaging for game data such as room info, character vitals, and client metadata. * `MSDP`_ (MUD Server Data Protocol, option 69). Structured key-value protocol for game variables with support for nested tables and arrays. * `MSSP`_ (MUD Server Status Protocol, option 70). Server metadata protocol for MUD crawlers and directories, providing server name, player count, codebase, and other listing information. * `MCCP2`_ (MUD Client Compression Protocol v2, option 86). Server-to-client zlib compression, reducing bandwidth for output-heavy sessions. Activated via ``IAC SB MCCP2 IAC SE``; all subsequent server output is compressed. * `MCCP3`_ (MUD Client Compression Protocol v3, option 87). Client-to-server zlib compression, the reverse direction of MCCP2. .. _GMCP: https://www.gammon.com.au/gmcp .. _MSDP: https://tintin.mudhalla.net/protocols/msdp/ .. _MSSP: https://tintin.mudhalla.net/protocols/mssp/ .. _MCCP2: https://tintin.mudhalla.net/protocols/mccp/ .. _MCCP3: https://tintin.mudhalla.net/protocols/mccp/ MUDs Not Implemented -------------------- Constants are also defined for the following MUD options, though their handlers are not implemented: MCCP (85, legacy compression), MXP (91, markup), ZMP (93, messaging), MSP (90, sound), and ATCP (200, Achaea-specific). Additional Resources -------------------- These RFCs predate, or are superseded by, :rfc:`854`, but may be relevant for study of the telnet protocol. * :rfc:`97` A First Cut at a Proposed Telnet Protocol * :rfc:`137` Telnet Protocol. * :rfc:`139` Discussion of Telnet Protocol. * :rfc:`318` Telnet Protocol. * :rfc:`328` Suggested Telnet Protocol Changes. * :rfc:`340` Proposed Telnet Changes. * :rfc:`393` Comments on TELNET Protocol Changes. * :rfc:`435` Telnet Issues. * :rfc:`513` Comments on the new Telnet Specifications. * :rfc:`529` A Note on Protocol Synch Sequences. * :rfc:`559` Comments on the new Telnet Protocol and its Implementation. * :rfc:`563` Comments on the RCTE Telnet Option. * :rfc:`593` Telnet and FTP Implementation Schedule Change. * :rfc:`595` Some Thoughts in Defense of the Telnet Go-Ahead. * :rfc:`596` Second Thoughts on Telnet Go-Ahead. * :rfc:`652` Telnet Output Carriage-Return Disposition Option. * :rfc:`653` Telnet Output Horizontal Tabstops Option. * :rfc:`654` Telnet Output Horizontal Tab Disposition Option. * :rfc:`655` Telnet Output Formfeed Disposition Option. * :rfc:`656` Telnet Output Vertical Tabstops Option. * :rfc:`657` Telnet Output Vertical Tab Disposition Option. * :rfc:`658` Telnet Output Linefeed Disposition. * :rfc:`659` Announcing Additional Telnet Options. * :rfc:`698` Telnet Extended ASCII Option. * :rfc:`701` August, 1974, Survey of New-Protocol Telnet Servers. * :rfc:`702` September, 1974, Survey of New-Protocol Telnet Servers. * :rfc:`703` July, 1975, Survey of New-Protocol Telnet Servers. * :rfc:`718` Comments on RCTE from the TENEX Implementation Experience. * :rfc:`719` Discussion on RCTE. * :rfc:`726` Remote Controlled Transmission and Echoing Telnet Option. * :rfc:`728` A Minor Pitfall in the Telnet Protocol. * :rfc:`732` Telnet Data Entry Terminal Option (Obsoletes: :rfc:`731`) * :rfc:`734` SUPDUP Protocol. * :rfc:`735` Revised Telnet Byte Macro Option (Obsoletes: :rfc:`729`, :rfc:`736`) * :rfc:`749` Telnet SUPDUP-Output Option. * :rfc:`818` The Remote User Telnet Service. The following further describe the telnet protocol and various extensions of related interest: * "Telnet Protocol," MIL-STD-1782_, U.S. Department of Defense, May 1984. * "Mud Terminal Type Standard," http://tintin.sourceforge.net/mtts/ * "Mud Client Protocol, Version 2.1," http://www.moo.mud.org/mcp/mcp2.html * "Telnet Protocol in C-Kermit 8.0 and Kermit 95 2.0," http://www.columbia.edu/kermit/telnet80.html * "Telnet Negotiation Concepts," http://lpc.psyc.eu/doc/concepts/negotiation * "Telnet RFCs," http://www.omnifarious.org/~hopper/telnet-rfc.html" * "Telnet Options", http://www.iana.org/assignments/telnet-options/telnet-options.xml .. _MIL-STD-1782: http://www.everyspec.com/MIL-STD/MIL-STD-1700-1799/MIL-STD-1782_6678/ .. _Mitre: https://mitre.org .. _MILNET: https://en.wikipedia.org/wiki/MILNET .. _BBN: https://en.wikipedia.org/wiki/BBN_Technologies .. _Kerberos: https://en.wikipedia.org/wiki/Kerberos_%28protocol%29 .. _TACACS: https://en.wikipedia.org/wiki/TACACS