Network Working Group R. Kalin
Request for Comments: 203
MIT Lincoln Lab
10 August 1971
Achieving Reliable Communication
'This material has not been reviewed for public release and is
intended only for use with the ARPA network. It should not be quoted
or cited in any publication not related to the ARPA network.'
A non-standard protocol, suitable for either second or third level
use, is proposed with the intent of providing error resistant and
highly reliable communication channels. Errors introduced by message
garbling, message loss, and message pickup are considered. Measures
for increasing throughput are also discussed.
AIMS AND LIMITATIONS
It is not our intent to propose the design of a perfect communication
channel, rather it is our contention that in the real world there can
be no perfect channels and that no amount of protocol can insure the
error free transfer of information. Our goal is to explicate the
various types of errors that are possible and to provide for each
techniques of detection and recovery that, at a cost, can be made
arbitrarily good. In this way the mean time between undetected
errors can be made as large as necessary.
ERROR TYPES AND DETECTION
Over a message switching facility, such as the ARPA network, all
transmission errors can be divided into two classes -- those that
result in the loss of an expected message, and those that result in
the picking up of an unexpected message. A single bit inversion can
cause errors of both types. Error detection can therefore be divided
into two components -- one which attempts to determine if the message
just received is appropriate at that time, and another which attempts
to determine if a message has been lost.
The detection of garbled input messages has been adequately covered
by classical coding ( elsewhere, mistakenly termed 'communication' )
theory. Internal message consistency can be determined through the
use parity bits, checksum fields, or any of the various coding
techniques available for adding some measure of redundancy. With
relative simplicity, the likelyhood of an undetected error of this
type can be made small enough so as to become inconsequential.