RFC 55 (rfc55) - Page 1 of 23
Prototypical implementation of the NCP
Alternative Format: Original Text Document
Network Working Group J. Newkirk
Request for Comments: 55 M. Kraley
Harvard
J. Postel
S. Crocker
UCLA
19 June 1970
A Prototypical Implementation of the NCP
While involved in attempting to specify the formal protocol, we also
attempted to formulate a prototypical NCP in an Algol-like language.
After some weeks of concentrated effort, the project was abandoned as
we realized that the code was becoming unreadable. We still,
however, felt the need to demonstrate our conception of how an NCP
might be implemented; we felt that this would help suggest solutions
for problems that might arise in trying to mold the formal
specifications into an existing system. This document is that
attempt to specify in a prose format what an NCP could look like.
There are obvious limitations on a project of this nature. We do
not, and cannot, know all of the quirks of the various systems that
must write an NCP. We are forced to make some assumptions about the
environment, system calls, and the like. We have tried to be as
general as possible, but no doubt many sites will have completely
different ways of conceptualizing the NCP. There is great difficulty
involved in conveying our concepts and the mechanisms that deal with
these concepts to people who have wholly different ways of looking at
things. We have, however, benefited greatly by trying to actually
code this program for our fictitious machine. Many unforeseen
problems surfaced during the coding, and we hope that by issuing this
document we can help to alleviate similar problems which may arise in
individual cases.
There is, of course, absolutely no requirement to implement anything
which is contained in this document. The only rigid rules which an
NCP _must_ conform to are stated in NWG/RFC#54. This description is
intended only as an example, _not_ as a model.
In the discussion which follows we first describe the environment to
be assumed and postulate a set of system calls. We discuss the
overall architecture of the NCP and the tables that will be used to
hold relevant information. Narratives of network operations follow.
A state diagram is then presented as a convenient method for
conceptualizing the cause-effect sequencing of events. The detailed
processing of each type of network event (system calls or incoming
network messages) is then discussed.
Newkirk, et al.