📄 rfc707.txt
字号:
NWG/RFC# 707 JEW 14-JAN-76 19:51 34263NCC 76 A High-Level Framework for Network-Based Resource SharingTHE GOAL, RESOURCE SHARING 1 The principal goal of all resource-sharing computer networks,including the now international ARPA Network (the ARPANET), is tousefully interconnect geographically distributed hardware, software,and human resources [1]. Achieving this goal requires the designand implementation of various levels of support software within eachconstituent computer, and the specification of network-wide"protocols" (that is, conventions regarding the format and therelative timing of network messages) governing their interaction.This paper outlines an alternative to the approach that ARPANETsystem builders have been taking since work in this area began in1970, and suggests a strategy for modeling distributed systemswithin any large computer network. 1a The first section of this paper describes the prevailing ARPANETprotocol strategy, which involves specifying a family ofapplication-dependent protocols with a network-wide inter-processcommunication facility as their common foundation. In the secondsection, the application-independent command/response disciplinethat characterizes this protocol family is identified and itsisolation as a separate protocol proposed. Such isolation wouldreduce the work of the applications programmer by allowing thesoftware that implements the protocol to be factored out of eachapplications program and supplied as a single,installation-maintained module. The final section of this paperproposes an extensible model for this class of network interactionthat in itself would even further encourage the use of networkresources. 1b -1-NWG/RFC# 707 JEW 14-JAN-76 19:51 34263NCC 76 A High-Level Framework for Network-Based Resource Sharing The Current Software Approach to Resource SharingTHE CURRENT SOFTWARE APPROACH TO RESOURCE SHARING 2Function-Oriented Protocols 2a The current ARPANET software approach to facilitating resourcesharing has been detailed elsewhere in the literature [2, 3, 4].Briefly, it involves defining a Host-Host Protocol by which theoperating systems of the various "host" computers cooperate tosupport a network-wide inter-process communication (IPC) facility,and then various function-oriented protocols by which processesdeliver and receive specific services via IPC. Eachfunction-oriented protocol regulates the dialog between a resident"server process" providing the service, and a "user process" seekingthe service on behalf of a user (the terms "user" and "user process"will be used consistently throughout this paper to distinguish thehuman user from the computer process acting on his behalf). 2a1 The current Host-Host Protocol has been in service since 1970.Since its initial design and implementation, a variety ofdeficiencies have been recognized and several alternative protocolssuggested [5, 6]. Although improvements at this level would surelyhave a positive effect upon Network resource sharing, the presentpaper simply assumes the existence of some form of IPC and focusesattention upon higher level protocol design issues. 2a2 Each of the function-oriented protocols mentioned in this paperconstitutes the official ARPANET protocol for its respectiveapplication domain and is therefore implemented at nearly all of the75 host installations that now comprise the Network. It isprimarily upon this widely implemented protocol family (and thephilosophy it represents) that the present paper focuses. Needlessto say, other important resource sharing tools have also beenconstructed within the ARPANET. The Resource Sharing Executive(RSEXEC), designed and implemented by Bolt, Beranek and Newman, Inc[7], provides an excellent example of such work. 2a3Experience with and Limitations of Hands-On Resource Sharing 2b The oldest and still by far the most heavily usedfunction-oriented protocol is the Telecommunications Networkprotocol (TELNET) [8], which effectively attaches a terminal on onecomputer to an interactive time-sharing system on another, andallows a user to interact with the remote system via the terminal asif he were one of its local users. 2b1 -2-NWG/RFC# 707 JEW 14-JAN-76 19:51 34263NCC 76 A High-Level Framework for Network-Based Resource Sharing The Current Software Approach to Resource Sharing As depicted in Figure 1, TELNET specifies the means by which auser process monitoring the user's terminal is interconnected, viaan IPC communication channel, with a server process with access tothe target time-sharing system. TELNET also legislates a standardcharacter set in which the user's commands and the system'sresponses are to be represented in transmission between machines.The syntax and semantics of these interchanges, however, vary fromone system to another and are unregulated by the protocol; the userand server processes simply shuttle characters between the humanuser and the target system. 2b2 Although the hands-on use of remote resources that TELNET makespossible is a natural and highly visible form of resource sharing,several limitations severely reduce its long-term utility: 2b3 (1) It forces upon the user all of the trappings of the resource's own system. To exploit a remote resource, the user must leave the familiar working environment provided by his local system and enter an alien one with its own peculiar system structure (login, logout, and subsystem entry and exit procedures) and command language discipline (command recognition and completion conventions, editing characters, and so on). Hands-on resource sharing thus fails to provide the user with the kind of organized and consistent workshop he requires to work effectively [9]. (2) It provides no basis for bootstrapping new composite resources from existing ones. Because the network access discipline imposed by each resource is a human-engineered command language, rather than a machine-oriented communication protocol, it is virtually impossible for one resource to programatically draw upon the services of others. Doing so would require that the program deal successfully with complicated echoing and feedback characteristics; unstructured, even unsolicited system responses; and so forth. Hands-on resource sharing thus does nothing to provide an environment in which existing resources can be used as building blocks to construct new, more powerful ones. These inherent limitations of hands-on resource sharing areremoved by a protocol that simplifies and standardizes the dialogbetween user and server processes. Given such a protocol, the -3-NWG/RFC# 707 JEW 14-JAN-76 19:51 34263NCC 76 A High-Level Framework for Network-Based Resource Sharing The Current Software Approach to Resource Sharingvarious remote resources upon which a user might wish to draw canindeed be made to appear as a single, coherent workshop byinterposing between him and them a command language interpreter thattransforms his commands into the appropriate protocol utterances[10, 11]. The construction of composite resources also becomesfeasible, since each resource is accessible by means of amachine-oriented protocol and can thus be readily employed by otherprocesses within the network. 2b4Standardizing the Inter-Machine Dialog in Specific Application Areas 2c After the TELNET protocol had been designed and widelyimplemented within the ARPANET, work began on a family offunction-oriented protocols designed for use by programs, ratherthan human users. Each such protocol standardizes the inter-machinedialog in a particular application area. While TELNET dictates onlythe manner in which user and server processes are interconnected viathe IPC facility, and the character set in which the two processescommunicate once connected, each member of this family specifies inaddition the syntax and semantics of the commands and responses thatcomprise their dialog. 2c1 Protocols within this family necessarily differ in substance,each specifying its own application-specific command set. The FileTransfer Protocol (FTP) [12], for example, specifies commands formanipulating files, and the Remote Job Entry Protocol (RJE) [13]specifies commands for manipulating batch jobs. Protocolsthroughout the family are, however, similar in form, each successivefamily member having simply inherited the physical features of itspredecessors. Thus FTP and RJE enforce the same conventions forformulating commands and responses. 2c2 This common command/response discipline requires that commandsand responses have the following respective formats: 2c3 command-name <SP> parameter <CRLF> response-number <SP> text <CRLF>Each command invoked by the user process is identified by NAME andis allowed a single PARAMETER. Each response generated by theserver process contains a three-digit decimal response NUMBER (to beinterpreted by the user process) and explanatory TEXT (forpresentation, if necessary, to the user). Response numbers areassigned in such a way that, for example, positive and negativeacknowledgments can be easily distinguished by the user process. 2c4 -4-NWG/RFC# 707 JEW 14-JAN-76 19:51 34263NCC 76 A High-Level Framework for Network-Based Resource Sharing The Current Software Approach to Resource Sharing FTP contains, among others, the following commands (each listedwith one of its possible responses) for retrieving, appending to,replacing, and deleting files, respectively, within the serverprocess' file system: 2c5 Command Response RETR <SP> filename <CRLF> 250 <SP> Beginning transfer. <CRLF> APPE <SP> filename <CRLF> 400 <SP> Not implemented. <CRLF> STOR <SP> filename <CRLF> 453 <SP> Directory overflow. <CRLF> DELE <SP> filename <CRLF> 450 <SP> File not found. <CRLF>The first three commands serve only to initiate the transfer of afile from one machine to another. The transfer itself occurs on aseparate IPC channel and is governed by what amounts to a separateprotocol. 2c6 Since the general command format admits but a single parameter,multiparameter operations must be implemented as sequences ofcommands. Thus two commands are required to rename a file: 2c7 Command Response RNFR <SP> oldname <CRLF> 200 <SP> Next parameter. <CRLF> RNTO <SP> newname <CRLF> 253 <SP> File renamed. <CRLF> -5-NWG/RFC# 707 JEW 14-JAN-76 19:51 34263NCC 76 A High-Level Framework for Network-Based Resource Sharing A Command/Response Protocol, the Basis for an Alternative ApproachA COMMAND/RESPONSE PROTOCOL, THE BASIS FOR AN ALTERNATIVE APPROACH 3The Importance of Factoring Out the Command/Response Discipline 3a That FTP, RJE, and the other protocols within this family share acommon command/response discipline is a fact not formally recognizedwithin the protocol literature, and each new protocol documentdescribes it in detail, as if for the first time. Nowhere are theseconventions codified in isolation from the various contexts in whichthey find use, being viewed as a necessary but relativelyunimportant facet of each function-oriented protocol. "This commoncommand/response discipline has thus gone unrecognized as theimportant, application-independent protocol that it is." 3a1 This oversight has had two important negative effects upon thegrowth of resource sharing within the ARPANET: 3a2 (1) It has allowed the command/response discipline to remain crude. As already noted, operations that require more than a single parameter are consistently implemented as two or more separate commands, each of which requires a response and thus incurs the overhead of a full round-trip network delay. Furthermore, there are no standards for encoding parameter types other than character strings, nor is there provision for returning results in a command response. (2) It has placed upon the applications programmer the burden of implementing the network "run-time environment (RTE)" that enables him to access remote processes at the desired, functional level. Before he can address remote processes in terms like the following: execute function DELE with argument TEXTFILE on machine X the applications programmer must first construct (as he invariably does in every program he writes) a module that provides the desired program interface while implementing the agreed upon command/response discipline. This run-time environment contains the code required to properly format outgoing commands, to interface with the IPC facility, and to parse incoming responses. Because the system provides only -6-NWG/RFC# 707 JEW 14-JAN-76 19:51 34263NCC 76 A High-Level Framework for Network-Based Resource Sharing A Command/Response Protocol, the Basis for an Alternative Approach the IPC facility as a foundation, the applications programmer is deterred from using remote resources by the amount of specialized knowledge and software that must first be acquired. If, on the other hand, the command/response discipline were formalized as a separate protocol, its use in subsequent function-oriented protocols could rightly be anticipated by the systems programmer, and a single run-time environment constructed for use throughout an installation (in the worst case, one implementation per programming language per machine might be required). This module could then be placed in a library and, as depicted in Figure 2, link loaded with (or otherwise made available to) each new applications program, thereby greatly simplifying its use of remote resources. Furthermore, since enhancements to it would pay dividends to every applications program employing its services, the run-time environment would gradually be augmented to provide additional new services to the programmer. The thesis of the present paper is that one of the keys tofacilitating network resource sharing lies in (1) isolating as aseparate protocol the command/response discipline common to a largeclass of applications protocols; (2) making this new,application-independent protocol flexible and efficient; and (3)constructing at each installation a RTE that employs it to give theapplications programmer easy and high-level access to remoteresources. 3a3Specifications for the Command/Response Protocol 3b Having argued the value of a command/response protocol (hereaftertermed the Protocol) as the foundation for a large class ofapplications protocols, there remains the task of suggesting theform that the Protocol might take. There are eight requirements.First, it must reproduce the capabilities of the discipline itreplaces: 3b1 (1) Permit invocation of arbitrary, named commands (or functions) implemented by the remote process. (2) Permit command outcomes to be reported in a way that aids both the program invoking the commmand and the user under whose control it may be executing.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -