Network Working Group Dave Crocker, Rand-ISD
Request for Comments:
729 (Dcrocker at Rand-Unix)
NlC:
40306 13 May l977
TELNET Byte Macro Option
1. Command name and code:
BM 19
2. Command Meanings:
IAC WILL BM
The sender of this command REQUESTS or AGREES to use the BM
option, and will send sing1e data characters which are to be
interpreted as if longer data strings had been sent.
IAC WON'T BM
The sender of this option REFUSES to send single data
characters which are to be interpreted as if longer data
strings had been sent.
IAC DO BM
The sender REQUESTS or AGREES to have the other side (send of
WILL BM) issue send single data characters which are to be
interpreted as if longer data strings had been sent.
IAC DON'T BM
The sender REFUSES to allow the other side to send single data
characters which are to be interpreted as if longer data
strings had been sent.
IAC SB BM <DEFINE> <macro byte> <count>
<expansion string> IAC SE
where:
<macro byte> is the data byte actually to be sent across
the network; it may NOT be Telnet IAC (decimal 255).
IAC SB BM <LITERAL> <macro byte> IAC SE
The <macro byte> is to be treated as real data, rather than as
representative of the <expansion string>
<LITERAL> is decimal 03.
3. Default:
WON'T BM -- DON'T BM
No reinterpretation of data is allowed.
4. Motivation for the option:
Subcommands for Telnet options currently require a minimum of five
characters to be sent over the network (i.e., IAC SB <Option name>
IAC SE). For sub-commands which are employed infrequently, in
absolute numbers and in relation to normal data, this overhead is
tolerable. In other cases, however, it is not. For example, data
which is sent in a block-oriented fashion may need a "block
separator" mark. If blocks are commonly as small as five or ten
bytes, then most of the cross-net data will be control information.
The BM option is intended as a simple data compression technique,
to remove this overhead from the communication channel.
5. Description of the option
The option is enabled through the standard Telnet Option
negotiation process. Afterwards, the SENDER of data (the side which
sends the IAC WILL BM) is free to define and use mappings between
single and multiple NOT characters. Except for the ability to offer
a blanket refusal, the receiver of data has no control over the
definition and use of mappings.
The sender (of the WILL BM) is prohibited from using or redefining
a <macro byte> until it has received an <ACCEPT> or <REFUSE>, in
reply to a <DEFINE>.
NOTE: The Telnet command character IAC (decimal 255) may be a
member of an <expansion string> but is the ONLY character which may
NOT be defined as a <macro byte>. ALL OTHER Telnet command
characters use IAC as a preface and therefore occupy a SEPARATE