RFC 215 (rfc215) - Page 2 of 8
NCP, ICP, and Telnet: The Terminal IMP implementation
Alternative Format: Original Text Document
RFC #215
The Terminal IMP program currently implements only the NCP, the
ICP, and the TELNET protocol since these are of immediate interest to
the sites with Terminal IMPs. It is anticipated that portions of the
data transfer protocol will be implemented in the future; the portions
to be implemented are not yet clearly defined, but will probably include
the infinite bit stream (first) and the "transparent" mode (later).
Developments in the area of data transmission protocol will be
documented in the future.
The remainder of this note describes, and attempts to justify,
deviations from the official protocols and other design choices of
interest. Although written in the present tense, there are some
additional known instances of deviation from protocol which will be
corrected in the near future.
A) Deviations from Protocols
1) The Terminal IMP does not guarantee correct response
to ECO commands. If some Host A sends a control
message containing ECOs to the Terminal IMP, and the
message arrives at a time when
a) the Terminal IMP has a free buffer and
b) the control link from the Terminal IMP to Host A
is not blocked
then the Terminal IMP will generate a correct ERP for
each ECO. In all other cases the ECO commands will
be discarded. (All control messages sent by the
Terminal IMP begin with a NOP control command, so if
Host A sends a control message consisting of 60 ECO
commands, the Terminal IMP will answer (if at all)
with a 121-byte message -- 1 NOP and 60 ERPs.)
The reason for this method of implementation is that
to guarantee correct response to ECO in all cases
requires an infinite amount of storage. For
example, suppose Host A sends control messages, each
containing an ECO command, to Host B at the rate of
one per second, but that Host A accepts messages from
the network as slowly as possible (one every 39
seconds, say). Then Host B has only three choices
which do not violate protocol:
a) Declare itself dead to the network (i.e., turn
off its Ready line), thereby denying all its
users use of the network.