RFC 512 UNKNOWN NCP · RELIABILITY

More on lost message detection

Wayne Hathaway proposes a Sequence Control Byte in the host message leader so a receiving NCP can spot lost messages at once.

On rfc-editor.org ↗
PUBLISHED
May 1973
AUTHORS
W. Hathaway
STREAM
Legacy
COUNT
Modulo 255, per link
FIELD SIZE
One 8-bit byte of two unused
NO CHECKING
SCB of zero
VALUE AFTER 255
1
DOI
10.17487/RFC0512

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     Wayne Hathaway
RFC # 512                                                        AMES-67
NIC # 16443                                                  25 May 1973


                    MORE ON LOST MESSAGE DETECTION

I would like to second Edwin Meyer's (RFC #492) strong opposition to the
proposals made in RFC #467 concerning solutions to the "lost allocate"
and "half-closed" phenomena.  In particular I support all of his
principles concerning the "half-closed" phenomenon.  I also agree that
the proposed "lost allocate" solution tends to mask the real problem of
lost messages.  I would, however, like to propose the following
alternative scheme for recognizing lost messages.

I propose that one of the two unused eight-bit bytes in the level 2
message leader be designated the "Sequence Control Byte" (SCB).  This
SCB would be essentially a modulo 255 message count.  Upon receipt of a
message, the receiving NCP would compare the SCB in the previous the
message with the expected SCB as computed from the SCB in the previous
message on the same link.  A discrepancy indicates a lost message, which
could then be reported immediately via an appropriate ERR message.  This
ERR message (to be defined) would contain both received and expected
SCB's, allowing possible recovery of the lost message (if sufficient
space were available in the sending host to save the last several
messages for each link).  At any rate, the lost message would be
recognized immediately, whether it was an ALL (or any control message)
or a data message.  The message with the unexpected SCB should be
processed normally, with the SCB for the next message computed from it.

For compatibility, the SCB would be defined such that an SCB of zero
indicates that no checking is to be done.  The SCB following 255 would
thus be 1.  This would mean that current NCP's would not have to be
changed unless actual checking were desired (since the level 2 protocol
specifies that these two unused bytes must be zero.)  This special
definition of zero SCB would also allow RST's and ERR's to bypass
checking, which would be useful in avoiding possible loops.

This proposed scheme is similar to the second scheme suggested by Jon
Postel (RFC #516) except that it is on a per-link basis rather than a
per-host basis.  This is significant, however, as it removes the
requirement that all messages from one host to another arrive in the
order sent (which cannot be guaranteed).  It also provides for
compatibility with existing NCP's.  Jon's first proposal (save all
messages until RFNM received) is weak in two areas: first, it is
possible that the receiving IMP has sent a RFNM for a message that in
fact never gets to its host, and second, it requires (at least for
swapped systems such as ours) either that messages be saved in resident

storage (expensive) or that RFNM's be handled by a swapped process (also
expensive).  The third proposal (that of a host-to-host acknowledgment
scheme) is perhaps the best, but as that requires quite major changes to
the level 2 protocol, an interim solution such as that proposed here
seems of value.










       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by Alex McKenzie with    ]
       [ support from GTE, formerly BBN Corp.             9/99 ]

AI ELI5

On this page
PROBLEMMessages could be lost between hosts, and fixes proposed in RFC 467 for the lost allocate and half-closed problems tended to mask the real problem of lost messages.
MECHANISMOne of the two unused bytes in the level 2 message leader becomes a Sequence Control Byte, a per-link message count. The receiving NCP compares it to the expected value and reports a mismatch with an ERR message.
THE CATCHA zero value means no checking, so existing NCPs need not change. The RFC presents the scheme as an interim solution.

§1Why Lost Messages Matter

Wayne Hathaway of AMES-67 seconds Edwin Meyer's strong opposition (in RFC 492) to the proposals in RFC 467 about the lost allocate and half-closed phenomena. He supports Meyer's principles on the half-closed phenomenon and agrees that the lost allocate fix masks the real problem of lost messages. He then proposes an alternative scheme for recognizing lost messages.

If letters vanish and you only patch the symptoms, you never find out that letters are vanishing. This note goes after the vanishing itself.

§2The Sequence Control Byte

One of the two unused eight-bit bytes in the level 2 message leader would be named the Sequence Control Byte (SCB), essentially a modulo 255 message count kept on each link. The receiving NCP computes the expected SCB from the previous message on the same link and compares.

A discrepancy indicates a lost message, which can be reported immediately with an ERR message (still to be defined) carrying both the received and expected SCBs. That could allow recovery if the sender kept the last several messages for each link. The message with the unexpected SCB should still be processed normally, and the next expected SCB is computed from it.

Each letter in a stack gets a page number. If the receiver sees page 5 after page 3, it knows page 4 is missing and says so right away.

§3Compatibility and Comparison

An SCB of zero means that no checking is to be done, and the SCB after 255 is 1. Because the level 2 protocol says these two unused bytes must be zero, current NCPs need not change unless checking is wanted. The zero rule also lets RST and ERR messages bypass checking, which avoids possible loops.

The scheme resembles the second scheme in RFC 516 but works per link rather than per host, so it does not require all messages between two hosts to arrive in the order sent, which cannot be guaranteed. Hathaway finds the first RFC 516 scheme weak because an IMP may send a RFNM for a message that never reaches its host, and because saving messages is expensive on swapped systems. He thinks the third scheme, host-to-host acknowledgments, is perhaps the best, but it needs major changes to the level 2 protocol, so an interim solution like this has value.

A page number of zero means do not check, so old machines that never number their pages keep working just as before.

§4References