One of the inherent problems in the network is the fact that all responses
from a remote HOST will require on the order of a half-second or so,
no matter how simple. For teletype use, we could shift to a
half-duplex local-echo arrangement, but this would destroy some of the
usefulness of the network. The 940 Systems, for example, have a very
specialized echo.
When we consider using graphics stations or other sophisticated
terminals under the control of a remote HOST, the problem becomes more
severe. We must look for some method which allows us to use our most
sophisticated equipment as much as possible as if we were connected
directly to the remote computer.
Error Checking
The point is made by Jeff Rulifson at SRI that error checking at major
software interfaces is always a good thing. He points to some
experience at SRI where it has saved much dispute and wasted effort.
On these grounds, we would like to see some HOST to HOST checking.
Besides checking the software interface, it would also check the
HOST-IMP transmission hardware. (BB&N claims the HOST-IMP hardware
will be as reliable as the internal registers of the HOST. We believe
RFC 1 Host Software 7 April 1969
them, but we still want the error checking.)
III. The Host Software
Establishment of a Connection
The simplest connection we can imagine is where the local HOST acts as
if it is a TTY and has dialed up the remote HOST. After some
consideration of the problems of initiating and terminating such a
connection , it has been decided to reserve link 0 for communication
between HOST operating systems. The remaining 31 links are thus to be
used as dial-up lines.
Each HOST operating system must provide to its user level programs a
primitive to establish a connection with a remote HOST and a primitive
to break the connection. When these primitives are invoked, the
operating system must select a free link and send a message over link
0 to the remote HOST requesting a connection on the selected link.
The operating system in the remote HOST must agree and send back an
accepting message over link 0. In the event both HOSTs select the same
link to initiate a connection and both send request messages at
essentially the same time, a simple priority scheme will be invoked in
which the HOST of lower priority gives way and selects another free
link. One usable priority scheme is simply the ranking of HOSTS
by their identification numbers. Note that both HOSTs are aware that
simultaneous requests have been made, but they take complementary
actions: The higher priority HOST disregards the request while the
lower priority HOST sends both an acceptance and another request.
The connection so established is a TTY-like connection in the
pre-log-in state. This means the remote HOST operating system will
initially treat the link as if a TTY had just called up. The remote
HOST will generate the same echos, expect the same log-in sequence and
look for the same interrupt characters.
High Volume Transmission
Teletypes acting as terminals have two special drawbacks when we
consider the transmission of a large file. The first is that some
characters are special interrupt characters. The second is that
special buffering techniques are often employed, and these are
appropriate only for low-speed character at time transmission.
We therefore define another class of connection to be used for the
transmission of files or other large volumes of data. To initiate
this class of link, user level programs at both ends of an established
TTY-like link must request the establishment of a file-like connection
parallel to the TTY-like link. Again the priority scheme comes into
RFC 1 Host Software 7 April 1969
play, for the higher priority HOST sends a message over link 0 while
the lower priority HOST waits for it. The user level programs are, of
course, not concerned with this. Selection of the free link is done
by the higher priority HOST.
File-like links are distinguished by the fact that no searching for
interrupt characters takes place and buffering techniques appropriate
for the higher data rates takes place.
A Summary of Primitives
Each HOST operating systems must provide at least the following
primitives to its users. This list knows not to be necessary but not
sufficient.
=3= |