Network Working Group M. A. Padlipsky Request for Comments: 647 MITRE-TIP NIC: 31117 November 1974A PROPOSED PROTOCOL FOR CONNECTING HOST COMPUTERS TO ARPA-LIKE NETWORK VIA DIRECTLY-CONNECTED FRONT END PROCESSORS
Padlipsky [Page 1]
RFC 647 November 1974
INTRODUCTIONHost *** Front End --- IMP --- Networkeverything to the right of the asterisks may almost be taken as given. (Caveat: Note the "almost" well in last sentence neither ANTS nor ELF -- the two systems alluded to above -- is a completely finished product in the estimation of either their respective developers or of the knowledgeable ARPANET workers who have contributed to this report. Both are capable of being brought to fruition, though, and in a reasonable amount of time. We will assume ELF as the actual front-end system here for two reasons: apparent consensus, and current activity level of the development team. However, we have no reason to believe that readers who prefer ANTS would encounter substantive difficulties in implementing our proposal on it.)
Padlipsky [Page 2]
RFC 647 November 1974
(Explanatory notes: ANTS is an acronym for ARPA Network Terminal Support system; it was developed at the Center for Advanced Computation (CAC), University of Illinois. ELF is not an acronym (It is said to be German for "eleven"); it was designed at the Speech Communications Research Lab (SCRL), Santa Barbara, California.)
Padlipsky [Page 3]
RFC 647 November 1974
DISAVANTAGES OF THE RIGID FRONT-END ALTERNATIVE
Padlipsky [Page 4]
RFC 647 November 1974
On a still more practical level, it should be noted that the potential need to simulate more than one known device -- and even the potential complexity of any single device simulation -- may well lead to a requirement for a larger PDP-11 configuration than would otherwise be reasonable. And although there are other reasons for arguing that each front-end processor ought to be as big a configuration as possible, we must acknowledge that dollars do matter. Also on the topic of numbers, it should be further noted that the line speed available for known-device simulations can be quite low. The 200UT, for example, is on a 4800 baud line, which is rather a mismatch with a 50,000 baud communication subnet. (Of course, there's always the 40,800 baud line into the 6600 -- but it is'nt expected to have interactive devices on it, so the extant software won't send the data to the "right place"....) And no experienced ARPANET protocol designer would be willing to overlook the possibility that there will probably have to be a flow control discipline between the Host and the front-end processor anyway, so the no change to Host software goal becomes rather dubious of fulfillment.
Padlipsky [Page 5]
RFC 647 November 1974
THE FLEXIBLE FRONT-END ALTERNATIVE
Padlipsky [Page 6]
RFC 647 November 1974
Another advantage of our new approach is that it involves personnel at the various new sites in the process of coming aboard the network. Not only does this involvement have merit psychologically (if known- device simulation were employed, the network could represent an alien intrusion forced upon them, to site systems types), but it is also technically preferable to have per-site coding done by "experts", which would not be the case if the per-site tailoring were done exclusively in the mini. Recall the PDP-15 to PDP-10 attempt discussed earlier. That case may fairly be viewed as one of the front-ending's having been performed in ignorance of the conventions of both the Host's operating system and of the ARPANET? Not only should that sort of thing be avoided by the expedient of involving experts on the target operating systems in the process of attaching to the network but there are practical considerations as well: we estimate that adding a minimal Host-Front End Protocol routine in a given operating system would require no longer than the same few man months to develop than would the adding of a new known-device simulation package to the mini. So that we foresee scheduling advantages in addition to the more abstract ones already asserted. Further, it ought to be a more friendly environment to program in on the Host than in the mini. (This is not to say the ELF does not appear to be good environment to program in; rather, it is to make the "obvious" claim that if the big systems did not furnish convenient programming environments we wouldn't have them.)
Padlipsky [Page 7]
RFC 647 November 1974
The strengths of the flexible front-end approach, then, tend to arise in exactly those areas of weakness of the rigid front-end approach. Perhaps most important of all, though, is the fact that it "makes sense" to almost every single experienced member of the ARPANET community with whom it has been discussed. So, we might reason, if the ARPANET is desirable, it is desirable because efforts of those who made it work and if they have gained insights into networking in general in the process, their opinions deserve particular attention.
Padlipsky [Page 8]
RFC 647 November 1974
On the software level, buffering is assumed to be adequate in the Host to accept at least a full (8096 bit) IMP-IMP message-- although the FE could probably get around this constraint if it absolutely had to. Given only a minimal H-FP module in the Host, the FE will allow the same level of Telnet and RJE functioning as would the known- device simulation, as follows: The FE will always shield the Host from the NCP commands and the simplex sockets they deal with, dealing instead with a repertoire of but five H-FP commands and conversing over duplex data streams with the appropriate management of Network sockets left to the FE. (The commands are described below; we continue with the discussion of assumptions here, but some readers may prefer to study the commands before continuing with the balance of this section.) For Telnet, although subsequent analysis may lead to a more sophisticated treatment, the present assumption is that the FE will normally refuse all "negotiated options" and strip all Telnet control codes from the data it passes to the Host (unless the Host orders it to pass an unaltered Telnet stream); on a pre-installation basis, the FE will also map from Telnet ASCII to the Host's desired character set. Telnet "interrupt process" controls are handled by an H-FP command, discussed below.
Padlipsky [Page 9]
RFC 647 November 1974
The Host's H-FP module, in short, will interpret the commands of the protocol, distribute Telnet data to and from the appropriate points within its operating system where terminal I/O is expected, distribute RJE data like manner, and when it is able to do so handle FTP as sketched above and amplified on below. It will, also on a when-desired basis, support calls from its system's user processes for unspecified purposes I/O on ARPANET sockets to allow for such functions as teleconferencing and other process exploitations of the Net. Our overriding assumption is that the initial H-FP module for a given Host (which does not require FTP or unspecified socket capability) will not be appreciably harder to implement than a known-device simulation; that it will offer extensibility to more interesting uses of the network than the alternative has been sketched here and will be returned to after the H-FP commands are described.
Padlipsky [Page 10]
RFC 647 November 1974 1. BEGIN INDEX HOST SOCKET TRANSLATION-TYPE CONNECTION-TYPEThe begin command establishes a "connection" between the Host and the FE. Regardless of internal representation, the duplex data stream the connection represents will be referred to by the value specified in the next (INDEX) field that is, for example, the FE will send input from and receive output for a given Telnet connection "on" a given INDEX, even though it is actually managing two "sockets" for the purpose in its dealings with the Network.
Padlipsky [Page 11]
RFC 647 November 1974 2. ACKNOLEDGE INDEX CODEThe ACKNOWLDEGE command is multi-purpose. It must be sent in response to all commands from the other machine (other than ACKNOWLEDGES, of course), and is primarily used to indicate the success or failure of the command just received on INDEX. Note that this implies that each MESSAGE on a given INDEX must be ACKNOWLEDGEd before the next can be sent.
3. MESSAGE INDEX COUNT PAD TEXT
The MESSAGE command is employed for the transmission of data.
Padlipsky [Page 12]
RFC 647 November 1974 4. INTERRUPT INDEXThe INTERRUPT command, when sent from the FE to the Host, indicates that an FCP interrupt command (INS or INR) has been received for the process associated with INDEX; the Host should interrupt the associated process and whatever fashion is "normal" to it. (The most common use of the NCP is in Telnet, where it is defined as being the functional equivalent of having struck a terminal's ATTN, INT, of BREAK key, or input a "control-c" on certain character-at-a-time systems; essentially, it requests a "quit button" push. Note that the FE will take care of the associated Telnet control code in the input stream.) When sent from the Host to the FE (in process to process applications), it will indicate that an appropriate NCP interrupt be sent, according to the gender of the socket associated with INDEX.
5. END INDEX CODE
The END command is used to terminate a connection. It may be sent either because one system or the other is about to go down, or because the FE have received an NCP "CLS" command or because the destination system or IMP has gone down, or at the behest of a Host user process.
Padlipsky [Page 13]
RFC 647 November 1974
The astute reader will have noticed that most of the commands have been specified with an eye toward the future. Because the same protocol, which allows the Host and the FE to communicate can easily allow user processes on the Host to use the Network, we have tried to encourage this desirable end by furnishing all the necessary hoods and handholds for it in the FE's H-FP module through the broad definitions of the commands. A Hosts's H-FP module can furnish a trivial interface for user programs in terms of a very few entry points (open, read, write, and close appear to be the minimal set) and allow the user program considerable flexibility in its use of the net. For example, a "User" FTP program could be straightforwardly created even for a Host, which did not choose to field the BEGINs on socket 3 (necessary for "Server" FTP capability), and files could still be "pulled" to the Host even if they could not be "pushed" to it. (the FE will be required to recognize and special-case BEGINs on socket 3, but that's a small price to pay). So, if the specification of the h-FP command repertoire seems somewhat more complex than it need be, remember that not all of it has to coped with on any given Host -- and that any give host ca take advantage of more functions as it desires. (Although it's not really within the present scope, we stand willing to invent per-Host H-FP to user program interfaces on request.)
Padlipsky [Page 14]
RFC 647 November 1974
(Files could, of course, be transferred into the FE, then somehow gotten into the Host "later" -- perhaps by faxing up a batch job -- but that route requires either an awful lot of buffering in the mini or a very sophisticated file system there, or both. It also requires an awful lot of per-Host information in each FE -- or perhaps human intervention. We're not saying it can't be done... eventually. But it's not going to be clean, or quick, or easy, or cheap.)
Padlipsky [Page 15]
RFC 647 November 1974
APPENDIX 2 - SOME NOTES ON IMPLEMENTERS
Padlipsky [Page 16]
RFC 647 November 1974
SEVERAL HORROR STORIES FROM THE WONDERFUL WORLD OF NETWORKING
Padlipsky [Page 17]
RFC 647 November 1974
Yet what has gone amiss here in Horror Story 2? I submit that the choice of subcontractors was based upon a misapprehension of the level of technological sophistication associated with the ARPANET, and that what was (is?) needed is a subcontract to a knowledgeable ARPANET source (and I don't mean to the usual, profit-marking place -- though I guess I trust them for the subnet), rather than to "outsiders". (I don't even mean to any particular place on the Net; maybe what's needed is to form a meta-place out of the whole Net. More on this, too, later.) The real point is that the model was essentially ignored by the putative model-followers, and -- demonstrably -- it shouldn't have been.
Padlipsky [Page 18]
RFC 647 November 1974
Then three's the fad to simulate RJE terminals... but to use that as Horror Story 5 would be begging the question -- for now.
Padlipsky [Page 19]
RFC 647 November 1974
BEYOND THE PAIN PRINCIPLE