Alex McKenzie (mckenzie@LABS-N.BBN.COM)
Wed, 23 Mar 88 8:55:08 EST
During the past few days there have been several messages about "off loading
the protocol processing" from one's processor to an outboard box. It appears
that networking ideas are coming full circle. In a paper presented in May
1970, Larry Roberts of ARPA wrote:
"In this paper a computer network is defined to be a set of autonomous,
independent computer systems, interconnected so as to permit active
resource sharing... The goal of the computer network is for each
computer to make every local resource available to any computer in the
net in such a way that any program available to local users can be
used remotely without degradation....The communication pipelines
offered by the carriers would probably have to be a components of
that service but were clearly inadequate by themselves. What was
needed was a message service where any computer and be sure it would be
delivered promptly and correctly...The distributed store and forward
system was chosen, after careful study, as the ARPA Network
A companion paper, by several BBN authors, provided more detail:
"The network is thus a store and forward system and as such must
deal with problems of routing, buffering, synchronization, error
control, reliability, and other related issues. To insulate the
computer centers from these problems, and to insulate the network
from the problems of the computer centers, ARPA decided to place
identical small processors at each network node, to interconnect
these small processors with leased common-carrier circuits to form
a subnet, and to connect each research computer center into the
net via the local small processor.... The subnet should function
as a communications system whose essential task is to transfer bits
reliably from a source location to a specified destination. Bit
transmission should be sufficiently reliable and error free to
obviate the need for special precautions (such as storage for
retransmission) on the part of the Hosts."
In fact, the ARPANET met these specifications so well that NCP, the original
"Layer 4" protocol used until the end of 1982, had essentially no error
checking, retransmission, etc. The protocol processing of Hosts using NCP
was largely off-loaded, into the subnetwork's Interface Message Processor.
During the mid-1970's however, there arose body of opinion that subnetwork should provide only datagram service, and that the hosts should do the protocol processing themselves. There were 3 primary supporting arguments for this viewpoint:
1) Some bugs in the code of the ARPANET packet switches caused two or three network "lockups" in the first few years. A datagram- only network would not be subject to such events.
2) A packet switch which didn't do all that work would be cheaper to build and maintain.
3) Since no network can absolutely guarantee perfect service (it was obligatory to mention the X.25 "Reset" here), any host that cares about reliability will have to provide its own end-to-end reliability mechanisms. Since all hosts will probably care about reliability some time, all hosts will need to implement end-to-end reliability mechanisms. Since all Hosts have to do this, the network shouldn't bother to try.
In fact, a number of the networks which became components of the Internet were built according to this minimalist philosophy, thereby insuring that all hosts would often have to care about reliability.
It seems to me that as we begin to work on the next generation of networks we ought to re-examine the datagram basis of the current Internet architecture. I think we've thrown the baby out with the bathwater. I believe that a carefully designed network can provide enough reliability for almost all host needs, and this is the best way to offload protocol processing. It is best because it puts the responsibility for doing it right, fixing it when it breaks, and improving it when research produces a better way, in the hands of a single identifiable organization. This is far superior to having each host procuring yet another box to go between itself and the communication network with no one (in many cases) responsible for the care, diagnosis, repair, or improvement of the box.
This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:41:31 GMT