236 lines
9.1 KiB
Plaintext
236 lines
9.1 KiB
Plaintext
<html><head><TITLE>RFC 856</TITLE>
|
|
</head><body bgcolor="FFFFFF">
|
|
<a href="../index.html"><img src="../rfcicon.gif" border=0 align=right></a>
|
|
<a href="http://sunsite.auc.dk/"><img src="../hostedby.gif" border=0 align=right></a>
|
|
<H1>RFC 856</H1>
|
|
<p><HR>
|
|
<pre>
|
|
|
|
Network Working Group J. Postel
|
|
Request for Comments: 856 J. Reynolds
|
|
ISI
|
|
Obsoletes: NIC 15389 May 1983
|
|
|
|
TELNET BINARY TRANSMISSION
|
|
|
|
|
|
This RFC specifies a standard for the ARPA Internet community. Hosts on
|
|
the ARPA Internet are expected to adopt and implement this standard.
|
|
|
|
1. Command Name and Code
|
|
|
|
TRANSMIT-BINARY 0
|
|
|
|
2. Command Meanings
|
|
|
|
IAC WILL TRANSMIT-BINARY
|
|
|
|
The sender of this command REQUESTS permission to begin
|
|
transmitting, or confirms that it will now begin transmitting
|
|
characters which are to be interpreted as 8 bits of binary data by
|
|
the receiver of the data.
|
|
|
|
IAC WON'T TRANSMIT-BINARY
|
|
|
|
If the connection is already being operated in binary transmission
|
|
mode, the sender of this command DEMANDS to begin transmitting
|
|
data characters which are to be interpreted as standard NVT ASCII
|
|
characters by the receiver of the data. If the connection is not
|
|
already being operated in binary transmission mode, the sender of
|
|
this command REFUSES to begin transmitting characters which are to
|
|
be interpreted as binary characters by the receiver of the data
|
|
(i.e., the sender of the data demands to continue transmitting
|
|
characters in its present mode).
|
|
|
|
A connection is being operated in binary transmission mode only
|
|
when one party has requested it and the other has acknowledged it.
|
|
|
|
IAC DO TRANSMIT-BINARY
|
|
|
|
The sender of this command REQUESTS that the sender of the data
|
|
start transmitting, or confirms that the sender of data is
|
|
expected to transmit, characters which are to be interpreted as 8
|
|
bits of binary data (i.e., by the party sending this command).
|
|
|
|
IAC DON'T TRANSMIT-BINARY
|
|
|
|
If the connection is already being operated in binary transmission
|
|
mode, the sender of this command DEMANDS that the sender of the
|
|
data start transmitting characters which are to be interpreted as
|
|
|
|
|
|
Postel & Reynolds [Page 1]
|
|
<hr>
|
|
|
|
|
|
<a href="./rfc856.html">RFC 856</a> May 1983
|
|
|
|
|
|
standard NVT ASCII characters by the receiver of the data (i.e.,
|
|
the party sending this command). If the connection is not already
|
|
being operated in binary transmission mode, the sender of this
|
|
command DEMANDS that the sender of data continue transmitting
|
|
characters which are to be interpreted in the present mode.
|
|
|
|
A connection is being operated in binary transmission mode only
|
|
when one party has requested it and the other has acknowledged it.
|
|
|
|
3. Default
|
|
|
|
WON'T TRANSMIT-BINARY
|
|
|
|
DON'T TRANSMIT-BINARY
|
|
|
|
The connection is not operated in binary mode.
|
|
|
|
4. Motivation for the Option
|
|
|
|
It is sometimes useful to have available a binary transmission path
|
|
within TELNET without having to utilize one of the more efficient,
|
|
higher level protocols providing binary transmission (such as the
|
|
File Transfer Protocol). The use of the IAC prefix within the basic
|
|
TELNET protocol provides the option of binary transmission in a
|
|
natural way, requiring only the addition of a mechanism by which the
|
|
parties involved can agree to INTERPRET the characters transmitted
|
|
over a TELNET connection as binary data.
|
|
|
|
5. Description of the Option
|
|
|
|
With the binary transmission option in effect, the receiver should
|
|
interpret characters received from the transmitter which are not
|
|
preceded with IAC as 8 bit binary data, with the exception of IAC
|
|
followed by IAC which stands for the 8 bit binary data with the
|
|
decimal value 255. IAC followed by an effective TELNET command (plus
|
|
any additional characters required to complete the command) is still
|
|
the command even with the binary transmission option in effect. IAC
|
|
followed by a character which is not a defined TELNET command has the
|
|
same meaning as IAC followed by NOP, although an IAC followed by an
|
|
undefined command should not normally be sent in this mode.
|
|
|
|
6. Implementation Suggestions
|
|
|
|
It is foreseen that implementations of the binary transmission option
|
|
will choose to refuse some other options (such as the EBCDIC
|
|
transmission option) while the binary transmission option is in
|
|
|
|
|
|
|
|
|
|
Postel & Reynolds [Page 2]
|
|
<hr>
|
|
|
|
|
|
<a href="./rfc856.html">RFC 856</a> May 1983
|
|
|
|
|
|
effect. However, if a pair of hosts can understand being in binary
|
|
transmission mode simultaneous with being in, for example, echo mode,
|
|
then it is all right if they negotiate that combination.
|
|
|
|
It should be mentioned that the meanings of WON'T and DON'T are
|
|
dependent upon whether the connection is presently being operated in
|
|
binary mode or not. Consider a connection operating in, say, EBCDIC
|
|
mode which involves a system which has chosen not to implement any
|
|
knowledge of the binary command. If this system were to receive a DO
|
|
TRANSMIT-BINARY, it would not recognize the TRANSMIT-BINARY option
|
|
and therefore would return a WON'T TRANSMIT-BINARY. If the default
|
|
for the WON'T TRANSMIT-BINARY were always NVT ASCII, the sender of
|
|
the DO TRANSMIT-BINARY would expect the recipient to have switched to
|
|
NVT ASCII, whereas the receiver of the DO TRANSMIT-BINARY would not
|
|
make this interpretation.
|
|
|
|
Thus, we have the rule that when a connection is not presently
|
|
operating in binary mode, the default (i.e., the interpretation of
|
|
WON'T and DON'T) is to continue operating in the current mode,
|
|
whether that is NVT ASCII, EBCDIC, or some other mode. This rule,
|
|
however, is not applied once a connection is operating in a binary
|
|
mode (as agreed to by both ends); this would require each end of the
|
|
connection to maintain a stack, containing all of the encoding-method
|
|
transitions which had previously occurred on the connection, in order
|
|
to properly interpret a WON'T or DON'T. Thus, a WON'T or DON'T
|
|
received after the connection is operating in binary mode causes the
|
|
encoding method to revert to NVT ASCII.
|
|
|
|
It should be remembered that a TELNET connection is a two way
|
|
communication channel. The binary transmission mode must be
|
|
negotiated separately for each direction of data flow, if that is
|
|
desired.
|
|
|
|
Implementation of the binary transmission option, as is the case with
|
|
implementations of all other TELNET options, must follow the loop
|
|
preventing rules given in the General Considerations section of the
|
|
TELNET Protocol Specification.
|
|
|
|
Consider now some issues of binary transmission both to and from
|
|
both a process and a terminal:
|
|
|
|
a. Binary transmission from a terminal.
|
|
|
|
The implementer of the binary transmission option should
|
|
consider how (or whether) a terminal transmitting over a TELNET
|
|
connection with binary transmission in effect is allowed to
|
|
generate all eight bit characters, ignoring parity
|
|
considerations, etc., on input from the terminal.
|
|
|
|
|
|
Postel & Reynolds [Page 3]
|
|
<hr>
|
|
|
|
|
|
<a href="./rfc856.html">RFC 856</a> May 1983
|
|
|
|
|
|
b. Binary transmission to a process.
|
|
|
|
The implementer of the binary transmission option should
|
|
consider how (or whether) all characters are passed to a
|
|
process receiving over a connection with binary transmission in
|
|
effect. As an example of the possible problem, TOPS-20
|
|
intercepts certain characters (e.g., ETX, the terminal
|
|
control-C) at monitor level and does not pass them to the
|
|
process.
|
|
|
|
c. Binary transmission from a process.
|
|
|
|
The implementer of the binary transmission option should
|
|
consider how (or whether) a process transmitting over a
|
|
connection with binary transmission in effect is allowed to
|
|
send all eight bit characters with no characters intercepted by
|
|
the monitor and changed to other characters. An example of
|
|
such a conversion may be found in the TOPS-20 system where
|
|
certain non-printing characters are normally converted to a
|
|
Circumflex (up-arrow) followed by a printing character.
|
|
|
|
d. Binary transmission to a terminal.
|
|
|
|
The implementer of the binary transmission option should
|
|
consider how (or whether) all characters received over a
|
|
connection with binary transmission in effect are sent to a
|
|
local terminal. At issue may be the addition of timing
|
|
characters normally inserted locally, parity calculations, and
|
|
any normal code conversion.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Postel & Reynolds [Page 4]
|
|
<hr>
|
|
</pre>
|