RFC 933
Output marking Telnet option
RFC 933: OUTPUT MARKING TELNET OPTION π
- Series: Network Working Group π«Ά
- Number: RFC 933
- Author: S. Silverman, MITRE-Washington β¨
- Date: January 1985 π
- Category: not listed in the header π€·ββοΈ
- Obsoletes / Updates: neither is listed in the header π
Status of this Memo π£
okay so this one proposes a new option for Telnet for the ARPA-Internet community, and it's literally asking everyone for discussion and suggestions for improvements π£οΈ distribution of this memo is unlimited, so share it with your whole group chat π
Overview π¦
this proposed option would let a Server-Telnet send a banner to a User-Telnet, so the banner shows up on the workstation screen no matter what application is running in the Server-Telnet π the banner just lives on your screen, iconic β¨
1. Command Name and Code π
the command is called OUTMRK and its code is 27 π
OUTMRK 27
2. Command Meanings π
these are the sequences you'll see, and what each one means π₯
IAC WILL OUTMRK
the sender is willing to send output marking information in a subsequent sub-negotiation π«Ά
IAC WON'T OUTMRK
the sender refuses to send output marking information π
IAC DO OUTMRK
the sender is willing to receive output marking information in a subsequent sub-negotiation β¨
IAC DON'T OUTMRK
the sender refuses to accept output marking information π ββοΈ
IAC SB OUTMRK CNTL data IAC SE
the sender asks the receiver to use the data in this subnegotiation as a marking for the normally transmitted Telnet data until further notice π the CNTL octet tells you where the marking goes (more on that below) π§
IAC SB OUTMRK ACK IAC SE
the sender acknowledges the data and agrees to use it for output marking (see below) π©·
IAC SB OUTMRK NAK IAC SE
the sender objects to using the data for output marking (see below) π€
3. Default πΈ
both of these are the defaults, and they're the same vibe: no output marking information gets exchanged π
WON'T OUTMRK
output marking information will not be exchanged π
DON'T OUTMRK
output marking information will not be exchanged π
4. Motivation for the Option π§
some military systems have a security architecture that attaches a security level to each Telnet connection π‘οΈ which means they need to show a security banner on visual display devices, obviously π (Reference: Department of Defense Trusted Computer System Evaluation Criteria, Section 3.1.1.3.2.3, Labeling Human-Readable Output.)
right now the banner gets sent as data inside every single screen of data, which is kinda wasteful π it'd be way more efficient to send the data once, with instructions, and let User-Telnet keep the banner up automatically with no extra work from the Server-Telnet π this also means the Server-Telnet doesn't have to know the output device page size, which is a whole mood π«Ά
under this proposal, the Server-Telnet sends an option sequence containing the command, a control flag, and the banner to use π current systems put the banner at the top of the screen, but other systems might want it at the bottom or even the side, and that's exactly why the control flag exists π
5. Description of the Option π
either side of the session can start the option, but normally it's the server side that kicks off the request to do output marking π so either the Server-Telnet sends WILL OUTMRK, or the User-Telnet sends DO OUTMRK. whichever party gets the first WILL (or DO) replies with DO (or WILL) to accept the option β¨ then the Server-Telnet sends the marking data, in this format:
IAC SB OUTMRK CNTL data IAC SE
- CNTL is the Control Flag, described below
- the data is in ASCII π€
if that works for the User-Telnet, it replies like this:
IAC SB OUTMRK ACK IAC SE
ACK is the ASCII ACK (6) β
from this point on, the User-Telnet has to translate any command that uses cursor controls so the application data gets mapped onto the application part of the screen π§
if the data in the subnegotiation field is unacceptable to the User-Telnet, it replies with this:
IAC SB OUTMRK NAK IAC SE
NAK is the ASCII NAK (21) π¬
now it's up to the Server-Telnet to start the whole sequence over and try more acceptable data (or it could take other action, like terminating the connection) π
to end output marking, the Server-Telnet sends WON'T OUTMRK π§Ή
if it's needed, the User-Telnet can tell the Server-Telnet about the new effective page size. then the User-Telnet maps the output data onto the usable space on the screen π
the User-Telnet may request OUTMRK data or start setting up this convention at anytime by sending DO OUTMRK πββοΈ if a WILL, DO OUTMRK exchange isn't followed by the OUTMRK subnegotiation of the marking data, the User-Telnet may end the output marking option by sending DON'T OUTMRK π
Control Flag π©
the CNTL flag is defined as:
- D = Default. The placement of the markings is up to the User-Telnet. This is the expected mode for most interactions π
- T = Top. This banner is to be used as the top of the screen. If you want multiple output markings, then T and B (or R & L) are to be used π
- B = Bottom. This banner is to be used at the bottom of the screen π½
- L = Left. Markings on the left. (The precise meaning of this is to be defined.) β¬ οΈ
- R = Right. Marking on right. (The precise meaning of this is to be defined.) β‘οΈ
Banner Data π
a Carriage Return and Line Feed (CRLF) is interpreted as an end of line in the marking banner text π if the user wants a multiline banner, they put a CRLF between each line πΈ there's no CRLF needed at the end of the marking data π
to use multiple banners, all of them go into one subnegotiation command, in this form:
IAC SB OUTMRK CNTL data GS CNTL data IAC SE
where GS is the ASCII Group Separator (29) character π«
the User-Telnet is responsible for positioning the marking banner data on the screen π«Άπ¦
π¦ where this page comes from
- ietf: rfc933 1985-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms